s 34 compat/msvcrt/snprintf.c int avpriv_snprintf(char *s, size_t n, const char *fmt, ...) s 40 compat/msvcrt/snprintf.c ret = avpriv_vsnprintf(s, n, fmt, ap); s 46 compat/msvcrt/snprintf.c int avpriv_vsnprintf(char *s, size_t n, const char *fmt, s 63 compat/msvcrt/snprintf.c memset(s, 0, n); s 65 compat/msvcrt/snprintf.c ret = _vsnprintf(s, n - 1, fmt, ap_copy); s 28 compat/msvcrt/snprintf.h int avpriv_snprintf(char *s, size_t n, const char *fmt, ...); s 29 compat/msvcrt/snprintf.h int avpriv_vsnprintf(char *s, size_t n, const char *fmt, va_list ap); s 28 compat/strtod.c static const char *check_nan_suffix(const char *s) s 30 compat/strtod.c const char *start = s; s 32 compat/strtod.c if (*s++ != '(') s 35 compat/strtod.c while ((*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <= 'Z') || s 36 compat/strtod.c (*s >= '0' && *s <= '9') || *s == '_') s 37 compat/strtod.c s++; s 39 compat/strtod.c return *s == ')' ? s + 1 : start; s 2096 fftools/cmdutils.c int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec) s 2098 fftools/cmdutils.c int ret = avformat_match_stream_specifier(s, st, spec); s 2100 fftools/cmdutils.c av_log(s, AV_LOG_ERROR, "Invalid stream specifier: %s.\n", spec); s 2105 fftools/cmdutils.c AVFormatContext *s, AVStream *st, AVCodec *codec) s 2109 fftools/cmdutils.c int flags = s->oformat ? AV_OPT_FLAG_ENCODING_PARAM s 2115 fftools/cmdutils.c codec = s->oformat ? avcodec_find_encoder(codec_id) s 2138 fftools/cmdutils.c switch (check_stream_specifier(s, st, p + 1)) { s 2161 fftools/cmdutils.c AVDictionary **setup_find_stream_info_opts(AVFormatContext *s, s 2167 fftools/cmdutils.c if (!s->nb_streams) s 2169 fftools/cmdutils.c opts = av_mallocz_array(s->nb_streams, sizeof(*opts)); s 2175 fftools/cmdutils.c for (i = 0; i < s->nb_streams; i++) s 2176 fftools/cmdutils.c opts[i] = filter_codec_opts(codec_opts, s->streams[i]->codecpar->codec_id, s 2177 fftools/cmdutils.c s, s->streams[i], NULL); s 400 fftools/cmdutils.h int check_stream_specifier(AVFormatContext *s, AVStream *st, const char *spec); s 417 fftools/cmdutils.h AVFormatContext *s, AVStream *st, AVCodec *codec); s 430 fftools/cmdutils.h AVDictionary **setup_find_stream_info_opts(AVFormatContext *s, s 549 fftools/ffmpeg.c AVFormatContext *s; s 552 fftools/ffmpeg.c s = of->ctx; s 553 fftools/ffmpeg.c if (s && s->oformat && !(s->oformat->flags & AVFMT_NOFILE)) s 554 fftools/ffmpeg.c avio_closep(&s->pb); s 555 fftools/ffmpeg.c avformat_free_context(s); s 703 fftools/ffmpeg.c AVFormatContext *s = of->ctx; s 775 fftools/ffmpeg.c if (!(s->oformat->flags & AVFMT_NOTIMESTAMPS)) { s 779 fftools/ffmpeg.c av_log(s, AV_LOG_WARNING, "Invalid DTS: %"PRId64" PTS: %"PRId64" in output stream %d:%d, replacing by guess\n", s 791 fftools/ffmpeg.c int64_t max = ost->last_mux_dts + !(s->oformat->flags & AVFMT_TS_NONSTRICT); s 796 fftools/ffmpeg.c av_log(s, loglevel, "Non-monotonous DTS in output stream " s 803 fftools/ffmpeg.c av_log(s, loglevel, "changing to %"PRId64". This may result " s 829 fftools/ffmpeg.c ret = av_interleaved_write_frame(s, pkt); s 2774 fftools/ffmpeg.c static enum AVPixelFormat get_format(AVCodecContext *s, const enum AVPixelFormat *pix_fmts) s 2776 fftools/ffmpeg.c InputStream *ist = s->opaque; s 2791 fftools/ffmpeg.c config = avcodec_get_hw_config(s->codec, i); s 2807 fftools/ffmpeg.c ret = hwaccel_decode_init(s); s 2837 fftools/ffmpeg.c ret = hwaccel->init(s); s 2848 fftools/ffmpeg.c s->hw_frames_ctx = av_buffer_ref(ist->hw_frames_ctx); s 2849 fftools/ffmpeg.c if (!s->hw_frames_ctx) s 2860 fftools/ffmpeg.c static int get_buffer(AVCodecContext *s, AVFrame *frame, int flags) s 2862 fftools/ffmpeg.c InputStream *ist = s->opaque; s 2865 fftools/ffmpeg.c return ist->hwaccel_get_buffer(s, frame, flags); s 2867 fftools/ffmpeg.c return avcodec_default_get_buffer2(s, frame, flags); s 68 fftools/ffmpeg.h int (*init)(AVCodecContext *s); s 371 fftools/ffmpeg.h void (*hwaccel_uninit)(AVCodecContext *s); s 372 fftools/ffmpeg.h int (*hwaccel_get_buffer)(AVCodecContext *s, AVFrame *frame, int flags); s 373 fftools/ffmpeg.h int (*hwaccel_retrieve_data)(AVCodecContext *s, AVFrame *frame); s 654 fftools/ffmpeg.h int videotoolbox_init(AVCodecContext *s); s 655 fftools/ffmpeg.h int qsv_init(AVCodecContext *s); s 135 fftools/ffmpeg_filter.c AVIOContext *s = NULL; s 139 fftools/ffmpeg_filter.c if (avio_open_dyn_buf(&s) < 0) s 149 fftools/ffmpeg_filter.c avio_printf(s, "%s|", name); s 151 fftools/ffmpeg_filter.c len = avio_close_dyn_buf(s, &ret); s 168 fftools/ffmpeg_filter.c AVIOContext *s = NULL; \ s 172 fftools/ffmpeg_filter.c if (avio_open_dyn_buf(&s) < 0) \ s 177 fftools/ffmpeg_filter.c avio_printf(s, "%s|", name); \ s 179 fftools/ffmpeg_filter.c len = avio_close_dyn_buf(s, &ret); \ s 268 fftools/ffmpeg_filter.c AVFormatContext *s; s 278 fftools/ffmpeg_filter.c s = input_files[file_idx]->ctx; s 280 fftools/ffmpeg_filter.c for (i = 0; i < s->nb_streams; i++) { s 281 fftools/ffmpeg_filter.c enum AVMediaType stream_type = s->streams[i]->codecpar->codec_type; s 286 fftools/ffmpeg_filter.c if (check_stream_specifier(s, s->streams[i], *p == ':' ? p + 1 : p) == 1) { s 287 fftools/ffmpeg_filter.c st = s->streams[i]; s 748 fftools/ffmpeg_opt.c static AVCodec *choose_decoder(OptionsContext *o, AVFormatContext *s, AVStream *st) s 752 fftools/ffmpeg_opt.c MATCH_PER_STREAM_OPT(codec_names, str, codec_name, s, st); s 1329 fftools/ffmpeg_opt.c static uint8_t *get_line(AVIOContext *s) s 1340 fftools/ffmpeg_opt.c while ((c = avio_r8(s)) && c != '\n') s 1348 fftools/ffmpeg_opt.c static int get_preset_file_2(const char *preset_name, const char *codec_name, AVIOContext **s) s 1363 fftools/ffmpeg_opt.c ret = avio_open2(s, filename, AVIO_FLAG_READ, &int_cb, NULL); s 1368 fftools/ffmpeg_opt.c ret = avio_open2(s, filename, AVIO_FLAG_READ, &int_cb, NULL); s 1374 fftools/ffmpeg_opt.c static int choose_encoder(OptionsContext *o, AVFormatContext *s, OutputStream *ost) s 1380 fftools/ffmpeg_opt.c MATCH_PER_STREAM_OPT(codec_names, str, codec_name, s, ost->st); s 1382 fftools/ffmpeg_opt.c ost->st->codecpar->codec_id = av_guess_codec(s->oformat, NULL, s->url, s 1389 fftools/ffmpeg_opt.c ost->file_index, ost->index, s->oformat->name, s 1459 fftools/ffmpeg_opt.c AVIOContext *s = NULL; s 1465 fftools/ffmpeg_opt.c if (preset && (!(ret = get_preset_file_2(preset, ost->enc->name, &s)))) { s 1467 fftools/ffmpeg_opt.c buf = get_line(s); s 1479 fftools/ffmpeg_opt.c } while (!s->eof_reached); s 1480 fftools/ffmpeg_opt.c avio_closep(&s); s 3024 fftools/ffmpeg_opt.c char *s = av_asprintf("%s:%c", opt + 1, *opt); s 3025 fftools/ffmpeg_opt.c if (!s) s 3027 fftools/ffmpeg_opt.c ret = parse_option(o, s, arg, options); s 3028 fftools/ffmpeg_opt.c av_free(s); s 3051 fftools/ffmpeg_opt.c char *s; s 3057 fftools/ffmpeg_opt.c s = av_asprintf("q%s", opt + 6); s 3058 fftools/ffmpeg_opt.c if (!s) s 3060 fftools/ffmpeg_opt.c ret = parse_option(o, s, arg, options); s 3061 fftools/ffmpeg_opt.c av_free(s); s 34 fftools/ffmpeg_qsv.c static int qsv_get_buffer(AVCodecContext *s, AVFrame *frame, int flags) s 36 fftools/ffmpeg_qsv.c InputStream *ist = s->opaque; s 41 fftools/ffmpeg_qsv.c static void qsv_uninit(AVCodecContext *s) s 43 fftools/ffmpeg_qsv.c InputStream *ist = s->opaque; s 72 fftools/ffmpeg_qsv.c int qsv_init(AVCodecContext *s) s 74 fftools/ffmpeg_qsv.c InputStream *ist = s->opaque; s 93 fftools/ffmpeg_qsv.c frames_ctx->width = FFALIGN(s->coded_width, 32); s 94 fftools/ffmpeg_qsv.c frames_ctx->height = FFALIGN(s->coded_height, 32); s 96 fftools/ffmpeg_qsv.c frames_ctx->sw_format = s->sw_pix_fmt; s 97 fftools/ffmpeg_qsv.c frames_ctx->initial_pool_size = 64 + s->extra_hw_frames; s 36 fftools/ffmpeg_videotoolbox.c static int videotoolbox_retrieve_data(AVCodecContext *s, AVFrame *frame) s 38 fftools/ffmpeg_videotoolbox.c InputStream *ist = s->opaque; s 64 fftools/ffmpeg_videotoolbox.c av_fourcc2str(s->codec_tag), videotoolbox_pixfmt); s 107 fftools/ffmpeg_videotoolbox.c static void videotoolbox_uninit(AVCodecContext *s) s 109 fftools/ffmpeg_videotoolbox.c InputStream *ist = s->opaque; s 117 fftools/ffmpeg_videotoolbox.c av_videotoolbox_default_free(s); s 121 fftools/ffmpeg_videotoolbox.c int videotoolbox_init(AVCodecContext *s) s 123 fftools/ffmpeg_videotoolbox.c InputStream *ist = s->opaque; s 144 fftools/ffmpeg_videotoolbox.c ret = av_videotoolbox_default_init(s); s 153 fftools/ffmpeg_videotoolbox.c av_log(s, loglevel, "UTGetOSTypeFromString() is not available " s 157 fftools/ffmpeg_videotoolbox.c ret = av_videotoolbox_default_init2(s, vtctx); s 167 fftools/ffmpeg_videotoolbox.c videotoolbox_uninit(s); s 1066 fftools/ffplay.c static void video_audio_display(VideoState *s) s 1073 fftools/ffplay.c for (rdft_bits = 1; (1 << rdft_bits) < 2 * s->height; rdft_bits++) s 1078 fftools/ffplay.c channels = s->audio_tgt.channels; s 1080 fftools/ffplay.c if (!s->paused) { s 1081 fftools/ffplay.c int data_used= s->show_mode == SHOW_MODE_WAVES ? s->width : (2*nb_freq); s 1083 fftools/ffplay.c delay = s->audio_write_buf_size; s 1090 fftools/ffplay.c delay -= (time_diff * s->audio_tgt.freq) / 1000000; s 1097 fftools/ffplay.c i_start= x = compute_mod(s->sample_array_index - delay * channels, SAMPLE_ARRAY_SIZE); s 1098 fftools/ffplay.c if (s->show_mode == SHOW_MODE_WAVES) { s 1102 fftools/ffplay.c int a = s->sample_array[idx]; s 1103 fftools/ffplay.c int b = s->sample_array[(idx + 4 * channels) % SAMPLE_ARRAY_SIZE]; s 1104 fftools/ffplay.c int c = s->sample_array[(idx + 5 * channels) % SAMPLE_ARRAY_SIZE]; s 1105 fftools/ffplay.c int d = s->sample_array[(idx + 9 * channels) % SAMPLE_ARRAY_SIZE]; s 1114 fftools/ffplay.c s->last_i_start = i_start; s 1116 fftools/ffplay.c i_start = s->last_i_start; s 1119 fftools/ffplay.c if (s->show_mode == SHOW_MODE_WAVES) { s 1123 fftools/ffplay.c h = s->height / nb_display_channels; s 1128 fftools/ffplay.c y1 = s->ytop + ch * h + (h / 2); /* position of center line */ s 1129 fftools/ffplay.c for (x = 0; x < s->width; x++) { s 1130 fftools/ffplay.c y = (s->sample_array[i] * h2) >> 15; s 1137 fftools/ffplay.c fill_rectangle(s->xleft + x, ys, 1, y); s 1147 fftools/ffplay.c y = s->ytop + ch * h; s 1148 fftools/ffplay.c fill_rectangle(s->xleft, y, s->width, 1); s 1151 fftools/ffplay.c if (realloc_texture(&s->vis_texture, SDL_PIXELFORMAT_ARGB8888, s->width, s->height, SDL_BLENDMODE_NONE, 1) < 0) s 1155 fftools/ffplay.c if (rdft_bits != s->rdft_bits) { s 1156 fftools/ffplay.c av_rdft_end(s->rdft); s 1157 fftools/ffplay.c av_free(s->rdft_data); s 1158 fftools/ffplay.c s->rdft = av_rdft_init(rdft_bits, DFT_R2C); s 1159 fftools/ffplay.c s->rdft_bits = rdft_bits; s 1160 fftools/ffplay.c s->rdft_data = av_malloc_array(nb_freq, 4 *sizeof(*s->rdft_data)); s 1162 fftools/ffplay.c if (!s->rdft || !s->rdft_data){ s 1164 fftools/ffplay.c s->show_mode = SHOW_MODE_WAVES; s 1167 fftools/ffplay.c SDL_Rect rect = {.x = s->xpos, .y = 0, .w = 1, .h = s->height}; s 1171 fftools/ffplay.c data[ch] = s->rdft_data + 2 * nb_freq * ch; s 1175 fftools/ffplay.c data[ch][x] = s->sample_array[i] * (1.0 - w * w); s 1180 fftools/ffplay.c av_rdft_calc(s->rdft, data[ch]); s 1184 fftools/ffplay.c if (!SDL_LockTexture(s->vis_texture, &rect, (void **)&pixels, &pitch)) { s 1186 fftools/ffplay.c pixels += pitch * s->height; s 1187 fftools/ffplay.c for (y = 0; y < s->height; y++) { s 1197 fftools/ffplay.c SDL_UnlockTexture(s->vis_texture); s 1199 fftools/ffplay.c SDL_RenderCopy(renderer, s->vis_texture, NULL, NULL); s 1201 fftools/ffplay.c if (!s->paused) s 1202 fftools/ffplay.c s->xpos++; s 1203 fftools/ffplay.c if (s->xpos >= s->width) s 1204 fftools/ffplay.c s->xpos= s->xleft; s 2740 fftools/ffplay.c static int is_realtime(AVFormatContext *s) s 2742 fftools/ffplay.c if( !strcmp(s->iformat->name, "rtp") s 2743 fftools/ffplay.c || !strcmp(s->iformat->name, "rtsp") s 2744 fftools/ffplay.c || !strcmp(s->iformat->name, "sdp") s 2748 fftools/ffplay.c if(s->pb && ( !strncmp(s->url, "rtp:", 4) s 2749 fftools/ffplay.c || !strncmp(s->url, "udp:", 4) s 1494 fftools/ffprobe.c char *s = strchr(json_escape, *p); s 1495 fftools/ffprobe.c if (s) { s 1497 fftools/ffprobe.c av_bprint_chars(dst, json_subst[s - json_escape], 1); s 1819 fftools/ffprobe.c #define print_q(k, v, s) writer_print_rational(w, k, v, s) s 1834 fftools/ffprobe.c #define print_section_header(s) writer_print_section_header(w, s) s 1835 fftools/ffprobe.c #define print_section_footer(s) writer_print_section_footer(w, s) s 2055 fftools/ffprobe.c const char *s; s 2061 fftools/ffprobe.c s = av_get_media_type_string(st->codecpar->codec_type); s 2062 fftools/ffprobe.c if (s) print_str ("codec_type", s); s 2133 fftools/ffprobe.c const char *s; s 2140 fftools/ffprobe.c s = av_get_media_type_string(stream->codecpar->codec_type); s 2141 fftools/ffprobe.c if (s) print_str ("media_type", s); s 2164 fftools/ffprobe.c s = av_get_pix_fmt_name(frame->format); s 2165 fftools/ffprobe.c if (s) print_str ("pix_fmt", s); s 2188 fftools/ffprobe.c s = av_get_sample_fmt_name(frame->format); s 2189 fftools/ffprobe.c if (s) print_str ("sample_fmt", s); s 2491 fftools/ffprobe.c const char *s; s 2530 fftools/ffprobe.c s = av_get_media_type_string(par->codec_type); s 2531 fftools/ffprobe.c if (s) print_str ("codec_type", s); s 2566 fftools/ffprobe.c s = av_get_pix_fmt_name(par->format); s 2567 fftools/ffprobe.c if (s) print_str ("pix_fmt", s); s 2604 fftools/ffprobe.c s = av_get_sample_fmt_name(par->format); s 2605 fftools/ffprobe.c if (s) print_str ("sample_fmt", s); s 33 libavcodec/aac_ac3_parser.c AACAC3ParseContext *s = s1->priv_data; s 34 libavcodec/aac_ac3_parser.c ParseContext *pc = &s->pc; s 41 libavcodec/aac_ac3_parser.c if(s->remaining_size <= buf_size){ s 42 libavcodec/aac_ac3_parser.c if(s->remaining_size && !s->need_next_header){ s 43 libavcodec/aac_ac3_parser.c i= s->remaining_size; s 44 libavcodec/aac_ac3_parser.c s->remaining_size = 0; s 47 libavcodec/aac_ac3_parser.c for(i=s->remaining_size; i<buf_size; i++){ s 48 libavcodec/aac_ac3_parser.c s->state = (s->state<<8) + buf[i]; s 49 libavcodec/aac_ac3_parser.c if((len=s->sync(s->state, s, &s->need_next_header, &new_frame_start))) s 56 libavcodec/aac_ac3_parser.c s->state=0; s 57 libavcodec/aac_ac3_parser.c i-= s->header_size -1; s 58 libavcodec/aac_ac3_parser.c s->remaining_size = len; s 60 libavcodec/aac_ac3_parser.c s->remaining_size += i; s 64 libavcodec/aac_ac3_parser.c s->remaining_size += i; s 71 libavcodec/aac_ac3_parser.c s->remaining_size -= FFMIN(s->remaining_size, buf_size); s 81 libavcodec/aac_ac3_parser.c if(s->codec_id) s 82 libavcodec/aac_ac3_parser.c avctx->codec_id = s->codec_id; s 91 libavcodec/aac_ac3_parser.c avctx->sample_rate = s->sample_rate; s 93 libavcodec/aac_ac3_parser.c avctx->channels = s->channels; s 94 libavcodec/aac_ac3_parser.c avctx->channel_layout = s->channel_layout; s 96 libavcodec/aac_ac3_parser.c s1->duration = s->samples; s 97 libavcodec/aac_ac3_parser.c avctx->audio_service_type = s->service_type; s 101 libavcodec/aac_ac3_parser.c avctx->bit_rate = s->bit_rate; s 58 libavcodec/aac_parser.c AACAC3ParseContext *s = s1->priv_data; s 59 libavcodec/aac_parser.c s->header_size = AV_AAC_ADTS_HEADER_SIZE; s 60 libavcodec/aac_parser.c s->sync = aac_sync; s 77 libavcodec/aaccoder.c static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce, s 91 libavcodec/aaccoder.c s->abs_pow34(s->scoefs, sce->coeffs, 1024); s 122 libavcodec/aaccoder.c FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(win+w)*16+swb]; s 123 libavcodec/aaccoder.c rd += quantize_band_cost(s, &sce->coeffs[start + w*128], s 124 libavcodec/aaccoder.c &s->scoefs[start + w*128], size, s 171 libavcodec/aaccoder.c put_bits(&s->pb, 4, cb); s 180 libavcodec/aaccoder.c put_bits(&s->pb, run_bits, run_esc); s 183 libavcodec/aaccoder.c put_bits(&s->pb, run_bits, count); s 196 libavcodec/aaccoder.c static void set_special_band_scalefactors(AACEncContext *s, SingleChannelElement *sce) s 235 libavcodec/aaccoder.c static void search_for_quantizers_anmr(AVCodecContext *avctx, AACEncContext *s, s 302 libavcodec/aaccoder.c s->abs_pow34(s->scoefs, sce->coeffs, 1024); s 314 libavcodec/aaccoder.c FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; s 342 libavcodec/aaccoder.c maxval = find_max_val(sce->ics.group_len[w], sce->ics.swb_sizes[g], s->scoefs+start); s 347 libavcodec/aaccoder.c FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; s 348 libavcodec/aaccoder.c dist += quantize_band_cost(s, coefs + w2*128, s->scoefs + start + w2*128, sce->ics.swb_sizes[g], s 395 libavcodec/aaccoder.c static void search_for_quantizers_fast(AVCodecContext *avctx, AACEncContext *s, s 419 libavcodec/aaccoder.c FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; s 449 libavcodec/aaccoder.c s->abs_pow34(s->scoefs, sce->coeffs, 1024); s 450 libavcodec/aaccoder.c ff_quantize_band_cost_cache_init(s); s 455 libavcodec/aaccoder.c const float *scaled = s->scoefs + start; s 475 libavcodec/aaccoder.c const float *scaled = s->scoefs + start; s 488 libavcodec/aaccoder.c dist += quantize_band_cost_cached(s, w + w2, g, s 543 libavcodec/aaccoder.c static void search_for_pns(AACEncContext *s, AVCodecContext *avctx, SingleChannelElement *sce) s 549 libavcodec/aaccoder.c float *PNS = &s->scoefs[0*128], *PNS34 = &s->scoefs[1*128]; s 550 libavcodec/aaccoder.c float *NOR34 = &s->scoefs[3*128]; s 552 libavcodec/aaccoder.c const float lambda = s->lambda; s 599 libavcodec/aaccoder.c band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; s 645 libavcodec/aaccoder.c band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; s 647 libavcodec/aaccoder.c s->random_state = lcg_random(s->random_state); s 648 libavcodec/aaccoder.c PNS[i] = s->random_state; s 650 libavcodec/aaccoder.c band_energy = s->fdsp->scalarproduct_float(PNS, PNS, sce->ics.swb_sizes[g]); s 652 libavcodec/aaccoder.c s->fdsp->vector_fmul_scalar(PNS, PNS, scale, sce->ics.swb_sizes[g]); s 653 libavcodec/aaccoder.c pns_senergy = s->fdsp->scalarproduct_float(PNS, PNS, sce->ics.swb_sizes[g]); s 655 libavcodec/aaccoder.c s->abs_pow34(NOR34, &sce->coeffs[start_c], sce->ics.swb_sizes[g]); s 656 libavcodec/aaccoder.c s->abs_pow34(PNS34, PNS, sce->ics.swb_sizes[g]); s 657 libavcodec/aaccoder.c dist1 += quantize_band_cost(s, &sce->coeffs[start_c], s 685 libavcodec/aaccoder.c static void mark_pns(AACEncContext *s, AVCodecContext *avctx, SingleChannelElement *sce) s 691 libavcodec/aaccoder.c const float lambda = s->lambda; s 729 libavcodec/aaccoder.c band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; s 756 libavcodec/aaccoder.c static void search_for_ms(AACEncContext *s, ChannelElement *cpe) s 760 libavcodec/aaccoder.c float *M = s->scoefs + 128*0, *S = s->scoefs + 128*1; s 761 libavcodec/aaccoder.c float *L34 = s->scoefs + 128*2, *R34 = s->scoefs + 128*3; s 762 libavcodec/aaccoder.c float *M34 = s->scoefs + 128*4, *S34 = s->scoefs + 128*5; s 763 libavcodec/aaccoder.c const float lambda = s->lambda; s 793 libavcodec/aaccoder.c s->abs_pow34(M34, M, sce0->ics.swb_sizes[g]); s 794 libavcodec/aaccoder.c s->abs_pow34(S34, S, sce0->ics.swb_sizes[g]); s 826 libavcodec/aaccoder.c FFPsyBand *band0 = &s->psy.ch[s->cur_channel+0].psy_bands[(w+w2)*16+g]; s 827 libavcodec/aaccoder.c FFPsyBand *band1 = &s->psy.ch[s->cur_channel+1].psy_bands[(w+w2)*16+g]; s 837 libavcodec/aaccoder.c s->abs_pow34(L34, sce0->coeffs+start+(w+w2)*128, sce0->ics.swb_sizes[g]); s 838 libavcodec/aaccoder.c s->abs_pow34(R34, sce1->coeffs+start+(w+w2)*128, sce0->ics.swb_sizes[g]); s 839 libavcodec/aaccoder.c s->abs_pow34(M34, M, sce0->ics.swb_sizes[g]); s 840 libavcodec/aaccoder.c s->abs_pow34(S34, S, sce0->ics.swb_sizes[g]); s 841 libavcodec/aaccoder.c dist1 += quantize_band_cost(s, &sce0->coeffs[start + (w+w2)*128], s 847 libavcodec/aaccoder.c dist1 += quantize_band_cost(s, &sce1->coeffs[start + (w+w2)*128], s 853 libavcodec/aaccoder.c dist2 += quantize_band_cost(s, M, s 859 libavcodec/aaccoder.c dist2 += quantize_band_cost(s, S, s 59 libavcodec/aaccoder_trellis.h static void codebook_trellis_rate(AACEncContext *s, SingleChannelElement *sce, s 73 libavcodec/aaccoder_trellis.h s->abs_pow34(s->scoefs, sce->coeffs, 1024); s 126 libavcodec/aaccoder_trellis.h bits += quantize_band_cost_bits(s, &sce->coeffs[start + w*128], s 127 libavcodec/aaccoder_trellis.h &s->scoefs[start + w*128], size, s 175 libavcodec/aaccoder_trellis.h put_bits(&s->pb, 4, cb); s 184 libavcodec/aaccoder_trellis.h put_bits(&s->pb, run_bits, run_esc); s 187 libavcodec/aaccoder_trellis.h put_bits(&s->pb, run_bits, count); s 68 libavcodec/aaccoder_twoloop.h AACEncContext *s, s 130 libavcodec/aaccoder_twoloop.h if (s->psy.bitres.alloc >= 0) { s 135 libavcodec/aaccoder_twoloop.h destbits = s->psy.bitres.alloc s 145 libavcodec/aaccoder_twoloop.h if (s->options.mid_side && s->cur_type == TYPE_CPE) s 192 libavcodec/aaccoder_twoloop.h if (s->options.pns || s->options.intensity_stereo) s 199 libavcodec/aaccoder_twoloop.h s->psy.cutoff = bandwidth; s 224 libavcodec/aaccoder_twoloop.h FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; s 236 libavcodec/aaccoder_twoloop.h FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; s 294 libavcodec/aaccoder_twoloop.h s->abs_pow34(s->scoefs, sce->coeffs, 1024); s 295 libavcodec/aaccoder_twoloop.h ff_quantize_band_cost_cache_init(s); s 302 libavcodec/aaccoder_twoloop.h const float *scaled = s->scoefs + start; s 379 libavcodec/aaccoder_twoloop.h const float *scaled = &s->scoefs[start]; s 397 libavcodec/aaccoder_twoloop.h dist += quantize_band_cost_cached(s, w + w2, g, coefs + w2*128, s 460 libavcodec/aaccoder_twoloop.h const float *scaled = s->scoefs + start; s 478 libavcodec/aaccoder_twoloop.h dist += quantize_band_cost_cached(s, w + w2, g, coefs + w2*128, s 502 libavcodec/aaccoder_twoloop.h if (!i && s->options.pns && its > maxits/2 && tbits > toofewbits) { s 602 libavcodec/aaccoder_twoloop.h const float *scaled = s->scoefs + start; s 634 libavcodec/aaccoder_twoloop.h dist += quantize_band_cost_cached(s, w + w2, g, coefs + w2*128, s 671 libavcodec/aaccoder_twoloop.h dist += quantize_band_cost_cached(s, w + w2, g, coefs + w2*128, s 86 libavcodec/aacdec.c float s = *scale; s 87 libavcodec/aacdec.c *dst++ = v[idx & 15] * s; s 88 libavcodec/aacdec.c *dst++ = v[idx>>4 & 15] * s; s 97 libavcodec/aacdec.c float s = *scale; s 98 libavcodec/aacdec.c *dst++ = v[idx & 3] * s; s 99 libavcodec/aacdec.c *dst++ = v[idx>>2 & 3] * s; s 100 libavcodec/aacdec.c *dst++ = v[idx>>4 & 3] * s; s 101 libavcodec/aacdec.c *dst++ = v[idx>>6 & 3] * s; s 128 libavcodec/aacdec.c union av_intfloat32 s = { .f = *scale }; s 131 libavcodec/aacdec.c t.i = s.i ^ (sign & 1U<<31); s 135 libavcodec/aacdec.c t.i = s.i ^ (sign & 1U<<31); s 139 libavcodec/aacdec.c t.i = s.i ^ (sign & 1U<<31); s 143 libavcodec/aacdec.c t.i = s.i ^ (sign & 1U<<31); s 168 libavcodec/aacdec_fixed.c int s = FFABS(scale); s 170 libavcodec/aacdec_fixed.c int i, out, c = exp2tab[s & 3]; s 172 libavcodec/aacdec_fixed.c s = offset - (s >> 2); s 174 libavcodec/aacdec_fixed.c if (s > 31) { s 178 libavcodec/aacdec_fixed.c } else if (s > 0) { s 179 libavcodec/aacdec_fixed.c round = 1 << (s-1); s 182 libavcodec/aacdec_fixed.c dst[i] = ((int)(out+round) >> s) * ssign; s 184 libavcodec/aacdec_fixed.c } else if (s > -32) { s 185 libavcodec/aacdec_fixed.c s = s + 32; s 186 libavcodec/aacdec_fixed.c round = 1U << (s-1); s 188 libavcodec/aacdec_fixed.c out = (int)((int64_t)((int64_t)src[i] * c + round) >> s); s 198 libavcodec/aacdec_fixed.c int s = -scale; s 200 libavcodec/aacdec_fixed.c int i, out, c = exp2tab[s & 3]; s 203 libavcodec/aacdec_fixed.c av_assert0(s >= 0); s 209 libavcodec/aacdec_fixed.c s = 21 + nlz - (s >> 2); s 211 libavcodec/aacdec_fixed.c if (s > 31) { s 215 libavcodec/aacdec_fixed.c } else if (s >= 0) { s 216 libavcodec/aacdec_fixed.c round = s ? 1 << (s-1) : 0; s 219 libavcodec/aacdec_fixed.c coefs[i] = -((int)(out+round) >> s); s 223 libavcodec/aacdec_fixed.c s = s + 32; s 224 libavcodec/aacdec_fixed.c if (s > 0) { s 225 libavcodec/aacdec_fixed.c round = 1 << (s-1); s 227 libavcodec/aacdec_fixed.c out = (int)((int64_t)((int64_t)coefs[i] * c + round) >> s); s 232 libavcodec/aacdec_fixed.c coefs[i] = -(int64_t)coefs[i] * c * (1 << -s); s 240 libavcodec/aacdec_fixed.c int s; s 243 libavcodec/aacdec_fixed.c s = pf.mant >> 31; s 244 libavcodec/aacdec_fixed.c tmp.mant = (pf.mant ^ s) - s; s 246 libavcodec/aacdec_fixed.c tmp.mant = (tmp.mant ^ s) - s; s 254 libavcodec/aacdec_fixed.c int s; s 257 libavcodec/aacdec_fixed.c s = pf.mant >> 31; s 258 libavcodec/aacdec_fixed.c tmp.mant = (pf.mant ^ s) - s; s 260 libavcodec/aacdec_fixed.c tmp.mant = (tmp.mant ^ s) - s; s 268 libavcodec/aacdec_fixed.c int s; s 271 libavcodec/aacdec_fixed.c s = pf.mant >> 31; s 272 libavcodec/aacdec_fixed.c pun.mant = (pf.mant ^ s) - s; s 274 libavcodec/aacdec_fixed.c pun.mant = (pun.mant ^ s) - s; s 1065 libavcodec/aacdec_template.c union { unsigned u; int s; } v = { previous_val * 1664525u + 1013904223 }; s 1066 libavcodec/aacdec_template.c return v.s; s 2297 libavcodec/aacdec_template.c int s = 1; s 2300 libavcodec/aacdec_template.c s -= 2 * (t & 0x1); s 2303 libavcodec/aacdec_template.c gain_cache = GET_GAIN(scale, t) * s; s 57 libavcodec/aacenc.c AACEncContext *s = avctx->priv_data; s 58 libavcodec/aacenc.c AACPCEInfo *pce = &s->pce; s 65 libavcodec/aacenc.c put_bits(pb, 4, s->samplerate_index); s 98 libavcodec/aacenc.c AACEncContext *s = avctx->priv_data; s 99 libavcodec/aacenc.c int channels = (!s->needs_pce)*(s->channels - (s->channels == 8 ? 1 : 0)); s 107 libavcodec/aacenc.c put_bits(&pb, 5, s->profile+1); //profile s 108 libavcodec/aacenc.c put_bits(&pb, 4, s->samplerate_index); //sample rate index s 114 libavcodec/aacenc.c if (s->needs_pce) s 127 libavcodec/aacenc.c void ff_quantize_band_cost_cache_init(struct AACEncContext *s) s 129 libavcodec/aacenc.c ++s->quantize_band_cost_cache_generation; s 130 libavcodec/aacenc.c if (s->quantize_band_cost_cache_generation == 0) { s 131 libavcodec/aacenc.c memset(s->quantize_band_cost_cache, 0, sizeof(s->quantize_band_cost_cache)); s 132 libavcodec/aacenc.c s->quantize_band_cost_cache_generation = 1; s 201 libavcodec/aacenc.c static void apply_window_and_mdct(AACEncContext *s, SingleChannelElement *sce, s 207 libavcodec/aacenc.c apply_window[sce->ics.window_sequence[0]](s->fdsp, sce, audio); s 210 libavcodec/aacenc.c s->mdct1024.mdct_calc(&s->mdct1024, sce->coeffs, output); s 213 libavcodec/aacenc.c s->mdct128.mdct_calc(&s->mdct128, &sce->coeffs[i], output + i*2); s 222 libavcodec/aacenc.c static void put_ics_info(AACEncContext *s, IndividualChannelStream *info) s 226 libavcodec/aacenc.c put_bits(&s->pb, 1, 0); // ics_reserved bit s 227 libavcodec/aacenc.c put_bits(&s->pb, 2, info->window_sequence[0]); s 228 libavcodec/aacenc.c put_bits(&s->pb, 1, info->use_kb_window[0]); s 230 libavcodec/aacenc.c put_bits(&s->pb, 6, info->max_sfb); s 231 libavcodec/aacenc.c put_bits(&s->pb, 1, !!info->predictor_present); s 233 libavcodec/aacenc.c put_bits(&s->pb, 4, info->max_sfb); s 235 libavcodec/aacenc.c put_bits(&s->pb, 1, !info->group_len[w]); s 371 libavcodec/aacenc.c static void encode_band_info(AACEncContext *s, SingleChannelElement *sce) s 375 libavcodec/aacenc.c if (s->coder->set_special_band_scalefactors) s 376 libavcodec/aacenc.c s->coder->set_special_band_scalefactors(s, sce); s 379 libavcodec/aacenc.c s->coder->encode_window_bands_info(s, sce, w, sce->ics.group_len[w], s->lambda); s 385 libavcodec/aacenc.c static void encode_scale_factors(AVCodecContext *avctx, AACEncContext *s, s 399 libavcodec/aacenc.c put_bits(&s->pb, NOISE_PRE_BITS, diff + NOISE_PRE); s 412 libavcodec/aacenc.c put_bits(&s->pb, ff_aac_scalefactor_bits[diff], ff_aac_scalefactor_code[diff]); s 421 libavcodec/aacenc.c static void encode_pulses(AACEncContext *s, Pulse *pulse) s 425 libavcodec/aacenc.c put_bits(&s->pb, 1, !!pulse->num_pulse); s 429 libavcodec/aacenc.c put_bits(&s->pb, 2, pulse->num_pulse - 1); s 430 libavcodec/aacenc.c put_bits(&s->pb, 6, pulse->start); s 432 libavcodec/aacenc.c put_bits(&s->pb, 5, pulse->pos[i]); s 433 libavcodec/aacenc.c put_bits(&s->pb, 4, pulse->amp[i]); s 440 libavcodec/aacenc.c static void encode_spectral_coeffs(AACEncContext *s, SingleChannelElement *sce) s 452 libavcodec/aacenc.c s->coder->quantize_and_encode_band(s, &s->pb, s 457 libavcodec/aacenc.c s->lambda, s 468 libavcodec/aacenc.c static void avoid_clipping(AACEncContext *s, SingleChannelElement *sce) s 488 libavcodec/aacenc.c static int encode_individual_channel(AVCodecContext *avctx, AACEncContext *s, s 492 libavcodec/aacenc.c put_bits(&s->pb, 8, sce->sf_idx[0]); s 494 libavcodec/aacenc.c put_ics_info(s, &sce->ics); s 495 libavcodec/aacenc.c if (s->coder->encode_main_pred) s 496 libavcodec/aacenc.c s->coder->encode_main_pred(s, sce); s 497 libavcodec/aacenc.c if (s->coder->encode_ltp_info) s 498 libavcodec/aacenc.c s->coder->encode_ltp_info(s, sce, 0); s 500 libavcodec/aacenc.c encode_band_info(s, sce); s 501 libavcodec/aacenc.c encode_scale_factors(avctx, s, sce); s 502 libavcodec/aacenc.c encode_pulses(s, &sce->pulse); s 503 libavcodec/aacenc.c put_bits(&s->pb, 1, !!sce->tns.present); s 504 libavcodec/aacenc.c if (s->coder->encode_tns_info) s 505 libavcodec/aacenc.c s->coder->encode_tns_info(s, sce); s 506 libavcodec/aacenc.c put_bits(&s->pb, 1, 0); //ssr s 507 libavcodec/aacenc.c encode_spectral_coeffs(s, sce); s 514 libavcodec/aacenc.c static void put_bitstream_info(AACEncContext *s, const char *name) s 519 libavcodec/aacenc.c put_bits(&s->pb, 3, TYPE_FIL); s 520 libavcodec/aacenc.c put_bits(&s->pb, 4, FFMIN(namelen, 15)); s 522 libavcodec/aacenc.c put_bits(&s->pb, 8, namelen - 14); s 523 libavcodec/aacenc.c put_bits(&s->pb, 4, 0); //extension type - filler s 524 libavcodec/aacenc.c padbits = -put_bits_count(&s->pb) & 7; s 525 libavcodec/aacenc.c avpriv_align_put_bits(&s->pb); s 527 libavcodec/aacenc.c put_bits(&s->pb, 8, name[i]); s 528 libavcodec/aacenc.c put_bits(&s->pb, 12 - padbits, 0); s 535 libavcodec/aacenc.c static void copy_input_samples(AACEncContext *s, const AVFrame *frame) s 539 libavcodec/aacenc.c const uint8_t *channel_map = s->reorder_map; s 542 libavcodec/aacenc.c for (ch = 0; ch < s->channels; ch++) { s 544 libavcodec/aacenc.c memcpy(&s->planar_samples[ch][1024], &s->planar_samples[ch][2048], 1024 * sizeof(s->planar_samples[0][0])); s 548 libavcodec/aacenc.c memcpy(&s->planar_samples[ch][2048], s 550 libavcodec/aacenc.c frame->nb_samples * sizeof(s->planar_samples[0][0])); s 552 libavcodec/aacenc.c memset(&s->planar_samples[ch][end], 0, s 553 libavcodec/aacenc.c (3072 - end) * sizeof(s->planar_samples[0][0])); s 560 libavcodec/aacenc.c AACEncContext *s = avctx->priv_data; s 561 libavcodec/aacenc.c float **samples = s->planar_samples, *samples2, *la, *overlap; s 573 libavcodec/aacenc.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) s 576 libavcodec/aacenc.c if (!s->afq.remaining_samples || (!s->afq.frame_alloc && !s->afq.frame_count)) s 580 libavcodec/aacenc.c copy_input_samples(s, frame); s 581 libavcodec/aacenc.c if (s->psypp) s 582 libavcodec/aacenc.c ff_psy_preprocess(s->psypp, s->planar_samples, s->channels); s 588 libavcodec/aacenc.c for (i = 0; i < s->chan_map[0]; i++) { s 590 libavcodec/aacenc.c tag = s->chan_map[i+1]; s 592 libavcodec/aacenc.c cpe = &s->cpe[i]; s 598 libavcodec/aacenc.c s->cur_channel = start_ch + ch; s 599 libavcodec/aacenc.c overlap = &samples[s->cur_channel][0]; s 615 libavcodec/aacenc.c ics->num_swb = s->samplerate_index >= 8 ? 1 : 3; s 617 libavcodec/aacenc.c wi[ch] = s->psy.model->window(&s->psy, samples2, la, s->cur_channel, s 625 libavcodec/aacenc.c ics->swb_sizes = s->psy.bands [ics->num_windows == 8]; s 626 libavcodec/aacenc.c ics->num_swb = tag == TYPE_LFE ? ics->num_swb : s->psy.num_bands[ics->num_windows == 8]; s 629 libavcodec/aacenc.c ff_swb_offset_128 [s->samplerate_index]: s 630 libavcodec/aacenc.c ff_swb_offset_1024[s->samplerate_index]; s 632 libavcodec/aacenc.c ff_tns_max_bands_128 [s->samplerate_index]: s 633 libavcodec/aacenc.c ff_tns_max_bands_1024[s->samplerate_index]; s 664 libavcodec/aacenc.c apply_window_and_mdct(s, sce, overlap); s 666 libavcodec/aacenc.c if (s->options.ltp && s->coder->update_ltp) { s 667 libavcodec/aacenc.c s->coder->update_ltp(s, sce); s 668 libavcodec/aacenc.c apply_window[sce->ics.window_sequence[0]](s->fdsp, sce, &sce->ltp_state[0]); s 669 libavcodec/aacenc.c s->mdct1024.mdct_calc(&s->mdct1024, sce->lcoeffs, sce->ret_buf); s 678 libavcodec/aacenc.c avoid_clipping(s, sce); s 682 libavcodec/aacenc.c if ((ret = ff_alloc_packet2(avctx, avpkt, 8192 * s->channels, 0)) < 0) s 686 libavcodec/aacenc.c init_put_bits(&s->pb, avpkt->data, avpkt->size); s 689 libavcodec/aacenc.c put_bitstream_info(s, LIBAVCODEC_IDENT); s 693 libavcodec/aacenc.c for (i = 0; i < s->chan_map[0]; i++) { s 696 libavcodec/aacenc.c tag = s->chan_map[i+1]; s 698 libavcodec/aacenc.c cpe = &s->cpe[i]; s 702 libavcodec/aacenc.c put_bits(&s->pb, 3, tag); s 703 libavcodec/aacenc.c put_bits(&s->pb, 4, chan_el_counter[tag]++); s 716 libavcodec/aacenc.c s->psy.bitres.alloc = -1; s 717 libavcodec/aacenc.c s->psy.bitres.bits = s->last_frame_pb_count / s->channels; s 718 libavcodec/aacenc.c s->psy.model->analyze(&s->psy, start_ch, coeffs, wi); s 719 libavcodec/aacenc.c if (s->psy.bitres.alloc > 0) { s 721 libavcodec/aacenc.c target_bits += s->psy.bitres.alloc s 722 libavcodec/aacenc.c * (s->lambda / (avctx->global_quality ? avctx->global_quality : 120)); s 723 libavcodec/aacenc.c s->psy.bitres.alloc /= chans; s 725 libavcodec/aacenc.c s->cur_type = tag; s 727 libavcodec/aacenc.c s->cur_channel = start_ch + ch; s 728 libavcodec/aacenc.c if (s->options.pns && s->coder->mark_pns) s 729 libavcodec/aacenc.c s->coder->mark_pns(s, avctx, &cpe->ch[ch]); s 730 libavcodec/aacenc.c s->coder->search_for_quantizers(avctx, s, &cpe->ch[ch], s->lambda); s 746 libavcodec/aacenc.c s->cur_channel = start_ch + ch; s 747 libavcodec/aacenc.c if (s->options.tns && s->coder->search_for_tns) s 748 libavcodec/aacenc.c s->coder->search_for_tns(s, sce); s 749 libavcodec/aacenc.c if (s->options.tns && s->coder->apply_tns_filt) s 750 libavcodec/aacenc.c s->coder->apply_tns_filt(s, sce); s 753 libavcodec/aacenc.c if (s->options.pns && s->coder->search_for_pns) s 754 libavcodec/aacenc.c s->coder->search_for_pns(s, avctx, sce); s 756 libavcodec/aacenc.c s->cur_channel = start_ch; s 757 libavcodec/aacenc.c if (s->options.intensity_stereo) { /* Intensity Stereo */ s 758 libavcodec/aacenc.c if (s->coder->search_for_is) s 759 libavcodec/aacenc.c s->coder->search_for_is(s, avctx, cpe); s 763 libavcodec/aacenc.c if (s->options.pred) { /* Prediction */ s 766 libavcodec/aacenc.c s->cur_channel = start_ch + ch; s 767 libavcodec/aacenc.c if (s->options.pred && s->coder->search_for_pred) s 768 libavcodec/aacenc.c s->coder->search_for_pred(s, sce); s 771 libavcodec/aacenc.c if (s->coder->adjust_common_pred) s 772 libavcodec/aacenc.c s->coder->adjust_common_pred(s, cpe); s 775 libavcodec/aacenc.c s->cur_channel = start_ch + ch; s 776 libavcodec/aacenc.c if (s->options.pred && s->coder->apply_main_pred) s 777 libavcodec/aacenc.c s->coder->apply_main_pred(s, sce); s 779 libavcodec/aacenc.c s->cur_channel = start_ch; s 781 libavcodec/aacenc.c if (s->options.mid_side) { /* Mid/Side stereo */ s 782 libavcodec/aacenc.c if (s->options.mid_side == -1 && s->coder->search_for_ms) s 783 libavcodec/aacenc.c s->coder->search_for_ms(s, cpe); s 789 libavcodec/aacenc.c if (s->options.ltp) { /* LTP */ s 792 libavcodec/aacenc.c s->cur_channel = start_ch + ch; s 793 libavcodec/aacenc.c if (s->coder->search_for_ltp) s 794 libavcodec/aacenc.c s->coder->search_for_ltp(s, sce, cpe->common_window); s 797 libavcodec/aacenc.c s->cur_channel = start_ch; s 798 libavcodec/aacenc.c if (s->coder->adjust_common_ltp) s 799 libavcodec/aacenc.c s->coder->adjust_common_ltp(s, cpe); s 802 libavcodec/aacenc.c put_bits(&s->pb, 1, cpe->common_window); s 804 libavcodec/aacenc.c put_ics_info(s, &cpe->ch[0].ics); s 805 libavcodec/aacenc.c if (s->coder->encode_main_pred) s 806 libavcodec/aacenc.c s->coder->encode_main_pred(s, &cpe->ch[0]); s 807 libavcodec/aacenc.c if (s->coder->encode_ltp_info) s 808 libavcodec/aacenc.c s->coder->encode_ltp_info(s, &cpe->ch[0], 1); s 809 libavcodec/aacenc.c encode_ms_info(&s->pb, cpe); s 814 libavcodec/aacenc.c s->cur_channel = start_ch + ch; s 815 libavcodec/aacenc.c encode_individual_channel(avctx, s, &cpe->ch[ch], cpe->common_window); s 829 libavcodec/aacenc.c frame_bits = put_bits_count(&s->pb); s 831 libavcodec/aacenc.c rate_bits = FFMIN(rate_bits, 6144 * s->channels - 3); s 833 libavcodec/aacenc.c too_many_bits = FFMIN(too_many_bits, 6144 * s->channels - 3); s 842 libavcodec/aacenc.c || frame_bits >= 6144 * s->channels - 3 ) s 859 libavcodec/aacenc.c s->lambda = FFMIN(s->lambda * ratio, 65536.f); s 866 libavcodec/aacenc.c for (i = 0; i < s->chan_map[0]; i++) { s 869 libavcodec/aacenc.c cpe = &s->cpe[i]; s 881 libavcodec/aacenc.c if (s->options.ltp && s->coder->ltp_insert_new_frame) s 882 libavcodec/aacenc.c s->coder->ltp_insert_new_frame(s); s 884 libavcodec/aacenc.c put_bits(&s->pb, 3, TYPE_END); s 885 libavcodec/aacenc.c flush_put_bits(&s->pb); s 887 libavcodec/aacenc.c s->last_frame_pb_count = put_bits_count(&s->pb); s 889 libavcodec/aacenc.c s->lambda_sum += s->lambda; s 890 libavcodec/aacenc.c s->lambda_count++; s 892 libavcodec/aacenc.c ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts, s 895 libavcodec/aacenc.c avpkt->size = put_bits_count(&s->pb) >> 3; s 902 libavcodec/aacenc.c AACEncContext *s = avctx->priv_data; s 904 libavcodec/aacenc.c av_log(avctx, AV_LOG_INFO, "Qavg: %.3f\n", s->lambda_sum / s->lambda_count); s 906 libavcodec/aacenc.c ff_mdct_end(&s->mdct1024); s 907 libavcodec/aacenc.c ff_mdct_end(&s->mdct128); s 908 libavcodec/aacenc.c ff_psy_end(&s->psy); s 909 libavcodec/aacenc.c ff_lpc_end(&s->lpc); s 910 libavcodec/aacenc.c if (s->psypp) s 911 libavcodec/aacenc.c ff_psy_preprocess_end(s->psypp); s 912 libavcodec/aacenc.c av_freep(&s->buffer.samples); s 913 libavcodec/aacenc.c av_freep(&s->cpe); s 914 libavcodec/aacenc.c av_freep(&s->fdsp); s 915 libavcodec/aacenc.c ff_af_queue_close(&s->afq); s 919 libavcodec/aacenc.c static av_cold int dsp_init(AVCodecContext *avctx, AACEncContext *s) s 923 libavcodec/aacenc.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 924 libavcodec/aacenc.c if (!s->fdsp) s 933 libavcodec/aacenc.c if ((ret = ff_mdct_init(&s->mdct1024, 11, 0, 32768.0)) < 0) s 935 libavcodec/aacenc.c if ((ret = ff_mdct_init(&s->mdct128, 8, 0, 32768.0)) < 0) s 941 libavcodec/aacenc.c static av_cold int alloc_buffers(AVCodecContext *avctx, AACEncContext *s) s 944 libavcodec/aacenc.c FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->buffer.samples, s->channels, 3 * 1024 * sizeof(s->buffer.samples[0]), alloc_fail); s 945 libavcodec/aacenc.c FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->cpe, s->chan_map[0], sizeof(ChannelElement), alloc_fail); s 947 libavcodec/aacenc.c for(ch = 0; ch < s->channels; ch++) s 948 libavcodec/aacenc.c s->planar_samples[ch] = s->buffer.samples + 3 * 1024 * ch; s 962 libavcodec/aacenc.c AACEncContext *s = avctx->priv_data; s 969 libavcodec/aacenc.c s->last_frame_pb_count = 0; s 972 libavcodec/aacenc.c s->lambda = avctx->global_quality > 0 ? avctx->global_quality : 120; s 975 libavcodec/aacenc.c s->channels = avctx->channels; s 977 libavcodec/aacenc.c s->needs_pce = 1; s 980 libavcodec/aacenc.c s->needs_pce = s->options.pce; s 985 libavcodec/aacenc.c if (s->needs_pce) { s 993 libavcodec/aacenc.c s->pce = aac_pce_configs[i]; s 994 libavcodec/aacenc.c s->reorder_map = s->pce.reorder_map; s 995 libavcodec/aacenc.c s->chan_map = s->pce.config_map; s 997 libavcodec/aacenc.c s->reorder_map = aac_chan_maps[s->channels - 1]; s 998 libavcodec/aacenc.c s->chan_map = aac_chan_configs[s->channels - 1]; s 1002 libavcodec/aacenc.c for (i = 1; i <= s->chan_map[0]; i++) { s 1003 libavcodec/aacenc.c avctx->bit_rate += s->chan_map[i] == TYPE_CPE ? 128000 : /* Pair */ s 1004 libavcodec/aacenc.c s->chan_map[i] == TYPE_LFE ? 16000 : /* LFE */ s 1013 libavcodec/aacenc.c s->samplerate_index = i; s 1014 libavcodec/aacenc.c ERROR_IF(s->samplerate_index == 16 || s 1015 libavcodec/aacenc.c s->samplerate_index >= ff_aac_swb_size_1024_len || s 1016 libavcodec/aacenc.c s->samplerate_index >= ff_aac_swb_size_128_len, s 1020 libavcodec/aacenc.c WARN_IF(1024.0 * avctx->bit_rate / avctx->sample_rate > 6144 * s->channels, s 1023 libavcodec/aacenc.c 6144 * s->channels); s 1024 libavcodec/aacenc.c avctx->bit_rate = (int64_t)FFMIN(6144 * s->channels / 1024.0 * avctx->sample_rate, s 1035 libavcodec/aacenc.c ERROR_IF(s->options.pred, s 1037 libavcodec/aacenc.c ERROR_IF(s->options.ltp, s 1039 libavcodec/aacenc.c WARN_IF(s->options.pns, s 1041 libavcodec/aacenc.c s->options.pns = 0; s 1043 libavcodec/aacenc.c s->options.ltp = 1; s 1044 libavcodec/aacenc.c ERROR_IF(s->options.pred, s 1047 libavcodec/aacenc.c s->options.pred = 1; s 1048 libavcodec/aacenc.c ERROR_IF(s->options.ltp, s 1050 libavcodec/aacenc.c } else if (s->options.ltp) { s 1054 libavcodec/aacenc.c ERROR_IF(s->options.pred, s 1056 libavcodec/aacenc.c } else if (s->options.pred) { s 1060 libavcodec/aacenc.c ERROR_IF(s->options.ltp, s 1063 libavcodec/aacenc.c s->profile = avctx->profile; s 1066 libavcodec/aacenc.c s->coder = &ff_aac_coders[s->options.coder]; s 1067 libavcodec/aacenc.c if (s->options.coder == AAC_CODER_ANMR) { s 1070 libavcodec/aacenc.c s->options.intensity_stereo = 0; s 1071 libavcodec/aacenc.c s->options.pns = 0; s 1073 libavcodec/aacenc.c ERROR_IF(s->options.ltp && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL, s 1077 libavcodec/aacenc.c if (s->channels > 3) s 1078 libavcodec/aacenc.c s->options.mid_side = 0; s 1080 libavcodec/aacenc.c if ((ret = dsp_init(avctx, s)) < 0) s 1083 libavcodec/aacenc.c if ((ret = alloc_buffers(avctx, s)) < 0) s 1089 libavcodec/aacenc.c sizes[0] = ff_aac_swb_size_1024[s->samplerate_index]; s 1090 libavcodec/aacenc.c sizes[1] = ff_aac_swb_size_128[s->samplerate_index]; s 1091 libavcodec/aacenc.c lengths[0] = ff_aac_num_swb_1024[s->samplerate_index]; s 1092 libavcodec/aacenc.c lengths[1] = ff_aac_num_swb_128[s->samplerate_index]; s 1093 libavcodec/aacenc.c for (i = 0; i < s->chan_map[0]; i++) s 1094 libavcodec/aacenc.c grouping[i] = s->chan_map[i + 1] == TYPE_CPE; s 1095 libavcodec/aacenc.c if ((ret = ff_psy_init(&s->psy, avctx, 2, sizes, lengths, s 1096 libavcodec/aacenc.c s->chan_map[0], grouping)) < 0) s 1098 libavcodec/aacenc.c s->psypp = ff_psy_preprocess_init(avctx); s 1099 libavcodec/aacenc.c ff_lpc_init(&s->lpc, 2*avctx->frame_size, TNS_MAX_ORDER, FF_LPC_TYPE_LEVINSON); s 1100 libavcodec/aacenc.c s->random_state = 0x1f2e3d4c; s 1102 libavcodec/aacenc.c s->abs_pow34 = abs_pow34_v; s 1103 libavcodec/aacenc.c s->quant_bands = quantize_bands; s 1106 libavcodec/aacenc.c ff_aac_dsp_init_x86(s); s 1109 libavcodec/aacenc.c ff_aac_coder_init_mips(s); s 1114 libavcodec/aacenc.c ff_af_queue_init(avctx, &s->afq); s 57 libavcodec/aacenc.h void (*search_for_quantizers)(AVCodecContext *avctx, struct AACEncContext *s, s 59 libavcodec/aacenc.h void (*encode_window_bands_info)(struct AACEncContext *s, SingleChannelElement *sce, s 61 libavcodec/aacenc.h void (*quantize_and_encode_band)(struct AACEncContext *s, PutBitContext *pb, const float *in, float *out, int size, s 63 libavcodec/aacenc.h void (*encode_tns_info)(struct AACEncContext *s, SingleChannelElement *sce); s 64 libavcodec/aacenc.h void (*encode_ltp_info)(struct AACEncContext *s, SingleChannelElement *sce, int common_window); s 65 libavcodec/aacenc.h void (*encode_main_pred)(struct AACEncContext *s, SingleChannelElement *sce); s 66 libavcodec/aacenc.h void (*adjust_common_pred)(struct AACEncContext *s, ChannelElement *cpe); s 67 libavcodec/aacenc.h void (*adjust_common_ltp)(struct AACEncContext *s, ChannelElement *cpe); s 68 libavcodec/aacenc.h void (*apply_main_pred)(struct AACEncContext *s, SingleChannelElement *sce); s 69 libavcodec/aacenc.h void (*apply_tns_filt)(struct AACEncContext *s, SingleChannelElement *sce); s 70 libavcodec/aacenc.h void (*update_ltp)(struct AACEncContext *s, SingleChannelElement *sce); s 71 libavcodec/aacenc.h void (*ltp_insert_new_frame)(struct AACEncContext *s); s 72 libavcodec/aacenc.h void (*set_special_band_scalefactors)(struct AACEncContext *s, SingleChannelElement *sce); s 73 libavcodec/aacenc.h void (*search_for_pns)(struct AACEncContext *s, AVCodecContext *avctx, SingleChannelElement *sce); s 74 libavcodec/aacenc.h void (*mark_pns)(struct AACEncContext *s, AVCodecContext *avctx, SingleChannelElement *sce); s 75 libavcodec/aacenc.h void (*search_for_tns)(struct AACEncContext *s, SingleChannelElement *sce); s 76 libavcodec/aacenc.h void (*search_for_ltp)(struct AACEncContext *s, SingleChannelElement *sce, int common_window); s 77 libavcodec/aacenc.h void (*search_for_ms)(struct AACEncContext *s, ChannelElement *cpe); s 78 libavcodec/aacenc.h void (*search_for_is)(struct AACEncContext *s, AVCodecContext *avctx, ChannelElement *cpe); s 79 libavcodec/aacenc.h void (*search_for_pred)(struct AACEncContext *s, SingleChannelElement *sce); s 423 libavcodec/aacenc.h void ff_aac_dsp_init_x86(AACEncContext *s); s 425 libavcodec/aacenc.h void ff_quantize_band_cost_cache_init(struct AACEncContext *s); s 33 libavcodec/aacenc_is.c struct AACISError ff_aac_is_encoding_err(AACEncContext *s, ChannelElement *cpe, s 43 libavcodec/aacenc_is.c float *L34 = &s->scoefs[256*0], *R34 = &s->scoefs[256*1]; s 44 libavcodec/aacenc_is.c float *IS = &s->scoefs[256*2], *I34 = &s->scoefs[256*3]; s 54 libavcodec/aacenc_is.c FFPsyBand *band0 = &s->psy.ch[s->cur_channel+0].psy_bands[(w+w2)*16+g]; s 55 libavcodec/aacenc_is.c FFPsyBand *band1 = &s->psy.ch[s->cur_channel+1].psy_bands[(w+w2)*16+g]; s 62 libavcodec/aacenc_is.c s->abs_pow34(L34, &L[start+(w+w2)*128], sce0->ics.swb_sizes[g]); s 63 libavcodec/aacenc_is.c s->abs_pow34(R34, &R[start+(w+w2)*128], sce0->ics.swb_sizes[g]); s 64 libavcodec/aacenc_is.c s->abs_pow34(I34, IS, sce0->ics.swb_sizes[g]); s 67 libavcodec/aacenc_is.c dist1 += quantize_band_cost(s, &L[start + (w+w2)*128], L34, s 71 libavcodec/aacenc_is.c s->lambda / band0->threshold, INFINITY, NULL, NULL, 0); s 72 libavcodec/aacenc_is.c dist1 += quantize_band_cost(s, &R[start + (w+w2)*128], R34, s 76 libavcodec/aacenc_is.c s->lambda / band1->threshold, INFINITY, NULL, NULL, 0); s 77 libavcodec/aacenc_is.c dist2 += quantize_band_cost(s, IS, I34, sce0->ics.swb_sizes[g], s 79 libavcodec/aacenc_is.c s->lambda / minthr, INFINITY, NULL, NULL, 0); s 84 libavcodec/aacenc_is.c dist_spec_err *= s->lambda / minthr; s 98 libavcodec/aacenc_is.c void ff_aac_search_for_is(AACEncContext *s, AVCodecContext *avctx, ChannelElement *cpe) s 115 libavcodec/aacenc_is.c if (start*freq_mult > INT_STEREO_LOW_LIMIT*(s->lambda/170.0f) && s 131 libavcodec/aacenc_is.c ph_err1 = ff_aac_is_encoding_err(s, cpe, start, w, g, s 133 libavcodec/aacenc_is.c ph_err2 = ff_aac_is_encoding_err(s, cpe, start, w, g, s 45 libavcodec/aacenc_is.h struct AACISError ff_aac_is_encoding_err(AACEncContext *s, ChannelElement *cpe, s 49 libavcodec/aacenc_is.h void ff_aac_search_for_is(AACEncContext *s, AVCodecContext *avctx, ChannelElement *cpe); s 35 libavcodec/aacenc_ltp.c void ff_aac_encode_ltp_info(AACEncContext *s, SingleChannelElement *sce, s 40 libavcodec/aacenc_ltp.c if (s->profile != FF_PROFILE_AAC_LTP || !ics->predictor_present) s 43 libavcodec/aacenc_ltp.c put_bits(&s->pb, 1, 0); s 44 libavcodec/aacenc_ltp.c put_bits(&s->pb, 1, ics->ltp.present); s 47 libavcodec/aacenc_ltp.c put_bits(&s->pb, 11, ics->ltp.lag); s 48 libavcodec/aacenc_ltp.c put_bits(&s->pb, 3, ics->ltp.coef_idx); s 50 libavcodec/aacenc_ltp.c put_bits(&s->pb, 1, ics->ltp.used[i]); s 53 libavcodec/aacenc_ltp.c void ff_aac_ltp_insert_new_frame(AACEncContext *s) s 58 libavcodec/aacenc_ltp.c for (i = 0; i < s->chan_map[0]; i++) { s 59 libavcodec/aacenc_ltp.c cpe = &s->cpe[i]; s 60 libavcodec/aacenc_ltp.c tag = s->chan_map[i+1]; s 67 libavcodec/aacenc_ltp.c memcpy(&sce->ltp_state[1024], &s->planar_samples[cur_channel][2048], 1024*sizeof(sce->ltp_state[0])); s 117 libavcodec/aacenc_ltp.c void ff_aac_update_ltp(AACEncContext *s, SingleChannelElement *sce) s 120 libavcodec/aacenc_ltp.c const float *samples = &s->planar_samples[s->cur_channel][1024]; s 122 libavcodec/aacenc_ltp.c if (s->profile != FF_PROFILE_AAC_LTP) s 130 libavcodec/aacenc_ltp.c void ff_aac_adjust_common_ltp(AACEncContext *s, ChannelElement *cpe) s 159 libavcodec/aacenc_ltp.c void ff_aac_search_for_ltp(AACEncContext *s, SingleChannelElement *sce, s 164 libavcodec/aacenc_ltp.c float *C34 = &s->scoefs[128*0], *PCD = &s->scoefs[128*1]; s 165 libavcodec/aacenc_ltp.c float *PCD34 = &s->scoefs[128*2]; s 176 libavcodec/aacenc_ltp.c if (!sce->ics.ltp.lag || s->lambda > 120.0f) s 190 libavcodec/aacenc_ltp.c FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; s 193 libavcodec/aacenc_ltp.c s->abs_pow34(C34, &sce->coeffs[start+(w+w2)*128], sce->ics.swb_sizes[g]); s 194 libavcodec/aacenc_ltp.c s->abs_pow34(PCD34, PCD, sce->ics.swb_sizes[g]); s 195 libavcodec/aacenc_ltp.c dist1 += quantize_band_cost(s, &sce->coeffs[start+(w+w2)*128], C34, sce->ics.swb_sizes[g], s 197 libavcodec/aacenc_ltp.c s->lambda/band->threshold, INFINITY, &bits_tmp1, NULL, 0); s 198 libavcodec/aacenc_ltp.c dist2 += quantize_band_cost(s, PCD, PCD34, sce->ics.swb_sizes[g], s 201 libavcodec/aacenc_ltp.c s->lambda/band->threshold, INFINITY, &bits_tmp2, NULL, 0); s 33 libavcodec/aacenc_ltp.h void ff_aac_encode_ltp_info(AACEncContext *s, SingleChannelElement *sce, s 35 libavcodec/aacenc_ltp.h void ff_aac_update_ltp(AACEncContext *s, SingleChannelElement *sce); s 36 libavcodec/aacenc_ltp.h void ff_aac_adjust_common_ltp(AACEncContext *s, ChannelElement *cpe); s 37 libavcodec/aacenc_ltp.h void ff_aac_ltp_insert_new_frame(AACEncContext *s); s 38 libavcodec/aacenc_ltp.h void ff_aac_search_for_ltp(AACEncContext *s, SingleChannelElement *sce, s 119 libavcodec/aacenc_pred.c void ff_aac_apply_main_pred(AACEncContext *s, SingleChannelElement *sce) s 122 libavcodec/aacenc_pred.c const int pmax = FFMIN(sce->ics.max_sfb, ff_aac_pred_sfb_max[s->samplerate_index]); s 151 libavcodec/aacenc_pred.c void ff_aac_adjust_common_pred(AACEncContext *s, ChannelElement *cpe) s 156 libavcodec/aacenc_pred.c const int pmax0 = FFMIN(sce0->ics.max_sfb, ff_aac_pred_sfb_max[s->samplerate_index]); s 157 libavcodec/aacenc_pred.c const int pmax1 = FFMIN(sce1->ics.max_sfb, ff_aac_pred_sfb_max[s->samplerate_index]); s 187 libavcodec/aacenc_pred.c ph_err1 = ff_aac_is_encoding_err(s, cpe, start, w, g, s 189 libavcodec/aacenc_pred.c ph_err2 = ff_aac_is_encoding_err(s, cpe, start, w, g, s 233 libavcodec/aacenc_pred.c void ff_aac_search_for_pred(AACEncContext *s, SingleChannelElement *sce) s 236 libavcodec/aacenc_pred.c const int pmax = FFMIN(sce->ics.max_sfb, ff_aac_pred_sfb_max[s->samplerate_index]); s 237 libavcodec/aacenc_pred.c float *O34 = &s->scoefs[128*0], *P34 = &s->scoefs[128*1]; s 238 libavcodec/aacenc_pred.c float *SENT = &s->scoefs[128*2], *S34 = &s->scoefs[128*3]; s 239 libavcodec/aacenc_pred.c float *QERR = &s->scoefs[128*4]; s 265 libavcodec/aacenc_pred.c const FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[sfb]; s 268 libavcodec/aacenc_pred.c (s->cur_channel && sce->band_type[sfb] >= INTENSITY_BT2) || s 273 libavcodec/aacenc_pred.c s->abs_pow34(O34, &sce->coeffs[start_coef], num_coeffs); s 274 libavcodec/aacenc_pred.c dist1 = quantize_and_encode_band_cost(s, NULL, &sce->coeffs[start_coef], NULL, s 276 libavcodec/aacenc_pred.c cb_n, s->lambda / band->threshold, INFINITY, &cost1, NULL, 0); s 282 libavcodec/aacenc_pred.c s->abs_pow34(S34, SENT, num_coeffs); s 287 libavcodec/aacenc_pred.c quantize_and_encode_band_cost(s, NULL, SENT, QERR, S34, num_coeffs, s 288 libavcodec/aacenc_pred.c sce->sf_idx[sfb], cb_p, s->lambda / band->threshold, INFINITY, s 294 libavcodec/aacenc_pred.c s->abs_pow34(P34, &sce->prcoeffs[start_coef], num_coeffs); s 299 libavcodec/aacenc_pred.c dist2 = quantize_and_encode_band_cost(s, NULL, &sce->prcoeffs[start_coef], NULL, s 301 libavcodec/aacenc_pred.c cb_p, s->lambda / band->threshold, INFINITY, NULL, NULL, 0); s 304 libavcodec/aacenc_pred.c dist_spec_err *= s->lambda / band->threshold; s 332 libavcodec/aacenc_pred.c void ff_aac_encode_main_pred(AACEncContext *s, SingleChannelElement *sce) s 336 libavcodec/aacenc_pred.c const int pmax = FFMIN(ics->max_sfb, ff_aac_pred_sfb_max[s->samplerate_index]); s 338 libavcodec/aacenc_pred.c if (s->profile != FF_PROFILE_AAC_MAIN || s 342 libavcodec/aacenc_pred.c put_bits(&s->pb, 1, !!ics->predictor_reset_group); s 344 libavcodec/aacenc_pred.c put_bits(&s->pb, 5, ics->predictor_reset_group); s 346 libavcodec/aacenc_pred.c put_bits(&s->pb, 1, ics->prediction_used[sfb]); s 42 libavcodec/aacenc_pred.h void ff_aac_apply_main_pred(AACEncContext *s, SingleChannelElement *sce); s 43 libavcodec/aacenc_pred.h void ff_aac_adjust_common_pred(AACEncContext *s, ChannelElement *cpe); s 44 libavcodec/aacenc_pred.h void ff_aac_search_for_pred(AACEncContext *s, SingleChannelElement *sce); s 45 libavcodec/aacenc_pred.h void ff_aac_encode_main_pred(AACEncContext *s, SingleChannelElement *sce); s 42 libavcodec/aacenc_quantization.h struct AACEncContext *s, s 77 libavcodec/aacenc_quantization.h s->abs_pow34(s->scoefs, in, size); s 78 libavcodec/aacenc_quantization.h scaled = s->scoefs; s 80 libavcodec/aacenc_quantization.h s->quant_bands(s->qcoefs, in, scaled, size, !BT_UNSIGNED, aac_cb_maxval[cb], Q34, ROUNDING); s 88 libavcodec/aacenc_quantization.h int *quants = s->qcoefs + i; s 162 libavcodec/aacenc_quantization.h static inline float quantize_and_encode_band_cost_NONE(struct AACEncContext *s, PutBitContext *pb, s 173 libavcodec/aacenc_quantization.h struct AACEncContext *s, \ s 179 libavcodec/aacenc_quantization.h s, pb, in, quant, scaled, size, scale_idx, \ s 196 libavcodec/aacenc_quantization.h struct AACEncContext *s, s 220 libavcodec/aacenc_quantization.h struct AACEncContext *s, s 244 libavcodec/aacenc_quantization.h s, pb, in, quant, scaled, size, scale_idx, cb, \ s 247 libavcodec/aacenc_quantization.h s, pb, in, quant, scaled, size, scale_idx, cb, \ s 250 libavcodec/aacenc_quantization.h static inline float quantize_band_cost(struct AACEncContext *s, const float *in, s 255 libavcodec/aacenc_quantization.h return quantize_and_encode_band_cost(s, NULL, in, NULL, scaled, size, scale_idx, s 259 libavcodec/aacenc_quantization.h static inline int quantize_band_cost_bits(struct AACEncContext *s, const float *in, s 265 libavcodec/aacenc_quantization.h quantize_and_encode_band_cost(s, NULL, in, NULL, scaled, size, scale_idx, s 273 libavcodec/aacenc_quantization.h static inline void quantize_and_encode_band(struct AACEncContext *s, PutBitContext *pb, s 277 libavcodec/aacenc_quantization.h quantize_and_encode_band_cost(s, pb, in, out, NULL, size, scale_idx, cb, lambda, s 31 libavcodec/aacenc_quantization_misc.h static inline float quantize_band_cost_cached(struct AACEncContext *s, int w, int g, const float *in, s 38 libavcodec/aacenc_quantization_misc.h entry = &s->quantize_band_cost_cache[scale_idx][w*16+g]; s 39 libavcodec/aacenc_quantization_misc.h if (entry->generation != s->quantize_band_cost_cache_generation || entry->cb != cb || entry->rtz != rtz) { s 40 libavcodec/aacenc_quantization_misc.h entry->rd = quantize_band_cost(s, in, scaled, size, scale_idx, s 44 libavcodec/aacenc_quantization_misc.h entry->generation = s->quantize_band_cost_cache_generation; s 70 libavcodec/aacenc_tns.c void ff_aac_encode_tns_info(AACEncContext *s, SingleChannelElement *sce) s 81 libavcodec/aacenc_tns.c put_bits(&s->pb, 2 - is8, sce->tns.n_filt[i]); s 84 libavcodec/aacenc_tns.c put_bits(&s->pb, 1, c_bits); s 86 libavcodec/aacenc_tns.c put_bits(&s->pb, 6 - 2 * is8, tns->length[i][filt]); s 87 libavcodec/aacenc_tns.c put_bits(&s->pb, 5 - 2 * is8, tns->order[i][filt]); s 90 libavcodec/aacenc_tns.c put_bits(&s->pb, 1, tns->direction[i][filt]); s 93 libavcodec/aacenc_tns.c put_bits(&s->pb, 1, coef_compress); s 96 libavcodec/aacenc_tns.c put_bits(&s->pb, coef_len, tns->coef_idx[i][filt][w]); s 102 libavcodec/aacenc_tns.c void ff_aac_apply_tns(AACEncContext *s, SingleChannelElement *sce) s 161 libavcodec/aacenc_tns.c void ff_aac_search_for_tns(AACEncContext *s, SingleChannelElement *sce) s 169 libavcodec/aacenc_tns.c const int sfb_start = av_clip(tns_min_sfb[is8][s->samplerate_index], 0, mmm); s 171 libavcodec/aacenc_tns.c const int order = is8 ? 7 : s->profile == FF_PROFILE_AAC_LOW ? 12 : TNS_MAX_ORDER; s 188 libavcodec/aacenc_tns.c FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[w*16+g]; s 196 libavcodec/aacenc_tns.c gain = ff_lpc_calc_ref_coefs_f(&s->lpc, &sce->coeffs[w*128 + coef_start], s 33 libavcodec/aacenc_tns.h void ff_aac_encode_tns_info(AACEncContext *s, SingleChannelElement *sce); s 34 libavcodec/aacenc_tns.h void ff_aac_apply_tns(AACEncContext *s, SingleChannelElement *sce); s 35 libavcodec/aacenc_tns.h void ff_aac_search_for_tns(AACEncContext *s, SingleChannelElement *sce); s 115 libavcodec/aacenc_utils.h float s = fabsf(scaled[w2*128+i]); s 116 libavcodec/aacenc_utils.h maxval = FFMAX(maxval, s); s 117 libavcodec/aacenc_utils.h e += s; s 118 libavcodec/aacenc_utils.h e2 += s *= s; s 123 libavcodec/aacenc_utils.h if (s >= ethresh) { s 127 libavcodec/aacenc_utils.h nzl += (s / ethresh) * (s / ethresh); s 129 libavcodec/aacenc_utils.h nzl += ff_fast_powf(s / ethresh, nzslope); s 264 libavcodec/aacenc_utils.h union { unsigned u; int s; } v = { previous_val * 1664525u + 1013904223 }; s 265 libavcodec/aacenc_utils.h return v.s; s 662 libavcodec/aacps.c static void decorrelation(PSContext *ps, INTFLOAT (*out)[32][2], const INTFLOAT (*s)[32][2], int is34) s 692 libavcodec/aacps.c ps->dsp.add_squares(power[i], s[k], nL - n0); s 755 libavcodec/aacps.c memcpy(delay[k]+PS_MAX_DELAY, s[k], numQMFSlots*sizeof(delay[k][0])); s 767 libavcodec/aacps.c memcpy(delay[k]+PS_MAX_DELAY, s[k], numQMFSlots*sizeof(delay[k][0])); s 775 libavcodec/aacps.c memcpy(delay[k]+PS_MAX_DELAY, s[k], numQMFSlots*sizeof(delay[k][0])); s 95 libavcodec/aacps_fixed_tablegen.h int s, c, sinhalf, coshalf; s 121 libavcodec/aacps_fixed_tablegen.h s = sinptr[theta]; s 125 libavcodec/aacps_fixed_tablegen.h theta = (int)(((int64_t)c * coshalf - (int64_t)s * sinhalf + 0x20000000) >> 30); s 126 libavcodec/aacps_fixed_tablegen.h s = (int)(((int64_t)s * coshalf + (int64_t)c * sinhalf + 0x20000000) >> 30); s 130 libavcodec/aacps_fixed_tablegen.h filter[q][n][1] = -(int)(((int64_t)proto[n] * s + 0x20000000) >> 30); s 354 libavcodec/aacps_fixed_tablegen.h int c, s; s 363 libavcodec/aacps_fixed_tablegen.h av_sincos_sf(-theta, &s, &c); s 365 libavcodec/aacps_fixed_tablegen.h Q_fract_allpass[0][k][m][1] = s; s 369 libavcodec/aacps_fixed_tablegen.h av_sincos_sf(-theta, &s, &c); s 371 libavcodec/aacps_fixed_tablegen.h phi_fract[0][k][1] = s; s 376 libavcodec/aacps_fixed_tablegen.h int c, s; s 385 libavcodec/aacps_fixed_tablegen.h av_sincos_sf(-theta, &s, &c); s 387 libavcodec/aacps_fixed_tablegen.h Q_fract_allpass[1][k][m][1] = s; s 391 libavcodec/aacps_fixed_tablegen.h av_sincos_sf(-theta, &s, &c); s 393 libavcodec/aacps_fixed_tablegen.h phi_fract[1][k][1] = s; s 54 libavcodec/aacpsdsp.h void AAC_RENAME(ff_psdsp_init)(PSDSPContext *s); s 55 libavcodec/aacpsdsp.h void ff_psdsp_init_arm(PSDSPContext *s); s 56 libavcodec/aacpsdsp.h void ff_psdsp_init_aarch64(PSDSPContext *s); s 57 libavcodec/aacpsdsp.h void ff_psdsp_init_mips(PSDSPContext *s); s 58 libavcodec/aacpsdsp.h void ff_psdsp_init_x86(PSDSPContext *s); s 212 libavcodec/aacpsdsp_template.c av_cold void AAC_RENAME(ff_psdsp_init)(PSDSPContext *s) s 214 libavcodec/aacpsdsp_template.c s->add_squares = ps_add_squares_c; s 215 libavcodec/aacpsdsp_template.c s->mul_pair_single = ps_mul_pair_single_c; s 216 libavcodec/aacpsdsp_template.c s->hybrid_analysis = ps_hybrid_analysis_c; s 217 libavcodec/aacpsdsp_template.c s->hybrid_analysis_ileave = ps_hybrid_analysis_ileave_c; s 218 libavcodec/aacpsdsp_template.c s->hybrid_synthesis_deint = ps_hybrid_synthesis_deint_c; s 219 libavcodec/aacpsdsp_template.c s->decorrelate = ps_decorrelate_c; s 220 libavcodec/aacpsdsp_template.c s->stereo_interpolate[0] = ps_stereo_interpolate_c; s 221 libavcodec/aacpsdsp_template.c s->stereo_interpolate[1] = ps_stereo_interpolate_ipdopd_c; s 225 libavcodec/aacpsdsp_template.c ff_psdsp_init_arm(s); s 227 libavcodec/aacpsdsp_template.c ff_psdsp_init_aarch64(s); s 229 libavcodec/aacpsdsp_template.c ff_psdsp_init_mips(s); s 231 libavcodec/aacpsdsp_template.c ff_psdsp_init_x86(s); s 420 libavcodec/aacpsy.c float s[8], v; s 430 libavcodec/aacpsy.c s[i] = sum; s 434 libavcodec/aacpsy.c if (s[i] > pch->win_energy * attack_ratio) { s 37 libavcodec/aarch64/aacpsdsp_init_aarch64.c av_cold void ff_psdsp_init_aarch64(PSDSPContext *s) s 42 libavcodec/aarch64/aacpsdsp_init_aarch64.c s->add_squares = ff_ps_add_squares_neon; s 43 libavcodec/aarch64/aacpsdsp_init_aarch64.c s->mul_pair_single = ff_ps_mul_pair_single_neon; s 44 libavcodec/aarch64/aacpsdsp_init_aarch64.c s->hybrid_analysis = ff_ps_hybrid_analysis_neon; s 45 libavcodec/aarch64/aacpsdsp_init_aarch64.c s->stereo_interpolate[0] = ff_ps_stereo_interpolate_neon; s 46 libavcodec/aarch64/aacpsdsp_init_aarch64.c s->stereo_interpolate[1] = ff_ps_stereo_interpolate_ipdopd_neon; s 29 libavcodec/aarch64/fft_init_aarch64.c void ff_fft_permute_neon(FFTContext *s, FFTComplex *z); s 30 libavcodec/aarch64/fft_init_aarch64.c void ff_fft_calc_neon(FFTContext *s, FFTComplex *z); s 32 libavcodec/aarch64/fft_init_aarch64.c void ff_imdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input); s 33 libavcodec/aarch64/fft_init_aarch64.c void ff_imdct_half_neon(FFTContext *s, FFTSample *output, const FFTSample *input); s 34 libavcodec/aarch64/fft_init_aarch64.c void ff_mdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input); s 36 libavcodec/aarch64/fft_init_aarch64.c av_cold void ff_fft_init_aarch64(FFTContext *s) s 41 libavcodec/aarch64/fft_init_aarch64.c s->fft_permute = ff_fft_permute_neon; s 42 libavcodec/aarch64/fft_init_aarch64.c s->fft_calc = ff_fft_calc_neon; s 44 libavcodec/aarch64/fft_init_aarch64.c s->imdct_calc = ff_imdct_calc_neon; s 45 libavcodec/aarch64/fft_init_aarch64.c s->imdct_half = ff_imdct_half_neon; s 46 libavcodec/aarch64/fft_init_aarch64.c s->mdct_calc = ff_mdct_calc_neon; s 47 libavcodec/aarch64/fft_init_aarch64.c s->mdct_permutation = FF_MDCT_PERM_INTERLEAVE; s 32 libavcodec/aarch64/mpegaudiodsp_init.c av_cold void ff_mpadsp_init_aarch64(MPADSPContext *s) s 37 libavcodec/aarch64/mpegaudiodsp_init.c s->apply_window_fixed = ff_mpadsp_apply_window_fixed_neon; s 38 libavcodec/aarch64/mpegaudiodsp_init.c s->apply_window_float = ff_mpadsp_apply_window_float_neon; s 50 libavcodec/aarch64/sbrdsp_init_aarch64.c av_cold void ff_sbrdsp_init_aarch64(SBRDSPContext *s) s 55 libavcodec/aarch64/sbrdsp_init_aarch64.c s->sum64x5 = ff_sbr_sum64x5_neon; s 56 libavcodec/aarch64/sbrdsp_init_aarch64.c s->sum_square = ff_sbr_sum_square_neon; s 57 libavcodec/aarch64/sbrdsp_init_aarch64.c s->neg_odd_64 = ff_sbr_neg_odd_64_neon; s 58 libavcodec/aarch64/sbrdsp_init_aarch64.c s->qmf_pre_shuffle = ff_sbr_qmf_pre_shuffle_neon; s 59 libavcodec/aarch64/sbrdsp_init_aarch64.c s->qmf_post_shuffle = ff_sbr_qmf_post_shuffle_neon; s 60 libavcodec/aarch64/sbrdsp_init_aarch64.c s->qmf_deint_neg = ff_sbr_qmf_deint_neg_neon; s 61 libavcodec/aarch64/sbrdsp_init_aarch64.c s->qmf_deint_bfly = ff_sbr_qmf_deint_bfly_neon; s 62 libavcodec/aarch64/sbrdsp_init_aarch64.c s->hf_g_filt = ff_sbr_hf_g_filt_neon; s 63 libavcodec/aarch64/sbrdsp_init_aarch64.c s->hf_gen = ff_sbr_hf_gen_neon; s 64 libavcodec/aarch64/sbrdsp_init_aarch64.c s->autocorrelate = ff_sbr_autocorrelate_neon; s 65 libavcodec/aarch64/sbrdsp_init_aarch64.c s->hf_apply_noise[0] = ff_sbr_hf_apply_noise_0_neon; s 66 libavcodec/aarch64/sbrdsp_init_aarch64.c s->hf_apply_noise[1] = ff_sbr_hf_apply_noise_1_neon; s 67 libavcodec/aarch64/sbrdsp_init_aarch64.c s->hf_apply_noise[2] = ff_sbr_hf_apply_noise_2_neon; s 68 libavcodec/aarch64/sbrdsp_init_aarch64.c s->hf_apply_noise[3] = ff_sbr_hf_apply_noise_3_neon; s 41 libavcodec/aarch64/synth_filter_init.c av_cold void ff_synth_filter_init_aarch64(SynthFilterContext *s) s 46 libavcodec/aarch64/synth_filter_init.c s->synth_filter_float = ff_synth_filter_float_neon; s 46 libavcodec/aasc.c AascContext *s = avctx->priv_data; s 50 libavcodec/aasc.c s->avctx = avctx; s 56 libavcodec/aasc.c s->palette_size = FFMIN(avctx->extradata_size, AVPALETTE_SIZE); s 57 libavcodec/aasc.c for (i = 0; i < s->palette_size / 4; i++) { s 58 libavcodec/aasc.c s->palette[i] = 0xFFU << 24 | AV_RL32(ptr); s 73 libavcodec/aasc.c s->frame = av_frame_alloc(); s 74 libavcodec/aasc.c if (!s->frame) s 86 libavcodec/aasc.c AascContext *s = avctx->priv_data; s 94 libavcodec/aasc.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 103 libavcodec/aasc.c bytestream2_init(&s->gb, buf - 4, buf_size + 4); s 104 libavcodec/aasc.c ff_msrle_decode(avctx, s->frame, 8, &s->gb); s 113 libavcodec/aasc.c memcpy(s->frame->data[0] + i * s->frame->linesize[0], buf, avctx->width * psize); s 119 libavcodec/aasc.c bytestream2_init(&s->gb, buf, buf_size); s 120 libavcodec/aasc.c ff_msrle_decode(avctx, s->frame, 8, &s->gb); s 133 libavcodec/aasc.c memcpy(s->frame->data[1], s->palette, s->palette_size); s 136 libavcodec/aasc.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 145 libavcodec/aasc.c AascContext *s = avctx->priv_data; s 147 libavcodec/aasc.c av_frame_free(&s->frame); s 118 libavcodec/ac3.c int ff_ac3_bit_alloc_calc_mask(AC3BitAllocParameters *s, int16_t *band_psd, s 147 libavcodec/ac3.c slowleak = band_psd[band] - s->slow_gain; s 161 libavcodec/ac3.c fastleak = FFMAX(fastleak - s->fast_decay, band_psd[band] - fast_gain); s 162 libavcodec/ac3.c slowleak = FFMAX(slowleak - s->slow_decay, band_psd[band] - s->slow_gain); s 169 libavcodec/ac3.c fastleak = (s->cpl_fast_leak << 8) + 768; s 170 libavcodec/ac3.c slowleak = (s->cpl_slow_leak << 8) + 768; s 174 libavcodec/ac3.c fastleak = FFMAX(fastleak - s->fast_decay, band_psd[band] - fast_gain); s 175 libavcodec/ac3.c slowleak = FFMAX(slowleak - s->slow_decay, band_psd[band] - s->slow_gain); s 182 libavcodec/ac3.c int tmp = s->db_per_bit - band_psd[band]; s 186 libavcodec/ac3.c mask[band] = FFMAX(ff_ac3_hearing_threshold_tab[band >> s->sr_shift][s->sr_code], excite[band]); s 92 libavcodec/ac3.h #define AC3_DYNAMIC_RANGE(x) (powf(x, s->drc_scale)) s 257 libavcodec/ac3.h int ff_ac3_bit_alloc_calc_mask(AC3BitAllocParameters *s, int16_t *band_psd, s 236 libavcodec/ac3_parser.c AACAC3ParseContext *s = s1->priv_data; s 237 libavcodec/ac3_parser.c s->header_size = AC3_HEADER_SIZE; s 238 libavcodec/ac3_parser.c s->sync = ac3_sync; s 186 libavcodec/ac3dec.c AC3DecodeContext *s = avctx->priv_data; s 189 libavcodec/ac3dec.c s->avctx = avctx; s 192 libavcodec/ac3dec.c ff_mdct_init(&s->imdct_256, 8, 1, 1.0); s 193 libavcodec/ac3dec.c ff_mdct_init(&s->imdct_512, 9, 1, 1.0); s 194 libavcodec/ac3dec.c AC3_RENAME(ff_kbd_window_init)(s->window, 5.0, 256); s 195 libavcodec/ac3dec.c ff_bswapdsp_init(&s->bdsp); s 198 libavcodec/ac3dec.c s->fdsp = avpriv_alloc_fixed_dsp(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 200 libavcodec/ac3dec.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 201 libavcodec/ac3dec.c ff_fmt_convert_init(&s->fmt_conv, avctx); s 204 libavcodec/ac3dec.c ff_ac3dsp_init(&s->ac3dsp, avctx->flags & AV_CODEC_FLAG_BITEXACT); s 205 libavcodec/ac3dec.c av_lfg_init(&s->dith_state, 0); s 219 libavcodec/ac3dec.c s->downmixed = 1; s 222 libavcodec/ac3dec.c s->xcfptr[i] = s->transform_coeffs[i]; s 223 libavcodec/ac3dec.c s->dlyptr[i] = s->delay[i]; s 234 libavcodec/ac3dec.c static int ac3_parse_header(AC3DecodeContext *s) s 236 libavcodec/ac3dec.c GetBitContext *gbc = &s->gbc; s 240 libavcodec/ac3dec.c i = !s->channel_mode; s 242 libavcodec/ac3dec.c s->dialog_normalization[(!s->channel_mode)-i] = -get_bits(gbc, 5); s 243 libavcodec/ac3dec.c if (s->dialog_normalization[(!s->channel_mode)-i] == 0) { s 244 libavcodec/ac3dec.c s->dialog_normalization[(!s->channel_mode)-i] = -31; s 246 libavcodec/ac3dec.c if (s->target_level != 0) { s 247 libavcodec/ac3dec.c s->level_gain[(!s->channel_mode)-i] = powf(2.0f, s 248 libavcodec/ac3dec.c (float)(s->target_level - s 249 libavcodec/ac3dec.c s->dialog_normalization[(!s->channel_mode)-i])/6.0f); s 251 libavcodec/ac3dec.c if (s->compression_exists[(!s->channel_mode)-i] = get_bits1(gbc)) { s 252 libavcodec/ac3dec.c s->heavy_dynamic_range[(!s->channel_mode)-i] = s 264 libavcodec/ac3dec.c if (s->bitstream_id != 6) { s 271 libavcodec/ac3dec.c s->preferred_downmix = get_bits(gbc, 2); s 272 libavcodec/ac3dec.c s->center_mix_level_ltrt = get_bits(gbc, 3); s 273 libavcodec/ac3dec.c s->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); s 274 libavcodec/ac3dec.c s->center_mix_level = get_bits(gbc, 3); s 275 libavcodec/ac3dec.c s->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); s 278 libavcodec/ac3dec.c s->dolby_surround_ex_mode = get_bits(gbc, 2); s 279 libavcodec/ac3dec.c s->dolby_headphone_mode = get_bits(gbc, 2); s 298 libavcodec/ac3dec.c static int parse_frame_header(AC3DecodeContext *s) s 303 libavcodec/ac3dec.c err = ff_ac3_parse_header(&s->gbc, &hdr); s 308 libavcodec/ac3dec.c s->bit_alloc_params.sr_code = hdr.sr_code; s 309 libavcodec/ac3dec.c s->bitstream_id = hdr.bitstream_id; s 310 libavcodec/ac3dec.c s->bitstream_mode = hdr.bitstream_mode; s 311 libavcodec/ac3dec.c s->channel_mode = hdr.channel_mode; s 312 libavcodec/ac3dec.c s->lfe_on = hdr.lfe_on; s 313 libavcodec/ac3dec.c s->bit_alloc_params.sr_shift = hdr.sr_shift; s 314 libavcodec/ac3dec.c s->sample_rate = hdr.sample_rate; s 315 libavcodec/ac3dec.c s->bit_rate = hdr.bit_rate; s 316 libavcodec/ac3dec.c s->channels = hdr.channels; s 317 libavcodec/ac3dec.c s->fbw_channels = s->channels - s->lfe_on; s 318 libavcodec/ac3dec.c s->lfe_ch = s->fbw_channels + 1; s 319 libavcodec/ac3dec.c s->frame_size = hdr.frame_size; s 320 libavcodec/ac3dec.c s->superframe_size += hdr.frame_size; s 321 libavcodec/ac3dec.c s->preferred_downmix = AC3_DMIXMOD_NOTINDICATED; s 322 libavcodec/ac3dec.c s->center_mix_level = hdr.center_mix_level; s 323 libavcodec/ac3dec.c s->center_mix_level_ltrt = 4; // -3.0dB s 324 libavcodec/ac3dec.c s->surround_mix_level = hdr.surround_mix_level; s 325 libavcodec/ac3dec.c s->surround_mix_level_ltrt = 4; // -3.0dB s 326 libavcodec/ac3dec.c s->lfe_mix_level_exists = 0; s 327 libavcodec/ac3dec.c s->num_blocks = hdr.num_blocks; s 328 libavcodec/ac3dec.c s->frame_type = hdr.frame_type; s 329 libavcodec/ac3dec.c s->substreamid = hdr.substreamid; s 330 libavcodec/ac3dec.c s->dolby_surround_mode = hdr.dolby_surround_mode; s 331 libavcodec/ac3dec.c s->dolby_surround_ex_mode = AC3_DSUREXMOD_NOTINDICATED; s 332 libavcodec/ac3dec.c s->dolby_headphone_mode = AC3_DHEADPHONMOD_NOTINDICATED; s 334 libavcodec/ac3dec.c if (s->lfe_on) { s 335 libavcodec/ac3dec.c s->start_freq[s->lfe_ch] = 0; s 336 libavcodec/ac3dec.c s->end_freq[s->lfe_ch] = 7; s 337 libavcodec/ac3dec.c s->num_exp_groups[s->lfe_ch] = 2; s 338 libavcodec/ac3dec.c s->channel_in_cpl[s->lfe_ch] = 0; s 341 libavcodec/ac3dec.c if (s->bitstream_id <= 10) { s 342 libavcodec/ac3dec.c s->eac3 = 0; s 343 libavcodec/ac3dec.c s->snr_offset_strategy = 2; s 344 libavcodec/ac3dec.c s->block_switch_syntax = 1; s 345 libavcodec/ac3dec.c s->dither_flag_syntax = 1; s 346 libavcodec/ac3dec.c s->bit_allocation_syntax = 1; s 347 libavcodec/ac3dec.c s->fast_gain_syntax = 0; s 348 libavcodec/ac3dec.c s->first_cpl_leak = 0; s 349 libavcodec/ac3dec.c s->dba_syntax = 1; s 350 libavcodec/ac3dec.c s->skip_syntax = 1; s 351 libavcodec/ac3dec.c memset(s->channel_uses_aht, 0, sizeof(s->channel_uses_aht)); s 352 libavcodec/ac3dec.c return ac3_parse_header(s); s 354 libavcodec/ac3dec.c s->eac3 = 1; s 355 libavcodec/ac3dec.c return ff_eac3_parse_header(s); s 357 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "E-AC-3 support not compiled in\n"); s 366 libavcodec/ac3dec.c static int set_downmix_coeffs(AC3DecodeContext *s) s 369 libavcodec/ac3dec.c float cmix = gain_levels[s-> center_mix_level]; s 370 libavcodec/ac3dec.c float smix = gain_levels[s->surround_mix_level]; s 374 libavcodec/ac3dec.c if (!s->downmix_coeffs[0]) { s 375 libavcodec/ac3dec.c s->downmix_coeffs[0] = av_malloc_array(2 * AC3_MAX_CHANNELS, s 376 libavcodec/ac3dec.c sizeof(**s->downmix_coeffs)); s 377 libavcodec/ac3dec.c if (!s->downmix_coeffs[0]) s 379 libavcodec/ac3dec.c s->downmix_coeffs[1] = s->downmix_coeffs[0] + AC3_MAX_CHANNELS; s 382 libavcodec/ac3dec.c for (i = 0; i < s->fbw_channels; i++) { s 383 libavcodec/ac3dec.c downmix_coeffs[0][i] = gain_levels[ac3_default_coeffs[s->channel_mode][i][0]]; s 384 libavcodec/ac3dec.c downmix_coeffs[1][i] = gain_levels[ac3_default_coeffs[s->channel_mode][i][1]]; s 386 libavcodec/ac3dec.c if (s->channel_mode > 1 && s->channel_mode & 1) { s 389 libavcodec/ac3dec.c if (s->channel_mode == AC3_CHMODE_2F1R || s->channel_mode == AC3_CHMODE_3F1R) { s 390 libavcodec/ac3dec.c int nf = s->channel_mode - 2; s 393 libavcodec/ac3dec.c if (s->channel_mode == AC3_CHMODE_2F2R || s->channel_mode == AC3_CHMODE_3F2R) { s 394 libavcodec/ac3dec.c int nf = s->channel_mode - 4; s 400 libavcodec/ac3dec.c for (i = 0; i < s->fbw_channels; i++) { s 406 libavcodec/ac3dec.c for (i = 0; i < s->fbw_channels; i++) { s 411 libavcodec/ac3dec.c if (s->output_mode == AC3_CHMODE_MONO) { s 412 libavcodec/ac3dec.c for (i = 0; i < s->fbw_channels; i++) s 416 libavcodec/ac3dec.c for (i = 0; i < s->fbw_channels; i++) { s 417 libavcodec/ac3dec.c s->downmix_coeffs[0][i] = FIXR12(downmix_coeffs[0][i]); s 418 libavcodec/ac3dec.c s->downmix_coeffs[1][i] = FIXR12(downmix_coeffs[1][i]); s 428 libavcodec/ac3dec.c static int decode_exponents(AC3DecodeContext *s, s 441 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "expacc %d is out-of-range\n", expacc); s 454 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "exponent %d is out-of-range\n", prevexp); s 472 libavcodec/ac3dec.c static void calc_transform_coeffs_cpl(AC3DecodeContext *s) s 476 libavcodec/ac3dec.c bin = s->start_freq[CPL_CH]; s 477 libavcodec/ac3dec.c for (band = 0; band < s->num_cpl_bands; band++) { s 479 libavcodec/ac3dec.c int band_end = bin + s->cpl_band_sizes[band]; s 480 libavcodec/ac3dec.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 481 libavcodec/ac3dec.c if (s->channel_in_cpl[ch]) { s 482 libavcodec/ac3dec.c int cpl_coord = s->cpl_coords[ch][band] << 5; s 484 libavcodec/ac3dec.c s->fixed_coeffs[ch][bin] = s 485 libavcodec/ac3dec.c MULH(s->fixed_coeffs[CPL_CH][bin] * (1 << 4), cpl_coord); s 487 libavcodec/ac3dec.c if (ch == 2 && s->phase_flags[band]) { s 489 libavcodec/ac3dec.c s->fixed_coeffs[2][bin] = -s->fixed_coeffs[2][bin]; s 513 libavcodec/ac3dec.c static void ac3_decode_transform_coeffs_ch(AC3DecodeContext *s, int ch_index, mant_groups *m) s 515 libavcodec/ac3dec.c int start_freq = s->start_freq[ch_index]; s 516 libavcodec/ac3dec.c int end_freq = s->end_freq[ch_index]; s 517 libavcodec/ac3dec.c uint8_t *baps = s->bap[ch_index]; s 518 libavcodec/ac3dec.c int8_t *exps = s->dexps[ch_index]; s 519 libavcodec/ac3dec.c int32_t *coeffs = s->fixed_coeffs[ch_index]; s 520 libavcodec/ac3dec.c int dither = (ch_index == CPL_CH) || s->dither_flag[ch_index]; s 521 libavcodec/ac3dec.c GetBitContext *gbc = &s->gbc; s 531 libavcodec/ac3dec.c mantissa = (((av_lfg_get(&s->dith_state)>>8)*181)>>8) - 5931008; s 579 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "bap %d is invalid in plain AC-3\n", bap); s 594 libavcodec/ac3dec.c static void remove_dithering(AC3DecodeContext *s) { s 597 libavcodec/ac3dec.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 598 libavcodec/ac3dec.c if (!s->dither_flag[ch] && s->channel_in_cpl[ch]) { s 599 libavcodec/ac3dec.c for (i = s->start_freq[CPL_CH]; i < s->end_freq[CPL_CH]; i++) { s 600 libavcodec/ac3dec.c if (!s->bap[CPL_CH][i]) s 601 libavcodec/ac3dec.c s->fixed_coeffs[ch][i] = 0; s 607 libavcodec/ac3dec.c static inline void decode_transform_coeffs_ch(AC3DecodeContext *s, int blk, s 610 libavcodec/ac3dec.c if (!s->channel_uses_aht[ch]) { s 611 libavcodec/ac3dec.c ac3_decode_transform_coeffs_ch(s, ch, m); s 617 libavcodec/ac3dec.c ff_eac3_decode_transform_coeffs_aht_ch(s, ch); s 618 libavcodec/ac3dec.c for (bin = s->start_freq[ch]; bin < s->end_freq[ch]; bin++) { s 619 libavcodec/ac3dec.c s->fixed_coeffs[ch][bin] = s->pre_mantissa[ch][bin][blk] >> s->dexps[ch][bin]; s 627 libavcodec/ac3dec.c static inline void decode_transform_coeffs(AC3DecodeContext *s, int blk) s 635 libavcodec/ac3dec.c for (ch = 1; ch <= s->channels; ch++) { s 637 libavcodec/ac3dec.c decode_transform_coeffs_ch(s, blk, ch, &m); s 640 libavcodec/ac3dec.c if (s->channel_in_cpl[ch]) { s 642 libavcodec/ac3dec.c decode_transform_coeffs_ch(s, blk, CPL_CH, &m); s 643 libavcodec/ac3dec.c calc_transform_coeffs_cpl(s); s 646 libavcodec/ac3dec.c end = s->end_freq[CPL_CH]; s 648 libavcodec/ac3dec.c end = s->end_freq[ch]; s 651 libavcodec/ac3dec.c s->fixed_coeffs[ch][end] = 0; s 656 libavcodec/ac3dec.c remove_dithering(s); s 663 libavcodec/ac3dec.c static void do_rematrixing(AC3DecodeContext *s) s 668 libavcodec/ac3dec.c end = FFMIN(s->end_freq[1], s->end_freq[2]); s 670 libavcodec/ac3dec.c for (bnd = 0; bnd < s->num_rematrixing_bands; bnd++) { s 671 libavcodec/ac3dec.c if (s->rematrixing_flags[bnd]) { s 674 libavcodec/ac3dec.c int tmp0 = s->fixed_coeffs[1][i]; s 675 libavcodec/ac3dec.c s->fixed_coeffs[1][i] += s->fixed_coeffs[2][i]; s 676 libavcodec/ac3dec.c s->fixed_coeffs[2][i] = tmp0 - s->fixed_coeffs[2][i]; s 687 libavcodec/ac3dec.c static inline void do_imdct(AC3DecodeContext *s, int channels, int offset) s 692 libavcodec/ac3dec.c if (s->block_switch[ch]) { s 694 libavcodec/ac3dec.c FFTSample *x = s->tmp_output + 128; s 696 libavcodec/ac3dec.c x[i] = s->transform_coeffs[ch][2 * i]; s 697 libavcodec/ac3dec.c s->imdct_256.imdct_half(&s->imdct_256, s->tmp_output, x); s 699 libavcodec/ac3dec.c s->fdsp->vector_fmul_window_scaled(s->outptr[ch - 1], s->delay[ch - 1 + offset], s 700 libavcodec/ac3dec.c s->tmp_output, s->window, 128, 8); s 702 libavcodec/ac3dec.c s->fdsp->vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1 + offset], s 703 libavcodec/ac3dec.c s->tmp_output, s->window, 128); s 706 libavcodec/ac3dec.c x[i] = s->transform_coeffs[ch][2 * i + 1]; s 707 libavcodec/ac3dec.c s->imdct_256.imdct_half(&s->imdct_256, s->delay[ch - 1 + offset], x); s 709 libavcodec/ac3dec.c s->imdct_512.imdct_half(&s->imdct_512, s->tmp_output, s->transform_coeffs[ch]); s 711 libavcodec/ac3dec.c s->fdsp->vector_fmul_window_scaled(s->outptr[ch - 1], s->delay[ch - 1 + offset], s 712 libavcodec/ac3dec.c s->tmp_output, s->window, 128, 8); s 714 libavcodec/ac3dec.c s->fdsp->vector_fmul_window(s->outptr[ch - 1], s->delay[ch - 1 + offset], s 715 libavcodec/ac3dec.c s->tmp_output, s->window, 128); s 717 libavcodec/ac3dec.c memcpy(s->delay[ch - 1 + offset], s->tmp_output + 128, 128 * sizeof(FFTSample)); s 725 libavcodec/ac3dec.c static void ac3_upmix_delay(AC3DecodeContext *s) s 727 libavcodec/ac3dec.c int channel_data_size = sizeof(s->delay[0]); s 728 libavcodec/ac3dec.c switch (s->channel_mode) { s 732 libavcodec/ac3dec.c memcpy(s->delay[1], s->delay[0], channel_data_size); s 735 libavcodec/ac3dec.c memset(s->delay[3], 0, channel_data_size); s 737 libavcodec/ac3dec.c memset(s->delay[2], 0, channel_data_size); s 740 libavcodec/ac3dec.c memset(s->delay[4], 0, channel_data_size); s 742 libavcodec/ac3dec.c memset(s->delay[3], 0, channel_data_size); s 744 libavcodec/ac3dec.c memcpy(s->delay[2], s->delay[1], channel_data_size); s 745 libavcodec/ac3dec.c memset(s->delay[1], 0, channel_data_size); s 816 libavcodec/ac3dec.c static inline int spx_strategy(AC3DecodeContext *s, int blk) s 818 libavcodec/ac3dec.c GetBitContext *bc = &s->gbc; s 819 libavcodec/ac3dec.c int fbw_channels = s->fbw_channels; s 824 libavcodec/ac3dec.c if (s->channel_mode == AC3_CHMODE_MONO) { s 825 libavcodec/ac3dec.c s->channel_uses_spx[1] = 1; s 828 libavcodec/ac3dec.c s->channel_uses_spx[ch] = get_bits1(bc); s 839 libavcodec/ac3dec.c s->spx_dst_end_freq = end_freq_inv_tab[end_subband-5]; s 849 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "invalid spectral extension " s 854 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "invalid spectral extension " s 859 libavcodec/ac3dec.c s->spx_dst_start_freq = dst_start_freq; s 860 libavcodec/ac3dec.c s->spx_src_start_freq = src_start_freq; s 862 libavcodec/ac3dec.c s->spx_dst_end_freq = dst_end_freq; s 864 libavcodec/ac3dec.c decode_band_structure(bc, blk, s->eac3, 0, s 867 libavcodec/ac3dec.c &s->num_spx_bands, s 868 libavcodec/ac3dec.c s->spx_band_sizes, s 869 libavcodec/ac3dec.c s->spx_band_struct, sizeof(s->spx_band_struct)); s 873 libavcodec/ac3dec.c static inline void spx_coordinates(AC3DecodeContext *s) s 875 libavcodec/ac3dec.c GetBitContext *bc = &s->gbc; s 876 libavcodec/ac3dec.c int fbw_channels = s->fbw_channels; s 880 libavcodec/ac3dec.c if (s->channel_uses_spx[ch]) { s 881 libavcodec/ac3dec.c if (s->first_spx_coords[ch] || get_bits1(bc)) { s 885 libavcodec/ac3dec.c s->first_spx_coords[ch] = 0; s 889 libavcodec/ac3dec.c bin = s->spx_src_start_freq; s 890 libavcodec/ac3dec.c for (bnd = 0; bnd < s->num_spx_bands; bnd++) { s 891 libavcodec/ac3dec.c int bandsize = s->spx_band_sizes[bnd]; s 897 libavcodec/ac3dec.c * (int64_t)s->spx_dst_end_freq; s 917 libavcodec/ac3dec.c nratio = ((float)((bin + (bandsize >> 1))) / s->spx_dst_end_freq) - spx_blend; s 935 libavcodec/ac3dec.c s->spx_noise_blend[ch][bnd] = (int)((accu + (1<<22)) >> 23); s 937 libavcodec/ac3dec.c s->spx_signal_blend[ch][bnd] = (int)((accu + (1<<22)) >> 23); s 940 libavcodec/ac3dec.c s->spx_noise_blend [ch][bnd] = nblend * spx_coord; s 941 libavcodec/ac3dec.c s->spx_signal_blend[ch][bnd] = sblend * spx_coord; s 946 libavcodec/ac3dec.c s->first_spx_coords[ch] = 1; s 951 libavcodec/ac3dec.c static inline int coupling_strategy(AC3DecodeContext *s, int blk, s 954 libavcodec/ac3dec.c GetBitContext *bc = &s->gbc; s 955 libavcodec/ac3dec.c int fbw_channels = s->fbw_channels; s 956 libavcodec/ac3dec.c int channel_mode = s->channel_mode; s 960 libavcodec/ac3dec.c if (!s->eac3) s 961 libavcodec/ac3dec.c s->cpl_in_use[blk] = get_bits1(bc); s 962 libavcodec/ac3dec.c if (s->cpl_in_use[blk]) { s 967 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "coupling not allowed in mono or dual-mono\n"); s 972 libavcodec/ac3dec.c if (s->eac3 && get_bits1(bc)) { s 974 libavcodec/ac3dec.c avpriv_request_sample(s->avctx, "Enhanced coupling"); s 979 libavcodec/ac3dec.c if (s->eac3 && s->channel_mode == AC3_CHMODE_STEREO) { s 980 libavcodec/ac3dec.c s->channel_in_cpl[1] = 1; s 981 libavcodec/ac3dec.c s->channel_in_cpl[2] = 1; s 984 libavcodec/ac3dec.c s->channel_in_cpl[ch] = get_bits1(bc); s 989 libavcodec/ac3dec.c s->phase_flags_in_use = get_bits1(bc); s 993 libavcodec/ac3dec.c cpl_end_subband = s->spx_in_use ? (s->spx_src_start_freq - 37) / 12 : s 996 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "invalid coupling range (%d >= %d)\n", s 1000 libavcodec/ac3dec.c s->start_freq[CPL_CH] = cpl_start_subband * 12 + 37; s 1001 libavcodec/ac3dec.c s->end_freq[CPL_CH] = cpl_end_subband * 12 + 37; s 1003 libavcodec/ac3dec.c decode_band_structure(bc, blk, s->eac3, 0, cpl_start_subband, s 1006 libavcodec/ac3dec.c &s->num_cpl_bands, s->cpl_band_sizes, s 1007 libavcodec/ac3dec.c s->cpl_band_struct, sizeof(s->cpl_band_struct)); s 1011 libavcodec/ac3dec.c s->channel_in_cpl[ch] = 0; s 1012 libavcodec/ac3dec.c s->first_cpl_coords[ch] = 1; s 1014 libavcodec/ac3dec.c s->first_cpl_leak = s->eac3; s 1015 libavcodec/ac3dec.c s->phase_flags_in_use = 0; s 1021 libavcodec/ac3dec.c static inline int coupling_coordinates(AC3DecodeContext *s, int blk) s 1023 libavcodec/ac3dec.c GetBitContext *bc = &s->gbc; s 1024 libavcodec/ac3dec.c int fbw_channels = s->fbw_channels; s 1029 libavcodec/ac3dec.c if (s->channel_in_cpl[ch]) { s 1030 libavcodec/ac3dec.c if ((s->eac3 && s->first_cpl_coords[ch]) || get_bits1(bc)) { s 1032 libavcodec/ac3dec.c s->first_cpl_coords[ch] = 0; s 1035 libavcodec/ac3dec.c for (bnd = 0; bnd < s->num_cpl_bands; bnd++) { s 1039 libavcodec/ac3dec.c s->cpl_coords[ch][bnd] = cpl_coord_mant << 22; s 1041 libavcodec/ac3dec.c s->cpl_coords[ch][bnd] = (cpl_coord_mant + 16) << 21; s 1042 libavcodec/ac3dec.c s->cpl_coords[ch][bnd] >>= (cpl_coord_exp + master_cpl_coord); s 1045 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "new coupling coordinates must " s 1051 libavcodec/ac3dec.c s->first_cpl_coords[ch] = 1; s 1055 libavcodec/ac3dec.c if (s->channel_mode == AC3_CHMODE_STEREO && cpl_coords_exist) { s 1056 libavcodec/ac3dec.c for (bnd = 0; bnd < s->num_cpl_bands; bnd++) { s 1057 libavcodec/ac3dec.c s->phase_flags[bnd] = s->phase_flags_in_use ? get_bits1(bc) : 0; s 1067 libavcodec/ac3dec.c static int decode_audio_block(AC3DecodeContext *s, int blk, int offset) s 1069 libavcodec/ac3dec.c int fbw_channels = s->fbw_channels; s 1070 libavcodec/ac3dec.c int channel_mode = s->channel_mode; s 1075 libavcodec/ac3dec.c GetBitContext *gbc = &s->gbc; s 1080 libavcodec/ac3dec.c if (s->block_switch_syntax) { s 1082 libavcodec/ac3dec.c s->block_switch[ch] = get_bits1(gbc); s 1083 libavcodec/ac3dec.c if (ch > 1 && s->block_switch[ch] != s->block_switch[1]) s 1089 libavcodec/ac3dec.c if (s->dither_flag_syntax) { s 1091 libavcodec/ac3dec.c s->dither_flag[ch] = get_bits1(gbc); s 1096 libavcodec/ac3dec.c i = !s->channel_mode; s 1103 libavcodec/ac3dec.c if (range_bits <= 127 || s->drc_scale <= 1.0) s 1104 libavcodec/ac3dec.c s->dynamic_range[i] = AC3_DYNAMIC_RANGE(range); s 1106 libavcodec/ac3dec.c s->dynamic_range[i] = range; s 1108 libavcodec/ac3dec.c s->dynamic_range[i] = AC3_DYNAMIC_RANGE1; s 1113 libavcodec/ac3dec.c if (s->eac3 && (!blk || get_bits1(gbc))) { s 1114 libavcodec/ac3dec.c s->spx_in_use = get_bits1(gbc); s 1115 libavcodec/ac3dec.c if (s->spx_in_use) { s 1116 libavcodec/ac3dec.c if ((ret = spx_strategy(s, blk)) < 0) s 1120 libavcodec/ac3dec.c if (!s->eac3 || !s->spx_in_use) { s 1121 libavcodec/ac3dec.c s->spx_in_use = 0; s 1123 libavcodec/ac3dec.c s->channel_uses_spx[ch] = 0; s 1124 libavcodec/ac3dec.c s->first_spx_coords[ch] = 1; s 1129 libavcodec/ac3dec.c if (s->spx_in_use) s 1130 libavcodec/ac3dec.c spx_coordinates(s); s 1133 libavcodec/ac3dec.c if (s->eac3 ? s->cpl_strategy_exists[blk] : get_bits1(gbc)) { s 1134 libavcodec/ac3dec.c if ((ret = coupling_strategy(s, blk, bit_alloc_stages)) < 0) s 1136 libavcodec/ac3dec.c } else if (!s->eac3) { s 1138 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "new coupling strategy must " s 1142 libavcodec/ac3dec.c s->cpl_in_use[blk] = s->cpl_in_use[blk-1]; s 1145 libavcodec/ac3dec.c cpl_in_use = s->cpl_in_use[blk]; s 1149 libavcodec/ac3dec.c if ((ret = coupling_coordinates(s, blk)) < 0) s 1155 libavcodec/ac3dec.c if ((s->eac3 && !blk) || get_bits1(gbc)) { s 1156 libavcodec/ac3dec.c s->num_rematrixing_bands = 4; s 1157 libavcodec/ac3dec.c if (cpl_in_use && s->start_freq[CPL_CH] <= 61) { s 1158 libavcodec/ac3dec.c s->num_rematrixing_bands -= 1 + (s->start_freq[CPL_CH] == 37); s 1159 libavcodec/ac3dec.c } else if (s->spx_in_use && s->spx_src_start_freq <= 61) { s 1160 libavcodec/ac3dec.c s->num_rematrixing_bands--; s 1162 libavcodec/ac3dec.c for (bnd = 0; bnd < s->num_rematrixing_bands; bnd++) s 1163 libavcodec/ac3dec.c s->rematrixing_flags[bnd] = get_bits1(gbc); s 1165 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_WARNING, "Warning: " s 1167 libavcodec/ac3dec.c s->num_rematrixing_bands = 0; s 1172 libavcodec/ac3dec.c for (ch = !cpl_in_use; ch <= s->channels; ch++) { s 1173 libavcodec/ac3dec.c if (!s->eac3) s 1174 libavcodec/ac3dec.c s->exp_strategy[blk][ch] = get_bits(gbc, 2 - (ch == s->lfe_ch)); s 1175 libavcodec/ac3dec.c if (s->exp_strategy[blk][ch] != EXP_REUSE) s 1181 libavcodec/ac3dec.c s->start_freq[ch] = 0; s 1182 libavcodec/ac3dec.c if (s->exp_strategy[blk][ch] != EXP_REUSE) { s 1184 libavcodec/ac3dec.c int prev = s->end_freq[ch]; s 1185 libavcodec/ac3dec.c if (s->channel_in_cpl[ch]) s 1186 libavcodec/ac3dec.c s->end_freq[ch] = s->start_freq[CPL_CH]; s 1187 libavcodec/ac3dec.c else if (s->channel_uses_spx[ch]) s 1188 libavcodec/ac3dec.c s->end_freq[ch] = s->spx_src_start_freq; s 1192 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "bandwidth code = %d > 60\n", bandwidth_code); s 1195 libavcodec/ac3dec.c s->end_freq[ch] = bandwidth_code * 3 + 73; s 1197 libavcodec/ac3dec.c group_size = 3 << (s->exp_strategy[blk][ch] - 1); s 1198 libavcodec/ac3dec.c s->num_exp_groups[ch] = (s->end_freq[ch] + group_size-4) / group_size; s 1199 libavcodec/ac3dec.c if (blk > 0 && s->end_freq[ch] != prev) s 1203 libavcodec/ac3dec.c if (cpl_in_use && s->exp_strategy[blk][CPL_CH] != EXP_REUSE) { s 1204 libavcodec/ac3dec.c s->num_exp_groups[CPL_CH] = (s->end_freq[CPL_CH] - s->start_freq[CPL_CH]) / s 1205 libavcodec/ac3dec.c (3 << (s->exp_strategy[blk][CPL_CH] - 1)); s 1209 libavcodec/ac3dec.c for (ch = !cpl_in_use; ch <= s->channels; ch++) { s 1210 libavcodec/ac3dec.c if (s->exp_strategy[blk][ch] != EXP_REUSE) { s 1211 libavcodec/ac3dec.c s->dexps[ch][0] = get_bits(gbc, 4) << !ch; s 1212 libavcodec/ac3dec.c if (decode_exponents(s, gbc, s->exp_strategy[blk][ch], s 1213 libavcodec/ac3dec.c s->num_exp_groups[ch], s->dexps[ch][0], s 1214 libavcodec/ac3dec.c &s->dexps[ch][s->start_freq[ch]+!!ch])) { s 1217 libavcodec/ac3dec.c if (ch != CPL_CH && ch != s->lfe_ch) s 1223 libavcodec/ac3dec.c if (s->bit_allocation_syntax) { s 1225 libavcodec/ac3dec.c s->bit_alloc_params.slow_decay = ff_ac3_slow_decay_tab[get_bits(gbc, 2)] >> s->bit_alloc_params.sr_shift; s 1226 libavcodec/ac3dec.c s->bit_alloc_params.fast_decay = ff_ac3_fast_decay_tab[get_bits(gbc, 2)] >> s->bit_alloc_params.sr_shift; s 1227 libavcodec/ac3dec.c s->bit_alloc_params.slow_gain = ff_ac3_slow_gain_tab[get_bits(gbc, 2)]; s 1228 libavcodec/ac3dec.c s->bit_alloc_params.db_per_bit = ff_ac3_db_per_bit_tab[get_bits(gbc, 2)]; s 1229 libavcodec/ac3dec.c s->bit_alloc_params.floor = ff_ac3_floor_tab[get_bits(gbc, 3)]; s 1230 libavcodec/ac3dec.c for (ch = !cpl_in_use; ch <= s->channels; ch++) s 1233 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "new bit allocation info must " s 1240 libavcodec/ac3dec.c if (!s->eac3 || !blk) { s 1241 libavcodec/ac3dec.c if (s->snr_offset_strategy && get_bits1(gbc)) { s 1245 libavcodec/ac3dec.c for (i = ch = !cpl_in_use; ch <= s->channels; ch++) { s 1247 libavcodec/ac3dec.c if (ch == i || s->snr_offset_strategy == 2) s 1250 libavcodec/ac3dec.c if (blk && s->snr_offset[ch] != snr) { s 1253 libavcodec/ac3dec.c s->snr_offset[ch] = snr; s 1256 libavcodec/ac3dec.c if (!s->eac3) { s 1257 libavcodec/ac3dec.c int prev = s->fast_gain[ch]; s 1258 libavcodec/ac3dec.c s->fast_gain[ch] = ff_ac3_fast_gain_tab[get_bits(gbc, 3)]; s 1260 libavcodec/ac3dec.c if (blk && prev != s->fast_gain[ch]) s 1264 libavcodec/ac3dec.c } else if (!s->eac3 && !blk) { s 1265 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "new snr offsets must be present in block 0\n"); s 1271 libavcodec/ac3dec.c if (s->fast_gain_syntax && get_bits1(gbc)) { s 1272 libavcodec/ac3dec.c for (ch = !cpl_in_use; ch <= s->channels; ch++) { s 1273 libavcodec/ac3dec.c int prev = s->fast_gain[ch]; s 1274 libavcodec/ac3dec.c s->fast_gain[ch] = ff_ac3_fast_gain_tab[get_bits(gbc, 3)]; s 1276 libavcodec/ac3dec.c if (blk && prev != s->fast_gain[ch]) s 1279 libavcodec/ac3dec.c } else if (s->eac3 && !blk) { s 1280 libavcodec/ac3dec.c for (ch = !cpl_in_use; ch <= s->channels; ch++) s 1281 libavcodec/ac3dec.c s->fast_gain[ch] = ff_ac3_fast_gain_tab[4]; s 1285 libavcodec/ac3dec.c if (s->frame_type == EAC3_FRAME_TYPE_INDEPENDENT && get_bits1(gbc)) { s 1291 libavcodec/ac3dec.c if (s->first_cpl_leak || get_bits1(gbc)) { s 1296 libavcodec/ac3dec.c if (blk && (fl != s->bit_alloc_params.cpl_fast_leak || s 1297 libavcodec/ac3dec.c sl != s->bit_alloc_params.cpl_slow_leak)) { s 1300 libavcodec/ac3dec.c s->bit_alloc_params.cpl_fast_leak = fl; s 1301 libavcodec/ac3dec.c s->bit_alloc_params.cpl_slow_leak = sl; s 1302 libavcodec/ac3dec.c } else if (!s->eac3 && !blk) { s 1303 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "new coupling leak info must " s 1307 libavcodec/ac3dec.c s->first_cpl_leak = 0; s 1311 libavcodec/ac3dec.c if (s->dba_syntax && get_bits1(gbc)) { s 1314 libavcodec/ac3dec.c s->dba_mode[ch] = get_bits(gbc, 2); s 1315 libavcodec/ac3dec.c if (s->dba_mode[ch] == DBA_RESERVED) { s 1316 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "delta bit allocation strategy reserved\n"); s 1323 libavcodec/ac3dec.c if (s->dba_mode[ch] == DBA_NEW) { s 1324 libavcodec/ac3dec.c s->dba_nsegs[ch] = get_bits(gbc, 3) + 1; s 1325 libavcodec/ac3dec.c for (seg = 0; seg < s->dba_nsegs[ch]; seg++) { s 1326 libavcodec/ac3dec.c s->dba_offsets[ch][seg] = get_bits(gbc, 5); s 1327 libavcodec/ac3dec.c s->dba_lengths[ch][seg] = get_bits(gbc, 4); s 1328 libavcodec/ac3dec.c s->dba_values[ch][seg] = get_bits(gbc, 3); s 1335 libavcodec/ac3dec.c for (ch = 0; ch <= s->channels; ch++) { s 1336 libavcodec/ac3dec.c s->dba_mode[ch] = DBA_NONE; s 1341 libavcodec/ac3dec.c for (ch = !cpl_in_use; ch <= s->channels; ch++) { s 1344 libavcodec/ac3dec.c ff_ac3_bit_alloc_calc_psd(s->dexps[ch], s 1345 libavcodec/ac3dec.c s->start_freq[ch], s->end_freq[ch], s 1346 libavcodec/ac3dec.c s->psd[ch], s->band_psd[ch]); s 1351 libavcodec/ac3dec.c if (ff_ac3_bit_alloc_calc_mask(&s->bit_alloc_params, s->band_psd[ch], s 1352 libavcodec/ac3dec.c s->start_freq[ch], s->end_freq[ch], s 1353 libavcodec/ac3dec.c s->fast_gain[ch], (ch == s->lfe_ch), s 1354 libavcodec/ac3dec.c s->dba_mode[ch], s->dba_nsegs[ch], s 1355 libavcodec/ac3dec.c s->dba_offsets[ch], s->dba_lengths[ch], s 1356 libavcodec/ac3dec.c s->dba_values[ch], s->mask[ch])) { s 1357 libavcodec/ac3dec.c av_log(s->avctx, AV_LOG_ERROR, "error in bit allocation\n"); s 1363 libavcodec/ac3dec.c const uint8_t *bap_tab = s->channel_uses_aht[ch] ? s 1365 libavcodec/ac3dec.c s->ac3dsp.bit_alloc_calc_bap(s->mask[ch], s->psd[ch], s 1366 libavcodec/ac3dec.c s->start_freq[ch], s->end_freq[ch], s 1367 libavcodec/ac3dec.c s->snr_offset[ch], s 1368 libavcodec/ac3dec.c s->bit_alloc_params.floor, s 1369 libavcodec/ac3dec.c bap_tab, s->bap[ch]); s 1374 libavcodec/ac3dec.c if (s->skip_syntax && get_bits1(gbc)) { s 1381 libavcodec/ac3dec.c decode_transform_coeffs(s, blk); s 1386 libavcodec/ac3dec.c if (s->channel_mode == AC3_CHMODE_STEREO) s 1387 libavcodec/ac3dec.c do_rematrixing(s); s 1390 libavcodec/ac3dec.c for (ch = 1; ch <= s->channels; ch++) { s 1393 libavcodec/ac3dec.c if (s->channel_mode == AC3_CHMODE_DUALMONO && ch <= 2) s 1395 libavcodec/ac3dec.c if (s->heavy_compression && s->compression_exists[audio_channel]) s 1396 libavcodec/ac3dec.c gain = s->heavy_dynamic_range[audio_channel]; s 1398 libavcodec/ac3dec.c gain = s->dynamic_range[audio_channel]; s 1401 libavcodec/ac3dec.c scale_coefs(s->transform_coeffs[ch], s->fixed_coeffs[ch], gain, 256); s 1403 libavcodec/ac3dec.c if (s->target_level != 0) s 1404 libavcodec/ac3dec.c gain = gain * s->level_gain[audio_channel]; s 1406 libavcodec/ac3dec.c s->fmt_conv.int32_to_float_fmul_scalar(s->transform_coeffs[ch], s 1407 libavcodec/ac3dec.c s->fixed_coeffs[ch], gain, 256); s 1412 libavcodec/ac3dec.c if (CONFIG_EAC3_DECODER && s->spx_in_use) { s 1413 libavcodec/ac3dec.c ff_eac3_apply_spectral_extension(s); s 1419 libavcodec/ac3dec.c downmix_output = s->channels != s->out_channels && s 1420 libavcodec/ac3dec.c !((s->output_mode & AC3_OUTPUT_LFEON) && s 1421 libavcodec/ac3dec.c s->fbw_channels == s->out_channels); s 1425 libavcodec/ac3dec.c if (s->downmixed) { s 1426 libavcodec/ac3dec.c s->downmixed = 0; s 1427 libavcodec/ac3dec.c ac3_upmix_delay(s); s 1430 libavcodec/ac3dec.c do_imdct(s, s->channels, offset); s 1434 libavcodec/ac3dec.c ac3_downmix_c_fixed16(s->outptr, s->downmix_coeffs, s 1435 libavcodec/ac3dec.c s->out_channels, s->fbw_channels, 256); s 1437 libavcodec/ac3dec.c ff_ac3dsp_downmix(&s->ac3dsp, s->outptr, s->downmix_coeffs, s 1438 libavcodec/ac3dec.c s->out_channels, s->fbw_channels, 256); s 1443 libavcodec/ac3dec.c AC3_RENAME(ff_ac3dsp_downmix)(&s->ac3dsp, s->xcfptr + 1, s->downmix_coeffs, s 1444 libavcodec/ac3dec.c s->out_channels, s->fbw_channels, 256); s 1447 libavcodec/ac3dec.c if (downmix_output && !s->downmixed) { s 1448 libavcodec/ac3dec.c s->downmixed = 1; s 1449 libavcodec/ac3dec.c AC3_RENAME(ff_ac3dsp_downmix)(&s->ac3dsp, s->dlyptr, s->downmix_coeffs, s 1450 libavcodec/ac3dec.c s->out_channels, s->fbw_channels, 128); s 1453 libavcodec/ac3dec.c do_imdct(s, s->out_channels, offset); s 1468 libavcodec/ac3dec.c AC3DecodeContext *s = avctx->priv_data; s 1478 libavcodec/ac3dec.c s->superframe_size = 0; s 1503 libavcodec/ac3dec.c s->bdsp.bswap16_buf((uint16_t *) s->input_buffer, s 1506 libavcodec/ac3dec.c memcpy(s->input_buffer, buf, FFMIN(buf_size, AC3_FRAME_BUFFER_SIZE)); s 1511 libavcodec/ac3dec.c if (s->consistent_noise_generation) s 1512 libavcodec/ac3dec.c av_lfg_init_from_data(&s->dith_state, s->input_buffer, FFMIN(buf_size, AC3_FRAME_BUFFER_SIZE)); s 1514 libavcodec/ac3dec.c buf = s->input_buffer; s 1517 libavcodec/ac3dec.c if ((ret = init_get_bits8(&s->gbc, buf, buf_size)) < 0) s 1521 libavcodec/ac3dec.c err = parse_frame_header(s); s 1540 libavcodec/ac3dec.c if (s->substreamid) { s 1543 libavcodec/ac3dec.c s->substreamid); s 1559 libavcodec/ac3dec.c if (s->frame_size > buf_size) { s 1565 libavcodec/ac3dec.c s->frame_size - 2)) { s 1574 libavcodec/ac3dec.c if (s->frame_type == EAC3_FRAME_TYPE_DEPENDENT && !got_independent_frame) { s 1577 libavcodec/ac3dec.c return FFMIN(full_buf_size, s->frame_size); s 1581 libavcodec/ac3dec.c if (!err || (s->channels && s->out_channels != s->channels)) { s 1582 libavcodec/ac3dec.c s->out_channels = s->channels; s 1583 libavcodec/ac3dec.c s->output_mode = s->channel_mode; s 1584 libavcodec/ac3dec.c if (s->lfe_on) s 1585 libavcodec/ac3dec.c s->output_mode |= AC3_OUTPUT_LFEON; s 1586 libavcodec/ac3dec.c if (s->channels > 1 && s 1588 libavcodec/ac3dec.c s->out_channels = 1; s 1589 libavcodec/ac3dec.c s->output_mode = AC3_CHMODE_MONO; s 1590 libavcodec/ac3dec.c } else if (s->channels > 2 && s 1592 libavcodec/ac3dec.c s->out_channels = 2; s 1593 libavcodec/ac3dec.c s->output_mode = AC3_CHMODE_STEREO; s 1596 libavcodec/ac3dec.c s->loro_center_mix_level = gain_levels[s-> center_mix_level]; s 1597 libavcodec/ac3dec.c s->loro_surround_mix_level = gain_levels[s->surround_mix_level]; s 1598 libavcodec/ac3dec.c s->ltrt_center_mix_level = LEVEL_MINUS_3DB; s 1599 libavcodec/ac3dec.c s->ltrt_surround_mix_level = LEVEL_MINUS_3DB; s 1601 libavcodec/ac3dec.c if (s->channels != s->out_channels && !((s->output_mode & AC3_OUTPUT_LFEON) && s 1602 libavcodec/ac3dec.c s->fbw_channels == s->out_channels)) { s 1603 libavcodec/ac3dec.c if ((ret = set_downmix_coeffs(s)) < 0) { s 1608 libavcodec/ac3dec.c } else if (!s->channels) { s 1612 libavcodec/ac3dec.c avctx->channels = s->out_channels; s 1613 libavcodec/ac3dec.c avctx->channel_layout = avpriv_ac3_channel_layout_tab[s->output_mode & ~AC3_OUTPUT_LFEON]; s 1614 libavcodec/ac3dec.c if (s->output_mode & AC3_OUTPUT_LFEON) s 1618 libavcodec/ac3dec.c avctx->audio_service_type = s->bitstream_mode; s 1619 libavcodec/ac3dec.c if (s->bitstream_mode == 0x7 && s->channels > 1) s 1623 libavcodec/ac3dec.c channel_map = ff_ac3_dec_channel_map[s->output_mode & ~AC3_OUTPUT_LFEON][s->lfe_on]; s 1624 libavcodec/ac3dec.c offset = s->frame_type == EAC3_FRAME_TYPE_DEPENDENT ? AC3_MAX_CHANNELS : 0; s 1626 libavcodec/ac3dec.c output[ch] = s->output[ch + offset]; s 1627 libavcodec/ac3dec.c s->outptr[ch] = s->output[ch + offset]; s 1629 libavcodec/ac3dec.c for (ch = 0; ch < s->channels; ch++) { s 1630 libavcodec/ac3dec.c if (ch < s->out_channels) s 1631 libavcodec/ac3dec.c s->outptr[channel_map[ch]] = s->output_buffer[ch + offset]; s 1633 libavcodec/ac3dec.c for (blk = 0; blk < s->num_blocks; blk++) { s 1634 libavcodec/ac3dec.c if (!err && decode_audio_block(s, blk, offset)) { s 1639 libavcodec/ac3dec.c for (ch = 0; ch < s->out_channels; ch++) s 1640 libavcodec/ac3dec.c memcpy(s->output_buffer[ch + offset] + AC3_BLOCK_SIZE*blk, output[ch], AC3_BLOCK_SIZE*sizeof(SHORTFLOAT)); s 1641 libavcodec/ac3dec.c for (ch = 0; ch < s->out_channels; ch++) s 1642 libavcodec/ac3dec.c output[ch] = s->outptr[channel_map[ch]]; s 1643 libavcodec/ac3dec.c for (ch = 0; ch < s->out_channels; ch++) { s 1645 libavcodec/ac3dec.c s->outptr[channel_map[ch]] += AC3_BLOCK_SIZE; s 1650 libavcodec/ac3dec.c for (ch = 0; ch < s->out_channels; ch++) s 1651 libavcodec/ac3dec.c memcpy(s->output[ch + offset], output[ch], AC3_BLOCK_SIZE*sizeof(SHORTFLOAT)); s 1654 libavcodec/ac3dec.c if (buf_size > s->frame_size) { s 1658 libavcodec/ac3dec.c if (buf_size - s->frame_size <= 16) { s 1659 libavcodec/ac3dec.c skip = buf_size - s->frame_size; s 1663 libavcodec/ac3dec.c if ((ret = init_get_bits8(&s->gbc, buf + s->frame_size, buf_size - s->frame_size)) < 0) s 1666 libavcodec/ac3dec.c err = ff_ac3_parse_header(&s->gbc, &hdr); s 1671 libavcodec/ac3dec.c if (hdr.num_blocks != s->num_blocks || s->sample_rate != hdr.sample_rate) { s 1674 libavcodec/ac3dec.c buf += s->frame_size; s 1675 libavcodec/ac3dec.c buf_size -= s->frame_size; s 1676 libavcodec/ac3dec.c s->prev_output_mode = s->output_mode; s 1677 libavcodec/ac3dec.c s->prev_bit_rate = s->bit_rate; s 1689 libavcodec/ac3dec.c avctx->sample_rate = s->sample_rate; s 1690 libavcodec/ac3dec.c avctx->bit_rate = s->bit_rate + s->prev_bit_rate; s 1696 libavcodec/ac3dec.c if (s->frame_type == EAC3_FRAME_TYPE_DEPENDENT) { s 1697 libavcodec/ac3dec.c uint64_t ich_layout = avpriv_ac3_channel_layout_tab[s->prev_output_mode & ~AC3_OUTPUT_LFEON]; s 1698 libavcodec/ac3dec.c int channel_map_size = ff_ac3_channels_tab[s->output_mode & ~AC3_OUTPUT_LFEON] + s->lfe_on; s 1702 libavcodec/ac3dec.c if (s->prev_output_mode & AC3_OUTPUT_LFEON) s 1707 libavcodec/ac3dec.c if (s->channel_map & (1 << (EAC3_MAX_CHANNELS - ch - 1))) { s 1721 libavcodec/ac3dec.c if (s->channel_map & (1 << (EAC3_MAX_CHANNELS - ch - 1))) { s 1752 libavcodec/ac3dec.c frame->nb_samples = s->num_blocks * AC3_BLOCK_SIZE; s 1760 libavcodec/ac3dec.c s->output_buffer[map], s 1761 libavcodec/ac3dec.c s->num_blocks * AC3_BLOCK_SIZE * sizeof(SHORTFLOAT)); s 1771 libavcodec/ac3dec.c if (s->channel_mode == AC3_CHMODE_STEREO && s 1772 libavcodec/ac3dec.c s->channel_mode == (s->output_mode & ~AC3_OUTPUT_LFEON)) { s 1773 libavcodec/ac3dec.c if (s->dolby_surround_mode == AC3_DSURMOD_ON) s 1775 libavcodec/ac3dec.c else if (s->dolby_headphone_mode == AC3_DHEADPHONMOD_ON) s 1777 libavcodec/ac3dec.c } else if (s->channel_mode >= AC3_CHMODE_2F2R && s 1778 libavcodec/ac3dec.c s->channel_mode == (s->output_mode & ~AC3_OUTPUT_LFEON)) { s 1779 libavcodec/ac3dec.c switch (s->dolby_surround_ex_mode) { s 1795 libavcodec/ac3dec.c switch (s->preferred_downmix) { s 1809 libavcodec/ac3dec.c downmix_info->center_mix_level = gain_levels[s-> center_mix_level]; s 1810 libavcodec/ac3dec.c downmix_info->center_mix_level_ltrt = gain_levels[s-> center_mix_level_ltrt]; s 1811 libavcodec/ac3dec.c downmix_info->surround_mix_level = gain_levels[s-> surround_mix_level]; s 1812 libavcodec/ac3dec.c downmix_info->surround_mix_level_ltrt = gain_levels[s->surround_mix_level_ltrt]; s 1813 libavcodec/ac3dec.c if (s->lfe_mix_level_exists) s 1814 libavcodec/ac3dec.c downmix_info->lfe_mix_level = gain_levels_lfe[s->lfe_mix_level]; s 1822 libavcodec/ac3dec.c if (!s->superframe_size) s 1823 libavcodec/ac3dec.c return FFMIN(full_buf_size, s->frame_size + skip); s 1825 libavcodec/ac3dec.c return FFMIN(full_buf_size, s->superframe_size + skip); s 1833 libavcodec/ac3dec.c AC3DecodeContext *s = avctx->priv_data; s 1834 libavcodec/ac3dec.c ff_mdct_end(&s->imdct_512); s 1835 libavcodec/ac3dec.c ff_mdct_end(&s->imdct_256); s 1836 libavcodec/ac3dec.c av_freep(&s->fdsp); s 1837 libavcodec/ac3dec.c av_freep(&s->downmix_coeffs[0]); s 258 libavcodec/ac3dec.h static int ff_eac3_parse_header(AC3DecodeContext *s); s 264 libavcodec/ac3dec.h static void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch); s 271 libavcodec/ac3dec.h static void ff_eac3_apply_spectral_extension(AC3DecodeContext *s); s 183 libavcodec/ac3enc.c void ff_ac3_adjust_frame_size(AC3EncodeContext *s) s 185 libavcodec/ac3enc.c while (s->bits_written >= s->bit_rate && s->samples_written >= s->sample_rate) { s 186 libavcodec/ac3enc.c s->bits_written -= s->bit_rate; s 187 libavcodec/ac3enc.c s->samples_written -= s->sample_rate; s 189 libavcodec/ac3enc.c s->frame_size = s->frame_size_min + s 190 libavcodec/ac3enc.c 2 * (s->bits_written * s->sample_rate < s->samples_written * s->bit_rate); s 191 libavcodec/ac3enc.c s->bits_written += s->frame_size * 8; s 192 libavcodec/ac3enc.c s->samples_written += AC3_BLOCK_SIZE * s->num_blocks; s 201 libavcodec/ac3enc.c void ff_ac3_compute_coupling_strategy(AC3EncodeContext *s) s 209 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 210 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 211 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) s 212 libavcodec/ac3enc.c block->channel_in_cpl[ch] = s->cpl_on; s 219 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 220 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 222 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) s 228 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) s 234 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 235 libavcodec/ac3enc.c if (block->channel_in_cpl[ch] != s->blocks[blk-1].channel_in_cpl[ch]) { s 252 libavcodec/ac3enc.c s->cpl_on = 0; s 255 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 256 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 257 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 259 libavcodec/ac3enc.c block->end_freq[ch] = s->start_freq[CPL_CH]; s 261 libavcodec/ac3enc.c block->end_freq[ch] = s->bandwidth_code * 3 + 73; s 272 libavcodec/ac3enc.c void ff_ac3_apply_rematrixing(AC3EncodeContext *s) s 279 libavcodec/ac3enc.c if (!s->rematrixing_enabled) s 282 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 283 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 306 libavcodec/ac3enc.c static av_cold void exponent_init(AC3EncodeContext *s) s 320 libavcodec/ac3enc.c if (CONFIG_EAC3_ENCODER && s->eac3) s 328 libavcodec/ac3enc.c static void extract_exponents(AC3EncodeContext *s) s 330 libavcodec/ac3enc.c int ch = !s->cpl_on; s 331 libavcodec/ac3enc.c int chan_size = AC3_MAX_COEFS * s->num_blocks * (s->channels - ch + 1); s 332 libavcodec/ac3enc.c AC3Block *block = &s->blocks[0]; s 334 libavcodec/ac3enc.c s->ac3dsp.extract_exponents(block->exp[ch], block->fixed_coef[ch], chan_size); s 358 libavcodec/ac3enc.c static void compute_exp_strategy(AC3EncodeContext *s) s 362 libavcodec/ac3enc.c for (ch = !s->cpl_on; ch <= s->fbw_channels; ch++) { s 363 libavcodec/ac3enc.c uint8_t *exp_strategy = s->exp_strategy[ch]; s 364 libavcodec/ac3enc.c uint8_t *exp = s->blocks[0].exp[ch]; s 371 libavcodec/ac3enc.c for (blk = 1; blk < s->num_blocks; blk++, exp += AC3_MAX_COEFS) { s 373 libavcodec/ac3enc.c if (!s->blocks[blk-1].cpl_in_use) { s 376 libavcodec/ac3enc.c } else if (!s->blocks[blk].cpl_in_use) { s 380 libavcodec/ac3enc.c } else if (s->blocks[blk].channel_in_cpl[ch] != s->blocks[blk-1].channel_in_cpl[ch]) { s 384 libavcodec/ac3enc.c exp_diff = s->mecc.sad[0](NULL, exp, exp - AC3_MAX_COEFS, 16, 16); s 386 libavcodec/ac3enc.c if (ch == CPL_CH && exp_diff > (EXP_DIFF_THRESHOLD * (s->blocks[blk].end_freq[ch] - s->start_freq[ch]) / AC3_MAX_COEFS)) s 395 libavcodec/ac3enc.c while (blk < s->num_blocks) { s 397 libavcodec/ac3enc.c while (blk1 < s->num_blocks && exp_strategy[blk1] == EXP_REUSE) s 399 libavcodec/ac3enc.c exp_strategy[blk] = exp_strategy_reuse_tab[s->num_blks_code][blk1-blk-1]; s 403 libavcodec/ac3enc.c if (s->lfe_on) { s 404 libavcodec/ac3enc.c ch = s->lfe_channel; s 405 libavcodec/ac3enc.c s->exp_strategy[ch][0] = EXP_D15; s 406 libavcodec/ac3enc.c for (blk = 1; blk < s->num_blocks; blk++) s 407 libavcodec/ac3enc.c s->exp_strategy[ch][blk] = EXP_REUSE; s 411 libavcodec/ac3enc.c if (CONFIG_EAC3_ENCODER && s->eac3) s 412 libavcodec/ac3enc.c ff_eac3_get_frame_exp_strategy(s); s 497 libavcodec/ac3enc.c static void encode_exponents(AC3EncodeContext *s) s 503 libavcodec/ac3enc.c for (ch = !s->cpl_on; ch <= s->channels; ch++) { s 504 libavcodec/ac3enc.c exp = s->blocks[0].exp[ch] + s->start_freq[ch]; s 505 libavcodec/ac3enc.c exp_strategy = s->exp_strategy[ch]; s 509 libavcodec/ac3enc.c while (blk < s->num_blocks) { s 510 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 516 libavcodec/ac3enc.c nb_coefs = block->end_freq[ch] - s->start_freq[ch]; s 521 libavcodec/ac3enc.c s->exp_ref_block[ch][blk] = blk; s 522 libavcodec/ac3enc.c while (blk1 < s->num_blocks && exp_strategy[blk1] == EXP_REUSE) { s 523 libavcodec/ac3enc.c s->exp_ref_block[ch][blk1] = blk; s 529 libavcodec/ac3enc.c s->ac3dsp.ac3_exponent_min(exp-s->start_freq[ch], num_reuse_blocks, s 540 libavcodec/ac3enc.c s->ref_bap_set = 0; s 547 libavcodec/ac3enc.c static int count_exponent_bits(AC3EncodeContext *s) s 553 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 554 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 555 libavcodec/ac3enc.c for (ch = !block->cpl_in_use; ch <= s->channels; ch++) { s 556 libavcodec/ac3enc.c int exp_strategy = s->exp_strategy[ch][blk]; s 558 libavcodec/ac3enc.c int nb_coefs = block->end_freq[ch] - s->start_freq[ch]; s 579 libavcodec/ac3enc.c void ff_ac3_group_exponents(AC3EncodeContext *s) s 587 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 588 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 589 libavcodec/ac3enc.c for (ch = !block->cpl_in_use; ch <= s->channels; ch++) { s 590 libavcodec/ac3enc.c int exp_strategy = s->exp_strategy[ch][blk]; s 595 libavcodec/ac3enc.c nb_groups = exponent_group_tab[cpl][exp_strategy-1][block->end_freq[ch]-s->start_freq[ch]]; s 596 libavcodec/ac3enc.c p = block->exp[ch] + s->start_freq[ch] - cpl; s 637 libavcodec/ac3enc.c void ff_ac3_process_exponents(AC3EncodeContext *s) s 639 libavcodec/ac3enc.c extract_exponents(s); s 641 libavcodec/ac3enc.c compute_exp_strategy(s); s 643 libavcodec/ac3enc.c encode_exponents(s); s 653 libavcodec/ac3enc.c static void count_frame_bits_fixed(AC3EncodeContext *s) s 670 libavcodec/ac3enc.c if (s->eac3) { s 674 libavcodec/ac3enc.c if (s->num_blocks != 0x6) s 678 libavcodec/ac3enc.c if (s->num_blocks == 6) s 682 libavcodec/ac3enc.c if (s->use_frame_exp_strategy) s 683 libavcodec/ac3enc.c frame_bits += 5 * s->fbw_channels; s 685 libavcodec/ac3enc.c frame_bits += s->num_blocks * 2 * s->fbw_channels; s 686 libavcodec/ac3enc.c if (s->lfe_on) s 687 libavcodec/ac3enc.c frame_bits += s->num_blocks; s 689 libavcodec/ac3enc.c if (s->num_blks_code != 0x3) s 692 libavcodec/ac3enc.c frame_bits += s->fbw_channels * 5; s 696 libavcodec/ac3enc.c if (s->num_blocks != 1) s 700 libavcodec/ac3enc.c frame_bits += frame_bits_inc[s->channel_mode]; s 704 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 705 libavcodec/ac3enc.c if (!s->eac3) { s 707 libavcodec/ac3enc.c frame_bits += s->fbw_channels; s 710 libavcodec/ac3enc.c frame_bits += s->fbw_channels; s 717 libavcodec/ac3enc.c if (s->eac3) s 720 libavcodec/ac3enc.c if (!s->eac3) { s 722 libavcodec/ac3enc.c frame_bits += 2 * s->fbw_channels; s 723 libavcodec/ac3enc.c if (s->lfe_on) s 733 libavcodec/ac3enc.c if (s->eac3) s 736 libavcodec/ac3enc.c if (!s->eac3) { s 751 libavcodec/ac3enc.c s->frame_bits_fixed = frame_bits; s 759 libavcodec/ac3enc.c static av_cold void bit_alloc_init(AC3EncodeContext *s) s 764 libavcodec/ac3enc.c s->slow_decay_code = 2; s 765 libavcodec/ac3enc.c s->fast_decay_code = 1; s 766 libavcodec/ac3enc.c s->slow_gain_code = 1; s 767 libavcodec/ac3enc.c s->db_per_bit_code = s->eac3 ? 2 : 3; s 768 libavcodec/ac3enc.c s->floor_code = 7; s 769 libavcodec/ac3enc.c for (ch = 0; ch <= s->channels; ch++) s 770 libavcodec/ac3enc.c s->fast_gain_code[ch] = 4; s 773 libavcodec/ac3enc.c s->coarse_snr_offset = 40; s 778 libavcodec/ac3enc.c s->bit_alloc.slow_decay = ff_ac3_slow_decay_tab[s->slow_decay_code] >> s->bit_alloc.sr_shift; s 779 libavcodec/ac3enc.c s->bit_alloc.fast_decay = ff_ac3_fast_decay_tab[s->fast_decay_code] >> s->bit_alloc.sr_shift; s 780 libavcodec/ac3enc.c s->bit_alloc.slow_gain = ff_ac3_slow_gain_tab[s->slow_gain_code]; s 781 libavcodec/ac3enc.c s->bit_alloc.db_per_bit = ff_ac3_db_per_bit_tab[s->db_per_bit_code]; s 782 libavcodec/ac3enc.c s->bit_alloc.floor = ff_ac3_floor_tab[s->floor_code]; s 783 libavcodec/ac3enc.c s->bit_alloc.cpl_fast_leak = 0; s 784 libavcodec/ac3enc.c s->bit_alloc.cpl_slow_leak = 0; s 786 libavcodec/ac3enc.c count_frame_bits_fixed(s); s 795 libavcodec/ac3enc.c static void count_frame_bits(AC3EncodeContext *s) s 797 libavcodec/ac3enc.c AC3EncOptions *opt = &s->options; s 802 libavcodec/ac3enc.c if (s->eac3) { s 804 libavcodec/ac3enc.c if (s->channel_mode > AC3_CHMODE_STEREO) s 806 libavcodec/ac3enc.c if (s->has_center) s 808 libavcodec/ac3enc.c if (s->has_surround) s 810 libavcodec/ac3enc.c frame_bits += s->lfe_on; s 812 libavcodec/ac3enc.c if (s->channel_mode < AC3_CHMODE_STEREO) s 818 libavcodec/ac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO) s 820 libavcodec/ac3enc.c if (s->channel_mode >= AC3_CHMODE_2F2R) s 828 libavcodec/ac3enc.c if (s->channel_mode > AC3_CHMODE_MONO) { s 830 libavcodec/ac3enc.c for (blk = 1; blk < s->num_blocks; blk++) { s 831 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 838 libavcodec/ac3enc.c if (s->cpl_on) { s 839 libavcodec/ac3enc.c if (s->use_frame_exp_strategy) { s 840 libavcodec/ac3enc.c frame_bits += 5 * s->cpl_on; s 842 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) s 843 libavcodec/ac3enc.c frame_bits += 2 * s->blocks[blk].cpl_in_use; s 849 libavcodec/ac3enc.c if (s->bitstream_id == 6) { s 858 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 859 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 862 libavcodec/ac3enc.c if (!s->eac3) s 865 libavcodec/ac3enc.c if (!s->eac3) s 868 libavcodec/ac3enc.c if (s->eac3) s 870 libavcodec/ac3enc.c if (!s->eac3 || s->channel_mode != AC3_CHMODE_STEREO) s 871 libavcodec/ac3enc.c frame_bits += s->fbw_channels; s 872 libavcodec/ac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO) s 875 libavcodec/ac3enc.c if (s->eac3) s 878 libavcodec/ac3enc.c frame_bits += s->num_cpl_subbands - 1; s 884 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 886 libavcodec/ac3enc.c if (!s->eac3 || block->new_cpl_coords[ch] != 2) s 890 libavcodec/ac3enc.c frame_bits += (4 + 4) * s->num_cpl_bands; s 897 libavcodec/ac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO) { s 898 libavcodec/ac3enc.c if (!s->eac3 || blk > 0) s 900 libavcodec/ac3enc.c if (s->blocks[blk].new_rematrixing_strategy) s 905 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 906 libavcodec/ac3enc.c if (s->exp_strategy[ch][blk] != EXP_REUSE) { s 914 libavcodec/ac3enc.c if (!s->eac3 && block->cpl_in_use) s 918 libavcodec/ac3enc.c if (!s->eac3) { s 921 libavcodec/ac3enc.c frame_bits += 6 + (s->channels + block->cpl_in_use) * (4 + 3); s 926 libavcodec/ac3enc.c if (!s->eac3 || block->new_cpl_leak != 2) s 933 libavcodec/ac3enc.c s->frame_bits = s->frame_bits_fixed + frame_bits; s 941 libavcodec/ac3enc.c static void bit_alloc_masking(AC3EncodeContext *s) s 945 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 946 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 947 libavcodec/ac3enc.c for (ch = !block->cpl_in_use; ch <= s->channels; ch++) { s 951 libavcodec/ac3enc.c if (s->exp_strategy[ch][blk] != EXP_REUSE) { s 952 libavcodec/ac3enc.c ff_ac3_bit_alloc_calc_psd(block->exp[ch], s->start_freq[ch], s 955 libavcodec/ac3enc.c ff_ac3_bit_alloc_calc_mask(&s->bit_alloc, block->band_psd[ch], s 956 libavcodec/ac3enc.c s->start_freq[ch], block->end_freq[ch], s 957 libavcodec/ac3enc.c ff_ac3_fast_gain_tab[s->fast_gain_code[ch]], s 958 libavcodec/ac3enc.c ch == s->lfe_channel, s 971 libavcodec/ac3enc.c static void reset_block_bap(AC3EncodeContext *s) s 976 libavcodec/ac3enc.c if (s->ref_bap[0][0] == s->bap_buffer && s->ref_bap_set) s 979 libavcodec/ac3enc.c ref_bap = s->bap_buffer; s 980 libavcodec/ac3enc.c for (ch = 0; ch <= s->channels; ch++) { s 981 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) s 982 libavcodec/ac3enc.c s->ref_bap[ch][blk] = ref_bap + AC3_MAX_COEFS * s->exp_ref_block[ch][blk]; s 983 libavcodec/ac3enc.c ref_bap += AC3_MAX_COEFS * s->num_blocks; s 985 libavcodec/ac3enc.c s->ref_bap_set = 1; s 1018 libavcodec/ac3enc.c static void count_mantissa_bits_update_ch(AC3EncodeContext *s, int ch, s 1024 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 1025 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 1028 libavcodec/ac3enc.c s->ac3dsp.update_bap_counts(mant_cnt[blk], s 1029 libavcodec/ac3enc.c s->ref_bap[ch][blk] + start, s 1038 libavcodec/ac3enc.c static int count_mantissa_bits(AC3EncodeContext *s) s 1045 libavcodec/ac3enc.c max_end_freq = s->bandwidth_code * 3 + 73; s 1046 libavcodec/ac3enc.c for (ch = !s->cpl_enabled; ch <= s->channels; ch++) s 1047 libavcodec/ac3enc.c count_mantissa_bits_update_ch(s, ch, mant_cnt, s->start_freq[ch], s 1050 libavcodec/ac3enc.c return s->ac3dsp.compute_mantissa_size(mant_cnt); s 1064 libavcodec/ac3enc.c static int bit_alloc(AC3EncodeContext *s, int snr_offset) s 1070 libavcodec/ac3enc.c reset_block_bap(s); s 1071 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 1072 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 1074 libavcodec/ac3enc.c for (ch = !block->cpl_in_use; ch <= s->channels; ch++) { s 1079 libavcodec/ac3enc.c if (s->exp_strategy[ch][blk] != EXP_REUSE) { s 1080 libavcodec/ac3enc.c s->ac3dsp.bit_alloc_calc_bap(block->mask[ch], block->psd[ch], s 1081 libavcodec/ac3enc.c s->start_freq[ch], block->end_freq[ch], s 1082 libavcodec/ac3enc.c snr_offset, s->bit_alloc.floor, s 1083 libavcodec/ac3enc.c ff_ac3_bap_tab, s->ref_bap[ch][blk]); s 1087 libavcodec/ac3enc.c return count_mantissa_bits(s); s 1095 libavcodec/ac3enc.c static int cbr_bit_allocation(AC3EncodeContext *s) s 1101 libavcodec/ac3enc.c bits_left = 8 * s->frame_size - (s->frame_bits + s->exponent_bits); s 1105 libavcodec/ac3enc.c snr_offset = s->coarse_snr_offset << 4; s 1109 libavcodec/ac3enc.c if ((snr_offset | s->fine_snr_offset[1]) == 1023) { s 1110 libavcodec/ac3enc.c if (bit_alloc(s, 1023) <= bits_left) s 1115 libavcodec/ac3enc.c bit_alloc(s, snr_offset) > bits_left) { s 1121 libavcodec/ac3enc.c FFSWAP(uint8_t *, s->bap_buffer, s->bap1_buffer); s 1124 libavcodec/ac3enc.c bit_alloc(s, snr_offset + snr_incr) <= bits_left) { s 1126 libavcodec/ac3enc.c FFSWAP(uint8_t *, s->bap_buffer, s->bap1_buffer); s 1129 libavcodec/ac3enc.c FFSWAP(uint8_t *, s->bap_buffer, s->bap1_buffer); s 1130 libavcodec/ac3enc.c reset_block_bap(s); s 1132 libavcodec/ac3enc.c s->coarse_snr_offset = snr_offset >> 4; s 1133 libavcodec/ac3enc.c for (ch = !s->cpl_on; ch <= s->channels; ch++) s 1134 libavcodec/ac3enc.c s->fine_snr_offset[ch] = snr_offset & 0xF; s 1146 libavcodec/ac3enc.c int ff_ac3_compute_bit_allocation(AC3EncodeContext *s) s 1148 libavcodec/ac3enc.c count_frame_bits(s); s 1150 libavcodec/ac3enc.c s->exponent_bits = count_exponent_bits(s); s 1152 libavcodec/ac3enc.c bit_alloc_masking(s); s 1154 libavcodec/ac3enc.c return cbr_bit_allocation(s); s 1206 libavcodec/ac3enc.c static void quantize_mantissas_blk_ch(AC3Mant *s, int32_t *fixed_coef, s 1221 libavcodec/ac3enc.c switch (s->mant1_cnt) { s 1223 libavcodec/ac3enc.c s->qmant1_ptr = &qmant[i]; s 1225 libavcodec/ac3enc.c s->mant1_cnt = 1; s 1228 libavcodec/ac3enc.c *s->qmant1_ptr += 3 * v; s 1229 libavcodec/ac3enc.c s->mant1_cnt = 2; s 1233 libavcodec/ac3enc.c *s->qmant1_ptr += v; s 1234 libavcodec/ac3enc.c s->mant1_cnt = 0; s 1241 libavcodec/ac3enc.c switch (s->mant2_cnt) { s 1243 libavcodec/ac3enc.c s->qmant2_ptr = &qmant[i]; s 1245 libavcodec/ac3enc.c s->mant2_cnt = 1; s 1248 libavcodec/ac3enc.c *s->qmant2_ptr += 5 * v; s 1249 libavcodec/ac3enc.c s->mant2_cnt = 2; s 1253 libavcodec/ac3enc.c *s->qmant2_ptr += v; s 1254 libavcodec/ac3enc.c s->mant2_cnt = 0; s 1264 libavcodec/ac3enc.c switch (s->mant4_cnt) { s 1266 libavcodec/ac3enc.c s->qmant4_ptr = &qmant[i]; s 1268 libavcodec/ac3enc.c s->mant4_cnt = 1; s 1271 libavcodec/ac3enc.c *s->qmant4_ptr += v; s 1272 libavcodec/ac3enc.c s->mant4_cnt = 0; s 1300 libavcodec/ac3enc.c void ff_ac3_quantize_mantissas(AC3EncodeContext *s) s 1304 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 1305 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 1309 libavcodec/ac3enc.c for (ch = 1; ch <= s->channels; ch++) { s 1316 libavcodec/ac3enc.c s->blocks[s->exp_ref_block[ch][blk]].exp[ch], s 1317 libavcodec/ac3enc.c s->ref_bap[ch][blk], block->qmant[ch], s 1318 libavcodec/ac3enc.c s->start_freq[ch], block->end_freq[ch]); s 1329 libavcodec/ac3enc.c static void ac3_output_frame_header(AC3EncodeContext *s) s 1331 libavcodec/ac3enc.c AC3EncOptions *opt = &s->options; s 1333 libavcodec/ac3enc.c put_bits(&s->pb, 16, 0x0b77); /* frame header */ s 1334 libavcodec/ac3enc.c put_bits(&s->pb, 16, 0); /* crc1: will be filled later */ s 1335 libavcodec/ac3enc.c put_bits(&s->pb, 2, s->bit_alloc.sr_code); s 1336 libavcodec/ac3enc.c put_bits(&s->pb, 6, s->frame_size_code + (s->frame_size - s->frame_size_min) / 2); s 1337 libavcodec/ac3enc.c put_bits(&s->pb, 5, s->bitstream_id); s 1338 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->bitstream_mode); s 1339 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->channel_mode); s 1340 libavcodec/ac3enc.c if ((s->channel_mode & 0x01) && s->channel_mode != AC3_CHMODE_MONO) s 1341 libavcodec/ac3enc.c put_bits(&s->pb, 2, s->center_mix_level); s 1342 libavcodec/ac3enc.c if (s->channel_mode & 0x04) s 1343 libavcodec/ac3enc.c put_bits(&s->pb, 2, s->surround_mix_level); s 1344 libavcodec/ac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO) s 1345 libavcodec/ac3enc.c put_bits(&s->pb, 2, opt->dolby_surround_mode); s 1346 libavcodec/ac3enc.c put_bits(&s->pb, 1, s->lfe_on); /* LFE */ s 1347 libavcodec/ac3enc.c put_bits(&s->pb, 5, -opt->dialogue_level); s 1348 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* no compression control word */ s 1349 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* no lang code */ s 1350 libavcodec/ac3enc.c put_bits(&s->pb, 1, opt->audio_production_info); s 1352 libavcodec/ac3enc.c put_bits(&s->pb, 5, opt->mixing_level - 80); s 1353 libavcodec/ac3enc.c put_bits(&s->pb, 2, opt->room_type); s 1355 libavcodec/ac3enc.c put_bits(&s->pb, 1, opt->copyright); s 1356 libavcodec/ac3enc.c put_bits(&s->pb, 1, opt->original); s 1357 libavcodec/ac3enc.c if (s->bitstream_id == 6) { s 1359 libavcodec/ac3enc.c put_bits(&s->pb, 1, opt->extended_bsi_1); s 1361 libavcodec/ac3enc.c put_bits(&s->pb, 2, opt->preferred_stereo_downmix); s 1362 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->ltrt_center_mix_level); s 1363 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->ltrt_surround_mix_level); s 1364 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->loro_center_mix_level); s 1365 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->loro_surround_mix_level); s 1367 libavcodec/ac3enc.c put_bits(&s->pb, 1, opt->extended_bsi_2); s 1369 libavcodec/ac3enc.c put_bits(&s->pb, 2, opt->dolby_surround_ex_mode); s 1370 libavcodec/ac3enc.c put_bits(&s->pb, 2, opt->dolby_headphone_mode); s 1371 libavcodec/ac3enc.c put_bits(&s->pb, 1, opt->ad_converter_type); s 1372 libavcodec/ac3enc.c put_bits(&s->pb, 9, 0); /* xbsi2 and encinfo : reserved */ s 1375 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* no time code 1 */ s 1376 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* no time code 2 */ s 1378 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* no additional bit stream info */ s 1385 libavcodec/ac3enc.c static void output_audio_block(AC3EncodeContext *s, int blk) s 1388 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 1391 libavcodec/ac3enc.c if (!s->eac3) { s 1392 libavcodec/ac3enc.c for (ch = 0; ch < s->fbw_channels; ch++) s 1393 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); s 1397 libavcodec/ac3enc.c if (!s->eac3) { s 1398 libavcodec/ac3enc.c for (ch = 0; ch < s->fbw_channels; ch++) s 1399 libavcodec/ac3enc.c put_bits(&s->pb, 1, 1); s 1403 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); s 1406 libavcodec/ac3enc.c if (s->eac3) s 1407 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); s 1410 libavcodec/ac3enc.c if (!s->eac3) s 1411 libavcodec/ac3enc.c put_bits(&s->pb, 1, block->new_cpl_strategy); s 1413 libavcodec/ac3enc.c if (!s->eac3) s 1414 libavcodec/ac3enc.c put_bits(&s->pb, 1, block->cpl_in_use); s 1417 libavcodec/ac3enc.c if (s->eac3) s 1418 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* enhanced coupling */ s 1419 libavcodec/ac3enc.c if (!s->eac3 || s->channel_mode != AC3_CHMODE_STEREO) { s 1420 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) s 1421 libavcodec/ac3enc.c put_bits(&s->pb, 1, block->channel_in_cpl[ch]); s 1423 libavcodec/ac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO) s 1424 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* phase flags in use */ s 1425 libavcodec/ac3enc.c start_sub = (s->start_freq[CPL_CH] - 37) / 12; s 1426 libavcodec/ac3enc.c end_sub = (s->cpl_end_freq - 37) / 12; s 1427 libavcodec/ac3enc.c put_bits(&s->pb, 4, start_sub); s 1428 libavcodec/ac3enc.c put_bits(&s->pb, 4, end_sub - 3); s 1430 libavcodec/ac3enc.c if (s->eac3) { s 1431 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* use default */ s 1434 libavcodec/ac3enc.c put_bits(&s->pb, 1, ff_eac3_default_cpl_band_struct[bnd]); s 1441 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 1443 libavcodec/ac3enc.c if (!s->eac3 || block->new_cpl_coords[ch] != 2) s 1444 libavcodec/ac3enc.c put_bits(&s->pb, 1, block->new_cpl_coords[ch]); s 1446 libavcodec/ac3enc.c put_bits(&s->pb, 2, block->cpl_master_exp[ch]); s 1447 libavcodec/ac3enc.c for (bnd = 0; bnd < s->num_cpl_bands; bnd++) { s 1448 libavcodec/ac3enc.c put_bits(&s->pb, 4, block->cpl_coord_exp [ch][bnd]); s 1449 libavcodec/ac3enc.c put_bits(&s->pb, 4, block->cpl_coord_mant[ch][bnd]); s 1457 libavcodec/ac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO) { s 1458 libavcodec/ac3enc.c if (!s->eac3 || blk > 0) s 1459 libavcodec/ac3enc.c put_bits(&s->pb, 1, block->new_rematrixing_strategy); s 1463 libavcodec/ac3enc.c put_bits(&s->pb, 1, block->rematrixing_flags[bnd]); s 1468 libavcodec/ac3enc.c if (!s->eac3) { s 1469 libavcodec/ac3enc.c for (ch = !block->cpl_in_use; ch <= s->fbw_channels; ch++) s 1470 libavcodec/ac3enc.c put_bits(&s->pb, 2, s->exp_strategy[ch][blk]); s 1471 libavcodec/ac3enc.c if (s->lfe_on) s 1472 libavcodec/ac3enc.c put_bits(&s->pb, 1, s->exp_strategy[s->lfe_channel][blk]); s 1476 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 1477 libavcodec/ac3enc.c if (s->exp_strategy[ch][blk] != EXP_REUSE && !block->channel_in_cpl[ch]) s 1478 libavcodec/ac3enc.c put_bits(&s->pb, 6, s->bandwidth_code); s 1482 libavcodec/ac3enc.c for (ch = !block->cpl_in_use; ch <= s->channels; ch++) { s 1486 libavcodec/ac3enc.c if (s->exp_strategy[ch][blk] == EXP_REUSE) s 1490 libavcodec/ac3enc.c put_bits(&s->pb, 4, block->grouped_exp[ch][0] >> cpl); s 1493 libavcodec/ac3enc.c nb_groups = exponent_group_tab[cpl][s->exp_strategy[ch][blk]-1][block->end_freq[ch]-s->start_freq[ch]]; s 1495 libavcodec/ac3enc.c put_bits(&s->pb, 7, block->grouped_exp[ch][i]); s 1498 libavcodec/ac3enc.c if (ch != s->lfe_channel && !cpl) s 1499 libavcodec/ac3enc.c put_bits(&s->pb, 2, 0); s 1503 libavcodec/ac3enc.c if (!s->eac3) { s 1505 libavcodec/ac3enc.c put_bits(&s->pb, 1, baie); s 1507 libavcodec/ac3enc.c put_bits(&s->pb, 2, s->slow_decay_code); s 1508 libavcodec/ac3enc.c put_bits(&s->pb, 2, s->fast_decay_code); s 1509 libavcodec/ac3enc.c put_bits(&s->pb, 2, s->slow_gain_code); s 1510 libavcodec/ac3enc.c put_bits(&s->pb, 2, s->db_per_bit_code); s 1511 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->floor_code); s 1516 libavcodec/ac3enc.c if (!s->eac3) { s 1517 libavcodec/ac3enc.c put_bits(&s->pb, 1, block->new_snr_offsets); s 1519 libavcodec/ac3enc.c put_bits(&s->pb, 6, s->coarse_snr_offset); s 1520 libavcodec/ac3enc.c for (ch = !block->cpl_in_use; ch <= s->channels; ch++) { s 1521 libavcodec/ac3enc.c put_bits(&s->pb, 4, s->fine_snr_offset[ch]); s 1522 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->fast_gain_code[ch]); s 1526 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* no converter snr offset */ s 1531 libavcodec/ac3enc.c if (!s->eac3 || block->new_cpl_leak != 2) s 1532 libavcodec/ac3enc.c put_bits(&s->pb, 1, block->new_cpl_leak); s 1534 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->bit_alloc.cpl_fast_leak); s 1535 libavcodec/ac3enc.c put_bits(&s->pb, 3, s->bit_alloc.cpl_slow_leak); s 1539 libavcodec/ac3enc.c if (!s->eac3) { s 1540 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* no delta bit allocation */ s 1541 libavcodec/ac3enc.c put_bits(&s->pb, 1, 0); /* no data to skip */ s 1546 libavcodec/ac3enc.c for (ch = 1; ch <= s->channels; ch++) { s 1554 libavcodec/ac3enc.c for (i = s->start_freq[ch]; i < block->end_freq[ch]; i++) { s 1556 libavcodec/ac3enc.c b = s->ref_bap[ch][blk][i]; s 1559 libavcodec/ac3enc.c case 1: if (q != 128) put_bits (&s->pb, 5, q); break; s 1560 libavcodec/ac3enc.c case 2: if (q != 128) put_bits (&s->pb, 7, q); break; s 1561 libavcodec/ac3enc.c case 3: put_sbits(&s->pb, 3, q); break; s 1562 libavcodec/ac3enc.c case 4: if (q != 128) put_bits (&s->pb, 7, q); break; s 1563 libavcodec/ac3enc.c case 14: put_sbits(&s->pb, 14, q); break; s 1564 libavcodec/ac3enc.c case 15: put_sbits(&s->pb, 16, q); break; s 1565 libavcodec/ac3enc.c default: put_sbits(&s->pb, b-1, q); break; s 1612 libavcodec/ac3enc.c static void output_frame_end(AC3EncodeContext *s) s 1618 libavcodec/ac3enc.c frame_size_58 = ((s->frame_size >> 2) + (s->frame_size >> 4)) << 1; s 1621 libavcodec/ac3enc.c av_assert2(s->frame_size * 8 - put_bits_count(&s->pb) >= 18); s 1622 libavcodec/ac3enc.c flush_put_bits(&s->pb); s 1623 libavcodec/ac3enc.c frame = s->pb.buf; s 1624 libavcodec/ac3enc.c pad_bytes = s->frame_size - (put_bits_ptr(&s->pb) - frame) - 2; s 1627 libavcodec/ac3enc.c memset(put_bits_ptr(&s->pb), 0, pad_bytes); s 1629 libavcodec/ac3enc.c if (s->eac3) { s 1631 libavcodec/ac3enc.c crc2_partial = av_crc(crc_ctx, 0, frame + 2, s->frame_size - 5); s 1636 libavcodec/ac3enc.c crc_inv = s->crc_inv[s->frame_size > s->frame_size_min]; s 1642 libavcodec/ac3enc.c s->frame_size - frame_size_58 - 3); s 1644 libavcodec/ac3enc.c crc2 = av_crc(crc_ctx, crc2_partial, frame + s->frame_size - 3, 1); s 1647 libavcodec/ac3enc.c frame[s->frame_size - 3] ^= 0x1; s 1648 libavcodec/ac3enc.c crc2 = av_crc(crc_ctx, crc2_partial, frame + s->frame_size - 3, 1); s 1651 libavcodec/ac3enc.c AV_WB16(frame + s->frame_size - 2, crc2); s 1661 libavcodec/ac3enc.c void ff_ac3_output_frame(AC3EncodeContext *s, unsigned char *frame) s 1665 libavcodec/ac3enc.c init_put_bits(&s->pb, frame, AC3_MAX_CODED_FRAME_SIZE); s 1667 libavcodec/ac3enc.c s->output_frame_header(s); s 1669 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) s 1670 libavcodec/ac3enc.c output_audio_block(s, blk); s 1672 libavcodec/ac3enc.c output_frame_end(s); s 1676 libavcodec/ac3enc.c static void dprint_options(AC3EncodeContext *s) s 1679 libavcodec/ac3enc.c AVCodecContext *avctx = s->avctx; s 1680 libavcodec/ac3enc.c AC3EncOptions *opt = &s->options; s 1683 libavcodec/ac3enc.c switch (s->bitstream_id) { s 1691 libavcodec/ac3enc.c ff_dlog(avctx, "bitstream_id: %s (%d)\n", strbuf, s->bitstream_id); s 1693 libavcodec/ac3enc.c av_get_channel_layout_string(strbuf, 32, s->channels, avctx->channel_layout); s 1695 libavcodec/ac3enc.c ff_dlog(avctx, "sample_rate: %d\n", s->sample_rate); s 1696 libavcodec/ac3enc.c ff_dlog(avctx, "bit_rate: %d\n", s->bit_rate); s 1697 libavcodec/ac3enc.c ff_dlog(avctx, "blocks/frame: %d (code=%d)\n", s->num_blocks, s->num_blks_code); s 1698 libavcodec/ac3enc.c if (s->cutoff) s 1699 libavcodec/ac3enc.c ff_dlog(avctx, "cutoff: %d\n", s->cutoff); s 1703 libavcodec/ac3enc.c if (s->has_center) s 1705 libavcodec/ac3enc.c s->center_mix_level); s 1708 libavcodec/ac3enc.c if (s->has_surround) s 1710 libavcodec/ac3enc.c s->surround_mix_level); s 1728 libavcodec/ac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO) { s 1741 libavcodec/ac3enc.c if (s->bitstream_id == 6) { s 1751 libavcodec/ac3enc.c opt->ltrt_center_mix_level, s->ltrt_center_mix_level); s 1753 libavcodec/ac3enc.c opt->ltrt_surround_mix_level, s->ltrt_surround_mix_level); s 1755 libavcodec/ac3enc.c opt->loro_center_mix_level, s->loro_center_mix_level); s 1757 libavcodec/ac3enc.c opt->loro_surround_mix_level, s->loro_surround_mix_level); s 1833 libavcodec/ac3enc.c int ff_ac3_validate_metadata(AC3EncodeContext *s) s 1835 libavcodec/ac3enc.c AVCodecContext *avctx = s->avctx; s 1836 libavcodec/ac3enc.c AC3EncOptions *opt = &s->options; s 1845 libavcodec/ac3enc.c if (s->channel_mode > AC3_CHMODE_STEREO && opt->preferred_stereo_downmix != AC3ENC_OPT_NONE) { s 1849 libavcodec/ac3enc.c if (s->has_center && s 1854 libavcodec/ac3enc.c if (s->has_surround && s 1860 libavcodec/ac3enc.c if (s->eac3) { s 1866 libavcodec/ac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO && s 1869 libavcodec/ac3enc.c if (s->channel_mode >= AC3_CHMODE_2F2R && opt->dolby_surround_ex_mode != AC3ENC_OPT_NONE) s 1882 libavcodec/ac3enc.c if (s->channel_mode >= AC3_CHMODE_2F2R && opt->dolby_surround_ex_mode != AC3ENC_OPT_NONE) s 1884 libavcodec/ac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO && opt->dolby_headphone_mode != AC3ENC_OPT_NONE) s 1891 libavcodec/ac3enc.c if (!s->eac3) { s 1892 libavcodec/ac3enc.c if (s->has_center) { s 1895 libavcodec/ac3enc.c &s->center_mix_level); s 1897 libavcodec/ac3enc.c if (s->has_surround) { s 1900 libavcodec/ac3enc.c &s->surround_mix_level); s 1909 libavcodec/ac3enc.c if (!s->eac3 || s->has_center) { s 1914 libavcodec/ac3enc.c &s->ltrt_center_mix_level); s 1919 libavcodec/ac3enc.c &s->loro_center_mix_level); s 1921 libavcodec/ac3enc.c if (!s->eac3 || s->has_surround) { s 1926 libavcodec/ac3enc.c &s->ltrt_surround_mix_level); s 1931 libavcodec/ac3enc.c &s->loro_surround_mix_level); s 1961 libavcodec/ac3enc.c if (!s->eac3 || opt->eac3_info_metadata) { s 1971 libavcodec/ac3enc.c if (!s->eac3 || opt->eac3_info_metadata) { s 1994 libavcodec/ac3enc.c if (!s->eac3 && (opt->extended_bsi_1 || opt->extended_bsi_2)) { s 1995 libavcodec/ac3enc.c if (s->bitstream_id > 8 && s->bitstream_id < 11) { s 1996 libavcodec/ac3enc.c if (!s->warned_alternate_bitstream) { s 2000 libavcodec/ac3enc.c s->warned_alternate_bitstream = 1; s 2003 libavcodec/ac3enc.c s->bitstream_id = 6; s 2019 libavcodec/ac3enc.c AC3EncodeContext *s = avctx->priv_data; s 2021 libavcodec/ac3enc.c av_freep(&s->windowed_samples); s 2022 libavcodec/ac3enc.c if (s->planar_samples) s 2023 libavcodec/ac3enc.c for (ch = 0; ch < s->channels; ch++) s 2024 libavcodec/ac3enc.c av_freep(&s->planar_samples[ch]); s 2025 libavcodec/ac3enc.c av_freep(&s->planar_samples); s 2026 libavcodec/ac3enc.c av_freep(&s->bap_buffer); s 2027 libavcodec/ac3enc.c av_freep(&s->bap1_buffer); s 2028 libavcodec/ac3enc.c av_freep(&s->mdct_coef_buffer); s 2029 libavcodec/ac3enc.c av_freep(&s->fixed_coef_buffer); s 2030 libavcodec/ac3enc.c av_freep(&s->exp_buffer); s 2031 libavcodec/ac3enc.c av_freep(&s->grouped_exp_buffer); s 2032 libavcodec/ac3enc.c av_freep(&s->psd_buffer); s 2033 libavcodec/ac3enc.c av_freep(&s->band_psd_buffer); s 2034 libavcodec/ac3enc.c av_freep(&s->mask_buffer); s 2035 libavcodec/ac3enc.c av_freep(&s->qmant_buffer); s 2036 libavcodec/ac3enc.c av_freep(&s->cpl_coord_exp_buffer); s 2037 libavcodec/ac3enc.c av_freep(&s->cpl_coord_mant_buffer); s 2038 libavcodec/ac3enc.c av_freep(&s->fdsp); s 2039 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 2040 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 2053 libavcodec/ac3enc.c if (s->mdct_end) s 2054 libavcodec/ac3enc.c s->mdct_end(s); s 2063 libavcodec/ac3enc.c static av_cold int set_channel_info(AC3EncodeContext *s, int channels, s 2076 libavcodec/ac3enc.c s->lfe_on = !!(ch_layout & AV_CH_LOW_FREQUENCY); s 2077 libavcodec/ac3enc.c s->channels = channels; s 2078 libavcodec/ac3enc.c s->fbw_channels = channels - s->lfe_on; s 2079 libavcodec/ac3enc.c s->lfe_channel = s->lfe_on ? s->fbw_channels + 1 : -1; s 2080 libavcodec/ac3enc.c if (s->lfe_on) s 2084 libavcodec/ac3enc.c case AV_CH_LAYOUT_MONO: s->channel_mode = AC3_CHMODE_MONO; break; s 2085 libavcodec/ac3enc.c case AV_CH_LAYOUT_STEREO: s->channel_mode = AC3_CHMODE_STEREO; break; s 2086 libavcodec/ac3enc.c case AV_CH_LAYOUT_SURROUND: s->channel_mode = AC3_CHMODE_3F; break; s 2087 libavcodec/ac3enc.c case AV_CH_LAYOUT_2_1: s->channel_mode = AC3_CHMODE_2F1R; break; s 2088 libavcodec/ac3enc.c case AV_CH_LAYOUT_4POINT0: s->channel_mode = AC3_CHMODE_3F1R; break; s 2090 libavcodec/ac3enc.c case AV_CH_LAYOUT_2_2: s->channel_mode = AC3_CHMODE_2F2R; break; s 2092 libavcodec/ac3enc.c case AV_CH_LAYOUT_5POINT0_BACK: s->channel_mode = AC3_CHMODE_3F2R; break; s 2096 libavcodec/ac3enc.c s->has_center = (s->channel_mode & 0x01) && s->channel_mode != AC3_CHMODE_MONO; s 2097 libavcodec/ac3enc.c s->has_surround = s->channel_mode & 0x04; s 2099 libavcodec/ac3enc.c s->channel_map = ff_ac3_enc_channel_map[s->channel_mode][s->lfe_on]; s 2101 libavcodec/ac3enc.c if (s->lfe_on) s 2108 libavcodec/ac3enc.c static av_cold int validate_options(AC3EncodeContext *s) s 2110 libavcodec/ac3enc.c AVCodecContext *avctx = s->avctx; s 2119 libavcodec/ac3enc.c ret = set_channel_info(s, avctx->channels, &avctx->channel_layout); s 2129 libavcodec/ac3enc.c max_sr = s->eac3 ? 2 : 8; s 2138 libavcodec/ac3enc.c s->sample_rate = avctx->sample_rate; s 2139 libavcodec/ac3enc.c s->bit_alloc.sr_shift = i / 3; s 2140 libavcodec/ac3enc.c s->bit_alloc.sr_code = i % 3; s 2141 libavcodec/ac3enc.c s->bitstream_id = s->eac3 ? 16 : 8 + s->bit_alloc.sr_shift; s 2145 libavcodec/ac3enc.c switch (s->fbw_channels) { s 2155 libavcodec/ac3enc.c if (s->eac3) { s 2167 libavcodec/ac3enc.c max_br = 2048 * s->sample_rate / frame_samples * 16; s 2168 libavcodec/ac3enc.c min_br = ((s->sample_rate + (frame_samples-1)) / frame_samples) * 16; s 2177 libavcodec/ac3enc.c s->num_blks_code = num_blks_code; s 2178 libavcodec/ac3enc.c s->num_blocks = num_blocks; s 2181 libavcodec/ac3enc.c wpf = (avctx->bit_rate / 16) * frame_samples / s->sample_rate; s 2198 libavcodec/ac3enc.c s->frame_size_code = min_br_code << 1; s 2199 libavcodec/ac3enc.c while (wpf > 1 && wpf * s->sample_rate / AC3_FRAME_SIZE * 16 > avctx->bit_rate) s 2201 libavcodec/ac3enc.c s->frame_size_min = 2 * wpf; s 2206 libavcodec/ac3enc.c int br = (ff_ac3_bitrate_tab[i] >> s->bit_alloc.sr_shift) * 1000; s 2217 libavcodec/ac3enc.c s->frame_size_code = best_code << 1; s 2218 libavcodec/ac3enc.c s->frame_size_min = 2 * ff_ac3_frame_size_tab[s->frame_size_code][s->bit_alloc.sr_code]; s 2219 libavcodec/ac3enc.c s->num_blks_code = 0x3; s 2220 libavcodec/ac3enc.c s->num_blocks = 6; s 2222 libavcodec/ac3enc.c s->bit_rate = avctx->bit_rate; s 2223 libavcodec/ac3enc.c s->frame_size = s->frame_size_min; s 2230 libavcodec/ac3enc.c s->cutoff = avctx->cutoff; s 2231 libavcodec/ac3enc.c if (s->cutoff > (s->sample_rate >> 1)) s 2232 libavcodec/ac3enc.c s->cutoff = s->sample_rate >> 1; s 2234 libavcodec/ac3enc.c ret = ff_ac3_validate_metadata(s); s 2238 libavcodec/ac3enc.c s->rematrixing_enabled = s->options.stereo_rematrixing && s 2239 libavcodec/ac3enc.c (s->channel_mode == AC3_CHMODE_STEREO); s 2241 libavcodec/ac3enc.c s->cpl_enabled = s->options.channel_coupling && s 2242 libavcodec/ac3enc.c s->channel_mode >= AC3_CHMODE_STEREO; s 2253 libavcodec/ac3enc.c static av_cold void set_bandwidth(AC3EncodeContext *s) s 2257 libavcodec/ac3enc.c if (s->cutoff) { s 2260 libavcodec/ac3enc.c fbw_coeffs = s->cutoff * 2 * AC3_MAX_COEFS / s->sample_rate; s 2261 libavcodec/ac3enc.c s->bandwidth_code = av_clip((fbw_coeffs - 73) / 3, 0, 60); s 2264 libavcodec/ac3enc.c s->bandwidth_code = ac3_bandwidth_tab[s->fbw_channels-1][s->bit_alloc.sr_code][s->frame_size_code/2]; s 2268 libavcodec/ac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 2269 libavcodec/ac3enc.c s->start_freq[ch] = 0; s 2270 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) s 2271 libavcodec/ac3enc.c s->blocks[blk].end_freq[ch] = s->bandwidth_code * 3 + 73; s 2274 libavcodec/ac3enc.c if (s->lfe_on) { s 2275 libavcodec/ac3enc.c s->start_freq[s->lfe_channel] = 0; s 2276 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) s 2277 libavcodec/ac3enc.c s->blocks[blk].end_freq[ch] = 7; s 2281 libavcodec/ac3enc.c if (s->cpl_enabled) { s 2282 libavcodec/ac3enc.c if (s->options.cpl_start != AC3ENC_OPT_AUTO) { s 2283 libavcodec/ac3enc.c cpl_start = s->options.cpl_start; s 2285 libavcodec/ac3enc.c cpl_start = ac3_coupling_start_tab[s->channel_mode-2][s->bit_alloc.sr_code][s->frame_size_code/2]; s 2287 libavcodec/ac3enc.c if (s->options.channel_coupling == AC3ENC_OPT_AUTO) s 2288 libavcodec/ac3enc.c s->cpl_enabled = 0; s 2294 libavcodec/ac3enc.c if (s->cpl_enabled) { s 2296 libavcodec/ac3enc.c uint8_t *cpl_band_sizes = s->cpl_band_sizes; s 2298 libavcodec/ac3enc.c cpl_end_band = s->bandwidth_code / 4 + 3; s 2301 libavcodec/ac3enc.c s->num_cpl_subbands = cpl_end_band - cpl_start_band; s 2303 libavcodec/ac3enc.c s->num_cpl_bands = 1; s 2309 libavcodec/ac3enc.c s->num_cpl_bands++; s 2315 libavcodec/ac3enc.c s->start_freq[CPL_CH] = cpl_start_band * 12 + 37; s 2316 libavcodec/ac3enc.c s->cpl_end_freq = cpl_end_band * 12 + 37; s 2317 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) s 2318 libavcodec/ac3enc.c s->blocks[blk].end_freq[CPL_CH] = s->cpl_end_freq; s 2323 libavcodec/ac3enc.c static av_cold int allocate_buffers(AC3EncodeContext *s) s 2325 libavcodec/ac3enc.c AVCodecContext *avctx = s->avctx; s 2327 libavcodec/ac3enc.c int channels = s->channels + 1; /* includes coupling channel */ s 2328 libavcodec/ac3enc.c int channel_blocks = channels * s->num_blocks; s 2331 libavcodec/ac3enc.c if (s->allocate_sample_buffers(s)) s 2334 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->bap_buffer, total_coefs, s 2335 libavcodec/ac3enc.c sizeof(*s->bap_buffer), alloc_fail); s 2336 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->bap1_buffer, total_coefs, s 2337 libavcodec/ac3enc.c sizeof(*s->bap1_buffer), alloc_fail); s 2338 libavcodec/ac3enc.c FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->mdct_coef_buffer, total_coefs, s 2339 libavcodec/ac3enc.c sizeof(*s->mdct_coef_buffer), alloc_fail); s 2340 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->exp_buffer, total_coefs, s 2341 libavcodec/ac3enc.c sizeof(*s->exp_buffer), alloc_fail); s 2342 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->grouped_exp_buffer, channel_blocks, 128 * s 2343 libavcodec/ac3enc.c sizeof(*s->grouped_exp_buffer), alloc_fail); s 2344 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->psd_buffer, total_coefs, s 2345 libavcodec/ac3enc.c sizeof(*s->psd_buffer), alloc_fail); s 2346 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->band_psd_buffer, channel_blocks, 64 * s 2347 libavcodec/ac3enc.c sizeof(*s->band_psd_buffer), alloc_fail); s 2348 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->mask_buffer, channel_blocks, 64 * s 2349 libavcodec/ac3enc.c sizeof(*s->mask_buffer), alloc_fail); s 2350 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->qmant_buffer, total_coefs, s 2351 libavcodec/ac3enc.c sizeof(*s->qmant_buffer), alloc_fail); s 2352 libavcodec/ac3enc.c if (s->cpl_enabled) { s 2353 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->cpl_coord_exp_buffer, channel_blocks, 16 * s 2354 libavcodec/ac3enc.c sizeof(*s->cpl_coord_exp_buffer), alloc_fail); s 2355 libavcodec/ac3enc.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->cpl_coord_mant_buffer, channel_blocks, 16 * s 2356 libavcodec/ac3enc.c sizeof(*s->cpl_coord_mant_buffer), alloc_fail); s 2358 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 2359 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 2374 libavcodec/ac3enc.c if (s->cpl_enabled) { s 2383 libavcodec/ac3enc.c block->grouped_exp[ch] = &s->grouped_exp_buffer[128 * (blk * channels + ch)]; s 2384 libavcodec/ac3enc.c block->psd[ch] = &s->psd_buffer [AC3_MAX_COEFS * (blk * channels + ch)]; s 2385 libavcodec/ac3enc.c block->band_psd[ch] = &s->band_psd_buffer [64 * (blk * channels + ch)]; s 2386 libavcodec/ac3enc.c block->mask[ch] = &s->mask_buffer [64 * (blk * channels + ch)]; s 2387 libavcodec/ac3enc.c block->qmant[ch] = &s->qmant_buffer [AC3_MAX_COEFS * (blk * channels + ch)]; s 2388 libavcodec/ac3enc.c if (s->cpl_enabled) { s 2389 libavcodec/ac3enc.c block->cpl_coord_exp[ch] = &s->cpl_coord_exp_buffer [16 * (blk * channels + ch)]; s 2390 libavcodec/ac3enc.c block->cpl_coord_mant[ch] = &s->cpl_coord_mant_buffer[16 * (blk * channels + ch)]; s 2394 libavcodec/ac3enc.c block->exp[ch] = &s->exp_buffer [AC3_MAX_COEFS * (s->num_blocks * ch + blk)]; s 2395 libavcodec/ac3enc.c block->mdct_coef[ch] = &s->mdct_coef_buffer [AC3_MAX_COEFS * (s->num_blocks * ch + blk)]; s 2399 libavcodec/ac3enc.c if (!s->fixed_point) { s 2400 libavcodec/ac3enc.c FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->fixed_coef_buffer, total_coefs, s 2401 libavcodec/ac3enc.c sizeof(*s->fixed_coef_buffer), alloc_fail); s 2402 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 2403 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 2407 libavcodec/ac3enc.c block->fixed_coef[ch] = &s->fixed_coef_buffer[AC3_MAX_COEFS * (s->num_blocks * ch + blk)]; s 2410 libavcodec/ac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 2411 libavcodec/ac3enc.c AC3Block *block = &s->blocks[blk]; s 2427 libavcodec/ac3enc.c AC3EncodeContext *s = avctx->priv_data; s 2430 libavcodec/ac3enc.c s->avctx = avctx; s 2432 libavcodec/ac3enc.c s->eac3 = avctx->codec_id == AV_CODEC_ID_EAC3; s 2434 libavcodec/ac3enc.c ret = validate_options(s); s 2438 libavcodec/ac3enc.c avctx->frame_size = AC3_BLOCK_SIZE * s->num_blocks; s 2441 libavcodec/ac3enc.c s->bitstream_mode = avctx->audio_service_type; s 2442 libavcodec/ac3enc.c if (s->bitstream_mode == AV_AUDIO_SERVICE_TYPE_KARAOKE) s 2443 libavcodec/ac3enc.c s->bitstream_mode = 0x7; s 2445 libavcodec/ac3enc.c s->bits_written = 0; s 2446 libavcodec/ac3enc.c s->samples_written = 0; s 2449 libavcodec/ac3enc.c frame_size_58 = (( s->frame_size >> 2) + ( s->frame_size >> 4)) << 1; s 2450 libavcodec/ac3enc.c s->crc_inv[0] = pow_poly((CRC16_POLY >> 1), (8 * frame_size_58) - 16, CRC16_POLY); s 2451 libavcodec/ac3enc.c if (s->bit_alloc.sr_code == 1) { s 2452 libavcodec/ac3enc.c frame_size_58 = (((s->frame_size+2) >> 2) + ((s->frame_size+2) >> 4)) << 1; s 2453 libavcodec/ac3enc.c s->crc_inv[1] = pow_poly((CRC16_POLY >> 1), (8 * frame_size_58) - 16, CRC16_POLY); s 2457 libavcodec/ac3enc.c if (CONFIG_AC3_FIXED_ENCODER && s->fixed_point) { s 2458 libavcodec/ac3enc.c s->mdct_end = ff_ac3_fixed_mdct_end; s 2459 libavcodec/ac3enc.c s->mdct_init = ff_ac3_fixed_mdct_init; s 2460 libavcodec/ac3enc.c s->allocate_sample_buffers = ff_ac3_fixed_allocate_sample_buffers; s 2462 libavcodec/ac3enc.c s->mdct_end = ff_ac3_float_mdct_end; s 2463 libavcodec/ac3enc.c s->mdct_init = ff_ac3_float_mdct_init; s 2464 libavcodec/ac3enc.c s->allocate_sample_buffers = ff_ac3_float_allocate_sample_buffers; s 2466 libavcodec/ac3enc.c if (CONFIG_EAC3_ENCODER && s->eac3) s 2467 libavcodec/ac3enc.c s->output_frame_header = ff_eac3_output_frame_header; s 2469 libavcodec/ac3enc.c s->output_frame_header = ac3_output_frame_header; s 2471 libavcodec/ac3enc.c set_bandwidth(s); s 2473 libavcodec/ac3enc.c exponent_init(s); s 2475 libavcodec/ac3enc.c bit_alloc_init(s); s 2477 libavcodec/ac3enc.c ret = s->mdct_init(s); s 2481 libavcodec/ac3enc.c ret = allocate_buffers(s); s 2485 libavcodec/ac3enc.c ff_audiodsp_init(&s->adsp); s 2486 libavcodec/ac3enc.c ff_me_cmp_init(&s->mecc, avctx); s 2487 libavcodec/ac3enc.c ff_ac3dsp_init(&s->ac3dsp, avctx->flags & AV_CODEC_FLAG_BITEXACT); s 2489 libavcodec/ac3enc.c dprint_options(s); s 261 libavcodec/ac3enc.h void (*mdct_end)(struct AC3EncodeContext *s); s 262 libavcodec/ac3enc.h int (*mdct_init)(struct AC3EncodeContext *s); s 265 libavcodec/ac3enc.h int (*allocate_sample_buffers)(struct AC3EncodeContext *s); s 268 libavcodec/ac3enc.h void (*output_frame_header)(struct AC3EncodeContext *s); s 279 libavcodec/ac3enc.h int ff_ac3_validate_metadata(AC3EncodeContext *s); s 281 libavcodec/ac3enc.h void ff_ac3_adjust_frame_size(AC3EncodeContext *s); s 283 libavcodec/ac3enc.h void ff_ac3_compute_coupling_strategy(AC3EncodeContext *s); s 285 libavcodec/ac3enc.h void ff_ac3_apply_rematrixing(AC3EncodeContext *s); s 287 libavcodec/ac3enc.h void ff_ac3_process_exponents(AC3EncodeContext *s); s 289 libavcodec/ac3enc.h int ff_ac3_compute_bit_allocation(AC3EncodeContext *s); s 291 libavcodec/ac3enc.h void ff_ac3_group_exponents(AC3EncodeContext *s); s 293 libavcodec/ac3enc.h void ff_ac3_quantize_mantissas(AC3EncodeContext *s); s 295 libavcodec/ac3enc.h void ff_ac3_output_frame(AC3EncodeContext *s, unsigned char *frame); s 300 libavcodec/ac3enc.h void ff_ac3_fixed_mdct_end(AC3EncodeContext *s); s 301 libavcodec/ac3enc.h void ff_ac3_float_mdct_end(AC3EncodeContext *s); s 303 libavcodec/ac3enc.h int ff_ac3_fixed_mdct_init(AC3EncodeContext *s); s 304 libavcodec/ac3enc.h int ff_ac3_float_mdct_init(AC3EncodeContext *s); s 309 libavcodec/ac3enc.h int ff_ac3_fixed_allocate_sample_buffers(AC3EncodeContext *s); s 310 libavcodec/ac3enc.h int ff_ac3_float_allocate_sample_buffers(AC3EncodeContext *s); s 50 libavcodec/ac3enc_fixed.c static int normalize_samples(AC3EncodeContext *s) s 52 libavcodec/ac3enc_fixed.c int v = s->ac3dsp.ac3_max_msb_abs_int16(s->windowed_samples, AC3_WINDOW_SIZE); s 55 libavcodec/ac3enc_fixed.c s->ac3dsp.ac3_lshift_int16(s->windowed_samples, AC3_WINDOW_SIZE, v); s 64 libavcodec/ac3enc_fixed.c static void scale_coefficients(AC3EncodeContext *s) s 68 libavcodec/ac3enc_fixed.c for (blk = 0; blk < s->num_blocks; blk++) { s 69 libavcodec/ac3enc_fixed.c AC3Block *block = &s->blocks[blk]; s 70 libavcodec/ac3enc_fixed.c for (ch = 1; ch <= s->channels; ch++) { s 71 libavcodec/ac3enc_fixed.c s->ac3dsp.ac3_rshift_int32(block->mdct_coef[ch], AC3_MAX_COEFS, s 77 libavcodec/ac3enc_fixed.c static void sum_square_butterfly(AC3EncodeContext *s, int64_t sum[4], s 81 libavcodec/ac3enc_fixed.c s->ac3dsp.sum_square_butterfly_int32(sum, coef0, coef1, len); s 118 libavcodec/ac3enc_fixed.c av_cold void ff_ac3_fixed_mdct_end(AC3EncodeContext *s) s 120 libavcodec/ac3enc_fixed.c ff_mdct_end(&s->mdct); s 130 libavcodec/ac3enc_fixed.c av_cold int ff_ac3_fixed_mdct_init(AC3EncodeContext *s) s 132 libavcodec/ac3enc_fixed.c int ret = ff_mdct_init(&s->mdct, 9, 0, -1.0); s 133 libavcodec/ac3enc_fixed.c s->mdct_window = ff_ac3_window; s 140 libavcodec/ac3enc_fixed.c AC3EncodeContext *s = avctx->priv_data; s 141 libavcodec/ac3enc_fixed.c s->fixed_point = 1; s 50 libavcodec/ac3enc_float.c static void scale_coefficients(AC3EncodeContext *s) s 52 libavcodec/ac3enc_float.c int chan_size = AC3_MAX_COEFS * s->num_blocks; s 53 libavcodec/ac3enc_float.c int cpl = s->cpl_on; s 54 libavcodec/ac3enc_float.c s->ac3dsp.float_to_fixed24(s->fixed_coef_buffer + (chan_size * !cpl), s 55 libavcodec/ac3enc_float.c s->mdct_coef_buffer + (chan_size * !cpl), s 56 libavcodec/ac3enc_float.c chan_size * (s->channels + cpl)); s 81 libavcodec/ac3enc_float.c static void sum_square_butterfly(AC3EncodeContext *s, float sum[4], s 85 libavcodec/ac3enc_float.c s->ac3dsp.sum_square_butterfly_float(sum, coef0, coef1, len); s 97 libavcodec/ac3enc_float.c av_cold void ff_ac3_float_mdct_end(AC3EncodeContext *s) s 99 libavcodec/ac3enc_float.c ff_mdct_end(&s->mdct); s 100 libavcodec/ac3enc_float.c av_freep(&s->mdct_window); s 110 libavcodec/ac3enc_float.c av_cold int ff_ac3_float_mdct_init(AC3EncodeContext *s) s 120 libavcodec/ac3enc_float.c av_log(s->avctx, AV_LOG_ERROR, "Cannot allocate memory.\n"); s 126 libavcodec/ac3enc_float.c s->mdct_window = window; s 128 libavcodec/ac3enc_float.c return ff_mdct_init(&s->mdct, 9, 0, -2.0 / n); s 134 libavcodec/ac3enc_float.c AC3EncodeContext *s = avctx->priv_data; s 135 libavcodec/ac3enc_float.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 136 libavcodec/ac3enc_float.c if (!s->fdsp) s 40 libavcodec/ac3enc_template.c int AC3_NAME(allocate_sample_buffers)(AC3EncodeContext *s) s 44 libavcodec/ac3enc_template.c FF_ALLOC_OR_GOTO(s->avctx, s->windowed_samples, AC3_WINDOW_SIZE * s 45 libavcodec/ac3enc_template.c sizeof(*s->windowed_samples), alloc_fail); s 46 libavcodec/ac3enc_template.c FF_ALLOC_ARRAY_OR_GOTO(s->avctx, s->planar_samples, s->channels, sizeof(*s->planar_samples), s 48 libavcodec/ac3enc_template.c for (ch = 0; ch < s->channels; ch++) { s 49 libavcodec/ac3enc_template.c FF_ALLOCZ_OR_GOTO(s->avctx, s->planar_samples[ch], s 50 libavcodec/ac3enc_template.c (AC3_FRAME_SIZE+AC3_BLOCK_SIZE) * sizeof(**s->planar_samples), s 64 libavcodec/ac3enc_template.c static void copy_input_samples(AC3EncodeContext *s, SampleType **samples) s 69 libavcodec/ac3enc_template.c for (ch = 0; ch < s->channels; ch++) { s 71 libavcodec/ac3enc_template.c memcpy(&s->planar_samples[ch][0], &s->planar_samples[ch][AC3_BLOCK_SIZE * s->num_blocks], s 72 libavcodec/ac3enc_template.c AC3_BLOCK_SIZE * sizeof(s->planar_samples[0][0])); s 75 libavcodec/ac3enc_template.c memcpy(&s->planar_samples[ch][AC3_BLOCK_SIZE], s 76 libavcodec/ac3enc_template.c samples[s->channel_map[ch]], s 77 libavcodec/ac3enc_template.c AC3_BLOCK_SIZE * s->num_blocks * sizeof(s->planar_samples[0][0])); s 87 libavcodec/ac3enc_template.c static void apply_mdct(AC3EncodeContext *s) s 91 libavcodec/ac3enc_template.c for (ch = 0; ch < s->channels; ch++) { s 92 libavcodec/ac3enc_template.c for (blk = 0; blk < s->num_blocks; blk++) { s 93 libavcodec/ac3enc_template.c AC3Block *block = &s->blocks[blk]; s 94 libavcodec/ac3enc_template.c const SampleType *input_samples = &s->planar_samples[ch][blk * AC3_BLOCK_SIZE]; s 97 libavcodec/ac3enc_template.c s->fdsp->vector_fmul(s->windowed_samples, input_samples, s 98 libavcodec/ac3enc_template.c s->mdct_window, AC3_WINDOW_SIZE); s 100 libavcodec/ac3enc_template.c s->ac3dsp.apply_window_int16(s->windowed_samples, input_samples, s 101 libavcodec/ac3enc_template.c s->mdct_window, AC3_WINDOW_SIZE); s 103 libavcodec/ac3enc_template.c if (s->fixed_point) s 104 libavcodec/ac3enc_template.c block->coeff_shift[ch+1] = normalize_samples(s); s 107 libavcodec/ac3enc_template.c s->mdct.mdct_calcw(&s->mdct, block->mdct_coef[ch+1], s 108 libavcodec/ac3enc_template.c s->windowed_samples); s 117 libavcodec/ac3enc_template.c static void apply_channel_coupling(AC3EncodeContext *s) s 136 libavcodec/ac3enc_template.c cpl_start = s->start_freq[CPL_CH] - 1; s 137 libavcodec/ac3enc_template.c num_cpl_coefs = FFALIGN(s->num_cpl_subbands * 12 + 1, 32); s 141 libavcodec/ac3enc_template.c for (blk = 0; blk < s->num_blocks; blk++) { s 142 libavcodec/ac3enc_template.c AC3Block *block = &s->blocks[blk]; s 147 libavcodec/ac3enc_template.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 156 libavcodec/ac3enc_template.c clip_coefficients(&s->adsp, cpl_coef, num_cpl_coefs); s 162 libavcodec/ac3enc_template.c i = s->start_freq[CPL_CH]; s 163 libavcodec/ac3enc_template.c while (i < s->cpl_end_freq) { s 164 libavcodec/ac3enc_template.c int band_size = s->cpl_band_sizes[bnd]; s 165 libavcodec/ac3enc_template.c for (ch = CPL_CH; ch <= s->fbw_channels; ch++) { s 166 libavcodec/ac3enc_template.c for (blk = 0; blk < s->num_blocks; blk++) { s 167 libavcodec/ac3enc_template.c AC3Block *block = &s->blocks[blk]; s 181 libavcodec/ac3enc_template.c for (blk = 0; blk < s->num_blocks; blk++) { s 182 libavcodec/ac3enc_template.c AC3Block *block = &s->blocks[blk]; s 185 libavcodec/ac3enc_template.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 188 libavcodec/ac3enc_template.c for (bnd = 0; bnd < s->num_cpl_bands; bnd++) { s 196 libavcodec/ac3enc_template.c for (blk = 0; blk < s->num_blocks; blk++) { s 197 libavcodec/ac3enc_template.c AC3Block *block = &s->blocks[blk]; s 198 libavcodec/ac3enc_template.c AC3Block *block0 = blk ? &s->blocks[blk-1] : NULL; s 209 libavcodec/ac3enc_template.c for (ch = 1; ch <= s->fbw_channels; ch++) s 212 libavcodec/ac3enc_template.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 219 libavcodec/ac3enc_template.c for (bnd = 0; bnd < s->num_cpl_bands; bnd++) { s 223 libavcodec/ac3enc_template.c coord_diff /= s->num_cpl_bands; s 234 libavcodec/ac3enc_template.c for (bnd = 0; bnd < s->num_cpl_bands; bnd++) { s 236 libavcodec/ac3enc_template.c while (blk < s->num_blocks) { s 238 libavcodec/ac3enc_template.c AC3Block *block = &s->blocks[blk]; s 245 libavcodec/ac3enc_template.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 252 libavcodec/ac3enc_template.c while (blk1 < s->num_blocks && !s->blocks[blk1].new_cpl_coords[ch]) { s 253 libavcodec/ac3enc_template.c if (s->blocks[blk1].cpl_in_use) { s 266 libavcodec/ac3enc_template.c for (blk = 0; blk < s->num_blocks; blk++) { s 267 libavcodec/ac3enc_template.c AC3Block *block = &s->blocks[blk]; s 272 libavcodec/ac3enc_template.c s->ac3dsp.float_to_fixed24(fixed_cpl_coords[blk][1], s 274 libavcodec/ac3enc_template.c s->fbw_channels * 16); s 276 libavcodec/ac3enc_template.c s->ac3dsp.extract_exponents(block->cpl_coord_exp[1], s 278 libavcodec/ac3enc_template.c s->fbw_channels * 16); s 280 libavcodec/ac3enc_template.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 288 libavcodec/ac3enc_template.c for (bnd = 1; bnd < s->num_cpl_bands; bnd++) { s 297 libavcodec/ac3enc_template.c for (bnd = 0; bnd < s->num_cpl_bands; bnd++) { s 304 libavcodec/ac3enc_template.c for (bnd = 0; bnd < s->num_cpl_bands; bnd++) { s 317 libavcodec/ac3enc_template.c if (CONFIG_EAC3_ENCODER && s->eac3) s 318 libavcodec/ac3enc_template.c ff_eac3_set_cpl_states(s); s 325 libavcodec/ac3enc_template.c static void compute_rematrixing_strategy(AC3EncodeContext *s) s 331 libavcodec/ac3enc_template.c if (s->channel_mode != AC3_CHMODE_STEREO) s 334 libavcodec/ac3enc_template.c for (blk = 0; blk < s->num_blocks; blk++) { s 335 libavcodec/ac3enc_template.c block = &s->blocks[blk]; s 340 libavcodec/ac3enc_template.c block->num_rematrixing_bands -= (s->start_freq[CPL_CH] <= 61); s 341 libavcodec/ac3enc_template.c block->num_rematrixing_bands -= (s->start_freq[CPL_CH] == 37); s 347 libavcodec/ac3enc_template.c if (!s->rematrixing_enabled) { s 357 libavcodec/ac3enc_template.c sum_square_butterfly(s, sum, block->mdct_coef[1] + start, s 380 libavcodec/ac3enc_template.c AC3EncodeContext *s = avctx->priv_data; s 383 libavcodec/ac3enc_template.c if (s->options.allow_per_frame_metadata) { s 384 libavcodec/ac3enc_template.c ret = ff_ac3_validate_metadata(s); s 389 libavcodec/ac3enc_template.c if (s->bit_alloc.sr_code == 1 || s->eac3) s 390 libavcodec/ac3enc_template.c ff_ac3_adjust_frame_size(s); s 392 libavcodec/ac3enc_template.c copy_input_samples(s, (SampleType **)frame->extended_data); s 394 libavcodec/ac3enc_template.c apply_mdct(s); s 396 libavcodec/ac3enc_template.c if (s->fixed_point) s 397 libavcodec/ac3enc_template.c scale_coefficients(s); s 399 libavcodec/ac3enc_template.c clip_coefficients(&s->adsp, s->blocks[0].mdct_coef[1], s 400 libavcodec/ac3enc_template.c AC3_MAX_COEFS * s->num_blocks * s->channels); s 402 libavcodec/ac3enc_template.c s->cpl_on = s->cpl_enabled; s 403 libavcodec/ac3enc_template.c ff_ac3_compute_coupling_strategy(s); s 405 libavcodec/ac3enc_template.c if (s->cpl_on) s 406 libavcodec/ac3enc_template.c apply_channel_coupling(s); s 408 libavcodec/ac3enc_template.c compute_rematrixing_strategy(s); s 410 libavcodec/ac3enc_template.c if (!s->fixed_point) s 411 libavcodec/ac3enc_template.c scale_coefficients(s); s 413 libavcodec/ac3enc_template.c ff_ac3_apply_rematrixing(s); s 415 libavcodec/ac3enc_template.c ff_ac3_process_exponents(s); s 417 libavcodec/ac3enc_template.c ret = ff_ac3_compute_bit_allocation(s); s 423 libavcodec/ac3enc_template.c ff_ac3_group_exponents(s); s 425 libavcodec/ac3enc_template.c ff_ac3_quantize_mantissas(s); s 427 libavcodec/ac3enc_template.c if ((ret = ff_alloc_packet2(avctx, avpkt, s->frame_size, 0)) < 0) s 429 libavcodec/ac3enc_template.c ff_ac3_output_frame(s, avpkt->data); s 547 libavcodec/adpcm.c int d,s,t; s 576 libavcodec/adpcm.c s = t*(1<<shift) + ((s_1*f0 + s_2*f1+32)>>6); s 578 libavcodec/adpcm.c s_1 = av_clip_int16(s); s 607 libavcodec/adpcm.c s = t*(1<<shift) + ((s_1*f0 + s_2*f1+32)>>6); s 609 libavcodec/adpcm.c s_1 = av_clip_int16(s); s 716 libavcodec/adpcm.c ADPCMDecodeContext *s = avctx->priv_data; s 866 libavcodec/adpcm.c if (!s->status[0].step_index) { s 1622 libavcodec/adpcm.c int16_t *s = samples_p[channel]; s 1623 libavcodec/adpcm.c for (n = 0; n < 4; n++, s += 32) { s 1627 libavcodec/adpcm.c s[0] = val & ~0x0F; s 1631 libavcodec/adpcm.c s[1] = val & ~0x0F; s 1635 libavcodec/adpcm.c s = &samples_p[channel][m]; s 1636 libavcodec/adpcm.c for (n = 0; n < 4; n++, s += 32) { s 1641 libavcodec/adpcm.c pred = s[-1] * coeff[0][n] + s[-2] * coeff[1][n]; s 1642 libavcodec/adpcm.c s[0] = av_clip_int16((level + pred + 0x80) >> 8); s 1645 libavcodec/adpcm.c pred = s[0] * coeff[0][n] + s[-1] * coeff[1][n]; s 1646 libavcodec/adpcm.c s[1] = av_clip_int16((level + pred + 0x80) >> 8); s 65 libavcodec/adpcmenc.c ADPCMEncodeContext *s = avctx->priv_data; s 92 libavcodec/adpcmenc.c FF_ALLOC_OR_GOTO(avctx, s->paths, s 93 libavcodec/adpcmenc.c max_paths * sizeof(*s->paths), error); s 94 libavcodec/adpcmenc.c FF_ALLOC_OR_GOTO(avctx, s->node_buf, s 95 libavcodec/adpcmenc.c 2 * frontier * sizeof(*s->node_buf), error); s 96 libavcodec/adpcmenc.c FF_ALLOC_OR_GOTO(avctx, s->nodep_buf, s 97 libavcodec/adpcmenc.c 2 * frontier * sizeof(*s->nodep_buf), error); s 98 libavcodec/adpcmenc.c FF_ALLOC_OR_GOTO(avctx, s->trellis_hash, s 99 libavcodec/adpcmenc.c 65536 * sizeof(*s->trellis_hash), error); s 167 libavcodec/adpcmenc.c ADPCMEncodeContext *s = avctx->priv_data; s 168 libavcodec/adpcmenc.c av_freep(&s->paths); s 169 libavcodec/adpcmenc.c av_freep(&s->node_buf); s 170 libavcodec/adpcmenc.c av_freep(&s->nodep_buf); s 171 libavcodec/adpcmenc.c av_freep(&s->trellis_hash); s 283 libavcodec/adpcmenc.c ADPCMEncodeContext *s = avctx->priv_data; s 286 libavcodec/adpcmenc.c TrellisPath *paths = s->paths, *p; s 287 libavcodec/adpcmenc.c TrellisNode *node_buf = s->node_buf; s 288 libavcodec/adpcmenc.c TrellisNode **nodep_buf = s->nodep_buf; s 292 libavcodec/adpcmenc.c uint8_t *hash = s->trellis_hash; s 44 libavcodec/adx_parser.c ADXParseContext *s = s1->priv_data; s 45 libavcodec/adx_parser.c ParseContext *pc = &s->pc; s 50 libavcodec/adx_parser.c if (!s->header_size) { s 58 libavcodec/adx_parser.c s->header_size = header_size; s 59 libavcodec/adx_parser.c s->block_size = BLOCK_SIZE * channels; s 60 libavcodec/adx_parser.c s->remaining = i - 7 + s->header_size + s->block_size; s 68 libavcodec/adx_parser.c if (s->header_size) { s 69 libavcodec/adx_parser.c if (!s->remaining) s 70 libavcodec/adx_parser.c s->remaining = s->block_size; s 71 libavcodec/adx_parser.c if (s->remaining <= buf_size) { s 72 libavcodec/adx_parser.c next = s->remaining; s 73 libavcodec/adx_parser.c s->remaining = 0; s 75 libavcodec/adx_parser.c s->remaining -= buf_size; s 194 libavcodec/agm.c static int decode_intra_blocks(AGMContext *s, GetBitContext *gb, s 197 libavcodec/agm.c const uint8_t *scantable = s->scantable.permutated; s 200 libavcodec/agm.c memset(s->wblocks, 0, s->wblocks_size); s 203 libavcodec/agm.c int16_t *block = s->wblocks + scantable[i]; s 205 libavcodec/agm.c for (int j = 0; j < s->blocks_w;) { s 209 libavcodec/agm.c rskip = FFMIN(*skip, s->blocks_w - j); s 218 libavcodec/agm.c ret = read_code(gb, skip, &level, &map, s->flags & 1); s 235 libavcodec/agm.c static int decode_inter_blocks(AGMContext *s, GetBitContext *gb, s 239 libavcodec/agm.c const uint8_t *scantable = s->scantable.permutated; s 242 libavcodec/agm.c memset(s->wblocks, 0, s->wblocks_size); s 243 libavcodec/agm.c memset(s->map, 0, s->map_size); s 246 libavcodec/agm.c int16_t *block = s->wblocks + scantable[i]; s 248 libavcodec/agm.c for (int j = 0; j < s->blocks_w;) { s 252 libavcodec/agm.c rskip = FFMIN(*skip, s->blocks_w - j); s 257 libavcodec/agm.c ret = read_code(gb, skip, &level, &map[j], s->flags & 1); s 271 libavcodec/agm.c static int decode_intra_block(AGMContext *s, GetBitContext *gb, s 274 libavcodec/agm.c const uint8_t *scantable = s->scantable.permutated; s 275 libavcodec/agm.c const int offset = s->plus ? 0 : 1024; s 276 libavcodec/agm.c int16_t *block = s->block; s 279 libavcodec/agm.c memset(block, 0, sizeof(s->block)); s 284 libavcodec/agm.c ret = read_code(gb, skip, &level, &map, s->flags & 1); s 299 libavcodec/agm.c ret = read_code(gb, skip, &level, &map, s->flags & 1); s 311 libavcodec/agm.c static int decode_intra_plane(AGMContext *s, GetBitContext *gb, int size, s 316 libavcodec/agm.c const int offset = s->plus ? 0 : 1024; s 318 libavcodec/agm.c if ((ret = init_get_bits8(gb, s->gbyte.buffer, size)) < 0) s 321 libavcodec/agm.c if (s->flags & 1) { s 322 libavcodec/agm.c av_fast_padded_malloc(&s->wblocks, &s->wblocks_size, s 323 libavcodec/agm.c 64 * s->blocks_w * sizeof(*s->wblocks)); s 324 libavcodec/agm.c if (!s->wblocks) s 327 libavcodec/agm.c for (int y = 0; y < s->blocks_h; y++) { s 328 libavcodec/agm.c ret = decode_intra_blocks(s, gb, quant_matrix, &skip, &dc_level); s 332 libavcodec/agm.c for (int x = 0; x < s->blocks_w; x++) { s 333 libavcodec/agm.c s->wblocks[64 * x] += offset; s 334 libavcodec/agm.c s->idsp.idct_put(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 335 libavcodec/agm.c frame->linesize[plane], s->wblocks + 64 * x); s 339 libavcodec/agm.c for (int y = 0; y < s->blocks_h; y++) { s 340 libavcodec/agm.c for (int x = 0; x < s->blocks_w; x++) { s 341 libavcodec/agm.c ret = decode_intra_block(s, gb, quant_matrix, &skip, &dc_level); s 345 libavcodec/agm.c s->idsp.idct_put(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 346 libavcodec/agm.c frame->linesize[plane], s->block); s 353 libavcodec/agm.c av_log(s->avctx, AV_LOG_WARNING, "overread\n"); s 355 libavcodec/agm.c av_log(s->avctx, AV_LOG_WARNING, "underread: %d\n", get_bits_left(gb)); s 360 libavcodec/agm.c static int decode_inter_block(AGMContext *s, GetBitContext *gb, s 364 libavcodec/agm.c const uint8_t *scantable = s->scantable.permutated; s 365 libavcodec/agm.c int16_t *block = s->block; s 368 libavcodec/agm.c memset(block, 0, sizeof(s->block)); s 378 libavcodec/agm.c ret = read_code(gb, skip, &level, map, s->flags & 1); s 390 libavcodec/agm.c static int decode_inter_plane(AGMContext *s, GetBitContext *gb, int size, s 396 libavcodec/agm.c if ((ret = init_get_bits8(gb, s->gbyte.buffer, size)) < 0) s 399 libavcodec/agm.c if (s->flags == 3) { s 400 libavcodec/agm.c av_fast_padded_malloc(&s->wblocks, &s->wblocks_size, s 401 libavcodec/agm.c 64 * s->blocks_w * sizeof(*s->wblocks)); s 402 libavcodec/agm.c if (!s->wblocks) s 405 libavcodec/agm.c av_fast_padded_malloc(&s->map, &s->map_size, s 406 libavcodec/agm.c s->blocks_w * sizeof(*s->map)); s 407 libavcodec/agm.c if (!s->map) s 410 libavcodec/agm.c for (int y = 0; y < s->blocks_h; y++) { s 411 libavcodec/agm.c ret = decode_inter_blocks(s, gb, quant_matrix, &skip, s->map); s 415 libavcodec/agm.c for (int x = 0; x < s->blocks_w; x++) { s 417 libavcodec/agm.c int mvpos = (y >> shift) * (s->blocks_w >> shift) + (x >> shift); s 418 libavcodec/agm.c int orig_mv_x = s->mvectors[mvpos].x; s 419 libavcodec/agm.c int mv_x = s->mvectors[mvpos].x / (1 + !shift); s 420 libavcodec/agm.c int mv_y = s->mvectors[mvpos].y / (1 + !shift); s 421 libavcodec/agm.c int h = s->avctx->coded_height >> !shift; s 422 libavcodec/agm.c int w = s->avctx->coded_width >> !shift; s 423 libavcodec/agm.c int map = s->map[x]; s 430 libavcodec/agm.c copy_block8(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 431 libavcodec/agm.c prev->data[plane] + ((s->blocks_h - 1 - y) * 8 - mv_y) * prev->linesize[plane] + (x * 8 + mv_x), s 434 libavcodec/agm.c s->idsp.idct(s->wblocks + x * 64); s 436 libavcodec/agm.c s->wblocks[i + x * 64] = (s->wblocks[i + x * 64] + 1) & 0xFFFC; s 437 libavcodec/agm.c s->idsp.add_pixels_clamped(&s->wblocks[x*64], frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 441 libavcodec/agm.c s->idsp.idct_put(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 442 libavcodec/agm.c frame->linesize[plane], s->wblocks + x * 64); s 446 libavcodec/agm.c } else if (s->flags & 2) { s 447 libavcodec/agm.c for (int y = 0; y < s->blocks_h; y++) { s 448 libavcodec/agm.c for (int x = 0; x < s->blocks_w; x++) { s 450 libavcodec/agm.c int mvpos = (y >> shift) * (s->blocks_w >> shift) + (x >> shift); s 451 libavcodec/agm.c int orig_mv_x = s->mvectors[mvpos].x; s 452 libavcodec/agm.c int mv_x = s->mvectors[mvpos].x / (1 + !shift); s 453 libavcodec/agm.c int mv_y = s->mvectors[mvpos].y / (1 + !shift); s 454 libavcodec/agm.c int h = s->avctx->coded_height >> !shift; s 455 libavcodec/agm.c int w = s->avctx->coded_width >> !shift; s 458 libavcodec/agm.c ret = decode_inter_block(s, gb, quant_matrix, &skip, &map); s 467 libavcodec/agm.c copy_block8(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 468 libavcodec/agm.c prev->data[plane] + ((s->blocks_h - 1 - y) * 8 - mv_y) * prev->linesize[plane] + (x * 8 + mv_x), s 471 libavcodec/agm.c s->idsp.idct(s->block); s 473 libavcodec/agm.c s->block[i] = (s->block[i] + 1) & 0xFFFC; s 474 libavcodec/agm.c s->idsp.add_pixels_clamped(s->block, frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 478 libavcodec/agm.c s->idsp.idct_put(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 479 libavcodec/agm.c frame->linesize[plane], s->block); s 483 libavcodec/agm.c } else if (s->flags & 1) { s 484 libavcodec/agm.c av_fast_padded_malloc(&s->wblocks, &s->wblocks_size, s 485 libavcodec/agm.c 64 * s->blocks_w * sizeof(*s->wblocks)); s 486 libavcodec/agm.c if (!s->wblocks) s 489 libavcodec/agm.c av_fast_padded_malloc(&s->map, &s->map_size, s 490 libavcodec/agm.c s->blocks_w * sizeof(*s->map)); s 491 libavcodec/agm.c if (!s->map) s 494 libavcodec/agm.c for (int y = 0; y < s->blocks_h; y++) { s 495 libavcodec/agm.c ret = decode_inter_blocks(s, gb, quant_matrix, &skip, s->map); s 499 libavcodec/agm.c for (int x = 0; x < s->blocks_w; x++) { s 500 libavcodec/agm.c if (!s->map[x]) s 502 libavcodec/agm.c s->idsp.idct_add(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 503 libavcodec/agm.c frame->linesize[plane], s->wblocks + 64 * x); s 507 libavcodec/agm.c for (int y = 0; y < s->blocks_h; y++) { s 508 libavcodec/agm.c for (int x = 0; x < s->blocks_w; x++) { s 511 libavcodec/agm.c ret = decode_inter_block(s, gb, quant_matrix, &skip, &map); s 517 libavcodec/agm.c s->idsp.idct_add(frame->data[plane] + (s->blocks_h - 1 - y) * 8 * frame->linesize[plane] + x * 8, s 518 libavcodec/agm.c frame->linesize[plane], s->block); s 525 libavcodec/agm.c av_log(s->avctx, AV_LOG_WARNING, "overread\n"); s 527 libavcodec/agm.c av_log(s->avctx, AV_LOG_WARNING, "underread: %d\n", get_bits_left(gb)); s 532 libavcodec/agm.c static void compute_quant_matrix(AGMContext *s, double qscale) s 537 libavcodec/agm.c if (!s->key_frame && (s->flags & 2)) { s 566 libavcodec/agm.c s->luma_quant_matrix[i] = luma[pos] * ((pos / 8) & 1 ? -1 : 1); s 567 libavcodec/agm.c s->chroma_quant_matrix[i] = chroma[pos] * ((pos / 8) & 1 ? -1 : 1); s 797 libavcodec/agm.c AGMContext *s = avctx->priv_data; s 800 libavcodec/agm.c compute_quant_matrix(s, (2 * s->compression - 100) / 100.0); s 802 libavcodec/agm.c s->blocks_w = avctx->coded_width >> 3; s 803 libavcodec/agm.c s->blocks_h = avctx->coded_height >> 3; s 805 libavcodec/agm.c ret = decode_intra_plane(s, gb, s->size[0], s->luma_quant_matrix, frame, 0); s 809 libavcodec/agm.c bytestream2_skip(&s->gbyte, s->size[0]); s 811 libavcodec/agm.c s->blocks_w = avctx->coded_width >> 4; s 812 libavcodec/agm.c s->blocks_h = avctx->coded_height >> 4; s 814 libavcodec/agm.c ret = decode_intra_plane(s, gb, s->size[1], s->chroma_quant_matrix, frame, 2); s 818 libavcodec/agm.c bytestream2_skip(&s->gbyte, s->size[1]); s 820 libavcodec/agm.c s->blocks_w = avctx->coded_width >> 4; s 821 libavcodec/agm.c s->blocks_h = avctx->coded_height >> 4; s 823 libavcodec/agm.c ret = decode_intra_plane(s, gb, s->size[2], s->chroma_quant_matrix, frame, 1); s 832 libavcodec/agm.c AGMContext *s = avctx->priv_data; s 836 libavcodec/agm.c av_fast_padded_malloc(&s->mvectors, &s->mvectors_size, s 837 libavcodec/agm.c nb_mvs * sizeof(*s->mvectors)); s 838 libavcodec/agm.c if (!s->mvectors) s 841 libavcodec/agm.c if ((ret = init_get_bits8(gb, s->gbyte.buffer, bytestream2_get_bytes_left(&s->gbyte) - s 842 libavcodec/agm.c (s->size[0] + s->size[1] + s->size[2]))) < 0) s 845 libavcodec/agm.c memset(s->mvectors, 0, sizeof(*s->mvectors) * nb_mvs); s 851 libavcodec/agm.c s->mvectors[i].x = value; s 859 libavcodec/agm.c s->mvectors[i].y = value; s 866 libavcodec/agm.c bytestream2_skip(&s->gbyte, skip); s 874 libavcodec/agm.c AGMContext *s = avctx->priv_data; s 877 libavcodec/agm.c compute_quant_matrix(s, (2 * s->compression - 100) / 100.0); s 879 libavcodec/agm.c if (s->flags & 2) { s 885 libavcodec/agm.c s->blocks_w = avctx->coded_width >> 3; s 886 libavcodec/agm.c s->blocks_h = avctx->coded_height >> 3; s 888 libavcodec/agm.c ret = decode_inter_plane(s, gb, s->size[0], s->luma_quant_matrix, frame, prev, 0); s 892 libavcodec/agm.c bytestream2_skip(&s->gbyte, s->size[0]); s 894 libavcodec/agm.c s->blocks_w = avctx->coded_width >> 4; s 895 libavcodec/agm.c s->blocks_h = avctx->coded_height >> 4; s 897 libavcodec/agm.c ret = decode_inter_plane(s, gb, s->size[1], s->chroma_quant_matrix, frame, prev, 2); s 901 libavcodec/agm.c bytestream2_skip(&s->gbyte, s->size[1]); s 903 libavcodec/agm.c s->blocks_w = avctx->coded_width >> 4; s 904 libavcodec/agm.c s->blocks_h = avctx->coded_height >> 4; s 906 libavcodec/agm.c ret = decode_inter_plane(s, gb, s->size[2], s->chroma_quant_matrix, frame, prev, 1); s 1044 libavcodec/agm.c AGMContext *s = avctx->priv_data; s 1045 libavcodec/agm.c GetBitContext *gb = &s->gb; s 1049 libavcodec/agm.c if ((ret = init_get_bits8(gb, s->gbyte.buffer, s 1050 libavcodec/agm.c bytestream2_get_bytes_left(&s->gbyte))) < 0) s 1053 libavcodec/agm.c s->output_size = get_bits_long(gb, 32); s 1055 libavcodec/agm.c if (s->output_size > avctx->width * avctx->height * 9LL + 10000) s 1058 libavcodec/agm.c av_fast_padded_malloc(&s->output, &s->padded_output_size, s->output_size); s 1059 libavcodec/agm.c if (!s->output) s 1080 libavcodec/agm.c if ((ret = build_huff(lens, &s->vlc)) < 0) s 1084 libavcodec/agm.c while (get_bits_left(gb) > 0 && x < s->output_size) { s 1085 libavcodec/agm.c int val = get_vlc2(gb, s->vlc.table, s->vlc.bits, 3); s 1088 libavcodec/agm.c s->output[x++] = val; s 1097 libavcodec/agm.c AGMContext *s = avctx->priv_data; s 1098 libavcodec/agm.c GetBitContext *gb = &s->gb; s 1099 libavcodec/agm.c GetByteContext *gbyte = &s->gbyte; s 1112 libavcodec/agm.c s->fflags = bytestream2_get_le32(gbyte); s 1113 libavcodec/agm.c s->bitstream_size = s->fflags & 0x1FFFFFFF; s 1114 libavcodec/agm.c s->fflags >>= 29; s 1115 libavcodec/agm.c av_log(avctx, AV_LOG_DEBUG, "fflags: %X\n", s->fflags); s 1116 libavcodec/agm.c if (avpkt->size < s->bitstream_size + 8) s 1119 libavcodec/agm.c s->key_frame = (avpkt->flags & AV_PKT_FLAG_KEY); s 1120 libavcodec/agm.c frame->key_frame = s->key_frame; s 1121 libavcodec/agm.c frame->pict_type = s->key_frame ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; s 1123 libavcodec/agm.c if (!s->key_frame) { s 1124 libavcodec/agm.c if (!s->prev_frame->data[0]) { s 1135 libavcodec/agm.c ret = decode_huffman2(avctx, header, (avpkt->size - s->bitstream_size) - 8); s 1138 libavcodec/agm.c bytestream2_init(gbyte, s->output, s->output_size); s 1139 libavcodec/agm.c } else if (!s->dct) { s 1143 libavcodec/agm.c if (s->dct) { s 1144 libavcodec/agm.c s->flags = 0; s 1151 libavcodec/agm.c s->flags |= 2; s 1155 libavcodec/agm.c s->flags |= 1; s 1169 libavcodec/agm.c s->compression = bytestream2_get_le32(gbyte); s 1170 libavcodec/agm.c if (s->compression < 0 || s->compression > 100) s 1174 libavcodec/agm.c s->size[i] = bytestream2_get_le32(gbyte); s 1176 libavcodec/agm.c compressed_size = s->output_size; s 1182 libavcodec/agm.c if (s->size[0] < 0 || s->size[1] < 0 || s->size[2] < 0 || s 1183 libavcodec/agm.c skip + s->size[0] + s->size[1] + s->size[2] > compressed_size) { s 1192 libavcodec/agm.c if (!s->dct && !s->rgb) s 1194 libavcodec/agm.c else if (!s->dct && s->rgb) s 1199 libavcodec/agm.c if (s->prev_frame-> width != frame->width || s 1200 libavcodec/agm.c s->prev_frame->height != frame->height) s 1203 libavcodec/agm.c if (!(s->flags & 2)) { s 1204 libavcodec/agm.c ret = av_frame_copy(frame, s->prev_frame); s 1209 libavcodec/agm.c if (s->dct) { s 1210 libavcodec/agm.c ret = decode_inter(avctx, gb, frame, s->prev_frame); s 1211 libavcodec/agm.c } else if (!s->dct && !s->rgb) { s 1220 libavcodec/agm.c av_frame_unref(s->prev_frame); s 1221 libavcodec/agm.c if ((ret = av_frame_ref(s->prev_frame, frame)) < 0) s 1234 libavcodec/agm.c AGMContext *s = avctx->priv_data; s 1236 libavcodec/agm.c s->rgb = avctx->codec_tag == MKTAG('A', 'G', 'M', '4'); s 1237 libavcodec/agm.c avctx->pix_fmt = s->rgb ? AV_PIX_FMT_BGR24 : AV_PIX_FMT_YUV420P; s 1238 libavcodec/agm.c s->avctx = avctx; s 1239 libavcodec/agm.c s->plus = avctx->codec_tag == MKTAG('A', 'G', 'M', '3') || s 1242 libavcodec/agm.c s->dct = avctx->codec_tag != MKTAG('A', 'G', 'M', '4') && s 1245 libavcodec/agm.c if (!s->rgb && !s->dct) { s 1251 libavcodec/agm.c ff_idctdsp_init(&s->idsp, avctx); s 1252 libavcodec/agm.c ff_init_scantable(s->idsp.idct_permutation, &s->scantable, ff_zigzag_direct); s 1254 libavcodec/agm.c s->prev_frame = av_frame_alloc(); s 1255 libavcodec/agm.c if (!s->prev_frame) s 1263 libavcodec/agm.c AGMContext *s = avctx->priv_data; s 1265 libavcodec/agm.c av_frame_unref(s->prev_frame); s 1270 libavcodec/agm.c AGMContext *s = avctx->priv_data; s 1272 libavcodec/agm.c ff_free_vlc(&s->vlc); s 1273 libavcodec/agm.c av_frame_free(&s->prev_frame); s 1274 libavcodec/agm.c av_freep(&s->mvectors); s 1275 libavcodec/agm.c s->mvectors_size = 0; s 1276 libavcodec/agm.c av_freep(&s->wblocks); s 1277 libavcodec/agm.c s->wblocks_size = 0; s 1278 libavcodec/agm.c av_freep(&s->output); s 1279 libavcodec/agm.c s->padded_output_size = 0; s 1280 libavcodec/agm.c av_freep(&s->map); s 1281 libavcodec/agm.c s->map_size = 0; s 84 libavcodec/alacenc.c static void init_sample_buffers(AlacEncodeContext *s, int channels, s 88 libavcodec/alacenc.c int shift = av_get_bytes_per_sample(s->avctx->sample_fmt) * 8 - s 89 libavcodec/alacenc.c s->avctx->bits_per_raw_sample; s 93 libavcodec/alacenc.c int32_t *bptr = s->sample_buf[ch]; \ s 95 libavcodec/alacenc.c for (i = 0; i < s->frame_size; i++) \ s 100 libavcodec/alacenc.c if (s->avctx->sample_fmt == AV_SAMPLE_FMT_S32P) s 106 libavcodec/alacenc.c static void encode_scalar(AlacEncodeContext *s, int x, s 111 libavcodec/alacenc.c k = FFMIN(k, s->rc.k_modifier); s 118 libavcodec/alacenc.c put_bits(&s->pbctx, 9, ALAC_ESCAPE_CODE); s 119 libavcodec/alacenc.c put_bits(&s->pbctx, write_sample_size, x); s 122 libavcodec/alacenc.c put_bits(&s->pbctx, q, (1<<q) - 1); s 123 libavcodec/alacenc.c put_bits(&s->pbctx, 1, 0); s 127 libavcodec/alacenc.c put_bits(&s->pbctx, k, r+1); s 129 libavcodec/alacenc.c put_bits(&s->pbctx, k-1, 0); s 134 libavcodec/alacenc.c static void write_element_header(AlacEncodeContext *s, s 140 libavcodec/alacenc.c if (s->frame_size < DEFAULT_FRAME_SIZE) s 143 libavcodec/alacenc.c put_bits(&s->pbctx, 3, element); // element type s 144 libavcodec/alacenc.c put_bits(&s->pbctx, 4, instance); // element instance s 145 libavcodec/alacenc.c put_bits(&s->pbctx, 12, 0); // unused header bits s 146 libavcodec/alacenc.c put_bits(&s->pbctx, 1, encode_fs); // Sample count is in the header s 147 libavcodec/alacenc.c put_bits(&s->pbctx, 2, s->extra_bits >> 3); // Extra bytes (for 24-bit) s 148 libavcodec/alacenc.c put_bits(&s->pbctx, 1, s->verbatim); // Audio block is verbatim s 150 libavcodec/alacenc.c put_bits32(&s->pbctx, s->frame_size); // No. of samples in the frame s 153 libavcodec/alacenc.c static void calc_predictor_params(AlacEncodeContext *s, int ch) s 159 libavcodec/alacenc.c if (s->compression_level == 1) { s 160 libavcodec/alacenc.c s->lpc[ch].lpc_order = 6; s 161 libavcodec/alacenc.c s->lpc[ch].lpc_quant = 6; s 162 libavcodec/alacenc.c s->lpc[ch].lpc_coeff[0] = 160; s 163 libavcodec/alacenc.c s->lpc[ch].lpc_coeff[1] = -190; s 164 libavcodec/alacenc.c s->lpc[ch].lpc_coeff[2] = 170; s 165 libavcodec/alacenc.c s->lpc[ch].lpc_coeff[3] = -130; s 166 libavcodec/alacenc.c s->lpc[ch].lpc_coeff[4] = 80; s 167 libavcodec/alacenc.c s->lpc[ch].lpc_coeff[5] = -25; s 169 libavcodec/alacenc.c opt_order = ff_lpc_calc_coefs(&s->lpc_ctx, s->sample_buf[ch], s 170 libavcodec/alacenc.c s->frame_size, s 171 libavcodec/alacenc.c s->min_prediction_order, s 172 libavcodec/alacenc.c s->max_prediction_order, s 178 libavcodec/alacenc.c s->lpc[ch].lpc_order = opt_order; s 179 libavcodec/alacenc.c s->lpc[ch].lpc_quant = shift[opt_order-1]; s 180 libavcodec/alacenc.c memcpy(s->lpc[ch].lpc_coeff, coefs[opt_order-1], opt_order*sizeof(int)); s 217 libavcodec/alacenc.c static void alac_stereo_decorrelation(AlacEncodeContext *s) s 219 libavcodec/alacenc.c int32_t *left = s->sample_buf[0], *right = s->sample_buf[1]; s 220 libavcodec/alacenc.c int i, mode, n = s->frame_size; s 227 libavcodec/alacenc.c s->interlacing_leftweight = 0; s 228 libavcodec/alacenc.c s->interlacing_shift = 0; s 233 libavcodec/alacenc.c s->interlacing_leftweight = 1; s 234 libavcodec/alacenc.c s->interlacing_shift = 0; s 242 libavcodec/alacenc.c s->interlacing_leftweight = 1; s 243 libavcodec/alacenc.c s->interlacing_shift = 31; s 251 libavcodec/alacenc.c s->interlacing_leftweight = 1; s 252 libavcodec/alacenc.c s->interlacing_shift = 1; s 257 libavcodec/alacenc.c static void alac_linear_predictor(AlacEncodeContext *s, int ch) s 260 libavcodec/alacenc.c AlacLPCContext lpc = s->lpc[ch]; s 261 libavcodec/alacenc.c int32_t *residual = s->predictor_buf[ch]; s 264 libavcodec/alacenc.c residual[0] = s->sample_buf[ch][0]; s 266 libavcodec/alacenc.c for (i = 1; i < s->frame_size; i++) { s 267 libavcodec/alacenc.c residual[i] = s->sample_buf[ch][i ] - s 268 libavcodec/alacenc.c s->sample_buf[ch][i - 1]; s 277 libavcodec/alacenc.c int32_t *samples = s->sample_buf[ch]; s 282 libavcodec/alacenc.c residual[i] = sign_extend(samples[i] - samples[i-1], s->write_sample_size); s 285 libavcodec/alacenc.c for (i = lpc.lpc_order + 1; i < s->frame_size; i++) { s 296 libavcodec/alacenc.c s->write_sample_size); s 321 libavcodec/alacenc.c static void alac_entropy_coder(AlacEncodeContext *s, int ch) s 323 libavcodec/alacenc.c unsigned int history = s->rc.initial_history; s 325 libavcodec/alacenc.c int32_t *samples = s->predictor_buf[ch]; s 327 libavcodec/alacenc.c for (i = 0; i < s->frame_size;) { s 338 libavcodec/alacenc.c encode_scalar(s, x - sign_modifier, k, s->write_sample_size); s 340 libavcodec/alacenc.c history += x * s->rc.history_mult - s 341 libavcodec/alacenc.c ((history * s->rc.history_mult) >> 9); s 347 libavcodec/alacenc.c if (history < 128 && i < s->frame_size) { s 352 libavcodec/alacenc.c while (*samples == 0 && i < s->frame_size) { s 357 libavcodec/alacenc.c encode_scalar(s, block_size, k, 16); s 365 libavcodec/alacenc.c static void write_element(AlacEncodeContext *s, s 372 libavcodec/alacenc.c PutBitContext *pb = &s->pbctx; s 376 libavcodec/alacenc.c if (s->verbatim) { s 377 libavcodec/alacenc.c write_element_header(s, element, instance); s 379 libavcodec/alacenc.c if (s->avctx->sample_fmt == AV_SAMPLE_FMT_S32P) { s 380 libavcodec/alacenc.c int shift = 32 - s->avctx->bits_per_raw_sample; s 383 libavcodec/alacenc.c for (i = 0; i < s->frame_size; i++) s 385 libavcodec/alacenc.c put_sbits(pb, s->avctx->bits_per_raw_sample, s 390 libavcodec/alacenc.c for (i = 0; i < s->frame_size; i++) s 392 libavcodec/alacenc.c put_sbits(pb, s->avctx->bits_per_raw_sample, s 396 libavcodec/alacenc.c s->write_sample_size = s->avctx->bits_per_raw_sample - s->extra_bits + s 399 libavcodec/alacenc.c init_sample_buffers(s, channels, samples); s 400 libavcodec/alacenc.c write_element_header(s, element, instance); s 403 libavcodec/alacenc.c if (s->extra_bits) { s 404 libavcodec/alacenc.c uint32_t mask = (1 << s->extra_bits) - 1; s 406 libavcodec/alacenc.c int32_t *extra = s->predictor_buf[j]; s 407 libavcodec/alacenc.c int32_t *smp = s->sample_buf[j]; s 408 libavcodec/alacenc.c for (i = 0; i < s->frame_size; i++) { s 410 libavcodec/alacenc.c smp[i] >>= s->extra_bits; s 416 libavcodec/alacenc.c alac_stereo_decorrelation(s); s 418 libavcodec/alacenc.c s->interlacing_shift = s->interlacing_leftweight = 0; s 419 libavcodec/alacenc.c put_bits(pb, 8, s->interlacing_shift); s 420 libavcodec/alacenc.c put_bits(pb, 8, s->interlacing_leftweight); s 423 libavcodec/alacenc.c calc_predictor_params(s, i); s 426 libavcodec/alacenc.c put_bits(pb, 4, s->lpc[i].lpc_quant); s 428 libavcodec/alacenc.c put_bits(pb, 3, s->rc.rice_modifier); s 429 libavcodec/alacenc.c put_bits(pb, 5, s->lpc[i].lpc_order); s 431 libavcodec/alacenc.c for (j = 0; j < s->lpc[i].lpc_order; j++) s 432 libavcodec/alacenc.c put_sbits(pb, 16, s->lpc[i].lpc_coeff[j]); s 436 libavcodec/alacenc.c if (s->extra_bits) { s 437 libavcodec/alacenc.c for (i = 0; i < s->frame_size; i++) { s 439 libavcodec/alacenc.c put_bits(pb, s->extra_bits, s->predictor_buf[j][i]); s 446 libavcodec/alacenc.c alac_linear_predictor(s, i); s 451 libavcodec/alacenc.c int32_t *residual = s->predictor_buf[i]; s 452 libavcodec/alacenc.c for (j = s->frame_size - 1; j > 0; j--) s 455 libavcodec/alacenc.c alac_entropy_coder(s, i); s 460 libavcodec/alacenc.c static int write_frame(AlacEncodeContext *s, AVPacket *avpkt, s 463 libavcodec/alacenc.c PutBitContext *pb = &s->pbctx; s 464 libavcodec/alacenc.c const enum AlacRawDataBlockType *ch_elements = ff_alac_channel_elements[s->avctx->channels - 1]; s 465 libavcodec/alacenc.c const uint8_t *ch_map = ff_alac_channel_layout_offsets[s->avctx->channels - 1]; s 471 libavcodec/alacenc.c while (ch < s->avctx->channels) { s 473 libavcodec/alacenc.c write_element(s, TYPE_CPE, cpe, samples[ch_map[ch]], s 478 libavcodec/alacenc.c write_element(s, TYPE_SCE, sce, samples[ch_map[ch]], NULL); s 499 libavcodec/alacenc.c AlacEncodeContext *s = avctx->priv_data; s 500 libavcodec/alacenc.c ff_lpc_end(&s->lpc_ctx); s 508 libavcodec/alacenc.c AlacEncodeContext *s = avctx->priv_data; s 512 libavcodec/alacenc.c avctx->frame_size = s->frame_size = DEFAULT_FRAME_SIZE; s 520 libavcodec/alacenc.c s->extra_bits = 0; s 525 libavcodec/alacenc.c s->compression_level = 2; s 527 libavcodec/alacenc.c s->compression_level = av_clip(avctx->compression_level, 0, 2); s 530 libavcodec/alacenc.c s->rc.history_mult = 40; s 531 libavcodec/alacenc.c s->rc.initial_history = 10; s 532 libavcodec/alacenc.c s->rc.k_modifier = 14; s 533 libavcodec/alacenc.c s->rc.rice_modifier = 4; s 535 libavcodec/alacenc.c s->max_coded_frame_size = get_max_frame_size(avctx->frame_size, s 552 libavcodec/alacenc.c AV_WB32(alac_extradata+24, s->max_coded_frame_size); s 558 libavcodec/alacenc.c if (s->compression_level > 0) { s 559 libavcodec/alacenc.c AV_WB8(alac_extradata+18, s->rc.history_mult); s 560 libavcodec/alacenc.c AV_WB8(alac_extradata+19, s->rc.initial_history); s 561 libavcodec/alacenc.c AV_WB8(alac_extradata+20, s->rc.k_modifier); s 575 libavcodec/alacenc.c s->min_prediction_order = avctx->min_prediction_order; s 587 libavcodec/alacenc.c s->max_prediction_order = avctx->max_prediction_order; s 592 libavcodec/alacenc.c if (s->max_prediction_order < s->min_prediction_order) { s 595 libavcodec/alacenc.c s->min_prediction_order, s->max_prediction_order); s 600 libavcodec/alacenc.c s->avctx = avctx; s 602 libavcodec/alacenc.c if ((ret = ff_lpc_init(&s->lpc_ctx, avctx->frame_size, s 603 libavcodec/alacenc.c s->max_prediction_order, s 617 libavcodec/alacenc.c AlacEncodeContext *s = avctx->priv_data; s 620 libavcodec/alacenc.c s->frame_size = frame->nb_samples; s 623 libavcodec/alacenc.c max_frame_size = get_max_frame_size(s->frame_size, avctx->channels, s 626 libavcodec/alacenc.c max_frame_size = s->max_coded_frame_size; s 632 libavcodec/alacenc.c if (s->compression_level) { s 633 libavcodec/alacenc.c s->verbatim = 0; s 634 libavcodec/alacenc.c s->extra_bits = avctx->bits_per_raw_sample - 16; s 636 libavcodec/alacenc.c s->verbatim = 1; s 637 libavcodec/alacenc.c s->extra_bits = 0; s 640 libavcodec/alacenc.c out_bytes = write_frame(s, avpkt, frame->extended_data); s 644 libavcodec/alacenc.c s->verbatim = 1; s 645 libavcodec/alacenc.c s->extra_bits = 0; s 646 libavcodec/alacenc.c out_bytes = write_frame(s, avpkt, frame->extended_data); s 72 libavcodec/alpha/mpegvideo_alpha.c static void dct_unquantize_h263_intra_axp(MpegEncContext *s, int16_t *block, s 79 libavcodec/alpha/mpegvideo_alpha.c if (!s->h263_aic) { s 81 libavcodec/alpha/mpegvideo_alpha.c block0 *= s->y_dc_scale; s 83 libavcodec/alpha/mpegvideo_alpha.c block0 *= s->c_dc_scale; s 89 libavcodec/alpha/mpegvideo_alpha.c if(s->ac_pred) s 92 libavcodec/alpha/mpegvideo_alpha.c n_coeffs = s->inter_scantable.raster_end[s->block_last_index[n]]; s 99 libavcodec/alpha/mpegvideo_alpha.c static void dct_unquantize_h263_inter_axp(MpegEncContext *s, int16_t *block, s 102 libavcodec/alpha/mpegvideo_alpha.c int n_coeffs = s->inter_scantable.raster_end[s->block_last_index[n]]; s 106 libavcodec/alpha/mpegvideo_alpha.c av_cold void ff_mpv_common_init_axp(MpegEncContext *s) s 108 libavcodec/alpha/mpegvideo_alpha.c s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_axp; s 109 libavcodec/alpha/mpegvideo_alpha.c s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_axp; s 634 libavcodec/alsdec.c unsigned int s[8]; s 675 libavcodec/alsdec.c s[0] = get_bits(gb, 8 + (sconf->resolution > 1)); s 677 libavcodec/alsdec.c s[k] = s[k - 1] + decode_rice(gb, 2); s 680 libavcodec/alsdec.c sx[k] = s[k] & 0x0F; s 681 libavcodec/alsdec.c s [k] >>= 4; s 684 libavcodec/alsdec.c s[0] = get_bits(gb, 4 + (sconf->resolution > 1)); s 686 libavcodec/alsdec.c s[k] = s[k - 1] + decode_rice(gb, 0); s 689 libavcodec/alsdec.c if (s[k] > 32) { s 809 libavcodec/alsdec.c bd->raw_samples[1] = decode_rice(gb, FFMIN(s[0] + 3, ctx->s_max)); s 811 libavcodec/alsdec.c bd->raw_samples[2] = decode_rice(gb, FFMIN(s[0] + 1, ctx->s_max)); s 834 libavcodec/alsdec.c k [sb] = s[sb] > b ? s[sb] - b : 0; s 835 libavcodec/alsdec.c delta[sb] = 5 - s[sb] + k[sb]; s 855 libavcodec/alsdec.c unsigned int cur_s = s[sb]; s 894 libavcodec/alsdec.c *current_res++ = decode_rice(gb, s[sb]); s 1168 libavcodec/alsdec.c unsigned int s; s 1188 libavcodec/alsdec.c for (s = 0; s < div_blocks[b]; s++) s 1189 libavcodec/alsdec.c bd[0].raw_samples[s] = bd[1].raw_samples[s] - (unsigned)bd[0].raw_samples[s]; s 1191 libavcodec/alsdec.c for (s = 0; s < div_blocks[b]; s++) s 1192 libavcodec/alsdec.c bd[1].raw_samples[s] = bd[1].raw_samples[s] + (unsigned)bd[0].raw_samples[s]; s 38 libavcodec/anm.c AnmContext *s = avctx->priv_data; s 47 libavcodec/anm.c s->frame = av_frame_alloc(); s 48 libavcodec/anm.c if (!s->frame) s 54 libavcodec/anm.c s->palette[i] = (0xFFU << 24) | bytestream2_get_le32u(&gb); s 114 libavcodec/anm.c AnmContext *s = avctx->priv_data; s 123 libavcodec/anm.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 125 libavcodec/anm.c dst = s->frame->data[0]; s 126 libavcodec/anm.c dst_end = s->frame->data[0] + s->frame->linesize[0]*avctx->height; s 143 libavcodec/anm.c op(&dst, dst_end, (gb), (pixel), (count), &x, avctx->width, s->frame->linesize[0]) s 175 libavcodec/anm.c memcpy(s->frame->data[1], s->palette, AVPALETTE_SIZE); s 178 libavcodec/anm.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 186 libavcodec/anm.c AnmContext *s = avctx->priv_data; s 188 libavcodec/anm.c av_frame_free(&s->frame); s 81 libavcodec/ansi.c AnsiContext *s = avctx->priv_data; s 85 libavcodec/ansi.c s->font = avpriv_vga16_font; s 86 libavcodec/ansi.c s->font_height = 16; s 87 libavcodec/ansi.c s->fg = DEFAULT_FG_COLOR; s 88 libavcodec/ansi.c s->bg = DEFAULT_BG_COLOR; s 94 libavcodec/ansi.c } else if (avctx->width % FONT_WIDTH || avctx->height % s->font_height) { s 99 libavcodec/ansi.c s->frame = av_frame_alloc(); s 100 libavcodec/ansi.c if (!s->frame) s 123 libavcodec/ansi.c AnsiContext *s = avctx->priv_data; s 126 libavcodec/ansi.c if (s->y <= avctx->height - 2*s->font_height) { s 127 libavcodec/ansi.c s->y += s->font_height; s 132 libavcodec/ansi.c for (; i < avctx->height - s->font_height; i++) s 133 libavcodec/ansi.c memcpy(s->frame->data[0] + i * s->frame->linesize[0], s 134 libavcodec/ansi.c s->frame->data[0] + (i + s->font_height) * s->frame->linesize[0], s 137 libavcodec/ansi.c memset(s->frame->data[0] + i * s->frame->linesize[0], s 143 libavcodec/ansi.c AnsiContext *s = avctx->priv_data; s 145 libavcodec/ansi.c for (i = 0; i < s->font_height; i++) s 146 libavcodec/ansi.c memset(s->frame->data[0] + (s->y + i)*s->frame->linesize[0] + xoffset, s 152 libavcodec/ansi.c AnsiContext *s = avctx->priv_data; s 155 libavcodec/ansi.c memset(s->frame->data[0] + i * s->frame->linesize[0], DEFAULT_BG_COLOR, avctx->width); s 156 libavcodec/ansi.c s->x = s->y = 0; s 164 libavcodec/ansi.c AnsiContext *s = avctx->priv_data; s 165 libavcodec/ansi.c int fg = s->fg; s 166 libavcodec/ansi.c int bg = s->bg; s 168 libavcodec/ansi.c if ((s->attributes & ATTR_BOLD)) s 170 libavcodec/ansi.c if ((s->attributes & ATTR_BLINK)) s 172 libavcodec/ansi.c if ((s->attributes & ATTR_REVERSE)) s 174 libavcodec/ansi.c if ((s->attributes & ATTR_CONCEALED)) s 176 libavcodec/ansi.c ff_draw_pc_font(s->frame->data[0] + s->y * s->frame->linesize[0] + s->x, s 177 libavcodec/ansi.c s->frame->linesize[0], s->font, s->font_height, c, fg, bg); s 178 libavcodec/ansi.c s->x += FONT_WIDTH; s 179 libavcodec/ansi.c if (s->x > avctx->width - FONT_WIDTH) { s 180 libavcodec/ansi.c s->x = 0; s 191 libavcodec/ansi.c AnsiContext *s = avctx->priv_data; s 198 libavcodec/ansi.c s->y = FFMAX(s->y - (s->nb_args > 0 ? s->args[0]*s->font_height : s->font_height), 0); s 201 libavcodec/ansi.c s->y = FFMIN(s->y + (s->nb_args > 0 ? s->args[0]*s->font_height : s->font_height), avctx->height - s->font_height); s 204 libavcodec/ansi.c s->x = FFMIN(s->x + (s->nb_args > 0 ? s->args[0]*FONT_WIDTH : FONT_WIDTH), avctx->width - FONT_WIDTH); s 207 libavcodec/ansi.c s->x = FFMAX(s->x - (s->nb_args > 0 ? s->args[0]*FONT_WIDTH : FONT_WIDTH), 0); s 211 libavcodec/ansi.c s->y = s->nb_args > 0 ? av_clip((s->args[0] - 1)*s->font_height, 0, avctx->height - s->font_height) : 0; s 212 libavcodec/ansi.c s->x = s->nb_args > 1 ? av_clip((s->args[1] - 1)*FONT_WIDTH, 0, avctx->width - FONT_WIDTH) : 0; s 216 libavcodec/ansi.c if (s->nb_args < 2) s 217 libavcodec/ansi.c s->args[0] = DEFAULT_SCREEN_MODE; s 218 libavcodec/ansi.c switch(s->args[0]) { s 220 libavcodec/ansi.c s->font = avpriv_cga_font; s 221 libavcodec/ansi.c s->font_height = 8; s 226 libavcodec/ansi.c s->font = avpriv_vga16_font; s 227 libavcodec/ansi.c s->font_height = 16; s 232 libavcodec/ansi.c s->font = avpriv_cga_font; s 233 libavcodec/ansi.c s->font_height = 8; s 240 libavcodec/ansi.c s->font = avpriv_cga_font; s 241 libavcodec/ansi.c s->font_height = 8; s 246 libavcodec/ansi.c s->font = avpriv_cga_font; s 247 libavcodec/ansi.c s->font_height = 8; s 254 libavcodec/ansi.c s->x = av_clip(s->x, 0, width - FONT_WIDTH); s 255 libavcodec/ansi.c s->y = av_clip(s->y, 0, height - s->font_height); s 257 libavcodec/ansi.c av_frame_unref(s->frame); s 261 libavcodec/ansi.c if ((ret = ff_get_buffer(avctx, s->frame, s 264 libavcodec/ansi.c s->frame->pict_type = AV_PICTURE_TYPE_I; s 265 libavcodec/ansi.c s->frame->palette_has_changed = 1; s 266 libavcodec/ansi.c set_palette((uint32_t *)s->frame->data[1]); s 273 libavcodec/ansi.c switch (s->args[0]) { s 275 libavcodec/ansi.c erase_line(avctx, s->x, avctx->width - s->x); s 276 libavcodec/ansi.c if (s->y < avctx->height - s->font_height) s 277 libavcodec/ansi.c memset(s->frame->data[0] + (s->y + s->font_height)*s->frame->linesize[0], s 278 libavcodec/ansi.c DEFAULT_BG_COLOR, (avctx->height - s->y - s->font_height)*s->frame->linesize[0]); s 281 libavcodec/ansi.c erase_line(avctx, 0, s->x); s 282 libavcodec/ansi.c if (s->y > 0) s 283 libavcodec/ansi.c memset(s->frame->data[0], DEFAULT_BG_COLOR, s->y * s->frame->linesize[0]); s 290 libavcodec/ansi.c switch(s->args[0]) { s 292 libavcodec/ansi.c erase_line(avctx, s->x, avctx->width - s->x); s 295 libavcodec/ansi.c erase_line(avctx, 0, s->x); s 302 libavcodec/ansi.c if (s->nb_args == 0) { s 303 libavcodec/ansi.c s->nb_args = 1; s 304 libavcodec/ansi.c s->args[0] = 0; s 306 libavcodec/ansi.c for (i = 0; i < FFMIN(s->nb_args, MAX_NB_ARGS); i++) { s 307 libavcodec/ansi.c int m = s->args[i]; s 309 libavcodec/ansi.c s->attributes = 0; s 310 libavcodec/ansi.c s->fg = DEFAULT_FG_COLOR; s 311 libavcodec/ansi.c s->bg = DEFAULT_BG_COLOR; s 313 libavcodec/ansi.c s->attributes |= 1 << (m - 1); s 315 libavcodec/ansi.c s->fg = ansi_to_cga[m - 30]; s 316 libavcodec/ansi.c } else if (m == 38 && i + 2 < FFMIN(s->nb_args, MAX_NB_ARGS) && s->args[i + 1] == 5 && s->args[i + 2] < 256) { s 317 libavcodec/ansi.c int index = s->args[i + 2]; s 318 libavcodec/ansi.c s->fg = index < 16 ? ansi_to_cga[index] : index; s 321 libavcodec/ansi.c s->fg = ansi_to_cga[DEFAULT_FG_COLOR]; s 323 libavcodec/ansi.c s->bg = ansi_to_cga[m - 40]; s 324 libavcodec/ansi.c } else if (m == 48 && i + 2 < FFMIN(s->nb_args, MAX_NB_ARGS) && s->args[i + 1] == 5 && s->args[i + 2] < 256) { s 325 libavcodec/ansi.c int index = s->args[i + 2]; s 326 libavcodec/ansi.c s->bg = index < 16 ? ansi_to_cga[index] : index; s 329 libavcodec/ansi.c s->fg = ansi_to_cga[DEFAULT_BG_COLOR]; s 340 libavcodec/ansi.c s->sx = s->x; s 341 libavcodec/ansi.c s->sy = s->y; s 344 libavcodec/ansi.c s->x = av_clip(s->sx, 0, avctx->width - FONT_WIDTH); s 345 libavcodec/ansi.c s->y = av_clip(s->sy, 0, avctx->height - s->font_height); s 351 libavcodec/ansi.c s->x = av_clip(s->x, 0, avctx->width - FONT_WIDTH); s 352 libavcodec/ansi.c s->y = av_clip(s->y, 0, avctx->height - s->font_height); s 360 libavcodec/ansi.c AnsiContext *s = avctx->priv_data; s 366 libavcodec/ansi.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 370 libavcodec/ansi.c memset(s->frame->data[0]+ i*s->frame->linesize[0], 0, avctx->width); s 371 libavcodec/ansi.c memset(s->frame->data[1], 0, AVPALETTE_SIZE); s 374 libavcodec/ansi.c s->frame->pict_type = AV_PICTURE_TYPE_I; s 375 libavcodec/ansi.c s->frame->palette_has_changed = 1; s 376 libavcodec/ansi.c set_palette((uint32_t *)s->frame->data[1]); s 377 libavcodec/ansi.c if (!s->first_frame) { s 379 libavcodec/ansi.c s->first_frame = 1; s 383 libavcodec/ansi.c switch(s->state) { s 392 libavcodec/ansi.c s->x = FFMAX(s->x - 1, 0); s 395 libavcodec/ansi.c i = s->x / FONT_WIDTH; s 403 libavcodec/ansi.c s->x = 0; s 409 libavcodec/ansi.c s->state = STATE_ESCAPE; s 417 libavcodec/ansi.c s->state = STATE_CODE; s 418 libavcodec/ansi.c s->nb_args = 0; s 419 libavcodec/ansi.c s->args[0] = -1; s 421 libavcodec/ansi.c s->state = STATE_NORMAL; s 430 libavcodec/ansi.c if (s->nb_args < MAX_NB_ARGS && s->args[s->nb_args] < 6553) s 431 libavcodec/ansi.c s->args[s->nb_args] = FFMAX(s->args[s->nb_args], 0) * 10 + buf[0] - '0'; s 434 libavcodec/ansi.c s->nb_args++; s 435 libavcodec/ansi.c if (s->nb_args < MAX_NB_ARGS) s 436 libavcodec/ansi.c s->args[s->nb_args] = 0; s 439 libavcodec/ansi.c s->state = STATE_MUSIC_PREAMBLE; s 445 libavcodec/ansi.c if (s->nb_args > MAX_NB_ARGS) s 446 libavcodec/ansi.c av_log(avctx, AV_LOG_WARNING, "args overflow (%i)\n", s->nb_args); s 447 libavcodec/ansi.c if (s->nb_args < MAX_NB_ARGS && s->args[s->nb_args] >= 0) s 448 libavcodec/ansi.c s->nb_args++; s 451 libavcodec/ansi.c s->state = STATE_NORMAL; s 456 libavcodec/ansi.c s->state = STATE_NORMAL; s 464 libavcodec/ansi.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 471 libavcodec/ansi.c AnsiContext *s = avctx->priv_data; s 473 libavcodec/ansi.c av_frame_free(&s->frame); s 204 libavcodec/apedec.c APEContext *s = avctx->priv_data; s 208 libavcodec/apedec.c av_freep(&s->filterbuf[i]); s 210 libavcodec/apedec.c av_freep(&s->decoded_buffer); s 211 libavcodec/apedec.c av_freep(&s->data); s 212 libavcodec/apedec.c s->decoded_size = s->data_size = 0; s 219 libavcodec/apedec.c APEContext *s = avctx->priv_data; s 230 libavcodec/apedec.c s->bps = avctx->bits_per_coded_sample; s 231 libavcodec/apedec.c switch (s->bps) { s 243 libavcodec/apedec.c "%d bits per coded sample", s->bps); s 246 libavcodec/apedec.c s->avctx = avctx; s 247 libavcodec/apedec.c s->channels = avctx->channels; s 248 libavcodec/apedec.c s->fileversion = AV_RL16(avctx->extradata); s 249 libavcodec/apedec.c s->compression_level = AV_RL16(avctx->extradata + 2); s 250 libavcodec/apedec.c s->flags = AV_RL16(avctx->extradata + 4); s 253 libavcodec/apedec.c s->compression_level, s->flags); s 254 libavcodec/apedec.c if (s->compression_level % 1000 || s->compression_level > COMPRESSION_LEVEL_INSANE || s 255 libavcodec/apedec.c !s->compression_level || s 256 libavcodec/apedec.c (s->fileversion < 3930 && s->compression_level == COMPRESSION_LEVEL_INSANE)) { s 258 libavcodec/apedec.c s->compression_level); s 261 libavcodec/apedec.c s->fset = s->compression_level / 1000 - 1; s 263 libavcodec/apedec.c if (!ape_filter_orders[s->fset][i]) s 265 libavcodec/apedec.c FF_ALLOC_OR_GOTO(avctx, s->filterbuf[i], s 266 libavcodec/apedec.c (ape_filter_orders[s->fset][i] * 3 + HISTORY_SIZE) * 4, s 270 libavcodec/apedec.c if (s->fileversion < 3860) { s 271 libavcodec/apedec.c s->entropy_decode_mono = entropy_decode_mono_0000; s 272 libavcodec/apedec.c s->entropy_decode_stereo = entropy_decode_stereo_0000; s 273 libavcodec/apedec.c } else if (s->fileversion < 3900) { s 274 libavcodec/apedec.c s->entropy_decode_mono = entropy_decode_mono_3860; s 275 libavcodec/apedec.c s->entropy_decode_stereo = entropy_decode_stereo_3860; s 276 libavcodec/apedec.c } else if (s->fileversion < 3930) { s 277 libavcodec/apedec.c s->entropy_decode_mono = entropy_decode_mono_3900; s 278 libavcodec/apedec.c s->entropy_decode_stereo = entropy_decode_stereo_3900; s 279 libavcodec/apedec.c } else if (s->fileversion < 3990) { s 280 libavcodec/apedec.c s->entropy_decode_mono = entropy_decode_mono_3900; s 281 libavcodec/apedec.c s->entropy_decode_stereo = entropy_decode_stereo_3930; s 283 libavcodec/apedec.c s->entropy_decode_mono = entropy_decode_mono_3990; s 284 libavcodec/apedec.c s->entropy_decode_stereo = entropy_decode_stereo_3990; s 287 libavcodec/apedec.c if (s->fileversion < 3930) { s 288 libavcodec/apedec.c s->predictor_decode_mono = predictor_decode_mono_3800; s 289 libavcodec/apedec.c s->predictor_decode_stereo = predictor_decode_stereo_3800; s 290 libavcodec/apedec.c } else if (s->fileversion < 3950) { s 291 libavcodec/apedec.c s->predictor_decode_mono = predictor_decode_mono_3930; s 292 libavcodec/apedec.c s->predictor_decode_stereo = predictor_decode_stereo_3930; s 294 libavcodec/apedec.c s->predictor_decode_mono = predictor_decode_mono_3950; s 295 libavcodec/apedec.c s->predictor_decode_stereo = predictor_decode_stereo_3950; s 298 libavcodec/apedec.c ff_bswapdsp_init(&s->bdsp); s 299 libavcodec/apedec.c ff_llauddsp_init(&s->adsp); s 1437 libavcodec/apedec.c APEContext *s = avctx->priv_data; s 1447 libavcodec/apedec.c av_assert0(s->samples >= 0); s 1449 libavcodec/apedec.c if(!s->samples){ s 1466 libavcodec/apedec.c if (s->fileversion < 3950) // previous versions overread two bytes s 1468 libavcodec/apedec.c av_fast_padded_malloc(&s->data, &s->data_size, buf_size); s 1469 libavcodec/apedec.c if (!s->data) s 1471 libavcodec/apedec.c s->bdsp.bswap_buf((uint32_t *) s->data, (const uint32_t *) buf, s 1473 libavcodec/apedec.c memset(s->data + (buf_size & ~3), 0, buf_size & 3); s 1474 libavcodec/apedec.c s->ptr = s->data; s 1475 libavcodec/apedec.c s->data_end = s->data + buf_size; s 1477 libavcodec/apedec.c nblocks = bytestream_get_be32(&s->ptr); s 1478 libavcodec/apedec.c offset = bytestream_get_be32(&s->ptr); s 1479 libavcodec/apedec.c if (s->fileversion >= 3900) { s 1482 libavcodec/apedec.c av_freep(&s->data); s 1483 libavcodec/apedec.c s->data_size = 0; s 1486 libavcodec/apedec.c if (s->data_end - s->ptr < offset) { s 1490 libavcodec/apedec.c s->ptr += offset; s 1492 libavcodec/apedec.c if ((ret = init_get_bits8(&s->gb, s->ptr, s->data_end - s->ptr)) < 0) s 1494 libavcodec/apedec.c if (s->fileversion > 3800) s 1495 libavcodec/apedec.c skip_bits_long(&s->gb, offset * 8); s 1497 libavcodec/apedec.c skip_bits_long(&s->gb, offset); s 1500 libavcodec/apedec.c if (!nblocks || nblocks > INT_MAX / 2 / sizeof(*s->decoded_buffer) - 8) { s 1507 libavcodec/apedec.c if (init_frame_decoder(s) < 0) { s 1511 libavcodec/apedec.c s->samples = nblocks; s 1514 libavcodec/apedec.c if (!s->data) { s 1519 libavcodec/apedec.c blockstodecode = FFMIN(s->blocks_per_loop, s->samples); s 1522 libavcodec/apedec.c if (s->fileversion < 3930) s 1523 libavcodec/apedec.c blockstodecode = s->samples; s 1526 libavcodec/apedec.c decoded_buffer_size = 2LL * FFALIGN(blockstodecode, 8) * sizeof(*s->decoded_buffer); s 1532 libavcodec/apedec.c s->samples=0; s 1536 libavcodec/apedec.c av_fast_malloc(&s->decoded_buffer, &s->decoded_size, decoded_buffer_size); s 1537 libavcodec/apedec.c if (!s->decoded_buffer) s 1539 libavcodec/apedec.c memset(s->decoded_buffer, 0, decoded_buffer_size); s 1540 libavcodec/apedec.c s->decoded[0] = s->decoded_buffer; s 1541 libavcodec/apedec.c s->decoded[1] = s->decoded_buffer + FFALIGN(blockstodecode, 8); s 1543 libavcodec/apedec.c s->error=0; s 1545 libavcodec/apedec.c if ((s->channels == 1) || (s->frameflags & APE_FRAMECODE_PSEUDO_STEREO)) s 1546 libavcodec/apedec.c ape_unpack_mono(s, blockstodecode); s 1548 libavcodec/apedec.c ape_unpack_stereo(s, blockstodecode); s 1551 libavcodec/apedec.c if (s->error) { s 1552 libavcodec/apedec.c s->samples=0; s 1557 libavcodec/apedec.c switch (s->bps) { s 1559 libavcodec/apedec.c for (ch = 0; ch < s->channels; ch++) { s 1562 libavcodec/apedec.c *sample8++ = (s->decoded[ch][i] + 0x80) & 0xff; s 1566 libavcodec/apedec.c for (ch = 0; ch < s->channels; ch++) { s 1569 libavcodec/apedec.c *sample16++ = s->decoded[ch][i]; s 1573 libavcodec/apedec.c for (ch = 0; ch < s->channels; ch++) { s 1576 libavcodec/apedec.c *sample24++ = s->decoded[ch][i] * 256U; s 1581 libavcodec/apedec.c s->samples -= blockstodecode; s 1584 libavcodec/apedec.c s->fileversion >= 3900 && s->bps < 24) { s 1585 libavcodec/apedec.c uint32_t crc = s->CRC_state; s 1588 libavcodec/apedec.c for (ch = 0; ch < s->channels; ch++) { s 1589 libavcodec/apedec.c uint8_t *smp = frame->data[ch] + (i*(s->bps >> 3)); s 1590 libavcodec/apedec.c crc = av_crc(crc_tab, crc, smp, s->bps >> 3); s 1594 libavcodec/apedec.c if (!s->samples && (~crc >> 1) ^ s->CRC) { s 1601 libavcodec/apedec.c s->CRC_state = crc; s 1606 libavcodec/apedec.c return !s->samples ? avpkt->size : 0; s 1611 libavcodec/apedec.c APEContext *s = avctx->priv_data; s 1612 libavcodec/apedec.c s->samples= 0; s 509 libavcodec/aptx.c AptXContext *s = avctx->priv_data; s 515 libavcodec/aptx.c s->hd = avctx->codec->id == AV_CODEC_ID_APTX_HD; s 516 libavcodec/aptx.c s->block_size = s->hd ? 6 : 4; s 519 libavcodec/aptx.c avctx->frame_size = 256 * s->block_size; s 521 libavcodec/aptx.c if (avctx->frame_size % s->block_size) { s 523 libavcodec/aptx.c "Frame size must be a multiple of %d samples\n", s->block_size); s 528 libavcodec/aptx.c Channel *channel = &s->channels[chan]; s 536 libavcodec/aptx.c ff_af_queue_init(avctx, &s->afq); s 138 libavcodec/aptxdec.c AptXContext *s = avctx->priv_data; s 142 libavcodec/aptxdec.c if (avpkt->size < s->block_size) { s 150 libavcodec/aptxdec.c frame->nb_samples = 4 * avpkt->size / s->block_size; s 154 libavcodec/aptxdec.c for (pos = 0, opos = 0; opos < frame->nb_samples; pos += s->block_size, opos += 4) { s 157 libavcodec/aptxdec.c if (aptx_decode_samples(s, &avpkt->data[pos], samples)) { s 169 libavcodec/aptxdec.c return s->block_size * frame->nb_samples / 4; s 210 libavcodec/aptxenc.c AptXContext *s = avctx->priv_data; s 213 libavcodec/aptxenc.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) s 216 libavcodec/aptxenc.c output_size = s->block_size * frame->nb_samples/4; s 220 libavcodec/aptxenc.c for (pos = 0, ipos = 0; pos < output_size; pos += s->block_size, ipos += 4) { s 227 libavcodec/aptxenc.c aptx_encode_samples(s, samples, avpkt->data + pos); s 230 libavcodec/aptxenc.c ff_af_queue_remove(&s->afq, frame->nb_samples, &avpkt->pts, &avpkt->duration); s 237 libavcodec/aptxenc.c AptXContext *s = avctx->priv_data; s 238 libavcodec/aptxenc.c ff_af_queue_close(&s->afq); s 43 libavcodec/arbc.c ARBCContext *s = avctx->priv_data; s 44 libavcodec/arbc.c GetByteContext *gb = &s->gb; s 79 libavcodec/arbc.c ARBCContext *s = avctx->priv_data; s 80 libavcodec/arbc.c GetByteContext *gb = &s->gb; s 122 libavcodec/arbc.c ARBCContext *s = avctx->priv_data; s 130 libavcodec/arbc.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 131 libavcodec/arbc.c bytestream2_skip(&s->gb, 8); s 132 libavcodec/arbc.c nb_segments = bytestream2_get_le16(&s->gb); s 136 libavcodec/arbc.c if (7 * nb_segments > bytestream2_get_bytes_left(&s->gb)) s 142 libavcodec/arbc.c if (s->prev_frame->data[0]) { s 143 libavcodec/arbc.c ret = av_frame_copy(frame, s->prev_frame); s 152 libavcodec/arbc.c if (bytestream2_get_bytes_left(&s->gb) <= 0) s 155 libavcodec/arbc.c fill = bytestream2_get_byte(&s->gb) << 16; s 156 libavcodec/arbc.c bytestream2_skip(&s->gb, 1); s 157 libavcodec/arbc.c fill |= bytestream2_get_byte(&s->gb) << 8; s 158 libavcodec/arbc.c bytestream2_skip(&s->gb, 1); s 159 libavcodec/arbc.c fill |= bytestream2_get_byte(&s->gb) << 0; s 160 libavcodec/arbc.c bytestream2_skip(&s->gb, 1); s 161 libavcodec/arbc.c resolution_flag = bytestream2_get_byte(&s->gb); s 175 libavcodec/arbc.c av_frame_unref(s->prev_frame); s 176 libavcodec/arbc.c if ((ret = av_frame_ref(s->prev_frame, frame)) < 0) s 188 libavcodec/arbc.c ARBCContext *s = avctx->priv_data; s 192 libavcodec/arbc.c s->prev_frame = av_frame_alloc(); s 193 libavcodec/arbc.c if (!s->prev_frame) s 201 libavcodec/arbc.c ARBCContext *s = avctx->priv_data; s 203 libavcodec/arbc.c av_frame_unref(s->prev_frame); s 208 libavcodec/arbc.c ARBCContext *s = avctx->priv_data; s 210 libavcodec/arbc.c av_frame_free(&s->prev_frame); s 46 libavcodec/arm/aacpsdsp_init_arm.c av_cold void ff_psdsp_init_arm(PSDSPContext *s) s 51 libavcodec/arm/aacpsdsp_init_arm.c s->add_squares = ff_ps_add_squares_neon; s 52 libavcodec/arm/aacpsdsp_init_arm.c s->mul_pair_single = ff_ps_mul_pair_single_neon; s 53 libavcodec/arm/aacpsdsp_init_arm.c s->hybrid_synthesis_deint = ff_ps_hybrid_synthesis_deint_neon; s 54 libavcodec/arm/aacpsdsp_init_arm.c s->hybrid_analysis = ff_ps_hybrid_analysis_neon; s 55 libavcodec/arm/aacpsdsp_init_arm.c s->stereo_interpolate[0] = ff_ps_stereo_interpolate_neon; s 28 libavcodec/arm/fft_fixed_init_arm.c void ff_fft_fixed_calc_neon(FFTContext *s, FFTComplex *z); s 29 libavcodec/arm/fft_fixed_init_arm.c void ff_mdct_fixed_calc_neon(FFTContext *s, FFTSample *o, const FFTSample *i); s 30 libavcodec/arm/fft_fixed_init_arm.c void ff_mdct_fixed_calcw_neon(FFTContext *s, FFTDouble *o, const FFTSample *i); s 32 libavcodec/arm/fft_fixed_init_arm.c av_cold void ff_fft_fixed_init_arm(FFTContext *s) s 37 libavcodec/arm/fft_fixed_init_arm.c s->fft_permutation = FF_FFT_PERM_SWAP_LSBS; s 39 libavcodec/arm/fft_fixed_init_arm.c s->fft_calc = ff_fft_fixed_calc_neon; s 43 libavcodec/arm/fft_fixed_init_arm.c if (!s->inverse && s->nbits >= 3) { s 44 libavcodec/arm/fft_fixed_init_arm.c s->mdct_permutation = FF_MDCT_PERM_INTERLEAVE; s 45 libavcodec/arm/fft_fixed_init_arm.c s->mdct_calc = ff_mdct_fixed_calc_neon; s 46 libavcodec/arm/fft_fixed_init_arm.c s->mdct_calcw = ff_mdct_fixed_calcw_neon; s 27 libavcodec/arm/fft_init_arm.c void ff_fft_calc_vfp(FFTContext *s, FFTComplex *z); s 29 libavcodec/arm/fft_init_arm.c void ff_fft_permute_neon(FFTContext *s, FFTComplex *z); s 30 libavcodec/arm/fft_init_arm.c void ff_fft_calc_neon(FFTContext *s, FFTComplex *z); s 32 libavcodec/arm/fft_init_arm.c void ff_imdct_half_vfp(FFTContext *s, FFTSample *output, const FFTSample *input); s 34 libavcodec/arm/fft_init_arm.c void ff_imdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input); s 35 libavcodec/arm/fft_init_arm.c void ff_imdct_half_neon(FFTContext *s, FFTSample *output, const FFTSample *input); s 36 libavcodec/arm/fft_init_arm.c void ff_mdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input); s 38 libavcodec/arm/fft_init_arm.c av_cold void ff_fft_init_arm(FFTContext *s) s 43 libavcodec/arm/fft_init_arm.c s->fft_calc = ff_fft_calc_vfp; s 45 libavcodec/arm/fft_init_arm.c s->imdct_half = ff_imdct_half_vfp; s 51 libavcodec/arm/fft_init_arm.c s->fft_permute = ff_fft_permute_neon; s 52 libavcodec/arm/fft_init_arm.c s->fft_calc = ff_fft_calc_neon; s 55 libavcodec/arm/fft_init_arm.c s->imdct_calc = ff_imdct_calc_neon; s 56 libavcodec/arm/fft_init_arm.c s->imdct_half = ff_imdct_half_neon; s 57 libavcodec/arm/fft_init_arm.c s->mdct_calc = ff_mdct_calc_neon; s 58 libavcodec/arm/fft_init_arm.c s->mdct_permutation = FF_MDCT_PERM_INTERLEAVE; s 28 libavcodec/arm/me_cmp_init_arm.c int ff_pix_abs16_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, s 30 libavcodec/arm/me_cmp_init_arm.c int ff_pix_abs16_x2_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, s 32 libavcodec/arm/me_cmp_init_arm.c int ff_pix_abs16_y2_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, s 35 libavcodec/arm/me_cmp_init_arm.c int ff_pix_abs8_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, s 38 libavcodec/arm/me_cmp_init_arm.c int ff_sse16_armv6(MpegEncContext *s, uint8_t *blk1, uint8_t *blk2, s 31 libavcodec/arm/mpegaudiodsp_init_arm.c av_cold void ff_mpadsp_init_arm(MPADSPContext *s) s 36 libavcodec/arm/mpegaudiodsp_init_arm.c s->apply_window_fixed = ff_mpadsp_apply_window_fixed_armv6; s 38 libavcodec/arm/mpegvideo_arm.c void ff_dct_unquantize_h263_inter_neon(MpegEncContext *s, int16_t *block, s 40 libavcodec/arm/mpegvideo_arm.c void ff_dct_unquantize_h263_intra_neon(MpegEncContext *s, int16_t *block, s 43 libavcodec/arm/mpegvideo_arm.c av_cold void ff_mpv_common_init_arm(MpegEncContext *s) s 48 libavcodec/arm/mpegvideo_arm.c ff_mpv_common_init_armv5te(s); s 51 libavcodec/arm/mpegvideo_arm.c s->dct_unquantize_h263_intra = ff_dct_unquantize_h263_intra_neon; s 52 libavcodec/arm/mpegvideo_arm.c s->dct_unquantize_h263_inter = ff_dct_unquantize_h263_inter_neon; s 24 libavcodec/arm/mpegvideo_arm.h void ff_mpv_common_init_armv5te(MpegEncContext *s); s 53 libavcodec/arm/mpegvideo_armv5te.c static void dct_unquantize_h263_intra_armv5te(MpegEncContext *s, s 59 libavcodec/arm/mpegvideo_armv5te.c av_assert2(s->block_last_index[n]>=0); s 63 libavcodec/arm/mpegvideo_armv5te.c if (!s->h263_aic) { s 65 libavcodec/arm/mpegvideo_armv5te.c level = block[0] * s->y_dc_scale; s 67 libavcodec/arm/mpegvideo_armv5te.c level = block[0] * s->c_dc_scale; s 73 libavcodec/arm/mpegvideo_armv5te.c if(s->ac_pred) s 76 libavcodec/arm/mpegvideo_armv5te.c nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ]; s 82 libavcodec/arm/mpegvideo_armv5te.c static void dct_unquantize_h263_inter_armv5te(MpegEncContext *s, s 88 libavcodec/arm/mpegvideo_armv5te.c av_assert2(s->block_last_index[n]>=0); s 93 libavcodec/arm/mpegvideo_armv5te.c nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ]; s 98 libavcodec/arm/mpegvideo_armv5te.c av_cold void ff_mpv_common_init_armv5te(MpegEncContext *s) s 100 libavcodec/arm/mpegvideo_armv5te.c s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_armv5te; s 101 libavcodec/arm/mpegvideo_armv5te.c s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_armv5te; s 25 libavcodec/arm/rdft_init_arm.c void ff_rdft_calc_neon(struct RDFTContext *s, FFTSample *z); s 27 libavcodec/arm/rdft_init_arm.c av_cold void ff_rdft_init_arm(RDFTContext *s) s 32 libavcodec/arm/rdft_init_arm.c s->rdft_calc = ff_rdft_calc_neon; s 86 libavcodec/arm/sbcdsp_init_arm.c av_cold void ff_sbcdsp_init_arm(SBCDSPContext *s) s 91 libavcodec/arm/sbcdsp_init_arm.c s->sbc_analyze_4 = ff_sbc_analyze_4_armv6; s 92 libavcodec/arm/sbcdsp_init_arm.c s->sbc_analyze_8 = ff_sbc_analyze_8_armv6; s 96 libavcodec/arm/sbcdsp_init_arm.c s->sbc_analyze_4 = ff_sbc_analyze_4_neon; s 97 libavcodec/arm/sbcdsp_init_arm.c s->sbc_analyze_8 = ff_sbc_analyze_8_neon; s 98 libavcodec/arm/sbcdsp_init_arm.c s->sbc_calc_scalefactors = ff_sbc_calc_scalefactors_neon; s 99 libavcodec/arm/sbcdsp_init_arm.c s->sbc_calc_scalefactors_j = ff_sbc_calc_scalefactors_j_neon; s 100 libavcodec/arm/sbcdsp_init_arm.c if (s->increment != 1) { s 101 libavcodec/arm/sbcdsp_init_arm.c s->sbc_enc_process_input_4s = ff_sbc_enc_process_input_4s_neon; s 102 libavcodec/arm/sbcdsp_init_arm.c s->sbc_enc_process_input_8s = ff_sbc_enc_process_input_8s_neon; s 53 libavcodec/arm/sbrdsp_init_arm.c av_cold void ff_sbrdsp_init_arm(SBRDSPContext *s) s 58 libavcodec/arm/sbrdsp_init_arm.c s->sum64x5 = ff_sbr_sum64x5_neon; s 59 libavcodec/arm/sbrdsp_init_arm.c s->sum_square = ff_sbr_sum_square_neon; s 60 libavcodec/arm/sbrdsp_init_arm.c s->neg_odd_64 = ff_sbr_neg_odd_64_neon; s 61 libavcodec/arm/sbrdsp_init_arm.c s->qmf_pre_shuffle = ff_sbr_qmf_pre_shuffle_neon; s 62 libavcodec/arm/sbrdsp_init_arm.c s->qmf_post_shuffle = ff_sbr_qmf_post_shuffle_neon; s 63 libavcodec/arm/sbrdsp_init_arm.c s->qmf_deint_neg = ff_sbr_qmf_deint_neg_neon; s 64 libavcodec/arm/sbrdsp_init_arm.c s->qmf_deint_bfly = ff_sbr_qmf_deint_bfly_neon; s 65 libavcodec/arm/sbrdsp_init_arm.c s->hf_g_filt = ff_sbr_hf_g_filt_neon; s 66 libavcodec/arm/sbrdsp_init_arm.c s->hf_gen = ff_sbr_hf_gen_neon; s 67 libavcodec/arm/sbrdsp_init_arm.c s->autocorrelate = ff_sbr_autocorrelate_neon; s 68 libavcodec/arm/sbrdsp_init_arm.c s->hf_apply_noise[0] = ff_sbr_hf_apply_noise_0_neon; s 69 libavcodec/arm/sbrdsp_init_arm.c s->hf_apply_noise[1] = ff_sbr_hf_apply_noise_1_neon; s 70 libavcodec/arm/sbrdsp_init_arm.c s->hf_apply_noise[2] = ff_sbr_hf_apply_noise_2_neon; s 71 libavcodec/arm/sbrdsp_init_arm.c s->hf_apply_noise[3] = ff_sbr_hf_apply_noise_3_neon; s 41 libavcodec/arm/synth_filter_init_arm.c av_cold void ff_synth_filter_init_arm(SynthFilterContext *s) s 46 libavcodec/arm/synth_filter_init_arm.c s->synth_filter_float = ff_synth_filter_float_vfp; s 48 libavcodec/arm/synth_filter_init_arm.c s->synth_filter_float = ff_synth_filter_float_neon; s 31 libavcodec/arm/vp6dsp_init_arm.c av_cold void ff_vp6dsp_init_arm(VP56DSPContext *s) s 36 libavcodec/arm/vp6dsp_init_arm.c s->edge_filter_hor = ff_vp6_edge_filter_hor_neon; s 37 libavcodec/arm/vp6dsp_init_arm.c s->edge_filter_ver = ff_vp6_edge_filter_ver_neon; s 143 libavcodec/ass.c FFASSDecoderContext *s = avctx->priv_data; s 145 libavcodec/ass.c s->readorder = 0; s 171 libavcodec/ass_split.c int c, h, m, s, cs; s 172 libavcodec/ass_split.c if ((c = sscanf(buf, "%d:%02d:%02d.%02d", &h, &m, &s, &cs)) == 4) s 173 libavcodec/ass_split.c *(int *)dest = 360000*h + 6000*m + 100*s + cs; s 49 libavcodec/assenc.c ASSEncodeContext *s = avctx->priv_data; s 86 libavcodec/assenc.c snprintf(ass_line, sizeof(ass_line), "%d,%ld,%s", ++s->id, layer, p); s 51 libavcodec/atrac.c float s; s 61 libavcodec/atrac.c s = qmf_48tap_half[i] * 2.0; s 62 libavcodec/atrac.c qmf_window[i] = qmf_window[47 - i] = s; s 608 libavcodec/atrac3plusdsp.c int i, s, sb, t, pos_now, pos_next; s 614 libavcodec/atrac3plusdsp.c for (s = 0; s < ATRAC3P_SUBBAND_SAMPLES; s++) { s 617 libavcodec/atrac3plusdsp.c idct_in[sb] = in[sb * ATRAC3P_SUBBAND_SAMPLES + s]; s 633 libavcodec/atrac3plusdsp.c out[s * 16 + i + 0] += hist->buf1[pos_now][i] * ipqf_coeffs1[t][i] + s 635 libavcodec/atrac3plusdsp.c out[s * 16 + i + 8] += hist->buf1[pos_now][7 - i] * ipqf_coeffs1[t][i + 8] + s 101 libavcodec/atrac9dec.c static inline int parse_gradient(ATRAC9Context *s, ATRAC9BlockData *b, s 134 libavcodec/atrac9dec.c curve = s->alloc_curve[grad_range[1] - grad_range[0] - 1]; s 145 libavcodec/atrac9dec.c static inline void calc_precision(ATRAC9Context *s, ATRAC9BlockData *b, s 196 libavcodec/atrac9dec.c static inline int parse_band_ext(ATRAC9Context *s, ATRAC9BlockData *b, s 251 libavcodec/atrac9dec.c static inline int read_scalefactors(ATRAC9Context *s, ATRAC9BlockData *b, s 261 libavcodec/atrac9dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid scalefactor coding mode!\n"); s 270 libavcodec/atrac9dec.c const VLC *tab = &s->sf_vlc[0][len]; s 302 libavcodec/atrac9dec.c const VLC *tab = &s->sf_vlc[1][len]; s 323 libavcodec/atrac9dec.c const VLC *tab = &s->sf_vlc[0][len]; s 350 libavcodec/atrac9dec.c static inline void calc_codebook_idx(ATRAC9Context *s, ATRAC9BlockData *b, s 360 libavcodec/atrac9dec.c if (s->samplerate_idx > 7) s 394 libavcodec/atrac9dec.c static inline void read_coeffs_coarse(ATRAC9Context *s, ATRAC9BlockData *b, s 397 libavcodec/atrac9dec.c const int max_prec = s->samplerate_idx > 7 ? 1 : 7; s 409 libavcodec/atrac9dec.c const VLC *tab = &s->coeff_vlc[cb][prec][cbi]; s 430 libavcodec/atrac9dec.c static inline void read_coeffs_fine(ATRAC9Context *s, ATRAC9BlockData *b, s 448 libavcodec/atrac9dec.c static inline void dequantize(ATRAC9Context *s, ATRAC9BlockData *b, s 468 libavcodec/atrac9dec.c static inline void apply_intensity_stereo(ATRAC9Context *s, ATRAC9BlockData *b, s 489 libavcodec/atrac9dec.c static inline void apply_scalefactors(ATRAC9Context *s, ATRAC9BlockData *b, s 505 libavcodec/atrac9dec.c static inline void fill_with_noise(ATRAC9Context *s, ATRAC9ChannelData *c, s 511 libavcodec/atrac9dec.c av_bmg_get(&s->lfg, tmp); s 532 libavcodec/atrac9dec.c static inline void apply_band_extension(ATRAC9Context *s, ATRAC9BlockData *b, s 587 libavcodec/atrac9dec.c fill_with_noise(s, c, n_start, n_cnt); s 596 libavcodec/atrac9dec.c fill_with_noise(s, c, g_bins[0], g_bins[3] - g_bins[0]); s 634 libavcodec/atrac9dec.c static int atrac9_decode_block(ATRAC9Context *s, GetBitContext *gb, s 640 libavcodec/atrac9dec.c const int stereo = s->block_config->type[block_idx] == ATRAC9_BLOCK_TYPE_CPE; s 642 libavcodec/atrac9dec.c if (s->block_config->type[block_idx] == ATRAC9_BLOCK_TYPE_LFE) { s 664 libavcodec/atrac9dec.c dequantize (s, b, c); s 665 libavcodec/atrac9dec.c apply_scalefactors(s, b, 0); s 671 libavcodec/atrac9dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid block flags!\n"); s 678 libavcodec/atrac9dec.c const int min_band_count = s->samplerate_idx > 7 ? 1 : 3; s 685 libavcodec/atrac9dec.c if (b->band_count > at9_tab_sri_max_bands[s->samplerate_idx]) { s 686 libavcodec/atrac9dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid band count %i!\n", s 694 libavcodec/atrac9dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid stereo band %i!\n", s 705 libavcodec/atrac9dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid extension band %i!\n", s 714 libavcodec/atrac9dec.c av_log(s->avctx, AV_LOG_ERROR, "invalid block reused!\n"); s 719 libavcodec/atrac9dec.c if (parse_gradient(s, b, gb)) s 736 libavcodec/atrac9dec.c if (parse_band_ext(s, b, gb, stereo)) s 744 libavcodec/atrac9dec.c if (read_scalefactors(s, b, c, gb, i, first_in_pkt)) s 747 libavcodec/atrac9dec.c calc_precision (s, b, c); s 748 libavcodec/atrac9dec.c calc_codebook_idx (s, b, c); s 749 libavcodec/atrac9dec.c read_coeffs_coarse(s, b, c, gb); s 750 libavcodec/atrac9dec.c read_coeffs_fine (s, b, c, gb); s 751 libavcodec/atrac9dec.c dequantize (s, b, c); s 756 libavcodec/atrac9dec.c apply_intensity_stereo(s, b, stereo); s 757 libavcodec/atrac9dec.c apply_scalefactors (s, b, stereo); s 760 libavcodec/atrac9dec.c apply_band_extension (s, b, stereo); s 765 libavcodec/atrac9dec.c const int dst_idx = s->block_config->plane_map[block_idx][i]; s 766 libavcodec/atrac9dec.c const int wsize = 1 << s->frame_log2; s 770 libavcodec/atrac9dec.c s->imdct.imdct_half(&s->imdct, s->temp, c->coeffs); s 771 libavcodec/atrac9dec.c s->fdsp->vector_fmul_window(dst, c->prev_win, s->temp, s 772 libavcodec/atrac9dec.c s->imdct_win, wsize >> 1); s 773 libavcodec/atrac9dec.c memcpy(c->prev_win, s->temp + (wsize >> 1), sizeof(float)*wsize >> 1); s 785 libavcodec/atrac9dec.c ATRAC9Context *s = avctx->priv_data; s 786 libavcodec/atrac9dec.c const int frames = FFMIN(avpkt->size / s->avg_frame_size, s->frame_count); s 788 libavcodec/atrac9dec.c frame->nb_samples = (1 << s->frame_log2) * frames; s 796 libavcodec/atrac9dec.c for (int j = 0; j < s->block_config->count; j++) { s 797 libavcodec/atrac9dec.c ret = atrac9_decode_block(s, &gb, &s->block[j], frame, i, j); s 811 libavcodec/atrac9dec.c ATRAC9Context *s = avctx->priv_data; s 813 libavcodec/atrac9dec.c for (int j = 0; j < s->block_config->count; j++) { s 814 libavcodec/atrac9dec.c ATRAC9BlockData *b = &s->block[j]; s 815 libavcodec/atrac9dec.c const int stereo = s->block_config->type[j] == ATRAC9_BLOCK_TYPE_CPE; s 825 libavcodec/atrac9dec.c ATRAC9Context *s = avctx->priv_data; s 828 libavcodec/atrac9dec.c ff_free_vlc(&s->sf_vlc[0][i]); s 830 libavcodec/atrac9dec.c ff_free_vlc(&s->sf_vlc[1][i]); s 834 libavcodec/atrac9dec.c ff_free_vlc(&s->coeff_vlc[i][j][k]); s 836 libavcodec/atrac9dec.c ff_mdct_end(&s->imdct); s 837 libavcodec/atrac9dec.c av_free(s->fdsp); s 845 libavcodec/atrac9dec.c ATRAC9Context *s = avctx->priv_data; s 848 libavcodec/atrac9dec.c s->avctx = avctx; s 850 libavcodec/atrac9dec.c av_lfg_init(&s->lfg, 0xFBADF00D); s 875 libavcodec/atrac9dec.c s->samplerate_idx = get_bits(&gb, 4); s 876 libavcodec/atrac9dec.c avctx->sample_rate = at9_tab_samplerates[s->samplerate_idx]; s 883 libavcodec/atrac9dec.c s->block_config = &at9_block_layout[block_config_idx]; s 885 libavcodec/atrac9dec.c avctx->channel_layout = s->block_config->channel_layout; s 895 libavcodec/atrac9dec.c s->avg_frame_size = get_bits(&gb, 11) + 1; s 903 libavcodec/atrac9dec.c s->frame_count = 1 << superframe_idx; s 904 libavcodec/atrac9dec.c s->frame_log2 = at9_tab_sri_frame_log2[s->samplerate_idx]; s 906 libavcodec/atrac9dec.c if (ff_mdct_init(&s->imdct, s->frame_log2 + 1, 1, 1.0f / 32768.0f)) s 909 libavcodec/atrac9dec.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 910 libavcodec/atrac9dec.c if (!s->fdsp) s 914 libavcodec/atrac9dec.c for (int i = 0; i < (1 << s->frame_log2); i++) { s 915 libavcodec/atrac9dec.c const int len = 1 << s->frame_log2; s 920 libavcodec/atrac9dec.c s->imdct_win[i] = s_c / ((s_c * s_c) + (e_c * e_c)); s 927 libavcodec/atrac9dec.c s->alloc_curve[i - 1][j] = at9_tab_b_dist[(j * alloc_c_len) / i]; s 933 libavcodec/atrac9dec.c init_vlc(&s->sf_vlc[0][i], 9, hf->size, hf->bits, 1, 1, hf->codes, s 946 libavcodec/atrac9dec.c ff_init_vlc_sparse(&s->sf_vlc[1][i], 9, hf->size, hf->bits, 1, 1, s 955 libavcodec/atrac9dec.c init_vlc(&s->coeff_vlc[i][j][k], 9, hf->size, hf->bits, 1, 1, s 53 libavcodec/av1_frame_split_bsf.c AV1FSplitContext *s = ctx->priv_data; s 54 libavcodec/av1_frame_split_bsf.c CodedBitstreamFragment *td = &s->temporal_unit; s 56 libavcodec/av1_frame_split_bsf.c int split = !!s->buffer_pkt->data; s 58 libavcodec/av1_frame_split_bsf.c if (!s->buffer_pkt->data) { s 61 libavcodec/av1_frame_split_bsf.c ret = ff_bsf_get_packet_ref(ctx, s->buffer_pkt); s 65 libavcodec/av1_frame_split_bsf.c ret = ff_cbs_read_packet(s->cbc, td, s->buffer_pkt); s 83 libavcodec/av1_frame_split_bsf.c s->cur_frame = 0; s 84 libavcodec/av1_frame_split_bsf.c s->cur_frame_idx = s->last_frame_idx = 0; s 85 libavcodec/av1_frame_split_bsf.c s->nb_frames = nb_frames; s 94 libavcodec/av1_frame_split_bsf.c for (i = s->cur_frame_idx; i < td->nb_units; i++) { s 109 libavcodec/av1_frame_split_bsf.c s->last_frame_idx = s->cur_frame_idx; s 110 libavcodec/av1_frame_split_bsf.c s->cur_frame_idx = i + 1; s 111 libavcodec/av1_frame_split_bsf.c s->cur_frame++; s 115 libavcodec/av1_frame_split_bsf.c if (s->cur_frame < s->nb_frames) s 128 libavcodec/av1_frame_split_bsf.c s->last_frame_idx = s->cur_frame_idx; s 129 libavcodec/av1_frame_split_bsf.c s->cur_frame++; s 134 libavcodec/av1_frame_split_bsf.c s->cur_frame < s->nb_frames) { s 135 libavcodec/av1_frame_split_bsf.c s->cur_frame_idx = i + 1; s 150 libavcodec/av1_frame_split_bsf.c s->cur_frame < s->nb_frames) { s 151 libavcodec/av1_frame_split_bsf.c s->cur_frame_idx = i + 1; s 156 libavcodec/av1_frame_split_bsf.c av_assert0(frame && s->cur_frame <= s->nb_frames); s 158 libavcodec/av1_frame_split_bsf.c ret = av_packet_ref(out, s->buffer_pkt); s 162 libavcodec/av1_frame_split_bsf.c out->data = (uint8_t *)td->units[s->last_frame_idx].data; s 167 libavcodec/av1_frame_split_bsf.c s->buffer_pkt->data += size; s 168 libavcodec/av1_frame_split_bsf.c s->buffer_pkt->size -= size; s 173 libavcodec/av1_frame_split_bsf.c if (s->cur_frame == s->nb_frames) { s 174 libavcodec/av1_frame_split_bsf.c av_packet_unref(s->buffer_pkt); s 175 libavcodec/av1_frame_split_bsf.c ff_cbs_fragment_reset(s->cbc, td); s 182 libavcodec/av1_frame_split_bsf.c av_packet_move_ref(out, s->buffer_pkt); s 188 libavcodec/av1_frame_split_bsf.c av_packet_unref(s->buffer_pkt); s 190 libavcodec/av1_frame_split_bsf.c ff_cbs_fragment_reset(s->cbc, td); s 205 libavcodec/av1_frame_split_bsf.c AV1FSplitContext *s = ctx->priv_data; s 206 libavcodec/av1_frame_split_bsf.c CodedBitstreamFragment *td = &s->temporal_unit; s 209 libavcodec/av1_frame_split_bsf.c s->buffer_pkt = av_packet_alloc(); s 210 libavcodec/av1_frame_split_bsf.c if (!s->buffer_pkt) s 213 libavcodec/av1_frame_split_bsf.c ret = ff_cbs_init(&s->cbc, AV_CODEC_ID_AV1, ctx); s 217 libavcodec/av1_frame_split_bsf.c s->cbc->decompose_unit_types = (CodedBitstreamUnitType*)decompose_unit_types; s 218 libavcodec/av1_frame_split_bsf.c s->cbc->nb_decompose_unit_types = FF_ARRAY_ELEMS(decompose_unit_types); s 223 libavcodec/av1_frame_split_bsf.c ret = ff_cbs_read_extradata(s->cbc, td, ctx->par_in); s 227 libavcodec/av1_frame_split_bsf.c ff_cbs_fragment_reset(s->cbc, td); s 234 libavcodec/av1_frame_split_bsf.c AV1FSplitContext *s = ctx->priv_data; s 236 libavcodec/av1_frame_split_bsf.c av_packet_unref(s->buffer_pkt); s 237 libavcodec/av1_frame_split_bsf.c ff_cbs_fragment_reset(s->cbc, &s->temporal_unit); s 242 libavcodec/av1_frame_split_bsf.c AV1FSplitContext *s = ctx->priv_data; s 244 libavcodec/av1_frame_split_bsf.c av_packet_free(&s->buffer_pkt); s 245 libavcodec/av1_frame_split_bsf.c ff_cbs_fragment_free(s->cbc, &s->temporal_unit); s 246 libavcodec/av1_frame_split_bsf.c ff_cbs_close(&s->cbc); s 57 libavcodec/av1_parser.c AV1ParseContext *s = ctx->priv_data; s 58 libavcodec/av1_parser.c CodedBitstreamFragment *td = &s->temporal_unit; s 59 libavcodec/av1_parser.c CodedBitstreamAV1Context *av1 = s->cbc->priv_data; s 71 libavcodec/av1_parser.c s->cbc->log_ctx = avctx; s 73 libavcodec/av1_parser.c if (avctx->extradata_size && !s->parsed_extradata) { s 74 libavcodec/av1_parser.c s->parsed_extradata = 1; s 76 libavcodec/av1_parser.c ret = ff_cbs_read(s->cbc, td, avctx->extradata, avctx->extradata_size); s 81 libavcodec/av1_parser.c ff_cbs_fragment_reset(s->cbc, td); s 84 libavcodec/av1_parser.c ret = ff_cbs_read(s->cbc, td, data, size); s 194 libavcodec/av1_parser.c ff_cbs_fragment_reset(s->cbc, td); s 196 libavcodec/av1_parser.c s->cbc->log_ctx = NULL; s 211 libavcodec/av1_parser.c AV1ParseContext *s = ctx->priv_data; s 214 libavcodec/av1_parser.c ret = ff_cbs_init(&s->cbc, AV_CODEC_ID_AV1, NULL); s 218 libavcodec/av1_parser.c s->cbc->decompose_unit_types = (CodedBitstreamUnitType *)decompose_unit_types; s 219 libavcodec/av1_parser.c s->cbc->nb_decompose_unit_types = FF_ARRAY_ELEMS(decompose_unit_types); s 226 libavcodec/av1_parser.c AV1ParseContext *s = ctx->priv_data; s 228 libavcodec/av1_parser.c ff_cbs_fragment_free(s->cbc, &s->temporal_unit); s 229 libavcodec/av1_parser.c ff_cbs_close(&s->cbc); s 761 libavcodec/avcodec.h void (*draw_horiz_band)(struct AVCodecContext *s, s 778 libavcodec/avcodec.h enum AVPixelFormat (*get_format)(struct AVCodecContext *s, const enum AVPixelFormat * fmt); s 1341 libavcodec/avcodec.h int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int flags); s 2531 libavcodec/avcodec.h void (*decode_mb)(struct MpegEncContext *s); s 2781 libavcodec/avcodec.h int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec); s 2927 libavcodec/avcodec.h int avcodec_default_get_buffer2(AVCodecContext *s, AVFrame *frame, int flags); s 2936 libavcodec/avcodec.h void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height); s 2945 libavcodec/avcodec.h void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, s 3523 libavcodec/avcodec.h int (*parser_init)(AVCodecParserContext *s); s 3526 libavcodec/avcodec.h int (*parser_parse)(AVCodecParserContext *s, s 3530 libavcodec/avcodec.h void (*parser_close)(AVCodecParserContext *s); s 3584 libavcodec/avcodec.h int av_parser_parse2(AVCodecParserContext *s, s 3595 libavcodec/avcodec.h int av_parser_change(AVCodecParserContext *s, s 3599 libavcodec/avcodec.h void av_parser_close(AVCodecParserContext *s); s 3836 libavcodec/avcodec.h enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat * fmt); s 4055 libavcodec/avcodec.h unsigned int av_xiphlacing(unsigned char *s, unsigned int v); s 4125 libavcodec/avcodec.h int avcodec_is_open(AVCodecContext *s); s 30 libavcodec/avfft.c FFTContext *s = av_mallocz(sizeof(*s)); s 32 libavcodec/avfft.c if (s && ff_fft_init(s, nbits, inverse)) s 33 libavcodec/avfft.c av_freep(&s); s 35 libavcodec/avfft.c return s; s 38 libavcodec/avfft.c void av_fft_permute(FFTContext *s, FFTComplex *z) s 40 libavcodec/avfft.c s->fft_permute(s, z); s 43 libavcodec/avfft.c void av_fft_calc(FFTContext *s, FFTComplex *z) s 45 libavcodec/avfft.c s->fft_calc(s, z); s 48 libavcodec/avfft.c av_cold void av_fft_end(FFTContext *s) s 50 libavcodec/avfft.c if (s) { s 51 libavcodec/avfft.c ff_fft_end(s); s 52 libavcodec/avfft.c av_free(s); s 60 libavcodec/avfft.c FFTContext *s = av_malloc(sizeof(*s)); s 62 libavcodec/avfft.c if (s && ff_mdct_init(s, nbits, inverse, scale)) s 63 libavcodec/avfft.c av_freep(&s); s 65 libavcodec/avfft.c return s; s 68 libavcodec/avfft.c void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) s 70 libavcodec/avfft.c s->imdct_calc(s, output, input); s 73 libavcodec/avfft.c void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input) s 75 libavcodec/avfft.c s->imdct_half(s, output, input); s 78 libavcodec/avfft.c void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) s 80 libavcodec/avfft.c s->mdct_calc(s, output, input); s 83 libavcodec/avfft.c av_cold void av_mdct_end(FFTContext *s) s 85 libavcodec/avfft.c if (s) { s 86 libavcodec/avfft.c ff_mdct_end(s); s 87 libavcodec/avfft.c av_free(s); s 97 libavcodec/avfft.c RDFTContext *s = av_malloc(sizeof(*s)); s 99 libavcodec/avfft.c if (s && ff_rdft_init(s, nbits, trans)) s 100 libavcodec/avfft.c av_freep(&s); s 102 libavcodec/avfft.c return s; s 105 libavcodec/avfft.c void av_rdft_calc(RDFTContext *s, FFTSample *data) s 107 libavcodec/avfft.c s->rdft_calc(s, data); s 110 libavcodec/avfft.c av_cold void av_rdft_end(RDFTContext *s) s 112 libavcodec/avfft.c if (s) { s 113 libavcodec/avfft.c ff_rdft_end(s); s 114 libavcodec/avfft.c av_free(s); s 124 libavcodec/avfft.c DCTContext *s = av_malloc(sizeof(*s)); s 126 libavcodec/avfft.c if (s && ff_dct_init(s, nbits, inverse)) s 127 libavcodec/avfft.c av_freep(&s); s 129 libavcodec/avfft.c return s; s 132 libavcodec/avfft.c void av_dct_calc(DCTContext *s, FFTSample *data) s 134 libavcodec/avfft.c s->dct_calc(s, data); s 137 libavcodec/avfft.c av_cold void av_dct_end(DCTContext *s) s 139 libavcodec/avfft.c if (s) { s 140 libavcodec/avfft.c ff_dct_end(s); s 141 libavcodec/avfft.c av_free(s); s 53 libavcodec/avfft.h void av_fft_permute(FFTContext *s, FFTComplex *z); s 59 libavcodec/avfft.h void av_fft_calc(FFTContext *s, FFTComplex *z); s 61 libavcodec/avfft.h void av_fft_end(FFTContext *s); s 64 libavcodec/avfft.h void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); s 65 libavcodec/avfft.h void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); s 66 libavcodec/avfft.h void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); s 67 libavcodec/avfft.h void av_mdct_end(FFTContext *s); s 86 libavcodec/avfft.h void av_rdft_calc(RDFTContext *s, FFTSample *data); s 87 libavcodec/avfft.h void av_rdft_end(RDFTContext *s); s 111 libavcodec/avfft.h void av_dct_calc(DCTContext *s, FFTSample *data); s 112 libavcodec/avfft.h void av_dct_end (DCTContext *s); s 160 libavcodec/avs.c AvsContext *s = avctx->priv_data; s 162 libavcodec/avs.c s->frame = av_frame_alloc(); s 163 libavcodec/avs.c if (!s->frame) s 173 libavcodec/avs.c AvsContext *s = avctx->priv_data; s 174 libavcodec/avs.c av_frame_free(&s->frame); s 65 libavcodec/avs2_parser.c static int avs2_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 69 libavcodec/avs2_parser.c ParseContext *pc = s->priv_data; s 72 libavcodec/avs2_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 1316 libavcodec/bink.c static const int s[64]={ s 1334 libavcodec/bink.c binkb_intra_quant[j][k] = binkb_intra_seed[i] * (int64_t)s[i] * s 1336 libavcodec/bink.c binkb_inter_quant[j][k] = binkb_inter_seed[i] * (int64_t)s[i] * s 71 libavcodec/binkaudio.c BinkAudioContext *s = avctx->priv_data; s 93 libavcodec/binkaudio.c s->version_b = avctx->extradata_size >= 4 && avctx->extradata[3] == 'b'; s 101 libavcodec/binkaudio.c s->channels = 1; s 102 libavcodec/binkaudio.c if (!s->version_b) s 105 libavcodec/binkaudio.c s->channels = avctx->channels; s 109 libavcodec/binkaudio.c s->frame_len = 1 << frame_len_bits; s 110 libavcodec/binkaudio.c s->overlap_len = s->frame_len / 16; s 111 libavcodec/binkaudio.c s->block_size = (s->frame_len - s->overlap_len) * s->channels; s 114 libavcodec/binkaudio.c s->root = 2.0 / (sqrt(s->frame_len) * 32768.0); s 116 libavcodec/binkaudio.c s->root = s->frame_len / (sqrt(s->frame_len) * 32768.0); s 119 libavcodec/binkaudio.c quant_table[i] = expf(i * 0.15289164787221953823f) * s->root; s 123 libavcodec/binkaudio.c for (s->num_bands = 1; s->num_bands < 25; s->num_bands++) s 124 libavcodec/binkaudio.c if (sample_rate_half <= ff_wma_critical_freqs[s->num_bands - 1]) s 127 libavcodec/binkaudio.c s->bands = av_malloc((s->num_bands + 1) * sizeof(*s->bands)); s 128 libavcodec/binkaudio.c if (!s->bands) s 132 libavcodec/binkaudio.c s->bands[0] = 2; s 133 libavcodec/binkaudio.c for (i = 1; i < s->num_bands; i++) s 134 libavcodec/binkaudio.c s->bands[i] = (ff_wma_critical_freqs[i - 1] * s->frame_len / sample_rate_half) & ~1; s 135 libavcodec/binkaudio.c s->bands[s->num_bands] = s->frame_len; s 137 libavcodec/binkaudio.c s->first = 1; s 140 libavcodec/binkaudio.c ff_rdft_init(&s->trans.rdft, frame_len_bits, DFT_C2R); s 142 libavcodec/binkaudio.c ff_dct_init(&s->trans.dct, frame_len_bits, DCT_III); s 146 libavcodec/binkaudio.c s->pkt = av_packet_alloc(); s 147 libavcodec/binkaudio.c if (!s->pkt) s 171 libavcodec/binkaudio.c static int decode_block(BinkAudioContext *s, float **out, int use_dct) s 176 libavcodec/binkaudio.c GetBitContext *gb = &s->gb; s 181 libavcodec/binkaudio.c for (ch = 0; ch < s->channels; ch++) { s 184 libavcodec/binkaudio.c if (s->version_b) { s 187 libavcodec/binkaudio.c coeffs[0] = av_int2float(get_bits_long(gb, 32)) * s->root; s 188 libavcodec/binkaudio.c coeffs[1] = av_int2float(get_bits_long(gb, 32)) * s->root; s 192 libavcodec/binkaudio.c coeffs[0] = get_float(gb) * s->root; s 193 libavcodec/binkaudio.c coeffs[1] = get_float(gb) * s->root; s 196 libavcodec/binkaudio.c if (get_bits_left(gb) < s->num_bands * 8) s 198 libavcodec/binkaudio.c for (i = 0; i < s->num_bands; i++) { s 208 libavcodec/binkaudio.c while (i < s->frame_len) { s 209 libavcodec/binkaudio.c if (s->version_b) { s 221 libavcodec/binkaudio.c j = FFMIN(j, s->frame_len); s 227 libavcodec/binkaudio.c while (s->bands[k] < i) s 231 libavcodec/binkaudio.c if (s->bands[k] == i) s 251 libavcodec/binkaudio.c s->trans.dct.dct_calc(&s->trans.dct, coeffs); s 254 libavcodec/binkaudio.c s->trans.rdft.rdft_calc(&s->trans.rdft, coeffs); s 257 libavcodec/binkaudio.c for (ch = 0; ch < s->channels; ch++) { s 259 libavcodec/binkaudio.c int count = s->overlap_len * s->channels; s 260 libavcodec/binkaudio.c if (!s->first) { s 262 libavcodec/binkaudio.c for (i = 0; i < s->overlap_len; i++, j += s->channels) s 263 libavcodec/binkaudio.c out[ch][i] = (s->previous[ch][i] * (count - j) + s 266 libavcodec/binkaudio.c memcpy(s->previous[ch], &out[ch][s->frame_len - s->overlap_len], s 267 libavcodec/binkaudio.c s->overlap_len * sizeof(*s->previous[ch])); s 270 libavcodec/binkaudio.c s->first = 0; s 277 libavcodec/binkaudio.c BinkAudioContext * s = avctx->priv_data; s 278 libavcodec/binkaudio.c av_freep(&s->bands); s 280 libavcodec/binkaudio.c ff_rdft_end(&s->trans.rdft); s 282 libavcodec/binkaudio.c ff_dct_end(&s->trans.dct); s 284 libavcodec/binkaudio.c av_packet_free(&s->pkt); s 289 libavcodec/binkaudio.c static void get_bits_align32(GetBitContext *s) s 291 libavcodec/binkaudio.c int n = (-get_bits_count(s)) & 31; s 292 libavcodec/binkaudio.c if (n) skip_bits(s, n); s 297 libavcodec/binkaudio.c BinkAudioContext *s = avctx->priv_data; s 298 libavcodec/binkaudio.c GetBitContext *gb = &s->gb; s 301 libavcodec/binkaudio.c if (!s->pkt->data) { s 302 libavcodec/binkaudio.c ret = ff_decode_get_packet(avctx, s->pkt); s 306 libavcodec/binkaudio.c if (s->pkt->size < 4) { s 312 libavcodec/binkaudio.c ret = init_get_bits8(gb, s->pkt->data, s->pkt->size); s 321 libavcodec/binkaudio.c frame->nb_samples = s->frame_len; s 325 libavcodec/binkaudio.c if (decode_block(s, (float **)frame->extended_data, s 333 libavcodec/binkaudio.c av_packet_unref(s->pkt); s 336 libavcodec/binkaudio.c frame->nb_samples = s->block_size / avctx->channels; s 340 libavcodec/binkaudio.c av_packet_unref(s->pkt); s 51 libavcodec/bintext.c XbinContext *s = avctx->priv_data; s 58 libavcodec/bintext.c s->font_height = p[0]; s 59 libavcodec/bintext.c s->flags = p[1]; s 61 libavcodec/bintext.c if(avctx->extradata_size < 2 + (!!(s->flags & BINTEXT_PALETTE))*3*16 s 62 libavcodec/bintext.c + (!!(s->flags & BINTEXT_FONT))*s->font_height*256) { s 66 libavcodec/bintext.c if (!s->font_height) { s 71 libavcodec/bintext.c s->font_height = 8; s 72 libavcodec/bintext.c s->flags = 0; s 75 libavcodec/bintext.c if ((s->flags & BINTEXT_PALETTE)) { s 77 libavcodec/bintext.c s->palette[i] = 0xFF000000 | (AV_RB24(p) << 2) | ((AV_RB24(p) >> 4) & 0x30303); s 82 libavcodec/bintext.c s->palette[i] = 0xFF000000 | ff_cga_palette[i]; s 85 libavcodec/bintext.c if ((s->flags & BINTEXT_FONT)) { s 86 libavcodec/bintext.c s->font = p; s 88 libavcodec/bintext.c switch(s->font_height) { s 90 libavcodec/bintext.c av_log(avctx, AV_LOG_WARNING, "font height %i not supported\n", s->font_height); s 91 libavcodec/bintext.c s->font_height = 8; s 93 libavcodec/bintext.c s->font = avpriv_cga_font; s 96 libavcodec/bintext.c s->font = avpriv_vga16_font; s 100 libavcodec/bintext.c if (avctx->width < FONT_WIDTH || avctx->height < s->font_height) { s 111 libavcodec/bintext.c XbinContext *s = avctx->priv_data; s 112 libavcodec/bintext.c if (s->y < avctx->height - s->font_height) { s 113 libavcodec/bintext.c s->y += s->font_height; s 115 libavcodec/bintext.c memmove(s->frame->data[0], s->frame->data[0] + s->font_height*s->frame->linesize[0], s 116 libavcodec/bintext.c (avctx->height - s->font_height)*s->frame->linesize[0]); s 117 libavcodec/bintext.c memset(s->frame->data[0] + (avctx->height - s->font_height)*s->frame->linesize[0], s 118 libavcodec/bintext.c DEFAULT_BG_COLOR, s->font_height * s->frame->linesize[0]); s 127 libavcodec/bintext.c XbinContext *s = avctx->priv_data; s 128 libavcodec/bintext.c if (s->y > avctx->height - s->font_height) s 130 libavcodec/bintext.c ff_draw_pc_font(s->frame->data[0] + s->y * s->frame->linesize[0] + s->x, s 131 libavcodec/bintext.c s->frame->linesize[0], s->font, s->font_height, c, s 133 libavcodec/bintext.c s->x += FONT_WIDTH; s 134 libavcodec/bintext.c if (s->x > avctx->width - FONT_WIDTH) { s 135 libavcodec/bintext.c s->x = 0; s 136 libavcodec/bintext.c s->y += s->font_height; s 144 libavcodec/bintext.c XbinContext *s = avctx->priv_data; s 150 libavcodec/bintext.c if ((avctx->width / FONT_WIDTH) * (avctx->height / s->font_height) / 256 > buf_size) s 153 libavcodec/bintext.c s->frame = data; s 154 libavcodec/bintext.c s->x = s->y = 0; s 155 libavcodec/bintext.c if ((ret = ff_get_buffer(avctx, s->frame, 0)) < 0) s 157 libavcodec/bintext.c s->frame->pict_type = AV_PICTURE_TYPE_I; s 158 libavcodec/bintext.c s->frame->palette_has_changed = 1; s 159 libavcodec/bintext.c memcpy(s->frame->data[1], s->palette, 16 * 4); s 48 libavcodec/bitstream.c void avpriv_align_put_bits(PutBitContext *s) s 50 libavcodec/bitstream.c put_bits(s, s->bit_left & 7, 0); s 38 libavcodec/bmp_parser.c static int bmp_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 42 libavcodec/bmp_parser.c BMPParseContext *bpc = s->priv_data; s 61 libavcodec/c93.c C93DecoderContext *s = avctx->priv_data; s 64 libavcodec/c93.c s->pictures[0] = av_frame_alloc(); s 65 libavcodec/c93.c s->pictures[1] = av_frame_alloc(); s 66 libavcodec/c93.c if (!s->pictures[0] || !s->pictures[1]) { s 111 libavcodec/cabac_functions.h int s = *state; s 112 libavcodec/cabac_functions.h int RangeLPS= ff_h264_lps_range[2*(c->range&0xC0) + s]; s 121 libavcodec/cabac_functions.h s^=lps_mask; s 122 libavcodec/cabac_functions.h *state= (ff_h264_mlps_state+128)[s]; s 123 libavcodec/cabac_functions.h bit= s&1; s 76 libavcodec/cavs_parser.c static int cavsvideo_parse(AVCodecParserContext *s, s 81 libavcodec/cavs_parser.c ParseContext *pc = s->priv_data; s 84 libavcodec/cavs_parser.c if(s->flags & PARSER_FLAG_COMPLETE_FRAMES){ s 51 libavcodec/cavsdsp.c int s = p0 + q0 + 2; s 54 libavcodec/cavsdsp.c P0 = (P1 + p0 + s) >> 2; s 55 libavcodec/cavsdsp.c P1 = (2*P1 + s) >> 2; s 57 libavcodec/cavsdsp.c P0 = (2*P1 + s) >> 2; s 59 libavcodec/cavsdsp.c Q0 = (Q1 + q0 + s) >> 2; s 60 libavcodec/cavsdsp.c Q1 = (2*Q1 + s) >> 2; s 62 libavcodec/cavsdsp.c Q0 = (2*Q1 + s) >> 2; s 92 libavcodec/cavsdsp.c int s = p0 + q0 + 2; s 95 libavcodec/cavsdsp.c P0 = (P1 + p0 + s) >> 2; s 97 libavcodec/cavsdsp.c P0 = (2*P1 + s) >> 2; s 99 libavcodec/cavsdsp.c Q0 = (Q1 + q0 + s) >> 2; s 101 libavcodec/cavsdsp.c Q0 = (2*Q1 + s) >> 2; s 63 libavcodec/cfhd.c CFHDContext *s = avctx->priv_data; s 66 libavcodec/cfhd.c s->avctx = avctx; s 68 libavcodec/cfhd.c return ff_cfhd_init_vlcs(s); s 71 libavcodec/cfhd.c static void init_plane_defaults(CFHDContext *s) s 73 libavcodec/cfhd.c s->subband_num = 0; s 74 libavcodec/cfhd.c s->level = 0; s 75 libavcodec/cfhd.c s->subband_num_actual = 0; s 78 libavcodec/cfhd.c static void init_peak_table_defaults(CFHDContext *s) s 80 libavcodec/cfhd.c s->peak.level = 0; s 81 libavcodec/cfhd.c s->peak.offset = 0; s 82 libavcodec/cfhd.c memset(&s->peak.base, 0, sizeof(s->peak.base)); s 85 libavcodec/cfhd.c static void init_frame_defaults(CFHDContext *s) s 87 libavcodec/cfhd.c s->coded_width = 0; s 88 libavcodec/cfhd.c s->coded_height = 0; s 89 libavcodec/cfhd.c s->cropped_height = 0; s 90 libavcodec/cfhd.c s->bpc = 10; s 91 libavcodec/cfhd.c s->channel_cnt = 4; s 92 libavcodec/cfhd.c s->subband_cnt = SUBBAND_COUNT; s 93 libavcodec/cfhd.c s->channel_num = 0; s 94 libavcodec/cfhd.c s->lowpass_precision = 16; s 95 libavcodec/cfhd.c s->quantisation = 1; s 96 libavcodec/cfhd.c s->wavelet_depth = 3; s 97 libavcodec/cfhd.c s->pshift = 1; s 98 libavcodec/cfhd.c s->codebook = 0; s 99 libavcodec/cfhd.c s->difference_coding = 0; s 100 libavcodec/cfhd.c s->progressive = 0; s 101 libavcodec/cfhd.c init_plane_defaults(s); s 102 libavcodec/cfhd.c init_peak_table_defaults(s); s 276 libavcodec/cfhd.c static void free_buffers(CFHDContext *s) s 280 libavcodec/cfhd.c for (i = 0; i < FF_ARRAY_ELEMS(s->plane); i++) { s 281 libavcodec/cfhd.c av_freep(&s->plane[i].idwt_buf); s 282 libavcodec/cfhd.c av_freep(&s->plane[i].idwt_tmp); s 285 libavcodec/cfhd.c s->plane[i].subband[j] = NULL; s 288 libavcodec/cfhd.c s->plane[i].l_h[j] = NULL; s 290 libavcodec/cfhd.c s->a_height = 0; s 291 libavcodec/cfhd.c s->a_width = 0; s 296 libavcodec/cfhd.c CFHDContext *s = avctx->priv_data; s 301 libavcodec/cfhd.c if (s->coded_format == AV_PIX_FMT_BAYER_RGGB16) { s 302 libavcodec/cfhd.c s->coded_width *= 2; s 303 libavcodec/cfhd.c s->coded_height *= 2; s 306 libavcodec/cfhd.c if ((ret = ff_set_dimensions(avctx, s->coded_width, s->coded_height)) < 0) s 308 libavcodec/cfhd.c avctx->pix_fmt = s->coded_format; s 310 libavcodec/cfhd.c if ((ret = av_pix_fmt_get_chroma_sub_sample(s->coded_format, s 314 libavcodec/cfhd.c planes = av_pix_fmt_count_planes(s->coded_format); s 315 libavcodec/cfhd.c if (s->coded_format == AV_PIX_FMT_BAYER_RGGB16) { s 328 libavcodec/cfhd.c s->plane[i].width = width; s 329 libavcodec/cfhd.c s->plane[i].height = height; s 330 libavcodec/cfhd.c s->plane[i].stride = stride; s 332 libavcodec/cfhd.c w8 = FFALIGN(s->plane[i].width / 8, 8); s 339 libavcodec/cfhd.c s->plane[i].idwt_buf = s 340 libavcodec/cfhd.c av_mallocz_array(height * stride, sizeof(*s->plane[i].idwt_buf)); s 341 libavcodec/cfhd.c s->plane[i].idwt_tmp = s 342 libavcodec/cfhd.c av_malloc_array(height * stride, sizeof(*s->plane[i].idwt_tmp)); s 343 libavcodec/cfhd.c if (!s->plane[i].idwt_buf || !s->plane[i].idwt_tmp) s 346 libavcodec/cfhd.c s->plane[i].subband[0] = s->plane[i].idwt_buf; s 347 libavcodec/cfhd.c s->plane[i].subband[1] = s->plane[i].idwt_buf + 2 * w8 * h8; s 348 libavcodec/cfhd.c s->plane[i].subband[2] = s->plane[i].idwt_buf + 1 * w8 * h8; s 349 libavcodec/cfhd.c s->plane[i].subband[3] = s->plane[i].idwt_buf + 3 * w8 * h8; s 350 libavcodec/cfhd.c s->plane[i].subband[4] = s->plane[i].idwt_buf + 2 * w4 * h4; s 351 libavcodec/cfhd.c s->plane[i].subband[5] = s->plane[i].idwt_buf + 1 * w4 * h4; s 352 libavcodec/cfhd.c s->plane[i].subband[6] = s->plane[i].idwt_buf + 3 * w4 * h4; s 353 libavcodec/cfhd.c s->plane[i].subband[7] = s->plane[i].idwt_buf + 2 * w2 * h2; s 354 libavcodec/cfhd.c s->plane[i].subband[8] = s->plane[i].idwt_buf + 1 * w2 * h2; s 355 libavcodec/cfhd.c s->plane[i].subband[9] = s->plane[i].idwt_buf + 3 * w2 * h2; s 358 libavcodec/cfhd.c for (k = 0; k < FF_ARRAY_ELEMS(s->plane[i].band[j]); k++) { s 359 libavcodec/cfhd.c s->plane[i].band[j][k].a_width = w8 << j; s 360 libavcodec/cfhd.c s->plane[i].band[j][k].a_height = h8 << j; s 365 libavcodec/cfhd.c s->plane[i].l_h[0] = s->plane[i].idwt_tmp; s 366 libavcodec/cfhd.c s->plane[i].l_h[1] = s->plane[i].idwt_tmp + 2 * w8 * h8; s 368 libavcodec/cfhd.c s->plane[i].l_h[3] = s->plane[i].idwt_tmp; s 369 libavcodec/cfhd.c s->plane[i].l_h[4] = s->plane[i].idwt_tmp + 2 * w4 * h4; s 371 libavcodec/cfhd.c s->plane[i].l_h[6] = s->plane[i].idwt_tmp; s 372 libavcodec/cfhd.c s->plane[i].l_h[7] = s->plane[i].idwt_tmp + 2 * w2 * h2; s 375 libavcodec/cfhd.c s->a_height = s->coded_height; s 376 libavcodec/cfhd.c s->a_width = s->coded_width; s 377 libavcodec/cfhd.c s->a_format = s->coded_format; s 385 libavcodec/cfhd.c CFHDContext *s = avctx->priv_data; s 392 libavcodec/cfhd.c s->coded_format = AV_PIX_FMT_YUV422P10; s 393 libavcodec/cfhd.c init_frame_defaults(s); s 394 libavcodec/cfhd.c planes = av_pix_fmt_count_planes(s->coded_format); s 410 libavcodec/cfhd.c s->progressive = data & 0x0001; s 413 libavcodec/cfhd.c s->coded_width = data; s 416 libavcodec/cfhd.c s->coded_height = data; s 424 libavcodec/cfhd.c s->bpc = data; s 427 libavcodec/cfhd.c s->channel_cnt = data; s 441 libavcodec/cfhd.c s->channel_num = data; s 443 libavcodec/cfhd.c if (s->channel_num >= planes) { s 448 libavcodec/cfhd.c init_plane_defaults(s); s 450 libavcodec/cfhd.c if (s->subband_num != 0 && data == 1) // hack s 451 libavcodec/cfhd.c s->level++; s 453 libavcodec/cfhd.c s->subband_num = data; s 454 libavcodec/cfhd.c if (s->level >= DWT_LEVELS) { s 459 libavcodec/cfhd.c if (s->subband_num > 3) { s 466 libavcodec/cfhd.c s->subband_num_actual = data; s 467 libavcodec/cfhd.c if (s->subband_num_actual >= 10) { s 475 libavcodec/cfhd.c s->quantisation = data; s 478 libavcodec/cfhd.c s->prescale_shift[0] = (data >> 0) & 0x7; s 479 libavcodec/cfhd.c s->prescale_shift[1] = (data >> 3) & 0x7; s 480 libavcodec/cfhd.c s->prescale_shift[2] = (data >> 6) & 0x7; s 484 libavcodec/cfhd.c if (data < 3 || data > s->plane[s->channel_num].band[0][0].a_width) { s 489 libavcodec/cfhd.c s->plane[s->channel_num].band[0][0].width = data; s 490 libavcodec/cfhd.c s->plane[s->channel_num].band[0][0].stride = data; s 493 libavcodec/cfhd.c if (data < 3 || data > s->plane[s->channel_num].band[0][0].a_height) { s 498 libavcodec/cfhd.c s->plane[s->channel_num].band[0][0].height = data; s 510 libavcodec/cfhd.c s->peak.level = 0; s 531 libavcodec/cfhd.c av_log(avctx, AV_LOG_DEBUG, "Highpass width %i channel %i level %i subband %i\n", data, s->channel_num, s->level, s->subband_num); s 537 libavcodec/cfhd.c s->plane[s->channel_num].band[s->level][s->subband_num].width = data; s 538 libavcodec/cfhd.c s->plane[s->channel_num].band[s->level][s->subband_num].stride = FFALIGN(data, 8); s 546 libavcodec/cfhd.c s->plane[s->channel_num].band[s->level][s->subband_num].height = data; s 554 libavcodec/cfhd.c s->plane[s->channel_num].band[s->level][s->subband_num].width = data; s 555 libavcodec/cfhd.c s->plane[s->channel_num].band[s->level][s->subband_num].stride = FFALIGN(data, 8); s 563 libavcodec/cfhd.c s->plane[s->channel_num].band[s->level][s->subband_num].height = data; s 565 libavcodec/cfhd.c s->codebook = data; s 566 libavcodec/cfhd.c av_log(avctx, AV_LOG_DEBUG, "Codebook %i\n", s->codebook); s 568 libavcodec/cfhd.c s->codebook = data & 0xf; s 569 libavcodec/cfhd.c s->difference_coding = (data >> 4) & 1; s 570 libavcodec/cfhd.c av_log(avctx, AV_LOG_DEBUG, "Other codebook? %i\n", s->codebook); s 578 libavcodec/cfhd.c s->bpc = data; s 582 libavcodec/cfhd.c s->coded_format = AV_PIX_FMT_YUV422P10; s 584 libavcodec/cfhd.c s->coded_format = AV_PIX_FMT_BAYER_RGGB16; s 586 libavcodec/cfhd.c s->coded_format = AV_PIX_FMT_GBRP12; s 588 libavcodec/cfhd.c s->coded_format = AV_PIX_FMT_GBRAP12; s 594 libavcodec/cfhd.c planes = data == 2 ? 4 : av_pix_fmt_count_planes(s->coded_format); s 597 libavcodec/cfhd.c s->cropped_height = data; s 599 libavcodec/cfhd.c s->peak.offset &= ~0xffff; s 600 libavcodec/cfhd.c s->peak.offset |= (data & 0xffff); s 601 libavcodec/cfhd.c s->peak.base = gb; s 602 libavcodec/cfhd.c s->peak.level = 0; s 604 libavcodec/cfhd.c s->peak.offset &= 0xffff; s 605 libavcodec/cfhd.c s->peak.offset |= (data & 0xffffU)<<16; s 606 libavcodec/cfhd.c s->peak.base = gb; s 607 libavcodec/cfhd.c s->peak.level = 0; s 608 libavcodec/cfhd.c } else if (tag == -74 && s->peak.offset) { s 609 libavcodec/cfhd.c s->peak.level = data; s 610 libavcodec/cfhd.c bytestream2_seek(&s->peak.base, s->peak.offset - 4, SEEK_CUR); s 615 libavcodec/cfhd.c if (tag == 4 && data == 0x1a4a && s->coded_width && s->coded_height && s 616 libavcodec/cfhd.c s->coded_format != AV_PIX_FMT_NONE) { s 617 libavcodec/cfhd.c if (s->a_width != s->coded_width || s->a_height != s->coded_height || s 618 libavcodec/cfhd.c s->a_format != s->coded_format) { s 619 libavcodec/cfhd.c free_buffers(s); s 621 libavcodec/cfhd.c free_buffers(s); s 625 libavcodec/cfhd.c ret = ff_set_dimensions(avctx, s->coded_width, s->coded_height); s 628 libavcodec/cfhd.c if (s->cropped_height) { s 629 libavcodec/cfhd.c unsigned height = s->cropped_height << (avctx->pix_fmt == AV_PIX_FMT_BAYER_RGGB16); s 640 libavcodec/cfhd.c s->coded_width = 0; s 641 libavcodec/cfhd.c s->coded_height = 0; s 642 libavcodec/cfhd.c s->coded_format = AV_PIX_FMT_NONE; s 645 libavcodec/cfhd.c coeff_data = s->plane[s->channel_num].subband[s->subband_num_actual]; s 648 libavcodec/cfhd.c if (tag == 4 && data == 0xf0f && s->a_width && s->a_height) { s 649 libavcodec/cfhd.c int lowpass_height = s->plane[s->channel_num].band[0][0].height; s 650 libavcodec/cfhd.c int lowpass_width = s->plane[s->channel_num].band[0][0].width; s 651 libavcodec/cfhd.c int lowpass_a_height = s->plane[s->channel_num].band[0][0].a_height; s 652 libavcodec/cfhd.c int lowpass_a_width = s->plane[s->channel_num].band[0][0].a_width; s 667 libavcodec/cfhd.c av_log(avctx, AV_LOG_DEBUG, "Start of lowpass coeffs component %d height:%d, width:%d\n", s->channel_num, lowpass_height, lowpass_width); s 688 libavcodec/cfhd.c if (tag == 55 && s->subband_num_actual != 255 && s->a_width && s->a_height) { s 689 libavcodec/cfhd.c int highpass_height = s->plane[s->channel_num].band[s->level][s->subband_num].height; s 690 libavcodec/cfhd.c int highpass_width = s->plane[s->channel_num].band[s->level][s->subband_num].width; s 691 libavcodec/cfhd.c int highpass_a_width = s->plane[s->channel_num].band[s->level][s->subband_num].a_width; s 692 libavcodec/cfhd.c int highpass_a_height = s->plane[s->channel_num].band[s->level][s->subband_num].a_height; s 693 libavcodec/cfhd.c int highpass_stride = s->plane[s->channel_num].band[s->level][s->subband_num].stride; s 712 libavcodec/cfhd.c av_log(avctx, AV_LOG_DEBUG, "Start subband coeffs plane %i level %i codebook %i expected %i\n", s->channel_num, s->level, s->codebook, expected); s 714 libavcodec/cfhd.c init_get_bits(&s->gb, gb.buffer, bytestream2_get_bytes_left(&gb) * 8); s 716 libavcodec/cfhd.c OPEN_READER(re, &s->gb); s 717 libavcodec/cfhd.c if (!s->codebook) { s 719 libavcodec/cfhd.c UPDATE_CACHE(re, &s->gb); s 720 libavcodec/cfhd.c GET_RL_VLC(level, run, re, &s->gb, s->table_9_rl_vlc, s 732 libavcodec/cfhd.c coeff = dequant_and_decompand(level, s->quantisation, 0); s 738 libavcodec/cfhd.c UPDATE_CACHE(re, &s->gb); s 739 libavcodec/cfhd.c GET_RL_VLC(level, run, re, &s->gb, s->table_18_rl_vlc, s 751 libavcodec/cfhd.c coeff = dequant_and_decompand(level, s->quantisation, s->codebook); s 756 libavcodec/cfhd.c CLOSE_READER(re, &s->gb); s 764 libavcodec/cfhd.c if (s->peak.level) s 765 libavcodec/cfhd.c peak_table(coeff_data - count, &s->peak, count); s 766 libavcodec/cfhd.c if (s->difference_coding) s 767 libavcodec/cfhd.c difference_coding(s->plane[s->channel_num].subband[s->subband_num_actual], highpass_width, highpass_height); s 769 libavcodec/cfhd.c bytes = FFALIGN(AV_CEIL_RSHIFT(get_bits_count(&s->gb), 3), 4); s 778 libavcodec/cfhd.c s->codebook = 0; s 789 libavcodec/cfhd.c if (!s->a_width || !s->a_height || s->a_format == AV_PIX_FMT_NONE || s 790 libavcodec/cfhd.c s->coded_width || s->coded_height || s->coded_format != AV_PIX_FMT_NONE) { s 804 libavcodec/cfhd.c if (!s->progressive) s 811 libavcodec/cfhd.c int lowpass_height = s->plane[plane].band[0][0].height; s 812 libavcodec/cfhd.c int lowpass_width = s->plane[plane].band[0][0].width; s 813 libavcodec/cfhd.c int highpass_stride = s->plane[plane].band[0][1].stride; s 825 libavcodec/cfhd.c if (lowpass_height > s->plane[plane].band[0][0].a_height || lowpass_width > s->plane[plane].band[0][0].a_width || s 826 libavcodec/cfhd.c !highpass_stride || s->plane[plane].band[0][1].width > s->plane[plane].band[0][1].a_width) { s 834 libavcodec/cfhd.c low = s->plane[plane].subband[0]; s 835 libavcodec/cfhd.c high = s->plane[plane].subband[2]; s 836 libavcodec/cfhd.c output = s->plane[plane].l_h[0]; s 844 libavcodec/cfhd.c low = s->plane[plane].subband[1]; s 845 libavcodec/cfhd.c high = s->plane[plane].subband[3]; s 846 libavcodec/cfhd.c output = s->plane[plane].l_h[1]; s 856 libavcodec/cfhd.c low = s->plane[plane].l_h[0]; s 857 libavcodec/cfhd.c high = s->plane[plane].l_h[1]; s 858 libavcodec/cfhd.c output = s->plane[plane].subband[0]; s 865 libavcodec/cfhd.c if (s->bpc == 12) { s 866 libavcodec/cfhd.c output = s->plane[plane].subband[0]; s 876 libavcodec/cfhd.c lowpass_height = s->plane[plane].band[1][1].height; s 877 libavcodec/cfhd.c lowpass_width = s->plane[plane].band[1][1].width; s 878 libavcodec/cfhd.c highpass_stride = s->plane[plane].band[1][1].stride; s 880 libavcodec/cfhd.c if (lowpass_height > s->plane[plane].band[1][1].a_height || lowpass_width > s->plane[plane].band[1][1].a_width || s 881 libavcodec/cfhd.c !highpass_stride || s->plane[plane].band[1][1].width > s->plane[plane].band[1][1].a_width) { s 889 libavcodec/cfhd.c low = s->plane[plane].subband[0]; s 890 libavcodec/cfhd.c high = s->plane[plane].subband[5]; s 891 libavcodec/cfhd.c output = s->plane[plane].l_h[3]; s 899 libavcodec/cfhd.c low = s->plane[plane].subband[4]; s 900 libavcodec/cfhd.c high = s->plane[plane].subband[6]; s 901 libavcodec/cfhd.c output = s->plane[plane].l_h[4]; s 909 libavcodec/cfhd.c low = s->plane[plane].l_h[3]; s 910 libavcodec/cfhd.c high = s->plane[plane].l_h[4]; s 911 libavcodec/cfhd.c output = s->plane[plane].subband[0]; s 919 libavcodec/cfhd.c output = s->plane[plane].subband[0]; s 928 libavcodec/cfhd.c lowpass_height = s->plane[plane].band[2][1].height; s 929 libavcodec/cfhd.c lowpass_width = s->plane[plane].band[2][1].width; s 930 libavcodec/cfhd.c highpass_stride = s->plane[plane].band[2][1].stride; s 932 libavcodec/cfhd.c if (lowpass_height > s->plane[plane].band[2][1].a_height || lowpass_width > s->plane[plane].band[2][1].a_width || s 933 libavcodec/cfhd.c !highpass_stride || s->plane[plane].band[2][1].width > s->plane[plane].band[2][1].a_width) { s 940 libavcodec/cfhd.c if (s->progressive) { s 941 libavcodec/cfhd.c low = s->plane[plane].subband[0]; s 942 libavcodec/cfhd.c high = s->plane[plane].subband[8]; s 943 libavcodec/cfhd.c output = s->plane[plane].l_h[6]; s 951 libavcodec/cfhd.c low = s->plane[plane].subband[7]; s 952 libavcodec/cfhd.c high = s->plane[plane].subband[9]; s 953 libavcodec/cfhd.c output = s->plane[plane].l_h[7]; s 968 libavcodec/cfhd.c low = s->plane[plane].l_h[6]; s 969 libavcodec/cfhd.c high = s->plane[plane].l_h[7]; s 981 libavcodec/cfhd.c horiz_filter_clip_bayer(dst, low, high, lowpass_width, s->bpc); s 983 libavcodec/cfhd.c horiz_filter_clip(dst, low, high, lowpass_width, s->bpc); s 993 libavcodec/cfhd.c low = s->plane[plane].subband[0]; s 994 libavcodec/cfhd.c high = s->plane[plane].subband[7]; s 995 libavcodec/cfhd.c output = s->plane[plane].l_h[6]; s 1003 libavcodec/cfhd.c low = s->plane[plane].subband[8]; s 1004 libavcodec/cfhd.c high = s->plane[plane].subband[9]; s 1005 libavcodec/cfhd.c output = s->plane[plane].l_h[7]; s 1014 libavcodec/cfhd.c low = s->plane[plane].l_h[6]; s 1015 libavcodec/cfhd.c high = s->plane[plane].l_h[7]; s 1038 libavcodec/cfhd.c CFHDContext *s = avctx->priv_data; s 1040 libavcodec/cfhd.c free_buffers(s); s 1042 libavcodec/cfhd.c ff_free_vlc(&s->vlc_9); s 1043 libavcodec/cfhd.c ff_free_vlc(&s->vlc_18); s 119 libavcodec/cfhd.h int ff_cfhd_init_vlcs(CFHDContext *s); s 276 libavcodec/cfhddata.c av_cold int ff_cfhd_init_vlcs(CFHDContext *s) s 306 libavcodec/cfhddata.c ret = init_vlc(&s->vlc_9, VLC_BITS, j, new_cfhd_vlc_len, s 310 libavcodec/cfhddata.c for (i = 0; i < s->vlc_9.table_size; i++) { s 311 libavcodec/cfhddata.c int code = s->vlc_9.table[i][0]; s 312 libavcodec/cfhddata.c int len = s->vlc_9.table[i][1]; s 322 libavcodec/cfhddata.c s->table_9_rl_vlc[i].len = len; s 323 libavcodec/cfhddata.c s->table_9_rl_vlc[i].level = level; s 324 libavcodec/cfhddata.c s->table_9_rl_vlc[i].run = run; s 347 libavcodec/cfhddata.c ret = init_vlc(&s->vlc_18, VLC_BITS, j, new_cfhd_vlc_len, s 351 libavcodec/cfhddata.c av_assert0(s->vlc_18.table_size == 4572); s 353 libavcodec/cfhddata.c for (i = 0; i < s->vlc_18.table_size; i++) { s 354 libavcodec/cfhddata.c int code = s->vlc_18.table[i][0]; s 355 libavcodec/cfhddata.c int len = s->vlc_18.table[i][1]; s 365 libavcodec/cfhddata.c s->table_18_rl_vlc[i].len = len; s 366 libavcodec/cfhddata.c s->table_18_rl_vlc[i].level = level; s 367 libavcodec/cfhddata.c s->table_18_rl_vlc[i].run = run; s 132 libavcodec/cinepak.c static int cinepak_decode_vectors (CinepakContext *s, cvid_strip *strip, s 147 libavcodec/cinepak.c ip0 = ip1 = ip2 = ip3 = s->frame->data[0] + s 148 libavcodec/cinepak.c (s->palette_video?strip->x1:strip->x1*3) + (y * s->frame->linesize[0]); s 149 libavcodec/cinepak.c if(s->avctx->height - y > 1) { s 150 libavcodec/cinepak.c ip1 = ip0 + s->frame->linesize[0]; s 151 libavcodec/cinepak.c if(s->avctx->height - y > 2) { s 152 libavcodec/cinepak.c ip2 = ip1 + s->frame->linesize[0]; s 153 libavcodec/cinepak.c if(s->avctx->height - y > 3) { s 154 libavcodec/cinepak.c ip3 = ip2 + s->frame->linesize[0]; s 189 libavcodec/cinepak.c if (s->palette_video) { s 217 libavcodec/cinepak.c if (s->palette_video) { s 253 libavcodec/cinepak.c if (s->palette_video) { s 266 libavcodec/cinepak.c static int cinepak_decode_strip (CinepakContext *s, s 273 libavcodec/cinepak.c if (strip->x2 > s->width || s 274 libavcodec/cinepak.c strip->y2 > s->height || s 308 libavcodec/cinepak.c return cinepak_decode_vectors (s, strip, chunk_id, s 318 libavcodec/cinepak.c static int cinepak_predecode_check (CinepakContext *s) s 323 libavcodec/cinepak.c num_strips = AV_RB16 (&s->data[8]); s 324 libavcodec/cinepak.c encoded_buf_size = AV_RB24(&s->data[1]); s 326 libavcodec/cinepak.c if (s->size < encoded_buf_size * (int64_t)(100 - s->avctx->discard_damaged_percentage) / 100) s 330 libavcodec/cinepak.c if (s->sega_film_skip_bytes == -1) { s 332 libavcodec/cinepak.c avpriv_request_sample(s->avctx, "encoded_buf_size 0"); s 335 libavcodec/cinepak.c if (encoded_buf_size != s->size && (s->size % encoded_buf_size) != 0) { s 342 libavcodec/cinepak.c if (s->size >= 16 && s 343 libavcodec/cinepak.c (s->data[10] == 0xFE) && s 344 libavcodec/cinepak.c (s->data[11] == 0x00) && s 345 libavcodec/cinepak.c (s->data[12] == 0x00) && s 346 libavcodec/cinepak.c (s->data[13] == 0x06) && s 347 libavcodec/cinepak.c (s->data[14] == 0x00) && s 348 libavcodec/cinepak.c (s->data[15] == 0x00)) s 349 libavcodec/cinepak.c s->sega_film_skip_bytes = 6; s 351 libavcodec/cinepak.c s->sega_film_skip_bytes = 2; s 353 libavcodec/cinepak.c s->sega_film_skip_bytes = 0; s 356 libavcodec/cinepak.c if (s->size < 10 + s->sega_film_skip_bytes + num_strips * 12) s 360 libavcodec/cinepak.c const uint8_t *data = s->data + 10 + s->sega_film_skip_bytes; s 369 libavcodec/cinepak.c static int cinepak_decode (CinepakContext *s) s 371 libavcodec/cinepak.c const uint8_t *eod = (s->data + s->size); s 375 libavcodec/cinepak.c frame_flags = s->data[0]; s 376 libavcodec/cinepak.c num_strips = AV_RB16 (&s->data[8]); s 378 libavcodec/cinepak.c s->data += 10 + s->sega_film_skip_bytes; s 382 libavcodec/cinepak.c s->frame->key_frame = 0; s 385 libavcodec/cinepak.c if ((s->data + 12) > eod) s 388 libavcodec/cinepak.c s->strips[i].id = s->data[0]; s 390 libavcodec/cinepak.c if (!(s->strips[i].y1 = AV_RB16 (&s->data[4]))) s 391 libavcodec/cinepak.c s->strips[i].y2 = (s->strips[i].y1 = y0) + AV_RB16 (&s->data[8]); s 393 libavcodec/cinepak.c s->strips[i].y2 = AV_RB16 (&s->data[8]); s 394 libavcodec/cinepak.c s->strips[i].x1 = AV_RB16 (&s->data[6]); s 395 libavcodec/cinepak.c s->strips[i].x2 = AV_RB16 (&s->data[10]); s 397 libavcodec/cinepak.c if (s->strips[i].id == 0x10) s 398 libavcodec/cinepak.c s->frame->key_frame = 1; s 400 libavcodec/cinepak.c strip_size = AV_RB24 (&s->data[1]) - 12; s 403 libavcodec/cinepak.c s->data += 12; s 404 libavcodec/cinepak.c strip_size = ((s->data + strip_size) > eod) ? (eod - s->data) : strip_size; s 407 libavcodec/cinepak.c memcpy (s->strips[i].v4_codebook, s->strips[i-1].v4_codebook, s 408 libavcodec/cinepak.c sizeof(s->strips[i].v4_codebook)); s 409 libavcodec/cinepak.c memcpy (s->strips[i].v1_codebook, s->strips[i-1].v1_codebook, s 410 libavcodec/cinepak.c sizeof(s->strips[i].v1_codebook)); s 413 libavcodec/cinepak.c result = cinepak_decode_strip (s, &s->strips[i], s->data, strip_size); s 418 libavcodec/cinepak.c s->data += strip_size; s 419 libavcodec/cinepak.c y0 = s->strips[i].y2; s 426 libavcodec/cinepak.c CinepakContext *s = avctx->priv_data; s 428 libavcodec/cinepak.c s->avctx = avctx; s 429 libavcodec/cinepak.c s->width = (avctx->width + 3) & ~3; s 430 libavcodec/cinepak.c s->height = (avctx->height + 3) & ~3; s 432 libavcodec/cinepak.c s->sega_film_skip_bytes = -1; /* uninitialized state */ s 436 libavcodec/cinepak.c s->palette_video = 0; s 439 libavcodec/cinepak.c s->palette_video = 1; s 443 libavcodec/cinepak.c s->frame = av_frame_alloc(); s 444 libavcodec/cinepak.c if (!s->frame) s 456 libavcodec/cinepak.c CinepakContext *s = avctx->priv_data; s 459 libavcodec/cinepak.c s->data = buf; s 460 libavcodec/cinepak.c s->size = buf_size; s 462 libavcodec/cinepak.c if (s->size < 10) s 465 libavcodec/cinepak.c num_strips = AV_RB16 (&s->data[8]); s 468 libavcodec/cinepak.c if (!num_strips && (!s->palette_video || !av_packet_get_side_data(avpkt, AV_PKT_DATA_PALETTE, NULL))) s 471 libavcodec/cinepak.c if ((ret = cinepak_predecode_check(s)) < 0) { s 476 libavcodec/cinepak.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 479 libavcodec/cinepak.c if (s->palette_video) { s 483 libavcodec/cinepak.c s->frame->palette_has_changed = 1; s 484 libavcodec/cinepak.c memcpy(s->pal, pal, AVPALETTE_SIZE); s 490 libavcodec/cinepak.c if ((ret = cinepak_decode(s)) < 0) { s 494 libavcodec/cinepak.c if (s->palette_video) s 495 libavcodec/cinepak.c memcpy (s->frame->data[1], s->pal, AVPALETTE_SIZE); s 497 libavcodec/cinepak.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 508 libavcodec/cinepak.c CinepakContext *s = avctx->priv_data; s 510 libavcodec/cinepak.c av_frame_free(&s->frame); s 156 libavcodec/cinepakenc.c CinepakEncContext *s = avctx->priv_data; s 165 libavcodec/cinepakenc.c if (s->min_min_strips > s->max_max_strips) { s 167 libavcodec/cinepakenc.c s->min_min_strips, s->max_max_strips); s 171 libavcodec/cinepakenc.c if (!(s->last_frame = av_frame_alloc())) s 173 libavcodec/cinepakenc.c if (!(s->best_frame = av_frame_alloc())) s 175 libavcodec/cinepakenc.c if (!(s->scratch_frame = av_frame_alloc())) s 178 libavcodec/cinepakenc.c if (!(s->input_frame = av_frame_alloc())) s 181 libavcodec/cinepakenc.c if (!(s->codebook_input = av_malloc_array((avctx->pix_fmt == AV_PIX_FMT_RGB24 ? 6 : 4) * (avctx->width * avctx->height) >> 2, sizeof(*s->codebook_input)))) s 184 libavcodec/cinepakenc.c if (!(s->codebook_closest = av_malloc_array((avctx->width * avctx->height) >> 2, sizeof(*s->codebook_closest)))) s 188 libavcodec/cinepakenc.c if (!(s->pict_bufs[x] = av_malloc((avctx->pix_fmt == AV_PIX_FMT_RGB24 ? 6 : 4) * (avctx->width * avctx->height) >> 2))) s 199 libavcodec/cinepakenc.c frame_buf_size = CVID_HEADER_SIZE + s->max_max_strips * strip_buf_size; s 201 libavcodec/cinepakenc.c if (!(s->strip_buf = av_malloc(strip_buf_size))) s 204 libavcodec/cinepakenc.c if (!(s->frame_buf = av_malloc(frame_buf_size))) s 207 libavcodec/cinepakenc.c if (!(s->mb = av_malloc_array(mb_count, sizeof(mb_info)))) s 210 libavcodec/cinepakenc.c av_lfg_init(&s->randctx, 1); s 211 libavcodec/cinepakenc.c s->avctx = avctx; s 212 libavcodec/cinepakenc.c s->w = avctx->width; s 213 libavcodec/cinepakenc.c s->h = avctx->height; s 214 libavcodec/cinepakenc.c s->frame_buf_size = frame_buf_size; s 215 libavcodec/cinepakenc.c s->curframe = 0; s 216 libavcodec/cinepakenc.c s->keyint = avctx->keyint_min; s 217 libavcodec/cinepakenc.c s->pix_fmt = avctx->pix_fmt; s 220 libavcodec/cinepakenc.c s->last_frame->data[0] = s->pict_bufs[0]; s 221 libavcodec/cinepakenc.c s->last_frame->linesize[0] = s->w; s 222 libavcodec/cinepakenc.c s->best_frame->data[0] = s->pict_bufs[1]; s 223 libavcodec/cinepakenc.c s->best_frame->linesize[0] = s->w; s 224 libavcodec/cinepakenc.c s->scratch_frame->data[0] = s->pict_bufs[2]; s 225 libavcodec/cinepakenc.c s->scratch_frame->linesize[0] = s->w; s 227 libavcodec/cinepakenc.c if (s->pix_fmt == AV_PIX_FMT_RGB24) { s 228 libavcodec/cinepakenc.c s->last_frame->data[1] = s->last_frame->data[0] + s->w * s->h; s 229 libavcodec/cinepakenc.c s->last_frame->data[2] = s->last_frame->data[1] + ((s->w * s->h) >> 2); s 230 libavcodec/cinepakenc.c s->last_frame->linesize[1] = s 231 libavcodec/cinepakenc.c s->last_frame->linesize[2] = s->w >> 1; s 233 libavcodec/cinepakenc.c s->best_frame->data[1] = s->best_frame->data[0] + s->w * s->h; s 234 libavcodec/cinepakenc.c s->best_frame->data[2] = s->best_frame->data[1] + ((s->w * s->h) >> 2); s 235 libavcodec/cinepakenc.c s->best_frame->linesize[1] = s 236 libavcodec/cinepakenc.c s->best_frame->linesize[2] = s->w >> 1; s 238 libavcodec/cinepakenc.c s->scratch_frame->data[1] = s->scratch_frame->data[0] + s->w * s->h; s 239 libavcodec/cinepakenc.c s->scratch_frame->data[2] = s->scratch_frame->data[1] + ((s->w * s->h) >> 2); s 240 libavcodec/cinepakenc.c s->scratch_frame->linesize[1] = s 241 libavcodec/cinepakenc.c s->scratch_frame->linesize[2] = s->w >> 1; s 243 libavcodec/cinepakenc.c s->input_frame->data[0] = s->pict_bufs[3]; s 244 libavcodec/cinepakenc.c s->input_frame->linesize[0] = s->w; s 245 libavcodec/cinepakenc.c s->input_frame->data[1] = s->input_frame->data[0] + s->w * s->h; s 246 libavcodec/cinepakenc.c s->input_frame->data[2] = s->input_frame->data[1] + ((s->w * s->h) >> 2); s 247 libavcodec/cinepakenc.c s->input_frame->linesize[1] = s 248 libavcodec/cinepakenc.c s->input_frame->linesize[2] = s->w >> 1; s 251 libavcodec/cinepakenc.c s->min_strips = s->min_min_strips; s 252 libavcodec/cinepakenc.c s->max_strips = s->max_max_strips; s 257 libavcodec/cinepakenc.c av_frame_free(&s->last_frame); s 258 libavcodec/cinepakenc.c av_frame_free(&s->best_frame); s 259 libavcodec/cinepakenc.c av_frame_free(&s->scratch_frame); s 261 libavcodec/cinepakenc.c av_frame_free(&s->input_frame); s 262 libavcodec/cinepakenc.c av_freep(&s->codebook_input); s 263 libavcodec/cinepakenc.c av_freep(&s->codebook_closest); s 264 libavcodec/cinepakenc.c av_freep(&s->strip_buf); s 265 libavcodec/cinepakenc.c av_freep(&s->frame_buf); s 266 libavcodec/cinepakenc.c av_freep(&s->mb); s 269 libavcodec/cinepakenc.c av_freep(&s->pict_bufs[x]); s 274 libavcodec/cinepakenc.c static int64_t calculate_mode_score(CinepakEncContext *s, int h, s 281 libavcodec/cinepakenc.c int entry_size = s->pix_fmt == AV_PIX_FMT_RGB24 ? 6 : 4; s 282 libavcodec/cinepakenc.c int mb_count = s->w * h / MB_AREA; s 285 libavcodec/cinepakenc.c int64_t ret = s->lambda * ((info->v1_size ? CHUNK_HEADER_SIZE + info->v1_size * entry_size : 0) + s 292 libavcodec/cinepakenc.c ret += s->lambda * 8 * mb_count; s 296 libavcodec/cinepakenc.c mb = &s->mb[x]; s 311 libavcodec/cinepakenc.c mb = &s->mb[x]; s 313 libavcodec/cinepakenc.c score1 = s->lambda * 9 + FF_LAMBDA_SCALE * (mberr = mb->v1_error); s 315 libavcodec/cinepakenc.c score1 = s->lambda * 33 + FF_LAMBDA_SCALE * (mberr = mb->v4_error); s 320 libavcodec/cinepakenc.c mb = &s->mb[x]; s 321 libavcodec/cinepakenc.c score1 = s->lambda * 9 + FF_LAMBDA_SCALE * mb->v1_error; s 322 libavcodec/cinepakenc.c score2 = s->lambda * 33 + FF_LAMBDA_SCALE * mb->v4_error; s 340 libavcodec/cinepakenc.c mb = &s->mb[x]; s 343 libavcodec/cinepakenc.c score1 = s->lambda * 1 + FF_LAMBDA_SCALE * mb->skip_error; s 347 libavcodec/cinepakenc.c if ((score2 = s->lambda * 10 + FF_LAMBDA_SCALE * mb->v1_error) >= score1) { s 355 libavcodec/cinepakenc.c if ((score3 = s->lambda * 34 + FF_LAMBDA_SCALE * mb->v4_error) >= score1) { s 368 libavcodec/cinepakenc.c mb = &s->mb[x]; s 369 libavcodec/cinepakenc.c score1 = s->lambda * 1 + FF_LAMBDA_SCALE * mb->skip_error; s 370 libavcodec/cinepakenc.c score2 = s->lambda * 10 + FF_LAMBDA_SCALE * mb->v1_error; s 371 libavcodec/cinepakenc.c score3 = s->lambda * 34 + FF_LAMBDA_SCALE * mb->v4_error; s 399 libavcodec/cinepakenc.c static int encode_codebook(CinepakEncContext *s, int *codebook, int size, s 403 libavcodec/cinepakenc.c int x, y, ret, entry_size = s->pix_fmt == AV_PIX_FMT_RGB24 ? 6 : 4; s 408 libavcodec/cinepakenc.c s->pix_fmt == AV_PIX_FMT_RGB24 ? s 447 libavcodec/cinepakenc.c static void get_sub_picture(CinepakEncContext *s, int x, int y, s 454 libavcodec/cinepakenc.c if (s->pix_fmt == AV_PIX_FMT_RGB24) { s 464 libavcodec/cinepakenc.c static void decode_v1_vector(CinepakEncContext *s, uint8_t *data[4], s 467 libavcodec/cinepakenc.c int entry_size = s->pix_fmt == AV_PIX_FMT_RGB24 ? 6 : 4; s 489 libavcodec/cinepakenc.c if (s->pix_fmt == AV_PIX_FMT_RGB24) { s 503 libavcodec/cinepakenc.c static void decode_v4_vector(CinepakEncContext *s, uint8_t *data[4], s 506 libavcodec/cinepakenc.c int i, x, y, entry_size = s->pix_fmt == AV_PIX_FMT_RGB24 ? 6 : 4; s 515 libavcodec/cinepakenc.c if (s->pix_fmt == AV_PIX_FMT_RGB24) { s 523 libavcodec/cinepakenc.c static void copy_mb(CinepakEncContext *s, s 533 libavcodec/cinepakenc.c if (s->pix_fmt == AV_PIX_FMT_RGB24) { s 542 libavcodec/cinepakenc.c static int encode_mode(CinepakEncContext *s, int h, s 547 libavcodec/cinepakenc.c int x, y, z, bits, temp_size, header_ofs, ret = 0, mb_count = s->w * h / MB_AREA; s 559 libavcodec/cinepakenc.c if (info->v4_size || !s->skip_empty_cb) s 560 libavcodec/cinepakenc.c ret += encode_codebook(s, info->v4_codebook, info->v4_size, 0x20, 0x24, buf + ret); s 562 libavcodec/cinepakenc.c if (info->v1_size || !s->skip_empty_cb) s 563 libavcodec/cinepakenc.c ret += encode_codebook(s, info->v1_codebook, info->v1_size, 0x22, 0x26, buf + ret); s 567 libavcodec/cinepakenc.c for (x = 0; x < s->w; x += MB_SIZE, z++) { s 568 libavcodec/cinepakenc.c mb = &s->mb[z]; s 570 libavcodec/cinepakenc.c get_sub_picture(s, x, y, scratch_data, scratch_linesize, s 574 libavcodec/cinepakenc.c get_sub_picture(s, x, y, last_data, last_linesize, s 576 libavcodec/cinepakenc.c copy_mb(s, sub_scratch_data, sub_scratch_linesize, s 579 libavcodec/cinepakenc.c decode_v1_vector(s, sub_scratch_data, sub_scratch_linesize, s 582 libavcodec/cinepakenc.c decode_v4_vector(s, sub_scratch_data, sub_scratch_linesize, s 591 libavcodec/cinepakenc.c buf[ret++] = s->mb[x].v1_vector; s 602 libavcodec/cinepakenc.c if (s->mb[y].best_encoding == ENC_V4) s 609 libavcodec/cinepakenc.c mb = &s->mb[y]; s 629 libavcodec/cinepakenc.c mb = &s->mb[x]; s 688 libavcodec/cinepakenc.c static int compute_mb_distortion(CinepakEncContext *s, s 700 libavcodec/cinepakenc.c if (s->pix_fmt == AV_PIX_FMT_RGB24) { s 715 libavcodec/cinepakenc.c static int quantize(CinepakEncContext *s, int h, uint8_t *data[4], s 720 libavcodec/cinepakenc.c int entry_size = s->pix_fmt == AV_PIX_FMT_RGB24 ? 6 : 4; s 729 libavcodec/cinepakenc.c for (x = 0; x < s->w; x += MB_SIZE, ++mbn) { s 734 libavcodec/cinepakenc.c if (s->mb[mbn].best_encoding != encoding) s 738 libavcodec/cinepakenc.c base = s->codebook_input + i * entry_size; s 780 libavcodec/cinepakenc.c avpriv_init_elbg(s->codebook_input, entry_size, i, codebook, size, 1, s->codebook_closest, &s->randctx); s 781 libavcodec/cinepakenc.c avpriv_do_elbg(s->codebook_input, entry_size, i, codebook, size, 1, s->codebook_closest, &s->randctx); s 793 libavcodec/cinepakenc.c for (x = 0; x < s->w; x += MB_SIZE, j++) { s 794 libavcodec/cinepakenc.c mb_info *mb = &s->mb[j]; s 800 libavcodec/cinepakenc.c get_sub_picture(s, x, y, data, linesize, sub_data, sub_linesize); s 803 libavcodec/cinepakenc.c mb->v1_vector = s->codebook_closest[i]; s 806 libavcodec/cinepakenc.c decode_v1_vector(s, vq_data, vq_linesize, mb->v1_vector, info); s 808 libavcodec/cinepakenc.c mb->v1_error = compute_mb_distortion(s, sub_data, sub_linesize, s 813 libavcodec/cinepakenc.c mb->v4_vector[k] = s->codebook_closest[i + k]; s 816 libavcodec/cinepakenc.c decode_v4_vector(s, vq_data, vq_linesize, mb->v4_vector, info); s 818 libavcodec/cinepakenc.c mb->v4_error = compute_mb_distortion(s, sub_data, sub_linesize, s 830 libavcodec/cinepakenc.c static void calculate_skip_errors(CinepakEncContext *s, int h, s 840 libavcodec/cinepakenc.c for (x = 0; x < s->w; x += MB_SIZE, i++) { s 841 libavcodec/cinepakenc.c get_sub_picture(s, x, y, last_data, last_linesize, s 843 libavcodec/cinepakenc.c get_sub_picture(s, x, y, data, linesize, s 846 libavcodec/cinepakenc.c s->mb[i].skip_error = s 847 libavcodec/cinepakenc.c compute_mb_distortion(s, s 853 libavcodec/cinepakenc.c static void write_strip_header(CinepakEncContext *s, int y, int h, int keyframe, s 868 libavcodec/cinepakenc.c AV_WB16(&buf[10], s->w); s 871 libavcodec/cinepakenc.c static int rd_strip(CinepakEncContext *s, int y, int h, int keyframe, s 886 libavcodec/cinepakenc.c calculate_skip_errors(s, h, last_data, last_linesize, data, linesize, s 906 libavcodec/cinepakenc.c info.v1_size = quantize(s, h, data, linesize, 1, s 920 libavcodec/cinepakenc.c info.v4_size = quantize(s, h, data, linesize, 0, s 930 libavcodec/cinepakenc.c score = calculate_mode_score(s, h, &info, 0, s 934 libavcodec/cinepakenc.c int extra_iterations_limit = s->max_extra_cb_iterations; s 938 libavcodec/cinepakenc.c new_v1_size = quantize(s, h, data, linesize, 1, &info, ENC_V1); s 943 libavcodec/cinepakenc.c new_v4_size = quantize(s, h, data, linesize, 0, &info, ENC_V4); s 951 libavcodec/cinepakenc.c score = calculate_mode_score(s, h, &info, 1, s 959 libavcodec/cinepakenc.c new_v1_size = quantize(s, h, data, linesize, 1, &info, ENC_V1); s 965 libavcodec/cinepakenc.c new_v4_size = quantize(s, h, data, linesize, 0, &info, ENC_V4); s 974 libavcodec/cinepakenc.c best_size = encode_mode(s, h, s 977 libavcodec/cinepakenc.c s->strip_buf + STRIP_HEADER_SIZE); s 979 libavcodec/cinepakenc.c write_strip_header(s, y, h, keyframe, s->strip_buf, best_size); s 986 libavcodec/cinepakenc.c memcpy(buf, s->strip_buf, best_size); s 991 libavcodec/cinepakenc.c static int write_cvid_header(CinepakEncContext *s, unsigned char *buf, s 996 libavcodec/cinepakenc.c AV_WB16(&buf[4], s->w); s 997 libavcodec/cinepakenc.c AV_WB16(&buf[6], s->h); s 1003 libavcodec/cinepakenc.c static int rd_frame(CinepakEncContext *s, const AVFrame *frame, s 1012 libavcodec/cinepakenc.c if (s->pix_fmt == AV_PIX_FMT_RGB24) { s 1015 libavcodec/cinepakenc.c for (y = 0; y < s->h; y += 2) s 1016 libavcodec/cinepakenc.c for (x = 0; x < s->w; x += 2) { s 1021 libavcodec/cinepakenc.c get_sub_picture(s, x, y, s 1022 libavcodec/cinepakenc.c s->input_frame->data, s->input_frame->linesize, s 1068 libavcodec/cinepakenc.c for (num_strips = s->min_strips; num_strips <= s->max_strips && num_strips <= s->h / MB_SIZE; num_strips++) { s 1072 libavcodec/cinepakenc.c for (y = 0, strip = 1; y < s->h; strip++, y = nexty) { s 1075 libavcodec/cinepakenc.c nexty = strip * s->h / num_strips; // <= s->h s 1082 libavcodec/cinepakenc.c av_log(s->avctx, AV_LOG_INFO, "skipping zero height strip %i of %i\n", strip, num_strips); s 1086 libavcodec/cinepakenc.c if (s->pix_fmt == AV_PIX_FMT_RGB24) s 1087 libavcodec/cinepakenc.c get_sub_picture(s, 0, y, s 1088 libavcodec/cinepakenc.c s->input_frame->data, s->input_frame->linesize, s 1091 libavcodec/cinepakenc.c get_sub_picture(s, 0, y, s 1094 libavcodec/cinepakenc.c get_sub_picture(s, 0, y, s 1095 libavcodec/cinepakenc.c s->last_frame->data, s->last_frame->linesize, s 1097 libavcodec/cinepakenc.c get_sub_picture(s, 0, y, s 1098 libavcodec/cinepakenc.c s->scratch_frame->data, s->scratch_frame->linesize, s 1101 libavcodec/cinepakenc.c if ((temp_size = rd_strip(s, y, strip_height, isakeyframe, s 1104 libavcodec/cinepakenc.c s->frame_buf + size + CVID_HEADER_SIZE, s 1114 libavcodec/cinepakenc.c best_size = size + write_cvid_header(s, s->frame_buf, num_strips, size, isakeyframe); s 1116 libavcodec/cinepakenc.c FFSWAP(AVFrame *, s->best_frame, s->scratch_frame); s 1117 libavcodec/cinepakenc.c memcpy(buf, s->frame_buf, best_size); s 1129 libavcodec/cinepakenc.c if (!s->strip_number_delta_range) { s 1130 libavcodec/cinepakenc.c if (best_nstrips == s->max_strips) { // let us try to step up s 1131 libavcodec/cinepakenc.c s->max_strips = best_nstrips + 1; s 1132 libavcodec/cinepakenc.c if (s->max_strips >= s->max_max_strips) s 1133 libavcodec/cinepakenc.c s->max_strips = s->max_max_strips; s 1135 libavcodec/cinepakenc.c s->max_strips = best_nstrips; s 1137 libavcodec/cinepakenc.c s->min_strips = s->max_strips - 1; s 1138 libavcodec/cinepakenc.c if (s->min_strips < s->min_min_strips) s 1139 libavcodec/cinepakenc.c s->min_strips = s->min_min_strips; s 1141 libavcodec/cinepakenc.c s->max_strips = best_nstrips + s->strip_number_delta_range; s 1142 libavcodec/cinepakenc.c if (s->max_strips >= s->max_max_strips) s 1143 libavcodec/cinepakenc.c s->max_strips = s->max_max_strips; s 1144 libavcodec/cinepakenc.c s->min_strips = best_nstrips - s->strip_number_delta_range; s 1145 libavcodec/cinepakenc.c if (s->min_strips < s->min_min_strips) s 1146 libavcodec/cinepakenc.c s->min_strips = s->min_min_strips; s 1155 libavcodec/cinepakenc.c CinepakEncContext *s = avctx->priv_data; s 1158 libavcodec/cinepakenc.c s->lambda = frame->quality ? frame->quality - 1 : 2 * FF_LAMBDA_SCALE; s 1160 libavcodec/cinepakenc.c if ((ret = ff_alloc_packet2(avctx, pkt, s->frame_buf_size, 0)) < 0) s 1162 libavcodec/cinepakenc.c ret = rd_frame(s, frame, (s->curframe == 0), pkt->data, s->frame_buf_size); s 1164 libavcodec/cinepakenc.c if (s->curframe == 0) s 1168 libavcodec/cinepakenc.c FFSWAP(AVFrame *, s->last_frame, s->best_frame); s 1170 libavcodec/cinepakenc.c if (++s->curframe >= s->keyint) s 1171 libavcodec/cinepakenc.c s->curframe = 0; s 1178 libavcodec/cinepakenc.c CinepakEncContext *s = avctx->priv_data; s 1181 libavcodec/cinepakenc.c av_frame_free(&s->last_frame); s 1182 libavcodec/cinepakenc.c av_frame_free(&s->best_frame); s 1183 libavcodec/cinepakenc.c av_frame_free(&s->scratch_frame); s 1185 libavcodec/cinepakenc.c av_frame_free(&s->input_frame); s 1186 libavcodec/cinepakenc.c av_freep(&s->codebook_input); s 1187 libavcodec/cinepakenc.c av_freep(&s->codebook_closest); s 1188 libavcodec/cinepakenc.c av_freep(&s->strip_buf); s 1189 libavcodec/cinepakenc.c av_freep(&s->frame_buf); s 1190 libavcodec/cinepakenc.c av_freep(&s->mb); s 1193 libavcodec/cinepakenc.c av_freep(&s->pict_bufs[x]); s 1057 libavcodec/cook.c int s = 0; s 1089 libavcodec/cook.c q->subpacket[s].cookversion = bytestream2_get_be32(&gb); s 1091 libavcodec/cook.c q->subpacket[s].subbands = bytestream2_get_be16(&gb); s 1093 libavcodec/cook.c q->subpacket[s].js_subband_start = bytestream2_get_be16(&gb); s 1094 libavcodec/cook.c if (q->subpacket[s].js_subband_start >= 51) { s 1095 libavcodec/cook.c av_log(avctx, AV_LOG_ERROR, "js_subband_start %d is too large\n", q->subpacket[s].js_subband_start); s 1098 libavcodec/cook.c q->subpacket[s].js_vlc_bits = bytestream2_get_be16(&gb); s 1101 libavcodec/cook.c q->subpacket[s].samples_per_channel = samples_per_frame / avctx->channels; s 1102 libavcodec/cook.c q->subpacket[s].bits_per_subpacket = avctx->block_align * 8; s 1105 libavcodec/cook.c q->subpacket[s].log2_numvector_size = 5; s 1106 libavcodec/cook.c q->subpacket[s].total_subbands = q->subpacket[s].subbands; s 1107 libavcodec/cook.c q->subpacket[s].num_channels = 1; s 1111 libavcodec/cook.c av_log(avctx, AV_LOG_DEBUG, "subpacket[%i].cookversion=%x\n", s, s 1112 libavcodec/cook.c q->subpacket[s].cookversion); s 1113 libavcodec/cook.c q->subpacket[s].joint_stereo = 0; s 1114 libavcodec/cook.c switch (q->subpacket[s].cookversion) { s 1124 libavcodec/cook.c q->subpacket[s].bits_per_subpdiv = 1; s 1125 libavcodec/cook.c q->subpacket[s].num_channels = 2; s 1136 libavcodec/cook.c q->subpacket[s].total_subbands = q->subpacket[s].subbands + s 1137 libavcodec/cook.c q->subpacket[s].js_subband_start; s 1138 libavcodec/cook.c q->subpacket[s].joint_stereo = 1; s 1139 libavcodec/cook.c q->subpacket[s].num_channels = 2; s 1141 libavcodec/cook.c if (q->subpacket[s].samples_per_channel > 256) { s 1142 libavcodec/cook.c q->subpacket[s].log2_numvector_size = 6; s 1144 libavcodec/cook.c if (q->subpacket[s].samples_per_channel > 512) { s 1145 libavcodec/cook.c q->subpacket[s].log2_numvector_size = 7; s 1150 libavcodec/cook.c channel_mask |= q->subpacket[s].channel_mask = bytestream2_get_be32(&gb); s 1152 libavcodec/cook.c if (av_get_channel_layout_nb_channels(q->subpacket[s].channel_mask) > 1) { s 1153 libavcodec/cook.c q->subpacket[s].total_subbands = q->subpacket[s].subbands + s 1154 libavcodec/cook.c q->subpacket[s].js_subband_start; s 1155 libavcodec/cook.c q->subpacket[s].joint_stereo = 1; s 1156 libavcodec/cook.c q->subpacket[s].num_channels = 2; s 1157 libavcodec/cook.c q->subpacket[s].samples_per_channel = samples_per_frame >> 1; s 1159 libavcodec/cook.c if (q->subpacket[s].samples_per_channel > 256) { s 1160 libavcodec/cook.c q->subpacket[s].log2_numvector_size = 6; s 1162 libavcodec/cook.c if (q->subpacket[s].samples_per_channel > 512) { s 1163 libavcodec/cook.c q->subpacket[s].log2_numvector_size = 7; s 1166 libavcodec/cook.c q->subpacket[s].samples_per_channel = samples_per_frame; s 1171 libavcodec/cook.c q->subpacket[s].cookversion); s 1175 libavcodec/cook.c if (s > 1 && q->subpacket[s].samples_per_channel != q->samples_per_channel) { s 1183 libavcodec/cook.c q->subpacket[s].numvector_size = (1 << q->subpacket[s].log2_numvector_size); s 1186 libavcodec/cook.c if (q->subpacket[s].total_subbands > 53) { s 1191 libavcodec/cook.c if ((q->subpacket[s].js_vlc_bits > 6) || s 1192 libavcodec/cook.c (q->subpacket[s].js_vlc_bits < 2 * q->subpacket[s].joint_stereo)) { s 1194 libavcodec/cook.c q->subpacket[s].js_vlc_bits, 2 * q->subpacket[s].joint_stereo); s 1198 libavcodec/cook.c if (q->subpacket[s].subbands > 50) { s 1202 libavcodec/cook.c if (q->subpacket[s].subbands == 0) { s 1206 libavcodec/cook.c q->subpacket[s].gains1.now = q->subpacket[s].gain_1; s 1207 libavcodec/cook.c q->subpacket[s].gains1.previous = q->subpacket[s].gain_2; s 1208 libavcodec/cook.c q->subpacket[s].gains2.now = q->subpacket[s].gain_3; s 1209 libavcodec/cook.c q->subpacket[s].gains2.previous = q->subpacket[s].gain_4; s 1211 libavcodec/cook.c if (q->num_subpackets + q->subpacket[s].num_channels > q->avctx->channels) { s 1217 libavcodec/cook.c s++; s 1218 libavcodec/cook.c if (s > FFMIN(MAX_SUBPACKETS, avctx->block_align)) { s 41 libavcodec/cook_parser.c CookParseContext *s = s1->priv_data; s 43 libavcodec/cook_parser.c if (!s->duration && s 45 libavcodec/cook_parser.c s->duration = AV_RB16(avctx->extradata + 4) / avctx->channels; s 47 libavcodec/cook_parser.c s1->duration = s->duration; s 194 libavcodec/cpia.c CpiaContext *s = avctx->priv_data; s 207 libavcodec/cpia.c s->frame = av_frame_alloc(); s 208 libavcodec/cpia.c if (!s->frame) s 216 libavcodec/cpia.c CpiaContext *s = avctx->priv_data; s 218 libavcodec/cpia.c av_frame_free(&s->frame); s 47 libavcodec/cyuv.c CyuvDecodeContext *s = avctx->priv_data; s 49 libavcodec/cyuv.c s->avctx = avctx; s 50 libavcodec/cyuv.c s->width = avctx->width; s 52 libavcodec/cyuv.c if (s->width & 0x3) s 54 libavcodec/cyuv.c s->height = avctx->height; s 65 libavcodec/cyuv.c CyuvDecodeContext *s=avctx->priv_data; s 84 libavcodec/cyuv.c int rawsize = s->height * FFALIGN(s->width,2) * 2; s 95 libavcodec/cyuv.c if (buf_size == 48 + s->height * (s->width * 3 / 4)) { s 101 libavcodec/cyuv.c buf_size, 48 + s->height * (s->width * 3 / 4)); s 116 libavcodec/cyuv.c int linesize = FFALIGN(s->width,2) * 2; s 117 libavcodec/cyuv.c y_plane += frame->linesize[0] * s->height; s 126 libavcodec/cyuv.c y_ptr < (s->height * frame->linesize[0]); s 127 libavcodec/cyuv.c y_ptr += frame->linesize[0] - s->width, s 128 libavcodec/cyuv.c u_ptr += frame->linesize[1] - s->width / 4, s 129 libavcodec/cyuv.c v_ptr += frame->linesize[2] - s->width / 4) { s 148 libavcodec/cyuv.c pixel_groups = s->width / 4 - 1; s 68 libavcodec/dca_core.c static int dca_get_vlc(GetBitContext *s, DCAVLC *v, int i) s 70 libavcodec/dca_core.c return get_vlc2(s, v->vlc[i].table, v->vlc[i].bits, v->max_depth) + v->offset; s 73 libavcodec/dca_core.c static void get_array(GetBitContext *s, int32_t *array, int size, int n) s 78 libavcodec/dca_core.c array[i] = get_sbits(s, n); s 82 libavcodec/dca_core.c static int parse_frame_header(DCACoreDecoder *s) s 85 libavcodec/dca_core.c int err = ff_dca_parse_core_frame_header(&h, &s->gb); s 90 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Deficit samples are not supported\n"); s 94 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported number of PCM sample blocks (%d)\n", h.npcmblocks); s 98 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid core frame size (%d bytes)\n", h.frame_size); s 102 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported audio channel arrangement (%d)\n", h.audio_mode); s 106 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid core audio sampling frequency\n"); s 110 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Reserved bit set\n"); s 114 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid low frequency effects flag\n"); s 118 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid source PCM resolution\n"); s 122 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Unknown core frame header error\n"); s 127 libavcodec/dca_core.c s->crc_present = h.crc_present; s 128 libavcodec/dca_core.c s->npcmblocks = h.npcmblocks; s 129 libavcodec/dca_core.c s->frame_size = h.frame_size; s 130 libavcodec/dca_core.c s->audio_mode = h.audio_mode; s 131 libavcodec/dca_core.c s->sample_rate = avpriv_dca_sample_rates[h.sr_code]; s 132 libavcodec/dca_core.c s->bit_rate = ff_dca_bit_rates[h.br_code]; s 133 libavcodec/dca_core.c s->drc_present = h.drc_present; s 134 libavcodec/dca_core.c s->ts_present = h.ts_present; s 135 libavcodec/dca_core.c s->aux_present = h.aux_present; s 136 libavcodec/dca_core.c s->ext_audio_type = h.ext_audio_type; s 137 libavcodec/dca_core.c s->ext_audio_present = h.ext_audio_present; s 138 libavcodec/dca_core.c s->sync_ssf = h.sync_ssf; s 139 libavcodec/dca_core.c s->lfe_present = h.lfe_present; s 140 libavcodec/dca_core.c s->predictor_history = h.predictor_history; s 141 libavcodec/dca_core.c s->filter_perfect = h.filter_perfect; s 142 libavcodec/dca_core.c s->source_pcm_res = ff_dca_bits_per_sample[h.pcmr_code]; s 143 libavcodec/dca_core.c s->es_format = h.pcmr_code & 1; s 144 libavcodec/dca_core.c s->sumdiff_front = h.sumdiff_front; s 145 libavcodec/dca_core.c s->sumdiff_surround = h.sumdiff_surround; s 151 libavcodec/dca_core.c static int parse_coding_header(DCACoreDecoder *s, enum HeaderType header, int xch_base) s 153 libavcodec/dca_core.c int n, ch, nchannels, header_size = 0, header_pos = get_bits_count(&s->gb); s 156 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 162 libavcodec/dca_core.c s->nsubframes = get_bits(&s->gb, 4) + 1; s 165 libavcodec/dca_core.c s->nchannels = get_bits(&s->gb, 3) + 1; s 166 libavcodec/dca_core.c if (s->nchannels != ff_dca_channels[s->audio_mode]) { s 167 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid number of primary audio channels (%d) for audio channel arrangement (%d)\n", s->nchannels, s->audio_mode); s 170 libavcodec/dca_core.c av_assert1(s->nchannels <= DCA_CHANNELS - 2); s 172 libavcodec/dca_core.c s->ch_mask = audio_mode_ch_mask[s->audio_mode]; s 175 libavcodec/dca_core.c if (s->lfe_present) s 176 libavcodec/dca_core.c s->ch_mask |= DCA_SPEAKER_MASK_LFE1; s 180 libavcodec/dca_core.c s->nchannels = ff_dca_channels[s->audio_mode] + 1; s 181 libavcodec/dca_core.c av_assert1(s->nchannels <= DCA_CHANNELS - 1); s 182 libavcodec/dca_core.c s->ch_mask |= DCA_SPEAKER_MASK_Cs; s 187 libavcodec/dca_core.c header_size = get_bits(&s->gb, 7) + 1; s 190 libavcodec/dca_core.c if (s->xxch_crc_present s 191 libavcodec/dca_core.c && ff_dca_check_crc(s->avctx, &s->gb, header_pos, header_pos + header_size * 8)) { s 192 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XXCH channel set header checksum\n"); s 197 libavcodec/dca_core.c nchannels = get_bits(&s->gb, 3) + 1; s 199 libavcodec/dca_core.c avpriv_request_sample(s->avctx, "%d XXCH channels", nchannels); s 202 libavcodec/dca_core.c s->nchannels = ff_dca_channels[s->audio_mode] + nchannels; s 203 libavcodec/dca_core.c av_assert1(s->nchannels <= DCA_CHANNELS); s 206 libavcodec/dca_core.c mask = get_bits_long(&s->gb, s->xxch_mask_nbits - DCA_SPEAKER_Cs); s 207 libavcodec/dca_core.c s->xxch_spkr_mask = mask << DCA_SPEAKER_Cs; s 209 libavcodec/dca_core.c if (av_popcount(s->xxch_spkr_mask) != nchannels) { s 210 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XXCH speaker layout mask (%#x)\n", s->xxch_spkr_mask); s 214 libavcodec/dca_core.c if (s->xxch_core_mask & s->xxch_spkr_mask) { s 215 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "XXCH speaker layout mask (%#x) overlaps with core (%#x)\n", s->xxch_spkr_mask, s->xxch_core_mask); s 220 libavcodec/dca_core.c s->ch_mask = s->xxch_core_mask | s->xxch_spkr_mask; s 223 libavcodec/dca_core.c if (get_bits1(&s->gb)) { s 224 libavcodec/dca_core.c int *coeff_ptr = s->xxch_dmix_coeff; s 227 libavcodec/dca_core.c s->xxch_dmix_embedded = get_bits1(&s->gb); s 230 libavcodec/dca_core.c index = get_bits(&s->gb, 6) * 4 - FF_DCA_DMIXTABLE_OFFSET - 3; s 232 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XXCH downmix scale index (%d)\n", index); s 235 libavcodec/dca_core.c s->xxch_dmix_scale_inv = ff_dca_inv_dmixtable[index]; s 239 libavcodec/dca_core.c mask = get_bits_long(&s->gb, s->xxch_mask_nbits); s 240 libavcodec/dca_core.c if ((mask & s->xxch_core_mask) != mask) { s 241 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XXCH downmix channel mapping mask (%#x)\n", mask); s 244 libavcodec/dca_core.c s->xxch_dmix_mask[ch] = mask; s 249 libavcodec/dca_core.c for (n = 0; n < s->xxch_mask_nbits; n++) { s 250 libavcodec/dca_core.c if (s->xxch_dmix_mask[ch] & (1U << n)) { s 251 libavcodec/dca_core.c int code = get_bits(&s->gb, 7); s 256 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XXCH downmix coefficient index (%d)\n", index); s 267 libavcodec/dca_core.c s->xxch_dmix_embedded = 0; s 274 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 275 libavcodec/dca_core.c s->nsubbands[ch] = get_bits(&s->gb, 5) + 2; s 276 libavcodec/dca_core.c if (s->nsubbands[ch] > DCA_SUBBANDS) { s 277 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid subband activity count\n"); s 283 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) s 284 libavcodec/dca_core.c s->subband_vq_start[ch] = get_bits(&s->gb, 5) + 1; s 287 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 288 libavcodec/dca_core.c if ((n = get_bits(&s->gb, 3)) && header == HEADER_XXCH) s 290 libavcodec/dca_core.c if (n > s->nchannels) { s 291 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid joint intensity coding index\n"); s 294 libavcodec/dca_core.c s->joint_intensity_index[ch] = n; s 298 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) s 299 libavcodec/dca_core.c s->transition_mode_sel[ch] = get_bits(&s->gb, 2); s 302 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 303 libavcodec/dca_core.c s->scale_factor_sel[ch] = get_bits(&s->gb, 3); s 304 libavcodec/dca_core.c if (s->scale_factor_sel[ch] == 7) { s 305 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid scale factor code book\n"); s 311 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 312 libavcodec/dca_core.c s->bit_allocation_sel[ch] = get_bits(&s->gb, 3); s 313 libavcodec/dca_core.c if (s->bit_allocation_sel[ch] == 7) { s 314 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid bit allocation quantizer select\n"); s 321 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) s 322 libavcodec/dca_core.c s->quant_index_sel[ch][n] = get_bits(&s->gb, ff_dca_quant_index_sel_nbits[n]); s 326 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) s 327 libavcodec/dca_core.c if (s->quant_index_sel[ch][n] < ff_dca_quant_index_group_size[n]) s 328 libavcodec/dca_core.c s->scale_factor_adj[ch][n] = ff_dca_scale_factor_adj[get_bits(&s->gb, 2)]; s 334 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, header_pos + header_size * 8)) { s 335 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XXCH channel set header\n"); s 340 libavcodec/dca_core.c if (s->crc_present) s 341 libavcodec/dca_core.c skip_bits(&s->gb, 16); s 347 libavcodec/dca_core.c static inline int parse_scale(DCACoreDecoder *s, int *scale_index, int sel) s 363 libavcodec/dca_core.c *scale_index += dca_get_vlc(&s->gb, &ff_dca_vlc_scale_factor, sel); s 365 libavcodec/dca_core.c *scale_index = get_bits(&s->gb, sel + 1); s 369 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid scale factor index\n"); s 376 libavcodec/dca_core.c static inline int parse_joint_scale(DCACoreDecoder *s, int sel) s 382 libavcodec/dca_core.c scale_index = dca_get_vlc(&s->gb, &ff_dca_vlc_scale_factor, sel); s 384 libavcodec/dca_core.c scale_index = get_bits(&s->gb, sel + 1); s 391 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid joint scale factor index\n"); s 399 libavcodec/dca_core.c static int parse_subframe_header(DCACoreDecoder *s, int sf, s 404 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 409 libavcodec/dca_core.c s->nsubsubframes[sf] = get_bits(&s->gb, 2) + 1; s 412 libavcodec/dca_core.c skip_bits(&s->gb, 3); s 416 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) s 417 libavcodec/dca_core.c for (band = 0; band < s->nsubbands[ch]; band++) s 418 libavcodec/dca_core.c s->prediction_mode[ch][band] = get_bits1(&s->gb); s 421 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) s 422 libavcodec/dca_core.c for (band = 0; band < s->nsubbands[ch]; band++) s 423 libavcodec/dca_core.c if (s->prediction_mode[ch][band]) s 424 libavcodec/dca_core.c s->prediction_vq_index[ch][band] = get_bits(&s->gb, 12); s 427 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 428 libavcodec/dca_core.c int sel = s->bit_allocation_sel[ch]; s 430 libavcodec/dca_core.c for (band = 0; band < s->subband_vq_start[ch]; band++) { s 434 libavcodec/dca_core.c abits = dca_get_vlc(&s->gb, &ff_dca_vlc_bit_allocation, sel); s 436 libavcodec/dca_core.c abits = get_bits(&s->gb, sel - 1); s 439 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid bit allocation index\n"); s 443 libavcodec/dca_core.c s->bit_allocation[ch][band] = abits; s 448 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 450 libavcodec/dca_core.c memset(s->transition_mode[sf][ch], 0, sizeof(s->transition_mode[0][0])); s 453 libavcodec/dca_core.c if (s->nsubsubframes[sf] > 1) { s 454 libavcodec/dca_core.c int sel = s->transition_mode_sel[ch]; s 455 libavcodec/dca_core.c for (band = 0; band < s->subband_vq_start[ch]; band++) s 456 libavcodec/dca_core.c if (s->bit_allocation[ch][band]) s 457 libavcodec/dca_core.c s->transition_mode[sf][ch][band] = dca_get_vlc(&s->gb, &ff_dca_vlc_transition_mode, sel); s 462 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 463 libavcodec/dca_core.c int sel = s->scale_factor_sel[ch]; s 467 libavcodec/dca_core.c for (band = 0; band < s->subband_vq_start[ch]; band++) { s 468 libavcodec/dca_core.c if (s->bit_allocation[ch][band]) { s 469 libavcodec/dca_core.c if ((ret = parse_scale(s, &scale_index, sel)) < 0) s 471 libavcodec/dca_core.c s->scale_factors[ch][band][0] = ret; s 472 libavcodec/dca_core.c if (s->transition_mode[sf][ch][band]) { s 473 libavcodec/dca_core.c if ((ret = parse_scale(s, &scale_index, sel)) < 0) s 475 libavcodec/dca_core.c s->scale_factors[ch][band][1] = ret; s 478 libavcodec/dca_core.c s->scale_factors[ch][band][0] = 0; s 483 libavcodec/dca_core.c for (band = s->subband_vq_start[ch]; band < s->nsubbands[ch]; band++) { s 484 libavcodec/dca_core.c if ((ret = parse_scale(s, &scale_index, sel)) < 0) s 486 libavcodec/dca_core.c s->scale_factors[ch][band][0] = ret; s 491 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 492 libavcodec/dca_core.c if (s->joint_intensity_index[ch]) { s 493 libavcodec/dca_core.c s->joint_scale_sel[ch] = get_bits(&s->gb, 3); s 494 libavcodec/dca_core.c if (s->joint_scale_sel[ch] == 7) { s 495 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid joint scale factor code book\n"); s 502 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 503 libavcodec/dca_core.c int src_ch = s->joint_intensity_index[ch] - 1; s 505 libavcodec/dca_core.c int sel = s->joint_scale_sel[ch]; s 506 libavcodec/dca_core.c for (band = s->nsubbands[ch]; band < s->nsubbands[src_ch]; band++) { s 507 libavcodec/dca_core.c if ((ret = parse_joint_scale(s, sel)) < 0) s 509 libavcodec/dca_core.c s->joint_scale_factors[ch][band] = ret; s 515 libavcodec/dca_core.c if (s->drc_present && header == HEADER_CORE) s 516 libavcodec/dca_core.c skip_bits(&s->gb, 8); s 519 libavcodec/dca_core.c if (s->crc_present) s 520 libavcodec/dca_core.c skip_bits(&s->gb, 16); s 546 libavcodec/dca_core.c static inline int parse_block_codes(DCACoreDecoder *s, int32_t *audio, int abits) s 549 libavcodec/dca_core.c int code1 = get_bits(&s->gb, block_code_nbits[abits - 1]); s 550 libavcodec/dca_core.c int code2 = get_bits(&s->gb, block_code_nbits[abits - 1]); s 555 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Failed to decode block code(s)\n"); s 562 libavcodec/dca_core.c static inline int parse_huffman_codes(DCACoreDecoder *s, int32_t *audio, int abits, int sel) s 568 libavcodec/dca_core.c audio[i] = dca_get_vlc(&s->gb, &ff_dca_vlc_quant_index[abits - 1], sel); s 573 libavcodec/dca_core.c static inline int extract_audio(DCACoreDecoder *s, int32_t *audio, int abits, int ch) s 584 libavcodec/dca_core.c int sel = s->quant_index_sel[ch][abits - 1]; s 587 libavcodec/dca_core.c return parse_huffman_codes(s, audio, abits, sel); s 591 libavcodec/dca_core.c return parse_block_codes(s, audio, abits); s 596 libavcodec/dca_core.c get_array(&s->gb, audio, DCA_SUBBAND_SAMPLES, abits - 3); s 621 libavcodec/dca_core.c static int parse_subframe_audio(DCACoreDecoder *s, int sf, enum HeaderType header, s 628 libavcodec/dca_core.c int nsamples = s->nsubsubframes[sf] * DCA_SUBBAND_SAMPLES; s 629 libavcodec/dca_core.c if (*sub_pos + nsamples > s->npcmblocks) { s 630 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Subband sample buffer overflow\n"); s 634 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 638 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 641 libavcodec/dca_core.c for (band = s->subband_vq_start[ch]; band < s->nsubbands[ch]; band++) s 643 libavcodec/dca_core.c vq_index[band] = get_bits(&s->gb, 10); s 645 libavcodec/dca_core.c if (s->subband_vq_start[ch] < s->nsubbands[ch]) { s 646 libavcodec/dca_core.c s->dcadsp->decode_hf(s->subband_samples[ch], vq_index, s 647 libavcodec/dca_core.c ff_dca_high_freq_vq, s->scale_factors[ch], s 648 libavcodec/dca_core.c s->subband_vq_start[ch], s->nsubbands[ch], s 654 libavcodec/dca_core.c if (s->lfe_present && header == HEADER_CORE) { s 658 libavcodec/dca_core.c int nlfesamples = 2 * s->lfe_present * s->nsubsubframes[sf]; s 662 libavcodec/dca_core.c get_array(&s->gb, audio, nlfesamples, 8); s 665 libavcodec/dca_core.c index = get_bits(&s->gb, 8); s 667 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid LFE scale factor index\n"); s 679 libavcodec/dca_core.c s->lfe_samples[ofs] = clip23(audio[n] * scale >> 4); s 686 libavcodec/dca_core.c for (ssf = 0, ofs = *sub_pos; ssf < s->nsubsubframes[sf]; ssf++) { s 687 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 688 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 692 libavcodec/dca_core.c for (band = 0; band < s->subband_vq_start[ch]; band++) { s 693 libavcodec/dca_core.c int ret, trans_ssf, abits = s->bit_allocation[ch][band]; s 697 libavcodec/dca_core.c if ((ret = extract_audio(s, audio, abits, ch)) < 0) s 702 libavcodec/dca_core.c if (s->bit_rate == 3) s 708 libavcodec/dca_core.c trans_ssf = s->transition_mode[sf][ch][band]; s 712 libavcodec/dca_core.c scale = s->scale_factors[ch][band][0]; s 714 libavcodec/dca_core.c scale = s->scale_factors[ch][band][1]; s 718 libavcodec/dca_core.c int64_t adj = s->scale_factor_adj[ch][abits - 1]; s 722 libavcodec/dca_core.c ff_dca_core_dequantize(s->subband_samples[ch][band] + ofs, s 728 libavcodec/dca_core.c if ((ssf == s->nsubsubframes[sf] - 1 || s->sync_ssf) && get_bits(&s->gb, 16) != 0xffff) { s 729 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "DSYNC check failed\n"); s 737 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 738 libavcodec/dca_core.c inverse_adpcm(s->subband_samples[ch], s->prediction_vq_index[ch], s 739 libavcodec/dca_core.c s->prediction_mode[ch], 0, s->nsubbands[ch], s 744 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 745 libavcodec/dca_core.c int src_ch = s->joint_intensity_index[ch] - 1; s 747 libavcodec/dca_core.c s->dcadsp->decode_joint(s->subband_samples[ch], s->subband_samples[src_ch], s 748 libavcodec/dca_core.c s->joint_scale_factors[ch], s->nsubbands[ch], s 749 libavcodec/dca_core.c s->nsubbands[src_ch], *sub_pos, nsamples); s 758 libavcodec/dca_core.c static void erase_adpcm_history(DCACoreDecoder *s) s 766 libavcodec/dca_core.c AV_ZERO128(s->subband_samples[ch][band] - DCA_ADPCM_COEFFS); s 771 libavcodec/dca_core.c static int alloc_sample_buffer(DCACoreDecoder *s) s 773 libavcodec/dca_core.c int nchsamples = DCA_ADPCM_COEFFS + s->npcmblocks; s 775 libavcodec/dca_core.c int nlfesamples = DCA_LFE_HISTORY + s->npcmblocks / 2; s 776 libavcodec/dca_core.c unsigned int size = s->subband_size; s 780 libavcodec/dca_core.c av_fast_mallocz(&s->subband_buffer, &s->subband_size, s 782 libavcodec/dca_core.c if (!s->subband_buffer) s 785 libavcodec/dca_core.c if (size != s->subband_size) { s 788 libavcodec/dca_core.c s->subband_samples[ch][band] = s->subband_buffer + s 790 libavcodec/dca_core.c s->lfe_samples = s->subband_buffer + nframesamples; s 793 libavcodec/dca_core.c if (!s->predictor_history) s 794 libavcodec/dca_core.c erase_adpcm_history(s); s 799 libavcodec/dca_core.c static int parse_frame_data(DCACoreDecoder *s, enum HeaderType header, int xch_base) s 803 libavcodec/dca_core.c if ((ret = parse_coding_header(s, header, xch_base)) < 0) s 806 libavcodec/dca_core.c for (sf = 0, sub_pos = 0, lfe_pos = DCA_LFE_HISTORY; sf < s->nsubframes; sf++) { s 807 libavcodec/dca_core.c if ((ret = parse_subframe_header(s, sf, header, xch_base)) < 0) s 809 libavcodec/dca_core.c if ((ret = parse_subframe_audio(s, sf, header, xch_base, &sub_pos, &lfe_pos)) < 0) s 813 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 815 libavcodec/dca_core.c int nsubbands = s->nsubbands[ch]; s 816 libavcodec/dca_core.c if (s->joint_intensity_index[ch]) s 817 libavcodec/dca_core.c nsubbands = FFMAX(nsubbands, s->nsubbands[s->joint_intensity_index[ch] - 1]); s 821 libavcodec/dca_core.c int32_t *samples = s->subband_samples[ch][band] - DCA_ADPCM_COEFFS; s 822 libavcodec/dca_core.c AV_COPY128(samples, samples + s->npcmblocks); s 827 libavcodec/dca_core.c int32_t *samples = s->subband_samples[ch][band] - DCA_ADPCM_COEFFS; s 828 libavcodec/dca_core.c memset(samples, 0, (DCA_ADPCM_COEFFS + s->npcmblocks) * sizeof(int32_t)); s 837 libavcodec/dca_core.c static int parse_xch_frame(DCACoreDecoder *s) s 841 libavcodec/dca_core.c if (s->ch_mask & DCA_SPEAKER_MASK_Cs) { s 842 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "XCH with Cs speaker already present\n"); s 846 libavcodec/dca_core.c if ((ret = parse_frame_data(s, HEADER_XCH, s->nchannels)) < 0) s 850 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, s->frame_size * 8)) { s 851 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XCH frame\n"); s 858 libavcodec/dca_core.c static int parse_xxch_frame(DCACoreDecoder *s) s 861 libavcodec/dca_core.c int ret, mask, header_size, header_pos = get_bits_count(&s->gb); s 864 libavcodec/dca_core.c if (get_bits_long(&s->gb, 32) != DCA_SYNCWORD_XXCH) { s 865 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XXCH sync word\n"); s 870 libavcodec/dca_core.c header_size = get_bits(&s->gb, 6) + 1; s 873 libavcodec/dca_core.c if (ff_dca_check_crc(s->avctx, &s->gb, header_pos + 32, header_pos + header_size * 8)) { s 874 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XXCH frame header checksum\n"); s 879 libavcodec/dca_core.c s->xxch_crc_present = get_bits1(&s->gb); s 882 libavcodec/dca_core.c s->xxch_mask_nbits = get_bits(&s->gb, 5) + 1; s 883 libavcodec/dca_core.c if (s->xxch_mask_nbits <= DCA_SPEAKER_Cs) { s 884 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid number of bits for XXCH speaker mask (%d)\n", s->xxch_mask_nbits); s 889 libavcodec/dca_core.c xxch_nchsets = get_bits(&s->gb, 2) + 1; s 891 libavcodec/dca_core.c avpriv_request_sample(s->avctx, "%d XXCH channel sets", xxch_nchsets); s 896 libavcodec/dca_core.c xxch_frame_size = get_bits(&s->gb, 14) + 1; s 899 libavcodec/dca_core.c s->xxch_core_mask = get_bits_long(&s->gb, s->xxch_mask_nbits); s 902 libavcodec/dca_core.c mask = s->ch_mask; s 904 libavcodec/dca_core.c if ((mask & DCA_SPEAKER_MASK_Ls) && (s->xxch_core_mask & DCA_SPEAKER_MASK_Lss)) s 907 libavcodec/dca_core.c if ((mask & DCA_SPEAKER_MASK_Rs) && (s->xxch_core_mask & DCA_SPEAKER_MASK_Rss)) s 910 libavcodec/dca_core.c if (mask != s->xxch_core_mask) { s 911 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "XXCH core speaker activity mask (%#x) disagrees with core (%#x)\n", s->xxch_core_mask, mask); s 918 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, header_pos + header_size * 8)) { s 919 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XXCH frame header\n"); s 924 libavcodec/dca_core.c if ((ret = parse_frame_data(s, HEADER_XXCH, s->nchannels)) < 0) s 927 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, header_pos + header_size * 8 + xxch_frame_size * 8)) { s 928 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XXCH channel set\n"); s 935 libavcodec/dca_core.c static int parse_xbr_subframe(DCACoreDecoder *s, int xbr_base_ch, int xbr_nchannels, s 945 libavcodec/dca_core.c if (*sub_pos + s->nsubsubframes[sf] * DCA_SUBBAND_SAMPLES > s->npcmblocks) { s 946 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Subband sample buffer overflow\n"); s 950 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 955 libavcodec/dca_core.c xbr_nabits[ch] = get_bits(&s->gb, 2) + 2; s 960 libavcodec/dca_core.c xbr_bit_allocation[ch][band] = get_bits(&s->gb, xbr_nabits[ch]); s 962 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XBR bit allocation index\n"); s 970 libavcodec/dca_core.c xbr_scale_nbits[ch] = get_bits(&s->gb, 3); s 972 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid number of bits for XBR scale factor index\n"); s 983 libavcodec/dca_core.c if (s->scale_factor_sel[ch] > 5) { s 995 libavcodec/dca_core.c int scale_index = get_bits(&s->gb, xbr_scale_nbits[ch]); s 997 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XBR scale factor index\n"); s 1001 libavcodec/dca_core.c if (xbr_transition_mode && s->transition_mode[sf][ch][band]) { s 1002 libavcodec/dca_core.c scale_index = get_bits(&s->gb, xbr_scale_nbits[ch]); s 1004 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XBR scale factor index\n"); s 1014 libavcodec/dca_core.c for (ssf = 0, ofs = *sub_pos; ssf < s->nsubsubframes[sf]; ssf++) { s 1016 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 1026 libavcodec/dca_core.c get_array(&s->gb, audio, DCA_SUBBAND_SAMPLES, abits - 3); s 1029 libavcodec/dca_core.c if ((ret = parse_block_codes(s, audio, abits)) < 0) s 1041 libavcodec/dca_core.c trans_ssf = s->transition_mode[sf][ch][band]; s 1051 libavcodec/dca_core.c ff_dca_core_dequantize(s->subband_samples[ch][band] + ofs, s 1057 libavcodec/dca_core.c if ((ssf == s->nsubsubframes[sf] - 1 || s->sync_ssf) && get_bits(&s->gb, 16) != 0xffff) { s 1058 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "XBR-DSYNC check failed\n"); s 1070 libavcodec/dca_core.c static int parse_xbr_frame(DCACoreDecoder *s) s 1076 libavcodec/dca_core.c int i, ch1, ch2, ret, header_size, header_pos = get_bits_count(&s->gb); s 1079 libavcodec/dca_core.c if (get_bits_long(&s->gb, 32) != DCA_SYNCWORD_XBR) { s 1080 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XBR sync word\n"); s 1085 libavcodec/dca_core.c header_size = get_bits(&s->gb, 6) + 1; s 1088 libavcodec/dca_core.c if (ff_dca_check_crc(s->avctx, &s->gb, header_pos + 32, header_pos + header_size * 8)) { s 1089 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XBR frame header checksum\n"); s 1094 libavcodec/dca_core.c xbr_nchsets = get_bits(&s->gb, 2) + 1; s 1098 libavcodec/dca_core.c xbr_frame_size[i] = get_bits(&s->gb, 14) + 1; s 1101 libavcodec/dca_core.c xbr_transition_mode = get_bits1(&s->gb); s 1105 libavcodec/dca_core.c xbr_nchannels[i] = get_bits(&s->gb, 3) + 1; s 1106 libavcodec/dca_core.c xbr_band_nbits = get_bits(&s->gb, 2) + 5; s 1108 libavcodec/dca_core.c xbr_nsubbands[ch2] = get_bits(&s->gb, xbr_band_nbits) + 1; s 1110 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid number of active XBR subbands (%d)\n", xbr_nsubbands[ch2]); s 1119 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, header_pos + header_size * 8)) { s 1120 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XBR frame header\n"); s 1126 libavcodec/dca_core.c header_pos = get_bits_count(&s->gb); s 1128 libavcodec/dca_core.c if (xbr_base_ch + xbr_nchannels[i] <= s->nchannels) { s 1131 libavcodec/dca_core.c for (sf = 0, sub_pos = 0; sf < s->nsubframes; sf++) { s 1132 libavcodec/dca_core.c if ((ret = parse_xbr_subframe(s, xbr_base_ch, s 1142 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, header_pos + xbr_frame_size[i] * 8)) { s 1143 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XBR channel set\n"); s 1153 libavcodec/dca_core.c static int rand_x96(DCACoreDecoder *s) s 1155 libavcodec/dca_core.c s->x96_rand = 1103515245U * s->x96_rand + 12345U; s 1156 libavcodec/dca_core.c return (s->x96_rand & 0x7fffffff) - 0x40000000; s 1159 libavcodec/dca_core.c static int parse_x96_subframe_audio(DCACoreDecoder *s, int sf, int xch_base, int *sub_pos) s 1164 libavcodec/dca_core.c int nsamples = s->nsubsubframes[sf] * DCA_SUBBAND_SAMPLES; s 1165 libavcodec/dca_core.c if (*sub_pos + nsamples > s->npcmblocks) { s 1166 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Subband sample buffer overflow\n"); s 1170 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 1174 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1175 libavcodec/dca_core.c for (band = s->x96_subband_start; band < s->nsubbands[ch]; band++) { s 1177 libavcodec/dca_core.c int32_t *samples = s->x96_subband_samples[ch][band] + *sub_pos; s 1178 libavcodec/dca_core.c int32_t scale = s->scale_factors[ch][band >> 1][band & 1]; s 1180 libavcodec/dca_core.c switch (s->bit_allocation[ch][band]) { s 1186 libavcodec/dca_core.c samples[n] = mul31(rand_x96(s), scale); s 1190 libavcodec/dca_core.c for (ssf = 0; ssf < (s->nsubsubframes[sf] + 1) / 2; ssf++) { s 1193 libavcodec/dca_core.c const int8_t *vq_samples = ff_dca_high_freq_vq[get_bits(&s->gb, 10)]; s 1204 libavcodec/dca_core.c for (ssf = 0, ofs = *sub_pos; ssf < s->nsubsubframes[sf]; ssf++) { s 1205 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1206 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 1209 libavcodec/dca_core.c for (band = s->x96_subband_start; band < s->nsubbands[ch]; band++) { s 1210 libavcodec/dca_core.c int ret, abits = s->bit_allocation[ch][band] - 1; s 1218 libavcodec/dca_core.c if ((ret = extract_audio(s, audio, abits, ch)) < 0) s 1223 libavcodec/dca_core.c if (s->bit_rate == 3) s 1229 libavcodec/dca_core.c scale = s->scale_factors[ch][band >> 1][band & 1]; s 1231 libavcodec/dca_core.c ff_dca_core_dequantize(s->x96_subband_samples[ch][band] + ofs, s 1237 libavcodec/dca_core.c if ((ssf == s->nsubsubframes[sf] - 1 || s->sync_ssf) && get_bits(&s->gb, 16) != 0xffff) { s 1238 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "X96-DSYNC check failed\n"); s 1246 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1247 libavcodec/dca_core.c inverse_adpcm(s->x96_subband_samples[ch], s->prediction_vq_index[ch], s 1248 libavcodec/dca_core.c s->prediction_mode[ch], s->x96_subband_start, s->nsubbands[ch], s 1253 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1254 libavcodec/dca_core.c int src_ch = s->joint_intensity_index[ch] - 1; s 1256 libavcodec/dca_core.c s->dcadsp->decode_joint(s->x96_subband_samples[ch], s->x96_subband_samples[src_ch], s 1257 libavcodec/dca_core.c s->joint_scale_factors[ch], s->nsubbands[ch], s 1258 libavcodec/dca_core.c s->nsubbands[src_ch], *sub_pos, nsamples); s 1267 libavcodec/dca_core.c static void erase_x96_adpcm_history(DCACoreDecoder *s) s 1275 libavcodec/dca_core.c AV_ZERO128(s->x96_subband_samples[ch][band] - DCA_ADPCM_COEFFS); s 1280 libavcodec/dca_core.c static int alloc_x96_sample_buffer(DCACoreDecoder *s) s 1282 libavcodec/dca_core.c int nchsamples = DCA_ADPCM_COEFFS + s->npcmblocks; s 1284 libavcodec/dca_core.c unsigned int size = s->x96_subband_size; s 1288 libavcodec/dca_core.c av_fast_mallocz(&s->x96_subband_buffer, &s->x96_subband_size, s 1290 libavcodec/dca_core.c if (!s->x96_subband_buffer) s 1293 libavcodec/dca_core.c if (size != s->x96_subband_size) { s 1296 libavcodec/dca_core.c s->x96_subband_samples[ch][band] = s->x96_subband_buffer + s 1300 libavcodec/dca_core.c if (!s->predictor_history) s 1301 libavcodec/dca_core.c erase_x96_adpcm_history(s); s 1306 libavcodec/dca_core.c static int parse_x96_subframe_header(DCACoreDecoder *s, int xch_base) s 1310 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 1314 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) s 1315 libavcodec/dca_core.c for (band = s->x96_subband_start; band < s->nsubbands[ch]; band++) s 1316 libavcodec/dca_core.c s->prediction_mode[ch][band] = get_bits1(&s->gb); s 1319 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) s 1320 libavcodec/dca_core.c for (band = s->x96_subband_start; band < s->nsubbands[ch]; band++) s 1321 libavcodec/dca_core.c if (s->prediction_mode[ch][band]) s 1322 libavcodec/dca_core.c s->prediction_vq_index[ch][band] = get_bits(&s->gb, 12); s 1325 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1326 libavcodec/dca_core.c int sel = s->bit_allocation_sel[ch]; s 1329 libavcodec/dca_core.c for (band = s->x96_subband_start; band < s->nsubbands[ch]; band++) { s 1332 libavcodec/dca_core.c abits += dca_get_vlc(&s->gb, &ff_dca_vlc_quant_index[5 + 2 * s->x96_high_res], sel); s 1334 libavcodec/dca_core.c abits = get_bits(&s->gb, 3 + s->x96_high_res); s 1336 libavcodec/dca_core.c if (abits < 0 || abits > 7 + 8 * s->x96_high_res) { s 1337 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 bit allocation index\n"); s 1341 libavcodec/dca_core.c s->bit_allocation[ch][band] = abits; s 1346 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1347 libavcodec/dca_core.c int sel = s->scale_factor_sel[ch]; s 1352 libavcodec/dca_core.c for (band = s->x96_subband_start; band < s->nsubbands[ch]; band++) { s 1353 libavcodec/dca_core.c if ((ret = parse_scale(s, &scale_index, sel)) < 0) s 1355 libavcodec/dca_core.c s->scale_factors[ch][band >> 1][band & 1] = ret; s 1360 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1361 libavcodec/dca_core.c if (s->joint_intensity_index[ch]) { s 1362 libavcodec/dca_core.c s->joint_scale_sel[ch] = get_bits(&s->gb, 3); s 1363 libavcodec/dca_core.c if (s->joint_scale_sel[ch] == 7) { s 1364 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 joint scale factor code book\n"); s 1371 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1372 libavcodec/dca_core.c int src_ch = s->joint_intensity_index[ch] - 1; s 1374 libavcodec/dca_core.c int sel = s->joint_scale_sel[ch]; s 1375 libavcodec/dca_core.c for (band = s->nsubbands[ch]; band < s->nsubbands[src_ch]; band++) { s 1376 libavcodec/dca_core.c if ((ret = parse_joint_scale(s, sel)) < 0) s 1378 libavcodec/dca_core.c s->joint_scale_factors[ch][band] = ret; s 1384 libavcodec/dca_core.c if (s->crc_present) s 1385 libavcodec/dca_core.c skip_bits(&s->gb, 16); s 1390 libavcodec/dca_core.c static int parse_x96_coding_header(DCACoreDecoder *s, int exss, int xch_base) s 1392 libavcodec/dca_core.c int n, ch, header_size = 0, header_pos = get_bits_count(&s->gb); s 1394 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 1399 libavcodec/dca_core.c header_size = get_bits(&s->gb, 7) + 1; s 1402 libavcodec/dca_core.c if (s->x96_crc_present s 1403 libavcodec/dca_core.c && ff_dca_check_crc(s->avctx, &s->gb, header_pos, header_pos + header_size * 8)) { s 1404 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 channel set header checksum\n"); s 1410 libavcodec/dca_core.c s->x96_high_res = get_bits1(&s->gb); s 1413 libavcodec/dca_core.c if (s->x96_rev_no < 8) { s 1414 libavcodec/dca_core.c s->x96_subband_start = get_bits(&s->gb, 5); s 1415 libavcodec/dca_core.c if (s->x96_subband_start > 27) { s 1416 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 subband start index (%d)\n", s->x96_subband_start); s 1420 libavcodec/dca_core.c s->x96_subband_start = DCA_SUBBANDS; s 1424 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1425 libavcodec/dca_core.c s->nsubbands[ch] = get_bits(&s->gb, 6) + 1; s 1426 libavcodec/dca_core.c if (s->nsubbands[ch] < DCA_SUBBANDS) { s 1427 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 subband activity count (%d)\n", s->nsubbands[ch]); s 1433 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1434 libavcodec/dca_core.c if ((n = get_bits(&s->gb, 3)) && xch_base) s 1436 libavcodec/dca_core.c if (n > s->x96_nchannels) { s 1437 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 joint intensity coding index\n"); s 1440 libavcodec/dca_core.c s->joint_intensity_index[ch] = n; s 1444 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1445 libavcodec/dca_core.c s->scale_factor_sel[ch] = get_bits(&s->gb, 3); s 1446 libavcodec/dca_core.c if (s->scale_factor_sel[ch] >= 6) { s 1447 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 scale factor code book\n"); s 1453 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) s 1454 libavcodec/dca_core.c s->bit_allocation_sel[ch] = get_bits(&s->gb, 3); s 1457 libavcodec/dca_core.c for (n = 0; n < 6 + 4 * s->x96_high_res; n++) s 1458 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) s 1459 libavcodec/dca_core.c s->quant_index_sel[ch][n] = get_bits(&s->gb, ff_dca_quant_index_sel_nbits[n]); s 1465 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, header_pos + header_size * 8)) { s 1466 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of X96 channel set header\n"); s 1470 libavcodec/dca_core.c if (s->crc_present) s 1471 libavcodec/dca_core.c skip_bits(&s->gb, 16); s 1477 libavcodec/dca_core.c static int parse_x96_frame_data(DCACoreDecoder *s, int exss, int xch_base) s 1481 libavcodec/dca_core.c if ((ret = parse_x96_coding_header(s, exss, xch_base)) < 0) s 1484 libavcodec/dca_core.c for (sf = 0, sub_pos = 0; sf < s->nsubframes; sf++) { s 1485 libavcodec/dca_core.c if ((ret = parse_x96_subframe_header(s, xch_base)) < 0) s 1487 libavcodec/dca_core.c if ((ret = parse_x96_subframe_audio(s, sf, xch_base, &sub_pos)) < 0) s 1491 libavcodec/dca_core.c for (ch = xch_base; ch < s->x96_nchannels; ch++) { s 1493 libavcodec/dca_core.c int nsubbands = s->nsubbands[ch]; s 1494 libavcodec/dca_core.c if (s->joint_intensity_index[ch]) s 1495 libavcodec/dca_core.c nsubbands = FFMAX(nsubbands, s->nsubbands[s->joint_intensity_index[ch] - 1]); s 1499 libavcodec/dca_core.c int32_t *samples = s->x96_subband_samples[ch][band] - DCA_ADPCM_COEFFS; s 1500 libavcodec/dca_core.c if (band >= s->x96_subband_start && band < nsubbands) s 1501 libavcodec/dca_core.c AV_COPY128(samples, samples + s->npcmblocks); s 1503 libavcodec/dca_core.c memset(samples, 0, (DCA_ADPCM_COEFFS + s->npcmblocks) * sizeof(int32_t)); s 1512 libavcodec/dca_core.c static int parse_x96_frame(DCACoreDecoder *s) s 1517 libavcodec/dca_core.c s->x96_rev_no = get_bits(&s->gb, 4); s 1518 libavcodec/dca_core.c if (s->x96_rev_no < 1 || s->x96_rev_no > 8) { s 1519 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 revision (%d)\n", s->x96_rev_no); s 1523 libavcodec/dca_core.c s->x96_crc_present = 0; s 1524 libavcodec/dca_core.c s->x96_nchannels = s->nchannels; s 1526 libavcodec/dca_core.c if ((ret = alloc_x96_sample_buffer(s)) < 0) s 1529 libavcodec/dca_core.c if ((ret = parse_x96_frame_data(s, 0, 0)) < 0) s 1533 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, s->frame_size * 8)) { s 1534 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of X96 frame\n"); s 1541 libavcodec/dca_core.c static int parse_x96_frame_exss(DCACoreDecoder *s) s 1546 libavcodec/dca_core.c int i, ret, header_size, header_pos = get_bits_count(&s->gb); s 1549 libavcodec/dca_core.c if (get_bits_long(&s->gb, 32) != DCA_SYNCWORD_X96) { s 1550 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 sync word\n"); s 1555 libavcodec/dca_core.c header_size = get_bits(&s->gb, 6) + 1; s 1558 libavcodec/dca_core.c if (ff_dca_check_crc(s->avctx, &s->gb, header_pos + 32, header_pos + header_size * 8)) { s 1559 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 frame header checksum\n"); s 1564 libavcodec/dca_core.c s->x96_rev_no = get_bits(&s->gb, 4); s 1565 libavcodec/dca_core.c if (s->x96_rev_no < 1 || s->x96_rev_no > 8) { s 1566 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid X96 revision (%d)\n", s->x96_rev_no); s 1571 libavcodec/dca_core.c s->x96_crc_present = get_bits1(&s->gb); s 1574 libavcodec/dca_core.c x96_nchsets = get_bits(&s->gb, 2) + 1; s 1578 libavcodec/dca_core.c x96_frame_size[i] = get_bits(&s->gb, 12) + 1; s 1582 libavcodec/dca_core.c x96_nchannels[i] = get_bits(&s->gb, 3) + 1; s 1587 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, header_pos + header_size * 8)) { s 1588 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of X96 frame header\n"); s 1592 libavcodec/dca_core.c if ((ret = alloc_x96_sample_buffer(s)) < 0) s 1596 libavcodec/dca_core.c s->x96_nchannels = 0; s 1598 libavcodec/dca_core.c header_pos = get_bits_count(&s->gb); s 1600 libavcodec/dca_core.c if (x96_base_ch + x96_nchannels[i] <= s->nchannels) { s 1601 libavcodec/dca_core.c s->x96_nchannels = x96_base_ch + x96_nchannels[i]; s 1602 libavcodec/dca_core.c if ((ret = parse_x96_frame_data(s, 1, x96_base_ch)) < 0) s 1608 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, header_pos + x96_frame_size[i] * 8)) { s 1609 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of X96 channel set\n"); s 1617 libavcodec/dca_core.c static int parse_aux_data(DCACoreDecoder *s) s 1621 libavcodec/dca_core.c if (get_bits_left(&s->gb) < 0) s 1625 libavcodec/dca_core.c skip_bits(&s->gb, 6); s 1628 libavcodec/dca_core.c skip_bits_long(&s->gb, -get_bits_count(&s->gb) & 31); s 1631 libavcodec/dca_core.c if (get_bits_long(&s->gb, 32) != DCA_SYNCWORD_REV1AUX) { s 1632 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid auxiliary data sync word\n"); s 1636 libavcodec/dca_core.c aux_pos = get_bits_count(&s->gb); s 1639 libavcodec/dca_core.c if (get_bits1(&s->gb)) s 1640 libavcodec/dca_core.c skip_bits_long(&s->gb, 47); s 1643 libavcodec/dca_core.c if (s->prim_dmix_embedded = get_bits1(&s->gb)) { s 1647 libavcodec/dca_core.c s->prim_dmix_type = get_bits(&s->gb, 3); s 1648 libavcodec/dca_core.c if (s->prim_dmix_type >= DCA_DMIX_TYPE_COUNT) { s 1649 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid primary channel set downmix type\n"); s 1654 libavcodec/dca_core.c m = ff_dca_dmix_primary_nch[s->prim_dmix_type]; s 1655 libavcodec/dca_core.c n = ff_dca_channels[s->audio_mode] + !!s->lfe_present; s 1659 libavcodec/dca_core.c int code = get_bits(&s->gb, 9); s 1663 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid downmix coefficient index\n"); s 1666 libavcodec/dca_core.c s->prim_dmix_coeff[i] = (ff_dca_dmixtable[index] ^ sign) - sign; s 1671 libavcodec/dca_core.c skip_bits(&s->gb, -get_bits_count(&s->gb) & 7); s 1674 libavcodec/dca_core.c skip_bits(&s->gb, 16); s 1677 libavcodec/dca_core.c if (ff_dca_check_crc(s->avctx, &s->gb, aux_pos, get_bits_count(&s->gb))) { s 1678 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Invalid auxiliary data checksum\n"); s 1685 libavcodec/dca_core.c static int parse_optional_info(DCACoreDecoder *s) s 1687 libavcodec/dca_core.c DCAContext *dca = s->avctx->priv_data; s 1691 libavcodec/dca_core.c if (s->ts_present) s 1692 libavcodec/dca_core.c skip_bits_long(&s->gb, 32); s 1695 libavcodec/dca_core.c if (s->aux_present && (ret = parse_aux_data(s)) < 0 s 1696 libavcodec/dca_core.c && (s->avctx->err_recognition & AV_EF_EXPLODE)) s 1700 libavcodec/dca_core.c s->prim_dmix_embedded = 0; s 1703 libavcodec/dca_core.c if (s->ext_audio_present && !dca->core_only) { s 1704 libavcodec/dca_core.c int sync_pos = FFMIN(s->frame_size / 4, s->gb.size_in_bits / 32) - 1; s 1705 libavcodec/dca_core.c int last_pos = get_bits_count(&s->gb) / 32; s 1712 libavcodec/dca_core.c switch (s->ext_audio_type) { s 1723 libavcodec/dca_core.c w1 = AV_RB32(s->gb.buffer + sync_pos * 4); s 1726 libavcodec/dca_core.c dist = s->frame_size - sync_pos * 4; s 1730 libavcodec/dca_core.c s->xch_pos = sync_pos * 32 + 49; s 1736 libavcodec/dca_core.c if (!s->xch_pos) { s 1737 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "XCH sync word not found\n"); s 1738 libavcodec/dca_core.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 1748 libavcodec/dca_core.c w1 = AV_RB32(s->gb.buffer + sync_pos * 4); s 1751 libavcodec/dca_core.c dist = s->frame_size - sync_pos * 4; s 1753 libavcodec/dca_core.c s->x96_pos = sync_pos * 32 + 44; s 1759 libavcodec/dca_core.c if (!s->x96_pos) { s 1760 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "X96 sync word not found\n"); s 1761 libavcodec/dca_core.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 1773 libavcodec/dca_core.c w1 = AV_RB32(s->gb.buffer + sync_pos * 4); s 1776 libavcodec/dca_core.c dist = s->gb.size_in_bits / 8 - sync_pos * 4; s 1778 libavcodec/dca_core.c !av_crc(dca->crctab, 0xffff, s->gb.buffer + s 1780 libavcodec/dca_core.c s->xxch_pos = sync_pos * 32; s 1786 libavcodec/dca_core.c if (!s->xxch_pos) { s 1787 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "XXCH sync word not found\n"); s 1788 libavcodec/dca_core.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 1798 libavcodec/dca_core.c int ff_dca_core_parse(DCACoreDecoder *s, uint8_t *data, int size) s 1802 libavcodec/dca_core.c s->ext_audio_mask = 0; s 1803 libavcodec/dca_core.c s->xch_pos = s->xxch_pos = s->x96_pos = 0; s 1805 libavcodec/dca_core.c if ((ret = init_get_bits8(&s->gb, data, size)) < 0) s 1807 libavcodec/dca_core.c s->gb_in = s->gb; s 1809 libavcodec/dca_core.c if ((ret = parse_frame_header(s)) < 0) s 1811 libavcodec/dca_core.c if ((ret = alloc_sample_buffer(s)) < 0) s 1813 libavcodec/dca_core.c if ((ret = parse_frame_data(s, HEADER_CORE, 0)) < 0) s 1815 libavcodec/dca_core.c if ((ret = parse_optional_info(s)) < 0) s 1819 libavcodec/dca_core.c if (s->frame_size > size) s 1820 libavcodec/dca_core.c s->frame_size = size; s 1822 libavcodec/dca_core.c if (ff_dca_seek_bits(&s->gb, s->frame_size * 8)) { s 1823 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of core frame\n"); s 1824 libavcodec/dca_core.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 1831 libavcodec/dca_core.c int ff_dca_core_parse_exss(DCACoreDecoder *s, uint8_t *data, DCAExssAsset *asset) s 1833 libavcodec/dca_core.c AVCodecContext *avctx = s->avctx; s 1841 libavcodec/dca_core.c if ((ret = init_get_bits8(&s->gb, data + asset->xxch_offset, asset->xxch_size)) < 0) s 1843 libavcodec/dca_core.c ret = parse_xxch_frame(s); s 1845 libavcodec/dca_core.c } else if (s->xxch_pos) { s 1846 libavcodec/dca_core.c s->gb = s->gb_in; s 1847 libavcodec/dca_core.c skip_bits_long(&s->gb, s->xxch_pos); s 1848 libavcodec/dca_core.c ret = parse_xxch_frame(s); s 1850 libavcodec/dca_core.c } else if (s->xch_pos) { s 1851 libavcodec/dca_core.c s->gb = s->gb_in; s 1852 libavcodec/dca_core.c skip_bits_long(&s->gb, s->xch_pos); s 1853 libavcodec/dca_core.c ret = parse_xch_frame(s); s 1861 libavcodec/dca_core.c s->nchannels = ff_dca_channels[s->audio_mode]; s 1862 libavcodec/dca_core.c s->ch_mask = audio_mode_ch_mask[s->audio_mode]; s 1863 libavcodec/dca_core.c if (s->lfe_present) s 1864 libavcodec/dca_core.c s->ch_mask |= DCA_SPEAKER_MASK_LFE1; s 1866 libavcodec/dca_core.c s->ext_audio_mask |= ext; s 1872 libavcodec/dca_core.c if ((ret = init_get_bits8(&s->gb, data + asset->xbr_offset, asset->xbr_size)) < 0) s 1874 libavcodec/dca_core.c if ((ret = parse_xbr_frame(s)) < 0) { s 1878 libavcodec/dca_core.c s->ext_audio_mask |= DCA_EXSS_XBR; s 1885 libavcodec/dca_core.c if ((ret = init_get_bits8(&s->gb, data + asset->x96_offset, asset->x96_size)) < 0) s 1887 libavcodec/dca_core.c if ((ret = parse_x96_frame_exss(s)) < 0) { s 1891 libavcodec/dca_core.c s->ext_audio_mask |= DCA_EXSS_X96; s 1893 libavcodec/dca_core.c } else if (s->x96_pos) { s 1894 libavcodec/dca_core.c s->gb = s->gb_in; s 1895 libavcodec/dca_core.c skip_bits_long(&s->gb, s->x96_pos); s 1896 libavcodec/dca_core.c if ((ret = parse_x96_frame(s)) < 0) { s 1900 libavcodec/dca_core.c s->ext_audio_mask |= DCA_CSS_X96; s 1908 libavcodec/dca_core.c static int map_prm_ch_to_spkr(DCACoreDecoder *s, int ch) s 1913 libavcodec/dca_core.c pos = ff_dca_channels[s->audio_mode]; s 1915 libavcodec/dca_core.c spkr = prm_ch_to_spkr_map[s->audio_mode][ch]; s 1916 libavcodec/dca_core.c if (s->ext_audio_mask & (DCA_CSS_XXCH | DCA_EXSS_XXCH)) { s 1917 libavcodec/dca_core.c if (s->xxch_core_mask & (1U << spkr)) s 1919 libavcodec/dca_core.c if (spkr == DCA_SPEAKER_Ls && (s->xxch_core_mask & DCA_SPEAKER_MASK_Lss)) s 1921 libavcodec/dca_core.c if (spkr == DCA_SPEAKER_Rs && (s->xxch_core_mask & DCA_SPEAKER_MASK_Rss)) s 1929 libavcodec/dca_core.c if ((s->ext_audio_mask & DCA_CSS_XCH) && ch == pos) s 1933 libavcodec/dca_core.c if (s->ext_audio_mask & (DCA_CSS_XXCH | DCA_EXSS_XXCH)) { s 1934 libavcodec/dca_core.c for (spkr = DCA_SPEAKER_Cs; spkr < s->xxch_mask_nbits; spkr++) s 1935 libavcodec/dca_core.c if (s->xxch_spkr_mask & (1U << spkr)) s 1944 libavcodec/dca_core.c static void erase_dsp_history(DCACoreDecoder *s) s 1946 libavcodec/dca_core.c memset(s->dcadsp_data, 0, sizeof(s->dcadsp_data)); s 1947 libavcodec/dca_core.c s->output_history_lfe_fixed = 0; s 1948 libavcodec/dca_core.c s->output_history_lfe_float = 0; s 1951 libavcodec/dca_core.c static void set_filter_mode(DCACoreDecoder *s, int mode) s 1953 libavcodec/dca_core.c if (s->filter_mode != mode) { s 1954 libavcodec/dca_core.c erase_dsp_history(s); s 1955 libavcodec/dca_core.c s->filter_mode = mode; s 1959 libavcodec/dca_core.c int ff_dca_core_filter_fixed(DCACoreDecoder *s, int x96_synth) s 1969 libavcodec/dca_core.c if (!x96_synth && (s->ext_audio_mask & (DCA_CSS_X96 | DCA_EXSS_X96))) { s 1970 libavcodec/dca_core.c x96_nchannels = s->x96_nchannels; s 1976 libavcodec/dca_core.c s->output_rate = s->sample_rate << x96_synth; s 1977 libavcodec/dca_core.c s->npcmsamples = nsamples = (s->npcmblocks * DCA_PCMBLOCK_SAMPLES) << x96_synth; s 1980 libavcodec/dca_core.c av_fast_malloc(&s->output_buffer, &s->output_size, s 1981 libavcodec/dca_core.c nsamples * av_popcount(s->ch_mask) * sizeof(int32_t)); s 1982 libavcodec/dca_core.c if (!s->output_buffer) s 1985 libavcodec/dca_core.c ptr = (int32_t *)s->output_buffer; s 1987 libavcodec/dca_core.c if (s->ch_mask & (1U << spkr)) { s 1988 libavcodec/dca_core.c s->output_samples[spkr] = ptr; s 1991 libavcodec/dca_core.c s->output_samples[spkr] = NULL; s 1996 libavcodec/dca_core.c set_filter_mode(s, x96_synth | DCA_FILTER_MODE_FIXED); s 2001 libavcodec/dca_core.c else if (s->filter_perfect) s 2007 libavcodec/dca_core.c for (ch = 0; ch < s->nchannels; ch++) { s 2009 libavcodec/dca_core.c spkr = map_prm_ch_to_spkr(s, ch); s 2014 libavcodec/dca_core.c s->dcadsp->sub_qmf_fixed[x96_synth]( s 2015 libavcodec/dca_core.c &s->synth, s 2016 libavcodec/dca_core.c &s->dcadct, s 2017 libavcodec/dca_core.c s->output_samples[spkr], s 2018 libavcodec/dca_core.c s->subband_samples[ch], s 2019 libavcodec/dca_core.c ch < x96_nchannels ? s->x96_subband_samples[ch] : NULL, s 2020 libavcodec/dca_core.c s->dcadsp_data[ch].u.fix.hist1, s 2021 libavcodec/dca_core.c &s->dcadsp_data[ch].offset, s 2022 libavcodec/dca_core.c s->dcadsp_data[ch].u.fix.hist2, s 2024 libavcodec/dca_core.c s->npcmblocks); s 2028 libavcodec/dca_core.c if (s->lfe_present) { s 2029 libavcodec/dca_core.c int32_t *samples = s->output_samples[DCA_SPEAKER_LFE1]; s 2030 libavcodec/dca_core.c int nlfesamples = s->npcmblocks >> 1; s 2033 libavcodec/dca_core.c if (s->lfe_present == DCA_LFE_FLAG_128) { s 2034 libavcodec/dca_core.c av_log(s->avctx, AV_LOG_ERROR, "Fixed point mode doesn't support LFF=1\n"); s 2043 libavcodec/dca_core.c s->dcadsp->lfe_fir_fixed(samples, s->lfe_samples + DCA_LFE_HISTORY, s 2044 libavcodec/dca_core.c ff_dca_lfe_fir_64_fixed, s->npcmblocks); s 2049 libavcodec/dca_core.c s->dcadsp->lfe_x96_fixed(s->output_samples[DCA_SPEAKER_LFE1], s 2050 libavcodec/dca_core.c samples, &s->output_history_lfe_fixed, s 2057 libavcodec/dca_core.c s->lfe_samples[n] = s->lfe_samples[nlfesamples + n]; s 2063 libavcodec/dca_core.c static int filter_frame_fixed(DCACoreDecoder *s, AVFrame *frame) s 2065 libavcodec/dca_core.c AVCodecContext *avctx = s->avctx; s 2070 libavcodec/dca_core.c if (!(dca->packet & DCA_PACKET_XLL) && (ret = ff_dca_core_filter_fixed(s, 0)) < 0) s 2073 libavcodec/dca_core.c avctx->sample_rate = s->output_rate; s 2077 libavcodec/dca_core.c frame->nb_samples = nsamples = s->npcmsamples; s 2082 libavcodec/dca_core.c if (s->es_format && (s->ext_audio_mask & DCA_CSS_XCH) s 2083 libavcodec/dca_core.c && s->audio_mode >= DCA_AMODE_2F2R) { s 2084 libavcodec/dca_core.c s->dcadsp->dmix_sub_xch(s->output_samples[DCA_SPEAKER_Ls], s 2085 libavcodec/dca_core.c s->output_samples[DCA_SPEAKER_Rs], s 2086 libavcodec/dca_core.c s->output_samples[DCA_SPEAKER_Cs], s 2092 libavcodec/dca_core.c if ((s->ext_audio_mask & (DCA_CSS_XXCH | DCA_EXSS_XXCH)) s 2093 libavcodec/dca_core.c && s->xxch_dmix_embedded) { s 2094 libavcodec/dca_core.c int scale_inv = s->xxch_dmix_scale_inv; s 2095 libavcodec/dca_core.c int *coeff_ptr = s->xxch_dmix_coeff; s 2096 libavcodec/dca_core.c int xch_base = ff_dca_channels[s->audio_mode]; s 2097 libavcodec/dca_core.c av_assert1(s->nchannels - xch_base <= DCA_XXCH_CHANNELS_MAX); s 2100 libavcodec/dca_core.c for (spkr = 0; spkr < s->xxch_mask_nbits; spkr++) { s 2101 libavcodec/dca_core.c if (s->xxch_core_mask & (1U << spkr)) { s 2102 libavcodec/dca_core.c s->dcadsp->dmix_scale_inv(s->output_samples[spkr], s 2108 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 2109 libavcodec/dca_core.c int src_spkr = map_prm_ch_to_spkr(s, ch); s 2112 libavcodec/dca_core.c for (spkr = 0; spkr < s->xxch_mask_nbits; spkr++) { s 2113 libavcodec/dca_core.c if (s->xxch_dmix_mask[ch - xch_base] & (1U << spkr)) { s 2116 libavcodec/dca_core.c s->dcadsp->dmix_sub(s->output_samples[spkr ], s 2117 libavcodec/dca_core.c s->output_samples[src_spkr], s 2125 libavcodec/dca_core.c if (!(s->ext_audio_mask & (DCA_CSS_XXCH | DCA_CSS_XCH | DCA_EXSS_XXCH))) { s 2127 libavcodec/dca_core.c if ((s->sumdiff_front && s->audio_mode > DCA_AMODE_MONO) s 2128 libavcodec/dca_core.c || s->audio_mode == DCA_AMODE_STEREO_SUMDIFF) { s 2129 libavcodec/dca_core.c s->fixed_dsp->butterflies_fixed(s->output_samples[DCA_SPEAKER_L], s 2130 libavcodec/dca_core.c s->output_samples[DCA_SPEAKER_R], s 2135 libavcodec/dca_core.c if (s->sumdiff_surround && s->audio_mode >= DCA_AMODE_2F2R) { s 2136 libavcodec/dca_core.c s->fixed_dsp->butterflies_fixed(s->output_samples[DCA_SPEAKER_Ls], s 2137 libavcodec/dca_core.c s->output_samples[DCA_SPEAKER_Rs], s 2143 libavcodec/dca_core.c if (s->request_mask != s->ch_mask) { s 2144 libavcodec/dca_core.c ff_dca_downmix_to_stereo_fixed(s->dcadsp, s 2145 libavcodec/dca_core.c s->output_samples, s 2146 libavcodec/dca_core.c s->prim_dmix_coeff, s 2147 libavcodec/dca_core.c nsamples, s->ch_mask); s 2151 libavcodec/dca_core.c int32_t *samples = s->output_samples[s->ch_remap[i]]; s 2160 libavcodec/dca_core.c static int filter_frame_float(DCACoreDecoder *s, AVFrame *frame) s 2162 libavcodec/dca_core.c AVCodecContext *avctx = s->avctx; s 2168 libavcodec/dca_core.c if (s->ext_audio_mask & (DCA_CSS_X96 | DCA_EXSS_X96)) { s 2169 libavcodec/dca_core.c x96_nchannels = s->x96_nchannels; s 2173 libavcodec/dca_core.c avctx->sample_rate = s->sample_rate << x96_synth; s 2177 libavcodec/dca_core.c frame->nb_samples = nsamples = (s->npcmblocks * DCA_PCMBLOCK_SAMPLES) << x96_synth; s 2183 libavcodec/dca_core.c output_samples[s->ch_remap[i]] = (float *)frame->extended_data[i]; s 2186 libavcodec/dca_core.c nchannels = av_popcount(s->ch_mask) - avctx->channels; s 2188 libavcodec/dca_core.c av_fast_malloc(&s->output_buffer, &s->output_size, s 2190 libavcodec/dca_core.c if (!s->output_buffer) s 2193 libavcodec/dca_core.c ptr = (float *)s->output_buffer; s 2195 libavcodec/dca_core.c if (!(s->ch_mask & (1U << spkr))) s 2205 libavcodec/dca_core.c set_filter_mode(s, x96_synth); s 2210 libavcodec/dca_core.c else if (s->filter_perfect) s 2216 libavcodec/dca_core.c for (ch = 0; ch < s->nchannels; ch++) { s 2218 libavcodec/dca_core.c spkr = map_prm_ch_to_spkr(s, ch); s 2223 libavcodec/dca_core.c s->dcadsp->sub_qmf_float[x96_synth]( s 2224 libavcodec/dca_core.c &s->synth, s 2225 libavcodec/dca_core.c &s->imdct[x96_synth], s 2227 libavcodec/dca_core.c s->subband_samples[ch], s 2228 libavcodec/dca_core.c ch < x96_nchannels ? s->x96_subband_samples[ch] : NULL, s 2229 libavcodec/dca_core.c s->dcadsp_data[ch].u.flt.hist1, s 2230 libavcodec/dca_core.c &s->dcadsp_data[ch].offset, s 2231 libavcodec/dca_core.c s->dcadsp_data[ch].u.flt.hist2, s 2233 libavcodec/dca_core.c s->npcmblocks, s 2238 libavcodec/dca_core.c if (s->lfe_present) { s 2239 libavcodec/dca_core.c int dec_select = (s->lfe_present == DCA_LFE_FLAG_128); s 2241 libavcodec/dca_core.c int nlfesamples = s->npcmblocks >> (dec_select + 1); s 2254 libavcodec/dca_core.c s->dcadsp->lfe_fir_float[dec_select]( s 2255 libavcodec/dca_core.c samples, s->lfe_samples + DCA_LFE_HISTORY, s 2256 libavcodec/dca_core.c filter_coeff, s->npcmblocks); s 2261 libavcodec/dca_core.c s->dcadsp->lfe_x96_float(output_samples[DCA_SPEAKER_LFE1], s 2262 libavcodec/dca_core.c samples, &s->output_history_lfe_float, s 2268 libavcodec/dca_core.c s->lfe_samples[n] = s->lfe_samples[nlfesamples + n]; s 2272 libavcodec/dca_core.c if (s->es_format && (s->ext_audio_mask & DCA_CSS_XCH) s 2273 libavcodec/dca_core.c && s->audio_mode >= DCA_AMODE_2F2R) { s 2274 libavcodec/dca_core.c s->float_dsp->vector_fmac_scalar(output_samples[DCA_SPEAKER_Ls], s 2277 libavcodec/dca_core.c s->float_dsp->vector_fmac_scalar(output_samples[DCA_SPEAKER_Rs], s 2283 libavcodec/dca_core.c if ((s->ext_audio_mask & (DCA_CSS_XXCH | DCA_EXSS_XXCH)) s 2284 libavcodec/dca_core.c && s->xxch_dmix_embedded) { s 2285 libavcodec/dca_core.c float scale_inv = s->xxch_dmix_scale_inv * (1.0f / (1 << 16)); s 2286 libavcodec/dca_core.c int *coeff_ptr = s->xxch_dmix_coeff; s 2287 libavcodec/dca_core.c int xch_base = ff_dca_channels[s->audio_mode]; s 2288 libavcodec/dca_core.c av_assert1(s->nchannels - xch_base <= DCA_XXCH_CHANNELS_MAX); s 2291 libavcodec/dca_core.c for (ch = xch_base; ch < s->nchannels; ch++) { s 2292 libavcodec/dca_core.c int src_spkr = map_prm_ch_to_spkr(s, ch); s 2295 libavcodec/dca_core.c for (spkr = 0; spkr < s->xxch_mask_nbits; spkr++) { s 2296 libavcodec/dca_core.c if (s->xxch_dmix_mask[ch - xch_base] & (1U << spkr)) { s 2299 libavcodec/dca_core.c s->float_dsp->vector_fmac_scalar(output_samples[ spkr], s 2309 libavcodec/dca_core.c for (spkr = 0; spkr < s->xxch_mask_nbits; spkr++) { s 2310 libavcodec/dca_core.c if (s->xxch_core_mask & (1U << spkr)) { s 2311 libavcodec/dca_core.c s->float_dsp->vector_fmul_scalar(output_samples[spkr], s 2318 libavcodec/dca_core.c if (!(s->ext_audio_mask & (DCA_CSS_XXCH | DCA_CSS_XCH | DCA_EXSS_XXCH))) { s 2320 libavcodec/dca_core.c if ((s->sumdiff_front && s->audio_mode > DCA_AMODE_MONO) s 2321 libavcodec/dca_core.c || s->audio_mode == DCA_AMODE_STEREO_SUMDIFF) { s 2322 libavcodec/dca_core.c s->float_dsp->butterflies_float(output_samples[DCA_SPEAKER_L], s 2328 libavcodec/dca_core.c if (s->sumdiff_surround && s->audio_mode >= DCA_AMODE_2F2R) { s 2329 libavcodec/dca_core.c s->float_dsp->butterflies_float(output_samples[DCA_SPEAKER_Ls], s 2336 libavcodec/dca_core.c if (s->request_mask != s->ch_mask) { s 2337 libavcodec/dca_core.c ff_dca_downmix_to_stereo_float(s->float_dsp, output_samples, s 2338 libavcodec/dca_core.c s->prim_dmix_coeff, s 2339 libavcodec/dca_core.c nsamples, s->ch_mask); s 2345 libavcodec/dca_core.c int ff_dca_core_filter_frame(DCACoreDecoder *s, AVFrame *frame) s 2347 libavcodec/dca_core.c AVCodecContext *avctx = s->avctx; s 2355 libavcodec/dca_core.c && s->audio_mode > DCA_AMODE_MONO && s->prim_dmix_embedded s 2356 libavcodec/dca_core.c && (s->prim_dmix_type == DCA_DMIX_TYPE_LoRo || s 2357 libavcodec/dca_core.c s->prim_dmix_type == DCA_DMIX_TYPE_LtRt)) s 2358 libavcodec/dca_core.c s->request_mask = DCA_SPEAKER_LAYOUT_STEREO; s 2360 libavcodec/dca_core.c s->request_mask = s->ch_mask; s 2361 libavcodec/dca_core.c if (!ff_dca_set_channel_layout(avctx, s->ch_remap, s->request_mask)) s 2367 libavcodec/dca_core.c ret = filter_frame_fixed(s, frame); s 2369 libavcodec/dca_core.c ret = filter_frame_float(s, frame); s 2374 libavcodec/dca_core.c if (s->ext_audio_mask & DCA_EXSS_MASK) s 2376 libavcodec/dca_core.c else if (s->ext_audio_mask & (DCA_CSS_XXCH | DCA_CSS_XCH)) s 2378 libavcodec/dca_core.c else if (s->ext_audio_mask & DCA_CSS_X96) s 2383 libavcodec/dca_core.c if (s->bit_rate > 3 && !(s->ext_audio_mask & DCA_EXSS_MASK)) s 2384 libavcodec/dca_core.c avctx->bit_rate = s->bit_rate; s 2388 libavcodec/dca_core.c if (s->audio_mode == DCA_AMODE_STEREO_TOTAL || (s->request_mask != s->ch_mask && s 2389 libavcodec/dca_core.c s->prim_dmix_type == DCA_DMIX_TYPE_LtRt)) s 2399 libavcodec/dca_core.c av_cold void ff_dca_core_flush(DCACoreDecoder *s) s 2401 libavcodec/dca_core.c if (s->subband_buffer) { s 2402 libavcodec/dca_core.c erase_adpcm_history(s); s 2403 libavcodec/dca_core.c memset(s->lfe_samples, 0, DCA_LFE_HISTORY * sizeof(int32_t)); s 2406 libavcodec/dca_core.c if (s->x96_subband_buffer) s 2407 libavcodec/dca_core.c erase_x96_adpcm_history(s); s 2409 libavcodec/dca_core.c erase_dsp_history(s); s 2412 libavcodec/dca_core.c av_cold int ff_dca_core_init(DCACoreDecoder *s) s 2414 libavcodec/dca_core.c if (!(s->float_dsp = avpriv_float_dsp_alloc(0))) s 2416 libavcodec/dca_core.c if (!(s->fixed_dsp = avpriv_alloc_fixed_dsp(0))) s 2419 libavcodec/dca_core.c ff_dcadct_init(&s->dcadct); s 2420 libavcodec/dca_core.c if (ff_mdct_init(&s->imdct[0], 6, 1, 1.0) < 0) s 2422 libavcodec/dca_core.c if (ff_mdct_init(&s->imdct[1], 7, 1, 1.0) < 0) s 2424 libavcodec/dca_core.c ff_synth_filter_init(&s->synth); s 2426 libavcodec/dca_core.c s->x96_rand = 1; s 2430 libavcodec/dca_core.c av_cold void ff_dca_core_close(DCACoreDecoder *s) s 2432 libavcodec/dca_core.c av_freep(&s->float_dsp); s 2433 libavcodec/dca_core.c av_freep(&s->fixed_dsp); s 2435 libavcodec/dca_core.c ff_mdct_end(&s->imdct[0]); s 2436 libavcodec/dca_core.c ff_mdct_end(&s->imdct[1]); s 2438 libavcodec/dca_core.c av_freep(&s->subband_buffer); s 2439 libavcodec/dca_core.c s->subband_size = 0; s 2441 libavcodec/dca_core.c av_freep(&s->x96_subband_buffer); s 2442 libavcodec/dca_core.c s->x96_subband_size = 0; s 2444 libavcodec/dca_core.c av_freep(&s->output_buffer); s 2445 libavcodec/dca_core.c s->output_size = 0; s 250 libavcodec/dca_core.h int ff_dca_core_parse(DCACoreDecoder *s, uint8_t *data, int size); s 251 libavcodec/dca_core.h int ff_dca_core_parse_exss(DCACoreDecoder *s, uint8_t *data, DCAExssAsset *asset); s 252 libavcodec/dca_core.h int ff_dca_core_filter_fixed(DCACoreDecoder *s, int x96_synth); s 253 libavcodec/dca_core.h int ff_dca_core_filter_frame(DCACoreDecoder *s, AVFrame *frame); s 254 libavcodec/dca_core.h av_cold void ff_dca_core_flush(DCACoreDecoder *s); s 255 libavcodec/dca_core.h av_cold int ff_dca_core_init(DCACoreDecoder *s); s 256 libavcodec/dca_core.h av_cold void ff_dca_core_close(DCACoreDecoder *s); s 23 libavcodec/dca_exss.c static void parse_xll_parameters(DCAExssParser *s, DCAExssAsset *asset) s 26 libavcodec/dca_exss.c asset->xll_size = get_bits(&s->gb, s->exss_size_nbits) + 1; s 29 libavcodec/dca_exss.c if (asset->xll_sync_present = get_bits1(&s->gb)) { s 33 libavcodec/dca_exss.c skip_bits(&s->gb, 4); s 36 libavcodec/dca_exss.c xll_delay_nbits = get_bits(&s->gb, 5) + 1; s 39 libavcodec/dca_exss.c asset->xll_delay_nframes = get_bits_long(&s->gb, xll_delay_nbits); s 42 libavcodec/dca_exss.c asset->xll_sync_offset = get_bits(&s->gb, s->exss_size_nbits); s 49 libavcodec/dca_exss.c static void parse_lbr_parameters(DCAExssParser *s, DCAExssAsset *asset) s 52 libavcodec/dca_exss.c asset->lbr_size = get_bits(&s->gb, 14) + 1; s 55 libavcodec/dca_exss.c if (get_bits1(&s->gb)) s 57 libavcodec/dca_exss.c skip_bits(&s->gb, 2); s 60 libavcodec/dca_exss.c static int parse_descriptor(DCAExssParser *s, DCAExssAsset *asset) s 62 libavcodec/dca_exss.c int i, j, drc_present, descr_size, descr_pos = get_bits_count(&s->gb); s 65 libavcodec/dca_exss.c descr_size = get_bits(&s->gb, 9) + 1; s 68 libavcodec/dca_exss.c asset->asset_index = get_bits(&s->gb, 3); s 74 libavcodec/dca_exss.c if (s->static_fields_present) { s 76 libavcodec/dca_exss.c if (get_bits1(&s->gb)) s 78 libavcodec/dca_exss.c skip_bits(&s->gb, 4); s 81 libavcodec/dca_exss.c if (get_bits1(&s->gb)) s 83 libavcodec/dca_exss.c skip_bits(&s->gb, 24); s 86 libavcodec/dca_exss.c if (get_bits1(&s->gb)) { s 88 libavcodec/dca_exss.c int text_size = get_bits(&s->gb, 10) + 1; s 91 libavcodec/dca_exss.c if (get_bits_left(&s->gb) < text_size * 8) s 95 libavcodec/dca_exss.c skip_bits_long(&s->gb, text_size * 8); s 99 libavcodec/dca_exss.c asset->pcm_bit_res = get_bits(&s->gb, 5) + 1; s 102 libavcodec/dca_exss.c asset->max_sample_rate = ff_dca_sampling_freqs[get_bits(&s->gb, 4)]; s 105 libavcodec/dca_exss.c asset->nchannels_total = get_bits(&s->gb, 8) + 1; s 108 libavcodec/dca_exss.c if (asset->one_to_one_map_ch_to_spkr = get_bits1(&s->gb)) { s 114 libavcodec/dca_exss.c asset->embedded_stereo = asset->nchannels_total > 2 && get_bits1(&s->gb); s 117 libavcodec/dca_exss.c asset->embedded_6ch = asset->nchannels_total > 6 && get_bits1(&s->gb); s 120 libavcodec/dca_exss.c if (asset->spkr_mask_enabled = get_bits1(&s->gb)) { s 122 libavcodec/dca_exss.c spkr_mask_nbits = (get_bits(&s->gb, 2) + 1) << 2; s 125 libavcodec/dca_exss.c asset->spkr_mask = get_bits(&s->gb, spkr_mask_nbits); s 129 libavcodec/dca_exss.c if ((spkr_remap_nsets = get_bits(&s->gb, 3)) && !spkr_mask_nbits) { s 130 libavcodec/dca_exss.c if (s->avctx) s 131 libavcodec/dca_exss.c av_log(s->avctx, AV_LOG_ERROR, "Speaker mask disabled yet there are remapping sets\n"); s 137 libavcodec/dca_exss.c nspeakers[i] = ff_dca_count_chs_for_mask(get_bits(&s->gb, spkr_mask_nbits)); s 141 libavcodec/dca_exss.c int nch_for_remaps = get_bits(&s->gb, 5) + 1; s 145 libavcodec/dca_exss.c int remap_ch_mask = get_bits_long(&s->gb, nch_for_remaps); s 148 libavcodec/dca_exss.c skip_bits_long(&s->gb, av_popcount(remap_ch_mask) * 5); s 158 libavcodec/dca_exss.c asset->representation_type = get_bits(&s->gb, 3); s 167 libavcodec/dca_exss.c drc_present = get_bits1(&s->gb); s 171 libavcodec/dca_exss.c skip_bits(&s->gb, 8); s 174 libavcodec/dca_exss.c if (get_bits1(&s->gb)) s 176 libavcodec/dca_exss.c skip_bits(&s->gb, 5); s 180 libavcodec/dca_exss.c skip_bits(&s->gb, 8); s 183 libavcodec/dca_exss.c if (s->mix_metadata_enabled && get_bits1(&s->gb)) { s 187 libavcodec/dca_exss.c skip_bits1(&s->gb); s 190 libavcodec/dca_exss.c skip_bits(&s->gb, 6); s 193 libavcodec/dca_exss.c if (get_bits(&s->gb, 2) == 3) s 195 libavcodec/dca_exss.c skip_bits(&s->gb, 8); s 198 libavcodec/dca_exss.c skip_bits(&s->gb, 3); s 202 libavcodec/dca_exss.c if (get_bits1(&s->gb)) s 203 libavcodec/dca_exss.c for (i = 0; i < s->nmixoutconfigs; i++) s 204 libavcodec/dca_exss.c skip_bits_long(&s->gb, 6 * s->nmixoutchs[i]); s 206 libavcodec/dca_exss.c skip_bits_long(&s->gb, 6 * s->nmixoutconfigs); s 214 libavcodec/dca_exss.c for (i = 0; i < s->nmixoutconfigs; i++) { s 215 libavcodec/dca_exss.c if (!s->nmixoutchs[i]) { s 216 libavcodec/dca_exss.c if (s->avctx) s 217 libavcodec/dca_exss.c av_log(s->avctx, AV_LOG_ERROR, "Invalid speaker layout mask for mixing configuration\n"); s 222 libavcodec/dca_exss.c int mix_map_mask = get_bits(&s->gb, s->nmixoutchs[i]); s 225 libavcodec/dca_exss.c skip_bits_long(&s->gb, av_popcount(mix_map_mask) * 6); s 235 libavcodec/dca_exss.c asset->coding_mode = get_bits(&s->gb, 2); s 240 libavcodec/dca_exss.c asset->extension_mask = get_bits(&s->gb, 12); s 244 libavcodec/dca_exss.c asset->core_size = get_bits(&s->gb, 14) + 1; s 246 libavcodec/dca_exss.c if (get_bits1(&s->gb)) s 248 libavcodec/dca_exss.c skip_bits(&s->gb, 2); s 253 libavcodec/dca_exss.c asset->xbr_size = get_bits(&s->gb, 14) + 1; s 257 libavcodec/dca_exss.c asset->xxch_size = get_bits(&s->gb, 14) + 1; s 261 libavcodec/dca_exss.c asset->x96_size = get_bits(&s->gb, 12) + 1; s 264 libavcodec/dca_exss.c parse_lbr_parameters(s, asset); s 267 libavcodec/dca_exss.c parse_xll_parameters(s, asset); s 270 libavcodec/dca_exss.c skip_bits(&s->gb, 16); s 273 libavcodec/dca_exss.c skip_bits(&s->gb, 16); s 278 libavcodec/dca_exss.c parse_xll_parameters(s, asset); s 283 libavcodec/dca_exss.c parse_lbr_parameters(s, asset); s 290 libavcodec/dca_exss.c skip_bits(&s->gb, 14); s 293 libavcodec/dca_exss.c skip_bits(&s->gb, 8); s 296 libavcodec/dca_exss.c if (get_bits1(&s->gb)) s 298 libavcodec/dca_exss.c skip_bits(&s->gb, 3); s 304 libavcodec/dca_exss.c asset->hd_stream_id = get_bits(&s->gb, 3); s 313 libavcodec/dca_exss.c if (ff_dca_seek_bits(&s->gb, descr_pos + descr_size * 8)) { s 314 libavcodec/dca_exss.c if (s->avctx) s 315 libavcodec/dca_exss.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of EXSS asset descriptor\n"); s 378 libavcodec/dca_exss.c int ff_dca_exss_parse(DCAExssParser *s, const uint8_t *data, int size) s 382 libavcodec/dca_exss.c if ((ret = init_get_bits8(&s->gb, data, size)) < 0) s 386 libavcodec/dca_exss.c skip_bits_long(&s->gb, 32); s 389 libavcodec/dca_exss.c skip_bits(&s->gb, 8); s 392 libavcodec/dca_exss.c s->exss_index = get_bits(&s->gb, 2); s 395 libavcodec/dca_exss.c wide_hdr = get_bits1(&s->gb); s 398 libavcodec/dca_exss.c header_size = get_bits(&s->gb, 8 + 4 * wide_hdr) + 1; s 401 libavcodec/dca_exss.c if (s->avctx && ff_dca_check_crc(s->avctx, &s->gb, 32 + 8, header_size * 8)) { s 402 libavcodec/dca_exss.c av_log(s->avctx, AV_LOG_ERROR, "Invalid EXSS header checksum\n"); s 406 libavcodec/dca_exss.c s->exss_size_nbits = 16 + 4 * wide_hdr; s 409 libavcodec/dca_exss.c s->exss_size = get_bits(&s->gb, s->exss_size_nbits) + 1; s 410 libavcodec/dca_exss.c if (s->exss_size > size) { s 411 libavcodec/dca_exss.c if (s->avctx) s 412 libavcodec/dca_exss.c av_log(s->avctx, AV_LOG_ERROR, "Packet too short for EXSS frame\n"); s 417 libavcodec/dca_exss.c if (s->static_fields_present = get_bits1(&s->gb)) { s 421 libavcodec/dca_exss.c skip_bits(&s->gb, 2); s 424 libavcodec/dca_exss.c skip_bits(&s->gb, 3); s 427 libavcodec/dca_exss.c if (get_bits1(&s->gb)) s 429 libavcodec/dca_exss.c skip_bits_long(&s->gb, 36); s 432 libavcodec/dca_exss.c s->npresents = get_bits(&s->gb, 3) + 1; s 433 libavcodec/dca_exss.c if (s->npresents > 1) { s 434 libavcodec/dca_exss.c if (s->avctx) s 435 libavcodec/dca_exss.c avpriv_request_sample(s->avctx, "%d audio presentations", s->npresents); s 440 libavcodec/dca_exss.c s->nassets = get_bits(&s->gb, 3) + 1; s 441 libavcodec/dca_exss.c if (s->nassets > 1) { s 442 libavcodec/dca_exss.c if (s->avctx) s 443 libavcodec/dca_exss.c avpriv_request_sample(s->avctx, "%d audio assets", s->nassets); s 448 libavcodec/dca_exss.c for (i = 0; i < s->npresents; i++) s 449 libavcodec/dca_exss.c active_exss_mask[i] = get_bits(&s->gb, s->exss_index + 1); s 452 libavcodec/dca_exss.c for (i = 0; i < s->npresents; i++) s 453 libavcodec/dca_exss.c skip_bits_long(&s->gb, av_popcount(active_exss_mask[i]) * 8); s 456 libavcodec/dca_exss.c if (s->mix_metadata_enabled = get_bits1(&s->gb)) { s 460 libavcodec/dca_exss.c skip_bits(&s->gb, 2); s 463 libavcodec/dca_exss.c spkr_mask_nbits = (get_bits(&s->gb, 2) + 1) << 2; s 466 libavcodec/dca_exss.c s->nmixoutconfigs = get_bits(&s->gb, 2) + 1; s 469 libavcodec/dca_exss.c for (i = 0; i < s->nmixoutconfigs; i++) s 470 libavcodec/dca_exss.c s->nmixoutchs[i] = ff_dca_count_chs_for_mask(get_bits(&s->gb, spkr_mask_nbits)); s 473 libavcodec/dca_exss.c s->npresents = 1; s 474 libavcodec/dca_exss.c s->nassets = 1; s 479 libavcodec/dca_exss.c for (i = 0; i < s->nassets; i++) { s 480 libavcodec/dca_exss.c s->assets[i].asset_offset = offset; s 481 libavcodec/dca_exss.c s->assets[i].asset_size = get_bits(&s->gb, s->exss_size_nbits) + 1; s 482 libavcodec/dca_exss.c offset += s->assets[i].asset_size; s 483 libavcodec/dca_exss.c if (offset > s->exss_size) { s 484 libavcodec/dca_exss.c if (s->avctx) s 485 libavcodec/dca_exss.c av_log(s->avctx, AV_LOG_ERROR, "EXSS asset out of bounds\n"); s 491 libavcodec/dca_exss.c for (i = 0; i < s->nassets; i++) { s 492 libavcodec/dca_exss.c if ((ret = parse_descriptor(s, &s->assets[i])) < 0) s 494 libavcodec/dca_exss.c if ((ret = set_exss_offsets(&s->assets[i])) < 0) { s 495 libavcodec/dca_exss.c if (s->avctx) s 496 libavcodec/dca_exss.c av_log(s->avctx, AV_LOG_ERROR, "Invalid extension size in EXSS asset descriptor\n"); s 507 libavcodec/dca_exss.c if (ff_dca_seek_bits(&s->gb, header_size * 8)) { s 508 libavcodec/dca_exss.c if (s->avctx) s 509 libavcodec/dca_exss.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of EXSS header\n"); s 90 libavcodec/dca_exss.h int ff_dca_exss_parse(DCAExssParser *s, const uint8_t *data, int size); s 143 libavcodec/dca_lbr.c static int parse_lfe_24(DCALbrDecoder *s) s 149 libavcodec/dca_lbr.c ps = get_bits(&s->gb, 24); s 154 libavcodec/dca_lbr.c step_i = get_bits(&s->gb, 8); s 156 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid LFE step size index\n"); s 163 libavcodec/dca_lbr.c code = get_bits(&s->gb, 6); s 191 libavcodec/dca_lbr.c s->lfe_data[i] = value * s->lfe_scale; s 197 libavcodec/dca_lbr.c static int parse_lfe_16(DCALbrDecoder *s) s 203 libavcodec/dca_lbr.c ps = get_bits(&s->gb, 16); s 208 libavcodec/dca_lbr.c step_i = get_bits(&s->gb, 8); s 210 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid LFE step size index\n"); s 217 libavcodec/dca_lbr.c code = get_bits(&s->gb, 4); s 241 libavcodec/dca_lbr.c s->lfe_data[i] = value * s->lfe_scale; s 247 libavcodec/dca_lbr.c static int parse_lfe_chunk(DCALbrDecoder *s, LBRChunk *chunk) s 251 libavcodec/dca_lbr.c if (!(s->flags & LBR_FLAG_LFE_PRESENT)) s 257 libavcodec/dca_lbr.c ret = init_get_bits8(&s->gb, chunk->data, chunk->len); s 263 libavcodec/dca_lbr.c return parse_lfe_24(s); s 265 libavcodec/dca_lbr.c return parse_lfe_16(s); s 267 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "LFE chunk too short\n"); s 271 libavcodec/dca_lbr.c static inline int parse_vlc(GetBitContext *s, VLC *vlc, int max_depth) s 273 libavcodec/dca_lbr.c int v = get_vlc2(s, vlc->table, vlc->bits, max_depth); s 277 libavcodec/dca_lbr.c return get_bits(s, get_bits(s, 3) + 1); s 280 libavcodec/dca_lbr.c static int parse_tonal(DCALbrDecoder *s, int group) s 286 libavcodec/dca_lbr.c int ch_nbits = av_ceil_log2(s->nchannels_total); s 290 libavcodec/dca_lbr.c sf_idx = ((s->framenum << group) + sf) & 31; s 291 libavcodec/dca_lbr.c s->tonal_bounds[group][sf_idx][0] = s->ntones; s 295 libavcodec/dca_lbr.c if (get_bits_left(&s->gb) < 1) { s 296 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Tonal group chunk too short\n"); s 300 libavcodec/dca_lbr.c diff = parse_vlc(&s->gb, &ff_dca_vlc_tnl_grp[group], 2); s 302 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid tonal frequency diff\n"); s 306 libavcodec/dca_lbr.c diff = get_bitsz(&s->gb, diff >> 2) + ff_dca_fst_amp[diff]; s 311 libavcodec/dca_lbr.c if (freq >> (5 - group) > s->nsubbands * 4 - 6) { s 312 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid spectral line offset\n"); s 317 libavcodec/dca_lbr.c main_ch = get_bitsz(&s->gb, ch_nbits); s 318 libavcodec/dca_lbr.c main_amp = parse_vlc(&s->gb, &ff_dca_vlc_tnl_scf, 2) s 319 libavcodec/dca_lbr.c + s->tonal_scf[ff_dca_freq_to_sb[freq >> (7 - group)]] s 320 libavcodec/dca_lbr.c + s->limited_range - 2; s 322 libavcodec/dca_lbr.c phs[main_ch] = get_bits(&s->gb, 3); s 325 libavcodec/dca_lbr.c for (ch = 0; ch < s->nchannels_total; ch++) { s 328 libavcodec/dca_lbr.c if (get_bits1(&s->gb)) { s 329 libavcodec/dca_lbr.c amp[ch] = amp[main_ch] - parse_vlc(&s->gb, &ff_dca_vlc_damp, 1); s 330 libavcodec/dca_lbr.c phs[ch] = phs[main_ch] - parse_vlc(&s->gb, &ff_dca_vlc_dph, 1); s 339 libavcodec/dca_lbr.c DCALbrTone *t = &s->tones[s->ntones]; s 340 libavcodec/dca_lbr.c s->ntones = (s->ntones + 1) & (DCA_LBR_TONES - 1); s 349 libavcodec/dca_lbr.c for (ch = 0; ch < s->nchannels; ch++) { s 356 libavcodec/dca_lbr.c s->tonal_bounds[group][sf_idx][1] = s->ntones; s 362 libavcodec/dca_lbr.c static int parse_tonal_chunk(DCALbrDecoder *s, LBRChunk *chunk) s 369 libavcodec/dca_lbr.c ret = init_get_bits8(&s->gb, chunk->data, chunk->len); s 376 libavcodec/dca_lbr.c if (get_bits_left(&s->gb) < 36) { s 377 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Tonal scale factor chunk too short\n"); s 381 libavcodec/dca_lbr.c s->tonal_scf[sb] = get_bits(&s->gb, 6); s 387 libavcodec/dca_lbr.c ret = parse_tonal(s, group); s 395 libavcodec/dca_lbr.c static int parse_tonal_group(DCALbrDecoder *s, LBRChunk *chunk) s 402 libavcodec/dca_lbr.c ret = init_get_bits8(&s->gb, chunk->data, chunk->len); s 406 libavcodec/dca_lbr.c return parse_tonal(s, chunk->id); s 413 libavcodec/dca_lbr.c static int ensure_bits(GetBitContext *s, int n) s 415 libavcodec/dca_lbr.c int left = get_bits_left(s); s 419 libavcodec/dca_lbr.c skip_bits_long(s, left); s 425 libavcodec/dca_lbr.c static int parse_scale_factors(DCALbrDecoder *s, uint8_t *scf) s 430 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 20)) s 434 libavcodec/dca_lbr.c prev = parse_vlc(&s->gb, &ff_dca_vlc_fst_rsd_amp, 2); s 439 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 20)) s 443 libavcodec/dca_lbr.c dist = parse_vlc(&s->gb, &ff_dca_vlc_rsd_apprx, 1) + 1; s 445 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid scale factor distance\n"); s 449 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 20)) s 453 libavcodec/dca_lbr.c next = parse_vlc(&s->gb, &ff_dca_vlc_rsd_amp, 2); s 495 libavcodec/dca_lbr.c static int parse_st_code(GetBitContext *s, int min_v) s 497 libavcodec/dca_lbr.c unsigned int v = parse_vlc(s, &ff_dca_vlc_st_grid, 2) + min_v; s 509 libavcodec/dca_lbr.c static int parse_grid_1_chunk(DCALbrDecoder *s, LBRChunk *chunk, int ch1, int ch2) s 516 libavcodec/dca_lbr.c ret = init_get_bits8(&s->gb, chunk->data, chunk->len); s 521 libavcodec/dca_lbr.c nsubbands = ff_dca_scf_to_grid_1[s->nsubbands - 1] + 1; s 523 libavcodec/dca_lbr.c ret = parse_scale_factors(s, s->grid_1_scf[ch1][sb]); s 526 libavcodec/dca_lbr.c if (ch1 != ch2 && ff_dca_grid_1_to_scf[sb] < s->min_mono_subband) { s 527 libavcodec/dca_lbr.c ret = parse_scale_factors(s, s->grid_1_scf[ch2][sb]); s 533 libavcodec/dca_lbr.c if (get_bits_left(&s->gb) < 1) s 537 libavcodec/dca_lbr.c for (sb = 0; sb < s->nsubbands - 4; sb++) { s 538 libavcodec/dca_lbr.c s->grid_3_avg[ch1][sb] = parse_vlc(&s->gb, &ff_dca_vlc_avg_g3, 2) - 16; s 540 libavcodec/dca_lbr.c if (sb + 4 < s->min_mono_subband) s 541 libavcodec/dca_lbr.c s->grid_3_avg[ch2][sb] = parse_vlc(&s->gb, &ff_dca_vlc_avg_g3, 2) - 16; s 543 libavcodec/dca_lbr.c s->grid_3_avg[ch2][sb] = s->grid_3_avg[ch1][sb]; s 547 libavcodec/dca_lbr.c if (get_bits_left(&s->gb) < 0) { s 548 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "First grid chunk too short\n"); s 556 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 8)) s 559 libavcodec/dca_lbr.c min_v[0] = get_bits(&s->gb, 4); s 560 libavcodec/dca_lbr.c min_v[1] = get_bits(&s->gb, 4); s 562 libavcodec/dca_lbr.c nsubbands = (s->nsubbands - s->min_mono_subband + 3) / 4; s 566 libavcodec/dca_lbr.c s->part_stereo[ch][sb][sf] = parse_st_code(&s->gb, min_v[ch - ch1]); s 568 libavcodec/dca_lbr.c if (get_bits_left(&s->gb) >= 0) s 569 libavcodec/dca_lbr.c s->part_stereo_pres |= 1 << ch1; s 577 libavcodec/dca_lbr.c static int parse_grid_1_sec_ch(DCALbrDecoder *s, int ch2) s 582 libavcodec/dca_lbr.c nsubbands = ff_dca_scf_to_grid_1[s->nsubbands - 1] + 1; s 584 libavcodec/dca_lbr.c if (ff_dca_grid_1_to_scf[sb] >= s->min_mono_subband) { s 585 libavcodec/dca_lbr.c ret = parse_scale_factors(s, s->grid_1_scf[ch2][sb]); s 592 libavcodec/dca_lbr.c for (sb = 0; sb < s->nsubbands - 4; sb++) { s 593 libavcodec/dca_lbr.c if (sb + 4 >= s->min_mono_subband) { s 594 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 20)) s 596 libavcodec/dca_lbr.c s->grid_3_avg[ch2][sb] = parse_vlc(&s->gb, &ff_dca_vlc_avg_g3, 2) - 16; s 603 libavcodec/dca_lbr.c static void parse_grid_3(DCALbrDecoder *s, int ch1, int ch2, int sb, int flag) s 608 libavcodec/dca_lbr.c if ((ch != ch1 && sb + 4 >= s->min_mono_subband) != flag) s 611 libavcodec/dca_lbr.c if (s->grid_3_pres[ch] & (1U << sb)) s 615 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 20)) s 617 libavcodec/dca_lbr.c s->grid_3_scf[ch][sb][i] = parse_vlc(&s->gb, &ff_dca_vlc_grid_3, 2) - 16; s 621 libavcodec/dca_lbr.c s->grid_3_pres[ch] |= 1U << sb; s 625 libavcodec/dca_lbr.c static float lbr_rand(DCALbrDecoder *s, int sb) s 627 libavcodec/dca_lbr.c s->lbr_rand = 1103515245U * s->lbr_rand + 12345U; s 628 libavcodec/dca_lbr.c return s->lbr_rand * s->sb_scf[sb]; s 634 libavcodec/dca_lbr.c static void parse_ch(DCALbrDecoder *s, int ch, int sb, int quant_level, int flag) s 636 libavcodec/dca_lbr.c float *samples = s->time_samples[ch][sb]; s 639 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 20)) s 642 libavcodec/dca_lbr.c coding_method = get_bits1(&s->gb); s 646 libavcodec/dca_lbr.c nblocks = FFMIN(get_bits_left(&s->gb) / 8, DCA_LBR_TIME_SAMPLES / 8); s 648 libavcodec/dca_lbr.c code = get_bits(&s->gb, 8); s 657 libavcodec/dca_lbr.c for (i = 0; i < DCA_LBR_TIME_SAMPLES && get_bits_left(&s->gb) >= 2; i++) { s 658 libavcodec/dca_lbr.c if (get_bits1(&s->gb)) s 659 libavcodec/dca_lbr.c samples[i] = ff_dca_rsd_level_2b[get_bits1(&s->gb)]; s 664 libavcodec/dca_lbr.c nblocks = FFMIN(get_bits_left(&s->gb) / 8, (DCA_LBR_TIME_SAMPLES + 4) / 5); s 666 libavcodec/dca_lbr.c code = ff_dca_rsd_pack_5_in_8[get_bits(&s->gb, 8)]; s 675 libavcodec/dca_lbr.c nblocks = FFMIN(get_bits_left(&s->gb) / 7, (DCA_LBR_TIME_SAMPLES + 2) / 3); s 677 libavcodec/dca_lbr.c code = get_bits(&s->gb, 7); s 685 libavcodec/dca_lbr.c for (i = 0; i < DCA_LBR_TIME_SAMPLES && get_bits_left(&s->gb) >= 6; i++) s 686 libavcodec/dca_lbr.c samples[i] = ff_dca_rsd_level_8[get_vlc2(&s->gb, ff_dca_vlc_rsd.table, 6, 1)]; s 690 libavcodec/dca_lbr.c nblocks = FFMIN(get_bits_left(&s->gb) / 4, DCA_LBR_TIME_SAMPLES); s 692 libavcodec/dca_lbr.c samples[i] = ff_dca_rsd_level_16[get_bits(&s->gb, 4)]; s 699 libavcodec/dca_lbr.c if (flag && get_bits_left(&s->gb) < 20) s 703 libavcodec/dca_lbr.c s->time_samples[ch][sb][i] = lbr_rand(s, sb); s 705 libavcodec/dca_lbr.c s->ch_pres[ch] |= 1U << sb; s 708 libavcodec/dca_lbr.c static int parse_ts(DCALbrDecoder *s, int ch1, int ch2, s 717 libavcodec/dca_lbr.c } else if (flag && sb < s->max_mono_subband) { s 718 libavcodec/dca_lbr.c sb_reorder = s->sb_indices[sb]; s 720 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 28)) s 722 libavcodec/dca_lbr.c sb_reorder = get_bits(&s->gb, s->limited_range + 3); s 725 libavcodec/dca_lbr.c s->sb_indices[sb] = sb_reorder; s 727 libavcodec/dca_lbr.c if (sb_reorder >= s->nsubbands) s 732 libavcodec/dca_lbr.c for (sb_g3 = 0; sb_g3 < s->g3_avg_only_start_sb - 4; sb_g3++) s 733 libavcodec/dca_lbr.c parse_grid_3(s, ch1, ch2, sb_g3, flag); s 735 libavcodec/dca_lbr.c parse_grid_3(s, ch1, ch2, sb_reorder - 4, flag); s 740 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 20)) s 742 libavcodec/dca_lbr.c if (!flag || sb_reorder >= s->max_mono_subband) s 743 libavcodec/dca_lbr.c s->sec_ch_sbms[ch1 / 2][sb_reorder] = get_bits(&s->gb, 8); s 744 libavcodec/dca_lbr.c if (flag && sb_reorder >= s->min_mono_subband) s 745 libavcodec/dca_lbr.c s->sec_ch_lrms[ch1 / 2][sb_reorder] = get_bits(&s->gb, 8); s 748 libavcodec/dca_lbr.c quant_level = s->quant_levels[ch1 / 2][sb]; s 753 libavcodec/dca_lbr.c if (sb < s->max_mono_subband && sb_reorder >= s->min_mono_subband) { s 755 libavcodec/dca_lbr.c parse_ch(s, ch1, sb_reorder, quant_level, 0); s 757 libavcodec/dca_lbr.c parse_ch(s, ch2, sb_reorder, quant_level, 1); s 759 libavcodec/dca_lbr.c parse_ch(s, ch1, sb_reorder, quant_level, 0); s 761 libavcodec/dca_lbr.c parse_ch(s, ch2, sb_reorder, quant_level, 0); s 787 libavcodec/dca_lbr.c static int parse_lpc(DCALbrDecoder *s, int ch1, int ch2, int start_sb, int end_sb) s 789 libavcodec/dca_lbr.c int f = s->framenum & 1; s 796 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 4 * ncodes)) s 799 libavcodec/dca_lbr.c codes[i] = get_bits(&s->gb, 4); s 801 libavcodec/dca_lbr.c convert_lpc(s->lpc_coeff[f][ch][sb][i], &codes[i * 8]); s 808 libavcodec/dca_lbr.c static int parse_high_res_grid(DCALbrDecoder *s, LBRChunk *chunk, int ch1, int ch2) s 816 libavcodec/dca_lbr.c ret = init_get_bits8(&s->gb, chunk->data, chunk->len); s 821 libavcodec/dca_lbr.c profile = get_bits(&s->gb, 8); s 830 libavcodec/dca_lbr.c for (sb = 0; sb < s->nsubbands; sb++) { s 831 libavcodec/dca_lbr.c int f = sb * s->limited_rate / s->nsubbands; s 847 libavcodec/dca_lbr.c s->quant_levels[ch1 / 2][sb] = quant_levels[ff_dca_sb_reorder[max_sb][sb]]; s 848 libavcodec/dca_lbr.c for (; sb < s->nsubbands; sb++) s 849 libavcodec/dca_lbr.c s->quant_levels[ch1 / 2][sb] = quant_levels[sb]; s 852 libavcodec/dca_lbr.c ret = parse_lpc(s, ch1, ch2, 0, 2); s 857 libavcodec/dca_lbr.c ret = parse_ts(s, ch1, ch2, 0, 2, 0); s 864 libavcodec/dca_lbr.c if ((ret = parse_scale_factors(s, s->grid_1_scf[ch][sb])) < 0) s 870 libavcodec/dca_lbr.c static int parse_grid_2(DCALbrDecoder *s, int ch1, int ch2, s 875 libavcodec/dca_lbr.c nsubbands = ff_dca_scf_to_grid_2[s->nsubbands - 1] + 1; s 881 libavcodec/dca_lbr.c uint8_t *g2_scf = s->grid_2_scf[ch][sb]; s 883 libavcodec/dca_lbr.c if ((ch != ch1 && ff_dca_grid_2_to_scf[sb] >= s->min_mono_subband) != flag) { s 885 libavcodec/dca_lbr.c memcpy(g2_scf, s->grid_2_scf[ch1][sb], 64); s 891 libavcodec/dca_lbr.c if (get_bits_left(&s->gb) < 1) { s 896 libavcodec/dca_lbr.c if (get_bits1(&s->gb)) { s 898 libavcodec/dca_lbr.c if (ensure_bits(&s->gb, 20)) s 900 libavcodec/dca_lbr.c g2_scf[j] = parse_vlc(&s->gb, &ff_dca_vlc_grid_2, 2); s 912 libavcodec/dca_lbr.c static int parse_ts1_chunk(DCALbrDecoder *s, LBRChunk *chunk, int ch1, int ch2) s 917 libavcodec/dca_lbr.c if ((ret = init_get_bits8(&s->gb, chunk->data, chunk->len)) < 0) s 919 libavcodec/dca_lbr.c if ((ret = parse_lpc(s, ch1, ch2, 2, 3)) < 0) s 921 libavcodec/dca_lbr.c if ((ret = parse_ts(s, ch1, ch2, 2, 4, 0)) < 0) s 923 libavcodec/dca_lbr.c if ((ret = parse_grid_2(s, ch1, ch2, 0, 1, 0)) < 0) s 925 libavcodec/dca_lbr.c if ((ret = parse_ts(s, ch1, ch2, 4, 6, 0)) < 0) s 930 libavcodec/dca_lbr.c static int parse_ts2_chunk(DCALbrDecoder *s, LBRChunk *chunk, int ch1, int ch2) s 936 libavcodec/dca_lbr.c if ((ret = init_get_bits8(&s->gb, chunk->data, chunk->len)) < 0) s 938 libavcodec/dca_lbr.c if ((ret = parse_grid_2(s, ch1, ch2, 1, 3, 0)) < 0) s 940 libavcodec/dca_lbr.c if ((ret = parse_ts(s, ch1, ch2, 6, s->max_mono_subband, 0)) < 0) s 943 libavcodec/dca_lbr.c if ((ret = parse_grid_1_sec_ch(s, ch2)) < 0) s 945 libavcodec/dca_lbr.c if ((ret = parse_grid_2(s, ch1, ch2, 0, 3, 1)) < 0) s 948 libavcodec/dca_lbr.c if ((ret = parse_ts(s, ch1, ch2, s->min_mono_subband, s->nsubbands, 1)) < 0) s 953 libavcodec/dca_lbr.c static int init_sample_rate(DCALbrDecoder *s) s 955 libavcodec/dca_lbr.c double scale = (-1.0 / (1 << 17)) * sqrt(1 << (2 - s->limited_range)); s 956 libavcodec/dca_lbr.c int i, br_per_ch = s->bit_rate_scaled / s->nchannels_total; s 959 libavcodec/dca_lbr.c ff_mdct_end(&s->imdct); s 961 libavcodec/dca_lbr.c ret = ff_mdct_init(&s->imdct, s->freq_range + 6, 1, scale); s 965 libavcodec/dca_lbr.c for (i = 0; i < 32 << s->freq_range; i++) s 966 libavcodec/dca_lbr.c s->window[i] = ff_dca_long_window[i << (2 - s->freq_range)]; s 977 libavcodec/dca_lbr.c for (i = 0; i < s->nsubbands; i++) { s 979 libavcodec/dca_lbr.c s->sb_scf[i] = 0; // The first two subbands are always zero s 981 libavcodec/dca_lbr.c s->sb_scf[i] = (i - 1) * 0.25 * 0.785 * scale; s 983 libavcodec/dca_lbr.c s->sb_scf[i] = 0.785 * scale; s 986 libavcodec/dca_lbr.c s->lfe_scale = (16 << s->freq_range) * 0.0000078265894; s 991 libavcodec/dca_lbr.c static int alloc_sample_buffer(DCALbrDecoder *s) s 995 libavcodec/dca_lbr.c int nsamples = nchsamples * s->nchannels * s->nsubbands; s 1000 libavcodec/dca_lbr.c av_fast_mallocz(&s->ts_buffer, &s->ts_size, nsamples * sizeof(float)); s 1001 libavcodec/dca_lbr.c if (!s->ts_buffer) s 1004 libavcodec/dca_lbr.c ptr = s->ts_buffer + DCA_LBR_TIME_HISTORY; s 1005 libavcodec/dca_lbr.c for (ch = 0; ch < s->nchannels; ch++) { s 1006 libavcodec/dca_lbr.c for (sb = 0; sb < s->nsubbands; sb++) { s 1007 libavcodec/dca_lbr.c s->time_samples[ch][sb] = ptr; s 1015 libavcodec/dca_lbr.c static int parse_decoder_init(DCALbrDecoder *s, GetByteContext *gb) s 1017 libavcodec/dca_lbr.c int old_rate = s->sample_rate; s 1018 libavcodec/dca_lbr.c int old_band_limit = s->band_limit; s 1019 libavcodec/dca_lbr.c int old_nchannels = s->nchannels; s 1026 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid LBR sample rate\n"); s 1029 libavcodec/dca_lbr.c s->sample_rate = ff_dca_sampling_freqs[sr_code]; s 1030 libavcodec/dca_lbr.c if (s->sample_rate > 48000) { s 1031 libavcodec/dca_lbr.c avpriv_report_missing_feature(s->avctx, "%d Hz LBR sample rate", s->sample_rate); s 1036 libavcodec/dca_lbr.c s->ch_mask = bytestream2_get_le16(gb); s 1037 libavcodec/dca_lbr.c if (!(s->ch_mask & 0x7)) { s 1038 libavcodec/dca_lbr.c avpriv_report_missing_feature(s->avctx, "LBR channel mask %#x", s->ch_mask); s 1041 libavcodec/dca_lbr.c if ((s->ch_mask & 0xfff0) && !(s->warned & 1)) { s 1042 libavcodec/dca_lbr.c avpriv_report_missing_feature(s->avctx, "LBR channel mask %#x", s->ch_mask); s 1043 libavcodec/dca_lbr.c s->warned |= 1; s 1049 libavcodec/dca_lbr.c avpriv_report_missing_feature(s->avctx, "LBR stream version %#x", version); s 1054 libavcodec/dca_lbr.c s->flags = bytestream2_get_byte(gb); s 1055 libavcodec/dca_lbr.c if (s->flags & LBR_FLAG_DMIX_MULTI_CH) { s 1056 libavcodec/dca_lbr.c avpriv_report_missing_feature(s->avctx, "LBR multi-channel downmix"); s 1059 libavcodec/dca_lbr.c if ((s->flags & LBR_FLAG_LFE_PRESENT) && s->sample_rate != 48000) { s 1060 libavcodec/dca_lbr.c if (!(s->warned & 2)) { s 1061 libavcodec/dca_lbr.c avpriv_report_missing_feature(s->avctx, "%d Hz LFE interpolation", s->sample_rate); s 1062 libavcodec/dca_lbr.c s->warned |= 2; s 1064 libavcodec/dca_lbr.c s->flags &= ~LBR_FLAG_LFE_PRESENT; s 1071 libavcodec/dca_lbr.c s->bit_rate_orig = bytestream2_get_le16(gb) | ((bit_rate_hi & 0x0F) << 16); s 1074 libavcodec/dca_lbr.c s->bit_rate_scaled = bytestream2_get_le16(gb) | ((bit_rate_hi & 0xF0) << 12); s 1077 libavcodec/dca_lbr.c s->nchannels_total = ff_dca_count_chs_for_mask(s->ch_mask & ~DCA_SPEAKER_PAIR_LFE1); s 1078 libavcodec/dca_lbr.c s->nchannels = FFMIN(s->nchannels_total, DCA_LBR_CHANNELS); s 1081 libavcodec/dca_lbr.c switch (s->flags & LBR_FLAG_BAND_LIMIT_MASK) { s 1083 libavcodec/dca_lbr.c s->band_limit = 0; s 1086 libavcodec/dca_lbr.c s->band_limit = 1; s 1089 libavcodec/dca_lbr.c s->band_limit = 2; s 1092 libavcodec/dca_lbr.c avpriv_report_missing_feature(s->avctx, "LBR band limit %#x", s->flags & LBR_FLAG_BAND_LIMIT_MASK); s 1097 libavcodec/dca_lbr.c s->freq_range = ff_dca_freq_ranges[sr_code]; s 1100 libavcodec/dca_lbr.c if (s->bit_rate_orig >= 44000 * (s->nchannels_total + 2)) s 1101 libavcodec/dca_lbr.c s->res_profile = 2; s 1102 libavcodec/dca_lbr.c else if (s->bit_rate_orig >= 25000 * (s->nchannels_total + 2)) s 1103 libavcodec/dca_lbr.c s->res_profile = 1; s 1105 libavcodec/dca_lbr.c s->res_profile = 0; s 1108 libavcodec/dca_lbr.c s->limited_rate = s->sample_rate >> s->band_limit; s 1109 libavcodec/dca_lbr.c s->limited_range = s->freq_range - s->band_limit; s 1110 libavcodec/dca_lbr.c if (s->limited_range < 0) { s 1111 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid LBR band limit for frequency range\n"); s 1115 libavcodec/dca_lbr.c s->nsubbands = 8 << s->limited_range; s 1117 libavcodec/dca_lbr.c s->g3_avg_only_start_sb = s->nsubbands * ff_dca_avg_g3_freqs[s->res_profile] / (s->limited_rate / 2); s 1118 libavcodec/dca_lbr.c if (s->g3_avg_only_start_sb > s->nsubbands) s 1119 libavcodec/dca_lbr.c s->g3_avg_only_start_sb = s->nsubbands; s 1121 libavcodec/dca_lbr.c s->min_mono_subband = s->nsubbands * 2000 / (s->limited_rate / 2); s 1122 libavcodec/dca_lbr.c if (s->min_mono_subband > s->nsubbands) s 1123 libavcodec/dca_lbr.c s->min_mono_subband = s->nsubbands; s 1125 libavcodec/dca_lbr.c s->max_mono_subband = s->nsubbands * 14000 / (s->limited_rate / 2); s 1126 libavcodec/dca_lbr.c if (s->max_mono_subband > s->nsubbands) s 1127 libavcodec/dca_lbr.c s->max_mono_subband = s->nsubbands; s 1130 libavcodec/dca_lbr.c if ((old_rate != s->sample_rate || old_band_limit != s->band_limit) && init_sample_rate(s) < 0) s 1134 libavcodec/dca_lbr.c if (s->flags & LBR_FLAG_DMIX_STEREO) { s 1135 libavcodec/dca_lbr.c DCAContext *dca = s->avctx->priv_data; s 1137 libavcodec/dca_lbr.c if (s->nchannels_total < 3 || s->nchannels_total > DCA_LBR_CHANNELS_TOTAL - 2) { s 1138 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid number of channels for LBR stereo downmix\n"); s 1143 libavcodec/dca_lbr.c if (dca->request_channel_layout != DCA_SPEAKER_LAYOUT_STEREO && !(s->warned & 4)) { s 1144 libavcodec/dca_lbr.c avpriv_report_missing_feature(s->avctx, "Embedded LBR stereo downmix"); s 1145 libavcodec/dca_lbr.c s->warned |= 4; s 1149 libavcodec/dca_lbr.c s->nchannels_total += 2; s 1150 libavcodec/dca_lbr.c s->nchannels = 2; s 1151 libavcodec/dca_lbr.c s->ch_mask = DCA_SPEAKER_PAIR_LR; s 1152 libavcodec/dca_lbr.c s->flags &= ~LBR_FLAG_LFE_PRESENT; s 1156 libavcodec/dca_lbr.c if (old_rate != s->sample_rate s 1157 libavcodec/dca_lbr.c || old_band_limit != s->band_limit s 1158 libavcodec/dca_lbr.c || old_nchannels != s->nchannels) { s 1159 libavcodec/dca_lbr.c if (alloc_sample_buffer(s) < 0) s 1161 libavcodec/dca_lbr.c ff_dca_lbr_flush(s); s 1167 libavcodec/dca_lbr.c int ff_dca_lbr_parse(DCALbrDecoder *s, uint8_t *data, DCAExssAsset *asset) s 1187 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid LBR sync word\n"); s 1194 libavcodec/dca_lbr.c if (!s->sample_rate) { s 1195 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "LBR decoder not initialized\n"); s 1200 libavcodec/dca_lbr.c if ((ret = parse_decoder_init(s, &gb)) < 0) { s 1201 libavcodec/dca_lbr.c s->sample_rate = 0; s 1206 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid LBR header type\n"); s 1216 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_WARNING, "LBR frame chunk was truncated\n"); s 1217 libavcodec/dca_lbr.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 1225 libavcodec/dca_lbr.c if (s->avctx->err_recognition & (AV_EF_CRCCHECK | AV_EF_CAREFUL)) { s 1233 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_WARNING, "Invalid LBR checksum\n"); s 1234 libavcodec/dca_lbr.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 1244 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid LBR frame chunk ID\n"); s 1249 libavcodec/dca_lbr.c memset(s->quant_levels, 0, sizeof(s->quant_levels)); s 1250 libavcodec/dca_lbr.c memset(s->sb_indices, 0xff, sizeof(s->sb_indices)); s 1251 libavcodec/dca_lbr.c memset(s->sec_ch_sbms, 0, sizeof(s->sec_ch_sbms)); s 1252 libavcodec/dca_lbr.c memset(s->sec_ch_lrms, 0, sizeof(s->sec_ch_lrms)); s 1253 libavcodec/dca_lbr.c memset(s->ch_pres, 0, sizeof(s->ch_pres)); s 1254 libavcodec/dca_lbr.c memset(s->grid_1_scf, 0, sizeof(s->grid_1_scf)); s 1255 libavcodec/dca_lbr.c memset(s->grid_2_scf, 0, sizeof(s->grid_2_scf)); s 1256 libavcodec/dca_lbr.c memset(s->grid_3_avg, 0, sizeof(s->grid_3_avg)); s 1257 libavcodec/dca_lbr.c memset(s->grid_3_scf, 0, sizeof(s->grid_3_scf)); s 1258 libavcodec/dca_lbr.c memset(s->grid_3_pres, 0, sizeof(s->grid_3_pres)); s 1259 libavcodec/dca_lbr.c memset(s->tonal_scf, 0, sizeof(s->tonal_scf)); s 1260 libavcodec/dca_lbr.c memset(s->lfe_data, 0, sizeof(s->lfe_data)); s 1261 libavcodec/dca_lbr.c s->part_stereo_pres = 0; s 1262 libavcodec/dca_lbr.c s->framenum = (s->framenum + 1) & 31; s 1264 libavcodec/dca_lbr.c for (ch = 0; ch < s->nchannels; ch++) { s 1265 libavcodec/dca_lbr.c for (sb = 0; sb < s->nsubbands / 4; sb++) { s 1266 libavcodec/dca_lbr.c s->part_stereo[ch][sb][0] = s->part_stereo[ch][sb][4]; s 1267 libavcodec/dca_lbr.c s->part_stereo[ch][sb][4] = 16; s 1271 libavcodec/dca_lbr.c memset(s->lpc_coeff[s->framenum & 1], 0, sizeof(s->lpc_coeff[0])); s 1275 libavcodec/dca_lbr.c int sf_idx = ((s->framenum << group) + sf) & 31; s 1276 libavcodec/dca_lbr.c s->tonal_bounds[group][sf_idx][0] = s 1277 libavcodec/dca_lbr.c s->tonal_bounds[group][sf_idx][1] = s->ntones; s 1289 libavcodec/dca_lbr.c av_log(s->avctx, AV_LOG_WARNING, "LBR chunk %#x was truncated\n", chunk_id); s 1290 libavcodec/dca_lbr.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 1367 libavcodec/dca_lbr.c ret = parse_lfe_chunk(s, &chunk.lfe); s 1369 libavcodec/dca_lbr.c ret |= parse_tonal_chunk(s, &chunk.tonal); s 1372 libavcodec/dca_lbr.c ret |= parse_tonal_group(s, &chunk.tonal_grp[i]); s 1374 libavcodec/dca_lbr.c for (i = 0; i < (s->nchannels + 1) / 2; i++) { s 1376 libavcodec/dca_lbr.c int ch2 = FFMIN(ch1 + 1, s->nchannels - 1); s 1378 libavcodec/dca_lbr.c if (parse_grid_1_chunk (s, &chunk.grid1 [i], ch1, ch2) < 0 || s 1379 libavcodec/dca_lbr.c parse_high_res_grid(s, &chunk.hr_grid[i], ch1, ch2) < 0) { s 1388 libavcodec/dca_lbr.c if (parse_ts1_chunk(s, &chunk.ts1[i], ch1, ch2) < 0 || s 1389 libavcodec/dca_lbr.c parse_ts2_chunk(s, &chunk.ts2[i], ch1, ch2) < 0) { s 1395 libavcodec/dca_lbr.c if (ret < 0 && (s->avctx->err_recognition & AV_EF_EXPLODE)) s 1404 libavcodec/dca_lbr.c static void decode_grid(DCALbrDecoder *s, int ch1, int ch2) s 1409 libavcodec/dca_lbr.c for (sb = 0; sb < s->nsubbands; sb++) { s 1412 libavcodec/dca_lbr.c uint8_t *g1_scf_a = s->grid_1_scf[ch][g1_sb ]; s 1413 libavcodec/dca_lbr.c uint8_t *g1_scf_b = s->grid_1_scf[ch][g1_sb + 1]; s 1418 libavcodec/dca_lbr.c uint8_t *hr_scf = s->high_res_scf[ch][sb]; s 1426 libavcodec/dca_lbr.c int8_t *g3_scf = s->grid_3_scf[ch][sb - 4]; s 1427 libavcodec/dca_lbr.c int g3_avg = s->grid_3_avg[ch][sb - 4]; s 1441 libavcodec/dca_lbr.c static void random_ts(DCALbrDecoder *s, int ch1, int ch2) s 1446 libavcodec/dca_lbr.c for (sb = 0; sb < s->nsubbands; sb++) { s 1447 libavcodec/dca_lbr.c float *samples = s->time_samples[ch][sb]; s 1449 libavcodec/dca_lbr.c if (s->ch_pres[ch] & (1U << sb)) s 1457 libavcodec/dca_lbr.c samples[i] = lbr_rand(s, sb); s 1464 libavcodec/dca_lbr.c float *other = &s->time_samples[ch][k][i * 8]; s 1470 libavcodec/dca_lbr.c samples[j] = (accum[j] * 0.25f + 0.5f) * lbr_rand(s, sb); s 1489 libavcodec/dca_lbr.c static void synth_lpc(DCALbrDecoder *s, int ch1, int ch2, int sb) s 1491 libavcodec/dca_lbr.c int f = s->framenum & 1; s 1495 libavcodec/dca_lbr.c float *samples = s->time_samples[ch][sb]; s 1497 libavcodec/dca_lbr.c if (!(s->ch_pres[ch] & (1U << sb))) s 1501 libavcodec/dca_lbr.c predict(samples, s->lpc_coeff[f^1][ch][sb][1], 16); s 1502 libavcodec/dca_lbr.c predict(samples + 16, s->lpc_coeff[f ][ch][sb][0], 64); s 1503 libavcodec/dca_lbr.c predict(samples + 80, s->lpc_coeff[f ][ch][sb][1], 48); s 1505 libavcodec/dca_lbr.c predict(samples, s->lpc_coeff[f^1][ch][sb][0], 16); s 1506 libavcodec/dca_lbr.c predict(samples + 16, s->lpc_coeff[f ][ch][sb][0], 112); s 1511 libavcodec/dca_lbr.c static void filter_ts(DCALbrDecoder *s, int ch1, int ch2) s 1515 libavcodec/dca_lbr.c for (sb = 0; sb < s->nsubbands; sb++) { s 1518 libavcodec/dca_lbr.c float *samples = s->time_samples[ch][sb]; s 1519 libavcodec/dca_lbr.c uint8_t *hr_scf = s->high_res_scf[ch][sb]; s 1529 libavcodec/dca_lbr.c uint8_t *g2_scf = s->grid_2_scf[ch][ff_dca_scf_to_grid_2[sb]]; s 1542 libavcodec/dca_lbr.c float *samples_l = s->time_samples[ch1][sb]; s 1543 libavcodec/dca_lbr.c float *samples_r = s->time_samples[ch2][sb]; s 1544 libavcodec/dca_lbr.c int ch2_pres = s->ch_pres[ch2] & (1U << sb); s 1547 libavcodec/dca_lbr.c int sbms = (s->sec_ch_sbms[ch1 / 2][sb] >> i) & 1; s 1548 libavcodec/dca_lbr.c int lrms = (s->sec_ch_lrms[ch1 / 2][sb] >> i) & 1; s 1550 libavcodec/dca_lbr.c if (sb >= s->min_mono_subband) { s 1566 libavcodec/dca_lbr.c if (sbms && (s->part_stereo_pres & (1 << ch1))) { s 1589 libavcodec/dca_lbr.c synth_lpc(s, ch1, ch2, sb); s 1596 libavcodec/dca_lbr.c static void decode_part_stereo(DCALbrDecoder *s, int ch1, int ch2) s 1601 libavcodec/dca_lbr.c for (sb = s->min_mono_subband; sb < s->nsubbands; sb++) { s 1602 libavcodec/dca_lbr.c uint8_t *pt_st = s->part_stereo[ch][(sb - s->min_mono_subband) / 4]; s 1603 libavcodec/dca_lbr.c float *samples = s->time_samples[ch][sb]; s 1605 libavcodec/dca_lbr.c if (s->ch_pres[ch2] & (1U << sb)) s 1622 libavcodec/dca_lbr.c static void synth_tones(DCALbrDecoder *s, int ch, float *values, s 1630 libavcodec/dca_lbr.c start = s->tonal_bounds[group][group_sf][0]; s 1631 libavcodec/dca_lbr.c count = (s->tonal_bounds[group][group_sf][1] - start) & (DCA_LBR_TONES - 1); s 1634 libavcodec/dca_lbr.c DCALbrTone *t = &s->tones[(start + i) & (DCA_LBR_TONES - 1)]; s 1639 libavcodec/dca_lbr.c float s = amp * cos_tab[(t->phs[ch] + 64) & 255]; s 1647 libavcodec/dca_lbr.c values[3] += cf[0] * -s; s 1649 libavcodec/dca_lbr.c values[1] += cf[2] * s; s 1653 libavcodec/dca_lbr.c values[2] += cf[0] * -s; s 1655 libavcodec/dca_lbr.c values[0] += cf[2] * s; s 1658 libavcodec/dca_lbr.c values[1] += cf[0] * -s; s 1662 libavcodec/dca_lbr.c values[0] += cf[0] * -s; s 1666 libavcodec/dca_lbr.c values[x_freq - 5] += cf[ 0] * -s; s 1668 libavcodec/dca_lbr.c p3: values[x_freq - 3] += cf[ 2] * s; s 1670 libavcodec/dca_lbr.c p1: values[x_freq - 1] += cf[ 4] * -s; s 1672 libavcodec/dca_lbr.c values[x_freq + 1] += cf[ 6] * s; s 1674 libavcodec/dca_lbr.c values[x_freq + 3] += cf[ 8] * -s; s 1676 libavcodec/dca_lbr.c values[x_freq + 5] += cf[10] * s; s 1686 libavcodec/dca_lbr.c static void base_func_synth(DCALbrDecoder *s, int ch, float *values, int sf) s 1692 libavcodec/dca_lbr.c int group_sf = (s->framenum << group) + ((sf - 22) >> (5 - group)); s 1695 libavcodec/dca_lbr.c synth_tones(s, ch, values, group, (group_sf - 1) & 31, 30 - synth_idx); s 1696 libavcodec/dca_lbr.c synth_tones(s, ch, values, group, (group_sf ) & 31, synth_idx); s 1700 libavcodec/dca_lbr.c static void transform_channel(DCALbrDecoder *s, int ch, float *output) s 1704 libavcodec/dca_lbr.c int sf, sb, nsubbands = s->nsubbands, noutsubbands = 8 << s->freq_range; s 1712 libavcodec/dca_lbr.c s->dcadsp->lbr_bank(values, s->time_samples[ch], s 1715 libavcodec/dca_lbr.c base_func_synth(s, ch, values[0], sf); s 1717 libavcodec/dca_lbr.c s->imdct.imdct_calc(&s->imdct, result[0], values[0]); s 1720 libavcodec/dca_lbr.c s->fdsp->vector_fmul_add(output, result[0], s->window, s 1721 libavcodec/dca_lbr.c s->history[ch], noutsubbands * 4); s 1722 libavcodec/dca_lbr.c s->fdsp->vector_fmul_reverse(s->history[ch], result[noutsubbands], s 1723 libavcodec/dca_lbr.c s->window, noutsubbands * 4); s 1729 libavcodec/dca_lbr.c float *samples = s->time_samples[ch][sb] - DCA_LBR_TIME_HISTORY; s 1734 libavcodec/dca_lbr.c int ff_dca_lbr_filter_frame(DCALbrDecoder *s, AVFrame *frame) s 1736 libavcodec/dca_lbr.c AVCodecContext *avctx = s->avctx; s 1737 libavcodec/dca_lbr.c int i, ret, nchannels, ch_conf = (s->ch_mask & 0x7) - 1; s 1742 libavcodec/dca_lbr.c avctx->sample_rate = s->sample_rate; s 1746 libavcodec/dca_lbr.c avctx->bit_rate = s->bit_rate_scaled; s 1748 libavcodec/dca_lbr.c if (s->flags & LBR_FLAG_LFE_PRESENT) { s 1756 libavcodec/dca_lbr.c frame->nb_samples = 1024 << s->freq_range; s 1761 libavcodec/dca_lbr.c for (i = 0; i < (s->nchannels + 1) / 2; i++) { s 1763 libavcodec/dca_lbr.c int ch2 = FFMIN(ch1 + 1, s->nchannels - 1); s 1765 libavcodec/dca_lbr.c decode_grid(s, ch1, ch2); s 1767 libavcodec/dca_lbr.c random_ts(s, ch1, ch2); s 1769 libavcodec/dca_lbr.c filter_ts(s, ch1, ch2); s 1771 libavcodec/dca_lbr.c if (ch1 != ch2 && (s->part_stereo_pres & (1 << ch1))) s 1772 libavcodec/dca_lbr.c decode_part_stereo(s, ch1, ch2); s 1775 libavcodec/dca_lbr.c transform_channel(s, ch1, (float *)frame->extended_data[reorder[ch1]]); s 1778 libavcodec/dca_lbr.c transform_channel(s, ch2, (float *)frame->extended_data[reorder[ch2]]); s 1782 libavcodec/dca_lbr.c if (s->flags & LBR_FLAG_LFE_PRESENT) { s 1783 libavcodec/dca_lbr.c s->dcadsp->lfe_iir((float *)frame->extended_data[lfe_index[ch_conf]], s 1784 libavcodec/dca_lbr.c s->lfe_data, ff_dca_lfe_iir, s 1785 libavcodec/dca_lbr.c s->lfe_history, 16 << s->freq_range); s 1794 libavcodec/dca_lbr.c av_cold void ff_dca_lbr_flush(DCALbrDecoder *s) s 1798 libavcodec/dca_lbr.c if (!s->sample_rate) s 1802 libavcodec/dca_lbr.c memset(s->part_stereo, 16, sizeof(s->part_stereo)); s 1803 libavcodec/dca_lbr.c memset(s->lpc_coeff, 0, sizeof(s->lpc_coeff)); s 1804 libavcodec/dca_lbr.c memset(s->history, 0, sizeof(s->history)); s 1805 libavcodec/dca_lbr.c memset(s->tonal_bounds, 0, sizeof(s->tonal_bounds)); s 1806 libavcodec/dca_lbr.c memset(s->lfe_history, 0, sizeof(s->lfe_history)); s 1807 libavcodec/dca_lbr.c s->framenum = 0; s 1808 libavcodec/dca_lbr.c s->ntones = 0; s 1810 libavcodec/dca_lbr.c for (ch = 0; ch < s->nchannels; ch++) { s 1811 libavcodec/dca_lbr.c for (sb = 0; sb < s->nsubbands; sb++) { s 1812 libavcodec/dca_lbr.c float *samples = s->time_samples[ch][sb] - DCA_LBR_TIME_HISTORY; s 1818 libavcodec/dca_lbr.c av_cold int ff_dca_lbr_init(DCALbrDecoder *s) s 1822 libavcodec/dca_lbr.c if (!(s->fdsp = avpriv_float_dsp_alloc(0))) s 1825 libavcodec/dca_lbr.c s->lbr_rand = 1; s 1829 libavcodec/dca_lbr.c av_cold void ff_dca_lbr_close(DCALbrDecoder *s) s 1831 libavcodec/dca_lbr.c s->sample_rate = 0; s 1833 libavcodec/dca_lbr.c av_freep(&s->ts_buffer); s 1834 libavcodec/dca_lbr.c s->ts_size = 0; s 1836 libavcodec/dca_lbr.c av_freep(&s->fdsp); s 1837 libavcodec/dca_lbr.c ff_mdct_end(&s->imdct); s 129 libavcodec/dca_lbr.h int ff_dca_lbr_parse(DCALbrDecoder *s, uint8_t *data, DCAExssAsset *asset); s 130 libavcodec/dca_lbr.h int ff_dca_lbr_filter_frame(DCALbrDecoder *s, AVFrame *frame); s 131 libavcodec/dca_lbr.h av_cold void ff_dca_lbr_flush(DCALbrDecoder *s); s 132 libavcodec/dca_lbr.h av_cold int ff_dca_lbr_init(DCALbrDecoder *s); s 133 libavcodec/dca_lbr.h av_cold void ff_dca_lbr_close(DCALbrDecoder *s); s 184 libavcodec/dca_parser.c static av_cold int dca_parse_init(AVCodecParserContext *s) s 186 libavcodec/dca_parser.c DCAParseContext *pc1 = s->priv_data; s 306 libavcodec/dca_parser.c static int dca_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 310 libavcodec/dca_parser.c DCAParseContext *pc1 = s->priv_data; s 314 libavcodec/dca_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 337 libavcodec/dca_parser.c s->duration = av_rescale(duration, avctx->sample_rate, sample_rate); s 339 libavcodec/dca_parser.c s->duration = 0; s 71 libavcodec/dca_xll.c static int parse_dmix_coeffs(DCAXllDecoder *s, DCAXllChSet *c) s 83 libavcodec/dca_xll.c code = get_bits(&s->gb, 9); s 87 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL downmix scale index\n"); s 98 libavcodec/dca_xll.c code = get_bits(&s->gb, 9); s 102 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL downmix coefficient index\n"); s 116 libavcodec/dca_xll.c static int chs_parse_header(DCAXllDecoder *s, DCAXllChSet *c, DCAExssAsset *asset) s 118 libavcodec/dca_xll.c int i, j, k, ret, band, header_size, header_pos = get_bits_count(&s->gb); s 119 libavcodec/dca_xll.c DCAXllChSet *p = &s->chset[0]; s 123 libavcodec/dca_xll.c header_size = get_bits(&s->gb, 10) + 1; s 126 libavcodec/dca_xll.c if (ff_dca_check_crc(s->avctx, &s->gb, header_pos, header_pos + header_size * 8)) { s 127 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL sub-header checksum\n"); s 132 libavcodec/dca_xll.c c->nchannels = get_bits(&s->gb, 4) + 1; s 134 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "%d XLL channels", c->nchannels); s 139 libavcodec/dca_xll.c c->residual_encode = get_bits(&s->gb, c->nchannels); s 142 libavcodec/dca_xll.c c->pcm_bit_res = get_bits(&s->gb, 5) + 1; s 145 libavcodec/dca_xll.c c->storage_bit_res = get_bits(&s->gb, 5) + 1; s 147 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "%d-bit XLL storage resolution", c->storage_bit_res); s 152 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid PCM bit resolution for XLL channel set (%d > %d)\n", c->pcm_bit_res, c->storage_bit_res); s 157 libavcodec/dca_xll.c c->freq = ff_dca_sampling_freqs[get_bits(&s->gb, 4)]; s 159 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "%d Hz XLL sampling frequency", c->freq); s 164 libavcodec/dca_xll.c if (get_bits(&s->gb, 2)) { s 165 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "XLL sampling frequency modifier"); s 170 libavcodec/dca_xll.c if (get_bits(&s->gb, 2)) { s 171 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "XLL replacement set"); s 177 libavcodec/dca_xll.c c->primary_chset = get_bits1(&s->gb); s 179 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "The first (and only) XLL channel set must be primary\n"); s 184 libavcodec/dca_xll.c c->dmix_coeffs_present = get_bits1(&s->gb); s 187 libavcodec/dca_xll.c c->dmix_embedded = c->dmix_coeffs_present && get_bits1(&s->gb); s 191 libavcodec/dca_xll.c c->dmix_type = get_bits(&s->gb, 3); s 193 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL primary channel set downmix type\n"); s 199 libavcodec/dca_xll.c c->hier_chset = get_bits1(&s->gb); s 200 libavcodec/dca_xll.c if (!c->hier_chset && s->nchsets != 1) { s 201 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "XLL channel set outside of hierarchy"); s 206 libavcodec/dca_xll.c if (c->dmix_coeffs_present && (ret = parse_dmix_coeffs(s, c)) < 0) s 210 libavcodec/dca_xll.c if (!get_bits1(&s->gb)) { s 211 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "Disabled XLL channel mask"); s 216 libavcodec/dca_xll.c c->ch_mask = get_bits_long(&s->gb, s->ch_mask_nbits); s 218 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL channel mask\n"); s 223 libavcodec/dca_xll.c for (i = 0, j = 0; i < s->ch_mask_nbits; i++) s 228 libavcodec/dca_xll.c if (c->nchannels != 2 || s->nchsets != 1 || get_bits1(&s->gb)) { s 229 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "Custom XLL channel to speaker mapping"); s 245 libavcodec/dca_xll.c if (get_bits1(&s->gb)) { s 246 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "Extra XLL frequency bands"); s 262 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "Different XLL audio characteristics"); s 275 libavcodec/dca_xll.c if ((s->nchsets > 1 || c->nfreqbands > 1) && c->nabits < 5) s 280 libavcodec/dca_xll.c if ((b->decor_enabled = get_bits1(&s->gb)) && c->nchannels > 1) { s 285 libavcodec/dca_xll.c b->orig_order[i] = get_bits(&s->gb, ch_nbits); s 287 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL original channel order\n"); s 294 libavcodec/dca_xll.c b->decor_coeff[i] = get_bits1(&s->gb) ? get_linear(&s->gb, 7) : 0; s 305 libavcodec/dca_xll.c b->adapt_pred_order[i] = get_bits(&s->gb, 4); s 309 libavcodec/dca_xll.c if (b->highest_pred_order > s->nsegsamples) { s 310 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL adaptive predicition order\n"); s 316 libavcodec/dca_xll.c b->fixed_pred_order[i] = b->adapt_pred_order[i] ? 0 : get_bits(&s->gb, 2); s 321 libavcodec/dca_xll.c k = get_linear(&s->gb, 8); s 323 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL reflection coefficient index\n"); s 334 libavcodec/dca_xll.c b->dmix_embedded = c->dmix_embedded && (band == 0 || get_bits1(&s->gb)); s 337 libavcodec/dca_xll.c if ((band == 0 && s->scalable_lsbs) || (band != 0 && get_bits1(&s->gb))) { s 339 libavcodec/dca_xll.c b->lsb_section_size = get_bits_long(&s->gb, s->seg_size_nbits); s 340 libavcodec/dca_xll.c if (b->lsb_section_size < 0 || b->lsb_section_size > s->frame_size) { s 341 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid LSB section size\n"); s 346 libavcodec/dca_xll.c if (b->lsb_section_size && (s->band_crc_present > 2 || s 347 libavcodec/dca_xll.c (band == 0 && s->band_crc_present > 1))) s 352 libavcodec/dca_xll.c b->nscalablelsbs[i] = get_bits(&s->gb, 4); s 354 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "LSB section missing with non-zero LSB width\n"); s 365 libavcodec/dca_xll.c if ((band == 0 && s->scalable_lsbs) || (band != 0 && get_bits1(&s->gb))) { s 368 libavcodec/dca_xll.c b->bit_width_adjust[i] = get_bits(&s->gb, 4); s 378 libavcodec/dca_xll.c if (ff_dca_seek_bits(&s->gb, header_pos + header_size * 8)) { s 379 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XLL sub-header\n"); s 386 libavcodec/dca_xll.c static int chs_alloc_msb_band_data(DCAXllDecoder *s, DCAXllChSet *c) s 389 libavcodec/dca_xll.c int nchsamples = s->nframesamples + ndecisamples; s 409 libavcodec/dca_xll.c static int chs_alloc_lsb_band_data(DCAXllDecoder *s, DCAXllChSet *c) s 417 libavcodec/dca_xll.c nsamples += s->nframesamples * c->nchannels; s 431 libavcodec/dca_xll.c ptr += s->nframesamples; s 442 libavcodec/dca_xll.c static int chs_parse_band_data(DCAXllDecoder *s, DCAXllChSet *c, int band, int seg, int band_data_end) s 448 libavcodec/dca_xll.c if (!(seg && get_bits1(&s->gb))) { s 452 libavcodec/dca_xll.c c->seg_common = get_bits1(&s->gb); s 461 libavcodec/dca_xll.c c->rice_code_flag[i] = get_bits1(&s->gb); s 464 libavcodec/dca_xll.c if (!c->seg_common && c->rice_code_flag[i] && get_bits1(&s->gb)) s 466 libavcodec/dca_xll.c c->bitalloc_hybrid_linear[i] = get_bits(&s->gb, c->nabits) + 1; s 476 libavcodec/dca_xll.c c->bitalloc_part_a[i] = get_bits(&s->gb, c->nabits); s 492 libavcodec/dca_xll.c c->bitalloc_part_b[i] = get_bits(&s->gb, c->nabits); s 509 libavcodec/dca_xll.c part_a = b->msb_sample_buffer[i] + seg * s->nsegsamples; s 511 libavcodec/dca_xll.c nsamples_part_b = s->nsegsamples - c->nsamples_part_a[k]; s 513 libavcodec/dca_xll.c if (get_bits_left(&s->gb) < 0) s 519 libavcodec/dca_xll.c get_linear_array(&s->gb, part_a, c->nsamples_part_a[k], s 523 libavcodec/dca_xll.c get_linear_array(&s->gb, part_b, nsamples_part_b, s 528 libavcodec/dca_xll.c get_rice_array(&s->gb, part_a, c->nsamples_part_a[k], s 534 libavcodec/dca_xll.c int nisosamples = get_bits(&s->gb, s->nsegsamples_log2); s 541 libavcodec/dca_xll.c int loc = get_bits(&s->gb, s->nsegsamples_log2); s 543 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid isolated sample location\n"); s 552 libavcodec/dca_xll.c part_b[j] = get_linear(&s->gb, c->bitalloc_hybrid_linear[k]); s 554 libavcodec/dca_xll.c part_b[j] = get_rice(&s->gb, c->bitalloc_part_b[k]); s 559 libavcodec/dca_xll.c get_rice_array(&s->gb, part_b, nsamples_part_b, c->bitalloc_part_b[k]); s 566 libavcodec/dca_xll.c int nbits = get_bits(&s->gb, 5) + 1; s 569 libavcodec/dca_xll.c c->deci_history[i][j] = get_sbits_long(&s->gb, nbits); s 575 libavcodec/dca_xll.c if (ff_dca_seek_bits(&s->gb, band_data_end - b->lsb_section_size * 8)) { s 576 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XLL band data\n"); s 583 libavcodec/dca_xll.c get_array(&s->gb, s 584 libavcodec/dca_xll.c b->lsb_sample_buffer[i] + seg * s->nsegsamples, s 585 libavcodec/dca_xll.c s->nsegsamples, b->nscalablelsbs[i]); s 591 libavcodec/dca_xll.c if (ff_dca_seek_bits(&s->gb, band_data_end)) { s 592 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XLL band data\n"); s 599 libavcodec/dca_xll.c static av_cold void chs_clear_band_data(DCAXllDecoder *s, DCAXllChSet *c, int band, int seg) s 606 libavcodec/dca_xll.c nsamples = s->nframesamples; s 608 libavcodec/dca_xll.c offset = seg * s->nsegsamples; s 609 libavcodec/dca_xll.c nsamples = s->nsegsamples; s 627 libavcodec/dca_xll.c static void chs_filter_band_data(DCAXllDecoder *s, DCAXllChSet *c, int band) s 630 libavcodec/dca_xll.c int nsamples = s->nframesamples; s 672 libavcodec/dca_xll.c s->dcadsp->decor(b->msb_sample_buffer[i * 2 + 1], s 689 libavcodec/dca_xll.c s->output_samples[c->ch_remap[i]] = b->msb_sample_buffer[i]; s 692 libavcodec/dca_xll.c static int chs_get_lsb_width(DCAXllDecoder *s, DCAXllChSet *c, int band, int ch) s 697 libavcodec/dca_xll.c if (s->fixed_lsb_width) s 698 libavcodec/dca_xll.c shift = s->fixed_lsb_width; s 707 libavcodec/dca_xll.c static void chs_assemble_msbs_lsbs(DCAXllDecoder *s, DCAXllChSet *c, int band) s 710 libavcodec/dca_xll.c int n, ch, nsamples = s->nframesamples; s 713 libavcodec/dca_xll.c int shift = chs_get_lsb_width(s, c, band, ch); s 729 libavcodec/dca_xll.c static int chs_assemble_freq_bands(DCAXllDecoder *s, DCAXllChSet *c) s 731 libavcodec/dca_xll.c int ch, nsamples = s->nframesamples; s 753 libavcodec/dca_xll.c s->dcadsp->assemble_freq_bands(ptr, band0, band1, s 758 libavcodec/dca_xll.c s->output_samples[c->ch_remap[ch]] = ptr; s 765 libavcodec/dca_xll.c static int parse_common_header(DCAXllDecoder *s) s 770 libavcodec/dca_xll.c if (get_bits_long(&s->gb, 32) != DCA_SYNCWORD_XLL) { s 771 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_VERBOSE, "Invalid XLL sync word\n"); s 776 libavcodec/dca_xll.c stream_ver = get_bits(&s->gb, 4) + 1; s 778 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "XLL stream version %d", stream_ver); s 783 libavcodec/dca_xll.c header_size = get_bits(&s->gb, 8) + 1; s 786 libavcodec/dca_xll.c if (ff_dca_check_crc(s->avctx, &s->gb, 32, header_size * 8)) { s 787 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL common header checksum\n"); s 792 libavcodec/dca_xll.c frame_size_nbits = get_bits(&s->gb, 5) + 1; s 795 libavcodec/dca_xll.c s->frame_size = get_bits_long(&s->gb, frame_size_nbits); s 796 libavcodec/dca_xll.c if (s->frame_size < 0 || s->frame_size >= DCA_XLL_PBR_BUFFER_MAX) { s 797 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL frame size (%d bytes)\n", s->frame_size); s 800 libavcodec/dca_xll.c s->frame_size++; s 803 libavcodec/dca_xll.c s->nchsets = get_bits(&s->gb, 4) + 1; s 804 libavcodec/dca_xll.c if (s->nchsets > DCA_XLL_CHSETS_MAX) { s 805 libavcodec/dca_xll.c avpriv_request_sample(s->avctx, "%d XLL channel sets", s->nchsets); s 810 libavcodec/dca_xll.c nframesegs_log2 = get_bits(&s->gb, 4); s 811 libavcodec/dca_xll.c s->nframesegs = 1 << nframesegs_log2; s 812 libavcodec/dca_xll.c if (s->nframesegs > 1024) { s 813 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Too many segments per XLL frame\n"); s 820 libavcodec/dca_xll.c s->nsegsamples_log2 = get_bits(&s->gb, 4); s 821 libavcodec/dca_xll.c if (!s->nsegsamples_log2) { s 822 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Too few samples per XLL segment\n"); s 825 libavcodec/dca_xll.c s->nsegsamples = 1 << s->nsegsamples_log2; s 826 libavcodec/dca_xll.c if (s->nsegsamples > 512) { s 827 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Too many samples per XLL segment\n"); s 832 libavcodec/dca_xll.c s->nframesamples_log2 = s->nsegsamples_log2 + nframesegs_log2; s 833 libavcodec/dca_xll.c s->nframesamples = 1 << s->nframesamples_log2; s 834 libavcodec/dca_xll.c if (s->nframesamples > 65536) { s 835 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Too many samples per XLL frame\n"); s 840 libavcodec/dca_xll.c s->seg_size_nbits = get_bits(&s->gb, 5) + 1; s 847 libavcodec/dca_xll.c s->band_crc_present = get_bits(&s->gb, 2); s 850 libavcodec/dca_xll.c s->scalable_lsbs = get_bits1(&s->gb); s 853 libavcodec/dca_xll.c s->ch_mask_nbits = get_bits(&s->gb, 5) + 1; s 856 libavcodec/dca_xll.c if (s->scalable_lsbs) s 857 libavcodec/dca_xll.c s->fixed_lsb_width = get_bits(&s->gb, 4); s 859 libavcodec/dca_xll.c s->fixed_lsb_width = 0; s 864 libavcodec/dca_xll.c if (ff_dca_seek_bits(&s->gb, header_size * 8)) { s 865 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XLL common header\n"); s 877 libavcodec/dca_xll.c static DCAXllChSet *find_next_hier_dmix_chset(DCAXllDecoder *s, DCAXllChSet *c) s 880 libavcodec/dca_xll.c while (++c < &s->chset[s->nchsets]) s 903 libavcodec/dca_xll.c static int parse_sub_headers(DCAXllDecoder *s, DCAExssAsset *asset) s 905 libavcodec/dca_xll.c DCAContext *dca = s->avctx->priv_data; s 910 libavcodec/dca_xll.c s->nfreqbands = 0; s 911 libavcodec/dca_xll.c s->nchannels = 0; s 912 libavcodec/dca_xll.c s->nreschsets = 0; s 913 libavcodec/dca_xll.c for (i = 0, c = s->chset; i < s->nchsets; i++, c++) { s 914 libavcodec/dca_xll.c c->hier_ofs = s->nchannels; s 915 libavcodec/dca_xll.c if ((ret = chs_parse_header(s, c, asset)) < 0) s 917 libavcodec/dca_xll.c if (c->nfreqbands > s->nfreqbands) s 918 libavcodec/dca_xll.c s->nfreqbands = c->nfreqbands; s 920 libavcodec/dca_xll.c s->nchannels += c->nchannels; s 922 libavcodec/dca_xll.c s->nreschsets++; s 926 libavcodec/dca_xll.c for (i = s->nchsets - 1, c = &s->chset[i]; i > 0; i--, c--) { s 928 libavcodec/dca_xll.c DCAXllChSet *o = find_next_hier_dmix_chset(s, c); s 937 libavcodec/dca_xll.c s->nactivechsets = 1; s 941 libavcodec/dca_xll.c s->nactivechsets = (s->chset[0].nchannels < 5 && s->nchsets > 1) ? 2 : 1; s 944 libavcodec/dca_xll.c s->nactivechsets = s->nchsets; s 951 libavcodec/dca_xll.c static int parse_navi_table(DCAXllDecoder *s) s 957 libavcodec/dca_xll.c navi_nb = s->nfreqbands * s->nframesegs * s->nchsets; s 959 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Too many NAVI entries (%d)\n", navi_nb); s 964 libavcodec/dca_xll.c av_fast_malloc(&s->navi, &s->navi_size, navi_nb * sizeof(*s->navi)); s 965 libavcodec/dca_xll.c if (!s->navi) s 969 libavcodec/dca_xll.c navi_pos = get_bits_count(&s->gb); s 970 libavcodec/dca_xll.c navi_ptr = s->navi; s 971 libavcodec/dca_xll.c for (band = 0; band < s->nfreqbands; band++) { s 972 libavcodec/dca_xll.c for (seg = 0; seg < s->nframesegs; seg++) { s 973 libavcodec/dca_xll.c for (chs = 0, c = s->chset; chs < s->nchsets; chs++, c++) { s 976 libavcodec/dca_xll.c size = get_bits_long(&s->gb, s->seg_size_nbits); s 977 libavcodec/dca_xll.c if (size < 0 || size >= s->frame_size) { s 978 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid NAVI segment size (%d bytes)\n", size); s 990 libavcodec/dca_xll.c skip_bits(&s->gb, -get_bits_count(&s->gb) & 7); s 991 libavcodec/dca_xll.c skip_bits(&s->gb, 16); s 994 libavcodec/dca_xll.c if (ff_dca_check_crc(s->avctx, &s->gb, navi_pos, get_bits_count(&s->gb))) { s 995 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid NAVI checksum\n"); s 1002 libavcodec/dca_xll.c static int parse_band_data(DCAXllDecoder *s) s 1007 libavcodec/dca_xll.c for (chs = 0, c = s->chset; chs < s->nactivechsets; chs++, c++) { s 1008 libavcodec/dca_xll.c if ((ret = chs_alloc_msb_band_data(s, c)) < 0) s 1010 libavcodec/dca_xll.c if ((ret = chs_alloc_lsb_band_data(s, c)) < 0) s 1014 libavcodec/dca_xll.c navi_pos = get_bits_count(&s->gb); s 1015 libavcodec/dca_xll.c navi_ptr = s->navi; s 1016 libavcodec/dca_xll.c for (band = 0; band < s->nfreqbands; band++) { s 1017 libavcodec/dca_xll.c for (seg = 0; seg < s->nframesegs; seg++) { s 1018 libavcodec/dca_xll.c for (chs = 0, c = s->chset; chs < s->nchsets; chs++, c++) { s 1021 libavcodec/dca_xll.c if (navi_pos > s->gb.size_in_bits) { s 1022 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Invalid NAVI position\n"); s 1025 libavcodec/dca_xll.c if (chs < s->nactivechsets && s 1026 libavcodec/dca_xll.c (ret = chs_parse_band_data(s, c, band, seg, navi_pos)) < 0) { s 1027 libavcodec/dca_xll.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 1029 libavcodec/dca_xll.c chs_clear_band_data(s, c, band, seg); s 1031 libavcodec/dca_xll.c skip_bits_long(&s->gb, navi_pos - get_bits_count(&s->gb)); s 1041 libavcodec/dca_xll.c static int parse_frame(DCAXllDecoder *s, uint8_t *data, int size, DCAExssAsset *asset) s 1045 libavcodec/dca_xll.c if ((ret = init_get_bits8(&s->gb, data, size)) < 0) s 1047 libavcodec/dca_xll.c if ((ret = parse_common_header(s)) < 0) s 1049 libavcodec/dca_xll.c if ((ret = parse_sub_headers(s, asset)) < 0) s 1051 libavcodec/dca_xll.c if ((ret = parse_navi_table(s)) < 0) s 1053 libavcodec/dca_xll.c if ((ret = parse_band_data(s)) < 0) s 1055 libavcodec/dca_xll.c if (ff_dca_seek_bits(&s->gb, s->frame_size * 8)) { s 1056 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of XLL frame\n"); s 1062 libavcodec/dca_xll.c static void clear_pbr(DCAXllDecoder *s) s 1064 libavcodec/dca_xll.c s->pbr_length = 0; s 1065 libavcodec/dca_xll.c s->pbr_delay = 0; s 1068 libavcodec/dca_xll.c static int copy_to_pbr(DCAXllDecoder *s, uint8_t *data, int size, int delay) s 1073 libavcodec/dca_xll.c if (!s->pbr_buffer && !(s->pbr_buffer = av_malloc(DCA_XLL_PBR_BUFFER_MAX + AV_INPUT_BUFFER_PADDING_SIZE))) s 1076 libavcodec/dca_xll.c memcpy(s->pbr_buffer, data, size); s 1077 libavcodec/dca_xll.c s->pbr_length = size; s 1078 libavcodec/dca_xll.c s->pbr_delay = delay; s 1082 libavcodec/dca_xll.c static int parse_frame_no_pbr(DCAXllDecoder *s, uint8_t *data, int size, DCAExssAsset *asset) s 1084 libavcodec/dca_xll.c int ret = parse_frame(s, data, size, asset); s 1097 libavcodec/dca_xll.c if ((ret = copy_to_pbr(s, data, size, asset->xll_delay_nframes)) < 0) s 1103 libavcodec/dca_xll.c ret = parse_frame(s, data, size, asset); s 1109 libavcodec/dca_xll.c if (s->frame_size > size) s 1113 libavcodec/dca_xll.c if (s->frame_size < size) s 1114 libavcodec/dca_xll.c if ((ret = copy_to_pbr(s, data + s->frame_size, size - s->frame_size, 0)) < 0) s 1120 libavcodec/dca_xll.c static int parse_frame_pbr(DCAXllDecoder *s, uint8_t *data, int size, DCAExssAsset *asset) s 1124 libavcodec/dca_xll.c if (size > DCA_XLL_PBR_BUFFER_MAX - s->pbr_length) { s 1129 libavcodec/dca_xll.c memcpy(s->pbr_buffer + s->pbr_length, data, size); s 1130 libavcodec/dca_xll.c s->pbr_length += size; s 1133 libavcodec/dca_xll.c if (s->pbr_delay > 0 && --s->pbr_delay) s 1136 libavcodec/dca_xll.c if ((ret = parse_frame(s, s->pbr_buffer, s->pbr_length, asset)) < 0) s 1139 libavcodec/dca_xll.c if (s->frame_size > s->pbr_length) { s 1144 libavcodec/dca_xll.c if (s->frame_size == s->pbr_length) { s 1146 libavcodec/dca_xll.c clear_pbr(s); s 1148 libavcodec/dca_xll.c s->pbr_length -= s->frame_size; s 1149 libavcodec/dca_xll.c memmove(s->pbr_buffer, s->pbr_buffer + s->frame_size, s->pbr_length); s 1157 libavcodec/dca_xll.c clear_pbr(s); s 1161 libavcodec/dca_xll.c int ff_dca_xll_parse(DCAXllDecoder *s, uint8_t *data, DCAExssAsset *asset) s 1165 libavcodec/dca_xll.c if (s->hd_stream_id != asset->hd_stream_id) { s 1166 libavcodec/dca_xll.c clear_pbr(s); s 1167 libavcodec/dca_xll.c s->hd_stream_id = asset->hd_stream_id; s 1170 libavcodec/dca_xll.c if (s->pbr_length) s 1171 libavcodec/dca_xll.c ret = parse_frame_pbr(s, data + asset->xll_offset, asset->xll_size, asset); s 1173 libavcodec/dca_xll.c ret = parse_frame_no_pbr(s, data + asset->xll_offset, asset->xll_size, asset); s 1178 libavcodec/dca_xll.c static void undo_down_mix(DCAXllDecoder *s, DCAXllChSet *o, int band) s 1183 libavcodec/dca_xll.c for (i = 0, c = s->chset; i < s->nactivechsets; i++, c++) { s 1192 libavcodec/dca_xll.c s->dcadsp->dmix_sub(c->bands[band].msb_sample_buffer[j], s 1194 libavcodec/dca_xll.c coeff, s->nframesamples); s 1196 libavcodec/dca_xll.c s->dcadsp->dmix_sub(c->deci_history[j], s 1209 libavcodec/dca_xll.c static void scale_down_mix(DCAXllDecoder *s, DCAXllChSet *o, int band) s 1214 libavcodec/dca_xll.c for (i = 0, c = s->chset; i < s->nactivechsets; i++, c++) { s 1222 libavcodec/dca_xll.c s->dcadsp->dmix_scale(c->bands[band].msb_sample_buffer[j], s 1223 libavcodec/dca_xll.c scale, s->nframesamples); s 1225 libavcodec/dca_xll.c s->dcadsp->dmix_scale(c->deci_history[j], s 1237 libavcodec/dca_xll.c static av_cold void force_lossy_output(DCAXllDecoder *s, DCAXllChSet *c) s 1239 libavcodec/dca_xll.c DCAContext *dca = s->avctx->priv_data; s 1243 libavcodec/dca_xll.c chs_clear_band_data(s, c, band, -1); s 1254 libavcodec/dca_xll.c static int combine_residual_frame(DCAXllDecoder *s, DCAXllChSet *c) s 1256 libavcodec/dca_xll.c DCAContext *dca = s->avctx->priv_data; s 1257 libavcodec/dca_xll.c int ch, nsamples = s->nframesamples; s 1262 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_ERROR, "Residual encoded channels are present without core\n"); s 1267 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_WARNING, "Sample rate mismatch between core (%d Hz) and XLL (%d Hz)\n", dca->core.output_rate, c->freq); s 1272 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_WARNING, "Number of samples per frame mismatch between core (%d) and XLL (%d)\n", dca->core.npcmsamples, nsamples); s 1279 libavcodec/dca_xll.c o = find_next_hier_dmix_chset(s, c); s 1292 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_WARNING, "Residual encoded channel (%d) references unavailable core channel\n", c->ch_remap[ch]); s 1297 libavcodec/dca_xll.c shift = 24 - c->pcm_bit_res + chs_get_lsb_width(s, c, 0, ch); s 1299 libavcodec/dca_xll.c av_log(s->avctx, AV_LOG_WARNING, "Invalid core shift (%d bits)\n", shift); s 1322 libavcodec/dca_xll.c int ff_dca_xll_filter_frame(DCAXllDecoder *s, AVFrame *frame) s 1324 libavcodec/dca_xll.c AVCodecContext *avctx = s->avctx; s 1327 libavcodec/dca_xll.c DCAXllChSet *p = &s->chset[0], *c; s 1334 libavcodec/dca_xll.c for (i = 0, c = s->chset; i < s->nchsets; i++, c++) { s 1335 libavcodec/dca_xll.c if (i < s->nactivechsets) s 1336 libavcodec/dca_xll.c force_lossy_output(s, c); s 1342 libavcodec/dca_xll.c s->scalable_lsbs = 0; s 1343 libavcodec/dca_xll.c s->fixed_lsb_width = 0; s 1347 libavcodec/dca_xll.c s->output_mask = 0; s 1348 libavcodec/dca_xll.c for (i = 0, c = s->chset; i < s->nactivechsets; i++, c++) { s 1349 libavcodec/dca_xll.c chs_filter_band_data(s, c, 0); s 1352 libavcodec/dca_xll.c && (ret = combine_residual_frame(s, c)) < 0) s 1355 libavcodec/dca_xll.c if (s->scalable_lsbs) s 1356 libavcodec/dca_xll.c chs_assemble_msbs_lsbs(s, c, 0); s 1359 libavcodec/dca_xll.c chs_filter_band_data(s, c, 1); s 1360 libavcodec/dca_xll.c chs_assemble_msbs_lsbs(s, c, 1); s 1363 libavcodec/dca_xll.c s->output_mask |= c->ch_mask; s 1367 libavcodec/dca_xll.c for (i = 1, c = &s->chset[1]; i < s->nchsets; i++, c++) { s 1371 libavcodec/dca_xll.c if (i >= s->nactivechsets) { s 1374 libavcodec/dca_xll.c scale_down_mix(s, c, j); s 1380 libavcodec/dca_xll.c undo_down_mix(s, c, j); s 1384 libavcodec/dca_xll.c if (s->nfreqbands > 1) { s 1385 libavcodec/dca_xll.c for (i = 0; i < s->nactivechsets; i++) s 1386 libavcodec/dca_xll.c if ((ret = chs_assemble_freq_bands(s, &s->chset[i])) < 0) s 1392 libavcodec/dca_xll.c if (s->output_mask & DCA_SPEAKER_MASK_Lss) { s 1393 libavcodec/dca_xll.c s->output_samples[DCA_SPEAKER_Ls] = s->output_samples[DCA_SPEAKER_Lss]; s 1394 libavcodec/dca_xll.c s->output_mask = (s->output_mask & ~DCA_SPEAKER_MASK_Lss) | DCA_SPEAKER_MASK_Ls; s 1396 libavcodec/dca_xll.c if (s->output_mask & DCA_SPEAKER_MASK_Rss) { s 1397 libavcodec/dca_xll.c s->output_samples[DCA_SPEAKER_Rs] = s->output_samples[DCA_SPEAKER_Rss]; s 1398 libavcodec/dca_xll.c s->output_mask = (s->output_mask & ~DCA_SPEAKER_MASK_Rss) | DCA_SPEAKER_MASK_Rs; s 1404 libavcodec/dca_xll.c && DCA_HAS_STEREO(s->output_mask) && p->dmix_embedded s 1409 libavcodec/dca_xll.c request_mask = s->output_mask; s 1413 libavcodec/dca_xll.c avctx->sample_rate = p->freq << (s->nfreqbands - 1); s 1433 libavcodec/dca_xll.c frame->nb_samples = nsamples = s->nframesamples << (s->nfreqbands - 1); s 1438 libavcodec/dca_xll.c if (request_mask != s->output_mask) { s 1439 libavcodec/dca_xll.c ff_dca_downmix_to_stereo_fixed(s->dcadsp, s->output_samples, s 1441 libavcodec/dca_xll.c s->output_mask); s 1445 libavcodec/dca_xll.c int32_t *samples = s->output_samples[ch_remap[i]]; s 1462 libavcodec/dca_xll.c } else if (request_mask != s->output_mask && p->dmix_type == DCA_DMIX_TYPE_LtRt) { s 1471 libavcodec/dca_xll.c av_cold void ff_dca_xll_flush(DCAXllDecoder *s) s 1473 libavcodec/dca_xll.c clear_pbr(s); s 1476 libavcodec/dca_xll.c av_cold void ff_dca_xll_close(DCAXllDecoder *s) s 1481 libavcodec/dca_xll.c for (i = 0, c = s->chset; i < DCA_XLL_CHSETS_MAX; i++, c++) { s 1488 libavcodec/dca_xll.c av_freep(&s->navi); s 1489 libavcodec/dca_xll.c s->navi_size = 0; s 1491 libavcodec/dca_xll.c av_freep(&s->pbr_buffer); s 1492 libavcodec/dca_xll.c clear_pbr(s); s 144 libavcodec/dca_xll.h int ff_dca_xll_parse(DCAXllDecoder *s, uint8_t *data, DCAExssAsset *asset); s 145 libavcodec/dca_xll.h int ff_dca_xll_filter_frame(DCAXllDecoder *s, AVFrame *frame); s 146 libavcodec/dca_xll.h av_cold void ff_dca_xll_flush(DCAXllDecoder *s); s 147 libavcodec/dca_xll.h av_cold void ff_dca_xll_close(DCAXllDecoder *s); s 34 libavcodec/dcaadpcm.c int64_t s = 0; s 36 libavcodec/dcaadpcm.c s += MUL64(x[n-j], x[n-k]); s 37 libavcodec/dcaadpcm.c return s; s 79 libavcodec/dcaadpcm.c static int64_t find_best_filter(const DCAADPCMEncContext *s, const int32_t *in, int len) s 81 libavcodec/dcaadpcm.c const premultiplied_coeffs *precalc_data = s->private_data; s 125 libavcodec/dcaadpcm.c int ff_dcaadpcm_subband_analysis(const DCAADPCMEncContext *s, const int32_t *in, int len, int *diff) s 146 libavcodec/dcaadpcm.c pred_vq = find_best_filter(s, input_buffer2, len); s 212 libavcodec/dcaadpcm.c av_cold int ff_dcaadpcm_init(DCAADPCMEncContext *s) s 214 libavcodec/dcaadpcm.c if (!s) s 217 libavcodec/dcaadpcm.c s->private_data = av_malloc(sizeof(premultiplied_coeffs) * DCA_ADPCM_VQCODEBOOK_SZ); s 218 libavcodec/dcaadpcm.c if (!s->private_data) s 221 libavcodec/dcaadpcm.c precalc(s->private_data); s 225 libavcodec/dcaadpcm.c av_cold void ff_dcaadpcm_free(DCAADPCMEncContext *s) s 227 libavcodec/dcaadpcm.c if (!s) s 230 libavcodec/dcaadpcm.c av_freep(&s->private_data); s 44 libavcodec/dcaadpcm.h int ff_dcaadpcm_subband_analysis(const DCAADPCMEncContext *s, const int32_t *input, int len, int *diff); s 51 libavcodec/dcaadpcm.h av_cold int ff_dcaadpcm_init(DCAADPCMEncContext *s); s 52 libavcodec/dcaadpcm.h av_cold void ff_dcaadpcm_free(DCAADPCMEncContext *s); s 147 libavcodec/dcadec.c DCAContext *s = avctx->priv_data; s 151 libavcodec/dcadec.c int i, ret, prev_packet = s->packet; s 162 libavcodec/dcadec.c av_fast_padded_malloc(&s->buffer, &s->buffer_size, input_size); s 163 libavcodec/dcadec.c if (!s->buffer) s 167 libavcodec/dcadec.c ret = avpriv_dca_convert_bitstream(input + i, input_size - i, s->buffer, s->buffer_size); s 174 libavcodec/dcadec.c input = s->buffer; s 178 libavcodec/dcadec.c s->packet = 0; s 184 libavcodec/dcadec.c if ((ret = ff_dca_core_parse(&s->core, input, input_size)) < 0) s 187 libavcodec/dcadec.c s->packet |= DCA_PACKET_CORE; s 190 libavcodec/dcadec.c frame_size = FFALIGN(s->core.frame_size, 4); s 197 libavcodec/dcadec.c if (!s->core_only) { s 202 libavcodec/dcadec.c if ((ret = ff_dca_exss_parse(&s->exss, input, input_size)) < 0) { s 206 libavcodec/dcadec.c s->packet |= DCA_PACKET_EXSS; s 207 libavcodec/dcadec.c asset = &s->exss.assets[0]; s 213 libavcodec/dcadec.c if ((ret = ff_dca_xll_parse(&s->xll, input, asset)) < 0) { s 217 libavcodec/dcadec.c && (s->packet & DCA_PACKET_CORE)) s 218 libavcodec/dcadec.c s->packet |= DCA_PACKET_XLL | DCA_PACKET_RECOVERY; s 222 libavcodec/dcadec.c s->packet |= DCA_PACKET_XLL; s 228 libavcodec/dcadec.c if ((ret = ff_dca_lbr_parse(&s->lbr, input, asset)) < 0) { s 232 libavcodec/dcadec.c s->packet |= DCA_PACKET_LBR; s 237 libavcodec/dcadec.c if ((s->packet & DCA_PACKET_CORE) s 238 libavcodec/dcadec.c && (ret = ff_dca_core_parse_exss(&s->core, input, asset)) < 0) s 243 libavcodec/dcadec.c if (s->packet & DCA_PACKET_LBR) { s 244 libavcodec/dcadec.c if ((ret = ff_dca_lbr_filter_frame(&s->lbr, frame)) < 0) s 246 libavcodec/dcadec.c } else if (s->packet & DCA_PACKET_XLL) { s 247 libavcodec/dcadec.c if (s->packet & DCA_PACKET_CORE) { s 251 libavcodec/dcadec.c if (s->xll.chset[0].freq == 96000 && s->core.sample_rate == 48000) s 254 libavcodec/dcadec.c if ((ret = ff_dca_core_filter_fixed(&s->core, x96_synth)) < 0) s 260 libavcodec/dcadec.c if (!(prev_packet & DCA_PACKET_RESIDUAL) && s->xll.nreschsets > 0 s 261 libavcodec/dcadec.c && s->xll.nchsets > 1) { s 263 libavcodec/dcadec.c s->packet |= DCA_PACKET_RECOVERY; s 267 libavcodec/dcadec.c s->packet |= DCA_PACKET_RESIDUAL; s 270 libavcodec/dcadec.c if ((ret = ff_dca_xll_filter_frame(&s->xll, frame)) < 0) { s 272 libavcodec/dcadec.c if (!(s->packet & DCA_PACKET_CORE)) s 276 libavcodec/dcadec.c if ((ret = ff_dca_core_filter_frame(&s->core, frame)) < 0) s 279 libavcodec/dcadec.c } else if (s->packet & DCA_PACKET_CORE) { s 280 libavcodec/dcadec.c if ((ret = ff_dca_core_filter_frame(&s->core, frame)) < 0) s 282 libavcodec/dcadec.c if (s->core.filter_mode & DCA_FILTER_MODE_FIXED) s 283 libavcodec/dcadec.c s->packet |= DCA_PACKET_RESIDUAL; s 286 libavcodec/dcadec.c if (s->core_only) s 298 libavcodec/dcadec.c DCAContext *s = avctx->priv_data; s 300 libavcodec/dcadec.c ff_dca_core_flush(&s->core); s 301 libavcodec/dcadec.c ff_dca_xll_flush(&s->xll); s 302 libavcodec/dcadec.c ff_dca_lbr_flush(&s->lbr); s 304 libavcodec/dcadec.c s->packet &= DCA_PACKET_MASK; s 309 libavcodec/dcadec.c DCAContext *s = avctx->priv_data; s 311 libavcodec/dcadec.c ff_dca_core_close(&s->core); s 312 libavcodec/dcadec.c ff_dca_xll_close(&s->xll); s 313 libavcodec/dcadec.c ff_dca_lbr_close(&s->lbr); s 315 libavcodec/dcadec.c av_freep(&s->buffer); s 316 libavcodec/dcadec.c s->buffer_size = 0; s 323 libavcodec/dcadec.c DCAContext *s = avctx->priv_data; s 325 libavcodec/dcadec.c s->avctx = avctx; s 326 libavcodec/dcadec.c s->core.avctx = avctx; s 327 libavcodec/dcadec.c s->exss.avctx = avctx; s 328 libavcodec/dcadec.c s->xll.avctx = avctx; s 329 libavcodec/dcadec.c s->lbr.avctx = avctx; s 333 libavcodec/dcadec.c if (ff_dca_core_init(&s->core) < 0) s 336 libavcodec/dcadec.c if (ff_dca_lbr_init(&s->lbr) < 0) s 339 libavcodec/dcadec.c ff_dcadsp_init(&s->dcadsp); s 340 libavcodec/dcadec.c s->core.dcadsp = &s->dcadsp; s 341 libavcodec/dcadec.c s->xll.dcadsp = &s->dcadsp; s 342 libavcodec/dcadec.c s->lbr.dcadsp = &s->dcadsp; s 344 libavcodec/dcadec.c s->crctab = av_crc_get_table(AV_CRC_16_CCITT); s 348 libavcodec/dcadec.c s->request_channel_layout = 0; s 352 libavcodec/dcadec.c s->request_channel_layout = DCA_SPEAKER_LAYOUT_STEREO; s 355 libavcodec/dcadec.c s->request_channel_layout = DCA_SPEAKER_LAYOUT_5POINT0; s 358 libavcodec/dcadec.c s->request_channel_layout = DCA_SPEAKER_LAYOUT_5POINT1; s 75 libavcodec/dcadec.h static inline int ff_dca_check_crc(AVCodecContext *avctx, GetBitContext *s, s 82 libavcodec/dcadec.h if (((p1 | p2) & 7) || p1 < 0 || p2 > s->size_in_bits || p2 - p1 < 16) s 84 libavcodec/dcadec.h if (av_crc(dca->crctab, 0xffff, s->buffer + p1 / 8, (p2 - p1) / 8)) s 89 libavcodec/dcadec.h static inline int ff_dca_seek_bits(GetBitContext *s, int p) s 91 libavcodec/dcadec.h if (p < get_bits_count(s) || p > s->size_in_bits) s 93 libavcodec/dcadec.h skip_bits_long(s, p - get_bits_count(s)); s 459 libavcodec/dcadsp.c av_cold void ff_dcadsp_init(DCADSPContext *s) s 461 libavcodec/dcadsp.c s->decode_hf = decode_hf_c; s 462 libavcodec/dcadsp.c s->decode_joint = decode_joint_c; s 464 libavcodec/dcadsp.c s->lfe_fir_float[0] = lfe_fir0_float_c; s 465 libavcodec/dcadsp.c s->lfe_fir_float[1] = lfe_fir1_float_c; s 466 libavcodec/dcadsp.c s->lfe_x96_float = lfe_x96_float_c; s 467 libavcodec/dcadsp.c s->sub_qmf_float[0] = sub_qmf32_float_c; s 468 libavcodec/dcadsp.c s->sub_qmf_float[1] = sub_qmf64_float_c; s 470 libavcodec/dcadsp.c s->lfe_fir_fixed = lfe_fir_fixed_c; s 471 libavcodec/dcadsp.c s->lfe_x96_fixed = lfe_x96_fixed_c; s 472 libavcodec/dcadsp.c s->sub_qmf_fixed[0] = sub_qmf32_fixed_c; s 473 libavcodec/dcadsp.c s->sub_qmf_fixed[1] = sub_qmf64_fixed_c; s 475 libavcodec/dcadsp.c s->decor = decor_c; s 477 libavcodec/dcadsp.c s->dmix_sub_xch = dmix_sub_xch_c; s 478 libavcodec/dcadsp.c s->dmix_sub = dmix_sub_c; s 479 libavcodec/dcadsp.c s->dmix_add = dmix_add_c; s 480 libavcodec/dcadsp.c s->dmix_scale = dmix_scale_c; s 481 libavcodec/dcadsp.c s->dmix_scale_inv = dmix_scale_inv_c; s 483 libavcodec/dcadsp.c s->assemble_freq_bands = assemble_freq_bands_c; s 485 libavcodec/dcadsp.c s->lbr_bank = lbr_bank_c; s 486 libavcodec/dcadsp.c s->lfe_iir = lfe_iir_c; s 489 libavcodec/dcadsp.c ff_dcadsp_init_x86(s); s 96 libavcodec/dcadsp.h av_cold void ff_dcadsp_init(DCADSPContext *s); s 97 libavcodec/dcadsp.h av_cold void ff_dcadsp_init_x86(DCADSPContext *s); s 352 libavcodec/dcaenc.c int s = (2 * band + 1) * (2 * (i + 16) + 1); s 353 libavcodec/dcaenc.c resp += mul32(accum[i], COS_T(s << 3)) >> 3; s 550 libavcodec/dcaenc.c int32_t s = abs(in[sample]); s 551 libavcodec/dcaenc.c if (m < s) s 552 libavcodec/dcaenc.c m = s; s 38 libavcodec/dct.c #define SIN(s, n, x) (s->costab[(n) - (x)]) s 41 libavcodec/dct.c #define COS(s, n, x) (s->costab[x]) s 52 libavcodec/dct.c float s = SIN(ctx, n, 2 * i); s 54 libavcodec/dct.c s *= tmp1 + tmp2; s 56 libavcodec/dct.c data[i] = s + tmp1; s 57 libavcodec/dct.c data[n - i] = s - tmp1; s 82 libavcodec/dct.c float s = SIN(ctx, n, 2 * i); s 86 libavcodec/dct.c s *= tmp1 - tmp2; s 91 libavcodec/dct.c data[i] = tmp1 - s; s 92 libavcodec/dct.c data[n - i] = tmp1 + s; s 115 libavcodec/dct.c float s = SIN(ctx, n, i); s 117 libavcodec/dct.c data[i] = c * val1 + s * val2; s 118 libavcodec/dct.c data[i + 1] = s * val1 - c * val2; s 145 libavcodec/dct.c float s = SIN(ctx, n, 2 * i + 1); s 147 libavcodec/dct.c s *= tmp1 - tmp2; s 150 libavcodec/dct.c data[i] = tmp1 + s; s 151 libavcodec/dct.c data[n-i-1] = tmp1 - s; s 163 libavcodec/dct.c float s = SIN(ctx, n, i); s 165 libavcodec/dct.c data[i] = c * inr + s * ini; s 168 libavcodec/dct.c next += s * inr - c * ini; s 177 libavcodec/dct.c av_cold int ff_dct_init(DCTContext *s, int nbits, enum DCTTransformType inverse) s 183 libavcodec/dct.c memset(s, 0, sizeof(*s)); s 185 libavcodec/dct.c s->nbits = nbits; s 186 libavcodec/dct.c s->inverse = inverse; s 189 libavcodec/dct.c s->dct_calc = dct32_func; s 193 libavcodec/dct.c s->costab = ff_cos_tabs[nbits + 2]; s 194 libavcodec/dct.c s->csc2 = av_malloc_array(n / 2, sizeof(FFTSample)); s 195 libavcodec/dct.c if (!s->csc2) s 198 libavcodec/dct.c if ((ret = ff_rdft_init(&s->rdft, nbits, inverse == DCT_III)) < 0) { s 199 libavcodec/dct.c av_freep(&s->csc2); s 204 libavcodec/dct.c s->csc2[i] = 0.5 / sin((M_PI / (2 * n) * (2 * i + 1))); s 207 libavcodec/dct.c case DCT_I : s->dct_calc = dct_calc_I_c; break; s 208 libavcodec/dct.c case DCT_II : s->dct_calc = dct_calc_II_c; break; s 209 libavcodec/dct.c case DCT_III: s->dct_calc = dct_calc_III_c; break; s 210 libavcodec/dct.c case DST_I : s->dct_calc = dst_calc_I_c; break; s 214 libavcodec/dct.c s->dct32 = ff_dct32_float; s 216 libavcodec/dct.c ff_dct_init_x86(s); s 221 libavcodec/dct.c av_cold void ff_dct_end(DCTContext *s) s 223 libavcodec/dct.c ff_rdft_end(&s->rdft); s 224 libavcodec/dct.c av_freep(&s->csc2); s 38 libavcodec/dct.h void (*dct_calc)(struct DCTContext *s, FFTSample *data); s 50 libavcodec/dct.h int ff_dct_init(DCTContext *s, int nbits, enum DCTTransformType type); s 51 libavcodec/dct.h void ff_dct_end (DCTContext *s); s 53 libavcodec/dct.h void ff_dct_init_x86(DCTContext *s); s 37 libavcodec/dct32_template.c # define MULH3(x, y, s) ((s)*(y)*(x)) s 43 libavcodec/dct32_template.c # define MULH3(x, y, s) MULH((s)*(x), y) s 90 libavcodec/dct32_template.c #define BF(a, b, c, s)\ s 95 libavcodec/dct32_template.c val##b = MULH3(tmp1, c, 1<<(s));\ s 98 libavcodec/dct32_template.c #define BF0(a, b, c, s)\ s 103 libavcodec/dct32_template.c val##b = MULH3(tmp1, c, 1<<(s));\ s 911 libavcodec/decode.c int h, m, s; s 915 libavcodec/decode.c s = ts/ 100; ts -= 100*s; s 916 libavcodec/decode.c av_bprintf(buf, "%d:%02d:%02d.%02d,", h, m, s, ts); s 1602 libavcodec/decode.c static int video_get_buffer(AVCodecContext *s, AVFrame *pic) s 1604 libavcodec/decode.c FramePool *pool = (FramePool*)s->internal->pool->data; s 1609 libavcodec/decode.c av_log(s, AV_LOG_ERROR, "pic->data[*]!=NULL in avcodec_default_get_buffer\n"); s 1614 libavcodec/decode.c av_log(s, AV_LOG_ERROR, s 1640 libavcodec/decode.c if (s->debug & FF_DEBUG_BUFFERS) s 1641 libavcodec/decode.c av_log(s, AV_LOG_DEBUG, "default_get_buffer called on pic %p\n", pic); s 40 libavcodec/dfa.c DfaContext *s = avctx->priv_data; s 49 libavcodec/dfa.c s->frame_buf = av_mallocz(avctx->width * avctx->height); s 50 libavcodec/dfa.c if (!s->frame_buf) s 344 libavcodec/dfa.c DfaContext *s = avctx->priv_data; s 368 libavcodec/dfa.c s->pal[i] = bytestream2_get_be24(&gb) << 2; s 369 libavcodec/dfa.c s->pal[i] |= 0xFFU << 24 | (s->pal[i] >> 6) & 0x30303; s 373 libavcodec/dfa.c if (decoder[chunk_type - 2](&gb, s->frame_buf, avctx->width, avctx->height)) { s 386 libavcodec/dfa.c buf = s->frame_buf; s 401 libavcodec/dfa.c memcpy(frame->data[1], s->pal, sizeof(s->pal)); s 410 libavcodec/dfa.c DfaContext *s = avctx->priv_data; s 412 libavcodec/dfa.c av_freep(&s->frame_buf); s 137 libavcodec/dirac_parser.c static int dirac_combine_frame(AVCodecParserContext *s, AVCodecContext *avctx, s 140 libavcodec/dirac_parser.c int parse_timing_info = (s->pts == AV_NOPTS_VALUE && s 141 libavcodec/dirac_parser.c s->dts == AV_NOPTS_VALUE); s 142 libavcodec/dirac_parser.c DiracParseContext *pc = s->priv_data; s 216 libavcodec/dirac_parser.c if (s->last_pts == 0 && s->last_dts == 0) s 217 libavcodec/dirac_parser.c s->dts = pts - 1; s 219 libavcodec/dirac_parser.c s->dts = s->last_dts + 1; s 220 libavcodec/dirac_parser.c s->pts = pts; s 224 libavcodec/dirac_parser.c if (avctx->has_b_frames && s->pts == s->dts) s 225 libavcodec/dirac_parser.c s->pict_type = AV_PICTURE_TYPE_B; s 238 libavcodec/dirac_parser.c static int dirac_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 242 libavcodec/dirac_parser.c DiracParseContext *pc = s->priv_data; s 248 libavcodec/dirac_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 259 libavcodec/dirac_parser.c if (dirac_combine_frame(s, avctx, next, &buf, &buf_size) < 0) s 268 libavcodec/dirac_parser.c static void dirac_parse_close(AVCodecParserContext *s) s 270 libavcodec/dirac_parser.c DiracParseContext *pc = s->priv_data; s 284 libavcodec/diracdec.c static int alloc_sequence_buffers(DiracContext *s) s 286 libavcodec/diracdec.c int sbwidth = DIVRNDUP(s->seq.width, 4); s 287 libavcodec/diracdec.c int sbheight = DIVRNDUP(s->seq.height, 4); s 292 libavcodec/diracdec.c int max_xblen = MAX_BLOCKSIZE >> (i ? s->chroma_x_shift : 0); s 293 libavcodec/diracdec.c int max_yblen = MAX_BLOCKSIZE >> (i ? s->chroma_y_shift : 0); s 294 libavcodec/diracdec.c w = s->seq.width >> (i ? s->chroma_x_shift : 0); s 295 libavcodec/diracdec.c h = s->seq.height >> (i ? s->chroma_y_shift : 0); s 306 libavcodec/diracdec.c s->plane[i].idwt.buf_base = av_mallocz_array((w+max_xblen), h * (2 << s->pshift)); s 307 libavcodec/diracdec.c s->plane[i].idwt.tmp = av_malloc_array((w+16), 2 << s->pshift); s 308 libavcodec/diracdec.c s->plane[i].idwt.buf = s->plane[i].idwt.buf_base + (top_padding*w)*(2 << s->pshift); s 309 libavcodec/diracdec.c if (!s->plane[i].idwt.buf_base || !s->plane[i].idwt.tmp) s 314 libavcodec/diracdec.c s->sbsplit = av_malloc_array(sbwidth, sbheight); s 315 libavcodec/diracdec.c s->blmotion = av_malloc_array(sbwidth, sbheight * 16 * sizeof(*s->blmotion)); s 317 libavcodec/diracdec.c if (!s->sbsplit || !s->blmotion) s 322 libavcodec/diracdec.c static int alloc_buffers(DiracContext *s, int stride) s 324 libavcodec/diracdec.c int w = s->seq.width; s 325 libavcodec/diracdec.c int h = s->seq.height; s 330 libavcodec/diracdec.c if (s->buffer_stride >= stride) s 332 libavcodec/diracdec.c s->buffer_stride = 0; s 334 libavcodec/diracdec.c av_freep(&s->edge_emu_buffer_base); s 335 libavcodec/diracdec.c memset(s->edge_emu_buffer, 0, sizeof(s->edge_emu_buffer)); s 336 libavcodec/diracdec.c av_freep(&s->mctmp); s 337 libavcodec/diracdec.c av_freep(&s->mcscratch); s 339 libavcodec/diracdec.c s->edge_emu_buffer_base = av_malloc_array(stride, MAX_BLOCKSIZE); s 341 libavcodec/diracdec.c s->mctmp = av_malloc_array((stride+MAX_BLOCKSIZE), (h+MAX_BLOCKSIZE) * sizeof(*s->mctmp)); s 342 libavcodec/diracdec.c s->mcscratch = av_malloc_array(stride, MAX_BLOCKSIZE); s 344 libavcodec/diracdec.c if (!s->edge_emu_buffer_base || !s->mctmp || !s->mcscratch) s 347 libavcodec/diracdec.c s->buffer_stride = stride; s 351 libavcodec/diracdec.c static void free_sequence_buffers(DiracContext *s) s 356 libavcodec/diracdec.c if (s->all_frames[i].avframe->data[0]) { s 357 libavcodec/diracdec.c av_frame_unref(s->all_frames[i].avframe); s 358 libavcodec/diracdec.c memset(s->all_frames[i].interpolated, 0, sizeof(s->all_frames[i].interpolated)); s 363 libavcodec/diracdec.c av_freep(&s->all_frames[i].hpel_base[j][k]); s 366 libavcodec/diracdec.c memset(s->ref_frames, 0, sizeof(s->ref_frames)); s 367 libavcodec/diracdec.c memset(s->delay_frames, 0, sizeof(s->delay_frames)); s 370 libavcodec/diracdec.c av_freep(&s->plane[i].idwt.buf_base); s 371 libavcodec/diracdec.c av_freep(&s->plane[i].idwt.tmp); s 374 libavcodec/diracdec.c s->buffer_stride = 0; s 375 libavcodec/diracdec.c av_freep(&s->sbsplit); s 376 libavcodec/diracdec.c av_freep(&s->blmotion); s 377 libavcodec/diracdec.c av_freep(&s->edge_emu_buffer_base); s 379 libavcodec/diracdec.c av_freep(&s->mctmp); s 380 libavcodec/diracdec.c av_freep(&s->mcscratch); s 387 libavcodec/diracdec.c DiracContext *s = avctx->priv_data; s 390 libavcodec/diracdec.c s->avctx = avctx; s 391 libavcodec/diracdec.c s->frame_number = -1; s 393 libavcodec/diracdec.c s->thread_buf = NULL; s 394 libavcodec/diracdec.c s->threads_num_buf = -1; s 395 libavcodec/diracdec.c s->thread_buf_size = -1; s 397 libavcodec/diracdec.c ff_diracdsp_init(&s->diracdsp); s 398 libavcodec/diracdec.c ff_mpegvideoencdsp_init(&s->mpvencdsp, avctx); s 399 libavcodec/diracdec.c ff_videodsp_init(&s->vdsp, 8); s 402 libavcodec/diracdec.c s->all_frames[i].avframe = av_frame_alloc(); s 403 libavcodec/diracdec.c if (!s->all_frames[i].avframe) { s 405 libavcodec/diracdec.c av_frame_free(&s->all_frames[--i].avframe); s 418 libavcodec/diracdec.c DiracContext *s = avctx->priv_data; s 419 libavcodec/diracdec.c free_sequence_buffers(s); s 420 libavcodec/diracdec.c s->seen_sequence_header = 0; s 421 libavcodec/diracdec.c s->frame_number = -1; s 426 libavcodec/diracdec.c DiracContext *s = avctx->priv_data; s 431 libavcodec/diracdec.c av_frame_free(&s->all_frames[i].avframe); s 433 libavcodec/diracdec.c av_freep(&s->thread_buf); s 434 libavcodec/diracdec.c av_freep(&s->slice_params_buf); s 487 libavcodec/diracdec.c static inline int codeblock(DiracContext *s, SubBand *b, s 507 libavcodec/diracdec.c if (s->codeblock_mode && !(s->old_delta_quant && blockcnt_one)) { s 514 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid quant\n"); s 521 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported quant %d\n", b->quant); s 528 libavcodec/diracdec.c if (!s->num_refs) s 597 libavcodec/diracdec.c static av_always_inline int decode_subband_internal(DiracContext *s, SubBand *b, int is_arith) s 602 libavcodec/diracdec.c int cb_width = s->codeblock[b->level + (b->orientation != subband_ll)].width; s 603 libavcodec/diracdec.c int cb_height = s->codeblock[b->level + (b->orientation != subband_ll)].height; s 621 libavcodec/diracdec.c ret = codeblock(s, b, &gb, &c, left, right, top, bottom, blockcnt_one, is_arith); s 629 libavcodec/diracdec.c if (b->orientation == subband_ll && s->num_refs == 0) { s 630 libavcodec/diracdec.c if (s->pshift) { s 641 libavcodec/diracdec.c DiracContext *s = avctx->priv_data; s 642 libavcodec/diracdec.c return decode_subband_internal(s, b, 1); s 647 libavcodec/diracdec.c DiracContext *s = avctx->priv_data; s 649 libavcodec/diracdec.c return decode_subband_internal(s, *b, 0); s 656 libavcodec/diracdec.c static int decode_component(DiracContext *s, int comp) s 658 libavcodec/diracdec.c AVCodecContext *avctx = s->avctx; s 667 libavcodec/diracdec.c for (level = 0; level < s->wavelet_depth; level++) { s 669 libavcodec/diracdec.c SubBand *b = &s->plane[comp].band[level][orientation]; s 672 libavcodec/diracdec.c align_get_bits(&s->gb); s 674 libavcodec/diracdec.c b->length = get_interleaved_ue_golomb(&s->gb); s 676 libavcodec/diracdec.c b->quant = get_interleaved_ue_golomb(&s->gb); s 678 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported quant %d\n", b->quant); s 682 libavcodec/diracdec.c align_get_bits(&s->gb); s 683 libavcodec/diracdec.c b->coeff_data = s->gb.buffer + get_bits_count(&s->gb)/8; s 684 libavcodec/diracdec.c if (b->length > FFMAX(get_bits_left(&s->gb)/8, 0)) { s 685 libavcodec/diracdec.c b->length = FFMAX(get_bits_left(&s->gb)/8, 0); s 688 libavcodec/diracdec.c skip_bits_long(&s->gb, b->length*8); s 692 libavcodec/diracdec.c if (s->is_arith) s 693 libavcodec/diracdec.c avctx->execute(avctx, decode_subband_arith, &s->plane[comp].band[level][!!level], s 697 libavcodec/diracdec.c if (!s->is_arith) s 700 libavcodec/diracdec.c for (i = 0; i < s->wavelet_depth * 3 + 1; i++) { s 704 libavcodec/diracdec.c if (damaged_count > (s->wavelet_depth * 3 + 1) /2) s 722 libavcodec/diracdec.c static void decode_subband(DiracContext *s, GetBitContext *gb, int quant, s 726 libavcodec/diracdec.c int left = b1->width * slice_x / s->num_x; s 727 libavcodec/diracdec.c int right = b1->width *(slice_x+1) / s->num_x; s 728 libavcodec/diracdec.c int top = b1->height * slice_y / s->num_y; s 729 libavcodec/diracdec.c int bottom = b1->height *(slice_y+1) / s->num_y; s 738 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported quant %d\n", quant); s 748 libavcodec/diracdec.c if (s->pshift) { s 776 libavcodec/diracdec.c DiracContext *s = avctx->priv_data; s 788 libavcodec/diracdec.c for (level = 0; level < s->wavelet_depth; level++) s 790 libavcodec/diracdec.c quant = FFMAX(quant_base - s->lowdelay.quant[level][orientation], 0); s 791 libavcodec/diracdec.c decode_subband(s, gb, quant, slice->slice_x, slice->slice_y, luma_end, s 792 libavcodec/diracdec.c &s->plane[0].band[level][orientation], NULL); s 801 libavcodec/diracdec.c for (level = 0; level < s->wavelet_depth; level++) s 803 libavcodec/diracdec.c quant = FFMAX(quant_base - s->lowdelay.quant[level][orientation], 0); s 804 libavcodec/diracdec.c decode_subband(s, gb, quant, slice->slice_x, slice->slice_y, chroma_end, s 805 libavcodec/diracdec.c &s->plane[1].band[level][orientation], s 806 libavcodec/diracdec.c &s->plane[2].band[level][orientation]); s 820 libavcodec/diracdec.c static int subband_coeffs(DiracContext *s, int x, int y, int p, s 824 libavcodec/diracdec.c for (level = 0; level < s->wavelet_depth; level++) { s 826 libavcodec/diracdec.c SubBand *b = &s->plane[p].band[level][3]; /* orientation doens't matter */ s 827 libavcodec/diracdec.c o->top = b->height * y / s->num_y; s 828 libavcodec/diracdec.c o->left = b->width * x / s->num_x; s 829 libavcodec/diracdec.c o->tot_h = ((b->width * (x + 1)) / s->num_x) - o->left; s 830 libavcodec/diracdec.c o->tot_v = ((b->height * (y + 1)) / s->num_y) - o->top; s 841 libavcodec/diracdec.c static int decode_hq_slice(DiracContext *s, DiracSlice *slice, uint8_t *tmp_buf) s 848 libavcodec/diracdec.c skip_bits_long(gb, 8*s->highquality.prefix_bytes); s 852 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid quantization index - %i\n", quant_idx); s 857 libavcodec/diracdec.c for (level = 0; level < s->wavelet_depth; level++) { s 859 libavcodec/diracdec.c const int quant = FFMAX(quant_idx - s->lowdelay.quant[level][orientation], 0); s 868 libavcodec/diracdec.c int64_t length = s->highquality.size_scaler*get_bits(gb, 8); s 873 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "end too far away\n"); s 877 libavcodec/diracdec.c coef_num = subband_coeffs(s, slice->slice_x, slice->slice_y, i, coeffs_num); s 879 libavcodec/diracdec.c if (s->pshift) s 887 libavcodec/diracdec.c const int start_b = coef_par * (1 << (s->pshift + 1)); s 888 libavcodec/diracdec.c const int end_b = coef_num * (1 << (s->pshift + 1)); s 892 libavcodec/diracdec.c for (level = 0; level < s->wavelet_depth; level++) { s 895 libavcodec/diracdec.c const SubBand *b1 = &s->plane[i].band[level][orientation]; s 896 libavcodec/diracdec.c uint8_t *buf = b1->ibuf + c->top * b1->stride + (c->left << (s->pshift + 1)); s 899 libavcodec/diracdec.c const int qfunc = s->pshift + 2*(c->tot_h <= 2); s 900 libavcodec/diracdec.c s->diracdsp.dequant_subband[qfunc](&tmp_buf[off], buf, b1->stride, s 905 libavcodec/diracdec.c off += c->tot << (s->pshift + 1); s 918 libavcodec/diracdec.c DiracContext *s = avctx->priv_data; s 919 libavcodec/diracdec.c DiracSlice *slices = ((DiracSlice *)arg) + s->num_x*jobnr; s 920 libavcodec/diracdec.c uint8_t *thread_buf = &s->thread_buf[s->thread_buf_size*threadnr]; s 921 libavcodec/diracdec.c for (i = 0; i < s->num_x; i++) s 922 libavcodec/diracdec.c decode_hq_slice(s, &slices[i], thread_buf); s 930 libavcodec/diracdec.c static int decode_lowdelay(DiracContext *s) s 932 libavcodec/diracdec.c AVCodecContext *avctx = s->avctx; s 940 libavcodec/diracdec.c if (s->slice_params_num_buf != (s->num_x * s->num_y)) { s 941 libavcodec/diracdec.c s->slice_params_buf = av_realloc_f(s->slice_params_buf, s->num_x * s->num_y, sizeof(DiracSlice)); s 942 libavcodec/diracdec.c if (!s->slice_params_buf) { s 943 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "slice params buffer allocation failure\n"); s 944 libavcodec/diracdec.c s->slice_params_num_buf = 0; s 947 libavcodec/diracdec.c s->slice_params_num_buf = s->num_x * s->num_y; s 949 libavcodec/diracdec.c slices = s->slice_params_buf; s 953 libavcodec/diracdec.c coef_buf_size = subband_coeffs(s, s->num_x - 1, s->num_y - 1, 0, tmp) + 8; s 954 libavcodec/diracdec.c coef_buf_size = (coef_buf_size << (1 + s->pshift)) + 512; s 956 libavcodec/diracdec.c if (s->threads_num_buf != avctx->thread_count || s 957 libavcodec/diracdec.c s->thread_buf_size != coef_buf_size) { s 958 libavcodec/diracdec.c s->threads_num_buf = avctx->thread_count; s 959 libavcodec/diracdec.c s->thread_buf_size = coef_buf_size; s 960 libavcodec/diracdec.c s->thread_buf = av_realloc_f(s->thread_buf, avctx->thread_count, s->thread_buf_size); s 961 libavcodec/diracdec.c if (!s->thread_buf) { s 962 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "thread buffer allocation failure\n"); s 967 libavcodec/diracdec.c align_get_bits(&s->gb); s 969 libavcodec/diracdec.c buf = s->gb.buffer + get_bits_count(&s->gb)/8; s 970 libavcodec/diracdec.c bufsize = get_bits_left(&s->gb); s 972 libavcodec/diracdec.c if (s->hq_picture) { s 975 libavcodec/diracdec.c for (slice_y = 0; bufsize > 0 && slice_y < s->num_y; slice_y++) { s 976 libavcodec/diracdec.c for (slice_x = 0; bufsize > 0 && slice_x < s->num_x; slice_x++) { s 977 libavcodec/diracdec.c bytes = s->highquality.prefix_bytes + 1; s 980 libavcodec/diracdec.c bytes += buf[bytes] * s->highquality.size_scaler + 1; s 983 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "too many bytes\n"); s 1001 libavcodec/diracdec.c if (s->num_x*s->num_y != slice_num) { s 1002 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "too few slices\n"); s 1006 libavcodec/diracdec.c avctx->execute2(avctx, decode_hq_slice_row, slices, NULL, s->num_y); s 1008 libavcodec/diracdec.c for (slice_y = 0; bufsize > 0 && slice_y < s->num_y; slice_y++) { s 1009 libavcodec/diracdec.c for (slice_x = 0; bufsize > 0 && slice_x < s->num_x; slice_x++) { s 1010 libavcodec/diracdec.c bytes = (slice_num+1) * (int64_t)s->lowdelay.bytes.num / s->lowdelay.bytes.den s 1011 libavcodec/diracdec.c - slice_num * (int64_t)s->lowdelay.bytes.num / s->lowdelay.bytes.den; s 1013 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "too many bytes\n"); s 1033 libavcodec/diracdec.c if (s->dc_prediction) { s 1034 libavcodec/diracdec.c if (s->pshift) { s 1035 libavcodec/diracdec.c intra_dc_prediction_10(&s->plane[0].band[0][0]); /* [DIRAC_STD] 13.3 intra_dc_prediction() */ s 1036 libavcodec/diracdec.c intra_dc_prediction_10(&s->plane[1].band[0][0]); /* [DIRAC_STD] 13.3 intra_dc_prediction() */ s 1037 libavcodec/diracdec.c intra_dc_prediction_10(&s->plane[2].band[0][0]); /* [DIRAC_STD] 13.3 intra_dc_prediction() */ s 1039 libavcodec/diracdec.c intra_dc_prediction_8(&s->plane[0].band[0][0]); s 1040 libavcodec/diracdec.c intra_dc_prediction_8(&s->plane[1].band[0][0]); s 1041 libavcodec/diracdec.c intra_dc_prediction_8(&s->plane[2].band[0][0]); s 1048 libavcodec/diracdec.c static void init_planes(DiracContext *s) s 1053 libavcodec/diracdec.c Plane *p = &s->plane[i]; s 1055 libavcodec/diracdec.c p->width = s->seq.width >> (i ? s->chroma_x_shift : 0); s 1056 libavcodec/diracdec.c p->height = s->seq.height >> (i ? s->chroma_y_shift : 0); s 1057 libavcodec/diracdec.c p->idwt.width = w = CALC_PADDING(p->width , s->wavelet_depth); s 1058 libavcodec/diracdec.c p->idwt.height = h = CALC_PADDING(p->height, s->wavelet_depth); s 1059 libavcodec/diracdec.c p->idwt.stride = FFALIGN(p->idwt.width, 8) << (1 + s->pshift); s 1061 libavcodec/diracdec.c for (level = s->wavelet_depth-1; level >= 0; level--) { s 1067 libavcodec/diracdec.c b->pshift = s->pshift; s 1070 libavcodec/diracdec.c b->stride = p->idwt.stride << (s->wavelet_depth - level); s 1086 libavcodec/diracdec.c p->xblen = s->plane[0].xblen >> s->chroma_x_shift; s 1087 libavcodec/diracdec.c p->yblen = s->plane[0].yblen >> s->chroma_y_shift; s 1088 libavcodec/diracdec.c p->xbsep = s->plane[0].xbsep >> s->chroma_x_shift; s 1089 libavcodec/diracdec.c p->ybsep = s->plane[0].ybsep >> s->chroma_y_shift; s 1102 libavcodec/diracdec.c static int dirac_unpack_prediction_parameters(DiracContext *s) s 1106 libavcodec/diracdec.c GetBitContext *gb = &s->gb; s 1115 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Block prediction index too high\n"); s 1120 libavcodec/diracdec.c s->plane[0].xblen = get_interleaved_ue_golomb(gb); s 1121 libavcodec/diracdec.c s->plane[0].yblen = get_interleaved_ue_golomb(gb); s 1122 libavcodec/diracdec.c s->plane[0].xbsep = get_interleaved_ue_golomb(gb); s 1123 libavcodec/diracdec.c s->plane[0].ybsep = get_interleaved_ue_golomb(gb); s 1126 libavcodec/diracdec.c s->plane[0].xblen = default_blen[idx-1]; s 1127 libavcodec/diracdec.c s->plane[0].yblen = default_blen[idx-1]; s 1128 libavcodec/diracdec.c s->plane[0].xbsep = 4 * idx; s 1129 libavcodec/diracdec.c s->plane[0].ybsep = 4 * idx; s 1134 libavcodec/diracdec.c if (s->plane[0].xblen % (1 << s->chroma_x_shift) != 0 || s 1135 libavcodec/diracdec.c s->plane[0].yblen % (1 << s->chroma_y_shift) != 0 || s 1136 libavcodec/diracdec.c !s->plane[0].xblen || !s->plane[0].yblen) { s 1137 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, s 1139 libavcodec/diracdec.c s->plane[0].xblen, s->plane[0].yblen, s->chroma_x_shift, s->chroma_y_shift); s 1142 libavcodec/diracdec.c if (!s->plane[0].xbsep || !s->plane[0].ybsep || s->plane[0].xbsep < s->plane[0].xblen/2 || s->plane[0].ybsep < s->plane[0].yblen/2) { s 1143 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Block separation too small\n"); s 1146 libavcodec/diracdec.c if (s->plane[0].xbsep > s->plane[0].xblen || s->plane[0].ybsep > s->plane[0].yblen) { s 1147 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Block separation greater than size\n"); s 1150 libavcodec/diracdec.c if (FFMAX(s->plane[0].xblen, s->plane[0].yblen) > MAX_BLOCKSIZE) { s 1151 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported large block size\n"); s 1157 libavcodec/diracdec.c s->mv_precision = get_interleaved_ue_golomb(gb); s 1158 libavcodec/diracdec.c if (s->mv_precision > 3) { s 1159 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "MV precision finer than eighth-pel\n"); s 1165 libavcodec/diracdec.c s->globalmc_flag = get_bits1(gb); s 1166 libavcodec/diracdec.c if (s->globalmc_flag) { s 1167 libavcodec/diracdec.c memset(s->globalmc, 0, sizeof(s->globalmc)); s 1169 libavcodec/diracdec.c for (ref = 0; ref < s->num_refs; ref++) { s 1171 libavcodec/diracdec.c s->globalmc[ref].pan_tilt[0] = dirac_get_se_golomb(gb); s 1172 libavcodec/diracdec.c s->globalmc[ref].pan_tilt[1] = dirac_get_se_golomb(gb); s 1177 libavcodec/diracdec.c s->globalmc[ref].zrs_exp = get_interleaved_ue_golomb(gb); s 1178 libavcodec/diracdec.c s->globalmc[ref].zrs[0][0] = dirac_get_se_golomb(gb); s 1179 libavcodec/diracdec.c s->globalmc[ref].zrs[0][1] = dirac_get_se_golomb(gb); s 1180 libavcodec/diracdec.c s->globalmc[ref].zrs[1][0] = dirac_get_se_golomb(gb); s 1181 libavcodec/diracdec.c s->globalmc[ref].zrs[1][1] = dirac_get_se_golomb(gb); s 1183 libavcodec/diracdec.c s->globalmc[ref].zrs[0][0] = 1; s 1184 libavcodec/diracdec.c s->globalmc[ref].zrs[1][1] = 1; s 1188 libavcodec/diracdec.c s->globalmc[ref].perspective_exp = get_interleaved_ue_golomb(gb); s 1189 libavcodec/diracdec.c s->globalmc[ref].perspective[0] = dirac_get_se_golomb(gb); s 1190 libavcodec/diracdec.c s->globalmc[ref].perspective[1] = dirac_get_se_golomb(gb); s 1192 libavcodec/diracdec.c if (s->globalmc[ref].perspective_exp + (uint64_t)s->globalmc[ref].zrs_exp > 30) { s 1202 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Unknown picture prediction mode\n"); s 1208 libavcodec/diracdec.c s->weight_log2denom = 1; s 1209 libavcodec/diracdec.c s->weight[0] = 1; s 1210 libavcodec/diracdec.c s->weight[1] = 1; s 1213 libavcodec/diracdec.c s->weight_log2denom = get_interleaved_ue_golomb(gb); s 1214 libavcodec/diracdec.c if (s->weight_log2denom < 1 || s->weight_log2denom > 8) { s 1215 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "weight_log2denom unsupported or invalid\n"); s 1216 libavcodec/diracdec.c s->weight_log2denom = 1; s 1219 libavcodec/diracdec.c s->weight[0] = dirac_get_se_golomb(gb); s 1220 libavcodec/diracdec.c if (s->num_refs == 2) s 1221 libavcodec/diracdec.c s->weight[1] = dirac_get_se_golomb(gb); s 1230 libavcodec/diracdec.c static int dirac_unpack_idwt_params(DiracContext *s) s 1232 libavcodec/diracdec.c GetBitContext *gb = &s->gb; s 1239 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, errmsg); \ s 1246 libavcodec/diracdec.c s->zero_res = s->num_refs ? get_bits1(gb) : 0; s 1247 libavcodec/diracdec.c if (s->zero_res) s 1251 libavcodec/diracdec.c CHECKEDREAD(s->wavelet_idx, tmp > 6, "wavelet_idx is too big\n") s 1253 libavcodec/diracdec.c CHECKEDREAD(s->wavelet_depth, tmp > MAX_DWT_LEVELS || tmp < 1, "invalid number of DWT decompositions\n") s 1255 libavcodec/diracdec.c if (!s->low_delay) { s 1258 libavcodec/diracdec.c for (i = 0; i <= s->wavelet_depth; i++) { s 1259 libavcodec/diracdec.c CHECKEDREAD(s->codeblock[i].width , tmp < 1 || tmp > (s->avctx->width >>s->wavelet_depth-i), "codeblock width invalid\n") s 1260 libavcodec/diracdec.c CHECKEDREAD(s->codeblock[i].height, tmp < 1 || tmp > (s->avctx->height>>s->wavelet_depth-i), "codeblock height invalid\n") s 1263 libavcodec/diracdec.c CHECKEDREAD(s->codeblock_mode, tmp > 1, "unknown codeblock mode\n") s 1266 libavcodec/diracdec.c for (i = 0; i <= s->wavelet_depth; i++) s 1267 libavcodec/diracdec.c s->codeblock[i].width = s->codeblock[i].height = 1; s 1271 libavcodec/diracdec.c s->num_x = get_interleaved_ue_golomb(gb); s 1272 libavcodec/diracdec.c s->num_y = get_interleaved_ue_golomb(gb); s 1273 libavcodec/diracdec.c if (s->num_x * s->num_y == 0 || s->num_x * (uint64_t)s->num_y > INT_MAX || s 1274 libavcodec/diracdec.c s->num_x * (uint64_t)s->avctx->width > INT_MAX || s 1275 libavcodec/diracdec.c s->num_y * (uint64_t)s->avctx->height > INT_MAX || s 1276 libavcodec/diracdec.c s->num_x > s->avctx->width || s 1277 libavcodec/diracdec.c s->num_y > s->avctx->height s 1279 libavcodec/diracdec.c av_log(s->avctx,AV_LOG_ERROR,"Invalid numx/y\n"); s 1280 libavcodec/diracdec.c s->num_x = s->num_y = 0; s 1283 libavcodec/diracdec.c if (s->ld_picture) { s 1284 libavcodec/diracdec.c s->lowdelay.bytes.num = get_interleaved_ue_golomb(gb); s 1285 libavcodec/diracdec.c s->lowdelay.bytes.den = get_interleaved_ue_golomb(gb); s 1286 libavcodec/diracdec.c if (s->lowdelay.bytes.den <= 0) { s 1287 libavcodec/diracdec.c av_log(s->avctx,AV_LOG_ERROR,"Invalid lowdelay.bytes.den\n"); s 1290 libavcodec/diracdec.c } else if (s->hq_picture) { s 1291 libavcodec/diracdec.c s->highquality.prefix_bytes = get_interleaved_ue_golomb(gb); s 1292 libavcodec/diracdec.c s->highquality.size_scaler = get_interleaved_ue_golomb(gb); s 1293 libavcodec/diracdec.c if (s->highquality.prefix_bytes >= INT_MAX / 8) { s 1294 libavcodec/diracdec.c av_log(s->avctx,AV_LOG_ERROR,"too many prefix bytes\n"); s 1301 libavcodec/diracdec.c av_log(s->avctx,AV_LOG_DEBUG,"Low Delay: Has Custom Quantization Matrix!\n"); s 1303 libavcodec/diracdec.c for (level = 0; level < s->wavelet_depth; level++) { s 1305 libavcodec/diracdec.c s->lowdelay.quant[level][i] = get_interleaved_ue_golomb(gb); s 1309 libavcodec/diracdec.c if (s->wavelet_depth > 4) { s 1310 libavcodec/diracdec.c av_log(s->avctx,AV_LOG_ERROR,"Mandatory custom low delay matrix missing for depth %d\n", s->wavelet_depth); s 1314 libavcodec/diracdec.c for (level = 0; level < s->wavelet_depth; level++) s 1316 libavcodec/diracdec.c s->lowdelay.quant[level][i] = ff_dirac_default_qmat[s->wavelet_idx][level][i]; s 1318 libavcodec/diracdec.c if (s->wavelet_idx == 3) s 1319 libavcodec/diracdec.c s->lowdelay.quant[level][i] += 4*(s->wavelet_depth-1 - level); s 1425 libavcodec/diracdec.c static void global_mv(DiracContext *s, DiracBlock *block, int x, int y, int ref) s 1427 libavcodec/diracdec.c int ez = s->globalmc[ref].zrs_exp; s 1428 libavcodec/diracdec.c int ep = s->globalmc[ref].perspective_exp; s 1429 libavcodec/diracdec.c int (*A)[2] = s->globalmc[ref].zrs; s 1430 libavcodec/diracdec.c int *b = s->globalmc[ref].pan_tilt; s 1431 libavcodec/diracdec.c int *c = s->globalmc[ref].perspective; s 1441 libavcodec/diracdec.c static void decode_block_params(DiracContext *s, DiracArith arith[8], DiracBlock *block, s 1449 libavcodec/diracdec.c if (s->num_refs == 2) { s 1461 libavcodec/diracdec.c if (s->globalmc_flag) { s 1466 libavcodec/diracdec.c for (i = 0; i < s->num_refs; i++) s 1469 libavcodec/diracdec.c global_mv(s, block, x, y, i); s 1500 libavcodec/diracdec.c static int dirac_unpack_block_motion_data(DiracContext *s) s 1502 libavcodec/diracdec.c GetBitContext *gb = &s->gb; s 1503 libavcodec/diracdec.c uint8_t *sbsplit = s->sbsplit; s 1510 libavcodec/diracdec.c s->sbwidth = DIVRNDUP(s->seq.width, 4*s->plane[0].xbsep); s 1511 libavcodec/diracdec.c s->sbheight = DIVRNDUP(s->seq.height, 4*s->plane[0].ybsep); s 1512 libavcodec/diracdec.c s->blwidth = 4 * s->sbwidth; s 1513 libavcodec/diracdec.c s->blheight = 4 * s->sbheight; s 1518 libavcodec/diracdec.c for (y = 0; y < s->sbheight; y++) { s 1519 libavcodec/diracdec.c for (x = 0; x < s->sbwidth; x++) { s 1523 libavcodec/diracdec.c sbsplit[x] = (split + pred_sbsplit(sbsplit+x, s->sbwidth, x, y)) % 3; s 1525 libavcodec/diracdec.c sbsplit += s->sbwidth; s 1530 libavcodec/diracdec.c for (i = 0; i < s->num_refs; i++) { s 1537 libavcodec/diracdec.c for (y = 0; y < s->sbheight; y++) s 1538 libavcodec/diracdec.c for (x = 0; x < s->sbwidth; x++) { s 1539 libavcodec/diracdec.c int blkcnt = 1 << s->sbsplit[y * s->sbwidth + x]; s 1540 libavcodec/diracdec.c int step = 4 >> s->sbsplit[y * s->sbwidth + x]; s 1546 libavcodec/diracdec.c DiracBlock *block = &s->blmotion[by*s->blwidth + bx]; s 1547 libavcodec/diracdec.c decode_block_params(s, arith, block, s->blwidth, bx, by); s 1548 libavcodec/diracdec.c propagate_block_data(block, s->blwidth, step); s 1552 libavcodec/diracdec.c for (i = 0; i < 4 + 2*s->num_refs; i++) { s 1605 libavcodec/diracdec.c static void init_obmc_weights(DiracContext *s, Plane *p, int by) s 1608 libavcodec/diracdec.c int bottom = by == s->blheight-1; s 1612 libavcodec/diracdec.c init_obmc_weight(p, s->obmc_weight[0], MAX_BLOCKSIZE, 1, 0, top, bottom); s 1613 libavcodec/diracdec.c init_obmc_weight(p, s->obmc_weight[1], MAX_BLOCKSIZE, 0, 0, top, bottom); s 1614 libavcodec/diracdec.c init_obmc_weight(p, s->obmc_weight[2], MAX_BLOCKSIZE, 0, 1, top, bottom); s 1645 libavcodec/diracdec.c static int mc_subpel(DiracContext *s, DiracBlock *block, const uint8_t *src[5], s 1648 libavcodec/diracdec.c Plane *p = &s->plane[plane]; s 1649 libavcodec/diracdec.c uint8_t **ref_hpel = s->ref_pics[ref]->hpel[plane]; s 1655 libavcodec/diracdec.c motion_x >>= s->chroma_x_shift; s 1656 libavcodec/diracdec.c motion_y >>= s->chroma_y_shift; s 1659 libavcodec/diracdec.c mx = motion_x & ~(-1U << s->mv_precision); s 1660 libavcodec/diracdec.c my = motion_y & ~(-1U << s->mv_precision); s 1661 libavcodec/diracdec.c motion_x >>= s->mv_precision; s 1662 libavcodec/diracdec.c motion_y >>= s->mv_precision; s 1665 libavcodec/diracdec.c mx <<= 3 - s->mv_precision; s 1666 libavcodec/diracdec.c my <<= 3 - s->mv_precision; s 1730 libavcodec/diracdec.c s->vdsp.emulated_edge_mc(s->edge_emu_buffer[i], src[i], s 1734 libavcodec/diracdec.c src[i] = s->edge_emu_buffer[i]; s 1756 libavcodec/diracdec.c static void block_mc(DiracContext *s, DiracBlock *block, s 1760 libavcodec/diracdec.c Plane *p = &s->plane[plane]; s 1770 libavcodec/diracdec.c idx = mc_subpel(s, block, src, dstx, dsty, (block->ref&3)-1, plane); s 1771 libavcodec/diracdec.c s->put_pixels_tab[idx](s->mcscratch, src, p->stride, p->yblen); s 1772 libavcodec/diracdec.c if (s->weight_func) s 1773 libavcodec/diracdec.c s->weight_func(s->mcscratch, p->stride, s->weight_log2denom, s 1774 libavcodec/diracdec.c s->weight[0] + s->weight[1], p->yblen); s 1777 libavcodec/diracdec.c idx = mc_subpel(s, block, src, dstx, dsty, 0, plane); s 1778 libavcodec/diracdec.c s->put_pixels_tab[idx](s->mcscratch, src, p->stride, p->yblen); s 1779 libavcodec/diracdec.c idx = mc_subpel(s, block, src, dstx, dsty, 1, plane); s 1780 libavcodec/diracdec.c if (s->biweight_func) { s 1782 libavcodec/diracdec.c s->put_pixels_tab[idx](s->mcscratch + 32, src, p->stride, p->yblen); s 1783 libavcodec/diracdec.c s->biweight_func(s->mcscratch, s->mcscratch+32, p->stride, s->weight_log2denom, s 1784 libavcodec/diracdec.c s->weight[0], s->weight[1], p->yblen); s 1786 libavcodec/diracdec.c s->avg_pixels_tab[idx](s->mcscratch, src, p->stride, p->yblen); s 1789 libavcodec/diracdec.c s->add_obmc(mctmp, s->mcscratch, p->stride, obmc_weight, p->yblen); s 1792 libavcodec/diracdec.c static void mc_row(DiracContext *s, DiracBlock *block, uint16_t *mctmp, int plane, int dsty) s 1794 libavcodec/diracdec.c Plane *p = &s->plane[plane]; s 1797 libavcodec/diracdec.c block_mc(s, block, mctmp, s->obmc_weight[0], plane, -p->xoffset, dsty); s 1800 libavcodec/diracdec.c for (x = 1; x < s->blwidth-1; x++) { s 1801 libavcodec/diracdec.c block_mc(s, block+x, mctmp, s->obmc_weight[1], plane, dstx, dsty); s 1805 libavcodec/diracdec.c block_mc(s, block+x, mctmp, s->obmc_weight[2], plane, dstx, dsty); s 1808 libavcodec/diracdec.c static void select_dsp_funcs(DiracContext *s, int width, int height, int xblen, int yblen) s 1816 libavcodec/diracdec.c memcpy(s->put_pixels_tab, s->diracdsp.put_dirac_pixels_tab[idx], sizeof(s->put_pixels_tab)); s 1817 libavcodec/diracdec.c memcpy(s->avg_pixels_tab, s->diracdsp.avg_dirac_pixels_tab[idx], sizeof(s->avg_pixels_tab)); s 1818 libavcodec/diracdec.c s->add_obmc = s->diracdsp.add_dirac_obmc[idx]; s 1819 libavcodec/diracdec.c if (s->weight_log2denom > 1 || s->weight[0] != 1 || s->weight[1] != 1) { s 1820 libavcodec/diracdec.c s->weight_func = s->diracdsp.weight_dirac_pixels_tab[idx]; s 1821 libavcodec/diracdec.c s->biweight_func = s->diracdsp.biweight_dirac_pixels_tab[idx]; s 1823 libavcodec/diracdec.c s->weight_func = NULL; s 1824 libavcodec/diracdec.c s->biweight_func = NULL; s 1828 libavcodec/diracdec.c static int interpolate_refplane(DiracContext *s, DiracFrame *ref, int plane, int width, int height) s 1836 libavcodec/diracdec.c s->mpvencdsp.draw_edges(ref->hpel[plane][0], ref->avframe->linesize[plane], width, height, edge, edge, EDGE_TOP | EDGE_BOTTOM); /* EDGE_TOP | EDGE_BOTTOM values just copied to make it build, this needs to be ensured */ s 1839 libavcodec/diracdec.c if (!s->mv_precision) s 1853 libavcodec/diracdec.c s->diracdsp.dirac_hpel_filter(ref->hpel[plane][1], ref->hpel[plane][2], s 1856 libavcodec/diracdec.c s->mpvencdsp.draw_edges(ref->hpel[plane][1], ref->avframe->linesize[plane], width, height, edge, edge, EDGE_TOP | EDGE_BOTTOM); s 1857 libavcodec/diracdec.c s->mpvencdsp.draw_edges(ref->hpel[plane][2], ref->avframe->linesize[plane], width, height, edge, edge, EDGE_TOP | EDGE_BOTTOM); s 1858 libavcodec/diracdec.c s->mpvencdsp.draw_edges(ref->hpel[plane][3], ref->avframe->linesize[plane], width, height, edge, edge, EDGE_TOP | EDGE_BOTTOM); s 1869 libavcodec/diracdec.c static int dirac_decode_frame_internal(DiracContext *s) s 1875 libavcodec/diracdec.c if (s->low_delay) { s 1877 libavcodec/diracdec.c if (!s->hq_picture) { s 1879 libavcodec/diracdec.c Plane *p = &s->plane[comp]; s 1883 libavcodec/diracdec.c if (!s->zero_res) { s 1884 libavcodec/diracdec.c if ((ret = decode_lowdelay(s)) < 0) s 1890 libavcodec/diracdec.c Plane *p = &s->plane[comp]; s 1891 libavcodec/diracdec.c uint8_t *frame = s->current_picture->avframe->data[comp]; s 1895 libavcodec/diracdec.c s->edge_emu_buffer[i] = s->edge_emu_buffer_base + i*FFALIGN(p->width, 16); s 1897 libavcodec/diracdec.c if (!s->zero_res && !s->low_delay) s 1900 libavcodec/diracdec.c ret = decode_component(s, comp); /* [DIRAC_STD] 13.4.1 core_transform_data() */ s 1904 libavcodec/diracdec.c ret = ff_spatial_idwt_init(&d, &p->idwt, s->wavelet_idx+2, s 1905 libavcodec/diracdec.c s->wavelet_depth, s->bit_depth); s 1909 libavcodec/diracdec.c if (!s->num_refs) { /* intra */ s 1911 libavcodec/diracdec.c int idx = (s->bit_depth - 8) >> 1; s 1913 libavcodec/diracdec.c s->diracdsp.put_signed_rect_clamped[idx](frame + y*p->stride, s 1921 libavcodec/diracdec.c select_dsp_funcs(s, p->width, p->height, p->xblen, p->yblen); s 1923 libavcodec/diracdec.c for (i = 0; i < s->num_refs; i++) { s 1924 libavcodec/diracdec.c int ret = interpolate_refplane(s, s->ref_pics[i], comp, p->width, p->height); s 1929 libavcodec/diracdec.c memset(s->mctmp, 0, 4*p->yoffset*p->stride); s 1932 libavcodec/diracdec.c for (y = 0; y < s->blheight; y++) { s 1935 libavcodec/diracdec.c uint16_t *mctmp = s->mctmp + y*rowheight; s 1936 libavcodec/diracdec.c DiracBlock *blocks = s->blmotion + y*s->blwidth; s 1938 libavcodec/diracdec.c init_obmc_weights(s, p, y); s 1940 libavcodec/diracdec.c if (y == s->blheight-1 || start+p->ybsep > p->height) s 1948 libavcodec/diracdec.c mc_row(s, blocks, mctmp, comp, dsty); s 1954 libavcodec/diracdec.c s->diracdsp.add_rect_clamped(frame + start*p->stride, mctmp, p->stride, s 1996 libavcodec/diracdec.c static int dirac_decode_picture_header(DiracContext *s) s 2001 libavcodec/diracdec.c GetBitContext *gb = &s->gb; s 2004 libavcodec/diracdec.c picnum = s->current_picture->avframe->display_picture_number = get_bits_long(gb, 32); s 2007 libavcodec/diracdec.c av_log(s->avctx,AV_LOG_DEBUG,"PICTURE_NUM: %d\n",picnum); s 2011 libavcodec/diracdec.c if (s->frame_number < 0) s 2012 libavcodec/diracdec.c s->frame_number = picnum; s 2014 libavcodec/diracdec.c s->ref_pics[0] = s->ref_pics[1] = NULL; s 2015 libavcodec/diracdec.c for (i = 0; i < s->num_refs; i++) { s 2022 libavcodec/diracdec.c if (s->ref_frames[j] s 2023 libavcodec/diracdec.c && FFABS(s->ref_frames[j]->avframe->display_picture_number - refnum) < refdist) { s 2024 libavcodec/diracdec.c s->ref_pics[i] = s->ref_frames[j]; s 2025 libavcodec/diracdec.c refdist = FFABS(s->ref_frames[j]->avframe->display_picture_number - refnum); s 2028 libavcodec/diracdec.c if (!s->ref_pics[i] || refdist) s 2029 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_DEBUG, "Reference not found\n"); s 2032 libavcodec/diracdec.c if (!s->ref_pics[i]) s 2034 libavcodec/diracdec.c if (!s->all_frames[j].avframe->data[0]) { s 2035 libavcodec/diracdec.c s->ref_pics[i] = &s->all_frames[j]; s 2036 libavcodec/diracdec.c ret = get_buffer_with_edge(s->avctx, s->ref_pics[i]->avframe, AV_GET_BUFFER_FLAG_REF); s 2042 libavcodec/diracdec.c if (!s->ref_pics[i]) { s 2043 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Reference could not be allocated\n"); s 2050 libavcodec/diracdec.c if (s->current_picture->reference) { s 2053 libavcodec/diracdec.c DiracFrame *retire_pic = remove_frame(s->ref_frames, retire); s 2058 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_DEBUG, "Frame to retire not found\n"); s 2062 libavcodec/diracdec.c while (add_frame(s->ref_frames, MAX_REFERENCE_FRAMES, s->current_picture)) { s 2063 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, "Reference frame overflow\n"); s 2064 libavcodec/diracdec.c remove_frame(s->ref_frames, s->ref_frames[0]->avframe->display_picture_number)->reference &= DELAYED_PIC_REF; s 2068 libavcodec/diracdec.c if (s->num_refs) { s 2069 libavcodec/diracdec.c ret = dirac_unpack_prediction_parameters(s); /* [DIRAC_STD] 11.2 Picture Prediction Data. picture_prediction() */ s 2072 libavcodec/diracdec.c ret = dirac_unpack_block_motion_data(s); /* [DIRAC_STD] 12. Block motion data syntax */ s 2076 libavcodec/diracdec.c ret = dirac_unpack_idwt_params(s); /* [DIRAC_STD] 11.3 Wavelet transform data */ s 2080 libavcodec/diracdec.c init_planes(s); s 2084 libavcodec/diracdec.c static int get_delayed_pic(DiracContext *s, AVFrame *picture, int *got_frame) s 2086 libavcodec/diracdec.c DiracFrame *out = s->delay_frames[0]; s 2091 libavcodec/diracdec.c for (i = 1; s->delay_frames[i]; i++) s 2092 libavcodec/diracdec.c if (s->delay_frames[i]->avframe->display_picture_number < out->avframe->display_picture_number) { s 2093 libavcodec/diracdec.c out = s->delay_frames[i]; s 2097 libavcodec/diracdec.c for (i = out_idx; s->delay_frames[i]; i++) s 2098 libavcodec/diracdec.c s->delay_frames[i] = s->delay_frames[i+1]; s 2121 libavcodec/diracdec.c DiracContext *s = avctx->priv_data; s 2133 libavcodec/diracdec.c init_get_bits(&s->gb, &buf[13], 8*(size - DATA_UNIT_HEADER_SIZE)); s 2136 libavcodec/diracdec.c if (s->seen_sequence_header) s 2164 libavcodec/diracdec.c s->bit_depth = dsh->bit_depth; s 2165 libavcodec/diracdec.c s->version.major = dsh->version.major; s 2166 libavcodec/diracdec.c s->version.minor = dsh->version.minor; s 2167 libavcodec/diracdec.c s->seq = *dsh; s 2170 libavcodec/diracdec.c s->pshift = s->bit_depth > 8; s 2173 libavcodec/diracdec.c &s->chroma_x_shift, s 2174 libavcodec/diracdec.c &s->chroma_y_shift); s 2178 libavcodec/diracdec.c ret = alloc_sequence_buffers(s); s 2182 libavcodec/diracdec.c s->seen_sequence_header = 1; s 2184 libavcodec/diracdec.c free_sequence_buffers(s); s 2185 libavcodec/diracdec.c s->seen_sequence_header = 0; s 2193 libavcodec/diracdec.c s->old_delta_quant = 1; s 2196 libavcodec/diracdec.c if (!s->seen_sequence_header) { s 2203 libavcodec/diracdec.c if (s->all_frames[i].avframe->data[0] == NULL) s 2204 libavcodec/diracdec.c pic = &s->all_frames[i]; s 2218 libavcodec/diracdec.c s->num_refs = tmp; s 2219 libavcodec/diracdec.c s->is_arith = (parse_code & 0x48) == 0x08; /* [DIRAC_STD] using_ac() */ s 2220 libavcodec/diracdec.c s->low_delay = (parse_code & 0x88) == 0x88; /* [DIRAC_STD] is_low_delay() */ s 2221 libavcodec/diracdec.c s->core_syntax = (parse_code & 0x88) == 0x08; /* [DIRAC_STD] is_core_syntax() */ s 2222 libavcodec/diracdec.c s->ld_picture = (parse_code & 0xF8) == 0xC8; /* [DIRAC_STD] is_ld_picture() */ s 2223 libavcodec/diracdec.c s->hq_picture = (parse_code & 0xF8) == 0xE8; /* [DIRAC_STD] is_hq_picture() */ s 2224 libavcodec/diracdec.c s->dc_prediction = (parse_code & 0x28) == 0x08; /* [DIRAC_STD] using_dc_prediction() */ s 2226 libavcodec/diracdec.c pic->avframe->key_frame = s->num_refs == 0; /* [DIRAC_STD] is_intra() */ s 2227 libavcodec/diracdec.c pic->avframe->pict_type = s->num_refs + 1; /* Definition of AVPictureType in avutil.h */ s 2230 libavcodec/diracdec.c if (s->version.minor == 2 && parse_code == 0x88) s 2231 libavcodec/diracdec.c s->ld_picture = 1; s 2233 libavcodec/diracdec.c if (s->low_delay && !(s->ld_picture || s->hq_picture) ) { s 2240 libavcodec/diracdec.c s->current_picture = pic; s 2241 libavcodec/diracdec.c s->plane[0].stride = pic->avframe->linesize[0]; s 2242 libavcodec/diracdec.c s->plane[1].stride = pic->avframe->linesize[1]; s 2243 libavcodec/diracdec.c s->plane[2].stride = pic->avframe->linesize[2]; s 2245 libavcodec/diracdec.c if (alloc_buffers(s, FFMAX3(FFABS(s->plane[0].stride), FFABS(s->plane[1].stride), FFABS(s->plane[2].stride))) < 0) s 2249 libavcodec/diracdec.c ret = dirac_decode_picture_header(s); s 2254 libavcodec/diracdec.c ret = dirac_decode_frame_internal(s); s 2263 libavcodec/diracdec.c DiracContext *s = avctx->priv_data; s 2273 libavcodec/diracdec.c if (s->all_frames[i].avframe->data[0] && !s->all_frames[i].reference) { s 2274 libavcodec/diracdec.c av_frame_unref(s->all_frames[i].avframe); s 2275 libavcodec/diracdec.c memset(s->all_frames[i].interpolated, 0, sizeof(s->all_frames[i].interpolated)); s 2278 libavcodec/diracdec.c s->current_picture = NULL; s 2283 libavcodec/diracdec.c return get_delayed_pic(s, (AVFrame *)data, got_frame); s 2301 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR, s 2311 libavcodec/diracdec.c av_log(s->avctx, AV_LOG_ERROR,"Error in dirac_decode_data_unit\n"); s 2317 libavcodec/diracdec.c if (!s->current_picture) s 2320 libavcodec/diracdec.c if (s->current_picture->avframe->display_picture_number > s->frame_number) { s 2321 libavcodec/diracdec.c DiracFrame *delayed_frame = remove_frame(s->delay_frames, s->frame_number); s 2323 libavcodec/diracdec.c s->current_picture->reference |= DELAYED_PIC_REF; s 2325 libavcodec/diracdec.c if (add_frame(s->delay_frames, MAX_DELAY, s->current_picture)) { s 2326 libavcodec/diracdec.c int min_num = s->delay_frames[0]->avframe->display_picture_number; s 2330 libavcodec/diracdec.c for (i = 1; s->delay_frames[i]; i++) s 2331 libavcodec/diracdec.c if (s->delay_frames[i]->avframe->display_picture_number < min_num) s 2332 libavcodec/diracdec.c min_num = s->delay_frames[i]->avframe->display_picture_number; s 2334 libavcodec/diracdec.c delayed_frame = remove_frame(s->delay_frames, min_num); s 2335 libavcodec/diracdec.c add_frame(s->delay_frames, MAX_DELAY, s->current_picture); s 2344 libavcodec/diracdec.c } else if (s->current_picture->avframe->display_picture_number == s->frame_number) { s 2346 libavcodec/diracdec.c if((ret=av_frame_ref(data, s->current_picture->avframe)) < 0) s 2352 libavcodec/diracdec.c s->frame_number = picture->display_picture_number + 1LL; s 117 libavcodec/dnxhd_parser.c static int dnxhd_parse(AVCodecParserContext *s, s 122 libavcodec/dnxhd_parser.c DNXHDParserContext *dctx = s->priv_data; s 126 libavcodec/dnxhd_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 31 libavcodec/dolby_e.c static int skip_input(DBEContext *s, int nb_words) s 33 libavcodec/dolby_e.c if (nb_words > s->input_size) { s 34 libavcodec/dolby_e.c av_log(s->avctx, AV_LOG_ERROR, "Packet too short\n"); s 38 libavcodec/dolby_e.c s->input += nb_words * s->word_bytes; s 39 libavcodec/dolby_e.c s->input_size -= nb_words; s 43 libavcodec/dolby_e.c static int parse_key(DBEContext *s) s 45 libavcodec/dolby_e.c if (s->key_present) { s 46 libavcodec/dolby_e.c uint8_t *key = s->input; s 47 libavcodec/dolby_e.c int ret = skip_input(s, 1); s 50 libavcodec/dolby_e.c return AV_RB24(key) >> 24 - s->word_bits; s 55 libavcodec/dolby_e.c static int convert_input(DBEContext *s, int nb_words, int key) s 57 libavcodec/dolby_e.c uint8_t *src = s->input; s 58 libavcodec/dolby_e.c uint8_t *dst = s->buffer; s 64 libavcodec/dolby_e.c if (nb_words > s->input_size) { s 65 libavcodec/dolby_e.c av_log(s->avctx, AV_LOG_ERROR, "Packet too short\n"); s 69 libavcodec/dolby_e.c switch (s->word_bits) { s 75 libavcodec/dolby_e.c init_put_bits(&pb, s->buffer, sizeof(s->buffer)); s 88 libavcodec/dolby_e.c return init_get_bits(&s->gb, s->buffer, nb_words * s->word_bits); s 91 libavcodec/dolby_e.c static int parse_metadata(DBEContext *s) s 95 libavcodec/dolby_e.c if ((key = parse_key(s)) < 0) s 97 libavcodec/dolby_e.c if ((ret = convert_input(s, 1, key)) < 0) s 100 libavcodec/dolby_e.c skip_bits(&s->gb, 4); s 101 libavcodec/dolby_e.c mtd_size = get_bits(&s->gb, 10); s 103 libavcodec/dolby_e.c av_log(s->avctx, AV_LOG_ERROR, "Invalid metadata size\n"); s 107 libavcodec/dolby_e.c if ((ret = convert_input(s, mtd_size, key)) < 0) s 110 libavcodec/dolby_e.c skip_bits(&s->gb, 14); s 111 libavcodec/dolby_e.c s->prog_conf = get_bits(&s->gb, 6); s 112 libavcodec/dolby_e.c if (s->prog_conf > MAX_PROG_CONF) { s 113 libavcodec/dolby_e.c av_log(s->avctx, AV_LOG_ERROR, "Invalid program configuration\n"); s 117 libavcodec/dolby_e.c s->nb_channels = nb_channels_tab[s->prog_conf]; s 118 libavcodec/dolby_e.c s->nb_programs = nb_programs_tab[s->prog_conf]; s 120 libavcodec/dolby_e.c s->fr_code = get_bits(&s->gb, 4); s 121 libavcodec/dolby_e.c s->fr_code_orig = get_bits(&s->gb, 4); s 122 libavcodec/dolby_e.c if (!sample_rate_tab[s->fr_code] || s 123 libavcodec/dolby_e.c !sample_rate_tab[s->fr_code_orig]) { s 124 libavcodec/dolby_e.c av_log(s->avctx, AV_LOG_ERROR, "Invalid frame rate code\n"); s 128 libavcodec/dolby_e.c skip_bits_long(&s->gb, 88); s 129 libavcodec/dolby_e.c for (i = 0; i < s->nb_channels; i++) s 130 libavcodec/dolby_e.c s->ch_size[i] = get_bits(&s->gb, 10); s 131 libavcodec/dolby_e.c s->mtd_ext_size = get_bits(&s->gb, 8); s 132 libavcodec/dolby_e.c s->meter_size = get_bits(&s->gb, 8); s 134 libavcodec/dolby_e.c skip_bits_long(&s->gb, 10 * s->nb_programs); s 135 libavcodec/dolby_e.c for (i = 0; i < s->nb_channels; i++) { s 136 libavcodec/dolby_e.c s->rev_id[i] = get_bits(&s->gb, 4); s 137 libavcodec/dolby_e.c skip_bits1(&s->gb); s 138 libavcodec/dolby_e.c s->begin_gain[i] = get_bits(&s->gb, 10); s 139 libavcodec/dolby_e.c s->end_gain[i] = get_bits(&s->gb, 10); s 142 libavcodec/dolby_e.c if (get_bits_left(&s->gb) < 0) { s 143 libavcodec/dolby_e.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of metadata\n"); s 147 libavcodec/dolby_e.c return skip_input(s, mtd_size + 1); s 150 libavcodec/dolby_e.c static int parse_metadata_ext(DBEContext *s) s 152 libavcodec/dolby_e.c if (s->mtd_ext_size) s 153 libavcodec/dolby_e.c return skip_input(s, s->key_present + s->mtd_ext_size + 1); s 157 libavcodec/dolby_e.c static void unbias_exponents(DBEContext *s, DBEChannel *c, DBEGroup *g) s 164 libavcodec/dolby_e.c mstr_exp[i] = get_bits(&s->gb, 2) * 6; s 167 libavcodec/dolby_e.c bias_exp[i] = get_bits(&s->gb, 5); s 174 libavcodec/dolby_e.c static int parse_exponents(DBEContext *s, DBEChannel *c) s 180 libavcodec/dolby_e.c c->exp_strategy[i] = !i || g->nb_exponent != p->nb_exponent || get_bits1(&s->gb); s 182 libavcodec/dolby_e.c unbias_exponents(s, c, g); s 281 libavcodec/dolby_e.c static int parse_bit_alloc(DBEContext *s, DBEChannel *c) s 289 libavcodec/dolby_e.c bap_strategy[i] = !i || get_bits1(&s->gb); s 291 libavcodec/dolby_e.c fg_spc[i] = get_bits(&s->gb, 2); s 292 libavcodec/dolby_e.c fg_ofs[i] = get_bits(&s->gb, 3); s 293 libavcodec/dolby_e.c msk_mod[i] = get_bits1(&s->gb); s 301 libavcodec/dolby_e.c if (get_bits1(&s->gb)) { s 302 libavcodec/dolby_e.c avpriv_report_missing_feature(s->avctx, "Delta bit allocation"); s 306 libavcodec/dolby_e.c snr_ofs = get_bits(&s->gb, 8); s 314 libavcodec/dolby_e.c bit_allocate(g->nb_exponent, g->imdct_idx, s->fr_code, s 327 libavcodec/dolby_e.c static int parse_indices(DBEContext *s, DBEChannel *c) s 333 libavcodec/dolby_e.c if (get_bits1(&s->gb)) { s 334 libavcodec/dolby_e.c int start = get_bits(&s->gb, 6); s 337 libavcodec/dolby_e.c av_log(s->avctx, AV_LOG_ERROR, "Invalid start index\n"); s 345 libavcodec/dolby_e.c c->idx[g->exp_ofs + j] = get_bits(&s->gb, 2); s 358 libavcodec/dolby_e.c static int parse_mantissas(DBEContext *s, DBEChannel *c) s 381 libavcodec/dolby_e.c values[k] = get_sbits(&s->gb, size1); s 388 libavcodec/dolby_e.c int value = get_sbits(&s->gb, size2); s 399 libavcodec/dolby_e.c mnt[k] = get_sbits(&s->gb, size1) * scale; s 414 libavcodec/dolby_e.c static int parse_channel(DBEContext *s, int ch, int seg_id) s 416 libavcodec/dolby_e.c DBEChannel *c = &s->channels[seg_id][ch]; s 419 libavcodec/dolby_e.c if (s->rev_id[ch] > 1) { s 420 libavcodec/dolby_e.c avpriv_report_missing_feature(s->avctx, "Encoder revision %d", s->rev_id[ch]); s 424 libavcodec/dolby_e.c if (ch == lfe_channel_tab[s->prog_conf]) { s 428 libavcodec/dolby_e.c c->gr_code = get_bits(&s->gb, 2); s 429 libavcodec/dolby_e.c c->bw_code = get_bits(&s->gb, 3); s 431 libavcodec/dolby_e.c av_log(s->avctx, AV_LOG_ERROR, "Invalid group type code\n"); s 447 libavcodec/dolby_e.c if ((ret = parse_exponents(s, c)) < 0) s 449 libavcodec/dolby_e.c if ((ret = parse_bit_alloc(s, c)) < 0) s 451 libavcodec/dolby_e.c if ((ret = parse_indices(s, c)) < 0) s 453 libavcodec/dolby_e.c if ((ret = parse_mantissas(s, c)) < 0) s 456 libavcodec/dolby_e.c if (get_bits_left(&s->gb) < 0) { s 457 libavcodec/dolby_e.c av_log(s->avctx, AV_LOG_ERROR, "Read past end of channel %d\n", ch); s 464 libavcodec/dolby_e.c static int parse_audio(DBEContext *s, int start, int end, int seg_id) s 468 libavcodec/dolby_e.c if ((key = parse_key(s)) < 0) s 472 libavcodec/dolby_e.c if (!s->ch_size[ch]) { s 473 libavcodec/dolby_e.c s->channels[seg_id][ch].nb_groups = 0; s 476 libavcodec/dolby_e.c if ((ret = convert_input(s, s->ch_size[ch], key)) < 0) s 478 libavcodec/dolby_e.c if ((ret = parse_channel(s, ch, seg_id)) < 0) { s 479 libavcodec/dolby_e.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 481 libavcodec/dolby_e.c s->channels[seg_id][ch].nb_groups = 0; s 483 libavcodec/dolby_e.c if ((ret = skip_input(s, s->ch_size[ch])) < 0) s 487 libavcodec/dolby_e.c return skip_input(s, 1); s 490 libavcodec/dolby_e.c static int parse_meter(DBEContext *s) s 492 libavcodec/dolby_e.c if (s->meter_size) s 493 libavcodec/dolby_e.c return skip_input(s, s->key_present + s->meter_size + 1); s 497 libavcodec/dolby_e.c static void imdct_calc(DBEContext *s, DBEGroup *g, float *result, float *values) s 499 libavcodec/dolby_e.c FFTContext *imdct = &s->imdct[g->imdct_idx]; s 523 libavcodec/dolby_e.c static void transform(DBEContext *s, DBEChannel *c, float *history, float *output) s 536 libavcodec/dolby_e.c imdct_calc(s, g, buffer, c->mantissas + g->mnt_ofs); s 537 libavcodec/dolby_e.c s->fdsp->vector_fmul_add(dst, src, win, dst, g->win_len); s 548 libavcodec/dolby_e.c static void apply_gain(DBEContext *s, int begin, int end, float *output) s 554 libavcodec/dolby_e.c s->fdsp->vector_fmul_scalar(output, output, gain_tab[end], FRAME_SAMPLES); s 565 libavcodec/dolby_e.c static int filter_frame(DBEContext *s, AVFrame *frame) s 570 libavcodec/dolby_e.c if (s->nb_channels == 4) s 572 libavcodec/dolby_e.c else if (s->nb_channels == 6) s 574 libavcodec/dolby_e.c else if (s->nb_programs == 1 && !(s->avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE)) s 580 libavcodec/dolby_e.c if ((ret = ff_get_buffer(s->avctx, frame, 0)) < 0) s 583 libavcodec/dolby_e.c for (ch = 0; ch < s->nb_channels; ch++) { s 585 libavcodec/dolby_e.c transform(s, &s->channels[0][ch], s->history[ch], output); s 586 libavcodec/dolby_e.c transform(s, &s->channels[1][ch], s->history[ch], output + FRAME_SAMPLES / 2); s 587 libavcodec/dolby_e.c apply_gain(s, s->begin_gain[ch], s->end_gain[ch], output); s 596 libavcodec/dolby_e.c DBEContext *s = avctx->priv_data; s 604 libavcodec/dolby_e.c s->word_bits = 24; s 606 libavcodec/dolby_e.c s->word_bits = 20; s 608 libavcodec/dolby_e.c s->word_bits = 16; s 614 libavcodec/dolby_e.c s->word_bytes = s->word_bits + 7 >> 3; s 615 libavcodec/dolby_e.c s->input = avpkt->data + s->word_bytes; s 616 libavcodec/dolby_e.c s->input_size = avpkt->size / s->word_bytes - 1; s 617 libavcodec/dolby_e.c s->key_present = hdr >> 24 - s->word_bits & 1; s 619 libavcodec/dolby_e.c if ((ret = parse_metadata(s)) < 0) s 622 libavcodec/dolby_e.c if (s->nb_programs > 1 && !s->multi_prog_warned) { s 624 libavcodec/dolby_e.c "channels will be output in native order.\n", s->nb_programs, s->prog_conf); s 625 libavcodec/dolby_e.c s->multi_prog_warned = 1; s 628 libavcodec/dolby_e.c switch (s->nb_channels) { s 640 libavcodec/dolby_e.c avctx->channels = s->nb_channels; s 641 libavcodec/dolby_e.c avctx->sample_rate = sample_rate_tab[s->fr_code]; s 644 libavcodec/dolby_e.c i = s->nb_channels / 2; s 645 libavcodec/dolby_e.c j = s->nb_channels; s 646 libavcodec/dolby_e.c if ((ret = parse_audio(s, 0, i, 0)) < 0) s 648 libavcodec/dolby_e.c if ((ret = parse_audio(s, i, j, 0)) < 0) s 650 libavcodec/dolby_e.c if ((ret = parse_metadata_ext(s)) < 0) s 652 libavcodec/dolby_e.c if ((ret = parse_audio(s, 0, i, 1)) < 0) s 654 libavcodec/dolby_e.c if ((ret = parse_audio(s, i, j, 1)) < 0) s 656 libavcodec/dolby_e.c if ((ret = parse_meter(s)) < 0) s 658 libavcodec/dolby_e.c if ((ret = filter_frame(s, data)) < 0) s 667 libavcodec/dolby_e.c DBEContext *s = avctx->priv_data; s 669 libavcodec/dolby_e.c memset(s->history, 0, sizeof(s->history)); s 674 libavcodec/dolby_e.c DBEContext *s = avctx->priv_data; s 678 libavcodec/dolby_e.c ff_mdct_end(&s->imdct[i]); s 680 libavcodec/dolby_e.c av_freep(&s->fdsp); s 774 libavcodec/dolby_e.c DBEContext *s = avctx->priv_data; s 781 libavcodec/dolby_e.c if (ff_mdct_init(&s->imdct[i], imdct_bits_tab[i], 1, 2.0) < 0) s 784 libavcodec/dolby_e.c if (!(s->fdsp = avpriv_float_dsp_alloc(0))) s 787 libavcodec/dolby_e.c s->multi_prog_warned = !!(avctx->request_channel_layout & AV_CH_LAYOUT_NATIVE); s 788 libavcodec/dolby_e.c s->avctx = avctx; s 132 libavcodec/dpcm.c DPCMContext *s = avctx->priv_data; s 140 libavcodec/dpcm.c s->sample[0] = s->sample[1] = 0; s 148 libavcodec/dpcm.c s->array[i ] = square; s 149 libavcodec/dpcm.c s->array[i + 128] = -square; s 156 libavcodec/dpcm.c s->sol_table = sol_table_old; s 157 libavcodec/dpcm.c s->sample[0] = s->sample[1] = 0x80; s 160 libavcodec/dpcm.c s->sol_table = sol_table_new; s 161 libavcodec/dpcm.c s->sample[0] = s->sample[1] = 0x80; s 174 libavcodec/dpcm.c s->array[i+128] = i < 0 ? -square: square; s 183 libavcodec/dpcm.c s->array[0] = 0; s 189 libavcodec/dpcm.c s->array[i*2 + 1] = delta; s 190 libavcodec/dpcm.c s->array[i*2 + 2] = -delta; s 192 libavcodec/dpcm.c s->array[255] = delta + (code >> 5); s 213 libavcodec/dpcm.c DPCMContext *s = avctx->priv_data; s 278 libavcodec/dpcm.c predictor[ch] += s->array[bytestream2_get_byteu(&gb)]; s 345 libavcodec/dpcm.c s->sample[0] += s->sol_table[n >> 4]; s 346 libavcodec/dpcm.c s->sample[0] = av_clip_uint8(s->sample[0]); s 347 libavcodec/dpcm.c *output_samples_u8++ = s->sample[0]; s 349 libavcodec/dpcm.c s->sample[stereo] += s->sol_table[n & 0x0F]; s 350 libavcodec/dpcm.c s->sample[stereo] = av_clip_uint8(s->sample[stereo]); s 351 libavcodec/dpcm.c *output_samples_u8++ = s->sample[stereo]; s 356 libavcodec/dpcm.c if (n & 0x80) s->sample[ch] -= sol_table_16[n & 0x7F]; s 357 libavcodec/dpcm.c else s->sample[ch] += sol_table_16[n & 0x7F]; s 358 libavcodec/dpcm.c s->sample[ch] = av_clip_int16(s->sample[ch]); s 359 libavcodec/dpcm.c *output_samples++ = s->sample[ch]; s 371 libavcodec/dpcm.c s->sample[ch] = 0; s 372 libavcodec/dpcm.c s->sample[ch] += s->array[n + 128]; s 373 libavcodec/dpcm.c s->sample[ch] = av_clip_int16(s->sample[ch]); s 374 libavcodec/dpcm.c *output_samples++ = s->sample[ch]; s 385 libavcodec/dpcm.c *output_samples++ = s->sample[idx] += (unsigned)s->array[n]; s 398 libavcodec/dpcm.c s->sample[idx] += (n & 0x80 ? -1: 1) * derf_steps[index]; s 399 libavcodec/dpcm.c s->sample[idx] = av_clip_int16(s->sample[idx]); s 400 libavcodec/dpcm.c *output_samples++ = s->sample[idx]; s 40 libavcodec/dpx_parser.c static int dpx_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 44 libavcodec/dpx_parser.c DPXParseContext *d = s->priv_data; s 49 libavcodec/dpx_parser.c s->pict_type = AV_PICTURE_TYPE_I; s 38 libavcodec/dpxenc.c DPXContext *s = avctx->priv_data; s 41 libavcodec/dpxenc.c s->big_endian = !!(desc->flags & AV_PIX_FMT_FLAG_BE); s 42 libavcodec/dpxenc.c s->bits_per_component = desc->comp[0].depth; s 43 libavcodec/dpxenc.c s->num_components = desc->nb_components; s 44 libavcodec/dpxenc.c s->descriptor = (desc->flags & AV_PIX_FMT_FLAG_ALPHA) ? 51 : 50; s 45 libavcodec/dpxenc.c s->planar = !!(desc->flags & AV_PIX_FMT_FLAG_PLANAR); s 49 libavcodec/dpxenc.c s->descriptor = 52; s 54 libavcodec/dpxenc.c s->descriptor = 6; s 68 libavcodec/dpxenc.c s->bits_per_component = avctx->bits_per_raw_sample; s 90 libavcodec/dpxenc.c #define write16(p, value) write16_internal(s->big_endian, p, value) s 91 libavcodec/dpxenc.c #define write32(p, value) write32_internal(s->big_endian, p, value) s 96 libavcodec/dpxenc.c DPXContext *s = avctx->priv_data; s 103 libavcodec/dpxenc.c if (s->big_endian) { s 121 libavcodec/dpxenc.c DPXContext *s = avctx->priv_data; s 128 libavcodec/dpxenc.c if (s->big_endian) { s 147 libavcodec/dpxenc.c DPXContext *s = avctx->priv_data; s 157 libavcodec/dpxenc.c if (s->big_endian) { s 179 libavcodec/dpxenc.c DPXContext *s = avctx->priv_data; s 184 libavcodec/dpxenc.c if (s->bits_per_component == 10) s 186 libavcodec/dpxenc.c else if (s->bits_per_component == 12) { s 194 libavcodec/dpxenc.c len = avctx->width * s->num_components * s->bits_per_component >> 3; s 220 libavcodec/dpxenc.c buf[800] = s->descriptor; s 223 libavcodec/dpxenc.c buf[803] = s->bits_per_component; s 224 libavcodec/dpxenc.c write16(buf + 804, (s->bits_per_component == 10 || s->bits_per_component == 12) ? s 232 libavcodec/dpxenc.c switch(s->bits_per_component) { s 256 libavcodec/dpxenc.c if (s->planar) s 265 libavcodec/dpxenc.c av_log(avctx, AV_LOG_ERROR, "Unsupported bit depth: %d\n", s->bits_per_component); s 55 libavcodec/dsd.c void ff_dsd2pcm_translate(DSDContext* s, size_t samples, int lsbf, s 64 libavcodec/dsd.c pos = s->pos; s 66 libavcodec/dsd.c memcpy(buf, s->buf, sizeof(buf)); s 88 libavcodec/dsd.c s->pos = pos; s 89 libavcodec/dsd.c memcpy(s->buf, buf, sizeof(buf)); s 49 libavcodec/dsd.h void ff_dsd2pcm_translate(DSDContext* s, size_t samples, int lsbf, s 43 libavcodec/dsddec.c DSDContext * s; s 52 libavcodec/dsddec.c s = av_malloc_array(sizeof(DSDContext), avctx->channels); s 53 libavcodec/dsddec.c if (!s) s 58 libavcodec/dsddec.c s[i].pos = 0; s 59 libavcodec/dsddec.c memset(s[i].buf, silence, sizeof(s[i].buf)); s 63 libavcodec/dsddec.c avctx->priv_data = s; s 75 libavcodec/dsddec.c DSDContext *s = avctx->priv_data; s 90 libavcodec/dsddec.c ff_dsd2pcm_translate(&s[j], frame->nb_samples, lsbf, s 80 libavcodec/dstdec.c DSTContext *s = avctx->priv_data; s 101 libavcodec/dstdec.c memset(s->dsdctx[i].buf, 0x69, sizeof(s->dsdctx[i].buf)); s 247 libavcodec/dstdec.c DSTContext *s = avctx->priv_data; s 248 libavcodec/dstdec.c GetBitContext *gb = &s->gb; s 249 libavcodec/dstdec.c ArithCoder *ac = &s->ac; s 296 libavcodec/dstdec.c if ((ret = read_map(gb, &s->fsets, map_ch_to_felem, channels)) < 0) s 300 libavcodec/dstdec.c s->probs.elements = s->fsets.elements; s 304 libavcodec/dstdec.c if ((ret = read_map(gb, &s->probs, map_ch_to_pelem, channels)) < 0) s 315 libavcodec/dstdec.c ret = read_table(gb, &s->fsets, fsets_code_pred_coeff, 7, 9, 1, 0); s 321 libavcodec/dstdec.c ret = read_table(gb, &s->probs, probs_code_pred_coeff, 6, 7, 0, 1); s 331 libavcodec/dstdec.c build_filter(s->filter, &s->fsets); s 333 libavcodec/dstdec.c memset(s->status, 0xAA, sizeof(s->status)); s 336 libavcodec/dstdec.c ac_get(ac, gb, prob_dst_x_bit(s->fsets.coeff[0][0]), &dst_x_bit); s 341 libavcodec/dstdec.c int16_t (*filter)[256] = s->filter[felem]; s 342 libavcodec/dstdec.c uint8_t *status = s->status[ch]; s 352 libavcodec/dstdec.c if (!half_prob[ch] || i >= s->fsets.length[felem]) { s 355 libavcodec/dstdec.c prob = s->probs.coeff[pelem][FFMIN(index, s->probs.length[pelem] - 1)]; s 371 libavcodec/dstdec.c ff_dsd2pcm_translate(&s->dsdctx[i], frame->nb_samples, 0, s 42 libavcodec/dump_extradata_bsf.c DumpExtradataContext *s = ctx->priv_data; s 43 libavcodec/dump_extradata_bsf.c AVPacket *in = &s->pkt; s 51 libavcodec/dump_extradata_bsf.c (s->freq == DUMP_FREQ_ALL || s 52 libavcodec/dump_extradata_bsf.c (s->freq == DUMP_FREQ_KEYFRAME && in->flags & AV_PKT_FLAG_KEY)) && s 177 libavcodec/dv.c int j, i, c, s, p; s 181 libavcodec/dv.c for (s = 0; s < d->difseg_size; s++) { s 185 libavcodec/dv.c if (!(DV_PROFILE_IS_1080i50(d) && c != 0 && s == 11) && s 186 libavcodec/dv.c !(DV_PROFILE_IS_720p50(d) && s > 9)) { s 187 libavcodec/dv.c dv_calc_mb_coordinates(d, c, s, j, &ctx->work_chunks[i].mb_coordinates[0]); s 200 libavcodec/dv.c DVVideoContext *s = avctx->priv_data; s 257 libavcodec/dv.c s->avctx = avctx; s 103 libavcodec/dv.h int ff_dv_init_dynamic_tables(DVVideoContext *s, const AVDVProfile *d); s 117 libavcodec/dv.h static inline void dv_calculate_mb_xy(DVVideoContext *s, s 126 libavcodec/dv.h if (s->sys->height == 720 && !(s->buf[1] & 0x0C)) s 35 libavcodec/dvaudiodec.c DVAudioContext *s = avctx->priv_data; s 44 libavcodec/dvaudiodec.c s->block_size = 7200; s 46 libavcodec/dvaudiodec.c s->block_size = 8640; s 49 libavcodec/dvaudiodec.c s->block_size = avctx->block_align; s 54 libavcodec/dvaudiodec.c s->is_pal = s->block_size == 8640; s 55 libavcodec/dvaudiodec.c s->is_12bit = avctx->bits_per_coded_sample == 12; s 59 libavcodec/dvaudiodec.c for (i = 0; i < FF_ARRAY_ELEMS(s->shuffle); i++) { s 60 libavcodec/dvaudiodec.c const unsigned a = s->is_pal ? 18 : 15; s 63 libavcodec/dvaudiodec.c s->shuffle[i] = 80 * ((21 * (i % 3) + 9 * (i / 3) + ((i / a) % 3)) % b) + s 64 libavcodec/dvaudiodec.c (2 + s->is_12bit) * (i / b) + 8; s 93 libavcodec/dvaudiodec.c DVAudioContext *s = avctx->priv_data; s 99 libavcodec/dvaudiodec.c if (pkt->size < s->block_size) s 102 libavcodec/dvaudiodec.c frame->nb_samples = dv_get_audio_sample_count(pkt->data + 244, s->is_pal); s 108 libavcodec/dvaudiodec.c const uint8_t *v = &src[s->shuffle[i]]; s 110 libavcodec/dvaudiodec.c if (s->is_12bit) { s 115 libavcodec/dvaudiodec.c *dst++ = AV_RB16(&v[s->is_pal ? 4320 : 3600]); s 121 libavcodec/dvaudiodec.c return s->block_size; s 275 libavcodec/dvbsub.c DVBSubtitleContext *s = avctx->priv_data; s 315 libavcodec/dvbsub.c *q++ = (s->object_version << 4) | (page_state << 2) | 3; s 405 libavcodec/dvbsub.c *q++ = (s->object_version << 4) | (0 << 3) | 0x07; /* version , no fill */ s 455 libavcodec/dvbsub.c *q++ = (s->object_version << 4) | (0 << 2) | (0 << 1) | 1; /* version = 0, s 508 libavcodec/dvbsub.c s->object_version = (s->object_version + 1) & 0xf; s 44 libavcodec/dvbsub_parser.c static av_cold int dvbsub_parse_init(AVCodecParserContext *s) s 46 libavcodec/dvbsub_parser.c DVBSubParseContext *pc = s->priv_data; s 52 libavcodec/dvbsub_parser.c static int dvbsub_parse(AVCodecParserContext *s, s 57 libavcodec/dvbsub_parser.c DVBSubParseContext *pc = s->priv_data; s 63 libavcodec/dvbsub_parser.c s->pts, s->last_pts, s->cur_frame_pts[s->cur_frame_start_index]); s 78 libavcodec/dvbsub_parser.c s->fetch_timestamp = 1; s 80 libavcodec/dvbsub_parser.c if (s->last_pts != s->pts && s->pts != AV_NOPTS_VALUE) /* Start of a new packet */ s 170 libavcodec/dvbsub_parser.c if (s->pts == AV_NOPTS_VALUE) s 171 libavcodec/dvbsub_parser.c s->pts = s->last_pts; s 176 libavcodec/dvbsub_parser.c static av_cold void dvbsub_parse_close(AVCodecParserContext *s) s 178 libavcodec/dvbsub_parser.c DVBSubParseContext *pc = s->priv_data; s 35 libavcodec/dvd_nav_parser.c static av_cold int dvd_nav_parse_init(AVCodecParserContext *s) s 37 libavcodec/dvd_nav_parser.c DVDNavParseContext *pc = s->priv_data; s 44 libavcodec/dvd_nav_parser.c static int dvd_nav_parse(AVCodecParserContext *s, s 49 libavcodec/dvd_nav_parser.c DVDNavParseContext *pc1 = s->priv_data; s 53 libavcodec/dvd_nav_parser.c s->pict_type = AV_PICTURE_TYPE_NONE; s 69 libavcodec/dvd_nav_parser.c s->pts = (int64_t)startpts; s 70 libavcodec/dvd_nav_parser.c s->duration = endpts - startpts; s 132 libavcodec/dvdec.c int j, i, c, s; s 153 libavcodec/dvdec.c for (s = 0; s < 16; s++) { s 155 libavcodec/dvdec.c *factor1++ = (dv100_qstep[s] << (c + 9)) * iweight1[i]; s 156 libavcodec/dvdec.c *factor2++ = (dv100_qstep[s] << (c + 9)) * iweight2[i]; s 164 libavcodec/dvdec.c for (s = 0; s < 22; s++) { s 167 libavcodec/dvdec.c *factor1 = iweight1[i] << (ff_dv_quant_shifts[s][c] + 1); s 178 libavcodec/dvdec.c DVVideoContext *s = avctx->priv_data; s 181 libavcodec/dvdec.c ff_idctdsp_init(&s->idsp, avctx); s 184 libavcodec/dvdec.c s->dv_zigzag[0][i] = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 189 libavcodec/dvdec.c s->dv_zigzag[1][i] = s->idsp.idct_permutation[(j & 7) + (j & 8) * 4 + (j & 48) / 2]; s 192 libavcodec/dvdec.c memcpy(s->dv_zigzag[1], ff_dv_zigzag248_direct, sizeof(s->dv_zigzag[1])); s 194 libavcodec/dvdec.c s->idct_put[0] = s->idsp.idct_put; s 195 libavcodec/dvdec.c s->idct_put[1] = ff_simple_idct248_put; s 284 libavcodec/dvdec.c static void dv100_idct_put_last_row_field_chroma(DVVideoContext *s, uint8_t *data, s 287 libavcodec/dvdec.c s->idsp.idct(blocks + 0*64); s 288 libavcodec/dvdec.c s->idsp.idct(blocks + 1*64); s 296 libavcodec/dvdec.c static void dv100_idct_put_last_row_field_luma(DVVideoContext *s, uint8_t *data, s 299 libavcodec/dvdec.c s->idsp.idct(blocks + 0*64); s 300 libavcodec/dvdec.c s->idsp.idct(blocks + 1*64); s 301 libavcodec/dvdec.c s->idsp.idct(blocks + 2*64); s 302 libavcodec/dvdec.c s->idsp.idct(blocks + 3*64); s 317 libavcodec/dvdec.c DVVideoContext *s = avctx->priv_data; s 332 libavcodec/dvdec.c const int log2_blocksize = 3-s->avctx->lowres; s 347 libavcodec/dvdec.c buf_ptr = &s->buf[work_chunk->buf_offset * 80]; s 351 libavcodec/dvdec.c for (mb_index = 0; mb_index < 5; mb_index++, mb1 += s->sys->bpm, block1 += s->sys->bpm * 64) { s 367 libavcodec/dvdec.c for (j = 0; j < s->sys->bpm; j++) { s 368 libavcodec/dvdec.c last_index = s->sys->block_sizes[j]; s 375 libavcodec/dvdec.c if (DV_PROFILE_IS_HD(s->sys)) { s 376 libavcodec/dvdec.c mb->idct_put = s->idct_put[0]; s 377 libavcodec/dvdec.c mb->scan_table = s->dv_zigzag[0]; s 378 libavcodec/dvdec.c mb->factor_table = &s->idct_factor[(j >= 4) * 4 * 16 * 64 + s 383 libavcodec/dvdec.c mb->idct_put = s->idct_put[dct_mode && log2_blocksize == 3]; s 384 libavcodec/dvdec.c mb->scan_table = s->dv_zigzag[dct_mode]; s 386 libavcodec/dvdec.c &s->idct_factor[(class1 == 3) * 2 * 22 * 64 + s 423 libavcodec/dvdec.c for (j = 0; j < s->sys->bpm; j++, block += 64, mb++) { s 435 libavcodec/dvdec.c if (j >= s->sys->bpm) s 447 libavcodec/dvdec.c for (j = 0; j < s->sys->bpm; j++) { s 472 libavcodec/dvdec.c dv_calculate_mb_xy(s, work_chunk, mb_index, &mb_x, &mb_y); s 475 libavcodec/dvdec.c if ((s->sys->pix_fmt == AV_PIX_FMT_YUV420P) || s 476 libavcodec/dvdec.c (s->sys->pix_fmt == AV_PIX_FMT_YUV411P && mb_x >= (704 / 8)) || s 477 libavcodec/dvdec.c (s->sys->height >= 720 && mb_y != 134)) { s 478 libavcodec/dvdec.c y_stride = (s->frame->linesize[0] << s 483 libavcodec/dvdec.c y_ptr = s->frame->data[0] + s 484 libavcodec/dvdec.c ((mb_y * s->frame->linesize[0] + mb_x) << log2_blocksize); s 486 libavcodec/dvdec.c dv100_idct_put_last_row_field_luma(s, y_ptr, s->frame->linesize[0], block); s 488 libavcodec/dvdec.c linesize = s->frame->linesize[0] << is_field_mode[mb_index]; s 490 libavcodec/dvdec.c if (s->sys->video_stype == 4) { /* SD 422 */ s 502 libavcodec/dvdec.c c_offset = (((mb_y >> (s->sys->pix_fmt == AV_PIX_FMT_YUV420P)) * s->frame->linesize[1] + s 503 libavcodec/dvdec.c (mb_x >> ((s->sys->pix_fmt == AV_PIX_FMT_YUV411P) ? 2 : 1))) << log2_blocksize); s 505 libavcodec/dvdec.c uint8_t *c_ptr = s->frame->data[j] + c_offset; s 506 libavcodec/dvdec.c if (s->sys->pix_fmt == AV_PIX_FMT_YUV411P && mb_x >= (704 / 8)) { s 512 libavcodec/dvdec.c for (y = 0; y < (1 << log2_blocksize); y++, c_ptr += s->frame->linesize[j], pixels += 8) { s 514 libavcodec/dvdec.c c_ptr1 = c_ptr + (s->frame->linesize[j] << log2_blocksize); s 524 libavcodec/dvdec.c s->frame->linesize[j] << ((!is_field_mode[mb_index]) * log2_blocksize); s 526 libavcodec/dvdec.c dv100_idct_put_last_row_field_chroma(s, c_ptr, s->frame->linesize[j], block); s 530 libavcodec/dvdec.c linesize = s->frame->linesize[j] << is_field_mode[mb_index]; s 533 libavcodec/dvdec.c if (s->sys->bpm == 8) { s 551 libavcodec/dvdec.c DVVideoContext *s = avctx->priv_data; s 557 libavcodec/dvdec.c sys = ff_dv_frame_profile(avctx, s->sys, buf, buf_size); s 563 libavcodec/dvdec.c if (sys != s->sys) { s 564 libavcodec/dvdec.c ret = ff_dv_init_dynamic_tables(s, sys); s 569 libavcodec/dvdec.c dv_init_weight_tables(s, sys); s 570 libavcodec/dvdec.c s->sys = sys; s 573 libavcodec/dvdec.c s->frame = frame.f; s 576 libavcodec/dvdec.c avctx->pix_fmt = s->sys->pix_fmt; s 577 libavcodec/dvdec.c avctx->framerate = av_inv_q(s->sys->time_base); s 579 libavcodec/dvdec.c ret = ff_set_dimensions(avctx, s->sys->width, s->sys->height); s 589 libavcodec/dvdec.c ff_set_sar(avctx, s->sys->sar[is16_9]); s 609 libavcodec/dvdec.c s->buf = buf; s 610 libavcodec/dvdec.c avctx->execute(avctx, dv_decode_video_segment, s->work_chunks, NULL, s 611 libavcodec/dvdec.c dv_work_pool_size(s->sys), sizeof(DVwork_chunk)); s 618 libavcodec/dvdec.c return s->sys->frame_size; s 35 libavcodec/dvdsub_parser.c static av_cold int dvdsub_parse_init(AVCodecParserContext *s) s 40 libavcodec/dvdsub_parser.c static int dvdsub_parse(AVCodecParserContext *s, s 45 libavcodec/dvdsub_parser.c DVDSubParseContext *pc = s->priv_data; s 86 libavcodec/dvdsub_parser.c static av_cold void dvdsub_parse_close(AVCodecParserContext *s) s 88 libavcodec/dvdsub_parser.c DVDSubParseContext *pc = s->priv_data; s 451 libavcodec/dvdsubdec.c static int find_smallest_bounding_rectangle(DVDSubContext *ctx, AVSubtitle *s) s 458 libavcodec/dvdsubdec.c if (s->num_rects == 0 || !s->rects || s->rects[0]->w <= 0 || s->rects[0]->h <= 0) s 461 libavcodec/dvdsubdec.c for(i = 0; i < s->rects[0]->nb_colors; i++) { s 462 libavcodec/dvdsubdec.c if ((((uint32_t *)s->rects[0]->data[1])[i] >> 24) == 0) { s 470 libavcodec/dvdsubdec.c while (y1 < s->rects[0]->h && is_transp(s->rects[0]->data[0] + y1 * s->rects[0]->linesize[0], s 471 libavcodec/dvdsubdec.c 1, s->rects[0]->w, transp_color)) s 473 libavcodec/dvdsubdec.c if (y1 == s->rects[0]->h) { s 474 libavcodec/dvdsubdec.c av_freep(&s->rects[0]->data[0]); s 475 libavcodec/dvdsubdec.c s->rects[0]->w = s->rects[0]->h = 0; s 479 libavcodec/dvdsubdec.c y2 = s->rects[0]->h - 1; s 480 libavcodec/dvdsubdec.c while (y2 > 0 && is_transp(s->rects[0]->data[0] + y2 * s->rects[0]->linesize[0], 1, s 481 libavcodec/dvdsubdec.c s->rects[0]->w, transp_color)) s 484 libavcodec/dvdsubdec.c while (x1 < (s->rects[0]->w - 1) && is_transp(s->rects[0]->data[0] + x1, s->rects[0]->linesize[0], s 485 libavcodec/dvdsubdec.c s->rects[0]->h, transp_color)) s 487 libavcodec/dvdsubdec.c x2 = s->rects[0]->w - 1; s 488 libavcodec/dvdsubdec.c while (x2 > 0 && is_transp(s->rects[0]->data[0] + x2, s->rects[0]->linesize[0], s->rects[0]->h, s 497 libavcodec/dvdsubdec.c memcpy(bitmap + w * y, s->rects[0]->data[0] + x1 + (y1 + y) * s->rects[0]->linesize[0], w); s 499 libavcodec/dvdsubdec.c av_freep(&s->rects[0]->data[0]); s 500 libavcodec/dvdsubdec.c s->rects[0]->data[0] = bitmap; s 501 libavcodec/dvdsubdec.c s->rects[0]->linesize[0] = w; s 502 libavcodec/dvdsubdec.c s->rects[0]->w = w; s 503 libavcodec/dvdsubdec.c s->rects[0]->h = h; s 504 libavcodec/dvdsubdec.c s->rects[0]->x += x1; s 505 libavcodec/dvdsubdec.c s->rects[0]->y += y1; s 510 libavcodec/dvdsubdec.c s->rects[0]->pict.data[i] = s->rects[0]->data[i]; s 511 libavcodec/dvdsubdec.c s->rects[0]->pict.linesize[i] = s->rects[0]->linesize[i]; s 49 libavcodec/dvenc.c DVVideoContext *s = avctx->priv_data; s 55 libavcodec/dvenc.c s->sys = av_dv_codec_profile2(avctx->width, avctx->height, avctx->pix_fmt, avctx->time_base); s 56 libavcodec/dvenc.c if (!s->sys) { s 64 libavcodec/dvenc.c ret = ff_dv_init_dynamic_tables(s, s->sys); s 80 libavcodec/dvenc.c s->get_pixels = pdsp.get_pixels; s 81 libavcodec/dvenc.c s->ildct_cmp = mecc.ildct_cmp[5]; s 83 libavcodec/dvenc.c s->fdct[0] = fdsp.fdct; s 84 libavcodec/dvenc.c s->fdct[1] = fdsp.fdct248; s 212 libavcodec/dvenc.c static av_always_inline int dv_guess_dct_mode(DVVideoContext *s, uint8_t *data, s 215 libavcodec/dvenc.c if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { s 216 libavcodec/dvenc.c int ps = s->ildct_cmp(NULL, data, NULL, linesize, 8) - 400; s 218 libavcodec/dvenc.c int is = s->ildct_cmp(NULL, data, NULL, linesize << 1, 4) + s 219 libavcodec/dvenc.c s->ildct_cmp(NULL, data + linesize, NULL, linesize << 1, 4); s 361 libavcodec/dvenc.c static av_always_inline int dv_set_class_number_sd(DVVideoContext *s, s 384 libavcodec/dvenc.c const unsigned deadzone = s->quant_deadzone; s 445 libavcodec/dvenc.c static inline void dv_set_class_number_hd(DVVideoContext *s, s 503 libavcodec/dvenc.c DVVideoContext *s, int chroma) s 513 libavcodec/dvenc.c if (DV_PROFILE_IS_HD(s->sys)) { s 514 libavcodec/dvenc.c s->get_pixels(blk, data, linesize << bi->dct_mode); s 515 libavcodec/dvenc.c s->fdct[0](blk); s 517 libavcodec/dvenc.c bi->dct_mode = dv_guess_dct_mode(s, data, linesize); s 518 libavcodec/dvenc.c s->get_pixels(blk, data, linesize); s 519 libavcodec/dvenc.c s->fdct[bi->dct_mode](blk); s 528 libavcodec/dvenc.c if (DV_PROFILE_IS_HD(s->sys)) { s 530 libavcodec/dvenc.c if (s->sys->height == 1080) { s 535 libavcodec/dvenc.c dv_set_class_number_hd(s, blk, bi, s 540 libavcodec/dvenc.c dv_set_class_number_sd(s, blk, bi, s 840 libavcodec/dvenc.c DVVideoContext *s = avctx->priv_data; s 856 libavcodec/dvenc.c p = dif = &s->buf[work_chunk->buf_offset * 80]; s 859 libavcodec/dvenc.c dv_calculate_mb_xy(s, work_chunk, mb_index, &mb_x, &mb_y); s 861 libavcodec/dvenc.c qnos[mb_index] = DV_PROFILE_IS_HD(s->sys) ? 1 : 15; s 863 libavcodec/dvenc.c y_ptr = s->frame->data[0] + ((mb_y * s->frame->linesize[0] + mb_x) << 3); s 864 libavcodec/dvenc.c linesize = s->frame->linesize[0]; s 866 libavcodec/dvenc.c if (s->sys->height == 1080 && mb_y < 134) s 867 libavcodec/dvenc.c enc_blk->dct_mode = dv_guess_dct_mode(s, y_ptr, linesize); s 874 libavcodec/dvenc.c if ((s->sys->pix_fmt == AV_PIX_FMT_YUV420P) || s 875 libavcodec/dvenc.c (s->sys->pix_fmt == AV_PIX_FMT_YUV411P && mb_x >= (704 / 8)) || s 876 libavcodec/dvenc.c (s->sys->height >= 720 && mb_y != 134)) { s 877 libavcodec/dvenc.c y_stride = s->frame->linesize[0] << (3*!enc_blk->dct_mode); s 881 libavcodec/dvenc.c y_ptr = s->frame->data[0] + s 882 libavcodec/dvenc.c ((mb_y * s->frame->linesize[0] + mb_x) << 3); s 883 libavcodec/dvenc.c linesize = s->frame->linesize[0]; s 885 libavcodec/dvenc.c if (s->sys->video_stype == 4) { /* SD 422 */ s 887 libavcodec/dvenc.c dv_init_enc_block(enc_blk + 0, y_ptr, linesize, s, 0) + s 888 libavcodec/dvenc.c dv_init_enc_block(enc_blk + 1, NULL, linesize, s, 0) + s 889 libavcodec/dvenc.c dv_init_enc_block(enc_blk + 2, y_ptr + 8, linesize, s, 0) + s 890 libavcodec/dvenc.c dv_init_enc_block(enc_blk + 3, NULL, linesize, s, 0); s 893 libavcodec/dvenc.c dv_init_enc_block(enc_blk + 0, y_ptr, linesize, s, 0) + s 894 libavcodec/dvenc.c dv_init_enc_block(enc_blk + 1, y_ptr + 8, linesize, s, 0) + s 895 libavcodec/dvenc.c dv_init_enc_block(enc_blk + 2, y_ptr + y_stride, linesize, s, 0) + s 896 libavcodec/dvenc.c dv_init_enc_block(enc_blk + 3, y_ptr + 8 + y_stride, linesize, s, 0); s 901 libavcodec/dvenc.c c_offset = (((mb_y >> (s->sys->pix_fmt == AV_PIX_FMT_YUV420P)) * s->frame->linesize[1] + s 902 libavcodec/dvenc.c (mb_x >> ((s->sys->pix_fmt == AV_PIX_FMT_YUV411P) ? 2 : 1))) << 3); s 904 libavcodec/dvenc.c uint8_t *c_ptr = s->frame->data[j] + c_offset; s 905 libavcodec/dvenc.c linesize = s->frame->linesize[j]; s 906 libavcodec/dvenc.c y_stride = (mb_y == 134) ? 8 : (s->frame->linesize[j] << (3*!enc_blk->dct_mode)); s 907 libavcodec/dvenc.c if (s->sys->pix_fmt == AV_PIX_FMT_YUV411P && mb_x >= (704 / 8)) { s 927 libavcodec/dvenc.c vs_bit_size += dv_init_enc_block(enc_blk++, c_ptr, linesize, s, 1); s 928 libavcodec/dvenc.c if (s->sys->bpm == 8) s 930 libavcodec/dvenc.c linesize, s, 1); s 934 libavcodec/dvenc.c if (DV_PROFILE_IS_HD(s->sys)) { s 942 libavcodec/dvenc.c for (j = 0; j < 5 * s->sys->bpm;) { s 949 libavcodec/dvenc.c for (i = 0; i < s->sys->bpm; i++, j++) { s 950 libavcodec/dvenc.c int sz = s->sys->block_sizes[i] >> 3; s 954 libavcodec/dvenc.c put_bits(&pbs[j], 1, DV_PROFILE_IS_HD(s->sys) && i ? 1 : enc_blks[j].dct_mode); s 963 libavcodec/dvenc.c for (i = 0; i < s->sys->bpm; i++) s 966 libavcodec/dvenc.c &pbs[start_mb + s->sys->bpm]); s 971 libavcodec/dvenc.c for (j = 0; j < 5 * s->sys->bpm; j++) { s 973 libavcodec/dvenc.c pb = dv_encode_ac(&enc_blks[j], pb, &pbs[s->sys->bpm * 5]); s 978 libavcodec/dvenc.c for (j = 0; j < 5 * s->sys->bpm; j++) { s 991 libavcodec/dvenc.c if (DV_PROFILE_IS_HD(s->sys)) s 992 libavcodec/dvenc.c dv_revise_cnos(dif, enc_blks, s->sys); s 1172 libavcodec/dvenc.c DVVideoContext *s = c->priv_data; s 1175 libavcodec/dvenc.c if ((ret = ff_alloc_packet2(c, pkt, s->sys->frame_size, 0)) < 0) s 1178 libavcodec/dvenc.c c->pix_fmt = s->sys->pix_fmt; s 1179 libavcodec/dvenc.c s->frame = frame; s 1186 libavcodec/dvenc.c s->buf = pkt->data; s 1188 libavcodec/dvenc.c dv_format_frame(s, pkt->data); s 1190 libavcodec/dvenc.c c->execute(c, dv_encode_video_segment, s->work_chunks, NULL, s 1191 libavcodec/dvenc.c dv_work_pool_size(s->sys), sizeof(DVwork_chunk)); s 42 libavcodec/dxva2_mpeg2.c const struct MpegEncContext *s, s 45 libavcodec/dxva2_mpeg2.c const Picture *current_picture = s->current_picture_ptr; s 46 libavcodec/dxva2_mpeg2.c int is_field = s->picture_structure != PICT_FRAME; s 51 libavcodec/dxva2_mpeg2.c if (s->pict_type != AV_PICTURE_TYPE_I) s 52 libavcodec/dxva2_mpeg2.c pp->wForwardRefPictureIndex = ff_dxva2_get_surface_index(avctx, ctx, s->last_picture.f); s 55 libavcodec/dxva2_mpeg2.c if (s->pict_type == AV_PICTURE_TYPE_B) s 56 libavcodec/dxva2_mpeg2.c pp->wBackwardRefPictureIndex = ff_dxva2_get_surface_index(avctx, ctx, s->next_picture.f); s 59 libavcodec/dxva2_mpeg2.c pp->wPicWidthInMBminus1 = s->mb_width - 1; s 60 libavcodec/dxva2_mpeg2.c pp->wPicHeightInMBminus1 = (s->mb_height >> is_field) - 1; s 66 libavcodec/dxva2_mpeg2.c pp->bPicStructure = s->picture_structure; s 67 libavcodec/dxva2_mpeg2.c pp->bSecondField = is_field && !s->first_field; s 68 libavcodec/dxva2_mpeg2.c pp->bPicIntra = s->pict_type == AV_PICTURE_TYPE_I; s 69 libavcodec/dxva2_mpeg2.c pp->bPicBackwardPrediction = s->pict_type == AV_PICTURE_TYPE_B; s 72 libavcodec/dxva2_mpeg2.c pp->bChromaFormat = s->chroma_format; s 74 libavcodec/dxva2_mpeg2.c pp->bPicScanMethod = s->alternate_scan ? 1 : 0; s 87 libavcodec/dxva2_mpeg2.c pp->wBitstreamFcodes = (s->mpeg_f_code[0][0] << 12) | s 88 libavcodec/dxva2_mpeg2.c (s->mpeg_f_code[0][1] << 8) | s 89 libavcodec/dxva2_mpeg2.c (s->mpeg_f_code[1][0] << 4) | s 90 libavcodec/dxva2_mpeg2.c (s->mpeg_f_code[1][1] ); s 91 libavcodec/dxva2_mpeg2.c pp->wBitstreamPCEelements = (s->intra_dc_precision << 14) | s 92 libavcodec/dxva2_mpeg2.c (s->picture_structure << 12) | s 93 libavcodec/dxva2_mpeg2.c (s->top_field_first << 11) | s 94 libavcodec/dxva2_mpeg2.c (s->frame_pred_frame_dct << 10) | s 95 libavcodec/dxva2_mpeg2.c (s->concealment_motion_vectors << 9) | s 96 libavcodec/dxva2_mpeg2.c (s->q_scale_type << 8) | s 97 libavcodec/dxva2_mpeg2.c (s->intra_vlc_format << 7) | s 98 libavcodec/dxva2_mpeg2.c (s->alternate_scan << 6) | s 99 libavcodec/dxva2_mpeg2.c (s->repeat_first_field << 5) | s 100 libavcodec/dxva2_mpeg2.c (s->chroma_420_type << 4) | s 101 libavcodec/dxva2_mpeg2.c (s->progressive_frame << 3); s 108 libavcodec/dxva2_mpeg2.c const struct MpegEncContext *s, s 115 libavcodec/dxva2_mpeg2.c int n = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 116 libavcodec/dxva2_mpeg2.c qm->Qmatrix[0][i] = s->intra_matrix[n]; s 117 libavcodec/dxva2_mpeg2.c qm->Qmatrix[1][i] = s->inter_matrix[n]; s 118 libavcodec/dxva2_mpeg2.c qm->Qmatrix[2][i] = s->chroma_intra_matrix[n]; s 119 libavcodec/dxva2_mpeg2.c qm->Qmatrix[3][i] = s->chroma_inter_matrix[n]; s 124 libavcodec/dxva2_mpeg2.c const struct MpegEncContext *s, s 129 libavcodec/dxva2_mpeg2.c int is_field = s->picture_structure != PICT_FRAME; s 133 libavcodec/dxva2_mpeg2.c slice->wHorizontalPosition = s->mb_x; s 134 libavcodec/dxva2_mpeg2.c slice->wVerticalPosition = s->mb_y >> is_field; s 140 libavcodec/dxva2_mpeg2.c slice->wNumberMBsInSlice = (s->mb_y >> is_field) * s->mb_width + s->mb_x; s 154 libavcodec/dxva2_mpeg2.c const struct MpegEncContext *s = avctx->priv_data; s 157 libavcodec/dxva2_mpeg2.c s->current_picture_ptr->hwaccel_picture_private; s 158 libavcodec/dxva2_mpeg2.c const int is_field = s->picture_structure != PICT_FRAME; s 159 libavcodec/dxva2_mpeg2.c const unsigned mb_count = s->mb_width * (s->mb_height >> is_field); s 257 libavcodec/dxva2_mpeg2.c const struct MpegEncContext *s = avctx->priv_data; s 260 libavcodec/dxva2_mpeg2.c s->current_picture_ptr->hwaccel_picture_private; s 266 libavcodec/dxva2_mpeg2.c fill_picture_parameters(avctx, ctx, s, &ctx_pic->pp); s 267 libavcodec/dxva2_mpeg2.c fill_quantization_matrices(avctx, ctx, s, &ctx_pic->qm); s 278 libavcodec/dxva2_mpeg2.c const struct MpegEncContext *s = avctx->priv_data; s 280 libavcodec/dxva2_mpeg2.c s->current_picture_ptr->hwaccel_picture_private; s 293 libavcodec/dxva2_mpeg2.c fill_slice(avctx, s, &ctx_pic->slice[ctx_pic->slice_count++], position, s 300 libavcodec/dxva2_mpeg2.c struct MpegEncContext *s = avctx->priv_data; s 302 libavcodec/dxva2_mpeg2.c s->current_picture_ptr->hwaccel_picture_private; s 307 libavcodec/dxva2_mpeg2.c ret = ff_dxva2_common_end_frame(avctx, s->current_picture_ptr->f, s 312 libavcodec/dxva2_mpeg2.c ff_mpeg_draw_horiz_band(s, 0, avctx->height); s 43 libavcodec/dxva2_vc1.c const MpegEncContext *s = &v->s; s 44 libavcodec/dxva2_vc1.c const Picture *current_picture = s->current_picture_ptr; s 48 libavcodec/dxva2_vc1.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 50 libavcodec/dxva2_vc1.c if (v->lumscale != 32 || v->lumshift != 0 || (s->picture_structure != PICT_FRAME && (v->lumscale2 != 32 || v->lumshift2 != 0))) s 58 libavcodec/dxva2_vc1.c if (s->pict_type != AV_PICTURE_TYPE_I && !v->bi_type) s 59 libavcodec/dxva2_vc1.c pp->wForwardRefPictureIndex = ff_dxva2_get_surface_index(avctx, ctx, s->last_picture.f); s 62 libavcodec/dxva2_vc1.c if (s->pict_type == AV_PICTURE_TYPE_B && !v->bi_type) s 63 libavcodec/dxva2_vc1.c pp->wBackwardRefPictureIndex = ff_dxva2_get_surface_index(avctx, ctx, s->next_picture.f); s 72 libavcodec/dxva2_vc1.c pp->wPicWidthInMBminus1 = s->mb_width - 1; s 73 libavcodec/dxva2_vc1.c pp->wPicHeightInMBminus1= s->mb_height - 1; s 80 libavcodec/dxva2_vc1.c if (s->picture_structure & PICT_TOP_FIELD) s 82 libavcodec/dxva2_vc1.c if (s->picture_structure & PICT_BOTTOM_FIELD) s 85 libavcodec/dxva2_vc1.c pp->bPicIntra = s->pict_type == AV_PICTURE_TYPE_I || v->bi_type; s 86 libavcodec/dxva2_vc1.c pp->bPicBackwardPrediction = s->pict_type == AV_PICTURE_TYPE_B && !v->bi_type; s 95 libavcodec/dxva2_vc1.c (!s->quarter_sample ); s 106 libavcodec/dxva2_vc1.c (s->loop_filter << 5) | s 115 libavcodec/dxva2_vc1.c (s->max_b_frames ); s 119 libavcodec/dxva2_vc1.c (s->loop_filter << 1); s 125 libavcodec/dxva2_vc1.c ((s->pict_type != AV_PICTURE_TYPE_B) << 2) | s 128 libavcodec/dxva2_vc1.c if (s->pict_type != AV_PICTURE_TYPE_I) s 140 libavcodec/dxva2_vc1.c if (s->picture_structure == PICT_FRAME) { s 166 libavcodec/dxva2_vc1.c const MpegEncContext *s = &v->s; s 170 libavcodec/dxva2_vc1.c slice->wVerticalPosition = s->mb_y; s 174 libavcodec/dxva2_vc1.c slice->bReservedBits = (s->pict_type == AV_PICTURE_TYPE_B && !v->bi_type) ? v->bfraction_lut_index + 9 : 0; s 175 libavcodec/dxva2_vc1.c slice->wMBbitOffset = v->p_frame_skipped ? 0xffff : get_bits_count(&s->gb) + (avctx->codec_id == AV_CODEC_ID_VC1 ? 32 : 0); s 177 libavcodec/dxva2_vc1.c slice->wNumberMBsInSlice = (s->mb_y >> v->field_mode) * s->mb_width + s->mb_x; s 188 libavcodec/dxva2_vc1.c const MpegEncContext *s = &v->s; s 189 libavcodec/dxva2_vc1.c struct dxva2_picture_context *ctx_pic = s->current_picture_ptr->hwaccel_picture_private; s 193 libavcodec/dxva2_vc1.c const unsigned mb_count = s->mb_width * (s->mb_height >> v->field_mode); s 315 libavcodec/dxva2_vc1.c struct dxva2_picture_context *ctx_pic = v->s.current_picture_ptr->hwaccel_picture_private; s 334 libavcodec/dxva2_vc1.c const Picture *current_picture = v->s.current_picture_ptr; s 362 libavcodec/dxva2_vc1.c struct dxva2_picture_context *ctx_pic = v->s.current_picture_ptr->hwaccel_picture_private; s 368 libavcodec/dxva2_vc1.c ret = ff_dxva2_common_end_frame(avctx, v->s.current_picture_ptr->f, s 373 libavcodec/dxva2_vc1.c ff_mpeg_draw_horiz_band(&v->s, 0, avctx->height); s 59 libavcodec/eac3dec.c static void ff_eac3_apply_spectral_extension(AC3DecodeContext *s) s 67 libavcodec/eac3dec.c bin = s->spx_dst_start_freq; s 69 libavcodec/eac3dec.c for (bnd = 0; bnd < s->num_spx_bands; bnd++) { s 71 libavcodec/eac3dec.c int bandsize = s->spx_band_sizes[bnd]; s 72 libavcodec/eac3dec.c if (bin + bandsize > s->spx_src_start_freq) { s 73 libavcodec/eac3dec.c copy_sizes[num_copy_sections++] = bin - s->spx_dst_start_freq; s 74 libavcodec/eac3dec.c bin = s->spx_dst_start_freq; s 78 libavcodec/eac3dec.c if (bin == s->spx_src_start_freq) { s 79 libavcodec/eac3dec.c copy_sizes[num_copy_sections++] = bin - s->spx_dst_start_freq; s 80 libavcodec/eac3dec.c bin = s->spx_dst_start_freq; s 82 libavcodec/eac3dec.c copysize = FFMIN(bandsize - i, s->spx_src_start_freq - bin); s 86 libavcodec/eac3dec.c copy_sizes[num_copy_sections++] = bin - s->spx_dst_start_freq; s 88 libavcodec/eac3dec.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 89 libavcodec/eac3dec.c if (!s->channel_uses_spx[ch]) s 93 libavcodec/eac3dec.c bin = s->spx_src_start_freq; s 95 libavcodec/eac3dec.c memcpy(&s->transform_coeffs[ch][bin], s 96 libavcodec/eac3dec.c &s->transform_coeffs[ch][s->spx_dst_start_freq], s 102 libavcodec/eac3dec.c bin = s->spx_src_start_freq; s 103 libavcodec/eac3dec.c for (bnd = 0; bnd < s->num_spx_bands; bnd++) { s 104 libavcodec/eac3dec.c int bandsize = s->spx_band_sizes[bnd]; s 107 libavcodec/eac3dec.c float coeff = s->transform_coeffs[ch][bin++]; s 115 libavcodec/eac3dec.c if (s->spx_atten_code[ch] >= 0) { s 116 libavcodec/eac3dec.c const float *atten_tab = ff_eac3_spx_atten_tab[s->spx_atten_code[ch]]; s 117 libavcodec/eac3dec.c bin = s->spx_src_start_freq - 2; s 118 libavcodec/eac3dec.c for (bnd = 0; bnd < s->num_spx_bands; bnd++) { s 120 libavcodec/eac3dec.c INTFLOAT *coeffs = &s->transform_coeffs[ch][bin]; s 127 libavcodec/eac3dec.c bin += s->spx_band_sizes[bnd]; s 134 libavcodec/eac3dec.c bin = s->spx_src_start_freq; s 135 libavcodec/eac3dec.c for (bnd = 0; bnd < s->num_spx_bands; bnd++) { s 136 libavcodec/eac3dec.c float nscale = s->spx_noise_blend[ch][bnd] * rms_energy[bnd] * (1.0f / INT32_MIN); s 137 libavcodec/eac3dec.c float sscale = s->spx_signal_blend[ch][bnd]; s 143 libavcodec/eac3dec.c for (i = 0; i < s->spx_band_sizes[bnd]; i++) { s 144 libavcodec/eac3dec.c float noise = nscale * (int32_t)av_lfg_get(&s->dith_state); s 145 libavcodec/eac3dec.c s->transform_coeffs[ch][bin] *= sscale; s 146 libavcodec/eac3dec.c s->transform_coeffs[ch][bin++] += noise; s 196 libavcodec/eac3dec.c static void ff_eac3_decode_transform_coeffs_aht_ch(AC3DecodeContext *s, int ch) s 200 libavcodec/eac3dec.c GetBitContext *gbc = &s->gbc; s 211 libavcodec/eac3dec.c for (bin = s->start_freq[ch]; bin < s->end_freq[ch]; bin++) { s 212 libavcodec/eac3dec.c if (s->bap[ch][bin] > 7 && s->bap[ch][bin] < end_bap) s 218 libavcodec/eac3dec.c for (bin = s->start_freq[ch]; bin < s->end_freq[ch]; bin++) { s 219 libavcodec/eac3dec.c if (s->bap[ch][bin] > 7 && s->bap[ch][bin] < 17) { s 223 libavcodec/eac3dec.c av_log(s->avctx, AV_LOG_WARNING, "GAQ gain group code out-of-range\n"); s 236 libavcodec/eac3dec.c for (bin = s->start_freq[ch]; bin < s->end_freq[ch]; bin++) { s 237 libavcodec/eac3dec.c int hebap = s->bap[ch][bin]; s 242 libavcodec/eac3dec.c s->pre_mantissa[ch][bin][blk] = (av_lfg_get(&s->dith_state) & 0x7FFFFF) - 0x400000; s 248 libavcodec/eac3dec.c s->pre_mantissa[ch][bin][blk] = ff_eac3_mantissa_vq[hebap][v][blk] * (1 << 8); s 282 libavcodec/eac3dec.c s->pre_mantissa[ch][bin][blk] = mant; s 285 libavcodec/eac3dec.c idct6(s->pre_mantissa[ch][bin]); s 289 libavcodec/eac3dec.c static int ff_eac3_parse_header(AC3DecodeContext *s) s 295 libavcodec/eac3dec.c GetBitContext *gbc = &s->gbc; s 300 libavcodec/eac3dec.c if (s->frame_type == EAC3_FRAME_TYPE_RESERVED) { s 301 libavcodec/eac3dec.c av_log(s->avctx, AV_LOG_ERROR, "Reserved frame type\n"); s 308 libavcodec/eac3dec.c if (s->substreamid) { s 310 libavcodec/eac3dec.c if (!s->eac3_subsbtreamid_found) { s 311 libavcodec/eac3dec.c s->eac3_subsbtreamid_found = 1; s 312 libavcodec/eac3dec.c avpriv_request_sample(s->avctx, "Additional substreams"); s 317 libavcodec/eac3dec.c if (s->bit_alloc_params.sr_code == EAC3_SR_CODE_REDUCED) { s 322 libavcodec/eac3dec.c avpriv_request_sample(s->avctx, "Reduced sampling rate"); s 328 libavcodec/eac3dec.c for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { s 329 libavcodec/eac3dec.c s->dialog_normalization[i] = -get_bits(gbc, 5); s 330 libavcodec/eac3dec.c if (s->dialog_normalization[i] == 0) { s 331 libavcodec/eac3dec.c s->dialog_normalization[i] = -31; s 333 libavcodec/eac3dec.c if (s->target_level != 0) { s 334 libavcodec/eac3dec.c s->level_gain[i] = powf(2.0f, s 335 libavcodec/eac3dec.c (float)(s->target_level - s->dialog_normalization[i])/6.0f); s 337 libavcodec/eac3dec.c s->compression_exists[i] = get_bits1(gbc); s 338 libavcodec/eac3dec.c if (s->compression_exists[i]) { s 339 libavcodec/eac3dec.c s->heavy_dynamic_range[i] = AC3_HEAVY_RANGE(get_bits(gbc, 8)); s 344 libavcodec/eac3dec.c if (s->frame_type == EAC3_FRAME_TYPE_DEPENDENT) { s 348 libavcodec/eac3dec.c av_log(s->avctx, AV_LOG_DEBUG, "channel_map: %0X\n", channel_map); s 357 libavcodec/eac3dec.c s->channel_map = channel_map; s 364 libavcodec/eac3dec.c if (s->channel_mode > AC3_CHMODE_STEREO) { s 365 libavcodec/eac3dec.c s->preferred_downmix = get_bits(gbc, 2); s 366 libavcodec/eac3dec.c if (s->channel_mode & 1) { s 368 libavcodec/eac3dec.c s->center_mix_level_ltrt = get_bits(gbc, 3); s 369 libavcodec/eac3dec.c s->center_mix_level = get_bits(gbc, 3); s 371 libavcodec/eac3dec.c if (s->channel_mode & 4) { s 373 libavcodec/eac3dec.c s->surround_mix_level_ltrt = av_clip(get_bits(gbc, 3), 3, 7); s 374 libavcodec/eac3dec.c s->surround_mix_level = av_clip(get_bits(gbc, 3), 3, 7); s 379 libavcodec/eac3dec.c if (s->lfe_on && (s->lfe_mix_level_exists = get_bits1(gbc))) { s 380 libavcodec/eac3dec.c s->lfe_mix_level = get_bits(gbc, 5); s 384 libavcodec/eac3dec.c if (s->frame_type == EAC3_FRAME_TYPE_INDEPENDENT) { s 385 libavcodec/eac3dec.c for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { s 405 libavcodec/eac3dec.c if (s->channel_mode < AC3_CHMODE_STEREO) { s 406 libavcodec/eac3dec.c for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { s 418 libavcodec/eac3dec.c for (blk = 0; blk < s->num_blocks; blk++) { s 419 libavcodec/eac3dec.c if (s->num_blocks == 1 || get_bits1(gbc)) { s 429 libavcodec/eac3dec.c s->bitstream_mode = get_bits(gbc, 3); s 431 libavcodec/eac3dec.c if (s->channel_mode == AC3_CHMODE_STEREO) { s 432 libavcodec/eac3dec.c s->dolby_surround_mode = get_bits(gbc, 2); s 433 libavcodec/eac3dec.c s->dolby_headphone_mode = get_bits(gbc, 2); s 435 libavcodec/eac3dec.c if (s->channel_mode >= AC3_CHMODE_2F2R) { s 436 libavcodec/eac3dec.c s->dolby_surround_ex_mode = get_bits(gbc, 2); s 438 libavcodec/eac3dec.c for (i = 0; i < (s->channel_mode ? 1 : 2); i++) { s 443 libavcodec/eac3dec.c if (s->bit_alloc_params.sr_code != EAC3_SR_CODE_REDUCED) { s 452 libavcodec/eac3dec.c if (s->frame_type == EAC3_FRAME_TYPE_INDEPENDENT && s->num_blocks != 6) { s 457 libavcodec/eac3dec.c if (s->frame_type == EAC3_FRAME_TYPE_AC3_CONVERT && s 458 libavcodec/eac3dec.c (s->num_blocks == 6 || get_bits1(gbc))) { s 472 libavcodec/eac3dec.c if (s->num_blocks == 6) { s 482 libavcodec/eac3dec.c s->snr_offset_strategy = get_bits(gbc, 2); s 485 libavcodec/eac3dec.c s->block_switch_syntax = get_bits1(gbc); s 486 libavcodec/eac3dec.c if (!s->block_switch_syntax) s 487 libavcodec/eac3dec.c memset(s->block_switch, 0, sizeof(s->block_switch)); s 489 libavcodec/eac3dec.c s->dither_flag_syntax = get_bits1(gbc); s 490 libavcodec/eac3dec.c if (!s->dither_flag_syntax) { s 491 libavcodec/eac3dec.c for (ch = 1; ch <= s->fbw_channels; ch++) s 492 libavcodec/eac3dec.c s->dither_flag[ch] = 1; s 494 libavcodec/eac3dec.c s->dither_flag[CPL_CH] = s->dither_flag[s->lfe_ch] = 0; s 496 libavcodec/eac3dec.c s->bit_allocation_syntax = get_bits1(gbc); s 497 libavcodec/eac3dec.c if (!s->bit_allocation_syntax) { s 499 libavcodec/eac3dec.c s->bit_alloc_params.slow_decay = ff_ac3_slow_decay_tab[2]; s 500 libavcodec/eac3dec.c s->bit_alloc_params.fast_decay = ff_ac3_fast_decay_tab[1]; s 501 libavcodec/eac3dec.c s->bit_alloc_params.slow_gain = ff_ac3_slow_gain_tab [1]; s 502 libavcodec/eac3dec.c s->bit_alloc_params.db_per_bit = ff_ac3_db_per_bit_tab[2]; s 503 libavcodec/eac3dec.c s->bit_alloc_params.floor = ff_ac3_floor_tab [7]; s 506 libavcodec/eac3dec.c s->fast_gain_syntax = get_bits1(gbc); s 507 libavcodec/eac3dec.c s->dba_syntax = get_bits1(gbc); s 508 libavcodec/eac3dec.c s->skip_syntax = get_bits1(gbc); s 513 libavcodec/eac3dec.c if (s->channel_mode > 1) { s 514 libavcodec/eac3dec.c for (blk = 0; blk < s->num_blocks; blk++) { s 515 libavcodec/eac3dec.c s->cpl_strategy_exists[blk] = (!blk || get_bits1(gbc)); s 516 libavcodec/eac3dec.c if (s->cpl_strategy_exists[blk]) { s 517 libavcodec/eac3dec.c s->cpl_in_use[blk] = get_bits1(gbc); s 519 libavcodec/eac3dec.c s->cpl_in_use[blk] = s->cpl_in_use[blk-1]; s 521 libavcodec/eac3dec.c num_cpl_blocks += s->cpl_in_use[blk]; s 524 libavcodec/eac3dec.c memset(s->cpl_in_use, 0, sizeof(s->cpl_in_use)); s 530 libavcodec/eac3dec.c for (blk = 0; blk < s->num_blocks; blk++) { s 531 libavcodec/eac3dec.c for (ch = !s->cpl_in_use[blk]; ch <= s->fbw_channels; ch++) { s 532 libavcodec/eac3dec.c s->exp_strategy[blk][ch] = get_bits(gbc, 2); s 537 libavcodec/eac3dec.c for (ch = !((s->channel_mode > 1) && num_cpl_blocks); ch <= s->fbw_channels; ch++) { s 540 libavcodec/eac3dec.c s->exp_strategy[blk][ch] = ff_eac3_frm_expstr[frmchexpstr][blk]; s 545 libavcodec/eac3dec.c if (s->lfe_on) { s 546 libavcodec/eac3dec.c for (blk = 0; blk < s->num_blocks; blk++) { s 547 libavcodec/eac3dec.c s->exp_strategy[blk][s->lfe_ch] = get_bits1(gbc); s 551 libavcodec/eac3dec.c if (s->frame_type == EAC3_FRAME_TYPE_INDEPENDENT && s 552 libavcodec/eac3dec.c (s->num_blocks == 6 || get_bits1(gbc))) { s 553 libavcodec/eac3dec.c skip_bits(gbc, 5 * s->fbw_channels); // skip converter channel exponent strategy s 562 libavcodec/eac3dec.c s->channel_uses_aht[CPL_CH]=0; s 563 libavcodec/eac3dec.c for (ch = (num_cpl_blocks != 6); ch <= s->channels; ch++) { s 566 libavcodec/eac3dec.c if ((s->exp_strategy[blk][ch] != EXP_REUSE) || s 567 libavcodec/eac3dec.c (!ch && s->cpl_strategy_exists[blk])) { s 572 libavcodec/eac3dec.c s->channel_uses_aht[ch] = use_aht && get_bits1(gbc); s 575 libavcodec/eac3dec.c memset(s->channel_uses_aht, 0, sizeof(s->channel_uses_aht)); s 579 libavcodec/eac3dec.c if (!s->snr_offset_strategy) { s 582 libavcodec/eac3dec.c for (ch = 0; ch <= s->channels; ch++) s 583 libavcodec/eac3dec.c s->snr_offset[ch] = snroffst; s 588 libavcodec/eac3dec.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 597 libavcodec/eac3dec.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 599 libavcodec/eac3dec.c s->spx_atten_code[ch] = get_bits(gbc, 5); s 601 libavcodec/eac3dec.c s->spx_atten_code[ch] = -1; s 606 libavcodec/eac3dec.c if (s->num_blocks > 1 && get_bits1(gbc)) { s 611 libavcodec/eac3dec.c int block_start_bits = (s->num_blocks-1) * (4 + av_log2(s->frame_size-2)); s 613 libavcodec/eac3dec.c avpriv_request_sample(s->avctx, "Block start info"); s 617 libavcodec/eac3dec.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 618 libavcodec/eac3dec.c s->first_spx_coords[ch] = 1; s 619 libavcodec/eac3dec.c s->first_cpl_coords[ch] = 1; s 621 libavcodec/eac3dec.c s->first_cpl_leak = 1; s 68 libavcodec/eac3enc.c void ff_eac3_get_frame_exp_strategy(AC3EncodeContext *s) s 72 libavcodec/eac3enc.c if (s->num_blocks < 6) { s 73 libavcodec/eac3enc.c s->use_frame_exp_strategy = 0; s 77 libavcodec/eac3enc.c s->use_frame_exp_strategy = 1; s 78 libavcodec/eac3enc.c for (ch = !s->cpl_on; ch <= s->fbw_channels; ch++) { s 79 libavcodec/eac3enc.c int expstr = eac3_frame_expstr_index_tab[s->exp_strategy[ch][0]-1] s 80 libavcodec/eac3enc.c [s->exp_strategy[ch][1]] s 81 libavcodec/eac3enc.c [s->exp_strategy[ch][2]] s 82 libavcodec/eac3enc.c [s->exp_strategy[ch][3]] s 83 libavcodec/eac3enc.c [s->exp_strategy[ch][4]] s 84 libavcodec/eac3enc.c [s->exp_strategy[ch][5]]; s 86 libavcodec/eac3enc.c s->use_frame_exp_strategy = 0; s 89 libavcodec/eac3enc.c s->frame_exp_strategy[ch] = expstr; s 95 libavcodec/eac3enc.c void ff_eac3_set_cpl_states(AC3EncodeContext *s) s 101 libavcodec/eac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) s 103 libavcodec/eac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 104 libavcodec/eac3enc.c AC3Block *block = &s->blocks[blk]; s 105 libavcodec/eac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 118 libavcodec/eac3enc.c for (blk = 0; blk < s->num_blocks; blk++) { s 119 libavcodec/eac3enc.c AC3Block *block = &s->blocks[blk]; s 128 libavcodec/eac3enc.c void ff_eac3_output_frame_header(AC3EncodeContext *s) s 131 libavcodec/eac3enc.c AC3EncOptions *opt = &s->options; s 133 libavcodec/eac3enc.c put_bits(&s->pb, 16, 0x0b77); /* sync word */ s 136 libavcodec/eac3enc.c put_bits(&s->pb, 2, 0); /* stream type = independent */ s 137 libavcodec/eac3enc.c put_bits(&s->pb, 3, 0); /* substream id = 0 */ s 138 libavcodec/eac3enc.c put_bits(&s->pb, 11, (s->frame_size / 2) - 1); /* frame size */ s 139 libavcodec/eac3enc.c if (s->bit_alloc.sr_shift) { s 140 libavcodec/eac3enc.c put_bits(&s->pb, 2, 0x3); /* fscod2 */ s 141 libavcodec/eac3enc.c put_bits(&s->pb, 2, s->bit_alloc.sr_code); /* sample rate code */ s 143 libavcodec/eac3enc.c put_bits(&s->pb, 2, s->bit_alloc.sr_code); /* sample rate code */ s 144 libavcodec/eac3enc.c put_bits(&s->pb, 2, s->num_blks_code); /* number of blocks */ s 146 libavcodec/eac3enc.c put_bits(&s->pb, 3, s->channel_mode); /* audio coding mode */ s 147 libavcodec/eac3enc.c put_bits(&s->pb, 1, s->lfe_on); /* LFE channel indicator */ s 148 libavcodec/eac3enc.c put_bits(&s->pb, 5, s->bitstream_id); /* bitstream id (EAC3=16) */ s 149 libavcodec/eac3enc.c put_bits(&s->pb, 5, -opt->dialogue_level); /* dialogue normalization level */ s 150 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* no compression gain */ s 152 libavcodec/eac3enc.c put_bits(&s->pb, 1, opt->eac3_mixing_metadata); s 154 libavcodec/eac3enc.c if (s->channel_mode > AC3_CHMODE_STEREO) s 155 libavcodec/eac3enc.c put_bits(&s->pb, 2, opt->preferred_stereo_downmix); s 156 libavcodec/eac3enc.c if (s->has_center) { s 157 libavcodec/eac3enc.c put_bits(&s->pb, 3, s->ltrt_center_mix_level); s 158 libavcodec/eac3enc.c put_bits(&s->pb, 3, s->loro_center_mix_level); s 160 libavcodec/eac3enc.c if (s->has_surround) { s 161 libavcodec/eac3enc.c put_bits(&s->pb, 3, s->ltrt_surround_mix_level); s 162 libavcodec/eac3enc.c put_bits(&s->pb, 3, s->loro_surround_mix_level); s 164 libavcodec/eac3enc.c if (s->lfe_on) s 165 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); s 166 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* no program scale */ s 167 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* no ext program scale */ s 168 libavcodec/eac3enc.c put_bits(&s->pb, 2, 0); /* no mixing parameters */ s 169 libavcodec/eac3enc.c if (s->channel_mode < AC3_CHMODE_STEREO) s 170 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* no pan info */ s 171 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* no frame mix config info */ s 174 libavcodec/eac3enc.c put_bits(&s->pb, 1, opt->eac3_info_metadata); s 176 libavcodec/eac3enc.c put_bits(&s->pb, 3, s->bitstream_mode); s 177 libavcodec/eac3enc.c put_bits(&s->pb, 1, opt->copyright); s 178 libavcodec/eac3enc.c put_bits(&s->pb, 1, opt->original); s 179 libavcodec/eac3enc.c if (s->channel_mode == AC3_CHMODE_STEREO) { s 180 libavcodec/eac3enc.c put_bits(&s->pb, 2, opt->dolby_surround_mode); s 181 libavcodec/eac3enc.c put_bits(&s->pb, 2, opt->dolby_headphone_mode); s 183 libavcodec/eac3enc.c if (s->channel_mode >= AC3_CHMODE_2F2R) s 184 libavcodec/eac3enc.c put_bits(&s->pb, 2, opt->dolby_surround_ex_mode); s 185 libavcodec/eac3enc.c put_bits(&s->pb, 1, opt->audio_production_info); s 187 libavcodec/eac3enc.c put_bits(&s->pb, 5, opt->mixing_level - 80); s 188 libavcodec/eac3enc.c put_bits(&s->pb, 2, opt->room_type); s 189 libavcodec/eac3enc.c put_bits(&s->pb, 1, opt->ad_converter_type); s 191 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); s 193 libavcodec/eac3enc.c if (s->num_blocks != 6) s 194 libavcodec/eac3enc.c put_bits(&s->pb, 1, !(s->avctx->frame_number % 6)); /* converter sync flag */ s 195 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* no additional bit stream info */ s 198 libavcodec/eac3enc.c if (s->num_blocks == 6) { s 199 libavcodec/eac3enc.c put_bits(&s->pb, 1, !s->use_frame_exp_strategy);/* exponent strategy syntax */ s 200 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* aht enabled = no */ s 202 libavcodec/eac3enc.c put_bits(&s->pb, 2, 0); /* snr offset strategy = 1 */ s 203 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* transient pre-noise processing enabled = no */ s 204 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* block switch syntax enabled = no */ s 205 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* dither flag syntax enabled = no */ s 206 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* bit allocation model syntax enabled = no */ s 207 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* fast gain codes enabled = no */ s 208 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* dba syntax enabled = no */ s 209 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* skip field syntax enabled = no */ s 210 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); /* spx enabled = no */ s 212 libavcodec/eac3enc.c if (s->channel_mode > AC3_CHMODE_MONO) { s 213 libavcodec/eac3enc.c put_bits(&s->pb, 1, s->blocks[0].cpl_in_use); s 214 libavcodec/eac3enc.c for (blk = 1; blk < s->num_blocks; blk++) { s 215 libavcodec/eac3enc.c AC3Block *block = &s->blocks[blk]; s 216 libavcodec/eac3enc.c put_bits(&s->pb, 1, block->new_cpl_strategy); s 218 libavcodec/eac3enc.c put_bits(&s->pb, 1, block->cpl_in_use); s 222 libavcodec/eac3enc.c if (s->use_frame_exp_strategy) { s 223 libavcodec/eac3enc.c for (ch = !s->cpl_on; ch <= s->fbw_channels; ch++) s 224 libavcodec/eac3enc.c put_bits(&s->pb, 5, s->frame_exp_strategy[ch]); s 226 libavcodec/eac3enc.c for (blk = 0; blk < s->num_blocks; blk++) s 227 libavcodec/eac3enc.c for (ch = !s->blocks[blk].cpl_in_use; ch <= s->fbw_channels; ch++) s 228 libavcodec/eac3enc.c put_bits(&s->pb, 2, s->exp_strategy[ch][blk]); s 230 libavcodec/eac3enc.c if (s->lfe_on) { s 231 libavcodec/eac3enc.c for (blk = 0; blk < s->num_blocks; blk++) s 232 libavcodec/eac3enc.c put_bits(&s->pb, 1, s->exp_strategy[s->lfe_channel][blk]); s 235 libavcodec/eac3enc.c if (s->num_blocks != 6) { s 236 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); s 238 libavcodec/eac3enc.c for (ch = 1; ch <= s->fbw_channels; ch++) { s 239 libavcodec/eac3enc.c if (s->use_frame_exp_strategy) s 240 libavcodec/eac3enc.c put_bits(&s->pb, 5, s->frame_exp_strategy[ch]); s 242 libavcodec/eac3enc.c put_bits(&s->pb, 5, 0); s 246 libavcodec/eac3enc.c put_bits(&s->pb, 6, s->coarse_snr_offset); s 247 libavcodec/eac3enc.c put_bits(&s->pb, 4, s->fine_snr_offset[1]); s 249 libavcodec/eac3enc.c if (s->num_blocks > 1) s 250 libavcodec/eac3enc.c put_bits(&s->pb, 1, 0); s 40 libavcodec/eac3enc.h void ff_eac3_get_frame_exp_strategy(AC3EncodeContext *s); s 47 libavcodec/eac3enc.h void ff_eac3_set_cpl_states(AC3EncodeContext *s); s 52 libavcodec/eac3enc.h void ff_eac3_output_frame_header(AC3EncodeContext *s); s 46 libavcodec/eacmv.c CmvContext *s = avctx->priv_data; s 48 libavcodec/eacmv.c s->avctx = avctx; s 51 libavcodec/eacmv.c s->last_frame = av_frame_alloc(); s 52 libavcodec/eacmv.c s->last2_frame = av_frame_alloc(); s 53 libavcodec/eacmv.c if (!s->last_frame || !s->last2_frame) { s 54 libavcodec/eacmv.c av_frame_free(&s->last_frame); s 55 libavcodec/eacmv.c av_frame_free(&s->last2_frame); s 62 libavcodec/eacmv.c static void cmv_decode_intra(CmvContext * s, AVFrame *frame, s 68 libavcodec/eacmv.c for (i=0; i < s->avctx->height && buf_end - buf >= s->avctx->width; i++) { s 69 libavcodec/eacmv.c memcpy(dst, buf, s->avctx->width); s 71 libavcodec/eacmv.c buf += s->avctx->width; s 94 libavcodec/eacmv.c static void cmv_decode_inter(CmvContext *s, AVFrame *frame, const uint8_t *buf, s 97 libavcodec/eacmv.c const uint8_t *raw = buf + (s->avctx->width*s->avctx->height/16); s 101 libavcodec/eacmv.c for(y=0; y<s->avctx->height/4; y++) s 102 libavcodec/eacmv.c for(x=0; x<s->avctx->width/4 && buf_end - buf > i; x++) { s 115 libavcodec/eacmv.c if (s->last2_frame->data[0]) s 117 libavcodec/eacmv.c s->last2_frame->data[0], s->last2_frame->linesize[0], s 118 libavcodec/eacmv.c x*4, y*4, xoffset, yoffset, s->avctx->width, s->avctx->height); s 124 libavcodec/eacmv.c if (s->last_frame->data[0]) s 126 libavcodec/eacmv.c s->last_frame->data[0], s->last_frame->linesize[0], s 127 libavcodec/eacmv.c x*4, y*4, xoffset, yoffset, s->avctx->width, s->avctx->height); s 133 libavcodec/eacmv.c static int cmv_process_header(CmvContext *s, const uint8_t *buf, const uint8_t *buf_end) s 138 libavcodec/eacmv.c av_log(s->avctx, AV_LOG_WARNING, "truncated header\n"); s 142 libavcodec/eacmv.c s->width = AV_RL16(&buf[4]); s 143 libavcodec/eacmv.c s->height = AV_RL16(&buf[6]); s 145 libavcodec/eacmv.c if (s->width != s->avctx->width || s 146 libavcodec/eacmv.c s->height != s->avctx->height) { s 147 libavcodec/eacmv.c av_frame_unref(s->last_frame); s 148 libavcodec/eacmv.c av_frame_unref(s->last2_frame); s 151 libavcodec/eacmv.c ret = ff_set_dimensions(s->avctx, s->width, s->height); s 157 libavcodec/eacmv.c s->avctx->framerate = (AVRational){ fps, 1 }; s 164 libavcodec/eacmv.c s->palette[i] = 0xFFU << 24 | AV_RB24(buf); s 180 libavcodec/eacmv.c CmvContext *s = avctx->priv_data; s 190 libavcodec/eacmv.c ret = cmv_process_header(s, buf+EA_PREAMBLE_SIZE, buf_end); s 198 libavcodec/eacmv.c if ((ret = av_image_check_size(s->width, s->height, 0, s->avctx)) < 0) s 204 libavcodec/eacmv.c memcpy(frame->data[1], s->palette, AVPALETTE_SIZE); s 208 libavcodec/eacmv.c cmv_decode_inter(s, frame, buf+2, buf_end); s 214 libavcodec/eacmv.c cmv_decode_intra(s, frame, buf+2, buf_end); s 217 libavcodec/eacmv.c av_frame_unref(s->last2_frame); s 218 libavcodec/eacmv.c av_frame_move_ref(s->last2_frame, s->last_frame); s 219 libavcodec/eacmv.c if ((ret = av_frame_ref(s->last_frame, frame)) < 0) s 228 libavcodec/eacmv.c CmvContext *s = avctx->priv_data; s 230 libavcodec/eacmv.c av_frame_free(&s->last_frame); s 231 libavcodec/eacmv.c av_frame_free(&s->last2_frame); s 66 libavcodec/eamad.c MadContext *s = avctx->priv_data; s 67 libavcodec/eamad.c s->avctx = avctx; s 69 libavcodec/eamad.c ff_blockdsp_init(&s->bdsp, avctx); s 70 libavcodec/eamad.c ff_bswapdsp_init(&s->bbdsp); s 71 libavcodec/eamad.c ff_idctdsp_init(&s->idsp, avctx); s 72 libavcodec/eamad.c ff_init_scantable_permutation(s->idsp.idct_permutation, FF_IDCT_PERM_NONE); s 73 libavcodec/eamad.c ff_init_scantable(s->idsp.idct_permutation, &s->scantable, ff_zigzag_direct); s 76 libavcodec/eamad.c s->last_frame = av_frame_alloc(); s 77 libavcodec/eamad.c if (!s->last_frame) s 131 libavcodec/eamad.c static inline int decode_block_intra(MadContext *s, int16_t * block) s 135 libavcodec/eamad.c const uint8_t *scantable = s->scantable.permutated; s 136 libavcodec/eamad.c int16_t *quant_matrix = s->quant_matrix; s 138 libavcodec/eamad.c block[0] = (128 + get_sbits(&s->gb, 8)) * quant_matrix[0]; s 144 libavcodec/eamad.c OPEN_READER(re, &s->gb); s 147 libavcodec/eamad.c UPDATE_CACHE(re, &s->gb); s 148 libavcodec/eamad.c GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], TEX_VLC_BITS, 2, 0); s 155 libavcodec/eamad.c av_log(s->avctx, AV_LOG_ERROR, s 156 libavcodec/eamad.c "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y); s 162 libavcodec/eamad.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); s 163 libavcodec/eamad.c LAST_SKIP_BITS(re, &s->gb, 1); s 166 libavcodec/eamad.c UPDATE_CACHE(re, &s->gb); s 167 libavcodec/eamad.c level = SHOW_SBITS(re, &s->gb, 10); SKIP_BITS(re, &s->gb, 10); s 169 libavcodec/eamad.c UPDATE_CACHE(re, &s->gb); s 170 libavcodec/eamad.c run = SHOW_UBITS(re, &s->gb, 6)+1; LAST_SKIP_BITS(re, &s->gb, 6); s 174 libavcodec/eamad.c av_log(s->avctx, AV_LOG_ERROR, s 175 libavcodec/eamad.c "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y); s 192 libavcodec/eamad.c CLOSE_READER(re, &s->gb); s 208 libavcodec/eamad.c static int decode_mb(MadContext *s, AVFrame *frame, int inter) s 215 libavcodec/eamad.c int v = decode210(&s->gb); s 217 libavcodec/eamad.c mv_map = v ? get_bits(&s->gb, 6) : 63; s 218 libavcodec/eamad.c mv_x = decode_motion(&s->gb); s 219 libavcodec/eamad.c mv_y = decode_motion(&s->gb); s 225 libavcodec/eamad.c int add = 2*decode_motion(&s->gb); s 226 libavcodec/eamad.c if (s->last_frame->data[0]) s 227 libavcodec/eamad.c comp_block(s, frame, s->mb_x, s->mb_y, j, mv_x, mv_y, add); s 229 libavcodec/eamad.c s->bdsp.clear_block(s->block); s 230 libavcodec/eamad.c if(decode_block_intra(s, s->block) < 0) s 232 libavcodec/eamad.c idct_put(s, frame, s->block, s->mb_x, s->mb_y, j); s 238 libavcodec/eamad.c static void calc_quant_matrix(MadContext *s, int qscale) s 242 libavcodec/eamad.c s->quant_matrix[0] = (ff_inv_aanscales[0]*ff_mpeg1_default_intra_matrix[0]) >> 11; s 244 libavcodec/eamad.c s->quant_matrix[i] = (ff_inv_aanscales[i]*ff_mpeg1_default_intra_matrix[i]*qscale + 32) >> 10; s 253 libavcodec/eamad.c MadContext *s = avctx->priv_data; s 272 libavcodec/eamad.c calc_quant_matrix(s, bytestream2_get_byte(&gb)); s 286 libavcodec/eamad.c av_frame_unref(s->last_frame); s 296 libavcodec/eamad.c if (inter && !s->last_frame->data[0]) { s 298 libavcodec/eamad.c ret = ff_get_buffer(avctx, s->last_frame, AV_GET_BUFFER_FLAG_REF); s 301 libavcodec/eamad.c memset(s->last_frame->data[0], 0, s->last_frame->height * s 302 libavcodec/eamad.c s->last_frame->linesize[0]); s 303 libavcodec/eamad.c memset(s->last_frame->data[1], 0x80, s->last_frame->height / 2 * s 304 libavcodec/eamad.c s->last_frame->linesize[1]); s 305 libavcodec/eamad.c memset(s->last_frame->data[2], 0x80, s->last_frame->height / 2 * s 306 libavcodec/eamad.c s->last_frame->linesize[2]); s 309 libavcodec/eamad.c av_fast_padded_malloc(&s->bitstream_buf, &s->bitstream_buf_size, s 311 libavcodec/eamad.c if (!s->bitstream_buf) s 313 libavcodec/eamad.c s->bbdsp.bswap16_buf(s->bitstream_buf, (const uint16_t *)(buf + bytestream2_tell(&gb)), s 315 libavcodec/eamad.c memset((uint8_t*)s->bitstream_buf + bytestream2_get_bytes_left(&gb), 0, AV_INPUT_BUFFER_PADDING_SIZE); s 316 libavcodec/eamad.c init_get_bits(&s->gb, s->bitstream_buf, 8*(bytestream2_get_bytes_left(&gb))); s 318 libavcodec/eamad.c for (s->mb_y=0; s->mb_y < (avctx->height+15)/16; s->mb_y++) s 319 libavcodec/eamad.c for (s->mb_x=0; s->mb_x < (avctx->width +15)/16; s->mb_x++) s 320 libavcodec/eamad.c if(decode_mb(s, frame, inter) < 0) s 326 libavcodec/eamad.c av_frame_unref(s->last_frame); s 327 libavcodec/eamad.c if ((ret = av_frame_ref(s->last_frame, frame)) < 0) s 51 libavcodec/eatgq.c TgqContext *s = avctx->priv_data; s 53 libavcodec/eatgq.c s->avctx = avctx; s 55 libavcodec/eatgq.c ff_init_scantable(idct_permutation, &s->scantable, ff_zigzag_direct); s 61 libavcodec/eatgq.c static void tgq_decode_block(TgqContext *s, int16_t block[64], GetBitContext *gb) s 63 libavcodec/eatgq.c uint8_t *perm = s->scantable.permutated; s 65 libavcodec/eatgq.c block[0] = get_sbits(gb, 8) * s->qtable[0]; s 83 libavcodec/eatgq.c block[perm[i]] = -s->qtable[perm[i]]; s 88 libavcodec/eatgq.c block[perm[i]] = s->qtable[perm[i]]; s 96 libavcodec/eatgq.c block[perm[i]] = get_sbits(gb, 8) * s->qtable[perm[i]]; s 98 libavcodec/eatgq.c block[perm[i]] = get_sbits(gb, 6) * s->qtable[perm[i]]; s 107 libavcodec/eatgq.c static void tgq_idct_put_mb(TgqContext *s, int16_t (*block)[64], AVFrame *frame, s 119 libavcodec/eatgq.c if (!(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 125 libavcodec/eatgq.c static inline void tgq_dconly(TgqContext *s, unsigned char *dst, s 128 libavcodec/eatgq.c int level = av_clip_uint8((dc*s->qtable[0] + 2056) >> 4); s 134 libavcodec/eatgq.c static void tgq_idct_put_mb_dconly(TgqContext *s, AVFrame *frame, s 141 libavcodec/eatgq.c tgq_dconly(s, dest_y, linesize, dc[0]); s 142 libavcodec/eatgq.c tgq_dconly(s, dest_y + 8, linesize, dc[1]); s 143 libavcodec/eatgq.c tgq_dconly(s, dest_y + 8 * linesize, linesize, dc[2]); s 144 libavcodec/eatgq.c tgq_dconly(s, dest_y + 8 * linesize + 8, linesize, dc[3]); s 145 libavcodec/eatgq.c if (!(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 146 libavcodec/eatgq.c tgq_dconly(s, dest_cb, frame->linesize[1], dc[4]); s 147 libavcodec/eatgq.c tgq_dconly(s, dest_cr, frame->linesize[2], dc[5]); s 151 libavcodec/eatgq.c static int tgq_decode_mb(TgqContext *s, AVFrame *frame, int mb_y, int mb_x) s 157 libavcodec/eatgq.c mode = bytestream2_get_byte(&s->gb); s 160 libavcodec/eatgq.c int ret = init_get_bits8(&gb, s->gb.buffer, FFMIN(bytestream2_get_bytes_left(&s->gb), mode)); s 165 libavcodec/eatgq.c tgq_decode_block(s, s->block[i], &gb); s 166 libavcodec/eatgq.c tgq_idct_put_mb(s, s->block, frame, mb_x, mb_y); s 167 libavcodec/eatgq.c bytestream2_skip(&s->gb, mode); s 170 libavcodec/eatgq.c memset(dc, bytestream2_get_byte(&s->gb), 4); s 171 libavcodec/eatgq.c dc[4] = bytestream2_get_byte(&s->gb); s 172 libavcodec/eatgq.c dc[5] = bytestream2_get_byte(&s->gb); s 174 libavcodec/eatgq.c bytestream2_get_buffer(&s->gb, dc, 6); s 177 libavcodec/eatgq.c dc[i] = bytestream2_get_byte(&s->gb); s 178 libavcodec/eatgq.c bytestream2_skip(&s->gb, 1); s 181 libavcodec/eatgq.c av_log(s->avctx, AV_LOG_ERROR, "unsupported mb mode %i\n", mode); s 184 libavcodec/eatgq.c tgq_idct_put_mb_dconly(s, frame, mb_x, mb_y, dc); s 189 libavcodec/eatgq.c static void tgq_calculate_qtable(TgqContext *s, int quant) s 196 libavcodec/eatgq.c s->qtable[j * 8 + i] = ((a * (j + i) / (7 + 7) + b) * s 206 libavcodec/eatgq.c TgqContext *s = avctx->priv_data; s 216 libavcodec/eatgq.c bytestream2_init(&s->gb, buf + 8, buf_size - 8); s 218 libavcodec/eatgq.c s->width = bytestream2_get_be16u(&s->gb); s 219 libavcodec/eatgq.c s->height = bytestream2_get_be16u(&s->gb); s 221 libavcodec/eatgq.c s->width = bytestream2_get_le16u(&s->gb); s 222 libavcodec/eatgq.c s->height = bytestream2_get_le16u(&s->gb); s 225 libavcodec/eatgq.c ret = ff_set_dimensions(s->avctx, s->width, s->height); s 229 libavcodec/eatgq.c tgq_calculate_qtable(s, bytestream2_get_byteu(&s->gb)); s 230 libavcodec/eatgq.c bytestream2_skip(&s->gb, 3); s 239 libavcodec/eatgq.c if (tgq_decode_mb(s, frame, y, x) < 0) s 57 libavcodec/eatgv.c TgvContext *s = avctx->priv_data; s 58 libavcodec/eatgv.c s->avctx = avctx; s 62 libavcodec/eatgv.c s->last_frame = av_frame_alloc(); s 63 libavcodec/eatgv.c if (!s->last_frame) s 148 libavcodec/eatgv.c static int tgv_decode_inter(TgvContext *s, AVFrame *frame, s 170 libavcodec/eatgv.c av_log(s->avctx, AV_LOG_ERROR, s 176 libavcodec/eatgv.c if (num_mvs > s->num_mvs) { s 177 libavcodec/eatgv.c int err = av_reallocp_array(&s->mv_codebook, num_mvs, sizeof(*s->mv_codebook)); s 179 libavcodec/eatgv.c s->num_mvs = 0; s 182 libavcodec/eatgv.c s->num_mvs = num_mvs; s 185 libavcodec/eatgv.c if (num_blocks_packed > s->num_blocks_packed) { s 187 libavcodec/eatgv.c if ((err = av_reallocp(&s->block_codebook, num_blocks_packed * 16)) < 0) { s 188 libavcodec/eatgv.c s->num_blocks_packed = 0; s 191 libavcodec/eatgv.c s->num_blocks_packed = num_blocks_packed; s 202 libavcodec/eatgv.c s->mv_codebook[i][0] = get_sbits(&gb, 10); s 203 libavcodec/eatgv.c s->mv_codebook[i][1] = get_sbits(&gb, 10); s 218 libavcodec/eatgv.c s->block_codebook[i][15-j] = tmp[get_bits(&gb, 2)]; s 222 libavcodec/eatgv.c (s->avctx->height / 4) * (s->avctx->width / 4)) s 226 libavcodec/eatgv.c for (y = 0; y < s->avctx->height / 4; y++) s 227 libavcodec/eatgv.c for (x = 0; x < s->avctx->width / 4; x++) { s 233 libavcodec/eatgv.c int mx = x * 4 + s->mv_codebook[vector][0]; s 234 libavcodec/eatgv.c int my = y * 4 + s->mv_codebook[vector][1]; s 236 libavcodec/eatgv.c if (mx < 0 || mx + 4 > s->avctx->width || s 237 libavcodec/eatgv.c my < 0 || my + 4 > s->avctx->height) { s 238 libavcodec/eatgv.c av_log(s->avctx, AV_LOG_ERROR, "MV %d %d out of picture\n", mx, my); s 242 libavcodec/eatgv.c src = s->last_frame->data[0] + mx + my * s->last_frame->linesize[0]; s 243 libavcodec/eatgv.c src_stride = s->last_frame->linesize[0]; s 249 libavcodec/eatgv.c src = s->block_codebook[offset - num_blocks_raw]; s 270 libavcodec/eatgv.c TgvContext *s = avctx->priv_data; s 288 libavcodec/eatgv.c s->width = AV_RL16(&buf[0]); s 289 libavcodec/eatgv.c s->height = AV_RL16(&buf[2]); s 290 libavcodec/eatgv.c if (s->avctx->width != s->width || s->avctx->height != s->height) { s 291 libavcodec/eatgv.c av_freep(&s->frame_buffer); s 292 libavcodec/eatgv.c av_frame_unref(s->last_frame); s 293 libavcodec/eatgv.c if ((ret = ff_set_dimensions(s->avctx, s->width, s->height)) < 0) s 300 libavcodec/eatgv.c s->palette[i] = 0xFFU << 24 | AV_RB24(buf); s 311 libavcodec/eatgv.c memcpy(frame->data[1], s->palette, AVPALETTE_SIZE); s 318 libavcodec/eatgv.c if (!s->frame_buffer && s 319 libavcodec/eatgv.c !(s->frame_buffer = av_mallocz(s->width * s->height))) s 322 libavcodec/eatgv.c if (unpack(buf, buf_end, s->frame_buffer, s->avctx->width, s->avctx->height) < 0) { s 326 libavcodec/eatgv.c for (y = 0; y < s->height; y++) s 328 libavcodec/eatgv.c s->frame_buffer + y * s->width, s 329 libavcodec/eatgv.c s->width); s 331 libavcodec/eatgv.c if (!s->last_frame->data[0]) { s 337 libavcodec/eatgv.c if (tgv_decode_inter(s, frame, buf, buf_end) < 0) { s 343 libavcodec/eatgv.c av_frame_unref(s->last_frame); s 344 libavcodec/eatgv.c if ((ret = av_frame_ref(s->last_frame, frame)) < 0) s 354 libavcodec/eatgv.c TgvContext *s = avctx->priv_data; s 355 libavcodec/eatgv.c av_frame_free(&s->last_frame); s 356 libavcodec/eatgv.c av_freep(&s->frame_buffer); s 357 libavcodec/eatgv.c av_freep(&s->mv_codebook); s 358 libavcodec/eatgv.c av_freep(&s->block_codebook); s 76 libavcodec/encode.c static int pad_last_frame(AVCodecContext *s, AVFrame **dst, const AVFrame *src) s 87 libavcodec/encode.c frame->nb_samples = s->frame_size; s 97 libavcodec/encode.c src->nb_samples, s->channels, s->sample_fmt)) < 0) s 101 libavcodec/encode.c s->channels, s->sample_fmt)) < 0) s 44 libavcodec/error_resilience.c static void set_mv_strides(ERContext *s, ptrdiff_t *mv_step, ptrdiff_t *stride) s 46 libavcodec/error_resilience.c if (s->avctx->codec_id == AV_CODEC_ID_H264) { s 47 libavcodec/error_resilience.c av_assert0(s->quarter_sample); s 49 libavcodec/error_resilience.c *stride = s->mb_width * 4; s 52 libavcodec/error_resilience.c *stride = s->b8_stride; s 59 libavcodec/error_resilience.c static void put_dc(ERContext *s, uint8_t *dest_y, uint8_t *dest_cb, s 62 libavcodec/error_resilience.c int *linesize = s->cur_pic.f->linesize; s 65 libavcodec/error_resilience.c dc = s->dc_val[0][mb_x * 2 + (i & 1) + (mb_y * 2 + (i >> 1)) * s->b8_stride]; s 76 libavcodec/error_resilience.c dcu = s->dc_val[1][mb_x + mb_y * s->mb_stride]; s 77 libavcodec/error_resilience.c dcv = s->dc_val[2][mb_x + mb_y * s->mb_stride]; s 138 libavcodec/error_resilience.c static void guess_dc(ERContext *s, int16_t *dc, int w, s 146 libavcodec/error_resilience.c av_log(s->avctx, AV_LOG_ERROR, "guess_dc() is out of memory\n"); s 154 libavcodec/error_resilience.c int mb_index_j= (b_x>>is_luma) + (b_y>>is_luma)*s->mb_stride; s 155 libavcodec/error_resilience.c int error_j= s->error_status_table[mb_index_j]; s 156 libavcodec/error_resilience.c int intra_j = IS_INTRA(s->cur_pic.mb_type[mb_index_j]); s 167 libavcodec/error_resilience.c int mb_index_j= (b_x>>is_luma) + (b_y>>is_luma)*s->mb_stride; s 168 libavcodec/error_resilience.c int error_j= s->error_status_table[mb_index_j]; s 169 libavcodec/error_resilience.c int intra_j = IS_INTRA(s->cur_pic.mb_type[mb_index_j]); s 182 libavcodec/error_resilience.c int mb_index_j= (b_x>>is_luma) + (b_y>>is_luma)*s->mb_stride; s 183 libavcodec/error_resilience.c int error_j= s->error_status_table[mb_index_j]; s 184 libavcodec/error_resilience.c int intra_j = IS_INTRA(s->cur_pic.mb_type[mb_index_j]); s 195 libavcodec/error_resilience.c int mb_index_j= (b_x>>is_luma) + (b_y>>is_luma)*s->mb_stride; s 196 libavcodec/error_resilience.c int error_j= s->error_status_table[mb_index_j]; s 197 libavcodec/error_resilience.c int intra_j = IS_INTRA(s->cur_pic.mb_type[mb_index_j]); s 211 libavcodec/error_resilience.c mb_index = (b_x >> is_luma) + (b_y >> is_luma) * s->mb_stride; s 212 libavcodec/error_resilience.c error = s->error_status_table[mb_index]; s 214 libavcodec/error_resilience.c if (IS_INTER(s->cur_pic.mb_type[mb_index])) s 241 libavcodec/error_resilience.c static void h_block_filter(ERContext *s, uint8_t *dst, int w, s 247 libavcodec/error_resilience.c set_mv_strides(s, &mvx_stride, &mvy_stride); s 254 libavcodec/error_resilience.c int left_status = s->error_status_table[( b_x >> is_luma) + (b_y >> is_luma) * s->mb_stride]; s 255 libavcodec/error_resilience.c int right_status = s->error_status_table[((b_x + 1) >> is_luma) + (b_y >> is_luma) * s->mb_stride]; s 256 libavcodec/error_resilience.c int left_intra = IS_INTRA(s->cur_pic.mb_type[( b_x >> is_luma) + (b_y >> is_luma) * s->mb_stride]); s 257 libavcodec/error_resilience.c int right_intra = IS_INTRA(s->cur_pic.mb_type[((b_x + 1) >> is_luma) + (b_y >> is_luma) * s->mb_stride]); s 261 libavcodec/error_resilience.c int16_t *left_mv = s->cur_pic.motion_val[0][mvy_stride * b_y + mvx_stride * b_x]; s 262 libavcodec/error_resilience.c int16_t *right_mv = s->cur_pic.motion_val[0][mvy_stride * b_y + mvx_stride * (b_x + 1)]; s 310 libavcodec/error_resilience.c static void v_block_filter(ERContext *s, uint8_t *dst, int w, int h, s 316 libavcodec/error_resilience.c set_mv_strides(s, &mvx_stride, &mvy_stride); s 323 libavcodec/error_resilience.c int top_status = s->error_status_table[(b_x >> is_luma) + (b_y >> is_luma) * s->mb_stride]; s 324 libavcodec/error_resilience.c int bottom_status = s->error_status_table[(b_x >> is_luma) + ((b_y + 1) >> is_luma) * s->mb_stride]; s 325 libavcodec/error_resilience.c int top_intra = IS_INTRA(s->cur_pic.mb_type[(b_x >> is_luma) + ( b_y >> is_luma) * s->mb_stride]); s 326 libavcodec/error_resilience.c int bottom_intra = IS_INTRA(s->cur_pic.mb_type[(b_x >> is_luma) + ((b_y + 1) >> is_luma) * s->mb_stride]); s 331 libavcodec/error_resilience.c int16_t *top_mv = s->cur_pic.motion_val[0][mvy_stride * b_y + mvx_stride * b_x]; s 332 libavcodec/error_resilience.c int16_t *bottom_mv = s->cur_pic.motion_val[0][mvy_stride * (b_y + 1) + mvx_stride * b_x]; s 390 libavcodec/error_resilience.c static void guess_mv(ERContext *s) s 394 libavcodec/error_resilience.c const ptrdiff_t mb_stride = s->mb_stride; s 395 libavcodec/error_resilience.c const int mb_width = s->mb_width; s 396 libavcodec/error_resilience.c int mb_height = s->mb_height; s 402 libavcodec/error_resilience.c if (s->last_pic.f && s->last_pic.f->data[0]) s 403 libavcodec/error_resilience.c mb_height = FFMIN(mb_height, (s->last_pic.f->height+15)>>4); s 404 libavcodec/error_resilience.c if (s->next_pic.f && s->next_pic.f->data[0]) s 405 libavcodec/error_resilience.c mb_height = FFMIN(mb_height, (s->next_pic.f->height+15)>>4); s 407 libavcodec/error_resilience.c blocklist = (int (*)[2])s->er_temp_buffer; s 408 libavcodec/error_resilience.c next_blocklist = blocklist + s->mb_stride * s->mb_height; s 409 libavcodec/error_resilience.c fixed = (uint8_t *)(next_blocklist + s->mb_stride * s->mb_height); s 411 libavcodec/error_resilience.c set_mv_strides(s, &mot_step, &mot_stride); s 414 libavcodec/error_resilience.c if (s->last_pic.motion_val[0]) s 415 libavcodec/error_resilience.c ff_thread_await_progress(s->last_pic.tf, mb_height-1, 0); s 417 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 419 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 421 libavcodec/error_resilience.c if (IS_INTRA(s->cur_pic.mb_type[mb_xy])) s 429 libavcodec/error_resilience.c else if(s->last_pic.f->data[0] && s->last_pic.motion_val[0]){ s 430 libavcodec/error_resilience.c const int mb_y= mb_xy / s->mb_stride; s 431 libavcodec/error_resilience.c const int mb_x= mb_xy % s->mb_stride; s 433 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index][0]= s->last_pic.motion_val[0][mot_index][0]; s 434 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index][1]= s->last_pic.motion_val[0][mot_index][1]; s 435 libavcodec/error_resilience.c s->cur_pic.ref_index[0][4*mb_xy] = s->last_pic.ref_index[0][4*mb_xy]; s 439 libavcodec/error_resilience.c if ((!(s->avctx->error_concealment&FF_EC_GUESS_MVS)) || s 442 libavcodec/error_resilience.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 443 libavcodec/error_resilience.c const int mb_xy = mb_x + mb_y * s->mb_stride; s 444 libavcodec/error_resilience.c int mv_dir = (s->last_pic.f && s->last_pic.f->data[0]) ? MV_DIR_FORWARD : MV_DIR_BACKWARD; s 446 libavcodec/error_resilience.c if (IS_INTRA(s->cur_pic.mb_type[mb_xy])) s 448 libavcodec/error_resilience.c if (!(s->error_status_table[mb_xy] & ER_MV_ERROR)) s 451 libavcodec/error_resilience.c s->mv[0][0][0] = 0; s 452 libavcodec/error_resilience.c s->mv[0][0][1] = 0; s 453 libavcodec/error_resilience.c s->decode_mb(s->opaque, 0, mv_dir, MV_TYPE_16X16, &s->mv, s 501 libavcodec/error_resilience.c av_assert1(!IS_INTRA(s->cur_pic.mb_type[mb_xy])); s 502 libavcodec/error_resilience.c av_assert1(s->last_pic.f && s->last_pic.f->data[0]); s 525 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index - mot_step][0]; s 527 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index - mot_step][1]; s 529 libavcodec/error_resilience.c s->cur_pic.ref_index[0][4 * (mb_xy - 1)]; s 534 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index + mot_step][0]; s 536 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index + mot_step][1]; s 538 libavcodec/error_resilience.c s->cur_pic.ref_index[0][4 * (mb_xy + 1)]; s 543 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index - mot_stride * mot_step][0]; s 545 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index - mot_stride * mot_step][1]; s 547 libavcodec/error_resilience.c s->cur_pic.ref_index[0][4 * (mb_xy - s->mb_stride)]; s 552 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index + mot_stride * mot_step][0]; s 554 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index + mot_stride * mot_step][1]; s 556 libavcodec/error_resilience.c s->cur_pic.ref_index[0][4 * (mb_xy + s->mb_stride)]; s 613 libavcodec/error_resilience.c prev_x = s->cur_pic.motion_val[0][mot_index][0]; s 614 libavcodec/error_resilience.c prev_y = s->cur_pic.motion_val[0][mot_index][1]; s 615 libavcodec/error_resilience.c prev_ref = s->cur_pic.ref_index[0][4 * mb_xy]; s 626 libavcodec/error_resilience.c int *linesize = s->cur_pic.f->linesize; s 628 libavcodec/error_resilience.c uint8_t *src = s->cur_pic.f->data[0] + s 631 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index][0] = s 632 libavcodec/error_resilience.c s->mv[0][0][0] = mv_predictor[j][0]; s 633 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index][1] = s 634 libavcodec/error_resilience.c s->mv[0][0][1] = mv_predictor[j][1]; s 640 libavcodec/error_resilience.c s->decode_mb(s->opaque, ref[j], MV_DIR_FORWARD, s 641 libavcodec/error_resilience.c MV_TYPE_16X16, &s->mv, mb_x, mb_y, 0, 0); s 673 libavcodec/error_resilience.c s->mv[0][0][0] = mv_predictor[best_pred][0]; s 674 libavcodec/error_resilience.c s->mv[0][0][1] = mv_predictor[best_pred][1]; s 678 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index + i + j * mot_stride][0] = s->mv[0][0][0]; s 679 libavcodec/error_resilience.c s->cur_pic.motion_val[0][mot_index + i + j * mot_stride][1] = s->mv[0][0][1]; s 682 libavcodec/error_resilience.c s->decode_mb(s->opaque, ref[best_pred], MV_DIR_FORWARD, s 683 libavcodec/error_resilience.c MV_TYPE_16X16, &s->mv, mb_x, mb_y, 0, 0); s 686 libavcodec/error_resilience.c if (s->mv[0][0][0] != prev_x || s->mv[0][0][1] != prev_y) { s 722 libavcodec/error_resilience.c static int is_intra_more_likely(ERContext *s) s 726 libavcodec/error_resilience.c if (!s->last_pic.f || !s->last_pic.f->data[0]) s 729 libavcodec/error_resilience.c if (s->avctx->error_concealment & FF_EC_FAVOR_INTER) s 733 libavcodec/error_resilience.c for (i = 0; i < s->mb_num; i++) { s 734 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 735 libavcodec/error_resilience.c const int error = s->error_status_table[mb_xy]; s 745 libavcodec/error_resilience.c s->avctx->hwaccel && s->avctx->hwaccel->decode_mb && s 746 libavcodec/error_resilience.c s->cur_pic.f->pict_type == AV_PICTURE_TYPE_I) s 753 libavcodec/error_resilience.c for (mb_y = 0; mb_y < s->mb_height - 1; mb_y++) { s 754 libavcodec/error_resilience.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 756 libavcodec/error_resilience.c const int mb_xy = mb_x + mb_y * s->mb_stride; s 758 libavcodec/error_resilience.c error = s->error_status_table[mb_xy]; s 767 libavcodec/error_resilience.c if (s->cur_pic.f->pict_type == AV_PICTURE_TYPE_I) { s 768 libavcodec/error_resilience.c int *linesize = s->cur_pic.f->linesize; s 769 libavcodec/error_resilience.c uint8_t *mb_ptr = s->cur_pic.f->data[0] + s 771 libavcodec/error_resilience.c uint8_t *last_mb_ptr = s->last_pic.f->data[0] + s 774 libavcodec/error_resilience.c if (s->avctx->codec_id == AV_CODEC_ID_H264) { s 777 libavcodec/error_resilience.c ff_thread_await_progress(s->last_pic.tf, mb_y, 0); s 779 libavcodec/error_resilience.c is_intra_likely += s->mecc.sad[0](NULL, last_mb_ptr, mb_ptr, s 782 libavcodec/error_resilience.c is_intra_likely -= s->mecc.sad[0](NULL, last_mb_ptr, s 786 libavcodec/error_resilience.c if (IS_INTRA(s->cur_pic.mb_type[mb_xy])) s 797 libavcodec/error_resilience.c void ff_er_frame_start(ERContext *s) s 799 libavcodec/error_resilience.c if (!s->avctx->error_concealment) s 802 libavcodec/error_resilience.c if (!s->mecc_inited) { s 803 libavcodec/error_resilience.c ff_me_cmp_init(&s->mecc, s->avctx); s 804 libavcodec/error_resilience.c s->mecc_inited = 1; s 807 libavcodec/error_resilience.c memset(s->error_status_table, ER_MB_ERROR | VP_START | ER_MB_END, s 808 libavcodec/error_resilience.c s->mb_stride * s->mb_height * sizeof(uint8_t)); s 809 libavcodec/error_resilience.c atomic_init(&s->error_count, 3 * s->mb_num); s 810 libavcodec/error_resilience.c s->error_occurred = 0; s 813 libavcodec/error_resilience.c static int er_supported(ERContext *s) s 815 libavcodec/error_resilience.c if(s->avctx->hwaccel && s->avctx->hwaccel->decode_slice || s 816 libavcodec/error_resilience.c !s->cur_pic.f || s 817 libavcodec/error_resilience.c s->cur_pic.field_picture s 830 libavcodec/error_resilience.c void ff_er_add_slice(ERContext *s, int startx, int starty, s 833 libavcodec/error_resilience.c const int start_i = av_clip(startx + starty * s->mb_width, 0, s->mb_num - 1); s 834 libavcodec/error_resilience.c const int end_i = av_clip(endx + endy * s->mb_width, 0, s->mb_num); s 835 libavcodec/error_resilience.c const int start_xy = s->mb_index2xy[start_i]; s 836 libavcodec/error_resilience.c const int end_xy = s->mb_index2xy[end_i]; s 839 libavcodec/error_resilience.c if (s->avctx->hwaccel && s->avctx->hwaccel->decode_slice) s 843 libavcodec/error_resilience.c av_log(s->avctx, AV_LOG_ERROR, s 848 libavcodec/error_resilience.c if (!s->avctx->error_concealment) s 854 libavcodec/error_resilience.c atomic_fetch_add(&s->error_count, start_i - end_i - 1); s 858 libavcodec/error_resilience.c atomic_fetch_add(&s->error_count, start_i - end_i - 1); s 862 libavcodec/error_resilience.c atomic_fetch_add(&s->error_count, start_i - end_i - 1); s 866 libavcodec/error_resilience.c s->error_occurred = 1; s 867 libavcodec/error_resilience.c atomic_store(&s->error_count, INT_MAX); s 871 libavcodec/error_resilience.c memset(&s->error_status_table[start_xy], 0, s 876 libavcodec/error_resilience.c s->error_status_table[i] &= mask; s 879 libavcodec/error_resilience.c if (end_i == s->mb_num) s 880 libavcodec/error_resilience.c atomic_store(&s->error_count, INT_MAX); s 882 libavcodec/error_resilience.c s->error_status_table[end_xy] &= mask; s 883 libavcodec/error_resilience.c s->error_status_table[end_xy] |= status; s 886 libavcodec/error_resilience.c s->error_status_table[start_xy] |= VP_START; s 888 libavcodec/error_resilience.c if (start_xy > 0 && !(s->avctx->active_thread_type & FF_THREAD_SLICE) && s 889 libavcodec/error_resilience.c er_supported(s) && s->avctx->skip_top * s->mb_width < start_i) { s 890 libavcodec/error_resilience.c int prev_status = s->error_status_table[s->mb_index2xy[start_i - 1]]; s 894 libavcodec/error_resilience.c s->error_occurred = 1; s 895 libavcodec/error_resilience.c atomic_store(&s->error_count, INT_MAX); s 900 libavcodec/error_resilience.c void ff_er_frame_end(ERContext *s) s 908 libavcodec/error_resilience.c int size = s->b8_stride * 2 * s->mb_height; s 912 libavcodec/error_resilience.c if (!s->avctx->error_concealment || !atomic_load(&s->error_count) || s 913 libavcodec/error_resilience.c s->avctx->lowres || s 914 libavcodec/error_resilience.c !er_supported(s) || s 915 libavcodec/error_resilience.c atomic_load(&s->error_count) == 3 * s->mb_width * s 916 libavcodec/error_resilience.c (s->avctx->skip_top + s->avctx->skip_bottom)) { s 919 libavcodec/error_resilience.c linesize = s->cur_pic.f->linesize; s 920 libavcodec/error_resilience.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 921 libavcodec/error_resilience.c int status = s->error_status_table[mb_x + (s->mb_height - 1) * s->mb_stride]; s 926 libavcodec/error_resilience.c if ( mb_x == s->mb_width s 927 libavcodec/error_resilience.c && s->avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO s 928 libavcodec/error_resilience.c && (FFALIGN(s->avctx->height, 16)&16) s 929 libavcodec/error_resilience.c && atomic_load(&s->error_count) == 3 * s->mb_width * (s->avctx->skip_top + s->avctx->skip_bottom + 1) s 931 libavcodec/error_resilience.c av_log(s->avctx, AV_LOG_DEBUG, "ignoring last missing slice\n"); s 935 libavcodec/error_resilience.c if (s->last_pic.f) { s 936 libavcodec/error_resilience.c if (s->last_pic.f->width != s->cur_pic.f->width || s 937 libavcodec/error_resilience.c s->last_pic.f->height != s->cur_pic.f->height || s 938 libavcodec/error_resilience.c s->last_pic.f->format != s->cur_pic.f->format) { s 939 libavcodec/error_resilience.c av_log(s->avctx, AV_LOG_WARNING, "Cannot use previous picture in error concealment\n"); s 940 libavcodec/error_resilience.c memset(&s->last_pic, 0, sizeof(s->last_pic)); s 943 libavcodec/error_resilience.c if (s->next_pic.f) { s 944 libavcodec/error_resilience.c if (s->next_pic.f->width != s->cur_pic.f->width || s 945 libavcodec/error_resilience.c s->next_pic.f->height != s->cur_pic.f->height || s 946 libavcodec/error_resilience.c s->next_pic.f->format != s->cur_pic.f->format) { s 947 libavcodec/error_resilience.c av_log(s->avctx, AV_LOG_WARNING, "Cannot use next picture in error concealment\n"); s 948 libavcodec/error_resilience.c memset(&s->next_pic, 0, sizeof(s->next_pic)); s 952 libavcodec/error_resilience.c if (!s->cur_pic.motion_val[0] || !s->cur_pic.ref_index[0]) { s 953 libavcodec/error_resilience.c av_log(s->avctx, AV_LOG_ERROR, "Warning MVs not available\n"); s 956 libavcodec/error_resilience.c s->ref_index_buf[i] = av_buffer_allocz(s->mb_stride * s->mb_height * 4 * sizeof(uint8_t)); s 957 libavcodec/error_resilience.c s->motion_val_buf[i] = av_buffer_allocz((size + 4) * 2 * sizeof(uint16_t)); s 958 libavcodec/error_resilience.c if (!s->ref_index_buf[i] || !s->motion_val_buf[i]) s 960 libavcodec/error_resilience.c s->cur_pic.ref_index[i] = s->ref_index_buf[i]->data; s 961 libavcodec/error_resilience.c s->cur_pic.motion_val[i] = (int16_t (*)[2])s->motion_val_buf[i]->data + 4; s 965 libavcodec/error_resilience.c av_buffer_unref(&s->ref_index_buf[i]); s 966 libavcodec/error_resilience.c av_buffer_unref(&s->motion_val_buf[i]); s 967 libavcodec/error_resilience.c s->cur_pic.ref_index[i] = NULL; s 968 libavcodec/error_resilience.c s->cur_pic.motion_val[i] = NULL; s 974 libavcodec/error_resilience.c if (s->avctx->debug & FF_DEBUG_ER) { s 975 libavcodec/error_resilience.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 976 libavcodec/error_resilience.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 977 libavcodec/error_resilience.c int status = s->error_status_table[mb_x + mb_y * s->mb_stride]; s 979 libavcodec/error_resilience.c av_log(s->avctx, AV_LOG_DEBUG, "%2X ", status); s 981 libavcodec/error_resilience.c av_log(s->avctx, AV_LOG_DEBUG, "\n"); s 990 libavcodec/error_resilience.c for (i = s->mb_num - 1; i >= 0; i--) { s 991 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 992 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1000 libavcodec/error_resilience.c s->error_status_table[mb_xy] |= 1 << error_type; s 1009 libavcodec/error_resilience.c if (s->partitioned_frame) { s 1012 libavcodec/error_resilience.c for (i = s->mb_num - 1; i >= 0; i--) { s 1013 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 1014 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1024 libavcodec/error_resilience.c s->error_status_table[mb_xy]|= ER_AC_ERROR; s 1032 libavcodec/error_resilience.c if (s->avctx->err_recognition & AV_EF_EXPLODE) { s 1036 libavcodec/error_resilience.c for (i = s->mb_num - 2; i >= s->mb_width + 100; i--) { s 1037 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 1038 libavcodec/error_resilience.c int error1 = s->error_status_table[mb_xy]; s 1039 libavcodec/error_resilience.c int error2 = s->error_status_table[s->mb_index2xy[i + 1]]; s 1053 libavcodec/error_resilience.c s->error_status_table[mb_xy] |= ER_MB_ERROR; s 1061 libavcodec/error_resilience.c for (i = s->mb_num - 1; i >= 0; i--) { s 1062 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 1063 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1065 libavcodec/error_resilience.c if (!s->mbskip_table || !s->mbskip_table[mb_xy]) // FIXME partition specific s 1070 libavcodec/error_resilience.c if (s->partitioned_frame) { s 1072 libavcodec/error_resilience.c s->error_status_table[mb_xy] |= 1 << error_type; s 1075 libavcodec/error_resilience.c s->error_status_table[mb_xy] |= 1 << error_type; s 1086 libavcodec/error_resilience.c for (i = 0; i < s->mb_num; i++) { s 1087 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 1088 libavcodec/error_resilience.c int old_error = s->error_status_table[mb_xy]; s 1094 libavcodec/error_resilience.c s->error_status_table[mb_xy] |= error; s 1099 libavcodec/error_resilience.c if (!s->partitioned_frame) { s 1100 libavcodec/error_resilience.c for (i = 0; i < s->mb_num; i++) { s 1101 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 1102 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1105 libavcodec/error_resilience.c s->error_status_table[mb_xy] = error; s 1111 libavcodec/error_resilience.c for (i = 0; i < s->mb_num; i++) { s 1112 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 1113 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1121 libavcodec/error_resilience.c av_log(s->avctx, AV_LOG_INFO, "concealing %d DC, %d AC, %d MV errors in %c frame\n", s 1122 libavcodec/error_resilience.c dc_error, ac_error, mv_error, av_get_picture_type_char(s->cur_pic.f->pict_type)); s 1124 libavcodec/error_resilience.c s->cur_pic.f->decode_error_flags |= FF_DECODE_ERROR_CONCEALMENT_ACTIVE; s 1126 libavcodec/error_resilience.c is_intra_likely = is_intra_more_likely(s); s 1129 libavcodec/error_resilience.c for (i = 0; i < s->mb_num; i++) { s 1130 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 1131 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1136 libavcodec/error_resilience.c s->cur_pic.mb_type[mb_xy] = MB_TYPE_INTRA4x4; s 1138 libavcodec/error_resilience.c s->cur_pic.mb_type[mb_xy] = MB_TYPE_16x16 | MB_TYPE_L0; s 1142 libavcodec/error_resilience.c if (!(s->last_pic.f && s->last_pic.f->data[0]) && s 1143 libavcodec/error_resilience.c !(s->next_pic.f && s->next_pic.f->data[0])) s 1144 libavcodec/error_resilience.c for (i = 0; i < s->mb_num; i++) { s 1145 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 1146 libavcodec/error_resilience.c if (!IS_INTRA(s->cur_pic.mb_type[mb_xy])) s 1147 libavcodec/error_resilience.c s->cur_pic.mb_type[mb_xy] = MB_TYPE_INTRA4x4; s 1151 libavcodec/error_resilience.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 1152 libavcodec/error_resilience.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1153 libavcodec/error_resilience.c const int mb_xy = mb_x + mb_y * s->mb_stride; s 1154 libavcodec/error_resilience.c const int mb_type = s->cur_pic.mb_type[mb_xy]; s 1155 libavcodec/error_resilience.c const int dir = !(s->last_pic.f && s->last_pic.f->data[0]); s 1159 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1169 libavcodec/error_resilience.c int mb_index = mb_x * 2 + mb_y * 2 * s->b8_stride; s 1173 libavcodec/error_resilience.c s->mv[0][j][0] = s->cur_pic.motion_val[dir][mb_index + (j & 1) + (j >> 1) * s->b8_stride][0]; s 1174 libavcodec/error_resilience.c s->mv[0][j][1] = s->cur_pic.motion_val[dir][mb_index + (j & 1) + (j >> 1) * s->b8_stride][1]; s 1178 libavcodec/error_resilience.c s->mv[0][0][0] = s->cur_pic.motion_val[dir][mb_x * 2 + mb_y * 2 * s->b8_stride][0]; s 1179 libavcodec/error_resilience.c s->mv[0][0][1] = s->cur_pic.motion_val[dir][mb_x * 2 + mb_y * 2 * s->b8_stride][1]; s 1182 libavcodec/error_resilience.c s->decode_mb(s->opaque, 0 /* FIXME H.264 partitioned slices need this set */, s 1183 libavcodec/error_resilience.c mv_dir, mv_type, &s->mv, mb_x, mb_y, 0, 0); s 1188 libavcodec/error_resilience.c if (s->cur_pic.f->pict_type == AV_PICTURE_TYPE_B) { s 1189 libavcodec/error_resilience.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 1190 libavcodec/error_resilience.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1191 libavcodec/error_resilience.c int xy = mb_x * 2 + mb_y * 2 * s->b8_stride; s 1192 libavcodec/error_resilience.c const int mb_xy = mb_x + mb_y * s->mb_stride; s 1193 libavcodec/error_resilience.c const int mb_type = s->cur_pic.mb_type[mb_xy]; s 1196 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1205 libavcodec/error_resilience.c if (!(s->last_pic.f && s->last_pic.f->data[0])) s 1207 libavcodec/error_resilience.c if (!(s->next_pic.f && s->next_pic.f->data[0])) s 1210 libavcodec/error_resilience.c if (s->pp_time) { s 1211 libavcodec/error_resilience.c int time_pp = s->pp_time; s 1212 libavcodec/error_resilience.c int time_pb = s->pb_time; s 1214 libavcodec/error_resilience.c av_assert0(s->avctx->codec_id != AV_CODEC_ID_H264); s 1215 libavcodec/error_resilience.c ff_thread_await_progress(s->next_pic.tf, mb_y, 0); s 1217 libavcodec/error_resilience.c s->mv[0][0][0] = s->next_pic.motion_val[0][xy][0] * time_pb / time_pp; s 1218 libavcodec/error_resilience.c s->mv[0][0][1] = s->next_pic.motion_val[0][xy][1] * time_pb / time_pp; s 1219 libavcodec/error_resilience.c s->mv[1][0][0] = s->next_pic.motion_val[0][xy][0] * (time_pb - time_pp) / time_pp; s 1220 libavcodec/error_resilience.c s->mv[1][0][1] = s->next_pic.motion_val[0][xy][1] * (time_pb - time_pp) / time_pp; s 1222 libavcodec/error_resilience.c s->mv[0][0][0] = 0; s 1223 libavcodec/error_resilience.c s->mv[0][0][1] = 0; s 1224 libavcodec/error_resilience.c s->mv[1][0][0] = 0; s 1225 libavcodec/error_resilience.c s->mv[1][0][1] = 0; s 1228 libavcodec/error_resilience.c s->decode_mb(s->opaque, 0, mv_dir, MV_TYPE_16X16, &s->mv, s 1233 libavcodec/error_resilience.c guess_mv(s); s 1236 libavcodec/error_resilience.c if (CONFIG_XVMC && s->avctx->hwaccel && s->avctx->hwaccel->decode_mb) s 1239 libavcodec/error_resilience.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 1240 libavcodec/error_resilience.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1244 libavcodec/error_resilience.c const int mb_xy = mb_x + mb_y * s->mb_stride; s 1245 libavcodec/error_resilience.c const int mb_type = s->cur_pic.mb_type[mb_xy]; s 1249 libavcodec/error_resilience.c if (IS_INTRA(mb_type) && s->partitioned_frame) s 1254 libavcodec/error_resilience.c dest_y = s->cur_pic.f->data[0] + mb_x * 16 + mb_y * 16 * linesize[0]; s 1255 libavcodec/error_resilience.c dest_cb = s->cur_pic.f->data[1] + mb_x * 8 + mb_y * 8 * linesize[1]; s 1256 libavcodec/error_resilience.c dest_cr = s->cur_pic.f->data[2] + mb_x * 8 + mb_y * 8 * linesize[2]; s 1258 libavcodec/error_resilience.c dc_ptr = &s->dc_val[0][mb_x * 2 + mb_y * 2 * s->b8_stride]; s 1267 libavcodec/error_resilience.c dc_ptr[(n & 1) + (n >> 1) * s->b8_stride] = (dc + 4) >> 3; s 1270 libavcodec/error_resilience.c if (!s->cur_pic.f->data[2]) s 1281 libavcodec/error_resilience.c s->dc_val[1][mb_x + mb_y * s->mb_stride] = (dcu + 4) >> 3; s 1282 libavcodec/error_resilience.c s->dc_val[2][mb_x + mb_y * s->mb_stride] = (dcv + 4) >> 3; s 1287 libavcodec/error_resilience.c guess_dc(s, s->dc_val[0], s->mb_width*2, s->mb_height*2, s->b8_stride, 1); s 1288 libavcodec/error_resilience.c guess_dc(s, s->dc_val[1], s->mb_width , s->mb_height , s->mb_stride, 0); s 1289 libavcodec/error_resilience.c guess_dc(s, s->dc_val[2], s->mb_width , s->mb_height , s->mb_stride, 0); s 1293 libavcodec/error_resilience.c filter181(s->dc_val[0], s->mb_width * 2, s->mb_height * 2, s->b8_stride); s 1297 libavcodec/error_resilience.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 1298 libavcodec/error_resilience.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1300 libavcodec/error_resilience.c const int mb_xy = mb_x + mb_y * s->mb_stride; s 1301 libavcodec/error_resilience.c const int mb_type = s->cur_pic.mb_type[mb_xy]; s 1303 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1310 libavcodec/error_resilience.c dest_y = s->cur_pic.f->data[0] + mb_x * 16 + mb_y * 16 * linesize[0]; s 1311 libavcodec/error_resilience.c dest_cb = s->cur_pic.f->data[1] + mb_x * 8 + mb_y * 8 * linesize[1]; s 1312 libavcodec/error_resilience.c dest_cr = s->cur_pic.f->data[2] + mb_x * 8 + mb_y * 8 * linesize[2]; s 1313 libavcodec/error_resilience.c if (!s->cur_pic.f->data[2]) s 1316 libavcodec/error_resilience.c put_dc(s, dest_y, dest_cb, dest_cr, mb_x, mb_y); s 1321 libavcodec/error_resilience.c if (s->avctx->error_concealment & FF_EC_DEBLOCK) { s 1323 libavcodec/error_resilience.c h_block_filter(s, s->cur_pic.f->data[0], s->mb_width * 2, s 1324 libavcodec/error_resilience.c s->mb_height * 2, linesize[0], 1); s 1327 libavcodec/error_resilience.c v_block_filter(s, s->cur_pic.f->data[0], s->mb_width * 2, s 1328 libavcodec/error_resilience.c s->mb_height * 2, linesize[0], 1); s 1330 libavcodec/error_resilience.c if (s->cur_pic.f->data[2]) { s 1331 libavcodec/error_resilience.c h_block_filter(s, s->cur_pic.f->data[1], s->mb_width, s 1332 libavcodec/error_resilience.c s->mb_height, linesize[1], 0); s 1333 libavcodec/error_resilience.c h_block_filter(s, s->cur_pic.f->data[2], s->mb_width, s 1334 libavcodec/error_resilience.c s->mb_height, linesize[2], 0); s 1335 libavcodec/error_resilience.c v_block_filter(s, s->cur_pic.f->data[1], s->mb_width, s 1336 libavcodec/error_resilience.c s->mb_height, linesize[1], 0); s 1337 libavcodec/error_resilience.c v_block_filter(s, s->cur_pic.f->data[2], s->mb_width, s 1338 libavcodec/error_resilience.c s->mb_height, linesize[2], 0); s 1344 libavcodec/error_resilience.c for (i = 0; i < s->mb_num; i++) { s 1345 libavcodec/error_resilience.c const int mb_xy = s->mb_index2xy[i]; s 1346 libavcodec/error_resilience.c int error = s->error_status_table[mb_xy]; s 1348 libavcodec/error_resilience.c if (s->mbskip_table && s->cur_pic.f->pict_type != AV_PICTURE_TYPE_B && s 1350 libavcodec/error_resilience.c s->mbskip_table[mb_xy] = 0; s 1352 libavcodec/error_resilience.c if (s->mbintra_table) s 1353 libavcodec/error_resilience.c s->mbintra_table[mb_xy] = 1; s 1357 libavcodec/error_resilience.c av_buffer_unref(&s->ref_index_buf[i]); s 1358 libavcodec/error_resilience.c av_buffer_unref(&s->motion_val_buf[i]); s 1359 libavcodec/error_resilience.c s->cur_pic.ref_index[i] = NULL; s 1360 libavcodec/error_resilience.c s->cur_pic.motion_val[i] = NULL; s 1363 libavcodec/error_resilience.c memset(&s->cur_pic, 0, sizeof(ERPicture)); s 1364 libavcodec/error_resilience.c memset(&s->last_pic, 0, sizeof(ERPicture)); s 1365 libavcodec/error_resilience.c memset(&s->next_pic, 0, sizeof(ERPicture)); s 92 libavcodec/error_resilience.h void ff_er_frame_start(ERContext *s); s 93 libavcodec/error_resilience.h void ff_er_frame_end(ERContext *s); s 94 libavcodec/error_resilience.h void ff_er_add_slice(ERContext *s, int startx, int starty, int endx, int endy, s 58 libavcodec/escape124.c Escape124Context *s = avctx->priv_data; s 62 libavcodec/escape124.c s->num_superblocks = ((unsigned)avctx->width / 8) * s 65 libavcodec/escape124.c s->frame = av_frame_alloc(); s 66 libavcodec/escape124.c if (!s->frame) s 75 libavcodec/escape124.c Escape124Context *s = avctx->priv_data; s 78 libavcodec/escape124.c av_freep(&s->codebooks[i].blocks); s 80 libavcodec/escape124.c av_frame_free(&s->frame); s 139 libavcodec/escape124.c static MacroBlock decode_macroblock(Escape124Context* s, GetBitContext* gb, s 152 libavcodec/escape124.c depth = s->codebooks[*codebook_index].depth; s 160 libavcodec/escape124.c block_index += superblock_index << s->codebooks[1].depth; s 165 libavcodec/escape124.c if (block_index >= s->codebooks[*codebook_index].size) s 168 libavcodec/escape124.c return s->codebooks[*codebook_index].blocks[block_index]; s 203 libavcodec/escape124.c Escape124Context *s = avctx->priv_data; s 228 libavcodec/escape124.c if (get_bits_left(&gb) < 64 + s->num_superblocks * 23LL / 4320) s 237 libavcodec/escape124.c if (!s->frame->data[0]) s 243 libavcodec/escape124.c if ((ret = av_frame_ref(frame, s->frame)) < 0) s 271 libavcodec/escape124.c cb_size = s->num_superblocks << cb_depth; s 274 libavcodec/escape124.c if (s->num_superblocks >= INT_MAX >> cb_depth) { s 279 libavcodec/escape124.c av_freep(&s->codebooks[i].blocks); s 280 libavcodec/escape124.c s->codebooks[i] = unpack_codebook(&gb, cb_depth, cb_size); s 281 libavcodec/escape124.c if (!s->codebooks[i].blocks) s 291 libavcodec/escape124.c old_frame_data = (uint16_t*)s->frame->data[0]; s 292 libavcodec/escape124.c old_stride = s->frame->linesize[0] / 2; s 294 libavcodec/escape124.c for (superblock_index = 0; superblock_index < s->num_superblocks; s 315 libavcodec/escape124.c mb = decode_macroblock(s, &gb, &cb_index, superblock_index); s 337 libavcodec/escape124.c mb = decode_macroblock(s, &gb, &cb_index, s 344 libavcodec/escape124.c mb = decode_macroblock(s, &gb, &cb_index, superblock_index); s 369 libavcodec/escape124.c av_frame_unref(s->frame); s 370 libavcodec/escape124.c if ((ret = av_frame_ref(s->frame, frame)) < 0) s 118 libavcodec/escape130.c Escape130Context *s = avctx->priv_data; s 127 libavcodec/escape130.c s->old_y_avg = av_malloc(avctx->width * avctx->height / 4); s 128 libavcodec/escape130.c s->buf1 = av_malloc(avctx->width * avctx->height * 3 / 2); s 129 libavcodec/escape130.c s->buf2 = av_malloc(avctx->width * avctx->height * 3 / 2); s 130 libavcodec/escape130.c if (!s->old_y_avg || !s->buf1 || !s->buf2) { s 131 libavcodec/escape130.c av_freep(&s->old_y_avg); s 132 libavcodec/escape130.c av_freep(&s->buf1); s 133 libavcodec/escape130.c av_freep(&s->buf2); s 138 libavcodec/escape130.c s->linesize[0] = avctx->width; s 139 libavcodec/escape130.c s->linesize[1] = s 140 libavcodec/escape130.c s->linesize[2] = avctx->width / 2; s 142 libavcodec/escape130.c s->new_y = s->buf1; s 143 libavcodec/escape130.c s->new_u = s->new_y + avctx->width * avctx->height; s 144 libavcodec/escape130.c s->new_v = s->new_u + avctx->width * avctx->height / 4; s 145 libavcodec/escape130.c s->old_y = s->buf2; s 146 libavcodec/escape130.c s->old_u = s->old_y + avctx->width * avctx->height; s 147 libavcodec/escape130.c s->old_v = s->old_u + avctx->width * avctx->height / 4; s 148 libavcodec/escape130.c memset(s->old_y, 0, avctx->width * avctx->height); s 149 libavcodec/escape130.c memset(s->old_u, 0x10, avctx->width * avctx->height / 4); s 150 libavcodec/escape130.c memset(s->old_v, 0x10, avctx->width * avctx->height / 4); s 157 libavcodec/escape130.c Escape130Context *s = avctx->priv_data; s 159 libavcodec/escape130.c av_freep(&s->old_y_avg); s 160 libavcodec/escape130.c av_freep(&s->buf1); s 161 libavcodec/escape130.c av_freep(&s->buf2); s 196 libavcodec/escape130.c Escape130Context *s = avctx->priv_data; s 210 libavcodec/escape130.c uint8_t *ya = s->old_y_avg; s 225 libavcodec/escape130.c new_y = s->new_y; s 226 libavcodec/escape130.c new_cb = s->new_u; s 227 libavcodec/escape130.c new_cr = s->new_v; s 228 libavcodec/escape130.c new_y_stride = s->linesize[0]; s 229 libavcodec/escape130.c new_cb_stride = s->linesize[1]; s 230 libavcodec/escape130.c new_cr_stride = s->linesize[2]; s 231 libavcodec/escape130.c old_y = s->old_y; s 232 libavcodec/escape130.c old_cb = s->old_u; s 233 libavcodec/escape130.c old_cr = s->old_v; s 234 libavcodec/escape130.c old_y_stride = s->linesize[0]; s 235 libavcodec/escape130.c old_cb_stride = s->linesize[1]; s 236 libavcodec/escape130.c old_cr_stride = s->linesize[2]; s 316 libavcodec/escape130.c new_y = s->new_y; s 317 libavcodec/escape130.c new_cb = s->new_u; s 318 libavcodec/escape130.c new_cr = s->new_v; s 342 libavcodec/escape130.c FFSWAP(uint8_t*, s->old_y, s->new_y); s 343 libavcodec/escape130.c FFSWAP(uint8_t*, s->old_u, s->new_u); s 344 libavcodec/escape130.c FFSWAP(uint8_t*, s->old_v, s->new_v); s 227 libavcodec/exr.c static int zip_uncompress(EXRContext *s, const uint8_t *src, int compressed_size, s 238 libavcodec/exr.c s->dsp.predictor(td->tmp, uncompressed_size); s 239 libavcodec/exr.c s->dsp.reorder_pixels(td->uncompressed_data, td->tmp, uncompressed_size); s 248 libavcodec/exr.c const int8_t *s = src; s 255 libavcodec/exr.c count = *s++; s 265 libavcodec/exr.c *d++ = *s++; s 274 libavcodec/exr.c *d++ = *s; s 276 libavcodec/exr.c s++; s 453 libavcodec/exr.c s = out[-1]; \ s 456 libavcodec/exr.c *out++ = s; \ s 473 libavcodec/exr.c uint16_t s; s 690 libavcodec/exr.c static int piz_uncompress(EXRContext *s, const uint8_t *src, int ssize, s 734 libavcodec/exr.c for (i = 0; i < s->nb_channels; i++) { s 735 libavcodec/exr.c channel = &s->channels[i]; s 753 libavcodec/exr.c for (j = 0; j < s->nb_channels; j++) { s 754 libavcodec/exr.c channel = &s->channels[j]; s 764 libavcodec/exr.c s->bbdsp.bswap16_buf(out, in, td->xsize * pixel_half_size); s 775 libavcodec/exr.c static int pxr24_uncompress(EXRContext *s, const uint8_t *src, s 784 libavcodec/exr.c for (i = 0; i < s->nb_channels; i++) { s 785 libavcodec/exr.c if (s->channels[i].pixel_type == EXR_FLOAT) { s 787 libavcodec/exr.c } else if (s->channels[i].pixel_type == EXR_HALF) { s 804 libavcodec/exr.c for (c = 0; c < s->nb_channels; c++) { s 805 libavcodec/exr.c EXRChannel *channel = &s->channels[c]; s 837 libavcodec/exr.c ptr[1] = ptr[0] + s->xdelta; s 838 libavcodec/exr.c ptr[2] = ptr[1] + s->xdelta; s 839 libavcodec/exr.c ptr[3] = ptr[2] + s->xdelta; s 840 libavcodec/exr.c in = ptr[3] + s->xdelta; s 842 libavcodec/exr.c for (j = 0; j < s->xdelta; ++j) { s 859 libavcodec/exr.c static void unpack_14(const uint8_t b[14], uint16_t s[16]) s 865 libavcodec/exr.c s[ 0] = (b[0] << 8) | b[1]; s 867 libavcodec/exr.c s[ 4] = s[ 0] + ((((b[ 2] << 4) | (b[ 3] >> 4)) & 0x3f) << shift) - bias; s 868 libavcodec/exr.c s[ 8] = s[ 4] + ((((b[ 3] << 2) | (b[ 4] >> 6)) & 0x3f) << shift) - bias; s 869 libavcodec/exr.c s[12] = s[ 8] + ((b[ 4] & 0x3f) << shift) - bias; s 871 libavcodec/exr.c s[ 1] = s[ 0] + ((b[ 5] >> 2) << shift) - bias; s 872 libavcodec/exr.c s[ 5] = s[ 4] + ((((b[ 5] << 4) | (b[ 6] >> 4)) & 0x3f) << shift) - bias; s 873 libavcodec/exr.c s[ 9] = s[ 8] + ((((b[ 6] << 2) | (b[ 7] >> 6)) & 0x3f) << shift) - bias; s 874 libavcodec/exr.c s[13] = s[12] + ((b[ 7] & 0x3f) << shift) - bias; s 876 libavcodec/exr.c s[ 2] = s[ 1] + ((b[ 8] >> 2) << shift) - bias; s 877 libavcodec/exr.c s[ 6] = s[ 5] + ((((b[ 8] << 4) | (b[ 9] >> 4)) & 0x3f) << shift) - bias; s 878 libavcodec/exr.c s[10] = s[ 9] + ((((b[ 9] << 2) | (b[10] >> 6)) & 0x3f) << shift) - bias; s 879 libavcodec/exr.c s[14] = s[13] + ((b[10] & 0x3f) << shift) - bias; s 881 libavcodec/exr.c s[ 3] = s[ 2] + ((b[11] >> 2) << shift) - bias; s 882 libavcodec/exr.c s[ 7] = s[ 6] + ((((b[11] << 4) | (b[12] >> 4)) & 0x3f) << shift) - bias; s 883 libavcodec/exr.c s[11] = s[10] + ((((b[12] << 2) | (b[13] >> 6)) & 0x3f) << shift) - bias; s 884 libavcodec/exr.c s[15] = s[14] + ((b[13] & 0x3f) << shift) - bias; s 887 libavcodec/exr.c if (s[i] & 0x8000) s 888 libavcodec/exr.c s[i] &= 0x7fff; s 890 libavcodec/exr.c s[i] = ~s[i]; s 894 libavcodec/exr.c static void unpack_3(const uint8_t b[3], uint16_t s[16]) s 898 libavcodec/exr.c s[0] = (b[0] << 8) | b[1]; s 900 libavcodec/exr.c if (s[0] & 0x8000) s 901 libavcodec/exr.c s[0] &= 0x7fff; s 903 libavcodec/exr.c s[0] = ~s[0]; s 906 libavcodec/exr.c s[i] = s[0]; s 910 libavcodec/exr.c static int b44_uncompress(EXRContext *s, const uint8_t *src, int compressed_size, s 929 libavcodec/exr.c for (c = 0; c < s->nb_channels; c++) { s 930 libavcodec/exr.c if (s->channels[c].pixel_type == EXR_HALF) {/* B44 only compress half float data */ s 934 libavcodec/exr.c av_log(s, AV_LOG_ERROR, "Not enough data for B44A block: %d", stay_to_uncompress); s 944 libavcodec/exr.c av_log(s, AV_LOG_ERROR, "Not enough data for B44 block: %d", stay_to_uncompress); s 969 libavcodec/exr.c av_log(s, AV_LOG_ERROR, "Not enough data for uncompress channel: %d", stay_to_uncompress); s 990 libavcodec/exr.c EXRContext *s = avctx->priv_data; s 991 libavcodec/exr.c AVFrame *const p = s->picture; s 992 libavcodec/exr.c EXRThreadData *td = &s->thread_data[threadnr]; s 994 libavcodec/exr.c const uint8_t *buf = s->buf; s 1001 libavcodec/exr.c int step = s->desc->flags & AV_PIX_FMT_FLAG_FLOAT ? 4 : 2 * s->desc->nb_components; s 1002 libavcodec/exr.c int axmax = (avctx->width - (s->xmax + 1)) * step; /* nb pixel to add at the right of the datawindow */ s 1003 libavcodec/exr.c int bxmin = s->xmin * step; /* nb pixel to add at the left of the datawindow */ s 1004 libavcodec/exr.c int i, x, buf_size = s->buf_size; s 1006 libavcodec/exr.c float one_gamma = 1.0f / s->gamma; s 1007 libavcodec/exr.c avpriv_trc_function trc_func = avpriv_get_trc_function_from_trc(s->apply_trc_type); s 1010 libavcodec/exr.c line_offset = AV_RL64(s->gb.buffer + jobnr * 8); s 1012 libavcodec/exr.c if (s->is_tile) { s 1028 libavcodec/exr.c avpriv_report_missing_feature(s->avctx, "Subres tile before full res tile"); s 1032 libavcodec/exr.c if (s->xmin || s->ymin) { s 1033 libavcodec/exr.c avpriv_report_missing_feature(s->avctx, "Tiles with xmin/ymin"); s 1037 libavcodec/exr.c line = s->tile_attr.ySize * tile_y; s 1038 libavcodec/exr.c col = s->tile_attr.xSize * tile_x; s 1040 libavcodec/exr.c if (line < s->ymin || line > s->ymax || s 1041 libavcodec/exr.c col < s->xmin || col > s->xmax) s 1044 libavcodec/exr.c td->ysize = FFMIN(s->tile_attr.ySize, s->ydelta - tile_y * s->tile_attr.ySize); s 1045 libavcodec/exr.c td->xsize = FFMIN(s->tile_attr.xSize, s->xdelta - tile_x * s->tile_attr.xSize); s 1051 libavcodec/exr.c if ((col + td->xsize) != s->xdelta)/* not the last tile of the line */ s 1054 libavcodec/exr.c td->channel_line_size = td->xsize * s->current_channel_offset;/* uncompress size of one line */ s 1063 libavcodec/exr.c if (line < s->ymin || line > s->ymax) s 1070 libavcodec/exr.c td->ysize = FFMIN(s->scan_lines_per_block, s->ymax - line + 1); /* s->ydelta - line ?? */ s 1071 libavcodec/exr.c td->xsize = s->xdelta; s 1073 libavcodec/exr.c td->channel_line_size = td->xsize * s->current_channel_offset;/* uncompress size of one line */ s 1076 libavcodec/exr.c if ((s->compression == EXR_RAW && (data_size != uncompressed_size || s 1078 libavcodec/exr.c (s->compression != EXR_RAW && (data_size > uncompressed_size || s 1084 libavcodec/exr.c if (data_size < uncompressed_size || s->is_tile) { /* td->tmp is use for tile reorganization */ s 1098 libavcodec/exr.c switch (s->compression) { s 1101 libavcodec/exr.c ret = zip_uncompress(s, src, data_size, uncompressed_size, td); s 1104 libavcodec/exr.c ret = piz_uncompress(s, src, data_size, uncompressed_size, td); s 1107 libavcodec/exr.c ret = pxr24_uncompress(s, src, data_size, uncompressed_size, td); s 1110 libavcodec/exr.c ret = rle_uncompress(s, src, data_size, uncompressed_size, td); s 1114 libavcodec/exr.c ret = b44_uncompress(s, src, data_size, uncompressed_size, td); s 1124 libavcodec/exr.c if (!s->is_luma) { s 1125 libavcodec/exr.c channel_buffer[0] = src + td->xsize * s->channel_offsets[0]; s 1126 libavcodec/exr.c channel_buffer[1] = src + td->xsize * s->channel_offsets[1]; s 1127 libavcodec/exr.c channel_buffer[2] = src + td->xsize * s->channel_offsets[2]; s 1130 libavcodec/exr.c channel_buffer[0] = src + td->xsize * s->channel_offsets[1]; s 1133 libavcodec/exr.c if (s->channel_offsets[3] >= 0) s 1134 libavcodec/exr.c channel_buffer[3] = src + td->xsize * s->channel_offsets[3]; s 1136 libavcodec/exr.c if (s->desc->flags & AV_PIX_FMT_FLAG_FLOAT) { s 1139 libavcodec/exr.c int channel_count = s->channel_offsets[3] >= 0 ? 4 : rgb_channel_count; s 1140 libavcodec/exr.c if (s->is_luma) { s 1146 libavcodec/exr.c int plane = s->desc->comp[c].plane; s 1158 libavcodec/exr.c ptr_x += s->xmin; s 1160 libavcodec/exr.c if (s->pixel_type == EXR_FLOAT) { s 1177 libavcodec/exr.c } else if (s->pixel_type == EXR_HALF) { s 1181 libavcodec/exr.c *ptr_x++ = s->gamma_table[bytestream_get_le16(&src)]; s 1197 libavcodec/exr.c av_assert1(s->pixel_type == EXR_UINT); s 1198 libavcodec/exr.c ptr = p->data[0] + line * p->linesize[0] + (col * s->desc->nb_components * 2); s 1217 libavcodec/exr.c ptr_x += s->xmin * s->desc->nb_components; s 1254 libavcodec/exr.c static int check_header_variable(EXRContext *s, s 1261 libavcodec/exr.c if (bytestream2_get_bytes_left(&s->gb) >= minimum_length && s 1262 libavcodec/exr.c !strcmp(s->gb.buffer, value_name)) { s 1264 libavcodec/exr.c s->gb.buffer += strlen(value_name) + 1; s 1265 libavcodec/exr.c if (!strcmp(s->gb.buffer, value_type)) { s 1266 libavcodec/exr.c s->gb.buffer += strlen(value_type) + 1; s 1267 libavcodec/exr.c var_size = bytestream2_get_le32(&s->gb); s 1269 libavcodec/exr.c if (var_size > bytestream2_get_bytes_left(&s->gb)) s 1273 libavcodec/exr.c s->gb.buffer -= strlen(value_name) + 1; s 1274 libavcodec/exr.c av_log(s->avctx, AV_LOG_WARNING, s 1283 libavcodec/exr.c static int decode_header(EXRContext *s, AVFrame *frame) s 1291 libavcodec/exr.c s->current_channel_offset = 0; s 1292 libavcodec/exr.c s->xmin = ~0; s 1293 libavcodec/exr.c s->xmax = ~0; s 1294 libavcodec/exr.c s->ymin = ~0; s 1295 libavcodec/exr.c s->ymax = ~0; s 1296 libavcodec/exr.c s->xdelta = ~0; s 1297 libavcodec/exr.c s->ydelta = ~0; s 1298 libavcodec/exr.c s->channel_offsets[0] = -1; s 1299 libavcodec/exr.c s->channel_offsets[1] = -1; s 1300 libavcodec/exr.c s->channel_offsets[2] = -1; s 1301 libavcodec/exr.c s->channel_offsets[3] = -1; s 1302 libavcodec/exr.c s->pixel_type = EXR_UNKNOWN; s 1303 libavcodec/exr.c s->compression = EXR_UNKN; s 1304 libavcodec/exr.c s->nb_channels = 0; s 1305 libavcodec/exr.c s->w = 0; s 1306 libavcodec/exr.c s->h = 0; s 1307 libavcodec/exr.c s->tile_attr.xSize = -1; s 1308 libavcodec/exr.c s->tile_attr.ySize = -1; s 1309 libavcodec/exr.c s->is_tile = 0; s 1310 libavcodec/exr.c s->is_luma = 0; s 1312 libavcodec/exr.c if (bytestream2_get_bytes_left(&s->gb) < 10) { s 1313 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Header too short to parse.\n"); s 1317 libavcodec/exr.c magic_number = bytestream2_get_le32(&s->gb); s 1321 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Wrong magic number %d.\n", magic_number); s 1325 libavcodec/exr.c version = bytestream2_get_byte(&s->gb); s 1327 libavcodec/exr.c avpriv_report_missing_feature(s->avctx, "Version %d", version); s 1331 libavcodec/exr.c flags = bytestream2_get_le24(&s->gb); s 1334 libavcodec/exr.c s->is_tile = 1; s 1336 libavcodec/exr.c avpriv_report_missing_feature(s->avctx, "deep data"); s 1340 libavcodec/exr.c avpriv_report_missing_feature(s->avctx, "multipart"); s 1345 libavcodec/exr.c while (bytestream2_get_bytes_left(&s->gb) > 0 && *s->gb.buffer) { s 1347 libavcodec/exr.c if ((var_size = check_header_variable(s, "channels", s 1355 libavcodec/exr.c bytestream2_init(&ch_gb, s->gb.buffer, var_size); s 1363 libavcodec/exr.c if (strcmp(s->layer, "") != 0) { s 1364 libavcodec/exr.c if (strncmp(ch_gb.buffer, s->layer, strlen(s->layer)) == 0) { s 1366 libavcodec/exr.c av_log(s->avctx, AV_LOG_INFO, s 1368 libavcodec/exr.c ch_gb.buffer += strlen(s->layer); s 1373 libavcodec/exr.c av_log(s->avctx, AV_LOG_INFO, s 1385 libavcodec/exr.c s->is_luma = 0; s 1389 libavcodec/exr.c s->is_luma = 0; s 1392 libavcodec/exr.c s->is_luma = 1; s 1397 libavcodec/exr.c s->is_luma = 0; s 1401 libavcodec/exr.c av_log(s->avctx, AV_LOG_WARNING, s 1412 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Incomplete header.\n"); s 1419 libavcodec/exr.c avpriv_report_missing_feature(s->avctx, "Pixel type %d", s 1430 libavcodec/exr.c avpriv_report_missing_feature(s->avctx, s 1437 libavcodec/exr.c if (channel_index >= 0 && s->channel_offsets[channel_index] == -1) { /* channel has not been previously assigned */ s 1438 libavcodec/exr.c if (s->pixel_type != EXR_UNKNOWN && s 1439 libavcodec/exr.c s->pixel_type != current_pixel_type) { s 1440 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, s 1445 libavcodec/exr.c s->pixel_type = current_pixel_type; s 1446 libavcodec/exr.c s->channel_offsets[channel_index] = s->current_channel_offset; s 1448 libavcodec/exr.c av_log(s->avctx, AV_LOG_WARNING, s 1456 libavcodec/exr.c s->channels = av_realloc(s->channels, s 1457 libavcodec/exr.c ++s->nb_channels * sizeof(EXRChannel)); s 1458 libavcodec/exr.c if (!s->channels) { s 1462 libavcodec/exr.c channel = &s->channels[s->nb_channels - 1]; s 1468 libavcodec/exr.c s->current_channel_offset += 2; s 1470 libavcodec/exr.c s->current_channel_offset += 4; s 1476 libavcodec/exr.c if (!s->is_luma) {/* if we expected to have at least 3 channels */ s 1477 libavcodec/exr.c if (FFMIN3(s->channel_offsets[0], s 1478 libavcodec/exr.c s->channel_offsets[1], s 1479 libavcodec/exr.c s->channel_offsets[2]) < 0) { s 1480 libavcodec/exr.c if (s->channel_offsets[0] < 0) s 1481 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Missing red channel.\n"); s 1482 libavcodec/exr.c if (s->channel_offsets[1] < 0) s 1483 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Missing green channel.\n"); s 1484 libavcodec/exr.c if (s->channel_offsets[2] < 0) s 1485 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Missing blue channel.\n"); s 1492 libavcodec/exr.c s->gb.buffer = ch_gb.buffer + 1; s 1494 libavcodec/exr.c } else if ((var_size = check_header_variable(s, "dataWindow", "box2i", s 1501 libavcodec/exr.c s->xmin = bytestream2_get_le32(&s->gb); s 1502 libavcodec/exr.c s->ymin = bytestream2_get_le32(&s->gb); s 1503 libavcodec/exr.c s->xmax = bytestream2_get_le32(&s->gb); s 1504 libavcodec/exr.c s->ymax = bytestream2_get_le32(&s->gb); s 1505 libavcodec/exr.c s->xdelta = (s->xmax - s->xmin) + 1; s 1506 libavcodec/exr.c s->ydelta = (s->ymax - s->ymin) + 1; s 1509 libavcodec/exr.c } else if ((var_size = check_header_variable(s, "displayWindow", s 1516 libavcodec/exr.c bytestream2_skip(&s->gb, 8); s 1517 libavcodec/exr.c s->w = bytestream2_get_le32(&s->gb) + 1; s 1518 libavcodec/exr.c s->h = bytestream2_get_le32(&s->gb) + 1; s 1521 libavcodec/exr.c } else if ((var_size = check_header_variable(s, "lineOrder", s 1529 libavcodec/exr.c line_order = bytestream2_get_byte(&s->gb); s 1530 libavcodec/exr.c av_log(s->avctx, AV_LOG_DEBUG, "line order: %d.\n", line_order); s 1532 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Unknown line order.\n"); s 1538 libavcodec/exr.c } else if ((var_size = check_header_variable(s, "pixelAspectRatio", s 1545 libavcodec/exr.c sar = bytestream2_get_le32(&s->gb); s 1548 libavcodec/exr.c } else if ((var_size = check_header_variable(s, "compression", s 1555 libavcodec/exr.c if (s->compression == EXR_UNKN) s 1556 libavcodec/exr.c s->compression = bytestream2_get_byte(&s->gb); s 1558 libavcodec/exr.c av_log(s->avctx, AV_LOG_WARNING, s 1562 libavcodec/exr.c } else if ((var_size = check_header_variable(s, "tiles", s 1566 libavcodec/exr.c if (!s->is_tile) s 1567 libavcodec/exr.c av_log(s->avctx, AV_LOG_WARNING, s 1570 libavcodec/exr.c s->tile_attr.xSize = bytestream2_get_le32(&s->gb); s 1571 libavcodec/exr.c s->tile_attr.ySize = bytestream2_get_le32(&s->gb); s 1573 libavcodec/exr.c tileLevel = bytestream2_get_byte(&s->gb); s 1574 libavcodec/exr.c s->tile_attr.level_mode = tileLevel & 0x0f; s 1575 libavcodec/exr.c s->tile_attr.level_round = (tileLevel >> 4) & 0x0f; s 1577 libavcodec/exr.c if (s->tile_attr.level_mode >= EXR_TILE_LEVEL_UNKNOWN) { s 1578 libavcodec/exr.c avpriv_report_missing_feature(s->avctx, "Tile level mode %d", s 1579 libavcodec/exr.c s->tile_attr.level_mode); s 1584 libavcodec/exr.c if (s->tile_attr.level_round >= EXR_TILE_ROUND_UNKNOWN) { s 1585 libavcodec/exr.c avpriv_report_missing_feature(s->avctx, "Tile level round %d", s 1586 libavcodec/exr.c s->tile_attr.level_round); s 1592 libavcodec/exr.c } else if ((var_size = check_header_variable(s, "writer", s 1596 libavcodec/exr.c bytestream2_get_buffer(&s->gb, key, FFMIN(sizeof(key) - 1, var_size)); s 1603 libavcodec/exr.c if (bytestream2_get_bytes_left(&s->gb) <= 9) { s 1604 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Incomplete header\n"); s 1611 libavcodec/exr.c while (bytestream2_get_byte(&s->gb) != 0); s 1614 libavcodec/exr.c bytestream2_skip(&s->gb, bytestream2_get_le32(&s->gb)); s 1617 libavcodec/exr.c ff_set_sar(s->avctx, av_d2q(av_int2float(sar), 255)); s 1619 libavcodec/exr.c if (s->compression == EXR_UNKN) { s 1620 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Missing compression attribute.\n"); s 1625 libavcodec/exr.c if (s->is_tile) { s 1626 libavcodec/exr.c if (s->tile_attr.xSize < 1 || s->tile_attr.ySize < 1) { s 1627 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Invalid tile attribute.\n"); s 1633 libavcodec/exr.c if (bytestream2_get_bytes_left(&s->gb) <= 0) { s 1634 libavcodec/exr.c av_log(s->avctx, AV_LOG_ERROR, "Incomplete frame.\n"); s 1642 libavcodec/exr.c bytestream2_skip(&s->gb, 1); s 1652 libavcodec/exr.c EXRContext *s = avctx->priv_data; s 1665 libavcodec/exr.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 1667 libavcodec/exr.c if ((ret = decode_header(s, picture)) < 0) s 1670 libavcodec/exr.c switch (s->pixel_type) { s 1673 libavcodec/exr.c if (s->channel_offsets[3] >= 0) { s 1674 libavcodec/exr.c if (!s->is_luma) { s 1681 libavcodec/exr.c if (!s->is_luma) { s 1689 libavcodec/exr.c if (s->channel_offsets[3] >= 0) { s 1690 libavcodec/exr.c if (!s->is_luma) { s 1696 libavcodec/exr.c if (!s->is_luma) { s 1708 libavcodec/exr.c if (s->apply_trc_type != AVCOL_TRC_UNSPECIFIED) s 1709 libavcodec/exr.c avctx->color_trc = s->apply_trc_type; s 1711 libavcodec/exr.c switch (s->compression) { s 1715 libavcodec/exr.c s->scan_lines_per_block = 1; s 1719 libavcodec/exr.c s->scan_lines_per_block = 16; s 1724 libavcodec/exr.c s->scan_lines_per_block = 32; s 1727 libavcodec/exr.c avpriv_report_missing_feature(avctx, "Compression %d", s->compression); s 1733 libavcodec/exr.c if (s->xmin > s->xmax || s 1734 libavcodec/exr.c s->ymin > s->ymax || s 1735 libavcodec/exr.c s->xdelta != s->xmax - s->xmin + 1 || s 1736 libavcodec/exr.c s->xmax >= s->w || s 1737 libavcodec/exr.c s->ymax >= s->h) { s 1742 libavcodec/exr.c if ((ret = ff_set_dimensions(avctx, s->w, s->h)) < 0) s 1745 libavcodec/exr.c s->desc = av_pix_fmt_desc_get(avctx->pix_fmt); s 1746 libavcodec/exr.c if (!s->desc) s 1749 libavcodec/exr.c if (s->desc->flags & AV_PIX_FMT_FLAG_FLOAT) { s 1750 libavcodec/exr.c planes = s->desc->nb_components; s 1754 libavcodec/exr.c out_line_size = avctx->width * 2 * s->desc->nb_components; s 1757 libavcodec/exr.c if (s->is_tile) { s 1758 libavcodec/exr.c nb_blocks = ((s->xdelta + s->tile_attr.xSize - 1) / s->tile_attr.xSize) * s 1759 libavcodec/exr.c ((s->ydelta + s->tile_attr.ySize - 1) / s->tile_attr.ySize); s 1761 libavcodec/exr.c nb_blocks = (s->ydelta + s->scan_lines_per_block - 1) / s 1762 libavcodec/exr.c s->scan_lines_per_block; s 1768 libavcodec/exr.c if (bytestream2_get_bytes_left(&s->gb) < nb_blocks * 8) s 1772 libavcodec/exr.c if (!s->is_tile && bytestream2_peek_le64(&s->gb) == 0) { s 1773 libavcodec/exr.c av_log(s->avctx, AV_LOG_DEBUG, "recreating invalid scanline offset table\n"); s 1775 libavcodec/exr.c start_offset_table = bytestream2_tell(&s->gb); s 1784 libavcodec/exr.c bytestream2_seek(&s->gb, start_next_scanline + 4, SEEK_SET);/* skip line number */ s 1785 libavcodec/exr.c start_next_scanline += (bytestream2_get_le32(&s->gb) + 8); s 1787 libavcodec/exr.c bytestream2_seek(&s->gb, start_offset_table, SEEK_SET); s 1791 libavcodec/exr.c s->buf = avpkt->data; s 1792 libavcodec/exr.c s->buf_size = avpkt->size; s 1797 libavcodec/exr.c for (y = 0; y < s->ymin; y++) { s 1803 libavcodec/exr.c s->picture = picture; s 1805 libavcodec/exr.c avctx->execute2(avctx, decode_block, s->thread_data, NULL, nb_blocks); s 1809 libavcodec/exr.c ptr = picture->data[i] + ((s->ymax+1) * picture->linesize[i]); s 1810 libavcodec/exr.c for (y = s->ymax + 1; y < avctx->height; y++) { s 1824 libavcodec/exr.c EXRContext *s = avctx->priv_data; s 1827 libavcodec/exr.c float one_gamma = 1.0f / s->gamma; s 1830 libavcodec/exr.c s->avctx = avctx; s 1832 libavcodec/exr.c ff_exrdsp_init(&s->dsp); s 1835 libavcodec/exr.c ff_bswapdsp_init(&s->bbdsp); s 1838 libavcodec/exr.c trc_func = avpriv_get_trc_function_from_trc(s->apply_trc_type); s 1843 libavcodec/exr.c s->gamma_table[i] = t; s 1848 libavcodec/exr.c s->gamma_table[i] = exr_half2float(i); s 1855 libavcodec/exr.c s->gamma_table[i] = t; s 1858 libavcodec/exr.c s->gamma_table[i] = t; s 1865 libavcodec/exr.c s->thread_data = av_mallocz_array(avctx->thread_count, sizeof(EXRThreadData)); s 1866 libavcodec/exr.c if (!s->thread_data) s 1874 libavcodec/exr.c EXRContext *s = avctx->priv_data; s 1877 libavcodec/exr.c EXRThreadData *td = &s->thread_data[i]; s 1884 libavcodec/exr.c av_freep(&s->thread_data); s 1885 libavcodec/exr.c av_freep(&s->channels); s 32 libavcodec/exrdsp.c uint8_t *s = dst; s 36 libavcodec/exrdsp.c *(s++) = *(t1++); s 37 libavcodec/exrdsp.c *(s++) = *(t2++); s 67 libavcodec/extract_extradata_bsf.c ExtractExtradataContext *s = ctx->priv_data; s 73 libavcodec/extract_extradata_bsf.c ret = ff_av1_packet_split(&s->av1_pkt, pkt->data, pkt->size, ctx); s 77 libavcodec/extract_extradata_bsf.c for (i = 0; i < s->av1_pkt.nb_obus; i++) { s 78 libavcodec/extract_extradata_bsf.c AV1OBU *obu = &s->av1_pkt.obus[i]; s 83 libavcodec/extract_extradata_bsf.c } else if (s->remove) { s 93 libavcodec/extract_extradata_bsf.c if (s->remove) { s 112 libavcodec/extract_extradata_bsf.c if (s->remove) s 115 libavcodec/extract_extradata_bsf.c for (i = 0; i < s->av1_pkt.nb_obus; i++) { s 116 libavcodec/extract_extradata_bsf.c AV1OBU *obu = &s->av1_pkt.obus[i]; s 120 libavcodec/extract_extradata_bsf.c } else if (s->remove) { s 125 libavcodec/extract_extradata_bsf.c if (s->remove) { s 146 libavcodec/extract_extradata_bsf.c ExtractExtradataContext *s = ctx->priv_data; s 161 libavcodec/extract_extradata_bsf.c ret = ff_h2645_packet_split(&s->h2645_pkt, pkt->data, pkt->size, s 166 libavcodec/extract_extradata_bsf.c for (i = 0; i < s->h2645_pkt.nb_nals; i++) { s 167 libavcodec/extract_extradata_bsf.c H2645NAL *nal = &s->h2645_pkt.nals[i]; s 176 libavcodec/extract_extradata_bsf.c } else if (s->remove) { s 188 libavcodec/extract_extradata_bsf.c if (s->remove) { s 207 libavcodec/extract_extradata_bsf.c if (s->remove) s 210 libavcodec/extract_extradata_bsf.c for (i = 0; i < s->h2645_pkt.nb_nals; i++) { s 211 libavcodec/extract_extradata_bsf.c H2645NAL *nal = &s->h2645_pkt.nals[i]; s 216 libavcodec/extract_extradata_bsf.c } else if (s->remove) { s 222 libavcodec/extract_extradata_bsf.c if (s->remove) { s 236 libavcodec/extract_extradata_bsf.c ExtractExtradataContext *s = ctx->priv_data; s 260 libavcodec/extract_extradata_bsf.c if (s->remove) { s 272 libavcodec/extract_extradata_bsf.c ExtractExtradataContext *s = ctx->priv_data; s 290 libavcodec/extract_extradata_bsf.c if (s->remove) { s 304 libavcodec/extract_extradata_bsf.c ExtractExtradataContext *s = ctx->priv_data; s 320 libavcodec/extract_extradata_bsf.c if (s->remove) { s 349 libavcodec/extract_extradata_bsf.c ExtractExtradataContext *s = ctx->priv_data; s 354 libavcodec/extract_extradata_bsf.c s->extract = extract_tab[i].extract; s 358 libavcodec/extract_extradata_bsf.c if (!s->extract) s 366 libavcodec/extract_extradata_bsf.c ExtractExtradataContext *s = ctx->priv_data; s 375 libavcodec/extract_extradata_bsf.c ret = s->extract(ctx, pkt, &extradata, &extradata_size); s 397 libavcodec/extract_extradata_bsf.c ExtractExtradataContext *s = ctx->priv_data; s 398 libavcodec/extract_extradata_bsf.c ff_av1_packet_uninit(&s->av1_pkt); s 399 libavcodec/extract_extradata_bsf.c ff_h2645_packet_uninit(&s->h2645_pkt); s 60 libavcodec/fft-internal.h void ff_mdct_calcw_c(FFTContext *s, FFTDouble *output, const FFTSample *input); s 90 libavcodec/fft-internal.h void ff_imdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input); s 91 libavcodec/fft-internal.h void ff_imdct_half_c(FFTContext *s, FFTSample *output, const FFTSample *input); s 92 libavcodec/fft-internal.h void ff_mdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input); s 101 libavcodec/fft.h void (*fft_permute)(struct FFTContext *s, FFTComplex *z); s 106 libavcodec/fft.h void (*fft_calc)(struct FFTContext *s, FFTComplex *z); s 107 libavcodec/fft.h void (*imdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input); s 108 libavcodec/fft.h void (*imdct_half)(struct FFTContext *s, FFTSample *output, const FFTSample *input); s 109 libavcodec/fft.h void (*mdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input); s 110 libavcodec/fft.h void (*mdct_calcw)(struct FFTContext *s, FFTDouble *output, const FFTSample *input); s 157 libavcodec/fft.h int ff_fft_init(FFTContext *s, int nbits, int inverse); s 159 libavcodec/fft.h void ff_fft_init_aarch64(FFTContext *s); s 160 libavcodec/fft.h void ff_fft_init_x86(FFTContext *s); s 161 libavcodec/fft.h void ff_fft_init_arm(FFTContext *s); s 162 libavcodec/fft.h void ff_fft_init_mips(FFTContext *s); s 163 libavcodec/fft.h void ff_fft_init_ppc(FFTContext *s); s 165 libavcodec/fft.h void ff_fft_fixed_init_arm(FFTContext *s); s 167 libavcodec/fft.h void ff_fft_end(FFTContext *s); s 172 libavcodec/fft.h int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale); s 173 libavcodec/fft.h void ff_mdct_end(FFTContext *s); s 144 libavcodec/fft_template.c static void fft_permute_c(FFTContext *s, FFTComplex *z); s 145 libavcodec/fft_template.c static void fft_calc_c(FFTContext *s, FFTComplex *z); s 181 libavcodec/fft_template.c static av_cold void fft_perm_avx(FFTContext *s) s 184 libavcodec/fft_template.c int n = 1 << s->nbits; s 190 libavcodec/fft_template.c s->revtab[-split_radix_permutation(i + k, n, s->inverse) & (n - 1)] = s 197 libavcodec/fft_template.c s->revtab[-split_radix_permutation(i + k, n, s->inverse) & (n - 1)] = j; s 203 libavcodec/fft_template.c av_cold int ff_fft_init(FFTContext *s, int nbits, int inverse) s 207 libavcodec/fft_template.c s->revtab = NULL; s 208 libavcodec/fft_template.c s->revtab32 = NULL; s 212 libavcodec/fft_template.c s->nbits = nbits; s 216 libavcodec/fft_template.c s->revtab = av_malloc(n * sizeof(uint16_t)); s 217 libavcodec/fft_template.c if (!s->revtab) s 220 libavcodec/fft_template.c s->revtab32 = av_malloc(n * sizeof(uint32_t)); s 221 libavcodec/fft_template.c if (!s->revtab32) s 224 libavcodec/fft_template.c s->tmp_buf = av_malloc(n * sizeof(FFTComplex)); s 225 libavcodec/fft_template.c if (!s->tmp_buf) s 227 libavcodec/fft_template.c s->inverse = inverse; s 228 libavcodec/fft_template.c s->fft_permutation = FF_FFT_PERM_DEFAULT; s 230 libavcodec/fft_template.c s->fft_permute = fft_permute_c; s 231 libavcodec/fft_template.c s->fft_calc = fft_calc_c; s 233 libavcodec/fft_template.c s->imdct_calc = ff_imdct_calc_c; s 234 libavcodec/fft_template.c s->imdct_half = ff_imdct_half_c; s 235 libavcodec/fft_template.c s->mdct_calc = ff_mdct_calc_c; s 245 libavcodec/fft_template.c if (ARCH_AARCH64) ff_fft_init_aarch64(s); s 246 libavcodec/fft_template.c if (ARCH_ARM) ff_fft_init_arm(s); s 247 libavcodec/fft_template.c if (ARCH_PPC) ff_fft_init_ppc(s); s 248 libavcodec/fft_template.c if (ARCH_X86) ff_fft_init_x86(s); s 249 libavcodec/fft_template.c if (CONFIG_MDCT) s->mdct_calcw = s->mdct_calc; s 250 libavcodec/fft_template.c if (HAVE_MIPSFPU) ff_fft_init_mips(s); s 252 libavcodec/fft_template.c if (CONFIG_MDCT) s->mdct_calcw = ff_mdct_calcw_c; s 253 libavcodec/fft_template.c if (ARCH_ARM) ff_fft_fixed_init_arm(s); s 261 libavcodec/fft_template.c if (s->fft_permutation == FF_FFT_PERM_AVX) { s 262 libavcodec/fft_template.c fft_perm_avx(s); s 269 libavcodec/fft_template.c k = -split_radix_permutation(i, n, s->inverse) & (n - 1);\ s 270 libavcodec/fft_template.c s->revtab##num[k] = j;\ s 278 libavcodec/fft_template.c k = -split_radix_permutation(i, n, s->inverse) & (n - 1);\ s 279 libavcodec/fft_template.c s->revtab##num[k] = j;\ s 284 libavcodec/fft_template.c if (s->fft_permutation == FF_FFT_PERM_SWAP_LSBS) {\ s 291 libavcodec/fft_template.c if (s->revtab) s 293 libavcodec/fft_template.c if (s->revtab32) s 303 libavcodec/fft_template.c av_freep(&s->revtab); s 304 libavcodec/fft_template.c av_freep(&s->revtab32); s 305 libavcodec/fft_template.c av_freep(&s->tmp_buf); s 309 libavcodec/fft_template.c static void fft_permute_c(FFTContext *s, FFTComplex *z) s 312 libavcodec/fft_template.c const uint16_t *revtab = s->revtab; s 313 libavcodec/fft_template.c const uint32_t *revtab32 = s->revtab32; s 314 libavcodec/fft_template.c np = 1 << s->nbits; s 317 libavcodec/fft_template.c for(j=0;j<np;j++) s->tmp_buf[revtab[j]] = z[j]; s 319 libavcodec/fft_template.c for(j=0;j<np;j++) s->tmp_buf[revtab32[j]] = z[j]; s 321 libavcodec/fft_template.c memcpy(z, s->tmp_buf, np * sizeof(FFTComplex)); s 324 libavcodec/fft_template.c av_cold void ff_fft_end(FFTContext *s) s 326 libavcodec/fft_template.c av_freep(&s->revtab); s 327 libavcodec/fft_template.c av_freep(&s->revtab32); s 328 libavcodec/fft_template.c av_freep(&s->tmp_buf); s 333 libavcodec/fft_template.c static void fft_calc_c(FFTContext *s, FFTComplex *z) { s 339 libavcodec/fft_template.c const int fft_size = (1 << s->nbits); s 342 libavcodec/fft_template.c num_transforms = (0x2aab >> (16 - s->nbits)) | 1; s 425 libavcodec/fft_template.c for (nbits=4; nbits<=s->nbits; nbits++){ s 635 libavcodec/fft_template.c static void fft_calc_c(FFTContext *s, FFTComplex *z) s 637 libavcodec/fft_template.c fft_dispatch[s->nbits-2](z); s 43 libavcodec/ffv1.c FFV1Context *s = avctx->priv_data; s 48 libavcodec/ffv1.c s->avctx = avctx; s 49 libavcodec/ffv1.c s->flags = avctx->flags; s 51 libavcodec/ffv1.c s->picture.f = av_frame_alloc(); s 52 libavcodec/ffv1.c s->last_picture.f = av_frame_alloc(); s 53 libavcodec/ffv1.c if (!s->picture.f || !s->last_picture.f) s 56 libavcodec/ffv1.c s->width = avctx->width; s 57 libavcodec/ffv1.c s->height = avctx->height; s 60 libavcodec/ffv1.c s->num_h_slices = 1; s 61 libavcodec/ffv1.c s->num_v_slices = 1; s 211 libavcodec/ffv1.c FFV1Context *s = avctx->priv_data; s 214 libavcodec/ffv1.c if (s->picture.f) s 215 libavcodec/ffv1.c ff_thread_release_buffer(avctx, &s->picture); s 216 libavcodec/ffv1.c av_frame_free(&s->picture.f); s 218 libavcodec/ffv1.c if (s->last_picture.f) s 219 libavcodec/ffv1.c ff_thread_release_buffer(avctx, &s->last_picture); s 220 libavcodec/ffv1.c av_frame_free(&s->last_picture.f); s 222 libavcodec/ffv1.c for (j = 0; j < s->max_slice_count; j++) { s 223 libavcodec/ffv1.c FFV1Context *fs = s->slice_context[j]; s 224 libavcodec/ffv1.c for (i = 0; i < s->plane_count; i++) { s 235 libavcodec/ffv1.c for (j = 0; j < s->quant_table_count; j++) { s 236 libavcodec/ffv1.c av_freep(&s->initial_states[j]); s 237 libavcodec/ffv1.c for (i = 0; i < s->max_slice_count; i++) { s 238 libavcodec/ffv1.c FFV1Context *sf = s->slice_context[i]; s 241 libavcodec/ffv1.c av_freep(&s->rc_stat2[j]); s 244 libavcodec/ffv1.c for (i = 0; i < s->max_slice_count; i++) s 245 libavcodec/ffv1.c av_freep(&s->slice_context[i]); s 95 libavcodec/ffv1dec.c static int is_input_end(FFV1Context *s) s 97 libavcodec/ffv1dec.c if (s->ac != AC_GOLOMB_RICE) { s 98 libavcodec/ffv1dec.c RangeCoder *const c = &s->c; s 102 libavcodec/ffv1dec.c if (get_bits_left(&s->gb) < 1) s 118 libavcodec/ffv1dec.c static int decode_plane(FFV1Context *s, uint8_t *src, s 124 libavcodec/ffv1dec.c sample[0] = s->sample_buffer + 3; s 125 libavcodec/ffv1dec.c sample[1] = s->sample_buffer + w + 6 + 3; s 127 libavcodec/ffv1dec.c s->run_index = 0; s 129 libavcodec/ffv1dec.c memset(s->sample_buffer, 0, 2 * (w + 6) * sizeof(*s->sample_buffer)); s 140 libavcodec/ffv1dec.c if (s->avctx->bits_per_raw_sample <= 8) { s 141 libavcodec/ffv1dec.c int ret = decode_line(s, w, sample, plane_index, 8); s 147 libavcodec/ffv1dec.c int ret = decode_line(s, w, sample, plane_index, s->avctx->bits_per_raw_sample); s 150 libavcodec/ffv1dec.c if (s->packed_at_lsb) { s 156 libavcodec/ffv1dec.c ((uint16_t*)(src + stride*y))[x*pixel_stride] = sample[1][x] << (16 - s->avctx->bits_per_raw_sample) | ((uint16_t **)sample)[1][x] >> (2 * s->avctx->bits_per_raw_sample - 16); s 23 libavcodec/ffv1dec_template.c static av_always_inline int RENAME(decode_line)(FFV1Context *s, int w, s 27 libavcodec/ffv1dec_template.c PlaneContext *const p = &s->plane[plane_index]; s 28 libavcodec/ffv1dec_template.c RangeCoder *const c = &s->c; s 32 libavcodec/ffv1dec_template.c int run_index = s->run_index; s 34 libavcodec/ffv1dec_template.c if (is_input_end(s)) s 37 libavcodec/ffv1dec_template.c if (s->slice_coding_mode == 1) { s 54 libavcodec/ffv1dec_template.c if (is_input_end(s)) s 67 libavcodec/ffv1dec_template.c if (s->ac != AC_GOLOMB_RICE) { s 75 libavcodec/ffv1dec_template.c if (get_bits1(&s->gb)) { s 81 libavcodec/ffv1dec_template.c run_count = get_bits(&s->gb, ff_log2_run[run_index]); s 106 libavcodec/ffv1dec_template.c diff = get_vlc_symbol(&s->gb, &p->vlc_state[context], s 113 libavcodec/ffv1dec_template.c diff = get_vlc_symbol(&s->gb, &p->vlc_state[context], bits); s 115 libavcodec/ffv1dec_template.c ff_dlog(s->avctx, "count:%d index:%d, mode:%d, x:%d pos:%d\n", s 116 libavcodec/ffv1dec_template.c run_count, run_index, run_mode, x, get_bits_count(&s->gb)); s 124 libavcodec/ffv1dec_template.c s->run_index = run_index; s 128 libavcodec/ffv1dec_template.c static int RENAME(decode_rgb_frame)(FFV1Context *s, uint8_t *src[4], int w, int h, int stride[4]) s 132 libavcodec/ffv1dec_template.c int lbd = s->avctx->bits_per_raw_sample <= 8; s 133 libavcodec/ffv1dec_template.c int bits = s->avctx->bits_per_raw_sample > 0 ? s->avctx->bits_per_raw_sample : 8; s 135 libavcodec/ffv1dec_template.c int transparency = s->transparency; s 138 libavcodec/ffv1dec_template.c sample[x][0] = RENAME(s->sample_buffer) + x * 2 * (w + 6) + 3; s 139 libavcodec/ffv1dec_template.c sample[x][1] = RENAME(s->sample_buffer) + (x * 2 + 1) * (w + 6) + 3; s 142 libavcodec/ffv1dec_template.c s->run_index = 0; s 144 libavcodec/ffv1dec_template.c memset(RENAME(s->sample_buffer), 0, 8 * (w + 6) * sizeof(*RENAME(s->sample_buffer))); s 156 libavcodec/ffv1dec_template.c if (lbd && s->slice_coding_mode == 0) s 157 libavcodec/ffv1dec_template.c ret = RENAME(decode_line)(s, w, sample[p], (p + 1)/2, 9); s 159 libavcodec/ffv1dec_template.c ret = RENAME(decode_line)(s, w, sample[p], (p + 1)/2, bits + (s->slice_coding_mode != 1)); s 169 libavcodec/ffv1dec_template.c if (s->slice_coding_mode != 1) { s 172 libavcodec/ffv1dec_template.c g -= (b * s->slice_rct_by_coef + r * s->slice_rct_ry_coef) >> 2; s 273 libavcodec/ffv1enc.c static int encode_plane(FFV1Context *s, uint8_t *src, int w, int h, s 277 libavcodec/ffv1enc.c const int ring_size = s->context_model ? 3 : 2; s 279 libavcodec/ffv1enc.c s->run_index = 0; s 281 libavcodec/ffv1enc.c memset(s->sample_buffer, 0, ring_size * (w + 6) * sizeof(*s->sample_buffer)); s 285 libavcodec/ffv1enc.c sample[i] = s->sample_buffer + (w + 6) * ((h + i - y) % ring_size) + 3; s 289 libavcodec/ffv1enc.c if (s->bits_per_raw_sample <= 8) { s 292 libavcodec/ffv1enc.c if((ret = encode_line(s, w, sample, plane_index, 8)) < 0) s 295 libavcodec/ffv1enc.c if (s->packed_at_lsb) { s 301 libavcodec/ffv1enc.c sample[0][x] = ((uint16_t*)(src + stride*y))[x] >> (16 - s->bits_per_raw_sample); s 304 libavcodec/ffv1enc.c if((ret = encode_line(s, w, sample, plane_index, s->bits_per_raw_sample)) < 0) s 466 libavcodec/ffv1enc.c static int sort_stt(FFV1Context *s, uint8_t stt[256]) s 476 libavcodec/ffv1enc.c s->rc_stat[old][0] * -log2((256 - (new)) / 256.0) + \ s 477 libavcodec/ffv1enc.c s->rc_stat[old][1] * -log2((new) / 256.0) s 487 libavcodec/ffv1enc.c FFSWAP(int, s->rc_stat[i][0], s->rc_stat[i2][0]); s 488 libavcodec/ffv1enc.c FFSWAP(int, s->rc_stat[i][1], s->rc_stat[i2][1]); s 491 libavcodec/ffv1enc.c FFSWAP(int, s->rc_stat[256 - i][0], s->rc_stat[256 - i2][0]); s 492 libavcodec/ffv1enc.c FFSWAP(int, s->rc_stat[256 - i][1], s->rc_stat[256 - i2][1]); s 516 libavcodec/ffv1enc.c FFV1Context *s = avctx->priv_data; s 523 libavcodec/ffv1enc.c s->version = 0; s 527 libavcodec/ffv1enc.c s->version = FFMAX(s->version, 2); s 531 libavcodec/ffv1enc.c s->version = FFMAX(s->version, 2); s 533 libavcodec/ffv1enc.c if (avctx->level <= 0 && s->version == 2) { s 534 libavcodec/ffv1enc.c s->version = 3; s 537 libavcodec/ffv1enc.c if (avctx->level < s->version) { s 538 libavcodec/ffv1enc.c av_log(avctx, AV_LOG_ERROR, "Version %d needed for requested features but %d requested\n", s->version, avctx->level); s 541 libavcodec/ffv1enc.c s->version = avctx->level; s 544 libavcodec/ffv1enc.c if (s->ec < 0) { s 545 libavcodec/ffv1enc.c s->ec = (s->version >= 3); s 549 libavcodec/ffv1enc.c if (s->ec) s 550 libavcodec/ffv1enc.c s->version = FFMAX(s->version, 3); s 552 libavcodec/ffv1enc.c if ((s->version == 2 || s->version>3) && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { s 560 libavcodec/ffv1enc.c s->ac = avctx->coder_type > 0 ? AC_RANGE_CUSTOM_TAB : AC_GOLOMB_RICE; s 564 libavcodec/ffv1enc.c if (s->ac == 1) // Compatbility with common command line usage s 565 libavcodec/ffv1enc.c s->ac = AC_RANGE_CUSTOM_TAB; s 566 libavcodec/ffv1enc.c else if (s->ac == AC_RANGE_DEFAULT_TAB_FORCE) s 567 libavcodec/ffv1enc.c s->ac = AC_RANGE_DEFAULT_TAB; s 569 libavcodec/ffv1enc.c s->plane_count = 3; s 579 libavcodec/ffv1enc.c s->bits_per_raw_sample = 9; s 588 libavcodec/ffv1enc.c if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) s 589 libavcodec/ffv1enc.c s->bits_per_raw_sample = 10; s 595 libavcodec/ffv1enc.c if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) s 596 libavcodec/ffv1enc.c s->bits_per_raw_sample = 12; s 600 libavcodec/ffv1enc.c if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) s 601 libavcodec/ffv1enc.c s->bits_per_raw_sample = 14; s 602 libavcodec/ffv1enc.c s->packed_at_lsb = 1; s 610 libavcodec/ffv1enc.c if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) { s 611 libavcodec/ffv1enc.c s->bits_per_raw_sample = 16; s 612 libavcodec/ffv1enc.c } else if (!s->bits_per_raw_sample) { s 613 libavcodec/ffv1enc.c s->bits_per_raw_sample = avctx->bits_per_raw_sample; s 615 libavcodec/ffv1enc.c if (s->bits_per_raw_sample <= 8) { s 619 libavcodec/ffv1enc.c s->version = FFMAX(s->version, 1); s 631 libavcodec/ffv1enc.c s->chroma_planes = desc->nb_components < 3 ? 0 : 1; s 632 libavcodec/ffv1enc.c s->colorspace = 0; s 633 libavcodec/ffv1enc.c s->transparency = !!(desc->flags & AV_PIX_FMT_FLAG_ALPHA); s 634 libavcodec/ffv1enc.c if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) s 635 libavcodec/ffv1enc.c s->bits_per_raw_sample = 8; s 636 libavcodec/ffv1enc.c else if (!s->bits_per_raw_sample) s 637 libavcodec/ffv1enc.c s->bits_per_raw_sample = 8; s 640 libavcodec/ffv1enc.c s->colorspace = 1; s 641 libavcodec/ffv1enc.c s->transparency = 1; s 642 libavcodec/ffv1enc.c s->chroma_planes = 1; s 643 libavcodec/ffv1enc.c s->bits_per_raw_sample = 8; s 646 libavcodec/ffv1enc.c s->colorspace = 1; s 647 libavcodec/ffv1enc.c s->transparency = 1; s 648 libavcodec/ffv1enc.c s->chroma_planes = 1; s 649 libavcodec/ffv1enc.c s->bits_per_raw_sample = 16; s 650 libavcodec/ffv1enc.c s->use32bit = 1; s 651 libavcodec/ffv1enc.c s->version = FFMAX(s->version, 1); s 654 libavcodec/ffv1enc.c s->colorspace = 1; s 655 libavcodec/ffv1enc.c s->chroma_planes = 1; s 656 libavcodec/ffv1enc.c s->bits_per_raw_sample = 16; s 657 libavcodec/ffv1enc.c s->use32bit = 1; s 658 libavcodec/ffv1enc.c s->version = FFMAX(s->version, 1); s 661 libavcodec/ffv1enc.c s->colorspace = 1; s 662 libavcodec/ffv1enc.c s->chroma_planes = 1; s 663 libavcodec/ffv1enc.c s->bits_per_raw_sample = 8; s 667 libavcodec/ffv1enc.c s->bits_per_raw_sample = 9; s 670 libavcodec/ffv1enc.c if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) s 671 libavcodec/ffv1enc.c s->bits_per_raw_sample = 10; s 674 libavcodec/ffv1enc.c if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) s 675 libavcodec/ffv1enc.c s->bits_per_raw_sample = 12; s 677 libavcodec/ffv1enc.c if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) s 678 libavcodec/ffv1enc.c s->bits_per_raw_sample = 14; s 681 libavcodec/ffv1enc.c if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) s 682 libavcodec/ffv1enc.c s->bits_per_raw_sample = 16; s 683 libavcodec/ffv1enc.c else if (!s->bits_per_raw_sample) s 684 libavcodec/ffv1enc.c s->bits_per_raw_sample = avctx->bits_per_raw_sample; s 685 libavcodec/ffv1enc.c s->transparency = !!(desc->flags & AV_PIX_FMT_FLAG_ALPHA); s 686 libavcodec/ffv1enc.c s->colorspace = 1; s 687 libavcodec/ffv1enc.c s->chroma_planes = 1; s 688 libavcodec/ffv1enc.c if (s->bits_per_raw_sample >= 16) { s 689 libavcodec/ffv1enc.c s->use32bit = 1; s 691 libavcodec/ffv1enc.c s->version = FFMAX(s->version, 1); s 697 libavcodec/ffv1enc.c av_assert0(s->bits_per_raw_sample >= 8); s 699 libavcodec/ffv1enc.c if (s->bits_per_raw_sample > 8) { s 700 libavcodec/ffv1enc.c if (s->ac == AC_GOLOMB_RICE) { s 703 libavcodec/ffv1enc.c s->ac = AC_RANGE_CUSTOM_TAB; s 709 libavcodec/ffv1enc.c s->context_model = avctx->context_model; s 717 libavcodec/ffv1enc.c if (s->ac == AC_RANGE_CUSTOM_TAB) { s 719 libavcodec/ffv1enc.c s->state_transition[i] = ver2_state[i]; s 724 libavcodec/ffv1enc.c s->state_transition[i] = c.one_state[i]; s 728 libavcodec/ffv1enc.c s->quant_table_count = 2; s 729 libavcodec/ffv1enc.c if (s->bits_per_raw_sample <= 8) { s 730 libavcodec/ffv1enc.c s->quant_tables[0][0][i]= quant11[i]; s 731 libavcodec/ffv1enc.c s->quant_tables[0][1][i]= 11*quant11[i]; s 732 libavcodec/ffv1enc.c s->quant_tables[0][2][i]= 11*11*quant11[i]; s 733 libavcodec/ffv1enc.c s->quant_tables[1][0][i]= quant11[i]; s 734 libavcodec/ffv1enc.c s->quant_tables[1][1][i]= 11*quant11[i]; s 735 libavcodec/ffv1enc.c s->quant_tables[1][2][i]= 11*11*quant5 [i]; s 736 libavcodec/ffv1enc.c s->quant_tables[1][3][i]= 5*11*11*quant5 [i]; s 737 libavcodec/ffv1enc.c s->quant_tables[1][4][i]= 5*5*11*11*quant5 [i]; s 739 libavcodec/ffv1enc.c s->quant_tables[0][0][i]= quant9_10bit[i]; s 740 libavcodec/ffv1enc.c s->quant_tables[0][1][i]= 11*quant9_10bit[i]; s 741 libavcodec/ffv1enc.c s->quant_tables[0][2][i]= 11*11*quant9_10bit[i]; s 742 libavcodec/ffv1enc.c s->quant_tables[1][0][i]= quant9_10bit[i]; s 743 libavcodec/ffv1enc.c s->quant_tables[1][1][i]= 11*quant9_10bit[i]; s 744 libavcodec/ffv1enc.c s->quant_tables[1][2][i]= 11*11*quant5_10bit[i]; s 745 libavcodec/ffv1enc.c s->quant_tables[1][3][i]= 5*11*11*quant5_10bit[i]; s 746 libavcodec/ffv1enc.c s->quant_tables[1][4][i]= 5*5*11*11*quant5_10bit[i]; s 749 libavcodec/ffv1enc.c s->context_count[0] = (11 * 11 * 11 + 1) / 2; s 750 libavcodec/ffv1enc.c s->context_count[1] = (11 * 11 * 5 * 5 * 5 + 1) / 2; s 751 libavcodec/ffv1enc.c memcpy(s->quant_table, s->quant_tables[s->context_model], s 752 libavcodec/ffv1enc.c sizeof(s->quant_table)); s 754 libavcodec/ffv1enc.c for (i = 0; i < s->plane_count; i++) { s 755 libavcodec/ffv1enc.c PlaneContext *const p = &s->plane[i]; s 757 libavcodec/ffv1enc.c memcpy(p->quant_table, s->quant_table, sizeof(p->quant_table)); s 758 libavcodec/ffv1enc.c p->quant_table_index = s->context_model; s 759 libavcodec/ffv1enc.c p->context_count = s->context_count[p->quant_table_index]; s 762 libavcodec/ffv1enc.c if ((ret = ff_ffv1_allocate_initial_states(s)) < 0) s 771 libavcodec/ffv1enc.c if (!s->transparency) s 772 libavcodec/ffv1enc.c s->plane_count = 2; s 773 libavcodec/ffv1enc.c if (!s->chroma_planes && s->version > 3) s 774 libavcodec/ffv1enc.c s->plane_count--; s 776 libavcodec/ffv1enc.c ret = av_pix_fmt_get_chroma_sub_sample (avctx->pix_fmt, &s->chroma_h_shift, &s->chroma_v_shift); s 780 libavcodec/ffv1enc.c s->picture_number = 0; s 783 libavcodec/ffv1enc.c for (i = 0; i < s->quant_table_count; i++) { s 784 libavcodec/ffv1enc.c s->rc_stat2[i] = av_mallocz(s->context_count[i] * s 785 libavcodec/ffv1enc.c sizeof(*s->rc_stat2[i])); s 786 libavcodec/ffv1enc.c if (!s->rc_stat2[i]) s 798 libavcodec/ffv1enc.c av_assert0(s->version >= 2); s 803 libavcodec/ffv1enc.c s->rc_stat[j][i] = strtol(p, &next, 0); s 812 libavcodec/ffv1enc.c for (i = 0; i < s->quant_table_count; i++) s 813 libavcodec/ffv1enc.c for (j = 0; j < s->context_count[i]; j++) { s 816 libavcodec/ffv1enc.c s->rc_stat2[i][j][k][m] = strtol(p, &next, 0); s 839 libavcodec/ffv1enc.c if (s->ac == AC_RANGE_CUSTOM_TAB) s 840 libavcodec/ffv1enc.c sort_stt(s, s->state_transition); s 842 libavcodec/ffv1enc.c find_best_state(best_state, s->state_transition); s 844 libavcodec/ffv1enc.c for (i = 0; i < s->quant_table_count; i++) { s 848 libavcodec/ffv1enc.c for (j = 0; j < s->context_count[i]; j++) { s 850 libavcodec/ffv1enc.c if (s->rc_stat2[i][j][k][0] + s->rc_stat2[i][j][k][1] > 200 && j || a+b > 200) { s 853 libavcodec/ffv1enc.c s->initial_states[i][jp][k] = s 856 libavcodec/ffv1enc.c s->initial_states[i][jp][k] = s->initial_states[i][jp-1][k]; s 859 libavcodec/ffv1enc.c a += s->rc_stat2[i][j][k][0]; s 860 libavcodec/ffv1enc.c b += s->rc_stat2[i][j][k][1]; s 864 libavcodec/ffv1enc.c s->initial_states[i][j][k] = s 872 libavcodec/ffv1enc.c if (s->version > 1) { s 873 libavcodec/ffv1enc.c int plane_count = 1 + 2*s->chroma_planes + s->transparency; s 874 libavcodec/ffv1enc.c int max_h_slices = AV_CEIL_RSHIFT(avctx->width , s->chroma_h_shift); s 875 libavcodec/ffv1enc.c int max_v_slices = AV_CEIL_RSHIFT(avctx->height, s->chroma_v_shift); s 876 libavcodec/ffv1enc.c s->num_v_slices = (avctx->width > 352 || avctx->height > 288 || !avctx->slices) ? 2 : 1; s 878 libavcodec/ffv1enc.c s->num_v_slices = FFMIN(s->num_v_slices, max_v_slices); s 880 libavcodec/ffv1enc.c for (; s->num_v_slices < 32; s->num_v_slices++) { s 881 libavcodec/ffv1enc.c for (s->num_h_slices = s->num_v_slices; s->num_h_slices < 2*s->num_v_slices; s->num_h_slices++) { s 882 libavcodec/ffv1enc.c int maxw = (avctx->width + s->num_h_slices - 1) / s->num_h_slices; s 883 libavcodec/ffv1enc.c int maxh = (avctx->height + s->num_v_slices - 1) / s->num_v_slices; s 884 libavcodec/ffv1enc.c if (s->num_h_slices > max_h_slices || s->num_v_slices > max_v_slices) s 886 libavcodec/ffv1enc.c if (maxw * maxh * (int64_t)(s->bits_per_raw_sample+1) * plane_count > 8<<24) s 888 libavcodec/ffv1enc.c if (avctx->slices == s->num_h_slices * s->num_v_slices && avctx->slices <= MAX_SLICES || !avctx->slices) s 898 libavcodec/ffv1enc.c if ((ret = write_extradata(s)) < 0) s 902 libavcodec/ffv1enc.c if ((ret = ff_ffv1_init_slice_contexts(s)) < 0) s 904 libavcodec/ffv1enc.c s->slice_count = s->max_slice_count; s 905 libavcodec/ffv1enc.c if ((ret = ff_ffv1_init_slices_state(s)) < 0) s 913 libavcodec/ffv1enc.c for (i = 0; i < s->quant_table_count; i++) s 914 libavcodec/ffv1enc.c for (j = 0; j < s->max_slice_count; j++) { s 915 libavcodec/ffv1enc.c FFV1Context *sf = s->slice_context[j]; s 917 libavcodec/ffv1enc.c sf->rc_stat2[i] = av_mallocz(s->context_count[i] * s 23 libavcodec/ffv1enc_template.c static av_always_inline int RENAME(encode_line)(FFV1Context *s, int w, s 27 libavcodec/ffv1enc_template.c PlaneContext *const p = &s->plane[plane_index]; s 28 libavcodec/ffv1enc_template.c RangeCoder *const c = &s->c; s 30 libavcodec/ffv1enc_template.c int run_index = s->run_index; s 34 libavcodec/ffv1enc_template.c if (s->ac != AC_GOLOMB_RICE) { s 36 libavcodec/ffv1enc_template.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 40 libavcodec/ffv1enc_template.c if (s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb) >> 3) < w * 4) { s 41 libavcodec/ffv1enc_template.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 46 libavcodec/ffv1enc_template.c if (s->slice_coding_mode == 1) { s 71 libavcodec/ffv1enc_template.c if (s->ac != AC_GOLOMB_RICE) { s 72 libavcodec/ffv1enc_template.c if (s->flags & AV_CODEC_FLAG_PASS1) { s 73 libavcodec/ffv1enc_template.c put_symbol_inline(c, p->state[context], diff, 1, s->rc_stat, s 74 libavcodec/ffv1enc_template.c s->rc_stat2[p->quant_table_index][context]); s 87 libavcodec/ffv1enc_template.c put_bits(&s->pb, 1, 1); s 90 libavcodec/ffv1enc_template.c put_bits(&s->pb, 1 + ff_log2_run[run_index], run_count); s 102 libavcodec/ffv1enc_template.c ff_dlog(s->avctx, "count:%d index:%d, mode:%d, x:%d pos:%d\n", s 104 libavcodec/ffv1enc_template.c (int)put_bits_count(&s->pb)); s 107 libavcodec/ffv1enc_template.c put_vlc_symbol(&s->pb, &p->vlc_state[context], diff, bits); s 114 libavcodec/ffv1enc_template.c put_bits(&s->pb, 1, 1); s 118 libavcodec/ffv1enc_template.c put_bits(&s->pb, 1, 1); s 120 libavcodec/ffv1enc_template.c s->run_index = run_index; s 125 libavcodec/ffv1enc_template.c static int RENAME(encode_rgb_frame)(FFV1Context *s, const uint8_t *src[4], s 129 libavcodec/ffv1enc_template.c const int ring_size = s->context_model ? 3 : 2; s 131 libavcodec/ffv1enc_template.c int lbd = s->bits_per_raw_sample <= 8; s 133 libavcodec/ffv1enc_template.c int bits = s->bits_per_raw_sample > 0 ? s->bits_per_raw_sample : 8; s 135 libavcodec/ffv1enc_template.c int transparency = s->transparency; s 138 libavcodec/ffv1enc_template.c s->run_index = 0; s 140 libavcodec/ffv1enc_template.c memset(RENAME(s->sample_buffer), 0, ring_size * MAX_PLANES * s 141 libavcodec/ffv1enc_template.c (w + 6) * sizeof(*RENAME(s->sample_buffer))); s 146 libavcodec/ffv1enc_template.c sample[p][i]= RENAME(s->sample_buffer) + p*ring_size*(w+6) + ((h+i-y)%ring_size)*(w+6) + 3; s 175 libavcodec/ffv1enc_template.c if (s->slice_coding_mode != 1) { s 178 libavcodec/ffv1enc_template.c g += (b * s->slice_rct_by_coef + r * s->slice_rct_ry_coef) >> 2; s 192 libavcodec/ffv1enc_template.c if (lbd && s->slice_coding_mode == 0) s 193 libavcodec/ffv1enc_template.c ret = RENAME(encode_line)(s, w, sample[p], (p + 1) / 2, 9); s 195 libavcodec/ffv1enc_template.c ret = RENAME(encode_line)(s, w, sample[p], (p + 1) / 2, bits + (s->slice_coding_mode != 1)); s 110 libavcodec/ffwavesynth.c static uint32_t lcg_next(uint32_t *s) s 112 libavcodec/ffwavesynth.c *s = *s * LCG_A + LCG_C; s 113 libavcodec/ffwavesynth.c return *s; s 116 libavcodec/ffwavesynth.c static void lcg_seek(uint32_t *s, uint32_t dt) s 118 libavcodec/ffwavesynth.c uint32_t a, c, t = *s; s 129 libavcodec/ffwavesynth.c *s = t; s 429 libavcodec/ffwavesynth.c int s, c, r; s 447 libavcodec/ffwavesynth.c for (s = 0; s < duration; s++, ts+=(uint64_t)1) { s 204 libavcodec/flac.c int ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s, s 211 libavcodec/flac.c s->max_blocksize = get_bits(&gb, 16); s 212 libavcodec/flac.c if (s->max_blocksize < FLAC_MIN_BLOCKSIZE) { s 214 libavcodec/flac.c s->max_blocksize); s 215 libavcodec/flac.c s->max_blocksize = 16; s 220 libavcodec/flac.c s->max_framesize = get_bits(&gb, 24); s 222 libavcodec/flac.c s->samplerate = get_bits(&gb, 20); s 223 libavcodec/flac.c s->channels = get_bits(&gb, 3) + 1; s 224 libavcodec/flac.c s->bps = get_bits(&gb, 5) + 1; s 226 libavcodec/flac.c if (s->bps < 4) { s 227 libavcodec/flac.c av_log(avctx, AV_LOG_ERROR, "invalid bps: %d\n", s->bps); s 228 libavcodec/flac.c s->bps = 16; s 232 libavcodec/flac.c avctx->channels = s->channels; s 233 libavcodec/flac.c avctx->sample_rate = s->samplerate; s 234 libavcodec/flac.c avctx->bits_per_raw_sample = s->bps; s 240 libavcodec/flac.c s->samples = get_bits64(&gb, 36); s 101 libavcodec/flac.h int ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s, s 514 libavcodec/flac_parser.c static int flac_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 518 libavcodec/flac_parser.c FLACParseContext *fpc = s->priv_data; s 524 libavcodec/flac_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 527 libavcodec/flac_parser.c s->duration = fi.blocksize; s 697 libavcodec/flac_parser.c s->duration = 0; s 71 libavcodec/flacdec.c static int allocate_buffers(FLACContext *s); s 73 libavcodec/flacdec.c static void flac_set_bps(FLACContext *s) s 75 libavcodec/flacdec.c enum AVSampleFormat req = s->avctx->request_sample_fmt; s 76 libavcodec/flacdec.c int need32 = s->flac_stream_info.bps > 16; s 82 libavcodec/flacdec.c s->avctx->sample_fmt = AV_SAMPLE_FMT_S32P; s 84 libavcodec/flacdec.c s->avctx->sample_fmt = AV_SAMPLE_FMT_S32; s 85 libavcodec/flacdec.c s->sample_shift = 32 - s->flac_stream_info.bps; s 88 libavcodec/flacdec.c s->avctx->sample_fmt = AV_SAMPLE_FMT_S16P; s 90 libavcodec/flacdec.c s->avctx->sample_fmt = AV_SAMPLE_FMT_S16; s 91 libavcodec/flacdec.c s->sample_shift = 16 - s->flac_stream_info.bps; s 100 libavcodec/flacdec.c FLACContext *s = avctx->priv_data; s 101 libavcodec/flacdec.c s->avctx = avctx; s 112 libavcodec/flacdec.c ret = ff_flac_parse_streaminfo(avctx, &s->flac_stream_info, streaminfo); s 115 libavcodec/flacdec.c ret = allocate_buffers(s); s 118 libavcodec/flacdec.c flac_set_bps(s); s 119 libavcodec/flacdec.c ff_flacdsp_init(&s->dsp, avctx->sample_fmt, s 120 libavcodec/flacdec.c s->flac_stream_info.channels, s->flac_stream_info.bps); s 121 libavcodec/flacdec.c s->got_streaminfo = 1; s 126 libavcodec/flacdec.c static void dump_headers(AVCodecContext *avctx, FLACStreaminfo *s) s 128 libavcodec/flacdec.c av_log(avctx, AV_LOG_DEBUG, " Max Blocksize: %d\n", s->max_blocksize); s 129 libavcodec/flacdec.c av_log(avctx, AV_LOG_DEBUG, " Max Framesize: %d\n", s->max_framesize); s 130 libavcodec/flacdec.c av_log(avctx, AV_LOG_DEBUG, " Samplerate: %d\n", s->samplerate); s 131 libavcodec/flacdec.c av_log(avctx, AV_LOG_DEBUG, " Channels: %d\n", s->channels); s 132 libavcodec/flacdec.c av_log(avctx, AV_LOG_DEBUG, " Bits: %d\n", s->bps); s 135 libavcodec/flacdec.c static int allocate_buffers(FLACContext *s) s 140 libavcodec/flacdec.c av_assert0(s->flac_stream_info.max_blocksize); s 142 libavcodec/flacdec.c buf_size = av_samples_get_buffer_size(NULL, s->flac_stream_info.channels, s 143 libavcodec/flacdec.c s->flac_stream_info.max_blocksize, s 148 libavcodec/flacdec.c av_fast_malloc(&s->decoded_buffer, &s->decoded_buffer_size, buf_size); s 149 libavcodec/flacdec.c if (!s->decoded_buffer) s 152 libavcodec/flacdec.c ret = av_samples_fill_arrays((uint8_t **)s->decoded, NULL, s 153 libavcodec/flacdec.c s->decoded_buffer, s 154 libavcodec/flacdec.c s->flac_stream_info.channels, s 155 libavcodec/flacdec.c s->flac_stream_info.max_blocksize, s 167 libavcodec/flacdec.c static int parse_streaminfo(FLACContext *s, const uint8_t *buf, int buf_size) s 180 libavcodec/flacdec.c ret = ff_flac_parse_streaminfo(s->avctx, &s->flac_stream_info, &buf[8]); s 183 libavcodec/flacdec.c ret = allocate_buffers(s); s 186 libavcodec/flacdec.c flac_set_bps(s); s 187 libavcodec/flacdec.c ff_flacdsp_init(&s->dsp, s->avctx->sample_fmt, s 188 libavcodec/flacdec.c s->flac_stream_info.channels, s->flac_stream_info.bps); s 189 libavcodec/flacdec.c s->got_streaminfo = 1; s 221 libavcodec/flacdec.c static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order) s 223 libavcodec/flacdec.c GetBitContext gb = s->gb; s 231 libavcodec/flacdec.c samples = s->blocksize >> rice_order; s 239 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "illegal residual coding method %d\n", s 244 libavcodec/flacdec.c if (samples << rice_order != s->blocksize) { s 245 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "invalid rice order: %i blocksize %i\n", s 246 libavcodec/flacdec.c rice_order, s->blocksize); s 251 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "invalid predictor order: %i > %i\n", s 267 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "invalid residual\n"); s 277 libavcodec/flacdec.c s->gb = gb; s 282 libavcodec/flacdec.c static int decode_subframe_fixed(FLACContext *s, int32_t *decoded, s 285 libavcodec/flacdec.c const int blocksize = s->blocksize; s 292 libavcodec/flacdec.c decoded[i] = get_sbits_long(&s->gb, bps); s 295 libavcodec/flacdec.c if ((ret = decode_residuals(s, decoded, pred_order)) < 0) s 327 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "illegal pred order %d\n", pred_order); s 361 libavcodec/flacdec.c static int decode_subframe_lpc(FLACContext *s, int32_t *decoded, int pred_order, s 370 libavcodec/flacdec.c decoded[i] = get_sbits_long(&s->gb, bps); s 373 libavcodec/flacdec.c coeff_prec = get_bits(&s->gb, 4) + 1; s 375 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "invalid coeff precision\n"); s 378 libavcodec/flacdec.c qlevel = get_sbits(&s->gb, 5); s 380 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "qlevel %d not supported, maybe buggy stream\n", s 386 libavcodec/flacdec.c coeffs[pred_order - i - 1] = get_sbits(&s->gb, coeff_prec); s 389 libavcodec/flacdec.c if ((ret = decode_residuals(s, decoded, pred_order)) < 0) s 392 libavcodec/flacdec.c if ( ( s->buggy_lpc && s->flac_stream_info.bps <= 16) s 393 libavcodec/flacdec.c || ( !s->buggy_lpc && bps <= 16 s 395 libavcodec/flacdec.c s->dsp.lpc16(decoded, coeffs, pred_order, qlevel, s->blocksize); s 397 libavcodec/flacdec.c s->dsp.lpc32(decoded, coeffs, pred_order, qlevel, s->blocksize); s 398 libavcodec/flacdec.c if (s->flac_stream_info.bps <= 16) s 399 libavcodec/flacdec.c lpc_analyze_remodulate(decoded, coeffs, pred_order, qlevel, s->blocksize, bps); s 405 libavcodec/flacdec.c static inline int decode_subframe(FLACContext *s, int channel) s 407 libavcodec/flacdec.c int32_t *decoded = s->decoded[channel]; s 409 libavcodec/flacdec.c int bps = s->flac_stream_info.bps; s 413 libavcodec/flacdec.c if (s->ch_mode == FLAC_CHMODE_RIGHT_SIDE) s 416 libavcodec/flacdec.c if (s->ch_mode == FLAC_CHMODE_LEFT_SIDE || s->ch_mode == FLAC_CHMODE_MID_SIDE) s 420 libavcodec/flacdec.c if (get_bits1(&s->gb)) { s 421 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "invalid subframe padding\n"); s 424 libavcodec/flacdec.c type = get_bits(&s->gb, 6); s 426 libavcodec/flacdec.c if (get_bits1(&s->gb)) { s 427 libavcodec/flacdec.c int left = get_bits_left(&s->gb); s 429 libavcodec/flacdec.c (left < bps && !show_bits_long(&s->gb, left)) || s 430 libavcodec/flacdec.c !show_bits_long(&s->gb, bps)) { s 431 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, s 436 libavcodec/flacdec.c wasted = 1 + get_unary(&s->gb, 1, get_bits_left(&s->gb)); s 440 libavcodec/flacdec.c avpriv_report_missing_feature(s->avctx, "Decorrelated bit depth > 32"); s 446 libavcodec/flacdec.c tmp = get_sbits_long(&s->gb, bps); s 447 libavcodec/flacdec.c for (i = 0; i < s->blocksize; i++) s 450 libavcodec/flacdec.c for (i = 0; i < s->blocksize; i++) s 451 libavcodec/flacdec.c decoded[i] = get_sbits_long(&s->gb, bps); s 453 libavcodec/flacdec.c if ((ret = decode_subframe_fixed(s, decoded, type & ~0x8, bps)) < 0) s 456 libavcodec/flacdec.c if ((ret = decode_subframe_lpc(s, decoded, (type & ~0x20)+1, bps)) < 0) s 459 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "invalid coding type\n"); s 465 libavcodec/flacdec.c for (i = 0; i < s->blocksize; i++) s 472 libavcodec/flacdec.c static int decode_frame(FLACContext *s) s 475 libavcodec/flacdec.c GetBitContext *gb = &s->gb; s 478 libavcodec/flacdec.c if ((ret = ff_flac_decode_frame_header(s->avctx, gb, &fi, 0)) < 0) { s 479 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "invalid frame header\n"); s 483 libavcodec/flacdec.c if ( s->flac_stream_info.channels s 484 libavcodec/flacdec.c && fi.channels != s->flac_stream_info.channels s 485 libavcodec/flacdec.c && s->got_streaminfo) { s 486 libavcodec/flacdec.c s->flac_stream_info.channels = s->avctx->channels = fi.channels; s 487 libavcodec/flacdec.c ff_flac_set_channel_layout(s->avctx); s 488 libavcodec/flacdec.c ret = allocate_buffers(s); s 492 libavcodec/flacdec.c s->flac_stream_info.channels = s->avctx->channels = fi.channels; s 493 libavcodec/flacdec.c if (!s->avctx->channel_layout) s 494 libavcodec/flacdec.c ff_flac_set_channel_layout(s->avctx); s 495 libavcodec/flacdec.c s->ch_mode = fi.ch_mode; s 497 libavcodec/flacdec.c if (!s->flac_stream_info.bps && !fi.bps) { s 498 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "bps not found in STREAMINFO or frame header\n"); s 502 libavcodec/flacdec.c fi.bps = s->flac_stream_info.bps; s 503 libavcodec/flacdec.c } else if (s->flac_stream_info.bps && fi.bps != s->flac_stream_info.bps) { s 504 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "switching bps mid-stream is not " s 509 libavcodec/flacdec.c if (!s->flac_stream_info.bps) { s 510 libavcodec/flacdec.c s->flac_stream_info.bps = s->avctx->bits_per_raw_sample = fi.bps; s 511 libavcodec/flacdec.c flac_set_bps(s); s 514 libavcodec/flacdec.c if (!s->flac_stream_info.max_blocksize) s 515 libavcodec/flacdec.c s->flac_stream_info.max_blocksize = FLAC_MAX_BLOCKSIZE; s 516 libavcodec/flacdec.c if (fi.blocksize > s->flac_stream_info.max_blocksize) { s 517 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "blocksize %d > %d\n", fi.blocksize, s 518 libavcodec/flacdec.c s->flac_stream_info.max_blocksize); s 521 libavcodec/flacdec.c s->blocksize = fi.blocksize; s 523 libavcodec/flacdec.c if (!s->flac_stream_info.samplerate && !fi.samplerate) { s 524 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "sample rate not found in STREAMINFO" s 529 libavcodec/flacdec.c fi.samplerate = s->flac_stream_info.samplerate; s 530 libavcodec/flacdec.c s->flac_stream_info.samplerate = s->avctx->sample_rate = fi.samplerate; s 532 libavcodec/flacdec.c if (!s->got_streaminfo) { s 533 libavcodec/flacdec.c ret = allocate_buffers(s); s 536 libavcodec/flacdec.c s->got_streaminfo = 1; s 537 libavcodec/flacdec.c dump_headers(s->avctx, &s->flac_stream_info); s 539 libavcodec/flacdec.c ff_flacdsp_init(&s->dsp, s->avctx->sample_fmt, s 540 libavcodec/flacdec.c s->flac_stream_info.channels, s->flac_stream_info.bps); s 545 libavcodec/flacdec.c for (i = 0; i < s->flac_stream_info.channels; i++) { s 546 libavcodec/flacdec.c if ((ret = decode_subframe(s, i)) < 0) s 565 libavcodec/flacdec.c FLACContext *s = avctx->priv_data; s 571 libavcodec/flacdec.c if (s->flac_stream_info.max_framesize == 0) { s 572 libavcodec/flacdec.c s->flac_stream_info.max_framesize = s 573 libavcodec/flacdec.c ff_flac_get_max_frame_size(s->flac_stream_info.max_blocksize ? s->flac_stream_info.max_blocksize : FLAC_MAX_BLOCKSIZE, s 578 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_DEBUG, "skipping flac header packet 1\n"); s 583 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_DEBUG, "skipping vorbis comment\n"); s 595 libavcodec/flacdec.c if (!s->got_streaminfo && (ret = parse_streaminfo(s, buf, buf_size))) { s 596 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "invalid header\n"); s 603 libavcodec/flacdec.c if ((ret = init_get_bits8(&s->gb, buf, buf_size)) < 0) s 605 libavcodec/flacdec.c if ((ret = decode_frame(s)) < 0) { s 606 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "decode_frame() failed\n"); s 609 libavcodec/flacdec.c bytes_read = get_bits_count(&s->gb)/8; s 611 libavcodec/flacdec.c if ((s->avctx->err_recognition & (AV_EF_CRCCHECK|AV_EF_COMPLIANT)) && s 614 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "CRC error at PTS %"PRId64"\n", avpkt->pts); s 615 libavcodec/flacdec.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 620 libavcodec/flacdec.c frame->nb_samples = s->blocksize; s 624 libavcodec/flacdec.c s->dsp.decorrelate[s->ch_mode](frame->data, s->decoded, s 625 libavcodec/flacdec.c s->flac_stream_info.channels, s 626 libavcodec/flacdec.c s->blocksize, s->sample_shift); s 629 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_ERROR, "overread: %d\n", bytes_read - buf_size); s 633 libavcodec/flacdec.c av_log(s->avctx, AV_LOG_DEBUG, "underread: %d orig size: %d\n", s 644 libavcodec/flacdec.c FLACContext *s = avctx->priv_data; s 646 libavcodec/flacdec.c av_freep(&s->decoded_buffer); s 43 libavcodec/flacdsp_lpc_template.c p0 += MUL(c, s); \ s 44 libavcodec/flacdsp_lpc_template.c s = smp[i-(x)+1]; \ s 45 libavcodec/flacdsp_lpc_template.c p1 += MUL(c, s); \ s 54 libavcodec/flacdsp_lpc_template.c int s = smp[i-order]; s 117 libavcodec/flacdsp_lpc_template.c int s = smp[i]; s 121 libavcodec/flacdsp_lpc_template.c p1 += MUL(c, s); s 122 libavcodec/flacdsp_lpc_template.c s = smp[i-j-1]; s 123 libavcodec/flacdsp_lpc_template.c p0 += MUL(c, s); s 41 libavcodec/flacdsp_template.c # define S(s, c, i) (s[c][i]) s 46 libavcodec/flacdsp_template.c # define S(s, c, i) (*s++) s 135 libavcodec/flacenc.c static void write_streaminfo(FlacEncodeContext *s, uint8_t *header) s 143 libavcodec/flacenc.c put_bits(&pb, 16, s->max_blocksize); s 144 libavcodec/flacenc.c put_bits(&pb, 16, s->max_blocksize); s 145 libavcodec/flacenc.c put_bits(&pb, 24, s->min_framesize); s 146 libavcodec/flacenc.c put_bits(&pb, 24, s->max_framesize); s 147 libavcodec/flacenc.c put_bits(&pb, 20, s->samplerate); s 148 libavcodec/flacenc.c put_bits(&pb, 3, s->channels-1); s 149 libavcodec/flacenc.c put_bits(&pb, 5, s->avctx->bits_per_raw_sample - 1); s 151 libavcodec/flacenc.c put_bits(&pb, 24, (s->sample_count & 0xFFFFFF000LL) >> 12); s 152 libavcodec/flacenc.c put_bits(&pb, 12, s->sample_count & 0x000000FFFLL); s 154 libavcodec/flacenc.c memcpy(&header[18], s->md5sum, 16); s 181 libavcodec/flacenc.c static av_cold void dprint_compression_options(FlacEncodeContext *s) s 183 libavcodec/flacenc.c AVCodecContext *avctx = s->avctx; s 184 libavcodec/flacenc.c CompressionOptions *opt = &s->options; s 243 libavcodec/flacenc.c FlacEncodeContext *s = avctx->priv_data; s 247 libavcodec/flacenc.c s->avctx = avctx; s 252 libavcodec/flacenc.c s->bps_code = 4; s 258 libavcodec/flacenc.c s->bps_code = 6; s 267 libavcodec/flacenc.c s->channels = channels; s 274 libavcodec/flacenc.c s->samplerate = ff_flac_sample_rate_table[i]; s 275 libavcodec/flacenc.c s->sr_code[0] = i; s 276 libavcodec/flacenc.c s->sr_code[1] = 0; s 283 libavcodec/flacenc.c s->sr_code[0] = 12; s 284 libavcodec/flacenc.c s->sr_code[1] = freq / 1000; s 286 libavcodec/flacenc.c s->sr_code[0] = 14; s 287 libavcodec/flacenc.c s->sr_code[1] = freq / 10; s 289 libavcodec/flacenc.c s->sr_code[0] = 13; s 290 libavcodec/flacenc.c s->sr_code[1] = freq; s 295 libavcodec/flacenc.c s->samplerate = freq; s 300 libavcodec/flacenc.c s->options.compression_level = 5; s 302 libavcodec/flacenc.c s->options.compression_level = avctx->compression_level; s 304 libavcodec/flacenc.c level = s->options.compression_level; s 307 libavcodec/flacenc.c s->options.compression_level); s 311 libavcodec/flacenc.c s->options.block_time_ms = ((int[]){ 27, 27, 27,105,105,105,105,105,105,105,105,105,105})[level]; s 313 libavcodec/flacenc.c if (s->options.lpc_type == FF_LPC_TYPE_DEFAULT) s 314 libavcodec/flacenc.c s->options.lpc_type = ((int[]){ FF_LPC_TYPE_FIXED, FF_LPC_TYPE_FIXED, FF_LPC_TYPE_FIXED, s 320 libavcodec/flacenc.c if (s->options.min_prediction_order < 0) s 321 libavcodec/flacenc.c s->options.min_prediction_order = ((int[]){ 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1})[level]; s 322 libavcodec/flacenc.c if (s->options.max_prediction_order < 0) s 323 libavcodec/flacenc.c s->options.max_prediction_order = ((int[]){ 3, 4, 4, 6, 8, 8, 8, 8, 12, 12, 12, 32, 32})[level]; s 325 libavcodec/flacenc.c if (s->options.prediction_order_method < 0) s 326 libavcodec/flacenc.c s->options.prediction_order_method = ((int[]){ ORDER_METHOD_EST, ORDER_METHOD_EST, ORDER_METHOD_EST, s 332 libavcodec/flacenc.c if (s->options.min_partition_order > s->options.max_partition_order) { s 334 libavcodec/flacenc.c s->options.min_partition_order, s->options.max_partition_order); s 337 libavcodec/flacenc.c if (s->options.min_partition_order < 0) s 338 libavcodec/flacenc.c s->options.min_partition_order = ((int[]){ 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})[level]; s 339 libavcodec/flacenc.c if (s->options.max_partition_order < 0) s 340 libavcodec/flacenc.c s->options.max_partition_order = ((int[]){ 2, 2, 3, 3, 3, 8, 8, 8, 8, 8, 8, 8, 8})[level]; s 345 libavcodec/flacenc.c if (s->options.lpc_type == FF_LPC_TYPE_FIXED) { s 358 libavcodec/flacenc.c s->options.min_prediction_order = avctx->min_prediction_order; s 361 libavcodec/flacenc.c if (s->options.lpc_type == FF_LPC_TYPE_FIXED) { s 374 libavcodec/flacenc.c s->options.max_prediction_order = avctx->max_prediction_order; s 378 libavcodec/flacenc.c if (s->options.lpc_type == FF_LPC_TYPE_NONE) { s 379 libavcodec/flacenc.c s->options.min_prediction_order = 0; s 380 libavcodec/flacenc.c s->options.max_prediction_order = 0; s 381 libavcodec/flacenc.c } else if (s->options.lpc_type == FF_LPC_TYPE_FIXED) { s 382 libavcodec/flacenc.c if (s->options.min_prediction_order > MAX_FIXED_ORDER) { s 385 libavcodec/flacenc.c s->options.min_prediction_order, MAX_FIXED_ORDER); s 386 libavcodec/flacenc.c s->options.min_prediction_order = MAX_FIXED_ORDER; s 388 libavcodec/flacenc.c if (s->options.max_prediction_order > MAX_FIXED_ORDER) { s 391 libavcodec/flacenc.c s->options.max_prediction_order, MAX_FIXED_ORDER); s 392 libavcodec/flacenc.c s->options.max_prediction_order = MAX_FIXED_ORDER; s 396 libavcodec/flacenc.c if (s->options.max_prediction_order < s->options.min_prediction_order) { s 398 libavcodec/flacenc.c s->options.min_prediction_order, s->options.max_prediction_order); s 410 libavcodec/flacenc.c s->avctx->frame_size = select_blocksize(s->samplerate, s->options.block_time_ms); s 412 libavcodec/flacenc.c s->max_blocksize = s->avctx->frame_size; s 415 libavcodec/flacenc.c s->max_framesize = ff_flac_get_max_frame_size(s->avctx->frame_size, s 416 libavcodec/flacenc.c s->channels, s 417 libavcodec/flacenc.c s->avctx->bits_per_raw_sample); s 420 libavcodec/flacenc.c s->md5ctx = av_md5_alloc(); s 421 libavcodec/flacenc.c if (!s->md5ctx) s 423 libavcodec/flacenc.c av_md5_init(s->md5ctx); s 428 libavcodec/flacenc.c write_streaminfo(s, streaminfo); s 432 libavcodec/flacenc.c s->frame_count = 0; s 433 libavcodec/flacenc.c s->min_framesize = s->max_framesize; s 457 libavcodec/flacenc.c ret = ff_lpc_init(&s->lpc_ctx, avctx->frame_size, s 458 libavcodec/flacenc.c s->options.max_prediction_order, FF_LPC_TYPE_LEVINSON); s 460 libavcodec/flacenc.c ff_bswapdsp_init(&s->bdsp); s 461 libavcodec/flacenc.c ff_flacdsp_init(&s->flac_dsp, avctx->sample_fmt, channels, s 464 libavcodec/flacenc.c dprint_compression_options(s); s 470 libavcodec/flacenc.c static void init_frame(FlacEncodeContext *s, int nb_samples) s 475 libavcodec/flacenc.c frame = &s->frame; s 496 libavcodec/flacenc.c for (ch = 0; ch < s->channels; ch++) { s 500 libavcodec/flacenc.c sub->obits = s->avctx->bits_per_raw_sample; s 515 libavcodec/flacenc.c static void copy_samples(FlacEncodeContext *s, const void *samples) s 519 libavcodec/flacenc.c int shift = av_get_bytes_per_sample(s->avctx->sample_fmt) * 8 - s 520 libavcodec/flacenc.c s->avctx->bits_per_raw_sample; s 524 libavcodec/flacenc.c frame = &s->frame; \ s 526 libavcodec/flacenc.c for (ch = 0; ch < s->channels; ch++, j++) \ s 530 libavcodec/flacenc.c if (s->avctx->sample_fmt == AV_SAMPLE_FMT_S16) s 551 libavcodec/flacenc.c static uint64_t subframe_count_exact(FlacEncodeContext *s, FlacSubframe *sub, s 568 libavcodec/flacenc.c count += s->frame.blocksize * sub->obits; s 575 libavcodec/flacenc.c count += 4 + 5 + pred_order * s->options.lpc_coeff_precision; s 582 libavcodec/flacenc.c psize = s->frame.blocksize >> porder; s 593 libavcodec/flacenc.c part_end = FFMIN(s->frame.blocksize, part_end + psize); s 754 libavcodec/flacenc.c static uint64_t find_subframe_rice_params(FlacEncodeContext *s, s 757 libavcodec/flacenc.c int pmin = get_max_p_order(s->options.min_partition_order, s 758 libavcodec/flacenc.c s->frame.blocksize, pred_order); s 759 libavcodec/flacenc.c int pmax = get_max_p_order(s->options.max_partition_order, s 760 libavcodec/flacenc.c s->frame.blocksize, pred_order); s 764 libavcodec/flacenc.c bits += 4 + 5 + pred_order * s->options.lpc_coeff_precision; s 766 libavcodec/flacenc.c s->frame.blocksize, pred_order, s->options.exact_rice_parameters); s 822 libavcodec/flacenc.c static int encode_residual_ch(FlacEncodeContext *s, int ch) s 832 libavcodec/flacenc.c frame = &s->frame; s 845 libavcodec/flacenc.c return subframe_count_exact(s, sub, 0); s 852 libavcodec/flacenc.c return subframe_count_exact(s, sub, 0); s 855 libavcodec/flacenc.c min_order = s->options.min_prediction_order; s 856 libavcodec/flacenc.c max_order = s->options.max_prediction_order; s 857 libavcodec/flacenc.c omethod = s->options.prediction_order_method; s 861 libavcodec/flacenc.c if (s->options.lpc_type == FF_LPC_TYPE_NONE || s 862 libavcodec/flacenc.c s->options.lpc_type == FF_LPC_TYPE_FIXED || n <= max_order) { s 870 libavcodec/flacenc.c bits[i] = find_subframe_rice_params(s, sub, i); s 878 libavcodec/flacenc.c find_subframe_rice_params(s, sub, sub->order); s 880 libavcodec/flacenc.c return subframe_count_exact(s, sub, sub->order); s 885 libavcodec/flacenc.c opt_order = ff_lpc_calc_coefs(&s->lpc_ctx, smp, n, min_order, max_order, s 886 libavcodec/flacenc.c s->options.lpc_coeff_precision, coefs, shift, s->options.lpc_type, s 887 libavcodec/flacenc.c s->options.lpc_passes, omethod, s 905 libavcodec/flacenc.c if (s->bps_code * 4 + s->options.lpc_coeff_precision + av_log2(order) <= 32) { s 906 libavcodec/flacenc.c s->flac_dsp.lpc16_encode(res, smp, n, order+1, coefs[order], s 909 libavcodec/flacenc.c s->flac_dsp.lpc32_encode(res, smp, n, order+1, coefs[order], s 912 libavcodec/flacenc.c bits[i] = find_subframe_rice_params(s, sub, order+1); s 925 libavcodec/flacenc.c if (s->bps_code * 4 + s->options.lpc_coeff_precision + av_log2(i) <= 32) { s 926 libavcodec/flacenc.c s->flac_dsp.lpc16_encode(res, smp, n, i+1, coefs[i], shift[i]); s 928 libavcodec/flacenc.c s->flac_dsp.lpc32_encode(res, smp, n, i+1, coefs[i], shift[i]); s 930 libavcodec/flacenc.c bits[i] = find_subframe_rice_params(s, sub, i+1); s 947 libavcodec/flacenc.c if (s->bps_code * 4 + s->options.lpc_coeff_precision + av_log2(i) <= 32) { s 948 libavcodec/flacenc.c s->flac_dsp.lpc32_encode(res, smp, n, i+1, coefs[i], shift[i]); s 950 libavcodec/flacenc.c s->flac_dsp.lpc16_encode(res, smp, n, i+1, coefs[i], shift[i]); s 952 libavcodec/flacenc.c bits[i] = find_subframe_rice_params(s, sub, i+1); s 960 libavcodec/flacenc.c if (s->options.multi_dim_quant) { s 966 libavcodec/flacenc.c qmax = (1 << (s->options.lpc_coeff_precision - 1)) - 1; s 988 libavcodec/flacenc.c if (s->bps_code * 4 + s->options.lpc_coeff_precision + av_log2(opt_order - 1) <= 32) { s 989 libavcodec/flacenc.c s->flac_dsp.lpc16_encode(res, smp, n, opt_order, lpc_try, shift[opt_order-1]); s 991 libavcodec/flacenc.c s->flac_dsp.lpc32_encode(res, smp, n, opt_order, lpc_try, shift[opt_order-1]); s 993 libavcodec/flacenc.c score = find_subframe_rice_params(s, sub, opt_order); s 1009 libavcodec/flacenc.c if (s->bps_code * 4 + s->options.lpc_coeff_precision + av_log2(opt_order) <= 32) { s 1010 libavcodec/flacenc.c s->flac_dsp.lpc16_encode(res, smp, n, sub->order, sub->coefs, sub->shift); s 1012 libavcodec/flacenc.c s->flac_dsp.lpc32_encode(res, smp, n, sub->order, sub->coefs, sub->shift); s 1015 libavcodec/flacenc.c find_subframe_rice_params(s, sub, sub->order); s 1017 libavcodec/flacenc.c return subframe_count_exact(s, sub, sub->order); s 1021 libavcodec/flacenc.c static int count_frame_header(FlacEncodeContext *s) s 1039 libavcodec/flacenc.c PUT_UTF8(s->frame_count, tmp, count += 8;) s 1042 libavcodec/flacenc.c if (s->frame.bs_code[0] == 6) s 1044 libavcodec/flacenc.c else if (s->frame.bs_code[0] == 7) s 1048 libavcodec/flacenc.c count += ((s->sr_code[0] == 12) + (s->sr_code[0] > 12) * 2) * 8; s 1057 libavcodec/flacenc.c static int encode_frame(FlacEncodeContext *s) s 1062 libavcodec/flacenc.c count = count_frame_header(s); s 1064 libavcodec/flacenc.c for (ch = 0; ch < s->channels; ch++) s 1065 libavcodec/flacenc.c count += encode_residual_ch(s, ch); s 1077 libavcodec/flacenc.c static void remove_wasted_bits(FlacEncodeContext *s) s 1081 libavcodec/flacenc.c for (ch = 0; ch < s->channels; ch++) { s 1082 libavcodec/flacenc.c FlacSubframe *sub = &s->frame.subframes[ch]; s 1085 libavcodec/flacenc.c for (i = 0; i < s->frame.blocksize; i++) { s 1094 libavcodec/flacenc.c for (i = 0; i < s->frame.blocksize; i++) s 1153 libavcodec/flacenc.c static void channel_decorrelation(FlacEncodeContext *s) s 1159 libavcodec/flacenc.c frame = &s->frame; s 1164 libavcodec/flacenc.c if (s->channels != 2) { s 1169 libavcodec/flacenc.c if (s->options.ch_mode < 0) { s 1173 libavcodec/flacenc.c frame->ch_mode = s->options.ch_mode; s 1205 libavcodec/flacenc.c static void write_frame_header(FlacEncodeContext *s) s 1210 libavcodec/flacenc.c frame = &s->frame; s 1212 libavcodec/flacenc.c put_bits(&s->pb, 16, 0xFFF8); s 1213 libavcodec/flacenc.c put_bits(&s->pb, 4, frame->bs_code[0]); s 1214 libavcodec/flacenc.c put_bits(&s->pb, 4, s->sr_code[0]); s 1217 libavcodec/flacenc.c put_bits(&s->pb, 4, s->channels-1); s 1219 libavcodec/flacenc.c put_bits(&s->pb, 4, frame->ch_mode + FLAC_MAX_CHANNELS - 1); s 1221 libavcodec/flacenc.c put_bits(&s->pb, 3, s->bps_code); s 1222 libavcodec/flacenc.c put_bits(&s->pb, 1, 0); s 1223 libavcodec/flacenc.c write_utf8(&s->pb, s->frame_count); s 1226 libavcodec/flacenc.c put_bits(&s->pb, 8, frame->bs_code[1]); s 1228 libavcodec/flacenc.c put_bits(&s->pb, 16, frame->bs_code[1]); s 1230 libavcodec/flacenc.c if (s->sr_code[0] == 12) s 1231 libavcodec/flacenc.c put_bits(&s->pb, 8, s->sr_code[1]); s 1232 libavcodec/flacenc.c else if (s->sr_code[0] > 12) s 1233 libavcodec/flacenc.c put_bits(&s->pb, 16, s->sr_code[1]); s 1235 libavcodec/flacenc.c flush_put_bits(&s->pb); s 1236 libavcodec/flacenc.c crc = av_crc(av_crc_get_table(AV_CRC_8_ATM), 0, s->pb.buf, s 1237 libavcodec/flacenc.c put_bits_count(&s->pb) >> 3); s 1238 libavcodec/flacenc.c put_bits(&s->pb, 8, crc); s 1242 libavcodec/flacenc.c static void write_subframes(FlacEncodeContext *s) s 1246 libavcodec/flacenc.c for (ch = 0; ch < s->channels; ch++) { s 1247 libavcodec/flacenc.c FlacSubframe *sub = &s->frame.subframes[ch]; s 1251 libavcodec/flacenc.c int32_t *frame_end = &sub->residual[s->frame.blocksize]; s 1254 libavcodec/flacenc.c put_bits(&s->pb, 1, 0); s 1255 libavcodec/flacenc.c put_bits(&s->pb, 6, sub->type_code); s 1256 libavcodec/flacenc.c put_bits(&s->pb, 1, !!sub->wasted); s 1258 libavcodec/flacenc.c put_bits(&s->pb, sub->wasted, 1); s 1262 libavcodec/flacenc.c put_sbits(&s->pb, sub->obits, res[0]); s 1265 libavcodec/flacenc.c put_sbits(&s->pb, sub->obits, *res++); s 1269 libavcodec/flacenc.c put_sbits(&s->pb, sub->obits, *res++); s 1273 libavcodec/flacenc.c int cbits = s->options.lpc_coeff_precision; s 1274 libavcodec/flacenc.c put_bits( &s->pb, 4, cbits-1); s 1275 libavcodec/flacenc.c put_sbits(&s->pb, 5, sub->shift); s 1277 libavcodec/flacenc.c put_sbits(&s->pb, cbits, sub->coefs[i]); s 1281 libavcodec/flacenc.c put_bits(&s->pb, 2, sub->rc.coding_mode - 4); s 1285 libavcodec/flacenc.c psize = s->frame.blocksize >> porder; s 1286 libavcodec/flacenc.c put_bits(&s->pb, 4, porder); s 1292 libavcodec/flacenc.c put_bits(&s->pb, sub->rc.coding_mode, k); s 1294 libavcodec/flacenc.c set_sr_golomb_flac(&s->pb, *res++, k, INT32_MAX, 0); s 1302 libavcodec/flacenc.c static void write_frame_footer(FlacEncodeContext *s) s 1305 libavcodec/flacenc.c flush_put_bits(&s->pb); s 1306 libavcodec/flacenc.c crc = av_bswap16(av_crc(av_crc_get_table(AV_CRC_16_ANSI), 0, s->pb.buf, s 1307 libavcodec/flacenc.c put_bits_count(&s->pb)>>3)); s 1308 libavcodec/flacenc.c put_bits(&s->pb, 16, crc); s 1309 libavcodec/flacenc.c flush_put_bits(&s->pb); s 1313 libavcodec/flacenc.c static int write_frame(FlacEncodeContext *s, AVPacket *avpkt) s 1315 libavcodec/flacenc.c init_put_bits(&s->pb, avpkt->data, avpkt->size); s 1316 libavcodec/flacenc.c write_frame_header(s); s 1317 libavcodec/flacenc.c write_subframes(s); s 1318 libavcodec/flacenc.c write_frame_footer(s); s 1319 libavcodec/flacenc.c return put_bits_count(&s->pb) >> 3; s 1323 libavcodec/flacenc.c static int update_md5_sum(FlacEncodeContext *s, const void *samples) s 1326 libavcodec/flacenc.c int buf_size = s->frame.blocksize * s->channels * s 1327 libavcodec/flacenc.c ((s->avctx->bits_per_raw_sample + 7) / 8); s 1329 libavcodec/flacenc.c if (s->avctx->bits_per_raw_sample > 16 || HAVE_BIGENDIAN) { s 1330 libavcodec/flacenc.c av_fast_malloc(&s->md5_buffer, &s->md5_buffer_size, buf_size); s 1331 libavcodec/flacenc.c if (!s->md5_buffer) s 1335 libavcodec/flacenc.c if (s->avctx->bits_per_raw_sample <= 16) { s 1338 libavcodec/flacenc.c s->bdsp.bswap16_buf((uint16_t *) s->md5_buffer, s 1340 libavcodec/flacenc.c buf = s->md5_buffer; s 1345 libavcodec/flacenc.c uint8_t *tmp = s->md5_buffer; s 1347 libavcodec/flacenc.c for (i = 0; i < s->frame.blocksize * s->channels; i++) { s 1351 libavcodec/flacenc.c buf = s->md5_buffer; s 1353 libavcodec/flacenc.c av_md5_update(s->md5ctx, buf, buf_size); s 1362 libavcodec/flacenc.c FlacEncodeContext *s; s 1365 libavcodec/flacenc.c s = avctx->priv_data; s 1369 libavcodec/flacenc.c s->max_framesize = s->max_encoded_framesize; s 1370 libavcodec/flacenc.c av_md5_final(s->md5ctx, s->md5sum); s 1371 libavcodec/flacenc.c write_streaminfo(s, avctx->extradata); s 1375 libavcodec/flacenc.c if (avctx->side_data_only_packets && !s->flushed) { s 1378 libavcodec/flacenc.c if (!s->flushed) { s 1386 libavcodec/flacenc.c avpkt->pts = s->next_pts; s 1389 libavcodec/flacenc.c s->flushed = 1; s 1396 libavcodec/flacenc.c if (frame->nb_samples < s->frame.blocksize) { s 1397 libavcodec/flacenc.c s->max_framesize = ff_flac_get_max_frame_size(frame->nb_samples, s 1398 libavcodec/flacenc.c s->channels, s 1402 libavcodec/flacenc.c init_frame(s, frame->nb_samples); s 1404 libavcodec/flacenc.c copy_samples(s, frame->data[0]); s 1406 libavcodec/flacenc.c channel_decorrelation(s); s 1408 libavcodec/flacenc.c remove_wasted_bits(s); s 1410 libavcodec/flacenc.c frame_bytes = encode_frame(s); s 1414 libavcodec/flacenc.c if (frame_bytes < 0 || frame_bytes > s->max_framesize) { s 1415 libavcodec/flacenc.c s->frame.verbatim_only = 1; s 1416 libavcodec/flacenc.c frame_bytes = encode_frame(s); s 1426 libavcodec/flacenc.c out_bytes = write_frame(s, avpkt); s 1428 libavcodec/flacenc.c s->frame_count++; s 1429 libavcodec/flacenc.c s->sample_count += frame->nb_samples; s 1430 libavcodec/flacenc.c if ((ret = update_md5_sum(s, frame->data[0])) < 0) { s 1434 libavcodec/flacenc.c if (out_bytes > s->max_encoded_framesize) s 1435 libavcodec/flacenc.c s->max_encoded_framesize = out_bytes; s 1436 libavcodec/flacenc.c if (out_bytes < s->min_framesize) s 1437 libavcodec/flacenc.c s->min_framesize = out_bytes; s 1443 libavcodec/flacenc.c s->next_pts = avpkt->pts + avpkt->duration; s 1453 libavcodec/flacenc.c FlacEncodeContext *s = avctx->priv_data; s 1454 libavcodec/flacenc.c av_freep(&s->md5ctx); s 1455 libavcodec/flacenc.c av_freep(&s->md5_buffer); s 1456 libavcodec/flacenc.c ff_lpc_end(&s->lpc_ctx); s 106 libavcodec/flashsv.c FlashSVContext *s = avctx->priv_data; s 107 libavcodec/flashsv.c inflateEnd(&s->zstream); s 109 libavcodec/flashsv.c av_frame_free(&s->frame); s 112 libavcodec/flashsv.c av_freep(&s->tmpblock); s 119 libavcodec/flashsv.c FlashSVContext *s = avctx->priv_data; s 122 libavcodec/flashsv.c s->avctx = avctx; s 123 libavcodec/flashsv.c s->zstream.zalloc = Z_NULL; s 124 libavcodec/flashsv.c s->zstream.zfree = Z_NULL; s 125 libavcodec/flashsv.c s->zstream.opaque = Z_NULL; s 126 libavcodec/flashsv.c zret = inflateInit(&s->zstream); s 133 libavcodec/flashsv.c s->frame = av_frame_alloc(); s 134 libavcodec/flashsv.c if (!s->frame) { s 141 libavcodec/flashsv.c static int flashsv2_prime(FlashSVContext *s, uint8_t *src, int size) s 153 libavcodec/flashsv.c s->zstream.next_in = src; s 154 libavcodec/flashsv.c s->zstream.avail_in = size; s 155 libavcodec/flashsv.c s->zstream.next_out = s->tmpblock; s 156 libavcodec/flashsv.c s->zstream.avail_out = s->block_size * 3; s 157 libavcodec/flashsv.c inflate(&s->zstream, Z_SYNC_FLUSH); s 161 libavcodec/flashsv.c zs.next_in = s->tmpblock; s 162 libavcodec/flashsv.c zs.avail_in = s->block_size * 3 - s->zstream.avail_out; s 163 libavcodec/flashsv.c zs.next_out = s->deflate_block; s 164 libavcodec/flashsv.c zs.avail_out = s->deflate_block_size; s 168 libavcodec/flashsv.c if ((zret = inflateReset(&s->zstream)) != Z_OK) { s 169 libavcodec/flashsv.c av_log(s->avctx, AV_LOG_ERROR, "Inflate reset error: %d\n", zret); s 173 libavcodec/flashsv.c s->zstream.next_in = s->deflate_block; s 174 libavcodec/flashsv.c s->zstream.avail_in = s->deflate_block_size - zs.avail_out; s 175 libavcodec/flashsv.c s->zstream.next_out = s->tmpblock; s 176 libavcodec/flashsv.c s->zstream.avail_out = s->block_size * 3; s 177 libavcodec/flashsv.c inflate(&s->zstream, Z_SYNC_FLUSH); s 187 libavcodec/flashsv.c struct FlashSVContext *s = avctx->priv_data; s 188 libavcodec/flashsv.c uint8_t *line = s->tmpblock; s 190 libavcodec/flashsv.c int ret = inflateReset(&s->zstream); s 195 libavcodec/flashsv.c if (s->zlibprime_curr || s->zlibprime_prev) { s 196 libavcodec/flashsv.c ret = flashsv2_prime(s, s 197 libavcodec/flashsv.c s->blocks[blk_idx].pos, s 198 libavcodec/flashsv.c s->blocks[blk_idx].size); s 202 libavcodec/flashsv.c s->zstream.next_in = avpkt->data + get_bits_count(gb) / 8; s 203 libavcodec/flashsv.c s->zstream.avail_in = block_size; s 204 libavcodec/flashsv.c s->zstream.next_out = s->tmpblock; s 205 libavcodec/flashsv.c s->zstream.avail_out = s->block_size * 3; s 206 libavcodec/flashsv.c ret = inflate(&s->zstream, Z_FINISH); s 209 libavcodec/flashsv.c inflateSync(&s->zstream); s 210 libavcodec/flashsv.c ret = inflate(&s->zstream, Z_FINISH); s 217 libavcodec/flashsv.c if (s->is_keyframe) { s 218 libavcodec/flashsv.c s->blocks[blk_idx].pos = s->keyframedata + (get_bits_count(gb) / 8); s 219 libavcodec/flashsv.c s->blocks[blk_idx].size = block_size; s 222 libavcodec/flashsv.c y_pos += s->diff_start; s 224 libavcodec/flashsv.c if (!s->color_depth) { s 227 libavcodec/flashsv.c for (k = 1; k <= s->diff_height; k++) { s 228 libavcodec/flashsv.c memcpy(s->frame->data[0] + x_pos * 3 + s 229 libavcodec/flashsv.c (s->image_height - y_pos - k) * s->frame->linesize[0], s 236 libavcodec/flashsv.c ret = decode_hybrid(s->tmpblock, s->zstream.next_out, s 237 libavcodec/flashsv.c s->frame->data[0], s 238 libavcodec/flashsv.c s->image_height - (y_pos + 1 + s->diff_height), s 239 libavcodec/flashsv.c x_pos, s->diff_height, width, s 240 libavcodec/flashsv.c s->frame->linesize[0], s->pal); s 270 libavcodec/flashsv.c FlashSVContext *s = avctx->priv_data; s 273 libavcodec/flashsv.c int last_blockwidth = s->block_width; s 274 libavcodec/flashsv.c int last_blockheight= s->block_height; s 286 libavcodec/flashsv.c s->block_width = 16 * (get_bits(&gb, 4) + 1); s 287 libavcodec/flashsv.c s->image_width = get_bits(&gb, 12); s 288 libavcodec/flashsv.c s->block_height = 16 * (get_bits(&gb, 4) + 1); s 289 libavcodec/flashsv.c s->image_height = get_bits(&gb, 12); s 291 libavcodec/flashsv.c if ( last_blockwidth != s->block_width s 292 libavcodec/flashsv.c || last_blockheight!= s->block_height) s 293 libavcodec/flashsv.c av_freep(&s->blocks); s 295 libavcodec/flashsv.c if (s->ver == 2) { s 308 libavcodec/flashsv.c h_blocks = s->image_width / s->block_width; s 309 libavcodec/flashsv.c h_part = s->image_width % s->block_width; s 310 libavcodec/flashsv.c v_blocks = s->image_height / s->block_height; s 311 libavcodec/flashsv.c v_part = s->image_height % s->block_height; s 315 libavcodec/flashsv.c if (s->block_size < s->block_width * s->block_height) { s 316 libavcodec/flashsv.c int tmpblock_size = 3 * s->block_width * s->block_height, err; s 318 libavcodec/flashsv.c if ((err = av_reallocp(&s->tmpblock, tmpblock_size)) < 0) { s 319 libavcodec/flashsv.c s->block_size = 0; s 324 libavcodec/flashsv.c if (s->ver == 2) { s 325 libavcodec/flashsv.c s->deflate_block_size = calc_deflate_block_size(tmpblock_size); s 326 libavcodec/flashsv.c if (s->deflate_block_size <= 0) { s 331 libavcodec/flashsv.c if ((err = av_reallocp(&s->deflate_block, s->deflate_block_size)) < 0) { s 332 libavcodec/flashsv.c s->block_size = 0; s 338 libavcodec/flashsv.c s->block_size = s->block_width * s->block_height; s 342 libavcodec/flashsv.c if ((ret = ff_set_dimensions(avctx, s->image_width, s->image_height)) < 0) s 347 libavcodec/flashsv.c if (avctx->width != s->image_width || avctx->height != s->image_height) { s 351 libavcodec/flashsv.c avctx->height, avctx->width, s->image_height, s->image_width); s 356 libavcodec/flashsv.c s->is_keyframe = (avpkt->flags & AV_PKT_FLAG_KEY) && (s->ver == 2); s 357 libavcodec/flashsv.c if (s->is_keyframe) { s 359 libavcodec/flashsv.c if ((err = av_reallocp(&s->keyframedata, avpkt->size)) < 0) s 361 libavcodec/flashsv.c memcpy(s->keyframedata, avpkt->data, avpkt->size); s 363 libavcodec/flashsv.c if(s->ver == 2 && !s->blocks) s 364 libavcodec/flashsv.c s->blocks = av_mallocz((v_blocks + !!v_part) * (h_blocks + !!h_part) * s 365 libavcodec/flashsv.c sizeof(s->blocks[0])); s 368 libavcodec/flashsv.c s->image_width, s->image_height, s->block_width, s->block_height, s 371 libavcodec/flashsv.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 377 libavcodec/flashsv.c int y_pos = j * s->block_height; // vertical position in frame s 378 libavcodec/flashsv.c int cur_blk_height = (j < v_blocks) ? s->block_height : v_part; s 382 libavcodec/flashsv.c int x_pos = i * s->block_width; // horizontal position in frame s 383 libavcodec/flashsv.c int cur_blk_width = (i < h_blocks) ? s->block_width : h_part; s 389 libavcodec/flashsv.c s->color_depth = 0; s 390 libavcodec/flashsv.c s->zlibprime_curr = 0; s 391 libavcodec/flashsv.c s->zlibprime_prev = 0; s 392 libavcodec/flashsv.c s->diff_start = 0; s 393 libavcodec/flashsv.c s->diff_height = cur_blk_height; s 396 libavcodec/flashsv.c av_frame_unref(s->frame); s 400 libavcodec/flashsv.c if (s->ver == 2 && size) { s 402 libavcodec/flashsv.c s->color_depth = get_bits(&gb, 2); s 404 libavcodec/flashsv.c s->zlibprime_curr = get_bits1(&gb); s 405 libavcodec/flashsv.c s->zlibprime_prev = get_bits1(&gb); s 407 libavcodec/flashsv.c if (s->color_depth != 0 && s->color_depth != 2) { s 410 libavcodec/flashsv.c i, j, s->color_depth); s 419 libavcodec/flashsv.c if (!s->keyframe) { s 424 libavcodec/flashsv.c s->diff_start = get_bits(&gb, 8); s 425 libavcodec/flashsv.c s->diff_height = get_bits(&gb, 8); s 426 libavcodec/flashsv.c if (s->diff_start + s->diff_height > cur_blk_height) { s 429 libavcodec/flashsv.c s->diff_start, s->diff_height, cur_blk_height); s 434 libavcodec/flashsv.c i, j, s->diff_start, s->diff_height); s 438 libavcodec/flashsv.c if (s->zlibprime_prev) s 441 libavcodec/flashsv.c if (s->zlibprime_curr) { s 454 libavcodec/flashsv.c if (!s->blocks && (s->zlibprime_curr || s->zlibprime_prev)) { s 464 libavcodec/flashsv.c int off = (s->image_height - y_pos - 1) * s->frame->linesize[0]; s 467 libavcodec/flashsv.c int x = off - k * s->frame->linesize[0] + x_pos * 3; s 468 libavcodec/flashsv.c memcpy(s->frame->data[0] + x, s->keyframe + x, s 484 libavcodec/flashsv.c if (s->is_keyframe && s->ver == 2) { s 485 libavcodec/flashsv.c if (!s->keyframe) { s 486 libavcodec/flashsv.c s->keyframe = av_malloc(s->frame->linesize[0] * avctx->height); s 487 libavcodec/flashsv.c if (!s->keyframe) { s 492 libavcodec/flashsv.c memcpy(s->keyframe, s->frame->data[0], s 493 libavcodec/flashsv.c s->frame->linesize[0] * avctx->height); s 496 libavcodec/flashsv.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 553 libavcodec/flashsv.c FlashSVContext *s = avctx->priv_data; s 559 libavcodec/flashsv.c s->pal = ff_flashsv2_default_palette; s 560 libavcodec/flashsv.c s->ver = 2; s 567 libavcodec/flashsv.c FlashSVContext *s = avctx->priv_data; s 569 libavcodec/flashsv.c av_freep(&s->keyframedata); s 570 libavcodec/flashsv.c av_freep(&s->blocks); s 571 libavcodec/flashsv.c av_freep(&s->keyframe); s 572 libavcodec/flashsv.c av_freep(&s->deflate_block); s 127 libavcodec/flashsv2enc.c static av_cold void cleanup(FlashSV2Context * s) s 129 libavcodec/flashsv2enc.c av_freep(&s->encbuffer); s 130 libavcodec/flashsv2enc.c av_freep(&s->keybuffer); s 131 libavcodec/flashsv2enc.c av_freep(&s->databuffer); s 132 libavcodec/flashsv2enc.c av_freep(&s->blockbuffer); s 133 libavcodec/flashsv2enc.c av_freep(&s->current_frame); s 134 libavcodec/flashsv2enc.c av_freep(&s->key_frame); s 136 libavcodec/flashsv2enc.c av_freep(&s->frame_blocks); s 137 libavcodec/flashsv2enc.c av_freep(&s->key_blocks); s 140 libavcodec/flashsv2enc.c static void init_blocks(FlashSV2Context * s, Block * blocks, s 145 libavcodec/flashsv2enc.c for (col = 0; col < s->cols; col++) { s 146 libavcodec/flashsv2enc.c for (row = 0; row < s->rows; row++) { s 147 libavcodec/flashsv2enc.c b = blocks + (col + row * s->cols); s 148 libavcodec/flashsv2enc.c b->width = (col < s->cols - 1) ? s 149 libavcodec/flashsv2enc.c s->block_width : s 150 libavcodec/flashsv2enc.c s->image_width - col * s->block_width; s 152 libavcodec/flashsv2enc.c b->height = (row < s->rows - 1) ? s 153 libavcodec/flashsv2enc.c s->block_height : s 154 libavcodec/flashsv2enc.c s->image_height - row * s->block_height; s 166 libavcodec/flashsv2enc.c static void reset_stats(FlashSV2Context * s) s 169 libavcodec/flashsv2enc.c s->diff_blocks = 0.1; s 170 libavcodec/flashsv2enc.c s->tot_blocks = 1; s 171 libavcodec/flashsv2enc.c s->diff_lines = 0.1; s 172 libavcodec/flashsv2enc.c s->tot_lines = 1; s 173 libavcodec/flashsv2enc.c s->raw_size = s->comp_size = s->uncomp_size = 10; s 179 libavcodec/flashsv2enc.c FlashSV2Context *s = avctx->priv_data; s 181 libavcodec/flashsv2enc.c s->avctx = avctx; s 183 libavcodec/flashsv2enc.c s->comp = avctx->compression_level; s 184 libavcodec/flashsv2enc.c if (s->comp == -1) s 185 libavcodec/flashsv2enc.c s->comp = 9; s 186 libavcodec/flashsv2enc.c if (s->comp < 0 || s->comp > 9) { s 188 libavcodec/flashsv2enc.c "Compression level should be 0-9, not %d\n", s->comp); s 208 libavcodec/flashsv2enc.c s->last_key_frame = 0; s 210 libavcodec/flashsv2enc.c s->image_width = avctx->width; s 211 libavcodec/flashsv2enc.c s->image_height = avctx->height; s 213 libavcodec/flashsv2enc.c s->block_width = (s->image_width / 12) & ~15; s 214 libavcodec/flashsv2enc.c s->block_height = (s->image_height / 12) & ~15; s 216 libavcodec/flashsv2enc.c if(!s->block_width) s 217 libavcodec/flashsv2enc.c s->block_width = 1; s 218 libavcodec/flashsv2enc.c if(!s->block_height) s 219 libavcodec/flashsv2enc.c s->block_height = 1; s 221 libavcodec/flashsv2enc.c s->rows = (s->image_height + s->block_height - 1) / s->block_height; s 222 libavcodec/flashsv2enc.c s->cols = (s->image_width + s->block_width - 1) / s->block_width; s 224 libavcodec/flashsv2enc.c s->frame_size = s->image_width * s->image_height * 3; s 225 libavcodec/flashsv2enc.c s->blocks_size = s->rows * s->cols * sizeof(Block); s 227 libavcodec/flashsv2enc.c s->encbuffer = av_mallocz(s->frame_size); s 228 libavcodec/flashsv2enc.c s->keybuffer = av_mallocz(s->frame_size); s 229 libavcodec/flashsv2enc.c s->databuffer = av_mallocz(s->frame_size * 6); s 230 libavcodec/flashsv2enc.c s->current_frame = av_mallocz(s->frame_size); s 231 libavcodec/flashsv2enc.c s->key_frame = av_mallocz(s->frame_size); s 232 libavcodec/flashsv2enc.c s->frame_blocks = av_mallocz(s->blocks_size); s 233 libavcodec/flashsv2enc.c s->key_blocks = av_mallocz(s->blocks_size); s 235 libavcodec/flashsv2enc.c s->blockbuffer = NULL; s 236 libavcodec/flashsv2enc.c s->blockbuffer_size = 0; s 238 libavcodec/flashsv2enc.c init_blocks(s, s->frame_blocks, s->encbuffer, s->databuffer); s 239 libavcodec/flashsv2enc.c init_blocks(s, s->key_blocks, s->keybuffer, 0); s 240 libavcodec/flashsv2enc.c reset_stats(s); s 242 libavcodec/flashsv2enc.c s->total_bits = 1; s 245 libavcodec/flashsv2enc.c s->use_custom_palette = 0; s 246 libavcodec/flashsv2enc.c s->palette_type = -1; // so that the palette will be generated in reconfigure_at_keyframe s 248 libavcodec/flashsv2enc.c if (!s->encbuffer || !s->keybuffer || !s->databuffer s 249 libavcodec/flashsv2enc.c || !s->current_frame || !s->key_frame || !s->key_blocks s 250 libavcodec/flashsv2enc.c || !s->frame_blocks) { s 252 libavcodec/flashsv2enc.c cleanup(s); s 259 libavcodec/flashsv2enc.c static int new_key_frame(FlashSV2Context * s) s 262 libavcodec/flashsv2enc.c memcpy(s->key_blocks, s->frame_blocks, s->blocks_size); s 263 libavcodec/flashsv2enc.c memcpy(s->key_frame, s->current_frame, s->frame_size); s 265 libavcodec/flashsv2enc.c for (i = 0; i < s->rows * s->cols; i++) { s 266 libavcodec/flashsv2enc.c s->key_blocks[i].enc += (s->keybuffer - s->encbuffer); s 267 libavcodec/flashsv2enc.c s->key_blocks[i].sl_begin = 0; s 268 libavcodec/flashsv2enc.c s->key_blocks[i].sl_end = 0; s 269 libavcodec/flashsv2enc.c s->key_blocks[i].data = 0; s 271 libavcodec/flashsv2enc.c memcpy(s->keybuffer, s->encbuffer, s->frame_size); s 276 libavcodec/flashsv2enc.c static int write_palette(FlashSV2Context * s, uint8_t * buf, int buf_size) s 282 libavcodec/flashsv2enc.c static int write_header(FlashSV2Context * s, uint8_t * buf, int buf_size) s 292 libavcodec/flashsv2enc.c put_bits(&pb, 4, (s->block_width >> 4) - 1); s 293 libavcodec/flashsv2enc.c put_bits(&pb, 12, s->image_width); s 294 libavcodec/flashsv2enc.c put_bits(&pb, 4, (s->block_height >> 4) - 1); s 295 libavcodec/flashsv2enc.c put_bits(&pb, 12, s->image_height); s 300 libavcodec/flashsv2enc.c buf[buf_pos++] = s->flags; s 302 libavcodec/flashsv2enc.c if (s->flags & HAS_PALLET_INFO) { s 303 libavcodec/flashsv2enc.c len = write_palette(s, buf + buf_pos, buf_size - buf_pos); s 361 libavcodec/flashsv2enc.c z_stream s; s 363 libavcodec/flashsv2enc.c s.zalloc = NULL; s 364 libavcodec/flashsv2enc.c s.zfree = NULL; s 365 libavcodec/flashsv2enc.c s.opaque = NULL; s 366 libavcodec/flashsv2enc.c res = deflateInit(&s, comp); s 370 libavcodec/flashsv2enc.c s.next_in = prime->enc; s 371 libavcodec/flashsv2enc.c s.avail_in = prime->enc_size; s 372 libavcodec/flashsv2enc.c while (s.avail_in > 0) { s 373 libavcodec/flashsv2enc.c s.next_out = buf; s 374 libavcodec/flashsv2enc.c s.avail_out = *buf_size; s 375 libavcodec/flashsv2enc.c res = deflate(&s, Z_SYNC_FLUSH); s 380 libavcodec/flashsv2enc.c s.next_in = b->sl_begin; s 381 libavcodec/flashsv2enc.c s.avail_in = b->sl_end - b->sl_begin; s 382 libavcodec/flashsv2enc.c s.next_out = buf; s 383 libavcodec/flashsv2enc.c s.avail_out = *buf_size; s 384 libavcodec/flashsv2enc.c res = deflate(&s, Z_FINISH); s 385 libavcodec/flashsv2enc.c deflateEnd(&s); s 386 libavcodec/flashsv2enc.c *buf_size -= s.avail_out; s 553 libavcodec/flashsv2enc.c static int encode_block(FlashSV2Context *s, Palette * palette, Block * b, s 558 libavcodec/flashsv2enc.c uint8_t *buf = s->blockbuffer; s 590 libavcodec/flashsv2enc.c static int compare_sl(FlashSV2Context * s, Block * b, const uint8_t * src, s 597 libavcodec/flashsv2enc.c s->diff_lines++; s 608 libavcodec/flashsv2enc.c static int mark_all_blocks(FlashSV2Context * s, const uint8_t * src, int stride, s 613 libavcodec/flashsv2enc.c for (sl = s->image_height - 1; sl >= 0; sl--) { s 614 libavcodec/flashsv2enc.c for (col = 0; col < s->cols; col++) { s 615 libavcodec/flashsv2enc.c rsl = s->image_height - sl - 1; s 616 libavcodec/flashsv2enc.c b = s->frame_blocks + col + rsl / s->block_height * s->cols; s 617 libavcodec/flashsv2enc.c possl = stride * sl + col * s->block_width * 3; s 618 libavcodec/flashsv2enc.c pos = s->image_width * rsl * 3 + col * s->block_width * 3; s 619 libavcodec/flashsv2enc.c compare_sl(s, b, src + possl, s->current_frame + pos, s 620 libavcodec/flashsv2enc.c s->key_frame + pos, rsl % s->block_height, keyframe); s 624 libavcodec/flashsv2enc.c s->tot_lines += s->image_height * s->cols; s 629 libavcodec/flashsv2enc.c static int encode_all_blocks(FlashSV2Context * s, int keyframe) s 634 libavcodec/flashsv2enc.c for (row = 0; row < s->rows; row++) { s 635 libavcodec/flashsv2enc.c for (col = 0; col < s->cols; col++) { s 636 libavcodec/flashsv2enc.c b = s->frame_blocks + (row * s->cols + col); s 637 libavcodec/flashsv2enc.c prev = s->key_blocks + (row * s->cols + col); s 638 libavcodec/flashsv2enc.c b->flags = s->use15_7 ? COLORSPACE_15_7 : 0; s 650 libavcodec/flashsv2enc.c data = s->current_frame + s->image_width * 3 * s->block_height * row + s->block_width * col * 3; s 651 libavcodec/flashsv2enc.c res = encode_block(s, &s->palette, b, prev, data, s->image_width * 3, s->comp, s->dist, keyframe); s 654 libavcodec/flashsv2enc.c s->diff_blocks++; s 655 libavcodec/flashsv2enc.c s->comp_size += b->data_size; s 656 libavcodec/flashsv2enc.c s->uncomp_size += b->enc_size; s 663 libavcodec/flashsv2enc.c s->raw_size += s->image_width * s->image_height * 3; s 664 libavcodec/flashsv2enc.c s->tot_blocks += s->rows * s->cols; s 669 libavcodec/flashsv2enc.c static int write_all_blocks(FlashSV2Context * s, uint8_t * buf, s 674 libavcodec/flashsv2enc.c for (row = 0; row < s->rows; row++) { s 675 libavcodec/flashsv2enc.c for (col = 0; col < s->cols; col++) { s 676 libavcodec/flashsv2enc.c b = s->frame_blocks + row * s->cols + col; s 687 libavcodec/flashsv2enc.c static int write_bitstream(FlashSV2Context * s, const uint8_t * src, int stride, s 692 libavcodec/flashsv2enc.c res = mark_all_blocks(s, src, stride, keyframe); s 695 libavcodec/flashsv2enc.c res = encode_all_blocks(s, keyframe); s 699 libavcodec/flashsv2enc.c res = write_header(s, buf, buf_size); s 705 libavcodec/flashsv2enc.c res = write_all_blocks(s, buf + buf_pos, buf_size - buf_pos); s 710 libavcodec/flashsv2enc.c s->total_bits += ((double) buf_pos) * 8.0; s 716 libavcodec/flashsv2enc.c static void recommend_keyframe(FlashSV2Context * s, int *keyframe) s 720 libavcodec/flashsv2enc.c if (s->avctx->gop_size > 0) { s 721 libavcodec/flashsv2enc.c block_ratio = s->diff_blocks / s->tot_blocks; s 722 libavcodec/flashsv2enc.c line_ratio = s->diff_lines / s->tot_lines; s 723 libavcodec/flashsv2enc.c enc_ratio = s->uncomp_size / s->raw_size; s 724 libavcodec/flashsv2enc.c comp_ratio = s->comp_size / s->uncomp_size; s 725 libavcodec/flashsv2enc.c data_ratio = s->comp_size / s->raw_size; s 742 libavcodec/flashsv2enc.c static int optimum_block_width(FlashSV2Context * s) s 745 libavcodec/flashsv2enc.c double save = (1-pow(s->diff_lines/s->diff_blocks/s->block_height, 0.5)) * s->comp_size/s->tot_blocks; s 746 libavcodec/flashsv2enc.c double width = block_size_fraction * sqrt(0.5 * save * s->rows * s->cols) * s->image_width; s 754 libavcodec/flashsv2enc.c static int optimum_block_height(FlashSV2Context * s) s 757 libavcodec/flashsv2enc.c double save = (1-pow(s->diff_lines/s->diff_blocks/s->block_height, 0.5)) * s->comp_size/s->tot_blocks; s 758 libavcodec/flashsv2enc.c double height = block_size_fraction * sqrt(0.5 * save * s->rows * s->cols) * s->image_height; s 766 libavcodec/flashsv2enc.c static int optimum_use15_7(FlashSV2Context * s) s 769 libavcodec/flashsv2enc.c double ideal = ((double)(s->avctx->bit_rate * s->avctx->time_base.den * s->avctx->ticks_per_frame)) / s 770 libavcodec/flashsv2enc.c ((double) s->avctx->time_base.num) * s->avctx->frame_number; s 771 libavcodec/flashsv2enc.c if (ideal + use15_7_threshold < s->total_bits) { s 777 libavcodec/flashsv2enc.c return s->avctx->global_quality == 0; s 781 libavcodec/flashsv2enc.c static int optimum_dist(FlashSV2Context * s) s 785 libavcodec/flashsv2enc.c s->avctx->bit_rate * s->avctx->time_base.den * s 786 libavcodec/flashsv2enc.c s->avctx->ticks_per_frame; s 787 libavcodec/flashsv2enc.c int dist = pow((s->total_bits / ideal) * color15_7_factor, 3); s 788 libavcodec/flashsv2enc.c av_log(s->avctx, AV_LOG_DEBUG, "dist: %d\n", dist); s 796 libavcodec/flashsv2enc.c static int reconfigure_at_keyframe(FlashSV2Context * s, const uint8_t * image, s 801 libavcodec/flashsv2enc.c int block_width = optimum_block_width (s); s 802 libavcodec/flashsv2enc.c int block_height = optimum_block_height(s); s 804 libavcodec/flashsv2enc.c s->rows = (s->image_height + block_height - 1) / block_height; s 805 libavcodec/flashsv2enc.c s->cols = (s->image_width + block_width - 1) / block_width; s 807 libavcodec/flashsv2enc.c if (block_width != s->block_width || block_height != s->block_height) { s 808 libavcodec/flashsv2enc.c s->block_width = block_width; s 809 libavcodec/flashsv2enc.c s->block_height = block_height; s 810 libavcodec/flashsv2enc.c if (s->rows * s->cols > s->blocks_size / sizeof(Block)) { s 811 libavcodec/flashsv2enc.c s->frame_blocks = av_realloc_array(s->frame_blocks, s->rows, s->cols * sizeof(Block)); s 812 libavcodec/flashsv2enc.c s->key_blocks = av_realloc_array(s->key_blocks, s->cols, s->rows * sizeof(Block)); s 813 libavcodec/flashsv2enc.c if (!s->frame_blocks || !s->key_blocks) { s 814 libavcodec/flashsv2enc.c av_log(s->avctx, AV_LOG_ERROR, "Memory allocation failed.\n"); s 817 libavcodec/flashsv2enc.c s->blocks_size = s->rows * s->cols * sizeof(Block); s 819 libavcodec/flashsv2enc.c init_blocks(s, s->frame_blocks, s->encbuffer, s->databuffer); s 820 libavcodec/flashsv2enc.c init_blocks(s, s->key_blocks, s->keybuffer, 0); s 822 libavcodec/flashsv2enc.c av_fast_malloc(&s->blockbuffer, &s->blockbuffer_size, block_width * block_height * 6); s 823 libavcodec/flashsv2enc.c if (!s->blockbuffer) { s 824 libavcodec/flashsv2enc.c av_log(s->avctx, AV_LOG_ERROR, "Could not allocate block buffer.\n"); s 829 libavcodec/flashsv2enc.c s->use15_7 = optimum_use15_7(s); s 830 libavcodec/flashsv2enc.c if (s->use15_7) { s 831 libavcodec/flashsv2enc.c if ((s->use_custom_palette && s->palette_type != 1) || update_palette) { s 832 libavcodec/flashsv2enc.c res = generate_optimum_palette(&s->palette, image, s->image_width, s->image_height, stride); s 835 libavcodec/flashsv2enc.c s->palette_type = 1; s 836 libavcodec/flashsv2enc.c av_log(s->avctx, AV_LOG_DEBUG, "Generated optimum palette\n"); s 837 libavcodec/flashsv2enc.c } else if (!s->use_custom_palette && s->palette_type != 0) { s 838 libavcodec/flashsv2enc.c res = generate_default_palette(&s->palette); s 841 libavcodec/flashsv2enc.c s->palette_type = 0; s 842 libavcodec/flashsv2enc.c av_log(s->avctx, AV_LOG_DEBUG, "Generated default palette\n"); s 847 libavcodec/flashsv2enc.c reset_stats(s); s 855 libavcodec/flashsv2enc.c FlashSV2Context *const s = avctx->priv_data; s 859 libavcodec/flashsv2enc.c if ((res = ff_alloc_packet2(avctx, pkt, s->frame_size + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) s 868 libavcodec/flashsv2enc.c if (avctx->frame_number >= s->last_key_frame + avctx->gop_size) s 873 libavcodec/flashsv2enc.c && avctx->frame_number > s->last_key_frame + avctx->keyint_min) { s 874 libavcodec/flashsv2enc.c recommend_keyframe(s, &keyframe); s 880 libavcodec/flashsv2enc.c res = reconfigure_at_keyframe(s, p->data[0], p->linesize[0]); s 885 libavcodec/flashsv2enc.c if (s->use15_7) s 886 libavcodec/flashsv2enc.c s->dist = optimum_dist(s); s 888 libavcodec/flashsv2enc.c res = write_bitstream(s, p->data[0], p->linesize[0], pkt->data, pkt->size, keyframe); s 891 libavcodec/flashsv2enc.c new_key_frame(s); s 892 libavcodec/flashsv2enc.c s->last_key_frame = avctx->frame_number; s 905 libavcodec/flashsv2enc.c FlashSV2Context *s = avctx->priv_data; s 907 libavcodec/flashsv2enc.c cleanup(s); s 93 libavcodec/flashsvenc.c FlashSVContext *s = avctx->priv_data; s 95 libavcodec/flashsvenc.c deflateEnd(&s->zstream); s 97 libavcodec/flashsvenc.c av_freep(&s->encbuffer); s 98 libavcodec/flashsvenc.c av_freep(&s->previous_frame); s 99 libavcodec/flashsvenc.c av_freep(&s->tmpblock); s 106 libavcodec/flashsvenc.c FlashSVContext *s = avctx->priv_data; s 108 libavcodec/flashsvenc.c s->avctx = avctx; s 117 libavcodec/flashsvenc.c memset(&s->zstream, 0, sizeof(z_stream)); s 119 libavcodec/flashsvenc.c s->last_key_frame = 0; s 121 libavcodec/flashsvenc.c s->image_width = avctx->width; s 122 libavcodec/flashsvenc.c s->image_height = avctx->height; s 124 libavcodec/flashsvenc.c s->tmpblock = av_mallocz(3 * 256 * 256); s 125 libavcodec/flashsvenc.c s->encbuffer = av_mallocz(s->image_width * s->image_height * 3); s 127 libavcodec/flashsvenc.c if (!s->tmpblock || !s->encbuffer) { s 136 libavcodec/flashsvenc.c static int encode_bitstream(FlashSVContext *s, const AVFrame *p, uint8_t *buf, s 149 libavcodec/flashsvenc.c put_bits(&pb, 12, s->image_width); s 151 libavcodec/flashsvenc.c put_bits(&pb, 12, s->image_height); s 155 libavcodec/flashsvenc.c h_blocks = s->image_width / block_width; s 156 libavcodec/flashsvenc.c h_part = s->image_width % block_width; s 157 libavcodec/flashsvenc.c v_blocks = s->image_height / block_height; s 158 libavcodec/flashsvenc.c v_part = s->image_height % block_height; s 175 libavcodec/flashsvenc.c res = copy_region_enc(p->data[0], s->tmpblock, s 176 libavcodec/flashsvenc.c s->image_height - (y_pos + cur_blk_height + 1), s 182 libavcodec/flashsvenc.c ret = compress2(ptr + 2, &zsize, s->tmpblock, s 187 libavcodec/flashsvenc.c av_log(s->avctx, AV_LOG_ERROR, s 192 libavcodec/flashsvenc.c ff_dlog(s->avctx, "buf_pos = %d\n", buf_pos); s 213 libavcodec/flashsvenc.c FlashSVContext * const s = avctx->priv_data; s 222 libavcodec/flashsvenc.c s->previous_frame = av_mallocz(FFABS(p->linesize[0]) * s->image_height); s 223 libavcodec/flashsvenc.c if (!s->previous_frame) { s 231 libavcodec/flashsvenc.c pfptr = s->previous_frame - (s->image_height - 1) * p->linesize[0]; s 233 libavcodec/flashsvenc.c pfptr = s->previous_frame; s 237 libavcodec/flashsvenc.c avctx->frame_number >= s->last_key_frame + avctx->gop_size) { s 241 libavcodec/flashsvenc.c if ((res = ff_alloc_packet2(avctx, pkt, s->image_width * s->image_height * 3, 0)) < 0) s 244 libavcodec/flashsvenc.c pkt->size = encode_bitstream(s, p, pkt->data, pkt->size, opt_w * 16, opt_h * 16, s 249 libavcodec/flashsvenc.c memcpy(s->previous_frame, p->data[0], s->image_height * p->linesize[0]); s 251 libavcodec/flashsvenc.c memcpy(s->previous_frame, s 252 libavcodec/flashsvenc.c p->data[0] + p->linesize[0] * (s->image_height - 1), s 253 libavcodec/flashsvenc.c s->image_height * FFABS(p->linesize[0])); s 263 libavcodec/flashsvenc.c s->last_key_frame = avctx->frame_number; s 66 libavcodec/flicvideo.c av_log (s->avctx, AV_LOG_ERROR, "Invalid pixel_ptr = %d > pixel_limit = %d\n", \ s 82 libavcodec/flicvideo.c FlicDecodeContext *s = avctx->priv_data; s 96 libavcodec/flicvideo.c s->avctx = avctx; s 98 libavcodec/flicvideo.c if (s->avctx->extradata_size == 12) { s 100 libavcodec/flicvideo.c s->fli_type = FLC_MAGIC_CARPET_SYNTHETIC_TYPE_CODE; s 107 libavcodec/flicvideo.c s->palette[i] = AV_RL32(ptr); s 116 libavcodec/flicvideo.c s->fli_type = FLI_TYPE_CODE; s 119 libavcodec/flicvideo.c s->fli_type = AV_RL16(&fli_header[4]); s 127 libavcodec/flicvideo.c if ((s->fli_type == FLC_FLX_TYPE_CODE) && (depth == 16)) { s 141 libavcodec/flicvideo.c s->frame = av_frame_alloc(); s 142 libavcodec/flicvideo.c if (!s->frame) s 145 libavcodec/flicvideo.c s->new_palette = 0; s 154 libavcodec/flicvideo.c FlicDecodeContext *s = avctx->priv_data; s 188 libavcodec/flicvideo.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 191 libavcodec/flicvideo.c pixels = s->frame->data[0]; s 192 libavcodec/flicvideo.c pixel_limit = s->avctx->height * s->frame->linesize[0]; s 228 libavcodec/flicvideo.c if ((chunk_type == FLI_256_COLOR) && (s->fli_type != FLC_MAGIC_CARPET_SYNTHETIC_TYPE_CODE)) s 262 libavcodec/flicvideo.c if (s->palette[palette_ptr] != entry) s 263 libavcodec/flicvideo.c s->new_palette = 1; s 264 libavcodec/flicvideo.c s->palette[palette_ptr++] = entry; s 281 libavcodec/flicvideo.c if (line_packets > s->avctx->height) s 283 libavcodec/flicvideo.c y_ptr += line_packets * s->frame->linesize[0]; s 288 libavcodec/flicvideo.c pixel_ptr= y_ptr + s->frame->linesize[0] - 1; s 295 libavcodec/flicvideo.c pixel_countdown = s->avctx->width; s 323 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]; s 331 libavcodec/flicvideo.c if (starting_line >= s->avctx->height) s 334 libavcodec/flicvideo.c y_ptr += starting_line * s->frame->linesize[0]; s 340 libavcodec/flicvideo.c pixel_countdown = s->avctx->width; s 371 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]; s 379 libavcodec/flicvideo.c s->frame->linesize[0] * s->avctx->height); s 386 libavcodec/flicvideo.c for (lines = 0; lines < s->avctx->height; lines++) { s 391 libavcodec/flicvideo.c pixel_countdown = s->avctx->width; s 426 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]; s 432 libavcodec/flicvideo.c if (chunk_size - 6 != FFALIGN(s->avctx->width, 4) * s->avctx->height) { s 437 libavcodec/flicvideo.c for (y_ptr = 0; y_ptr < s->frame->linesize[0] * s->avctx->height; s 438 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]) { s 440 libavcodec/flicvideo.c s->avctx->width); s 441 libavcodec/flicvideo.c if (s->avctx->width & 3) s 442 libavcodec/flicvideo.c bytestream2_skip(&g2, 4 - (s->avctx->width & 3)); s 475 libavcodec/flicvideo.c memcpy(s->frame->data[1], s->palette, AVPALETTE_SIZE); s 476 libavcodec/flicvideo.c if (s->new_palette) { s 477 libavcodec/flicvideo.c s->frame->palette_has_changed = 1; s 478 libavcodec/flicvideo.c s->new_palette = 0; s 481 libavcodec/flicvideo.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 495 libavcodec/flicvideo.c FlicDecodeContext *s = avctx->priv_data; s 522 libavcodec/flicvideo.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 525 libavcodec/flicvideo.c pixels = s->frame->data[0]; s 526 libavcodec/flicvideo.c pixel_limit = s->avctx->height * s->frame->linesize[0]; s 578 libavcodec/flicvideo.c if (line_packets > s->avctx->height) s 580 libavcodec/flicvideo.c y_ptr += line_packets * s->frame->linesize[0]; s 585 libavcodec/flicvideo.c pixel_countdown = s->avctx->width; s 613 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]; s 626 libavcodec/flicvideo.c s->frame->linesize[0] * s->avctx->height); s 631 libavcodec/flicvideo.c for (lines = 0; lines < s->avctx->height; lines++) { s 636 libavcodec/flicvideo.c pixel_countdown = (s->avctx->width * 2); s 675 libavcodec/flicvideo.c pixel_countdown = s->avctx->width; s 681 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]; s 687 libavcodec/flicvideo.c for (lines = 0; lines < s->avctx->height; lines++) { s 692 libavcodec/flicvideo.c pixel_countdown = s->avctx->width; /* Width is in pixels, not bytes */ s 725 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]; s 732 libavcodec/flicvideo.c if (chunk_size - 6 > (unsigned int)(FFALIGN(s->avctx->width, 2) * s->avctx->height)*2) { s 738 libavcodec/flicvideo.c for (y_ptr = 0; y_ptr < s->frame->linesize[0] * s->avctx->height; s 739 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]) { s 741 libavcodec/flicvideo.c pixel_countdown = s->avctx->width; s 748 libavcodec/flicvideo.c if (s->avctx->width & 1) s 781 libavcodec/flicvideo.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 793 libavcodec/flicvideo.c FlicDecodeContext *s = avctx->priv_data; s 820 libavcodec/flicvideo.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 823 libavcodec/flicvideo.c pixels = s->frame->data[0]; s 824 libavcodec/flicvideo.c pixel_limit = s->avctx->height * s->frame->linesize[0]; s 876 libavcodec/flicvideo.c if (line_packets > s->avctx->height) s 878 libavcodec/flicvideo.c y_ptr += line_packets * s->frame->linesize[0]; s 883 libavcodec/flicvideo.c pixel_countdown = s->avctx->width; s 912 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]; s 925 libavcodec/flicvideo.c s->frame->linesize[0] * s->avctx->height); s 930 libavcodec/flicvideo.c for (lines = 0; lines < s->avctx->height; lines++) { s 935 libavcodec/flicvideo.c pixel_countdown = (s->avctx->width * 3); s 967 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]; s 973 libavcodec/flicvideo.c for (lines = 0; lines < s->avctx->height; lines++) { s 978 libavcodec/flicvideo.c pixel_countdown = s->avctx->width; /* Width is in pixels, not bytes */ s 1012 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]; s 1019 libavcodec/flicvideo.c if (chunk_size - 6 > (unsigned int)(FFALIGN(s->avctx->width, 2) * s->avctx->height)*3) { s 1024 libavcodec/flicvideo.c for (y_ptr = 0; y_ptr < s->frame->linesize[0] * s->avctx->height; s 1025 libavcodec/flicvideo.c y_ptr += s->frame->linesize[0]) { s 1027 libavcodec/flicvideo.c bytestream2_get_buffer(&g2, pixels + y_ptr, 3*s->avctx->width); s 1028 libavcodec/flicvideo.c if (s->avctx->width & 1) s 1061 libavcodec/flicvideo.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 1098 libavcodec/flicvideo.c FlicDecodeContext *s = avctx->priv_data; s 1100 libavcodec/flicvideo.c av_frame_free(&s->frame); s 28 libavcodec/flv.h void ff_flv_encode_picture_header(MpegEncContext *s, int picture_number); s 32 libavcodec/flv.h int ff_flv_decode_picture_header(MpegEncContext *s); s 28 libavcodec/flvdec.c int ff_flv_decode_picture_header(MpegEncContext *s) s 33 libavcodec/flvdec.c if (get_bits(&s->gb, 17) != 1) { s 34 libavcodec/flvdec.c av_log(s->avctx, AV_LOG_ERROR, "Bad picture start code\n"); s 37 libavcodec/flvdec.c format = get_bits(&s->gb, 5); s 39 libavcodec/flvdec.c av_log(s->avctx, AV_LOG_ERROR, "Bad picture format\n"); s 42 libavcodec/flvdec.c s->h263_flv = format + 1; s 43 libavcodec/flvdec.c s->picture_number = get_bits(&s->gb, 8); /* picture timestamp */ s 44 libavcodec/flvdec.c format = get_bits(&s->gb, 3); s 47 libavcodec/flvdec.c width = get_bits(&s->gb, 8); s 48 libavcodec/flvdec.c height = get_bits(&s->gb, 8); s 51 libavcodec/flvdec.c width = get_bits(&s->gb, 16); s 52 libavcodec/flvdec.c height = get_bits(&s->gb, 16); s 78 libavcodec/flvdec.c if (av_image_check_size(width, height, 0, s->avctx)) s 80 libavcodec/flvdec.c s->width = width; s 81 libavcodec/flvdec.c s->height = height; s 83 libavcodec/flvdec.c s->pict_type = AV_PICTURE_TYPE_I + get_bits(&s->gb, 2); s 84 libavcodec/flvdec.c s->droppable = s->pict_type > AV_PICTURE_TYPE_P; s 85 libavcodec/flvdec.c if (s->droppable) s 86 libavcodec/flvdec.c s->pict_type = AV_PICTURE_TYPE_P; s 88 libavcodec/flvdec.c skip_bits1(&s->gb); /* deblocking flag */ s 89 libavcodec/flvdec.c s->chroma_qscale = s->qscale = get_bits(&s->gb, 5); s 91 libavcodec/flvdec.c s->h263_plus = 0; s 93 libavcodec/flvdec.c s->unrestricted_mv = 1; s 94 libavcodec/flvdec.c s->h263_long_vectors = 0; s 97 libavcodec/flvdec.c if (skip_1stop_8data_bits(&s->gb) < 0) s 100 libavcodec/flvdec.c s->f_code = 1; s 102 libavcodec/flvdec.c if (s->ehc_mode) s 103 libavcodec/flvdec.c s->avctx->sample_aspect_ratio= (AVRational){1,2}; s 105 libavcodec/flvdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) { s 106 libavcodec/flvdec.c av_log(s->avctx, AV_LOG_DEBUG, "%c esc_type:%d, qp:%d num:%d\n", s 107 libavcodec/flvdec.c s->droppable ? 'D' : av_get_picture_type_char(s->pict_type), s 108 libavcodec/flvdec.c s->h263_flv - 1, s->qscale, s->picture_number); s 111 libavcodec/flvdec.c s->y_dc_scale_table = s->c_dc_scale_table = ff_mpeg1_dc_scale_table; s 27 libavcodec/flvenc.c void ff_flv_encode_picture_header(MpegEncContext *s, int picture_number) s 31 libavcodec/flvenc.c avpriv_align_put_bits(&s->pb); s 33 libavcodec/flvenc.c put_bits(&s->pb, 17, 1); s 35 libavcodec/flvenc.c put_bits(&s->pb, 5, (s->h263_flv - 1)); s 36 libavcodec/flvenc.c put_bits(&s->pb, 8, s 37 libavcodec/flvenc.c (((int64_t) s->picture_number * 30 * s->avctx->time_base.num) / // FIXME use timestamp s 38 libavcodec/flvenc.c s->avctx->time_base.den) & 0xff); /* TemporalReference */ s 39 libavcodec/flvenc.c if (s->width == 352 && s->height == 288) s 41 libavcodec/flvenc.c else if (s->width == 176 && s->height == 144) s 43 libavcodec/flvenc.c else if (s->width == 128 && s->height == 96) s 45 libavcodec/flvenc.c else if (s->width == 320 && s->height == 240) s 47 libavcodec/flvenc.c else if (s->width == 160 && s->height == 120) s 49 libavcodec/flvenc.c else if (s->width <= 255 && s->height <= 255) s 53 libavcodec/flvenc.c put_bits(&s->pb, 3, format); /* PictureSize */ s 55 libavcodec/flvenc.c put_bits(&s->pb, 8, s->width); s 56 libavcodec/flvenc.c put_bits(&s->pb, 8, s->height); s 58 libavcodec/flvenc.c put_bits(&s->pb, 16, s->width); s 59 libavcodec/flvenc.c put_bits(&s->pb, 16, s->height); s 61 libavcodec/flvenc.c put_bits(&s->pb, 2, s->pict_type == AV_PICTURE_TYPE_P); /* PictureType */ s 62 libavcodec/flvenc.c put_bits(&s->pb, 1, 1); /* DeblockingFlag: on */ s 63 libavcodec/flvenc.c put_bits(&s->pb, 5, s->qscale); /* Quantizer */ s 64 libavcodec/flvenc.c put_bits(&s->pb, 1, 0); /* ExtraInformation */ s 66 libavcodec/flvenc.c if (s->h263_aic) { s 67 libavcodec/flvenc.c s->y_dc_scale_table = s 68 libavcodec/flvenc.c s->c_dc_scale_table = ff_aic_dc_scale_table; s 70 libavcodec/flvenc.c s->y_dc_scale_table = s 71 libavcodec/flvenc.c s->c_dc_scale_table = ff_mpeg1_dc_scale_table; s 399 libavcodec/fmvc.c FMVCContext *s = avctx->priv_data; s 400 libavcodec/fmvc.c GetByteContext *gb = &s->gb; s 401 libavcodec/fmvc.c PutByteContext *pb = &s->pb; s 427 libavcodec/fmvc.c bytestream2_init_writer(pb, s->buffer, s->buffer_size); s 437 libavcodec/fmvc.c src = s->buffer; s 440 libavcodec/fmvc.c memcpy(dst, src, avctx->width * s->bpp); s 442 libavcodec/fmvc.c src += s->stride * 4; s 451 libavcodec/fmvc.c for (block = 0; block < s->nb_blocks; block++) s 452 libavcodec/fmvc.c s->blocks[block].xor = 0; s 455 libavcodec/fmvc.c if (nb_blocks > s->nb_blocks) s 458 libavcodec/fmvc.c bytestream2_init_writer(pb, s->pbuffer, s->pbuffer_size); s 466 libavcodec/fmvc.c if (offset >= s->nb_blocks) s 483 libavcodec/fmvc.c if (s->blocks[offset].size * 4 != bytestream2_tell_p(pb) - start) s 486 libavcodec/fmvc.c s->blocks[offset].xor = 1; s 489 libavcodec/fmvc.c src = (const uint32_t *)s->pbuffer; s 490 libavcodec/fmvc.c dst = (uint32_t *)s->buffer; s 492 libavcodec/fmvc.c for (block = 0, y = 0; y < s->yb; y++) { s 493 libavcodec/fmvc.c int block_h = s->blocks[block].h; s 496 libavcodec/fmvc.c for (x = 0; x < s->xb; x++) { s 497 libavcodec/fmvc.c int block_w = s->blocks[block].w; s 500 libavcodec/fmvc.c block_h = s->blocks[block].h; s 501 libavcodec/fmvc.c if (s->blocks[block].xor) { s 506 libavcodec/fmvc.c dst = &column[s->stride]; s 512 libavcodec/fmvc.c dst = &rect[block_h * s->stride]; s 515 libavcodec/fmvc.c ssrc = s->buffer; s 518 libavcodec/fmvc.c memcpy(ddst, ssrc, avctx->width * s->bpp); s 520 libavcodec/fmvc.c ssrc += s->stride * 4; s 531 libavcodec/fmvc.c FMVCContext *s = avctx->priv_data; s 550 libavcodec/fmvc.c s->stride = (avctx->width * avctx->bits_per_coded_sample + 31) / 32; s 551 libavcodec/fmvc.c s->xb = s->stride / BLOCK_WIDTH; s 552 libavcodec/fmvc.c m = s->stride % BLOCK_WIDTH; s 558 libavcodec/fmvc.c s->xb++; s 562 libavcodec/fmvc.c s->yb = avctx->height / BLOCK_HEIGHT; s 569 libavcodec/fmvc.c s->yb++; s 573 libavcodec/fmvc.c s->nb_blocks = s->xb * s->yb; s 574 libavcodec/fmvc.c if (!s->nb_blocks) s 576 libavcodec/fmvc.c s->blocks = av_calloc(s->nb_blocks, sizeof(*s->blocks)); s 577 libavcodec/fmvc.c if (!s->blocks) s 580 libavcodec/fmvc.c for (i = 0; i < s->yb; i++) { s 581 libavcodec/fmvc.c for (j = 0; j < s->xb; j++) { s 582 libavcodec/fmvc.c if (i != (s->yb - 1) || j != (s->xb - 1)) { s 583 libavcodec/fmvc.c if (i == s->yb - 1) { s 584 libavcodec/fmvc.c s->blocks[block].w = BLOCK_WIDTH; s 585 libavcodec/fmvc.c s->blocks[block].h = h; s 586 libavcodec/fmvc.c s->blocks[block].size = BLOCK_WIDTH * h; s 587 libavcodec/fmvc.c } else if (j == s->xb - 1) { s 588 libavcodec/fmvc.c s->blocks[block].w = w; s 589 libavcodec/fmvc.c s->blocks[block].h = BLOCK_HEIGHT; s 590 libavcodec/fmvc.c s->blocks[block].size = BLOCK_HEIGHT * w; s 592 libavcodec/fmvc.c s->blocks[block].w = BLOCK_WIDTH; s 593 libavcodec/fmvc.c s->blocks[block].h = BLOCK_HEIGHT; s 594 libavcodec/fmvc.c s->blocks[block].size = BLOCK_WIDTH * BLOCK_HEIGHT; s 597 libavcodec/fmvc.c s->blocks[block].w = w; s 598 libavcodec/fmvc.c s->blocks[block].h = h; s 599 libavcodec/fmvc.c s->blocks[block].size = w * h; s 605 libavcodec/fmvc.c s->bpp = avctx->bits_per_coded_sample >> 3; s 606 libavcodec/fmvc.c s->buffer_size = avctx->width * avctx->height * 4; s 607 libavcodec/fmvc.c s->pbuffer_size = avctx->width * avctx->height * 4; s 608 libavcodec/fmvc.c s->buffer = av_mallocz(s->buffer_size); s 609 libavcodec/fmvc.c s->pbuffer = av_mallocz(s->pbuffer_size); s 610 libavcodec/fmvc.c if (!s->buffer || !s->pbuffer) s 618 libavcodec/fmvc.c FMVCContext *s = avctx->priv_data; s 620 libavcodec/fmvc.c av_freep(&s->buffer); s 621 libavcodec/fmvc.c av_freep(&s->pbuffer); s 622 libavcodec/fmvc.c av_freep(&s->blocks); s 63 libavcodec/fraps.c FrapsContext * const s = avctx->priv_data; s 65 libavcodec/fraps.c s->avctx = avctx; s 66 libavcodec/fraps.c s->tmpbuf = NULL; s 68 libavcodec/fraps.c ff_bswapdsp_init(&s->bdsp); s 86 libavcodec/fraps.c static int fraps2_decode_plane(FrapsContext *s, uint8_t *dst, int stride, int w, s 98 libavcodec/fraps.c if ((ret = ff_huff_build_tree(s->avctx, &vlc, 256, VLC_BITS, s 105 libavcodec/fraps.c s->bdsp.bswap_buf((uint32_t *) s->tmpbuf, s 108 libavcodec/fraps.c if ((ret = init_get_bits8(&gb, s->tmpbuf, size)) < 0) s 136 libavcodec/fraps.c FrapsContext * const s = avctx->priv_data; s 212 libavcodec/fraps.c av_fast_padded_malloc(&s->tmpbuf, &s->tmpbuf_size, offs[i + 1] - offs[i] - 1024); s 213 libavcodec/fraps.c if (!s->tmpbuf) s 286 libavcodec/fraps.c if ((ret = fraps2_decode_plane(s, f->data[i], f->linesize[i], s 300 libavcodec/fraps.c if ((ret = fraps2_decode_plane(s, f->data[0] + i + (f->linesize[0] * (avctx->height - 1)), s 334 libavcodec/fraps.c FrapsContext *s = (FrapsContext*)avctx->priv_data; s 336 libavcodec/fraps.c av_freep(&s->tmpbuf); s 47 libavcodec/frwu.c FRWUContext *s = avctx->priv_data; s 85 libavcodec/frwu.c if (field ^ s->change_field_order) { s 87 libavcodec/frwu.c } else if (s->change_field_order) { s 91 libavcodec/frwu.c if (s->change_field_order && field && i == field_h - 1) s 35 libavcodec/g723_1_parser.c G723_1ParseContext *s = s1->priv_data; s 36 libavcodec/g723_1_parser.c ParseContext *pc = &s->pc; s 45 libavcodec/g723_1dec.c G723_1_Context *s = avctx->priv_data; s 54 libavcodec/g723_1dec.c G723_1_ChannelContext *p = &s->ch[ch]; s 858 libavcodec/g723_1dec.c G723_1_Context *s = avctx->priv_data; s 885 libavcodec/g723_1dec.c G723_1_ChannelContext *p = &s->ch[ch]; s 941 libavcodec/g723_1dec.c if (s->postfilter) { s 1011 libavcodec/g723_1dec.c if (s->postfilter) { s 45 libavcodec/g723_1enc.c G723_1_Context *s = avctx->priv_data; s 46 libavcodec/g723_1enc.c G723_1_ChannelContext *p = &s->ch[0]; s 1060 libavcodec/g723_1enc.c G723_1_Context *s = avctx->priv_data; s 1061 libavcodec/g723_1enc.c G723_1_ChannelContext *p = &s->ch[0]; s 43 libavcodec/g729_parser.c G729ParseContext *s = s1->priv_data; s 44 libavcodec/g729_parser.c ParseContext *pc = &s->pc; s 47 libavcodec/g729_parser.c if (!s->block_size) { s 49 libavcodec/g729_parser.c s->block_size = (avctx->bit_rate < 8000) ? G729D_6K4_BLOCK_SIZE : G729_8K_BLOCK_SIZE; s 51 libavcodec/g729_parser.c s->block_size++; s 52 libavcodec/g729_parser.c s->block_size *= avctx->channels; s 53 libavcodec/g729_parser.c s->duration = avctx->frame_size; s 56 libavcodec/g729_parser.c if (!s->block_size) { s 62 libavcodec/g729_parser.c if (!s->remaining) s 63 libavcodec/g729_parser.c s->remaining = s->block_size; s 64 libavcodec/g729_parser.c if (s->remaining <= buf_size) { s 65 libavcodec/g729_parser.c next = s->remaining; s 66 libavcodec/g729_parser.c s->remaining = 0; s 69 libavcodec/g729_parser.c s->remaining -= buf_size; s 78 libavcodec/g729_parser.c s1->duration = s->duration; s 351 libavcodec/g729dec.c G729Context *s = avctx->priv_data; s 365 libavcodec/g729dec.c s->channel_context = av_mallocz(sizeof(G729ChannelContext) * avctx->channels); s 396 libavcodec/g729dec.c ff_audiodsp_init(&s->adsp); s 397 libavcodec/g729dec.c s->adsp.scalarproduct_int16 = scalarproduct_int16_c; s 413 libavcodec/g729dec.c G729Context *s = avctx->priv_data; s 414 libavcodec/g729dec.c G729ChannelContext *ctx = s->channel_context; s 604 libavcodec/g729dec.c ctx->past_gain_code[0] = ff_acelp_decode_gain_code(&s->adsp, gain_corr_factor, s 694 libavcodec/g729dec.c &s->adsp, s 747 libavcodec/g729dec.c G729Context *s = avctx->priv_data; s 748 libavcodec/g729dec.c av_freep(&s->channel_context); s 72 libavcodec/get_bits.h static inline unsigned int get_bits(GetBitContext *s, int n); s 73 libavcodec/get_bits.h static inline void skip_bits(GetBitContext *s, int n); s 74 libavcodec/get_bits.h static inline unsigned int show_bits(GetBitContext *s, int n); s 219 libavcodec/get_bits.h static inline int get_bits_count(const GetBitContext *s) s 222 libavcodec/get_bits.h return s->index - s->bits_left; s 224 libavcodec/get_bits.h return s->index; s 229 libavcodec/get_bits.h static inline void refill_32(GetBitContext *s, int is_le) s 232 libavcodec/get_bits.h if (s->index >> 3 >= s->buffer_end - s->buffer) s 237 libavcodec/get_bits.h s->cache = (uint64_t)AV_RL32(s->buffer + (s->index >> 3)) << s->bits_left | s->cache; s 239 libavcodec/get_bits.h s->cache = s->cache | (uint64_t)AV_RB32(s->buffer + (s->index >> 3)) << (32 - s->bits_left); s 240 libavcodec/get_bits.h s->index += 32; s 241 libavcodec/get_bits.h s->bits_left += 32; s 244 libavcodec/get_bits.h static inline void refill_64(GetBitContext *s, int is_le) s 247 libavcodec/get_bits.h if (s->index >> 3 >= s->buffer_end - s->buffer) s 252 libavcodec/get_bits.h s->cache = AV_RL64(s->buffer + (s->index >> 3)); s 254 libavcodec/get_bits.h s->cache = AV_RB64(s->buffer + (s->index >> 3)); s 255 libavcodec/get_bits.h s->index += 64; s 256 libavcodec/get_bits.h s->bits_left = 64; s 259 libavcodec/get_bits.h static inline uint64_t get_val(GetBitContext *s, unsigned n, int is_le) s 264 libavcodec/get_bits.h ret = s->cache & ((UINT64_C(1) << n) - 1); s 265 libavcodec/get_bits.h s->cache >>= n; s 267 libavcodec/get_bits.h ret = s->cache >> (64 - n); s 268 libavcodec/get_bits.h s->cache <<= n; s 270 libavcodec/get_bits.h s->bits_left -= n; s 274 libavcodec/get_bits.h static inline unsigned show_val(const GetBitContext *s, unsigned n) s 277 libavcodec/get_bits.h return s->cache & ((UINT64_C(1) << n) - 1); s 279 libavcodec/get_bits.h return s->cache >> (64 - n); s 291 libavcodec/get_bits.h static inline void skip_bits_long(GetBitContext *s, int n) s 294 libavcodec/get_bits.h skip_bits(s, n); s 297 libavcodec/get_bits.h s->index += n; s 299 libavcodec/get_bits.h s->index += av_clip(n, -s->index, s->size_in_bits_plus8 - s->index); s 305 libavcodec/get_bits.h static inline void skip_remaining(GetBitContext *s, unsigned n) s 308 libavcodec/get_bits.h s->cache >>= n; s 310 libavcodec/get_bits.h s->cache <<= n; s 312 libavcodec/get_bits.h s->bits_left -= n; s 321 libavcodec/get_bits.h static inline int get_xbits(GetBitContext *s, int n) s 324 libavcodec/get_bits.h int32_t cache = show_bits(s, 32); s 326 libavcodec/get_bits.h skip_remaining(s, n); s 332 libavcodec/get_bits.h OPEN_READER(re, s); s 334 libavcodec/get_bits.h UPDATE_CACHE(re, s); s 335 libavcodec/get_bits.h cache = GET_CACHE(re, s); s 337 libavcodec/get_bits.h LAST_SKIP_BITS(re, s, n); s 338 libavcodec/get_bits.h CLOSE_READER(re, s); s 344 libavcodec/get_bits.h static inline int get_xbits_le(GetBitContext *s, int n) s 348 libavcodec/get_bits.h OPEN_READER(re, s); s 350 libavcodec/get_bits.h UPDATE_CACHE_LE(re, s); s 351 libavcodec/get_bits.h cache = GET_CACHE(re, s); s 353 libavcodec/get_bits.h LAST_SKIP_BITS(re, s, n); s 354 libavcodec/get_bits.h CLOSE_READER(re, s); s 359 libavcodec/get_bits.h static inline int get_sbits(GetBitContext *s, int n) s 364 libavcodec/get_bits.h tmp = sign_extend(get_bits(s, n), n); s 366 libavcodec/get_bits.h OPEN_READER(re, s); s 368 libavcodec/get_bits.h UPDATE_CACHE(re, s); s 369 libavcodec/get_bits.h tmp = SHOW_SBITS(re, s, n); s 370 libavcodec/get_bits.h LAST_SKIP_BITS(re, s, n); s 371 libavcodec/get_bits.h CLOSE_READER(re, s); s 379 libavcodec/get_bits.h static inline unsigned int get_bits(GetBitContext *s, int n) s 385 libavcodec/get_bits.h if (n > s->bits_left) { s 387 libavcodec/get_bits.h refill_32(s, 1); s 389 libavcodec/get_bits.h refill_32(s, 0); s 391 libavcodec/get_bits.h if (s->bits_left < 32) s 392 libavcodec/get_bits.h s->bits_left = n; s 396 libavcodec/get_bits.h tmp = get_val(s, n, 1); s 398 libavcodec/get_bits.h tmp = get_val(s, n, 0); s 401 libavcodec/get_bits.h OPEN_READER(re, s); s 403 libavcodec/get_bits.h UPDATE_CACHE(re, s); s 404 libavcodec/get_bits.h tmp = SHOW_UBITS(re, s, n); s 405 libavcodec/get_bits.h LAST_SKIP_BITS(re, s, n); s 406 libavcodec/get_bits.h CLOSE_READER(re, s); s 415 libavcodec/get_bits.h static av_always_inline int get_bitsz(GetBitContext *s, int n) s 417 libavcodec/get_bits.h return n ? get_bits(s, n) : 0; s 420 libavcodec/get_bits.h static inline unsigned int get_bits_le(GetBitContext *s, int n) s 424 libavcodec/get_bits.h if (n > s->bits_left) { s 425 libavcodec/get_bits.h refill_32(s, 1); s 426 libavcodec/get_bits.h if (s->bits_left < 32) s 427 libavcodec/get_bits.h s->bits_left = n; s 430 libavcodec/get_bits.h return get_val(s, n, 1); s 433 libavcodec/get_bits.h OPEN_READER(re, s); s 435 libavcodec/get_bits.h UPDATE_CACHE_LE(re, s); s 436 libavcodec/get_bits.h tmp = SHOW_UBITS_LE(re, s, n); s 437 libavcodec/get_bits.h LAST_SKIP_BITS(re, s, n); s 438 libavcodec/get_bits.h CLOSE_READER(re, s); s 446 libavcodec/get_bits.h static inline unsigned int show_bits(GetBitContext *s, int n) s 450 libavcodec/get_bits.h if (n > s->bits_left) s 452 libavcodec/get_bits.h refill_32(s, 1); s 454 libavcodec/get_bits.h refill_32(s, 0); s 457 libavcodec/get_bits.h tmp = show_val(s, n); s 459 libavcodec/get_bits.h OPEN_READER_NOSIZE(re, s); s 461 libavcodec/get_bits.h UPDATE_CACHE(re, s); s 462 libavcodec/get_bits.h tmp = SHOW_UBITS(re, s, n); s 467 libavcodec/get_bits.h static inline void skip_bits(GetBitContext *s, int n) s 470 libavcodec/get_bits.h if (n < s->bits_left) s 471 libavcodec/get_bits.h skip_remaining(s, n); s 473 libavcodec/get_bits.h n -= s->bits_left; s 474 libavcodec/get_bits.h s->cache = 0; s 475 libavcodec/get_bits.h s->bits_left = 0; s 481 libavcodec/get_bits.h s->index += skip; s 484 libavcodec/get_bits.h refill_64(s, 1); s 486 libavcodec/get_bits.h refill_64(s, 0); s 489 libavcodec/get_bits.h skip_remaining(s, n); s 492 libavcodec/get_bits.h OPEN_READER(re, s); s 493 libavcodec/get_bits.h LAST_SKIP_BITS(re, s, n); s 494 libavcodec/get_bits.h CLOSE_READER(re, s); s 498 libavcodec/get_bits.h static inline unsigned int get_bits1(GetBitContext *s) s 501 libavcodec/get_bits.h if (!s->bits_left) s 503 libavcodec/get_bits.h refill_64(s, 1); s 505 libavcodec/get_bits.h refill_64(s, 0); s 509 libavcodec/get_bits.h return get_val(s, 1, 1); s 511 libavcodec/get_bits.h return get_val(s, 1, 0); s 514 libavcodec/get_bits.h unsigned int index = s->index; s 515 libavcodec/get_bits.h uint8_t result = s->buffer[index >> 3]; s 524 libavcodec/get_bits.h if (s->index < s->size_in_bits_plus8) s 527 libavcodec/get_bits.h s->index = index; s 533 libavcodec/get_bits.h static inline unsigned int show_bits1(GetBitContext *s) s 535 libavcodec/get_bits.h return show_bits(s, 1); s 538 libavcodec/get_bits.h static inline void skip_bits1(GetBitContext *s) s 540 libavcodec/get_bits.h skip_bits(s, 1); s 546 libavcodec/get_bits.h static inline unsigned int get_bits_long(GetBitContext *s, int n) s 553 libavcodec/get_bits.h return get_bits(s, n); s 556 libavcodec/get_bits.h return get_bits(s, n); s 559 libavcodec/get_bits.h unsigned ret = get_bits(s, 16); s 560 libavcodec/get_bits.h return ret | (get_bits(s, n - 16) << 16); s 562 libavcodec/get_bits.h unsigned ret = get_bits(s, 16) << (n - 16); s 563 libavcodec/get_bits.h return ret | get_bits(s, n - 16); s 572 libavcodec/get_bits.h static inline uint64_t get_bits64(GetBitContext *s, int n) s 575 libavcodec/get_bits.h return get_bits_long(s, n); s 578 libavcodec/get_bits.h uint64_t ret = get_bits_long(s, 32); s 579 libavcodec/get_bits.h return ret | (uint64_t) get_bits_long(s, n - 32) << 32; s 581 libavcodec/get_bits.h uint64_t ret = (uint64_t) get_bits_long(s, n - 32) << 32; s 582 libavcodec/get_bits.h return ret | get_bits_long(s, 32); s 590 libavcodec/get_bits.h static inline int get_sbits_long(GetBitContext *s, int n) s 596 libavcodec/get_bits.h return sign_extend(get_bits_long(s, n), n); s 602 libavcodec/get_bits.h static inline unsigned int show_bits_long(GetBitContext *s, int n) s 605 libavcodec/get_bits.h return show_bits(s, n); s 607 libavcodec/get_bits.h GetBitContext gb = *s; s 612 libavcodec/get_bits.h static inline int check_marker(void *logctx, GetBitContext *s, const char *msg) s 614 libavcodec/get_bits.h int bit = get_bits1(s); s 617 libavcodec/get_bits.h get_bits_count(s) - 1, s->size_in_bits, msg); s 622 libavcodec/get_bits.h static inline int init_get_bits_xe(GetBitContext *s, const uint8_t *buffer, s 636 libavcodec/get_bits.h s->buffer = buffer; s 637 libavcodec/get_bits.h s->size_in_bits = bit_size; s 638 libavcodec/get_bits.h s->size_in_bits_plus8 = bit_size + 8; s 639 libavcodec/get_bits.h s->buffer_end = buffer + buffer_size; s 640 libavcodec/get_bits.h s->index = 0; s 643 libavcodec/get_bits.h s->cache = 0; s 644 libavcodec/get_bits.h s->bits_left = 0; s 645 libavcodec/get_bits.h refill_64(s, is_le); s 659 libavcodec/get_bits.h static inline int init_get_bits(GetBitContext *s, const uint8_t *buffer, s 663 libavcodec/get_bits.h return init_get_bits_xe(s, buffer, bit_size, 1); s 665 libavcodec/get_bits.h return init_get_bits_xe(s, buffer, bit_size, 0); s 677 libavcodec/get_bits.h static inline int init_get_bits8(GetBitContext *s, const uint8_t *buffer, s 682 libavcodec/get_bits.h return init_get_bits(s, buffer, byte_size * 8); s 685 libavcodec/get_bits.h static inline int init_get_bits8_le(GetBitContext *s, const uint8_t *buffer, s 690 libavcodec/get_bits.h return init_get_bits_xe(s, buffer, byte_size * 8, 1); s 693 libavcodec/get_bits.h static inline const uint8_t *align_get_bits(GetBitContext *s) s 695 libavcodec/get_bits.h int n = -get_bits_count(s) & 7; s 697 libavcodec/get_bits.h skip_bits(s, n); s 698 libavcodec/get_bits.h return s->buffer + (s->index >> 3); s 776 libavcodec/get_bits.h static inline int set_idx(GetBitContext *s, int code, int *n, int *nb_bits, s 782 libavcodec/get_bits.h idx = show_bits(s, *nb_bits) + code; s 797 libavcodec/get_bits.h static av_always_inline int get_vlc2(GetBitContext *s, VLC_TYPE (*table)[2], s 802 libavcodec/get_bits.h unsigned idx = show_bits(s, bits); s 807 libavcodec/get_bits.h skip_remaining(s, bits); s 808 libavcodec/get_bits.h code = set_idx(s, code, &n, &nb_bits, table); s 810 libavcodec/get_bits.h skip_remaining(s, nb_bits); s 811 libavcodec/get_bits.h code = set_idx(s, code, &n, &nb_bits, table); s 814 libavcodec/get_bits.h skip_remaining(s, n); s 820 libavcodec/get_bits.h OPEN_READER(re, s); s 821 libavcodec/get_bits.h UPDATE_CACHE(re, s); s 823 libavcodec/get_bits.h GET_VLC(code, re, s, table, bits, max_depth); s 825 libavcodec/get_bits.h CLOSE_READER(re, s); s 68 libavcodec/gif.c GIFContext *s = avctx->priv_data; s 69 libavcodec/gif.c int trans = s->transparent_index; s 125 libavcodec/gif.c GIFContext *s = avctx->priv_data; s 126 libavcodec/gif.c int trans = s->transparent_index; s 129 libavcodec/gif.c if ((s->flags & GF_OFFSETTING) && trans >= 0) { s 204 libavcodec/gif.c GIFContext *s = avctx->priv_data; s 207 libavcodec/gif.c if ((s->flags & GF_OFFSETTING) && s->last_frame && !palette) { s 208 libavcodec/gif.c const uint8_t *ref = s->last_frame->data[0]; s 209 libavcodec/gif.c const int ref_linesize = s->last_frame->linesize[0]; s 264 libavcodec/gif.c GIFContext *s = avctx->priv_data; s 266 libavcodec/gif.c int x_start = 0, y_start = 0, trans = s->transparent_index; s 267 libavcodec/gif.c int bcid = -1, honor_transparency = (s->flags & GF_TRANSDIFF) && s->last_frame && !palette; s 270 libavcodec/gif.c if (!s->image && avctx->frame_number && is_image_translucent(avctx, buf, linesize)) { s 279 libavcodec/gif.c if (s->image || !avctx->frame_number) { /* GIF header */ s 280 libavcodec/gif.c const uint32_t *global_palette = palette ? palette : s->palette; s 346 libavcodec/gif.c ff_lzw_encode_init(s->lzw, s->buf, s->buf_size, s 351 libavcodec/gif.c const int ref_linesize = s->last_frame->linesize[0]; s 352 libavcodec/gif.c const uint8_t *ref = s->last_frame->data[0] + y_start*ref_linesize + x_start; s 355 libavcodec/gif.c memcpy(s->tmpl, ptr, width); s 358 libavcodec/gif.c s->tmpl[x] = trans; s 359 libavcodec/gif.c len += ff_lzw_encode(s->lzw, s->tmpl, width); s 365 libavcodec/gif.c len += ff_lzw_encode(s->lzw, ptr, width); s 369 libavcodec/gif.c len += ff_lzw_encode_flush(s->lzw, flush_put_bits); s 371 libavcodec/gif.c ptr = s->buf; s 387 libavcodec/gif.c GIFContext *s = avctx->priv_data; s 394 libavcodec/gif.c s->transparent_index = -1; s 396 libavcodec/gif.c s->lzw = av_mallocz(ff_lzw_encode_state_size); s 397 libavcodec/gif.c s->buf_size = avctx->width*avctx->height*2 + 1000; s 398 libavcodec/gif.c s->buf = av_malloc(s->buf_size); s 399 libavcodec/gif.c s->tmpl = av_malloc(avctx->width); s 400 libavcodec/gif.c if (!s->tmpl || !s->buf || !s->lzw) s 403 libavcodec/gif.c if (avpriv_set_systematic_pal2(s->palette, avctx->pix_fmt) < 0) s 412 libavcodec/gif.c GIFContext *s = avctx->priv_data; s 425 libavcodec/gif.c if (!s->palette_loaded) { s 426 libavcodec/gif.c memcpy(s->palette, palette, AVPALETTE_SIZE); s 427 libavcodec/gif.c s->transparent_index = get_palette_transparency_index(palette); s 428 libavcodec/gif.c s->palette_loaded = 1; s 429 libavcodec/gif.c } else if (!memcmp(s->palette, palette, AVPALETTE_SIZE)) { s 436 libavcodec/gif.c if (!s->last_frame && !s->image) { s 437 libavcodec/gif.c s->last_frame = av_frame_alloc(); s 438 libavcodec/gif.c if (!s->last_frame) s 442 libavcodec/gif.c if (!s->image) { s 443 libavcodec/gif.c av_frame_unref(s->last_frame); s 444 libavcodec/gif.c ret = av_frame_ref(s->last_frame, (AVFrame*)pict); s 450 libavcodec/gif.c if (s->image || !avctx->frame_number) s 459 libavcodec/gif.c GIFContext *s = avctx->priv_data; s 461 libavcodec/gif.c av_freep(&s->lzw); s 462 libavcodec/gif.c av_freep(&s->buf); s 463 libavcodec/gif.c s->buf_size = 0; s 464 libavcodec/gif.c av_frame_free(&s->last_frame); s 465 libavcodec/gif.c av_freep(&s->tmpl); s 162 libavcodec/gif_parser.c static int gif_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 166 libavcodec/gif_parser.c GIFParseContext *g = s->priv_data; s 176 libavcodec/gif_parser.c s->duration = g->delay; s 79 libavcodec/gifdec.c static void gif_read_palette(GifState *s, uint32_t *pal, int nb) s 84 libavcodec/gifdec.c *pal = (0xffu << 24) | bytestream2_get_be24u(&s->gb); s 130 libavcodec/gifdec.c static int gif_read_image(GifState *s, AVFrame *frame) s 139 libavcodec/gifdec.c if (bytestream2_get_bytes_left(&s->gb) < 9) s 142 libavcodec/gifdec.c left = bytestream2_get_le16u(&s->gb); s 143 libavcodec/gifdec.c top = bytestream2_get_le16u(&s->gb); s 144 libavcodec/gifdec.c width = bytestream2_get_le16u(&s->gb); s 145 libavcodec/gifdec.c height = bytestream2_get_le16u(&s->gb); s 146 libavcodec/gifdec.c flags = bytestream2_get_byteu(&s->gb); s 151 libavcodec/gifdec.c ff_dlog(s->avctx, "image x=%d y=%d w=%d h=%d\n", left, top, width, height); s 156 libavcodec/gifdec.c if (bytestream2_get_bytes_left(&s->gb) < pal_size * 3) s 159 libavcodec/gifdec.c gif_read_palette(s, s->local_palette, pal_size); s 160 libavcodec/gifdec.c pal = s->local_palette; s 162 libavcodec/gifdec.c if (!s->has_global_palette) { s 163 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_ERROR, "picture doesn't have either global or local palette.\n"); s 167 libavcodec/gifdec.c pal = s->global_palette; s 170 libavcodec/gifdec.c if (s->keyframe) { s 171 libavcodec/gifdec.c if (s->transparent_color_index == -1 && s->has_global_palette) { s 173 libavcodec/gifdec.c gif_fill(frame, s->bg_color); s 177 libavcodec/gifdec.c gif_fill(frame, s->trans_color); s 182 libavcodec/gifdec.c if (!width || width > s->screen_width) { s 183 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_WARNING, "Invalid image width: %d, truncating.\n", width); s 184 libavcodec/gifdec.c width = s->screen_width; s 186 libavcodec/gifdec.c if (left >= s->screen_width) { s 187 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid left position: %d.\n", left); s 190 libavcodec/gifdec.c if (!height || height > s->screen_height) { s 191 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_WARNING, "Invalid image height: %d, truncating.\n", height); s 192 libavcodec/gifdec.c height = s->screen_height; s 194 libavcodec/gifdec.c if (top >= s->screen_height) { s 195 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid top position: %d.\n", top); s 198 libavcodec/gifdec.c if (left + width > s->screen_width) { s 200 libavcodec/gifdec.c pw = s->screen_width - left; s 201 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_WARNING, "Image too wide by %d, truncating.\n", s 202 libavcodec/gifdec.c left + width - s->screen_width); s 206 libavcodec/gifdec.c if (top + height > s->screen_height) { s 208 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_WARNING, "Image too high by %d, truncating.\n", s 209 libavcodec/gifdec.c top + height - s->screen_height); s 210 libavcodec/gifdec.c height = s->screen_height - top; s 214 libavcodec/gifdec.c if (s->gce_prev_disposal == GCE_DISPOSAL_BACKGROUND) { s 215 libavcodec/gifdec.c gif_fill_rect(frame, s->stored_bg_color, s->gce_l, s->gce_t, s->gce_w, s->gce_h); s 216 libavcodec/gifdec.c } else if (s->gce_prev_disposal == GCE_DISPOSAL_RESTORE) { s 217 libavcodec/gifdec.c gif_copy_img_rect(s->stored_img, (uint32_t *)frame->data[0], s 218 libavcodec/gifdec.c frame->linesize[0] / sizeof(uint32_t), s->gce_l, s->gce_t, s->gce_w, s->gce_h); s 221 libavcodec/gifdec.c s->gce_prev_disposal = s->gce_disposal; s 223 libavcodec/gifdec.c if (s->gce_disposal != GCE_DISPOSAL_NONE) { s 224 libavcodec/gifdec.c s->gce_l = left; s->gce_t = top; s 225 libavcodec/gifdec.c s->gce_w = pw; s->gce_h = height; s 227 libavcodec/gifdec.c if (s->gce_disposal == GCE_DISPOSAL_BACKGROUND) { s 228 libavcodec/gifdec.c if (s->transparent_color_index >= 0) s 229 libavcodec/gifdec.c s->stored_bg_color = s->trans_color; s 231 libavcodec/gifdec.c s->stored_bg_color = s->bg_color; s 232 libavcodec/gifdec.c } else if (s->gce_disposal == GCE_DISPOSAL_RESTORE) { s 233 libavcodec/gifdec.c av_fast_malloc(&s->stored_img, &s->stored_img_size, frame->linesize[0] * frame->height); s 234 libavcodec/gifdec.c if (!s->stored_img) s 237 libavcodec/gifdec.c gif_copy_img_rect((uint32_t *)frame->data[0], s->stored_img, s 243 libavcodec/gifdec.c if (bytestream2_get_bytes_left(&s->gb) < 2) s 247 libavcodec/gifdec.c code_size = bytestream2_get_byteu(&s->gb); s 248 libavcodec/gifdec.c if ((ret = ff_lzw_decode_init(s->lzw, code_size, s->gb.buffer, s 249 libavcodec/gifdec.c bytestream2_get_bytes_left(&s->gb), FF_LZW_GIF)) < 0) { s 250 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_ERROR, "LZW init failed\n"); s 261 libavcodec/gifdec.c int count = ff_lzw_decode(s->lzw, s->idx_line, width); s 264 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_ERROR, "LZW decode failed\n"); s 270 libavcodec/gifdec.c for (px = ptr, idx = s->idx_line; px < pr; px++, idx++) { s 271 libavcodec/gifdec.c if (*idx != s->transparent_color_index) s 304 libavcodec/gifdec.c lzwed_len = ff_lzw_decode_tail(s->lzw); s 305 libavcodec/gifdec.c bytestream2_skipu(&s->gb, lzwed_len); s 309 libavcodec/gifdec.c s->transparent_color_index = -1; s 310 libavcodec/gifdec.c s->gce_disposal = GCE_DISPOSAL_NONE; s 315 libavcodec/gifdec.c static int gif_read_extension(GifState *s) s 321 libavcodec/gifdec.c if (bytestream2_get_bytes_left(&s->gb) < 2) s 324 libavcodec/gifdec.c ext_code = bytestream2_get_byteu(&s->gb); s 325 libavcodec/gifdec.c ext_len = bytestream2_get_byteu(&s->gb); s 327 libavcodec/gifdec.c ff_dlog(s->avctx, "ext_code=0x%x len=%d\n", ext_code, ext_len); s 336 libavcodec/gifdec.c if (bytestream2_get_bytes_left(&s->gb) < 5) s 339 libavcodec/gifdec.c gce_flags = bytestream2_get_byteu(&s->gb); s 340 libavcodec/gifdec.c bytestream2_skipu(&s->gb, 2); // delay during which the frame is shown s 341 libavcodec/gifdec.c gce_transparent_index = bytestream2_get_byteu(&s->gb); s 343 libavcodec/gifdec.c s->transparent_color_index = gce_transparent_index; s 345 libavcodec/gifdec.c s->transparent_color_index = -1; s 346 libavcodec/gifdec.c s->gce_disposal = (gce_flags >> 2) & 0x7; s 348 libavcodec/gifdec.c ff_dlog(s->avctx, "gce_flags=%x tcolor=%d disposal=%d\n", s 350 libavcodec/gifdec.c s->transparent_color_index, s->gce_disposal); s 352 libavcodec/gifdec.c if (s->gce_disposal > 3) { s 353 libavcodec/gifdec.c s->gce_disposal = GCE_DISPOSAL_NONE; s 354 libavcodec/gifdec.c ff_dlog(s->avctx, "invalid value in gce_disposal (%d). Using default value of 0.\n", ext_len); s 357 libavcodec/gifdec.c ext_len = bytestream2_get_byteu(&s->gb); s 365 libavcodec/gifdec.c if (bytestream2_get_bytes_left(&s->gb) < ext_len + 1) s 368 libavcodec/gifdec.c bytestream2_skipu(&s->gb, ext_len); s 369 libavcodec/gifdec.c ext_len = bytestream2_get_byteu(&s->gb); s 371 libavcodec/gifdec.c ff_dlog(s->avctx, "ext_len1=%d\n", ext_len); s 376 libavcodec/gifdec.c static int gif_read_header1(GifState *s) s 382 libavcodec/gifdec.c if (bytestream2_get_bytes_left(&s->gb) < 13) s 386 libavcodec/gifdec.c bytestream2_get_bufferu(&s->gb, sig, 6); s 392 libavcodec/gifdec.c s->transparent_color_index = -1; s 393 libavcodec/gifdec.c s->screen_width = bytestream2_get_le16u(&s->gb); s 394 libavcodec/gifdec.c s->screen_height = bytestream2_get_le16u(&s->gb); s 396 libavcodec/gifdec.c v = bytestream2_get_byteu(&s->gb); s 397 libavcodec/gifdec.c s->color_resolution = ((v & 0x70) >> 4) + 1; s 398 libavcodec/gifdec.c s->has_global_palette = (v & 0x80); s 399 libavcodec/gifdec.c s->bits_per_pixel = (v & 0x07) + 1; s 400 libavcodec/gifdec.c background_color_index = bytestream2_get_byteu(&s->gb); s 401 libavcodec/gifdec.c n = bytestream2_get_byteu(&s->gb); s 403 libavcodec/gifdec.c s->avctx->sample_aspect_ratio.num = n + 15; s 404 libavcodec/gifdec.c s->avctx->sample_aspect_ratio.den = 64; s 407 libavcodec/gifdec.c ff_dlog(s->avctx, "screen_w=%d screen_h=%d bpp=%d global_palette=%d\n", s 408 libavcodec/gifdec.c s->screen_width, s->screen_height, s->bits_per_pixel, s 409 libavcodec/gifdec.c s->has_global_palette); s 411 libavcodec/gifdec.c if (s->has_global_palette) { s 412 libavcodec/gifdec.c s->background_color_index = background_color_index; s 413 libavcodec/gifdec.c n = 1 << s->bits_per_pixel; s 414 libavcodec/gifdec.c if (bytestream2_get_bytes_left(&s->gb) < n * 3) s 417 libavcodec/gifdec.c gif_read_palette(s, s->global_palette, n); s 418 libavcodec/gifdec.c s->bg_color = s->global_palette[s->background_color_index]; s 420 libavcodec/gifdec.c s->background_color_index = -1; s 425 libavcodec/gifdec.c static int gif_parse_next_image(GifState *s, AVFrame *frame) s 427 libavcodec/gifdec.c while (bytestream2_get_bytes_left(&s->gb) > 0) { s 428 libavcodec/gifdec.c int code = bytestream2_get_byte(&s->gb); s 431 libavcodec/gifdec.c av_log(s->avctx, AV_LOG_DEBUG, "code=%02x '%c'\n", code, code); s 435 libavcodec/gifdec.c return gif_read_image(s, frame); s 437 libavcodec/gifdec.c if ((ret = gif_read_extension(s)) < 0) s 453 libavcodec/gifdec.c GifState *s = avctx->priv_data; s 455 libavcodec/gifdec.c s->avctx = avctx; s 458 libavcodec/gifdec.c s->frame = av_frame_alloc(); s 459 libavcodec/gifdec.c if (!s->frame) s 461 libavcodec/gifdec.c ff_lzw_decode_open(&s->lzw); s 462 libavcodec/gifdec.c if (!s->lzw) s 469 libavcodec/gifdec.c GifState *s = avctx->priv_data; s 472 libavcodec/gifdec.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 474 libavcodec/gifdec.c s->frame->pts = avpkt->pts; s 477 libavcodec/gifdec.c s->frame->pkt_pts = avpkt->pts; s 480 libavcodec/gifdec.c s->frame->pkt_dts = avpkt->dts; s 481 libavcodec/gifdec.c s->frame->pkt_duration = avpkt->duration; s 484 libavcodec/gifdec.c s->keyframe = memcmp(avpkt->data, gif87a_sig, 6) == 0 || s 487 libavcodec/gifdec.c s->keyframe = 0; s 490 libavcodec/gifdec.c if (s->keyframe) { s 491 libavcodec/gifdec.c s->keyframe_ok = 0; s 492 libavcodec/gifdec.c s->gce_prev_disposal = GCE_DISPOSAL_NONE; s 493 libavcodec/gifdec.c if ((ret = gif_read_header1(s)) < 0) s 496 libavcodec/gifdec.c if ((ret = ff_set_dimensions(avctx, s->screen_width, s->screen_height)) < 0) s 499 libavcodec/gifdec.c av_frame_unref(s->frame); s 500 libavcodec/gifdec.c if ((ret = ff_get_buffer(avctx, s->frame, 0)) < 0) s 503 libavcodec/gifdec.c av_fast_malloc(&s->idx_line, &s->idx_line_size, s->screen_width); s 504 libavcodec/gifdec.c if (!s->idx_line) s 507 libavcodec/gifdec.c s->frame->pict_type = AV_PICTURE_TYPE_I; s 508 libavcodec/gifdec.c s->frame->key_frame = 1; s 509 libavcodec/gifdec.c s->keyframe_ok = 1; s 511 libavcodec/gifdec.c if (!s->keyframe_ok) { s 516 libavcodec/gifdec.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 519 libavcodec/gifdec.c s->frame->pict_type = AV_PICTURE_TYPE_P; s 520 libavcodec/gifdec.c s->frame->key_frame = 0; s 523 libavcodec/gifdec.c ret = gif_parse_next_image(s, s->frame); s 527 libavcodec/gifdec.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 531 libavcodec/gifdec.c return bytestream2_tell(&s->gb); s 536 libavcodec/gifdec.c GifState *s = avctx->priv_data; s 538 libavcodec/gifdec.c ff_lzw_decode_close(&s->lzw); s 539 libavcodec/gifdec.c av_frame_free(&s->frame); s 540 libavcodec/gifdec.c av_freep(&s->idx_line); s 541 libavcodec/gifdec.c av_freep(&s->stored_img); s 565 libavcodec/golomb.h static inline int get_ue(GetBitContext *s, const char *file, const char *func, s 568 libavcodec/golomb.h int show = show_bits(s, 24); s 569 libavcodec/golomb.h int pos = get_bits_count(s); s 570 libavcodec/golomb.h int i = get_ue_golomb(s); s 571 libavcodec/golomb.h int len = get_bits_count(s) - pos; s 580 libavcodec/golomb.h static inline int get_se(GetBitContext *s, const char *file, const char *func, s 583 libavcodec/golomb.h int show = show_bits(s, 24); s 584 libavcodec/golomb.h int pos = get_bits_count(s); s 585 libavcodec/golomb.h int i = get_se_golomb(s); s 586 libavcodec/golomb.h int len = get_bits_count(s) - pos; s 595 libavcodec/golomb.h static inline int get_te(GetBitContext *s, int r, char *file, const char *func, s 598 libavcodec/golomb.h int show = show_bits(s, 24); s 599 libavcodec/golomb.h int pos = get_bits_count(s); s 600 libavcodec/golomb.h int i = get_te0_golomb(s, r); s 601 libavcodec/golomb.h int len = get_bits_count(s) - pos; s 43 libavcodec/gsm_parser.c GSMParseContext *s = s1->priv_data; s 44 libavcodec/gsm_parser.c ParseContext *pc = &s->pc; s 47 libavcodec/gsm_parser.c if (!s->block_size) { s 50 libavcodec/gsm_parser.c s->block_size = GSM_BLOCK_SIZE; s 51 libavcodec/gsm_parser.c s->duration = GSM_FRAME_SIZE; s 54 libavcodec/gsm_parser.c s->block_size = avctx->block_align ? avctx->block_align s 56 libavcodec/gsm_parser.c s->duration = GSM_FRAME_SIZE * 2; s 63 libavcodec/gsm_parser.c if (!s->remaining) s 64 libavcodec/gsm_parser.c s->remaining = s->block_size; s 65 libavcodec/gsm_parser.c if (s->remaining <= buf_size) { s 66 libavcodec/gsm_parser.c next = s->remaining; s 67 libavcodec/gsm_parser.c s->remaining = 0; s 70 libavcodec/gsm_parser.c s->remaining -= buf_size; s 79 libavcodec/gsm_parser.c s1->duration = s->duration; s 109 libavcodec/gsmdec.c GSMContext *s = avctx->priv_data; s 110 libavcodec/gsmdec.c memset(s, 0, sizeof(*s)); s 63 libavcodec/h261.c void ff_h261_loop_filter(MpegEncContext *s) s 65 libavcodec/h261.c H261Context *h = (H261Context *)s; s 66 libavcodec/h261.c const int linesize = s->linesize; s 67 libavcodec/h261.c const int uvlinesize = s->uvlinesize; s 68 libavcodec/h261.c uint8_t *dest_y = s->dest[0]; s 69 libavcodec/h261.c uint8_t *dest_cb = s->dest[1]; s 70 libavcodec/h261.c uint8_t *dest_cr = s->dest[2]; s 38 libavcodec/h261.h MpegEncContext s; s 62 libavcodec/h261.h void ff_h261_loop_filter(MpegEncContext *s); s 66 libavcodec/h261.h void ff_h261_reorder_mb_index(MpegEncContext *s); s 67 libavcodec/h261.h void ff_h261_encode_mb(MpegEncContext *s, int16_t block[6][64], s 69 libavcodec/h261.h void ff_h261_encode_picture_header(MpegEncContext *s, int picture_number); s 70 libavcodec/h261.h void ff_h261_encode_init(MpegEncContext *s); s 66 libavcodec/h261_parser.c static int h261_parse(AVCodecParserContext *s, s 71 libavcodec/h261_parser.c ParseContext *pc = s->priv_data; s 74 libavcodec/h261_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 75 libavcodec/h261dec.c MpegEncContext *const s = &h->s; s 78 libavcodec/h261dec.c ff_mpv_decode_defaults(s); s 79 libavcodec/h261dec.c ff_mpv_decode_init(s, avctx); s 81 libavcodec/h261dec.c s->out_format = FMT_H261; s 82 libavcodec/h261dec.c s->low_delay = 1; s 100 libavcodec/h261dec.c MpegEncContext *const s = &h->s; s 104 libavcodec/h261dec.c val = show_bits(&s->gb, 15); s 109 libavcodec/h261dec.c skip_bits(&s->gb, 16); s 114 libavcodec/h261dec.c h->gob_number = get_bits(&s->gb, 4); /* GN */ s 115 libavcodec/h261dec.c s->qscale = get_bits(&s->gb, 5); /* GQUANT */ s 118 libavcodec/h261dec.c if (s->mb_height == 18) { // CIF s 128 libavcodec/h261dec.c if (skip_1stop_8data_bits(&s->gb) < 0) s 131 libavcodec/h261dec.c if (s->qscale == 0) { s 132 libavcodec/h261dec.c av_log(s->avctx, AV_LOG_ERROR, "qscale has forbidden 0 value\n"); s 133 libavcodec/h261dec.c if (s->avctx->err_recognition & (AV_EF_BITSTREAM | AV_EF_COMPLIANT)) s 153 libavcodec/h261dec.c MpegEncContext *const s = &h->s; s 161 libavcodec/h261dec.c if (show_bits(&s->gb, 15) == 0) { s 167 libavcodec/h261dec.c s->gb = s->last_resync_gb; s 168 libavcodec/h261dec.c align_get_bits(&s->gb); s 169 libavcodec/h261dec.c left = get_bits_left(&s->gb); s 172 libavcodec/h261dec.c if (show_bits(&s->gb, 15) == 0) { s 173 libavcodec/h261dec.c GetBitContext bak = s->gb; s 179 libavcodec/h261dec.c s->gb = bak; s 181 libavcodec/h261dec.c skip_bits(&s->gb, 8); s 194 libavcodec/h261dec.c MpegEncContext *const s = &h->s; s 197 libavcodec/h261dec.c s->mb_intra = 0; s 202 libavcodec/h261dec.c s->mb_x = ((h->gob_number - 1) % 2) * 11 + i % 11; s 203 libavcodec/h261dec.c s->mb_y = ((h->gob_number - 1) / 2) * 3 + i / 11; s 204 libavcodec/h261dec.c xy = s->mb_x + s->mb_y * s->mb_stride; s 205 libavcodec/h261dec.c ff_init_block_index(s); s 206 libavcodec/h261dec.c ff_update_block_index(s); s 209 libavcodec/h261dec.c s->block_last_index[j] = -1; s 211 libavcodec/h261dec.c s->mv_dir = MV_DIR_FORWARD; s 212 libavcodec/h261dec.c s->mv_type = MV_TYPE_16X16; s 213 libavcodec/h261dec.c s->current_picture.mb_type[xy] = MB_TYPE_SKIP | MB_TYPE_16x16 | MB_TYPE_L0; s 214 libavcodec/h261dec.c s->mv[0][0][0] = 0; s 215 libavcodec/h261dec.c s->mv[0][0][1] = 0; s 216 libavcodec/h261dec.c s->mb_skipped = 1; s 219 libavcodec/h261dec.c if (s->current_picture.motion_val[0]) { s 220 libavcodec/h261dec.c int b_stride = 2*s->mb_width + 1; s 221 libavcodec/h261dec.c int b_xy = 2 * s->mb_x + (2 * s->mb_y) * b_stride; s 222 libavcodec/h261dec.c s->current_picture.motion_val[0][b_xy][0] = s->mv[0][0][0]; s 223 libavcodec/h261dec.c s->current_picture.motion_val[0][b_xy][1] = s->mv[0][0][1]; s 226 libavcodec/h261dec.c ff_mpv_reconstruct_mb(s, s->block); s 264 libavcodec/h261dec.c MpegEncContext *const s = &h->s; s 275 libavcodec/h261dec.c scan_table = s->intra_scantable.permutated; s 276 libavcodec/h261dec.c if (s->mb_intra) { s 278 libavcodec/h261dec.c level = get_bits(&s->gb, 8); s 281 libavcodec/h261dec.c av_log(s->avctx, AV_LOG_ERROR, "illegal dc %d at %d %d\n", s 282 libavcodec/h261dec.c level, s->mb_x, s->mb_y); s 296 libavcodec/h261dec.c int check = show_bits(&s->gb, 2); s 299 libavcodec/h261dec.c skip_bits(&s->gb, 2); s 307 libavcodec/h261dec.c s->block_last_index[n] = i - 1; s 311 libavcodec/h261dec.c OPEN_READER(re, &s->gb); s 314 libavcodec/h261dec.c UPDATE_CACHE(re, &s->gb); s 315 libavcodec/h261dec.c GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], TCOEFF_VLC_BITS, 2, 0); s 318 libavcodec/h261dec.c CLOSE_READER(re, &s->gb); s 319 libavcodec/h261dec.c av_log(s->avctx, AV_LOG_ERROR, "illegal ac vlc code at %dx%d\n", s 320 libavcodec/h261dec.c s->mb_x, s->mb_y); s 327 libavcodec/h261dec.c run = SHOW_UBITS(re, &s->gb, 6) + 1; s 328 libavcodec/h261dec.c SKIP_CACHE(re, &s->gb, 6); s 329 libavcodec/h261dec.c level = SHOW_SBITS(re, &s->gb, 8); s 330 libavcodec/h261dec.c SKIP_COUNTER(re, &s->gb, 6 + 8); s 334 libavcodec/h261dec.c if (SHOW_UBITS(re, &s->gb, 1)) s 336 libavcodec/h261dec.c SKIP_COUNTER(re, &s->gb, 1); s 340 libavcodec/h261dec.c CLOSE_READER(re, &s->gb); s 341 libavcodec/h261dec.c av_log(s->avctx, AV_LOG_ERROR, "run overflow at %dx%d\n", s 342 libavcodec/h261dec.c s->mb_x, s->mb_y); s 348 libavcodec/h261dec.c CLOSE_READER(re, &s->gb); s 350 libavcodec/h261dec.c s->block_last_index[n] = i; s 356 libavcodec/h261dec.c MpegEncContext *const s = &h->s; s 362 libavcodec/h261dec.c h->mba_diff = get_vlc2(&s->gb, h261_mba_vlc.table, s 374 libavcodec/h261dec.c if (get_bits_left(&s->gb) <= 7) s 377 libavcodec/h261dec.c av_log(s->avctx, AV_LOG_ERROR, "illegal mba at %d %d\n", s->mb_x, s->mb_y); s 387 libavcodec/h261dec.c s->mb_x = ((h->gob_number - 1) % 2) * 11 + ((h->current_mba - 1) % 11); s 388 libavcodec/h261dec.c s->mb_y = ((h->gob_number - 1) / 2) * 3 + ((h->current_mba - 1) / 11); s 389 libavcodec/h261dec.c xy = s->mb_x + s->mb_y * s->mb_stride; s 390 libavcodec/h261dec.c ff_init_block_index(s); s 391 libavcodec/h261dec.c ff_update_block_index(s); s 394 libavcodec/h261dec.c h->mtype = get_vlc2(&s->gb, h261_mtype_vlc.table, H261_MTYPE_VLC_BITS, 2); s 396 libavcodec/h261dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid mtype index %d\n", s 405 libavcodec/h261dec.c ff_set_qscale(s, get_bits(&s->gb, 5)); s 407 libavcodec/h261dec.c s->mb_intra = IS_INTRA4x4(h->mtype); s 425 libavcodec/h261dec.c h->current_mv_x = decode_mv_component(&s->gb, h->current_mv_x); s 426 libavcodec/h261dec.c h->current_mv_y = decode_mv_component(&s->gb, h->current_mv_y); s 434 libavcodec/h261dec.c cbp = get_vlc2(&s->gb, h261_cbp_vlc.table, H261_CBP_VLC_BITS, 2) + 1; s 436 libavcodec/h261dec.c if (s->mb_intra) { s 437 libavcodec/h261dec.c s->current_picture.mb_type[xy] = MB_TYPE_INTRA; s 442 libavcodec/h261dec.c s->mv_dir = MV_DIR_FORWARD; s 443 libavcodec/h261dec.c s->mv_type = MV_TYPE_16X16; s 444 libavcodec/h261dec.c s->current_picture.mb_type[xy] = MB_TYPE_16x16 | MB_TYPE_L0; s 445 libavcodec/h261dec.c s->mv[0][0][0] = h->current_mv_x * 2; // gets divided by 2 in motion compensation s 446 libavcodec/h261dec.c s->mv[0][0][1] = h->current_mv_y * 2; s 448 libavcodec/h261dec.c if (s->current_picture.motion_val[0]) { s 449 libavcodec/h261dec.c int b_stride = 2*s->mb_width + 1; s 450 libavcodec/h261dec.c int b_xy = 2 * s->mb_x + (2 * s->mb_y) * b_stride; s 451 libavcodec/h261dec.c s->current_picture.motion_val[0][b_xy][0] = s->mv[0][0][0]; s 452 libavcodec/h261dec.c s->current_picture.motion_val[0][b_xy][1] = s->mv[0][0][1]; s 457 libavcodec/h261dec.c if (s->mb_intra || HAS_CBP(h->mtype)) { s 458 libavcodec/h261dec.c s->bdsp.clear_blocks(s->block[0]); s 460 libavcodec/h261dec.c if (h261_decode_block(h, s->block[i], i, cbp & 32) < 0) s 466 libavcodec/h261dec.c s->block_last_index[i] = -1; s 469 libavcodec/h261dec.c ff_mpv_reconstruct_mb(s, s->block); s 480 libavcodec/h261dec.c MpegEncContext *const s = &h->s; s 484 libavcodec/h261dec.c for (i = get_bits_left(&s->gb); i > 24; i -= 1) { s 485 libavcodec/h261dec.c startcode = ((startcode << 1) | get_bits(&s->gb, 1)) & 0x000FFFFF; s 492 libavcodec/h261dec.c av_log(s->avctx, AV_LOG_ERROR, "Bad picture start code\n"); s 497 libavcodec/h261dec.c i = get_bits(&s->gb, 5); /* picture timestamp */ s 498 libavcodec/h261dec.c if (i < (s->picture_number & 31)) s 500 libavcodec/h261dec.c s->picture_number = (s->picture_number & ~31) + i; s 502 libavcodec/h261dec.c s->avctx->framerate = (AVRational) { 30000, 1001 }; s 505 libavcodec/h261dec.c skip_bits1(&s->gb); /* split screen off */ s 506 libavcodec/h261dec.c skip_bits1(&s->gb); /* camera off */ s 507 libavcodec/h261dec.c skip_bits1(&s->gb); /* freeze picture release off */ s 509 libavcodec/h261dec.c format = get_bits1(&s->gb); s 513 libavcodec/h261dec.c s->width = 176; s 514 libavcodec/h261dec.c s->height = 144; s 515 libavcodec/h261dec.c s->mb_width = 11; s 516 libavcodec/h261dec.c s->mb_height = 9; s 518 libavcodec/h261dec.c s->width = 352; s 519 libavcodec/h261dec.c s->height = 288; s 520 libavcodec/h261dec.c s->mb_width = 22; s 521 libavcodec/h261dec.c s->mb_height = 18; s 524 libavcodec/h261dec.c s->mb_num = s->mb_width * s->mb_height; s 526 libavcodec/h261dec.c skip_bits1(&s->gb); /* still image mode off */ s 527 libavcodec/h261dec.c skip_bits1(&s->gb); /* Reserved */ s 530 libavcodec/h261dec.c if (skip_1stop_8data_bits(&s->gb) < 0) s 536 libavcodec/h261dec.c s->pict_type = AV_PICTURE_TYPE_P; s 544 libavcodec/h261dec.c MpegEncContext *const s = &h->s; s 546 libavcodec/h261dec.c ff_set_qscale(s, s->qscale); s 558 libavcodec/h261dec.c av_log(s->avctx, AV_LOG_ERROR, "Error at MB: %d\n", s 559 libavcodec/h261dec.c s->mb_x + s->mb_y * s->mb_stride); s 574 libavcodec/h261dec.c static int get_consumed_bytes(MpegEncContext *s, int buf_size) s 576 libavcodec/h261dec.c int pos = get_bits_count(&s->gb) >> 3; s 591 libavcodec/h261dec.c MpegEncContext *s = &h->s; s 601 libavcodec/h261dec.c init_get_bits(&s->gb, buf, buf_size * 8); s 603 libavcodec/h261dec.c if (!s->context_initialized) s 605 libavcodec/h261dec.c ff_mpv_idct_init(s); s 611 libavcodec/h261dec.c av_log(s->avctx, AV_LOG_ERROR, "header damaged\n"); s 615 libavcodec/h261dec.c if (s->width != avctx->coded_width || s->height != avctx->coded_height) { s 616 libavcodec/h261dec.c ParseContext pc = s->parse_context; // FIXME move this demuxing hack to libavformat s 617 libavcodec/h261dec.c s->parse_context.buffer = 0; s 618 libavcodec/h261dec.c ff_mpv_common_end(s); s 619 libavcodec/h261dec.c s->parse_context = pc; s 622 libavcodec/h261dec.c if (!s->context_initialized) { s 623 libavcodec/h261dec.c if ((ret = ff_mpv_common_init(s)) < 0) s 626 libavcodec/h261dec.c ret = ff_set_dimensions(avctx, s->width, s->height); s 634 libavcodec/h261dec.c s->current_picture.f->pict_type = s->pict_type; s 635 libavcodec/h261dec.c s->current_picture.f->key_frame = s->pict_type == AV_PICTURE_TYPE_I; s 637 libavcodec/h261dec.c if ((avctx->skip_frame >= AVDISCARD_NONREF && s->pict_type == AV_PICTURE_TYPE_B) || s 638 libavcodec/h261dec.c (avctx->skip_frame >= AVDISCARD_NONKEY && s->pict_type != AV_PICTURE_TYPE_I) || s 640 libavcodec/h261dec.c return get_consumed_bytes(s, buf_size); s 642 libavcodec/h261dec.c if (ff_mpv_frame_start(s, avctx) < 0) s 645 libavcodec/h261dec.c ff_mpeg_er_frame_start(s); s 648 libavcodec/h261dec.c s->mb_x = 0; s 649 libavcodec/h261dec.c s->mb_y = 0; s 651 libavcodec/h261dec.c while (h->gob_number < (s->mb_height == 18 ? 12 : 5)) { s 656 libavcodec/h261dec.c ff_mpv_frame_end(s); s 658 libavcodec/h261dec.c av_assert0(s->current_picture.f->pict_type == s->current_picture_ptr->f->pict_type); s 659 libavcodec/h261dec.c av_assert0(s->current_picture.f->pict_type == s->pict_type); s 661 libavcodec/h261dec.c if ((ret = av_frame_ref(pict, s->current_picture_ptr->f)) < 0) s 663 libavcodec/h261dec.c ff_print_debug_info(s, s->current_picture_ptr, pict); s 667 libavcodec/h261dec.c return get_consumed_bytes(s, buf_size); s 673 libavcodec/h261dec.c MpegEncContext *s = &h->s; s 675 libavcodec/h261dec.c ff_mpv_common_end(s); s 53 libavcodec/h261enc.c void ff_h261_encode_picture_header(MpegEncContext *s, int picture_number) s 55 libavcodec/h261enc.c H261Context *h = (H261Context *)s; s 58 libavcodec/h261enc.c avpriv_align_put_bits(&s->pb); s 61 libavcodec/h261enc.c s->ptr_lastgob = put_bits_ptr(&s->pb); s 63 libavcodec/h261enc.c put_bits(&s->pb, 20, 0x10); /* PSC */ s 65 libavcodec/h261enc.c temp_ref = s->picture_number * 30000LL * s->avctx->time_base.num / s 66 libavcodec/h261enc.c (1001LL * s->avctx->time_base.den); // FIXME maybe this should use a timestamp s 67 libavcodec/h261enc.c put_sbits(&s->pb, 5, temp_ref); /* TemporalReference */ s 69 libavcodec/h261enc.c put_bits(&s->pb, 1, 0); /* split screen off */ s 70 libavcodec/h261enc.c put_bits(&s->pb, 1, 0); /* camera off */ s 71 libavcodec/h261enc.c put_bits(&s->pb, 1, s->pict_type == AV_PICTURE_TYPE_I); /* freeze picture release on/off */ s 73 libavcodec/h261enc.c format = ff_h261_get_picture_format(s->width, s->height); s 75 libavcodec/h261enc.c put_bits(&s->pb, 1, format); /* 0 == QCIF, 1 == CIF */ s 77 libavcodec/h261enc.c put_bits(&s->pb, 1, 1); /* still image mode */ s 78 libavcodec/h261enc.c put_bits(&s->pb, 1, 1); /* reserved */ s 80 libavcodec/h261enc.c put_bits(&s->pb, 1, 0); /* no PEI */ s 85 libavcodec/h261enc.c s->mb_skip_run = 0; s 91 libavcodec/h261enc.c static void h261_encode_gob_header(MpegEncContext *s, int mb_line) s 93 libavcodec/h261enc.c H261Context *h = (H261Context *)s; s 94 libavcodec/h261enc.c if (ff_h261_get_picture_format(s->width, s->height) == 0) { s 99 libavcodec/h261enc.c put_bits(&s->pb, 16, 1); /* GBSC */ s 100 libavcodec/h261enc.c put_bits(&s->pb, 4, h->gob_number); /* GN */ s 101 libavcodec/h261enc.c put_bits(&s->pb, 5, s->qscale); /* GQUANT */ s 102 libavcodec/h261enc.c put_bits(&s->pb, 1, 0); /* no GEI */ s 103 libavcodec/h261enc.c s->mb_skip_run = 0; s 104 libavcodec/h261enc.c s->last_mv[0][0][0] = 0; s 105 libavcodec/h261enc.c s->last_mv[0][0][1] = 0; s 108 libavcodec/h261enc.c void ff_h261_reorder_mb_index(MpegEncContext *s) s 110 libavcodec/h261enc.c int index = s->mb_x + s->mb_y * s->mb_width; s 114 libavcodec/h261enc.c h261_encode_gob_header(s, 0); s 115 libavcodec/h261enc.c s->last_mv[0][0][0] = 0; s 116 libavcodec/h261enc.c s->last_mv[0][0][1] = 0; s 121 libavcodec/h261enc.c if (ff_h261_get_picture_format(s->width, s->height) == 1) { // CIF s 122 libavcodec/h261enc.c s->mb_x = index % 11; s 124 libavcodec/h261enc.c s->mb_y = index % 3; s 126 libavcodec/h261enc.c s->mb_x += 11 * (index % 2); s 128 libavcodec/h261enc.c s->mb_y += 3 * index; s 130 libavcodec/h261enc.c ff_init_block_index(s); s 131 libavcodec/h261enc.c ff_update_block_index(s); s 137 libavcodec/h261enc.c MpegEncContext *const s = &h->s; s 141 libavcodec/h261enc.c put_bits(&s->pb, ff_h261_mv_tab[code][1], ff_h261_mv_tab[code][0]); s 149 libavcodec/h261enc.c put_bits(&s->pb, ff_h261_mv_tab[code][1], ff_h261_mv_tab[code][0]); s 150 libavcodec/h261enc.c put_bits(&s->pb, 1, sign); s 154 libavcodec/h261enc.c static inline int get_cbp(MpegEncContext *s, int16_t block[6][64]) s 159 libavcodec/h261enc.c if (s->block_last_index[i] >= 0) s 171 libavcodec/h261enc.c MpegEncContext *const s = &h->s; s 176 libavcodec/h261enc.c if (s->mb_intra) { s 190 libavcodec/h261enc.c put_bits(&s->pb, 8, 0xff); s 192 libavcodec/h261enc.c put_bits(&s->pb, 8, level); s 195 libavcodec/h261enc.c (s->block_last_index[n] > -1)) { s 197 libavcodec/h261enc.c put_bits(&s->pb, 2, block[0] > 0 ? 2 : 3); s 204 libavcodec/h261enc.c last_index = s->block_last_index[n]; s 207 libavcodec/h261enc.c j = s->intra_scantable.permutated[i]; s 221 libavcodec/h261enc.c put_bits(&s->pb, rl->table_vlc[code][1], rl->table_vlc[code][0]); s 223 libavcodec/h261enc.c put_bits(&s->pb, 6, run); s 226 libavcodec/h261enc.c put_sbits(&s->pb, 8, slevel); s 228 libavcodec/h261enc.c put_bits(&s->pb, 1, sign); s 234 libavcodec/h261enc.c put_bits(&s->pb, rl->table_vlc[0][1], rl->table_vlc[0][0]); // EOB s 237 libavcodec/h261enc.c void ff_h261_encode_mb(MpegEncContext *s, int16_t block[6][64], s 240 libavcodec/h261enc.c H261Context *h = (H261Context *)s; s 247 libavcodec/h261enc.c if (!s->mb_intra) { s 249 libavcodec/h261enc.c cbp = get_cbp(s, block); s 256 libavcodec/h261enc.c s->skip_count++; s 257 libavcodec/h261enc.c s->mb_skip_run++; s 258 libavcodec/h261enc.c s->last_mv[0][0][0] = 0; s 259 libavcodec/h261enc.c s->last_mv[0][0][1] = 0; s 260 libavcodec/h261enc.c s->qscale -= s->dquant; s 266 libavcodec/h261enc.c put_bits(&s->pb, s 267 libavcodec/h261enc.c ff_h261_mba_bits[s->mb_skip_run], s 268 libavcodec/h261enc.c ff_h261_mba_code[s->mb_skip_run]); s 269 libavcodec/h261enc.c s->mb_skip_run = 0; s 272 libavcodec/h261enc.c if (!s->mb_intra) { s 275 libavcodec/h261enc.c if (mvd || s->loop_filter) s 277 libavcodec/h261enc.c if (s->loop_filter) s 284 libavcodec/h261enc.c if (s->dquant && cbp) { s 287 libavcodec/h261enc.c s->qscale -= s->dquant; s 289 libavcodec/h261enc.c put_bits(&s->pb, s 296 libavcodec/h261enc.c ff_set_qscale(s, s->qscale + s->dquant); s 297 libavcodec/h261enc.c put_bits(&s->pb, 5, s->qscale); s 301 libavcodec/h261enc.c mv_diff_x = (motion_x >> 1) - s->last_mv[0][0][0]; s 302 libavcodec/h261enc.c mv_diff_y = (motion_y >> 1) - s->last_mv[0][0][1]; s 303 libavcodec/h261enc.c s->last_mv[0][0][0] = (motion_x >> 1); s 304 libavcodec/h261enc.c s->last_mv[0][0][1] = (motion_y >> 1); s 311 libavcodec/h261enc.c put_bits(&s->pb, s 320 libavcodec/h261enc.c s->last_mv[0][0][0] = 0; s 321 libavcodec/h261enc.c s->last_mv[0][0][1] = 0; s 365 libavcodec/h261enc.c av_cold void ff_h261_encode_init(MpegEncContext *s) s 369 libavcodec/h261enc.c s->min_qcoeff = -127; s 370 libavcodec/h261enc.c s->max_qcoeff = 127; s 371 libavcodec/h261enc.c s->y_dc_scale_table = s 372 libavcodec/h261enc.c s->c_dc_scale_table = ff_mpeg1_dc_scale_table; s 373 libavcodec/h261enc.c s->ac_esc_length = 6+6+8; s 377 libavcodec/h261enc.c s->intra_ac_vlc_length = s->inter_ac_vlc_length = uni_h261_rl_len; s 378 libavcodec/h261enc.c s->intra_ac_vlc_last_length = s->inter_ac_vlc_last_length = uni_h261_rl_len + 128*64; s 42 libavcodec/h263.c void ff_h263_update_motion_val(MpegEncContext * s){ s 43 libavcodec/h263.c const int mb_xy = s->mb_y * s->mb_stride + s->mb_x; s 45 libavcodec/h263.c const int wrap = s->b8_stride; s 46 libavcodec/h263.c const int xy = s->block_index[0]; s 48 libavcodec/h263.c s->current_picture.mbskip_table[mb_xy] = s->mb_skipped; s 50 libavcodec/h263.c if(s->mv_type != MV_TYPE_8X8){ s 52 libavcodec/h263.c if (s->mb_intra) { s 55 libavcodec/h263.c } else if (s->mv_type == MV_TYPE_16X16) { s 56 libavcodec/h263.c motion_x = s->mv[0][0][0]; s 57 libavcodec/h263.c motion_y = s->mv[0][0][1]; s 60 libavcodec/h263.c motion_x = s->mv[0][0][0] + s->mv[0][1][0]; s 61 libavcodec/h263.c motion_y = s->mv[0][0][1] + s->mv[0][1][1]; s 64 libavcodec/h263.c s->p_field_mv_table[i][0][mb_xy][0]= s->mv[0][i][0]; s 65 libavcodec/h263.c s->p_field_mv_table[i][0][mb_xy][1]= s->mv[0][i][1]; s 67 libavcodec/h263.c s->current_picture.ref_index[0][4*mb_xy ] = s 68 libavcodec/h263.c s->current_picture.ref_index[0][4*mb_xy + 1] = s->field_select[0][0]; s 69 libavcodec/h263.c s->current_picture.ref_index[0][4*mb_xy + 2] = s 70 libavcodec/h263.c s->current_picture.ref_index[0][4*mb_xy + 3] = s->field_select[0][1]; s 74 libavcodec/h263.c s->current_picture.motion_val[0][xy][0] = motion_x; s 75 libavcodec/h263.c s->current_picture.motion_val[0][xy][1] = motion_y; s 76 libavcodec/h263.c s->current_picture.motion_val[0][xy + 1][0] = motion_x; s 77 libavcodec/h263.c s->current_picture.motion_val[0][xy + 1][1] = motion_y; s 78 libavcodec/h263.c s->current_picture.motion_val[0][xy + wrap][0] = motion_x; s 79 libavcodec/h263.c s->current_picture.motion_val[0][xy + wrap][1] = motion_y; s 80 libavcodec/h263.c s->current_picture.motion_val[0][xy + 1 + wrap][0] = motion_x; s 81 libavcodec/h263.c s->current_picture.motion_val[0][xy + 1 + wrap][1] = motion_y; s 84 libavcodec/h263.c if(s->encoding){ //FIXME encoding MUST be cleaned up s 85 libavcodec/h263.c if (s->mv_type == MV_TYPE_8X8) s 86 libavcodec/h263.c s->current_picture.mb_type[mb_xy] = MB_TYPE_L0 | MB_TYPE_8x8; s 87 libavcodec/h263.c else if(s->mb_intra) s 88 libavcodec/h263.c s->current_picture.mb_type[mb_xy] = MB_TYPE_INTRA; s 90 libavcodec/h263.c s->current_picture.mb_type[mb_xy] = MB_TYPE_L0 | MB_TYPE_16x16; s 94 libavcodec/h263.c int ff_h263_pred_dc(MpegEncContext * s, int n, int16_t **dc_val_ptr) s 101 libavcodec/h263.c x = 2 * s->mb_x + (n & 1); s 102 libavcodec/h263.c y = 2 * s->mb_y + ((n & 2) >> 1); s 103 libavcodec/h263.c wrap = s->b8_stride; s 104 libavcodec/h263.c dc_val = s->dc_val[0]; s 106 libavcodec/h263.c x = s->mb_x; s 107 libavcodec/h263.c y = s->mb_y; s 108 libavcodec/h263.c wrap = s->mb_stride; s 109 libavcodec/h263.c dc_val = s->dc_val[n - 4 + 1]; s 118 libavcodec/h263.c if(s->first_slice_line && n!=3){ s 120 libavcodec/h263.c if(n!=1 && s->mb_x == s->resync_mb_x) a= 1024; s 135 libavcodec/h263.c void ff_h263_loop_filter(MpegEncContext * s){ s 137 libavcodec/h263.c const int linesize = s->linesize; s 138 libavcodec/h263.c const int uvlinesize= s->uvlinesize; s 139 libavcodec/h263.c const int xy = s->mb_y * s->mb_stride + s->mb_x; s 140 libavcodec/h263.c uint8_t *dest_y = s->dest[0]; s 141 libavcodec/h263.c uint8_t *dest_cb= s->dest[1]; s 142 libavcodec/h263.c uint8_t *dest_cr= s->dest[2]; s 148 libavcodec/h263.c if (!IS_SKIP(s->current_picture.mb_type[xy])) { s 149 libavcodec/h263.c qp_c= s->qscale; s 150 libavcodec/h263.c s->h263dsp.h263_v_loop_filter(dest_y + 8 * linesize, linesize, qp_c); s 151 libavcodec/h263.c s->h263dsp.h263_v_loop_filter(dest_y + 8 * linesize + 8, linesize, qp_c); s 155 libavcodec/h263.c if(s->mb_y){ s 158 libavcodec/h263.c if (IS_SKIP(s->current_picture.mb_type[xy - s->mb_stride])) s 161 libavcodec/h263.c qp_tt = s->current_picture.qscale_table[xy - s->mb_stride]; s 169 libavcodec/h263.c const int chroma_qp= s->chroma_qscale_table[qp_tc]; s 170 libavcodec/h263.c s->h263dsp.h263_v_loop_filter(dest_y, linesize, qp_tc); s 171 libavcodec/h263.c s->h263dsp.h263_v_loop_filter(dest_y + 8, linesize, qp_tc); s 173 libavcodec/h263.c s->h263dsp.h263_v_loop_filter(dest_cb, uvlinesize, chroma_qp); s 174 libavcodec/h263.c s->h263dsp.h263_v_loop_filter(dest_cr, uvlinesize, chroma_qp); s 178 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_y - 8 * linesize + 8, linesize, qp_tt); s 180 libavcodec/h263.c if(s->mb_x){ s 181 libavcodec/h263.c if (qp_tt || IS_SKIP(s->current_picture.mb_type[xy - 1 - s->mb_stride])) s 184 libavcodec/h263.c qp_dt = s->current_picture.qscale_table[xy - 1 - s->mb_stride]; s 187 libavcodec/h263.c const int chroma_qp= s->chroma_qscale_table[qp_dt]; s 188 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_y - 8 * linesize, linesize, qp_dt); s 189 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_cb - 8 * uvlinesize, uvlinesize, chroma_qp); s 190 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_cr - 8 * uvlinesize, uvlinesize, chroma_qp); s 196 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_y + 8, linesize, qp_c); s 197 libavcodec/h263.c if(s->mb_y + 1 == s->mb_height) s 198 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_y + 8 * linesize + 8, linesize, qp_c); s 201 libavcodec/h263.c if(s->mb_x){ s 203 libavcodec/h263.c if (qp_c || IS_SKIP(s->current_picture.mb_type[xy - 1])) s 206 libavcodec/h263.c qp_lc = s->current_picture.qscale_table[xy - 1]; s 209 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_y, linesize, qp_lc); s 210 libavcodec/h263.c if(s->mb_y + 1 == s->mb_height){ s 211 libavcodec/h263.c const int chroma_qp= s->chroma_qscale_table[qp_lc]; s 212 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_y + 8 * linesize, linesize, qp_lc); s 213 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_cb, uvlinesize, chroma_qp); s 214 libavcodec/h263.c s->h263dsp.h263_h_loop_filter(dest_cr, uvlinesize, chroma_qp); s 220 libavcodec/h263.c void ff_h263_pred_acdc(MpegEncContext * s, int16_t *block, int n) s 227 libavcodec/h263.c x = 2 * s->mb_x + (n & 1); s 228 libavcodec/h263.c y = 2 * s->mb_y + (n>> 1); s 229 libavcodec/h263.c wrap = s->b8_stride; s 230 libavcodec/h263.c dc_val = s->dc_val[0]; s 231 libavcodec/h263.c ac_val = s->ac_val[0][0]; s 232 libavcodec/h263.c scale = s->y_dc_scale; s 234 libavcodec/h263.c x = s->mb_x; s 235 libavcodec/h263.c y = s->mb_y; s 236 libavcodec/h263.c wrap = s->mb_stride; s 237 libavcodec/h263.c dc_val = s->dc_val[n - 4 + 1]; s 238 libavcodec/h263.c ac_val = s->ac_val[n - 4 + 1][0]; s 239 libavcodec/h263.c scale = s->c_dc_scale; s 252 libavcodec/h263.c if(s->first_slice_line && n!=3){ s 254 libavcodec/h263.c if(n!=1 && s->mb_x == s->resync_mb_x) a= 1024; s 257 libavcodec/h263.c if (s->ac_pred) { s 259 libavcodec/h263.c if (s->h263_aic_dir) { s 264 libavcodec/h263.c block[s->idsp.idct_permutation[i << 3]] += ac_val[i]; s 273 libavcodec/h263.c block[s->idsp.idct_permutation[i]] += ac_val[i + 8]; s 301 libavcodec/h263.c ac_val1[i] = block[s->idsp.idct_permutation[i << 3]]; s 304 libavcodec/h263.c ac_val1[8 + i] = block[s->idsp.idct_permutation[i]]; s 307 libavcodec/h263.c int16_t *ff_h263_pred_motion(MpegEncContext * s, int block, int dir, s 314 libavcodec/h263.c wrap = s->b8_stride; s 315 libavcodec/h263.c mot_val = s->current_picture.motion_val[dir] + s->block_index[block]; s 319 libavcodec/h263.c if (s->first_slice_line && block<3) { s 323 libavcodec/h263.c if(s->mb_x == s->resync_mb_x){ //rare s 325 libavcodec/h263.c }else if(s->mb_x + 1 == s->resync_mb_x && s->h263_pred){ //rare s 327 libavcodec/h263.c if(s->mb_x==0){ s 339 libavcodec/h263.c if(s->mb_x + 1 == s->resync_mb_x && s->h263_pred){ //rare s 350 libavcodec/h263.c if(s->mb_x == s->resync_mb_x) //rare s 51 libavcodec/h263.h int ff_h263_decode_motion(MpegEncContext * s, int pred, int f_code); s 58 libavcodec/h263.h void ff_h263_encode_mb(MpegEncContext *s, s 61 libavcodec/h263.h void ff_h263_encode_picture_header(MpegEncContext *s, int picture_number); s 62 libavcodec/h263.h void ff_h263_encode_gob_header(MpegEncContext * s, int mb_line); s 63 libavcodec/h263.h int16_t *ff_h263_pred_motion(MpegEncContext * s, int block, int dir, s 65 libavcodec/h263.h void ff_h263_encode_init(MpegEncContext *s); s 67 libavcodec/h263.h int ff_h263_decode_picture_header(MpegEncContext *s); s 68 libavcodec/h263.h int ff_h263_decode_gob_header(MpegEncContext *s); s 69 libavcodec/h263.h void ff_h263_update_motion_val(MpegEncContext * s); s 70 libavcodec/h263.h void ff_h263_loop_filter(MpegEncContext * s); s 71 libavcodec/h263.h int ff_h263_decode_mba(MpegEncContext *s); s 72 libavcodec/h263.h void ff_h263_encode_mba(MpegEncContext *s); s 73 libavcodec/h263.h void ff_init_qscale_tab(MpegEncContext *s); s 74 libavcodec/h263.h int ff_h263_pred_dc(MpegEncContext * s, int n, int16_t **dc_val_ptr); s 75 libavcodec/h263.h void ff_h263_pred_acdc(MpegEncContext * s, int16_t *block, int n); s 81 libavcodec/h263.h void ff_h263_show_pict_info(MpegEncContext *s); s 83 libavcodec/h263.h int ff_intel_h263_decode_picture_header(MpegEncContext *s); s 84 libavcodec/h263.h int ff_h263_decode_mb(MpegEncContext *s, s 94 libavcodec/h263.h void ff_clean_h263_qscales(MpegEncContext *s); s 95 libavcodec/h263.h int ff_h263_resync(MpegEncContext *s); s 116 libavcodec/h263.h static inline void ff_h263_encode_motion_vector(MpegEncContext * s, int x, int y, int f_code){ s 117 libavcodec/h263.h if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) { s 118 libavcodec/h263.h skip_put_bits(&s->pb, s 122 libavcodec/h263.h ff_h263_encode_motion(&s->pb, x, f_code); s 123 libavcodec/h263.h ff_h263_encode_motion(&s->pb, y, f_code); s 127 libavcodec/h263.h static inline int get_p_cbp(MpegEncContext * s, s 132 libavcodec/h263.h if (s->mpv_flags & FF_MPV_FLAG_CBP_RD) { s 136 libavcodec/h263.h const int offset= (s->mv_type==MV_TYPE_16X16 ? 0 : 16) + (s->dquant ? 8 : 0); s 137 libavcodec/h263.h const int lambda= s->lambda2 >> (FF_LAMBDA_SHIFT - 6); s 141 libavcodec/h263.h if(i&1) score += s->coded_score[5]; s 142 libavcodec/h263.h if(i&2) score += s->coded_score[4]; s 152 libavcodec/h263.h if(i&1) score += s->coded_score[3]; s 153 libavcodec/h263.h if(i&2) score += s->coded_score[2]; s 154 libavcodec/h263.h if(i&4) score += s->coded_score[1]; s 155 libavcodec/h263.h if(i&8) score += s->coded_score[0]; s 163 libavcodec/h263.h if ((motion_x | motion_y | s->dquant) == 0 && s->mv_type==MV_TYPE_16X16){ s 169 libavcodec/h263.h if (s->block_last_index[i] >= 0 && ((cbp >> (5 - i))&1)==0 ){ s 170 libavcodec/h263.h s->block_last_index[i]= -1; s 171 libavcodec/h263.h s->bdsp.clear_block(s->block[i]); s 177 libavcodec/h263.h if (s->block_last_index[i] >= 0) s 65 libavcodec/h263_parser.c static int h263_parse(AVCodecParserContext *s, s 70 libavcodec/h263_parser.c ParseContext *pc = s->priv_data; s 73 libavcodec/h263_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 70 libavcodec/h263dec.c MpegEncContext *s = avctx->priv_data; s 73 libavcodec/h263dec.c s->out_format = FMT_H263; s 76 libavcodec/h263dec.c ff_mpv_decode_defaults(s); s 77 libavcodec/h263dec.c ff_mpv_decode_init(s, avctx); s 79 libavcodec/h263dec.c s->quant_precision = 5; s 80 libavcodec/h263dec.c s->decode_mb = ff_h263_decode_mb; s 81 libavcodec/h263dec.c s->low_delay = 1; s 82 libavcodec/h263dec.c s->unrestricted_mv = 1; s 88 libavcodec/h263dec.c s->unrestricted_mv = 0; s 94 libavcodec/h263dec.c s->h263_pred = 1; s 95 libavcodec/h263dec.c s->msmpeg4_version = 1; s 98 libavcodec/h263dec.c s->h263_pred = 1; s 99 libavcodec/h263dec.c s->msmpeg4_version = 2; s 102 libavcodec/h263dec.c s->h263_pred = 1; s 103 libavcodec/h263dec.c s->msmpeg4_version = 3; s 106 libavcodec/h263dec.c s->h263_pred = 1; s 107 libavcodec/h263dec.c s->msmpeg4_version = 4; s 110 libavcodec/h263dec.c s->h263_pred = 1; s 111 libavcodec/h263dec.c s->msmpeg4_version = 5; s 118 libavcodec/h263dec.c s->h263_pred = 1; s 119 libavcodec/h263dec.c s->msmpeg4_version = 6; s 125 libavcodec/h263dec.c s->h263_flv = 1; s 132 libavcodec/h263dec.c s->codec_id = avctx->codec->id; s 136 libavcodec/h263dec.c s->ehc_mode = 1; s 143 libavcodec/h263dec.c ff_mpv_idct_init(s); s 144 libavcodec/h263dec.c if ((ret = ff_mpv_common_init(s)) < 0) s 148 libavcodec/h263dec.c ff_h263dsp_init(&s->h263dsp); s 149 libavcodec/h263dec.c ff_qpeldsp_init(&s->qdsp); s 157 libavcodec/h263dec.c MpegEncContext *s = avctx->priv_data; s 159 libavcodec/h263dec.c ff_mpv_common_end(s); s 166 libavcodec/h263dec.c static int get_consumed_bytes(MpegEncContext *s, int buf_size) s 168 libavcodec/h263dec.c int pos = (get_bits_count(&s->gb) + 7) >> 3; s 170 libavcodec/h263dec.c if (s->divx_packed || s->avctx->hwaccel) { s 174 libavcodec/h263dec.c } else if (s->avctx->flags & AV_CODEC_FLAG_TRUNCATED) { s 175 libavcodec/h263dec.c pos -= s->parse_context.last_index; s 192 libavcodec/h263dec.c static int decode_slice(MpegEncContext *s) s 194 libavcodec/h263dec.c const int part_mask = s->partitioned_frame s 196 libavcodec/h263dec.c const int mb_size = 16 >> s->avctx->lowres; s 199 libavcodec/h263dec.c s->last_resync_gb = s->gb; s 200 libavcodec/h263dec.c s->first_slice_line = 1; s 201 libavcodec/h263dec.c s->resync_mb_x = s->mb_x; s 202 libavcodec/h263dec.c s->resync_mb_y = s->mb_y; s 204 libavcodec/h263dec.c ff_set_qscale(s, s->qscale); s 206 libavcodec/h263dec.c if (s->studio_profile) { s 207 libavcodec/h263dec.c if ((ret = ff_mpeg4_decode_studio_slice_header(s->avctx->priv_data)) < 0) s 211 libavcodec/h263dec.c if (s->avctx->hwaccel) { s 212 libavcodec/h263dec.c const uint8_t *start = s->gb.buffer + get_bits_count(&s->gb) / 8; s 213 libavcodec/h263dec.c ret = s->avctx->hwaccel->decode_slice(s->avctx, start, s->gb.buffer_end - start); s 215 libavcodec/h263dec.c s->mb_y = s->mb_height; s 219 libavcodec/h263dec.c if (s->partitioned_frame) { s 220 libavcodec/h263dec.c const int qscale = s->qscale; s 222 libavcodec/h263dec.c if (CONFIG_MPEG4_DECODER && s->codec_id == AV_CODEC_ID_MPEG4) s 223 libavcodec/h263dec.c if ((ret = ff_mpeg4_decode_partitions(s->avctx->priv_data)) < 0) s 227 libavcodec/h263dec.c s->first_slice_line = 1; s 228 libavcodec/h263dec.c s->mb_x = s->resync_mb_x; s 229 libavcodec/h263dec.c s->mb_y = s->resync_mb_y; s 230 libavcodec/h263dec.c ff_set_qscale(s, qscale); s 233 libavcodec/h263dec.c for (; s->mb_y < s->mb_height; s->mb_y++) { s 235 libavcodec/h263dec.c if (s->msmpeg4_version) { s 236 libavcodec/h263dec.c if (s->resync_mb_y + s->slice_height == s->mb_y) { s 237 libavcodec/h263dec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 238 libavcodec/h263dec.c s->mb_x - 1, s->mb_y, ER_MB_END); s 244 libavcodec/h263dec.c if (s->msmpeg4_version == 1) { s 245 libavcodec/h263dec.c s->last_dc[0] = s 246 libavcodec/h263dec.c s->last_dc[1] = s 247 libavcodec/h263dec.c s->last_dc[2] = 128; s 250 libavcodec/h263dec.c ff_init_block_index(s); s 251 libavcodec/h263dec.c for (; s->mb_x < s->mb_width; s->mb_x++) { s 254 libavcodec/h263dec.c ff_update_block_index(s); s 256 libavcodec/h263dec.c if (s->resync_mb_x == s->mb_x && s->resync_mb_y + 1 == s->mb_y) s 257 libavcodec/h263dec.c s->first_slice_line = 0; s 261 libavcodec/h263dec.c s->mv_dir = MV_DIR_FORWARD; s 262 libavcodec/h263dec.c s->mv_type = MV_TYPE_16X16; s 263 libavcodec/h263dec.c ff_dlog(s, "%d %06X\n", s 264 libavcodec/h263dec.c get_bits_count(&s->gb), show_bits(&s->gb, 24)); s 266 libavcodec/h263dec.c ff_tlog(NULL, "Decoding MB at %dx%d\n", s->mb_x, s->mb_y); s 267 libavcodec/h263dec.c ret = s->decode_mb(s, s->block); s 269 libavcodec/h263dec.c if (s->pict_type != AV_PICTURE_TYPE_B) s 270 libavcodec/h263dec.c ff_h263_update_motion_val(s); s 273 libavcodec/h263dec.c const int xy = s->mb_x + s->mb_y * s->mb_stride; s 275 libavcodec/h263dec.c ff_mpv_reconstruct_mb(s, s->block); s 276 libavcodec/h263dec.c if (s->loop_filter) s 277 libavcodec/h263dec.c ff_h263_loop_filter(s); s 279 libavcodec/h263dec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 280 libavcodec/h263dec.c s->mb_x, s->mb_y, ER_MB_END & part_mask); s 282 libavcodec/h263dec.c s->padding_bug_score--; s 284 libavcodec/h263dec.c if (++s->mb_x >= s->mb_width) { s 285 libavcodec/h263dec.c s->mb_x = 0; s 286 libavcodec/h263dec.c ff_mpeg_draw_horiz_band(s, s->mb_y * mb_size, mb_size); s 287 libavcodec/h263dec.c ff_mpv_report_decode_progress(s); s 288 libavcodec/h263dec.c s->mb_y++; s 292 libavcodec/h263dec.c av_log(s->avctx, AV_LOG_ERROR, s 294 libavcodec/h263dec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 295 libavcodec/h263dec.c s->mb_x + 1, s->mb_y, s 299 libavcodec/h263dec.c av_log(s->avctx, AV_LOG_ERROR, "Error at MB: %d\n", xy); s 300 libavcodec/h263dec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 301 libavcodec/h263dec.c s->mb_x, s->mb_y, ER_MB_ERROR & part_mask); s 303 libavcodec/h263dec.c if (s->avctx->err_recognition & AV_EF_IGNORE_ERR) s 308 libavcodec/h263dec.c ff_mpv_reconstruct_mb(s, s->block); s 309 libavcodec/h263dec.c if (s->loop_filter) s 310 libavcodec/h263dec.c ff_h263_loop_filter(s); s 313 libavcodec/h263dec.c ff_mpeg_draw_horiz_band(s, s->mb_y * mb_size, mb_size); s 314 libavcodec/h263dec.c ff_mpv_report_decode_progress(s); s 316 libavcodec/h263dec.c s->mb_x = 0; s 319 libavcodec/h263dec.c av_assert1(s->mb_x == 0 && s->mb_y == s->mb_height); s 322 libavcodec/h263dec.c if (s->codec_id == AV_CODEC_ID_MPEG4 && s 323 libavcodec/h263dec.c (s->workaround_bugs & FF_BUG_AUTODETECT) && s 324 libavcodec/h263dec.c get_bits_left(&s->gb) >= 48 && s 325 libavcodec/h263dec.c show_bits(&s->gb, 24) == 0x4010 && s 326 libavcodec/h263dec.c !s->data_partitioning) s 327 libavcodec/h263dec.c s->padding_bug_score += 32; s 330 libavcodec/h263dec.c if (s->codec_id == AV_CODEC_ID_MPEG4 && s 331 libavcodec/h263dec.c (s->workaround_bugs & FF_BUG_AUTODETECT) && s 332 libavcodec/h263dec.c get_bits_left(&s->gb) >= 0 && s 333 libavcodec/h263dec.c get_bits_left(&s->gb) < 137 && s 334 libavcodec/h263dec.c !s->data_partitioning) { s 335 libavcodec/h263dec.c const int bits_count = get_bits_count(&s->gb); s 336 libavcodec/h263dec.c const int bits_left = s->gb.size_in_bits - bits_count; s 339 libavcodec/h263dec.c s->padding_bug_score += 16; s 341 libavcodec/h263dec.c int v = show_bits(&s->gb, 8); s 345 libavcodec/h263dec.c s->padding_bug_score--; s 346 libavcodec/h263dec.c else if (v == 0x7F && ((get_bits_count(&s->gb) + 8) & 8) && s 348 libavcodec/h263dec.c s->padding_bug_score += 4; s 350 libavcodec/h263dec.c s->padding_bug_score++; s 354 libavcodec/h263dec.c if (s->codec_id == AV_CODEC_ID_H263 && s 355 libavcodec/h263dec.c (s->workaround_bugs & FF_BUG_AUTODETECT) && s 356 libavcodec/h263dec.c get_bits_left(&s->gb) >= 8 && s 357 libavcodec/h263dec.c get_bits_left(&s->gb) < 300 && s 358 libavcodec/h263dec.c s->pict_type == AV_PICTURE_TYPE_I && s 359 libavcodec/h263dec.c show_bits(&s->gb, 8) == 0 && s 360 libavcodec/h263dec.c !s->data_partitioning) { s 362 libavcodec/h263dec.c s->padding_bug_score += 32; s 365 libavcodec/h263dec.c if (s->codec_id == AV_CODEC_ID_H263 && s 366 libavcodec/h263dec.c (s->workaround_bugs & FF_BUG_AUTODETECT) && s 367 libavcodec/h263dec.c get_bits_left(&s->gb) >= 64 && s 368 libavcodec/h263dec.c AV_RB64(s->gb.buffer_end - 8) == 0xCDCDCDCDFC7F0000) { s 370 libavcodec/h263dec.c s->padding_bug_score += 32; s 373 libavcodec/h263dec.c if (s->workaround_bugs & FF_BUG_AUTODETECT) { s 375 libavcodec/h263dec.c (s->padding_bug_score > -2 && !s->data_partitioning)) s 376 libavcodec/h263dec.c s->workaround_bugs |= FF_BUG_NO_PADDING; s 378 libavcodec/h263dec.c s->workaround_bugs &= ~FF_BUG_NO_PADDING; s 382 libavcodec/h263dec.c if (s->msmpeg4_version || (s->workaround_bugs & FF_BUG_NO_PADDING)) { // FIXME perhaps solve this more cleanly s 383 libavcodec/h263dec.c int left = get_bits_left(&s->gb); s 387 libavcodec/h263dec.c if (s->msmpeg4_version && s->pict_type == AV_PICTURE_TYPE_I) s 392 libavcodec/h263dec.c if ((s->workaround_bugs & FF_BUG_NO_PADDING) && s 393 libavcodec/h263dec.c (s->avctx->err_recognition & (AV_EF_BUFFER|AV_EF_AGGRESSIVE))) s 395 libavcodec/h263dec.c else if ((s->workaround_bugs & FF_BUG_NO_PADDING)) s 399 libavcodec/h263dec.c av_log(s->avctx, AV_LOG_ERROR, s 401 libavcodec/h263dec.c left, show_bits(&s->gb, 24)); s 403 libavcodec/h263dec.c av_log(s->avctx, AV_LOG_ERROR, "overreading %d bits\n", -left); s 405 libavcodec/h263dec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 406 libavcodec/h263dec.c s->mb_x - 1, s->mb_y, ER_MB_END); s 411 libavcodec/h263dec.c av_log(s->avctx, AV_LOG_ERROR, s 413 libavcodec/h263dec.c get_bits_left(&s->gb), show_bits(&s->gb, 24), s->padding_bug_score); s 415 libavcodec/h263dec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, s 426 libavcodec/h263dec.c MpegEncContext *s = avctx->priv_data; s 434 libavcodec/h263dec.c if (s->low_delay == 0 && s->next_picture_ptr) { s 435 libavcodec/h263dec.c if ((ret = av_frame_ref(pict, s->next_picture_ptr->f)) < 0) s 437 libavcodec/h263dec.c s->next_picture_ptr = NULL; s 445 libavcodec/h263dec.c if (s->avctx->flags & AV_CODEC_FLAG_TRUNCATED) { s 448 libavcodec/h263dec.c if (CONFIG_MPEG4_DECODER && s->codec_id == AV_CODEC_ID_MPEG4) { s 449 libavcodec/h263dec.c next = ff_mpeg4_find_frame_end(&s->parse_context, buf, buf_size); s 450 libavcodec/h263dec.c } else if (CONFIG_H263_DECODER && s->codec_id == AV_CODEC_ID_H263) { s 451 libavcodec/h263dec.c next = ff_h263_find_frame_end(&s->parse_context, buf, buf_size); s 452 libavcodec/h263dec.c } else if (CONFIG_H263P_DECODER && s->codec_id == AV_CODEC_ID_H263P) { s 453 libavcodec/h263dec.c next = ff_h263_find_frame_end(&s->parse_context, buf, buf_size); s 455 libavcodec/h263dec.c av_log(s->avctx, AV_LOG_ERROR, s 460 libavcodec/h263dec.c if (ff_combine_frame(&s->parse_context, next, (const uint8_t **)&buf, s 466 libavcodec/h263dec.c if (s->divx_packed && s->bitstream_buffer_size) { s 471 libavcodec/h263dec.c av_log(s->avctx, AV_LOG_WARNING, "Discarding excessive bitstream in packed xvid\n"); s 472 libavcodec/h263dec.c s->bitstream_buffer_size = 0; s 479 libavcodec/h263dec.c if (s->bitstream_buffer_size && (s->divx_packed || buf_size <= MAX_NVOP_SIZE)) // divx 5.01+/xvid frame reorder s 480 libavcodec/h263dec.c ret = init_get_bits8(&s->gb, s->bitstream_buffer, s 481 libavcodec/h263dec.c s->bitstream_buffer_size); s 483 libavcodec/h263dec.c ret = init_get_bits8(&s->gb, buf, buf_size); s 485 libavcodec/h263dec.c s->bitstream_buffer_size = 0; s 489 libavcodec/h263dec.c if (!s->context_initialized) s 491 libavcodec/h263dec.c ff_mpv_idct_init(s); s 494 libavcodec/h263dec.c if (CONFIG_WMV2_DECODER && s->msmpeg4_version == 5) { s 495 libavcodec/h263dec.c ret = ff_wmv2_decode_picture_header(s); s 496 libavcodec/h263dec.c } else if (CONFIG_MSMPEG4_DECODER && s->msmpeg4_version) { s 497 libavcodec/h263dec.c ret = ff_msmpeg4_decode_picture_header(s); s 499 libavcodec/h263dec.c if (s->avctx->extradata_size && s->picture_number == 0) { s 502 libavcodec/h263dec.c if (init_get_bits8(&gb, s->avctx->extradata, s->avctx->extradata_size) >= 0 ) s 505 libavcodec/h263dec.c ret = ff_mpeg4_decode_picture_header(avctx->priv_data, &s->gb, 0); s 506 libavcodec/h263dec.c } else if (CONFIG_H263I_DECODER && s->codec_id == AV_CODEC_ID_H263I) { s 507 libavcodec/h263dec.c ret = ff_intel_h263_decode_picture_header(s); s 508 libavcodec/h263dec.c } else if (CONFIG_FLV_DECODER && s->h263_flv) { s 509 libavcodec/h263dec.c ret = ff_flv_decode_picture_header(s); s 511 libavcodec/h263dec.c ret = ff_h263_decode_picture_header(s); s 515 libavcodec/h263dec.c if ( s->width != avctx->coded_width s 516 libavcodec/h263dec.c || s->height != avctx->coded_height) { s 517 libavcodec/h263dec.c av_log(s->avctx, AV_LOG_WARNING, "Reverting picture dimensions change due to header decoding failure\n"); s 518 libavcodec/h263dec.c s->width = avctx->coded_width; s 519 libavcodec/h263dec.c s->height= avctx->coded_height; s 523 libavcodec/h263dec.c return get_consumed_bytes(s, buf_size); s 527 libavcodec/h263dec.c av_log(s->avctx, AV_LOG_ERROR, "header damaged\n"); s 531 libavcodec/h263dec.c if (!s->context_initialized) { s 533 libavcodec/h263dec.c if ((ret = ff_mpv_common_init(s)) < 0) s 537 libavcodec/h263dec.c if (!s->current_picture_ptr || s->current_picture_ptr->f->data[0]) { s 538 libavcodec/h263dec.c int i = ff_find_unused_picture(s->avctx, s->picture, 0); s 541 libavcodec/h263dec.c s->current_picture_ptr = &s->picture[i]; s 544 libavcodec/h263dec.c avctx->has_b_frames = !s->low_delay; s 549 libavcodec/h263dec.c if (s->studio_profile != (s->idsp.idct == NULL)) s 550 libavcodec/h263dec.c ff_mpv_idct_init(s); s 557 libavcodec/h263dec.c if (s->width != avctx->coded_width || s 558 libavcodec/h263dec.c s->height != avctx->coded_height || s 559 libavcodec/h263dec.c s->context_reinit) { s 561 libavcodec/h263dec.c s->context_reinit = 0; s 563 libavcodec/h263dec.c ret = ff_set_dimensions(avctx, s->width, s->height); s 569 libavcodec/h263dec.c if ((ret = ff_mpv_common_frame_size_change(s))) s 579 libavcodec/h263dec.c if (s->codec_id == AV_CODEC_ID_H263 || s 580 libavcodec/h263dec.c s->codec_id == AV_CODEC_ID_H263P || s 581 libavcodec/h263dec.c s->codec_id == AV_CODEC_ID_H263I) s 582 libavcodec/h263dec.c s->gob_index = H263_GOB_HEIGHT(s->height); s 585 libavcodec/h263dec.c s->current_picture.f->pict_type = s->pict_type; s 586 libavcodec/h263dec.c s->current_picture.f->key_frame = s->pict_type == AV_PICTURE_TYPE_I; s 589 libavcodec/h263dec.c if (!s->last_picture_ptr && s 590 libavcodec/h263dec.c (s->pict_type == AV_PICTURE_TYPE_B || s->droppable)) s 591 libavcodec/h263dec.c return get_consumed_bytes(s, buf_size); s 593 libavcodec/h263dec.c s->pict_type == AV_PICTURE_TYPE_B) || s 595 libavcodec/h263dec.c s->pict_type != AV_PICTURE_TYPE_I) || s 597 libavcodec/h263dec.c return get_consumed_bytes(s, buf_size); s 599 libavcodec/h263dec.c if (s->next_p_frame_damaged) { s 600 libavcodec/h263dec.c if (s->pict_type == AV_PICTURE_TYPE_B) s 601 libavcodec/h263dec.c return get_consumed_bytes(s, buf_size); s 603 libavcodec/h263dec.c s->next_p_frame_damaged = 0; s 606 libavcodec/h263dec.c if ((!s->no_rounding) || s->pict_type == AV_PICTURE_TYPE_B) { s 607 libavcodec/h263dec.c s->me.qpel_put = s->qdsp.put_qpel_pixels_tab; s 608 libavcodec/h263dec.c s->me.qpel_avg = s->qdsp.avg_qpel_pixels_tab; s 610 libavcodec/h263dec.c s->me.qpel_put = s->qdsp.put_no_rnd_qpel_pixels_tab; s 611 libavcodec/h263dec.c s->me.qpel_avg = s->qdsp.avg_qpel_pixels_tab; s 614 libavcodec/h263dec.c if ((ret = ff_mpv_frame_start(s, avctx)) < 0) s 617 libavcodec/h263dec.c if (!s->divx_packed && !avctx->hwaccel) s 621 libavcodec/h263dec.c ret = avctx->hwaccel->start_frame(avctx, s->gb.buffer, s 622 libavcodec/h263dec.c s->gb.buffer_end - s->gb.buffer); s 627 libavcodec/h263dec.c ff_mpeg_er_frame_start(s); s 632 libavcodec/h263dec.c if (CONFIG_WMV2_DECODER && s->msmpeg4_version == 5) { s 633 libavcodec/h263dec.c ret = ff_wmv2_decode_secondary_picture_header(s); s 641 libavcodec/h263dec.c s->mb_x = 0; s 642 libavcodec/h263dec.c s->mb_y = 0; s 644 libavcodec/h263dec.c slice_ret = decode_slice(s); s 645 libavcodec/h263dec.c while (s->mb_y < s->mb_height) { s 646 libavcodec/h263dec.c if (s->msmpeg4_version) { s 647 libavcodec/h263dec.c if (s->slice_height == 0 || s->mb_x != 0 || slice_ret < 0 || s 648 libavcodec/h263dec.c (s->mb_y % s->slice_height) != 0 || get_bits_left(&s->gb) < 0) s 651 libavcodec/h263dec.c int prev_x = s->mb_x, prev_y = s->mb_y; s 652 libavcodec/h263dec.c if (ff_h263_resync(s) < 0) s 654 libavcodec/h263dec.c if (prev_y * s->mb_width + prev_x < s->mb_y * s->mb_width + s->mb_x) s 655 libavcodec/h263dec.c s->er.error_occurred = 1; s 658 libavcodec/h263dec.c if (s->msmpeg4_version < 4 && s->h263_pred) s 659 libavcodec/h263dec.c ff_mpeg4_clean_buffers(s); s 661 libavcodec/h263dec.c if (decode_slice(s) < 0) s 665 libavcodec/h263dec.c if (s->msmpeg4_version && s->msmpeg4_version < 4 && s 666 libavcodec/h263dec.c s->pict_type == AV_PICTURE_TYPE_I) s 668 libavcodec/h263dec.c ff_msmpeg4_decode_ext_header(s, buf_size) < 0) s 669 libavcodec/h263dec.c s->er.error_status_table[s->mb_num - 1] = ER_MB_ERROR; s 671 libavcodec/h263dec.c av_assert1(s->bitstream_buffer_size == 0); s 673 libavcodec/h263dec.c if (!s->studio_profile) s 674 libavcodec/h263dec.c ff_er_frame_end(&s->er); s 682 libavcodec/h263dec.c ff_mpv_frame_end(s); s 687 libavcodec/h263dec.c if (!s->divx_packed && avctx->hwaccel) s 690 libavcodec/h263dec.c av_assert1(s->current_picture.f->pict_type == s->current_picture_ptr->f->pict_type); s 691 libavcodec/h263dec.c av_assert1(s->current_picture.f->pict_type == s->pict_type); s 692 libavcodec/h263dec.c if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) { s 693 libavcodec/h263dec.c if ((ret = av_frame_ref(pict, s->current_picture_ptr->f)) < 0) s 695 libavcodec/h263dec.c ff_print_debug_info(s, s->current_picture_ptr, pict); s 696 libavcodec/h263dec.c ff_mpv_export_qp_table(s, pict, s->current_picture_ptr, FF_QSCALE_TYPE_MPEG1); s 697 libavcodec/h263dec.c } else if (s->last_picture_ptr) { s 698 libavcodec/h263dec.c if ((ret = av_frame_ref(pict, s->last_picture_ptr->f)) < 0) s 700 libavcodec/h263dec.c ff_print_debug_info(s, s->last_picture_ptr, pict); s 701 libavcodec/h263dec.c ff_mpv_export_qp_table(s, pict, s->last_picture_ptr, FF_QSCALE_TYPE_MPEG1); s 704 libavcodec/h263dec.c if (s->last_picture_ptr || s->low_delay) { s 706 libavcodec/h263dec.c && (s->codec_tag == AV_RL32("GEOV") || s->codec_tag == AV_RL32("GEOX"))) { s 726 libavcodec/h263dec.c return get_consumed_bytes(s, buf_size); s 67 libavcodec/h264_mp4toannexb_bsf.c H264BSFContext *s = ctx->priv_data; s 116 libavcodec/h264_mp4toannexb_bsf.c s->sps = out; s 117 libavcodec/h264_mp4toannexb_bsf.c s->sps_size = pps_offset; s 124 libavcodec/h264_mp4toannexb_bsf.c s->pps = out + pps_offset; s 125 libavcodec/h264_mp4toannexb_bsf.c s->pps_size = total_size - pps_offset; s 141 libavcodec/h264_mp4toannexb_bsf.c H264BSFContext *s = ctx->priv_data; s 156 libavcodec/h264_mp4toannexb_bsf.c s->length_size = ret; s 157 libavcodec/h264_mp4toannexb_bsf.c s->new_idr = 1; s 158 libavcodec/h264_mp4toannexb_bsf.c s->idr_sps_seen = 0; s 159 libavcodec/h264_mp4toannexb_bsf.c s->idr_pps_seen = 0; s 160 libavcodec/h264_mp4toannexb_bsf.c s->extradata_parsed = 1; s 171 libavcodec/h264_mp4toannexb_bsf.c H264BSFContext *s = ctx->priv_data; s 185 libavcodec/h264_mp4toannexb_bsf.c if (!s->extradata_parsed) { s 198 libavcodec/h264_mp4toannexb_bsf.c new_idr = s->new_idr; s 199 libavcodec/h264_mp4toannexb_bsf.c sps_seen = s->idr_sps_seen; s 200 libavcodec/h264_mp4toannexb_bsf.c pps_seen = s->idr_pps_seen; s 207 libavcodec/h264_mp4toannexb_bsf.c for (int i = 0; i < s->length_size; i++) s 210 libavcodec/h264_mp4toannexb_bsf.c buf += s->length_size; s 230 libavcodec/h264_mp4toannexb_bsf.c if (!s->sps_size) { s 233 libavcodec/h264_mp4toannexb_bsf.c count_or_copy(&out, &out_size, s->sps, s->sps_size, -1, j); s 253 libavcodec/h264_mp4toannexb_bsf.c if (!s->pps_size) { s 256 libavcodec/h264_mp4toannexb_bsf.c count_or_copy(&out, &out_size, s->pps, s->pps_size, -1, j); s 286 libavcodec/h264_mp4toannexb_bsf.c s->new_idr = new_idr; s 287 libavcodec/h264_mp4toannexb_bsf.c s->idr_sps_seen = sps_seen; s 288 libavcodec/h264_mp4toannexb_bsf.c s->idr_pps_seen = pps_seen; s 304 libavcodec/h264_mp4toannexb_bsf.c H264BSFContext *s = ctx->priv_data; s 306 libavcodec/h264_mp4toannexb_bsf.c s->idr_sps_seen = 0; s 307 libavcodec/h264_mp4toannexb_bsf.c s->idr_pps_seen = 0; s 308 libavcodec/h264_mp4toannexb_bsf.c s->new_idr = s->extradata_parsed; s 158 libavcodec/h264_parser.c static int scan_mmco_reset(AVCodecParserContext *s, GetBitContext *gb, s 162 libavcodec/h264_parser.c int slice_type_nos = s->pict_type & 3; s 163 libavcodec/h264_parser.c H264ParseContext *p = s->priv_data; s 244 libavcodec/h264_parser.c static inline int parse_nal_units(AVCodecParserContext *s, s 248 libavcodec/h264_parser.c H264ParseContext *p = s->priv_data; s 260 libavcodec/h264_parser.c s->pict_type = AV_PICTURE_TYPE_I; s 261 libavcodec/h264_parser.c s->key_frame = 0; s 262 libavcodec/h264_parser.c s->picture_structure = AV_PICTURE_STRUCTURE_UNKNOWN; s 336 libavcodec/h264_parser.c s->key_frame = 1; s 346 libavcodec/h264_parser.c s->pict_type = ff_h264_golomb_to_pict_type[slice_type % 5]; s 349 libavcodec/h264_parser.c s->key_frame = 1; s 374 libavcodec/h264_parser.c if (p->ps.sps->ref_frame_count <= 1 && p->ps.pps->ref_count[0] <= 1 && s->pict_type == AV_PICTURE_TYPE_I) s 375 libavcodec/h264_parser.c s->key_frame = 1; s 379 libavcodec/h264_parser.c s->coded_width = 16 * sps->mb_width; s 380 libavcodec/h264_parser.c s->coded_height = 16 * sps->mb_height; s 381 libavcodec/h264_parser.c s->width = s->coded_width - (sps->crop_right + sps->crop_left); s 382 libavcodec/h264_parser.c s->height = s->coded_height - (sps->crop_top + sps->crop_bottom); s 383 libavcodec/h264_parser.c if (s->width <= 0 || s->height <= 0) { s 384 libavcodec/h264_parser.c s->width = s->coded_width; s 385 libavcodec/h264_parser.c s->height = s->coded_height; s 390 libavcodec/h264_parser.c if (sps->chroma_format_idc == 3) s->format = AV_PIX_FMT_YUV444P9; s 391 libavcodec/h264_parser.c else if (sps->chroma_format_idc == 2) s->format = AV_PIX_FMT_YUV422P9; s 392 libavcodec/h264_parser.c else s->format = AV_PIX_FMT_YUV420P9; s 395 libavcodec/h264_parser.c if (sps->chroma_format_idc == 3) s->format = AV_PIX_FMT_YUV444P10; s 396 libavcodec/h264_parser.c else if (sps->chroma_format_idc == 2) s->format = AV_PIX_FMT_YUV422P10; s 397 libavcodec/h264_parser.c else s->format = AV_PIX_FMT_YUV420P10; s 400 libavcodec/h264_parser.c if (sps->chroma_format_idc == 3) s->format = AV_PIX_FMT_YUV444P; s 401 libavcodec/h264_parser.c else if (sps->chroma_format_idc == 2) s->format = AV_PIX_FMT_YUV422P; s 402 libavcodec/h264_parser.c else s->format = AV_PIX_FMT_YUV420P; s 405 libavcodec/h264_parser.c s->format = AV_PIX_FMT_NONE; s 443 libavcodec/h264_parser.c ret = ff_h264_init_poc(field_poc, &s->output_picture_number, sps, s 453 libavcodec/h264_parser.c got_reset = scan_mmco_reset(s, &nal.gb, avctx); s 485 libavcodec/h264_parser.c s->repeat_pict = 0; s 490 libavcodec/h264_parser.c s->repeat_pict = 1; s 494 libavcodec/h264_parser.c s->repeat_pict = 2; s 497 libavcodec/h264_parser.c s->repeat_pict = 3; s 500 libavcodec/h264_parser.c s->repeat_pict = 5; s 503 libavcodec/h264_parser.c s->repeat_pict = p->picture_structure == PICT_FRAME ? 1 : 0; s 507 libavcodec/h264_parser.c s->repeat_pict = p->picture_structure == PICT_FRAME ? 1 : 0; s 511 libavcodec/h264_parser.c s->picture_structure = AV_PICTURE_STRUCTURE_FRAME; s 516 libavcodec/h264_parser.c s->field_order = AV_FIELD_TT; s 520 libavcodec/h264_parser.c s->field_order = AV_FIELD_BB; s 523 libavcodec/h264_parser.c s->field_order = AV_FIELD_PROGRESSIVE; s 528 libavcodec/h264_parser.c s->field_order = AV_FIELD_TT; s 530 libavcodec/h264_parser.c s->field_order = AV_FIELD_BB; s 532 libavcodec/h264_parser.c s->field_order = AV_FIELD_PROGRESSIVE; s 536 libavcodec/h264_parser.c s->picture_structure = AV_PICTURE_STRUCTURE_TOP_FIELD; s 538 libavcodec/h264_parser.c s->picture_structure = AV_PICTURE_STRUCTURE_BOTTOM_FIELD; s 542 libavcodec/h264_parser.c p->last_picture_structure != s->picture_structure) { s 544 libavcodec/h264_parser.c s->field_order = AV_FIELD_TT; s 546 libavcodec/h264_parser.c s->field_order = AV_FIELD_BB; s 548 libavcodec/h264_parser.c s->field_order = AV_FIELD_UNKNOWN; s 550 libavcodec/h264_parser.c p->last_picture_structure = s->picture_structure; s 569 libavcodec/h264_parser.c static int h264_parse(AVCodecParserContext *s, s 574 libavcodec/h264_parser.c H264ParseContext *p = s->priv_data; s 587 libavcodec/h264_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 604 libavcodec/h264_parser.c parse_nal_units(s, avctx, buf, buf_size); s 609 libavcodec/h264_parser.c s->dts_sync_point = p->sei.buffering_period.present; s 610 libavcodec/h264_parser.c s->dts_ref_dts_delta = p->sei.picture_timing.cpb_removal_delay; s 611 libavcodec/h264_parser.c s->pts_dts_delta = p->sei.picture_timing.dpb_output_delay; s 613 libavcodec/h264_parser.c s->dts_sync_point = INT_MIN; s 614 libavcodec/h264_parser.c s->dts_ref_dts_delta = INT_MIN; s 615 libavcodec/h264_parser.c s->pts_dts_delta = INT_MIN; s 618 libavcodec/h264_parser.c if (s->flags & PARSER_FLAG_ONCE) { s 619 libavcodec/h264_parser.c s->flags &= PARSER_FLAG_COMPLETE_FRAMES; s 622 libavcodec/h264_parser.c if (s->dts_sync_point >= 0) { s 626 libavcodec/h264_parser.c if (s->dts != AV_NOPTS_VALUE) { s 628 libavcodec/h264_parser.c p->reference_dts = s->dts - av_rescale(s->dts_ref_dts_delta, num, den); s 631 libavcodec/h264_parser.c s->dts = p->reference_dts + av_rescale(s->dts_ref_dts_delta, num, den); s 634 libavcodec/h264_parser.c if (p->reference_dts != AV_NOPTS_VALUE && s->pts == AV_NOPTS_VALUE) s 635 libavcodec/h264_parser.c s->pts = s->dts + av_rescale(s->pts_dts_delta, num, den); s 637 libavcodec/h264_parser.c if (s->dts_sync_point > 0) s 638 libavcodec/h264_parser.c p->reference_dts = s->dts; // new reference s 684 libavcodec/h264_parser.c static void h264_close(AVCodecParserContext *s) s 686 libavcodec/h264_parser.c H264ParseContext *p = s->priv_data; s 695 libavcodec/h264_parser.c static av_cold int init(AVCodecParserContext *s) s 697 libavcodec/h264_parser.c H264ParseContext *p = s->priv_data; s 88 libavcodec/h264_ps.c static void remove_pps(H264ParamSets *s, int id) s 90 libavcodec/h264_ps.c av_buffer_unref(&s->pps_list[id]); s 93 libavcodec/h264_ps.c static void remove_sps(H264ParamSets *s, int id) s 97 libavcodec/h264_ps.c if (s->sps_list[id]) { s 99 libavcodec/h264_ps.c for (i = 0; i < FF_ARRAY_ELEMS(s->pps_list); i++) s 100 libavcodec/h264_ps.c if (s->pps_list[i] && ((PPS*)s->pps_list[i]->data)->sps_id == id) s 101 libavcodec/h264_ps.c remove_pps(s, i); s 104 libavcodec/h264_ps.c av_buffer_unref(&s->sps_list[id]); s 266 libavcodec/hcadec.c static void apply_intensity_stereo(HCAContext *s, ChannelContext *ch1, ChannelContext *ch2, s 284 libavcodec/hcadec.c static void reconstruct_hfr(HCAContext *s, ChannelContext *ch, s 45 libavcodec/hcom.c HCOMContext *s = avctx->priv_data; s 54 libavcodec/hcom.c s->dict_entries = AV_RB16(avctx->extradata); s 55 libavcodec/hcom.c if (avctx->extradata_size < s->dict_entries * 4 + 7 || s 56 libavcodec/hcom.c s->dict_entries == 0) s 58 libavcodec/hcom.c s->delta_compression = AV_RB32(avctx->extradata + 2); s 59 libavcodec/hcom.c s->sample = s->first_sample = avctx->extradata[avctx->extradata_size - 1]; s 61 libavcodec/hcom.c s->dict = av_calloc(s->dict_entries, sizeof(*s->dict)); s 62 libavcodec/hcom.c if (!s->dict) s 64 libavcodec/hcom.c for (int i = 0; i < s->dict_entries; i++) { s 65 libavcodec/hcom.c s->dict[i].l = AV_RB16(avctx->extradata + 6 + 4 * i); s 66 libavcodec/hcom.c s->dict[i].r = AV_RB16(avctx->extradata + 6 + 4 * i + 2); s 67 libavcodec/hcom.c if (s->dict[i].l >= 0 && s 68 libavcodec/hcom.c (s->dict[i].l >= s->dict_entries || s 69 libavcodec/hcom.c s->dict[i].r >= s->dict_entries || s 70 libavcodec/hcom.c s->dict[i].r < 0 )) { s 71 libavcodec/hcom.c av_freep(&s->dict); s 75 libavcodec/hcom.c if (s->dict[0].l < 0) { s 76 libavcodec/hcom.c av_freep(&s->dict); s 81 libavcodec/hcom.c s->dict_entry = 0; s 89 libavcodec/hcom.c HCOMContext *s = avctx->priv_data; s 106 libavcodec/hcom.c s->dict_entry = s->dict[s->dict_entry].r; s 108 libavcodec/hcom.c s->dict_entry = s->dict[s->dict_entry].l; s 110 libavcodec/hcom.c if (s->dict[s->dict_entry].l < 0) { s 113 libavcodec/hcom.c datum = s->dict[s->dict_entry].r; s 115 libavcodec/hcom.c if (!s->delta_compression) s 116 libavcodec/hcom.c s->sample = 0; s 117 libavcodec/hcom.c s->sample = (s->sample + datum) & 0xFF; s 119 libavcodec/hcom.c frame->data[0][n++] = s->sample; s 121 libavcodec/hcom.c s->dict_entry = 0; s 134 libavcodec/hcom.c HCOMContext *s = avctx->priv_data; s 136 libavcodec/hcom.c av_freep(&s->dict); s 450 libavcodec/hevc_cabac.c void ff_hevc_save_states(HEVCContext *s, int ctb_addr_ts) s 452 libavcodec/hevc_cabac.c if (s->ps.pps->entropy_coding_sync_enabled_flag && s 453 libavcodec/hevc_cabac.c (ctb_addr_ts % s->ps.sps->ctb_width == 2 || s 454 libavcodec/hevc_cabac.c (s->ps.sps->ctb_width == 2 && s 455 libavcodec/hevc_cabac.c ctb_addr_ts % s->ps.sps->ctb_width == 0))) { s 456 libavcodec/hevc_cabac.c memcpy(s->cabac_state, s->HEVClc->cabac_state, HEVC_CONTEXTS); s 460 libavcodec/hevc_cabac.c static void load_states(HEVCContext *s) s 462 libavcodec/hevc_cabac.c memcpy(s->HEVClc->cabac_state, s->cabac_state, HEVC_CONTEXTS); s 470 libavcodec/hevc_cabac.c static int cabac_init_decoder(HEVCContext *s) s 472 libavcodec/hevc_cabac.c GetBitContext *gb = &s->HEVClc->gb; s 475 libavcodec/hevc_cabac.c return ff_init_cabac_decoder(&s->HEVClc->cc, s 480 libavcodec/hevc_cabac.c static void cabac_init_state(HEVCContext *s) s 482 libavcodec/hevc_cabac.c int init_type = 2 - s->sh.slice_type; s 485 libavcodec/hevc_cabac.c if (s->sh.cabac_init_flag && s->sh.slice_type != HEVC_SLICE_I) s 492 libavcodec/hevc_cabac.c int pre = 2 * (((m * av_clip(s->sh.slice_qp, 0, 51)) >> 4) + n) - 127; s 497 libavcodec/hevc_cabac.c s->HEVClc->cabac_state[i] = pre; s 501 libavcodec/hevc_cabac.c s->HEVClc->stat_coeff[i] = 0; s 504 libavcodec/hevc_cabac.c int ff_hevc_cabac_init(HEVCContext *s, int ctb_addr_ts) s 506 libavcodec/hevc_cabac.c if (ctb_addr_ts == s->ps.pps->ctb_addr_rs_to_ts[s->sh.slice_ctb_addr_rs]) { s 507 libavcodec/hevc_cabac.c int ret = cabac_init_decoder(s); s 510 libavcodec/hevc_cabac.c if (s->sh.dependent_slice_segment_flag == 0 || s 511 libavcodec/hevc_cabac.c (s->ps.pps->tiles_enabled_flag && s 512 libavcodec/hevc_cabac.c s->ps.pps->tile_id[ctb_addr_ts] != s->ps.pps->tile_id[ctb_addr_ts - 1])) s 513 libavcodec/hevc_cabac.c cabac_init_state(s); s 515 libavcodec/hevc_cabac.c if (!s->sh.first_slice_in_pic_flag && s 516 libavcodec/hevc_cabac.c s->ps.pps->entropy_coding_sync_enabled_flag) { s 517 libavcodec/hevc_cabac.c if (ctb_addr_ts % s->ps.sps->ctb_width == 0) { s 518 libavcodec/hevc_cabac.c if (s->ps.sps->ctb_width == 1) s 519 libavcodec/hevc_cabac.c cabac_init_state(s); s 520 libavcodec/hevc_cabac.c else if (s->sh.dependent_slice_segment_flag == 1) s 521 libavcodec/hevc_cabac.c load_states(s); s 525 libavcodec/hevc_cabac.c if (s->ps.pps->tiles_enabled_flag && s 526 libavcodec/hevc_cabac.c s->ps.pps->tile_id[ctb_addr_ts] != s->ps.pps->tile_id[ctb_addr_ts - 1]) { s 528 libavcodec/hevc_cabac.c if (s->threads_number == 1) s 529 libavcodec/hevc_cabac.c ret = cabac_reinit(s->HEVClc); s 531 libavcodec/hevc_cabac.c ret = cabac_init_decoder(s); s 535 libavcodec/hevc_cabac.c cabac_init_state(s); s 537 libavcodec/hevc_cabac.c if (s->ps.pps->entropy_coding_sync_enabled_flag) { s 538 libavcodec/hevc_cabac.c if (ctb_addr_ts % s->ps.sps->ctb_width == 0) { s 540 libavcodec/hevc_cabac.c get_cabac_terminate(&s->HEVClc->cc); s 541 libavcodec/hevc_cabac.c if (s->threads_number == 1) s 542 libavcodec/hevc_cabac.c ret = cabac_reinit(s->HEVClc); s 544 libavcodec/hevc_cabac.c ret = cabac_init_decoder(s); s 549 libavcodec/hevc_cabac.c if (s->ps.sps->ctb_width == 1) s 550 libavcodec/hevc_cabac.c cabac_init_state(s); s 552 libavcodec/hevc_cabac.c load_states(s); s 559 libavcodec/hevc_cabac.c #define GET_CABAC(ctx) get_cabac(&s->HEVClc->cc, &s->HEVClc->cabac_state[ctx]) s 561 libavcodec/hevc_cabac.c int ff_hevc_sao_merge_flag_decode(HEVCContext *s) s 566 libavcodec/hevc_cabac.c int ff_hevc_sao_type_idx_decode(HEVCContext *s) s 571 libavcodec/hevc_cabac.c if (!get_cabac_bypass(&s->HEVClc->cc)) s 576 libavcodec/hevc_cabac.c int ff_hevc_sao_band_position_decode(HEVCContext *s) s 579 libavcodec/hevc_cabac.c int value = get_cabac_bypass(&s->HEVClc->cc); s 582 libavcodec/hevc_cabac.c value = (value << 1) | get_cabac_bypass(&s->HEVClc->cc); s 586 libavcodec/hevc_cabac.c int ff_hevc_sao_offset_abs_decode(HEVCContext *s) s 589 libavcodec/hevc_cabac.c int length = (1 << (FFMIN(s->ps.sps->bit_depth, 10) - 5)) - 1; s 591 libavcodec/hevc_cabac.c while (i < length && get_cabac_bypass(&s->HEVClc->cc)) s 596 libavcodec/hevc_cabac.c int ff_hevc_sao_offset_sign_decode(HEVCContext *s) s 598 libavcodec/hevc_cabac.c return get_cabac_bypass(&s->HEVClc->cc); s 601 libavcodec/hevc_cabac.c int ff_hevc_sao_eo_class_decode(HEVCContext *s) s 603 libavcodec/hevc_cabac.c int ret = get_cabac_bypass(&s->HEVClc->cc) << 1; s 604 libavcodec/hevc_cabac.c ret |= get_cabac_bypass(&s->HEVClc->cc); s 608 libavcodec/hevc_cabac.c int ff_hevc_end_of_slice_flag_decode(HEVCContext *s) s 610 libavcodec/hevc_cabac.c return get_cabac_terminate(&s->HEVClc->cc); s 613 libavcodec/hevc_cabac.c int ff_hevc_cu_transquant_bypass_flag_decode(HEVCContext *s) s 618 libavcodec/hevc_cabac.c int ff_hevc_skip_flag_decode(HEVCContext *s, int x0, int y0, int x_cb, int y_cb) s 620 libavcodec/hevc_cabac.c int min_cb_width = s->ps.sps->min_cb_width; s 622 libavcodec/hevc_cabac.c int x0b = av_mod_uintp2(x0, s->ps.sps->log2_ctb_size); s 623 libavcodec/hevc_cabac.c int y0b = av_mod_uintp2(y0, s->ps.sps->log2_ctb_size); s 625 libavcodec/hevc_cabac.c if (s->HEVClc->ctb_left_flag || x0b) s 626 libavcodec/hevc_cabac.c inc = !!SAMPLE_CTB(s->skip_flag, x_cb - 1, y_cb); s 627 libavcodec/hevc_cabac.c if (s->HEVClc->ctb_up_flag || y0b) s 628 libavcodec/hevc_cabac.c inc += !!SAMPLE_CTB(s->skip_flag, x_cb, y_cb - 1); s 633 libavcodec/hevc_cabac.c int ff_hevc_cu_qp_delta_abs(HEVCContext *s) s 645 libavcodec/hevc_cabac.c while (k < 7 && get_cabac_bypass(&s->HEVClc->cc)) { s 650 libavcodec/hevc_cabac.c av_log(s->avctx, AV_LOG_ERROR, "CABAC_MAX_BIN : %d\n", k); s 655 libavcodec/hevc_cabac.c suffix_val += get_cabac_bypass(&s->HEVClc->cc) << k; s 660 libavcodec/hevc_cabac.c int ff_hevc_cu_qp_delta_sign_flag(HEVCContext *s) s 662 libavcodec/hevc_cabac.c return get_cabac_bypass(&s->HEVClc->cc); s 665 libavcodec/hevc_cabac.c int ff_hevc_cu_chroma_qp_offset_flag(HEVCContext *s) s 670 libavcodec/hevc_cabac.c int ff_hevc_cu_chroma_qp_offset_idx(HEVCContext *s) s 672 libavcodec/hevc_cabac.c int c_max= FFMAX(5, s->ps.pps->chroma_qp_offset_list_len_minus1); s 681 libavcodec/hevc_cabac.c int ff_hevc_pred_mode_decode(HEVCContext *s) s 686 libavcodec/hevc_cabac.c int ff_hevc_split_coding_unit_flag_decode(HEVCContext *s, int ct_depth, int x0, int y0) s 689 libavcodec/hevc_cabac.c int x0b = av_mod_uintp2(x0, s->ps.sps->log2_ctb_size); s 690 libavcodec/hevc_cabac.c int y0b = av_mod_uintp2(y0, s->ps.sps->log2_ctb_size); s 691 libavcodec/hevc_cabac.c int x_cb = x0 >> s->ps.sps->log2_min_cb_size; s 692 libavcodec/hevc_cabac.c int y_cb = y0 >> s->ps.sps->log2_min_cb_size; s 694 libavcodec/hevc_cabac.c if (s->HEVClc->ctb_left_flag || x0b) s 695 libavcodec/hevc_cabac.c depth_left = s->tab_ct_depth[(y_cb) * s->ps.sps->min_cb_width + x_cb - 1]; s 696 libavcodec/hevc_cabac.c if (s->HEVClc->ctb_up_flag || y0b) s 697 libavcodec/hevc_cabac.c depth_top = s->tab_ct_depth[(y_cb - 1) * s->ps.sps->min_cb_width + x_cb]; s 705 libavcodec/hevc_cabac.c int ff_hevc_part_mode_decode(HEVCContext *s, int log2_cb_size) s 709 libavcodec/hevc_cabac.c if (log2_cb_size == s->ps.sps->log2_min_cb_size) { s 710 libavcodec/hevc_cabac.c if (s->HEVClc->cu.pred_mode == MODE_INTRA) // 0 s 721 libavcodec/hevc_cabac.c if (!s->ps.sps->amp_enabled_flag) { s 730 libavcodec/hevc_cabac.c if (get_cabac_bypass(&s->HEVClc->cc)) // 0101 s 737 libavcodec/hevc_cabac.c if (get_cabac_bypass(&s->HEVClc->cc)) // 0001 s 742 libavcodec/hevc_cabac.c int ff_hevc_pcm_flag_decode(HEVCContext *s) s 744 libavcodec/hevc_cabac.c return get_cabac_terminate(&s->HEVClc->cc); s 747 libavcodec/hevc_cabac.c int ff_hevc_prev_intra_luma_pred_flag_decode(HEVCContext *s) s 752 libavcodec/hevc_cabac.c int ff_hevc_mpm_idx_decode(HEVCContext *s) s 755 libavcodec/hevc_cabac.c while (i < 2 && get_cabac_bypass(&s->HEVClc->cc)) s 760 libavcodec/hevc_cabac.c int ff_hevc_rem_intra_luma_pred_mode_decode(HEVCContext *s) s 763 libavcodec/hevc_cabac.c int value = get_cabac_bypass(&s->HEVClc->cc); s 766 libavcodec/hevc_cabac.c value = (value << 1) | get_cabac_bypass(&s->HEVClc->cc); s 770 libavcodec/hevc_cabac.c int ff_hevc_intra_chroma_pred_mode_decode(HEVCContext *s) s 776 libavcodec/hevc_cabac.c ret = get_cabac_bypass(&s->HEVClc->cc) << 1; s 777 libavcodec/hevc_cabac.c ret |= get_cabac_bypass(&s->HEVClc->cc); s 781 libavcodec/hevc_cabac.c int ff_hevc_merge_idx_decode(HEVCContext *s) s 786 libavcodec/hevc_cabac.c while (i < s->sh.max_num_merge_cand-1 && get_cabac_bypass(&s->HEVClc->cc)) s 792 libavcodec/hevc_cabac.c int ff_hevc_merge_flag_decode(HEVCContext *s) s 797 libavcodec/hevc_cabac.c int ff_hevc_inter_pred_idc_decode(HEVCContext *s, int nPbW, int nPbH) s 801 libavcodec/hevc_cabac.c if (GET_CABAC(elem_offset[INTER_PRED_IDC] + s->HEVClc->ct_depth)) s 807 libavcodec/hevc_cabac.c int ff_hevc_ref_idx_lx_decode(HEVCContext *s, int num_ref_idx_lx) s 816 libavcodec/hevc_cabac.c while (i < max && get_cabac_bypass(&s->HEVClc->cc)) s 823 libavcodec/hevc_cabac.c int ff_hevc_mvp_lx_flag_decode(HEVCContext *s) s 828 libavcodec/hevc_cabac.c int ff_hevc_no_residual_syntax_flag_decode(HEVCContext *s) s 833 libavcodec/hevc_cabac.c static av_always_inline int abs_mvd_greater0_flag_decode(HEVCContext *s) s 838 libavcodec/hevc_cabac.c static av_always_inline int abs_mvd_greater1_flag_decode(HEVCContext *s) s 843 libavcodec/hevc_cabac.c static av_always_inline int mvd_decode(HEVCContext *s) s 848 libavcodec/hevc_cabac.c while (k < CABAC_MAX_BIN && get_cabac_bypass(&s->HEVClc->cc)) { s 853 libavcodec/hevc_cabac.c av_log(s->avctx, AV_LOG_ERROR, "CABAC_MAX_BIN : %d\n", k); s 857 libavcodec/hevc_cabac.c ret += get_cabac_bypass(&s->HEVClc->cc) << k; s 858 libavcodec/hevc_cabac.c return get_cabac_bypass_sign(&s->HEVClc->cc, -ret); s 861 libavcodec/hevc_cabac.c static av_always_inline int mvd_sign_flag_decode(HEVCContext *s) s 863 libavcodec/hevc_cabac.c return get_cabac_bypass_sign(&s->HEVClc->cc, -1); s 866 libavcodec/hevc_cabac.c int ff_hevc_split_transform_flag_decode(HEVCContext *s, int log2_trafo_size) s 871 libavcodec/hevc_cabac.c int ff_hevc_cbf_cb_cr_decode(HEVCContext *s, int trafo_depth) s 876 libavcodec/hevc_cabac.c int ff_hevc_cbf_luma_decode(HEVCContext *s, int trafo_depth) s 881 libavcodec/hevc_cabac.c static int hevc_transform_skip_flag_decode(HEVCContext *s, int c_idx) s 886 libavcodec/hevc_cabac.c static int explicit_rdpcm_flag_decode(HEVCContext *s, int c_idx) s 891 libavcodec/hevc_cabac.c static int explicit_rdpcm_dir_flag_decode(HEVCContext *s, int c_idx) s 896 libavcodec/hevc_cabac.c int ff_hevc_log2_res_scale_abs(HEVCContext *s, int idx) { s 905 libavcodec/hevc_cabac.c int ff_hevc_res_scale_sign_flag(HEVCContext *s, int idx) { s 909 libavcodec/hevc_cabac.c static av_always_inline void last_significant_coeff_xy_prefix_decode(HEVCContext *s, int c_idx, s 935 libavcodec/hevc_cabac.c static av_always_inline int last_significant_coeff_suffix_decode(HEVCContext *s, s 940 libavcodec/hevc_cabac.c int value = get_cabac_bypass(&s->HEVClc->cc); s 943 libavcodec/hevc_cabac.c value = (value << 1) | get_cabac_bypass(&s->HEVClc->cc); s 947 libavcodec/hevc_cabac.c static av_always_inline int significant_coeff_group_flag_decode(HEVCContext *s, int c_idx, int ctx_cg) s 955 libavcodec/hevc_cabac.c static av_always_inline int significant_coeff_flag_decode(HEVCContext *s, int x_c, int y_c, s 962 libavcodec/hevc_cabac.c static av_always_inline int significant_coeff_flag_decode_0(HEVCContext *s, int c_idx, int offset) s 967 libavcodec/hevc_cabac.c static av_always_inline int coeff_abs_level_greater1_flag_decode(HEVCContext *s, int c_idx, int inc) s 976 libavcodec/hevc_cabac.c static av_always_inline int coeff_abs_level_greater2_flag_decode(HEVCContext *s, int c_idx, int inc) s 984 libavcodec/hevc_cabac.c static av_always_inline int coeff_abs_level_remaining_decode(HEVCContext *s, int rc_rice_param) s 991 libavcodec/hevc_cabac.c while (prefix < CABAC_MAX_BIN && get_cabac_bypass(&s->HEVClc->cc)) s 996 libavcodec/hevc_cabac.c suffix = (suffix << 1) | get_cabac_bypass(&s->HEVClc->cc); s 1002 libavcodec/hevc_cabac.c av_log(s->avctx, AV_LOG_ERROR, "CABAC_MAX_BIN : %d\n", prefix); s 1007 libavcodec/hevc_cabac.c suffix = (suffix << 1) | get_cabac_bypass(&s->HEVClc->cc); s 1014 libavcodec/hevc_cabac.c static av_always_inline int coeff_sign_flag_decode(HEVCContext *s, uint8_t nb) s 1020 libavcodec/hevc_cabac.c ret = (ret << 1) | get_cabac_bypass(&s->HEVClc->cc); s 1024 libavcodec/hevc_cabac.c void ff_hevc_hls_residual_coding(HEVCContext *s, int x0, int y0, s 1033 libavcodec/hevc_cabac.c HEVCLocalContext *lc = s->HEVClc; s 1047 libavcodec/hevc_cabac.c ptrdiff_t stride = s->frame->linesize[c_idx]; s 1048 libavcodec/hevc_cabac.c int hshift = s->ps.sps->hshift[c_idx]; s 1049 libavcodec/hevc_cabac.c int vshift = s->ps.sps->vshift[c_idx]; s 1050 libavcodec/hevc_cabac.c uint8_t *dst = &s->frame->data[c_idx][(y0 >> vshift) * stride + s 1051 libavcodec/hevc_cabac.c ((x0 >> hshift) << s->ps.sps->pixel_shift)]; s 1086 libavcodec/hevc_cabac.c if (s->ps.pps->transform_skip_enabled_flag && s 1087 libavcodec/hevc_cabac.c log2_trafo_size <= s->ps.pps->log2_max_transform_skip_block_size) { s 1088 libavcodec/hevc_cabac.c transform_skip_flag = hevc_transform_skip_flag_decode(s, c_idx); s 1092 libavcodec/hevc_cabac.c qp = qp_y + s->ps.sps->qp_bd_offset; s 1097 libavcodec/hevc_cabac.c offset = s->ps.pps->cb_qp_offset + s->sh.slice_cb_qp_offset + s 1100 libavcodec/hevc_cabac.c offset = s->ps.pps->cr_qp_offset + s->sh.slice_cr_qp_offset + s 1103 libavcodec/hevc_cabac.c qp_i = av_clip(qp_y + offset, - s->ps.sps->qp_bd_offset, 57); s 1104 libavcodec/hevc_cabac.c if (s->ps.sps->chroma_format_idc == 1) { s 1118 libavcodec/hevc_cabac.c qp += s->ps.sps->qp_bd_offset; s 1121 libavcodec/hevc_cabac.c shift = s->ps.sps->bit_depth + log2_trafo_size - 5; s 1127 libavcodec/hevc_cabac.c if (s->ps.sps->scaling_list_enable_flag && !(transform_skip_flag && log2_trafo_size > 2)) { s 1128 libavcodec/hevc_cabac.c const ScalingList *sl = s->ps.pps->scaling_list_data_present_flag ? s 1129 libavcodec/hevc_cabac.c &s->ps.pps->scaling_list : &s->ps.sps->scaling_list; s 1145 libavcodec/hevc_cabac.c if (lc->cu.pred_mode == MODE_INTER && s->ps.sps->explicit_rdpcm_enabled_flag && s 1147 libavcodec/hevc_cabac.c explicit_rdpcm_flag = explicit_rdpcm_flag_decode(s, c_idx); s 1149 libavcodec/hevc_cabac.c explicit_rdpcm_dir_flag = explicit_rdpcm_dir_flag_decode(s, c_idx); s 1153 libavcodec/hevc_cabac.c last_significant_coeff_xy_prefix_decode(s, c_idx, log2_trafo_size, s 1157 libavcodec/hevc_cabac.c int suffix = last_significant_coeff_suffix_decode(s, last_significant_coeff_x); s 1164 libavcodec/hevc_cabac.c int suffix = last_significant_coeff_suffix_decode(s, last_significant_coeff_y); s 1243 libavcodec/hevc_cabac.c significant_coeff_group_flag_decode(s, c_idx, ctx_cg); s 1276 libavcodec/hevc_cabac.c if (s->ps.sps->transform_skip_context_enabled_flag && s 1310 libavcodec/hevc_cabac.c if (significant_coeff_flag_decode(s, x_c, y_c, scf_offset, ctx_idx_map_p)) { s 1317 libavcodec/hevc_cabac.c if (s->ps.sps->transform_skip_context_enabled_flag && s 1334 libavcodec/hevc_cabac.c if (significant_coeff_flag_decode_0(s, c_idx, scf_offset) == 1) { s 1362 libavcodec/hevc_cabac.c if (s->ps.sps->persistent_rice_adaptation_enabled_flag) { s 1378 libavcodec/hevc_cabac.c coeff_abs_level_greater1_flag_decode(s, c_idx, inc); s 1391 libavcodec/hevc_cabac.c s->ps.sps->implicit_rdpcm_enabled_flag && transform_skip_flag && s 1399 libavcodec/hevc_cabac.c coeff_abs_level_greater1_flag[first_greater1_coeff_idx] += coeff_abs_level_greater2_flag_decode(s, c_idx, ctx_set); s 1401 libavcodec/hevc_cabac.c if (!s->ps.pps->sign_data_hiding_flag || !sign_hidden ) { s 1402 libavcodec/hevc_cabac.c coeff_sign_flag = coeff_sign_flag_decode(s, nb_significant_coeff_flag) << (16 - nb_significant_coeff_flag); s 1404 libavcodec/hevc_cabac.c coeff_sign_flag = coeff_sign_flag_decode(s, nb_significant_coeff_flag - 1) << (16 - (nb_significant_coeff_flag - 1)); s 1413 libavcodec/hevc_cabac.c int last_coeff_abs_level_remaining = coeff_abs_level_remaining_decode(s, c_rice_param); s 1417 libavcodec/hevc_cabac.c c_rice_param = s->ps.sps->persistent_rice_adaptation_enabled_flag ? c_rice_param + 1 : FFMIN(c_rice_param + 1, 4); s 1418 libavcodec/hevc_cabac.c if (s->ps.sps->persistent_rice_adaptation_enabled_flag && !rice_init) { s 1429 libavcodec/hevc_cabac.c int last_coeff_abs_level_remaining = coeff_abs_level_remaining_decode(s, c_rice_param); s 1433 libavcodec/hevc_cabac.c c_rice_param = s->ps.sps->persistent_rice_adaptation_enabled_flag ? c_rice_param + 1 : FFMIN(c_rice_param + 1, 4); s 1434 libavcodec/hevc_cabac.c if (s->ps.sps->persistent_rice_adaptation_enabled_flag && !rice_init) { s 1444 libavcodec/hevc_cabac.c if (s->ps.pps->sign_data_hiding_flag && sign_hidden) { s 1453 libavcodec/hevc_cabac.c if (s->ps.sps->scaling_list_enable_flag && !(transform_skip_flag && log2_trafo_size > 2)) { s 1481 libavcodec/hevc_cabac.c if (explicit_rdpcm_flag || (s->ps.sps->implicit_rdpcm_enabled_flag && s 1483 libavcodec/hevc_cabac.c int mode = s->ps.sps->implicit_rdpcm_enabled_flag ? (pred_mode_intra == 26) : explicit_rdpcm_dir_flag; s 1485 libavcodec/hevc_cabac.c s->hevcdsp.transform_rdpcm(coeffs, log2_trafo_size, mode); s 1489 libavcodec/hevc_cabac.c int rot = s->ps.sps->transform_skip_rotation_enabled_flag && s 1497 libavcodec/hevc_cabac.c s->hevcdsp.dequant(coeffs, log2_trafo_size); s 1499 libavcodec/hevc_cabac.c if (explicit_rdpcm_flag || (s->ps.sps->implicit_rdpcm_enabled_flag && s 1504 libavcodec/hevc_cabac.c s->hevcdsp.transform_rdpcm(coeffs, log2_trafo_size, mode); s 1507 libavcodec/hevc_cabac.c s->hevcdsp.transform_4x4_luma(coeffs); s 1511 libavcodec/hevc_cabac.c s->hevcdsp.idct_dc[log2_trafo_size - 2](coeffs); s 1520 libavcodec/hevc_cabac.c s->hevcdsp.idct[log2_trafo_size - 2](coeffs, col_limit); s 1531 libavcodec/hevc_cabac.c s->hevcdsp.add_residual[log2_trafo_size-2](dst, coeffs, stride); s 1534 libavcodec/hevc_cabac.c void ff_hevc_hls_mvd_coding(HEVCContext *s, int x0, int y0, int log2_cb_size) s 1536 libavcodec/hevc_cabac.c HEVCLocalContext *lc = s->HEVClc; s 1537 libavcodec/hevc_cabac.c int x = abs_mvd_greater0_flag_decode(s); s 1538 libavcodec/hevc_cabac.c int y = abs_mvd_greater0_flag_decode(s); s 1541 libavcodec/hevc_cabac.c x += abs_mvd_greater1_flag_decode(s); s 1543 libavcodec/hevc_cabac.c y += abs_mvd_greater1_flag_decode(s); s 1546 libavcodec/hevc_cabac.c case 2: lc->pu.mvd.x = mvd_decode(s); break; s 1547 libavcodec/hevc_cabac.c case 1: lc->pu.mvd.x = mvd_sign_flag_decode(s); break; s 1552 libavcodec/hevc_cabac.c case 2: lc->pu.mvd.y = mvd_decode(s); break; s 1553 libavcodec/hevc_cabac.c case 1: lc->pu.mvd.y = mvd_sign_flag_decode(s); break; s 49 libavcodec/hevc_filter.c static int chroma_tc(HEVCContext *s, int qp_y, int c_idx, int tc_offset) s 58 libavcodec/hevc_filter.c offset = s->ps.pps->cb_qp_offset; s 60 libavcodec/hevc_filter.c offset = s->ps.pps->cr_qp_offset; s 63 libavcodec/hevc_filter.c if (s->ps.sps->chroma_format_idc == 1) { s 78 libavcodec/hevc_filter.c static int get_qPy_pred(HEVCContext *s, int xBase, int yBase, int log2_cb_size) s 80 libavcodec/hevc_filter.c HEVCLocalContext *lc = s->HEVClc; s 81 libavcodec/hevc_filter.c int ctb_size_mask = (1 << s->ps.sps->log2_ctb_size) - 1; s 82 libavcodec/hevc_filter.c int MinCuQpDeltaSizeMask = (1 << (s->ps.sps->log2_ctb_size - s 83 libavcodec/hevc_filter.c s->ps.pps->diff_cu_qp_delta_depth)) - 1; s 86 libavcodec/hevc_filter.c int min_cb_width = s->ps.sps->min_cb_width; s 87 libavcodec/hevc_filter.c int x_cb = xQgBase >> s->ps.sps->log2_min_cb_size; s 88 libavcodec/hevc_filter.c int y_cb = yQgBase >> s->ps.sps->log2_min_cb_size; s 98 libavcodec/hevc_filter.c qPy_pred = s->sh.slice_qp; s 107 libavcodec/hevc_filter.c qPy_a = s->qp_y_tab[(x_cb - 1) + y_cb * min_cb_width]; s 113 libavcodec/hevc_filter.c qPy_b = s->qp_y_tab[x_cb + (y_cb - 1) * min_cb_width]; s 115 libavcodec/hevc_filter.c av_assert2(qPy_a >= -s->ps.sps->qp_bd_offset && qPy_a < 52); s 116 libavcodec/hevc_filter.c av_assert2(qPy_b >= -s->ps.sps->qp_bd_offset && qPy_b < 52); s 121 libavcodec/hevc_filter.c void ff_hevc_set_qPy(HEVCContext *s, int xBase, int yBase, int log2_cb_size) s 123 libavcodec/hevc_filter.c int qp_y = get_qPy_pred(s, xBase, yBase, log2_cb_size); s 125 libavcodec/hevc_filter.c if (s->HEVClc->tu.cu_qp_delta != 0) { s 126 libavcodec/hevc_filter.c int off = s->ps.sps->qp_bd_offset; s 127 libavcodec/hevc_filter.c s->HEVClc->qp_y = FFUMOD(qp_y + s->HEVClc->tu.cu_qp_delta + 52 + 2 * off, s 130 libavcodec/hevc_filter.c s->HEVClc->qp_y = qp_y; s 133 libavcodec/hevc_filter.c static int get_qPy(HEVCContext *s, int xC, int yC) s 135 libavcodec/hevc_filter.c int log2_min_cb_size = s->ps.sps->log2_min_cb_size; s 138 libavcodec/hevc_filter.c return s->qp_y_tab[x + y * s->ps.sps->min_cb_width]; s 191 libavcodec/hevc_filter.c static void copy_CTB_to_hv(HEVCContext *s, const uint8_t *src, s 195 libavcodec/hevc_filter.c int sh = s->ps.sps->pixel_shift; s 196 libavcodec/hevc_filter.c int w = s->ps.sps->width >> s->ps.sps->hshift[c_idx]; s 197 libavcodec/hevc_filter.c int h = s->ps.sps->height >> s->ps.sps->vshift[c_idx]; s 200 libavcodec/hevc_filter.c memcpy(s->sao_pixel_buffer_h[c_idx] + (((2 * y_ctb) * w + x) << sh), s 202 libavcodec/hevc_filter.c memcpy(s->sao_pixel_buffer_h[c_idx] + (((2 * y_ctb + 1) * w + x) << sh), s 206 libavcodec/hevc_filter.c copy_vert(s->sao_pixel_buffer_v[c_idx] + (((2 * x_ctb) * h + y) << sh), src, sh, height, 1 << sh, stride_src); s 208 libavcodec/hevc_filter.c copy_vert(s->sao_pixel_buffer_v[c_idx] + (((2 * x_ctb + 1) * h + y) << sh), src + ((width - 1) << sh), sh, height, 1 << sh, stride_src); s 211 libavcodec/hevc_filter.c static void restore_tqb_pixels(HEVCContext *s, s 216 libavcodec/hevc_filter.c if ( s->ps.pps->transquant_bypass_enable_flag || s 217 libavcodec/hevc_filter.c (s->ps.sps->pcm.loop_filter_disable_flag && s->ps.sps->pcm_enabled_flag)) { s 219 libavcodec/hevc_filter.c int min_pu_size = 1 << s->ps.sps->log2_min_pu_size; s 220 libavcodec/hevc_filter.c int hshift = s->ps.sps->hshift[c_idx]; s 221 libavcodec/hevc_filter.c int vshift = s->ps.sps->vshift[c_idx]; s 222 libavcodec/hevc_filter.c int x_min = ((x0 ) >> s->ps.sps->log2_min_pu_size); s 223 libavcodec/hevc_filter.c int y_min = ((y0 ) >> s->ps.sps->log2_min_pu_size); s 224 libavcodec/hevc_filter.c int x_max = ((x0 + width ) >> s->ps.sps->log2_min_pu_size); s 225 libavcodec/hevc_filter.c int y_max = ((y0 + height) >> s->ps.sps->log2_min_pu_size); s 226 libavcodec/hevc_filter.c int len = (min_pu_size >> hshift) << s->ps.sps->pixel_shift; s 229 libavcodec/hevc_filter.c if (s->is_pcm[y * s->ps.sps->min_pu_width + x]) { s 231 libavcodec/hevc_filter.c uint8_t *src = src1 + (((y << s->ps.sps->log2_min_pu_size) - y0) >> vshift) * stride_src + ((((x << s->ps.sps->log2_min_pu_size) - x0) >> hshift) << s->ps.sps->pixel_shift); s 232 libavcodec/hevc_filter.c const uint8_t *dst = dst1 + (((y << s->ps.sps->log2_min_pu_size) - y0) >> vshift) * stride_dst + ((((x << s->ps.sps->log2_min_pu_size) - x0) >> hshift) << s->ps.sps->pixel_shift); s 244 libavcodec/hevc_filter.c #define CTB(tab, x, y) ((tab)[(y) * s->ps.sps->ctb_width + (x)]) s 246 libavcodec/hevc_filter.c static void sao_filter_CTB(HEVCContext *s, int x, int y) s 249 libavcodec/hevc_filter.c HEVCLocalContext *lc = s->HEVClc; s 252 libavcodec/hevc_filter.c int x_ctb = x >> s->ps.sps->log2_ctb_size; s 253 libavcodec/hevc_filter.c int y_ctb = y >> s->ps.sps->log2_ctb_size; s 254 libavcodec/hevc_filter.c int ctb_addr_rs = y_ctb * s->ps.sps->ctb_width + x_ctb; s 255 libavcodec/hevc_filter.c int ctb_addr_ts = s->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs]; s 256 libavcodec/hevc_filter.c SAOParams *sao = &CTB(s->sao, x_ctb, y_ctb); s 261 libavcodec/hevc_filter.c uint8_t lfase = CTB(s->filter_slice_edges, x_ctb, y_ctb); s 262 libavcodec/hevc_filter.c uint8_t no_tile_filter = s->ps.pps->tiles_enabled_flag && s 263 libavcodec/hevc_filter.c !s->ps.pps->loop_filter_across_tiles_enabled_flag; s 272 libavcodec/hevc_filter.c edges[2] = x_ctb == s->ps.sps->ctb_width - 1; s 273 libavcodec/hevc_filter.c edges[3] = y_ctb == s->ps.sps->ctb_height - 1; s 277 libavcodec/hevc_filter.c left_tile_edge = no_tile_filter && s->ps.pps->tile_id[ctb_addr_ts] != s->ps.pps->tile_id[s->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs-1]]; s 278 libavcodec/hevc_filter.c vert_edge[0] = (!lfase && CTB(s->tab_slice_address, x_ctb, y_ctb) != CTB(s->tab_slice_address, x_ctb - 1, y_ctb)) || left_tile_edge; s 281 libavcodec/hevc_filter.c right_tile_edge = no_tile_filter && s->ps.pps->tile_id[ctb_addr_ts] != s->ps.pps->tile_id[s->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs+1]]; s 282 libavcodec/hevc_filter.c vert_edge[1] = (!lfase && CTB(s->tab_slice_address, x_ctb, y_ctb) != CTB(s->tab_slice_address, x_ctb + 1, y_ctb)) || right_tile_edge; s 285 libavcodec/hevc_filter.c up_tile_edge = no_tile_filter && s->ps.pps->tile_id[ctb_addr_ts] != s->ps.pps->tile_id[s->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs - s->ps.sps->ctb_width]]; s 286 libavcodec/hevc_filter.c horiz_edge[0] = (!lfase && CTB(s->tab_slice_address, x_ctb, y_ctb) != CTB(s->tab_slice_address, x_ctb, y_ctb - 1)) || up_tile_edge; s 289 libavcodec/hevc_filter.c bottom_tile_edge = no_tile_filter && s->ps.pps->tile_id[ctb_addr_ts] != s->ps.pps->tile_id[s->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs + s->ps.sps->ctb_width]]; s 290 libavcodec/hevc_filter.c horiz_edge[1] = (!lfase && CTB(s->tab_slice_address, x_ctb, y_ctb) != CTB(s->tab_slice_address, x_ctb, y_ctb + 1)) || bottom_tile_edge; s 293 libavcodec/hevc_filter.c diag_edge[0] = (!lfase && CTB(s->tab_slice_address, x_ctb, y_ctb) != CTB(s->tab_slice_address, x_ctb - 1, y_ctb - 1)) || left_tile_edge || up_tile_edge; s 296 libavcodec/hevc_filter.c diag_edge[1] = (!lfase && CTB(s->tab_slice_address, x_ctb, y_ctb) != CTB(s->tab_slice_address, x_ctb + 1, y_ctb - 1)) || right_tile_edge || up_tile_edge; s 299 libavcodec/hevc_filter.c diag_edge[2] = (!lfase && CTB(s->tab_slice_address, x_ctb, y_ctb) != CTB(s->tab_slice_address, x_ctb + 1, y_ctb + 1)) || right_tile_edge || bottom_tile_edge; s 302 libavcodec/hevc_filter.c diag_edge[3] = (!lfase && CTB(s->tab_slice_address, x_ctb, y_ctb) != CTB(s->tab_slice_address, x_ctb - 1, y_ctb + 1)) || left_tile_edge || bottom_tile_edge; s 306 libavcodec/hevc_filter.c for (c_idx = 0; c_idx < (s->ps.sps->chroma_format_idc ? 3 : 1); c_idx++) { s 307 libavcodec/hevc_filter.c int x0 = x >> s->ps.sps->hshift[c_idx]; s 308 libavcodec/hevc_filter.c int y0 = y >> s->ps.sps->vshift[c_idx]; s 309 libavcodec/hevc_filter.c ptrdiff_t stride_src = s->frame->linesize[c_idx]; s 310 libavcodec/hevc_filter.c int ctb_size_h = (1 << (s->ps.sps->log2_ctb_size)) >> s->ps.sps->hshift[c_idx]; s 311 libavcodec/hevc_filter.c int ctb_size_v = (1 << (s->ps.sps->log2_ctb_size)) >> s->ps.sps->vshift[c_idx]; s 312 libavcodec/hevc_filter.c int width = FFMIN(ctb_size_h, (s->ps.sps->width >> s->ps.sps->hshift[c_idx]) - x0); s 313 libavcodec/hevc_filter.c int height = FFMIN(ctb_size_v, (s->ps.sps->height >> s->ps.sps->vshift[c_idx]) - y0); s 315 libavcodec/hevc_filter.c uint8_t *src = &s->frame->data[c_idx][y0 * stride_src + (x0 << s->ps.sps->pixel_shift)]; s 321 libavcodec/hevc_filter.c copy_CTB_to_hv(s, src, stride_src, x0, y0, width, height, c_idx, s 323 libavcodec/hevc_filter.c if (s->ps.pps->transquant_bypass_enable_flag || s 324 libavcodec/hevc_filter.c (s->ps.sps->pcm.loop_filter_disable_flag && s->ps.sps->pcm_enabled_flag)) { s 327 libavcodec/hevc_filter.c copy_CTB(dst, src, width << s->ps.sps->pixel_shift, height, stride_dst, stride_src); s 328 libavcodec/hevc_filter.c s->hevcdsp.sao_band_filter[tab](src, dst, stride_src, stride_dst, s 331 libavcodec/hevc_filter.c restore_tqb_pixels(s, src, dst, stride_src, stride_dst, s 334 libavcodec/hevc_filter.c s->hevcdsp.sao_band_filter[tab](src, src, stride_src, stride_src, s 342 libavcodec/hevc_filter.c int w = s->ps.sps->width >> s->ps.sps->hshift[c_idx]; s 343 libavcodec/hevc_filter.c int h = s->ps.sps->height >> s->ps.sps->vshift[c_idx]; s 348 libavcodec/hevc_filter.c int sh = s->ps.sps->pixel_shift; s 363 libavcodec/hevc_filter.c src1[1] = s->sao_pixel_buffer_h[c_idx] + (((2 * y_ctb - 1) * w + x0 - left) << sh); s 366 libavcodec/hevc_filter.c src_idx = (CTB(s->sao, x_ctb-1, y_ctb-1).type_idx[c_idx] == s 371 libavcodec/hevc_filter.c src_idx = (CTB(s->sao, x_ctb, y_ctb-1).type_idx[c_idx] == s 376 libavcodec/hevc_filter.c src_idx = (CTB(s->sao, x_ctb+1, y_ctb-1).type_idx[c_idx] == s 390 libavcodec/hevc_filter.c src1[1] = s->sao_pixel_buffer_h[c_idx] + (((2 * y_ctb + 2) * w + x0 - left) << sh); s 393 libavcodec/hevc_filter.c src_idx = (CTB(s->sao, x_ctb-1, y_ctb+1).type_idx[c_idx] == s 398 libavcodec/hevc_filter.c src_idx = (CTB(s->sao, x_ctb, y_ctb+1).type_idx[c_idx] == s 403 libavcodec/hevc_filter.c src_idx = (CTB(s->sao, x_ctb+1, y_ctb+1).type_idx[c_idx] == s 410 libavcodec/hevc_filter.c if (CTB(s->sao, x_ctb-1, y_ctb).type_idx[c_idx] == SAO_APPLIED) { s 412 libavcodec/hevc_filter.c s->sao_pixel_buffer_v[c_idx] + (((2 * x_ctb - 1) * h + y0) << sh), s 420 libavcodec/hevc_filter.c if (CTB(s->sao, x_ctb+1, y_ctb).type_idx[c_idx] == SAO_APPLIED) { s 422 libavcodec/hevc_filter.c s->sao_pixel_buffer_v[c_idx] + (((2 * x_ctb + 2) * h + y0) << sh), s 434 libavcodec/hevc_filter.c copy_CTB_to_hv(s, src, stride_src, x0, y0, width, height, c_idx, s 436 libavcodec/hevc_filter.c s->hevcdsp.sao_edge_filter[tab](src, dst, stride_src, sao->offset_val[c_idx], s 438 libavcodec/hevc_filter.c s->hevcdsp.sao_edge_restore[restore](src, dst, s 446 libavcodec/hevc_filter.c restore_tqb_pixels(s, src, dst, stride_src, stride_dst, s 455 libavcodec/hevc_filter.c static int get_pcm(HEVCContext *s, int x, int y) s 457 libavcodec/hevc_filter.c int log2_min_pu_size = s->ps.sps->log2_min_pu_size; s 466 libavcodec/hevc_filter.c if (x_pu >= s->ps.sps->min_pu_width || y_pu >= s->ps.sps->min_pu_height) s 468 libavcodec/hevc_filter.c return s->is_pcm[y_pu * s->ps.sps->min_pu_width + x_pu]; s 476 libavcodec/hevc_filter.c static void deblocking_filter_CTB(HEVCContext *s, int x0, int y0) s 485 libavcodec/hevc_filter.c int log2_ctb_size = s->ps.sps->log2_ctb_size; s 489 libavcodec/hevc_filter.c (y0 >> log2_ctb_size) * s->ps.sps->ctb_width; s 490 libavcodec/hevc_filter.c int cur_tc_offset = s->deblock[ctb].tc_offset; s 491 libavcodec/hevc_filter.c int cur_beta_offset = s->deblock[ctb].beta_offset; s 494 libavcodec/hevc_filter.c int pcmf = (s->ps.sps->pcm_enabled_flag && s 495 libavcodec/hevc_filter.c s->ps.sps->pcm.loop_filter_disable_flag) || s 496 libavcodec/hevc_filter.c s->ps.pps->transquant_bypass_enable_flag; s 499 libavcodec/hevc_filter.c left_tc_offset = s->deblock[ctb - 1].tc_offset; s 500 libavcodec/hevc_filter.c left_beta_offset = s->deblock[ctb - 1].beta_offset; s 507 libavcodec/hevc_filter.c if (x_end > s->ps.sps->width) s 508 libavcodec/hevc_filter.c x_end = s->ps.sps->width; s 510 libavcodec/hevc_filter.c if (y_end > s->ps.sps->height) s 511 libavcodec/hevc_filter.c y_end = s->ps.sps->height; s 517 libavcodec/hevc_filter.c if (x_end2 != s->ps.sps->width) s 522 libavcodec/hevc_filter.c const int bs0 = s->vertical_bs[(x + y * s->bs_width) >> 2]; s 523 libavcodec/hevc_filter.c const int bs1 = s->vertical_bs[(x + (y + 4) * s->bs_width) >> 2]; s 525 libavcodec/hevc_filter.c const int qp = (get_qPy(s, x - 1, y) + get_qPy(s, x, y) + 1) >> 1; s 531 libavcodec/hevc_filter.c src = &s->frame->data[LUMA][y * s->frame->linesize[LUMA] + (x << s->ps.sps->pixel_shift)]; s 533 libavcodec/hevc_filter.c no_p[0] = get_pcm(s, x - 1, y); s 534 libavcodec/hevc_filter.c no_p[1] = get_pcm(s, x - 1, y + 4); s 535 libavcodec/hevc_filter.c no_q[0] = get_pcm(s, x, y); s 536 libavcodec/hevc_filter.c no_q[1] = get_pcm(s, x, y + 4); s 537 libavcodec/hevc_filter.c s->hevcdsp.hevc_v_loop_filter_luma_c(src, s 538 libavcodec/hevc_filter.c s->frame->linesize[LUMA], s 541 libavcodec/hevc_filter.c s->hevcdsp.hevc_v_loop_filter_luma(src, s 542 libavcodec/hevc_filter.c s->frame->linesize[LUMA], s 552 libavcodec/hevc_filter.c const int bs0 = s->horizontal_bs[( x + y * s->bs_width) >> 2]; s 553 libavcodec/hevc_filter.c const int bs1 = s->horizontal_bs[((x + 4) + y * s->bs_width) >> 2]; s 555 libavcodec/hevc_filter.c const int qp = (get_qPy(s, x, y - 1) + get_qPy(s, x, y) + 1) >> 1; s 563 libavcodec/hevc_filter.c src = &s->frame->data[LUMA][y * s->frame->linesize[LUMA] + (x << s->ps.sps->pixel_shift)]; s 565 libavcodec/hevc_filter.c no_p[0] = get_pcm(s, x, y - 1); s 566 libavcodec/hevc_filter.c no_p[1] = get_pcm(s, x + 4, y - 1); s 567 libavcodec/hevc_filter.c no_q[0] = get_pcm(s, x, y); s 568 libavcodec/hevc_filter.c no_q[1] = get_pcm(s, x + 4, y); s 569 libavcodec/hevc_filter.c s->hevcdsp.hevc_h_loop_filter_luma_c(src, s 570 libavcodec/hevc_filter.c s->frame->linesize[LUMA], s 573 libavcodec/hevc_filter.c s->hevcdsp.hevc_h_loop_filter_luma(src, s 574 libavcodec/hevc_filter.c s->frame->linesize[LUMA], s 580 libavcodec/hevc_filter.c if (s->ps.sps->chroma_format_idc) { s 582 libavcodec/hevc_filter.c int h = 1 << s->ps.sps->hshift[chroma]; s 583 libavcodec/hevc_filter.c int v = 1 << s->ps.sps->vshift[chroma]; s 588 libavcodec/hevc_filter.c const int bs0 = s->vertical_bs[(x + y * s->bs_width) >> 2]; s 589 libavcodec/hevc_filter.c const int bs1 = s->vertical_bs[(x + (y + (4 * v)) * s->bs_width) >> 2]; s 592 libavcodec/hevc_filter.c const int qp0 = (get_qPy(s, x - 1, y) + get_qPy(s, x, y) + 1) >> 1; s 593 libavcodec/hevc_filter.c const int qp1 = (get_qPy(s, x - 1, y + (4 * v)) + get_qPy(s, x, y + (4 * v)) + 1) >> 1; s 595 libavcodec/hevc_filter.c c_tc[0] = (bs0 == 2) ? chroma_tc(s, qp0, chroma, tc_offset) : 0; s 596 libavcodec/hevc_filter.c c_tc[1] = (bs1 == 2) ? chroma_tc(s, qp1, chroma, tc_offset) : 0; s 597 libavcodec/hevc_filter.c src = &s->frame->data[chroma][(y >> s->ps.sps->vshift[chroma]) * s->frame->linesize[chroma] + ((x >> s->ps.sps->hshift[chroma]) << s->ps.sps->pixel_shift)]; s 599 libavcodec/hevc_filter.c no_p[0] = get_pcm(s, x - 1, y); s 600 libavcodec/hevc_filter.c no_p[1] = get_pcm(s, x - 1, y + (4 * v)); s 601 libavcodec/hevc_filter.c no_q[0] = get_pcm(s, x, y); s 602 libavcodec/hevc_filter.c no_q[1] = get_pcm(s, x, y + (4 * v)); s 603 libavcodec/hevc_filter.c s->hevcdsp.hevc_v_loop_filter_chroma_c(src, s 604 libavcodec/hevc_filter.c s->frame->linesize[chroma], s 607 libavcodec/hevc_filter.c s->hevcdsp.hevc_v_loop_filter_chroma(src, s 608 libavcodec/hevc_filter.c s->frame->linesize[chroma], s 619 libavcodec/hevc_filter.c if (x_end != s->ps.sps->width) s 622 libavcodec/hevc_filter.c const int bs0 = s->horizontal_bs[( x + y * s->bs_width) >> 2]; s 623 libavcodec/hevc_filter.c const int bs1 = s->horizontal_bs[((x + 4 * h) + y * s->bs_width) >> 2]; s 625 libavcodec/hevc_filter.c const int qp0 = bs0 == 2 ? (get_qPy(s, x, y - 1) + get_qPy(s, x, y) + 1) >> 1 : 0; s 626 libavcodec/hevc_filter.c const int qp1 = bs1 == 2 ? (get_qPy(s, x + (4 * h), y - 1) + get_qPy(s, x + (4 * h), y) + 1) >> 1 : 0; s 628 libavcodec/hevc_filter.c c_tc[0] = bs0 == 2 ? chroma_tc(s, qp0, chroma, tc_offset) : 0; s 629 libavcodec/hevc_filter.c c_tc[1] = bs1 == 2 ? chroma_tc(s, qp1, chroma, cur_tc_offset) : 0; s 630 libavcodec/hevc_filter.c src = &s->frame->data[chroma][(y >> s->ps.sps->vshift[1]) * s->frame->linesize[chroma] + ((x >> s->ps.sps->hshift[1]) << s->ps.sps->pixel_shift)]; s 632 libavcodec/hevc_filter.c no_p[0] = get_pcm(s, x, y - 1); s 633 libavcodec/hevc_filter.c no_p[1] = get_pcm(s, x + (4 * h), y - 1); s 634 libavcodec/hevc_filter.c no_q[0] = get_pcm(s, x, y); s 635 libavcodec/hevc_filter.c no_q[1] = get_pcm(s, x + (4 * h), y); s 636 libavcodec/hevc_filter.c s->hevcdsp.hevc_h_loop_filter_chroma_c(src, s 637 libavcodec/hevc_filter.c s->frame->linesize[chroma], s 640 libavcodec/hevc_filter.c s->hevcdsp.hevc_h_loop_filter_chroma(src, s 641 libavcodec/hevc_filter.c s->frame->linesize[chroma], s 650 libavcodec/hevc_filter.c static int boundary_strength(HEVCContext *s, MvField *curr, MvField *neigh, s 655 libavcodec/hevc_filter.c if (s->ref->refPicList[0].list[curr->ref_idx[0]] == neigh_refPicList[0].list[neigh->ref_idx[0]] && s 656 libavcodec/hevc_filter.c s->ref->refPicList[0].list[curr->ref_idx[0]] == s->ref->refPicList[1].list[curr->ref_idx[1]] && s 665 libavcodec/hevc_filter.c } else if (neigh_refPicList[0].list[neigh->ref_idx[0]] == s->ref->refPicList[0].list[curr->ref_idx[0]] && s 666 libavcodec/hevc_filter.c neigh_refPicList[1].list[neigh->ref_idx[1]] == s->ref->refPicList[1].list[curr->ref_idx[1]]) { s 672 libavcodec/hevc_filter.c } else if (neigh_refPicList[1].list[neigh->ref_idx[1]] == s->ref->refPicList[0].list[curr->ref_idx[0]] && s 673 libavcodec/hevc_filter.c neigh_refPicList[0].list[neigh->ref_idx[0]] == s->ref->refPicList[1].list[curr->ref_idx[1]]) { s 688 libavcodec/hevc_filter.c ref_A = s->ref->refPicList[0].list[curr->ref_idx[0]]; s 691 libavcodec/hevc_filter.c ref_A = s->ref->refPicList[1].list[curr->ref_idx[1]]; s 714 libavcodec/hevc_filter.c void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0, s 717 libavcodec/hevc_filter.c HEVCLocalContext *lc = s->HEVClc; s 718 libavcodec/hevc_filter.c MvField *tab_mvf = s->ref->tab_mvf; s 719 libavcodec/hevc_filter.c int log2_min_pu_size = s->ps.sps->log2_min_pu_size; s 720 libavcodec/hevc_filter.c int log2_min_tu_size = s->ps.sps->log2_min_tb_size; s 721 libavcodec/hevc_filter.c int min_pu_width = s->ps.sps->min_pu_width; s 722 libavcodec/hevc_filter.c int min_tu_width = s->ps.sps->min_tb_width; s 730 libavcodec/hevc_filter.c ((!s->sh.slice_loop_filter_across_slices_enabled_flag && s 732 libavcodec/hevc_filter.c (y0 % (1 << s->ps.sps->log2_ctb_size)) == 0) || s 733 libavcodec/hevc_filter.c (!s->ps.pps->loop_filter_across_tiles_enabled_flag && s 735 libavcodec/hevc_filter.c (y0 % (1 << s->ps.sps->log2_ctb_size)) == 0))) s 740 libavcodec/hevc_filter.c ff_hevc_get_ref_list(s, s->ref, x0, y0 - 1) : s 741 libavcodec/hevc_filter.c s->ref->refPicList; s 752 libavcodec/hevc_filter.c uint8_t top_cbf_luma = s->cbf_luma[yp_tu * min_tu_width + x_tu]; s 753 libavcodec/hevc_filter.c uint8_t curr_cbf_luma = s->cbf_luma[yq_tu * min_tu_width + x_tu]; s 760 libavcodec/hevc_filter.c bs = boundary_strength(s, curr, top, rpl_top); s 761 libavcodec/hevc_filter.c s->horizontal_bs[((x0 + i) + y0 * s->bs_width) >> 2] = bs; s 768 libavcodec/hevc_filter.c ((!s->sh.slice_loop_filter_across_slices_enabled_flag && s 770 libavcodec/hevc_filter.c (x0 % (1 << s->ps.sps->log2_ctb_size)) == 0) || s 771 libavcodec/hevc_filter.c (!s->ps.pps->loop_filter_across_tiles_enabled_flag && s 773 libavcodec/hevc_filter.c (x0 % (1 << s->ps.sps->log2_ctb_size)) == 0))) s 778 libavcodec/hevc_filter.c ff_hevc_get_ref_list(s, s->ref, x0 - 1, y0) : s 779 libavcodec/hevc_filter.c s->ref->refPicList; s 790 libavcodec/hevc_filter.c uint8_t left_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xp_tu]; s 791 libavcodec/hevc_filter.c uint8_t curr_cbf_luma = s->cbf_luma[y_tu * min_tu_width + xq_tu]; s 798 libavcodec/hevc_filter.c bs = boundary_strength(s, curr, left, rpl_left); s 799 libavcodec/hevc_filter.c s->vertical_bs[(x0 + (y0 + i) * s->bs_width) >> 2] = bs; s 804 libavcodec/hevc_filter.c RefPicList *rpl = s->ref->refPicList; s 816 libavcodec/hevc_filter.c bs = boundary_strength(s, curr, top, rpl); s 817 libavcodec/hevc_filter.c s->horizontal_bs[((x0 + i) + (y0 + j) * s->bs_width) >> 2] = bs; s 831 libavcodec/hevc_filter.c bs = boundary_strength(s, curr, left, rpl); s 832 libavcodec/hevc_filter.c s->vertical_bs[((x0 + i) + (y0 + j) * s->bs_width) >> 2] = bs; s 842 libavcodec/hevc_filter.c void ff_hevc_hls_filter(HEVCContext *s, int x, int y, int ctb_size) s 844 libavcodec/hevc_filter.c int x_end = x >= s->ps.sps->width - ctb_size; s 846 libavcodec/hevc_filter.c if (s->avctx->skip_loop_filter >= AVDISCARD_ALL || s 847 libavcodec/hevc_filter.c (s->avctx->skip_loop_filter >= AVDISCARD_NONKEY && !IS_IDR(s)) || s 848 libavcodec/hevc_filter.c (s->avctx->skip_loop_filter >= AVDISCARD_NONINTRA && s 849 libavcodec/hevc_filter.c s->sh.slice_type != HEVC_SLICE_I) || s 850 libavcodec/hevc_filter.c (s->avctx->skip_loop_filter >= AVDISCARD_BIDIR && s 851 libavcodec/hevc_filter.c s->sh.slice_type == HEVC_SLICE_B) || s 852 libavcodec/hevc_filter.c (s->avctx->skip_loop_filter >= AVDISCARD_NONREF && s 853 libavcodec/hevc_filter.c ff_hevc_nal_is_nonref(s->nal_unit_type))) s 857 libavcodec/hevc_filter.c deblocking_filter_CTB(s, x, y); s 858 libavcodec/hevc_filter.c if (s->ps.sps->sao_enabled && !skip) { s 859 libavcodec/hevc_filter.c int y_end = y >= s->ps.sps->height - ctb_size; s 861 libavcodec/hevc_filter.c sao_filter_CTB(s, x - ctb_size, y - ctb_size); s 863 libavcodec/hevc_filter.c sao_filter_CTB(s, x - ctb_size, y); s 865 libavcodec/hevc_filter.c sao_filter_CTB(s, x, y - ctb_size); s 866 libavcodec/hevc_filter.c if (s->threads_type & FF_THREAD_FRAME ) s 867 libavcodec/hevc_filter.c ff_thread_report_progress(&s->ref->tf, y, 0); s 870 libavcodec/hevc_filter.c sao_filter_CTB(s, x , y); s 871 libavcodec/hevc_filter.c if (s->threads_type & FF_THREAD_FRAME ) s 872 libavcodec/hevc_filter.c ff_thread_report_progress(&s->ref->tf, y + ctb_size, 0); s 874 libavcodec/hevc_filter.c } else if (s->threads_type & FF_THREAD_FRAME && x_end) s 875 libavcodec/hevc_filter.c ff_thread_report_progress(&s->ref->tf, y + ctb_size - 4, 0); s 878 libavcodec/hevc_filter.c void ff_hevc_hls_filters(HEVCContext *s, int x_ctb, int y_ctb, int ctb_size) s 880 libavcodec/hevc_filter.c int x_end = x_ctb >= s->ps.sps->width - ctb_size; s 881 libavcodec/hevc_filter.c int y_end = y_ctb >= s->ps.sps->height - ctb_size; s 883 libavcodec/hevc_filter.c ff_hevc_hls_filter(s, x_ctb - ctb_size, y_ctb - ctb_size, ctb_size); s 885 libavcodec/hevc_filter.c ff_hevc_hls_filter(s, x_ctb, y_ctb - ctb_size, ctb_size); s 887 libavcodec/hevc_filter.c ff_hevc_hls_filter(s, x_ctb - ctb_size, y_ctb, ctb_size); s 100 libavcodec/hevc_mp4toannexb_bsf.c HEVCBSFContext *s = ctx->priv_data; s 112 libavcodec/hevc_mp4toannexb_bsf.c s->length_size = ret; s 113 libavcodec/hevc_mp4toannexb_bsf.c s->extradata_parsed = 1; s 121 libavcodec/hevc_mp4toannexb_bsf.c HEVCBSFContext *s = ctx->priv_data; s 132 libavcodec/hevc_mp4toannexb_bsf.c if (!s->extradata_parsed) { s 145 libavcodec/hevc_mp4toannexb_bsf.c if (bytestream2_get_bytes_left(&gb) < s->length_size) { s 149 libavcodec/hevc_mp4toannexb_bsf.c for (i = 0; i < s->length_size; i++) s 42 libavcodec/hevc_mvs.c void ff_hevc_set_neighbour_available(HEVCContext *s, int x0, int y0, s 45 libavcodec/hevc_mvs.c HEVCLocalContext *lc = s->HEVClc; s 46 libavcodec/hevc_mvs.c int x0b = av_mod_uintp2(x0, s->ps.sps->log2_ctb_size); s 47 libavcodec/hevc_mvs.c int y0b = av_mod_uintp2(y0, s->ps.sps->log2_ctb_size); s 53 libavcodec/hevc_mvs.c ((x0b + nPbW) == (1 << s->ps.sps->log2_ctb_size)) ? s 64 libavcodec/hevc_mvs.c static av_always_inline int z_scan_block_avail(HEVCContext *s, int xCurr, int yCurr, s 68 libavcodec/hevc_mvs.c s->ps.pps->min_tb_addr_zs[(y) * (s->ps.sps->tb_mask+2) + (x)] s 70 libavcodec/hevc_mvs.c int xCurr_ctb = xCurr >> s->ps.sps->log2_ctb_size; s 71 libavcodec/hevc_mvs.c int yCurr_ctb = yCurr >> s->ps.sps->log2_ctb_size; s 72 libavcodec/hevc_mvs.c int xN_ctb = xN >> s->ps.sps->log2_ctb_size; s 73 libavcodec/hevc_mvs.c int yN_ctb = yN >> s->ps.sps->log2_ctb_size; s 77 libavcodec/hevc_mvs.c int Curr = MIN_TB_ADDR_ZS((xCurr >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask, s 78 libavcodec/hevc_mvs.c (yCurr >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask); s 79 libavcodec/hevc_mvs.c int N = MIN_TB_ADDR_ZS((xN >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask, s 80 libavcodec/hevc_mvs.c (yN >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask); s 86 libavcodec/hevc_mvs.c static av_always_inline int is_diff_mer(HEVCContext *s, int xN, int yN, int xP, int yP) s 88 libavcodec/hevc_mvs.c uint8_t plevel = s->ps.pps->log2_parallel_merge_level; s 158 libavcodec/hevc_mvs.c colPic, s->poc, \ s 163 libavcodec/hevc_mvs.c static int derive_temporal_colocated_mvs(HEVCContext *s, MvField temp_col, s 167 libavcodec/hevc_mvs.c RefPicList *refPicList = s->ref->refPicList; s 181 libavcodec/hevc_mvs.c if (refPicList[j].list[i] > s->poc) { s 193 libavcodec/hevc_mvs.c if (s->sh.collocated_list == L1) s 207 libavcodec/hevc_mvs.c TAB_MVF(((x ## v) >> s->ps.sps->log2_min_pu_size), \ s 208 libavcodec/hevc_mvs.c ((y ## v) >> s->ps.sps->log2_min_pu_size)) s 211 libavcodec/hevc_mvs.c derive_temporal_colocated_mvs(s, temp_col, \ s 213 libavcodec/hevc_mvs.c ff_hevc_get_ref_list(s, ref, x, y)) s 218 libavcodec/hevc_mvs.c static int temporal_luma_motion_vector(HEVCContext *s, int x0, int y0, s 225 libavcodec/hevc_mvs.c int min_pu_width = s->ps.sps->min_pu_width; s 229 libavcodec/hevc_mvs.c HEVCFrame *ref = s->ref->collocated_ref; s 244 libavcodec/hevc_mvs.c (y0 >> s->ps.sps->log2_ctb_size) == (y >> s->ps.sps->log2_ctb_size) && s 245 libavcodec/hevc_mvs.c y < s->ps.sps->height && s 246 libavcodec/hevc_mvs.c x < s->ps.sps->width) { s 249 libavcodec/hevc_mvs.c if (s->threads_type == FF_THREAD_FRAME) s 251 libavcodec/hevc_mvs.c x_pu = x >> s->ps.sps->log2_min_pu_size; s 252 libavcodec/hevc_mvs.c y_pu = y >> s->ps.sps->log2_min_pu_size; s 263 libavcodec/hevc_mvs.c if (s->threads_type == FF_THREAD_FRAME) s 265 libavcodec/hevc_mvs.c x_pu = x >> s->ps.sps->log2_min_pu_size; s 266 libavcodec/hevc_mvs.c y_pu = y >> s->ps.sps->log2_min_pu_size; s 277 libavcodec/hevc_mvs.c z_scan_block_avail(s, x0, y0, x ## v, y ## v) s 285 libavcodec/hevc_mvs.c static void derive_spatial_merge_candidates(HEVCContext *s, int x0, int y0, s 292 libavcodec/hevc_mvs.c HEVCLocalContext *lc = s->HEVClc; s 293 libavcodec/hevc_mvs.c RefPicList *refPicList = s->ref->refPicList; s 294 libavcodec/hevc_mvs.c MvField *tab_mvf = s->ref->tab_mvf; s 296 libavcodec/hevc_mvs.c const int min_pu_width = s->ps.sps->min_pu_width; s 319 libavcodec/hevc_mvs.c const int nb_refs = (s->sh.slice_type == HEVC_SLICE_P) ? s 320 libavcodec/hevc_mvs.c s->sh.nb_refs[0] : FFMIN(s->sh.nb_refs[0], s->sh.nb_refs[1]); s 338 libavcodec/hevc_mvs.c is_diff_mer(s, xA1, yA1, x0, y0)) { s 354 libavcodec/hevc_mvs.c is_diff_mer(s, xB1, yB1, x0, y0)) { s 369 libavcodec/hevc_mvs.c xB0 < s->ps.sps->width && s 371 libavcodec/hevc_mvs.c !is_diff_mer(s, xB0, yB0, x0, y0); s 383 libavcodec/hevc_mvs.c yA0 < s->ps.sps->height && s 385 libavcodec/hevc_mvs.c !is_diff_mer(s, xA0, yA0, x0, y0); s 397 libavcodec/hevc_mvs.c !is_diff_mer(s, xB2, yB2, x0, y0); s 410 libavcodec/hevc_mvs.c if (s->sh.slice_temporal_mvp_enabled_flag && s 411 libavcodec/hevc_mvs.c nb_merge_cand < s->sh.max_num_merge_cand) { s 413 libavcodec/hevc_mvs.c int available_l0 = temporal_luma_motion_vector(s, x0, y0, nPbW, nPbH, s 415 libavcodec/hevc_mvs.c int available_l1 = (s->sh.slice_type == HEVC_SLICE_B) ? s 416 libavcodec/hevc_mvs.c temporal_luma_motion_vector(s, x0, y0, nPbW, nPbH, s 434 libavcodec/hevc_mvs.c if (s->sh.slice_type == HEVC_SLICE_B && nb_orig_merge_cand > 1 && s 435 libavcodec/hevc_mvs.c nb_orig_merge_cand < s->sh.max_num_merge_cand) { s 438 libavcodec/hevc_mvs.c for (comb_idx = 0; nb_merge_cand < s->sh.max_num_merge_cand && s 462 libavcodec/hevc_mvs.c while (nb_merge_cand < s->sh.max_num_merge_cand) { s 463 libavcodec/hevc_mvs.c mergecandlist[nb_merge_cand].pred_flag = PF_L0 + ((s->sh.slice_type == HEVC_SLICE_B) << 1); s 479 libavcodec/hevc_mvs.c void ff_hevc_luma_mv_merge_mode(HEVCContext *s, int x0, int y0, int nPbW, s 488 libavcodec/hevc_mvs.c HEVCLocalContext *lc = s->HEVClc; s 490 libavcodec/hevc_mvs.c if (s->ps.pps->log2_parallel_merge_level > 2 && nCS == 8) { s 499 libavcodec/hevc_mvs.c ff_hevc_set_neighbour_available(s, x0, y0, nPbW, nPbH); s 500 libavcodec/hevc_mvs.c derive_spatial_merge_candidates(s, x0, y0, nPbW, nPbH, log2_cb_size, s 512 libavcodec/hevc_mvs.c static av_always_inline void dist_scale(HEVCContext *s, Mv *mv, s 516 libavcodec/hevc_mvs.c RefPicList *refPicList = s->ref->refPicList; s 517 libavcodec/hevc_mvs.c MvField *tab_mvf = s->ref->tab_mvf; s 522 libavcodec/hevc_mvs.c int poc_diff = s->poc - ref_pic_elist; s 525 libavcodec/hevc_mvs.c mv_scale(mv, mv, poc_diff, s->poc - ref_pic_curr); s 529 libavcodec/hevc_mvs.c static int mv_mp_mode_mx(HEVCContext *s, int x, int y, int pred_flag_index, s 532 libavcodec/hevc_mvs.c MvField *tab_mvf = s->ref->tab_mvf; s 533 libavcodec/hevc_mvs.c int min_pu_width = s->ps.sps->min_pu_width; s 535 libavcodec/hevc_mvs.c RefPicList *refPicList = s->ref->refPicList; s 545 libavcodec/hevc_mvs.c static int mv_mp_mode_mx_lt(HEVCContext *s, int x, int y, int pred_flag_index, s 548 libavcodec/hevc_mvs.c MvField *tab_mvf = s->ref->tab_mvf; s 549 libavcodec/hevc_mvs.c int min_pu_width = s->ps.sps->min_pu_width; s 551 libavcodec/hevc_mvs.c RefPicList *refPicList = s->ref->refPicList; s 562 libavcodec/hevc_mvs.c dist_scale(s, mv, min_pu_width, x, y, s 571 libavcodec/hevc_mvs.c mv_mp_mode_mx(s, \ s 572 libavcodec/hevc_mvs.c (x ## v) >> s->ps.sps->log2_min_pu_size, \ s 573 libavcodec/hevc_mvs.c (y ## v) >> s->ps.sps->log2_min_pu_size, \ s 577 libavcodec/hevc_mvs.c mv_mp_mode_mx_lt(s, \ s 578 libavcodec/hevc_mvs.c (x ## v) >> s->ps.sps->log2_min_pu_size, \ s 579 libavcodec/hevc_mvs.c (y ## v) >> s->ps.sps->log2_min_pu_size, \ s 582 libavcodec/hevc_mvs.c void ff_hevc_luma_mv_mvp_mode(HEVCContext *s, int x0, int y0, int nPbW, s 587 libavcodec/hevc_mvs.c HEVCLocalContext *lc = s->HEVClc; s 588 libavcodec/hevc_mvs.c MvField *tab_mvf = s->ref->tab_mvf; s 593 libavcodec/hevc_mvs.c int min_pu_width = s->ps.sps->min_pu_width; s 629 libavcodec/hevc_mvs.c yA0 < s->ps.sps->height && s 684 libavcodec/hevc_mvs.c xB0 < s->ps.sps->width && s 763 libavcodec/hevc_mvs.c if (numMVPCandLX < 2 && s->sh.slice_temporal_mvp_enabled_flag && s 766 libavcodec/hevc_mvs.c int available_col = temporal_luma_motion_vector(s, x0, y0, nPbW, s 54 libavcodec/hevc_parser.c static int hevc_parse_slice_header(AVCodecParserContext *s, H2645NAL *nal, s 57 libavcodec/hevc_parser.c HEVCParserContext *ctx = s->priv_data; s 68 libavcodec/hevc_parser.c s->picture_structure = sei->picture_timing.picture_struct; s 69 libavcodec/hevc_parser.c s->field_order = sei->picture_timing.picture_struct; s 72 libavcodec/hevc_parser.c s->key_frame = 1; s 93 libavcodec/hevc_parser.c s->coded_width = ps->sps->width; s 94 libavcodec/hevc_parser.c s->coded_height = ps->sps->height; s 95 libavcodec/hevc_parser.c s->width = ps->sps->width - ow->left_offset - ow->right_offset; s 96 libavcodec/hevc_parser.c s->height = ps->sps->height - ow->top_offset - ow->bottom_offset; s 97 libavcodec/hevc_parser.c s->format = ps->sps->pix_fmt; s 146 libavcodec/hevc_parser.c s->pict_type = slice_type == HEVC_SLICE_B ? AV_PICTURE_TYPE_B : s 158 libavcodec/hevc_parser.c s->output_picture_number = ctx->poc = s 161 libavcodec/hevc_parser.c s->output_picture_number = ctx->poc = 0; s 184 libavcodec/hevc_parser.c static int parse_nal_units(AVCodecParserContext *s, const uint8_t *buf, s 187 libavcodec/hevc_parser.c HEVCParserContext *ctx = s->priv_data; s 193 libavcodec/hevc_parser.c s->pict_type = AV_PICTURE_TYPE_I; s 194 libavcodec/hevc_parser.c s->key_frame = 0; s 195 libavcodec/hevc_parser.c s->picture_structure = AV_PICTURE_STRUCTURE_UNKNOWN; s 242 libavcodec/hevc_parser.c s->repeat_pict = 1; s 244 libavcodec/hevc_parser.c s->repeat_pict = 2; s 246 libavcodec/hevc_parser.c ret = hevc_parse_slice_header(s, nal, avctx); s 261 libavcodec/hevc_parser.c static int hevc_find_frame_end(AVCodecParserContext *s, const uint8_t *buf, s 264 libavcodec/hevc_parser.c HEVCParserContext *ctx = s->priv_data; s 301 libavcodec/hevc_parser.c static int hevc_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 306 libavcodec/hevc_parser.c HEVCParserContext *ctx = s->priv_data; s 318 libavcodec/hevc_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 321 libavcodec/hevc_parser.c next = hevc_find_frame_end(s, buf, buf_size); s 332 libavcodec/hevc_parser.c parse_nal_units(s, buf, buf_size, avctx); s 372 libavcodec/hevc_parser.c static void hevc_parser_close(AVCodecParserContext *s) s 374 libavcodec/hevc_parser.c HEVCParserContext *ctx = s->priv_data; s 81 libavcodec/hevc_ps.c static void remove_pps(HEVCParamSets *s, int id) s 83 libavcodec/hevc_ps.c if (s->pps_list[id] && s->pps == (const HEVCPPS*)s->pps_list[id]->data) s 84 libavcodec/hevc_ps.c s->pps = NULL; s 85 libavcodec/hevc_ps.c av_buffer_unref(&s->pps_list[id]); s 88 libavcodec/hevc_ps.c static void remove_sps(HEVCParamSets *s, int id) s 91 libavcodec/hevc_ps.c if (s->sps_list[id]) { s 92 libavcodec/hevc_ps.c if (s->sps == (const HEVCSPS*)s->sps_list[id]->data) s 93 libavcodec/hevc_ps.c s->sps = NULL; s 96 libavcodec/hevc_ps.c for (i = 0; i < FF_ARRAY_ELEMS(s->pps_list); i++) s 97 libavcodec/hevc_ps.c if (s->pps_list[i] && ((HEVCPPS*)s->pps_list[i]->data)->sps_id == id) s 98 libavcodec/hevc_ps.c remove_pps(s, i); s 100 libavcodec/hevc_ps.c av_assert0(!(s->sps_list[id] && s->sps == (HEVCSPS*)s->sps_list[id]->data)); s 102 libavcodec/hevc_ps.c av_buffer_unref(&s->sps_list[id]); s 105 libavcodec/hevc_ps.c static void remove_vps(HEVCParamSets *s, int id) s 108 libavcodec/hevc_ps.c if (s->vps_list[id]) { s 109 libavcodec/hevc_ps.c if (s->vps == (const HEVCVPS*)s->vps_list[id]->data) s 110 libavcodec/hevc_ps.c s->vps = NULL; s 112 libavcodec/hevc_ps.c for (i = 0; i < FF_ARRAY_ELEMS(s->sps_list); i++) s 113 libavcodec/hevc_ps.c if (s->sps_list[i] && ((HEVCSPS*)s->sps_list[i]->data)->vps_id == id) s 114 libavcodec/hevc_ps.c remove_sps(s, i); s 116 libavcodec/hevc_ps.c av_buffer_unref(&s->vps_list[id]); s 32 libavcodec/hevc_refs.c void ff_hevc_unref_frame(HEVCContext *s, HEVCFrame *frame, int flags) s 40 libavcodec/hevc_refs.c ff_thread_release_buffer(s->avctx, &frame->tf); s 57 libavcodec/hevc_refs.c RefPicList *ff_hevc_get_ref_list(HEVCContext *s, HEVCFrame *ref, int x0, int y0) s 59 libavcodec/hevc_refs.c int x_cb = x0 >> s->ps.sps->log2_ctb_size; s 60 libavcodec/hevc_refs.c int y_cb = y0 >> s->ps.sps->log2_ctb_size; s 61 libavcodec/hevc_refs.c int pic_width_cb = s->ps.sps->ctb_width; s 62 libavcodec/hevc_refs.c int ctb_addr_ts = s->ps.pps->ctb_addr_rs_to_ts[y_cb * pic_width_cb + x_cb]; s 66 libavcodec/hevc_refs.c void ff_hevc_clear_refs(HEVCContext *s) s 69 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) s 70 libavcodec/hevc_refs.c ff_hevc_unref_frame(s, &s->DPB[i], s 75 libavcodec/hevc_refs.c void ff_hevc_flush_dpb(HEVCContext *s) s 78 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) s 79 libavcodec/hevc_refs.c ff_hevc_unref_frame(s, &s->DPB[i], ~0); s 82 libavcodec/hevc_refs.c static HEVCFrame *alloc_frame(HEVCContext *s) s 85 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 86 libavcodec/hevc_refs.c HEVCFrame *frame = &s->DPB[i]; s 90 libavcodec/hevc_refs.c ret = ff_thread_get_buffer(s->avctx, &frame->tf, s 95 libavcodec/hevc_refs.c frame->rpl_buf = av_buffer_allocz(s->pkt.nb_nals * sizeof(RefPicListTab)); s 99 libavcodec/hevc_refs.c frame->tab_mvf_buf = av_buffer_pool_get(s->tab_mvf_pool); s 104 libavcodec/hevc_refs.c frame->rpl_tab_buf = av_buffer_pool_get(s->rpl_tab_pool); s 108 libavcodec/hevc_refs.c frame->ctb_count = s->ps.sps->ctb_width * s->ps.sps->ctb_height; s 112 libavcodec/hevc_refs.c frame->frame->top_field_first = s->sei.picture_timing.picture_struct == AV_PICTURE_STRUCTURE_TOP_FIELD; s 113 libavcodec/hevc_refs.c frame->frame->interlaced_frame = (s->sei.picture_timing.picture_struct == AV_PICTURE_STRUCTURE_TOP_FIELD) || (s->sei.picture_timing.picture_struct == AV_PICTURE_STRUCTURE_BOTTOM_FIELD); s 115 libavcodec/hevc_refs.c if (s->avctx->hwaccel) { s 116 libavcodec/hevc_refs.c const AVHWAccel *hwaccel = s->avctx->hwaccel; s 128 libavcodec/hevc_refs.c ff_hevc_unref_frame(s, frame, ~0); s 131 libavcodec/hevc_refs.c av_log(s->avctx, AV_LOG_ERROR, "Error allocating frame, DPB full.\n"); s 135 libavcodec/hevc_refs.c int ff_hevc_set_new_ref(HEVCContext *s, AVFrame **frame, int poc) s 141 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 142 libavcodec/hevc_refs.c HEVCFrame *frame = &s->DPB[i]; s 144 libavcodec/hevc_refs.c if (frame->frame->buf[0] && frame->sequence == s->seq_decode && s 146 libavcodec/hevc_refs.c av_log(s->avctx, AV_LOG_ERROR, "Duplicate POC in a sequence: %d.\n", s 152 libavcodec/hevc_refs.c ref = alloc_frame(s); s 157 libavcodec/hevc_refs.c s->ref = ref; s 159 libavcodec/hevc_refs.c if (s->sh.pic_output_flag) s 165 libavcodec/hevc_refs.c ref->sequence = s->seq_decode; s 166 libavcodec/hevc_refs.c ref->frame->crop_left = s->ps.sps->output_window.left_offset; s 167 libavcodec/hevc_refs.c ref->frame->crop_right = s->ps.sps->output_window.right_offset; s 168 libavcodec/hevc_refs.c ref->frame->crop_top = s->ps.sps->output_window.top_offset; s 169 libavcodec/hevc_refs.c ref->frame->crop_bottom = s->ps.sps->output_window.bottom_offset; s 174 libavcodec/hevc_refs.c int ff_hevc_output_frame(HEVCContext *s, AVFrame *out, int flush) s 181 libavcodec/hevc_refs.c if (s->sh.no_output_of_prior_pics_flag == 1 && s->no_rasl_output_flag == 1) { s 182 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 183 libavcodec/hevc_refs.c HEVCFrame *frame = &s->DPB[i]; s 184 libavcodec/hevc_refs.c if (!(frame->flags & HEVC_FRAME_FLAG_BUMPING) && frame->poc != s->poc && s 185 libavcodec/hevc_refs.c frame->sequence == s->seq_output) { s 186 libavcodec/hevc_refs.c ff_hevc_unref_frame(s, frame, HEVC_FRAME_FLAG_OUTPUT); s 191 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 192 libavcodec/hevc_refs.c HEVCFrame *frame = &s->DPB[i]; s 194 libavcodec/hevc_refs.c frame->sequence == s->seq_output) { s 204 libavcodec/hevc_refs.c if (!flush && s->seq_output == s->seq_decode && s->ps.sps && s 205 libavcodec/hevc_refs.c nb_output <= s->ps.sps->temporal_layer[s->ps.sps->max_sub_layers - 1].num_reorder_pics) s 209 libavcodec/hevc_refs.c HEVCFrame *frame = &s->DPB[min_idx]; s 213 libavcodec/hevc_refs.c ff_hevc_unref_frame(s, frame, HEVC_FRAME_FLAG_OUTPUT | HEVC_FRAME_FLAG_BUMPING); s 215 libavcodec/hevc_refs.c ff_hevc_unref_frame(s, frame, HEVC_FRAME_FLAG_OUTPUT); s 219 libavcodec/hevc_refs.c av_log(s->avctx, AV_LOG_DEBUG, s 224 libavcodec/hevc_refs.c if (s->seq_output != s->seq_decode) s 225 libavcodec/hevc_refs.c s->seq_output = (s->seq_output + 1) & 0xff; s 233 libavcodec/hevc_refs.c void ff_hevc_bump_frame(HEVCContext *s) s 239 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 240 libavcodec/hevc_refs.c HEVCFrame *frame = &s->DPB[i]; s 242 libavcodec/hevc_refs.c frame->sequence == s->seq_output && s 243 libavcodec/hevc_refs.c frame->poc != s->poc) { s 248 libavcodec/hevc_refs.c if (s->ps.sps && dpb >= s->ps.sps->temporal_layer[s->ps.sps->max_sub_layers - 1].max_dec_pic_buffering) { s 249 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 250 libavcodec/hevc_refs.c HEVCFrame *frame = &s->DPB[i]; s 252 libavcodec/hevc_refs.c frame->sequence == s->seq_output && s 253 libavcodec/hevc_refs.c frame->poc != s->poc) { s 260 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 261 libavcodec/hevc_refs.c HEVCFrame *frame = &s->DPB[i]; s 263 libavcodec/hevc_refs.c frame->sequence == s->seq_output && s 273 libavcodec/hevc_refs.c static int init_slice_rpl(HEVCContext *s) s 275 libavcodec/hevc_refs.c HEVCFrame *frame = s->ref; s 277 libavcodec/hevc_refs.c int ctb_addr_ts = s->ps.pps->ctb_addr_rs_to_ts[s->sh.slice_segment_addr]; s 280 libavcodec/hevc_refs.c if (s->slice_idx >= frame->rpl_buf->size / sizeof(RefPicListTab)) s 284 libavcodec/hevc_refs.c frame->rpl_tab[i] = (RefPicListTab *)frame->rpl_buf->data + s->slice_idx; s 291 libavcodec/hevc_refs.c int ff_hevc_slice_rpl(HEVCContext *s) s 293 libavcodec/hevc_refs.c SliceHeader *sh = &s->sh; s 299 libavcodec/hevc_refs.c ret = init_slice_rpl(s); s 303 libavcodec/hevc_refs.c if (!(s->rps[ST_CURR_BEF].nb_refs + s->rps[ST_CURR_AFT].nb_refs + s 304 libavcodec/hevc_refs.c s->rps[LT_CURR].nb_refs)) { s 305 libavcodec/hevc_refs.c av_log(s->avctx, AV_LOG_ERROR, "Zero refs in the frame RPS.\n"); s 311 libavcodec/hevc_refs.c RefPicList *rpl = &s->ref->refPicList[list_idx]; s 323 libavcodec/hevc_refs.c RefPicList *rps = &s->rps[cand_lists[i]]; s 339 libavcodec/hevc_refs.c av_log(s->avctx, AV_LOG_ERROR, "Invalid reference index.\n"); s 355 libavcodec/hevc_refs.c s->ref->collocated_ref = rpl->ref[sh->collocated_ref_idx]; s 361 libavcodec/hevc_refs.c static HEVCFrame *find_ref_idx(HEVCContext *s, int poc, uint8_t use_msb) s 363 libavcodec/hevc_refs.c int mask = use_msb ? ~0 : (1 << s->ps.sps->log2_max_poc_lsb) - 1; s 366 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 367 libavcodec/hevc_refs.c HEVCFrame *ref = &s->DPB[i]; s 368 libavcodec/hevc_refs.c if (ref->frame->buf[0] && ref->sequence == s->seq_decode) { s 374 libavcodec/hevc_refs.c if (s->nal_unit_type != HEVC_NAL_CRA_NUT && !IS_BLA(s)) s 375 libavcodec/hevc_refs.c av_log(s->avctx, AV_LOG_ERROR, s 386 libavcodec/hevc_refs.c static HEVCFrame *generate_missing_ref(HEVCContext *s, int poc) s 391 libavcodec/hevc_refs.c frame = alloc_frame(s); s 395 libavcodec/hevc_refs.c if (!s->avctx->hwaccel) { s 396 libavcodec/hevc_refs.c if (!s->ps.sps->pixel_shift) { s 398 libavcodec/hevc_refs.c memset(frame->frame->buf[i]->data, 1 << (s->ps.sps->bit_depth - 1), s 402 libavcodec/hevc_refs.c for (y = 0; y < (s->ps.sps->height >> s->ps.sps->vshift[i]); y++) { s 404 libavcodec/hevc_refs.c AV_WN16(dst, 1 << (s->ps.sps->bit_depth - 1)); s 405 libavcodec/hevc_refs.c av_memcpy_backptr(dst + 2, 2, 2*(s->ps.sps->width >> s->ps.sps->hshift[i]) - 2); s 411 libavcodec/hevc_refs.c frame->sequence = s->seq_decode; s 414 libavcodec/hevc_refs.c if (s->threads_type == FF_THREAD_FRAME) s 421 libavcodec/hevc_refs.c static int add_candidate_ref(HEVCContext *s, RefPicList *list, s 424 libavcodec/hevc_refs.c HEVCFrame *ref = find_ref_idx(s, poc, use_msb); s 426 libavcodec/hevc_refs.c if (ref == s->ref || list->nb_refs >= HEVC_MAX_REFS) s 430 libavcodec/hevc_refs.c ref = generate_missing_ref(s, poc); s 443 libavcodec/hevc_refs.c int ff_hevc_frame_rps(HEVCContext *s) s 445 libavcodec/hevc_refs.c const ShortTermRPS *short_rps = s->sh.short_term_rps; s 446 libavcodec/hevc_refs.c const LongTermRPS *long_rps = &s->sh.long_term_rps; s 447 libavcodec/hevc_refs.c RefPicList *rps = s->rps; s 456 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 457 libavcodec/hevc_refs.c HEVCFrame *frame = &s->DPB[i]; s 459 libavcodec/hevc_refs.c if (frame == s->ref) s 470 libavcodec/hevc_refs.c int poc = s->poc + short_rps->delta_poc[i]; s 480 libavcodec/hevc_refs.c ret = add_candidate_ref(s, &rps[list], poc, HEVC_FRAME_FLAG_SHORT_REF, 1); s 490 libavcodec/hevc_refs.c ret = add_candidate_ref(s, &rps[list], poc, HEVC_FRAME_FLAG_LONG_REF, long_rps->poc_msb_present[i]); s 497 libavcodec/hevc_refs.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) s 498 libavcodec/hevc_refs.c ff_hevc_unref_frame(s, &s->DPB[i], 0); s 503 libavcodec/hevc_refs.c int ff_hevc_frame_nb_refs(const HEVCContext *s) s 507 libavcodec/hevc_refs.c const ShortTermRPS *rps = s->sh.short_term_rps; s 508 libavcodec/hevc_refs.c const LongTermRPS *long_rps = &s->sh.long_term_rps; s 29 libavcodec/hevc_sei.c static int decode_nal_sei_decoded_picture_hash(HEVCSEIPictureHash *s, GetBitContext *gb) s 39 libavcodec/hevc_sei.c s->is_md5 = 1; s 41 libavcodec/hevc_sei.c s->md5[cIdx][i] = get_bits(gb, 8); s 53 libavcodec/hevc_sei.c static int decode_nal_sei_mastering_display_info(HEVCSEIMasteringDisplay *s, GetBitContext *gb) s 58 libavcodec/hevc_sei.c s->display_primaries[i][0] = get_bits(gb, 16); s 59 libavcodec/hevc_sei.c s->display_primaries[i][1] = get_bits(gb, 16); s 62 libavcodec/hevc_sei.c s->white_point[0] = get_bits(gb, 16); s 63 libavcodec/hevc_sei.c s->white_point[1] = get_bits(gb, 16); s 66 libavcodec/hevc_sei.c s->max_luminance = get_bits_long(gb, 32); s 67 libavcodec/hevc_sei.c s->min_luminance = get_bits_long(gb, 32); s 72 libavcodec/hevc_sei.c s->present = 2; s 76 libavcodec/hevc_sei.c static int decode_nal_sei_content_light_info(HEVCSEIContentLight *s, GetBitContext *gb) s 79 libavcodec/hevc_sei.c s->max_content_light_level = get_bits(gb, 16); s 80 libavcodec/hevc_sei.c s->max_pic_average_light_level = get_bits(gb, 16); s 84 libavcodec/hevc_sei.c s->present = 2; s 88 libavcodec/hevc_sei.c static int decode_nal_sei_frame_packing_arrangement(HEVCSEIFramePacking *s, GetBitContext *gb) s 91 libavcodec/hevc_sei.c s->present = !get_bits1(gb); s 93 libavcodec/hevc_sei.c if (s->present) { s 94 libavcodec/hevc_sei.c s->arrangement_type = get_bits(gb, 7); s 95 libavcodec/hevc_sei.c s->quincunx_subsampling = get_bits1(gb); s 96 libavcodec/hevc_sei.c s->content_interpretation_type = get_bits(gb, 6); s 100 libavcodec/hevc_sei.c s->current_frame_is_frame0_flag = get_bits1(gb); s 104 libavcodec/hevc_sei.c if (!s->quincunx_subsampling && s->arrangement_type != 5) s 113 libavcodec/hevc_sei.c static int decode_nal_sei_display_orientation(HEVCSEIDisplayOrientation *s, GetBitContext *gb) s 115 libavcodec/hevc_sei.c s->present = !get_bits1(gb); s 117 libavcodec/hevc_sei.c if (s->present) { s 118 libavcodec/hevc_sei.c s->hflip = get_bits1(gb); // hor_flip s 119 libavcodec/hevc_sei.c s->vflip = get_bits1(gb); // ver_flip s 121 libavcodec/hevc_sei.c s->anticlockwise_rotation = get_bits(gb, 16); s 128 libavcodec/hevc_sei.c static int decode_nal_sei_pic_timing(HEVCSEI *s, GetBitContext *gb, const HEVCParamSets *ps, s 131 libavcodec/hevc_sei.c HEVCSEIPictureTiming *h = &s->picture_timing; s 134 libavcodec/hevc_sei.c if (!ps->sps_list[s->active_seq_parameter_set_id]) s 136 libavcodec/hevc_sei.c sps = (HEVCSPS*)ps->sps_list[s->active_seq_parameter_set_id]->data; s 164 libavcodec/hevc_sei.c static int decode_registered_user_data_closed_caption(HEVCSEIA53Caption *s, GetBitContext *gb, s 186 libavcodec/hevc_sei.c int old_size = s->buf_ref ? s->buf_ref->size : 0; s 195 libavcodec/hevc_sei.c ret = av_buffer_realloc(&s->buf_ref, new_size); s 200 libavcodec/hevc_sei.c s->buf_ref->data[old_size++] = get_bits(gb, 8); s 201 libavcodec/hevc_sei.c s->buf_ref->data[old_size++] = get_bits(gb, 8); s 202 libavcodec/hevc_sei.c s->buf_ref->data[old_size++] = get_bits(gb, 8); s 216 libavcodec/hevc_sei.c static int decode_nal_sei_user_data_registered_itu_t_t35(HEVCSEI *s, GetBitContext *gb, s 239 libavcodec/hevc_sei.c return decode_registered_user_data_closed_caption(&s->a53_caption, gb, size); s 247 libavcodec/hevc_sei.c static int decode_nal_sei_active_parameter_sets(HEVCSEI *s, GetBitContext *gb, void *logctx) s 268 libavcodec/hevc_sei.c s->active_seq_parameter_set_id = active_seq_parameter_set_id; s 276 libavcodec/hevc_sei.c static int decode_nal_sei_alternative_transfer(HEVCSEIAlternativeTransfer *s, GetBitContext *gb) s 278 libavcodec/hevc_sei.c s->present = 1; s 279 libavcodec/hevc_sei.c s->preferred_transfer_characteristics = get_bits(gb, 8); s 283 libavcodec/hevc_sei.c static int decode_nal_sei_prefix(GetBitContext *gb, void *logctx, HEVCSEI *s, s 288 libavcodec/hevc_sei.c return decode_nal_sei_decoded_picture_hash(&s->picture_hash, gb); s 290 libavcodec/hevc_sei.c return decode_nal_sei_frame_packing_arrangement(&s->frame_packing, gb); s 292 libavcodec/hevc_sei.c return decode_nal_sei_display_orientation(&s->display_orientation, gb); s 294 libavcodec/hevc_sei.c return decode_nal_sei_pic_timing(s, gb, ps, logctx, size); s 296 libavcodec/hevc_sei.c return decode_nal_sei_mastering_display_info(&s->mastering_display, gb); s 298 libavcodec/hevc_sei.c return decode_nal_sei_content_light_info(&s->content_light, gb); s 300 libavcodec/hevc_sei.c return decode_nal_sei_active_parameter_sets(s, gb, logctx); s 302 libavcodec/hevc_sei.c return decode_nal_sei_user_data_registered_itu_t_t35(s, gb, size); s 304 libavcodec/hevc_sei.c return decode_nal_sei_alternative_transfer(&s->alternative_transfer, gb); s 312 libavcodec/hevc_sei.c static int decode_nal_sei_suffix(GetBitContext *gb, void *logctx, HEVCSEI *s, s 317 libavcodec/hevc_sei.c return decode_nal_sei_decoded_picture_hash(&s->picture_hash, gb); s 325 libavcodec/hevc_sei.c static int decode_nal_sei_message(GetBitContext *gb, void *logctx, HEVCSEI *s, s 347 libavcodec/hevc_sei.c return decode_nal_sei_prefix(gb, logctx, s, ps, payload_type, payload_size); s 349 libavcodec/hevc_sei.c return decode_nal_sei_suffix(gb, logctx, s, payload_type, payload_size); s 358 libavcodec/hevc_sei.c int ff_hevc_decode_nal_sei(GetBitContext *gb, void *logctx, HEVCSEI *s, s 364 libavcodec/hevc_sei.c ret = decode_nal_sei_message(gb, logctx, s, ps, type); s 371 libavcodec/hevc_sei.c void ff_hevc_reset_sei(HEVCSEI *s) s 373 libavcodec/hevc_sei.c av_buffer_unref(&s->a53_caption.buf_ref); s 127 libavcodec/hevc_sei.h int ff_hevc_decode_nal_sei(GetBitContext *gb, void *logctx, HEVCSEI *s, s 137 libavcodec/hevc_sei.h void ff_hevc_reset_sei(HEVCSEI *s); s 59 libavcodec/hevcdec.c static void pic_arrays_free(HEVCContext *s) s 61 libavcodec/hevcdec.c av_freep(&s->sao); s 62 libavcodec/hevcdec.c av_freep(&s->deblock); s 64 libavcodec/hevcdec.c av_freep(&s->skip_flag); s 65 libavcodec/hevcdec.c av_freep(&s->tab_ct_depth); s 67 libavcodec/hevcdec.c av_freep(&s->tab_ipm); s 68 libavcodec/hevcdec.c av_freep(&s->cbf_luma); s 69 libavcodec/hevcdec.c av_freep(&s->is_pcm); s 71 libavcodec/hevcdec.c av_freep(&s->qp_y_tab); s 72 libavcodec/hevcdec.c av_freep(&s->tab_slice_address); s 73 libavcodec/hevcdec.c av_freep(&s->filter_slice_edges); s 75 libavcodec/hevcdec.c av_freep(&s->horizontal_bs); s 76 libavcodec/hevcdec.c av_freep(&s->vertical_bs); s 78 libavcodec/hevcdec.c av_freep(&s->sh.entry_point_offset); s 79 libavcodec/hevcdec.c av_freep(&s->sh.size); s 80 libavcodec/hevcdec.c av_freep(&s->sh.offset); s 82 libavcodec/hevcdec.c av_buffer_pool_uninit(&s->tab_mvf_pool); s 83 libavcodec/hevcdec.c av_buffer_pool_uninit(&s->rpl_tab_pool); s 87 libavcodec/hevcdec.c static int pic_arrays_init(HEVCContext *s, const HEVCSPS *sps) s 97 libavcodec/hevcdec.c s->bs_width = (width >> 2) + 1; s 98 libavcodec/hevcdec.c s->bs_height = (height >> 2) + 1; s 100 libavcodec/hevcdec.c s->sao = av_mallocz_array(ctb_count, sizeof(*s->sao)); s 101 libavcodec/hevcdec.c s->deblock = av_mallocz_array(ctb_count, sizeof(*s->deblock)); s 102 libavcodec/hevcdec.c if (!s->sao || !s->deblock) s 105 libavcodec/hevcdec.c s->skip_flag = av_malloc_array(sps->min_cb_height, sps->min_cb_width); s 106 libavcodec/hevcdec.c s->tab_ct_depth = av_malloc_array(sps->min_cb_height, sps->min_cb_width); s 107 libavcodec/hevcdec.c if (!s->skip_flag || !s->tab_ct_depth) s 110 libavcodec/hevcdec.c s->cbf_luma = av_malloc_array(sps->min_tb_width, sps->min_tb_height); s 111 libavcodec/hevcdec.c s->tab_ipm = av_mallocz(min_pu_size); s 112 libavcodec/hevcdec.c s->is_pcm = av_malloc_array(sps->min_pu_width + 1, sps->min_pu_height + 1); s 113 libavcodec/hevcdec.c if (!s->tab_ipm || !s->cbf_luma || !s->is_pcm) s 116 libavcodec/hevcdec.c s->filter_slice_edges = av_mallocz(ctb_count); s 117 libavcodec/hevcdec.c s->tab_slice_address = av_malloc_array(pic_size_in_ctb, s 118 libavcodec/hevcdec.c sizeof(*s->tab_slice_address)); s 119 libavcodec/hevcdec.c s->qp_y_tab = av_malloc_array(pic_size_in_ctb, s 120 libavcodec/hevcdec.c sizeof(*s->qp_y_tab)); s 121 libavcodec/hevcdec.c if (!s->qp_y_tab || !s->filter_slice_edges || !s->tab_slice_address) s 124 libavcodec/hevcdec.c s->horizontal_bs = av_mallocz_array(s->bs_width, s->bs_height); s 125 libavcodec/hevcdec.c s->vertical_bs = av_mallocz_array(s->bs_width, s->bs_height); s 126 libavcodec/hevcdec.c if (!s->horizontal_bs || !s->vertical_bs) s 129 libavcodec/hevcdec.c s->tab_mvf_pool = av_buffer_pool_init(min_pu_size * sizeof(MvField), s 131 libavcodec/hevcdec.c s->rpl_tab_pool = av_buffer_pool_init(ctb_count * sizeof(RefPicListTab), s 133 libavcodec/hevcdec.c if (!s->tab_mvf_pool || !s->rpl_tab_pool) s 139 libavcodec/hevcdec.c pic_arrays_free(s); s 143 libavcodec/hevcdec.c static int pred_weight_table(HEVCContext *s, GetBitContext *gb) s 155 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "luma_log2_weight_denom %d is invalid\n", luma_log2_weight_denom); s 158 libavcodec/hevcdec.c s->sh.luma_log2_weight_denom = av_clip_uintp2(luma_log2_weight_denom, 3); s 159 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc != 0) { s 162 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "chroma_log2_weight_denom %"PRId64" is invalid\n", chroma_log2_weight_denom); s 165 libavcodec/hevcdec.c s->sh.chroma_log2_weight_denom = chroma_log2_weight_denom; s 168 libavcodec/hevcdec.c for (i = 0; i < s->sh.nb_refs[L0]; i++) { s 171 libavcodec/hevcdec.c s->sh.luma_weight_l0[i] = 1 << s->sh.luma_log2_weight_denom; s 172 libavcodec/hevcdec.c s->sh.luma_offset_l0[i] = 0; s 175 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc != 0) { s 176 libavcodec/hevcdec.c for (i = 0; i < s->sh.nb_refs[L0]; i++) s 179 libavcodec/hevcdec.c for (i = 0; i < s->sh.nb_refs[L0]; i++) s 182 libavcodec/hevcdec.c for (i = 0; i < s->sh.nb_refs[L0]; i++) { s 187 libavcodec/hevcdec.c s->sh.luma_weight_l0[i] = (1 << s->sh.luma_log2_weight_denom) + delta_luma_weight_l0; s 188 libavcodec/hevcdec.c s->sh.luma_offset_l0[i] = get_se_golomb(gb); s 200 libavcodec/hevcdec.c s->sh.chroma_weight_l0[i][j] = (1 << s->sh.chroma_log2_weight_denom) + delta_chroma_weight_l0; s 201 libavcodec/hevcdec.c s->sh.chroma_offset_l0[i][j] = av_clip((delta_chroma_offset_l0 - ((128 * s->sh.chroma_weight_l0[i][j]) s 202 libavcodec/hevcdec.c >> s->sh.chroma_log2_weight_denom) + 128), -128, 127); s 205 libavcodec/hevcdec.c s->sh.chroma_weight_l0[i][0] = 1 << s->sh.chroma_log2_weight_denom; s 206 libavcodec/hevcdec.c s->sh.chroma_offset_l0[i][0] = 0; s 207 libavcodec/hevcdec.c s->sh.chroma_weight_l0[i][1] = 1 << s->sh.chroma_log2_weight_denom; s 208 libavcodec/hevcdec.c s->sh.chroma_offset_l0[i][1] = 0; s 211 libavcodec/hevcdec.c if (s->sh.slice_type == HEVC_SLICE_B) { s 212 libavcodec/hevcdec.c for (i = 0; i < s->sh.nb_refs[L1]; i++) { s 215 libavcodec/hevcdec.c s->sh.luma_weight_l1[i] = 1 << s->sh.luma_log2_weight_denom; s 216 libavcodec/hevcdec.c s->sh.luma_offset_l1[i] = 0; s 219 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc != 0) { s 220 libavcodec/hevcdec.c for (i = 0; i < s->sh.nb_refs[L1]; i++) s 223 libavcodec/hevcdec.c for (i = 0; i < s->sh.nb_refs[L1]; i++) s 226 libavcodec/hevcdec.c for (i = 0; i < s->sh.nb_refs[L1]; i++) { s 231 libavcodec/hevcdec.c s->sh.luma_weight_l1[i] = (1 << s->sh.luma_log2_weight_denom) + delta_luma_weight_l1; s 232 libavcodec/hevcdec.c s->sh.luma_offset_l1[i] = get_se_golomb(gb); s 244 libavcodec/hevcdec.c s->sh.chroma_weight_l1[i][j] = (1 << s->sh.chroma_log2_weight_denom) + delta_chroma_weight_l1; s 245 libavcodec/hevcdec.c s->sh.chroma_offset_l1[i][j] = av_clip((delta_chroma_offset_l1 - ((128 * s->sh.chroma_weight_l1[i][j]) s 246 libavcodec/hevcdec.c >> s->sh.chroma_log2_weight_denom) + 128), -128, 127); s 249 libavcodec/hevcdec.c s->sh.chroma_weight_l1[i][0] = 1 << s->sh.chroma_log2_weight_denom; s 250 libavcodec/hevcdec.c s->sh.chroma_offset_l1[i][0] = 0; s 251 libavcodec/hevcdec.c s->sh.chroma_weight_l1[i][1] = 1 << s->sh.chroma_log2_weight_denom; s 252 libavcodec/hevcdec.c s->sh.chroma_offset_l1[i][1] = 0; s 259 libavcodec/hevcdec.c static int decode_lt_rps(HEVCContext *s, LongTermRPS *rps, GetBitContext *gb) s 261 libavcodec/hevcdec.c const HEVCSPS *sps = s->ps.sps; s 305 libavcodec/hevcdec.c poc = rps->poc[i] + s->poc - delta * max_poc_lsb - s->sh.pic_order_cnt_lsb; s 316 libavcodec/hevcdec.c static void export_stream_params(HEVCContext *s, const HEVCSPS *sps) s 318 libavcodec/hevcdec.c AVCodecContext *avctx = s->avctx; s 319 libavcodec/hevcdec.c const HEVCParamSets *ps = &s->ps; s 363 libavcodec/hevcdec.c if (s->sei.alternative_transfer.present && s 364 libavcodec/hevcdec.c av_color_transfer_name(s->sei.alternative_transfer.preferred_transfer_characteristics) && s 365 libavcodec/hevcdec.c s->sei.alternative_transfer.preferred_transfer_characteristics != AVCOL_TRC_UNSPECIFIED) { s 366 libavcodec/hevcdec.c avctx->color_trc = s->sei.alternative_transfer.preferred_transfer_characteristics; s 370 libavcodec/hevcdec.c static enum AVPixelFormat get_format(HEVCContext *s, const HEVCSPS *sps) s 447 libavcodec/hevcdec.c return ff_thread_get_format(s->avctx, pix_fmts); s 450 libavcodec/hevcdec.c static int set_sps(HEVCContext *s, const HEVCSPS *sps, s 455 libavcodec/hevcdec.c pic_arrays_free(s); s 456 libavcodec/hevcdec.c s->ps.sps = NULL; s 457 libavcodec/hevcdec.c s->ps.vps = NULL; s 462 libavcodec/hevcdec.c ret = pic_arrays_init(s, sps); s 466 libavcodec/hevcdec.c export_stream_params(s, sps); s 468 libavcodec/hevcdec.c s->avctx->pix_fmt = pix_fmt; s 470 libavcodec/hevcdec.c ff_hevc_pred_init(&s->hpc, sps->bit_depth); s 471 libavcodec/hevcdec.c ff_hevc_dsp_init (&s->hevcdsp, sps->bit_depth); s 472 libavcodec/hevcdec.c ff_videodsp_init (&s->vdsp, sps->bit_depth); s 475 libavcodec/hevcdec.c av_freep(&s->sao_pixel_buffer_h[i]); s 476 libavcodec/hevcdec.c av_freep(&s->sao_pixel_buffer_v[i]); s 479 libavcodec/hevcdec.c if (sps->sao_enabled && !s->avctx->hwaccel) { s 486 libavcodec/hevcdec.c s->sao_pixel_buffer_h[c_idx] = s 489 libavcodec/hevcdec.c s->sao_pixel_buffer_v[c_idx] = s 495 libavcodec/hevcdec.c s->ps.sps = sps; s 496 libavcodec/hevcdec.c s->ps.vps = (HEVCVPS*) s->ps.vps_list[s->ps.sps->vps_id]->data; s 501 libavcodec/hevcdec.c pic_arrays_free(s); s 502 libavcodec/hevcdec.c s->ps.sps = NULL; s 506 libavcodec/hevcdec.c static int hls_slice_header(HEVCContext *s) s 508 libavcodec/hevcdec.c GetBitContext *gb = &s->HEVClc->gb; s 509 libavcodec/hevcdec.c SliceHeader *sh = &s->sh; s 514 libavcodec/hevcdec.c if (s->ref && sh->first_slice_in_pic_flag) { s 515 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Two slices reporting being the first in the same frame.\n"); s 519 libavcodec/hevcdec.c if ((IS_IDR(s) || IS_BLA(s)) && sh->first_slice_in_pic_flag) { s 520 libavcodec/hevcdec.c s->seq_decode = (s->seq_decode + 1) & 0xff; s 521 libavcodec/hevcdec.c s->max_ra = INT_MAX; s 522 libavcodec/hevcdec.c if (IS_IDR(s)) s 523 libavcodec/hevcdec.c ff_hevc_clear_refs(s); s 526 libavcodec/hevcdec.c if (IS_IRAP(s)) s 530 libavcodec/hevcdec.c if (sh->pps_id >= HEVC_MAX_PPS_COUNT || !s->ps.pps_list[sh->pps_id]) { s 531 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "PPS id out of range: %d\n", sh->pps_id); s 535 libavcodec/hevcdec.c s->ps.pps != (HEVCPPS*)s->ps.pps_list[sh->pps_id]->data) { s 536 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "PPS changed between slices.\n"); s 539 libavcodec/hevcdec.c s->ps.pps = (HEVCPPS*)s->ps.pps_list[sh->pps_id]->data; s 540 libavcodec/hevcdec.c if (s->nal_unit_type == HEVC_NAL_CRA_NUT && s->last_eos == 1) s 543 libavcodec/hevcdec.c if (s->ps.sps != (HEVCSPS*)s->ps.sps_list[s->ps.pps->sps_id]->data) { s 544 libavcodec/hevcdec.c const HEVCSPS *sps = (HEVCSPS*)s->ps.sps_list[s->ps.pps->sps_id]->data; s 545 libavcodec/hevcdec.c const HEVCSPS *last_sps = s->ps.sps; s 548 libavcodec/hevcdec.c if (last_sps && IS_IRAP(s) && s->nal_unit_type != HEVC_NAL_CRA_NUT) { s 554 libavcodec/hevcdec.c ff_hevc_clear_refs(s); s 556 libavcodec/hevcdec.c ret = set_sps(s, sps, sps->pix_fmt); s 560 libavcodec/hevcdec.c pix_fmt = get_format(s, sps); s 563 libavcodec/hevcdec.c s->avctx->pix_fmt = pix_fmt; s 565 libavcodec/hevcdec.c s->seq_decode = (s->seq_decode + 1) & 0xff; s 566 libavcodec/hevcdec.c s->max_ra = INT_MAX; s 573 libavcodec/hevcdec.c if (s->ps.pps->dependent_slice_segments_enabled_flag) s 576 libavcodec/hevcdec.c slice_address_length = av_ceil_log2(s->ps.sps->ctb_width * s 577 libavcodec/hevcdec.c s->ps.sps->ctb_height); s 579 libavcodec/hevcdec.c if (sh->slice_segment_addr >= s->ps.sps->ctb_width * s->ps.sps->ctb_height) { s 580 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 588 libavcodec/hevcdec.c s->slice_idx++; s 592 libavcodec/hevcdec.c s->slice_idx = 0; s 593 libavcodec/hevcdec.c s->slice_initialized = 0; s 597 libavcodec/hevcdec.c s->slice_initialized = 0; s 599 libavcodec/hevcdec.c for (i = 0; i < s->ps.pps->num_extra_slice_header_bits; i++) s 606 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Unknown slice type: %d.\n", s 610 libavcodec/hevcdec.c if (IS_IRAP(s) && sh->slice_type != HEVC_SLICE_I) { s 611 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Inter slices in an IRAP frame.\n"); s 617 libavcodec/hevcdec.c if (s->ps.pps->output_flag_present_flag) s 620 libavcodec/hevcdec.c if (s->ps.sps->separate_colour_plane_flag) s 623 libavcodec/hevcdec.c if (!IS_IDR(s)) { s 626 libavcodec/hevcdec.c sh->pic_order_cnt_lsb = get_bits(gb, s->ps.sps->log2_max_poc_lsb); s 627 libavcodec/hevcdec.c poc = ff_hevc_compute_poc(s->ps.sps, s->pocTid0, sh->pic_order_cnt_lsb, s->nal_unit_type); s 628 libavcodec/hevcdec.c if (!sh->first_slice_in_pic_flag && poc != s->poc) { s 629 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_WARNING, s 630 libavcodec/hevcdec.c "Ignoring POC change between slices: %d -> %d\n", s->poc, poc); s 631 libavcodec/hevcdec.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 633 libavcodec/hevcdec.c poc = s->poc; s 635 libavcodec/hevcdec.c s->poc = poc; s 640 libavcodec/hevcdec.c ret = ff_hevc_decode_short_term_rps(gb, s->avctx, &sh->slice_rps, s->ps.sps, 1); s 648 libavcodec/hevcdec.c if (!s->ps.sps->nb_st_rps) { s 649 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "No ref lists in the SPS.\n"); s 653 libavcodec/hevcdec.c numbits = av_ceil_log2(s->ps.sps->nb_st_rps); s 655 libavcodec/hevcdec.c sh->short_term_rps = &s->ps.sps->st_rps[rps_idx]; s 660 libavcodec/hevcdec.c ret = decode_lt_rps(s, &sh->long_term_rps, gb); s 662 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_WARNING, "Invalid long term RPS.\n"); s 663 libavcodec/hevcdec.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 668 libavcodec/hevcdec.c if (s->ps.sps->sps_temporal_mvp_enabled_flag) s 673 libavcodec/hevcdec.c s->sh.short_term_rps = NULL; s 674 libavcodec/hevcdec.c s->poc = 0; s 678 libavcodec/hevcdec.c if (sh->first_slice_in_pic_flag && s->temporal_id == 0 && s 679 libavcodec/hevcdec.c s->nal_unit_type != HEVC_NAL_TRAIL_N && s 680 libavcodec/hevcdec.c s->nal_unit_type != HEVC_NAL_TSA_N && s 681 libavcodec/hevcdec.c s->nal_unit_type != HEVC_NAL_STSA_N && s 682 libavcodec/hevcdec.c s->nal_unit_type != HEVC_NAL_RADL_N && s 683 libavcodec/hevcdec.c s->nal_unit_type != HEVC_NAL_RADL_R && s 684 libavcodec/hevcdec.c s->nal_unit_type != HEVC_NAL_RASL_N && s 685 libavcodec/hevcdec.c s->nal_unit_type != HEVC_NAL_RASL_R) s 686 libavcodec/hevcdec.c s->pocTid0 = s->poc; s 688 libavcodec/hevcdec.c if (s->ps.sps->sao_enabled) { s 690 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc) { s 704 libavcodec/hevcdec.c sh->nb_refs[L0] = s->ps.pps->num_ref_idx_l0_default_active; s 706 libavcodec/hevcdec.c sh->nb_refs[L1] = s->ps.pps->num_ref_idx_l1_default_active; s 714 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Too many refs: %d/%d.\n", s 721 libavcodec/hevcdec.c nb_refs = ff_hevc_frame_nb_refs(s); s 723 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Zero refs for a frame with P or B slices.\n"); s 727 libavcodec/hevcdec.c if (s->ps.pps->lists_modification_present_flag && nb_refs > 1) { s 745 libavcodec/hevcdec.c if (s->ps.pps->cabac_init_present_flag) s 759 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 767 libavcodec/hevcdec.c if ((s->ps.pps->weighted_pred_flag && sh->slice_type == HEVC_SLICE_P) || s 768 libavcodec/hevcdec.c (s->ps.pps->weighted_bipred_flag && sh->slice_type == HEVC_SLICE_B)) { s 769 libavcodec/hevcdec.c int ret = pred_weight_table(s, gb); s 776 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 785 libavcodec/hevcdec.c if (s->ps.pps->pic_slice_level_chroma_qp_offsets_present_flag) { s 793 libavcodec/hevcdec.c if (s->ps.pps->chroma_qp_offset_list_enabled_flag) s 798 libavcodec/hevcdec.c if (s->ps.pps->deblocking_filter_control_present_flag) { s 801 libavcodec/hevcdec.c if (s->ps.pps->deblocking_filter_override_enabled_flag) s 811 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 820 libavcodec/hevcdec.c sh->disable_deblocking_filter_flag = s->ps.pps->disable_dbf; s 821 libavcodec/hevcdec.c sh->beta_offset = s->ps.pps->beta_offset; s 822 libavcodec/hevcdec.c sh->tc_offset = s->ps.pps->tc_offset; s 830 libavcodec/hevcdec.c if (s->ps.pps->seq_loop_filter_across_slices_enabled_flag && s 836 libavcodec/hevcdec.c sh->slice_loop_filter_across_slices_enabled_flag = s->ps.pps->seq_loop_filter_across_slices_enabled_flag; s 838 libavcodec/hevcdec.c } else if (!s->slice_initialized) { s 839 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Independent slice segment missing.\n"); s 844 libavcodec/hevcdec.c if (s->ps.pps->tiles_enabled_flag || s->ps.pps->entropy_coding_sync_enabled_flag) { s 848 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "num_entry_point_offsets %d is invalid\n", num_entry_point_offsets); s 858 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "offset_len %d is invalid\n", offset_len); s 870 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Failed to allocate memory\n"); s 877 libavcodec/hevcdec.c if (s->threads_number > 1 && (s->ps.pps->num_tile_rows > 1 || s->ps.pps->num_tile_columns > 1)) { s 878 libavcodec/hevcdec.c s->enable_parallel_tiles = 0; // TODO: you can enable tiles in parallel here s 879 libavcodec/hevcdec.c s->threads_number = 1; s 881 libavcodec/hevcdec.c s->enable_parallel_tiles = 0; s 883 libavcodec/hevcdec.c s->enable_parallel_tiles = 0; s 886 libavcodec/hevcdec.c if (s->ps.pps->slice_header_extension_present_flag) { s 889 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "too many slice_header_extension_data_bytes\n"); s 897 libavcodec/hevcdec.c sh->slice_qp = 26U + s->ps.pps->pic_init_qp_minus26 + sh->slice_qp_delta; s 899 libavcodec/hevcdec.c sh->slice_qp < -s->ps.sps->qp_bd_offset) { s 900 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 904 libavcodec/hevcdec.c -s->ps.sps->qp_bd_offset); s 910 libavcodec/hevcdec.c if (!s->sh.slice_ctb_addr_rs && s->sh.dependent_slice_segment_flag) { s 911 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Impossible slice segment.\n"); s 916 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 921 libavcodec/hevcdec.c s->HEVClc->first_qp_group = !s->sh.dependent_slice_segment_flag; s 923 libavcodec/hevcdec.c if (!s->ps.pps->cu_qp_delta_enabled_flag) s 924 libavcodec/hevcdec.c s->HEVClc->qp_y = s->sh.slice_qp; s 926 libavcodec/hevcdec.c s->slice_initialized = 1; s 927 libavcodec/hevcdec.c s->HEVClc->tu.cu_qp_offset_cb = 0; s 928 libavcodec/hevcdec.c s->HEVClc->tu.cu_qp_offset_cr = 0; s 933 libavcodec/hevcdec.c #define CTB(tab, x, y) ((tab)[(y) * s->ps.sps->ctb_width + (x)]) s 940 libavcodec/hevcdec.c sao->elem = CTB(s->sao, rx-1, ry).elem; \ s 942 libavcodec/hevcdec.c sao->elem = CTB(s->sao, rx, ry-1).elem; \ s 947 libavcodec/hevcdec.c static void hls_sao_param(HEVCContext *s, int rx, int ry) s 949 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 952 libavcodec/hevcdec.c SAOParams *sao = &CTB(s->sao, rx, ry); s 955 libavcodec/hevcdec.c if (s->sh.slice_sample_adaptive_offset_flag[0] || s 956 libavcodec/hevcdec.c s->sh.slice_sample_adaptive_offset_flag[1]) { s 959 libavcodec/hevcdec.c sao_merge_left_flag = ff_hevc_sao_merge_flag_decode(s); s 963 libavcodec/hevcdec.c sao_merge_up_flag = ff_hevc_sao_merge_flag_decode(s); s 967 libavcodec/hevcdec.c for (c_idx = 0; c_idx < (s->ps.sps->chroma_format_idc ? 3 : 1); c_idx++) { s 968 libavcodec/hevcdec.c int log2_sao_offset_scale = c_idx == 0 ? s->ps.pps->log2_sao_offset_scale_luma : s 969 libavcodec/hevcdec.c s->ps.pps->log2_sao_offset_scale_chroma; s 971 libavcodec/hevcdec.c if (!s->sh.slice_sample_adaptive_offset_flag[c_idx]) { s 980 libavcodec/hevcdec.c SET_SAO(type_idx[c_idx], ff_hevc_sao_type_idx_decode(s)); s 987 libavcodec/hevcdec.c SET_SAO(offset_abs[c_idx][i], ff_hevc_sao_offset_abs_decode(s)); s 993 libavcodec/hevcdec.c ff_hevc_sao_offset_sign_decode(s)); s 998 libavcodec/hevcdec.c SET_SAO(band_position[c_idx], ff_hevc_sao_band_position_decode(s)); s 1000 libavcodec/hevcdec.c SET_SAO(eo_class[c_idx], ff_hevc_sao_eo_class_decode(s)); s 1021 libavcodec/hevcdec.c static int hls_cross_component_pred(HEVCContext *s, int idx) { s 1022 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1023 libavcodec/hevcdec.c int log2_res_scale_abs_plus1 = ff_hevc_log2_res_scale_abs(s, idx); s 1026 libavcodec/hevcdec.c int res_scale_sign_flag = ff_hevc_res_scale_sign_flag(s, idx); s 1037 libavcodec/hevcdec.c static int hls_transform_unit(HEVCContext *s, int x0, int y0, s 1042 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1043 libavcodec/hevcdec.c const int log2_trafo_size_c = log2_trafo_size - s->ps.sps->hshift[1]; s 1048 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, x0, y0, trafo_size, trafo_size); s 1050 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size - 2](s, x0, y0, 0); s 1054 libavcodec/hevcdec.c (s->ps.sps->chroma_format_idc == 2 && (cbf_cb[1] || cbf_cr[1]))) { s 1058 libavcodec/hevcdec.c (s->ps.sps->chroma_format_idc == 2 && s 1061 libavcodec/hevcdec.c if (s->ps.pps->cu_qp_delta_enabled_flag && !lc->tu.is_cu_qp_delta_coded) { s 1062 libavcodec/hevcdec.c lc->tu.cu_qp_delta = ff_hevc_cu_qp_delta_abs(s); s 1064 libavcodec/hevcdec.c if (ff_hevc_cu_qp_delta_sign_flag(s) == 1) s 1068 libavcodec/hevcdec.c if (lc->tu.cu_qp_delta < -(26 + s->ps.sps->qp_bd_offset / 2) || s 1069 libavcodec/hevcdec.c lc->tu.cu_qp_delta > (25 + s->ps.sps->qp_bd_offset / 2)) { s 1070 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 1074 libavcodec/hevcdec.c -(26 + s->ps.sps->qp_bd_offset / 2), s 1075 libavcodec/hevcdec.c (25 + s->ps.sps->qp_bd_offset / 2)); s 1079 libavcodec/hevcdec.c ff_hevc_set_qPy(s, cb_xBase, cb_yBase, log2_cb_size); s 1082 libavcodec/hevcdec.c if (s->sh.cu_chroma_qp_offset_enabled_flag && cbf_chroma && s 1084 libavcodec/hevcdec.c int cu_chroma_qp_offset_flag = ff_hevc_cu_chroma_qp_offset_flag(s); s 1087 libavcodec/hevcdec.c if (s->ps.pps->chroma_qp_offset_list_len_minus1 > 0) { s 1088 libavcodec/hevcdec.c cu_chroma_qp_offset_idx = ff_hevc_cu_chroma_qp_offset_idx(s); s 1089 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 1092 libavcodec/hevcdec.c lc->tu.cu_qp_offset_cb = s->ps.pps->cb_qp_offset_list[cu_chroma_qp_offset_idx]; s 1093 libavcodec/hevcdec.c lc->tu.cu_qp_offset_cr = s->ps.pps->cr_qp_offset_list[cu_chroma_qp_offset_idx]; s 1122 libavcodec/hevcdec.c ff_hevc_hls_residual_coding(s, x0, y0, log2_trafo_size, scan_idx, 0); s 1123 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc && (log2_trafo_size > 2 || s->ps.sps->chroma_format_idc == 3)) { s 1124 libavcodec/hevcdec.c int trafo_size_h = 1 << (log2_trafo_size_c + s->ps.sps->hshift[1]); s 1125 libavcodec/hevcdec.c int trafo_size_v = 1 << (log2_trafo_size_c + s->ps.sps->vshift[1]); s 1126 libavcodec/hevcdec.c lc->tu.cross_pf = (s->ps.pps->cross_component_prediction_enabled_flag && cbf_luma && s 1131 libavcodec/hevcdec.c hls_cross_component_pred(s, 0); s 1133 libavcodec/hevcdec.c for (i = 0; i < (s->ps.sps->chroma_format_idc == 2 ? 2 : 1); i++) { s 1135 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, x0, y0 + (i << log2_trafo_size_c), trafo_size_h, trafo_size_v); s 1136 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size_c - 2](s, x0, y0 + (i << log2_trafo_size_c), 1); s 1139 libavcodec/hevcdec.c ff_hevc_hls_residual_coding(s, x0, y0 + (i << log2_trafo_size_c), s 1143 libavcodec/hevcdec.c ptrdiff_t stride = s->frame->linesize[1]; s 1144 libavcodec/hevcdec.c int hshift = s->ps.sps->hshift[1]; s 1145 libavcodec/hevcdec.c int vshift = s->ps.sps->vshift[1]; s 1150 libavcodec/hevcdec.c uint8_t *dst = &s->frame->data[1][(y0 >> vshift) * stride + s 1151 libavcodec/hevcdec.c ((x0 >> hshift) << s->ps.sps->pixel_shift)]; s 1155 libavcodec/hevcdec.c s->hevcdsp.add_residual[log2_trafo_size_c-2](dst, coeffs, stride); s 1160 libavcodec/hevcdec.c hls_cross_component_pred(s, 1); s 1162 libavcodec/hevcdec.c for (i = 0; i < (s->ps.sps->chroma_format_idc == 2 ? 2 : 1); i++) { s 1164 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, x0, y0 + (i << log2_trafo_size_c), trafo_size_h, trafo_size_v); s 1165 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size_c - 2](s, x0, y0 + (i << log2_trafo_size_c), 2); s 1168 libavcodec/hevcdec.c ff_hevc_hls_residual_coding(s, x0, y0 + (i << log2_trafo_size_c), s 1172 libavcodec/hevcdec.c ptrdiff_t stride = s->frame->linesize[2]; s 1173 libavcodec/hevcdec.c int hshift = s->ps.sps->hshift[2]; s 1174 libavcodec/hevcdec.c int vshift = s->ps.sps->vshift[2]; s 1179 libavcodec/hevcdec.c uint8_t *dst = &s->frame->data[2][(y0 >> vshift) * stride + s 1180 libavcodec/hevcdec.c ((x0 >> hshift) << s->ps.sps->pixel_shift)]; s 1184 libavcodec/hevcdec.c s->hevcdsp.add_residual[log2_trafo_size_c-2](dst, coeffs, stride); s 1187 libavcodec/hevcdec.c } else if (s->ps.sps->chroma_format_idc && blk_idx == 3) { s 1189 libavcodec/hevcdec.c int trafo_size_v = 1 << (log2_trafo_size + s->ps.sps->vshift[1]); s 1190 libavcodec/hevcdec.c for (i = 0; i < (s->ps.sps->chroma_format_idc == 2 ? 2 : 1); i++) { s 1192 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, xBase, yBase + (i << log2_trafo_size), s 1194 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size - 2](s, xBase, yBase + (i << log2_trafo_size), 1); s 1197 libavcodec/hevcdec.c ff_hevc_hls_residual_coding(s, xBase, yBase + (i << log2_trafo_size), s 1200 libavcodec/hevcdec.c for (i = 0; i < (s->ps.sps->chroma_format_idc == 2 ? 2 : 1); i++) { s 1202 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, xBase, yBase + (i << log2_trafo_size), s 1204 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size - 2](s, xBase, yBase + (i << log2_trafo_size), 2); s 1207 libavcodec/hevcdec.c ff_hevc_hls_residual_coding(s, xBase, yBase + (i << log2_trafo_size), s 1211 libavcodec/hevcdec.c } else if (s->ps.sps->chroma_format_idc && lc->cu.pred_mode == MODE_INTRA) { s 1212 libavcodec/hevcdec.c if (log2_trafo_size > 2 || s->ps.sps->chroma_format_idc == 3) { s 1213 libavcodec/hevcdec.c int trafo_size_h = 1 << (log2_trafo_size_c + s->ps.sps->hshift[1]); s 1214 libavcodec/hevcdec.c int trafo_size_v = 1 << (log2_trafo_size_c + s->ps.sps->vshift[1]); s 1215 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, x0, y0, trafo_size_h, trafo_size_v); s 1216 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size_c - 2](s, x0, y0, 1); s 1217 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size_c - 2](s, x0, y0, 2); s 1218 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc == 2) { s 1219 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, x0, y0 + (1 << log2_trafo_size_c), s 1221 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size_c - 2](s, x0, y0 + (1 << log2_trafo_size_c), 1); s 1222 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size_c - 2](s, x0, y0 + (1 << log2_trafo_size_c), 2); s 1226 libavcodec/hevcdec.c int trafo_size_v = 1 << (log2_trafo_size + s->ps.sps->vshift[1]); s 1227 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, xBase, yBase, s 1229 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size - 2](s, xBase, yBase, 1); s 1230 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size - 2](s, xBase, yBase, 2); s 1231 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc == 2) { s 1232 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, xBase, yBase + (1 << (log2_trafo_size)), s 1234 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size - 2](s, xBase, yBase + (1 << (log2_trafo_size)), 1); s 1235 libavcodec/hevcdec.c s->hpc.intra_pred[log2_trafo_size - 2](s, xBase, yBase + (1 << (log2_trafo_size)), 2); s 1243 libavcodec/hevcdec.c static void set_deblocking_bypass(HEVCContext *s, int x0, int y0, int log2_cb_size) s 1246 libavcodec/hevcdec.c int log2_min_pu_size = s->ps.sps->log2_min_pu_size; s 1248 libavcodec/hevcdec.c int min_pu_width = s->ps.sps->min_pu_width; s 1249 libavcodec/hevcdec.c int x_end = FFMIN(x0 + cb_size, s->ps.sps->width); s 1250 libavcodec/hevcdec.c int y_end = FFMIN(y0 + cb_size, s->ps.sps->height); s 1255 libavcodec/hevcdec.c s->is_pcm[i + j * min_pu_width] = 2; s 1258 libavcodec/hevcdec.c static int hls_transform_tree(HEVCContext *s, int x0, int y0, s 1264 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1278 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc == 3) { s 1292 libavcodec/hevcdec.c if (log2_trafo_size <= s->ps.sps->log2_max_trafo_size && s 1293 libavcodec/hevcdec.c log2_trafo_size > s->ps.sps->log2_min_tb_size && s 1296 libavcodec/hevcdec.c split_transform_flag = ff_hevc_split_transform_flag_decode(s, log2_trafo_size); s 1298 libavcodec/hevcdec.c int inter_split = s->ps.sps->max_transform_hierarchy_depth_inter == 0 && s 1303 libavcodec/hevcdec.c split_transform_flag = log2_trafo_size > s->ps.sps->log2_max_trafo_size || s 1308 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc && (log2_trafo_size > 2 || s->ps.sps->chroma_format_idc == 3)) { s 1310 libavcodec/hevcdec.c cbf_cb[0] = ff_hevc_cbf_cb_cr_decode(s, trafo_depth); s 1311 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc == 2 && (!split_transform_flag || log2_trafo_size == 3)) { s 1312 libavcodec/hevcdec.c cbf_cb[1] = ff_hevc_cbf_cb_cr_decode(s, trafo_depth); s 1317 libavcodec/hevcdec.c cbf_cr[0] = ff_hevc_cbf_cb_cr_decode(s, trafo_depth); s 1318 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc == 2 && (!split_transform_flag || log2_trafo_size == 3)) { s 1319 libavcodec/hevcdec.c cbf_cr[1] = ff_hevc_cbf_cb_cr_decode(s, trafo_depth); s 1331 libavcodec/hevcdec.c ret = hls_transform_tree(s, x, y, x0, y0, cb_xBase, cb_yBase, log2_cb_size, \ s 1345 libavcodec/hevcdec.c int min_tu_size = 1 << s->ps.sps->log2_min_tb_size; s 1346 libavcodec/hevcdec.c int log2_min_tu_size = s->ps.sps->log2_min_tb_size; s 1347 libavcodec/hevcdec.c int min_tu_width = s->ps.sps->min_tb_width; s 1352 libavcodec/hevcdec.c (s->ps.sps->chroma_format_idc == 2 && (cbf_cb[1] || cbf_cr[1]))) { s 1353 libavcodec/hevcdec.c cbf_luma = ff_hevc_cbf_luma_decode(s, trafo_depth); s 1356 libavcodec/hevcdec.c ret = hls_transform_unit(s, x0, y0, xBase, yBase, cb_xBase, cb_yBase, s 1368 libavcodec/hevcdec.c s->cbf_luma[y_tu * min_tu_width + x_tu] = 1; s 1371 libavcodec/hevcdec.c if (!s->sh.disable_deblocking_filter_flag) { s 1372 libavcodec/hevcdec.c ff_hevc_deblocking_boundary_strengths(s, x0, y0, log2_trafo_size); s 1373 libavcodec/hevcdec.c if (s->ps.pps->transquant_bypass_enable_flag && s 1375 libavcodec/hevcdec.c set_deblocking_bypass(s, x0, y0, log2_trafo_size); s 1381 libavcodec/hevcdec.c static int hls_pcm_sample(HEVCContext *s, int x0, int y0, int log2_cb_size) s 1383 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1386 libavcodec/hevcdec.c ptrdiff_t stride0 = s->frame->linesize[0]; s 1387 libavcodec/hevcdec.c ptrdiff_t stride1 = s->frame->linesize[1]; s 1388 libavcodec/hevcdec.c ptrdiff_t stride2 = s->frame->linesize[2]; s 1389 libavcodec/hevcdec.c uint8_t *dst0 = &s->frame->data[0][y0 * stride0 + (x0 << s->ps.sps->pixel_shift)]; s 1390 libavcodec/hevcdec.c uint8_t *dst1 = &s->frame->data[1][(y0 >> s->ps.sps->vshift[1]) * stride1 + ((x0 >> s->ps.sps->hshift[1]) << s->ps.sps->pixel_shift)]; s 1391 libavcodec/hevcdec.c uint8_t *dst2 = &s->frame->data[2][(y0 >> s->ps.sps->vshift[2]) * stride2 + ((x0 >> s->ps.sps->hshift[2]) << s->ps.sps->pixel_shift)]; s 1393 libavcodec/hevcdec.c int length = cb_size * cb_size * s->ps.sps->pcm.bit_depth + s 1394 libavcodec/hevcdec.c (((cb_size >> s->ps.sps->hshift[1]) * (cb_size >> s->ps.sps->vshift[1])) + s 1395 libavcodec/hevcdec.c ((cb_size >> s->ps.sps->hshift[2]) * (cb_size >> s->ps.sps->vshift[2]))) * s 1396 libavcodec/hevcdec.c s->ps.sps->pcm.bit_depth_chroma; s 1400 libavcodec/hevcdec.c if (!s->sh.disable_deblocking_filter_flag) s 1401 libavcodec/hevcdec.c ff_hevc_deblocking_boundary_strengths(s, x0, y0, log2_cb_size); s 1407 libavcodec/hevcdec.c s->hevcdsp.put_pcm(dst0, stride0, cb_size, cb_size, &gb, s->ps.sps->pcm.bit_depth); s 1408 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc) { s 1409 libavcodec/hevcdec.c s->hevcdsp.put_pcm(dst1, stride1, s 1410 libavcodec/hevcdec.c cb_size >> s->ps.sps->hshift[1], s 1411 libavcodec/hevcdec.c cb_size >> s->ps.sps->vshift[1], s 1412 libavcodec/hevcdec.c &gb, s->ps.sps->pcm.bit_depth_chroma); s 1413 libavcodec/hevcdec.c s->hevcdsp.put_pcm(dst2, stride2, s 1414 libavcodec/hevcdec.c cb_size >> s->ps.sps->hshift[2], s 1415 libavcodec/hevcdec.c cb_size >> s->ps.sps->vshift[2], s 1416 libavcodec/hevcdec.c &gb, s->ps.sps->pcm.bit_depth_chroma); s 1438 libavcodec/hevcdec.c static void luma_mc_uni(HEVCContext *s, uint8_t *dst, ptrdiff_t dststride, s 1442 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1445 libavcodec/hevcdec.c int pic_width = s->ps.sps->width; s 1446 libavcodec/hevcdec.c int pic_height = s->ps.sps->height; s 1449 libavcodec/hevcdec.c int weight_flag = (s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || s 1450 libavcodec/hevcdec.c (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag); s 1455 libavcodec/hevcdec.c src += y_off * srcstride + (x_off * (1 << s->ps.sps->pixel_shift)); s 1460 libavcodec/hevcdec.c const ptrdiff_t edge_emu_stride = EDGE_EMU_BUFFER_STRIDE << s->ps.sps->pixel_shift; s 1461 libavcodec/hevcdec.c int offset = QPEL_EXTRA_BEFORE * srcstride + (QPEL_EXTRA_BEFORE << s->ps.sps->pixel_shift); s 1462 libavcodec/hevcdec.c int buf_offset = QPEL_EXTRA_BEFORE * edge_emu_stride + (QPEL_EXTRA_BEFORE << s->ps.sps->pixel_shift); s 1464 libavcodec/hevcdec.c s->vdsp.emulated_edge_mc(lc->edge_emu_buffer, src - offset, s 1475 libavcodec/hevcdec.c s->hevcdsp.put_hevc_qpel_uni[idx][!!my][!!mx](dst, dststride, src, srcstride, s 1478 libavcodec/hevcdec.c s->hevcdsp.put_hevc_qpel_uni_w[idx][!!my][!!mx](dst, dststride, src, srcstride, s 1479 libavcodec/hevcdec.c block_h, s->sh.luma_log2_weight_denom, s 1499 libavcodec/hevcdec.c static void luma_mc_bi(HEVCContext *s, uint8_t *dst, ptrdiff_t dststride, s 1503 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1506 libavcodec/hevcdec.c int pic_width = s->ps.sps->width; s 1507 libavcodec/hevcdec.c int pic_height = s->ps.sps->height; s 1512 libavcodec/hevcdec.c int weight_flag = (s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || s 1513 libavcodec/hevcdec.c (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag); s 1520 libavcodec/hevcdec.c uint8_t *src0 = ref0->data[0] + y_off0 * src0stride + (int)((unsigned)x_off0 << s->ps.sps->pixel_shift); s 1521 libavcodec/hevcdec.c uint8_t *src1 = ref1->data[0] + y_off1 * src1stride + (int)((unsigned)x_off1 << s->ps.sps->pixel_shift); s 1526 libavcodec/hevcdec.c const ptrdiff_t edge_emu_stride = EDGE_EMU_BUFFER_STRIDE << s->ps.sps->pixel_shift; s 1527 libavcodec/hevcdec.c int offset = QPEL_EXTRA_BEFORE * src0stride + (QPEL_EXTRA_BEFORE << s->ps.sps->pixel_shift); s 1528 libavcodec/hevcdec.c int buf_offset = QPEL_EXTRA_BEFORE * edge_emu_stride + (QPEL_EXTRA_BEFORE << s->ps.sps->pixel_shift); s 1530 libavcodec/hevcdec.c s->vdsp.emulated_edge_mc(lc->edge_emu_buffer, src0 - offset, s 1543 libavcodec/hevcdec.c const ptrdiff_t edge_emu_stride = EDGE_EMU_BUFFER_STRIDE << s->ps.sps->pixel_shift; s 1544 libavcodec/hevcdec.c int offset = QPEL_EXTRA_BEFORE * src1stride + (QPEL_EXTRA_BEFORE << s->ps.sps->pixel_shift); s 1545 libavcodec/hevcdec.c int buf_offset = QPEL_EXTRA_BEFORE * edge_emu_stride + (QPEL_EXTRA_BEFORE << s->ps.sps->pixel_shift); s 1547 libavcodec/hevcdec.c s->vdsp.emulated_edge_mc(lc->edge_emu_buffer2, src1 - offset, s 1557 libavcodec/hevcdec.c s->hevcdsp.put_hevc_qpel[idx][!!my0][!!mx0](lc->tmp, src0, src0stride, s 1560 libavcodec/hevcdec.c s->hevcdsp.put_hevc_qpel_bi[idx][!!my1][!!mx1](dst, dststride, src1, src1stride, lc->tmp, s 1563 libavcodec/hevcdec.c s->hevcdsp.put_hevc_qpel_bi_w[idx][!!my1][!!mx1](dst, dststride, src1, src1stride, lc->tmp, s 1564 libavcodec/hevcdec.c block_h, s->sh.luma_log2_weight_denom, s 1565 libavcodec/hevcdec.c s->sh.luma_weight_l0[current_mv->ref_idx[0]], s 1566 libavcodec/hevcdec.c s->sh.luma_weight_l1[current_mv->ref_idx[1]], s 1567 libavcodec/hevcdec.c s->sh.luma_offset_l0[current_mv->ref_idx[0]], s 1568 libavcodec/hevcdec.c s->sh.luma_offset_l1[current_mv->ref_idx[1]], s 1590 libavcodec/hevcdec.c static void chroma_mc_uni(HEVCContext *s, uint8_t *dst0, s 1594 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1595 libavcodec/hevcdec.c int pic_width = s->ps.sps->width >> s->ps.sps->hshift[1]; s 1596 libavcodec/hevcdec.c int pic_height = s->ps.sps->height >> s->ps.sps->vshift[1]; s 1598 libavcodec/hevcdec.c int weight_flag = (s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || s 1599 libavcodec/hevcdec.c (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag); s 1601 libavcodec/hevcdec.c int hshift = s->ps.sps->hshift[1]; s 1602 libavcodec/hevcdec.c int vshift = s->ps.sps->vshift[1]; s 1610 libavcodec/hevcdec.c src0 += y_off * srcstride + (x_off * (1 << s->ps.sps->pixel_shift)); s 1615 libavcodec/hevcdec.c const int edge_emu_stride = EDGE_EMU_BUFFER_STRIDE << s->ps.sps->pixel_shift; s 1616 libavcodec/hevcdec.c int offset0 = EPEL_EXTRA_BEFORE * (srcstride + (1 << s->ps.sps->pixel_shift)); s 1618 libavcodec/hevcdec.c (edge_emu_stride + (1 << s->ps.sps->pixel_shift)); s 1619 libavcodec/hevcdec.c s->vdsp.emulated_edge_mc(lc->edge_emu_buffer, src0 - offset0, s 1630 libavcodec/hevcdec.c s->hevcdsp.put_hevc_epel_uni[idx][!!my][!!mx](dst0, dststride, src0, srcstride, s 1633 libavcodec/hevcdec.c s->hevcdsp.put_hevc_epel_uni_w[idx][!!my][!!mx](dst0, dststride, src0, srcstride, s 1634 libavcodec/hevcdec.c block_h, s->sh.chroma_log2_weight_denom, s 1655 libavcodec/hevcdec.c static void chroma_mc_bi(HEVCContext *s, uint8_t *dst0, ptrdiff_t dststride, AVFrame *ref0, AVFrame *ref1, s 1658 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1663 libavcodec/hevcdec.c int weight_flag = (s->sh.slice_type == HEVC_SLICE_P && s->ps.pps->weighted_pred_flag) || s 1664 libavcodec/hevcdec.c (s->sh.slice_type == HEVC_SLICE_B && s->ps.pps->weighted_bipred_flag); s 1665 libavcodec/hevcdec.c int pic_width = s->ps.sps->width >> s->ps.sps->hshift[1]; s 1666 libavcodec/hevcdec.c int pic_height = s->ps.sps->height >> s->ps.sps->vshift[1]; s 1669 libavcodec/hevcdec.c int hshift = s->ps.sps->hshift[1]; s 1670 libavcodec/hevcdec.c int vshift = s->ps.sps->vshift[1]; s 1686 libavcodec/hevcdec.c src1 += y_off0 * src1stride + (int)((unsigned)x_off0 << s->ps.sps->pixel_shift); s 1687 libavcodec/hevcdec.c src2 += y_off1 * src2stride + (int)((unsigned)x_off1 << s->ps.sps->pixel_shift); s 1692 libavcodec/hevcdec.c const int edge_emu_stride = EDGE_EMU_BUFFER_STRIDE << s->ps.sps->pixel_shift; s 1693 libavcodec/hevcdec.c int offset1 = EPEL_EXTRA_BEFORE * (src1stride + (1 << s->ps.sps->pixel_shift)); s 1695 libavcodec/hevcdec.c (edge_emu_stride + (1 << s->ps.sps->pixel_shift)); s 1697 libavcodec/hevcdec.c s->vdsp.emulated_edge_mc(lc->edge_emu_buffer, src1 - offset1, s 1711 libavcodec/hevcdec.c const int edge_emu_stride = EDGE_EMU_BUFFER_STRIDE << s->ps.sps->pixel_shift; s 1712 libavcodec/hevcdec.c int offset1 = EPEL_EXTRA_BEFORE * (src2stride + (1 << s->ps.sps->pixel_shift)); s 1714 libavcodec/hevcdec.c (edge_emu_stride + (1 << s->ps.sps->pixel_shift)); s 1716 libavcodec/hevcdec.c s->vdsp.emulated_edge_mc(lc->edge_emu_buffer2, src2 - offset1, s 1727 libavcodec/hevcdec.c s->hevcdsp.put_hevc_epel[idx][!!my0][!!mx0](lc->tmp, src1, src1stride, s 1730 libavcodec/hevcdec.c s->hevcdsp.put_hevc_epel_bi[idx][!!my1][!!mx1](dst0, s->frame->linesize[cidx+1], s 1734 libavcodec/hevcdec.c s->hevcdsp.put_hevc_epel_bi_w[idx][!!my1][!!mx1](dst0, s->frame->linesize[cidx+1], s 1737 libavcodec/hevcdec.c s->sh.chroma_log2_weight_denom, s 1738 libavcodec/hevcdec.c s->sh.chroma_weight_l0[current_mv->ref_idx[0]][cidx], s 1739 libavcodec/hevcdec.c s->sh.chroma_weight_l1[current_mv->ref_idx[1]][cidx], s 1740 libavcodec/hevcdec.c s->sh.chroma_offset_l0[current_mv->ref_idx[0]][cidx], s 1741 libavcodec/hevcdec.c s->sh.chroma_offset_l1[current_mv->ref_idx[1]][cidx], s 1745 libavcodec/hevcdec.c static void hevc_await_progress(HEVCContext *s, HEVCFrame *ref, s 1748 libavcodec/hevcdec.c if (s->threads_type == FF_THREAD_FRAME ) { s 1755 libavcodec/hevcdec.c static void hevc_luma_mv_mvp_mode(HEVCContext *s, int x0, int y0, int nPbW, s 1759 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1763 libavcodec/hevcdec.c ff_hevc_set_neighbour_available(s, x0, y0, nPbW, nPbH); s 1765 libavcodec/hevcdec.c if (s->sh.slice_type == HEVC_SLICE_B) s 1766 libavcodec/hevcdec.c inter_pred_idc = ff_hevc_inter_pred_idc_decode(s, nPbW, nPbH); s 1769 libavcodec/hevcdec.c if (s->sh.nb_refs[L0]) s 1770 libavcodec/hevcdec.c mv->ref_idx[0]= ff_hevc_ref_idx_lx_decode(s, s->sh.nb_refs[L0]); s 1773 libavcodec/hevcdec.c ff_hevc_hls_mvd_coding(s, x0, y0, 0); s 1774 libavcodec/hevcdec.c mvp_flag = ff_hevc_mvp_lx_flag_decode(s); s 1775 libavcodec/hevcdec.c ff_hevc_luma_mv_mvp_mode(s, x0, y0, nPbW, nPbH, log2_cb_size, s 1782 libavcodec/hevcdec.c if (s->sh.nb_refs[L1]) s 1783 libavcodec/hevcdec.c mv->ref_idx[1]= ff_hevc_ref_idx_lx_decode(s, s->sh.nb_refs[L1]); s 1785 libavcodec/hevcdec.c if (s->sh.mvd_l1_zero_flag == 1 && inter_pred_idc == PRED_BI) { s 1788 libavcodec/hevcdec.c ff_hevc_hls_mvd_coding(s, x0, y0, 1); s 1792 libavcodec/hevcdec.c mvp_flag = ff_hevc_mvp_lx_flag_decode(s); s 1793 libavcodec/hevcdec.c ff_hevc_luma_mv_mvp_mode(s, x0, y0, nPbW, nPbH, log2_cb_size, s 1800 libavcodec/hevcdec.c static void hls_prediction_unit(HEVCContext *s, int x0, int y0, s 1805 libavcodec/hevcdec.c &s->frame->data[c_idx][((y) >> s->ps.sps->vshift[c_idx]) * s->frame->linesize[c_idx] + \ s 1806 libavcodec/hevcdec.c (((x) >> s->ps.sps->hshift[c_idx]) << s->ps.sps->pixel_shift)] s 1807 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1811 libavcodec/hevcdec.c int min_pu_width = s->ps.sps->min_pu_width; s 1813 libavcodec/hevcdec.c MvField *tab_mvf = s->ref->tab_mvf; s 1814 libavcodec/hevcdec.c RefPicList *refPicList = s->ref->refPicList; s 1819 libavcodec/hevcdec.c int log2_min_cb_size = s->ps.sps->log2_min_cb_size; s 1820 libavcodec/hevcdec.c int min_cb_width = s->ps.sps->min_cb_width; s 1826 libavcodec/hevcdec.c int skip_flag = SAMPLE_CTB(s->skip_flag, x_cb, y_cb); s 1829 libavcodec/hevcdec.c lc->pu.merge_flag = ff_hevc_merge_flag_decode(s); s 1832 libavcodec/hevcdec.c if (s->sh.max_num_merge_cand > 1) s 1833 libavcodec/hevcdec.c merge_idx = ff_hevc_merge_idx_decode(s); s 1837 libavcodec/hevcdec.c ff_hevc_luma_mv_merge_mode(s, x0, y0, nPbW, nPbH, log2_cb_size, s 1840 libavcodec/hevcdec.c hevc_luma_mv_mvp_mode(s, x0, y0, nPbW, nPbH, log2_cb_size, s 1844 libavcodec/hevcdec.c x_pu = x0 >> s->ps.sps->log2_min_pu_size; s 1845 libavcodec/hevcdec.c y_pu = y0 >> s->ps.sps->log2_min_pu_size; s 1847 libavcodec/hevcdec.c for (j = 0; j < nPbH >> s->ps.sps->log2_min_pu_size; j++) s 1848 libavcodec/hevcdec.c for (i = 0; i < nPbW >> s->ps.sps->log2_min_pu_size; i++) s 1855 libavcodec/hevcdec.c hevc_await_progress(s, ref0, ¤t_mv.mv[0], y0, nPbH); s 1861 libavcodec/hevcdec.c hevc_await_progress(s, ref1, ¤t_mv.mv[1], y0, nPbH); s 1865 libavcodec/hevcdec.c int x0_c = x0 >> s->ps.sps->hshift[1]; s 1866 libavcodec/hevcdec.c int y0_c = y0 >> s->ps.sps->vshift[1]; s 1867 libavcodec/hevcdec.c int nPbW_c = nPbW >> s->ps.sps->hshift[1]; s 1868 libavcodec/hevcdec.c int nPbH_c = nPbH >> s->ps.sps->vshift[1]; s 1870 libavcodec/hevcdec.c luma_mc_uni(s, dst0, s->frame->linesize[0], ref0->frame, s 1872 libavcodec/hevcdec.c s->sh.luma_weight_l0[current_mv.ref_idx[0]], s 1873 libavcodec/hevcdec.c s->sh.luma_offset_l0[current_mv.ref_idx[0]]); s 1875 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc) { s 1876 libavcodec/hevcdec.c chroma_mc_uni(s, dst1, s->frame->linesize[1], ref0->frame->data[1], ref0->frame->linesize[1], s 1878 libavcodec/hevcdec.c s->sh.chroma_weight_l0[current_mv.ref_idx[0]][0], s->sh.chroma_offset_l0[current_mv.ref_idx[0]][0]); s 1879 libavcodec/hevcdec.c chroma_mc_uni(s, dst2, s->frame->linesize[2], ref0->frame->data[2], ref0->frame->linesize[2], s 1881 libavcodec/hevcdec.c s->sh.chroma_weight_l0[current_mv.ref_idx[0]][1], s->sh.chroma_offset_l0[current_mv.ref_idx[0]][1]); s 1884 libavcodec/hevcdec.c int x0_c = x0 >> s->ps.sps->hshift[1]; s 1885 libavcodec/hevcdec.c int y0_c = y0 >> s->ps.sps->vshift[1]; s 1886 libavcodec/hevcdec.c int nPbW_c = nPbW >> s->ps.sps->hshift[1]; s 1887 libavcodec/hevcdec.c int nPbH_c = nPbH >> s->ps.sps->vshift[1]; s 1889 libavcodec/hevcdec.c luma_mc_uni(s, dst0, s->frame->linesize[0], ref1->frame, s 1891 libavcodec/hevcdec.c s->sh.luma_weight_l1[current_mv.ref_idx[1]], s 1892 libavcodec/hevcdec.c s->sh.luma_offset_l1[current_mv.ref_idx[1]]); s 1894 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc) { s 1895 libavcodec/hevcdec.c chroma_mc_uni(s, dst1, s->frame->linesize[1], ref1->frame->data[1], ref1->frame->linesize[1], s 1897 libavcodec/hevcdec.c s->sh.chroma_weight_l1[current_mv.ref_idx[1]][0], s->sh.chroma_offset_l1[current_mv.ref_idx[1]][0]); s 1899 libavcodec/hevcdec.c chroma_mc_uni(s, dst2, s->frame->linesize[2], ref1->frame->data[2], ref1->frame->linesize[2], s 1901 libavcodec/hevcdec.c s->sh.chroma_weight_l1[current_mv.ref_idx[1]][1], s->sh.chroma_offset_l1[current_mv.ref_idx[1]][1]); s 1904 libavcodec/hevcdec.c int x0_c = x0 >> s->ps.sps->hshift[1]; s 1905 libavcodec/hevcdec.c int y0_c = y0 >> s->ps.sps->vshift[1]; s 1906 libavcodec/hevcdec.c int nPbW_c = nPbW >> s->ps.sps->hshift[1]; s 1907 libavcodec/hevcdec.c int nPbH_c = nPbH >> s->ps.sps->vshift[1]; s 1909 libavcodec/hevcdec.c luma_mc_bi(s, dst0, s->frame->linesize[0], ref0->frame, s 1913 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc) { s 1914 libavcodec/hevcdec.c chroma_mc_bi(s, dst1, s->frame->linesize[1], ref0->frame, ref1->frame, s 1917 libavcodec/hevcdec.c chroma_mc_bi(s, dst2, s->frame->linesize[2], ref0->frame, ref1->frame, s 1926 libavcodec/hevcdec.c static int luma_intra_pred_mode(HEVCContext *s, int x0, int y0, int pu_size, s 1929 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 1930 libavcodec/hevcdec.c int x_pu = x0 >> s->ps.sps->log2_min_pu_size; s 1931 libavcodec/hevcdec.c int y_pu = y0 >> s->ps.sps->log2_min_pu_size; s 1932 libavcodec/hevcdec.c int min_pu_width = s->ps.sps->min_pu_width; s 1933 libavcodec/hevcdec.c int size_in_pus = pu_size >> s->ps.sps->log2_min_pu_size; s 1934 libavcodec/hevcdec.c int x0b = av_mod_uintp2(x0, s->ps.sps->log2_ctb_size); s 1935 libavcodec/hevcdec.c int y0b = av_mod_uintp2(y0, s->ps.sps->log2_ctb_size); s 1938 libavcodec/hevcdec.c s->tab_ipm[(y_pu - 1) * min_pu_width + x_pu] : INTRA_DC; s 1940 libavcodec/hevcdec.c s->tab_ipm[y_pu * min_pu_width + x_pu - 1] : INTRA_DC; s 1942 libavcodec/hevcdec.c int y_ctb = (y0 >> (s->ps.sps->log2_ctb_size)) << (s->ps.sps->log2_ctb_size); s 1944 libavcodec/hevcdec.c MvField *tab_mvf = s->ref->tab_mvf; s 1995 libavcodec/hevcdec.c memset(&s->tab_ipm[(y_pu + i) * min_pu_width + x_pu], s 2006 libavcodec/hevcdec.c static av_always_inline void set_ct_depth(HEVCContext *s, int x0, int y0, s 2009 libavcodec/hevcdec.c int length = (1 << log2_cb_size) >> s->ps.sps->log2_min_cb_size; s 2010 libavcodec/hevcdec.c int x_cb = x0 >> s->ps.sps->log2_min_cb_size; s 2011 libavcodec/hevcdec.c int y_cb = y0 >> s->ps.sps->log2_min_cb_size; s 2015 libavcodec/hevcdec.c memset(&s->tab_ct_depth[(y_cb + y) * s->ps.sps->min_cb_width + x_cb], s 2023 libavcodec/hevcdec.c static void intra_prediction_unit(HEVCContext *s, int x0, int y0, s 2026 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 2037 libavcodec/hevcdec.c prev_intra_luma_pred_flag[2 * i + j] = ff_hevc_prev_intra_luma_pred_flag_decode(s); s 2042 libavcodec/hevcdec.c lc->pu.mpm_idx = ff_hevc_mpm_idx_decode(s); s 2044 libavcodec/hevcdec.c lc->pu.rem_intra_luma_pred_mode = ff_hevc_rem_intra_luma_pred_mode_decode(s); s 2047 libavcodec/hevcdec.c luma_intra_pred_mode(s, x0 + pb_size * j, y0 + pb_size * i, pb_size, s 2052 libavcodec/hevcdec.c if (s->ps.sps->chroma_format_idc == 3) { s 2055 libavcodec/hevcdec.c lc->pu.chroma_mode_c[2 * i + j] = chroma_mode = ff_hevc_intra_chroma_pred_mode_decode(s); s 2066 libavcodec/hevcdec.c } else if (s->ps.sps->chroma_format_idc == 2) { s 2068 libavcodec/hevcdec.c lc->pu.chroma_mode_c[0] = chroma_mode = ff_hevc_intra_chroma_pred_mode_decode(s); s 2078 libavcodec/hevcdec.c } else if (s->ps.sps->chroma_format_idc != 0) { s 2079 libavcodec/hevcdec.c chroma_mode = ff_hevc_intra_chroma_pred_mode_decode(s); s 2091 libavcodec/hevcdec.c static void intra_prediction_unit_default_value(HEVCContext *s, s 2095 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 2097 libavcodec/hevcdec.c int size_in_pus = pb_size >> s->ps.sps->log2_min_pu_size; s 2098 libavcodec/hevcdec.c int min_pu_width = s->ps.sps->min_pu_width; s 2099 libavcodec/hevcdec.c MvField *tab_mvf = s->ref->tab_mvf; s 2100 libavcodec/hevcdec.c int x_pu = x0 >> s->ps.sps->log2_min_pu_size; s 2101 libavcodec/hevcdec.c int y_pu = y0 >> s->ps.sps->log2_min_pu_size; s 2107 libavcodec/hevcdec.c memset(&s->tab_ipm[(y_pu + j) * min_pu_width + x_pu], INTRA_DC, size_in_pus); s 2114 libavcodec/hevcdec.c static int hls_coding_unit(HEVCContext *s, int x0, int y0, int log2_cb_size) s 2117 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 2118 libavcodec/hevcdec.c int log2_min_cb_size = s->ps.sps->log2_min_cb_size; s 2120 libavcodec/hevcdec.c int min_cb_width = s->ps.sps->min_cb_width; s 2124 libavcodec/hevcdec.c int qp_block_mask = (1<<(s->ps.sps->log2_ctb_size - s->ps.pps->diff_cu_qp_delta_depth)) - 1; s 2133 libavcodec/hevcdec.c SAMPLE_CTB(s->skip_flag, x_cb, y_cb) = 0; s 2136 libavcodec/hevcdec.c if (s->ps.pps->transquant_bypass_enable_flag) { s 2137 libavcodec/hevcdec.c lc->cu.cu_transquant_bypass_flag = ff_hevc_cu_transquant_bypass_flag_decode(s); s 2139 libavcodec/hevcdec.c set_deblocking_bypass(s, x0, y0, log2_cb_size); s 2143 libavcodec/hevcdec.c if (s->sh.slice_type != HEVC_SLICE_I) { s 2144 libavcodec/hevcdec.c uint8_t skip_flag = ff_hevc_skip_flag_decode(s, x0, y0, x_cb, y_cb); s 2148 libavcodec/hevcdec.c memset(&s->skip_flag[x], skip_flag, length); s 2155 libavcodec/hevcdec.c memset(&s->skip_flag[x], 0, length); s 2160 libavcodec/hevcdec.c if (SAMPLE_CTB(s->skip_flag, x_cb, y_cb)) { s 2161 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0, cb_size, cb_size, log2_cb_size, 0, idx); s 2162 libavcodec/hevcdec.c intra_prediction_unit_default_value(s, x0, y0, log2_cb_size); s 2164 libavcodec/hevcdec.c if (!s->sh.disable_deblocking_filter_flag) s 2165 libavcodec/hevcdec.c ff_hevc_deblocking_boundary_strengths(s, x0, y0, log2_cb_size); s 2169 libavcodec/hevcdec.c if (s->sh.slice_type != HEVC_SLICE_I) s 2170 libavcodec/hevcdec.c lc->cu.pred_mode = ff_hevc_pred_mode_decode(s); s 2172 libavcodec/hevcdec.c log2_cb_size == s->ps.sps->log2_min_cb_size) { s 2173 libavcodec/hevcdec.c lc->cu.part_mode = ff_hevc_part_mode_decode(s, log2_cb_size); s 2179 libavcodec/hevcdec.c if (lc->cu.part_mode == PART_2Nx2N && s->ps.sps->pcm_enabled_flag && s 2180 libavcodec/hevcdec.c log2_cb_size >= s->ps.sps->pcm.log2_min_pcm_cb_size && s 2181 libavcodec/hevcdec.c log2_cb_size <= s->ps.sps->pcm.log2_max_pcm_cb_size) { s 2182 libavcodec/hevcdec.c pcm_flag = ff_hevc_pcm_flag_decode(s); s 2185 libavcodec/hevcdec.c intra_prediction_unit_default_value(s, x0, y0, log2_cb_size); s 2186 libavcodec/hevcdec.c ret = hls_pcm_sample(s, x0, y0, log2_cb_size); s 2187 libavcodec/hevcdec.c if (s->ps.sps->pcm.loop_filter_disable_flag) s 2188 libavcodec/hevcdec.c set_deblocking_bypass(s, x0, y0, log2_cb_size); s 2193 libavcodec/hevcdec.c intra_prediction_unit(s, x0, y0, log2_cb_size); s 2196 libavcodec/hevcdec.c intra_prediction_unit_default_value(s, x0, y0, log2_cb_size); s 2199 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0, cb_size, cb_size, log2_cb_size, 0, idx); s 2202 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0, cb_size, cb_size / 2, log2_cb_size, 0, idx); s 2203 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0 + cb_size / 2, cb_size, cb_size / 2, log2_cb_size, 1, idx); s 2206 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0, cb_size / 2, cb_size, log2_cb_size, 0, idx - 1); s 2207 libavcodec/hevcdec.c hls_prediction_unit(s, x0 + cb_size / 2, y0, cb_size / 2, cb_size, log2_cb_size, 1, idx - 1); s 2210 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0, cb_size, cb_size / 4, log2_cb_size, 0, idx); s 2211 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0 + cb_size / 4, cb_size, cb_size * 3 / 4, log2_cb_size, 1, idx); s 2214 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0, cb_size, cb_size * 3 / 4, log2_cb_size, 0, idx); s 2215 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0 + cb_size * 3 / 4, cb_size, cb_size / 4, log2_cb_size, 1, idx); s 2218 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0, cb_size / 4, cb_size, log2_cb_size, 0, idx - 2); s 2219 libavcodec/hevcdec.c hls_prediction_unit(s, x0 + cb_size / 4, y0, cb_size * 3 / 4, cb_size, log2_cb_size, 1, idx - 2); s 2222 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0, cb_size * 3 / 4, cb_size, log2_cb_size, 0, idx - 2); s 2223 libavcodec/hevcdec.c hls_prediction_unit(s, x0 + cb_size * 3 / 4, y0, cb_size / 4, cb_size, log2_cb_size, 1, idx - 2); s 2226 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0, cb_size / 2, cb_size / 2, log2_cb_size, 0, idx - 1); s 2227 libavcodec/hevcdec.c hls_prediction_unit(s, x0 + cb_size / 2, y0, cb_size / 2, cb_size / 2, log2_cb_size, 1, idx - 1); s 2228 libavcodec/hevcdec.c hls_prediction_unit(s, x0, y0 + cb_size / 2, cb_size / 2, cb_size / 2, log2_cb_size, 2, idx - 1); s 2229 libavcodec/hevcdec.c hls_prediction_unit(s, x0 + cb_size / 2, y0 + cb_size / 2, cb_size / 2, cb_size / 2, log2_cb_size, 3, idx - 1); s 2239 libavcodec/hevcdec.c rqt_root_cbf = ff_hevc_no_residual_syntax_flag_decode(s); s 2244 libavcodec/hevcdec.c s->ps.sps->max_transform_hierarchy_depth_intra + lc->cu.intra_split_flag : s 2245 libavcodec/hevcdec.c s->ps.sps->max_transform_hierarchy_depth_inter; s 2246 libavcodec/hevcdec.c ret = hls_transform_tree(s, x0, y0, x0, y0, x0, y0, s 2252 libavcodec/hevcdec.c if (!s->sh.disable_deblocking_filter_flag) s 2253 libavcodec/hevcdec.c ff_hevc_deblocking_boundary_strengths(s, x0, y0, log2_cb_size); s 2258 libavcodec/hevcdec.c if (s->ps.pps->cu_qp_delta_enabled_flag && lc->tu.is_cu_qp_delta_coded == 0) s 2259 libavcodec/hevcdec.c ff_hevc_set_qPy(s, x0, y0, log2_cb_size); s 2263 libavcodec/hevcdec.c memset(&s->qp_y_tab[x], lc->qp_y, length); s 2272 libavcodec/hevcdec.c set_ct_depth(s, x0, y0, log2_cb_size, lc->ct_depth); s 2277 libavcodec/hevcdec.c static int hls_coding_quadtree(HEVCContext *s, int x0, int y0, s 2280 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 2286 libavcodec/hevcdec.c if (x0 + cb_size <= s->ps.sps->width && s 2287 libavcodec/hevcdec.c y0 + cb_size <= s->ps.sps->height && s 2288 libavcodec/hevcdec.c log2_cb_size > s->ps.sps->log2_min_cb_size) { s 2289 libavcodec/hevcdec.c split_cu = ff_hevc_split_coding_unit_flag_decode(s, cb_depth, x0, y0); s 2291 libavcodec/hevcdec.c split_cu = (log2_cb_size > s->ps.sps->log2_min_cb_size); s 2293 libavcodec/hevcdec.c if (s->ps.pps->cu_qp_delta_enabled_flag && s 2294 libavcodec/hevcdec.c log2_cb_size >= s->ps.sps->log2_ctb_size - s->ps.pps->diff_cu_qp_delta_depth) { s 2299 libavcodec/hevcdec.c if (s->sh.cu_chroma_qp_offset_enabled_flag && s 2300 libavcodec/hevcdec.c log2_cb_size >= s->ps.sps->log2_ctb_size - s->ps.pps->diff_cu_chroma_qp_offset_depth) { s 2305 libavcodec/hevcdec.c int qp_block_mask = (1<<(s->ps.sps->log2_ctb_size - s->ps.pps->diff_cu_qp_delta_depth)) - 1; s 2312 libavcodec/hevcdec.c more_data = hls_coding_quadtree(s, x0, y0, log2_cb_size - 1, cb_depth + 1); s 2316 libavcodec/hevcdec.c if (more_data && x1 < s->ps.sps->width) { s 2317 libavcodec/hevcdec.c more_data = hls_coding_quadtree(s, x1, y0, log2_cb_size - 1, cb_depth + 1); s 2321 libavcodec/hevcdec.c if (more_data && y1 < s->ps.sps->height) { s 2322 libavcodec/hevcdec.c more_data = hls_coding_quadtree(s, x0, y1, log2_cb_size - 1, cb_depth + 1); s 2326 libavcodec/hevcdec.c if (more_data && x1 < s->ps.sps->width && s 2327 libavcodec/hevcdec.c y1 < s->ps.sps->height) { s 2328 libavcodec/hevcdec.c more_data = hls_coding_quadtree(s, x1, y1, log2_cb_size - 1, cb_depth + 1); s 2338 libavcodec/hevcdec.c return ((x1 + cb_size_split) < s->ps.sps->width || s 2339 libavcodec/hevcdec.c (y1 + cb_size_split) < s->ps.sps->height); s 2343 libavcodec/hevcdec.c ret = hls_coding_unit(s, x0, y0, log2_cb_size); s 2347 libavcodec/hevcdec.c (1 << (s->ps.sps->log2_ctb_size))) || s 2348 libavcodec/hevcdec.c (x0 + cb_size >= s->ps.sps->width)) && s 2350 libavcodec/hevcdec.c (1 << (s->ps.sps->log2_ctb_size))) || s 2351 libavcodec/hevcdec.c (y0 + cb_size >= s->ps.sps->height))) { s 2352 libavcodec/hevcdec.c int end_of_slice_flag = ff_hevc_end_of_slice_flag_decode(s); s 2362 libavcodec/hevcdec.c static void hls_decode_neighbour(HEVCContext *s, int x_ctb, int y_ctb, s 2365 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 2366 libavcodec/hevcdec.c int ctb_size = 1 << s->ps.sps->log2_ctb_size; s 2367 libavcodec/hevcdec.c int ctb_addr_rs = s->ps.pps->ctb_addr_ts_to_rs[ctb_addr_ts]; s 2368 libavcodec/hevcdec.c int ctb_addr_in_slice = ctb_addr_rs - s->sh.slice_addr; s 2370 libavcodec/hevcdec.c s->tab_slice_address[ctb_addr_rs] = s->sh.slice_addr; s 2372 libavcodec/hevcdec.c if (s->ps.pps->entropy_coding_sync_enabled_flag) { s 2375 libavcodec/hevcdec.c lc->end_of_tiles_x = s->ps.sps->width; s 2376 libavcodec/hevcdec.c } else if (s->ps.pps->tiles_enabled_flag) { s 2377 libavcodec/hevcdec.c if (ctb_addr_ts && s->ps.pps->tile_id[ctb_addr_ts] != s->ps.pps->tile_id[ctb_addr_ts - 1]) { s 2378 libavcodec/hevcdec.c int idxX = s->ps.pps->col_idxX[x_ctb >> s->ps.sps->log2_ctb_size]; s 2379 libavcodec/hevcdec.c lc->end_of_tiles_x = x_ctb + (s->ps.pps->column_width[idxX] << s->ps.sps->log2_ctb_size); s 2383 libavcodec/hevcdec.c lc->end_of_tiles_x = s->ps.sps->width; s 2386 libavcodec/hevcdec.c lc->end_of_tiles_y = FFMIN(y_ctb + ctb_size, s->ps.sps->height); s 2389 libavcodec/hevcdec.c if (s->ps.pps->tiles_enabled_flag) { s 2390 libavcodec/hevcdec.c if (x_ctb > 0 && s->ps.pps->tile_id[ctb_addr_ts] != s->ps.pps->tile_id[s->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs - 1]]) s 2392 libavcodec/hevcdec.c if (x_ctb > 0 && s->tab_slice_address[ctb_addr_rs] != s->tab_slice_address[ctb_addr_rs - 1]) s 2394 libavcodec/hevcdec.c if (y_ctb > 0 && s->ps.pps->tile_id[ctb_addr_ts] != s->ps.pps->tile_id[s->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs - s->ps.sps->ctb_width]]) s 2396 libavcodec/hevcdec.c if (y_ctb > 0 && s->tab_slice_address[ctb_addr_rs] != s->tab_slice_address[ctb_addr_rs - s->ps.sps->ctb_width]) s 2401 libavcodec/hevcdec.c if (ctb_addr_in_slice < s->ps.sps->ctb_width) s 2406 libavcodec/hevcdec.c lc->ctb_up_flag = ((y_ctb > 0) && (ctb_addr_in_slice >= s->ps.sps->ctb_width) && !(lc->boundary_flags & BOUNDARY_UPPER_TILE)); s 2407 libavcodec/hevcdec.c lc->ctb_up_right_flag = ((y_ctb > 0) && (ctb_addr_in_slice+1 >= s->ps.sps->ctb_width) && (s->ps.pps->tile_id[ctb_addr_ts] == s->ps.pps->tile_id[s->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs+1 - s->ps.sps->ctb_width]])); s 2408 libavcodec/hevcdec.c lc->ctb_up_left_flag = ((x_ctb > 0) && (y_ctb > 0) && (ctb_addr_in_slice-1 >= s->ps.sps->ctb_width) && (s->ps.pps->tile_id[ctb_addr_ts] == s->ps.pps->tile_id[s->ps.pps->ctb_addr_rs_to_ts[ctb_addr_rs-1 - s->ps.sps->ctb_width]])); s 2413 libavcodec/hevcdec.c HEVCContext *s = avctxt->priv_data; s 2414 libavcodec/hevcdec.c int ctb_size = 1 << s->ps.sps->log2_ctb_size; s 2418 libavcodec/hevcdec.c int ctb_addr_ts = s->ps.pps->ctb_addr_rs_to_ts[s->sh.slice_ctb_addr_rs]; s 2421 libavcodec/hevcdec.c if (!ctb_addr_ts && s->sh.dependent_slice_segment_flag) { s 2422 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Impossible initial tile.\n"); s 2426 libavcodec/hevcdec.c if (s->sh.dependent_slice_segment_flag) { s 2427 libavcodec/hevcdec.c int prev_rs = s->ps.pps->ctb_addr_ts_to_rs[ctb_addr_ts - 1]; s 2428 libavcodec/hevcdec.c if (s->tab_slice_address[prev_rs] != s->sh.slice_addr) { s 2429 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Previous slice segment missing\n"); s 2434 libavcodec/hevcdec.c while (more_data && ctb_addr_ts < s->ps.sps->ctb_size) { s 2435 libavcodec/hevcdec.c int ctb_addr_rs = s->ps.pps->ctb_addr_ts_to_rs[ctb_addr_ts]; s 2437 libavcodec/hevcdec.c x_ctb = (ctb_addr_rs % ((s->ps.sps->width + ctb_size - 1) >> s->ps.sps->log2_ctb_size)) << s->ps.sps->log2_ctb_size; s 2438 libavcodec/hevcdec.c y_ctb = (ctb_addr_rs / ((s->ps.sps->width + ctb_size - 1) >> s->ps.sps->log2_ctb_size)) << s->ps.sps->log2_ctb_size; s 2439 libavcodec/hevcdec.c hls_decode_neighbour(s, x_ctb, y_ctb, ctb_addr_ts); s 2441 libavcodec/hevcdec.c ret = ff_hevc_cabac_init(s, ctb_addr_ts); s 2443 libavcodec/hevcdec.c s->tab_slice_address[ctb_addr_rs] = -1; s 2447 libavcodec/hevcdec.c hls_sao_param(s, x_ctb >> s->ps.sps->log2_ctb_size, y_ctb >> s->ps.sps->log2_ctb_size); s 2449 libavcodec/hevcdec.c s->deblock[ctb_addr_rs].beta_offset = s->sh.beta_offset; s 2450 libavcodec/hevcdec.c s->deblock[ctb_addr_rs].tc_offset = s->sh.tc_offset; s 2451 libavcodec/hevcdec.c s->filter_slice_edges[ctb_addr_rs] = s->sh.slice_loop_filter_across_slices_enabled_flag; s 2453 libavcodec/hevcdec.c more_data = hls_coding_quadtree(s, x_ctb, y_ctb, s->ps.sps->log2_ctb_size, 0); s 2455 libavcodec/hevcdec.c s->tab_slice_address[ctb_addr_rs] = -1; s 2461 libavcodec/hevcdec.c ff_hevc_save_states(s, ctb_addr_ts); s 2462 libavcodec/hevcdec.c ff_hevc_hls_filters(s, x_ctb, y_ctb, ctb_size); s 2465 libavcodec/hevcdec.c if (x_ctb + ctb_size >= s->ps.sps->width && s 2466 libavcodec/hevcdec.c y_ctb + ctb_size >= s->ps.sps->height) s 2467 libavcodec/hevcdec.c ff_hevc_hls_filter(s, x_ctb, y_ctb, ctb_size); s 2472 libavcodec/hevcdec.c static int hls_slice_data(HEVCContext *s) s 2480 libavcodec/hevcdec.c s->avctx->execute(s->avctx, hls_decode_entry, arg, ret , 1, sizeof(int)); s 2485 libavcodec/hevcdec.c HEVCContext *s1 = avctxt->priv_data, *s; s 2496 libavcodec/hevcdec.c s = s1->sList[self_id]; s 2497 libavcodec/hevcdec.c lc = s->HEVClc; s 2500 libavcodec/hevcdec.c ret = init_get_bits8(&lc->gb, s->data + s->sh.offset[ctb_row - 1], s->sh.size[ctb_row - 1]); s 2503 libavcodec/hevcdec.c ff_init_cabac_decoder(&lc->cc, s->data + s->sh.offset[(ctb_row)-1], s->sh.size[ctb_row - 1]); s 2506 libavcodec/hevcdec.c while(more_data && ctb_addr_ts < s->ps.sps->ctb_size) { s 2507 libavcodec/hevcdec.c int x_ctb = (ctb_addr_rs % s->ps.sps->ctb_width) << s->ps.sps->log2_ctb_size; s 2508 libavcodec/hevcdec.c int y_ctb = (ctb_addr_rs / s->ps.sps->ctb_width) << s->ps.sps->log2_ctb_size; s 2510 libavcodec/hevcdec.c hls_decode_neighbour(s, x_ctb, y_ctb, ctb_addr_ts); s 2512 libavcodec/hevcdec.c ff_thread_await_progress2(s->avctx, ctb_row, thread, SHIFT_CTB_WPP); s 2515 libavcodec/hevcdec.c ff_thread_report_progress2(s->avctx, ctb_row , thread, SHIFT_CTB_WPP); s 2519 libavcodec/hevcdec.c ret = ff_hevc_cabac_init(s, ctb_addr_ts); s 2522 libavcodec/hevcdec.c hls_sao_param(s, x_ctb >> s->ps.sps->log2_ctb_size, y_ctb >> s->ps.sps->log2_ctb_size); s 2523 libavcodec/hevcdec.c more_data = hls_coding_quadtree(s, x_ctb, y_ctb, s->ps.sps->log2_ctb_size, 0); s 2532 libavcodec/hevcdec.c ff_hevc_save_states(s, ctb_addr_ts); s 2533 libavcodec/hevcdec.c ff_thread_report_progress2(s->avctx, ctb_row, thread, 1); s 2534 libavcodec/hevcdec.c ff_hevc_hls_filters(s, x_ctb, y_ctb, ctb_size); s 2536 libavcodec/hevcdec.c if (!more_data && (x_ctb+ctb_size) < s->ps.sps->width && ctb_row != s->sh.num_entry_point_offsets) { s 2538 libavcodec/hevcdec.c ff_thread_report_progress2(s->avctx, ctb_row ,thread, SHIFT_CTB_WPP); s 2542 libavcodec/hevcdec.c if ((x_ctb+ctb_size) >= s->ps.sps->width && (y_ctb+ctb_size) >= s->ps.sps->height ) { s 2543 libavcodec/hevcdec.c ff_hevc_hls_filter(s, x_ctb, y_ctb, ctb_size); s 2544 libavcodec/hevcdec.c ff_thread_report_progress2(s->avctx, ctb_row , thread, SHIFT_CTB_WPP); s 2547 libavcodec/hevcdec.c ctb_addr_rs = s->ps.pps->ctb_addr_ts_to_rs[ctb_addr_ts]; s 2550 libavcodec/hevcdec.c if(x_ctb >= s->ps.sps->width) { s 2554 libavcodec/hevcdec.c ff_thread_report_progress2(s->avctx, ctb_row ,thread, SHIFT_CTB_WPP); s 2558 libavcodec/hevcdec.c s->tab_slice_address[ctb_addr_rs] = -1; s 2560 libavcodec/hevcdec.c ff_thread_report_progress2(s->avctx, ctb_row ,thread, SHIFT_CTB_WPP); s 2564 libavcodec/hevcdec.c static int hls_slice_data_wpp(HEVCContext *s, const H2645NAL *nal) s 2568 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 2569 libavcodec/hevcdec.c int *ret = av_malloc_array(s->sh.num_entry_point_offsets + 1, sizeof(int)); s 2570 libavcodec/hevcdec.c int *arg = av_malloc_array(s->sh.num_entry_point_offsets + 1, sizeof(int)); s 2581 libavcodec/hevcdec.c if (s->sh.slice_ctb_addr_rs + s->sh.num_entry_point_offsets * s->ps.sps->ctb_width >= s->ps.sps->ctb_width * s->ps.sps->ctb_height) { s 2582 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "WPP ctb addresses are wrong (%d %d %d %d)\n", s 2583 libavcodec/hevcdec.c s->sh.slice_ctb_addr_rs, s->sh.num_entry_point_offsets, s 2584 libavcodec/hevcdec.c s->ps.sps->ctb_width, s->ps.sps->ctb_height s 2590 libavcodec/hevcdec.c ff_alloc_entries(s->avctx, s->sh.num_entry_point_offsets + 1); s 2592 libavcodec/hevcdec.c if (!s->sList[1]) { s 2593 libavcodec/hevcdec.c for (i = 1; i < s->threads_number; i++) { s 2594 libavcodec/hevcdec.c s->sList[i] = av_malloc(sizeof(HEVCContext)); s 2595 libavcodec/hevcdec.c memcpy(s->sList[i], s, sizeof(HEVCContext)); s 2596 libavcodec/hevcdec.c s->HEVClcList[i] = av_mallocz(sizeof(HEVCLocalContext)); s 2597 libavcodec/hevcdec.c s->sList[i]->HEVClc = s->HEVClcList[i]; s 2603 libavcodec/hevcdec.c for (j = 0, cmpt = 0, startheader = offset + s->sh.entry_point_offset[0]; j < nal->skipped_bytes; j++) { s 2610 libavcodec/hevcdec.c for (i = 1; i < s->sh.num_entry_point_offsets; i++) { s 2611 libavcodec/hevcdec.c offset += (s->sh.entry_point_offset[i - 1] - cmpt); s 2613 libavcodec/hevcdec.c + s->sh.entry_point_offset[i]; j < nal->skipped_bytes; j++) { s 2619 libavcodec/hevcdec.c s->sh.size[i - 1] = s->sh.entry_point_offset[i] - cmpt; s 2620 libavcodec/hevcdec.c s->sh.offset[i - 1] = offset; s 2623 libavcodec/hevcdec.c if (s->sh.num_entry_point_offsets != 0) { s 2624 libavcodec/hevcdec.c offset += s->sh.entry_point_offset[s->sh.num_entry_point_offsets - 1] - cmpt; s 2626 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "entry_point_offset table is corrupted\n"); s 2630 libavcodec/hevcdec.c s->sh.size[s->sh.num_entry_point_offsets - 1] = length - offset; s 2631 libavcodec/hevcdec.c s->sh.offset[s->sh.num_entry_point_offsets - 1] = offset; s 2634 libavcodec/hevcdec.c s->data = data; s 2636 libavcodec/hevcdec.c for (i = 1; i < s->threads_number; i++) { s 2637 libavcodec/hevcdec.c s->sList[i]->HEVClc->first_qp_group = 1; s 2638 libavcodec/hevcdec.c s->sList[i]->HEVClc->qp_y = s->sList[0]->HEVClc->qp_y; s 2639 libavcodec/hevcdec.c memcpy(s->sList[i], s, sizeof(HEVCContext)); s 2640 libavcodec/hevcdec.c s->sList[i]->HEVClc = s->HEVClcList[i]; s 2643 libavcodec/hevcdec.c atomic_store(&s->wpp_err, 0); s 2644 libavcodec/hevcdec.c ff_reset_entries(s->avctx); s 2646 libavcodec/hevcdec.c for (i = 0; i <= s->sh.num_entry_point_offsets; i++) { s 2651 libavcodec/hevcdec.c if (s->ps.pps->entropy_coding_sync_enabled_flag) s 2652 libavcodec/hevcdec.c s->avctx->execute2(s->avctx, hls_decode_entry_wpp, arg, ret, s->sh.num_entry_point_offsets + 1); s 2654 libavcodec/hevcdec.c for (i = 0; i <= s->sh.num_entry_point_offsets; i++) s 2662 libavcodec/hevcdec.c static int set_side_data(HEVCContext *s) s 2664 libavcodec/hevcdec.c AVFrame *out = s->ref->frame; s 2666 libavcodec/hevcdec.c if (s->sei.frame_packing.present && s 2667 libavcodec/hevcdec.c s->sei.frame_packing.arrangement_type >= 3 && s 2668 libavcodec/hevcdec.c s->sei.frame_packing.arrangement_type <= 5 && s 2669 libavcodec/hevcdec.c s->sei.frame_packing.content_interpretation_type > 0 && s 2670 libavcodec/hevcdec.c s->sei.frame_packing.content_interpretation_type < 3) { s 2675 libavcodec/hevcdec.c switch (s->sei.frame_packing.arrangement_type) { s 2677 libavcodec/hevcdec.c if (s->sei.frame_packing.quincunx_subsampling) s 2690 libavcodec/hevcdec.c if (s->sei.frame_packing.content_interpretation_type == 2) s 2693 libavcodec/hevcdec.c if (s->sei.frame_packing.arrangement_type == 5) { s 2694 libavcodec/hevcdec.c if (s->sei.frame_packing.current_frame_is_frame0_flag) s 2701 libavcodec/hevcdec.c if (s->sei.display_orientation.present && s 2702 libavcodec/hevcdec.c (s->sei.display_orientation.anticlockwise_rotation || s 2703 libavcodec/hevcdec.c s->sei.display_orientation.hflip || s->sei.display_orientation.vflip)) { s 2704 libavcodec/hevcdec.c double angle = s->sei.display_orientation.anticlockwise_rotation * 360 / (double) (1 << 16); s 2713 libavcodec/hevcdec.c s->sei.display_orientation.hflip, s 2714 libavcodec/hevcdec.c s->sei.display_orientation.vflip); s 2719 libavcodec/hevcdec.c if (s->sei.mastering_display.present > 0 && s 2720 libavcodec/hevcdec.c IS_IRAP(s) && s->no_rasl_output_flag) { s 2721 libavcodec/hevcdec.c s->sei.mastering_display.present--; s 2723 libavcodec/hevcdec.c if (s->sei.mastering_display.present) { s 2736 libavcodec/hevcdec.c metadata->display_primaries[i][0].num = s->sei.mastering_display.display_primaries[j][0]; s 2738 libavcodec/hevcdec.c metadata->display_primaries[i][1].num = s->sei.mastering_display.display_primaries[j][1]; s 2741 libavcodec/hevcdec.c metadata->white_point[0].num = s->sei.mastering_display.white_point[0]; s 2743 libavcodec/hevcdec.c metadata->white_point[1].num = s->sei.mastering_display.white_point[1]; s 2746 libavcodec/hevcdec.c metadata->max_luminance.num = s->sei.mastering_display.max_luminance; s 2748 libavcodec/hevcdec.c metadata->min_luminance.num = s->sei.mastering_display.min_luminance; s 2753 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_DEBUG, "Mastering Display Metadata:\n"); s 2754 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_DEBUG, s 2763 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_DEBUG, s 2769 libavcodec/hevcdec.c if (s->sei.content_light.present > 0 && s 2770 libavcodec/hevcdec.c IS_IRAP(s) && s->no_rasl_output_flag) { s 2771 libavcodec/hevcdec.c s->sei.content_light.present--; s 2773 libavcodec/hevcdec.c if (s->sei.content_light.present) { s 2778 libavcodec/hevcdec.c metadata->MaxCLL = s->sei.content_light.max_content_light_level; s 2779 libavcodec/hevcdec.c metadata->MaxFALL = s->sei.content_light.max_pic_average_light_level; s 2781 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_DEBUG, "Content Light Level Metadata:\n"); s 2782 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_DEBUG, "MaxCLL=%d, MaxFALL=%d\n", s 2786 libavcodec/hevcdec.c if (s->sei.a53_caption.buf_ref) { s 2787 libavcodec/hevcdec.c HEVCSEIA53Caption *a53 = &s->sei.a53_caption; s 2794 libavcodec/hevcdec.c s->avctx->properties |= FF_CODEC_PROPERTY_CLOSED_CAPTIONS; s 2800 libavcodec/hevcdec.c static int hevc_frame_start(HEVCContext *s) s 2802 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 2803 libavcodec/hevcdec.c int pic_size_in_ctb = ((s->ps.sps->width >> s->ps.sps->log2_min_cb_size) + 1) * s 2804 libavcodec/hevcdec.c ((s->ps.sps->height >> s->ps.sps->log2_min_cb_size) + 1); s 2807 libavcodec/hevcdec.c memset(s->horizontal_bs, 0, s->bs_width * s->bs_height); s 2808 libavcodec/hevcdec.c memset(s->vertical_bs, 0, s->bs_width * s->bs_height); s 2809 libavcodec/hevcdec.c memset(s->cbf_luma, 0, s->ps.sps->min_tb_width * s->ps.sps->min_tb_height); s 2810 libavcodec/hevcdec.c memset(s->is_pcm, 0, (s->ps.sps->min_pu_width + 1) * (s->ps.sps->min_pu_height + 1)); s 2811 libavcodec/hevcdec.c memset(s->tab_slice_address, -1, pic_size_in_ctb * sizeof(*s->tab_slice_address)); s 2813 libavcodec/hevcdec.c s->is_decoded = 0; s 2814 libavcodec/hevcdec.c s->first_nal_type = s->nal_unit_type; s 2816 libavcodec/hevcdec.c s->no_rasl_output_flag = IS_IDR(s) || IS_BLA(s) || (s->nal_unit_type == HEVC_NAL_CRA_NUT && s->last_eos); s 2818 libavcodec/hevcdec.c if (s->ps.pps->tiles_enabled_flag) s 2819 libavcodec/hevcdec.c lc->end_of_tiles_x = s->ps.pps->column_width[0] << s->ps.sps->log2_ctb_size; s 2821 libavcodec/hevcdec.c ret = ff_hevc_set_new_ref(s, &s->frame, s->poc); s 2825 libavcodec/hevcdec.c ret = ff_hevc_frame_rps(s); s 2827 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "Error constructing the frame RPS.\n"); s 2831 libavcodec/hevcdec.c s->ref->frame->key_frame = IS_IRAP(s); s 2833 libavcodec/hevcdec.c ret = set_side_data(s); s 2837 libavcodec/hevcdec.c s->frame->pict_type = 3 - s->sh.slice_type; s 2839 libavcodec/hevcdec.c if (!IS_IRAP(s)) s 2840 libavcodec/hevcdec.c ff_hevc_bump_frame(s); s 2842 libavcodec/hevcdec.c av_frame_unref(s->output_frame); s 2843 libavcodec/hevcdec.c ret = ff_hevc_output_frame(s, s->output_frame, 0); s 2847 libavcodec/hevcdec.c if (!s->avctx->hwaccel) s 2848 libavcodec/hevcdec.c ff_thread_finish_setup(s->avctx); s 2853 libavcodec/hevcdec.c if (s->ref) s 2854 libavcodec/hevcdec.c ff_hevc_unref_frame(s, s->ref, ~0); s 2855 libavcodec/hevcdec.c s->ref = NULL; s 2859 libavcodec/hevcdec.c static int decode_nal_unit(HEVCContext *s, const H2645NAL *nal) s 2861 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClc; s 2866 libavcodec/hevcdec.c s->nal_unit_type = nal->type; s 2867 libavcodec/hevcdec.c s->temporal_id = nal->temporal_id; s 2869 libavcodec/hevcdec.c switch (s->nal_unit_type) { s 2871 libavcodec/hevcdec.c if (s->avctx->hwaccel && s->avctx->hwaccel->decode_params) { s 2872 libavcodec/hevcdec.c ret = s->avctx->hwaccel->decode_params(s->avctx, s 2879 libavcodec/hevcdec.c ret = ff_hevc_decode_nal_vps(gb, s->avctx, &s->ps); s 2884 libavcodec/hevcdec.c if (s->avctx->hwaccel && s->avctx->hwaccel->decode_params) { s 2885 libavcodec/hevcdec.c ret = s->avctx->hwaccel->decode_params(s->avctx, s 2892 libavcodec/hevcdec.c ret = ff_hevc_decode_nal_sps(gb, s->avctx, &s->ps, s 2893 libavcodec/hevcdec.c s->apply_defdispwin); s 2898 libavcodec/hevcdec.c if (s->avctx->hwaccel && s->avctx->hwaccel->decode_params) { s 2899 libavcodec/hevcdec.c ret = s->avctx->hwaccel->decode_params(s->avctx, s 2906 libavcodec/hevcdec.c ret = ff_hevc_decode_nal_pps(gb, s->avctx, &s->ps); s 2912 libavcodec/hevcdec.c if (s->avctx->hwaccel && s->avctx->hwaccel->decode_params) { s 2913 libavcodec/hevcdec.c ret = s->avctx->hwaccel->decode_params(s->avctx, s 2920 libavcodec/hevcdec.c ret = ff_hevc_decode_nal_sei(gb, s->avctx, &s->sei, &s->ps, s->nal_unit_type); s 2940 libavcodec/hevcdec.c ret = hls_slice_header(s); s 2950 libavcodec/hevcdec.c (s->avctx->skip_frame >= AVDISCARD_BIDIR && s->sh.slice_type == HEVC_SLICE_B) || s 2951 libavcodec/hevcdec.c (s->avctx->skip_frame >= AVDISCARD_NONINTRA && s->sh.slice_type != HEVC_SLICE_I) || s 2952 libavcodec/hevcdec.c (s->avctx->skip_frame >= AVDISCARD_NONKEY && !IS_IRAP(s))) { s 2956 libavcodec/hevcdec.c if (s->sh.first_slice_in_pic_flag) { s 2957 libavcodec/hevcdec.c if (s->max_ra == INT_MAX) { s 2958 libavcodec/hevcdec.c if (s->nal_unit_type == HEVC_NAL_CRA_NUT || IS_BLA(s)) { s 2959 libavcodec/hevcdec.c s->max_ra = s->poc; s 2961 libavcodec/hevcdec.c if (IS_IDR(s)) s 2962 libavcodec/hevcdec.c s->max_ra = INT_MIN; s 2966 libavcodec/hevcdec.c if ((s->nal_unit_type == HEVC_NAL_RASL_R || s->nal_unit_type == HEVC_NAL_RASL_N) && s 2967 libavcodec/hevcdec.c s->poc <= s->max_ra) { s 2968 libavcodec/hevcdec.c s->is_decoded = 0; s 2971 libavcodec/hevcdec.c if (s->nal_unit_type == HEVC_NAL_RASL_R && s->poc > s->max_ra) s 2972 libavcodec/hevcdec.c s->max_ra = INT_MIN; s 2975 libavcodec/hevcdec.c s->overlap ++; s 2976 libavcodec/hevcdec.c ret = hevc_frame_start(s); s 2979 libavcodec/hevcdec.c } else if (!s->ref) { s 2980 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, "First slice in a frame missing.\n"); s 2984 libavcodec/hevcdec.c if (s->nal_unit_type != s->first_nal_type) { s 2985 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 2987 libavcodec/hevcdec.c s->first_nal_type, s->nal_unit_type); s 2991 libavcodec/hevcdec.c if (!s->sh.dependent_slice_segment_flag && s 2992 libavcodec/hevcdec.c s->sh.slice_type != HEVC_SLICE_I) { s 2993 libavcodec/hevcdec.c ret = ff_hevc_slice_rpl(s); s 2995 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_WARNING, s 3001 libavcodec/hevcdec.c if (s->sh.first_slice_in_pic_flag && s->avctx->hwaccel) { s 3002 libavcodec/hevcdec.c ret = s->avctx->hwaccel->start_frame(s->avctx, NULL, 0); s 3007 libavcodec/hevcdec.c if (s->avctx->hwaccel) { s 3008 libavcodec/hevcdec.c ret = s->avctx->hwaccel->decode_slice(s->avctx, nal->raw_data, nal->raw_size); s 3012 libavcodec/hevcdec.c if (s->threads_number > 1 && s->sh.num_entry_point_offsets > 0) s 3013 libavcodec/hevcdec.c ctb_addr_ts = hls_slice_data_wpp(s, nal); s 3015 libavcodec/hevcdec.c ctb_addr_ts = hls_slice_data(s); s 3016 libavcodec/hevcdec.c if (ctb_addr_ts >= (s->ps.sps->ctb_width * s->ps.sps->ctb_height)) { s 3017 libavcodec/hevcdec.c s->is_decoded = 1; s 3028 libavcodec/hevcdec.c s->seq_decode = (s->seq_decode + 1) & 0xff; s 3029 libavcodec/hevcdec.c s->max_ra = INT_MAX; s 3035 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_INFO, s 3036 libavcodec/hevcdec.c "Skipping NAL unit %d\n", s->nal_unit_type); s 3041 libavcodec/hevcdec.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 3046 libavcodec/hevcdec.c static int decode_nal_units(HEVCContext *s, const uint8_t *buf, int length) s 3051 libavcodec/hevcdec.c s->ref = NULL; s 3052 libavcodec/hevcdec.c s->last_eos = s->eos; s 3053 libavcodec/hevcdec.c s->eos = 0; s 3054 libavcodec/hevcdec.c s->overlap = 0; s 3058 libavcodec/hevcdec.c ret = ff_h2645_packet_split(&s->pkt, buf, length, s->avctx, s->is_nalff, s 3059 libavcodec/hevcdec.c s->nal_length_size, s->avctx->codec_id, 1, 0); s 3061 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_ERROR, s 3066 libavcodec/hevcdec.c for (i = 0; i < s->pkt.nb_nals; i++) { s 3067 libavcodec/hevcdec.c if (s->pkt.nals[i].type == HEVC_NAL_EOB_NUT || s 3068 libavcodec/hevcdec.c s->pkt.nals[i].type == HEVC_NAL_EOS_NUT) { s 3070 libavcodec/hevcdec.c s->last_eos = 1; s 3072 libavcodec/hevcdec.c s->eos = 1; s 3080 libavcodec/hevcdec.c for (i = 0; i < s->pkt.nb_nals; i++) { s 3081 libavcodec/hevcdec.c H2645NAL *nal = &s->pkt.nals[i]; s 3083 libavcodec/hevcdec.c if (s->avctx->skip_frame >= AVDISCARD_ALL || s 3084 libavcodec/hevcdec.c (s->avctx->skip_frame >= AVDISCARD_NONREF s 3088 libavcodec/hevcdec.c ret = decode_nal_unit(s, nal); s 3089 libavcodec/hevcdec.c if (ret >= 0 && s->overlap > 2) s 3092 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_WARNING, s 3099 libavcodec/hevcdec.c if (s->ref && s->threads_type == FF_THREAD_FRAME) s 3100 libavcodec/hevcdec.c ff_thread_report_progress(&s->ref->tf, INT_MAX, 0); s 3112 libavcodec/hevcdec.c static int verify_md5(HEVCContext *s, AVFrame *frame) s 3123 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_DEBUG, "Verifying checksum for frame with POC %d: ", s 3124 libavcodec/hevcdec.c s->poc); s 3129 libavcodec/hevcdec.c if (pixel_shift && !s->checksum_buf) { s 3130 libavcodec/hevcdec.c av_fast_malloc(&s->checksum_buf, &s->checksum_buf_size, s 3133 libavcodec/hevcdec.c if (!s->checksum_buf) s 3139 libavcodec/hevcdec.c int width = s->avctx->coded_width; s 3140 libavcodec/hevcdec.c int height = s->avctx->coded_height; s 3145 libavcodec/hevcdec.c av_md5_init(s->md5_ctx); s 3150 libavcodec/hevcdec.c s->bdsp.bswap16_buf((uint16_t *) s->checksum_buf, s 3152 libavcodec/hevcdec.c src = s->checksum_buf; s 3155 libavcodec/hevcdec.c av_md5_update(s->md5_ctx, src, w << pixel_shift); s 3157 libavcodec/hevcdec.c av_md5_final(s->md5_ctx, md5); s 3159 libavcodec/hevcdec.c if (!memcmp(md5, s->sei.picture_hash.md5[i], 16)) { s 3160 libavcodec/hevcdec.c av_log (s->avctx, AV_LOG_DEBUG, "plane %d - correct ", i); s 3161 libavcodec/hevcdec.c print_md5(s->avctx, AV_LOG_DEBUG, md5); s 3162 libavcodec/hevcdec.c av_log (s->avctx, AV_LOG_DEBUG, "; "); s 3164 libavcodec/hevcdec.c av_log (s->avctx, AV_LOG_ERROR, "mismatching checksum of plane %d - ", i); s 3165 libavcodec/hevcdec.c print_md5(s->avctx, AV_LOG_ERROR, md5); s 3166 libavcodec/hevcdec.c av_log (s->avctx, AV_LOG_ERROR, " != "); s 3167 libavcodec/hevcdec.c print_md5(s->avctx, AV_LOG_ERROR, s->sei.picture_hash.md5[i]); s 3168 libavcodec/hevcdec.c av_log (s->avctx, AV_LOG_ERROR, "\n"); s 3173 libavcodec/hevcdec.c av_log(s->avctx, AV_LOG_DEBUG, "\n"); s 3178 libavcodec/hevcdec.c static int hevc_decode_extradata(HEVCContext *s, uint8_t *buf, int length, int first) s 3182 libavcodec/hevcdec.c ret = ff_hevc_decode_extradata(buf, length, &s->ps, &s->sei, &s->is_nalff, s 3183 libavcodec/hevcdec.c &s->nal_length_size, s->avctx->err_recognition, s 3184 libavcodec/hevcdec.c s->apply_defdispwin, s->avctx); s 3189 libavcodec/hevcdec.c for (i = 0; i < FF_ARRAY_ELEMS(s->ps.sps_list); i++) { s 3190 libavcodec/hevcdec.c if (first && s->ps.sps_list[i]) { s 3191 libavcodec/hevcdec.c const HEVCSPS *sps = (const HEVCSPS*)s->ps.sps_list[i]->data; s 3192 libavcodec/hevcdec.c export_stream_params(s, sps); s 3206 libavcodec/hevcdec.c HEVCContext *s = avctx->priv_data; s 3209 libavcodec/hevcdec.c ret = ff_hevc_output_frame(s, data, 1); s 3220 libavcodec/hevcdec.c ret = hevc_decode_extradata(s, new_extradata, new_extradata_size, 0); s 3225 libavcodec/hevcdec.c s->ref = NULL; s 3226 libavcodec/hevcdec.c ret = decode_nal_units(s, avpkt->data, avpkt->size); s 3231 libavcodec/hevcdec.c if (s->ref && (ret = avctx->hwaccel->end_frame(avctx)) < 0) { s 3234 libavcodec/hevcdec.c ff_hevc_unref_frame(s, s->ref, ~0); s 3239 libavcodec/hevcdec.c if (avctx->err_recognition & AV_EF_CRCCHECK && s->is_decoded && s 3240 libavcodec/hevcdec.c s->sei.picture_hash.is_md5) { s 3241 libavcodec/hevcdec.c ret = verify_md5(s, s->ref->frame); s 3243 libavcodec/hevcdec.c ff_hevc_unref_frame(s, s->ref, ~0); s 3248 libavcodec/hevcdec.c s->sei.picture_hash.is_md5 = 0; s 3250 libavcodec/hevcdec.c if (s->is_decoded) { s 3251 libavcodec/hevcdec.c av_log(avctx, AV_LOG_DEBUG, "Decoded frame with POC %d.\n", s->poc); s 3252 libavcodec/hevcdec.c s->is_decoded = 0; s 3255 libavcodec/hevcdec.c if (s->output_frame->buf[0]) { s 3256 libavcodec/hevcdec.c av_frame_move_ref(data, s->output_frame); s 3263 libavcodec/hevcdec.c static int hevc_ref_frame(HEVCContext *s, HEVCFrame *dst, HEVCFrame *src) s 3299 libavcodec/hevcdec.c ff_hevc_unref_frame(s, dst, ~0); s 3305 libavcodec/hevcdec.c HEVCContext *s = avctx->priv_data; s 3308 libavcodec/hevcdec.c pic_arrays_free(s); s 3310 libavcodec/hevcdec.c av_freep(&s->md5_ctx); s 3312 libavcodec/hevcdec.c av_freep(&s->cabac_state); s 3315 libavcodec/hevcdec.c av_freep(&s->sao_pixel_buffer_h[i]); s 3316 libavcodec/hevcdec.c av_freep(&s->sao_pixel_buffer_v[i]); s 3318 libavcodec/hevcdec.c av_frame_free(&s->output_frame); s 3320 libavcodec/hevcdec.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 3321 libavcodec/hevcdec.c ff_hevc_unref_frame(s, &s->DPB[i], ~0); s 3322 libavcodec/hevcdec.c av_frame_free(&s->DPB[i].frame); s 3325 libavcodec/hevcdec.c ff_hevc_ps_uninit(&s->ps); s 3327 libavcodec/hevcdec.c av_freep(&s->sh.entry_point_offset); s 3328 libavcodec/hevcdec.c av_freep(&s->sh.offset); s 3329 libavcodec/hevcdec.c av_freep(&s->sh.size); s 3331 libavcodec/hevcdec.c for (i = 1; i < s->threads_number; i++) { s 3332 libavcodec/hevcdec.c HEVCLocalContext *lc = s->HEVClcList[i]; s 3334 libavcodec/hevcdec.c av_freep(&s->HEVClcList[i]); s 3335 libavcodec/hevcdec.c av_freep(&s->sList[i]); s 3338 libavcodec/hevcdec.c if (s->HEVClc == s->HEVClcList[0]) s 3339 libavcodec/hevcdec.c s->HEVClc = NULL; s 3340 libavcodec/hevcdec.c av_freep(&s->HEVClcList[0]); s 3342 libavcodec/hevcdec.c ff_h2645_packet_uninit(&s->pkt); s 3344 libavcodec/hevcdec.c ff_hevc_reset_sei(&s->sei); s 3351 libavcodec/hevcdec.c HEVCContext *s = avctx->priv_data; s 3354 libavcodec/hevcdec.c s->avctx = avctx; s 3356 libavcodec/hevcdec.c s->HEVClc = av_mallocz(sizeof(HEVCLocalContext)); s 3357 libavcodec/hevcdec.c if (!s->HEVClc) s 3359 libavcodec/hevcdec.c s->HEVClcList[0] = s->HEVClc; s 3360 libavcodec/hevcdec.c s->sList[0] = s; s 3362 libavcodec/hevcdec.c s->cabac_state = av_malloc(HEVC_CONTEXTS); s 3363 libavcodec/hevcdec.c if (!s->cabac_state) s 3366 libavcodec/hevcdec.c s->output_frame = av_frame_alloc(); s 3367 libavcodec/hevcdec.c if (!s->output_frame) s 3370 libavcodec/hevcdec.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 3371 libavcodec/hevcdec.c s->DPB[i].frame = av_frame_alloc(); s 3372 libavcodec/hevcdec.c if (!s->DPB[i].frame) s 3374 libavcodec/hevcdec.c s->DPB[i].tf.f = s->DPB[i].frame; s 3377 libavcodec/hevcdec.c s->max_ra = INT_MAX; s 3379 libavcodec/hevcdec.c s->md5_ctx = av_md5_alloc(); s 3380 libavcodec/hevcdec.c if (!s->md5_ctx) s 3383 libavcodec/hevcdec.c ff_bswapdsp_init(&s->bdsp); s 3385 libavcodec/hevcdec.c s->context_initialized = 1; s 3386 libavcodec/hevcdec.c s->eos = 0; s 3388 libavcodec/hevcdec.c ff_hevc_reset_sei(&s->sei); s 3401 libavcodec/hevcdec.c HEVCContext *s = dst->priv_data; s 3405 libavcodec/hevcdec.c if (!s->context_initialized) { s 3411 libavcodec/hevcdec.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 3412 libavcodec/hevcdec.c ff_hevc_unref_frame(s, &s->DPB[i], ~0); s 3414 libavcodec/hevcdec.c ret = hevc_ref_frame(s, &s->DPB[i], &s0->DPB[i]); s 3420 libavcodec/hevcdec.c if (s->ps.sps != s0->ps.sps) s 3421 libavcodec/hevcdec.c s->ps.sps = NULL; s 3422 libavcodec/hevcdec.c for (i = 0; i < FF_ARRAY_ELEMS(s->ps.vps_list); i++) { s 3423 libavcodec/hevcdec.c av_buffer_unref(&s->ps.vps_list[i]); s 3425 libavcodec/hevcdec.c s->ps.vps_list[i] = av_buffer_ref(s0->ps.vps_list[i]); s 3426 libavcodec/hevcdec.c if (!s->ps.vps_list[i]) s 3431 libavcodec/hevcdec.c for (i = 0; i < FF_ARRAY_ELEMS(s->ps.sps_list); i++) { s 3432 libavcodec/hevcdec.c av_buffer_unref(&s->ps.sps_list[i]); s 3434 libavcodec/hevcdec.c s->ps.sps_list[i] = av_buffer_ref(s0->ps.sps_list[i]); s 3435 libavcodec/hevcdec.c if (!s->ps.sps_list[i]) s 3440 libavcodec/hevcdec.c for (i = 0; i < FF_ARRAY_ELEMS(s->ps.pps_list); i++) { s 3441 libavcodec/hevcdec.c av_buffer_unref(&s->ps.pps_list[i]); s 3443 libavcodec/hevcdec.c s->ps.pps_list[i] = av_buffer_ref(s0->ps.pps_list[i]); s 3444 libavcodec/hevcdec.c if (!s->ps.pps_list[i]) s 3449 libavcodec/hevcdec.c if (s->ps.sps != s0->ps.sps) s 3450 libavcodec/hevcdec.c if ((ret = set_sps(s, s0->ps.sps, src->pix_fmt)) < 0) s 3453 libavcodec/hevcdec.c s->seq_decode = s0->seq_decode; s 3454 libavcodec/hevcdec.c s->seq_output = s0->seq_output; s 3455 libavcodec/hevcdec.c s->pocTid0 = s0->pocTid0; s 3456 libavcodec/hevcdec.c s->max_ra = s0->max_ra; s 3457 libavcodec/hevcdec.c s->eos = s0->eos; s 3458 libavcodec/hevcdec.c s->no_rasl_output_flag = s0->no_rasl_output_flag; s 3460 libavcodec/hevcdec.c s->is_nalff = s0->is_nalff; s 3461 libavcodec/hevcdec.c s->nal_length_size = s0->nal_length_size; s 3463 libavcodec/hevcdec.c s->threads_number = s0->threads_number; s 3464 libavcodec/hevcdec.c s->threads_type = s0->threads_type; s 3467 libavcodec/hevcdec.c s->seq_decode = (s->seq_decode + 1) & 0xff; s 3468 libavcodec/hevcdec.c s->max_ra = INT_MAX; s 3471 libavcodec/hevcdec.c av_buffer_unref(&s->sei.a53_caption.buf_ref); s 3473 libavcodec/hevcdec.c s->sei.a53_caption.buf_ref = av_buffer_ref(s0->sei.a53_caption.buf_ref); s 3474 libavcodec/hevcdec.c if (!s->sei.a53_caption.buf_ref) s 3478 libavcodec/hevcdec.c s->sei.frame_packing = s0->sei.frame_packing; s 3479 libavcodec/hevcdec.c s->sei.display_orientation = s0->sei.display_orientation; s 3480 libavcodec/hevcdec.c s->sei.mastering_display = s0->sei.mastering_display; s 3481 libavcodec/hevcdec.c s->sei.content_light = s0->sei.content_light; s 3482 libavcodec/hevcdec.c s->sei.alternative_transfer = s0->sei.alternative_transfer; s 3490 libavcodec/hevcdec.c HEVCContext *s = avctx->priv_data; s 3497 libavcodec/hevcdec.c s->enable_parallel_tiles = 0; s 3498 libavcodec/hevcdec.c s->sei.picture_timing.picture_struct = 0; s 3499 libavcodec/hevcdec.c s->eos = 1; s 3501 libavcodec/hevcdec.c atomic_init(&s->wpp_err, 0); s 3504 libavcodec/hevcdec.c s->threads_number = avctx->thread_count; s 3506 libavcodec/hevcdec.c s->threads_number = 1; s 3510 libavcodec/hevcdec.c ret = hevc_decode_extradata(s, avctx->extradata, avctx->extradata_size, 1); s 3519 libavcodec/hevcdec.c s->threads_type = FF_THREAD_FRAME; s 3521 libavcodec/hevcdec.c s->threads_type = FF_THREAD_SLICE; s 3528 libavcodec/hevcdec.c HEVCContext *s = avctx->priv_data; s 3529 libavcodec/hevcdec.c ff_hevc_flush_dpb(s); s 3530 libavcodec/hevcdec.c ff_hevc_reset_sei(&s->sei); s 3531 libavcodec/hevcdec.c s->max_ra = INT_MAX; s 3532 libavcodec/hevcdec.c s->eos = 1; s 74 libavcodec/hevcdec.h #define SAMPLE(tab, x, y) ((tab)[(y) * s->sps->width + (x)]) s 77 libavcodec/hevcdec.h #define IS_IDR(s) ((s)->nal_unit_type == HEVC_NAL_IDR_W_RADL || (s)->nal_unit_type == HEVC_NAL_IDR_N_LP) s 78 libavcodec/hevcdec.h #define IS_BLA(s) ((s)->nal_unit_type == HEVC_NAL_BLA_W_RADL || (s)->nal_unit_type == HEVC_NAL_BLA_W_LP || \ s 79 libavcodec/hevcdec.h (s)->nal_unit_type == HEVC_NAL_BLA_N_LP) s 80 libavcodec/hevcdec.h #define IS_IRAP(s) ((s)->nal_unit_type >= 16 && (s)->nal_unit_type <= 23) s 576 libavcodec/hevcdec.h void ff_hevc_clear_refs(HEVCContext *s); s 581 libavcodec/hevcdec.h void ff_hevc_flush_dpb(HEVCContext *s); s 583 libavcodec/hevcdec.h RefPicList *ff_hevc_get_ref_list(HEVCContext *s, HEVCFrame *frame, s 589 libavcodec/hevcdec.h int ff_hevc_frame_rps(HEVCContext *s); s 594 libavcodec/hevcdec.h int ff_hevc_slice_rpl(HEVCContext *s); s 596 libavcodec/hevcdec.h void ff_hevc_save_states(HEVCContext *s, int ctb_addr_ts); s 597 libavcodec/hevcdec.h int ff_hevc_cabac_init(HEVCContext *s, int ctb_addr_ts); s 598 libavcodec/hevcdec.h int ff_hevc_sao_merge_flag_decode(HEVCContext *s); s 599 libavcodec/hevcdec.h int ff_hevc_sao_type_idx_decode(HEVCContext *s); s 600 libavcodec/hevcdec.h int ff_hevc_sao_band_position_decode(HEVCContext *s); s 601 libavcodec/hevcdec.h int ff_hevc_sao_offset_abs_decode(HEVCContext *s); s 602 libavcodec/hevcdec.h int ff_hevc_sao_offset_sign_decode(HEVCContext *s); s 603 libavcodec/hevcdec.h int ff_hevc_sao_eo_class_decode(HEVCContext *s); s 604 libavcodec/hevcdec.h int ff_hevc_end_of_slice_flag_decode(HEVCContext *s); s 605 libavcodec/hevcdec.h int ff_hevc_cu_transquant_bypass_flag_decode(HEVCContext *s); s 606 libavcodec/hevcdec.h int ff_hevc_skip_flag_decode(HEVCContext *s, int x0, int y0, s 608 libavcodec/hevcdec.h int ff_hevc_pred_mode_decode(HEVCContext *s); s 609 libavcodec/hevcdec.h int ff_hevc_split_coding_unit_flag_decode(HEVCContext *s, int ct_depth, s 611 libavcodec/hevcdec.h int ff_hevc_part_mode_decode(HEVCContext *s, int log2_cb_size); s 612 libavcodec/hevcdec.h int ff_hevc_pcm_flag_decode(HEVCContext *s); s 613 libavcodec/hevcdec.h int ff_hevc_prev_intra_luma_pred_flag_decode(HEVCContext *s); s 614 libavcodec/hevcdec.h int ff_hevc_mpm_idx_decode(HEVCContext *s); s 615 libavcodec/hevcdec.h int ff_hevc_rem_intra_luma_pred_mode_decode(HEVCContext *s); s 616 libavcodec/hevcdec.h int ff_hevc_intra_chroma_pred_mode_decode(HEVCContext *s); s 617 libavcodec/hevcdec.h int ff_hevc_merge_idx_decode(HEVCContext *s); s 618 libavcodec/hevcdec.h int ff_hevc_merge_flag_decode(HEVCContext *s); s 619 libavcodec/hevcdec.h int ff_hevc_inter_pred_idc_decode(HEVCContext *s, int nPbW, int nPbH); s 620 libavcodec/hevcdec.h int ff_hevc_ref_idx_lx_decode(HEVCContext *s, int num_ref_idx_lx); s 621 libavcodec/hevcdec.h int ff_hevc_mvp_lx_flag_decode(HEVCContext *s); s 622 libavcodec/hevcdec.h int ff_hevc_no_residual_syntax_flag_decode(HEVCContext *s); s 623 libavcodec/hevcdec.h int ff_hevc_split_transform_flag_decode(HEVCContext *s, int log2_trafo_size); s 624 libavcodec/hevcdec.h int ff_hevc_cbf_cb_cr_decode(HEVCContext *s, int trafo_depth); s 625 libavcodec/hevcdec.h int ff_hevc_cbf_luma_decode(HEVCContext *s, int trafo_depth); s 626 libavcodec/hevcdec.h int ff_hevc_log2_res_scale_abs(HEVCContext *s, int idx); s 627 libavcodec/hevcdec.h int ff_hevc_res_scale_sign_flag(HEVCContext *s, int idx); s 632 libavcodec/hevcdec.h int ff_hevc_frame_nb_refs(const HEVCContext *s); s 634 libavcodec/hevcdec.h int ff_hevc_set_new_ref(HEVCContext *s, AVFrame **frame, int poc); s 657 libavcodec/hevcdec.h int ff_hevc_output_frame(HEVCContext *s, AVFrame *frame, int flush); s 659 libavcodec/hevcdec.h void ff_hevc_bump_frame(HEVCContext *s); s 661 libavcodec/hevcdec.h void ff_hevc_unref_frame(HEVCContext *s, HEVCFrame *frame, int flags); s 663 libavcodec/hevcdec.h void ff_hevc_set_neighbour_available(HEVCContext *s, int x0, int y0, s 665 libavcodec/hevcdec.h void ff_hevc_luma_mv_merge_mode(HEVCContext *s, int x0, int y0, s 668 libavcodec/hevcdec.h void ff_hevc_luma_mv_mvp_mode(HEVCContext *s, int x0, int y0, s 672 libavcodec/hevcdec.h void ff_hevc_set_qPy(HEVCContext *s, int xBase, int yBase, s 674 libavcodec/hevcdec.h void ff_hevc_deblocking_boundary_strengths(HEVCContext *s, int x0, int y0, s 676 libavcodec/hevcdec.h int ff_hevc_cu_qp_delta_sign_flag(HEVCContext *s); s 677 libavcodec/hevcdec.h int ff_hevc_cu_qp_delta_abs(HEVCContext *s); s 678 libavcodec/hevcdec.h int ff_hevc_cu_chroma_qp_offset_flag(HEVCContext *s); s 679 libavcodec/hevcdec.h int ff_hevc_cu_chroma_qp_offset_idx(HEVCContext *s); s 680 libavcodec/hevcdec.h void ff_hevc_hls_filter(HEVCContext *s, int x, int y, int ctb_size); s 681 libavcodec/hevcdec.h void ff_hevc_hls_filters(HEVCContext *s, int x_ctb, int y_ctb, int ctb_size); s 682 libavcodec/hevcdec.h void ff_hevc_hls_residual_coding(HEVCContext *s, int x0, int y0, s 686 libavcodec/hevcdec.h void ff_hevc_hls_mvd_coding(HEVCContext *s, int x0, int y0, int log2_cb_size); s 32 libavcodec/hevcpred.h void (*intra_pred[4])(struct HEVCContext *s, int x0, int y0, int c_idx); s 30 libavcodec/hevcpred_template.c static av_always_inline void FUNC(intra_pred)(HEVCContext *s, int x0, int y0, s 34 libavcodec/hevcpred_template.c ((x) >> s->ps.sps->log2_min_pu_size) s 36 libavcodec/hevcpred_template.c (s->ref->tab_mvf[(x) + (y) * min_pu_width]) s 42 libavcodec/hevcpred_template.c s->ps.pps->min_tb_addr_zs[(y) * (s->ps.sps->tb_mask+2) + (x)] s 73 libavcodec/hevcpred_template.c HEVCLocalContext *lc = s->HEVClc; s 75 libavcodec/hevcpred_template.c int hshift = s->ps.sps->hshift[c_idx]; s 76 libavcodec/hevcpred_template.c int vshift = s->ps.sps->vshift[c_idx]; s 79 libavcodec/hevcpred_template.c int size_in_tbs_h = size_in_luma_h >> s->ps.sps->log2_min_tb_size; s 81 libavcodec/hevcpred_template.c int size_in_tbs_v = size_in_luma_v >> s->ps.sps->log2_min_tb_size; s 84 libavcodec/hevcpred_template.c int x_tb = (x0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask; s 85 libavcodec/hevcpred_template.c int y_tb = (y0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask; s 89 libavcodec/hevcpred_template.c ptrdiff_t stride = s->frame->linesize[c_idx] / sizeof(pixel); s 90 libavcodec/hevcpred_template.c pixel *src = (pixel*)s->frame->data[c_idx] + x + y * stride; s 92 libavcodec/hevcpred_template.c int min_pu_width = s->ps.sps->min_pu_width; s 106 libavcodec/hevcpred_template.c int cand_bottom_left = lc->na.cand_bottom_left && cur_tb_addr > MIN_TB_ADDR_ZS( x_tb - 1, (y_tb + size_in_tbs_v) & s->ps.sps->tb_mask); s 110 libavcodec/hevcpred_template.c int cand_up_right = lc->na.cand_up_right && cur_tb_addr > MIN_TB_ADDR_ZS((x_tb + size_in_tbs_h) & s->ps.sps->tb_mask, y_tb - 1); s 112 libavcodec/hevcpred_template.c int bottom_left_size = (FFMIN(y0 + 2 * size_in_luma_v, s->ps.sps->height) - s 114 libavcodec/hevcpred_template.c int top_right_size = (FFMIN(x0 + 2 * size_in_luma_h, s->ps.sps->width) - s 117 libavcodec/hevcpred_template.c if (s->ps.pps->constrained_intra_pred_flag == 1) { s 120 libavcodec/hevcpred_template.c int on_pu_edge_x = !av_mod_uintp2(x0, s->ps.sps->log2_min_pu_size); s 121 libavcodec/hevcpred_template.c int on_pu_edge_y = !av_mod_uintp2(y0, s->ps.sps->log2_min_pu_size); s 127 libavcodec/hevcpred_template.c int max = FFMIN(size_in_luma_pu_v, s->ps.sps->min_pu_height - y_bottom_pu); s 135 libavcodec/hevcpred_template.c int max = FFMIN(size_in_luma_pu_v, s->ps.sps->min_pu_height - y_left_pu); s 148 libavcodec/hevcpred_template.c int max = FFMIN(size_in_luma_pu_h, s->ps.sps->min_pu_width - x_top_pu); s 156 libavcodec/hevcpred_template.c int max = FFMIN(size_in_luma_pu_h, s->ps.sps->min_pu_width - x_right_pu); s 186 libavcodec/hevcpred_template.c if (s->ps.pps->constrained_intra_pred_flag == 1) { s 188 libavcodec/hevcpred_template.c int size_max_x = x0 + ((2 * size) << hshift) < s->ps.sps->width ? s 189 libavcodec/hevcpred_template.c 2 * size : (s->ps.sps->width - x0) >> hshift; s 190 libavcodec/hevcpred_template.c int size_max_y = y0 + ((2 * size) << vshift) < s->ps.sps->height ? s 191 libavcodec/hevcpred_template.c 2 * size : (s->ps.sps->height - y0) >> vshift; s 194 libavcodec/hevcpred_template.c size_max_x = x0 + ((size) << hshift) < s->ps.sps->width ? s 195 libavcodec/hevcpred_template.c size : (s->ps.sps->width - x0) >> hshift; s 198 libavcodec/hevcpred_template.c size_max_y = y0 + (( size) << vshift) < s->ps.sps->height ? s 199 libavcodec/hevcpred_template.c size : (s->ps.sps->height - y0) >> vshift; s 290 libavcodec/hevcpred_template.c if (!s->ps.sps->intra_smoothing_disabled_flag && (c_idx == 0 || s->ps.sps->chroma_format_idc == 3)) { s 297 libavcodec/hevcpred_template.c if (s->ps.sps->sps_strong_intra_smoothing_enable_flag && c_idx == 0 && s 332 libavcodec/hevcpred_template.c s->hpc.pred_planar[log2_size - 2]((uint8_t *)src, (uint8_t *)top, s 336 libavcodec/hevcpred_template.c s->hpc.pred_dc((uint8_t *)src, (uint8_t *)top, s 340 libavcodec/hevcpred_template.c s->hpc.pred_angular[log2_size - 2]((uint8_t *)src, (uint8_t *)top, s 348 libavcodec/hevcpred_template.c static void FUNC(intra_pred_ ## size)(HEVCContext *s, int x0, int y0, int c_idx) \ s 350 libavcodec/hevcpred_template.c FUNC(intra_pred)(s, x0, y0, size, c_idx); \ s 120 libavcodec/huffman.c int s; s 122 libavcodec/huffman.c s = nodes[node].sym; s 123 libavcodec/huffman.c if (s != HNODE || (no_zero_count && !nodes[node].count)) { s 126 libavcodec/huffman.c xlat[*pos] = s; s 58 libavcodec/huffyuv.c av_cold int ff_huffyuv_alloc_temp(HYuvContext *s) s 63 libavcodec/huffyuv.c s->temp[i]= av_malloc(4*s->width + 16); s 64 libavcodec/huffyuv.c if (!s->temp[i]) s 66 libavcodec/huffyuv.c s->temp16[i] = (uint16_t*)s->temp[i]; s 73 libavcodec/huffyuv.c HYuvContext *s = avctx->priv_data; s 75 libavcodec/huffyuv.c s->avctx = avctx; s 76 libavcodec/huffyuv.c s->flags = avctx->flags; s 78 libavcodec/huffyuv.c ff_bswapdsp_init(&s->bdsp); s 80 libavcodec/huffyuv.c s->width = avctx->width; s 81 libavcodec/huffyuv.c s->height = avctx->height; s 83 libavcodec/huffyuv.c av_assert1(s->width > 0 && s->height > 0); s 86 libavcodec/huffyuv.c av_cold void ff_huffyuv_common_end(HYuvContext *s) s 91 libavcodec/huffyuv.c av_freep(&s->temp[i]); s 92 libavcodec/huffyuv.c s->temp16[i] = NULL; s 97 libavcodec/huffyuv.h void ff_huffyuv_common_init(AVCodecContext *s); s 98 libavcodec/huffyuv.h void ff_huffyuv_common_end(HYuvContext *s); s 99 libavcodec/huffyuv.h int ff_huffyuv_alloc_temp(HYuvContext *s); s 118 libavcodec/huffyuvdec.c static int generate_joint_tables(HYuvContext *s) s 129 libavcodec/huffyuvdec.c if (s->bitstream_bpp < 24 || s->version > 2) { s 132 libavcodec/huffyuvdec.c int p0 = s->version > 2 ? p : 0; s 133 libavcodec/huffyuvdec.c for (i = y = 0; y < s->vlc_n; y++) { s 134 libavcodec/huffyuvdec.c int len0 = s->len[p0][y]; s 138 libavcodec/huffyuvdec.c if ((sign_extend(y, 8) & (s->vlc_n-1)) != y) s 140 libavcodec/huffyuvdec.c for (u = 0; u < s->vlc_n; u++) { s 141 libavcodec/huffyuvdec.c int len1 = s->len[p][u]; s 144 libavcodec/huffyuvdec.c if ((sign_extend(u, 8) & (s->vlc_n-1)) != u) s 148 libavcodec/huffyuvdec.c bits[i] = (s->bits[p0][y] << len1) + s->bits[p][u]; s 153 libavcodec/huffyuvdec.c ff_free_vlc(&s->vlc[4 + p]); s 154 libavcodec/huffyuvdec.c if ((ret = ff_init_vlc_sparse(&s->vlc[4 + p], VLC_BITS, i, len, 1, 1, s 159 libavcodec/huffyuvdec.c uint8_t (*map)[4] = (uint8_t(*)[4]) s->pix_bgr_map; s 161 libavcodec/huffyuvdec.c int p0 = s->decorrelate; s 162 libavcodec/huffyuvdec.c int p1 = !s->decorrelate; s 167 libavcodec/huffyuvdec.c int len0 = s->len[p0][g & 255]; s 172 libavcodec/huffyuvdec.c int len1 = s->len[p1][b & 255]; s 176 libavcodec/huffyuvdec.c code = (s->bits[p0][g & 255] << len1) + s->bits[p1][b & 255]; s 178 libavcodec/huffyuvdec.c int len2 = s->len[2][r & 255]; s 183 libavcodec/huffyuvdec.c bits[i] = (code << len2) + s->bits[2][r & 255]; s 184 libavcodec/huffyuvdec.c if (s->decorrelate) { s 197 libavcodec/huffyuvdec.c ff_free_vlc(&s->vlc[4]); s 198 libavcodec/huffyuvdec.c if ((ret = init_vlc(&s->vlc[4], VLC_BITS, i, len, 1, 1, s 208 libavcodec/huffyuvdec.c static int read_huffman_tables(HYuvContext *s, const uint8_t *src, int length) s 217 libavcodec/huffyuvdec.c if (s->version > 2) s 218 libavcodec/huffyuvdec.c count = 1 + s->alpha + 2*s->chroma; s 221 libavcodec/huffyuvdec.c if ((ret = read_len_table(s->len[i], &gb, s->vlc_n)) < 0) s 223 libavcodec/huffyuvdec.c if ((ret = ff_huffyuv_generate_bits_table(s->bits[i], s->len[i], s->vlc_n)) < 0) s 225 libavcodec/huffyuvdec.c ff_free_vlc(&s->vlc[i]); s 226 libavcodec/huffyuvdec.c if ((ret = init_vlc(&s->vlc[i], VLC_BITS, s->vlc_n, s->len[i], 1, 1, s 227 libavcodec/huffyuvdec.c s->bits[i], 4, 4, 0)) < 0) s 231 libavcodec/huffyuvdec.c if ((ret = generate_joint_tables(s)) < 0) s 237 libavcodec/huffyuvdec.c static int read_old_huffman_tables(HYuvContext *s) s 244 libavcodec/huffyuvdec.c if ((ret = read_len_table(s->len[0], &gb, 256)) < 0) s 249 libavcodec/huffyuvdec.c if ((ret = read_len_table(s->len[1], &gb, 256)) < 0) s 253 libavcodec/huffyuvdec.c s->bits[0][i] = classic_add_luma[i]; s 255 libavcodec/huffyuvdec.c s->bits[1][i] = classic_add_chroma[i]; s 257 libavcodec/huffyuvdec.c if (s->bitstream_bpp >= 24) { s 258 libavcodec/huffyuvdec.c memcpy(s->bits[1], s->bits[0], 256 * sizeof(uint32_t)); s 259 libavcodec/huffyuvdec.c memcpy(s->len[1], s->len[0], 256 * sizeof(uint8_t)); s 261 libavcodec/huffyuvdec.c memcpy(s->bits[2], s->bits[1], 256 * sizeof(uint32_t)); s 262 libavcodec/huffyuvdec.c memcpy(s->len[2], s->len[1], 256 * sizeof(uint8_t)); s 265 libavcodec/huffyuvdec.c ff_free_vlc(&s->vlc[i]); s 266 libavcodec/huffyuvdec.c if ((ret = init_vlc(&s->vlc[i], VLC_BITS, 256, s->len[i], 1, 1, s 267 libavcodec/huffyuvdec.c s->bits[i], 4, 4, 0)) < 0) s 271 libavcodec/huffyuvdec.c if ((ret = generate_joint_tables(s)) < 0) s 279 libavcodec/huffyuvdec.c HYuvContext *s = avctx->priv_data; s 282 libavcodec/huffyuvdec.c ff_huffyuv_common_end(s); s 283 libavcodec/huffyuvdec.c av_freep(&s->bitstream_buffer); s 286 libavcodec/huffyuvdec.c ff_free_vlc(&s->vlc[i]); s 293 libavcodec/huffyuvdec.c HYuvContext *s = avctx->priv_data; s 300 libavcodec/huffyuvdec.c ff_huffyuvdsp_init(&s->hdsp, avctx->pix_fmt); s 301 libavcodec/huffyuvdec.c ff_llviddsp_init(&s->llviddsp); s 302 libavcodec/huffyuvdec.c memset(s->vlc, 0, 4 * sizeof(VLC)); s 304 libavcodec/huffyuvdec.c s->interlaced = avctx->height > 288; s 305 libavcodec/huffyuvdec.c s->bgr32 = 1; s 310 libavcodec/huffyuvdec.c s->version = 1; // do such files exist at all? s 312 libavcodec/huffyuvdec.c s->version = 2; s 314 libavcodec/huffyuvdec.c s->version = 3; s 316 libavcodec/huffyuvdec.c s->version = 0; s 318 libavcodec/huffyuvdec.c s->bps = 8; s 319 libavcodec/huffyuvdec.c s->n = 1<<s->bps; s 320 libavcodec/huffyuvdec.c s->vlc_n = FFMIN(s->n, MAX_VLC_N); s 321 libavcodec/huffyuvdec.c s->chroma = 1; s 322 libavcodec/huffyuvdec.c if (s->version >= 2) { s 329 libavcodec/huffyuvdec.c s->decorrelate = method & 64 ? 1 : 0; s 330 libavcodec/huffyuvdec.c s->predictor = method & 63; s 331 libavcodec/huffyuvdec.c if (s->version == 2) { s 332 libavcodec/huffyuvdec.c s->bitstream_bpp = avctx->extradata[1]; s 333 libavcodec/huffyuvdec.c if (s->bitstream_bpp == 0) s 334 libavcodec/huffyuvdec.c s->bitstream_bpp = avctx->bits_per_coded_sample & ~7; s 336 libavcodec/huffyuvdec.c s->bps = (avctx->extradata[1] >> 4) + 1; s 337 libavcodec/huffyuvdec.c s->n = 1<<s->bps; s 338 libavcodec/huffyuvdec.c s->vlc_n = FFMIN(s->n, MAX_VLC_N); s 339 libavcodec/huffyuvdec.c s->chroma_h_shift = avctx->extradata[1] & 3; s 340 libavcodec/huffyuvdec.c s->chroma_v_shift = (avctx->extradata[1] >> 2) & 3; s 341 libavcodec/huffyuvdec.c s->yuv = !!(avctx->extradata[2] & 1); s 342 libavcodec/huffyuvdec.c s->chroma= !!(avctx->extradata[2] & 3); s 343 libavcodec/huffyuvdec.c s->alpha = !!(avctx->extradata[2] & 4); s 346 libavcodec/huffyuvdec.c s->interlaced = (interlace == 1) ? 1 : (interlace == 2) ? 0 : s->interlaced; s 347 libavcodec/huffyuvdec.c s->context = avctx->extradata[2] & 0x40 ? 1 : 0; s 349 libavcodec/huffyuvdec.c if ((ret = read_huffman_tables(s, avctx->extradata + 4, s 355 libavcodec/huffyuvdec.c s->predictor = LEFT; s 356 libavcodec/huffyuvdec.c s->decorrelate = 0; s 359 libavcodec/huffyuvdec.c s->predictor = LEFT; s 360 libavcodec/huffyuvdec.c s->decorrelate = 1; s 363 libavcodec/huffyuvdec.c s->predictor = PLANE; s 364 libavcodec/huffyuvdec.c s->decorrelate = avctx->bits_per_coded_sample >= 24; s 367 libavcodec/huffyuvdec.c s->predictor = MEDIAN; s 368 libavcodec/huffyuvdec.c s->decorrelate = 0; s 371 libavcodec/huffyuvdec.c s->predictor = LEFT; // OLD s 372 libavcodec/huffyuvdec.c s->decorrelate = 0; s 375 libavcodec/huffyuvdec.c s->bitstream_bpp = avctx->bits_per_coded_sample & ~7; s 376 libavcodec/huffyuvdec.c s->context = 0; s 378 libavcodec/huffyuvdec.c if ((ret = read_old_huffman_tables(s)) < 0) s 382 libavcodec/huffyuvdec.c if (s->version <= 2) { s 383 libavcodec/huffyuvdec.c switch (s->bitstream_bpp) { s 386 libavcodec/huffyuvdec.c s->yuv = 1; s 389 libavcodec/huffyuvdec.c if (s->yuy2) s 393 libavcodec/huffyuvdec.c s->yuv = 1; s 396 libavcodec/huffyuvdec.c if (s->bgr32) s 402 libavcodec/huffyuvdec.c av_assert0(s->bgr32); s 404 libavcodec/huffyuvdec.c s->alpha = 1; s 411 libavcodec/huffyuvdec.c &s->chroma_h_shift, s 412 libavcodec/huffyuvdec.c &s->chroma_v_shift); s 414 libavcodec/huffyuvdec.c switch ( (s->chroma<<10) | (s->yuv<<9) | (s->alpha<<8) | ((s->bps-1)<<4) | s->chroma_h_shift | (s->chroma_v_shift<<2)) { s 554 libavcodec/huffyuvdec.c if (s->predictor == MEDIAN && avctx->pix_fmt == AV_PIX_FMT_YUV422P && s 562 libavcodec/huffyuvdec.c if ((ret = ff_huffyuv_alloc_temp(s)) < 0) { s 563 libavcodec/huffyuvdec.c ff_huffyuv_common_end(s); s 622 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); \ s 623 libavcodec/huffyuvdec.c GET_VLC_DUAL(dst0, dst1, re, &s->gb, s->vlc[4+plane1].table, \ s 624 libavcodec/huffyuvdec.c s->vlc[0].table, s->vlc[plane1].table, VLC_BITS, 3, OP8bits) s 626 libavcodec/huffyuvdec.c static void decode_422_bitstream(HYuvContext *s, int count) s 629 libavcodec/huffyuvdec.c OPEN_READER(re, &s->gb); s 632 libavcodec/huffyuvdec.c icount = get_bits_left(&s->gb) / (32 * 4); s 635 libavcodec/huffyuvdec.c READ_2PIX(s->temp[0][2 * i], s->temp[1][i], 1); s 636 libavcodec/huffyuvdec.c READ_2PIX(s->temp[0][2 * i + 1], s->temp[2][i], 2); s 638 libavcodec/huffyuvdec.c for (; i < count && BITS_LEFT(re, &s->gb) > 0; i++) { s 639 libavcodec/huffyuvdec.c READ_2PIX(s->temp[0][2 * i ], s->temp[1][i], 1); s 640 libavcodec/huffyuvdec.c if (BITS_LEFT(re, &s->gb) <= 0) break; s 641 libavcodec/huffyuvdec.c READ_2PIX(s->temp[0][2 * i + 1], s->temp[2][i], 2); s 644 libavcodec/huffyuvdec.c s->temp[0][2 * i ] = s->temp[1][i] = s 645 libavcodec/huffyuvdec.c s->temp[0][2 * i + 1] = s->temp[2][i] = 0; s 648 libavcodec/huffyuvdec.c READ_2PIX(s->temp[0][2 * i], s->temp[1][i], 1); s 649 libavcodec/huffyuvdec.c READ_2PIX(s->temp[0][2 * i + 1], s->temp[2][i], 2); s 652 libavcodec/huffyuvdec.c CLOSE_READER(re, &s->gb); s 656 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); \ s 657 libavcodec/huffyuvdec.c GET_VLC_DUAL(dst0, dst1, re, &s->gb, s->vlc[4+plane].table, \ s 658 libavcodec/huffyuvdec.c s->vlc[plane].table, s->vlc[plane].table, VLC_BITS, 3, OP) s 665 libavcodec/huffyuvdec.c dst0 = get_vlc2(&s->gb, s->vlc[plane].table, VLC_BITS, 3)<<2;\ s 666 libavcodec/huffyuvdec.c dst0 += get_bits(&s->gb, 2);\ s 667 libavcodec/huffyuvdec.c dst1 = get_vlc2(&s->gb, s->vlc[plane].table, VLC_BITS, 3)<<2;\ s 668 libavcodec/huffyuvdec.c dst1 += get_bits(&s->gb, 2);\ s 670 libavcodec/huffyuvdec.c static void decode_plane_bitstream(HYuvContext *s, int width, int plane) s 674 libavcodec/huffyuvdec.c if (s->bps <= 8) { s 675 libavcodec/huffyuvdec.c OPEN_READER(re, &s->gb); s 676 libavcodec/huffyuvdec.c if (count >= (get_bits_left(&s->gb)) / (32 * 2)) { s 677 libavcodec/huffyuvdec.c for (i = 0; i < count && BITS_LEFT(re, &s->gb) > 0; i++) { s 678 libavcodec/huffyuvdec.c READ_2PIX_PLANE(s->temp[0][2 * i], s->temp[0][2 * i + 1], plane, OP8bits); s 682 libavcodec/huffyuvdec.c READ_2PIX_PLANE(s->temp[0][2 * i], s->temp[0][2 * i + 1], plane, OP8bits); s 685 libavcodec/huffyuvdec.c if( width&1 && BITS_LEFT(re, &s->gb)>0 ) { s 688 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); s 689 libavcodec/huffyuvdec.c index = SHOW_UBITS(re, &s->gb, VLC_BITS); s 690 libavcodec/huffyuvdec.c VLC_INTERN(s->temp[0][width-1], s->vlc[plane].table, s 691 libavcodec/huffyuvdec.c &s->gb, re, VLC_BITS, 3); s 693 libavcodec/huffyuvdec.c CLOSE_READER(re, &s->gb); s 694 libavcodec/huffyuvdec.c } else if (s->bps <= 14) { s 695 libavcodec/huffyuvdec.c OPEN_READER(re, &s->gb); s 696 libavcodec/huffyuvdec.c if (count >= (get_bits_left(&s->gb)) / (32 * 2)) { s 697 libavcodec/huffyuvdec.c for (i = 0; i < count && BITS_LEFT(re, &s->gb) > 0; i++) { s 698 libavcodec/huffyuvdec.c READ_2PIX_PLANE(s->temp16[0][2 * i], s->temp16[0][2 * i + 1], plane, OP14bits); s 702 libavcodec/huffyuvdec.c READ_2PIX_PLANE(s->temp16[0][2 * i], s->temp16[0][2 * i + 1], plane, OP14bits); s 705 libavcodec/huffyuvdec.c if( width&1 && BITS_LEFT(re, &s->gb)>0 ) { s 708 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); s 709 libavcodec/huffyuvdec.c index = SHOW_UBITS(re, &s->gb, VLC_BITS); s 710 libavcodec/huffyuvdec.c VLC_INTERN(s->temp16[0][width-1], s->vlc[plane].table, s 711 libavcodec/huffyuvdec.c &s->gb, re, VLC_BITS, 3); s 713 libavcodec/huffyuvdec.c CLOSE_READER(re, &s->gb); s 715 libavcodec/huffyuvdec.c if (count >= (get_bits_left(&s->gb)) / (32 * 2)) { s 716 libavcodec/huffyuvdec.c for (i = 0; i < count && get_bits_left(&s->gb) > 0; i++) { s 717 libavcodec/huffyuvdec.c READ_2PIX_PLANE16(s->temp16[0][2 * i], s->temp16[0][2 * i + 1], plane); s 721 libavcodec/huffyuvdec.c READ_2PIX_PLANE16(s->temp16[0][2 * i], s->temp16[0][2 * i + 1], plane); s 724 libavcodec/huffyuvdec.c if( width&1 && get_bits_left(&s->gb)>0 ) { s 725 libavcodec/huffyuvdec.c int dst = get_vlc2(&s->gb, s->vlc[plane].table, VLC_BITS, 3)<<2; s 726 libavcodec/huffyuvdec.c s->temp16[0][width-1] = dst + get_bits(&s->gb, 2); s 731 libavcodec/huffyuvdec.c static void decode_gray_bitstream(HYuvContext *s, int count) s 734 libavcodec/huffyuvdec.c OPEN_READER(re, &s->gb); s 737 libavcodec/huffyuvdec.c if (count >= (get_bits_left(&s->gb)) / (32 * 2)) { s 738 libavcodec/huffyuvdec.c for (i = 0; i < count && BITS_LEFT(re, &s->gb) > 0; i++) { s 739 libavcodec/huffyuvdec.c READ_2PIX(s->temp[0][2 * i], s->temp[0][2 * i + 1], 0); s 743 libavcodec/huffyuvdec.c READ_2PIX(s->temp[0][2 * i], s->temp[0][2 * i + 1], 0); s 746 libavcodec/huffyuvdec.c CLOSE_READER(re, &s->gb); s 749 libavcodec/huffyuvdec.c static av_always_inline void decode_bgr_1(HYuvContext *s, int count, s 753 libavcodec/huffyuvdec.c OPEN_READER(re, &s->gb); s 755 libavcodec/huffyuvdec.c for (i = 0; i < count && BITS_LEFT(re, &s->gb) > 0; i++) { s 759 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); s 760 libavcodec/huffyuvdec.c index = SHOW_UBITS(re, &s->gb, VLC_BITS); s 761 libavcodec/huffyuvdec.c n = s->vlc[4].table[index][1]; s 764 libavcodec/huffyuvdec.c code = s->vlc[4].table[index][0]; s 765 libavcodec/huffyuvdec.c *(uint32_t *) &s->temp[0][4 * i] = s->pix_bgr_map[code]; s 766 libavcodec/huffyuvdec.c LAST_SKIP_BITS(re, &s->gb, n); s 769 libavcodec/huffyuvdec.c VLC_INTERN(s->temp[0][4 * i + G], s->vlc[1].table, s 770 libavcodec/huffyuvdec.c &s->gb, re, VLC_BITS, 3); s 772 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); s 773 libavcodec/huffyuvdec.c index = SHOW_UBITS(re, &s->gb, VLC_BITS); s 774 libavcodec/huffyuvdec.c VLC_INTERN(code, s->vlc[0].table, &s->gb, re, VLC_BITS, 3); s 775 libavcodec/huffyuvdec.c s->temp[0][4 * i + B] = code + s->temp[0][4 * i + G]; s 777 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); s 778 libavcodec/huffyuvdec.c index = SHOW_UBITS(re, &s->gb, VLC_BITS); s 779 libavcodec/huffyuvdec.c VLC_INTERN(code, s->vlc[2].table, &s->gb, re, VLC_BITS, 3); s 780 libavcodec/huffyuvdec.c s->temp[0][4 * i + R] = code + s->temp[0][4 * i + G]; s 782 libavcodec/huffyuvdec.c VLC_INTERN(s->temp[0][4 * i + B], s->vlc[0].table, s 783 libavcodec/huffyuvdec.c &s->gb, re, VLC_BITS, 3); s 785 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); s 786 libavcodec/huffyuvdec.c index = SHOW_UBITS(re, &s->gb, VLC_BITS); s 787 libavcodec/huffyuvdec.c VLC_INTERN(s->temp[0][4 * i + G], s->vlc[1].table, s 788 libavcodec/huffyuvdec.c &s->gb, re, VLC_BITS, 3); s 790 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); s 791 libavcodec/huffyuvdec.c index = SHOW_UBITS(re, &s->gb, VLC_BITS); s 792 libavcodec/huffyuvdec.c VLC_INTERN(s->temp[0][4 * i + R], s->vlc[2].table, s 793 libavcodec/huffyuvdec.c &s->gb, re, VLC_BITS, 3); s 797 libavcodec/huffyuvdec.c UPDATE_CACHE(re, &s->gb); s 798 libavcodec/huffyuvdec.c index = SHOW_UBITS(re, &s->gb, VLC_BITS); s 799 libavcodec/huffyuvdec.c VLC_INTERN(s->temp[0][4 * i + A], s->vlc[2].table, s 800 libavcodec/huffyuvdec.c &s->gb, re, VLC_BITS, 3); s 802 libavcodec/huffyuvdec.c s->temp[0][4 * i + A] = 0; s 804 libavcodec/huffyuvdec.c CLOSE_READER(re, &s->gb); s 807 libavcodec/huffyuvdec.c static void decode_bgr_bitstream(HYuvContext *s, int count) s 809 libavcodec/huffyuvdec.c if (s->decorrelate) { s 810 libavcodec/huffyuvdec.c if (s->bitstream_bpp == 24) s 811 libavcodec/huffyuvdec.c decode_bgr_1(s, count, 1, 0); s 813 libavcodec/huffyuvdec.c decode_bgr_1(s, count, 1, 1); s 815 libavcodec/huffyuvdec.c if (s->bitstream_bpp == 24) s 816 libavcodec/huffyuvdec.c decode_bgr_1(s, count, 0, 0); s 818 libavcodec/huffyuvdec.c decode_bgr_1(s, count, 0, 1); s 822 libavcodec/huffyuvdec.c static void draw_slice(HYuvContext *s, AVFrame *frame, int y) s 827 libavcodec/huffyuvdec.c if (!s->avctx->draw_horiz_band) s 830 libavcodec/huffyuvdec.c h = y - s->last_slice_end; s 833 libavcodec/huffyuvdec.c if (s->bitstream_bpp == 12) s 845 libavcodec/huffyuvdec.c s->avctx->draw_horiz_band(s->avctx, frame, offset, y, 3, h); s 847 libavcodec/huffyuvdec.c s->last_slice_end = y + h; s 850 libavcodec/huffyuvdec.c static int left_prediction(HYuvContext *s, uint8_t *dst, const uint8_t *src, int w, int acc) s 852 libavcodec/huffyuvdec.c if (s->bps <= 8) { s 853 libavcodec/huffyuvdec.c return s->llviddsp.add_left_pred(dst, src, w, acc); s 855 libavcodec/huffyuvdec.c return s->llviddsp.add_left_pred_int16(( uint16_t *)dst, (const uint16_t *)src, s->n-1, w, acc); s 859 libavcodec/huffyuvdec.c static void add_bytes(HYuvContext *s, uint8_t *dst, uint8_t *src, int w) s 861 libavcodec/huffyuvdec.c if (s->bps <= 8) { s 862 libavcodec/huffyuvdec.c s->llviddsp.add_bytes(dst, src, w); s 864 libavcodec/huffyuvdec.c s->hdsp.add_int16((uint16_t*)dst, (const uint16_t*)src, s->n - 1, w); s 868 libavcodec/huffyuvdec.c static void add_median_prediction(HYuvContext *s, uint8_t *dst, const uint8_t *src, const uint8_t *diff, int w, int *left, int *left_top) s 870 libavcodec/huffyuvdec.c if (s->bps <= 8) { s 871 libavcodec/huffyuvdec.c s->llviddsp.add_median_pred(dst, src, diff, w, left, left_top); s 873 libavcodec/huffyuvdec.c s->hdsp.add_hfyu_median_pred_int16((uint16_t *)dst, (const uint16_t *)src, (const uint16_t *)diff, s->n-1, w, left, left_top); s 880 libavcodec/huffyuvdec.c HYuvContext *s = avctx->priv_data; s 882 libavcodec/huffyuvdec.c const int width = s->width; s 883 libavcodec/huffyuvdec.c const int width2 = s->width >> 1; s 886 libavcodec/huffyuvdec.c if ((ret = init_get_bits8(&s->gb, s->bitstream_buffer + table_size, buf_size - table_size)) < 0) s 889 libavcodec/huffyuvdec.c fake_ystride = s->interlaced ? p->linesize[0] * 2 : p->linesize[0]; s 890 libavcodec/huffyuvdec.c fake_ustride = s->interlaced ? p->linesize[1] * 2 : p->linesize[1]; s 891 libavcodec/huffyuvdec.c fake_vstride = s->interlaced ? p->linesize[2] * 2 : p->linesize[2]; s 893 libavcodec/huffyuvdec.c if (s->version > 2) { s 895 libavcodec/huffyuvdec.c for(plane = 0; plane < 1 + 2*s->chroma + s->alpha; plane++) { s 901 libavcodec/huffyuvdec.c if (s->chroma && (plane == 1 || plane == 2)) { s 902 libavcodec/huffyuvdec.c w >>= s->chroma_h_shift; s 903 libavcodec/huffyuvdec.c h >>= s->chroma_v_shift; s 907 libavcodec/huffyuvdec.c switch (s->predictor) { s 910 libavcodec/huffyuvdec.c decode_plane_bitstream(s, w, plane); s 911 libavcodec/huffyuvdec.c left = left_prediction(s, p->data[plane], s->temp[0], w, 0); s 916 libavcodec/huffyuvdec.c decode_plane_bitstream(s, w, plane); s 917 libavcodec/huffyuvdec.c left = left_prediction(s, dst, s->temp[0], w, left); s 918 libavcodec/huffyuvdec.c if (s->predictor == PLANE) { s 919 libavcodec/huffyuvdec.c if (y > s->interlaced) { s 920 libavcodec/huffyuvdec.c add_bytes(s, dst, dst - fake_stride, w); s 927 libavcodec/huffyuvdec.c decode_plane_bitstream(s, w, plane); s 928 libavcodec/huffyuvdec.c left= left_prediction(s, p->data[plane], s->temp[0], w, 0); s 935 libavcodec/huffyuvdec.c if (s->interlaced) { s 936 libavcodec/huffyuvdec.c decode_plane_bitstream(s, w, plane); s 937 libavcodec/huffyuvdec.c left = left_prediction(s, p->data[plane] + p->linesize[plane], s->temp[0], w, left); s 944 libavcodec/huffyuvdec.c decode_plane_bitstream(s, w, plane); s 945 libavcodec/huffyuvdec.c add_median_prediction(s, p->data[plane] + fake_stride, p->data[plane], s->temp[0], w, &left, &lefttop); s 951 libavcodec/huffyuvdec.c decode_plane_bitstream(s, w, plane); s 955 libavcodec/huffyuvdec.c add_median_prediction(s, dst, dst - fake_stride, s->temp[0], w, &left, &lefttop); s 961 libavcodec/huffyuvdec.c draw_slice(s, p, height); s 962 libavcodec/huffyuvdec.c } else if (s->bitstream_bpp < 24) { s 967 libavcodec/huffyuvdec.c if (s->yuy2) { s 968 libavcodec/huffyuvdec.c p->data[0][3] = get_bits(&s->gb, 8); s 969 libavcodec/huffyuvdec.c p->data[0][2] = get_bits(&s->gb, 8); s 970 libavcodec/huffyuvdec.c p->data[0][1] = get_bits(&s->gb, 8); s 971 libavcodec/huffyuvdec.c p->data[0][0] = get_bits(&s->gb, 8); s 978 libavcodec/huffyuvdec.c p->data[2][0 + y_offset * p->linesize[2]] = get_bits(&s->gb, 8); s 980 libavcodec/huffyuvdec.c p->data[0][1 + y_offset * p->linesize[0]] = get_bits(&s->gb, 8); s 982 libavcodec/huffyuvdec.c p->data[1][0 + y_offset * p->linesize[1]] = get_bits(&s->gb, 8); s 983 libavcodec/huffyuvdec.c p->data[0][0 + y_offset * p->linesize[0]] = get_bits(&s->gb, 8); s 985 libavcodec/huffyuvdec.c switch (s->predictor) { s 988 libavcodec/huffyuvdec.c decode_422_bitstream(s, width - 2); s 989 libavcodec/huffyuvdec.c lefty = s->llviddsp.add_left_pred(p->data[0] + p->linesize[0] * y_offset + 2, s->temp[0], s 991 libavcodec/huffyuvdec.c if (!(s->flags & AV_CODEC_FLAG_GRAY)) { s 992 libavcodec/huffyuvdec.c leftu = s->llviddsp.add_left_pred(p->data[1] + p->linesize[1] * y_offset + 1, s->temp[1], width2 - 1, leftu); s 993 libavcodec/huffyuvdec.c leftv = s->llviddsp.add_left_pred(p->data[2] + p->linesize[2] * y_offset + 1, s->temp[2], width2 - 1, leftv); s 999 libavcodec/huffyuvdec.c if (s->bitstream_bpp == 12) { s 1000 libavcodec/huffyuvdec.c decode_gray_bitstream(s, width); s 1004 libavcodec/huffyuvdec.c lefty = s->llviddsp.add_left_pred(ydst, s->temp[0], s 1006 libavcodec/huffyuvdec.c if (s->predictor == PLANE) { s 1007 libavcodec/huffyuvdec.c if (y > s->interlaced) s 1008 libavcodec/huffyuvdec.c s->llviddsp.add_bytes(ydst, ydst - fake_ystride, width); s 1015 libavcodec/huffyuvdec.c draw_slice(s, p, y); s 1021 libavcodec/huffyuvdec.c decode_422_bitstream(s, width); s 1022 libavcodec/huffyuvdec.c lefty = s->llviddsp.add_left_pred(ydst, s->temp[0], s 1024 libavcodec/huffyuvdec.c if (!(s->flags & AV_CODEC_FLAG_GRAY)) { s 1025 libavcodec/huffyuvdec.c leftu = s->llviddsp.add_left_pred(udst, s->temp[1], width2, leftu); s 1026 libavcodec/huffyuvdec.c leftv = s->llviddsp.add_left_pred(vdst, s->temp[2], width2, leftv); s 1028 libavcodec/huffyuvdec.c if (s->predictor == PLANE) { s 1029 libavcodec/huffyuvdec.c if (cy > s->interlaced) { s 1030 libavcodec/huffyuvdec.c s->llviddsp.add_bytes(ydst, ydst - fake_ystride, width); s 1031 libavcodec/huffyuvdec.c if (!(s->flags & AV_CODEC_FLAG_GRAY)) { s 1032 libavcodec/huffyuvdec.c s->llviddsp.add_bytes(udst, udst - fake_ustride, width2); s 1033 libavcodec/huffyuvdec.c s->llviddsp.add_bytes(vdst, vdst - fake_vstride, width2); s 1038 libavcodec/huffyuvdec.c draw_slice(s, p, height); s 1043 libavcodec/huffyuvdec.c decode_422_bitstream(s, width - 2); s 1044 libavcodec/huffyuvdec.c lefty = s->llviddsp.add_left_pred(p->data[0] + 2, s->temp[0], s 1046 libavcodec/huffyuvdec.c if (!(s->flags & AV_CODEC_FLAG_GRAY)) { s 1047 libavcodec/huffyuvdec.c leftu = s->llviddsp.add_left_pred(p->data[1] + 1, s->temp[1], width2 - 1, leftu); s 1048 libavcodec/huffyuvdec.c leftv = s->llviddsp.add_left_pred(p->data[2] + 1, s->temp[2], width2 - 1, leftv); s 1056 libavcodec/huffyuvdec.c if (s->interlaced) { s 1057 libavcodec/huffyuvdec.c decode_422_bitstream(s, width); s 1058 libavcodec/huffyuvdec.c lefty = s->llviddsp.add_left_pred(p->data[0] + p->linesize[0], s 1059 libavcodec/huffyuvdec.c s->temp[0], width, lefty); s 1060 libavcodec/huffyuvdec.c if (!(s->flags & AV_CODEC_FLAG_GRAY)) { s 1061 libavcodec/huffyuvdec.c leftu = s->llviddsp.add_left_pred(p->data[1] + p->linesize[2], s->temp[1], width2, leftu); s 1062 libavcodec/huffyuvdec.c leftv = s->llviddsp.add_left_pred(p->data[2] + p->linesize[1], s->temp[2], width2, leftv); s 1071 libavcodec/huffyuvdec.c decode_422_bitstream(s, 4); s 1072 libavcodec/huffyuvdec.c lefty = s->llviddsp.add_left_pred(p->data[0] + fake_ystride, s 1073 libavcodec/huffyuvdec.c s->temp[0], 4, lefty); s 1074 libavcodec/huffyuvdec.c if (!(s->flags & AV_CODEC_FLAG_GRAY)) { s 1075 libavcodec/huffyuvdec.c leftu = s->llviddsp.add_left_pred(p->data[1] + fake_ustride, s->temp[1], 2, leftu); s 1076 libavcodec/huffyuvdec.c leftv = s->llviddsp.add_left_pred(p->data[2] + fake_vstride, s->temp[2], 2, leftv); s 1081 libavcodec/huffyuvdec.c decode_422_bitstream(s, width - 4); s 1082 libavcodec/huffyuvdec.c s->llviddsp.add_median_pred(p->data[0] + fake_ystride + 4, s 1083 libavcodec/huffyuvdec.c p->data[0] + 4, s->temp[0], s 1085 libavcodec/huffyuvdec.c if (!(s->flags & AV_CODEC_FLAG_GRAY)) { s 1088 libavcodec/huffyuvdec.c s->llviddsp.add_median_pred(p->data[1] + fake_ustride + 2, p->data[1] + 2, s->temp[1], width2 - 2, &leftu, &lefttopu); s 1089 libavcodec/huffyuvdec.c s->llviddsp.add_median_pred(p->data[2] + fake_vstride + 2, p->data[2] + 2, s->temp[2], width2 - 2, &leftv, &lefttopv); s 1097 libavcodec/huffyuvdec.c if (s->bitstream_bpp == 12) { s 1099 libavcodec/huffyuvdec.c decode_gray_bitstream(s, width); s 1101 libavcodec/huffyuvdec.c s->llviddsp.add_median_pred(ydst, ydst - fake_ystride, s 1102 libavcodec/huffyuvdec.c s->temp[0], width, s 1109 libavcodec/huffyuvdec.c draw_slice(s, p, y); s 1111 libavcodec/huffyuvdec.c decode_422_bitstream(s, width); s 1117 libavcodec/huffyuvdec.c s->llviddsp.add_median_pred(ydst, ydst - fake_ystride, s 1118 libavcodec/huffyuvdec.c s->temp[0], width, s 1120 libavcodec/huffyuvdec.c if (!(s->flags & AV_CODEC_FLAG_GRAY)) { s 1121 libavcodec/huffyuvdec.c s->llviddsp.add_median_pred(udst, udst - fake_ustride, s->temp[1], width2, &leftu, &lefttopu); s 1122 libavcodec/huffyuvdec.c s->llviddsp.add_median_pred(vdst, vdst - fake_vstride, s->temp[2], width2, &leftv, &lefttopv); s 1126 libavcodec/huffyuvdec.c draw_slice(s, p, height); s 1135 libavcodec/huffyuvdec.c if (s->bitstream_bpp == 32) { s 1136 libavcodec/huffyuvdec.c left[A] = p->data[0][last_line + A] = get_bits(&s->gb, 8); s 1137 libavcodec/huffyuvdec.c left[R] = p->data[0][last_line + R] = get_bits(&s->gb, 8); s 1138 libavcodec/huffyuvdec.c left[G] = p->data[0][last_line + G] = get_bits(&s->gb, 8); s 1139 libavcodec/huffyuvdec.c left[B] = p->data[0][last_line + B] = get_bits(&s->gb, 8); s 1141 libavcodec/huffyuvdec.c left[R] = p->data[0][last_line + R] = get_bits(&s->gb, 8); s 1142 libavcodec/huffyuvdec.c left[G] = p->data[0][last_line + G] = get_bits(&s->gb, 8); s 1143 libavcodec/huffyuvdec.c left[B] = p->data[0][last_line + B] = get_bits(&s->gb, 8); s 1145 libavcodec/huffyuvdec.c skip_bits(&s->gb, 8); s 1148 libavcodec/huffyuvdec.c if (s->bgr32) { s 1149 libavcodec/huffyuvdec.c switch (s->predictor) { s 1152 libavcodec/huffyuvdec.c decode_bgr_bitstream(s, width - 1); s 1153 libavcodec/huffyuvdec.c s->hdsp.add_hfyu_left_pred_bgr32(p->data[0] + last_line + 4, s 1154 libavcodec/huffyuvdec.c s->temp[0], width - 1, left); s 1157 libavcodec/huffyuvdec.c decode_bgr_bitstream(s, width); s 1159 libavcodec/huffyuvdec.c s->hdsp.add_hfyu_left_pred_bgr32(p->data[0] + p->linesize[0] * (y + y_offset), s 1160 libavcodec/huffyuvdec.c s->temp[0], width, left); s 1161 libavcodec/huffyuvdec.c if (s->predictor == PLANE) { s 1162 libavcodec/huffyuvdec.c if (s->bitstream_bpp != 32) s 1164 libavcodec/huffyuvdec.c if (y < height - 1 - s->interlaced) { s 1165 libavcodec/huffyuvdec.c s->llviddsp.add_bytes(p->data[0] + p->linesize[0] * (y + y_offset), s 1172 libavcodec/huffyuvdec.c draw_slice(s, p, height); s 1193 libavcodec/huffyuvdec.c HYuvContext *s = avctx->priv_data; s 1194 libavcodec/huffyuvdec.c const int width = s->width; s 1195 libavcodec/huffyuvdec.c const int height = s->height; s 1205 libavcodec/huffyuvdec.c av_fast_padded_malloc(&s->bitstream_buffer, s 1206 libavcodec/huffyuvdec.c &s->bitstream_buffer_size, s 1208 libavcodec/huffyuvdec.c if (!s->bitstream_buffer) s 1211 libavcodec/huffyuvdec.c s->bdsp.bswap_buf((uint32_t *) s->bitstream_buffer, s 1217 libavcodec/huffyuvdec.c if (s->context) { s 1218 libavcodec/huffyuvdec.c table_size = read_huffman_tables(s, s->bitstream_buffer, buf_size); s 1226 libavcodec/huffyuvdec.c s->last_slice_end = 0; s 1234 libavcodec/huffyuvdec.c s->chroma_v_shift || s 1254 libavcodec/huffyuvdec.c s->bdsp.bswap_buf((uint32_t *)s->bitstream_buffer, s 1270 libavcodec/huffyuvdec.c return (get_bits_count(&s->gb) + 31) / 32 * 4 + table_size; s 41 libavcodec/huffyuvenc.c static inline void diff_bytes(HYuvContext *s, uint8_t *dst, s 44 libavcodec/huffyuvenc.c if (s->bps <= 8) { s 45 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(dst, src0, src1, w); s 47 libavcodec/huffyuvenc.c s->hencdsp.diff_int16((uint16_t *)dst, (const uint16_t *)src0, (const uint16_t *)src1, s->n - 1, w); s 51 libavcodec/huffyuvenc.c static inline int sub_left_prediction(HYuvContext *s, uint8_t *dst, s 57 libavcodec/huffyuvenc.c if (s->bps <= 8) { s 65 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(dst + 32, src + 32, src + 31, w - 32); s 77 libavcodec/huffyuvenc.c s->hencdsp.diff_int16(dst16 + 32, src16 + 32, src16 + 31, s->n - 1, w - 32); s 82 libavcodec/huffyuvenc.c static inline void sub_left_prediction_bgr32(HYuvContext *s, uint8_t *dst, s 110 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(dst + 32, src + 32, src + 32 - 4, w * 4 - 32); s 118 libavcodec/huffyuvenc.c static inline void sub_left_prediction_rgb24(HYuvContext *s, uint8_t *dst, s 139 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(dst + 48, src + 48, src + 48 - 3, w * 3 - 48); s 146 libavcodec/huffyuvenc.c static void sub_median_prediction(HYuvContext *s, uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w, int *left, int *left_top) s 148 libavcodec/huffyuvenc.c if (s->bps <= 8) { s 149 libavcodec/huffyuvenc.c s->llvidencdsp.sub_median_pred(dst, src1, src2, w , left, left_top); s 151 libavcodec/huffyuvenc.c s->hencdsp.sub_hfyu_median_pred_int16((uint16_t *)dst, (const uint16_t *)src1, (const uint16_t *)src2, s->n - 1, w , left, left_top); s 155 libavcodec/huffyuvenc.c static int store_table(HYuvContext *s, const uint8_t *len, uint8_t *buf) s 159 libavcodec/huffyuvenc.c int n = s->vlc_n; s 180 libavcodec/huffyuvenc.c static int store_huffman_tables(HYuvContext *s, uint8_t *buf) s 186 libavcodec/huffyuvenc.c if (s->version > 2) s 187 libavcodec/huffyuvenc.c count = 1 + s->alpha + 2*s->chroma; s 190 libavcodec/huffyuvenc.c if ((ret = ff_huff_gen_len_table(s->len[i], s->stats[i], s->vlc_n, 0)) < 0) s 193 libavcodec/huffyuvenc.c if (ff_huffyuv_generate_bits_table(s->bits[i], s->len[i], s->vlc_n) < 0) { s 197 libavcodec/huffyuvenc.c size += store_table(s, s->len[i], buf + size); s 204 libavcodec/huffyuvenc.c HYuvContext *s = avctx->priv_data; s 210 libavcodec/huffyuvenc.c ff_huffyuvencdsp_init(&s->hencdsp, avctx); s 211 libavcodec/huffyuvenc.c ff_llvidencdsp_init(&s->llvidencdsp); s 214 libavcodec/huffyuvenc.c if (s->flags&AV_CODEC_FLAG_PASS1) { s 220 libavcodec/huffyuvenc.c s->version = 2; s 234 libavcodec/huffyuvenc.c s->context = avctx->context_model; s 238 libavcodec/huffyuvenc.c s->bps = desc->comp[0].depth; s 239 libavcodec/huffyuvenc.c s->yuv = !(desc->flags & AV_PIX_FMT_FLAG_RGB) && desc->nb_components >= 2; s 240 libavcodec/huffyuvenc.c s->chroma = desc->nb_components > 2; s 241 libavcodec/huffyuvenc.c s->alpha = !!(desc->flags & AV_PIX_FMT_FLAG_ALPHA); s 243 libavcodec/huffyuvenc.c &s->chroma_h_shift, s 244 libavcodec/huffyuvenc.c &s->chroma_v_shift); s 249 libavcodec/huffyuvenc.c if (s->width & 1) { s 253 libavcodec/huffyuvenc.c s->bitstream_bpp = avctx->pix_fmt == AV_PIX_FMT_YUV420P ? 12 : 16; s 295 libavcodec/huffyuvenc.c s->version = 3; s 298 libavcodec/huffyuvenc.c s->bitstream_bpp = 32; s 301 libavcodec/huffyuvenc.c s->bitstream_bpp = 24; s 307 libavcodec/huffyuvenc.c s->n = 1<<s->bps; s 308 libavcodec/huffyuvenc.c s->vlc_n = FFMIN(s->n, MAX_VLC_N); s 310 libavcodec/huffyuvenc.c avctx->bits_per_coded_sample = s->bitstream_bpp; s 311 libavcodec/huffyuvenc.c s->decorrelate = s->bitstream_bpp >= 24 && !s->yuv && !(desc->flags & AV_PIX_FMT_FLAG_PLANAR); s 315 libavcodec/huffyuvenc.c s->predictor = avctx->prediction_method; s 318 libavcodec/huffyuvenc.c s->interlaced = avctx->flags & AV_CODEC_FLAG_INTERLACED_ME ? 1 : 0; s 319 libavcodec/huffyuvenc.c if (s->context) { s 320 libavcodec/huffyuvenc.c if (s->flags & (AV_CODEC_FLAG_PASS1 | AV_CODEC_FLAG_PASS2)) { s 336 libavcodec/huffyuvenc.c if (s->context) { s 342 libavcodec/huffyuvenc.c if (s->version > 2) { s 349 libavcodec/huffyuvenc.c if (s->interlaced != ( s->height > 288 )) s 354 libavcodec/huffyuvenc.c if (s->version > 3 && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { s 360 libavcodec/huffyuvenc.c if (s->bitstream_bpp >= 24 && s->predictor == MEDIAN && s->version <= 2) { s 366 libavcodec/huffyuvenc.c ((uint8_t*)avctx->extradata)[0] = s->predictor | (s->decorrelate << 6); s 367 libavcodec/huffyuvenc.c ((uint8_t*)avctx->extradata)[2] = s->interlaced ? 0x10 : 0x20; s 368 libavcodec/huffyuvenc.c if (s->context) s 370 libavcodec/huffyuvenc.c if (s->version < 3) { s 371 libavcodec/huffyuvenc.c ((uint8_t*)avctx->extradata)[1] = s->bitstream_bpp; s 374 libavcodec/huffyuvenc.c ((uint8_t*)avctx->extradata)[1] = ((s->bps-1)<<4) | s->chroma_h_shift | (s->chroma_v_shift<<2); s 375 libavcodec/huffyuvenc.c if (s->chroma) s 376 libavcodec/huffyuvenc.c ((uint8_t*)avctx->extradata)[2] |= s->yuv ? 1 : 2; s 377 libavcodec/huffyuvenc.c if (s->alpha) s 381 libavcodec/huffyuvenc.c s->avctx->extradata_size = 4; s 387 libavcodec/huffyuvenc.c for (j = 0; j < s->vlc_n; j++) s 388 libavcodec/huffyuvenc.c s->stats[i][j] = 1; s 394 libavcodec/huffyuvenc.c for (j = 0; j < s->vlc_n; j++) { s 395 libavcodec/huffyuvenc.c s->stats[i][j] += strtol(p, &next, 0); s 404 libavcodec/huffyuvenc.c for (j = 0; j < s->vlc_n; j++) { s 405 libavcodec/huffyuvenc.c int d = FFMIN(j, s->vlc_n - j); s 407 libavcodec/huffyuvenc.c s->stats[i][j] = 100000000 / (d*d + 1); s 411 libavcodec/huffyuvenc.c ret = store_huffman_tables(s, s->avctx->extradata + s->avctx->extradata_size); s 414 libavcodec/huffyuvenc.c s->avctx->extradata_size += ret; s 416 libavcodec/huffyuvenc.c if (s->context) { s 418 libavcodec/huffyuvenc.c int pels = s->width * s->height / (i ? 40 : 10); s 419 libavcodec/huffyuvenc.c for (j = 0; j < s->vlc_n; j++) { s 420 libavcodec/huffyuvenc.c int d = FFMIN(j, s->vlc_n - j); s 421 libavcodec/huffyuvenc.c s->stats[i][j] = pels/(d*d + 1); s 426 libavcodec/huffyuvenc.c for (j = 0; j < s->vlc_n; j++) s 427 libavcodec/huffyuvenc.c s->stats[i][j]= 0; s 430 libavcodec/huffyuvenc.c if (ff_huffyuv_alloc_temp(s)) { s 431 libavcodec/huffyuvenc.c ff_huffyuv_common_end(s); s 435 libavcodec/huffyuvenc.c s->picture_number=0; s 439 libavcodec/huffyuvenc.c static int encode_422_bitstream(HYuvContext *s, int offset, int count) s 442 libavcodec/huffyuvenc.c const uint8_t *y = s->temp[0] + offset; s 443 libavcodec/huffyuvenc.c const uint8_t *u = s->temp[1] + offset / 2; s 444 libavcodec/huffyuvenc.c const uint8_t *v = s->temp[2] + offset / 2; s 446 libavcodec/huffyuvenc.c if (s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb) >> 3) < 2 * 4 * count) { s 447 libavcodec/huffyuvenc.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 459 libavcodec/huffyuvenc.c if (s->flags & AV_CODEC_FLAG_PASS1) { s 462 libavcodec/huffyuvenc.c s->stats[0][y0]++; s 463 libavcodec/huffyuvenc.c s->stats[1][u0]++; s 464 libavcodec/huffyuvenc.c s->stats[0][y1]++; s 465 libavcodec/huffyuvenc.c s->stats[2][v0]++; s 468 libavcodec/huffyuvenc.c if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) s 470 libavcodec/huffyuvenc.c if (s->context) { s 473 libavcodec/huffyuvenc.c s->stats[0][y0]++; s 474 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[0][y0], s->bits[0][y0]); s 475 libavcodec/huffyuvenc.c s->stats[1][u0]++; s 476 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[1][u0], s->bits[1][u0]); s 477 libavcodec/huffyuvenc.c s->stats[0][y1]++; s 478 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[0][y1], s->bits[0][y1]); s 479 libavcodec/huffyuvenc.c s->stats[2][v0]++; s 480 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[2][v0], s->bits[2][v0]); s 485 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[0][y0], s->bits[0][y0]); s 486 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[1][u0], s->bits[1][u0]); s 487 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[0][y1], s->bits[0][y1]); s 488 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[2][v0], s->bits[2][v0]); s 494 libavcodec/huffyuvenc.c static int encode_plane_bitstream(HYuvContext *s, int width, int plane) s 498 libavcodec/huffyuvenc.c if (s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb) >> 3) < count * s->bps / 2) { s 499 libavcodec/huffyuvenc.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 504 libavcodec/huffyuvenc.c int y0 = s->temp[0][width-1]; s 506 libavcodec/huffyuvenc.c int y0 = s->temp16[0][width-1] & mask; s 508 libavcodec/huffyuvenc.c int y0 = s->temp16[0][width-1]; s 510 libavcodec/huffyuvenc.c s->stats[plane][y0]++; s 512 libavcodec/huffyuvenc.c s->stats[plane][y0>>2]++; s 514 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[plane][y0], s->bits[plane][y0]); s 516 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[plane][y0>>2], s->bits[plane][y0>>2]);\ s 517 libavcodec/huffyuvenc.c put_bits(&s->pb, 2, y0&3); s 520 libavcodec/huffyuvenc.c int y0 = s->temp[0][2 * i];\ s 521 libavcodec/huffyuvenc.c int y1 = s->temp[0][2 * i + 1]; s 523 libavcodec/huffyuvenc.c int y0 = s->temp16[0][2 * i] & mask;\ s 524 libavcodec/huffyuvenc.c int y1 = s->temp16[0][2 * i + 1] & mask; s 526 libavcodec/huffyuvenc.c int y0 = s->temp16[0][2 * i];\ s 527 libavcodec/huffyuvenc.c int y1 = s->temp16[0][2 * i + 1]; s 529 libavcodec/huffyuvenc.c s->stats[plane][y0]++;\ s 530 libavcodec/huffyuvenc.c s->stats[plane][y1]++; s 532 libavcodec/huffyuvenc.c s->stats[plane][y0>>2]++;\ s 533 libavcodec/huffyuvenc.c s->stats[plane][y1>>2]++; s 535 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[plane][y0], s->bits[plane][y0]);\ s 536 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[plane][y1], s->bits[plane][y1]); s 538 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[plane][y0>>2], s->bits[plane][y0>>2]);\ s 539 libavcodec/huffyuvenc.c put_bits(&s->pb, 2, y0&3);\ s 540 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[plane][y1>>2], s->bits[plane][y1>>2]);\ s 541 libavcodec/huffyuvenc.c put_bits(&s->pb, 2, y1&3); s 543 libavcodec/huffyuvenc.c if (s->bps <= 8) { s 544 libavcodec/huffyuvenc.c if (s->flags & AV_CODEC_FLAG_PASS1) { s 554 libavcodec/huffyuvenc.c if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) s 557 libavcodec/huffyuvenc.c if (s->context) { s 578 libavcodec/huffyuvenc.c } else if (s->bps <= 14) { s 579 libavcodec/huffyuvenc.c int mask = s->n - 1; s 580 libavcodec/huffyuvenc.c if (s->flags & AV_CODEC_FLAG_PASS1) { s 590 libavcodec/huffyuvenc.c if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) s 593 libavcodec/huffyuvenc.c if (s->context) { s 615 libavcodec/huffyuvenc.c if (s->flags & AV_CODEC_FLAG_PASS1) { s 625 libavcodec/huffyuvenc.c if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) s 628 libavcodec/huffyuvenc.c if (s->context) { s 656 libavcodec/huffyuvenc.c static int encode_gray_bitstream(HYuvContext *s, int count) s 660 libavcodec/huffyuvenc.c if (s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb) >> 3) < 4 * count) { s 661 libavcodec/huffyuvenc.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 666 libavcodec/huffyuvenc.c int y0 = s->temp[0][2 * i];\ s 667 libavcodec/huffyuvenc.c int y1 = s->temp[0][2 * i + 1]; s 669 libavcodec/huffyuvenc.c s->stats[0][y0]++;\ s 670 libavcodec/huffyuvenc.c s->stats[0][y1]++; s 672 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[0][y0], s->bits[0][y0]);\ s 673 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[0][y1], s->bits[0][y1]); s 677 libavcodec/huffyuvenc.c if (s->flags & AV_CODEC_FLAG_PASS1) { s 683 libavcodec/huffyuvenc.c if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) s 686 libavcodec/huffyuvenc.c if (s->context) { s 701 libavcodec/huffyuvenc.c static inline int encode_bgra_bitstream(HYuvContext *s, int count, int planes) s 705 libavcodec/huffyuvenc.c if (s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb) >> 3) < s 707 libavcodec/huffyuvenc.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 712 libavcodec/huffyuvenc.c int g = s->temp[0][planes == 3 ? 3 * i + 1 : 4 * i + G]; \ s 713 libavcodec/huffyuvenc.c int b =(s->temp[0][planes == 3 ? 3 * i + 2 : 4 * i + B] - g) & 0xFF;\ s 714 libavcodec/huffyuvenc.c int r =(s->temp[0][planes == 3 ? 3 * i + 0 : 4 * i + R] - g) & 0xFF;\ s 715 libavcodec/huffyuvenc.c int a = s->temp[0][planes * i + A]; s 718 libavcodec/huffyuvenc.c s->stats[0][b]++; \ s 719 libavcodec/huffyuvenc.c s->stats[1][g]++; \ s 720 libavcodec/huffyuvenc.c s->stats[2][r]++; \ s 722 libavcodec/huffyuvenc.c s->stats[2][a]++; s 725 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[1][g], s->bits[1][g]); \ s 726 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[0][b], s->bits[0][b]); \ s 727 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[2][r], s->bits[2][r]); \ s 729 libavcodec/huffyuvenc.c put_bits(&s->pb, s->len[2][a], s->bits[2][a]); s 731 libavcodec/huffyuvenc.c if ((s->flags & AV_CODEC_FLAG_PASS1) && s 732 libavcodec/huffyuvenc.c (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT)) { s 737 libavcodec/huffyuvenc.c } else if (s->context || (s->flags & AV_CODEC_FLAG_PASS1)) { s 755 libavcodec/huffyuvenc.c HYuvContext *s = avctx->priv_data; s 756 libavcodec/huffyuvenc.c const int width = s->width; s 757 libavcodec/huffyuvenc.c const int width2 = s->width>>1; s 758 libavcodec/huffyuvenc.c const int height = s->height; s 759 libavcodec/huffyuvenc.c const int fake_ystride = s->interlaced ? pict->linesize[0]*2 : pict->linesize[0]; s 760 libavcodec/huffyuvenc.c const int fake_ustride = s->interlaced ? pict->linesize[1]*2 : pict->linesize[1]; s 761 libavcodec/huffyuvenc.c const int fake_vstride = s->interlaced ? pict->linesize[2]*2 : pict->linesize[2]; s 768 libavcodec/huffyuvenc.c if (s->context) { s 769 libavcodec/huffyuvenc.c size = store_huffman_tables(s, pkt->data); s 774 libavcodec/huffyuvenc.c for (j = 0; j < s->vlc_n; j++) s 775 libavcodec/huffyuvenc.c s->stats[i][j] >>= 1; s 778 libavcodec/huffyuvenc.c init_put_bits(&s->pb, pkt->data + size, pkt->size - size); s 784 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, leftv = p->data[2][0]); s 785 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, lefty = p->data[0][1]); s 786 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, leftu = p->data[1][0]); s 787 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, p->data[0][0]); s 789 libavcodec/huffyuvenc.c lefty = sub_left_prediction(s, s->temp[0], p->data[0], width , 0); s 790 libavcodec/huffyuvenc.c leftu = sub_left_prediction(s, s->temp[1], p->data[1], width2, 0); s 791 libavcodec/huffyuvenc.c leftv = sub_left_prediction(s, s->temp[2], p->data[2], width2, 0); s 793 libavcodec/huffyuvenc.c encode_422_bitstream(s, 2, width-2); s 795 libavcodec/huffyuvenc.c if (s->predictor==MEDIAN) { s 798 libavcodec/huffyuvenc.c if (s->interlaced) { s 799 libavcodec/huffyuvenc.c lefty = sub_left_prediction(s, s->temp[0], p->data[0] + p->linesize[0], width , lefty); s 800 libavcodec/huffyuvenc.c leftu = sub_left_prediction(s, s->temp[1], p->data[1] + p->linesize[1], width2, leftu); s 801 libavcodec/huffyuvenc.c leftv = sub_left_prediction(s, s->temp[2], p->data[2] + p->linesize[2], width2, leftv); s 803 libavcodec/huffyuvenc.c encode_422_bitstream(s, 0, width); s 807 libavcodec/huffyuvenc.c lefty = sub_left_prediction(s, s->temp[0], p->data[0] + fake_ystride, 4, lefty); s 808 libavcodec/huffyuvenc.c leftu = sub_left_prediction(s, s->temp[1], p->data[1] + fake_ustride, 2, leftu); s 809 libavcodec/huffyuvenc.c leftv = sub_left_prediction(s, s->temp[2], p->data[2] + fake_vstride, 2, leftv); s 811 libavcodec/huffyuvenc.c encode_422_bitstream(s, 0, 4); s 816 libavcodec/huffyuvenc.c s->llvidencdsp.sub_median_pred(s->temp[0], p->data[0] + 4, p->data[0] + fake_ystride + 4, width - 4, &lefty, &lefttopy); s 817 libavcodec/huffyuvenc.c s->llvidencdsp.sub_median_pred(s->temp[1], p->data[1] + 2, p->data[1] + fake_ustride + 2, width2 - 2, &leftu, &lefttopu); s 818 libavcodec/huffyuvenc.c s->llvidencdsp.sub_median_pred(s->temp[2], p->data[2] + 2, p->data[2] + fake_vstride + 2, width2 - 2, &leftv, &lefttopv); s 819 libavcodec/huffyuvenc.c encode_422_bitstream(s, 0, width - 4); s 825 libavcodec/huffyuvenc.c if (s->bitstream_bpp == 12) { s 828 libavcodec/huffyuvenc.c s->llvidencdsp.sub_median_pred(s->temp[0], ydst - fake_ystride, ydst, width, &lefty, &lefttopy); s 829 libavcodec/huffyuvenc.c encode_gray_bitstream(s, width); s 838 libavcodec/huffyuvenc.c s->llvidencdsp.sub_median_pred(s->temp[0], ydst - fake_ystride, ydst, width, &lefty, &lefttopy); s 839 libavcodec/huffyuvenc.c s->llvidencdsp.sub_median_pred(s->temp[1], udst - fake_ustride, udst, width2, &leftu, &lefttopu); s 840 libavcodec/huffyuvenc.c s->llvidencdsp.sub_median_pred(s->temp[2], vdst - fake_vstride, vdst, width2, &leftv, &lefttopv); s 842 libavcodec/huffyuvenc.c encode_422_bitstream(s, 0, width); s 849 libavcodec/huffyuvenc.c if (s->bitstream_bpp == 12) { s 852 libavcodec/huffyuvenc.c if (s->predictor == PLANE && s->interlaced < y) { s 853 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(s->temp[1], ydst, ydst - fake_ystride, width); s 855 libavcodec/huffyuvenc.c lefty = sub_left_prediction(s, s->temp[0], s->temp[1], width , lefty); s 857 libavcodec/huffyuvenc.c lefty = sub_left_prediction(s, s->temp[0], ydst, width , lefty); s 859 libavcodec/huffyuvenc.c encode_gray_bitstream(s, width); s 868 libavcodec/huffyuvenc.c if (s->predictor == PLANE && s->interlaced < cy) { s 869 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(s->temp[1], ydst, ydst - fake_ystride, width); s 870 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(s->temp[2], udst, udst - fake_ustride, width2); s 871 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(s->temp[2] + width2, vdst, vdst - fake_vstride, width2); s 873 libavcodec/huffyuvenc.c lefty = sub_left_prediction(s, s->temp[0], s->temp[1], width , lefty); s 874 libavcodec/huffyuvenc.c leftu = sub_left_prediction(s, s->temp[1], s->temp[2], width2, leftu); s 875 libavcodec/huffyuvenc.c leftv = sub_left_prediction(s, s->temp[2], s->temp[2] + width2, width2, leftv); s 877 libavcodec/huffyuvenc.c lefty = sub_left_prediction(s, s->temp[0], ydst, width , lefty); s 878 libavcodec/huffyuvenc.c leftu = sub_left_prediction(s, s->temp[1], udst, width2, leftu); s 879 libavcodec/huffyuvenc.c leftv = sub_left_prediction(s, s->temp[2], vdst, width2, leftv); s 882 libavcodec/huffyuvenc.c encode_422_bitstream(s, 0, width); s 892 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, lefta = data[A]); s 893 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, leftr = data[R]); s 894 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, leftg = data[G]); s 895 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, leftb = data[B]); s 897 libavcodec/huffyuvenc.c sub_left_prediction_bgr32(s, s->temp[0], data + 4, width - 1, s 899 libavcodec/huffyuvenc.c encode_bgra_bitstream(s, width - 1, 4); s 901 libavcodec/huffyuvenc.c for (y = 1; y < s->height; y++) { s 903 libavcodec/huffyuvenc.c if (s->predictor == PLANE && s->interlaced < y) { s 904 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(s->temp[1], dst, dst - fake_stride, width * 4); s 905 libavcodec/huffyuvenc.c sub_left_prediction_bgr32(s, s->temp[0], s->temp[1], width, s 908 libavcodec/huffyuvenc.c sub_left_prediction_bgr32(s, s->temp[0], dst, width, s 911 libavcodec/huffyuvenc.c encode_bgra_bitstream(s, width, 4); s 920 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, leftr = data[0]); s 921 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, leftg = data[1]); s 922 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, leftb = data[2]); s 923 libavcodec/huffyuvenc.c put_bits(&s->pb, 8, 0); s 925 libavcodec/huffyuvenc.c sub_left_prediction_rgb24(s, s->temp[0], data + 3, width - 1, s 927 libavcodec/huffyuvenc.c encode_bgra_bitstream(s, width-1, 3); s 929 libavcodec/huffyuvenc.c for (y = 1; y < s->height; y++) { s 931 libavcodec/huffyuvenc.c if (s->predictor == PLANE && s->interlaced < y) { s 932 libavcodec/huffyuvenc.c s->llvidencdsp.diff_bytes(s->temp[1], dst, dst - fake_stride, s 934 libavcodec/huffyuvenc.c sub_left_prediction_rgb24(s, s->temp[0], s->temp[1], width, s 937 libavcodec/huffyuvenc.c sub_left_prediction_rgb24(s, s->temp[0], dst, width, s 940 libavcodec/huffyuvenc.c encode_bgra_bitstream(s, width, 3); s 942 libavcodec/huffyuvenc.c } else if (s->version > 2) { s 944 libavcodec/huffyuvenc.c for (plane = 0; plane < 1 + 2*s->chroma + s->alpha; plane++) { s 950 libavcodec/huffyuvenc.c if (s->chroma && (plane == 1 || plane == 2)) { s 951 libavcodec/huffyuvenc.c w >>= s->chroma_h_shift; s 952 libavcodec/huffyuvenc.c h >>= s->chroma_v_shift; s 956 libavcodec/huffyuvenc.c left = sub_left_prediction(s, s->temp[0], p->data[plane], w , 0); s 958 libavcodec/huffyuvenc.c encode_plane_bitstream(s, w, plane); s 960 libavcodec/huffyuvenc.c if (s->predictor==MEDIAN) { s 963 libavcodec/huffyuvenc.c if (s->interlaced) { s 964 libavcodec/huffyuvenc.c left = sub_left_prediction(s, s->temp[0], p->data[plane] + p->linesize[plane], w , left); s 966 libavcodec/huffyuvenc.c encode_plane_bitstream(s, w, plane); s 975 libavcodec/huffyuvenc.c sub_median_prediction(s, s->temp[0], dst - fake_stride, dst, w , &left, &lefttop); s 977 libavcodec/huffyuvenc.c encode_plane_bitstream(s, w, plane); s 983 libavcodec/huffyuvenc.c if (s->predictor == PLANE && s->interlaced < y) { s 984 libavcodec/huffyuvenc.c diff_bytes(s, s->temp[1], dst, dst - fake_stride, w); s 986 libavcodec/huffyuvenc.c left = sub_left_prediction(s, s->temp[0], s->temp[1], w , left); s 988 libavcodec/huffyuvenc.c left = sub_left_prediction(s, s->temp[0], dst, w , left); s 991 libavcodec/huffyuvenc.c encode_plane_bitstream(s, w, plane); s 1000 libavcodec/huffyuvenc.c size += (put_bits_count(&s->pb) + 31) / 8; s 1001 libavcodec/huffyuvenc.c put_bits(&s->pb, 16, 0); s 1002 libavcodec/huffyuvenc.c put_bits(&s->pb, 15, 0); s 1005 libavcodec/huffyuvenc.c if ((s->flags & AV_CODEC_FLAG_PASS1) && (s->picture_number & 31) == 0) { s 1010 libavcodec/huffyuvenc.c for (j = 0; j < s->vlc_n; j++) { s 1011 libavcodec/huffyuvenc.c snprintf(p, end-p, "%"PRIu64" ", s->stats[i][j]); s 1013 libavcodec/huffyuvenc.c s->stats[i][j]= 0; s 1022 libavcodec/huffyuvenc.c if (!(s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT)) { s 1023 libavcodec/huffyuvenc.c flush_put_bits(&s->pb); s 1024 libavcodec/huffyuvenc.c s->bdsp.bswap_buf((uint32_t *) pkt->data, (uint32_t *) pkt->data, size); s 1027 libavcodec/huffyuvenc.c s->picture_number++; s 1038 libavcodec/huffyuvenc.c HYuvContext *s = avctx->priv_data; s 1040 libavcodec/huffyuvenc.c ff_huffyuv_common_end(s); s 116 libavcodec/idcinvideo.c static av_cold void huff_build_tree(IdcinContext *s, int prev) { s 121 libavcodec/idcinvideo.c hnodes = s->huff_nodes[prev]; s 143 libavcodec/idcinvideo.c s->num_huff_nodes[prev] = num_hnodes - 1; s 148 libavcodec/idcinvideo.c IdcinContext *s = avctx->priv_data; s 152 libavcodec/idcinvideo.c s->avctx = avctx; s 156 libavcodec/idcinvideo.c if (s->avctx->extradata_size != HUFFMAN_TABLE_SIZE) { s 157 libavcodec/idcinvideo.c av_log(s->avctx, AV_LOG_ERROR, " id CIN video: expected extradata size of %d\n", HUFFMAN_TABLE_SIZE); s 162 libavcodec/idcinvideo.c histograms = (unsigned char *)s->avctx->extradata; s 165 libavcodec/idcinvideo.c s->huff_nodes[i][j].count = histograms[histogram_index++]; s 166 libavcodec/idcinvideo.c huff_build_tree(s, i); s 172 libavcodec/idcinvideo.c static int idcin_decode_vlcs(IdcinContext *s, AVFrame *frame) s 181 libavcodec/idcinvideo.c for (y = 0; y < (frame->linesize[0] * s->avctx->height); s 183 libavcodec/idcinvideo.c for (x = y; x < y + s->avctx->width; x++) { s 184 libavcodec/idcinvideo.c node_num = s->num_huff_nodes[prev]; s 185 libavcodec/idcinvideo.c hnodes = s->huff_nodes[prev]; s 189 libavcodec/idcinvideo.c if(dat_pos >= s->size) { s 190 libavcodec/idcinvideo.c av_log(s->avctx, AV_LOG_ERROR, "Huffman decode error.\n"); s 194 libavcodec/idcinvideo.c v = s->buf[dat_pos++]; s 216 libavcodec/idcinvideo.c IdcinContext *s = avctx->priv_data; s 222 libavcodec/idcinvideo.c s->buf = buf; s 223 libavcodec/idcinvideo.c s->size = buf_size; s 228 libavcodec/idcinvideo.c if (idcin_decode_vlcs(s, frame)) s 233 libavcodec/idcinvideo.c memcpy(s->pal, pal, AVPALETTE_SIZE); s 238 libavcodec/idcinvideo.c memcpy(frame->data[1], s->pal, AVPALETTE_SIZE); s 155 libavcodec/iff.c IffContext *s = avctx->priv_data; s 171 libavcodec/iff.c if (s->flags && count >= 32) { // EHB s 182 libavcodec/iff.c if (s->masking == MASK_HAS_MASK) { s 190 libavcodec/iff.c } else if (s->masking == MASK_HAS_TRANSPARENT_COLOR && s 191 libavcodec/iff.c s->transparency < 1 << avctx->bits_per_coded_sample) s 192 libavcodec/iff.c pal[s->transparency] &= 0xFFFFFF; s 207 libavcodec/iff.c IffContext *s = avctx->priv_data; s 221 libavcodec/iff.c GetByteContext *gb = &s->gb; s 235 libavcodec/iff.c s->compression = (bytestream2_get_byte(gb) << 8) | (s->compression & 0xFF); s 238 libavcodec/iff.c s->is_short = !(extra & 1); s 239 libavcodec/iff.c s->is_brush = extra == 2; s 240 libavcodec/iff.c s->is_interlaced = !!(extra & 0x40); s 246 libavcodec/iff.c s->compression &= 0xFF; s 250 libavcodec/iff.c uint32_t *pal = s->pal; s 254 libavcodec/iff.c if (s->ham) { s 278 libavcodec/iff.c s->compression = bytestream_get_byte(&buf); s 279 libavcodec/iff.c s->bpp = bytestream_get_byte(&buf); s 280 libavcodec/iff.c s->ham = bytestream_get_byte(&buf); s 281 libavcodec/iff.c s->flags = bytestream_get_byte(&buf); s 282 libavcodec/iff.c s->transparency = bytestream_get_be16(&buf); s 283 libavcodec/iff.c s->masking = bytestream_get_byte(&buf); s 285 libavcodec/iff.c s->tvdc[i] = bytestream_get_be16(&buf); s 287 libavcodec/iff.c if (s->ham) { s 288 libavcodec/iff.c if (s->bpp > 8) { s 289 libavcodec/iff.c av_log(avctx, AV_LOG_ERROR, "Invalid number of hold bits for HAM: %u\n", s->ham); s 291 libavcodec/iff.c } else if (s->ham != (s->bpp > 6 ? 6 : 4)) { s 292 libavcodec/iff.c av_log(avctx, AV_LOG_ERROR, "Invalid number of hold bits for HAM: %u, BPP: %u\n", s->ham, s->bpp); s 297 libavcodec/iff.c if (s->masking == MASK_HAS_MASK) { s 298 libavcodec/iff.c if (s->bpp >= 8 && !s->ham) { s 300 libavcodec/iff.c av_freep(&s->mask_buf); s 301 libavcodec/iff.c av_freep(&s->mask_palbuf); s 302 libavcodec/iff.c s->mask_buf = av_malloc((s->planesize * 32) + AV_INPUT_BUFFER_PADDING_SIZE); s 303 libavcodec/iff.c if (!s->mask_buf) s 305 libavcodec/iff.c if (s->bpp > 16) { s 306 libavcodec/iff.c av_log(avctx, AV_LOG_ERROR, "bpp %d too large for palette\n", s->bpp); s 307 libavcodec/iff.c av_freep(&s->mask_buf); s 310 libavcodec/iff.c s->mask_palbuf = av_malloc((2 << s->bpp) * sizeof(uint32_t) + AV_INPUT_BUFFER_PADDING_SIZE); s 311 libavcodec/iff.c if (!s->mask_palbuf) { s 312 libavcodec/iff.c av_freep(&s->mask_buf); s 316 libavcodec/iff.c s->bpp++; s 317 libavcodec/iff.c } else if (s->masking != MASK_NONE && s->masking != MASK_HAS_TRANSPARENT_COLOR) { s 321 libavcodec/iff.c if (!s->bpp || s->bpp > 32) { s 322 libavcodec/iff.c av_log(avctx, AV_LOG_ERROR, "Invalid number of bitplanes: %u\n", s->bpp); s 325 libavcodec/iff.c if (s->video_size && s->planesize * s->bpp * avctx->height > s->video_size) s 328 libavcodec/iff.c av_freep(&s->ham_buf); s 329 libavcodec/iff.c av_freep(&s->ham_palbuf); s 331 libavcodec/iff.c if (s->ham) { s 332 libavcodec/iff.c int i, count = FFMIN(palette_size / 3, 1 << s->ham); s 337 libavcodec/iff.c if (avctx->codec_tag == MKTAG('P', 'B', 'M', ' ') && s->ham == 4) s 340 libavcodec/iff.c s->ham_buf = av_malloc((s->planesize * 8) + AV_INPUT_BUFFER_PADDING_SIZE); s 341 libavcodec/iff.c if (!s->ham_buf) s 344 libavcodec/iff.c ham_count = 8 * (1 << s->ham); s 345 libavcodec/iff.c s->ham_palbuf = av_malloc(extra_space * (ham_count << !!(s->masking == MASK_HAS_MASK)) * sizeof (uint32_t) + AV_INPUT_BUFFER_PADDING_SIZE); s 346 libavcodec/iff.c if (!s->ham_palbuf) { s 347 libavcodec/iff.c av_freep(&s->ham_buf); s 353 libavcodec/iff.c memset(s->ham_palbuf, 0, (1 << s->ham) * 2 * sizeof (uint32_t)); s 355 libavcodec/iff.c s->ham_palbuf[i*2+1] = 0xFF000000 | AV_RL24(palette + i*3); s 357 libavcodec/iff.c count = 1 << s->ham; s 359 libavcodec/iff.c count = 1 << s->ham; s 361 libavcodec/iff.c s->ham_palbuf[i*2] = 0xFF000000; // take direct color value from palette s 362 libavcodec/iff.c s->ham_palbuf[i*2+1] = 0xFF000000 | av_le2ne32(gray2rgb((i * 255) >> s->ham)); s 366 libavcodec/iff.c uint32_t tmp = i << (8 - s->ham); s 367 libavcodec/iff.c tmp |= tmp >> s->ham; s 368 libavcodec/iff.c s->ham_palbuf[(i+count)*2] = 0xFF00FFFF; // just modify blue color component s 369 libavcodec/iff.c s->ham_palbuf[(i+count*2)*2] = 0xFFFFFF00; // just modify red color component s 370 libavcodec/iff.c s->ham_palbuf[(i+count*3)*2] = 0xFFFF00FF; // just modify green color component s 371 libavcodec/iff.c s->ham_palbuf[(i+count)*2+1] = 0xFF000000 | tmp << 16; s 372 libavcodec/iff.c s->ham_palbuf[(i+count*2)*2+1] = 0xFF000000 | tmp; s 373 libavcodec/iff.c s->ham_palbuf[(i+count*3)*2+1] = 0xFF000000 | tmp << 8; s 375 libavcodec/iff.c if (s->masking == MASK_HAS_MASK) { s 377 libavcodec/iff.c s->ham_palbuf[(1 << s->bpp) + i] = s->ham_palbuf[i] | 0xFF000000; s 387 libavcodec/iff.c IffContext *s = avctx->priv_data; s 388 libavcodec/iff.c av_freep(&s->planebuf); s 389 libavcodec/iff.c av_freep(&s->ham_buf); s 390 libavcodec/iff.c av_freep(&s->ham_palbuf); s 391 libavcodec/iff.c av_freep(&s->mask_buf); s 392 libavcodec/iff.c av_freep(&s->mask_palbuf); s 393 libavcodec/iff.c av_freep(&s->video[0]); s 394 libavcodec/iff.c av_freep(&s->video[1]); s 395 libavcodec/iff.c av_freep(&s->pal); s 401 libavcodec/iff.c IffContext *s = avctx->priv_data; s 434 libavcodec/iff.c s->planesize = FFALIGN(avctx->width, 16) >> 3; // Align plane size in bits to word-boundary s 435 libavcodec/iff.c s->planebuf = av_malloc(s->planesize * avctx->height + AV_INPUT_BUFFER_PADDING_SIZE); s 436 libavcodec/iff.c if (!s->planebuf) s 439 libavcodec/iff.c s->bpp = avctx->bits_per_coded_sample; s 442 libavcodec/iff.c s->video_size = FFALIGN(avctx->width, 2) * avctx->height * s->bpp; s 443 libavcodec/iff.c if (!s->video_size) s 445 libavcodec/iff.c s->video[0] = av_calloc(FFALIGN(avctx->width, 2) * avctx->height, s->bpp); s 446 libavcodec/iff.c s->video[1] = av_calloc(FFALIGN(avctx->width, 2) * avctx->height, s->bpp); s 447 libavcodec/iff.c s->pal = av_calloc(256, sizeof(*s->pal)); s 448 libavcodec/iff.c if (!s->video[0] || !s->video[1] || !s->pal) s 1518 libavcodec/iff.c IffContext *s = avctx->priv_data; s 1519 libavcodec/iff.c avpriv_request_sample(avctx, "bitmap (compression 0x%0x, bpp %i, ham %i, interlaced %i)", s->compression, s->bpp, s->ham, s->is_interlaced); s 1527 libavcodec/iff.c IffContext *s = avctx->priv_data; s 1533 libavcodec/iff.c GetByteContext *gb = &s->gb; s 1543 libavcodec/iff.c s->frame = frame; s 1549 libavcodec/iff.c if (!s->init && avctx->bits_per_coded_sample <= 8 - (s->masking == MASK_HAS_MASK) && s 1553 libavcodec/iff.c } else if (!s->init && avctx->bits_per_coded_sample <= 8 && s 1555 libavcodec/iff.c if ((res = cmap_read_palette(avctx, s->mask_palbuf)) < 0) s 1558 libavcodec/iff.c s->init = 1; s 1560 libavcodec/iff.c if (s->compression <= 0xff && (avctx->codec_tag == MKTAG('A', 'N', 'I', 'M'))) { s 1562 libavcodec/iff.c memcpy(s->pal, s->frame->data[1], 256 * 4); s 1565 libavcodec/iff.c switch (s->compression) { s 1570 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1573 libavcodec/iff.c decodeplane8(row, buf, FFMIN(s->planesize, buf_end - buf), plane); s 1574 libavcodec/iff.c buf += s->planesize; s 1577 libavcodec/iff.c } else if (s->ham) { // HAM to AV_PIX_FMT_BGR32 s 1581 libavcodec/iff.c memset(s->ham_buf, 0, s->planesize * 8); s 1582 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1583 libavcodec/iff.c const uint8_t * start = buf + (plane * avctx->height + y) * s->planesize; s 1586 libavcodec/iff.c decodeplane8(s->ham_buf, start, FFMIN(s->planesize, buf_end - start), plane); s 1588 libavcodec/iff.c decode_ham_plane32((uint32_t *)row, s->ham_buf, s->ham_palbuf, s->planesize); s 1607 libavcodec/iff.c memcpy(s->video[0], buf, FFMIN(buf_end - buf, s->video_size)); s 1612 libavcodec/iff.c for (plane = 0; plane < s->bpp && buf < buf_end; plane++) { s 1613 libavcodec/iff.c decodeplane8(row, buf, FFMIN(s->planesize, buf_end - buf), plane); s 1614 libavcodec/iff.c buf += s->planesize; s 1617 libavcodec/iff.c } else if (s->ham) { // HAM to AV_PIX_FMT_BGR32 s 1620 libavcodec/iff.c memset(s->ham_buf, 0, s->planesize * 8); s 1621 libavcodec/iff.c for (plane = 0; plane < s->bpp && buf < buf_end; plane++) { s 1622 libavcodec/iff.c decodeplane8(s->ham_buf, buf, FFMIN(s->planesize, buf_end - buf), plane); s 1623 libavcodec/iff.c buf += s->planesize; s 1625 libavcodec/iff.c decode_ham_plane32((uint32_t *)row, s->ham_buf, s->ham_palbuf, s->planesize); s 1631 libavcodec/iff.c for (plane = 0; plane < s->bpp && buf < buf_end; plane++) { s 1633 libavcodec/iff.c FFMIN(s->planesize, buf_end - buf), plane); s 1634 libavcodec/iff.c buf += s->planesize; s 1645 libavcodec/iff.c } else if (s->ham) { // IFF-PBM: HAM to AV_PIX_FMT_BGR32 s 1648 libavcodec/iff.c memcpy(s->ham_buf, buf, FFMIN(avctx->width, buf_end - buf)); s 1650 libavcodec/iff.c decode_ham_plane32((uint32_t *)row, s->ham_buf, s->ham_palbuf, s->planesize); s 1662 libavcodec/iff.c uint8_t *video = s->video[0]; s 1667 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1668 libavcodec/iff.c buf += decode_byterun(s->planebuf, s->planesize, gb); s 1670 libavcodec/iff.c memcpy(video, s->planebuf, s->planesize); s 1671 libavcodec/iff.c video += s->planesize; s 1673 libavcodec/iff.c decodeplane8(row, s->planebuf, s->planesize, plane); s 1679 libavcodec/iff.c memset(s->mask_buf, 0, avctx->width * sizeof(uint32_t)); s 1680 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1681 libavcodec/iff.c buf += decode_byterun(s->planebuf, s->planesize, gb); s 1682 libavcodec/iff.c decodeplane32(s->mask_buf, s->planebuf, s->planesize, plane); s 1684 libavcodec/iff.c lookup_pal_indicies((uint32_t *)row, s->mask_buf, s->mask_palbuf, avctx->width); s 1686 libavcodec/iff.c } else if (s->ham) { // HAM to AV_PIX_FMT_BGR32 s 1687 libavcodec/iff.c uint8_t *video = s->video[0]; s 1690 libavcodec/iff.c memset(s->ham_buf, 0, s->planesize * 8); s 1691 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1692 libavcodec/iff.c buf += decode_byterun(s->planebuf, s->planesize, gb); s 1694 libavcodec/iff.c memcpy(video, s->planebuf, s->planesize); s 1695 libavcodec/iff.c video += s->planesize; s 1697 libavcodec/iff.c decodeplane8(s->ham_buf, s->planebuf, s->planesize, plane); s 1699 libavcodec/iff.c decode_ham_plane32((uint32_t *)row, s->ham_buf, s->ham_palbuf, s->planesize); s 1705 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1706 libavcodec/iff.c buf += decode_byterun(s->planebuf, s->planesize, gb); s 1707 libavcodec/iff.c decodeplane32((uint32_t *)row, s->planebuf, s->planesize, plane); s 1717 libavcodec/iff.c } else if (s->ham) { // IFF-PBM: HAM to AV_PIX_FMT_BGR32 s 1720 libavcodec/iff.c buf += decode_byterun(s->ham_buf, avctx->width, gb); s 1721 libavcodec/iff.c decode_ham_plane32((uint32_t *)row, s->ham_buf, s->ham_palbuf, s->planesize); s 1733 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1736 libavcodec/iff.c decodeplane8(row, buf, FFMIN(s->planesize, buf_end - buf), plane); s 1737 libavcodec/iff.c buf += s->planesize; s 1740 libavcodec/iff.c } else if (s->ham) { // HAM to AV_PIX_FMT_BGR32 s 1744 libavcodec/iff.c memset(s->ham_buf, 0, s->planesize * 8); s 1745 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1746 libavcodec/iff.c const uint8_t * start = buf + (plane * avctx->height + y) * s->planesize; s 1749 libavcodec/iff.c decodeplane8(s->ham_buf, start, FFMIN(s->planesize, buf_end - start), plane); s 1751 libavcodec/iff.c decode_ham_plane32((uint32_t *)row, s->ham_buf, s->ham_palbuf, s->planesize); s 1762 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1763 libavcodec/iff.c decode_byterun2(s->planebuf, avctx->height, s->planesize, gb); s 1766 libavcodec/iff.c decodeplane8(row, s->planebuf + s->planesize * y, s->planesize, plane); s 1784 libavcodec/iff.c decode_deep_tvdc32(frame->data[0], buf, buf_size, avctx->width, avctx->height, frame->linesize[0], s->tvdc); s 1792 libavcodec/iff.c decode_short_horizontal_delta(s->video[0], buf, buf_end, avctx->width, s->bpp, s->video_size); s 1796 libavcodec/iff.c decode_byte_vertical_delta(s->video[0], buf, buf_end, avctx->width, s->is_brush, s->bpp, s->video_size); s 1800 libavcodec/iff.c if (s->is_short) s 1801 libavcodec/iff.c decode_short_vertical_delta(s->video[0], buf, buf_end, avctx->width, s->bpp, s->video_size); s 1803 libavcodec/iff.c decode_long_vertical_delta(s->video[0], buf, buf_end, avctx->width, s->bpp, s->video_size); s 1807 libavcodec/iff.c if (s->is_short) s 1808 libavcodec/iff.c decode_short_vertical_delta2(s->video[0], buf, buf_end, avctx->width, s->bpp, s->video_size); s 1810 libavcodec/iff.c decode_long_vertical_delta2(s->video[0], buf, buf_end, avctx->width, s->bpp, s->video_size); s 1814 libavcodec/iff.c decode_delta_j(s->video[0], buf, buf_end, avctx->width, avctx->height, s->bpp, s->video_size); s 1818 libavcodec/iff.c if (s->is_interlaced) s 1820 libavcodec/iff.c decode_delta_d(s->video[0], buf, buf_end, avctx->width, s->is_interlaced, s->bpp, s->video_size); s 1824 libavcodec/iff.c if (s->is_interlaced) s 1826 libavcodec/iff.c decode_delta_e(s->video[0], buf, buf_end, avctx->width, s->is_interlaced, s->bpp, s->video_size); s 1830 libavcodec/iff.c decode_delta_l(s->video[0], buf, buf_end, avctx->width, s->is_short, s->bpp, s->video_size); s 1836 libavcodec/iff.c if (s->compression <= 0xff && (avctx->codec_tag == MKTAG('A', 'N', 'I', 'M'))) { s 1837 libavcodec/iff.c memcpy(s->video[1], s->video[0], s->video_size); s 1840 libavcodec/iff.c if (s->compression > 0xff) { s 1842 libavcodec/iff.c buf = s->video[0]; s 1846 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1847 libavcodec/iff.c decodeplane8(row, buf, s->planesize, plane); s 1848 libavcodec/iff.c buf += s->planesize; s 1851 libavcodec/iff.c memcpy(frame->data[1], s->pal, 256 * 4); s 1852 libavcodec/iff.c } else if (s->ham) { s 1853 libavcodec/iff.c int i, count = 1 << s->ham; s 1855 libavcodec/iff.c buf = s->video[0]; s 1856 libavcodec/iff.c memset(s->ham_palbuf, 0, (1 << s->ham) * 2 * sizeof(uint32_t)); s 1858 libavcodec/iff.c s->ham_palbuf[i*2+1] = s->pal[i]; s 1861 libavcodec/iff.c uint32_t tmp = i << (8 - s->ham); s 1862 libavcodec/iff.c tmp |= tmp >> s->ham; s 1863 libavcodec/iff.c s->ham_palbuf[(i+count)*2] = 0xFF00FFFF; s 1864 libavcodec/iff.c s->ham_palbuf[(i+count*2)*2] = 0xFFFFFF00; s 1865 libavcodec/iff.c s->ham_palbuf[(i+count*3)*2] = 0xFFFF00FF; s 1866 libavcodec/iff.c s->ham_palbuf[(i+count)*2+1] = 0xFF000000 | tmp << 16; s 1867 libavcodec/iff.c s->ham_palbuf[(i+count*2)*2+1] = 0xFF000000 | tmp; s 1868 libavcodec/iff.c s->ham_palbuf[(i+count*3)*2+1] = 0xFF000000 | tmp << 8; s 1870 libavcodec/iff.c if (s->masking == MASK_HAS_MASK) { s 1871 libavcodec/iff.c for (i = 0; i < 8 * (1 << s->ham); i++) s 1872 libavcodec/iff.c s->ham_palbuf[(1 << s->bpp) + i] = s->ham_palbuf[i] | 0xFF000000; s 1876 libavcodec/iff.c memset(s->ham_buf, 0, s->planesize * 8); s 1877 libavcodec/iff.c for (plane = 0; plane < s->bpp; plane++) { s 1878 libavcodec/iff.c decodeplane8(s->ham_buf, buf, s->planesize, plane); s 1879 libavcodec/iff.c buf += s->planesize; s 1881 libavcodec/iff.c decode_ham_plane32((uint32_t *)row, s->ham_buf, s->ham_palbuf, s->planesize); s 1887 libavcodec/iff.c if (!s->is_brush) { s 1888 libavcodec/iff.c FFSWAP(uint8_t *, s->video[0], s->video[1]); s 206 libavcodec/iirfilter.c FFIIRFilterState *s = av_mallocz(sizeof(FFIIRFilterState) + sizeof(s->x[0]) * (order - 1)); s 207 libavcodec/iirfilter.c return s; s 216 libavcodec/iirfilter.c c->cy[0] * s->x[i0] + \ s 217 libavcodec/iirfilter.c c->cy[1] * s->x[i1] + \ s 218 libavcodec/iirfilter.c c->cy[2] * s->x[i2] + \ s 219 libavcodec/iirfilter.c c->cy[3] * s->x[i3]; \ s 220 libavcodec/iirfilter.c res = (s->x[i0] + in) * 1 + \ s 221 libavcodec/iirfilter.c (s->x[i1] + s->x[i3]) * 4 + \ s 222 libavcodec/iirfilter.c s->x[i2] * 6; \ s 224 libavcodec/iirfilter.c s->x[i0] = in; \ s 250 libavcodec/iirfilter.c in += c->cy[j] * s->x[j]; \ s 251 libavcodec/iirfilter.c res = s->x[0] + in + s->x[c->order >> 1] * c->cx[c->order >> 1]; \ s 253 libavcodec/iirfilter.c res += (s->x[j] + s->x[c->order - j]) * c->cx[j]; \ s 255 libavcodec/iirfilter.c s->x[j] = s->x[j + 1]; \ s 257 libavcodec/iirfilter.c s->x[c->order - 1] = in; \ s 269 libavcodec/iirfilter.c s->x[0] * c->cy[0] + \ s 270 libavcodec/iirfilter.c s->x[1] * c->cy[1]; \ s 271 libavcodec/iirfilter.c CONV_ ## fmt(*dst0, s->x[0] + in + s->x[1] * c->cx[1]) \ s 272 libavcodec/iirfilter.c s->x[0] = s->x[1]; \ s 273 libavcodec/iirfilter.c s->x[1] = in; \ s 280 libavcodec/iirfilter.c struct FFIIRFilterState *s, int size, s 294 libavcodec/iirfilter.c struct FFIIRFilterState *s, int size, s 128 libavcodec/ilbcdec.c static int unpack_frame(ILBCContext *s) s 130 libavcodec/ilbcdec.c ILBCFrame *frame = &s->frame; s 131 libavcodec/ilbcdec.c GetBitContext *gb = &s->gb; s 138 libavcodec/ilbcdec.c if (s->mode == 20) { s 167 libavcodec/ilbcdec.c if (s->mode == 20) { s 202 libavcodec/ilbcdec.c if (s->mode == 20) { s 439 libavcodec/ilbcdec.c ILBCContext *s) s 447 libavcodec/ilbcdec.c if (s->mode == 30) { s 448 libavcodec/ilbcdec.c lsp_interpolate2polydec(lp, (*s).lsfdeqold, lsfdeq, lsf_weight_30ms[0], length); s 463 libavcodec/ilbcdec.c for (i = 0; i < s->nsub; i++) { s 464 libavcodec/ilbcdec.c lsp_interpolate2polydec(lp, s->lsfdeqold, lsfdeq, s 472 libavcodec/ilbcdec.c if (s->mode == 30) { s 473 libavcodec/ilbcdec.c memcpy(s->lsfdeqold, lsfdeq2, length * 2); s 475 libavcodec/ilbcdec.c memcpy(s->lsfdeqold, lsfdeq, length * 2); s 764 libavcodec/ilbcdec.c static void decode_residual(ILBCContext *s, s 771 libavcodec/ilbcdec.c int16_t *reverseDecresidual = s->enh_buf; /* Reversed decoded data, used for decoding backwards in time (reuse memory in state) */ s 772 libavcodec/ilbcdec.c int16_t *memVec = s->prevResidual; s 775 libavcodec/ilbcdec.c diff = STATE_LEN - s->state_short_len; s 785 libavcodec/ilbcdec.c state_construct(encbits->ifm, encbits->idx, &syntdenum[(encbits->start - 1) * (LPC_FILTERORDER + 1)], &decresidual[start_pos], s->state_short_len); s 789 libavcodec/ilbcdec.c memset(mem, 0, (int16_t) (CB_MEML - s->state_short_len) * 2); s 790 libavcodec/ilbcdec.c memcpy(mem + CB_MEML - s->state_short_len, decresidual + start_pos, s->state_short_len * 2); s 794 libavcodec/ilbcdec.c construct_vector(&decresidual[start_pos + s->state_short_len], encbits->cb_index, encbits->gain_index, mem + CB_MEML - ST_MEM_L_TBL, ST_MEM_L_TBL, (int16_t) diff); s 798 libavcodec/ilbcdec.c meml_gotten = s->state_short_len; s 813 libavcodec/ilbcdec.c Nfor = s->nsub - encbits->start - 1; s 839 libavcodec/ilbcdec.c meml_gotten = SUBL * (s->nsub + 1 - encbits->start); s 956 libavcodec/ilbcdec.c ILBCContext *s) /* (i/o) decoder instance */ s 982 libavcodec/ilbcdec.c s->consPLICount += 1; s 987 libavcodec/ilbcdec.c if (s->prevPLI != 1) { s 991 libavcodec/ilbcdec.c max = max_abs_value_w16(s->prevResidual, s->block_samples); s 999 libavcodec/ilbcdec.c s->prevScale = scale3; s 1006 libavcodec/ilbcdec.c corrLen = FFMIN(60, s->block_samples - (inlag + 3)); s 1008 libavcodec/ilbcdec.c correlation(&cross, &ener, s->prevResidual, lag, s->block_samples, corrLen, scale3); s 1015 libavcodec/ilbcdec.c correlation(&cross_comp, &ener_comp, s->prevResidual, j, s->block_samples, corrLen, scale3); s 1057 libavcodec/ilbcdec.c tmp2W32 = scale_dot_product(&s->prevResidual[s->block_samples - corrLen], &s->prevResidual[s->block_samples - corrLen], corrLen, scale3); s 1084 libavcodec/ilbcdec.c lag = s->prevLag; s 1085 libavcodec/ilbcdec.c max_perSquare = s->per_square; s 1093 libavcodec/ilbcdec.c if (s->consPLICount * s->block_samples > 320) { s 1095 libavcodec/ilbcdec.c } else if (s->consPLICount * s->block_samples > 640) { s 1097 libavcodec/ilbcdec.c } else if (s->consPLICount * s->block_samples > 960) { s 1099 libavcodec/ilbcdec.c } else if (s->consPLICount * s->block_samples > 1280) { s 1135 libavcodec/ilbcdec.c for (i = 0; i < s->block_samples; i++) { s 1137 libavcodec/ilbcdec.c s->seed = SPL_MUL_16_16(s->seed, 31821) + 13849; s 1138 libavcodec/ilbcdec.c randlag = 53 + (s->seed & 63); s 1143 libavcodec/ilbcdec.c randvec[i] = s->prevResidual[s->block_samples + pick]; s 1145 libavcodec/ilbcdec.c randvec[i] = s->prevResidual[pick]; s 1152 libavcodec/ilbcdec.c plc_residual[i] = s->prevResidual[s->block_samples + pick]; s 1171 libavcodec/ilbcdec.c energy += SPL_MUL_16_16_RSFT(plc_residual[i], plc_residual[i], (s->prevScale + 1)); s 1176 libavcodec/ilbcdec.c if (energy < SPL_SHIFT_W32(s->block_samples * 900, -s->prevScale - 1)) { s 1178 libavcodec/ilbcdec.c for (i = 0; i < s->block_samples; i++) { s 1184 libavcodec/ilbcdec.c memcpy(plc_lpc, (*s).prev_lpc, (LPC_FILTERORDER + 1) * 2); s 1187 libavcodec/ilbcdec.c s->prevLag = lag; s 1188 libavcodec/ilbcdec.c s->per_square = max_perSquare; s 1190 libavcodec/ilbcdec.c memcpy(plc_residual, decresidual, s->block_samples * 2); s 1192 libavcodec/ilbcdec.c s->consPLICount = 0; s 1196 libavcodec/ilbcdec.c s->prevPLI = PLI; s 1197 libavcodec/ilbcdec.c memcpy(s->prev_lpc, plc_lpc, (LPC_FILTERORDER + 1) * 2); s 1198 libavcodec/ilbcdec.c memcpy(s->prevResidual, plc_residual, s->block_samples * 2); s 1362 libavcodec/ilbcdec.c ILBCContext *s = avctx->priv_data; s 1363 libavcodec/ilbcdec.c int mode = s->mode, ret; s 1364 libavcodec/ilbcdec.c int16_t *plc_data = &s->plc_residual[LPC_FILTERORDER]; s 1366 libavcodec/ilbcdec.c if ((ret = init_get_bits8(&s->gb, buf, avpkt->size)) < 0) s 1368 libavcodec/ilbcdec.c memset(&s->frame, 0, sizeof(ILBCFrame)); s 1370 libavcodec/ilbcdec.c frame->nb_samples = s->block_samples; s 1374 libavcodec/ilbcdec.c if (unpack_frame(s)) s 1376 libavcodec/ilbcdec.c if (s->frame.start < 1 || s->frame.start > 5) s 1380 libavcodec/ilbcdec.c index_conv(s->frame.cb_index); s 1382 libavcodec/ilbcdec.c lsf_dequantization(s->lsfdeq, s->frame.lsf, s->lpc_n); s 1383 libavcodec/ilbcdec.c lsf_check_stability(s->lsfdeq, LPC_FILTERORDER, s->lpc_n); s 1384 libavcodec/ilbcdec.c lsp_interpolate(s->syntdenum, s->weightdenum, s 1385 libavcodec/ilbcdec.c s->lsfdeq, LPC_FILTERORDER, s); s 1386 libavcodec/ilbcdec.c decode_residual(s, &s->frame, s->decresidual, s->syntdenum); s 1388 libavcodec/ilbcdec.c do_plc(s->plc_residual, s->plc_lpc, 0, s 1389 libavcodec/ilbcdec.c s->decresidual, s->syntdenum + (LPC_FILTERORDER + 1) * (s->nsub - 1), s 1390 libavcodec/ilbcdec.c s->last_lag, s); s 1392 libavcodec/ilbcdec.c memcpy(s->decresidual, s->plc_residual, s->block_samples * 2); s 1395 libavcodec/ilbcdec.c if (s->enhancer) { s 1401 libavcodec/ilbcdec.c if (s->mode == 20) { s 1402 libavcodec/ilbcdec.c lag = xcorr_coeff(&s->decresidual[s->block_samples-60], &s->decresidual[s->block_samples-80], s 1405 libavcodec/ilbcdec.c lag = xcorr_coeff(&s->decresidual[s->block_samples-ENH_BLOCKL], s 1406 libavcodec/ilbcdec.c &s->decresidual[s->block_samples-ENH_BLOCKL-20], s 1411 libavcodec/ilbcdec.c s->last_lag = lag; s 1414 libavcodec/ilbcdec.c memcpy(plc_data, s->decresidual, s->block_samples * 2); s 1417 libavcodec/ilbcdec.c memcpy(&plc_data[-LPC_FILTERORDER], s->syntMem, LPC_FILTERORDER * 2); s 1419 libavcodec/ilbcdec.c for (i = 0; i < s->nsub; i++) { s 1421 libavcodec/ilbcdec.c s->syntdenum + i*(LPC_FILTERORDER + 1), s 1426 libavcodec/ilbcdec.c memcpy(s->syntMem, &plc_data[s->block_samples-LPC_FILTERORDER], LPC_FILTERORDER * 2); s 1429 libavcodec/ilbcdec.c memcpy(frame->data[0], plc_data, s->block_samples * 2); s 1432 libavcodec/ilbcdec.c s->hpimemy, s->hpimemx, s->block_samples); s 1434 libavcodec/ilbcdec.c memcpy(s->old_syntdenum, s->syntdenum, s->nsub*(LPC_FILTERORDER + 1) * 2); s 1436 libavcodec/ilbcdec.c s->prev_enh_pl = 0; s 1438 libavcodec/ilbcdec.c s->prev_enh_pl = 1; s 1447 libavcodec/ilbcdec.c ILBCContext *s = avctx->priv_data; s 1450 libavcodec/ilbcdec.c s->mode = 20; s 1452 libavcodec/ilbcdec.c s->mode = 30; s 1454 libavcodec/ilbcdec.c s->mode = avctx->bit_rate <= 14000 ? 30 : 20; s 1463 libavcodec/ilbcdec.c if (s->mode == 30) { s 1464 libavcodec/ilbcdec.c s->block_samples = 240; s 1465 libavcodec/ilbcdec.c s->nsub = NSUB_30MS; s 1466 libavcodec/ilbcdec.c s->nasub = NASUB_30MS; s 1467 libavcodec/ilbcdec.c s->lpc_n = LPC_N_30MS; s 1468 libavcodec/ilbcdec.c s->state_short_len = STATE_SHORT_LEN_30MS; s 1470 libavcodec/ilbcdec.c s->block_samples = 160; s 1471 libavcodec/ilbcdec.c s->nsub = NSUB_20MS; s 1472 libavcodec/ilbcdec.c s->nasub = NASUB_20MS; s 1473 libavcodec/ilbcdec.c s->lpc_n = LPC_N_20MS; s 1474 libavcodec/ilbcdec.c s->state_short_len = STATE_SHORT_LEN_20MS; s 336 libavcodec/imc.c int s; s 338 libavcodec/imc.c s = stream_format_code >> 1; s 339 libavcodec/imc.c hufftab[0] = &huffman_vlc[s][0]; s 340 libavcodec/imc.c hufftab[1] = &huffman_vlc[s][1]; s 341 libavcodec/imc.c hufftab[2] = &huffman_vlc[s][2]; s 342 libavcodec/imc.c hufftab[3] = &huffman_vlc[s][3]; s 343 libavcodec/imc.c cb_sel = imc_cb_select[s]; s 143 libavcodec/imm4.c IMM4Context *s = avctx->priv_data; s 144 libavcodec/imm4.c const uint8_t *scantable = s->intra_scantable.permutated; s 167 libavcodec/imm4.c s->block[block][scantable[i]] = offset * (factor2 < 0 ? -1 : 1) + factor * factor2; s 172 libavcodec/imm4.c if (s->hi == 2 && flag2 && block < 4) { s 174 libavcodec/imm4.c s->block[block][scantable[0]] *= 2; s 175 libavcodec/imm4.c s->block[block][scantable[1]] *= 2; s 176 libavcodec/imm4.c s->block[block][scantable[8]] *= 2; s 177 libavcodec/imm4.c s->block[block][scantable[16]] *= 2; s 186 libavcodec/imm4.c IMM4Context *s = avctx->priv_data; s 187 libavcodec/imm4.c const uint8_t *scantable = s->intra_scantable.permutated; s 190 libavcodec/imm4.c memset(s->block, 0, sizeof(s->block)); s 200 libavcodec/imm4.c s->block[i][scantable[0]] = x; s 204 libavcodec/imm4.c ret = decode_block(avctx, gb, i, s->factor, flag, offset, flag2); s 215 libavcodec/imm4.c IMM4Context *s = avctx->priv_data; s 218 libavcodec/imm4.c if (s->hi == 0) { s 219 libavcodec/imm4.c if (s->lo > 2) s 221 libavcodec/imm4.c s->factor = intra_cb[s->lo]; s 223 libavcodec/imm4.c s->factor = s->lo * 2; s 226 libavcodec/imm4.c if (s->hi) { s 227 libavcodec/imm4.c offset = s->factor; s 246 libavcodec/imm4.c s->idsp.idct_put(frame->data[0] + y * frame->linesize[0] + x, s 247 libavcodec/imm4.c frame->linesize[0], s->block[0]); s 248 libavcodec/imm4.c s->idsp.idct_put(frame->data[0] + y * frame->linesize[0] + x + 8, s 249 libavcodec/imm4.c frame->linesize[0], s->block[1]); s 250 libavcodec/imm4.c s->idsp.idct_put(frame->data[0] + (y + 8) * frame->linesize[0] + x, s 251 libavcodec/imm4.c frame->linesize[0], s->block[2]); s 252 libavcodec/imm4.c s->idsp.idct_put(frame->data[0] + (y + 8) * frame->linesize[0] + x + 8, s 253 libavcodec/imm4.c frame->linesize[0], s->block[3]); s 254 libavcodec/imm4.c s->idsp.idct_put(frame->data[1] + (y >> 1) * frame->linesize[1] + (x >> 1), s 255 libavcodec/imm4.c frame->linesize[1], s->block[4]); s 256 libavcodec/imm4.c s->idsp.idct_put(frame->data[2] + (y >> 1) * frame->linesize[2] + (x >> 1), s 257 libavcodec/imm4.c frame->linesize[2], s->block[5]); s 267 libavcodec/imm4.c IMM4Context *s = avctx->priv_data; s 270 libavcodec/imm4.c if (s->hi == 0) { s 271 libavcodec/imm4.c if (s->lo > 2) s 273 libavcodec/imm4.c s->factor = inter_cb[s->lo]; s 275 libavcodec/imm4.c s->factor = s->lo * 2; s 278 libavcodec/imm4.c if (s->hi) { s 279 libavcodec/imm4.c offset = s->factor; s 319 libavcodec/imm4.c s->idsp.idct_put(frame->data[0] + y * frame->linesize[0] + x, s 320 libavcodec/imm4.c frame->linesize[0], s->block[0]); s 321 libavcodec/imm4.c s->idsp.idct_put(frame->data[0] + y * frame->linesize[0] + x + 8, s 322 libavcodec/imm4.c frame->linesize[0], s->block[1]); s 323 libavcodec/imm4.c s->idsp.idct_put(frame->data[0] + (y + 8) * frame->linesize[0] + x, s 324 libavcodec/imm4.c frame->linesize[0], s->block[2]); s 325 libavcodec/imm4.c s->idsp.idct_put(frame->data[0] + (y + 8) * frame->linesize[0] + x + 8, s 326 libavcodec/imm4.c frame->linesize[0], s->block[3]); s 327 libavcodec/imm4.c s->idsp.idct_put(frame->data[1] + (y >> 1) * frame->linesize[1] + (x >> 1), s 328 libavcodec/imm4.c frame->linesize[1], s->block[4]); s 329 libavcodec/imm4.c s->idsp.idct_put(frame->data[2] + (y >> 1) * frame->linesize[2] + (x >> 1), s 330 libavcodec/imm4.c frame->linesize[2], s->block[5]); s 348 libavcodec/imm4.c s->idsp.idct_add(frame->data[0] + y * frame->linesize[0] + x, s 349 libavcodec/imm4.c frame->linesize[0], s->block[0]); s 350 libavcodec/imm4.c s->idsp.idct_add(frame->data[0] + y * frame->linesize[0] + x + 8, s 351 libavcodec/imm4.c frame->linesize[0], s->block[1]); s 352 libavcodec/imm4.c s->idsp.idct_add(frame->data[0] + (y + 8) * frame->linesize[0] + x, s 353 libavcodec/imm4.c frame->linesize[0], s->block[2]); s 354 libavcodec/imm4.c s->idsp.idct_add(frame->data[0] + (y + 8) * frame->linesize[0] + x + 8, s 355 libavcodec/imm4.c frame->linesize[0], s->block[3]); s 356 libavcodec/imm4.c s->idsp.idct_add(frame->data[1] + (y >> 1) * frame->linesize[1] + (x >> 1), s 357 libavcodec/imm4.c frame->linesize[1], s->block[4]); s 358 libavcodec/imm4.c s->idsp.idct_add(frame->data[2] + (y >> 1) * frame->linesize[2] + (x >> 1), s 359 libavcodec/imm4.c frame->linesize[2], s->block[5]); s 370 libavcodec/imm4.c IMM4Context *s = avctx->priv_data; s 371 libavcodec/imm4.c GetBitContext *gb = &s->gb; s 380 libavcodec/imm4.c av_fast_padded_malloc(&s->bitstream, &s->bitstream_size, s 382 libavcodec/imm4.c if (!s->bitstream) s 385 libavcodec/imm4.c s->bdsp.bswap_buf((uint32_t *)s->bitstream, s 389 libavcodec/imm4.c if ((ret = init_get_bits8(gb, s->bitstream, FFALIGN(avpkt->size, 4))) < 0) s 432 libavcodec/imm4.c s->hi = get_bits(gb, 16); s 433 libavcodec/imm4.c s->lo = get_bits(gb, 16); s 455 libavcodec/imm4.c av_frame_unref(s->prev_frame); s 470 libavcodec/imm4.c av_frame_unref(s->prev_frame); s 471 libavcodec/imm4.c if ((ret = av_frame_ref(s->prev_frame, frame)) < 0) s 474 libavcodec/imm4.c if (!s->prev_frame->data[0]) { s 479 libavcodec/imm4.c ret = decode_inter(avctx, gb, frame, s->prev_frame); s 507 libavcodec/imm4.c IMM4Context *s = avctx->priv_data; s 513 libavcodec/imm4.c ff_bswapdsp_init(&s->bdsp); s 514 libavcodec/imm4.c ff_idctdsp_init(&s->idsp, avctx); s 515 libavcodec/imm4.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, table); s 517 libavcodec/imm4.c s->prev_frame = av_frame_alloc(); s 518 libavcodec/imm4.c if (!s->prev_frame) s 528 libavcodec/imm4.c IMM4Context *s = avctx->priv_data; s 530 libavcodec/imm4.c av_frame_unref(s->prev_frame); s 535 libavcodec/imm4.c IMM4Context *s = avctx->priv_data; s 537 libavcodec/imm4.c av_frame_free(&s->prev_frame); s 538 libavcodec/imm4.c av_freep(&s->bitstream); s 539 libavcodec/imm4.c s->bitstream_size = 0; s 156 libavcodec/indeo2.c Ir2Context * const s = avctx->priv_data; s 160 libavcodec/indeo2.c AVFrame * const p = s->picture; s 170 libavcodec/indeo2.c av_log(s->avctx, AV_LOG_ERROR, "input buffer size too small (%d)\n", buf_size); s 174 libavcodec/indeo2.c s->decode_delta = buf[18]; s 182 libavcodec/indeo2.c if ((ret = init_get_bits8(&s->gb, buf + start, buf_size - start)) < 0) s 193 libavcodec/indeo2.c if (s->decode_delta) { /* intraframe */ s 194 libavcodec/indeo2.c if ((ret = ir2_decode_plane(s, avctx->width, avctx->height, s 200 libavcodec/indeo2.c if ((ret = ir2_decode_plane(s, avctx->width >> 2, avctx->height >> 2, s 204 libavcodec/indeo2.c if ((ret = ir2_decode_plane(s, avctx->width >> 2, avctx->height >> 2, s 209 libavcodec/indeo2.c if ((ret = ir2_decode_plane_inter(s, avctx->width, avctx->height, s 214 libavcodec/indeo2.c if ((ret = ir2_decode_plane_inter(s, avctx->width >> 2, avctx->height >> 2, s 218 libavcodec/indeo2.c if ((ret = ir2_decode_plane_inter(s, avctx->width >> 2, avctx->height >> 2, s 473 libavcodec/indeo4.c mv_scale, mb_type_bits, s; s 606 libavcodec/indeo4.c s= band->is_halfpel; s 608 libavcodec/indeo4.c if ( x + (mb->mv_x >>s) + (y+ (mb->mv_y >>s))*band->pitch < 0 || s 609 libavcodec/indeo4.c x + ((mb->mv_x+s)>>s) + band->mb_size - 1 s 610 libavcodec/indeo4.c + (y+band->mb_size - 1 +((mb->mv_y+s)>>s))*band->pitch > band->bufsize -1) { s 611 libavcodec/indeo4.c av_log(avctx, AV_LOG_ERROR, "motion vector %d %d outside reference\n", x*s + mb->mv_x, y*s + mb->mv_y); s 458 libavcodec/indeo5.c mv_scale, blks_per_mb, s; s 564 libavcodec/indeo5.c s= band->is_halfpel; s 566 libavcodec/indeo5.c if ( x + (mb->mv_x >>s) + (y+ (mb->mv_y >>s))*band->pitch < 0 || s 567 libavcodec/indeo5.c x + ((mb->mv_x+s)>>s) + band->mb_size - 1 s 568 libavcodec/indeo5.c + (y+band->mb_size - 1 +((mb->mv_y+s)>>s))*band->pitch > band->bufsize - 1) { s 569 libavcodec/indeo5.c av_log(avctx, AV_LOG_ERROR, "motion vector %d %d outside reference\n", x*s + mb->mv_x, y*s + mb->mv_y); s 27 libavcodec/intelh263dec.c int ff_intel_h263_decode_picture_header(MpegEncContext *s) s 31 libavcodec/intelh263dec.c if (get_bits_left(&s->gb) == 64) { /* special dummy frames */ s 36 libavcodec/intelh263dec.c if (get_bits(&s->gb, 22) != 0x20) { s 37 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Bad picture start code\n"); s 40 libavcodec/intelh263dec.c s->picture_number = get_bits(&s->gb, 8); /* picture timestamp */ s 42 libavcodec/intelh263dec.c if (check_marker(s->avctx, &s->gb, "after picture_number") != 1) { s 45 libavcodec/intelh263dec.c if (get_bits1(&s->gb) != 0) { s 46 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Bad H.263 id\n"); s 49 libavcodec/intelh263dec.c skip_bits1(&s->gb); /* split screen off */ s 50 libavcodec/intelh263dec.c skip_bits1(&s->gb); /* camera off */ s 51 libavcodec/intelh263dec.c skip_bits1(&s->gb); /* freeze picture release off */ s 53 libavcodec/intelh263dec.c format = get_bits(&s->gb, 3); s 55 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Intel H.263 free format not supported\n"); s 58 libavcodec/intelh263dec.c s->h263_plus = 0; s 60 libavcodec/intelh263dec.c s->pict_type = AV_PICTURE_TYPE_I + get_bits1(&s->gb); s 62 libavcodec/intelh263dec.c s->h263_long_vectors = get_bits1(&s->gb); s 64 libavcodec/intelh263dec.c if (get_bits1(&s->gb) != 0) { s 65 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "SAC not supported\n"); s 68 libavcodec/intelh263dec.c s->obmc= get_bits1(&s->gb); s 69 libavcodec/intelh263dec.c s->unrestricted_mv = s->obmc || s->h263_long_vectors; s 70 libavcodec/intelh263dec.c s->pb_frame = get_bits1(&s->gb); s 73 libavcodec/intelh263dec.c s->width = ff_h263_format[format][0]; s 74 libavcodec/intelh263dec.c s->height = ff_h263_format[format][1]; s 75 libavcodec/intelh263dec.c s->avctx->sample_aspect_ratio.num = 12; s 76 libavcodec/intelh263dec.c s->avctx->sample_aspect_ratio.den = 11; s 78 libavcodec/intelh263dec.c format = get_bits(&s->gb, 3); s 80 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Wrong Intel H.263 format\n"); s 83 libavcodec/intelh263dec.c if(get_bits(&s->gb, 2)) s 84 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Bad value for reserved field\n"); s 85 libavcodec/intelh263dec.c s->loop_filter = get_bits1(&s->gb) * !s->avctx->lowres; s 86 libavcodec/intelh263dec.c if(get_bits1(&s->gb)) s 87 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Bad value for reserved field\n"); s 88 libavcodec/intelh263dec.c if(get_bits1(&s->gb)) s 89 libavcodec/intelh263dec.c s->pb_frame = 2; s 90 libavcodec/intelh263dec.c if(get_bits(&s->gb, 5)) s 91 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Bad value for reserved field\n"); s 92 libavcodec/intelh263dec.c if(get_bits(&s->gb, 5) != 1) s 93 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid marker\n"); s 96 libavcodec/intelh263dec.c int ar = get_bits(&s->gb, 4); s 97 libavcodec/intelh263dec.c skip_bits(&s->gb, 9); // display width s 98 libavcodec/intelh263dec.c check_marker(s->avctx, &s->gb, "in dimensions"); s 99 libavcodec/intelh263dec.c skip_bits(&s->gb, 9); // display height s 101 libavcodec/intelh263dec.c s->avctx->sample_aspect_ratio.num = get_bits(&s->gb, 8); // aspect ratio - width s 102 libavcodec/intelh263dec.c s->avctx->sample_aspect_ratio.den = get_bits(&s->gb, 8); // aspect ratio - height s 104 libavcodec/intelh263dec.c s->avctx->sample_aspect_ratio = ff_h263_pixel_aspect[ar]; s 106 libavcodec/intelh263dec.c if (s->avctx->sample_aspect_ratio.num == 0) s 107 libavcodec/intelh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid aspect ratio.\n"); s 110 libavcodec/intelh263dec.c s->chroma_qscale= s->qscale = get_bits(&s->gb, 5); s 111 libavcodec/intelh263dec.c skip_bits1(&s->gb); /* Continuous Presence Multipoint mode: off */ s 113 libavcodec/intelh263dec.c if(s->pb_frame){ s 114 libavcodec/intelh263dec.c skip_bits(&s->gb, 3); //temporal reference for B-frame s 115 libavcodec/intelh263dec.c skip_bits(&s->gb, 2); //dbquant s 119 libavcodec/intelh263dec.c if (skip_1stop_8data_bits(&s->gb) < 0) s 121 libavcodec/intelh263dec.c s->f_code = 1; s 123 libavcodec/intelh263dec.c s->y_dc_scale_table= s 124 libavcodec/intelh263dec.c s->c_dc_scale_table= ff_mpeg1_dc_scale_table; s 126 libavcodec/intelh263dec.c ff_h263_show_pict_info(s); s 324 libavcodec/internal.h int ff_set_dimensions(AVCodecContext *s, int width, int height); s 59 libavcodec/interplayacm.c InterplayACMContext *s = avctx->priv_data; s 70 libavcodec/interplayacm.c s->level = AV_RL16(avctx->extradata + 12) & 0xf; s 71 libavcodec/interplayacm.c s->rows = AV_RL16(avctx->extradata + 12) >> 4; s 72 libavcodec/interplayacm.c s->cols = 1 << s->level; s 73 libavcodec/interplayacm.c s->wrapbuf_len = 2 * s->cols - 2; s 74 libavcodec/interplayacm.c s->block_len = s->rows * s->cols; s 75 libavcodec/interplayacm.c s->max_framesize = s->block_len; s 77 libavcodec/interplayacm.c s->block = av_calloc(s->block_len, sizeof(int)); s 78 libavcodec/interplayacm.c s->wrapbuf = av_calloc(s->wrapbuf_len, sizeof(int)); s 79 libavcodec/interplayacm.c s->ampbuf = av_calloc(0x10000, sizeof(int)); s 80 libavcodec/interplayacm.c s->bitstream = av_calloc(s->max_framesize + AV_INPUT_BUFFER_PADDING_SIZE / sizeof(*s->bitstream) + 1, sizeof(*s->bitstream)); s 81 libavcodec/interplayacm.c if (!s->block || !s->wrapbuf || !s->ampbuf || !s->bitstream) s 84 libavcodec/interplayacm.c s->midbuf = s->ampbuf + 0x8000; s 102 libavcodec/interplayacm.c #define set_pos(s, r, c, idx) do { \ s 103 libavcodec/interplayacm.c unsigned pos = ((r) << s->level) + (c); \ s 104 libavcodec/interplayacm.c s->block[pos] = s->midbuf[(idx)]; \ s 107 libavcodec/interplayacm.c static int zero(InterplayACMContext *s, unsigned ind, unsigned col) s 111 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) s 112 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 116 libavcodec/interplayacm.c static int bad(InterplayACMContext *s, unsigned ind, unsigned col) s 121 libavcodec/interplayacm.c static int linear(InterplayACMContext *s, unsigned ind, unsigned col) s 123 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 127 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 129 libavcodec/interplayacm.c set_pos(s, i, col, b - middle); s 134 libavcodec/interplayacm.c static int k13(InterplayACMContext *s, unsigned ind, unsigned col) s 136 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 139 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 142 libavcodec/interplayacm.c set_pos(s, i++, col, 0); s 143 libavcodec/interplayacm.c if (i >= s->rows) s 145 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 150 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 154 libavcodec/interplayacm.c set_pos(s, i, col, map_1bit[b]); s 159 libavcodec/interplayacm.c static int k12(InterplayACMContext *s, unsigned ind, unsigned col) s 161 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 164 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 167 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 172 libavcodec/interplayacm.c set_pos(s, i, col, map_1bit[b]); s 177 libavcodec/interplayacm.c static int k24(InterplayACMContext *s, unsigned ind, unsigned col) s 179 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 182 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 185 libavcodec/interplayacm.c set_pos(s, i++, col, 0); s 186 libavcodec/interplayacm.c if (i >= s->rows) break; s 187 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 193 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 198 libavcodec/interplayacm.c set_pos(s, i, col, map_2bit_near[b]); s 203 libavcodec/interplayacm.c static int k23(InterplayACMContext *s, unsigned ind, unsigned col) s 205 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 208 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 211 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 216 libavcodec/interplayacm.c set_pos(s, i, col, map_2bit_near[b]); s 221 libavcodec/interplayacm.c static int k35(InterplayACMContext *s, unsigned ind, unsigned col) s 223 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 226 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 229 libavcodec/interplayacm.c set_pos(s, i++, col, 0); s 230 libavcodec/interplayacm.c if (i >= s->rows) s 232 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 238 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 245 libavcodec/interplayacm.c set_pos(s, i, col, map_1bit[b]); s 250 libavcodec/interplayacm.c set_pos(s, i, col, map_2bit_far[b]); s 255 libavcodec/interplayacm.c static int k34(InterplayACMContext *s, unsigned ind, unsigned col) s 257 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 260 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 263 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 270 libavcodec/interplayacm.c set_pos(s, i, col, map_1bit[b]); s 275 libavcodec/interplayacm.c set_pos(s, i, col, map_2bit_far[b]); s 280 libavcodec/interplayacm.c static int k45(InterplayACMContext *s, unsigned ind, unsigned col) s 282 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 285 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 288 libavcodec/interplayacm.c set_pos(s, i, col, 0); i++; s 289 libavcodec/interplayacm.c if (i >= s->rows) s 291 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 297 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 302 libavcodec/interplayacm.c set_pos(s, i, col, map_3bit[b]); s 307 libavcodec/interplayacm.c static int k44(InterplayACMContext *s, unsigned ind, unsigned col) s 309 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 312 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 315 libavcodec/interplayacm.c set_pos(s, i, col, 0); s 320 libavcodec/interplayacm.c set_pos(s, i, col, map_3bit[b]); s 325 libavcodec/interplayacm.c static int t15(InterplayACMContext *s, unsigned ind, unsigned col) s 327 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 331 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 343 libavcodec/interplayacm.c set_pos(s, i++, col, n1); s 344 libavcodec/interplayacm.c if (i >= s->rows) s 346 libavcodec/interplayacm.c set_pos(s, i++, col, n2); s 347 libavcodec/interplayacm.c if (i >= s->rows) s 349 libavcodec/interplayacm.c set_pos(s, i, col, n3); s 354 libavcodec/interplayacm.c static int t27(InterplayACMContext *s, unsigned ind, unsigned col) s 356 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 360 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 372 libavcodec/interplayacm.c set_pos(s, i++, col, n1); s 373 libavcodec/interplayacm.c if (i >= s->rows) s 375 libavcodec/interplayacm.c set_pos(s, i++, col, n2); s 376 libavcodec/interplayacm.c if (i >= s->rows) s 378 libavcodec/interplayacm.c set_pos(s, i, col, n3); s 383 libavcodec/interplayacm.c static int t37(InterplayACMContext *s, unsigned ind, unsigned col) s 385 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 388 libavcodec/interplayacm.c for (i = 0; i < s->rows; i++) { s 399 libavcodec/interplayacm.c set_pos(s, i++, col, n1); s 400 libavcodec/interplayacm.c if (i >= s->rows) s 402 libavcodec/interplayacm.c set_pos(s, i, col, n2); s 407 libavcodec/interplayacm.c typedef int (*filler)(InterplayACMContext *s, unsigned ind, unsigned col); s 420 libavcodec/interplayacm.c static int fill_block(InterplayACMContext *s) s 422 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 426 libavcodec/interplayacm.c for (i = 0; i < s->cols; i++) { s 428 libavcodec/interplayacm.c ret = filler_list[ind](s, ind, i); s 462 libavcodec/interplayacm.c static void juggle_block(InterplayACMContext *s) s 468 libavcodec/interplayacm.c if (s->level == 0) s 472 libavcodec/interplayacm.c if (s->level > 9) s 475 libavcodec/interplayacm.c step_subcount = (2048 >> s->level) - 2; s 481 libavcodec/interplayacm.c todo_count = s->rows; s 482 libavcodec/interplayacm.c block_p = s->block; s 484 libavcodec/interplayacm.c wrap_p = s->wrapbuf; s 489 libavcodec/interplayacm.c sub_len = s->cols / 2; s 511 libavcodec/interplayacm.c block_p += step_subcount << s->level; s 515 libavcodec/interplayacm.c static int decode_block(InterplayACMContext *s) s 517 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 526 libavcodec/interplayacm.c s->midbuf[i] = x; s 531 libavcodec/interplayacm.c s->midbuf[-i] = x; s 535 libavcodec/interplayacm.c ret = fill_block(s); s 539 libavcodec/interplayacm.c juggle_block(s); s 547 libavcodec/interplayacm.c InterplayACMContext *s = avctx->priv_data; s 548 libavcodec/interplayacm.c GetBitContext *gb = &s->gb; s 554 libavcodec/interplayacm.c if (!pkt->size && !s->bitstream_size) { s 559 libavcodec/interplayacm.c buf_size = FFMIN(pkt->size, s->max_framesize - s->bitstream_size); s 561 libavcodec/interplayacm.c if (s->bitstream_index + s->bitstream_size + buf_size > s->max_framesize) { s 562 libavcodec/interplayacm.c memmove(s->bitstream, &s->bitstream[s->bitstream_index], s->bitstream_size); s 563 libavcodec/interplayacm.c s->bitstream_index = 0; s 566 libavcodec/interplayacm.c memcpy(&s->bitstream[s->bitstream_index + s->bitstream_size], pkt->data, buf_size); s 567 libavcodec/interplayacm.c buf = &s->bitstream[s->bitstream_index]; s 568 libavcodec/interplayacm.c buf_size += s->bitstream_size; s 569 libavcodec/interplayacm.c s->bitstream_size = buf_size; s 570 libavcodec/interplayacm.c if (buf_size < s->max_framesize && pkt->data) { s 578 libavcodec/interplayacm.c frame->nb_samples = s->block_len / avctx->channels; s 582 libavcodec/interplayacm.c skip_bits(gb, s->skip); s 583 libavcodec/interplayacm.c ret = decode_block(s); s 589 libavcodec/interplayacm.c int val = s->block[n] >> s->level; s 594 libavcodec/interplayacm.c s->skip = get_bits_count(gb) - 8 * (get_bits_count(gb) / 8); s 598 libavcodec/interplayacm.c s->bitstream_size = 0; s 599 libavcodec/interplayacm.c s->bitstream_index = 0; s 603 libavcodec/interplayacm.c if (s->bitstream_size) { s 604 libavcodec/interplayacm.c s->bitstream_index += n; s 605 libavcodec/interplayacm.c s->bitstream_size -= n; s 613 libavcodec/interplayacm.c InterplayACMContext *s = avctx->priv_data; s 615 libavcodec/interplayacm.c av_freep(&s->block); s 616 libavcodec/interplayacm.c av_freep(&s->wrapbuf); s 617 libavcodec/interplayacm.c av_freep(&s->ampbuf); s 618 libavcodec/interplayacm.c av_freep(&s->bitstream); s 619 libavcodec/interplayacm.c s->bitstream_size = 0; s 78 libavcodec/interplayvideo.c static int copy_from(IpvideoContext *s, AVFrame *src, AVFrame *dst, int delta_x, int delta_y) s 81 libavcodec/interplayvideo.c int current_offset = s->pixel_ptr - dst->data[0]; s 82 libavcodec/interplayvideo.c int x = (current_offset % dst->linesize[0]) / (1 + s->is_16bpp); s 86 libavcodec/interplayvideo.c int motion_offset = dy * src->linesize[0] + dx * (1 + s->is_16bpp); s 89 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "motion offset < 0 (%d)\n", motion_offset); s 91 libavcodec/interplayvideo.c } else if (motion_offset > s->upper_motion_limit_offset) { s 92 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "motion offset above limit (%d >= %d)\n", s 93 libavcodec/interplayvideo.c motion_offset, s->upper_motion_limit_offset); s 97 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "Invalid decode type, corrupted header?\n"); s 100 libavcodec/interplayvideo.c s->hdsp.put_pixels_tab[!s->is_16bpp][0](s->pixel_ptr, src->data[0] + motion_offset, s 105 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x0(IpvideoContext *s, AVFrame *frame) s 107 libavcodec/interplayvideo.c return copy_from(s, s->last_frame, frame, 0, 0); s 110 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x1(IpvideoContext *s, AVFrame *frame) s 112 libavcodec/interplayvideo.c return copy_from(s, s->second_last_frame, frame, 0, 0); s 115 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x2(IpvideoContext *s, AVFrame *frame) s 121 libavcodec/interplayvideo.c if (!s->is_16bpp) { s 122 libavcodec/interplayvideo.c B = bytestream2_get_byte(&s->stream_ptr); s 124 libavcodec/interplayvideo.c B = bytestream2_get_byte(&s->mv_ptr); s 135 libavcodec/interplayvideo.c ff_tlog(s->avctx, "motion byte = %d, (x, y) = (%d, %d)\n", B, x, y); s 136 libavcodec/interplayvideo.c return copy_from(s, s->second_last_frame, frame, x, y); s 139 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x3(IpvideoContext *s, AVFrame *frame) s 147 libavcodec/interplayvideo.c if (!s->is_16bpp) { s 148 libavcodec/interplayvideo.c B = bytestream2_get_byte(&s->stream_ptr); s 150 libavcodec/interplayvideo.c B = bytestream2_get_byte(&s->mv_ptr); s 161 libavcodec/interplayvideo.c ff_tlog(s->avctx, "motion byte = %d, (x, y) = (%d, %d)\n", B, x, y); s 162 libavcodec/interplayvideo.c return copy_from(s, frame, frame, x, y); s 165 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x4(IpvideoContext *s, AVFrame *frame) s 171 libavcodec/interplayvideo.c if (!s->is_16bpp) { s 172 libavcodec/interplayvideo.c B = bytestream2_get_byte(&s->stream_ptr); s 174 libavcodec/interplayvideo.c B = bytestream2_get_byte(&s->mv_ptr); s 182 libavcodec/interplayvideo.c ff_tlog(s->avctx, "motion byte = %d, (x, y) = (%d, %d)\n", B, x, y); s 183 libavcodec/interplayvideo.c return copy_from(s, s->last_frame, frame, x, y); s 186 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x5(IpvideoContext *s, AVFrame *frame) s 192 libavcodec/interplayvideo.c x = bytestream2_get_byte(&s->stream_ptr); s 193 libavcodec/interplayvideo.c y = bytestream2_get_byte(&s->stream_ptr); s 195 libavcodec/interplayvideo.c ff_tlog(s->avctx, "motion bytes = %d, %d\n", x, y); s 196 libavcodec/interplayvideo.c return copy_from(s, s->last_frame, frame, x, y); s 199 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x6(IpvideoContext *s, AVFrame *frame) s 202 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "Help! Mystery opcode 0x6 seen\n"); s 208 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x7(IpvideoContext *s, AVFrame *frame) s 214 libavcodec/interplayvideo.c if (bytestream2_get_bytes_left(&s->stream_ptr) < 4) { s 215 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "too little data for opcode 0x7\n"); s 220 libavcodec/interplayvideo.c P[0] = bytestream2_get_byte(&s->stream_ptr); s 221 libavcodec/interplayvideo.c P[1] = bytestream2_get_byte(&s->stream_ptr); s 227 libavcodec/interplayvideo.c flags = bytestream2_get_byte(&s->stream_ptr) | 0x100; s 229 libavcodec/interplayvideo.c *s->pixel_ptr++ = P[flags & 1]; s 230 libavcodec/interplayvideo.c s->pixel_ptr += s->line_inc; s 236 libavcodec/interplayvideo.c flags = bytestream2_get_le16(&s->stream_ptr); s 239 libavcodec/interplayvideo.c s->pixel_ptr[x ] = s 240 libavcodec/interplayvideo.c s->pixel_ptr[x + 1 ] = s 241 libavcodec/interplayvideo.c s->pixel_ptr[x + s->stride] = s 242 libavcodec/interplayvideo.c s->pixel_ptr[x + 1 + s->stride] = P[flags & 1]; s 244 libavcodec/interplayvideo.c s->pixel_ptr += s->stride * 2; s 252 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x8(IpvideoContext *s, AVFrame *frame) s 258 libavcodec/interplayvideo.c if (bytestream2_get_bytes_left(&s->stream_ptr) < 12) { s 259 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "too little data for opcode 0x8\n"); s 265 libavcodec/interplayvideo.c P[0] = bytestream2_get_byte(&s->stream_ptr); s 266 libavcodec/interplayvideo.c P[1] = bytestream2_get_byte(&s->stream_ptr); s 273 libavcodec/interplayvideo.c P[0] = bytestream2_get_byte(&s->stream_ptr); s 274 libavcodec/interplayvideo.c P[1] = bytestream2_get_byte(&s->stream_ptr); s 276 libavcodec/interplayvideo.c flags = bytestream2_get_le16(&s->stream_ptr); s 280 libavcodec/interplayvideo.c *s->pixel_ptr++ = P[flags & 1]; s 281 libavcodec/interplayvideo.c s->pixel_ptr += s->stride - 4; s 283 libavcodec/interplayvideo.c if (y == 7) s->pixel_ptr -= 8 * s->stride - 4; s 287 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 288 libavcodec/interplayvideo.c P[2] = bytestream2_get_byte(&s->stream_ptr); s 289 libavcodec/interplayvideo.c P[3] = bytestream2_get_byte(&s->stream_ptr); s 297 libavcodec/interplayvideo.c *s->pixel_ptr++ = P[flags & 1]; s 298 libavcodec/interplayvideo.c s->pixel_ptr += s->stride - 4; s 301 libavcodec/interplayvideo.c s->pixel_ptr -= 8 * s->stride - 4; s 304 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 316 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 320 libavcodec/interplayvideo.c *s->pixel_ptr++ = P[flags & 1]; s 321 libavcodec/interplayvideo.c s->pixel_ptr += s->line_inc; s 330 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s, AVFrame *frame) s 335 libavcodec/interplayvideo.c if (bytestream2_get_bytes_left(&s->stream_ptr) < 8) { s 336 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "too little data for opcode 0x9\n"); s 341 libavcodec/interplayvideo.c bytestream2_get_buffer(&s->stream_ptr, P, 4); s 349 libavcodec/interplayvideo.c int flags = bytestream2_get_le16(&s->stream_ptr); s 351 libavcodec/interplayvideo.c *s->pixel_ptr++ = P[flags & 0x03]; s 352 libavcodec/interplayvideo.c s->pixel_ptr += s->line_inc; s 359 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 363 libavcodec/interplayvideo.c s->pixel_ptr[x ] = s 364 libavcodec/interplayvideo.c s->pixel_ptr[x + 1 ] = s 365 libavcodec/interplayvideo.c s->pixel_ptr[x + s->stride] = s 366 libavcodec/interplayvideo.c s->pixel_ptr[x + 1 + s->stride] = P[flags & 0x03]; s 368 libavcodec/interplayvideo.c s->pixel_ptr += s->stride * 2; s 376 libavcodec/interplayvideo.c flags = bytestream2_get_le64(&s->stream_ptr); s 380 libavcodec/interplayvideo.c s->pixel_ptr[x ] = s 381 libavcodec/interplayvideo.c s->pixel_ptr[x + 1] = P[flags & 0x03]; s 383 libavcodec/interplayvideo.c s->pixel_ptr += s->stride; s 388 libavcodec/interplayvideo.c s->pixel_ptr[x ] = s 389 libavcodec/interplayvideo.c s->pixel_ptr[x + s->stride] = P[flags & 0x03]; s 391 libavcodec/interplayvideo.c s->pixel_ptr += s->stride * 2; s 400 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xA(IpvideoContext *s, AVFrame *frame) s 406 libavcodec/interplayvideo.c if (bytestream2_get_bytes_left(&s->stream_ptr) < 16) { s 407 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "too little data for opcode 0xA\n"); s 411 libavcodec/interplayvideo.c bytestream2_get_buffer(&s->stream_ptr, P, 4); s 421 libavcodec/interplayvideo.c if (y) bytestream2_get_buffer(&s->stream_ptr, P, 4); s 422 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 426 libavcodec/interplayvideo.c *s->pixel_ptr++ = P[flags & 0x03]; s 428 libavcodec/interplayvideo.c s->pixel_ptr += s->stride - 4; s 430 libavcodec/interplayvideo.c if (y == 7) s->pixel_ptr -= 8 * s->stride - 4; s 436 libavcodec/interplayvideo.c uint64_t flags = bytestream2_get_le64(&s->stream_ptr); s 438 libavcodec/interplayvideo.c bytestream2_get_buffer(&s->stream_ptr, P + 4, 4); s 446 libavcodec/interplayvideo.c *s->pixel_ptr++ = P[flags & 0x03]; s 449 libavcodec/interplayvideo.c s->pixel_ptr += s->stride - 4; s 451 libavcodec/interplayvideo.c if (y == 7) s->pixel_ptr -= 8 * s->stride - 4; s 452 libavcodec/interplayvideo.c } else if (y & 1) s->pixel_ptr += s->line_inc; s 457 libavcodec/interplayvideo.c flags = bytestream2_get_le64(&s->stream_ptr); s 466 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xB(IpvideoContext *s, AVFrame *frame) s 472 libavcodec/interplayvideo.c bytestream2_get_buffer(&s->stream_ptr, s->pixel_ptr, 8); s 473 libavcodec/interplayvideo.c s->pixel_ptr += s->stride; s 480 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xC(IpvideoContext *s, AVFrame *frame) s 487 libavcodec/interplayvideo.c s->pixel_ptr[x ] = s 488 libavcodec/interplayvideo.c s->pixel_ptr[x + 1 ] = s 489 libavcodec/interplayvideo.c s->pixel_ptr[x + s->stride] = s 490 libavcodec/interplayvideo.c s->pixel_ptr[x + 1 + s->stride] = bytestream2_get_byte(&s->stream_ptr); s 492 libavcodec/interplayvideo.c s->pixel_ptr += s->stride * 2; s 499 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xD(IpvideoContext *s, AVFrame *frame) s 504 libavcodec/interplayvideo.c if (bytestream2_get_bytes_left(&s->stream_ptr) < 4) { s 505 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "too little data for opcode 0xD\n"); s 512 libavcodec/interplayvideo.c P[0] = bytestream2_get_byte(&s->stream_ptr); s 513 libavcodec/interplayvideo.c P[1] = bytestream2_get_byte(&s->stream_ptr); s 515 libavcodec/interplayvideo.c memset(s->pixel_ptr, P[0], 4); s 516 libavcodec/interplayvideo.c memset(s->pixel_ptr + 4, P[1], 4); s 517 libavcodec/interplayvideo.c s->pixel_ptr += s->stride; s 524 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xE(IpvideoContext *s, AVFrame *frame) s 530 libavcodec/interplayvideo.c pix = bytestream2_get_byte(&s->stream_ptr); s 533 libavcodec/interplayvideo.c memset(s->pixel_ptr, pix, 8); s 534 libavcodec/interplayvideo.c s->pixel_ptr += s->stride; s 541 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xF(IpvideoContext *s, AVFrame *frame) s 547 libavcodec/interplayvideo.c sample[0] = bytestream2_get_byte(&s->stream_ptr); s 548 libavcodec/interplayvideo.c sample[1] = bytestream2_get_byte(&s->stream_ptr); s 552 libavcodec/interplayvideo.c *s->pixel_ptr++ = sample[ y & 1 ]; s 553 libavcodec/interplayvideo.c *s->pixel_ptr++ = sample[!(y & 1)]; s 555 libavcodec/interplayvideo.c s->pixel_ptr += s->line_inc; s 562 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x6_16(IpvideoContext *s, AVFrame *frame) s 567 libavcodec/interplayvideo.c x = bytestream2_get_byte(&s->stream_ptr); s 568 libavcodec/interplayvideo.c y = bytestream2_get_byte(&s->stream_ptr); s 570 libavcodec/interplayvideo.c ff_tlog(s->avctx, "motion bytes = %d, %d\n", x, y); s 571 libavcodec/interplayvideo.c return copy_from(s, s->second_last_frame, frame, x, y); s 574 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x7_16(IpvideoContext *s, AVFrame *frame) s 579 libavcodec/interplayvideo.c uint16_t *pixel_ptr = (uint16_t*)s->pixel_ptr; s 582 libavcodec/interplayvideo.c P[0] = bytestream2_get_le16(&s->stream_ptr); s 583 libavcodec/interplayvideo.c P[1] = bytestream2_get_le16(&s->stream_ptr); s 588 libavcodec/interplayvideo.c flags = bytestream2_get_byte(&s->stream_ptr) | 0x100; s 591 libavcodec/interplayvideo.c pixel_ptr += s->line_inc; s 596 libavcodec/interplayvideo.c flags = bytestream2_get_le16(&s->stream_ptr); s 601 libavcodec/interplayvideo.c pixel_ptr[x + s->stride] = s 602 libavcodec/interplayvideo.c pixel_ptr[x + 1 + s->stride] = P[flags & 1]; s 604 libavcodec/interplayvideo.c pixel_ptr += s->stride * 2; s 611 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x8_16(IpvideoContext *s, AVFrame *frame) s 616 libavcodec/interplayvideo.c uint16_t *pixel_ptr = (uint16_t*)s->pixel_ptr; s 620 libavcodec/interplayvideo.c P[0] = bytestream2_get_le16(&s->stream_ptr); s 621 libavcodec/interplayvideo.c P[1] = bytestream2_get_le16(&s->stream_ptr); s 629 libavcodec/interplayvideo.c P[0] = bytestream2_get_le16(&s->stream_ptr); s 630 libavcodec/interplayvideo.c P[1] = bytestream2_get_le16(&s->stream_ptr); s 632 libavcodec/interplayvideo.c flags = bytestream2_get_le16(&s->stream_ptr); s 637 libavcodec/interplayvideo.c pixel_ptr += s->stride - 4; s 639 libavcodec/interplayvideo.c if (y == 7) pixel_ptr -= 8 * s->stride - 4; s 644 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 645 libavcodec/interplayvideo.c P[2] = bytestream2_get_le16(&s->stream_ptr); s 646 libavcodec/interplayvideo.c P[3] = bytestream2_get_le16(&s->stream_ptr); s 655 libavcodec/interplayvideo.c pixel_ptr += s->stride - 4; s 658 libavcodec/interplayvideo.c pixel_ptr -= 8 * s->stride - 4; s 661 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 673 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 678 libavcodec/interplayvideo.c pixel_ptr += s->line_inc; s 687 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0x9_16(IpvideoContext *s, AVFrame *frame) s 691 libavcodec/interplayvideo.c uint16_t *pixel_ptr = (uint16_t*)s->pixel_ptr; s 695 libavcodec/interplayvideo.c P[x] = bytestream2_get_le16(&s->stream_ptr); s 703 libavcodec/interplayvideo.c int flags = bytestream2_get_le16(&s->stream_ptr); s 706 libavcodec/interplayvideo.c pixel_ptr += s->line_inc; s 713 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 719 libavcodec/interplayvideo.c pixel_ptr[x + s->stride] = s 720 libavcodec/interplayvideo.c pixel_ptr[x + 1 + s->stride] = P[flags & 0x03]; s 722 libavcodec/interplayvideo.c pixel_ptr += s->stride * 2; s 730 libavcodec/interplayvideo.c flags = bytestream2_get_le64(&s->stream_ptr); s 737 libavcodec/interplayvideo.c pixel_ptr += s->stride; s 743 libavcodec/interplayvideo.c pixel_ptr[x + s->stride] = P[flags & 0x03]; s 745 libavcodec/interplayvideo.c pixel_ptr += s->stride * 2; s 754 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xA_16(IpvideoContext *s, AVFrame *frame) s 759 libavcodec/interplayvideo.c uint16_t *pixel_ptr = (uint16_t*)s->pixel_ptr; s 762 libavcodec/interplayvideo.c P[x] = bytestream2_get_le16(&s->stream_ptr); s 774 libavcodec/interplayvideo.c P[x] = bytestream2_get_le16(&s->stream_ptr); s 775 libavcodec/interplayvideo.c flags = bytestream2_get_le32(&s->stream_ptr); s 781 libavcodec/interplayvideo.c pixel_ptr += s->stride - 4; s 783 libavcodec/interplayvideo.c if (y == 7) pixel_ptr -= 8 * s->stride - 4; s 789 libavcodec/interplayvideo.c uint64_t flags = bytestream2_get_le64(&s->stream_ptr); s 792 libavcodec/interplayvideo.c P[x] = bytestream2_get_le16(&s->stream_ptr); s 803 libavcodec/interplayvideo.c pixel_ptr += s->stride - 4; s 805 libavcodec/interplayvideo.c if (y == 7) pixel_ptr -= 8 * s->stride - 4; s 806 libavcodec/interplayvideo.c } else if (y & 1) pixel_ptr += s->line_inc; s 811 libavcodec/interplayvideo.c flags = bytestream2_get_le64(&s->stream_ptr); s 820 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xB_16(IpvideoContext *s, AVFrame *frame) s 823 libavcodec/interplayvideo.c uint16_t *pixel_ptr = (uint16_t*)s->pixel_ptr; s 828 libavcodec/interplayvideo.c pixel_ptr[x] = bytestream2_get_le16(&s->stream_ptr); s 829 libavcodec/interplayvideo.c pixel_ptr += s->stride; s 836 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xC_16(IpvideoContext *s, AVFrame *frame) s 839 libavcodec/interplayvideo.c uint16_t *pixel_ptr = (uint16_t*)s->pixel_ptr; s 846 libavcodec/interplayvideo.c pixel_ptr[x + s->stride] = s 847 libavcodec/interplayvideo.c pixel_ptr[x + 1 + s->stride] = bytestream2_get_le16(&s->stream_ptr); s 849 libavcodec/interplayvideo.c pixel_ptr += s->stride * 2; s 856 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xD_16(IpvideoContext *s, AVFrame *frame) s 860 libavcodec/interplayvideo.c uint16_t *pixel_ptr = (uint16_t*)s->pixel_ptr; s 865 libavcodec/interplayvideo.c P[0] = bytestream2_get_le16(&s->stream_ptr); s 866 libavcodec/interplayvideo.c P[1] = bytestream2_get_le16(&s->stream_ptr); s 870 libavcodec/interplayvideo.c pixel_ptr += s->stride; s 877 libavcodec/interplayvideo.c static int ipvideo_decode_block_opcode_0xE_16(IpvideoContext *s, AVFrame *frame) s 881 libavcodec/interplayvideo.c uint16_t *pixel_ptr = (uint16_t*)s->pixel_ptr; s 884 libavcodec/interplayvideo.c pix = bytestream2_get_le16(&s->stream_ptr); s 889 libavcodec/interplayvideo.c pixel_ptr += s->stride; s 896 libavcodec/interplayvideo.c static int (* const ipvideo_decode_block[])(IpvideoContext *s, AVFrame *frame) = { s 907 libavcodec/interplayvideo.c static int (* const ipvideo_decode_block16[])(IpvideoContext *s, AVFrame *frame) = { s 918 libavcodec/interplayvideo.c static void ipvideo_format_06_firstpass(IpvideoContext *s, AVFrame *frame, int16_t opcode) s 924 libavcodec/interplayvideo.c bytestream2_get_buffer(&s->stream_ptr, s->pixel_ptr, 8); s 925 libavcodec/interplayvideo.c s->pixel_ptr += s->stride; s 929 libavcodec/interplayvideo.c if (s->avctx->frame_number > 2) s 930 libavcodec/interplayvideo.c copy_from(s, s->second_last_frame, frame, 0, 0); s 934 libavcodec/interplayvideo.c static void ipvideo_format_06_secondpass(IpvideoContext *s, AVFrame *frame, int16_t opcode) s 941 libavcodec/interplayvideo.c copy_from(s, s->last_frame, frame, off_x, off_y); s 945 libavcodec/interplayvideo.c copy_from(s, frame, frame, off_x, off_y); s 949 libavcodec/interplayvideo.c static void (* const ipvideo_format_06_passes[])(IpvideoContext *s, AVFrame *frame, int16_t op) = { s 953 libavcodec/interplayvideo.c static void ipvideo_decode_format_06_opcodes(IpvideoContext *s, AVFrame *frame) s 960 libavcodec/interplayvideo.c memcpy(frame->data[1], s->pal, AVPALETTE_SIZE); s 961 libavcodec/interplayvideo.c s->stride = frame->linesize[0]; s 963 libavcodec/interplayvideo.c s->line_inc = s->stride - 8; s 964 libavcodec/interplayvideo.c s->upper_motion_limit_offset = (s->avctx->height - 8) * frame->linesize[0] s 965 libavcodec/interplayvideo.c + (s->avctx->width - 8) * (1 + s->is_16bpp); s 967 libavcodec/interplayvideo.c bytestream2_init(&decoding_map_ptr, s->decoding_map, s->decoding_map_size); s 971 libavcodec/interplayvideo.c for (y = 0; y < s->avctx->height; y += 8) { s 972 libavcodec/interplayvideo.c for (x = 0; x < s->avctx->width; x += 8) { s 975 libavcodec/interplayvideo.c ff_tlog(s->avctx, s 977 libavcodec/interplayvideo.c x, y, opcode, bytestream2_tell(&s->stream_ptr)); s 979 libavcodec/interplayvideo.c s->pixel_ptr = frame->data[0] + x + y * frame->linesize[0]; s 980 libavcodec/interplayvideo.c ipvideo_format_06_passes[pass](s, frame, opcode); s 985 libavcodec/interplayvideo.c if (bytestream2_get_bytes_left(&s->stream_ptr) > 1) { s 986 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_DEBUG, s 988 libavcodec/interplayvideo.c bytestream2_get_bytes_left(&s->stream_ptr)); s 992 libavcodec/interplayvideo.c static void ipvideo_format_10_firstpass(IpvideoContext *s, AVFrame *frame, int16_t opcode) s 998 libavcodec/interplayvideo.c bytestream2_get_buffer(&s->stream_ptr, s->pixel_ptr, 8); s 999 libavcodec/interplayvideo.c s->pixel_ptr += s->stride; s 1004 libavcodec/interplayvideo.c static void ipvideo_format_10_secondpass(IpvideoContext *s, AVFrame *frame, int16_t opcode) s 1009 libavcodec/interplayvideo.c off_x = ((uint16_t)opcode - 0xC000) % s->cur_decode_frame->width; s 1010 libavcodec/interplayvideo.c off_y = ((uint16_t)opcode - 0xC000) / s->cur_decode_frame->width; s 1011 libavcodec/interplayvideo.c copy_from(s, s->prev_decode_frame, s->cur_decode_frame, off_x, off_y); s 1013 libavcodec/interplayvideo.c off_x = ((uint16_t)opcode - 0x4000) % s->cur_decode_frame->width; s 1014 libavcodec/interplayvideo.c off_y = ((uint16_t)opcode - 0x4000) / s->cur_decode_frame->width; s 1015 libavcodec/interplayvideo.c copy_from(s, s->cur_decode_frame, s->cur_decode_frame, off_x, off_y); s 1019 libavcodec/interplayvideo.c static void (* const ipvideo_format_10_passes[])(IpvideoContext *s, AVFrame *frame, int16_t op) = { s 1023 libavcodec/interplayvideo.c static void ipvideo_decode_format_10_opcodes(IpvideoContext *s, AVFrame *frame) s 1030 libavcodec/interplayvideo.c bytestream2_skip(&s->stream_ptr, 14); /* data starts 14 bytes in */ s 1033 libavcodec/interplayvideo.c memcpy(frame->data[1], s->pal, AVPALETTE_SIZE); s 1034 libavcodec/interplayvideo.c s->stride = frame->linesize[0]; s 1036 libavcodec/interplayvideo.c s->line_inc = s->stride - 8; s 1037 libavcodec/interplayvideo.c s->upper_motion_limit_offset = (s->avctx->height - 8) * frame->linesize[0] s 1038 libavcodec/interplayvideo.c + (s->avctx->width - 8) * (1 + s->is_16bpp); s 1040 libavcodec/interplayvideo.c bytestream2_init(&decoding_map_ptr, s->decoding_map, s->decoding_map_size); s 1041 libavcodec/interplayvideo.c bytestream2_init(&skip_map_ptr, s->skip_map, s->skip_map_size); s 1048 libavcodec/interplayvideo.c for (y = 0; y < s->avctx->height; y += 8) { s 1049 libavcodec/interplayvideo.c for (x = 0; x < s->avctx->width; x += 8) { s 1050 libavcodec/interplayvideo.c s->pixel_ptr = s->cur_decode_frame->data[0] + x + y * s->cur_decode_frame->linesize[0]; s 1055 libavcodec/interplayvideo.c ipvideo_format_10_passes[pass](s, frame, opcode); s 1069 libavcodec/interplayvideo.c for (y = 0; y < s->avctx->height; y += 8) { s 1070 libavcodec/interplayvideo.c for (x = 0; x < s->avctx->width; x += 8) { s 1072 libavcodec/interplayvideo.c s->pixel_ptr = frame->data[0] + x + y*frame->linesize[0]; s 1085 libavcodec/interplayvideo.c copy_from(s, s->cur_decode_frame, frame, 0, 0); s 1088 libavcodec/interplayvideo.c if (s->avctx->frame_number) s 1089 libavcodec/interplayvideo.c copy_from(s, s->last_frame, frame, 0, 0); s 1095 libavcodec/interplayvideo.c FFSWAP(AVFrame*, s->prev_decode_frame, s->cur_decode_frame); s 1097 libavcodec/interplayvideo.c if (bytestream2_get_bytes_left(&s->stream_ptr) > 1) { s 1098 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_DEBUG, s 1100 libavcodec/interplayvideo.c bytestream2_get_bytes_left(&s->stream_ptr)); s 1104 libavcodec/interplayvideo.c static void ipvideo_decode_format_11_opcodes(IpvideoContext *s, AVFrame *frame) s 1111 libavcodec/interplayvideo.c bytestream2_skip(&s->stream_ptr, 14); /* data starts 14 bytes in */ s 1112 libavcodec/interplayvideo.c if (!s->is_16bpp) { s 1114 libavcodec/interplayvideo.c memcpy(frame->data[1], s->pal, AVPALETTE_SIZE); s 1116 libavcodec/interplayvideo.c s->stride = frame->linesize[0]; s 1118 libavcodec/interplayvideo.c s->stride = frame->linesize[0] >> 1; s 1119 libavcodec/interplayvideo.c s->mv_ptr = s->stream_ptr; s 1120 libavcodec/interplayvideo.c bytestream2_skip(&s->mv_ptr, bytestream2_get_le16(&s->stream_ptr)); s 1122 libavcodec/interplayvideo.c s->line_inc = s->stride - 8; s 1123 libavcodec/interplayvideo.c s->upper_motion_limit_offset = (s->avctx->height - 8) * frame->linesize[0] s 1124 libavcodec/interplayvideo.c + (s->avctx->width - 8) * (1 + s->is_16bpp); s 1126 libavcodec/interplayvideo.c init_get_bits(&gb, s->decoding_map, s->decoding_map_size * 8); s 1127 libavcodec/interplayvideo.c for (y = 0; y < s->avctx->height; y += 8) { s 1128 libavcodec/interplayvideo.c for (x = 0; x < s->avctx->width; x += 8) { s 1133 libavcodec/interplayvideo.c ff_tlog(s->avctx, s 1135 libavcodec/interplayvideo.c x, y, opcode, bytestream2_tell(&s->stream_ptr)); s 1137 libavcodec/interplayvideo.c if (!s->is_16bpp) { s 1138 libavcodec/interplayvideo.c s->pixel_ptr = frame->data[0] + x s 1140 libavcodec/interplayvideo.c ret = ipvideo_decode_block[opcode](s, frame); s 1142 libavcodec/interplayvideo.c s->pixel_ptr = frame->data[0] + x*2 s 1144 libavcodec/interplayvideo.c ret = ipvideo_decode_block16[opcode](s, frame); s 1147 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_ERROR, "decode problem on frame %d, @ block (%d, %d)\n", s 1148 libavcodec/interplayvideo.c s->avctx->frame_number, x, y); s 1153 libavcodec/interplayvideo.c if (bytestream2_get_bytes_left(&s->stream_ptr) > 1) { s 1154 libavcodec/interplayvideo.c av_log(s->avctx, AV_LOG_DEBUG, s 1156 libavcodec/interplayvideo.c bytestream2_get_bytes_left(&s->stream_ptr)); s 1162 libavcodec/interplayvideo.c IpvideoContext *s = avctx->priv_data; s 1165 libavcodec/interplayvideo.c s->avctx = avctx; s 1167 libavcodec/interplayvideo.c s->is_16bpp = avctx->bits_per_coded_sample == 16; s 1168 libavcodec/interplayvideo.c avctx->pix_fmt = s->is_16bpp ? AV_PIX_FMT_RGB555 : AV_PIX_FMT_PAL8; s 1170 libavcodec/interplayvideo.c ff_hpeldsp_init(&s->hdsp, avctx->flags); s 1172 libavcodec/interplayvideo.c s->last_frame = av_frame_alloc(); s 1173 libavcodec/interplayvideo.c s->second_last_frame = av_frame_alloc(); s 1174 libavcodec/interplayvideo.c s->cur_decode_frame = av_frame_alloc(); s 1175 libavcodec/interplayvideo.c s->prev_decode_frame = av_frame_alloc(); s 1176 libavcodec/interplayvideo.c if (!s->last_frame || !s->second_last_frame || s 1177 libavcodec/interplayvideo.c !s->cur_decode_frame || !s->prev_decode_frame) { s 1182 libavcodec/interplayvideo.c s->cur_decode_frame->width = avctx->width; s 1183 libavcodec/interplayvideo.c s->prev_decode_frame->width = avctx->width; s 1184 libavcodec/interplayvideo.c s->cur_decode_frame->height = avctx->height; s 1185 libavcodec/interplayvideo.c s->prev_decode_frame->height = avctx->height; s 1186 libavcodec/interplayvideo.c s->cur_decode_frame->format = avctx->pix_fmt; s 1187 libavcodec/interplayvideo.c s->prev_decode_frame->format = avctx->pix_fmt; s 1191 libavcodec/interplayvideo.c av_frame_free(&s->last_frame); s 1192 libavcodec/interplayvideo.c av_frame_free(&s->second_last_frame); s 1193 libavcodec/interplayvideo.c av_frame_free(&s->cur_decode_frame); s 1194 libavcodec/interplayvideo.c av_frame_free(&s->prev_decode_frame); s 1204 libavcodec/interplayvideo.c IpvideoContext *s = avctx->priv_data; s 1212 libavcodec/interplayvideo.c av_frame_unref(s->last_frame); s 1213 libavcodec/interplayvideo.c av_frame_unref(s->second_last_frame); s 1214 libavcodec/interplayvideo.c av_frame_unref(s->cur_decode_frame); s 1215 libavcodec/interplayvideo.c av_frame_unref(s->prev_decode_frame); s 1218 libavcodec/interplayvideo.c if (!s->cur_decode_frame->data[0]) { s 1219 libavcodec/interplayvideo.c ret = ff_get_buffer(avctx, s->cur_decode_frame, 0); s 1223 libavcodec/interplayvideo.c ret = ff_get_buffer(avctx, s->prev_decode_frame, 0); s 1225 libavcodec/interplayvideo.c av_frame_unref(s->cur_decode_frame); s 1236 libavcodec/interplayvideo.c s->decoding_map_size = AV_RL16(buf + 4); s 1237 libavcodec/interplayvideo.c s->skip_map_size = AV_RL16(buf + 6); s 1241 libavcodec/interplayvideo.c if (s->decoding_map_size) { s 1246 libavcodec/interplayvideo.c if (s->skip_map_size) { s 1251 libavcodec/interplayvideo.c if (s->is_16bpp) { s 1257 libavcodec/interplayvideo.c s->decoding_map_size = ((s->avctx->width / 8) * (s->avctx->height / 8)) * 2; s 1258 libavcodec/interplayvideo.c s->decoding_map = buf + 8 + 14; /* 14 bits of op data */ s 1259 libavcodec/interplayvideo.c video_data_size -= s->decoding_map_size + 14; s 1260 libavcodec/interplayvideo.c if (video_data_size <= 0 || s->decoding_map_size == 0) s 1263 libavcodec/interplayvideo.c if (buf_size < 8 + s->decoding_map_size + 14 + video_data_size) s 1266 libavcodec/interplayvideo.c bytestream2_init(&s->stream_ptr, buf + 8 + s->decoding_map_size + 14, video_data_size); s 1271 libavcodec/interplayvideo.c if (! s->decoding_map_size) { s 1276 libavcodec/interplayvideo.c if (! s->skip_map_size) { s 1281 libavcodec/interplayvideo.c if (s->is_16bpp) { s 1286 libavcodec/interplayvideo.c if (buf_size < 8 + video_data_size + s->decoding_map_size + s->skip_map_size) s 1289 libavcodec/interplayvideo.c bytestream2_init(&s->stream_ptr, buf + 8, video_data_size); s 1290 libavcodec/interplayvideo.c s->decoding_map = buf + 8 + video_data_size; s 1291 libavcodec/interplayvideo.c s->skip_map = buf + 8 + video_data_size + s->decoding_map_size; s 1296 libavcodec/interplayvideo.c if (! s->decoding_map_size) { s 1301 libavcodec/interplayvideo.c if (s->skip_map_size) { s 1306 libavcodec/interplayvideo.c if (buf_size < 8 + video_data_size + s->decoding_map_size) s 1309 libavcodec/interplayvideo.c bytestream2_init(&s->stream_ptr, buf + 8, video_data_size); s 1310 libavcodec/interplayvideo.c s->decoding_map = buf + 8 + video_data_size; s 1319 libavcodec/interplayvideo.c if (buf_size < 8 + s->decoding_map_size + video_data_size + s->skip_map_size) { s 1327 libavcodec/interplayvideo.c if (!s->is_16bpp) { s 1332 libavcodec/interplayvideo.c memcpy(s->pal, pal, AVPALETTE_SIZE); s 1340 libavcodec/interplayvideo.c ipvideo_decode_format_06_opcodes(s, frame); s 1343 libavcodec/interplayvideo.c ipvideo_decode_format_10_opcodes(s, frame); s 1346 libavcodec/interplayvideo.c ipvideo_decode_format_11_opcodes(s, frame); s 1353 libavcodec/interplayvideo.c av_frame_unref(s->second_last_frame); s 1354 libavcodec/interplayvideo.c FFSWAP(AVFrame*, s->second_last_frame, s->last_frame); s 1355 libavcodec/interplayvideo.c if ((ret = av_frame_ref(s->last_frame, frame)) < 0) s 1364 libavcodec/interplayvideo.c IpvideoContext *s = avctx->priv_data; s 1366 libavcodec/interplayvideo.c av_frame_free(&s->last_frame); s 1367 libavcodec/interplayvideo.c av_frame_free(&s->second_last_frame); s 1368 libavcodec/interplayvideo.c av_frame_free(&s->cur_decode_frame); s 1369 libavcodec/interplayvideo.c av_frame_free(&s->prev_decode_frame); s 76 libavcodec/ituh263dec.c void ff_h263_show_pict_info(MpegEncContext *s){ s 77 libavcodec/ituh263dec.c if(s->avctx->debug&FF_DEBUG_PICT_INFO){ s 78 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_DEBUG, "qp:%d %c size:%d rnd:%d%s%s%s%s%s%s%s%s%s %d/%d\n", s 79 libavcodec/ituh263dec.c s->qscale, av_get_picture_type_char(s->pict_type), s 80 libavcodec/ituh263dec.c s->gb.size_in_bits, 1-s->no_rounding, s 81 libavcodec/ituh263dec.c s->obmc ? " AP" : "", s 82 libavcodec/ituh263dec.c s->umvplus ? " UMV" : "", s 83 libavcodec/ituh263dec.c s->h263_long_vectors ? " LONG" : "", s 84 libavcodec/ituh263dec.c s->h263_plus ? " +" : "", s 85 libavcodec/ituh263dec.c s->h263_aic ? " AIC" : "", s 86 libavcodec/ituh263dec.c s->alt_inter_vlc ? " AIV" : "", s 87 libavcodec/ituh263dec.c s->modified_quant ? " MQ" : "", s 88 libavcodec/ituh263dec.c s->loop_filter ? " LOOP" : "", s 89 libavcodec/ituh263dec.c s->h263_slice_structured ? " SS" : "", s 90 libavcodec/ituh263dec.c s->avctx->framerate.num, s->avctx->framerate.den s 139 libavcodec/ituh263dec.c int ff_h263_decode_mba(MpegEncContext *s) s 144 libavcodec/ituh263dec.c if (s->mb_num - 1 <= ff_mba_max[i]) s 146 libavcodec/ituh263dec.c mb_pos = get_bits(&s->gb, ff_mba_length[i]); s 147 libavcodec/ituh263dec.c s->mb_x = mb_pos % s->mb_width; s 148 libavcodec/ituh263dec.c s->mb_y = mb_pos / s->mb_width; s 157 libavcodec/ituh263dec.c static int h263_decode_gob_header(MpegEncContext *s) s 163 libavcodec/ituh263dec.c val = show_bits(&s->gb, 16); s 168 libavcodec/ituh263dec.c skip_bits(&s->gb, 16); /* Drop the zeros */ s 169 libavcodec/ituh263dec.c left= get_bits_left(&s->gb); s 173 libavcodec/ituh263dec.c if(get_bits1(&s->gb)) break; /* Seek the '1' bit */ s 178 libavcodec/ituh263dec.c if(s->h263_slice_structured){ s 179 libavcodec/ituh263dec.c if(check_marker(s->avctx, &s->gb, "before MBA")==0) s 182 libavcodec/ituh263dec.c ff_h263_decode_mba(s); s 184 libavcodec/ituh263dec.c if(s->mb_num > 1583) s 185 libavcodec/ituh263dec.c if(check_marker(s->avctx, &s->gb, "after MBA")==0) s 188 libavcodec/ituh263dec.c s->qscale = get_bits(&s->gb, 5); /* SQUANT */ s 189 libavcodec/ituh263dec.c if(check_marker(s->avctx, &s->gb, "after SQUANT")==0) s 191 libavcodec/ituh263dec.c skip_bits(&s->gb, 2); /* GFID */ s 193 libavcodec/ituh263dec.c gob_number = get_bits(&s->gb, 5); /* GN */ s 194 libavcodec/ituh263dec.c s->mb_x= 0; s 195 libavcodec/ituh263dec.c s->mb_y= s->gob_index* gob_number; s 196 libavcodec/ituh263dec.c skip_bits(&s->gb, 2); /* GFID */ s 197 libavcodec/ituh263dec.c s->qscale = get_bits(&s->gb, 5); /* GQUANT */ s 200 libavcodec/ituh263dec.c if(s->mb_y >= s->mb_height) s 203 libavcodec/ituh263dec.c if(s->qscale==0) s 213 libavcodec/ituh263dec.c int ff_h263_resync(MpegEncContext *s){ s 218 libavcodec/ituh263dec.c if(s->codec_id==AV_CODEC_ID_MPEG4 && s->studio_profile) { s 219 libavcodec/ituh263dec.c align_get_bits(&s->gb); s 221 libavcodec/ituh263dec.c while (get_bits_left(&s->gb) >= 32 && show_bits_long(&s->gb, 32) != SLICE_START_CODE) { s 222 libavcodec/ituh263dec.c get_bits(&s->gb, 8); s 225 libavcodec/ituh263dec.c if (get_bits_left(&s->gb) >= 32 && show_bits_long(&s->gb, 32) == SLICE_START_CODE) s 226 libavcodec/ituh263dec.c return get_bits_count(&s->gb); s 231 libavcodec/ituh263dec.c if(s->codec_id==AV_CODEC_ID_MPEG4){ s 232 libavcodec/ituh263dec.c skip_bits1(&s->gb); s 233 libavcodec/ituh263dec.c align_get_bits(&s->gb); s 236 libavcodec/ituh263dec.c if(show_bits(&s->gb, 16)==0){ s 237 libavcodec/ituh263dec.c pos= get_bits_count(&s->gb); s 238 libavcodec/ituh263dec.c if(CONFIG_MPEG4_DECODER && s->codec_id==AV_CODEC_ID_MPEG4) s 239 libavcodec/ituh263dec.c ret= ff_mpeg4_decode_video_packet_header(s->avctx->priv_data); s 241 libavcodec/ituh263dec.c ret= h263_decode_gob_header(s); s 246 libavcodec/ituh263dec.c s->gb= s->last_resync_gb; s 247 libavcodec/ituh263dec.c align_get_bits(&s->gb); s 248 libavcodec/ituh263dec.c left= get_bits_left(&s->gb); s 251 libavcodec/ituh263dec.c if(show_bits(&s->gb, 16)==0){ s 252 libavcodec/ituh263dec.c GetBitContext bak= s->gb; s 254 libavcodec/ituh263dec.c pos= get_bits_count(&s->gb); s 255 libavcodec/ituh263dec.c if(CONFIG_MPEG4_DECODER && s->codec_id==AV_CODEC_ID_MPEG4) s 256 libavcodec/ituh263dec.c ret= ff_mpeg4_decode_video_packet_header(s->avctx->priv_data); s 258 libavcodec/ituh263dec.c ret= h263_decode_gob_header(s); s 262 libavcodec/ituh263dec.c s->gb= bak; s 264 libavcodec/ituh263dec.c skip_bits(&s->gb, 8); s 270 libavcodec/ituh263dec.c int ff_h263_decode_motion(MpegEncContext * s, int pred, int f_code) s 273 libavcodec/ituh263dec.c code = get_vlc2(&s->gb, mv_vlc.table, MV_VLC_BITS, 2); s 280 libavcodec/ituh263dec.c sign = get_bits1(&s->gb); s 285 libavcodec/ituh263dec.c val |= get_bits(&s->gb, shift); s 293 libavcodec/ituh263dec.c if (!s->h263_long_vectors) { s 308 libavcodec/ituh263dec.c static int h263p_decode_umotion(MpegEncContext * s, int pred) s 312 libavcodec/ituh263dec.c if (get_bits1(&s->gb)) /* Motion difference = 0 */ s 315 libavcodec/ituh263dec.c code = 2 + get_bits1(&s->gb); s 317 libavcodec/ituh263dec.c while (get_bits1(&s->gb)) s 320 libavcodec/ituh263dec.c code += get_bits1(&s->gb); s 322 libavcodec/ituh263dec.c avpriv_request_sample(s->avctx, "Huge DMV"); s 330 libavcodec/ituh263dec.c ff_tlog(s->avctx,"H.263+ UMV Motion = %d\n", code); s 338 libavcodec/ituh263dec.c static void preview_obmc(MpegEncContext *s){ s 339 libavcodec/ituh263dec.c GetBitContext gb= s->gb; s 343 libavcodec/ituh263dec.c const int xy= s->mb_x + 1 + s->mb_y * s->mb_stride; s 344 libavcodec/ituh263dec.c const int stride= s->b8_stride*2; s 347 libavcodec/ituh263dec.c s->block_index[i]+= 2; s 349 libavcodec/ituh263dec.c s->block_index[i]+= 1; s 350 libavcodec/ituh263dec.c s->mb_x++; s 352 libavcodec/ituh263dec.c av_assert2(s->pict_type == AV_PICTURE_TYPE_P); s 355 libavcodec/ituh263dec.c if (get_bits1(&s->gb)) { s 357 libavcodec/ituh263dec.c mot_val = s->current_picture.motion_val[0][s->block_index[0]]; s 363 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = MB_TYPE_SKIP | MB_TYPE_16x16 | MB_TYPE_L0; s 366 libavcodec/ituh263dec.c cbpc = get_vlc2(&s->gb, ff_h263_inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); s 370 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = MB_TYPE_INTRA; s 372 libavcodec/ituh263dec.c get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 374 libavcodec/ituh263dec.c if(s->modified_quant){ s 375 libavcodec/ituh263dec.c if(get_bits1(&s->gb)) skip_bits(&s->gb, 1); s 376 libavcodec/ituh263dec.c else skip_bits(&s->gb, 5); s 378 libavcodec/ituh263dec.c skip_bits(&s->gb, 2); s 382 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = MB_TYPE_16x16 | MB_TYPE_L0; s 384 libavcodec/ituh263dec.c mot_val= ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 385 libavcodec/ituh263dec.c if (s->umvplus) s 386 libavcodec/ituh263dec.c mx = h263p_decode_umotion(s, pred_x); s 388 libavcodec/ituh263dec.c mx = ff_h263_decode_motion(s, pred_x, 1); s 390 libavcodec/ituh263dec.c if (s->umvplus) s 391 libavcodec/ituh263dec.c my = h263p_decode_umotion(s, pred_y); s 393 libavcodec/ituh263dec.c my = ff_h263_decode_motion(s, pred_y, 1); s 400 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = MB_TYPE_8x8 | MB_TYPE_L0; s 402 libavcodec/ituh263dec.c mot_val = ff_h263_pred_motion(s, i, 0, &pred_x, &pred_y); s 403 libavcodec/ituh263dec.c if (s->umvplus) s 404 libavcodec/ituh263dec.c mx = h263p_decode_umotion(s, pred_x); s 406 libavcodec/ituh263dec.c mx = ff_h263_decode_motion(s, pred_x, 1); s 408 libavcodec/ituh263dec.c if (s->umvplus) s 409 libavcodec/ituh263dec.c my = h263p_decode_umotion(s, pred_y); s 411 libavcodec/ituh263dec.c my = ff_h263_decode_motion(s, pred_y, 1); s 412 libavcodec/ituh263dec.c if (s->umvplus && (mx - pred_x) == 1 && (my - pred_y) == 1) s 413 libavcodec/ituh263dec.c skip_bits1(&s->gb); /* Bit stuffing to prevent PSC */ s 422 libavcodec/ituh263dec.c s->block_index[i]-= 2; s 424 libavcodec/ituh263dec.c s->block_index[i]-= 1; s 425 libavcodec/ituh263dec.c s->mb_x--; s 427 libavcodec/ituh263dec.c s->gb= gb; s 430 libavcodec/ituh263dec.c static void h263_decode_dquant(MpegEncContext *s){ s 433 libavcodec/ituh263dec.c if(s->modified_quant){ s 434 libavcodec/ituh263dec.c if(get_bits1(&s->gb)) s 435 libavcodec/ituh263dec.c s->qscale= ff_modified_quant_tab[get_bits1(&s->gb)][ s->qscale ]; s 437 libavcodec/ituh263dec.c s->qscale= get_bits(&s->gb, 5); s 439 libavcodec/ituh263dec.c s->qscale += quant_tab[get_bits(&s->gb, 2)]; s 440 libavcodec/ituh263dec.c ff_set_qscale(s, s->qscale); s 443 libavcodec/ituh263dec.c static int h263_decode_block(MpegEncContext * s, int16_t * block, s 449 libavcodec/ituh263dec.c GetBitContext gb= s->gb; s 451 libavcodec/ituh263dec.c scan_table = s->intra_scantable.permutated; s 452 libavcodec/ituh263dec.c if (s->h263_aic && s->mb_intra) { s 455 libavcodec/ituh263dec.c if (s->ac_pred) { s 456 libavcodec/ituh263dec.c if (s->h263_aic_dir) s 457 libavcodec/ituh263dec.c scan_table = s->intra_v_scantable.permutated; /* left */ s 459 libavcodec/ituh263dec.c scan_table = s->intra_h_scantable.permutated; /* top */ s 461 libavcodec/ituh263dec.c } else if (s->mb_intra) { s 463 libavcodec/ituh263dec.c if (CONFIG_RV10_DECODER && s->codec_id == AV_CODEC_ID_RV10) { s 464 libavcodec/ituh263dec.c if (s->rv10_version == 3 && s->pict_type == AV_PICTURE_TYPE_I) { s 467 libavcodec/ituh263dec.c level = s->last_dc[component]; s 468 libavcodec/ituh263dec.c if (s->rv10_first_dc_coded[component]) { s 469 libavcodec/ituh263dec.c diff = ff_rv_decode_dc(s, n); s 474 libavcodec/ituh263dec.c s->last_dc[component] = level; s 476 libavcodec/ituh263dec.c s->rv10_first_dc_coded[component] = 1; s 479 libavcodec/ituh263dec.c level = get_bits(&s->gb, 8); s 484 libavcodec/ituh263dec.c level = get_bits(&s->gb, 8); s 486 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "illegal dc %d at %d %d\n", level, s->mb_x, s->mb_y); s 487 libavcodec/ituh263dec.c if (s->avctx->err_recognition & (AV_EF_BITSTREAM|AV_EF_COMPLIANT)) s 499 libavcodec/ituh263dec.c if (s->mb_intra && s->h263_aic) s 501 libavcodec/ituh263dec.c s->block_last_index[n] = i - 1; s 506 libavcodec/ituh263dec.c OPEN_READER(re, &s->gb); s 509 libavcodec/ituh263dec.c UPDATE_CACHE(re, &s->gb); s 510 libavcodec/ituh263dec.c GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], TEX_VLC_BITS, 2, 0); s 513 libavcodec/ituh263dec.c CLOSE_READER(re, &s->gb); s 514 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "illegal ac vlc code at %dx%d\n", s->mb_x, s->mb_y); s 518 libavcodec/ituh263dec.c if (CONFIG_FLV_DECODER && s->h263_flv > 1) { s 519 libavcodec/ituh263dec.c int is11 = SHOW_UBITS(re, &s->gb, 1); s 520 libavcodec/ituh263dec.c SKIP_CACHE(re, &s->gb, 1); s 521 libavcodec/ituh263dec.c run = SHOW_UBITS(re, &s->gb, 7) + 1; s 523 libavcodec/ituh263dec.c SKIP_COUNTER(re, &s->gb, 1 + 7); s 524 libavcodec/ituh263dec.c UPDATE_CACHE(re, &s->gb); s 525 libavcodec/ituh263dec.c level = SHOW_SBITS(re, &s->gb, 11); s 526 libavcodec/ituh263dec.c SKIP_COUNTER(re, &s->gb, 11); s 528 libavcodec/ituh263dec.c SKIP_CACHE(re, &s->gb, 7); s 529 libavcodec/ituh263dec.c level = SHOW_SBITS(re, &s->gb, 7); s 530 libavcodec/ituh263dec.c SKIP_COUNTER(re, &s->gb, 1 + 7 + 7); s 533 libavcodec/ituh263dec.c run = SHOW_UBITS(re, &s->gb, 7) + 1; s 534 libavcodec/ituh263dec.c SKIP_CACHE(re, &s->gb, 7); s 535 libavcodec/ituh263dec.c level = (int8_t)SHOW_UBITS(re, &s->gb, 8); s 536 libavcodec/ituh263dec.c SKIP_COUNTER(re, &s->gb, 7 + 8); s 538 libavcodec/ituh263dec.c UPDATE_CACHE(re, &s->gb); s 539 libavcodec/ituh263dec.c if (s->codec_id == AV_CODEC_ID_RV10) { s 541 libavcodec/ituh263dec.c level = SHOW_SBITS(re, &s->gb, 12); s 542 libavcodec/ituh263dec.c SKIP_COUNTER(re, &s->gb, 12); s 544 libavcodec/ituh263dec.c level = SHOW_UBITS(re, &s->gb, 5); s 545 libavcodec/ituh263dec.c SKIP_CACHE(re, &s->gb, 5); s 546 libavcodec/ituh263dec.c level |= SHOW_SBITS(re, &s->gb, 6) * (1<<5); s 547 libavcodec/ituh263dec.c SKIP_COUNTER(re, &s->gb, 5 + 6); s 552 libavcodec/ituh263dec.c if (SHOW_UBITS(re, &s->gb, 1)) s 554 libavcodec/ituh263dec.c SKIP_COUNTER(re, &s->gb, 1); s 558 libavcodec/ituh263dec.c CLOSE_READER(re, &s->gb); s 566 libavcodec/ituh263dec.c if(s->alt_inter_vlc && rl == &ff_h263_rl_inter && !s->mb_intra){ s 570 libavcodec/ituh263dec.c s->gb= gb; s 571 libavcodec/ituh263dec.c s->bdsp.clear_block(block); s 574 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "run overflow at %dx%d i:%d\n", s->mb_x, s->mb_y, s->mb_intra); s 582 libavcodec/ituh263dec.c if (s->mb_intra && s->h263_aic) { s 583 libavcodec/ituh263dec.c ff_h263_pred_acdc(s, block, n); s 586 libavcodec/ituh263dec.c s->block_last_index[n] = i; s 590 libavcodec/ituh263dec.c static int h263_skip_b_part(MpegEncContext *s, int cbp) s 599 libavcodec/ituh263dec.c mbi = s->mb_intra; s 600 libavcodec/ituh263dec.c memcpy(bli, s->block_last_index, sizeof(bli)); s 601 libavcodec/ituh263dec.c s->mb_intra = 0; s 603 libavcodec/ituh263dec.c if (h263_decode_block(s, dblock, i, cbp&32) < 0) s 607 libavcodec/ituh263dec.c s->mb_intra = mbi; s 608 libavcodec/ituh263dec.c memcpy(s->block_last_index, bli, sizeof(bli)); s 630 libavcodec/ituh263dec.c #define tab_size ((signed)FF_ARRAY_ELEMS(s->direct_scale_mv[0])) s 632 libavcodec/ituh263dec.c static inline void set_one_direct_mv(MpegEncContext *s, Picture *p, int i) s 634 libavcodec/ituh263dec.c int xy = s->block_index[i]; s 635 libavcodec/ituh263dec.c uint16_t time_pp = s->pp_time; s 636 libavcodec/ituh263dec.c uint16_t time_pb = s->pb_time; s 641 libavcodec/ituh263dec.c s->mv[0][i][0] = s->direct_scale_mv[0][p_mx + tab_bias]; s 642 libavcodec/ituh263dec.c s->mv[1][i][0] = s->direct_scale_mv[1][p_mx + tab_bias]; s 644 libavcodec/ituh263dec.c s->mv[0][i][0] = p_mx * time_pb / time_pp; s 645 libavcodec/ituh263dec.c s->mv[1][i][0] = p_mx * (time_pb - time_pp) / time_pp; s 649 libavcodec/ituh263dec.c s->mv[0][i][1] = s->direct_scale_mv[0][p_my + tab_bias]; s 650 libavcodec/ituh263dec.c s->mv[1][i][1] = s->direct_scale_mv[1][p_my + tab_bias]; s 652 libavcodec/ituh263dec.c s->mv[0][i][1] = p_my * time_pb / time_pp; s 653 libavcodec/ituh263dec.c s->mv[1][i][1] = p_my * (time_pb - time_pp) / time_pp; s 660 libavcodec/ituh263dec.c static int set_direct_mv(MpegEncContext *s) s 662 libavcodec/ituh263dec.c const int mb_index = s->mb_x + s->mb_y * s->mb_stride; s 663 libavcodec/ituh263dec.c Picture *p = &s->next_picture; s 667 libavcodec/ituh263dec.c if (s->codec_tag == AV_RL32("U263") && p->f->pict_type == AV_PICTURE_TYPE_I) { s 668 libavcodec/ituh263dec.c p = &s->last_picture; s 673 libavcodec/ituh263dec.c s->mv_type = MV_TYPE_8X8; s 675 libavcodec/ituh263dec.c set_one_direct_mv(s, p, i); s 678 libavcodec/ituh263dec.c set_one_direct_mv(s, p, 0); s 679 libavcodec/ituh263dec.c s->mv[0][1][0] = s 680 libavcodec/ituh263dec.c s->mv[0][2][0] = s 681 libavcodec/ituh263dec.c s->mv[0][3][0] = s->mv[0][0][0]; s 682 libavcodec/ituh263dec.c s->mv[0][1][1] = s 683 libavcodec/ituh263dec.c s->mv[0][2][1] = s 684 libavcodec/ituh263dec.c s->mv[0][3][1] = s->mv[0][0][1]; s 685 libavcodec/ituh263dec.c s->mv[1][1][0] = s 686 libavcodec/ituh263dec.c s->mv[1][2][0] = s 687 libavcodec/ituh263dec.c s->mv[1][3][0] = s->mv[1][0][0]; s 688 libavcodec/ituh263dec.c s->mv[1][1][1] = s 689 libavcodec/ituh263dec.c s->mv[1][2][1] = s 690 libavcodec/ituh263dec.c s->mv[1][3][1] = s->mv[1][0][1]; s 691 libavcodec/ituh263dec.c s->mv_type = MV_TYPE_8X8; s 697 libavcodec/ituh263dec.c int ff_h263_decode_mb(MpegEncContext *s, s 702 libavcodec/ituh263dec.c const int xy= s->mb_x + s->mb_y * s->mb_stride; s 705 libavcodec/ituh263dec.c av_assert2(!s->h263_pred); s 707 libavcodec/ituh263dec.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 709 libavcodec/ituh263dec.c if (get_bits1(&s->gb)) { s 711 libavcodec/ituh263dec.c s->mb_intra = 0; s 713 libavcodec/ituh263dec.c s->block_last_index[i] = -1; s 714 libavcodec/ituh263dec.c s->mv_dir = MV_DIR_FORWARD; s 715 libavcodec/ituh263dec.c s->mv_type = MV_TYPE_16X16; s 716 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = MB_TYPE_SKIP | MB_TYPE_16x16 | MB_TYPE_L0; s 717 libavcodec/ituh263dec.c s->mv[0][0][0] = 0; s 718 libavcodec/ituh263dec.c s->mv[0][0][1] = 0; s 719 libavcodec/ituh263dec.c s->mb_skipped = !(s->obmc | s->loop_filter); s 722 libavcodec/ituh263dec.c cbpc = get_vlc2(&s->gb, ff_h263_inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); s 724 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "cbpc damaged at %d %d\n", s->mb_x, s->mb_y); s 729 libavcodec/ituh263dec.c s->bdsp.clear_blocks(s->block[0]); s 732 libavcodec/ituh263dec.c s->mb_intra = ((cbpc & 4) != 0); s 733 libavcodec/ituh263dec.c if (s->mb_intra) goto intra; s 735 libavcodec/ituh263dec.c if(s->pb_frame && get_bits1(&s->gb)) s 736 libavcodec/ituh263dec.c pb_mv_count = h263_get_modb(&s->gb, s->pb_frame, &cbpb); s 737 libavcodec/ituh263dec.c cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 740 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "cbpy damaged at %d %d\n", s->mb_x, s->mb_y); s 744 libavcodec/ituh263dec.c if(s->alt_inter_vlc==0 || (cbpc & 3)!=3) s 749 libavcodec/ituh263dec.c h263_decode_dquant(s); s 752 libavcodec/ituh263dec.c s->mv_dir = MV_DIR_FORWARD; s 754 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = MB_TYPE_16x16 | MB_TYPE_L0; s 756 libavcodec/ituh263dec.c s->mv_type = MV_TYPE_16X16; s 757 libavcodec/ituh263dec.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 758 libavcodec/ituh263dec.c if (s->umvplus) s 759 libavcodec/ituh263dec.c mx = h263p_decode_umotion(s, pred_x); s 761 libavcodec/ituh263dec.c mx = ff_h263_decode_motion(s, pred_x, 1); s 766 libavcodec/ituh263dec.c if (s->umvplus) s 767 libavcodec/ituh263dec.c my = h263p_decode_umotion(s, pred_y); s 769 libavcodec/ituh263dec.c my = ff_h263_decode_motion(s, pred_y, 1); s 773 libavcodec/ituh263dec.c s->mv[0][0][0] = mx; s 774 libavcodec/ituh263dec.c s->mv[0][0][1] = my; s 776 libavcodec/ituh263dec.c if (s->umvplus && (mx - pred_x) == 1 && (my - pred_y) == 1) s 777 libavcodec/ituh263dec.c skip_bits1(&s->gb); /* Bit stuffing to prevent PSC */ s 779 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = MB_TYPE_8x8 | MB_TYPE_L0; s 780 libavcodec/ituh263dec.c s->mv_type = MV_TYPE_8X8; s 782 libavcodec/ituh263dec.c mot_val = ff_h263_pred_motion(s, i, 0, &pred_x, &pred_y); s 783 libavcodec/ituh263dec.c if (s->umvplus) s 784 libavcodec/ituh263dec.c mx = h263p_decode_umotion(s, pred_x); s 786 libavcodec/ituh263dec.c mx = ff_h263_decode_motion(s, pred_x, 1); s 790 libavcodec/ituh263dec.c if (s->umvplus) s 791 libavcodec/ituh263dec.c my = h263p_decode_umotion(s, pred_y); s 793 libavcodec/ituh263dec.c my = ff_h263_decode_motion(s, pred_y, 1); s 796 libavcodec/ituh263dec.c s->mv[0][i][0] = mx; s 797 libavcodec/ituh263dec.c s->mv[0][i][1] = my; s 798 libavcodec/ituh263dec.c if (s->umvplus && (mx - pred_x) == 1 && (my - pred_y) == 1) s 799 libavcodec/ituh263dec.c skip_bits1(&s->gb); /* Bit stuffing to prevent PSC */ s 804 libavcodec/ituh263dec.c } else if(s->pict_type==AV_PICTURE_TYPE_B) { s 806 libavcodec/ituh263dec.c const int stride= s->b8_stride; s 807 libavcodec/ituh263dec.c int16_t *mot_val0 = s->current_picture.motion_val[0][2 * (s->mb_x + s->mb_y * stride)]; s 808 libavcodec/ituh263dec.c int16_t *mot_val1 = s->current_picture.motion_val[1][2 * (s->mb_x + s->mb_y * stride)]; s 818 libavcodec/ituh263dec.c mb_type= get_vlc2(&s->gb, h263_mbtype_b_vlc.table, H263_MBTYPE_B_VLC_BITS, 2); s 820 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "b mb_type damaged at %d %d\n", s->mb_x, s->mb_y); s 827 libavcodec/ituh263dec.c s->mb_intra = IS_INTRA(mb_type); s 829 libavcodec/ituh263dec.c s->bdsp.clear_blocks(s->block[0]); s 830 libavcodec/ituh263dec.c cbpc = get_vlc2(&s->gb, cbpc_b_vlc.table, CBPC_B_VLC_BITS, 1); s 831 libavcodec/ituh263dec.c if(s->mb_intra){ s 836 libavcodec/ituh263dec.c cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 839 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "b cbpy damaged at %d %d\n", s->mb_x, s->mb_y); s 843 libavcodec/ituh263dec.c if(s->alt_inter_vlc==0 || (cbpc & 3)!=3) s 850 libavcodec/ituh263dec.c av_assert2(!s->mb_intra); s 853 libavcodec/ituh263dec.c h263_decode_dquant(s); s 857 libavcodec/ituh263dec.c s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; s 858 libavcodec/ituh263dec.c mb_type |= set_direct_mv(s); s 860 libavcodec/ituh263dec.c s->mv_dir = 0; s 861 libavcodec/ituh263dec.c s->mv_type= MV_TYPE_16X16; s 865 libavcodec/ituh263dec.c int16_t *mot_val= ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 866 libavcodec/ituh263dec.c s->mv_dir = MV_DIR_FORWARD; s 868 libavcodec/ituh263dec.c if (s->umvplus) s 869 libavcodec/ituh263dec.c mx = h263p_decode_umotion(s, pred_x); s 871 libavcodec/ituh263dec.c mx = ff_h263_decode_motion(s, pred_x, 1); s 875 libavcodec/ituh263dec.c if (s->umvplus) s 876 libavcodec/ituh263dec.c my = h263p_decode_umotion(s, pred_y); s 878 libavcodec/ituh263dec.c my = ff_h263_decode_motion(s, pred_y, 1); s 882 libavcodec/ituh263dec.c if (s->umvplus && (mx - pred_x) == 1 && (my - pred_y) == 1) s 883 libavcodec/ituh263dec.c skip_bits1(&s->gb); /* Bit stuffing to prevent PSC */ s 885 libavcodec/ituh263dec.c s->mv[0][0][0] = mx; s 886 libavcodec/ituh263dec.c s->mv[0][0][1] = my; s 892 libavcodec/ituh263dec.c int16_t *mot_val= ff_h263_pred_motion(s, 0, 1, &pred_x, &pred_y); s 893 libavcodec/ituh263dec.c s->mv_dir |= MV_DIR_BACKWARD; s 895 libavcodec/ituh263dec.c if (s->umvplus) s 896 libavcodec/ituh263dec.c mx = h263p_decode_umotion(s, pred_x); s 898 libavcodec/ituh263dec.c mx = ff_h263_decode_motion(s, pred_x, 1); s 902 libavcodec/ituh263dec.c if (s->umvplus) s 903 libavcodec/ituh263dec.c my = h263p_decode_umotion(s, pred_y); s 905 libavcodec/ituh263dec.c my = ff_h263_decode_motion(s, pred_y, 1); s 909 libavcodec/ituh263dec.c if (s->umvplus && (mx - pred_x) == 1 && (my - pred_y) == 1) s 910 libavcodec/ituh263dec.c skip_bits1(&s->gb); /* Bit stuffing to prevent PSC */ s 912 libavcodec/ituh263dec.c s->mv[1][0][0] = mx; s 913 libavcodec/ituh263dec.c s->mv[1][0][1] = my; s 919 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = mb_type; s 922 libavcodec/ituh263dec.c cbpc = get_vlc2(&s->gb, ff_h263_intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); s 924 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "I cbpc damaged at %d %d\n", s->mb_x, s->mb_y); s 929 libavcodec/ituh263dec.c s->bdsp.clear_blocks(s->block[0]); s 932 libavcodec/ituh263dec.c s->mb_intra = 1; s 934 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = MB_TYPE_INTRA; s 935 libavcodec/ituh263dec.c if (s->h263_aic) { s 936 libavcodec/ituh263dec.c s->ac_pred = get_bits1(&s->gb); s 937 libavcodec/ituh263dec.c if(s->ac_pred){ s 938 libavcodec/ituh263dec.c s->current_picture.mb_type[xy] = MB_TYPE_INTRA | MB_TYPE_ACPRED; s 940 libavcodec/ituh263dec.c s->h263_aic_dir = get_bits1(&s->gb); s 943 libavcodec/ituh263dec.c s->ac_pred = 0; s 945 libavcodec/ituh263dec.c if(s->pb_frame && get_bits1(&s->gb)) s 946 libavcodec/ituh263dec.c pb_mv_count = h263_get_modb(&s->gb, s->pb_frame, &cbpb); s 947 libavcodec/ituh263dec.c cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 949 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "I cbpy damaged at %d %d\n", s->mb_x, s->mb_y); s 954 libavcodec/ituh263dec.c h263_decode_dquant(s); s 957 libavcodec/ituh263dec.c pb_mv_count += !!s->pb_frame; s 961 libavcodec/ituh263dec.c ff_h263_decode_motion(s, 0, 1); s 962 libavcodec/ituh263dec.c ff_h263_decode_motion(s, 0, 1); s 967 libavcodec/ituh263dec.c if (h263_decode_block(s, block[i], i, cbp&32) < 0) s 972 libavcodec/ituh263dec.c if(s->pb_frame && h263_skip_b_part(s, cbpb) < 0) s 974 libavcodec/ituh263dec.c if(s->obmc && !s->mb_intra){ s 975 libavcodec/ituh263dec.c if(s->pict_type == AV_PICTURE_TYPE_P && s->mb_x+1<s->mb_width && s->mb_num_left != 1) s 976 libavcodec/ituh263dec.c preview_obmc(s); s 980 libavcodec/ituh263dec.c if (get_bits_left(&s->gb) < 0) s 985 libavcodec/ituh263dec.c int v= show_bits(&s->gb, 16); s 987 libavcodec/ituh263dec.c if (get_bits_left(&s->gb) < 16) { s 988 libavcodec/ituh263dec.c v >>= 16 - get_bits_left(&s->gb); s 999 libavcodec/ituh263dec.c int ff_h263_decode_picture_header(MpegEncContext *s) s 1004 libavcodec/ituh263dec.c align_get_bits(&s->gb); s 1006 libavcodec/ituh263dec.c if (show_bits(&s->gb, 2) == 2 && s->avctx->frame_number == 0) { s 1007 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_WARNING, "Header looks like RTP instead of H.263\n"); s 1010 libavcodec/ituh263dec.c startcode= get_bits(&s->gb, 22-8); s 1012 libavcodec/ituh263dec.c for(i= get_bits_left(&s->gb); i>24; i-=8) { s 1013 libavcodec/ituh263dec.c startcode = ((startcode << 8) | get_bits(&s->gb, 8)) & 0x003FFFFF; s 1020 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Bad picture start code\n"); s 1024 libavcodec/ituh263dec.c i = get_bits(&s->gb, 8); /* picture timestamp */ s 1026 libavcodec/ituh263dec.c i -= (i - (s->picture_number & 0xFF) + 128) & ~0xFF; s 1028 libavcodec/ituh263dec.c s->picture_number= (s->picture_number&~0xFF) + i; s 1031 libavcodec/ituh263dec.c if (check_marker(s->avctx, &s->gb, "in PTYPE") != 1) { s 1034 libavcodec/ituh263dec.c if (get_bits1(&s->gb) != 0) { s 1035 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Bad H.263 id\n"); s 1038 libavcodec/ituh263dec.c skip_bits1(&s->gb); /* split screen off */ s 1039 libavcodec/ituh263dec.c skip_bits1(&s->gb); /* camera off */ s 1040 libavcodec/ituh263dec.c skip_bits1(&s->gb); /* freeze picture release off */ s 1042 libavcodec/ituh263dec.c format = get_bits(&s->gb, 3); s 1051 libavcodec/ituh263dec.c s->h263_plus = 0; s 1058 libavcodec/ituh263dec.c s->pict_type = AV_PICTURE_TYPE_I + get_bits1(&s->gb); s 1060 libavcodec/ituh263dec.c s->h263_long_vectors = get_bits1(&s->gb); s 1062 libavcodec/ituh263dec.c if (get_bits1(&s->gb) != 0) { s 1063 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "H.263 SAC not supported\n"); s 1066 libavcodec/ituh263dec.c s->obmc= get_bits1(&s->gb); /* Advanced prediction mode */ s 1067 libavcodec/ituh263dec.c s->unrestricted_mv = s->h263_long_vectors || s->obmc; s 1069 libavcodec/ituh263dec.c s->pb_frame = get_bits1(&s->gb); s 1070 libavcodec/ituh263dec.c s->chroma_qscale= s->qscale = get_bits(&s->gb, 5); s 1071 libavcodec/ituh263dec.c skip_bits1(&s->gb); /* Continuous Presence Multipoint mode: off */ s 1073 libavcodec/ituh263dec.c s->width = width; s 1074 libavcodec/ituh263dec.c s->height = height; s 1075 libavcodec/ituh263dec.c s->avctx->sample_aspect_ratio= (AVRational){12,11}; s 1076 libavcodec/ituh263dec.c s->avctx->framerate = (AVRational){ 30000, 1001 }; s 1081 libavcodec/ituh263dec.c s->h263_plus = 1; s 1082 libavcodec/ituh263dec.c ufep = get_bits(&s->gb, 3); /* Update Full Extended PTYPE */ s 1087 libavcodec/ituh263dec.c format = get_bits(&s->gb, 3); s 1088 libavcodec/ituh263dec.c ff_dlog(s->avctx, "ufep=1, format: %d\n", format); s 1089 libavcodec/ituh263dec.c s->custom_pcf= get_bits1(&s->gb); s 1090 libavcodec/ituh263dec.c s->umvplus = get_bits1(&s->gb); /* Unrestricted Motion Vector */ s 1091 libavcodec/ituh263dec.c if (get_bits1(&s->gb) != 0) { s 1092 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Syntax-based Arithmetic Coding (SAC) not supported\n"); s 1094 libavcodec/ituh263dec.c s->obmc= get_bits1(&s->gb); /* Advanced prediction mode */ s 1095 libavcodec/ituh263dec.c s->h263_aic = get_bits1(&s->gb); /* Advanced Intra Coding (AIC) */ s 1096 libavcodec/ituh263dec.c s->loop_filter= get_bits1(&s->gb); s 1097 libavcodec/ituh263dec.c s->unrestricted_mv = s->umvplus || s->obmc || s->loop_filter; s 1098 libavcodec/ituh263dec.c if(s->avctx->lowres) s 1099 libavcodec/ituh263dec.c s->loop_filter = 0; s 1101 libavcodec/ituh263dec.c s->h263_slice_structured= get_bits1(&s->gb); s 1102 libavcodec/ituh263dec.c if (get_bits1(&s->gb) != 0) { s 1103 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Reference Picture Selection not supported\n"); s 1105 libavcodec/ituh263dec.c if (get_bits1(&s->gb) != 0) { s 1106 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Independent Segment Decoding not supported\n"); s 1108 libavcodec/ituh263dec.c s->alt_inter_vlc= get_bits1(&s->gb); s 1109 libavcodec/ituh263dec.c s->modified_quant= get_bits1(&s->gb); s 1110 libavcodec/ituh263dec.c if(s->modified_quant) s 1111 libavcodec/ituh263dec.c s->chroma_qscale_table= ff_h263_chroma_qscale_table; s 1113 libavcodec/ituh263dec.c skip_bits(&s->gb, 1); /* Prevent start code emulation */ s 1115 libavcodec/ituh263dec.c skip_bits(&s->gb, 3); /* Reserved */ s 1117 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "Bad UFEP type (%d)\n", ufep); s 1122 libavcodec/ituh263dec.c s->pict_type = get_bits(&s->gb, 3); s 1123 libavcodec/ituh263dec.c switch(s->pict_type){ s 1124 libavcodec/ituh263dec.c case 0: s->pict_type= AV_PICTURE_TYPE_I;break; s 1125 libavcodec/ituh263dec.c case 1: s->pict_type= AV_PICTURE_TYPE_P;break; s 1126 libavcodec/ituh263dec.c case 2: s->pict_type= AV_PICTURE_TYPE_P;s->pb_frame = 3;break; s 1127 libavcodec/ituh263dec.c case 3: s->pict_type= AV_PICTURE_TYPE_B;break; s 1128 libavcodec/ituh263dec.c case 7: s->pict_type= AV_PICTURE_TYPE_I;break; //ZYGO s 1132 libavcodec/ituh263dec.c skip_bits(&s->gb, 2); s 1133 libavcodec/ituh263dec.c s->no_rounding = get_bits1(&s->gb); s 1134 libavcodec/ituh263dec.c skip_bits(&s->gb, 4); s 1140 libavcodec/ituh263dec.c s->aspect_ratio_info = get_bits(&s->gb, 4); s 1141 libavcodec/ituh263dec.c ff_dlog(s->avctx, "aspect: %d\n", s->aspect_ratio_info); s 1151 libavcodec/ituh263dec.c width = (get_bits(&s->gb, 9) + 1) * 4; s 1152 libavcodec/ituh263dec.c check_marker(s->avctx, &s->gb, "in dimensions"); s 1153 libavcodec/ituh263dec.c height = get_bits(&s->gb, 9) * 4; s 1154 libavcodec/ituh263dec.c ff_dlog(s->avctx, "\nH.263+ Custom picture: %dx%d\n",width,height); s 1155 libavcodec/ituh263dec.c if (s->aspect_ratio_info == FF_ASPECT_EXTENDED) { s 1157 libavcodec/ituh263dec.c s->avctx->sample_aspect_ratio.num= get_bits(&s->gb, 8); s 1158 libavcodec/ituh263dec.c s->avctx->sample_aspect_ratio.den= get_bits(&s->gb, 8); s 1160 libavcodec/ituh263dec.c s->avctx->sample_aspect_ratio= ff_h263_pixel_aspect[s->aspect_ratio_info]; s 1165 libavcodec/ituh263dec.c s->avctx->sample_aspect_ratio= (AVRational){12,11}; s 1167 libavcodec/ituh263dec.c s->avctx->sample_aspect_ratio.den <<= s->ehc_mode; s 1170 libavcodec/ituh263dec.c s->width = width; s 1171 libavcodec/ituh263dec.c s->height = height; s 1173 libavcodec/ituh263dec.c if(s->custom_pcf){ s 1175 libavcodec/ituh263dec.c s->avctx->framerate.num = 1800000; s 1176 libavcodec/ituh263dec.c s->avctx->framerate.den = 1000 + get_bits1(&s->gb); s 1177 libavcodec/ituh263dec.c s->avctx->framerate.den *= get_bits(&s->gb, 7); s 1178 libavcodec/ituh263dec.c if(s->avctx->framerate.den == 0){ s 1179 libavcodec/ituh263dec.c av_log(s, AV_LOG_ERROR, "zero framerate\n"); s 1182 libavcodec/ituh263dec.c gcd= av_gcd(s->avctx->framerate.den, s->avctx->framerate.num); s 1183 libavcodec/ituh263dec.c s->avctx->framerate.den /= gcd; s 1184 libavcodec/ituh263dec.c s->avctx->framerate.num /= gcd; s 1186 libavcodec/ituh263dec.c s->avctx->framerate = (AVRational){ 30000, 1001 }; s 1190 libavcodec/ituh263dec.c if(s->custom_pcf){ s 1191 libavcodec/ituh263dec.c skip_bits(&s->gb, 2); //extended Temporal reference s 1195 libavcodec/ituh263dec.c if (s->umvplus) { s 1196 libavcodec/ituh263dec.c if(get_bits1(&s->gb)==0) /* Unlimited Unrestricted Motion Vectors Indicator (UUI) */ s 1197 libavcodec/ituh263dec.c skip_bits1(&s->gb); s 1199 libavcodec/ituh263dec.c if(s->h263_slice_structured){ s 1200 libavcodec/ituh263dec.c if (get_bits1(&s->gb) != 0) { s 1201 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "rectangular slices not supported\n"); s 1203 libavcodec/ituh263dec.c if (get_bits1(&s->gb) != 0) { s 1204 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_ERROR, "unordered slices not supported\n"); s 1207 libavcodec/ituh263dec.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 1208 libavcodec/ituh263dec.c skip_bits(&s->gb, 4); //ELNUM s 1210 libavcodec/ituh263dec.c skip_bits(&s->gb, 4); // RLNUM s 1215 libavcodec/ituh263dec.c s->qscale = get_bits(&s->gb, 5); s 1218 libavcodec/ituh263dec.c if ((ret = av_image_check_size(s->width, s->height, 0, s)) < 0) s 1221 libavcodec/ituh263dec.c if (!(s->avctx->flags2 & AV_CODEC_FLAG2_CHUNKS)) { s 1222 libavcodec/ituh263dec.c if ((s->width * s->height / 256 / 8) > get_bits_left(&s->gb)) s 1226 libavcodec/ituh263dec.c s->mb_width = (s->width + 15) / 16; s 1227 libavcodec/ituh263dec.c s->mb_height = (s->height + 15) / 16; s 1228 libavcodec/ituh263dec.c s->mb_num = s->mb_width * s->mb_height; s 1230 libavcodec/ituh263dec.c if (s->pb_frame) { s 1231 libavcodec/ituh263dec.c skip_bits(&s->gb, 3); /* Temporal reference for B-pictures */ s 1232 libavcodec/ituh263dec.c if (s->custom_pcf) s 1233 libavcodec/ituh263dec.c skip_bits(&s->gb, 2); //extended Temporal reference s 1234 libavcodec/ituh263dec.c skip_bits(&s->gb, 2); /* Quantization information for B-pictures */ s 1237 libavcodec/ituh263dec.c if (s->pict_type!=AV_PICTURE_TYPE_B) { s 1238 libavcodec/ituh263dec.c s->time = s->picture_number; s 1239 libavcodec/ituh263dec.c s->pp_time = s->time - s->last_non_b_time; s 1240 libavcodec/ituh263dec.c s->last_non_b_time = s->time; s 1242 libavcodec/ituh263dec.c s->time = s->picture_number; s 1243 libavcodec/ituh263dec.c s->pb_time = s->pp_time - (s->last_non_b_time - s->time); s 1244 libavcodec/ituh263dec.c if (s->pp_time <=s->pb_time || s 1245 libavcodec/ituh263dec.c s->pp_time <= s->pp_time - s->pb_time || s 1246 libavcodec/ituh263dec.c s->pp_time <= 0){ s 1247 libavcodec/ituh263dec.c s->pp_time = 2; s 1248 libavcodec/ituh263dec.c s->pb_time = 1; s 1250 libavcodec/ituh263dec.c ff_mpeg4_init_direct_mv(s); s 1254 libavcodec/ituh263dec.c if (skip_1stop_8data_bits(&s->gb) < 0) s 1257 libavcodec/ituh263dec.c if(s->h263_slice_structured){ s 1258 libavcodec/ituh263dec.c if (check_marker(s->avctx, &s->gb, "SEPB1") != 1) { s 1262 libavcodec/ituh263dec.c ff_h263_decode_mba(s); s 1264 libavcodec/ituh263dec.c if (check_marker(s->avctx, &s->gb, "SEPB2") != 1) { s 1268 libavcodec/ituh263dec.c s->f_code = 1; s 1270 libavcodec/ituh263dec.c if (s->pict_type == AV_PICTURE_TYPE_B) s 1271 libavcodec/ituh263dec.c s->low_delay = 0; s 1273 libavcodec/ituh263dec.c if(s->h263_aic){ s 1274 libavcodec/ituh263dec.c s->y_dc_scale_table= s 1275 libavcodec/ituh263dec.c s->c_dc_scale_table= ff_aic_dc_scale_table; s 1277 libavcodec/ituh263dec.c s->y_dc_scale_table= s 1278 libavcodec/ituh263dec.c s->c_dc_scale_table= ff_mpeg1_dc_scale_table; s 1281 libavcodec/ituh263dec.c ff_h263_show_pict_info(s); s 1282 libavcodec/ituh263dec.c if (s->pict_type == AV_PICTURE_TYPE_I && s->codec_tag == AV_RL32("ZYGO") && get_bits_left(&s->gb) >= 85 + 13*3*16 + 50){ s 1284 libavcodec/ituh263dec.c for(i=0; i<85; i++) av_log(s->avctx, AV_LOG_DEBUG, "%d", get_bits1(&s->gb)); s 1285 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_DEBUG, "\n"); s 1288 libavcodec/ituh263dec.c int v= get_bits(&s->gb, 8); s 1289 libavcodec/ituh263dec.c v |= get_sbits(&s->gb, 8) * (1 << 8); s 1290 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_DEBUG, " %5d", v); s 1292 libavcodec/ituh263dec.c av_log(s->avctx, AV_LOG_DEBUG, "\n"); s 1294 libavcodec/ituh263dec.c for(i=0; i<50; i++) av_log(s->avctx, AV_LOG_DEBUG, "%d", get_bits1(&s->gb)); s 103 libavcodec/ituh263enc.c void ff_h263_encode_picture_header(MpegEncContext * s, int picture_number) s 110 libavcodec/ituh263enc.c if(s->h263_plus){ s 113 libavcodec/ituh263enc.c div= (s->avctx->time_base.num*1800000LL + 500LL*s->avctx->time_base.den) / ((1000LL+i)*s->avctx->time_base.den); s 115 libavcodec/ituh263enc.c error= FFABS(s->avctx->time_base.num*1800000LL - (1000LL+i)*s->avctx->time_base.den*div); s 123 libavcodec/ituh263enc.c s->custom_pcf= best_clock_code!=1 || best_divisor!=60; s 127 libavcodec/ituh263enc.c avpriv_align_put_bits(&s->pb); s 130 libavcodec/ituh263enc.c s->ptr_lastgob = put_bits_ptr(&s->pb); s 131 libavcodec/ituh263enc.c put_bits(&s->pb, 22, 0x20); /* PSC */ s 132 libavcodec/ituh263enc.c temp_ref= s->picture_number * (int64_t)coded_frame_rate * s->avctx->time_base.num / //FIXME use timestamp s 133 libavcodec/ituh263enc.c (coded_frame_rate_base * (int64_t)s->avctx->time_base.den); s 134 libavcodec/ituh263enc.c put_sbits(&s->pb, 8, temp_ref); /* TemporalReference */ s 136 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 1); /* marker */ s 137 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* H.263 id */ s 138 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* split screen off */ s 139 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* camera off */ s 140 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* freeze picture release off */ s 142 libavcodec/ituh263enc.c format = ff_match_2uint16(ff_h263_format, FF_ARRAY_ELEMS(ff_h263_format), s->width, s->height); s 143 libavcodec/ituh263enc.c if (!s->h263_plus) { s 145 libavcodec/ituh263enc.c put_bits(&s->pb, 3, format); s 146 libavcodec/ituh263enc.c put_bits(&s->pb, 1, (s->pict_type == AV_PICTURE_TYPE_P)); s 150 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* Unrestricted Motion Vector: off */ s 151 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* SAC: off */ s 152 libavcodec/ituh263enc.c put_bits(&s->pb, 1, s->obmc); /* Advanced Prediction */ s 153 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* only I/P-frames, no PB-frame */ s 154 libavcodec/ituh263enc.c put_bits(&s->pb, 5, s->qscale); s 155 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* Continuous Presence Multipoint mode: off */ s 161 libavcodec/ituh263enc.c put_bits(&s->pb, 3, 7); s 162 libavcodec/ituh263enc.c put_bits(&s->pb,3,ufep); /* Update Full Extended PTYPE */ s 164 libavcodec/ituh263enc.c put_bits(&s->pb,3,6); /* Custom Source Format */ s 166 libavcodec/ituh263enc.c put_bits(&s->pb, 3, format); s 168 libavcodec/ituh263enc.c put_bits(&s->pb,1, s->custom_pcf); s 169 libavcodec/ituh263enc.c put_bits(&s->pb,1, s->umvplus); /* Unrestricted Motion Vector */ s 170 libavcodec/ituh263enc.c put_bits(&s->pb,1,0); /* SAC: off */ s 171 libavcodec/ituh263enc.c put_bits(&s->pb,1,s->obmc); /* Advanced Prediction Mode */ s 172 libavcodec/ituh263enc.c put_bits(&s->pb,1,s->h263_aic); /* Advanced Intra Coding */ s 173 libavcodec/ituh263enc.c put_bits(&s->pb,1,s->loop_filter); /* Deblocking Filter */ s 174 libavcodec/ituh263enc.c put_bits(&s->pb,1,s->h263_slice_structured); /* Slice Structured */ s 175 libavcodec/ituh263enc.c put_bits(&s->pb,1,0); /* Reference Picture Selection: off */ s 176 libavcodec/ituh263enc.c put_bits(&s->pb,1,0); /* Independent Segment Decoding: off */ s 177 libavcodec/ituh263enc.c put_bits(&s->pb,1,s->alt_inter_vlc); /* Alternative Inter VLC */ s 178 libavcodec/ituh263enc.c put_bits(&s->pb,1,s->modified_quant); /* Modified Quantization: */ s 179 libavcodec/ituh263enc.c put_bits(&s->pb,1,1); /* "1" to prevent start code emulation */ s 180 libavcodec/ituh263enc.c put_bits(&s->pb,3,0); /* Reserved */ s 182 libavcodec/ituh263enc.c put_bits(&s->pb, 3, s->pict_type == AV_PICTURE_TYPE_P); s 184 libavcodec/ituh263enc.c put_bits(&s->pb,1,0); /* Reference Picture Resampling: off */ s 185 libavcodec/ituh263enc.c put_bits(&s->pb,1,0); /* Reduced-Resolution Update: off */ s 186 libavcodec/ituh263enc.c put_bits(&s->pb,1,s->no_rounding); /* Rounding Type */ s 187 libavcodec/ituh263enc.c put_bits(&s->pb,2,0); /* Reserved */ s 188 libavcodec/ituh263enc.c put_bits(&s->pb,1,1); /* "1" to prevent start code emulation */ s 191 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* Continuous Presence Multipoint mode: off */ s 195 libavcodec/ituh263enc.c s->aspect_ratio_info= ff_h263_aspect_to_info(s->avctx->sample_aspect_ratio); s 197 libavcodec/ituh263enc.c put_bits(&s->pb,4,s->aspect_ratio_info); s 198 libavcodec/ituh263enc.c put_bits(&s->pb,9,(s->width >> 2) - 1); s 199 libavcodec/ituh263enc.c put_bits(&s->pb,1,1); /* "1" to prevent start code emulation */ s 200 libavcodec/ituh263enc.c put_bits(&s->pb,9,(s->height >> 2)); s 201 libavcodec/ituh263enc.c if (s->aspect_ratio_info == FF_ASPECT_EXTENDED){ s 202 libavcodec/ituh263enc.c put_bits(&s->pb, 8, s->avctx->sample_aspect_ratio.num); s 203 libavcodec/ituh263enc.c put_bits(&s->pb, 8, s->avctx->sample_aspect_ratio.den); s 206 libavcodec/ituh263enc.c if(s->custom_pcf){ s 208 libavcodec/ituh263enc.c put_bits(&s->pb, 1, best_clock_code); s 209 libavcodec/ituh263enc.c put_bits(&s->pb, 7, best_divisor); s 211 libavcodec/ituh263enc.c put_sbits(&s->pb, 2, temp_ref>>8); s 215 libavcodec/ituh263enc.c if (s->umvplus) s 218 libavcodec/ituh263enc.c put_bits(&s->pb,2,1); /* unlimited */ s 219 libavcodec/ituh263enc.c if(s->h263_slice_structured) s 220 libavcodec/ituh263enc.c put_bits(&s->pb,2,0); /* no weird submodes */ s 222 libavcodec/ituh263enc.c put_bits(&s->pb, 5, s->qscale); s 225 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* no PEI */ s 227 libavcodec/ituh263enc.c if(s->h263_slice_structured){ s 228 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 1); s 230 libavcodec/ituh263enc.c av_assert1(s->mb_x == 0 && s->mb_y == 0); s 231 libavcodec/ituh263enc.c ff_h263_encode_mba(s); s 233 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 1); s 240 libavcodec/ituh263enc.c void ff_h263_encode_gob_header(MpegEncContext * s, int mb_line) s 242 libavcodec/ituh263enc.c put_bits(&s->pb, 17, 1); /* GBSC */ s 244 libavcodec/ituh263enc.c if(s->h263_slice_structured){ s 245 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 1); s 247 libavcodec/ituh263enc.c ff_h263_encode_mba(s); s 249 libavcodec/ituh263enc.c if(s->mb_num > 1583) s 250 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 1); s 251 libavcodec/ituh263enc.c put_bits(&s->pb, 5, s->qscale); /* GQUANT */ s 252 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 1); s 253 libavcodec/ituh263enc.c put_bits(&s->pb, 2, s->pict_type == AV_PICTURE_TYPE_I); /* GFID */ s 255 libavcodec/ituh263enc.c int gob_number= mb_line / s->gob_index; s 257 libavcodec/ituh263enc.c put_bits(&s->pb, 5, gob_number); /* GN */ s 258 libavcodec/ituh263enc.c put_bits(&s->pb, 2, s->pict_type == AV_PICTURE_TYPE_I); /* GFID */ s 259 libavcodec/ituh263enc.c put_bits(&s->pb, 5, s->qscale); /* GQUANT */ s 266 libavcodec/ituh263enc.c void ff_clean_h263_qscales(MpegEncContext *s){ s 268 libavcodec/ituh263enc.c int8_t * const qscale_table = s->current_picture.qscale_table; s 270 libavcodec/ituh263enc.c ff_init_qscale_tab(s); s 272 libavcodec/ituh263enc.c for(i=1; i<s->mb_num; i++){ s 273 libavcodec/ituh263enc.c if(qscale_table[ s->mb_index2xy[i] ] - qscale_table[ s->mb_index2xy[i-1] ] >2) s 274 libavcodec/ituh263enc.c qscale_table[ s->mb_index2xy[i] ]= qscale_table[ s->mb_index2xy[i-1] ]+2; s 276 libavcodec/ituh263enc.c for(i=s->mb_num-2; i>=0; i--){ s 277 libavcodec/ituh263enc.c if(qscale_table[ s->mb_index2xy[i] ] - qscale_table[ s->mb_index2xy[i+1] ] >2) s 278 libavcodec/ituh263enc.c qscale_table[ s->mb_index2xy[i] ]= qscale_table[ s->mb_index2xy[i+1] ]+2; s 281 libavcodec/ituh263enc.c if(s->codec_id != AV_CODEC_ID_H263P){ s 282 libavcodec/ituh263enc.c for(i=1; i<s->mb_num; i++){ s 283 libavcodec/ituh263enc.c int mb_xy= s->mb_index2xy[i]; s 285 libavcodec/ituh263enc.c if(qscale_table[mb_xy] != qscale_table[s->mb_index2xy[i-1]] && (s->mb_type[mb_xy]&CANDIDATE_MB_TYPE_INTER4V)){ s 286 libavcodec/ituh263enc.c s->mb_type[mb_xy]|= CANDIDATE_MB_TYPE_INTER; s 299 libavcodec/ituh263enc.c static void h263_encode_block(MpegEncContext * s, int16_t * block, int n) s 305 libavcodec/ituh263enc.c if (s->mb_intra && !s->h263_aic) { s 319 libavcodec/ituh263enc.c put_bits(&s->pb, 8, 0xff); s 321 libavcodec/ituh263enc.c put_bits(&s->pb, 8, level); s 325 libavcodec/ituh263enc.c if (s->h263_aic && s->mb_intra) s 328 libavcodec/ituh263enc.c if(s->alt_inter_vlc && !s->mb_intra){ s 334 libavcodec/ituh263enc.c last_index = s->block_last_index[n]; s 337 libavcodec/ituh263enc.c j = s->intra_scantable.permutated[i]; s 368 libavcodec/ituh263enc.c last_index = s->block_last_index[n]; s 371 libavcodec/ituh263enc.c j = s->intra_scantable.permutated[i]; s 383 libavcodec/ituh263enc.c put_bits(&s->pb, rl->table_vlc[code][1], rl->table_vlc[code][0]); s 385 libavcodec/ituh263enc.c if(!CONFIG_FLV_ENCODER || s->h263_flv <= 1){ s 386 libavcodec/ituh263enc.c put_bits(&s->pb, 1, last); s 387 libavcodec/ituh263enc.c put_bits(&s->pb, 6, run); s 392 libavcodec/ituh263enc.c put_sbits(&s->pb, 8, slevel); s 394 libavcodec/ituh263enc.c put_bits(&s->pb, 8, 128); s 395 libavcodec/ituh263enc.c put_sbits(&s->pb, 5, slevel); s 396 libavcodec/ituh263enc.c put_sbits(&s->pb, 6, slevel>>5); s 399 libavcodec/ituh263enc.c ff_flv2_encode_ac_esc(&s->pb, slevel, level, run, last); s 402 libavcodec/ituh263enc.c put_bits(&s->pb, 1, sign); s 447 libavcodec/ituh263enc.c void ff_h263_encode_mb(MpegEncContext * s, s 455 libavcodec/ituh263enc.c const int interleaved_stats = s->avctx->flags & AV_CODEC_FLAG_PASS1; s 457 libavcodec/ituh263enc.c if (!s->mb_intra) { s 459 libavcodec/ituh263enc.c cbp= get_p_cbp(s, block, motion_x, motion_y); s 461 libavcodec/ituh263enc.c if ((cbp | motion_x | motion_y | s->dquant | (s->mv_type - MV_TYPE_16X16)) == 0) { s 463 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 1); s 465 libavcodec/ituh263enc.c s->misc_bits++; s 466 libavcodec/ituh263enc.c s->last_bits++; s 468 libavcodec/ituh263enc.c s->skip_count++; s 472 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* mb coded */ s 476 libavcodec/ituh263enc.c if(s->alt_inter_vlc==0 || cbpc!=3) s 478 libavcodec/ituh263enc.c if(s->dquant) cbpc+= 8; s 479 libavcodec/ituh263enc.c if(s->mv_type==MV_TYPE_16X16){ s 480 libavcodec/ituh263enc.c put_bits(&s->pb, s 484 libavcodec/ituh263enc.c put_bits(&s->pb, ff_h263_cbpy_tab[cbpy][1], ff_h263_cbpy_tab[cbpy][0]); s 485 libavcodec/ituh263enc.c if(s->dquant) s 486 libavcodec/ituh263enc.c put_bits(&s->pb, 2, dquant_code[s->dquant+2]); s 489 libavcodec/ituh263enc.c s->misc_bits+= get_bits_diff(s); s 493 libavcodec/ituh263enc.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 495 libavcodec/ituh263enc.c if (!s->umvplus) { s 496 libavcodec/ituh263enc.c ff_h263_encode_motion_vector(s, motion_x - pred_x, s 500 libavcodec/ituh263enc.c h263p_encode_umotion(&s->pb, motion_x - pred_x); s 501 libavcodec/ituh263enc.c h263p_encode_umotion(&s->pb, motion_y - pred_y); s 504 libavcodec/ituh263enc.c put_bits(&s->pb,1,1); s 507 libavcodec/ituh263enc.c put_bits(&s->pb, s 510 libavcodec/ituh263enc.c put_bits(&s->pb, ff_h263_cbpy_tab[cbpy][1], ff_h263_cbpy_tab[cbpy][0]); s 511 libavcodec/ituh263enc.c if(s->dquant) s 512 libavcodec/ituh263enc.c put_bits(&s->pb, 2, dquant_code[s->dquant+2]); s 515 libavcodec/ituh263enc.c s->misc_bits+= get_bits_diff(s); s 520 libavcodec/ituh263enc.c ff_h263_pred_motion(s, i, 0, &pred_x, &pred_y); s 522 libavcodec/ituh263enc.c motion_x = s->current_picture.motion_val[0][s->block_index[i]][0]; s 523 libavcodec/ituh263enc.c motion_y = s->current_picture.motion_val[0][s->block_index[i]][1]; s 524 libavcodec/ituh263enc.c if (!s->umvplus) { s 525 libavcodec/ituh263enc.c ff_h263_encode_motion_vector(s, motion_x - pred_x, s 529 libavcodec/ituh263enc.c h263p_encode_umotion(&s->pb, motion_x - pred_x); s 530 libavcodec/ituh263enc.c h263p_encode_umotion(&s->pb, motion_y - pred_y); s 533 libavcodec/ituh263enc.c put_bits(&s->pb,1,1); s 539 libavcodec/ituh263enc.c s->mv_bits+= get_bits_diff(s); s 542 libavcodec/ituh263enc.c av_assert2(s->mb_intra); s 545 libavcodec/ituh263enc.c if (s->h263_aic) { s 551 libavcodec/ituh263enc.c if(i<4) scale= s->y_dc_scale; s 552 libavcodec/ituh263enc.c else scale= s->c_dc_scale; s 554 libavcodec/ituh263enc.c pred_dc = ff_h263_pred_dc(s, i, &dc_ptr[i]); s 562 libavcodec/ituh263enc.c if(!s->modified_quant){ s 585 libavcodec/ituh263enc.c if (s->block_last_index[i] > 0 || s 586 libavcodec/ituh263enc.c (s->block_last_index[i] == 0 && level !=0)) s 592 libavcodec/ituh263enc.c if (s->block_last_index[i] >= 1) s 598 libavcodec/ituh263enc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 599 libavcodec/ituh263enc.c if(s->dquant) cbpc+=4; s 600 libavcodec/ituh263enc.c put_bits(&s->pb, s 604 libavcodec/ituh263enc.c if(s->dquant) cbpc+=8; s 605 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* mb coded */ s 606 libavcodec/ituh263enc.c put_bits(&s->pb, s 610 libavcodec/ituh263enc.c if (s->h263_aic) { s 612 libavcodec/ituh263enc.c put_bits(&s->pb, 1, 0); /* no AC prediction */ s 615 libavcodec/ituh263enc.c put_bits(&s->pb, ff_h263_cbpy_tab[cbpy][1], ff_h263_cbpy_tab[cbpy][0]); s 616 libavcodec/ituh263enc.c if(s->dquant) s 617 libavcodec/ituh263enc.c put_bits(&s->pb, 2, dquant_code[s->dquant+2]); s 620 libavcodec/ituh263enc.c s->misc_bits+= get_bits_diff(s); s 626 libavcodec/ituh263enc.c h263_encode_block(s, block[i], i); s 629 libavcodec/ituh263enc.c if (s->h263_aic && s->mb_intra) { s 636 libavcodec/ituh263enc.c if (!s->mb_intra) { s 637 libavcodec/ituh263enc.c s->p_tex_bits+= get_bits_diff(s); s 638 libavcodec/ituh263enc.c s->f_count++; s 640 libavcodec/ituh263enc.c s->i_tex_bits+= get_bits_diff(s); s 641 libavcodec/ituh263enc.c s->i_count++; s 674 libavcodec/ituh263enc.c static av_cold void init_mv_penalty_and_fcode(MpegEncContext *s) s 761 libavcodec/ituh263enc.c av_cold void ff_h263_encode_init(MpegEncContext *s) s 774 libavcodec/ituh263enc.c init_mv_penalty_and_fcode(s); s 776 libavcodec/ituh263enc.c s->me.mv_penalty= mv_penalty; // FIXME exact table for MSMPEG4 & H.263+ s 778 libavcodec/ituh263enc.c s->intra_ac_vlc_length =s->inter_ac_vlc_length = uni_h263_inter_rl_len; s 779 libavcodec/ituh263enc.c s->intra_ac_vlc_last_length=s->inter_ac_vlc_last_length= uni_h263_inter_rl_len + 128*64; s 780 libavcodec/ituh263enc.c if(s->h263_aic){ s 781 libavcodec/ituh263enc.c s->intra_ac_vlc_length = uni_h263_intra_aic_rl_len; s 782 libavcodec/ituh263enc.c s->intra_ac_vlc_last_length= uni_h263_intra_aic_rl_len + 128*64; s 784 libavcodec/ituh263enc.c s->ac_esc_length= 7+1+6+8; s 787 libavcodec/ituh263enc.c switch(s->codec_id){ s 789 libavcodec/ituh263enc.c s->fcode_tab= fcode_tab; s 792 libavcodec/ituh263enc.c if(s->umvplus) s 793 libavcodec/ituh263enc.c s->fcode_tab= umv_fcode_tab; s 794 libavcodec/ituh263enc.c if(s->modified_quant){ s 795 libavcodec/ituh263enc.c s->min_qcoeff= -2047; s 796 libavcodec/ituh263enc.c s->max_qcoeff= 2047; s 798 libavcodec/ituh263enc.c s->min_qcoeff= -127; s 799 libavcodec/ituh263enc.c s->max_qcoeff= 127; s 804 libavcodec/ituh263enc.c if (s->h263_flv > 1) { s 805 libavcodec/ituh263enc.c s->min_qcoeff= -1023; s 806 libavcodec/ituh263enc.c s->max_qcoeff= 1023; s 808 libavcodec/ituh263enc.c s->min_qcoeff= -127; s 809 libavcodec/ituh263enc.c s->max_qcoeff= 127; s 813 libavcodec/ituh263enc.c s->min_qcoeff= -127; s 814 libavcodec/ituh263enc.c s->max_qcoeff= 127; s 816 libavcodec/ituh263enc.c if(s->h263_aic){ s 817 libavcodec/ituh263enc.c s->y_dc_scale_table= s 818 libavcodec/ituh263enc.c s->c_dc_scale_table= ff_aic_dc_scale_table; s 820 libavcodec/ituh263enc.c s->y_dc_scale_table= s 821 libavcodec/ituh263enc.c s->c_dc_scale_table= ff_mpeg1_dc_scale_table; s 825 libavcodec/ituh263enc.c void ff_h263_encode_mba(MpegEncContext *s) s 830 libavcodec/ituh263enc.c if(s->mb_num-1 <= ff_mba_max[i]) break; s 832 libavcodec/ituh263enc.c mb_pos= s->mb_x + s->mb_width*s->mb_y; s 833 libavcodec/ituh263enc.c put_bits(&s->pb, ff_mba_length[i], mb_pos); s 152 libavcodec/j2kenc.c static void dump(Jpeg2000EncoderContext *s, FILE *fd) s 158 libavcodec/j2kenc.c s->width, s->height, s->tile_width, s->tile_height, s 159 libavcodec/j2kenc.c s->numXtiles, s->numYtiles, s->ncomponents); s 160 libavcodec/j2kenc.c for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++){ s 161 libavcodec/j2kenc.c Jpeg2000Tile *tile = s->tile + tileno; s 164 libavcodec/j2kenc.c for(compno = 0; compno < s->ncomponents; compno++){ s 171 libavcodec/j2kenc.c for(reslevelno = 0; reslevelno < s->nreslevels; reslevelno++){ s 208 libavcodec/j2kenc.c static void put_bits(Jpeg2000EncoderContext *s, int val, int n) // TODO: optimize s 211 libavcodec/j2kenc.c if (s->bit_index == 8) s 213 libavcodec/j2kenc.c s->bit_index = *s->buf == 0xff; s 214 libavcodec/j2kenc.c *(++s->buf) = 0; s 216 libavcodec/j2kenc.c *s->buf |= val << (7 - s->bit_index++); s 221 libavcodec/j2kenc.c static void put_num(Jpeg2000EncoderContext *s, int num, int n) s 224 libavcodec/j2kenc.c put_bits(s, (num >> n) & 1, 1); s 228 libavcodec/j2kenc.c static void j2k_flush(Jpeg2000EncoderContext *s) s 230 libavcodec/j2kenc.c if (s->bit_index){ s 231 libavcodec/j2kenc.c s->bit_index = 0; s 232 libavcodec/j2kenc.c s->buf++; s 239 libavcodec/j2kenc.c static void tag_tree_code(Jpeg2000EncoderContext *s, Jpeg2000TgtNode *node, int threshold) s 257 libavcodec/j2kenc.c put_bits(s, 0, threshold - curval); s 260 libavcodec/j2kenc.c put_bits(s, 0, stack[sp]->val - curval); s 261 libavcodec/j2kenc.c put_bits(s, 1, 1); s 279 libavcodec/j2kenc.c static int put_siz(Jpeg2000EncoderContext *s) s 283 libavcodec/j2kenc.c if (s->buf_end - s->buf < 40 + 3 * s->ncomponents) s 286 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, JPEG2000_SIZ); s 287 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, 38 + 3 * s->ncomponents); // Lsiz s 288 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, 0); // Rsiz s 289 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, s->width); // width s 290 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, s->height); // height s 291 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); // X0Siz s 292 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); // Y0Siz s 294 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, s->tile_width); // XTSiz s 295 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, s->tile_height); // YTSiz s 296 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); // XT0Siz s 297 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); // YT0Siz s 298 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, s->ncomponents); // CSiz s 300 libavcodec/j2kenc.c for (i = 0; i < s->ncomponents; i++){ // Ssiz_i XRsiz_i, YRsiz_i s 301 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 7); s 302 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, i?1<<s->chroma_shift[0]:1); s 303 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, i?1<<s->chroma_shift[1]:1); s 308 libavcodec/j2kenc.c static int put_cod(Jpeg2000EncoderContext *s) s 310 libavcodec/j2kenc.c Jpeg2000CodingStyle *codsty = &s->codsty; s 312 libavcodec/j2kenc.c if (s->buf_end - s->buf < 14) s 315 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, JPEG2000_COD); s 316 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, 12); // Lcod s 317 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); // Scod s 319 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); // progression level s 320 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, 1); // num of layers s 321 libavcodec/j2kenc.c if(s->avctx->pix_fmt == AV_PIX_FMT_YUV444P){ s 322 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); // unspecified s 324 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); // unspecified s 327 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, codsty->nreslevels - 1); // num of decomp. levels s 328 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, codsty->log2_cblk_width-2); // cblk width s 329 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, codsty->log2_cblk_height-2); // cblk height s 330 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); // cblk style s 331 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, codsty->transform == FF_DWT53); // transformation s 335 libavcodec/j2kenc.c static int put_qcd(Jpeg2000EncoderContext *s, int compno) s 338 libavcodec/j2kenc.c Jpeg2000CodingStyle *codsty = &s->codsty; s 339 libavcodec/j2kenc.c Jpeg2000QuantStyle *qntsty = &s->qntsty; s 346 libavcodec/j2kenc.c if (s->buf_end - s->buf < size + 2) s 349 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, JPEG2000_QCD); s 350 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, size); // LQcd s 351 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, (qntsty->nguardbits << 5) | qntsty->quantsty); // Sqcd s 354 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, qntsty->expn[i] << 3); s 357 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, (qntsty->expn[i] << 11) | qntsty->mant[i]); s 361 libavcodec/j2kenc.c static int put_com(Jpeg2000EncoderContext *s, int compno) s 365 libavcodec/j2kenc.c if (s->avctx->flags & AV_CODEC_FLAG_BITEXACT) s 368 libavcodec/j2kenc.c if (s->buf_end - s->buf < size + 2) s 371 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, JPEG2000_COM); s 372 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, size); s 373 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, 1); // General use (ISO/IEC 8859-15 (Latin) values) s 375 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, LIBAVCODEC_IDENT, strlen(LIBAVCODEC_IDENT)); s 380 libavcodec/j2kenc.c static uint8_t *put_sot(Jpeg2000EncoderContext *s, int tileno) s 384 libavcodec/j2kenc.c if (s->buf_end - s->buf < 12) s 387 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, JPEG2000_SOT); s 388 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, 10); // Lsot s 389 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, tileno); // Isot s 391 libavcodec/j2kenc.c psotptr = s->buf; s 392 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); // Psot (filled in later) s 394 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); // TPsot s 395 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 1); // TNsot s 404 libavcodec/j2kenc.c static int init_tiles(Jpeg2000EncoderContext *s) s 407 libavcodec/j2kenc.c Jpeg2000CodingStyle *codsty = &s->codsty; s 408 libavcodec/j2kenc.c Jpeg2000QuantStyle *qntsty = &s->qntsty; s 410 libavcodec/j2kenc.c s->numXtiles = ff_jpeg2000_ceildiv(s->width, s->tile_width); s 411 libavcodec/j2kenc.c s->numYtiles = ff_jpeg2000_ceildiv(s->height, s->tile_height); s 413 libavcodec/j2kenc.c s->tile = av_malloc_array(s->numXtiles, s->numYtiles * sizeof(Jpeg2000Tile)); s 414 libavcodec/j2kenc.c if (!s->tile) s 416 libavcodec/j2kenc.c for (tileno = 0, tiley = 0; tiley < s->numYtiles; tiley++) s 417 libavcodec/j2kenc.c for (tilex = 0; tilex < s->numXtiles; tilex++, tileno++){ s 418 libavcodec/j2kenc.c Jpeg2000Tile *tile = s->tile + tileno; s 420 libavcodec/j2kenc.c tile->comp = av_mallocz_array(s->ncomponents, sizeof(Jpeg2000Component)); s 423 libavcodec/j2kenc.c for (compno = 0; compno < s->ncomponents; compno++){ s 427 libavcodec/j2kenc.c comp->coord[0][0] = comp->coord_o[0][0] = tilex * s->tile_width; s 428 libavcodec/j2kenc.c comp->coord[0][1] = comp->coord_o[0][1] = FFMIN((tilex+1)*s->tile_width, s->width); s 429 libavcodec/j2kenc.c comp->coord[1][0] = comp->coord_o[1][0] = tiley * s->tile_height; s 430 libavcodec/j2kenc.c comp->coord[1][1] = comp->coord_o[1][1] = FFMIN((tiley+1)*s->tile_height, s->height); s 434 libavcodec/j2kenc.c comp->coord[i][j] = comp->coord_o[i][j] = ff_jpeg2000_ceildivpow2(comp->coord[i][j], s->chroma_shift[i]); s 439 libavcodec/j2kenc.c s->cbps[compno], s 440 libavcodec/j2kenc.c compno?1<<s->chroma_shift[0]:1, s 441 libavcodec/j2kenc.c compno?1<<s->chroma_shift[1]:1, s 442 libavcodec/j2kenc.c s->avctx s 450 libavcodec/j2kenc.c static void copy_frame(Jpeg2000EncoderContext *s) s 454 libavcodec/j2kenc.c for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++){ s 455 libavcodec/j2kenc.c Jpeg2000Tile *tile = s->tile + tileno; s 456 libavcodec/j2kenc.c if (s->planar){ s 457 libavcodec/j2kenc.c for (compno = 0; compno < s->ncomponents; compno++){ s 460 libavcodec/j2kenc.c line = s->picture->data[compno] s 461 libavcodec/j2kenc.c + comp->coord[1][0] * s->picture->linesize[compno] s 467 libavcodec/j2kenc.c line += s->picture->linesize[compno]; s 471 libavcodec/j2kenc.c line = s->picture->data[0] + tile->comp[0].coord[1][0] * s->picture->linesize[0] s 472 libavcodec/j2kenc.c + tile->comp[0].coord[0][0] * s->ncomponents; s 478 libavcodec/j2kenc.c for (compno = 0; compno < s->ncomponents; compno++){ s 482 libavcodec/j2kenc.c line += s->picture->linesize[0]; s 488 libavcodec/j2kenc.c static void init_quantization(Jpeg2000EncoderContext *s) s 491 libavcodec/j2kenc.c Jpeg2000QuantStyle *qntsty = &s->qntsty; s 492 libavcodec/j2kenc.c Jpeg2000CodingStyle *codsty = &s->codsty; s 494 libavcodec/j2kenc.c for (compno = 0; compno < s->ncomponents; compno++){ s 507 libavcodec/j2kenc.c expn = s->cbps[compno] - log + 13; s 509 libavcodec/j2kenc.c expn = ((bandno&2)>>1) + (reslevelno>0) + s->cbps[compno]; s 641 libavcodec/j2kenc.c static void encode_cblk(Jpeg2000EncoderContext *s, Jpeg2000T1Context *t1, Jpeg2000Cblk *cblk, Jpeg2000Tile *tile, s 700 libavcodec/j2kenc.c static void putnumpasses(Jpeg2000EncoderContext *s, int n) s 703 libavcodec/j2kenc.c put_num(s, 0, 1); s 705 libavcodec/j2kenc.c put_num(s, 2, 2); s 707 libavcodec/j2kenc.c put_num(s, 0xc | (n-3), 4); s 709 libavcodec/j2kenc.c put_num(s, 0x1e0 | (n-6), 9); s 711 libavcodec/j2kenc.c put_num(s, 0xff80 | (n-37), 16); s 715 libavcodec/j2kenc.c static int encode_packet(Jpeg2000EncoderContext *s, Jpeg2000ResLevel *rlevel, int precno, s 721 libavcodec/j2kenc.c *s->buf = 0; s 722 libavcodec/j2kenc.c s->bit_index = 0; s 735 libavcodec/j2kenc.c put_bits(s, !empty, 1); s 737 libavcodec/j2kenc.c j2k_flush(s); s 765 libavcodec/j2kenc.c if (s->buf_end - s->buf < 20) // approximately s 769 libavcodec/j2kenc.c tag_tree_code(s, prec->cblkincl + pos, 1); s 773 libavcodec/j2kenc.c tag_tree_code(s, prec->zerobits + pos, 100); s 775 libavcodec/j2kenc.c putnumpasses(s, cblk->ninclpasses); s 784 libavcodec/j2kenc.c put_bits(s, 1, llen); s 785 libavcodec/j2kenc.c put_bits(s, 0, 1); s 786 libavcodec/j2kenc.c put_num(s, length, av_log2(length)+1+pad); s 790 libavcodec/j2kenc.c j2k_flush(s); s 800 libavcodec/j2kenc.c if (s->buf_end - s->buf < cblk->passes[cblk->ninclpasses-1].rate) s 802 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, cblk->data + 1, cblk->passes[cblk->ninclpasses-1].rate s 804 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, cblk->passes[cblk->ninclpasses-1].flushed, s 813 libavcodec/j2kenc.c static int encode_packets(Jpeg2000EncoderContext *s, Jpeg2000Tile *tile, int tileno) s 816 libavcodec/j2kenc.c Jpeg2000CodingStyle *codsty = &s->codsty; s 817 libavcodec/j2kenc.c Jpeg2000QuantStyle *qntsty = &s->qntsty; s 819 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG, "tier2\n"); s 822 libavcodec/j2kenc.c for (compno = 0; compno < s->ncomponents; compno++){ s 824 libavcodec/j2kenc.c Jpeg2000ResLevel *reslevel = s->tile[tileno].comp[compno].reslevel + reslevelno; s 826 libavcodec/j2kenc.c if ((ret = encode_packet(s, reslevel, precno, qntsty->expn + (reslevelno ? 3*reslevelno-2 : 0), s 832 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG, "after tier2\n"); s 854 libavcodec/j2kenc.c static void truncpasses(Jpeg2000EncoderContext *s, Jpeg2000Tile *tile) s 857 libavcodec/j2kenc.c Jpeg2000CodingStyle *codsty = &s->codsty; s 859 libavcodec/j2kenc.c for (compno = 0; compno < s->ncomponents; compno++){ s 874 libavcodec/j2kenc.c cblk->ninclpasses = getcut(cblk, s->lambda, s 883 libavcodec/j2kenc.c static int encode_tile(Jpeg2000EncoderContext *s, Jpeg2000Tile *tile, int tileno) s 887 libavcodec/j2kenc.c Jpeg2000CodingStyle *codsty = &s->codsty; s 888 libavcodec/j2kenc.c for (compno = 0; compno < s->ncomponents; compno++){ s 889 libavcodec/j2kenc.c Jpeg2000Component *comp = s->tile[tileno].comp + compno; s 893 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG,"dwt\n"); s 896 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG,"after dwt -> tier1\n"); s 949 libavcodec/j2kenc.c encode_cblk(s, &t1, prec->cblk + cblkno, tile, xx1 - xx0, yy1 - yy0, s 959 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG, "after tier1\n"); s 962 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG, "rate control\n"); s 963 libavcodec/j2kenc.c truncpasses(s, tile); s 964 libavcodec/j2kenc.c if ((ret = encode_packets(s, tile, tileno)) < 0) s 966 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG, "after rate control\n"); s 970 libavcodec/j2kenc.c static void cleanup(Jpeg2000EncoderContext *s) s 973 libavcodec/j2kenc.c Jpeg2000CodingStyle *codsty = &s->codsty; s 975 libavcodec/j2kenc.c for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++){ s 976 libavcodec/j2kenc.c for (compno = 0; compno < s->ncomponents; compno++){ s 977 libavcodec/j2kenc.c Jpeg2000Component *comp = s->tile[tileno].comp + compno; s 980 libavcodec/j2kenc.c av_freep(&s->tile[tileno].comp); s 982 libavcodec/j2kenc.c av_freep(&s->tile); s 985 libavcodec/j2kenc.c static void reinit(Jpeg2000EncoderContext *s) s 988 libavcodec/j2kenc.c for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++){ s 989 libavcodec/j2kenc.c Jpeg2000Tile *tile = s->tile + tileno; s 990 libavcodec/j2kenc.c for (compno = 0; compno < s->ncomponents; compno++) s 991 libavcodec/j2kenc.c ff_jpeg2000_reinit(tile->comp + compno, &s->codsty); s 1004 libavcodec/j2kenc.c Jpeg2000EncoderContext *s = avctx->priv_data; s 1011 libavcodec/j2kenc.c s->buf = s->buf_start = pkt->data; s 1012 libavcodec/j2kenc.c s->buf_end = pkt->data + pkt->size; s 1014 libavcodec/j2kenc.c s->picture = pict; s 1016 libavcodec/j2kenc.c s->lambda = s->picture->quality * LAMBDA_SCALE; s 1018 libavcodec/j2kenc.c copy_frame(s); s 1019 libavcodec/j2kenc.c reinit(s); s 1021 libavcodec/j2kenc.c if (s->format == CODEC_JP2) { s 1022 libavcodec/j2kenc.c av_assert0(s->buf == pkt->data); s 1024 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0x0000000C); s 1025 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0x6A502020); s 1026 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0x0D0A870A); s 1028 libavcodec/j2kenc.c chunkstart = s->buf; s 1029 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); s 1030 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, "ftyp", 4); s 1031 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, "jp2\040\040", 4); s 1032 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); s 1033 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, "jp2\040", 4); s 1034 libavcodec/j2kenc.c update_size(chunkstart, s->buf); s 1036 libavcodec/j2kenc.c jp2hstart = s->buf; s 1037 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); s 1038 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, "jp2h", 4); s 1040 libavcodec/j2kenc.c chunkstart = s->buf; s 1041 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); s 1042 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, "ihdr", 4); s 1043 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, avctx->height); s 1044 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, avctx->width); s 1045 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, s->ncomponents); s 1046 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, s->cbps[0]); s 1047 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 7); s 1048 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); s 1049 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); s 1050 libavcodec/j2kenc.c update_size(chunkstart, s->buf); s 1052 libavcodec/j2kenc.c chunkstart = s->buf; s 1053 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); s 1054 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, "colr", 4); s 1055 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 1); s 1056 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); s 1057 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 0); s 1059 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 16); s 1060 libavcodec/j2kenc.c } else if (s->ncomponents == 1) { s 1061 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 17); s 1063 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 18); s 1065 libavcodec/j2kenc.c update_size(chunkstart, s->buf); s 1069 libavcodec/j2kenc.c chunkstart = s->buf; s 1070 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); s 1071 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, "pclr", 4); s 1072 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, AVPALETTE_COUNT); s 1073 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 3); // colour channels s 1074 libavcodec/j2kenc.c bytestream_put_be24(&s->buf, 0x070707); //colour depths s 1076 libavcodec/j2kenc.c bytestream_put_be24(&s->buf, HAVE_BIGENDIAN ? AV_RB24(palette + 1) : AV_RL24(palette)); s 1079 libavcodec/j2kenc.c update_size(chunkstart, s->buf); s 1080 libavcodec/j2kenc.c chunkstart = s->buf; s 1081 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); s 1082 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, "cmap", 4); s 1084 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, 0); // component s 1085 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, 1); // palette mapping s 1086 libavcodec/j2kenc.c bytestream_put_byte(&s->buf, i); // index s 1088 libavcodec/j2kenc.c update_size(chunkstart, s->buf); s 1090 libavcodec/j2kenc.c update_size(jp2hstart, s->buf); s 1092 libavcodec/j2kenc.c jp2cstart = s->buf; s 1093 libavcodec/j2kenc.c bytestream_put_be32(&s->buf, 0); s 1094 libavcodec/j2kenc.c bytestream_put_buffer(&s->buf, "jp2c", 4); s 1097 libavcodec/j2kenc.c if (s->buf_end - s->buf < 2) s 1099 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, JPEG2000_SOC); s 1100 libavcodec/j2kenc.c if ((ret = put_siz(s)) < 0) s 1102 libavcodec/j2kenc.c if ((ret = put_cod(s)) < 0) s 1104 libavcodec/j2kenc.c if ((ret = put_qcd(s, 0)) < 0) s 1106 libavcodec/j2kenc.c if ((ret = put_com(s, 0)) < 0) s 1109 libavcodec/j2kenc.c for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++){ s 1111 libavcodec/j2kenc.c if (!(psotptr = put_sot(s, tileno))) s 1113 libavcodec/j2kenc.c if (s->buf_end - s->buf < 2) s 1115 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, JPEG2000_SOD); s 1116 libavcodec/j2kenc.c if ((ret = encode_tile(s, s->tile + tileno, tileno)) < 0) s 1118 libavcodec/j2kenc.c bytestream_put_be32(&psotptr, s->buf - psotptr + 6); s 1120 libavcodec/j2kenc.c if (s->buf_end - s->buf < 2) s 1122 libavcodec/j2kenc.c bytestream_put_be16(&s->buf, JPEG2000_EOC); s 1124 libavcodec/j2kenc.c if (s->format == CODEC_JP2) s 1125 libavcodec/j2kenc.c update_size(jp2cstart, s->buf); s 1127 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG, "end\n"); s 1128 libavcodec/j2kenc.c pkt->size = s->buf - s->buf_start; s 1138 libavcodec/j2kenc.c Jpeg2000EncoderContext *s = avctx->priv_data; s 1139 libavcodec/j2kenc.c Jpeg2000CodingStyle *codsty = &s->codsty; s 1140 libavcodec/j2kenc.c Jpeg2000QuantStyle *qntsty = &s->qntsty; s 1142 libavcodec/j2kenc.c s->avctx = avctx; s 1143 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG, "init\n"); s 1148 libavcodec/j2kenc.c s->pred = avctx->prediction_method; s 1152 libavcodec/j2kenc.c if (avctx->pix_fmt == AV_PIX_FMT_PAL8 && (s->pred != FF_DWT97_INT || s->format != CODEC_JP2)) { s 1153 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_WARNING, "Forcing lossless jp2 for pal8\n"); s 1154 libavcodec/j2kenc.c s->pred = FF_DWT97_INT; s 1155 libavcodec/j2kenc.c s->format = CODEC_JP2; s 1166 libavcodec/j2kenc.c codsty->transform = s->pred ? FF_DWT53 : FF_DWT97_INT; s 1170 libavcodec/j2kenc.c if ((s->tile_width & (s->tile_width -1)) || s 1171 libavcodec/j2kenc.c (s->tile_height & (s->tile_height-1))) { s 1180 libavcodec/j2kenc.c s->width = avctx->width; s 1181 libavcodec/j2kenc.c s->height = avctx->height; s 1184 libavcodec/j2kenc.c s->cbps[i] = 8; s 1187 libavcodec/j2kenc.c s->ncomponents = 3; s 1189 libavcodec/j2kenc.c s->ncomponents = 1; s 1191 libavcodec/j2kenc.c s->planar = 1; s 1192 libavcodec/j2kenc.c s->ncomponents = 3; s 1194 libavcodec/j2kenc.c s->chroma_shift, s->chroma_shift + 1); s 1203 libavcodec/j2kenc.c init_quantization(s); s 1204 libavcodec/j2kenc.c if ((ret=init_tiles(s)) < 0) s 1207 libavcodec/j2kenc.c av_log(s->avctx, AV_LOG_DEBUG, "after init\n"); s 1214 libavcodec/j2kenc.c Jpeg2000EncoderContext *s = avctx->priv_data; s 1216 libavcodec/j2kenc.c cleanup(s); s 170 libavcodec/jacosubdec.c FFASSDecoderContext *s = avctx->priv_data; s 185 libavcodec/jacosubdec.c ret = ff_ass_add_rect(sub, buffer.str, s->readorder++, 0, NULL, NULL); s 159 libavcodec/jpeg2000_parser.c static int jpeg2000_parse(AVCodecParserContext *s, s 164 libavcodec/jpeg2000_parser.c JPEG2000ParserContext *m = s->priv_data; s 168 libavcodec/jpeg2000_parser.c if(s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 137 libavcodec/jpeg2000dec.c static int get_bits(Jpeg2000DecoderContext *s, int n) s 143 libavcodec/jpeg2000dec.c if (s->bit_index == 0) { s 144 libavcodec/jpeg2000dec.c s->bit_index = 7 + (bytestream2_get_byte(&s->g) != 0xFFu); s 146 libavcodec/jpeg2000dec.c s->bit_index--; s 147 libavcodec/jpeg2000dec.c res |= (bytestream2_peek_byte(&s->g) >> s->bit_index) & 1; s 152 libavcodec/jpeg2000dec.c static void jpeg2000_flush(Jpeg2000DecoderContext *s) s 154 libavcodec/jpeg2000dec.c if (bytestream2_get_byte(&s->g) == 0xff) s 155 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, 1); s 156 libavcodec/jpeg2000dec.c s->bit_index = 8; s 160 libavcodec/jpeg2000dec.c static int tag_tree_decode(Jpeg2000DecoderContext *s, Jpeg2000TgtNode *node, s 167 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "missing node\n"); s 186 libavcodec/jpeg2000dec.c if ((ret = get_bits(s, 1)) > 0) { s 264 libavcodec/jpeg2000dec.c static int get_siz(Jpeg2000DecoderContext *s) s 273 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 36) { s 274 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for SIZ\n"); s 278 libavcodec/jpeg2000dec.c s->avctx->profile = bytestream2_get_be16u(&s->g); // Rsiz s 279 libavcodec/jpeg2000dec.c s->width = bytestream2_get_be32u(&s->g); // Width s 280 libavcodec/jpeg2000dec.c s->height = bytestream2_get_be32u(&s->g); // Height s 281 libavcodec/jpeg2000dec.c s->image_offset_x = bytestream2_get_be32u(&s->g); // X0Siz s 282 libavcodec/jpeg2000dec.c s->image_offset_y = bytestream2_get_be32u(&s->g); // Y0Siz s 283 libavcodec/jpeg2000dec.c s->tile_width = bytestream2_get_be32u(&s->g); // XTSiz s 284 libavcodec/jpeg2000dec.c s->tile_height = bytestream2_get_be32u(&s->g); // YTSiz s 285 libavcodec/jpeg2000dec.c s->tile_offset_x = bytestream2_get_be32u(&s->g); // XT0Siz s 286 libavcodec/jpeg2000dec.c s->tile_offset_y = bytestream2_get_be32u(&s->g); // YT0Siz s 287 libavcodec/jpeg2000dec.c ncomponents = bytestream2_get_be16u(&s->g); // CSiz s 289 libavcodec/jpeg2000dec.c if (s->image_offset_x || s->image_offset_y) { s 290 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "Support for image offsets"); s 293 libavcodec/jpeg2000dec.c if (av_image_check_size2(s->width, s->height, s->avctx->max_pixels, AV_PIX_FMT_NONE, 0, s->avctx)) { s 294 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "Large Dimensions"); s 299 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid number of components: %d\n", s 300 libavcodec/jpeg2000dec.c s->ncomponents); s 305 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "Support for %d components", s 310 libavcodec/jpeg2000dec.c if (s->tile_offset_x < 0 || s->tile_offset_y < 0 || s 311 libavcodec/jpeg2000dec.c s->image_offset_x < s->tile_offset_x || s 312 libavcodec/jpeg2000dec.c s->image_offset_y < s->tile_offset_y || s 313 libavcodec/jpeg2000dec.c s->tile_width + (int64_t)s->tile_offset_x <= s->image_offset_x || s 314 libavcodec/jpeg2000dec.c s->tile_height + (int64_t)s->tile_offset_y <= s->image_offset_y s 316 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Tile offsets are invalid\n"); s 320 libavcodec/jpeg2000dec.c s->ncomponents = ncomponents; s 322 libavcodec/jpeg2000dec.c if (s->tile_width <= 0 || s->tile_height <= 0) { s 323 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid tile dimension %dx%d.\n", s 324 libavcodec/jpeg2000dec.c s->tile_width, s->tile_height); s 328 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 3 * s->ncomponents) { s 329 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for %d components in SIZ\n", s->ncomponents); s 333 libavcodec/jpeg2000dec.c for (i = 0; i < s->ncomponents; i++) { // Ssiz_i XRsiz_i, YRsiz_i s 334 libavcodec/jpeg2000dec.c uint8_t x = bytestream2_get_byteu(&s->g); s 335 libavcodec/jpeg2000dec.c s->cbps[i] = (x & 0x7f) + 1; s 336 libavcodec/jpeg2000dec.c s->precision = FFMAX(s->cbps[i], s->precision); s 337 libavcodec/jpeg2000dec.c s->sgnd[i] = !!(x & 0x80); s 338 libavcodec/jpeg2000dec.c s->cdx[i] = bytestream2_get_byteu(&s->g); s 339 libavcodec/jpeg2000dec.c s->cdy[i] = bytestream2_get_byteu(&s->g); s 340 libavcodec/jpeg2000dec.c if ( !s->cdx[i] || s->cdx[i] == 3 || s->cdx[i] > 4 s 341 libavcodec/jpeg2000dec.c || !s->cdy[i] || s->cdy[i] == 3 || s->cdy[i] > 4) { s 342 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid sample separation %d/%d\n", s->cdx[i], s->cdy[i]); s 345 libavcodec/jpeg2000dec.c log2_chroma_wh |= s->cdy[i] >> 1 << i * 4 | s->cdx[i] >> 1 << i * 4 + 2; s 348 libavcodec/jpeg2000dec.c s->numXtiles = ff_jpeg2000_ceildiv(s->width - s->tile_offset_x, s->tile_width); s 349 libavcodec/jpeg2000dec.c s->numYtiles = ff_jpeg2000_ceildiv(s->height - s->tile_offset_y, s->tile_height); s 352 libavcodec/jpeg2000dec.c if (s->numXtiles * (uint64_t)s->numYtiles > INT_MAX/sizeof(*s->tile) || s 353 libavcodec/jpeg2000dec.c s->numXtiles * s->numYtiles * 14LL > bytestream2_size(&s->g) s 355 libavcodec/jpeg2000dec.c s->numXtiles = s->numYtiles = 0; s 359 libavcodec/jpeg2000dec.c s->tile = av_mallocz_array(s->numXtiles * s->numYtiles, sizeof(*s->tile)); s 360 libavcodec/jpeg2000dec.c if (!s->tile) { s 361 libavcodec/jpeg2000dec.c s->numXtiles = s->numYtiles = 0; s 365 libavcodec/jpeg2000dec.c for (i = 0; i < s->numXtiles * s->numYtiles; i++) { s 366 libavcodec/jpeg2000dec.c Jpeg2000Tile *tile = s->tile + i; s 368 libavcodec/jpeg2000dec.c tile->comp = av_mallocz(s->ncomponents * sizeof(*tile->comp)); s 374 libavcodec/jpeg2000dec.c ret = ff_set_dimensions(s->avctx, s 375 libavcodec/jpeg2000dec.c ff_jpeg2000_ceildivpow2(s->width - s->image_offset_x, s 376 libavcodec/jpeg2000dec.c s->reduction_factor), s 377 libavcodec/jpeg2000dec.c ff_jpeg2000_ceildivpow2(s->height - s->image_offset_y, s 378 libavcodec/jpeg2000dec.c s->reduction_factor)); s 382 libavcodec/jpeg2000dec.c if (s->avctx->profile == FF_PROFILE_JPEG2000_DCINEMA_2K || s 383 libavcodec/jpeg2000dec.c s->avctx->profile == FF_PROFILE_JPEG2000_DCINEMA_4K) { s 387 libavcodec/jpeg2000dec.c switch (s->colour_space) { s 406 libavcodec/jpeg2000dec.c if ( s->avctx->pix_fmt != AV_PIX_FMT_NONE s 407 libavcodec/jpeg2000dec.c && !pix_fmt_match(s->avctx->pix_fmt, ncomponents, s->precision, log2_chroma_wh, s->pal8)) s 408 libavcodec/jpeg2000dec.c s->avctx->pix_fmt = AV_PIX_FMT_NONE; s 409 libavcodec/jpeg2000dec.c if (s->avctx->pix_fmt == AV_PIX_FMT_NONE) s 411 libavcodec/jpeg2000dec.c if (pix_fmt_match(possible_fmts[i], ncomponents, s->precision, log2_chroma_wh, s->pal8)) { s 412 libavcodec/jpeg2000dec.c s->avctx->pix_fmt = possible_fmts[i]; s 419 libavcodec/jpeg2000dec.c s->cdy[0] == 1 && s->cdx[0] == 1 && s 420 libavcodec/jpeg2000dec.c s->cdy[1] == 1 && s->cdx[1] == 1 && s 421 libavcodec/jpeg2000dec.c s->cdy[2] == s->cdy[3] && s->cdx[2] == s->cdx[3]) { s 422 libavcodec/jpeg2000dec.c if (s->precision == 8 && s->cdy[2] == 2 && s->cdx[2] == 2 && !s->pal8) { s 423 libavcodec/jpeg2000dec.c s->avctx->pix_fmt = AV_PIX_FMT_YUVA420P; s 424 libavcodec/jpeg2000dec.c s->cdef[0] = 0; s 425 libavcodec/jpeg2000dec.c s->cdef[1] = 1; s 426 libavcodec/jpeg2000dec.c s->cdef[2] = 2; s 427 libavcodec/jpeg2000dec.c s->cdef[3] = 3; s 435 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 442 libavcodec/jpeg2000dec.c s->avctx->profile, s->colour_space, ncomponents, s->precision, s 443 libavcodec/jpeg2000dec.c s->cdx[0], s 444 libavcodec/jpeg2000dec.c s->cdy[0], s 445 libavcodec/jpeg2000dec.c ncomponents > 1 ? s->cdx[1] : 0, s 446 libavcodec/jpeg2000dec.c ncomponents > 1 ? s->cdy[1] : 0, s 447 libavcodec/jpeg2000dec.c ncomponents > 2 ? s->cdx[2] : 0, s 448 libavcodec/jpeg2000dec.c ncomponents > 2 ? s->cdy[2] : 0, s 449 libavcodec/jpeg2000dec.c ncomponents > 3 ? s->cdx[3] : 0, s 450 libavcodec/jpeg2000dec.c ncomponents > 3 ? s->cdy[3] : 0); s 453 libavcodec/jpeg2000dec.c s->avctx->bits_per_raw_sample = s->precision; s 458 libavcodec/jpeg2000dec.c static int get_cox(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c) s 462 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 5) { s 463 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for COX\n"); s 469 libavcodec/jpeg2000dec.c c->nreslevels = bytestream2_get_byteu(&s->g) + 1; s 471 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "nreslevels %d is invalid\n", c->nreslevels); s 475 libavcodec/jpeg2000dec.c if (c->nreslevels <= s->reduction_factor) { s 480 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "reduction_factor too large for this bitstream, max is %d\n", c->nreslevels - 1); s 481 libavcodec/jpeg2000dec.c s->reduction_factor = c->nreslevels - 1; s 486 libavcodec/jpeg2000dec.c c->nreslevels2decode = c->nreslevels - s->reduction_factor; s 488 libavcodec/jpeg2000dec.c c->log2_cblk_width = (bytestream2_get_byteu(&s->g) & 15) + 2; // cblk width s 489 libavcodec/jpeg2000dec.c c->log2_cblk_height = (bytestream2_get_byteu(&s->g) & 15) + 2; // cblk height s 493 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "cblk size invalid\n"); s 497 libavcodec/jpeg2000dec.c c->cblk_style = bytestream2_get_byteu(&s->g); s 499 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "extra cblk styles %X\n", c->cblk_style); s 501 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "Selective arithmetic coding bypass\n"); s 503 libavcodec/jpeg2000dec.c c->transform = bytestream2_get_byteu(&s->g); // DWT transformation type s 505 libavcodec/jpeg2000dec.c if ((s->avctx->flags & AV_CODEC_FLAG_BITEXACT) && (c->transform == FF_DWT97)) s 508 libavcodec/jpeg2000dec.c s->avctx->properties |= FF_CODEC_PROPERTY_LOSSLESS; s 514 libavcodec/jpeg2000dec.c byte = bytestream2_get_byte(&s->g); s 519 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "PPx %d PPy %d invalid\n", s 533 libavcodec/jpeg2000dec.c static int get_cod(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c, s 539 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 5) { s 540 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for COD\n"); s 544 libavcodec/jpeg2000dec.c tmp.csty = bytestream2_get_byteu(&s->g); s 547 libavcodec/jpeg2000dec.c tmp.prog_order = bytestream2_get_byteu(&s->g); s 549 libavcodec/jpeg2000dec.c tmp.nlayers = bytestream2_get_be16u(&s->g); s 550 libavcodec/jpeg2000dec.c tmp.mct = bytestream2_get_byteu(&s->g); // multiple component transformation s 552 libavcodec/jpeg2000dec.c if (tmp.mct && s->ncomponents < 3) { s 553 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 555 libavcodec/jpeg2000dec.c tmp.mct, s->ncomponents); s 559 libavcodec/jpeg2000dec.c if ((ret = get_cox(s, &tmp)) < 0) s 562 libavcodec/jpeg2000dec.c for (compno = 0; compno < s->ncomponents; compno++) s 570 libavcodec/jpeg2000dec.c static int get_coc(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *c, s 576 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 2) { s 577 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for COC\n"); s 581 libavcodec/jpeg2000dec.c compno = bytestream2_get_byteu(&s->g); s 583 libavcodec/jpeg2000dec.c if (compno >= s->ncomponents) { s 584 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 586 libavcodec/jpeg2000dec.c compno, s->ncomponents); s 592 libavcodec/jpeg2000dec.c c->csty = bytestream2_get_byteu(&s->g); s 595 libavcodec/jpeg2000dec.c if ((ret = get_cox(s, c)) < 0) s 602 libavcodec/jpeg2000dec.c static int get_rgn(Jpeg2000DecoderContext *s, int n) s 605 libavcodec/jpeg2000dec.c compno = (s->ncomponents < 257)? bytestream2_get_byte(&s->g): s 606 libavcodec/jpeg2000dec.c bytestream2_get_be16u(&s->g); s 607 libavcodec/jpeg2000dec.c if (bytestream2_get_byte(&s->g)) { s 608 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid RGN header.\n"); s 614 libavcodec/jpeg2000dec.c if (compno < s->ncomponents) { s 616 libavcodec/jpeg2000dec.c if (s->curtileno == -1) { s 617 libavcodec/jpeg2000dec.c v = bytestream2_get_byte(&s->g); s 620 libavcodec/jpeg2000dec.c s->roi_shift[compno] = v; s 622 libavcodec/jpeg2000dec.c if (s->tile[s->curtileno].tp_idx != 0) s 624 libavcodec/jpeg2000dec.c v = bytestream2_get_byte(&s->g); s 627 libavcodec/jpeg2000dec.c s->tile[s->curtileno].comp[compno].roi_shift = v; s 635 libavcodec/jpeg2000dec.c static int get_qcx(Jpeg2000DecoderContext *s, int n, Jpeg2000QuantStyle *q) s 639 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 1) s 642 libavcodec/jpeg2000dec.c x = bytestream2_get_byteu(&s->g); // Sqcd s 649 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < n || s 653 libavcodec/jpeg2000dec.c q->expn[i] = bytestream2_get_byteu(&s->g) >> 3; s 655 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 2) s 657 libavcodec/jpeg2000dec.c x = bytestream2_get_be16u(&s->g); s 667 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 2 * n || s 671 libavcodec/jpeg2000dec.c x = bytestream2_get_be16u(&s->g); s 680 libavcodec/jpeg2000dec.c static int get_qcd(Jpeg2000DecoderContext *s, int n, Jpeg2000QuantStyle *q, s 688 libavcodec/jpeg2000dec.c if ((ret = get_qcx(s, n, &tmp)) < 0) s 690 libavcodec/jpeg2000dec.c for (compno = 0; compno < s->ncomponents; compno++) s 698 libavcodec/jpeg2000dec.c static int get_qcc(Jpeg2000DecoderContext *s, int n, Jpeg2000QuantStyle *q, s 703 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 1) s 706 libavcodec/jpeg2000dec.c compno = bytestream2_get_byteu(&s->g); s 708 libavcodec/jpeg2000dec.c if (compno >= s->ncomponents) { s 709 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 711 libavcodec/jpeg2000dec.c compno, s->ncomponents); s 716 libavcodec/jpeg2000dec.c return get_qcx(s, n - 1, q + compno); s 719 libavcodec/jpeg2000dec.c static int get_poc(Jpeg2000DecoderContext *s, int size, Jpeg2000POC *p) s 722 libavcodec/jpeg2000dec.c int elem_size = s->ncomponents <= 257 ? 7 : 9; s 725 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 5 || size < 2 + elem_size) { s 726 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for POC\n"); s 731 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "Fat POC not supported"); s 737 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "Too many POCs (%d)", tmp.nb_poc); s 743 libavcodec/jpeg2000dec.c e->RSpoc = bytestream2_get_byteu(&s->g); s 744 libavcodec/jpeg2000dec.c e->CSpoc = bytestream2_get_byteu(&s->g); s 745 libavcodec/jpeg2000dec.c e->LYEpoc = bytestream2_get_be16u(&s->g); s 746 libavcodec/jpeg2000dec.c e->REpoc = bytestream2_get_byteu(&s->g); s 747 libavcodec/jpeg2000dec.c e->CEpoc = bytestream2_get_byteu(&s->g); s 748 libavcodec/jpeg2000dec.c e->Ppoc = bytestream2_get_byteu(&s->g); s 751 libavcodec/jpeg2000dec.c if (e->CEpoc > s->ncomponents) s 752 libavcodec/jpeg2000dec.c e->CEpoc = s->ncomponents; s 754 libavcodec/jpeg2000dec.c || e->CSpoc >= e->CEpoc || e->CEpoc > s->ncomponents s 756 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "POC Entry %d is invalid (%d, %d, %d, %d, %d, %d)\n", i, s 767 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Insufficient space for POC\n"); s 781 libavcodec/jpeg2000dec.c static int get_sot(Jpeg2000DecoderContext *s, int n) s 788 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 8) s 791 libavcodec/jpeg2000dec.c s->curtileno = 0; s 792 libavcodec/jpeg2000dec.c Isot = bytestream2_get_be16u(&s->g); // Isot s 793 libavcodec/jpeg2000dec.c if (Isot >= s->numXtiles * s->numYtiles) s 796 libavcodec/jpeg2000dec.c s->curtileno = Isot; s 797 libavcodec/jpeg2000dec.c Psot = bytestream2_get_be32u(&s->g); // Psot s 798 libavcodec/jpeg2000dec.c TPsot = bytestream2_get_byteu(&s->g); // TPsot s 801 libavcodec/jpeg2000dec.c bytestream2_get_byteu(&s->g); // TNsot s 804 libavcodec/jpeg2000dec.c Psot = bytestream2_get_bytes_left(&s->g) - 2 + n + 2; s 806 libavcodec/jpeg2000dec.c if (Psot > bytestream2_get_bytes_left(&s->g) - 2 + n + 2) { s 807 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Psot %"PRIu32" too big\n", Psot); s 811 libavcodec/jpeg2000dec.c if (TPsot >= FF_ARRAY_ELEMS(s->tile[Isot].tile_part)) { s 812 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "Too many tile parts"); s 816 libavcodec/jpeg2000dec.c s->tile[Isot].tp_idx = TPsot; s 817 libavcodec/jpeg2000dec.c tp = s->tile[Isot].tile_part + TPsot; s 819 libavcodec/jpeg2000dec.c tp->tp_end = s->g.buffer + Psot - n - 2; s 822 libavcodec/jpeg2000dec.c Jpeg2000Tile *tile = s->tile + s->curtileno; s 825 libavcodec/jpeg2000dec.c memcpy(tile->codsty, s->codsty, s->ncomponents * sizeof(Jpeg2000CodingStyle)); s 826 libavcodec/jpeg2000dec.c memcpy(tile->qntsty, s->qntsty, s->ncomponents * sizeof(Jpeg2000QuantStyle)); s 827 libavcodec/jpeg2000dec.c memcpy(&tile->poc , &s->poc , sizeof(tile->poc)); s 834 libavcodec/jpeg2000dec.c static int read_crg(Jpeg2000DecoderContext *s, int n) s 836 libavcodec/jpeg2000dec.c if (s->ncomponents*4 != n - 2) { s 837 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid CRG marker.\n"); s 840 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, n - 2); s 851 libavcodec/jpeg2000dec.c static int get_tlm(Jpeg2000DecoderContext *s, int n) s 854 libavcodec/jpeg2000dec.c bytestream2_get_byte(&s->g); /* Ztlm: skipped */ s 855 libavcodec/jpeg2000dec.c Stlm = bytestream2_get_byte(&s->g); s 860 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "TLM marker contains invalid ST value.\n"); s 871 libavcodec/jpeg2000dec.c bytestream2_get_byte(&s->g); s 874 libavcodec/jpeg2000dec.c bytestream2_get_be16(&s->g); s 877 libavcodec/jpeg2000dec.c bytestream2_get_be32(&s->g); s 881 libavcodec/jpeg2000dec.c bytestream2_get_be16(&s->g); s 883 libavcodec/jpeg2000dec.c bytestream2_get_be32(&s->g); s 889 libavcodec/jpeg2000dec.c static int get_plt(Jpeg2000DecoderContext *s, int n) s 894 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_DEBUG, s 895 libavcodec/jpeg2000dec.c "PLT marker at pos 0x%X\n", bytestream2_tell(&s->g) - 4); s 900 libavcodec/jpeg2000dec.c /*Zplt =*/ bytestream2_get_byte(&s->g); s 903 libavcodec/jpeg2000dec.c v = bytestream2_get_byte(&s->g); s 911 libavcodec/jpeg2000dec.c static int get_ppt(Jpeg2000DecoderContext *s, int n) s 917 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid length for PPT data.\n"); s 920 libavcodec/jpeg2000dec.c if (s->curtileno < 0) s 923 libavcodec/jpeg2000dec.c tile = &s->tile[s->curtileno]; s 925 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 931 libavcodec/jpeg2000dec.c bytestream2_get_byte(&s->g); // Zppt is skipped and not used s 940 libavcodec/jpeg2000dec.c s->g.buffer, n - 3); s 942 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, n - 3); s 947 libavcodec/jpeg2000dec.c static int init_tile(Jpeg2000DecoderContext *s, int tileno) s 950 libavcodec/jpeg2000dec.c int tilex = tileno % s->numXtiles; s 951 libavcodec/jpeg2000dec.c int tiley = tileno / s->numXtiles; s 952 libavcodec/jpeg2000dec.c Jpeg2000Tile *tile = s->tile + tileno; s 957 libavcodec/jpeg2000dec.c tile->coord[0][0] = av_clip(tilex * (int64_t)s->tile_width + s->tile_offset_x, s->image_offset_x, s->width); s 958 libavcodec/jpeg2000dec.c tile->coord[0][1] = av_clip((tilex + 1) * (int64_t)s->tile_width + s->tile_offset_x, s->image_offset_x, s->width); s 959 libavcodec/jpeg2000dec.c tile->coord[1][0] = av_clip(tiley * (int64_t)s->tile_height + s->tile_offset_y, s->image_offset_y, s->height); s 960 libavcodec/jpeg2000dec.c tile->coord[1][1] = av_clip((tiley + 1) * (int64_t)s->tile_height + s->tile_offset_y, s->image_offset_y, s->height); s 962 libavcodec/jpeg2000dec.c for (compno = 0; compno < s->ncomponents; compno++) { s 973 libavcodec/jpeg2000dec.c comp->coord_o[0][0] /= s->cdx[compno]; s 974 libavcodec/jpeg2000dec.c comp->coord_o[0][1] /= s->cdx[compno]; s 975 libavcodec/jpeg2000dec.c comp->coord_o[1][0] /= s->cdy[compno]; s 976 libavcodec/jpeg2000dec.c comp->coord_o[1][1] /= s->cdy[compno]; s 979 libavcodec/jpeg2000dec.c comp->coord[0][0] = ff_jpeg2000_ceildivpow2(comp->coord_o[0][0], s->reduction_factor); s 980 libavcodec/jpeg2000dec.c comp->coord[0][1] = ff_jpeg2000_ceildivpow2(comp->coord_o[0][1], s->reduction_factor); s 981 libavcodec/jpeg2000dec.c comp->coord[1][0] = ff_jpeg2000_ceildivpow2(comp->coord_o[1][0], s->reduction_factor); s 982 libavcodec/jpeg2000dec.c comp->coord[1][1] = ff_jpeg2000_ceildivpow2(comp->coord_o[1][1], s->reduction_factor); s 985 libavcodec/jpeg2000dec.c comp->roi_shift = s->roi_shift[compno]; s 988 libavcodec/jpeg2000dec.c s->cbps[compno], s->cdx[compno], s 989 libavcodec/jpeg2000dec.c s->cdy[compno], s->avctx)) s 996 libavcodec/jpeg2000dec.c static int getnpasses(Jpeg2000DecoderContext *s) s 999 libavcodec/jpeg2000dec.c if (!get_bits(s, 1)) s 1001 libavcodec/jpeg2000dec.c if (!get_bits(s, 1)) s 1003 libavcodec/jpeg2000dec.c if ((num = get_bits(s, 2)) != 3) s 1005 libavcodec/jpeg2000dec.c if ((num = get_bits(s, 5)) != 31) s 1007 libavcodec/jpeg2000dec.c num = get_bits(s, 7); s 1011 libavcodec/jpeg2000dec.c static int getlblockinc(Jpeg2000DecoderContext *s) s 1014 libavcodec/jpeg2000dec.c while (ret = get_bits(s, 1)) { s 1022 libavcodec/jpeg2000dec.c static inline void select_stream(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, s 1025 libavcodec/jpeg2000dec.c s->g = tile->tile_part[*tp_index].tpg; s 1026 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) == 0 && s->bit_index == 8) { s 1028 libavcodec/jpeg2000dec.c s->g = tile->tile_part[++(*tp_index)].tpg; s 1031 libavcodec/jpeg2000dec.c if (bytestream2_peek_be32(&s->g) == JPEG2000_SOP_FIXED_BYTES) s 1032 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, JPEG2000_SOP_BYTE_LENGTH); s 1035 libavcodec/jpeg2000dec.c static int jpeg2000_decode_packet(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, int *tp_index, s 1048 libavcodec/jpeg2000dec.c s->g = tile->packed_headers_stream; s 1050 libavcodec/jpeg2000dec.c select_stream(s, tile, tp_index); s 1052 libavcodec/jpeg2000dec.c if (!(ret = get_bits(s, 1))) { s 1053 libavcodec/jpeg2000dec.c jpeg2000_flush(s); s 1073 libavcodec/jpeg2000dec.c incl = get_bits(s, 1); s 1075 libavcodec/jpeg2000dec.c incl = tag_tree_decode(s, prec->cblkincl + cblkno, layno + 1) == layno; s 1083 libavcodec/jpeg2000dec.c tag_tree_decode(s, prec->zerobits + cblkno, 100); s 1085 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 1091 libavcodec/jpeg2000dec.c if ((newpasses = getnpasses(s)) < 0) s 1095 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "Too many passes"); s 1098 libavcodec/jpeg2000dec.c if ((llen = getlblockinc(s)) < 0) s 1101 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, s 1129 libavcodec/jpeg2000dec.c if ((ret = get_bits(s, av_log2(newpasses1) + cblk->lblock)) < 0) s 1140 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, s 1151 libavcodec/jpeg2000dec.c jpeg2000_flush(s); s 1154 libavcodec/jpeg2000dec.c if (bytestream2_peek_be16(&s->g) == JPEG2000_EPH) s 1155 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, 2); s 1157 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "EPH marker not found. instead %X\n", bytestream2_peek_be32(&s->g)); s 1162 libavcodec/jpeg2000dec.c tile->packed_headers_stream = s->g; s 1163 libavcodec/jpeg2000dec.c select_stream(s, tile, tp_index); s 1183 libavcodec/jpeg2000dec.c if ( bytestream2_get_bytes_left(&s->g) < cblk->lengthinc[cwsno] s 1186 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 1188 libavcodec/jpeg2000dec.c cblk->length, cblk->lengthinc[cwsno], bytestream2_get_bytes_left(&s->g)); s 1192 libavcodec/jpeg2000dec.c bytestream2_get_bufferu(&s->g, cblk->data + cblk->length, cblk->lengthinc[cwsno]); s 1207 libavcodec/jpeg2000dec.c tile->tile_part[*tp_index].tpg = s->g; s 1212 libavcodec/jpeg2000dec.c tile->packed_headers_stream = s->g; s 1214 libavcodec/jpeg2000dec.c tile->tile_part[*tp_index].tpg = s->g; s 1218 libavcodec/jpeg2000dec.c static int jpeg2000_decode_packets_po_iteration(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, s 1230 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_DEBUG, "Progression order RLCP\n"); s 1243 libavcodec/jpeg2000dec.c if ((ret = jpeg2000_decode_packet(s, tile, tp_index, s 1256 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_DEBUG, "Progression order LRCP\n"); s 1269 libavcodec/jpeg2000dec.c if ((ret = jpeg2000_decode_packet(s, tile, tp_index, s 1282 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_DEBUG, "Progression order CPRL\n"); s 1300 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "CPRL with large step"); s 1312 libavcodec/jpeg2000dec.c int xc = x / s->cdx[compno]; s 1313 libavcodec/jpeg2000dec.c int yc = y / s->cdy[compno]; s 1330 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "prc %d %d outside limits %d %d\n", s 1336 libavcodec/jpeg2000dec.c if ((ret = jpeg2000_decode_packet(s, tile, tp_index, codsty, rlevel, s 1349 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "Progression order RPCL\n"); s 1379 libavcodec/jpeg2000dec.c int xc = x / s->cdx[compno]; s 1380 libavcodec/jpeg2000dec.c int yc = y / s->cdy[compno]; s 1401 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "prc %d %d outside limits %d %d\n", s 1407 libavcodec/jpeg2000dec.c if ((ret = jpeg2000_decode_packet(s, tile, tp_index, s 1421 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "Progression order PCRL\n"); s 1436 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "PCRL with large step"); s 1448 libavcodec/jpeg2000dec.c int xc = x / s->cdx[compno]; s 1449 libavcodec/jpeg2000dec.c int yc = y / s->cdy[compno]; s 1471 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "prc %d %d outside limits %d %d\n", s 1477 libavcodec/jpeg2000dec.c if ((ret = jpeg2000_decode_packet(s, tile, tp_index, codsty, rlevel, s 1496 libavcodec/jpeg2000dec.c static int jpeg2000_decode_packets(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile) s 1502 libavcodec/jpeg2000dec.c s->bit_index = 8; s 1506 libavcodec/jpeg2000dec.c ret = jpeg2000_decode_packets_po_iteration(s, tile, s 1510 libavcodec/jpeg2000dec.c FFMIN(e->CEpoc, s->ncomponents), s 1517 libavcodec/jpeg2000dec.c ret = jpeg2000_decode_packets_po_iteration(s, tile, s 1521 libavcodec/jpeg2000dec.c s->ncomponents, s 1527 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, 2); s 1587 libavcodec/jpeg2000dec.c static void decode_clnpass(Jpeg2000DecoderContext *s, Jpeg2000T1Context *t1, s 1648 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 1653 libavcodec/jpeg2000dec.c static int decode_cblk(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *codsty, s 1680 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "bpno became invalid\n"); s 1693 libavcodec/jpeg2000dec.c decode_clnpass(s, t1, width, height, bpno + 1, bandpos, s 1703 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Missing needed termination \n"); s 1707 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "Mid mismatch %"PTRDIFF_SPECIFIER" in pass %d of %d\n", s 1724 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "End mismatch %"PTRDIFF_SPECIFIER"\n", s 1800 libavcodec/jpeg2000dec.c static inline void mct_decode(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile) s 1807 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Transforms mismatch, MCT not supported\n"); s 1811 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Coords mismatch, MCT not supported\n"); s 1825 libavcodec/jpeg2000dec.c s->dsp.mct_decode[tile->codsty[0].transform](src[0], src[1], src[2], csize); s 1841 libavcodec/jpeg2000dec.c static inline void tile_codeblocks(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile) s 1848 libavcodec/jpeg2000dec.c for (compno = 0; compno < s->ncomponents; compno++) { s 1881 libavcodec/jpeg2000dec.c int ret = decode_cblk(s, codsty, &t1, cblk, s 1913 libavcodec/jpeg2000dec.c static inline void write_frame_ ## D(Jpeg2000DecoderContext * s, Jpeg2000Tile * tile, \ s 1916 libavcodec/jpeg2000dec.c const AVPixFmtDescriptor *pixdesc = av_pix_fmt_desc_get(s->avctx->pix_fmt); \ s 1923 libavcodec/jpeg2000dec.c for (compno = 0; compno < s->ncomponents; compno++) { \ s 1929 libavcodec/jpeg2000dec.c int cbps = s->cbps[compno]; \ s 1930 libavcodec/jpeg2000dec.c int w = tile->comp[compno].coord[0][1] - s->image_offset_x; \ s 1934 libavcodec/jpeg2000dec.c plane = s->cdef[compno] ? s->cdef[compno]-1 : (s->ncomponents-1); \ s 1936 libavcodec/jpeg2000dec.c y = tile->comp[compno].coord[1][0] - s->image_offset_y / s->cdy[compno]; \ s 1938 libavcodec/jpeg2000dec.c for (; y < tile->comp[compno].coord[1][1] - s->image_offset_y; y++) { \ s 1941 libavcodec/jpeg2000dec.c x = tile->comp[compno].coord[0][0] - s->image_offset_x / s->cdx[compno]; \ s 1977 libavcodec/jpeg2000dec.c Jpeg2000DecoderContext *s = avctx->priv_data; s 1979 libavcodec/jpeg2000dec.c Jpeg2000Tile *tile = s->tile + jobnr; s 1982 libavcodec/jpeg2000dec.c tile_codeblocks(s, tile); s 1986 libavcodec/jpeg2000dec.c mct_decode(s, tile); s 1988 libavcodec/jpeg2000dec.c for (x = 0; x < s->ncomponents; x++) { s 1989 libavcodec/jpeg2000dec.c if (s->cdef[x] < 0) { s 1990 libavcodec/jpeg2000dec.c for (x = 0; x < s->ncomponents; x++) { s 1991 libavcodec/jpeg2000dec.c s->cdef[x] = x + 1; s 1993 libavcodec/jpeg2000dec.c if ((s->ncomponents & 1) == 0) s 1994 libavcodec/jpeg2000dec.c s->cdef[s->ncomponents-1] = 0; s 1999 libavcodec/jpeg2000dec.c if (s->precision <= 8) { s 2000 libavcodec/jpeg2000dec.c write_frame_8(s, tile, picture, 8); s 2005 libavcodec/jpeg2000dec.c picture->format == AV_PIX_FMT_GRAY16 ? 16 : s->precision; s 2007 libavcodec/jpeg2000dec.c write_frame_16(s, tile, picture, precision); s 2013 libavcodec/jpeg2000dec.c static void jpeg2000_dec_cleanup(Jpeg2000DecoderContext *s) s 2016 libavcodec/jpeg2000dec.c for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++) { s 2017 libavcodec/jpeg2000dec.c if (s->tile[tileno].comp) { s 2018 libavcodec/jpeg2000dec.c for (compno = 0; compno < s->ncomponents; compno++) { s 2019 libavcodec/jpeg2000dec.c Jpeg2000Component *comp = s->tile[tileno].comp + compno; s 2020 libavcodec/jpeg2000dec.c Jpeg2000CodingStyle *codsty = s->tile[tileno].codsty + compno; s 2024 libavcodec/jpeg2000dec.c av_freep(&s->tile[tileno].comp); s 2025 libavcodec/jpeg2000dec.c av_freep(&s->tile[tileno].packed_headers); s 2026 libavcodec/jpeg2000dec.c s->tile[tileno].packed_headers_size = 0; s 2029 libavcodec/jpeg2000dec.c av_freep(&s->tile); s 2030 libavcodec/jpeg2000dec.c memset(s->codsty, 0, sizeof(s->codsty)); s 2031 libavcodec/jpeg2000dec.c memset(s->qntsty, 0, sizeof(s->qntsty)); s 2032 libavcodec/jpeg2000dec.c memset(s->properties, 0, sizeof(s->properties)); s 2033 libavcodec/jpeg2000dec.c memset(&s->poc , 0, sizeof(s->poc)); s 2034 libavcodec/jpeg2000dec.c s->numXtiles = s->numYtiles = 0; s 2035 libavcodec/jpeg2000dec.c s->ncomponents = 0; s 2038 libavcodec/jpeg2000dec.c static int jpeg2000_read_main_headers(Jpeg2000DecoderContext *s) s 2040 libavcodec/jpeg2000dec.c Jpeg2000CodingStyle *codsty = s->codsty; s 2041 libavcodec/jpeg2000dec.c Jpeg2000QuantStyle *qntsty = s->qntsty; s 2042 libavcodec/jpeg2000dec.c Jpeg2000POC *poc = &s->poc; s 2043 libavcodec/jpeg2000dec.c uint8_t *properties = s->properties; s 2050 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 2) { s 2051 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Missing EOC\n"); s 2055 libavcodec/jpeg2000dec.c marker = bytestream2_get_be16u(&s->g); s 2056 libavcodec/jpeg2000dec.c oldpos = bytestream2_tell(&s->g); s 2062 libavcodec/jpeg2000dec.c if (!s->tile) { s 2063 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Missing SIZ\n"); s 2066 libavcodec/jpeg2000dec.c if (s->curtileno < 0) { s 2067 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Missing SOT\n"); s 2071 libavcodec/jpeg2000dec.c tile = s->tile + s->curtileno; s 2073 libavcodec/jpeg2000dec.c if (tp->tp_end < s->g.buffer) { s 2074 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid tpend\n"); s 2082 libavcodec/jpeg2000dec.c bytestream2_init(&tp->tpg, s->g.buffer, tp->tp_end - s->g.buffer); s 2083 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, tp->tp_end - s->g.buffer); s 2090 libavcodec/jpeg2000dec.c len = bytestream2_get_be16(&s->g); s 2091 libavcodec/jpeg2000dec.c if (len < 2 || bytestream2_get_bytes_left(&s->g) < len - 2) { s 2092 libavcodec/jpeg2000dec.c if (s->avctx->strict_std_compliance >= FF_COMPLIANCE_STRICT) { s 2093 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid len %d left=%d\n", len, bytestream2_get_bytes_left(&s->g)); s 2096 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "Missing EOC Marker.\n"); s 2102 libavcodec/jpeg2000dec.c if (s->ncomponents) { s 2103 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, "Duplicate SIZ\n"); s 2106 libavcodec/jpeg2000dec.c ret = get_siz(s); s 2107 libavcodec/jpeg2000dec.c if (!s->tile) s 2108 libavcodec/jpeg2000dec.c s->numXtiles = s->numYtiles = 0; s 2111 libavcodec/jpeg2000dec.c ret = get_coc(s, codsty, properties); s 2114 libavcodec/jpeg2000dec.c ret = get_cod(s, codsty, properties); s 2117 libavcodec/jpeg2000dec.c ret = get_rgn(s, len); s 2120 libavcodec/jpeg2000dec.c ret = get_qcc(s, len, qntsty, properties); s 2123 libavcodec/jpeg2000dec.c ret = get_qcd(s, len, qntsty, properties); s 2126 libavcodec/jpeg2000dec.c ret = get_poc(s, len, poc); s 2129 libavcodec/jpeg2000dec.c if (!(ret = get_sot(s, len))) { s 2130 libavcodec/jpeg2000dec.c av_assert1(s->curtileno >= 0); s 2131 libavcodec/jpeg2000dec.c codsty = s->tile[s->curtileno].codsty; s 2132 libavcodec/jpeg2000dec.c qntsty = s->tile[s->curtileno].qntsty; s 2133 libavcodec/jpeg2000dec.c poc = &s->tile[s->curtileno].poc; s 2134 libavcodec/jpeg2000dec.c properties = s->tile[s->curtileno].properties; s 2141 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, len - 2); s 2144 libavcodec/jpeg2000dec.c ret = read_crg(s, len); s 2148 libavcodec/jpeg2000dec.c ret = get_tlm(s, len); s 2152 libavcodec/jpeg2000dec.c ret = get_plt(s, len); s 2156 libavcodec/jpeg2000dec.c ret = get_ppt(s, len); s 2159 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 2161 libavcodec/jpeg2000dec.c marker, bytestream2_tell(&s->g) - 4); s 2162 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, len - 2); s 2165 libavcodec/jpeg2000dec.c if (bytestream2_tell(&s->g) - oldpos != len || ret) { s 2166 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_ERROR, s 2176 libavcodec/jpeg2000dec.c static int jpeg2000_read_bitstream_packets(Jpeg2000DecoderContext *s) s 2181 libavcodec/jpeg2000dec.c for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++) { s 2182 libavcodec/jpeg2000dec.c Jpeg2000Tile *tile = s->tile + tileno; s 2184 libavcodec/jpeg2000dec.c if ((ret = init_tile(s, tileno)) < 0) s 2187 libavcodec/jpeg2000dec.c if ((ret = jpeg2000_decode_packets(s, tile)) < 0) s 2194 libavcodec/jpeg2000dec.c static int jp2_find_codestream(Jpeg2000DecoderContext *s) s 2201 libavcodec/jpeg2000dec.c bytestream2_get_bytes_left(&s->g) >= 8) { s 2202 libavcodec/jpeg2000dec.c atom_size = bytestream2_get_be32u(&s->g); s 2203 libavcodec/jpeg2000dec.c atom = bytestream2_get_be32u(&s->g); s 2205 libavcodec/jpeg2000dec.c if (bytestream2_get_be32u(&s->g)) { s 2206 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "Huge atom"); s 2209 libavcodec/jpeg2000dec.c atom_size = bytestream2_get_be32u(&s->g); s 2210 libavcodec/jpeg2000dec.c atom_end = bytestream2_tell(&s->g) + atom_size - 16; s 2212 libavcodec/jpeg2000dec.c atom_end = bytestream2_tell(&s->g) + atom_size - 8; s 2218 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < atom_size || atom_end < atom_size) s 2225 libavcodec/jpeg2000dec.c atom2_size = bytestream2_get_be32u(&s->g); s 2226 libavcodec/jpeg2000dec.c atom2 = bytestream2_get_be32u(&s->g); s 2227 libavcodec/jpeg2000dec.c atom2_end = bytestream2_tell(&s->g) + atom2_size - 8; s 2234 libavcodec/jpeg2000dec.c int method = bytestream2_get_byteu(&s->g); s 2235 libavcodec/jpeg2000dec.c bytestream2_skipu(&s->g, 2); s 2237 libavcodec/jpeg2000dec.c s->colour_space = bytestream2_get_be32u(&s->g); s 2241 libavcodec/jpeg2000dec.c colour_count = bytestream2_get_be16u(&s->g); s 2242 libavcodec/jpeg2000dec.c colour_channels = bytestream2_get_byteu(&s->g); s 2244 libavcodec/jpeg2000dec.c colour_depth[0] = (bytestream2_get_byteu(&s->g) & 0x7f) + 1; s 2245 libavcodec/jpeg2000dec.c colour_depth[1] = (bytestream2_get_byteu(&s->g) & 0x7f) + 1; s 2246 libavcodec/jpeg2000dec.c colour_depth[2] = (bytestream2_get_byteu(&s->g) & 0x7f) + 1; s 2256 libavcodec/jpeg2000dec.c avpriv_request_sample(s->avctx, "Unknown palette"); s 2257 libavcodec/jpeg2000dec.c bytestream2_seek(&s->g, atom2_end, SEEK_SET); s 2260 libavcodec/jpeg2000dec.c s->pal8 = 1; s 2264 libavcodec/jpeg2000dec.c r = bytestream2_get_byteu(&s->g) << 8 - colour_depth[0]; s 2267 libavcodec/jpeg2000dec.c r = bytestream2_get_be16u(&s->g) >> colour_depth[0] - 8; s 2270 libavcodec/jpeg2000dec.c g = bytestream2_get_byteu(&s->g) << 8 - colour_depth[1]; s 2273 libavcodec/jpeg2000dec.c g = bytestream2_get_be16u(&s->g) >> colour_depth[1] - 8; s 2276 libavcodec/jpeg2000dec.c b = bytestream2_get_byteu(&s->g) << 8 - colour_depth[2]; s 2279 libavcodec/jpeg2000dec.c b = bytestream2_get_be16u(&s->g) >> colour_depth[2] - 8; s 2281 libavcodec/jpeg2000dec.c s->palette[i] = 0xffu << 24 | r << 16 | g << 8 | b; s 2284 libavcodec/jpeg2000dec.c int n = bytestream2_get_be16u(&s->g); s 2286 libavcodec/jpeg2000dec.c int cn = bytestream2_get_be16(&s->g); s 2287 libavcodec/jpeg2000dec.c int av_unused typ = bytestream2_get_be16(&s->g); s 2288 libavcodec/jpeg2000dec.c int asoc = bytestream2_get_be16(&s->g); s 2290 libavcodec/jpeg2000dec.c s->cdef[cn] = asoc; s 2295 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, 4); s 2296 libavcodec/jpeg2000dec.c resx = bytestream2_get_be32u(&s->g); s 2298 libavcodec/jpeg2000dec.c bytestream2_seek(&s->g, atom2_end, SEEK_SET); s 2301 libavcodec/jpeg2000dec.c vnum = bytestream2_get_be16u(&s->g); s 2302 libavcodec/jpeg2000dec.c vden = bytestream2_get_be16u(&s->g); s 2303 libavcodec/jpeg2000dec.c hnum = bytestream2_get_be16u(&s->g); s 2304 libavcodec/jpeg2000dec.c hden = bytestream2_get_be16u(&s->g); s 2305 libavcodec/jpeg2000dec.c vexp = bytestream2_get_byteu(&s->g); s 2306 libavcodec/jpeg2000dec.c hexp = bytestream2_get_byteu(&s->g); s 2308 libavcodec/jpeg2000dec.c bytestream2_seek(&s->g, atom2_end, SEEK_SET); s 2309 libavcodec/jpeg2000dec.c av_log(s->avctx, AV_LOG_WARNING, "RES box invalid\n"); s 2321 libavcodec/jpeg2000dec.c av_reduce(&s->sar.den, &s->sar.num, s 2326 libavcodec/jpeg2000dec.c bytestream2_seek(&s->g, atom2_end, SEEK_SET); s 2331 libavcodec/jpeg2000dec.c bytestream2_seek(&s->g, atom_end, SEEK_SET); s 2346 libavcodec/jpeg2000dec.c Jpeg2000DecoderContext *s = avctx->priv_data; s 2349 libavcodec/jpeg2000dec.c ff_jpeg2000dsp_init(&s->dsp); s 2357 libavcodec/jpeg2000dec.c Jpeg2000DecoderContext *s = avctx->priv_data; s 2362 libavcodec/jpeg2000dec.c s->avctx = avctx; s 2363 libavcodec/jpeg2000dec.c bytestream2_init(&s->g, avpkt->data, avpkt->size); s 2364 libavcodec/jpeg2000dec.c s->curtileno = -1; s 2365 libavcodec/jpeg2000dec.c memset(s->cdef, -1, sizeof(s->cdef)); s 2367 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) < 2) { s 2373 libavcodec/jpeg2000dec.c if (bytestream2_get_bytes_left(&s->g) >= 12 && s 2374 libavcodec/jpeg2000dec.c (bytestream2_get_be32u(&s->g) == 12) && s 2375 libavcodec/jpeg2000dec.c (bytestream2_get_be32u(&s->g) == JP2_SIG_TYPE) && s 2376 libavcodec/jpeg2000dec.c (bytestream2_get_be32u(&s->g) == JP2_SIG_VALUE)) { s 2377 libavcodec/jpeg2000dec.c if (!jp2_find_codestream(s)) { s 2384 libavcodec/jpeg2000dec.c bytestream2_seek(&s->g, 0, SEEK_SET); s 2387 libavcodec/jpeg2000dec.c while (bytestream2_get_bytes_left(&s->g) >= 3 && bytestream2_peek_be16(&s->g) != JPEG2000_SOC) s 2388 libavcodec/jpeg2000dec.c bytestream2_skip(&s->g, 1); s 2390 libavcodec/jpeg2000dec.c if (bytestream2_get_be16u(&s->g) != JPEG2000_SOC) { s 2395 libavcodec/jpeg2000dec.c if (ret = jpeg2000_read_main_headers(s)) s 2404 libavcodec/jpeg2000dec.c if (ret = jpeg2000_read_bitstream_packets(s)) s 2407 libavcodec/jpeg2000dec.c avctx->execute2(avctx, jpeg2000_decode_tile, picture, NULL, s->numXtiles * s->numYtiles); s 2409 libavcodec/jpeg2000dec.c jpeg2000_dec_cleanup(s); s 2413 libavcodec/jpeg2000dec.c if (s->avctx->pix_fmt == AV_PIX_FMT_PAL8) s 2414 libavcodec/jpeg2000dec.c memcpy(picture->data[1], s->palette, 256 * sizeof(uint32_t)); s 2415 libavcodec/jpeg2000dec.c if (s->sar.num && s->sar.den) s 2416 libavcodec/jpeg2000dec.c avctx->sample_aspect_ratio = s->sar; s 2417 libavcodec/jpeg2000dec.c s->sar.num = s->sar.den = 0; s 2419 libavcodec/jpeg2000dec.c return bytestream2_tell(&s->g); s 2422 libavcodec/jpeg2000dec.c jpeg2000_dec_cleanup(s); s 97 libavcodec/jpeg2000dwt.c static void dwt_encode53(DWTContext *s, int *t) s 100 libavcodec/jpeg2000dwt.c w = s->linelen[s->ndeclevels-1][0]; s 101 libavcodec/jpeg2000dwt.c int *line = s->i_linebuf; s 104 libavcodec/jpeg2000dwt.c for (lev = s->ndeclevels-1; lev >= 0; lev--){ s 105 libavcodec/jpeg2000dwt.c int lh = s->linelen[lev][0], s 106 libavcodec/jpeg2000dwt.c lv = s->linelen[lev][1], s 107 libavcodec/jpeg2000dwt.c mh = s->mod[lev][0], s 108 libavcodec/jpeg2000dwt.c mv = s->mod[lev][1], s 172 libavcodec/jpeg2000dwt.c static void dwt_encode97_float(DWTContext *s, float *t) s 175 libavcodec/jpeg2000dwt.c w = s->linelen[s->ndeclevels-1][0]; s 176 libavcodec/jpeg2000dwt.c float *line = s->f_linebuf; s 179 libavcodec/jpeg2000dwt.c for (lev = s->ndeclevels-1; lev >= 0; lev--){ s 180 libavcodec/jpeg2000dwt.c int lh = s->linelen[lev][0], s 181 libavcodec/jpeg2000dwt.c lv = s->linelen[lev][1], s 182 libavcodec/jpeg2000dwt.c mh = s->mod[lev][0], s 183 libavcodec/jpeg2000dwt.c mv = s->mod[lev][1], s 248 libavcodec/jpeg2000dwt.c static void dwt_encode97_int(DWTContext *s, int *t) s 251 libavcodec/jpeg2000dwt.c int w = s->linelen[s->ndeclevels-1][0]; s 252 libavcodec/jpeg2000dwt.c int h = s->linelen[s->ndeclevels-1][1]; s 254 libavcodec/jpeg2000dwt.c int *line = s->i_linebuf; s 260 libavcodec/jpeg2000dwt.c for (lev = s->ndeclevels-1; lev >= 0; lev--){ s 261 libavcodec/jpeg2000dwt.c int lh = s->linelen[lev][0], s 262 libavcodec/jpeg2000dwt.c lv = s->linelen[lev][1], s 263 libavcodec/jpeg2000dwt.c mh = s->mod[lev][0], s 264 libavcodec/jpeg2000dwt.c mv = s->mod[lev][1], s 326 libavcodec/jpeg2000dwt.c static void dwt_decode53(DWTContext *s, int *t) s 329 libavcodec/jpeg2000dwt.c int w = s->linelen[s->ndeclevels - 1][0]; s 330 libavcodec/jpeg2000dwt.c int32_t *line = s->i_linebuf; s 333 libavcodec/jpeg2000dwt.c for (lev = 0; lev < s->ndeclevels; lev++) { s 334 libavcodec/jpeg2000dwt.c int lh = s->linelen[lev][0], s 335 libavcodec/jpeg2000dwt.c lv = s->linelen[lev][1], s 336 libavcodec/jpeg2000dwt.c mh = s->mod[lev][0], s 337 libavcodec/jpeg2000dwt.c mv = s->mod[lev][1], s 402 libavcodec/jpeg2000dwt.c static void dwt_decode97_float(DWTContext *s, float *t) s 405 libavcodec/jpeg2000dwt.c int w = s->linelen[s->ndeclevels - 1][0]; s 406 libavcodec/jpeg2000dwt.c float *line = s->f_linebuf; s 411 libavcodec/jpeg2000dwt.c for (lev = 0; lev < s->ndeclevels; lev++) { s 412 libavcodec/jpeg2000dwt.c int lh = s->linelen[lev][0], s 413 libavcodec/jpeg2000dwt.c lv = s->linelen[lev][1], s 414 libavcodec/jpeg2000dwt.c mh = s->mod[lev][0], s 415 libavcodec/jpeg2000dwt.c mv = s->mod[lev][1], s 479 libavcodec/jpeg2000dwt.c static void dwt_decode97_int(DWTContext *s, int32_t *t) s 482 libavcodec/jpeg2000dwt.c int w = s->linelen[s->ndeclevels - 1][0]; s 483 libavcodec/jpeg2000dwt.c int h = s->linelen[s->ndeclevels - 1][1]; s 485 libavcodec/jpeg2000dwt.c int32_t *line = s->i_linebuf; s 493 libavcodec/jpeg2000dwt.c for (lev = 0; lev < s->ndeclevels; lev++) { s 494 libavcodec/jpeg2000dwt.c int lh = s->linelen[lev][0], s 495 libavcodec/jpeg2000dwt.c lv = s->linelen[lev][1], s 496 libavcodec/jpeg2000dwt.c mh = s->mod[lev][0], s 497 libavcodec/jpeg2000dwt.c mv = s->mod[lev][1], s 537 libavcodec/jpeg2000dwt.c int ff_jpeg2000_dwt_init(DWTContext *s, int border[2][2], s 543 libavcodec/jpeg2000dwt.c s->ndeclevels = decomp_levels; s 544 libavcodec/jpeg2000dwt.c s->type = type; s 554 libavcodec/jpeg2000dwt.c s->linelen[lev][i] = b[i][1] - b[i][0]; s 555 libavcodec/jpeg2000dwt.c s->mod[lev][i] = b[i][0] & 1; s 561 libavcodec/jpeg2000dwt.c s->f_linebuf = av_malloc_array((maxlen + 12), sizeof(*s->f_linebuf)); s 562 libavcodec/jpeg2000dwt.c if (!s->f_linebuf) s 566 libavcodec/jpeg2000dwt.c s->i_linebuf = av_malloc_array((maxlen + 12), sizeof(*s->i_linebuf)); s 567 libavcodec/jpeg2000dwt.c if (!s->i_linebuf) s 571 libavcodec/jpeg2000dwt.c s->i_linebuf = av_malloc_array((maxlen + 6), sizeof(*s->i_linebuf)); s 572 libavcodec/jpeg2000dwt.c if (!s->i_linebuf) s 581 libavcodec/jpeg2000dwt.c int ff_dwt_encode(DWTContext *s, void *t) s 583 libavcodec/jpeg2000dwt.c if (s->ndeclevels == 0) s 586 libavcodec/jpeg2000dwt.c switch(s->type){ s 588 libavcodec/jpeg2000dwt.c dwt_encode97_float(s, t); break; s 590 libavcodec/jpeg2000dwt.c dwt_encode97_int(s, t); break; s 592 libavcodec/jpeg2000dwt.c dwt_encode53(s, t); break; s 599 libavcodec/jpeg2000dwt.c int ff_dwt_decode(DWTContext *s, void *t) s 601 libavcodec/jpeg2000dwt.c if (s->ndeclevels == 0) s 604 libavcodec/jpeg2000dwt.c switch (s->type) { s 606 libavcodec/jpeg2000dwt.c dwt_decode97_float(s, t); s 609 libavcodec/jpeg2000dwt.c dwt_decode97_int(s, t); s 612 libavcodec/jpeg2000dwt.c dwt_decode53(s, t); s 620 libavcodec/jpeg2000dwt.c void ff_dwt_destroy(DWTContext *s) s 622 libavcodec/jpeg2000dwt.c av_freep(&s->f_linebuf); s 623 libavcodec/jpeg2000dwt.c av_freep(&s->i_linebuf); s 60 libavcodec/jpeg2000dwt.h int ff_jpeg2000_dwt_init(DWTContext *s, int border[2][2], s 63 libavcodec/jpeg2000dwt.h int ff_dwt_encode(DWTContext *s, void *t); s 64 libavcodec/jpeg2000dwt.h int ff_dwt_decode(DWTContext *s, void *t); s 66 libavcodec/jpeg2000dwt.h void ff_dwt_destroy(DWTContext *s); s 62 libavcodec/jpegls.c void ff_jpegls_reset_coding_parameters(JLSState *s, int reset_all) s 69 libavcodec/jpegls.c if (s->maxval == 0 || reset_all) s 70 libavcodec/jpegls.c s->maxval = (1 << s->bpp) - 1; s 72 libavcodec/jpegls.c if (s->maxval >= 128) { s 73 libavcodec/jpegls.c factor = FFMIN(s->maxval, 4095) + 128 >> 8; s 75 libavcodec/jpegls.c if (s->T1 == 0 || reset_all) s 76 libavcodec/jpegls.c s->T1 = iso_clip(factor * (basic_t1 - 2) + 2 + 3 * s->near, s 77 libavcodec/jpegls.c s->near + 1, s->maxval); s 78 libavcodec/jpegls.c if (s->T2 == 0 || reset_all) s 79 libavcodec/jpegls.c s->T2 = iso_clip(factor * (basic_t2 - 3) + 3 + 5 * s->near, s 80 libavcodec/jpegls.c s->T1, s->maxval); s 81 libavcodec/jpegls.c if (s->T3 == 0 || reset_all) s 82 libavcodec/jpegls.c s->T3 = iso_clip(factor * (basic_t3 - 4) + 4 + 7 * s->near, s 83 libavcodec/jpegls.c s->T2, s->maxval); s 85 libavcodec/jpegls.c factor = 256 / (s->maxval + 1); s 87 libavcodec/jpegls.c if (s->T1 == 0 || reset_all) s 88 libavcodec/jpegls.c s->T1 = iso_clip(FFMAX(2, basic_t1 / factor + 3 * s->near), s 89 libavcodec/jpegls.c s->near + 1, s->maxval); s 90 libavcodec/jpegls.c if (s->T2 == 0 || reset_all) s 91 libavcodec/jpegls.c s->T2 = iso_clip(FFMAX(3, basic_t2 / factor + 5 * s->near), s 92 libavcodec/jpegls.c s->T1, s->maxval); s 93 libavcodec/jpegls.c if (s->T3 == 0 || reset_all) s 94 libavcodec/jpegls.c s->T3 = iso_clip(FFMAX(4, basic_t3 / factor + 7 * s->near), s 95 libavcodec/jpegls.c s->T2, s->maxval); s 98 libavcodec/jpegls.c if (s->reset == 0 || reset_all) s 99 libavcodec/jpegls.c s->reset = 64; s 100 libavcodec/jpegls.c ff_dlog(NULL, "[JPEG-LS RESET] T=%i,%i,%i\n", s->T1, s->T2, s->T3); s 57 libavcodec/jpegls.h static inline int ff_jpegls_quantize(JLSState *s, int v) s 62 libavcodec/jpegls.h if (v <= -s->T3) s 64 libavcodec/jpegls.h if (v <= -s->T2) s 66 libavcodec/jpegls.h if (v <= -s->T1) s 68 libavcodec/jpegls.h if (v < -s->near) s 72 libavcodec/jpegls.h if (v <= s->near) s 74 libavcodec/jpegls.h if (v < s->T1) s 76 libavcodec/jpegls.h if (v < s->T2) s 78 libavcodec/jpegls.h if (v < s->T3) s 87 libavcodec/jpegls.h void ff_jpegls_reset_coding_parameters(JLSState *s, int reset_all); s 51 libavcodec/jpeglsdec.c int ff_jpegls_decode_lse(MJpegDecodeContext *s) s 56 libavcodec/jpeglsdec.c int len = get_bits(&s->gb, 16); s 57 libavcodec/jpeglsdec.c id = get_bits(&s->gb, 8); s 64 libavcodec/jpeglsdec.c s->maxval = get_bits(&s->gb, 16); s 65 libavcodec/jpeglsdec.c s->t1 = get_bits(&s->gb, 16); s 66 libavcodec/jpeglsdec.c s->t2 = get_bits(&s->gb, 16); s 67 libavcodec/jpeglsdec.c s->t3 = get_bits(&s->gb, 16); s 68 libavcodec/jpeglsdec.c s->reset = get_bits(&s->gb, 16); s 70 libavcodec/jpeglsdec.c if(s->avctx->debug & FF_DEBUG_PICT_INFO) { s 71 libavcodec/jpeglsdec.c av_log(s->avctx, AV_LOG_DEBUG, "Coding parameters maxval:%d T1:%d T2:%d T3:%d reset:%d\n", s 72 libavcodec/jpeglsdec.c s->maxval, s->t1, s->t2, s->t3, s->reset); s 79 libavcodec/jpeglsdec.c s->palette_index = 0; s 81 libavcodec/jpeglsdec.c tid= get_bits(&s->gb, 8); s 82 libavcodec/jpeglsdec.c wt = get_bits(&s->gb, 8); s 88 libavcodec/jpeglsdec.c avpriv_request_sample(s->avctx, "wt %d", wt); s 92 libavcodec/jpeglsdec.c if (!s->maxval) s 94 libavcodec/jpeglsdec.c else if ((5 + wt*(s->maxval+1)) < 65535) s 95 libavcodec/jpeglsdec.c maxtab = s->maxval; s 99 libavcodec/jpeglsdec.c if(s->avctx->debug & FF_DEBUG_PICT_INFO) { s 100 libavcodec/jpeglsdec.c av_log(s->avctx, AV_LOG_DEBUG, "LSE palette %d tid:%d wt:%d maxtab:%d\n", id, tid, wt, maxtab); s 103 libavcodec/jpeglsdec.c avpriv_request_sample(s->avctx, ">8bit palette"); s 106 libavcodec/jpeglsdec.c maxtab = FFMIN(maxtab, (len - 5) / wt + s->palette_index); s 108 libavcodec/jpeglsdec.c if (s->palette_index > maxtab) s 111 libavcodec/jpeglsdec.c if ((s->avctx->pix_fmt == AV_PIX_FMT_GRAY8 || s->avctx->pix_fmt == AV_PIX_FMT_PAL8) && s 112 libavcodec/jpeglsdec.c (s->picture_ptr->format == AV_PIX_FMT_GRAY8 || s->picture_ptr->format == AV_PIX_FMT_PAL8)) { s 113 libavcodec/jpeglsdec.c uint32_t *pal = (uint32_t *)s->picture_ptr->data[1]; s 116 libavcodec/jpeglsdec.c if (s->avctx->bits_per_raw_sample > 0 && s->avctx->bits_per_raw_sample < 8) { s 117 libavcodec/jpeglsdec.c maxtab = FFMIN(maxtab, (1<<s->avctx->bits_per_raw_sample)-1); s 118 libavcodec/jpeglsdec.c shift = 8 - s->avctx->bits_per_raw_sample; s 121 libavcodec/jpeglsdec.c s->picture_ptr->format = s 122 libavcodec/jpeglsdec.c s->avctx->pix_fmt = AV_PIX_FMT_PAL8; s 123 libavcodec/jpeglsdec.c for (i=s->palette_index; i<=maxtab; i++) { s 127 libavcodec/jpeglsdec.c pal[k] |= get_bits(&s->gb, 8) << (8*(wt-j-1)); s 130 libavcodec/jpeglsdec.c s->palette_index = i; s 134 libavcodec/jpeglsdec.c avpriv_request_sample(s->avctx, "oversize image"); s 137 libavcodec/jpeglsdec.c av_log(s->avctx, AV_LOG_ERROR, "invalid id %d\n", id); s 140 libavcodec/jpeglsdec.c ff_dlog(s->avctx, "ID=%i, T=%i,%i,%i\n", id, s->t1, s->t2, s->t3); s 225 libavcodec/jpeglsdec.c static inline int ls_decode_line(JLSState *state, MJpegDecodeContext *s, s 236 libavcodec/jpeglsdec.c if (get_bits_left(&s->gb) <= 0) s 255 libavcodec/jpeglsdec.c while (get_bits1(&s->gb)) { s 275 libavcodec/jpeglsdec.c r = get_bits_long(&s->gb, r); s 293 libavcodec/jpeglsdec.c err = ls_get_code_runterm(&s->gb, state, RItype, s 323 libavcodec/jpeglsdec.c err = -ls_get_code_regular(&s->gb, state, context); s 326 libavcodec/jpeglsdec.c err = ls_get_code_regular(&s->gb, state, context); s 348 libavcodec/jpeglsdec.c int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, s 357 libavcodec/jpeglsdec.c zero = av_mallocz(s->picture_ptr->linesize[0]); s 361 libavcodec/jpeglsdec.c cur = s->picture_ptr->data[0]; s 370 libavcodec/jpeglsdec.c state->bpp = (s->bits < 2) ? 2 : s->bits; s 371 libavcodec/jpeglsdec.c state->maxval = s->maxval; s 372 libavcodec/jpeglsdec.c state->T1 = s->t1; s 373 libavcodec/jpeglsdec.c state->T2 = s->t2; s 374 libavcodec/jpeglsdec.c state->T3 = s->t3; s 375 libavcodec/jpeglsdec.c state->reset = s->reset; s 379 libavcodec/jpeglsdec.c if (s->bits <= 8) s 380 libavcodec/jpeglsdec.c shift = point_transform + (8 - s->bits); s 382 libavcodec/jpeglsdec.c shift = point_transform + (16 - s->bits); s 389 libavcodec/jpeglsdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) { s 390 libavcodec/jpeglsdec.c av_log(s->avctx, AV_LOG_DEBUG, s 393 libavcodec/jpeglsdec.c s->width, s->height, state->near, state->maxval, s 396 libavcodec/jpeglsdec.c av_log(s->avctx, AV_LOG_DEBUG, "JPEG params: ILV=%i Pt=%i BPP=%i, scan = %i\n", s 397 libavcodec/jpeglsdec.c ilv, point_transform, s->bits, s->cur_scan); s 399 libavcodec/jpeglsdec.c if (get_bits_left(&s->gb) < s->height) { s 404 libavcodec/jpeglsdec.c if (s->cur_scan > s->nb_components) { s 408 libavcodec/jpeglsdec.c stride = (s->nb_components > 1) ? 3 : 1; s 409 libavcodec/jpeglsdec.c off = av_clip(s->cur_scan - 1, 0, stride - 1); s 410 libavcodec/jpeglsdec.c width = s->width * stride; s 412 libavcodec/jpeglsdec.c for (i = 0; i < s->height; i++) { s 414 libavcodec/jpeglsdec.c if (s->bits <= 8) { s 415 libavcodec/jpeglsdec.c ret = ls_decode_line(state, s, last, cur, t, width, stride, off, 8); s 418 libavcodec/jpeglsdec.c ret = ls_decode_line(state, s, last, cur, t, width, stride, off, 16); s 424 libavcodec/jpeglsdec.c cur += s->picture_ptr->linesize[0]; s 426 libavcodec/jpeglsdec.c if (s->restart_interval && !--s->restart_count) { s 427 libavcodec/jpeglsdec.c align_get_bits(&s->gb); s 428 libavcodec/jpeglsdec.c skip_bits(&s->gb, 16); /* skip RSTn */ s 435 libavcodec/jpeglsdec.c stride = (s->nb_components > 1) ? 3 : 1; s 436 libavcodec/jpeglsdec.c memset(cur, 0, s->picture_ptr->linesize[0]); s 437 libavcodec/jpeglsdec.c width = s->width * stride; s 438 libavcodec/jpeglsdec.c for (i = 0; i < s->height; i++) { s 441 libavcodec/jpeglsdec.c ret = ls_decode_line(state, s, last + j, cur + j, s 447 libavcodec/jpeglsdec.c if (s->restart_interval && !--s->restart_count) { s 448 libavcodec/jpeglsdec.c align_get_bits(&s->gb); s 449 libavcodec/jpeglsdec.c skip_bits(&s->gb, 16); /* skip RSTn */ s 455 libavcodec/jpeglsdec.c cur += s->picture_ptr->linesize[0]; s 459 libavcodec/jpeglsdec.c avpriv_report_missing_feature(s->avctx, "Sample interleaved images"); s 463 libavcodec/jpeglsdec.c avpriv_report_missing_feature(s->avctx, "Unknown interleaved images"); s 468 libavcodec/jpeglsdec.c if (s->xfrm && s->nb_components == 3) { s 471 libavcodec/jpeglsdec.c w = s->width * s->nb_components; s 473 libavcodec/jpeglsdec.c if (s->bits <= 8) { s 474 libavcodec/jpeglsdec.c uint8_t *src = s->picture_ptr->data[0]; s 476 libavcodec/jpeglsdec.c for (i = 0; i < s->height; i++) { s 477 libavcodec/jpeglsdec.c switch(s->xfrm) { s 509 libavcodec/jpeglsdec.c src += s->picture_ptr->linesize[0]; s 512 libavcodec/jpeglsdec.c avpriv_report_missing_feature(s->avctx, "16bit xfrm"); s 518 libavcodec/jpeglsdec.c w = s->width * s->nb_components; s 520 libavcodec/jpeglsdec.c if (s->bits <= 8) { s 521 libavcodec/jpeglsdec.c uint8_t *src = s->picture_ptr->data[0]; s 526 libavcodec/jpeglsdec.c src += s->picture_ptr->linesize[0]; s 529 libavcodec/jpeglsdec.c uint16_t *src = (uint16_t *)s->picture_ptr->data[0]; s 534 libavcodec/jpeglsdec.c src += s->picture_ptr->linesize[0] / 2; s 37 libavcodec/jpeglsdec.h int ff_jpegls_decode_lse(MJpegDecodeContext *s); s 39 libavcodec/jpeglsdec.h int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, s 44 libavcodec/jvdec.c JvContext *s = avctx->priv_data; s 53 libavcodec/jvdec.c s->frame = av_frame_alloc(); s 54 libavcodec/jvdec.c if (!s->frame) s 58 libavcodec/jvdec.c ff_blockdsp_init(&s->bdsp, avctx); s 149 libavcodec/jvdec.c JvContext *s = avctx->priv_data; s 171 libavcodec/jvdec.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 182 libavcodec/jvdec.c s->frame->data[0] + j * s->frame->linesize[0] + i, s 183 libavcodec/jvdec.c s->frame->linesize[0], &s->bdsp); s 189 libavcodec/jvdec.c av_frame_unref(s->frame); s 190 libavcodec/jvdec.c if ((ret = ff_get_buffer(avctx, s->frame, AV_GET_BUFFER_FLAG_REF)) < 0) s 194 libavcodec/jvdec.c memset(s->frame->data[0] + j * s->frame->linesize[0], s 206 libavcodec/jvdec.c s->palette[i] = 0xFFU << 24 | pal << 2 | ((pal >> 4) & 0x30303); s 209 libavcodec/jvdec.c s->palette_has_changed = 1; s 213 libavcodec/jvdec.c s->frame->key_frame = 1; s 214 libavcodec/jvdec.c s->frame->pict_type = AV_PICTURE_TYPE_I; s 215 libavcodec/jvdec.c s->frame->palette_has_changed = s->palette_has_changed; s 216 libavcodec/jvdec.c s->palette_has_changed = 0; s 217 libavcodec/jvdec.c memcpy(s->frame->data[1], s->palette, AVPALETTE_SIZE); s 219 libavcodec/jvdec.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 229 libavcodec/jvdec.c JvContext *s = avctx->priv_data; s 231 libavcodec/jvdec.c av_frame_free(&s->frame); s 45 libavcodec/latm_parser.c LATMParseContext *s = s1->priv_data; s 46 libavcodec/latm_parser.c ParseContext *pc = &s->pc; s 58 libavcodec/latm_parser.c s->count = -i; s 69 libavcodec/latm_parser.c if ((state & LATM_SIZE_MASK) - s->count <= buf_size) { s 72 libavcodec/latm_parser.c return (state & LATM_SIZE_MASK) - s->count; s 76 libavcodec/latm_parser.c s->count += buf_size; s 87 libavcodec/latm_parser.c LATMParseContext *s = s1->priv_data; s 88 libavcodec/latm_parser.c ParseContext *pc = &s->pc; s 123 libavcodec/libdav1d.c Dav1dSettings s; s 129 libavcodec/libdav1d.c dav1d_default_settings(&s); s 130 libavcodec/libdav1d.c s.logger.cookie = c; s 131 libavcodec/libdav1d.c s.logger.callback = libdav1d_log_callback; s 132 libavcodec/libdav1d.c s.allocator.cookie = dav1d; s 133 libavcodec/libdav1d.c s.allocator.alloc_picture_callback = libdav1d_picture_allocator; s 134 libavcodec/libdav1d.c s.allocator.release_picture_callback = libdav1d_picture_release; s 135 libavcodec/libdav1d.c s.frame_size_limit = c->max_pixels; s 137 libavcodec/libdav1d.c s.apply_grain = dav1d->apply_grain; s 139 libavcodec/libdav1d.c s.all_layers = dav1d->all_layers; s 141 libavcodec/libdav1d.c s.operating_point = dav1d->operating_point; s 143 libavcodec/libdav1d.c s.n_tile_threads = dav1d->tile_threads s 146 libavcodec/libdav1d.c s.n_frame_threads = dav1d->frame_threads s 148 libavcodec/libdav1d.c : FFMIN(ceil(threads / s.n_tile_threads), DAV1D_MAX_FRAME_THREADS); s 150 libavcodec/libdav1d.c s.n_frame_threads, s.n_tile_threads); s 152 libavcodec/libdav1d.c res = dav1d_open(&dav1d->c, &s); s 103 libavcodec/libfdk-aacdec.c FDKAACDecContext *s = avctx->priv_data; s 104 libavcodec/libfdk-aacdec.c CStreamInfo *info = aacDecoder_GetStreamInfo(s->handle); s 121 libavcodec/libfdk-aacdec.c s->output_delay = info->outputDelay; s 217 libavcodec/libfdk-aacdec.c FDKAACDecContext *s = avctx->priv_data; s 219 libavcodec/libfdk-aacdec.c if (s->handle) s 220 libavcodec/libfdk-aacdec.c aacDecoder_Close(s->handle); s 221 libavcodec/libfdk-aacdec.c av_freep(&s->decoder_buffer); s 222 libavcodec/libfdk-aacdec.c av_freep(&s->anc_buffer); s 229 libavcodec/libfdk-aacdec.c FDKAACDecContext *s = avctx->priv_data; s 232 libavcodec/libfdk-aacdec.c s->handle = aacDecoder_Open(avctx->extradata_size ? TT_MP4_RAW : TT_MP4_ADTS, 1); s 233 libavcodec/libfdk-aacdec.c if (!s->handle) { s 239 libavcodec/libfdk-aacdec.c if ((err = aacDecoder_ConfigRaw(s->handle, &avctx->extradata, s 246 libavcodec/libfdk-aacdec.c if ((err = aacDecoder_SetParam(s->handle, AAC_CONCEAL_METHOD, s 247 libavcodec/libfdk-aacdec.c s->conceal_method)) != AAC_DEC_OK) { s 270 libavcodec/libfdk-aacdec.c if (aacDecoder_SetParam(s->handle, AAC_PCM_MAX_OUTPUT_CHANNELS, s 274 libavcodec/libfdk-aacdec.c s->anc_buffer = av_malloc(DMX_ANC_BUFFSIZE); s 275 libavcodec/libfdk-aacdec.c if (!s->anc_buffer) { s 279 libavcodec/libfdk-aacdec.c if (aacDecoder_AncDataInit(s->handle, s->anc_buffer, DMX_ANC_BUFFSIZE)) { s 287 libavcodec/libfdk-aacdec.c if (s->drc_boost != -1) { s 288 libavcodec/libfdk-aacdec.c if (aacDecoder_SetParam(s->handle, AAC_DRC_BOOST_FACTOR, s->drc_boost) != AAC_DEC_OK) { s 294 libavcodec/libfdk-aacdec.c if (s->drc_cut != -1) { s 295 libavcodec/libfdk-aacdec.c if (aacDecoder_SetParam(s->handle, AAC_DRC_ATTENUATION_FACTOR, s->drc_cut) != AAC_DEC_OK) { s 301 libavcodec/libfdk-aacdec.c if (s->drc_level != -1) { s 308 libavcodec/libfdk-aacdec.c if (aacDecoder_SetParam(s->handle, AAC_DRC_REFERENCE_LEVEL, s->drc_level) != AAC_DEC_OK) { s 314 libavcodec/libfdk-aacdec.c if (s->drc_heavy != -1) { s 315 libavcodec/libfdk-aacdec.c if (aacDecoder_SetParam(s->handle, AAC_DRC_HEAVY_COMPRESSION, s->drc_heavy) != AAC_DEC_OK) { s 323 libavcodec/libfdk-aacdec.c if (aacDecoder_SetParam(s->handle, AAC_PCM_LIMITER_ENABLE, s->level_limit) != AAC_DEC_OK) { s 330 libavcodec/libfdk-aacdec.c if (s->drc_effect != -1) { s 331 libavcodec/libfdk-aacdec.c if (aacDecoder_SetParam(s->handle, AAC_UNIDRC_SET_EFFECT, s->drc_effect) != AAC_DEC_OK) { s 340 libavcodec/libfdk-aacdec.c s->decoder_buffer_size = DECODER_BUFFSIZE * DECODER_MAX_CHANNELS; s 341 libavcodec/libfdk-aacdec.c s->decoder_buffer = av_malloc(s->decoder_buffer_size); s 342 libavcodec/libfdk-aacdec.c if (!s->decoder_buffer) s 351 libavcodec/libfdk-aacdec.c FDKAACDecContext *s = avctx->priv_data; s 357 libavcodec/libfdk-aacdec.c err = aacDecoder_Fill(s->handle, &avpkt->data, &avpkt->size, &valid); s 363 libavcodec/libfdk-aacdec.c err = aacDecoder_DecodeFrame(s->handle, (INT_PCM *) s->decoder_buffer, s->decoder_buffer_size / sizeof(INT_PCM), 0); s 383 libavcodec/libfdk-aacdec.c frame->pts -= av_rescale_q(s->output_delay, s 387 libavcodec/libfdk-aacdec.c memcpy(frame->extended_data[0], s->decoder_buffer, s 400 libavcodec/libfdk-aacdec.c FDKAACDecContext *s = avctx->priv_data; s 403 libavcodec/libfdk-aacdec.c if (!s->handle) s 406 libavcodec/libfdk-aacdec.c if ((err = aacDecoder_SetParam(s->handle, s 111 libavcodec/libfdk-aacenc.c AACContext *s = avctx->priv_data; s 113 libavcodec/libfdk-aacenc.c if (s->handle) s 114 libavcodec/libfdk-aacenc.c aacEncClose(&s->handle); s 116 libavcodec/libfdk-aacenc.c ff_af_queue_close(&s->afq); s 123 libavcodec/libfdk-aacenc.c AACContext *s = avctx->priv_data; s 131 libavcodec/libfdk-aacenc.c if ((err = aacEncOpen(&s->handle, 0, avctx->channels)) != AACENC_OK) { s 140 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_AOT, aot)) != AACENC_OK) { s 146 libavcodec/libfdk-aacenc.c if (aot == FF_PROFILE_AAC_ELD + 1 && s->eld_sbr) { s 147 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_SBR_MODE, s 155 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_SAMPLERATE, s 167 libavcodec/libfdk-aacenc.c if (aot == FF_PROFILE_AAC_ELD + 1 && s->eld_v2) { s 168 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_CHANNELMODE, s 210 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_CHANNELMODE, s 217 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_CHANNELORDER, s 225 libavcodec/libfdk-aacenc.c if (avctx->flags & AV_CODEC_FLAG_QSCALE || s->vbr) { s 226 libavcodec/libfdk-aacenc.c int mode = s->vbr ? s->vbr : avctx->global_quality; s 235 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_BITRATEMODE, s 251 libavcodec/libfdk-aacenc.c s->eld_sbr) s 254 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_BITRATE, s 264 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_TRANSMUX, s 266 libavcodec/libfdk-aacenc.c s->latm ? TT_MP4_LOAS : TT_MP4_ADTS)) != AACENC_OK) { s 272 libavcodec/libfdk-aacenc.c if (s->latm && s->header_period) { s 273 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_HEADER_PERIOD, s 274 libavcodec/libfdk-aacenc.c s->header_period)) != AACENC_OK) { s 284 libavcodec/libfdk-aacenc.c if (s->signaling < 0) s 285 libavcodec/libfdk-aacenc.c s->signaling = avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER ? 2 : 0; s 287 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_SIGNALING_MODE, s 288 libavcodec/libfdk-aacenc.c s->signaling)) != AACENC_OK) { s 290 libavcodec/libfdk-aacenc.c s->signaling, aac_get_error(err)); s 294 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_AFTERBURNER, s 295 libavcodec/libfdk-aacenc.c s->afterburner)) != AACENC_OK) { s 297 libavcodec/libfdk-aacenc.c s->afterburner, aac_get_error(err)); s 307 libavcodec/libfdk-aacenc.c if ((err = aacEncoder_SetParam(s->handle, AACENC_BANDWIDTH, s 315 libavcodec/libfdk-aacenc.c if ((err = aacEncEncode(s->handle, NULL, NULL, NULL, NULL)) != AACENC_OK) { s 321 libavcodec/libfdk-aacenc.c if ((err = aacEncInfo(s->handle, &info)) != AACENC_OK) { s 333 libavcodec/libfdk-aacenc.c ff_af_queue_init(avctx, &s->afq); s 355 libavcodec/libfdk-aacenc.c AACContext *s = avctx->priv_data; s 383 libavcodec/libfdk-aacenc.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) s 407 libavcodec/libfdk-aacenc.c if ((err = aacEncEncode(s->handle, &in_buf, &out_buf, &in_args, s 420 libavcodec/libfdk-aacenc.c ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts, s 49 libavcodec/libgsmdec.c LibGSMDecodeContext *s = avctx->priv_data; s 57 libavcodec/libgsmdec.c s->state = gsm_create(); s 66 libavcodec/libgsmdec.c gsm_option(s->state, GSM_OPT_WAV49, &one); s 76 libavcodec/libgsmdec.c LibGSMDecodeContext *s = avctx->priv_data; s 78 libavcodec/libgsmdec.c gsm_destroy(s->state); s 79 libavcodec/libgsmdec.c s->state = NULL; s 87 libavcodec/libgsmdec.c LibGSMDecodeContext *s = avctx->priv_data; s 105 libavcodec/libgsmdec.c if ((ret = gsm_decode(s->state, buf, samples)) < 0) s 117 libavcodec/libgsmdec.c LibGSMDecodeContext *s = avctx->priv_data; s 120 libavcodec/libgsmdec.c gsm_destroy(s->state); s 121 libavcodec/libgsmdec.c s->state = gsm_create(); s 123 libavcodec/libgsmdec.c gsm_option(s->state, GSM_OPT_WAV49, &one); s 62 libavcodec/libilbc.c ILBCDecContext *s = avctx->priv_data; s 70 libavcodec/libilbc.c WebRtcIlbcfix_InitDecode(&s->decoder, mode, s->enhance); s 85 libavcodec/libilbc.c ILBCDecContext *s = avctx->priv_data; s 89 libavcodec/libilbc.c if (s->decoder.no_of_bytes > buf_size) { s 91 libavcodec/libilbc.c buf_size, s->decoder.no_of_bytes); s 95 libavcodec/libilbc.c frame->nb_samples = s->decoder.blockl; s 99 libavcodec/libilbc.c WebRtcIlbcfix_DecodeImpl((int16_t *) frame->data[0], (const uint16_t *) buf, &s->decoder, 1); s 103 libavcodec/libilbc.c return s->decoder.no_of_bytes; s 138 libavcodec/libilbc.c ILBCEncContext *s = avctx->priv_data; s 152 libavcodec/libilbc.c s->mode = mode; s 154 libavcodec/libilbc.c s->mode = s->mode != 30 ? 20 : 30; s 155 libavcodec/libilbc.c WebRtcIlbcfix_InitEncode(&s->encoder, s->mode); s 157 libavcodec/libilbc.c avctx->block_align = s->encoder.no_of_bytes; s 158 libavcodec/libilbc.c avctx->frame_size = s->encoder.blockl; s 166 libavcodec/libilbc.c ILBCEncContext *s = avctx->priv_data; s 172 libavcodec/libilbc.c WebRtcIlbcfix_EncodeImpl((uint16_t *) avpkt->data, (const int16_t *) frame->data[0], &s->encoder); s 174 libavcodec/libilbc.c avpkt->size = s->encoder.no_of_bytes; s 60 libavcodec/libmp3lame.c static int realloc_buffer(LAMEContext *s) s 62 libavcodec/libmp3lame.c if (!s->buffer || s->buffer_size - s->buffer_index < BUFFER_SIZE) { s 63 libavcodec/libmp3lame.c int new_size = s->buffer_index + 2 * BUFFER_SIZE, err; s 65 libavcodec/libmp3lame.c ff_dlog(s->avctx, "resizing output buffer: %d -> %d\n", s->buffer_size, s 67 libavcodec/libmp3lame.c if ((err = av_reallocp(&s->buffer, new_size)) < 0) { s 68 libavcodec/libmp3lame.c s->buffer_size = s->buffer_index = 0; s 71 libavcodec/libmp3lame.c s->buffer_size = new_size; s 78 libavcodec/libmp3lame.c LAMEContext *s = avctx->priv_data; s 80 libavcodec/libmp3lame.c av_freep(&s->samples_flt[0]); s 81 libavcodec/libmp3lame.c av_freep(&s->samples_flt[1]); s 82 libavcodec/libmp3lame.c av_freep(&s->buffer); s 83 libavcodec/libmp3lame.c av_freep(&s->fdsp); s 85 libavcodec/libmp3lame.c ff_af_queue_close(&s->afq); s 87 libavcodec/libmp3lame.c lame_close(s->gfp); s 93 libavcodec/libmp3lame.c LAMEContext *s = avctx->priv_data; s 96 libavcodec/libmp3lame.c s->avctx = avctx; s 99 libavcodec/libmp3lame.c if (!(s->gfp = lame_init())) s 103 libavcodec/libmp3lame.c lame_set_num_channels(s->gfp, avctx->channels); s 104 libavcodec/libmp3lame.c lame_set_mode(s->gfp, avctx->channels > 1 ? s->joint_stereo ? JOINT_STEREO : STEREO : MONO); s 107 libavcodec/libmp3lame.c lame_set_in_samplerate (s->gfp, avctx->sample_rate); s 108 libavcodec/libmp3lame.c lame_set_out_samplerate(s->gfp, avctx->sample_rate); s 112 libavcodec/libmp3lame.c lame_set_quality(s->gfp, avctx->compression_level); s 116 libavcodec/libmp3lame.c lame_set_VBR(s->gfp, vbr_default); s 117 libavcodec/libmp3lame.c lame_set_VBR_quality(s->gfp, avctx->global_quality / (float)FF_QP2LAMBDA); s 120 libavcodec/libmp3lame.c if (s->abr) { // ABR s 121 libavcodec/libmp3lame.c lame_set_VBR(s->gfp, vbr_abr); s 122 libavcodec/libmp3lame.c lame_set_VBR_mean_bitrate_kbps(s->gfp, avctx->bit_rate / 1000); s 124 libavcodec/libmp3lame.c lame_set_brate(s->gfp, avctx->bit_rate / 1000); s 130 libavcodec/libmp3lame.c lame_set_lowpassfreq(s->gfp, avctx->cutoff); s 133 libavcodec/libmp3lame.c lame_set_bWriteVbrTag(s->gfp,0); s 136 libavcodec/libmp3lame.c lame_set_disable_reservoir(s->gfp, !s->reservoir); s 139 libavcodec/libmp3lame.c if (lame_init_params(s->gfp) < 0) { s 145 libavcodec/libmp3lame.c avctx->initial_padding = lame_get_encoder_delay(s->gfp) + 528 + 1; s 146 libavcodec/libmp3lame.c ff_af_queue_init(avctx, &s->afq); s 148 libavcodec/libmp3lame.c avctx->frame_size = lame_get_framesize(s->gfp); s 154 libavcodec/libmp3lame.c s->samples_flt[ch] = av_malloc_array(avctx->frame_size, s 155 libavcodec/libmp3lame.c sizeof(*s->samples_flt[ch])); s 156 libavcodec/libmp3lame.c if (!s->samples_flt[ch]) { s 163 libavcodec/libmp3lame.c ret = realloc_buffer(s); s 167 libavcodec/libmp3lame.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 168 libavcodec/libmp3lame.c if (!s->fdsp) { s 181 libavcodec/libmp3lame.c lame_result = func(s->gfp, \ s 184 libavcodec/libmp3lame.c s->buffer + s->buffer_index, \ s 185 libavcodec/libmp3lame.c s->buffer_size - s->buffer_index); \ s 191 libavcodec/libmp3lame.c LAMEContext *s = avctx->priv_data; s 211 libavcodec/libmp3lame.c s->fdsp->vector_fmul_scalar(s->samples_flt[ch], s 216 libavcodec/libmp3lame.c ENCODE_BUFFER(lame_encode_buffer_float, float, s->samples_flt); s 221 libavcodec/libmp3lame.c } else if (!s->afq.frame_alloc) { s 224 libavcodec/libmp3lame.c lame_result = lame_encode_flush(s->gfp, s->buffer + s->buffer_index, s 225 libavcodec/libmp3lame.c s->buffer_size - s->buffer_index); s 231 libavcodec/libmp3lame.c s->buffer_index, s->buffer_size - s->buffer_index); s 235 libavcodec/libmp3lame.c s->buffer_index += lame_result; s 236 libavcodec/libmp3lame.c ret = realloc_buffer(s); s 244 libavcodec/libmp3lame.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) s 251 libavcodec/libmp3lame.c if (s->buffer_index < 4) s 253 libavcodec/libmp3lame.c h = AV_RB32(s->buffer); s 265 libavcodec/libmp3lame.c s->buffer_index); s 266 libavcodec/libmp3lame.c if (len <= s->buffer_index) { s 269 libavcodec/libmp3lame.c memcpy(avpkt->data, s->buffer, len); s 270 libavcodec/libmp3lame.c s->buffer_index -= len; s 271 libavcodec/libmp3lame.c memmove(s->buffer, s->buffer + len, s->buffer_index); s 274 libavcodec/libmp3lame.c ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts, s 284 libavcodec/libmp3lame.c if ((!s->delay_sent && avctx->initial_padding > 0) || discard_padding > 0) { s 292 libavcodec/libmp3lame.c if (!s->delay_sent) { s 294 libavcodec/libmp3lame.c s->delay_sent = 1; s 71 libavcodec/libopencore-amr.c AMRContext *s = avctx->priv_data; s 77 libavcodec/libopencore-amr.c s->dec_state = Decoder_Interface_init(); s 78 libavcodec/libopencore-amr.c if (!s->dec_state) { s 88 libavcodec/libopencore-amr.c AMRContext *s = avctx->priv_data; s 90 libavcodec/libopencore-amr.c Decoder_Interface_exit(s->dec_state); s 101 libavcodec/libopencore-amr.c AMRContext *s = avctx->priv_data; s 126 libavcodec/libopencore-amr.c Decoder_Interface_Decode(s->dec_state, buf, (short *)frame->data[0], 0); s 196 libavcodec/libopencore-amr.c AMRContext *s = avctx->priv_data; s 210 libavcodec/libopencore-amr.c ff_af_queue_init(avctx, &s->afq); s 212 libavcodec/libopencore-amr.c s->enc_state = Encoder_Interface_init(s->enc_dtx); s 213 libavcodec/libopencore-amr.c if (!s->enc_state) { s 218 libavcodec/libopencore-amr.c s->enc_mode = get_bitrate_mode(avctx->bit_rate, avctx); s 219 libavcodec/libopencore-amr.c s->enc_bitrate = avctx->bit_rate; s 226 libavcodec/libopencore-amr.c AMRContext *s = avctx->priv_data; s 228 libavcodec/libopencore-amr.c Encoder_Interface_exit(s->enc_state); s 229 libavcodec/libopencore-amr.c ff_af_queue_close(&s->afq); s 236 libavcodec/libopencore-amr.c AMRContext *s = avctx->priv_data; s 241 libavcodec/libopencore-amr.c if (s->enc_bitrate != avctx->bit_rate) { s 242 libavcodec/libopencore-amr.c s->enc_mode = get_bitrate_mode(avctx->bit_rate, avctx); s 243 libavcodec/libopencore-amr.c s->enc_bitrate = avctx->bit_rate; s 257 libavcodec/libopencore-amr.c s->enc_last_frame = -1; s 259 libavcodec/libopencore-amr.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) { s 264 libavcodec/libopencore-amr.c if (s->enc_last_frame < 0) s 270 libavcodec/libopencore-amr.c s->enc_last_frame = -1; s 273 libavcodec/libopencore-amr.c written = Encoder_Interface_Encode(s->enc_state, s->enc_mode, samples, s 276 libavcodec/libopencore-amr.c written, s->enc_mode, avpkt->data[0]); s 279 libavcodec/libopencore-amr.c ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts, s 318 libavcodec/libopencore-amr.c AMRWBContext *s = avctx->priv_data; s 324 libavcodec/libopencore-amr.c s->state = D_IF_init(); s 335 libavcodec/libopencore-amr.c AMRWBContext *s = avctx->priv_data; s 358 libavcodec/libopencore-amr.c D_IF_decode(s->state, buf, (short *)frame->data[0], _good_frame); s 367 libavcodec/libopencore-amr.c AMRWBContext *s = avctx->priv_data; s 369 libavcodec/libopencore-amr.c D_IF_exit(s->state); s 42 libavcodec/libopenh264dec.c SVCContext *s = avctx->priv_data; s 44 libavcodec/libopenh264dec.c if (s->decoder) s 45 libavcodec/libopenh264dec.c WelsDestroyDecoder(s->decoder); s 52 libavcodec/libopenh264dec.c SVCContext *s = avctx->priv_data; s 61 libavcodec/libopenh264dec.c if (WelsCreateDecoder(&s->decoder)) { s 69 libavcodec/libopenh264dec.c (*s->decoder)->SetOption(s->decoder, DECODER_OPTION_TRACE_LEVEL, &log_level); s 70 libavcodec/libopenh264dec.c (*s->decoder)->SetOption(s->decoder, DECODER_OPTION_TRACE_CALLBACK, (void *)&callback_function); s 71 libavcodec/libopenh264dec.c (*s->decoder)->SetOption(s->decoder, DECODER_OPTION_TRACE_CALLBACK_CONTEXT, (void *)&avctx); s 79 libavcodec/libopenh264dec.c if ((*s->decoder)->Initialize(s->decoder, ¶m) != cmResultSuccess) { s 92 libavcodec/libopenh264dec.c SVCContext *s = avctx->priv_data; s 105 libavcodec/libopenh264dec.c (*s->decoder)->SetOption(s->decoder, DECODER_OPTION_END_OF_STREAM, &end_of_stream); s 106 libavcodec/libopenh264dec.c state = (*s->decoder)->FlushFrame(s->decoder, ptrs, &info); s 117 libavcodec/libopenh264dec.c state = (*s->decoder)->DecodeFrameNoDelay(s->decoder, avpkt->data, avpkt->size, ptrs, &info); s 119 libavcodec/libopenh264dec.c state = (*s->decoder)->DecodeFrame2(s->decoder, avpkt->data, avpkt->size, ptrs, &info); s 153 libavcodec/libopenh264dec.c (*s->decoder)->GetOption(s->decoder, DECODER_OPTION_PROFILE, &opt); s 155 libavcodec/libopenh264dec.c (*s->decoder)->GetOption(s->decoder, DECODER_OPTION_LEVEL, &opt); s 120 libavcodec/libopenh264enc.c SVCContext *s = avctx->priv_data; s 122 libavcodec/libopenh264enc.c if (s->encoder) s 123 libavcodec/libopenh264enc.c WelsDestroySVCEncoder(s->encoder); s 124 libavcodec/libopenh264enc.c if (s->skipped > 0) s 125 libavcodec/libopenh264enc.c av_log(avctx, AV_LOG_WARNING, "%d frames skipped\n", s->skipped); s 131 libavcodec/libopenh264enc.c SVCContext *s = avctx->priv_data; s 141 libavcodec/libopenh264enc.c if (WelsCreateSVCEncoder(&s->encoder)) { s 148 libavcodec/libopenh264enc.c (*s->encoder)->SetOption(s->encoder, ENCODER_OPTION_TRACE_LEVEL, &log_level); s 152 libavcodec/libopenh264enc.c (*s->encoder)->SetOption(s->encoder, ENCODER_OPTION_TRACE_CALLBACK, &callback_function); s 155 libavcodec/libopenh264enc.c (*s->encoder)->SetOption(s->encoder, ENCODER_OPTION_TRACE_CALLBACK_CONTEXT, &avctx); s 157 libavcodec/libopenh264enc.c (*s->encoder)->GetDefaultParams(s->encoder, ¶m); s 164 libavcodec/libopenh264enc.c param.iRCMode = s->rc_mode; s 174 libavcodec/libopenh264enc.c param.bEnableFrameSkip = s->skip_frames; s 185 libavcodec/libopenh264enc.c param.iLoopFilterDisableIdc = !s->loopfilter; s 190 libavcodec/libopenh264enc.c if (FF_PROFILE_UNKNOWN == s->profile && s 196 libavcodec/libopenh264enc.c s->profile = avctx->profile; s 206 libavcodec/libopenh264enc.c if (s->coder < 0 && avctx->coder_type == FF_CODER_TYPE_AC) s 207 libavcodec/libopenh264enc.c s->coder = 1; s 209 libavcodec/libopenh264enc.c if (s->coder < 0) s 210 libavcodec/libopenh264enc.c s->coder = s->cabac; s 214 libavcodec/libopenh264enc.c if (s->profile == FF_PROFILE_UNKNOWN && s->coder >= 0) s 215 libavcodec/libopenh264enc.c s->profile = s->coder == 0 ? FF_PROFILE_H264_CONSTRAINED_BASELINE : s 222 libavcodec/libopenh264enc.c switch (s->profile) { s 295 libavcodec/libopenh264enc.c if ((avctx->slices > 1) && (s->max_nal_size)) { s 298 libavcodec/libopenh264enc.c avctx->slices, s->max_nal_size); s 303 libavcodec/libopenh264enc.c s->slice_mode = SM_FIXEDSLCNUM_SLICE; s 305 libavcodec/libopenh264enc.c if (s->max_nal_size) s 306 libavcodec/libopenh264enc.c s->slice_mode = SM_SIZELIMITED_SLICE; s 309 libavcodec/libopenh264enc.c param.sSpatialLayers[0].sSliceArgument.uiSliceMode = s->slice_mode; s 312 libavcodec/libopenh264enc.c param.sSpatialLayers[0].sSliceCfg.uiSliceMode = s->slice_mode; s 315 libavcodec/libopenh264enc.c if (avctx->slices == 0 && s->slice_mode == SM_FIXEDSLCNUM_SLICE) s 318 libavcodec/libopenh264enc.c if (s->slice_mode == SM_SIZELIMITED_SLICE) { s 319 libavcodec/libopenh264enc.c if (s->max_nal_size) { s 320 libavcodec/libopenh264enc.c param.uiMaxNalSize = s->max_nal_size; s 322 libavcodec/libopenh264enc.c param.sSpatialLayers[0].sSliceArgument.uiSliceSizeConstraint = s->max_nal_size; s 324 libavcodec/libopenh264enc.c param.sSpatialLayers[0].sSliceCfg.sSliceArgument.uiSliceSizeConstraint = s->max_nal_size; s 333 libavcodec/libopenh264enc.c if ((*s->encoder)->InitializeExt(s->encoder, ¶m) != cmResultSuccess) { s 341 libavcodec/libopenh264enc.c (*s->encoder)->EncodeParameterSets(s->encoder, &fbi); s 363 libavcodec/libopenh264enc.c SVCContext *s = avctx->priv_data; s 380 libavcodec/libopenh264enc.c (*s->encoder)->ForceIntraFrame(s->encoder, true); s 383 libavcodec/libopenh264enc.c encoded = (*s->encoder)->EncodeFrame(s->encoder, &sp, &fbi); s 389 libavcodec/libopenh264enc.c s->skipped++; s 38 libavcodec/librsvgdec.c LibRSVGContext *s = avctx->priv_data; s 58 libavcodec/librsvgdec.c dimensions.width = s->width ? s->width : dimensions.width; s 59 libavcodec/librsvgdec.c dimensions.height = s->height ? s->height : dimensions.height; s 60 libavcodec/librsvgdec.c if (s->keep_ar && (s->width || s->height)) { s 62 libavcodec/librsvgdec.c if (!s->width) s 43 libavcodec/libshine.c SHINEContext *s = avctx->priv_data; s 50 libavcodec/libshine.c shine_set_config_mpeg_defaults(&s->config.mpeg); s 52 libavcodec/libshine.c s->config.mpeg.bitr = avctx->bit_rate / 1000; s 53 libavcodec/libshine.c s->config.mpeg.mode = avctx->channels == 2 ? STEREO : MONO; s 54 libavcodec/libshine.c s->config.wave.samplerate = avctx->sample_rate; s 55 libavcodec/libshine.c s->config.wave.channels = avctx->channels == 2 ? PCM_STEREO : PCM_MONO; s 56 libavcodec/libshine.c if (shine_check_config(s->config.wave.samplerate, s->config.mpeg.bitr) < 0) { s 60 libavcodec/libshine.c s->shine = shine_initialise(&s->config); s 61 libavcodec/libshine.c if (!s->shine) s 63 libavcodec/libshine.c avctx->frame_size = shine_samples_per_pass(s->shine); s 64 libavcodec/libshine.c ff_af_queue_init(avctx, &s->afq); s 71 libavcodec/libshine.c SHINEContext *s = avctx->priv_data; s 78 libavcodec/libshine.c data = shine_encode_buffer(s->shine, (int16_t **)frame->data, &written); s 80 libavcodec/libshine.c data = shine_flush(s->shine, &written); s 84 libavcodec/libshine.c if (s->buffer_index + written > BUFFER_SIZE) { s 88 libavcodec/libshine.c memcpy(s->buffer + s->buffer_index, data, written); s 89 libavcodec/libshine.c s->buffer_index += written; s 92 libavcodec/libshine.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) s 96 libavcodec/libshine.c if (s->buffer_index < 4 || !s->afq.frame_count) s 98 libavcodec/libshine.c if (avpriv_mpegaudio_decode_header(&hdr, AV_RB32(s->buffer))) { s 104 libavcodec/libshine.c if (len <= s->buffer_index) { s 107 libavcodec/libshine.c memcpy(avpkt->data, s->buffer, len); s 108 libavcodec/libshine.c s->buffer_index -= len; s 109 libavcodec/libshine.c memmove(s->buffer, s->buffer + len, s->buffer_index); s 111 libavcodec/libshine.c ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts, s 122 libavcodec/libshine.c SHINEContext *s = avctx->priv_data; s 124 libavcodec/libshine.c ff_af_queue_close(&s->afq); s 125 libavcodec/libshine.c shine_close(s->shine); s 42 libavcodec/libspeexdec.c LibSpeexContext *s = avctx->priv_data; s 66 libavcodec/libspeexdec.c s->pktsize = ((const int[]){5,10,15,20,20,28,28,38,38,46,62})[quality]; s 93 libavcodec/libspeexdec.c s->frame_size = 160 << spx_mode; s 106 libavcodec/libspeexdec.c speex_bits_init(&s->bits); s 107 libavcodec/libspeexdec.c s->dec_state = speex_decoder_init(mode); s 108 libavcodec/libspeexdec.c if (!s->dec_state) { s 117 libavcodec/libspeexdec.c callback.data = &s->stereo; s 118 libavcodec/libspeexdec.c s->stereo = (SpeexStereoState)SPEEX_STEREO_STATE_INIT; s 119 libavcodec/libspeexdec.c speex_decoder_ctl(s->dec_state, SPEEX_SET_HANDLER, &callback); s 130 libavcodec/libspeexdec.c LibSpeexContext *s = avctx->priv_data; s 137 libavcodec/libspeexdec.c frame->nb_samples = s->frame_size; s 146 libavcodec/libspeexdec.c if (speex_bits_remaining(&s->bits) < 5 || s 147 libavcodec/libspeexdec.c speex_bits_peek_unsigned(&s->bits, 5) == 0xF) { s 153 libavcodec/libspeexdec.c if (s->pktsize && buf_size == 62) s 154 libavcodec/libspeexdec.c buf_size = s->pktsize; s 156 libavcodec/libspeexdec.c speex_bits_read_from(&s->bits, buf, buf_size); s 161 libavcodec/libspeexdec.c ret = speex_decode_int(s->dec_state, &s->bits, output); s 167 libavcodec/libspeexdec.c speex_decode_stereo_int(output, s->frame_size, &s->stereo); s 172 libavcodec/libspeexdec.c speex_decoder_ctl(s->dec_state, SPEEX_GET_BITRATE, &avctx->bit_rate); s 178 libavcodec/libspeexdec.c LibSpeexContext *s = avctx->priv_data; s 180 libavcodec/libspeexdec.c speex_bits_destroy(&s->bits); s 181 libavcodec/libspeexdec.c speex_decoder_destroy(s->dec_state); s 188 libavcodec/libspeexdec.c LibSpeexContext *s = avctx->priv_data; s 189 libavcodec/libspeexdec.c speex_bits_reset(&s->bits); s 112 libavcodec/libspeexenc.c LibSpeexEncContext *s) s 117 libavcodec/libspeexenc.c switch (s->header.mode) { s 123 libavcodec/libspeexenc.c if (s->header.vbr) { s 125 libavcodec/libspeexenc.c av_log(avctx, AV_LOG_DEBUG, " quality: %f\n", s->vbr_quality); s 126 libavcodec/libspeexenc.c } else if (s->abr) { s 138 libavcodec/libspeexenc.c s->frames_per_packet); s 140 libavcodec/libspeexenc.c avctx->frame_size * s->frames_per_packet); s 141 libavcodec/libspeexenc.c av_log(avctx, AV_LOG_DEBUG, "voice activity detection: %d\n", s->vad); s 142 libavcodec/libspeexenc.c av_log(avctx, AV_LOG_DEBUG, "discontinuous transmission: %d\n", s->dtx); s 147 libavcodec/libspeexenc.c LibSpeexEncContext *s = avctx->priv_data; s 172 libavcodec/libspeexenc.c s->enc_state = speex_encoder_init(mode); s 173 libavcodec/libspeexenc.c if (!s->enc_state) { s 177 libavcodec/libspeexenc.c speex_init_header(&s->header, avctx->sample_rate, avctx->channels, mode); s 182 libavcodec/libspeexenc.c s->header.vbr = 1; s 183 libavcodec/libspeexenc.c s->vad = 1; /* VAD is always implicitly activated for VBR */ s 184 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_SET_VBR, &s->header.vbr); s 185 libavcodec/libspeexenc.c s->vbr_quality = av_clipf(avctx->global_quality / (float)FF_QP2LAMBDA, s 187 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_SET_VBR_QUALITY, &s->vbr_quality); s 189 libavcodec/libspeexenc.c s->header.bitrate = avctx->bit_rate; s 192 libavcodec/libspeexenc.c if (s->abr) { s 193 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_SET_ABR, s 194 libavcodec/libspeexenc.c &s->header.bitrate); s 195 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_GET_ABR, s 196 libavcodec/libspeexenc.c &s->header.bitrate); s 198 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_SET_BITRATE, s 199 libavcodec/libspeexenc.c &s->header.bitrate); s 200 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_GET_BITRATE, s 201 libavcodec/libspeexenc.c &s->header.bitrate); s 205 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_SET_QUALITY, s 206 libavcodec/libspeexenc.c &s->cbr_quality); s 207 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_GET_BITRATE, s 208 libavcodec/libspeexenc.c &s->header.bitrate); s 212 libavcodec/libspeexenc.c avctx->bit_rate = s->header.bitrate + (avctx->channels == 2 ? 800 : 0); s 216 libavcodec/libspeexenc.c if (s->vad) s 217 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_SET_VAD, &s->vad); s 220 libavcodec/libspeexenc.c if (s->dtx) { s 221 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_SET_DTX, &s->dtx); s 222 libavcodec/libspeexenc.c if (!(s->abr || s->vad || s->header.vbr)) s 229 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_SET_COMPLEXITY, &complexity); s 231 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_GET_COMPLEXITY, &complexity); s 235 libavcodec/libspeexenc.c avctx->frame_size = s->header.frame_size; s 236 libavcodec/libspeexenc.c s->header.frames_per_packet = s->frames_per_packet; s 239 libavcodec/libspeexenc.c speex_encoder_ctl(s->enc_state, SPEEX_GET_LOOKAHEAD, &avctx->initial_padding); s 240 libavcodec/libspeexenc.c ff_af_queue_init(avctx, &s->afq); s 245 libavcodec/libspeexenc.c header_data = speex_header_to_packet(&s->header, &header_size); s 251 libavcodec/libspeexenc.c speex_encoder_destroy(s->enc_state); s 262 libavcodec/libspeexenc.c speex_bits_init(&s->bits); s 264 libavcodec/libspeexenc.c print_enc_params(avctx, s); s 271 libavcodec/libspeexenc.c LibSpeexEncContext *s = avctx->priv_data; s 278 libavcodec/libspeexenc.c speex_encode_stereo_int(samples, s->header.frame_size, &s->bits); s 279 libavcodec/libspeexenc.c speex_encode_int(s->enc_state, samples, &s->bits); s 280 libavcodec/libspeexenc.c s->pkt_frame_count++; s 281 libavcodec/libspeexenc.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) s 285 libavcodec/libspeexenc.c if (!s->pkt_frame_count) s 288 libavcodec/libspeexenc.c while (s->pkt_frame_count < s->frames_per_packet) { s 289 libavcodec/libspeexenc.c speex_bits_pack(&s->bits, 15, 5); s 290 libavcodec/libspeexenc.c s->pkt_frame_count++; s 295 libavcodec/libspeexenc.c if (s->pkt_frame_count == s->frames_per_packet) { s 296 libavcodec/libspeexenc.c s->pkt_frame_count = 0; s 297 libavcodec/libspeexenc.c if ((ret = ff_alloc_packet2(avctx, avpkt, speex_bits_nbytes(&s->bits), 0)) < 0) s 299 libavcodec/libspeexenc.c ret = speex_bits_write(&s->bits, avpkt->data, avpkt->size); s 300 libavcodec/libspeexenc.c speex_bits_reset(&s->bits); s 303 libavcodec/libspeexenc.c ff_af_queue_remove(&s->afq, s->frames_per_packet * avctx->frame_size, s 315 libavcodec/libspeexenc.c LibSpeexEncContext *s = avctx->priv_data; s 317 libavcodec/libspeexenc.c speex_bits_destroy(&s->bits); s 318 libavcodec/libspeexenc.c speex_encoder_destroy(s->enc_state); s 320 libavcodec/libspeexenc.c ff_af_queue_close(&s->afq); s 52 libavcodec/libtwolame.c TWOLAMEContext *s = avctx->priv_data; s 53 libavcodec/libtwolame.c twolame_close(&s->glopts); s 59 libavcodec/libtwolame.c TWOLAMEContext *s = avctx->priv_data; s 65 libavcodec/libtwolame.c s->glopts = twolame_init(); s 66 libavcodec/libtwolame.c if (!s->glopts) s 69 libavcodec/libtwolame.c twolame_set_verbosity(s->glopts, s->verbosity); s 70 libavcodec/libtwolame.c twolame_set_mode(s->glopts, s->mode); s 71 libavcodec/libtwolame.c twolame_set_psymodel(s->glopts, s->psymodel); s 72 libavcodec/libtwolame.c twolame_set_energy_levels(s->glopts, s->energy); s 73 libavcodec/libtwolame.c twolame_set_error_protection(s->glopts, s->error_protection); s 74 libavcodec/libtwolame.c twolame_set_copyright(s->glopts, s->copyright); s 75 libavcodec/libtwolame.c twolame_set_original(s->glopts, s->original); s 77 libavcodec/libtwolame.c twolame_set_num_channels(s->glopts, avctx->channels); s 78 libavcodec/libtwolame.c twolame_set_in_samplerate(s->glopts, avctx->sample_rate); s 79 libavcodec/libtwolame.c twolame_set_out_samplerate(s->glopts, avctx->sample_rate); s 82 libavcodec/libtwolame.c if ((s->mode == TWOLAME_AUTO_MODE && avctx->channels == 1) || s->mode == TWOLAME_MONO) s 89 libavcodec/libtwolame.c twolame_set_VBR(s->glopts, TRUE); s 90 libavcodec/libtwolame.c twolame_set_VBR_level(s->glopts, s 95 libavcodec/libtwolame.c twolame_set_bitrate(s->glopts, avctx->bit_rate / 1000); s 98 libavcodec/libtwolame.c ret = twolame_init_params(s->glopts); s 110 libavcodec/libtwolame.c TWOLAMEContext *s = avctx->priv_data; s 119 libavcodec/libtwolame.c ret = twolame_encode_buffer_float32_interleaved(s->glopts, s 126 libavcodec/libtwolame.c ret = twolame_encode_buffer_float32(s->glopts, s 133 libavcodec/libtwolame.c ret = twolame_encode_buffer_interleaved(s->glopts, s 139 libavcodec/libtwolame.c ret = twolame_encode_buffer(s->glopts, s 151 libavcodec/libtwolame.c ret = twolame_encode_flush(s->glopts, avpkt->data, avpkt->size); s 164 libavcodec/libtwolame.c avpkt->pts = s->next_pts; s 168 libavcodec/libtwolame.c s->next_pts = avpkt->pts + avpkt->duration; s 83 libavcodec/libvo-amrwbenc.c AMRWBContext *s = avctx->priv_data; s 95 libavcodec/libvo-amrwbenc.c s->mode = get_wb_bitrate_mode(avctx->bit_rate, avctx); s 96 libavcodec/libvo-amrwbenc.c s->last_bitrate = avctx->bit_rate; s 101 libavcodec/libvo-amrwbenc.c s->state = E_IF_init(); s 108 libavcodec/libvo-amrwbenc.c AMRWBContext *s = avctx->priv_data; s 110 libavcodec/libvo-amrwbenc.c E_IF_exit(s->state); s 117 libavcodec/libvo-amrwbenc.c AMRWBContext *s = avctx->priv_data; s 124 libavcodec/libvo-amrwbenc.c if (s->last_bitrate != avctx->bit_rate) { s 125 libavcodec/libvo-amrwbenc.c s->mode = get_wb_bitrate_mode(avctx->bit_rate, avctx); s 126 libavcodec/libvo-amrwbenc.c s->last_bitrate = avctx->bit_rate; s 128 libavcodec/libvo-amrwbenc.c size = E_IF_encode(s->state, s->mode, samples, avpkt->data, s->allow_dtx); s 85 libavcodec/libvorbisenc.c LibvorbisEncContext *s = avctx->priv_data; s 126 libavcodec/libvorbisenc.c if (s->iblock) { s 127 libavcodec/libvorbisenc.c if ((ret = vorbis_encode_ctl(vi, OV_ECTL_IBLOCK_SET, &s->iblock))) s 176 libavcodec/libvorbisenc.c LibvorbisEncContext *s = avctx->priv_data; s 179 libavcodec/libvorbisenc.c if (s->dsp_initialized) s 180 libavcodec/libvorbisenc.c vorbis_analysis_wrote(&s->vd, 0); s 182 libavcodec/libvorbisenc.c vorbis_block_clear(&s->vb); s 183 libavcodec/libvorbisenc.c vorbis_dsp_clear(&s->vd); s 184 libavcodec/libvorbisenc.c vorbis_info_clear(&s->vi); s 186 libavcodec/libvorbisenc.c av_fifo_freep(&s->pkt_fifo); s 187 libavcodec/libvorbisenc.c ff_af_queue_close(&s->afq); s 190 libavcodec/libvorbisenc.c av_vorbis_parse_free(&s->vp); s 197 libavcodec/libvorbisenc.c LibvorbisEncContext *s = avctx->priv_data; s 203 libavcodec/libvorbisenc.c vorbis_info_init(&s->vi); s 204 libavcodec/libvorbisenc.c if ((ret = libvorbis_setup(&s->vi, avctx))) { s 208 libavcodec/libvorbisenc.c if ((ret = vorbis_analysis_init(&s->vd, &s->vi))) { s 213 libavcodec/libvorbisenc.c s->dsp_initialized = 1; s 214 libavcodec/libvorbisenc.c if ((ret = vorbis_block_init(&s->vd, &s->vb))) { s 220 libavcodec/libvorbisenc.c vorbis_comment_init(&s->vc); s 222 libavcodec/libvorbisenc.c vorbis_comment_add_tag(&s->vc, "encoder", LIBAVCODEC_IDENT); s 224 libavcodec/libvorbisenc.c if ((ret = vorbis_analysis_headerout(&s->vd, &s->vc, &header, &header_comm, s 251 libavcodec/libvorbisenc.c s->vp = av_vorbis_parse_init(avctx->extradata, avctx->extradata_size); s 252 libavcodec/libvorbisenc.c if (!s->vp) { s 257 libavcodec/libvorbisenc.c vorbis_comment_clear(&s->vc); s 260 libavcodec/libvorbisenc.c ff_af_queue_init(avctx, &s->afq); s 262 libavcodec/libvorbisenc.c s->pkt_fifo = av_fifo_alloc(BUFFER_SIZE); s 263 libavcodec/libvorbisenc.c if (!s->pkt_fifo) { s 277 libavcodec/libvorbisenc.c LibvorbisEncContext *s = avctx->priv_data; s 285 libavcodec/libvorbisenc.c int c, channels = s->vi.channels; s 287 libavcodec/libvorbisenc.c buffer = vorbis_analysis_buffer(&s->vd, samples); s 294 libavcodec/libvorbisenc.c if ((ret = vorbis_analysis_wrote(&s->vd, samples)) < 0) { s 298 libavcodec/libvorbisenc.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) s 301 libavcodec/libvorbisenc.c if (!s->eof && s->afq.frame_alloc) s 302 libavcodec/libvorbisenc.c if ((ret = vorbis_analysis_wrote(&s->vd, 0)) < 0) { s 306 libavcodec/libvorbisenc.c s->eof = 1; s 310 libavcodec/libvorbisenc.c while ((ret = vorbis_analysis_blockout(&s->vd, &s->vb)) == 1) { s 311 libavcodec/libvorbisenc.c if ((ret = vorbis_analysis(&s->vb, NULL)) < 0) s 313 libavcodec/libvorbisenc.c if ((ret = vorbis_bitrate_addblock(&s->vb)) < 0) s 317 libavcodec/libvorbisenc.c while ((ret = vorbis_bitrate_flushpacket(&s->vd, &op)) == 1) { s 318 libavcodec/libvorbisenc.c if (av_fifo_space(s->pkt_fifo) < sizeof(ogg_packet) + op.bytes) { s 322 libavcodec/libvorbisenc.c av_fifo_generic_write(s->pkt_fifo, &op, sizeof(ogg_packet), NULL); s 323 libavcodec/libvorbisenc.c av_fifo_generic_write(s->pkt_fifo, op.packet, op.bytes, NULL); s 336 libavcodec/libvorbisenc.c if (av_fifo_size(s->pkt_fifo) < sizeof(ogg_packet)) s 339 libavcodec/libvorbisenc.c av_fifo_generic_read(s->pkt_fifo, &op, sizeof(ogg_packet), NULL); s 343 libavcodec/libvorbisenc.c av_fifo_generic_read(s->pkt_fifo, avpkt->data, op.bytes, NULL); s 347 libavcodec/libvorbisenc.c duration = av_vorbis_parse_frame(s->vp, avpkt->data, avpkt->size); s 351 libavcodec/libvorbisenc.c if (!avctx->initial_padding && s->afq.frames) { s 353 libavcodec/libvorbisenc.c av_assert0(!s->afq.remaining_delay); s 354 libavcodec/libvorbisenc.c s->afq.frames->duration += duration; s 355 libavcodec/libvorbisenc.c if (s->afq.frames->pts != AV_NOPTS_VALUE) s 356 libavcodec/libvorbisenc.c s->afq.frames->pts -= duration; s 357 libavcodec/libvorbisenc.c s->afq.remaining_samples += duration; s 359 libavcodec/libvorbisenc.c ff_af_queue_remove(&s->afq, duration, &avpkt->pts, &avpkt->duration); s 46 libavcodec/libwavpackenc.c LibWavpackContext *s = avctx->priv_data; s 49 libavcodec/libwavpackenc.c s->got_output = 0; s 50 libavcodec/libwavpackenc.c s->pkt = pkt; s 51 libavcodec/libwavpackenc.c s->user_size = pkt->size; s 54 libavcodec/libwavpackenc.c ret = ff_af_queue_add(&s->afq, frame); s 58 libavcodec/libwavpackenc.c ret = WavpackPackSamples(s->wv, (int32_t*)frame->data[0], frame->nb_samples); s 61 libavcodec/libwavpackenc.c WavpackGetErrorMessage(s->wv)); s 66 libavcodec/libwavpackenc.c if (!s->got_output && s 68 libavcodec/libwavpackenc.c ret = WavpackFlushSamples(s->wv); s 71 libavcodec/libwavpackenc.c WavpackGetErrorMessage(s->wv)); s 76 libavcodec/libwavpackenc.c if (s->got_output) { s 77 libavcodec/libwavpackenc.c ff_af_queue_remove(&s->afq, avctx->frame_size, &pkt->pts, &pkt->duration); s 87 libavcodec/libwavpackenc.c LibWavpackContext *s = avctx->priv_data; s 88 libavcodec/libwavpackenc.c int ret, offset = s->pkt->size; s 90 libavcodec/libwavpackenc.c if (s->user_size) { s 91 libavcodec/libwavpackenc.c if (s->user_size - count < s->pkt->size) { s 95 libavcodec/libwavpackenc.c s->pkt->size += count; s 97 libavcodec/libwavpackenc.c ret = av_grow_packet(s->pkt, count); s 104 libavcodec/libwavpackenc.c memcpy(s->pkt->data + offset, data, count); s 106 libavcodec/libwavpackenc.c s->got_output = 1; s 113 libavcodec/libwavpackenc.c LibWavpackContext *s = avctx->priv_data; s 117 libavcodec/libwavpackenc.c s->wv = WavpackOpenFileOutput(encode_callback, avctx, NULL); s 118 libavcodec/libwavpackenc.c if (!s->wv) { s 153 libavcodec/libwavpackenc.c ret = WavpackSetConfiguration(s->wv, &config, -1); s 157 libavcodec/libwavpackenc.c ret = WavpackPackInit(s->wv); s 161 libavcodec/libwavpackenc.c ff_af_queue_init(avctx, &s->afq); s 167 libavcodec/libwavpackenc.c WavpackGetErrorMessage(s->wv)); s 168 libavcodec/libwavpackenc.c WavpackCloseFile(s->wv); s 174 libavcodec/libwavpackenc.c LibWavpackContext *s = avctx->priv_data; s 176 libavcodec/libwavpackenc.c WavpackCloseFile(s->wv); s 178 libavcodec/libwavpackenc.c ff_af_queue_close(&s->afq); s 39 libavcodec/libwebpenc.c LibWebPContext *s = avctx->priv_data; s 44 libavcodec/libwebpenc.c int ret = ff_libwebp_get_frame(avctx, s, frame, &alt_frame, &pic); s 52 libavcodec/libwebpenc.c ret = WebPEncode(&s->config, pic); s 83 libavcodec/libwebpenc.c LibWebPContextCommon *s = avctx->priv_data; s 84 libavcodec/libwebpenc.c av_frame_free(&s->ref); s 43 libavcodec/libwebpenc_animencoder.c LibWebPAnimContext *s = avctx->priv_data; s 48 libavcodec/libwebpenc_animencoder.c s->enc = WebPAnimEncoderNew(avctx->width, avctx->height, &enc_options); s 49 libavcodec/libwebpenc_animencoder.c if (!s->enc) s 51 libavcodec/libwebpenc_animencoder.c s->prev_frame_pts = -1; s 52 libavcodec/libwebpenc_animencoder.c s->done = 0; s 59 libavcodec/libwebpenc_animencoder.c LibWebPAnimContext *s = avctx->priv_data; s 63 libavcodec/libwebpenc_animencoder.c if (s->done) { // Second flush: return empty package to denote finish. s 68 libavcodec/libwebpenc_animencoder.c ret = WebPAnimEncoderAssemble(s->enc, &assembled_data); s 74 libavcodec/libwebpenc_animencoder.c s->done = 1; s 76 libavcodec/libwebpenc_animencoder.c pkt->pts = pkt->dts = s->prev_frame_pts + 1; s 80 libavcodec/libwebpenc_animencoder.c av_log(s, AV_LOG_ERROR, s 90 libavcodec/libwebpenc_animencoder.c ret = ff_libwebp_get_frame(avctx, &s->cc, frame, &alt_frame, &pic); s 96 libavcodec/libwebpenc_animencoder.c ret = WebPAnimEncoderAdd(s->enc, pic, timestamp_ms, &s->cc.config); s 106 libavcodec/libwebpenc_animencoder.c s->prev_frame_pts = frame->pts; // Save for next frame. s 120 libavcodec/libwebpenc_animencoder.c LibWebPAnimContext *s = avctx->priv_data; s 121 libavcodec/libwebpenc_animencoder.c av_frame_free(&s->cc.ref); s 122 libavcodec/libwebpenc_animencoder.c WebPAnimEncoderDelete(s->enc); s 45 libavcodec/libwebpenc_common.c LibWebPContextCommon *s = avctx->priv_data; s 49 libavcodec/libwebpenc_common.c s->quality = av_clipf(avctx->global_quality / (float)FF_QP2LAMBDA, s 58 libavcodec/libwebpenc_common.c if (s->preset >= WEBP_PRESET_DEFAULT) { s 59 libavcodec/libwebpenc_common.c ret = WebPConfigPreset(&s->config, s->preset, s->quality); s 62 libavcodec/libwebpenc_common.c s->lossless = s->config.lossless; s 63 libavcodec/libwebpenc_common.c s->quality = s->config.quality; s 64 libavcodec/libwebpenc_common.c avctx->compression_level = s->config.method; s 66 libavcodec/libwebpenc_common.c ret = WebPConfigInit(&s->config); s 70 libavcodec/libwebpenc_common.c s->config.lossless = s->lossless; s 71 libavcodec/libwebpenc_common.c s->config.quality = s->quality; s 72 libavcodec/libwebpenc_common.c s->config.method = avctx->compression_level; s 74 libavcodec/libwebpenc_common.c ret = WebPValidateConfig(&s->config); s 80 libavcodec/libwebpenc_common.c s->lossless ? "Lossless" : "Lossy", s->quality, s 86 libavcodec/libwebpenc_common.c int ff_libwebp_get_frame(AVCodecContext *avctx, LibWebPContextCommon *s, s 113 libavcodec/libwebpenc_common.c if (!s->lossless) { s 116 libavcodec/libwebpenc_common.c if (!s->conversion_warning) { s 121 libavcodec/libwebpenc_common.c s->conversion_warning = 1; s 128 libavcodec/libwebpenc_common.c if (frame->linesize[1] != frame->linesize[2] || s->cr_threshold) { s 129 libavcodec/libwebpenc_common.c if (!s->chroma_warning && !s->cr_threshold) { s 132 libavcodec/libwebpenc_common.c s->chroma_warning = 1; s 143 libavcodec/libwebpenc_common.c if (s->cr_threshold) s 151 libavcodec/libwebpenc_common.c if (s->cr_threshold) { s 153 libavcodec/libwebpenc_common.c int bs = s->cr_size; s 155 libavcodec/libwebpenc_common.c if (!s->ref) { s 156 libavcodec/libwebpenc_common.c s->ref = av_frame_clone(frame); s 157 libavcodec/libwebpenc_common.c if (!s->ref) { s 177 libavcodec/libwebpenc_common.c -s->ref->data[p][frame->linesize[p] * y2 + x2]; s 182 libavcodec/libwebpenc_common.c skip = sse < s->cr_threshold && frame->data[3] != s->ref->data[3]; s 191 libavcodec/libwebpenc_common.c memcpy(&s->ref->data[p][frame->linesize[p] * y2 + xs], s 221 libavcodec/libwebpenc_common.c if (s->lossless) { s 226 libavcodec/libwebpenc_common.c if (!s->conversion_warning) { s 231 libavcodec/libwebpenc_common.c s->conversion_warning = 1; s 56 libavcodec/libwebpenc_common.h int ff_libwebp_get_frame(AVCodecContext *avctx, LibWebPContextCommon *s, s 927 libavcodec/libx264.c int nnal, s, i; s 929 libavcodec/libx264.c s = x264_encoder_headers(x4->enc, &nal, &nnal); s 930 libavcodec/libx264.c avctx->extradata = p = av_mallocz(s + AV_INPUT_BUFFER_PADDING_SIZE); s 89 libavcodec/libxavs.c int i, s, ret, size = x4->sei_size + AV_INPUT_BUFFER_MIN_SIZE; s 109 libavcodec/libxavs.c s = xavs_nal_encode(p, &size, 1, nals + i); s 110 libavcodec/libxavs.c if (s < 0) s 112 libavcodec/libxavs.c p += s; s 402 libavcodec/libxavs.c int nnal, s, i, size; s 405 libavcodec/libxavs.c s = xavs_encoder_headers(x4->enc, &nal, &nnal); s 407 libavcodec/libxavs.c avctx->extradata = p = av_malloc(s); s 417 libavcodec/libxavs.c size = xavs_nal_encode(p, &s, 1, nal + i); s 32 libavcodec/libxvid.h int ff_xvid_rate_control_init(struct MpegEncContext *s); s 33 libavcodec/libxvid.h void ff_xvid_rate_control_uninit(struct MpegEncContext *s); s 34 libavcodec/libxvid.h float ff_xvid_rate_estimate_qscale(struct MpegEncContext *s, int dry_run); s 65 libavcodec/ljpegenc.c LJpegEncContext *s = avctx->priv_data; s 69 libavcodec/ljpegenc.c uint16_t (*buffer)[4] = s->scratch; s 76 libavcodec/ljpegenc.c s->pred = avctx->prediction_method + 1; s 84 libavcodec/ljpegenc.c const int modified_predictor = y ? s->pred : 1; s 121 libavcodec/ljpegenc.c ff_mjpeg_encode_dc(pb, diff, s->huff_size_dc_luminance, s->huff_code_dc_luminance); //FIXME ugly s 123 libavcodec/ljpegenc.c ff_mjpeg_encode_dc(pb, diff, s->huff_size_dc_chrominance, s->huff_code_dc_chrominance); s 131 libavcodec/ljpegenc.c static inline void ljpeg_encode_yuv_mb(LJpegEncContext *s, PutBitContext *pb, s 141 libavcodec/ljpegenc.c h = s->hsample[i]; s 142 libavcodec/ljpegenc.c v = s->vsample[i]; s 165 libavcodec/ljpegenc.c ff_mjpeg_encode_dc(pb, *ptr - pred, s->huff_size_dc_luminance, s->huff_code_dc_luminance); //FIXME ugly s 167 libavcodec/ljpegenc.c ff_mjpeg_encode_dc(pb, *ptr - pred, s->huff_size_dc_chrominance, s->huff_code_dc_chrominance); s 175 libavcodec/ljpegenc.c h = s->hsample[i]; s 176 libavcodec/ljpegenc.c v = s->vsample[i]; s 187 libavcodec/ljpegenc.c ff_mjpeg_encode_dc(pb, *ptr - pred, s->huff_size_dc_luminance, s->huff_code_dc_luminance); //FIXME ugly s 189 libavcodec/ljpegenc.c ff_mjpeg_encode_dc(pb, *ptr - pred, s->huff_size_dc_chrominance, s->huff_code_dc_chrominance); s 199 libavcodec/ljpegenc.c LJpegEncContext *s = avctx->priv_data; s 200 libavcodec/ljpegenc.c const int mb_width = (avctx->width + s->hsample[0] - 1) / s->hsample[0]; s 201 libavcodec/ljpegenc.c const int mb_height = (avctx->height + s->vsample[0] - 1) / s->vsample[0]; s 207 libavcodec/ljpegenc.c s->pred = avctx->prediction_method + 1; s 213 libavcodec/ljpegenc.c mb_width * 4 * 3 * s->hsample[0] * s->vsample[0]) { s 219 libavcodec/ljpegenc.c ljpeg_encode_yuv_mb(s, pb, frame, s->pred, mb_x, mb_y); s 228 libavcodec/ljpegenc.c LJpegEncContext *s = avctx->priv_data; s 232 libavcodec/ljpegenc.c const int mb_width = (width + s->hsample[0] - 1) / s->hsample[0]; s 233 libavcodec/ljpegenc.c const int mb_height = (height + s->vsample[0] - 1) / s->vsample[0]; s 244 libavcodec/ljpegenc.c * s->hsample[0] * s->vsample[0]; s 252 libavcodec/ljpegenc.c ff_mjpeg_encode_picture_header(avctx, &pb, &s->scantable, s 253 libavcodec/ljpegenc.c s->pred, s->matrix, s->matrix); s 281 libavcodec/ljpegenc.c LJpegEncContext *s = avctx->priv_data; s 283 libavcodec/ljpegenc.c av_freep(&s->scratch); s 290 libavcodec/ljpegenc.c LJpegEncContext *s = avctx->priv_data; s 310 libavcodec/ljpegenc.c s->scratch = av_malloc_array(avctx->width + 1, sizeof(*s->scratch)); s 311 libavcodec/ljpegenc.c if (!s->scratch) s 314 libavcodec/ljpegenc.c ff_idctdsp_init(&s->idsp, avctx); s 315 libavcodec/ljpegenc.c ff_init_scantable(s->idsp.idct_permutation, &s->scantable, s 318 libavcodec/ljpegenc.c ff_mjpeg_init_hvsample(avctx, s->hsample, s->vsample); s 320 libavcodec/ljpegenc.c ff_mjpeg_build_huffman_codes(s->huff_size_dc_luminance, s 321 libavcodec/ljpegenc.c s->huff_code_dc_luminance, s 324 libavcodec/ljpegenc.c ff_mjpeg_build_huffman_codes(s->huff_size_dc_chrominance, s 325 libavcodec/ljpegenc.c s->huff_code_dc_chrominance, s 159 libavcodec/lpc.c int ff_lpc_calc_ref_coefs(LPCContext *s, s 164 libavcodec/lpc.c s->lpc_apply_welch_window(samples, s->blocksize, s->windowed_samples); s 165 libavcodec/lpc.c s->lpc_compute_autocorr(s->windowed_samples, s->blocksize, order, autoc); s 171 libavcodec/lpc.c double ff_lpc_calc_ref_coefs_f(LPCContext *s, const float *samples, int len, s 182 libavcodec/lpc.c s->windowed_samples[i] = weight*samples[i]; s 183 libavcodec/lpc.c s->windowed_samples[len-1-i] = weight*samples[len-1-i]; s 186 libavcodec/lpc.c s->lpc_compute_autocorr(s->windowed_samples, len, order, autoc); s 200 libavcodec/lpc.c int ff_lpc_calc_coefs(LPCContext *s, s 218 libavcodec/lpc.c if (blocksize != s->blocksize || max_order != s->max_order || s 219 libavcodec/lpc.c lpc_type != s->lpc_type) { s 220 libavcodec/lpc.c ff_lpc_end(s); s 221 libavcodec/lpc.c ff_lpc_init(s, blocksize, max_order, lpc_type); s 228 libavcodec/lpc.c s->lpc_apply_welch_window(samples, blocksize, s->windowed_samples); s 230 libavcodec/lpc.c s->lpc_compute_autocorr(s->windowed_samples, blocksize, max_order, autoc); s 241 libavcodec/lpc.c LLSModel *m = s->lls_models; s 300 libavcodec/lpc.c av_cold int ff_lpc_init(LPCContext *s, int blocksize, int max_order, s 303 libavcodec/lpc.c s->blocksize = blocksize; s 304 libavcodec/lpc.c s->max_order = max_order; s 305 libavcodec/lpc.c s->lpc_type = lpc_type; s 307 libavcodec/lpc.c s->windowed_buffer = av_mallocz((blocksize + 2 + FFALIGN(max_order, 4)) * s 308 libavcodec/lpc.c sizeof(*s->windowed_samples)); s 309 libavcodec/lpc.c if (!s->windowed_buffer) s 311 libavcodec/lpc.c s->windowed_samples = s->windowed_buffer + FFALIGN(max_order, 4); s 313 libavcodec/lpc.c s->lpc_apply_welch_window = lpc_apply_welch_window_c; s 314 libavcodec/lpc.c s->lpc_compute_autocorr = lpc_compute_autocorr_c; s 317 libavcodec/lpc.c ff_lpc_init_x86(s); s 322 libavcodec/lpc.c av_cold void ff_lpc_end(LPCContext *s) s 324 libavcodec/lpc.c av_freep(&s->windowed_buffer); s 93 libavcodec/lpc.h int ff_lpc_calc_coefs(LPCContext *s, s 100 libavcodec/lpc.h int ff_lpc_calc_ref_coefs(LPCContext *s, s 103 libavcodec/lpc.h double ff_lpc_calc_ref_coefs_f(LPCContext *s, const float *samples, int len, s 109 libavcodec/lpc.h int ff_lpc_init(LPCContext *s, int blocksize, int max_order, s 111 libavcodec/lpc.h void ff_lpc_init_x86(LPCContext *s); s 116 libavcodec/lpc.h void ff_lpc_end(LPCContext *s); s 47 libavcodec/lzf.c uint8_t s = bytestream2_get_byte(gb); s 49 libavcodec/lzf.c if (s < LZF_LITERAL_MAX) { s 50 libavcodec/lzf.c s++; s 51 libavcodec/lzf.c if (s > *size - len) { s 52 libavcodec/lzf.c *size += s + *size /2; s 59 libavcodec/lzf.c bytestream2_get_buffer(gb, p, s); s 60 libavcodec/lzf.c p += s; s 61 libavcodec/lzf.c len += s; s 63 libavcodec/lzf.c int l = 2 + (s >> 5); s 64 libavcodec/lzf.c int off = ((s & 0x1f) << 8) + 1; s 70 libavcodec/lzw.c static int lzw_get_code(struct LZWState * s) s 74 libavcodec/lzw.c if (s->bbits < s->cursize && bytestream2_get_bytes_left(&s->gb) <= 0) s 75 libavcodec/lzw.c return s->end_code; s 77 libavcodec/lzw.c if(s->mode == FF_LZW_GIF) { s 78 libavcodec/lzw.c while (s->bbits < s->cursize) { s 79 libavcodec/lzw.c if (!s->bs) { s 80 libavcodec/lzw.c s->bs = bytestream2_get_byte(&s->gb); s 82 libavcodec/lzw.c s->bbuf |= bytestream2_get_byte(&s->gb) << s->bbits; s 83 libavcodec/lzw.c s->bbits += 8; s 84 libavcodec/lzw.c s->bs--; s 86 libavcodec/lzw.c c = s->bbuf; s 87 libavcodec/lzw.c s->bbuf >>= s->cursize; s 89 libavcodec/lzw.c while (s->bbits < s->cursize) { s 90 libavcodec/lzw.c s->bbuf = (s->bbuf << 8) | bytestream2_get_byte(&s->gb); s 91 libavcodec/lzw.c s->bbits += 8; s 93 libavcodec/lzw.c c = s->bbuf >> (s->bbits - s->cursize); s 95 libavcodec/lzw.c s->bbits -= s->cursize; s 96 libavcodec/lzw.c return c & s->curmask; s 101 libavcodec/lzw.c struct LZWState *s = (struct LZWState *)p; s 103 libavcodec/lzw.c if(s->mode == FF_LZW_GIF) { s 104 libavcodec/lzw.c while (s->bs > 0 && bytestream2_get_bytes_left(&s->gb)) { s 105 libavcodec/lzw.c bytestream2_skip(&s->gb, s->bs); s 106 libavcodec/lzw.c s->bs = bytestream2_get_byte(&s->gb); s 109 libavcodec/lzw.c bytestream2_skip(&s->gb, bytestream2_get_bytes_left(&s->gb)); s 110 libavcodec/lzw.c return bytestream2_tell(&s->gb); s 133 libavcodec/lzw.c struct LZWState *s = (struct LZWState *)p; s 138 libavcodec/lzw.c bytestream2_init(&s->gb, buf, buf_size); s 139 libavcodec/lzw.c s->bbuf = 0; s 140 libavcodec/lzw.c s->bbits = 0; s 141 libavcodec/lzw.c s->bs = 0; s 144 libavcodec/lzw.c s->codesize = csize; s 145 libavcodec/lzw.c s->cursize = s->codesize + 1; s 146 libavcodec/lzw.c s->curmask = mask[s->cursize]; s 147 libavcodec/lzw.c s->top_slot = 1 << s->cursize; s 148 libavcodec/lzw.c s->clear_code = 1 << s->codesize; s 149 libavcodec/lzw.c s->end_code = s->clear_code + 1; s 150 libavcodec/lzw.c s->slot = s->newcodes = s->clear_code + 2; s 151 libavcodec/lzw.c s->oc = s->fc = -1; s 152 libavcodec/lzw.c s->sp = s->stack; s 154 libavcodec/lzw.c s->mode = mode; s 155 libavcodec/lzw.c s->extra_slot = s->mode == FF_LZW_TIFF; s 172 libavcodec/lzw.c struct LZWState *s = (struct LZWState *)p; s 174 libavcodec/lzw.c if (s->end_code < 0) s 178 libavcodec/lzw.c sp = s->sp; s 179 libavcodec/lzw.c oc = s->oc; s 180 libavcodec/lzw.c fc = s->fc; s 183 libavcodec/lzw.c while (sp > s->stack) { s 188 libavcodec/lzw.c c = lzw_get_code(s); s 189 libavcodec/lzw.c if (c == s->end_code) { s 191 libavcodec/lzw.c } else if (c == s->clear_code) { s 192 libavcodec/lzw.c s->cursize = s->codesize + 1; s 193 libavcodec/lzw.c s->curmask = mask[s->cursize]; s 194 libavcodec/lzw.c s->slot = s->newcodes; s 195 libavcodec/lzw.c s->top_slot = 1 << s->cursize; s 199 libavcodec/lzw.c if (code == s->slot && fc>=0) { s 202 libavcodec/lzw.c }else if(code >= s->slot) s 204 libavcodec/lzw.c while (code >= s->newcodes) { s 205 libavcodec/lzw.c *sp++ = s->suffix[code]; s 206 libavcodec/lzw.c code = s->prefix[code]; s 209 libavcodec/lzw.c if (s->slot < s->top_slot && oc>=0) { s 210 libavcodec/lzw.c s->suffix[s->slot] = code; s 211 libavcodec/lzw.c s->prefix[s->slot++] = oc; s 215 libavcodec/lzw.c if (s->slot >= s->top_slot - s->extra_slot) { s 216 libavcodec/lzw.c if (s->cursize < LZW_MAXBITS) { s 217 libavcodec/lzw.c s->top_slot <<= 1; s 218 libavcodec/lzw.c s->curmask = mask[++s->cursize]; s 223 libavcodec/lzw.c s->end_code = -1; s 225 libavcodec/lzw.c s->sp = sp; s 226 libavcodec/lzw.c s->oc = oc; s 227 libavcodec/lzw.c s->fc = fc; s 48 libavcodec/lzw.h int ff_lzw_decode_init(LZWState *s, int csize, const uint8_t *buf, int buf_size, int mode); s 49 libavcodec/lzw.h int ff_lzw_decode(LZWState *s, uint8_t *buf, int len); s 56 libavcodec/lzw.h void ff_lzw_encode_init(struct LZWEncodeState *s, uint8_t *outbuf, int outsize, s 59 libavcodec/lzw.h int ff_lzw_encode(struct LZWEncodeState * s, const uint8_t * inbuf, int insize); s 60 libavcodec/lzw.h int ff_lzw_encode_flush(struct LZWEncodeState *s, s 113 libavcodec/lzwenc.c static inline void writeCode(LZWEncodeState * s, int c) s 115 libavcodec/lzwenc.c av_assert2(0 <= c && c < 1 << s->bits); s 116 libavcodec/lzwenc.c s->put_bits(&s->pb, s->bits, c); s 127 libavcodec/lzwenc.c static inline int findCode(LZWEncodeState * s, uint8_t c, int hash_prefix) s 132 libavcodec/lzwenc.c while (s->tab[h].hash_prefix != LZW_PREFIX_FREE) { s 133 libavcodec/lzwenc.c if ((s->tab[h].suffix == c) s 134 libavcodec/lzwenc.c && (s->tab[h].hash_prefix == hash_prefix)) s 149 libavcodec/lzwenc.c static inline void addCode(LZWEncodeState * s, uint8_t c, int hash_prefix, int hash_code) s 151 libavcodec/lzwenc.c s->tab[hash_code].code = s->tabsize; s 152 libavcodec/lzwenc.c s->tab[hash_code].suffix = c; s 153 libavcodec/lzwenc.c s->tab[hash_code].hash_prefix = hash_prefix; s 155 libavcodec/lzwenc.c s->tabsize++; s 157 libavcodec/lzwenc.c if (s->tabsize >= (1 << s->bits) + (s->mode == FF_LZW_GIF)) s 158 libavcodec/lzwenc.c s->bits++; s 165 libavcodec/lzwenc.c static void clearTable(LZWEncodeState * s) s 169 libavcodec/lzwenc.c writeCode(s, s->clear_code); s 170 libavcodec/lzwenc.c s->bits = 9; s 172 libavcodec/lzwenc.c s->tab[i].hash_prefix = LZW_PREFIX_FREE; s 176 libavcodec/lzwenc.c s->tab[h].code = i; s 177 libavcodec/lzwenc.c s->tab[h].suffix = i; s 178 libavcodec/lzwenc.c s->tab[h].hash_prefix = LZW_PREFIX_EMPTY; s 180 libavcodec/lzwenc.c s->tabsize = 258; s 188 libavcodec/lzwenc.c static int writtenBytes(LZWEncodeState *s){ s 189 libavcodec/lzwenc.c int ret = put_bits_count(&s->pb) >> 3; s 190 libavcodec/lzwenc.c ret -= s->output_bytes; s 191 libavcodec/lzwenc.c s->output_bytes += ret; s 202 libavcodec/lzwenc.c void ff_lzw_encode_init(LZWEncodeState *s, uint8_t *outbuf, int outsize, s 206 libavcodec/lzwenc.c s->clear_code = 256; s 207 libavcodec/lzwenc.c s->end_code = 257; s 208 libavcodec/lzwenc.c s->maxbits = maxbits; s 209 libavcodec/lzwenc.c init_put_bits(&s->pb, outbuf, outsize); s 210 libavcodec/lzwenc.c s->bufsize = outsize; s 211 libavcodec/lzwenc.c av_assert0(s->maxbits >= 9 && s->maxbits <= LZW_MAXBITS); s 212 libavcodec/lzwenc.c s->maxcode = 1 << s->maxbits; s 213 libavcodec/lzwenc.c s->output_bytes = 0; s 214 libavcodec/lzwenc.c s->last_code = LZW_PREFIX_EMPTY; s 215 libavcodec/lzwenc.c s->bits = 9; s 216 libavcodec/lzwenc.c s->mode = mode; s 217 libavcodec/lzwenc.c s->put_bits = lzw_put_bits; s 227 libavcodec/lzwenc.c int ff_lzw_encode(LZWEncodeState * s, const uint8_t * inbuf, int insize) s 231 libavcodec/lzwenc.c if(insize * 3 > (s->bufsize - s->output_bytes) * 2){ s 235 libavcodec/lzwenc.c if (s->last_code == LZW_PREFIX_EMPTY) s 236 libavcodec/lzwenc.c clearTable(s); s 240 libavcodec/lzwenc.c int code = findCode(s, c, s->last_code); s 241 libavcodec/lzwenc.c if (s->tab[code].hash_prefix == LZW_PREFIX_FREE) { s 242 libavcodec/lzwenc.c writeCode(s, s->last_code); s 243 libavcodec/lzwenc.c addCode(s, c, s->last_code, code); s 246 libavcodec/lzwenc.c s->last_code = s->tab[code].code; s 247 libavcodec/lzwenc.c if (s->tabsize >= s->maxcode - 1) { s 248 libavcodec/lzwenc.c clearTable(s); s 252 libavcodec/lzwenc.c return writtenBytes(s); s 260 libavcodec/lzwenc.c int ff_lzw_encode_flush(LZWEncodeState *s, s 263 libavcodec/lzwenc.c if (s->last_code != -1) s 264 libavcodec/lzwenc.c writeCode(s, s->last_code); s 265 libavcodec/lzwenc.c writeCode(s, s->end_code); s 266 libavcodec/lzwenc.c if (s->mode == FF_LZW_GIF) s 267 libavcodec/lzwenc.c s->put_bits(&s->pb, 1, 0); s 269 libavcodec/lzwenc.c lzw_flush_put_bits(&s->pb); s 270 libavcodec/lzwenc.c s->last_code = -1; s 272 libavcodec/lzwenc.c return writtenBytes(s); s 215 libavcodec/magicyuv.c MagicYUVContext *s = avctx->priv_data; s 216 libavcodec/magicyuv.c int interlaced = s->interlaced; s 217 libavcodec/magicyuv.c const int bps = s->bps; s 218 libavcodec/magicyuv.c const int max = s->max - 1; s 219 libavcodec/magicyuv.c AVFrame *p = s->p; s 224 libavcodec/magicyuv.c for (i = 0; i < s->planes; i++) { s 226 libavcodec/magicyuv.c int height = AV_CEIL_RSHIFT(FFMIN(s->slice_height, avctx->coded_height - j * s->slice_height), s->vshift[i]); s 227 libavcodec/magicyuv.c int width = AV_CEIL_RSHIFT(avctx->coded_width, s->hshift[i]); s 228 libavcodec/magicyuv.c int sheight = AV_CEIL_RSHIFT(s->slice_height, s->vshift[i]); s 232 libavcodec/magicyuv.c int ret = init_get_bits8(&gb, s->buf + s->slices[i][j].start, s 233 libavcodec/magicyuv.c s->slices[i][j].size); s 258 libavcodec/magicyuv.c pix = get_vlc2(&gb, s->vlc[i].table, s->vlc[i].bits, 3); s 271 libavcodec/magicyuv.c s->llviddsp.add_left_pred_int16(dst, dst, max, width, 0); s 274 libavcodec/magicyuv.c s->llviddsp.add_left_pred_int16(dst, dst, max, width, 0); s 278 libavcodec/magicyuv.c s->llviddsp.add_left_pred_int16(dst, dst, max, width, dst[-fake_stride]); s 284 libavcodec/magicyuv.c s->llviddsp.add_left_pred_int16(dst, dst, max, width, 0); s 287 libavcodec/magicyuv.c s->llviddsp.add_left_pred_int16(dst, dst, max, width, 0); s 305 libavcodec/magicyuv.c s->llviddsp.add_left_pred_int16(dst, dst, max, width, 0); s 308 libavcodec/magicyuv.c s->llviddsp.add_left_pred_int16(dst, dst, max, width, 0); s 323 libavcodec/magicyuv.c if (s->decorrelate) { s 324 libavcodec/magicyuv.c int height = FFMIN(s->slice_height, avctx->coded_height - j * s->slice_height); s 326 libavcodec/magicyuv.c uint16_t *r = (uint16_t *)p->data[0] + j * s->slice_height * p->linesize[0] / 2; s 327 libavcodec/magicyuv.c uint16_t *g = (uint16_t *)p->data[1] + j * s->slice_height * p->linesize[1] / 2; s 328 libavcodec/magicyuv.c uint16_t *b = (uint16_t *)p->data[2] + j * s->slice_height * p->linesize[2] / 2; s 347 libavcodec/magicyuv.c MagicYUVContext *s = avctx->priv_data; s 348 libavcodec/magicyuv.c int interlaced = s->interlaced; s 349 libavcodec/magicyuv.c AVFrame *p = s->p; s 354 libavcodec/magicyuv.c for (i = 0; i < s->planes; i++) { s 356 libavcodec/magicyuv.c int height = AV_CEIL_RSHIFT(FFMIN(s->slice_height, avctx->coded_height - j * s->slice_height), s->vshift[i]); s 357 libavcodec/magicyuv.c int width = AV_CEIL_RSHIFT(avctx->coded_width, s->hshift[i]); s 358 libavcodec/magicyuv.c int sheight = AV_CEIL_RSHIFT(s->slice_height, s->vshift[i]); s 362 libavcodec/magicyuv.c int ret = init_get_bits8(&gb, s->buf + s->slices[i][j].start, s 363 libavcodec/magicyuv.c s->slices[i][j].size); s 388 libavcodec/magicyuv.c pix = get_vlc2(&gb, s->vlc[i].table, s->vlc[i].bits, 3); s 401 libavcodec/magicyuv.c s->llviddsp.add_left_pred(dst, dst, width, 0); s 404 libavcodec/magicyuv.c s->llviddsp.add_left_pred(dst, dst, width, 0); s 408 libavcodec/magicyuv.c s->llviddsp.add_left_pred(dst, dst, width, dst[-fake_stride]); s 414 libavcodec/magicyuv.c s->llviddsp.add_left_pred(dst, dst, width, 0); s 417 libavcodec/magicyuv.c s->llviddsp.add_left_pred(dst, dst, width, 0); s 432 libavcodec/magicyuv.c s->llviddsp.add_gradient_pred(dst + 32, fake_stride, width - 32); s 438 libavcodec/magicyuv.c s->llviddsp.add_left_pred(dst, dst, width, 0); s 441 libavcodec/magicyuv.c s->llviddsp.add_left_pred(dst, dst, width, 0); s 446 libavcodec/magicyuv.c s->llviddsp.add_median_pred(dst, dst - fake_stride, s 457 libavcodec/magicyuv.c if (s->decorrelate) { s 458 libavcodec/magicyuv.c int height = FFMIN(s->slice_height, avctx->coded_height - j * s->slice_height); s 460 libavcodec/magicyuv.c uint8_t *b = p->data[0] + j * s->slice_height * p->linesize[0]; s 461 libavcodec/magicyuv.c uint8_t *g = p->data[1] + j * s->slice_height * p->linesize[1]; s 462 libavcodec/magicyuv.c uint8_t *r = p->data[2] + j * s->slice_height * p->linesize[2]; s 465 libavcodec/magicyuv.c s->llviddsp.add_bytes(b, g, width); s 466 libavcodec/magicyuv.c s->llviddsp.add_bytes(r, g, width); s 478 libavcodec/magicyuv.c MagicYUVContext *s = avctx->priv_data; s 481 libavcodec/magicyuv.c memset(s->len, 0, sizeof(s->len)); s 489 libavcodec/magicyuv.c s->len[i][j + k] = x; s 494 libavcodec/magicyuv.c if (s->huff_build(&s->vlc[i], s->len[i])) { s 499 libavcodec/magicyuv.c if (i == s->planes) { s 508 libavcodec/magicyuv.c if (i != s->planes) { s 519 libavcodec/magicyuv.c MagicYUVContext *s = avctx->priv_data; s 545 libavcodec/magicyuv.c s->hshift[1] = s 546 libavcodec/magicyuv.c s->vshift[1] = s 547 libavcodec/magicyuv.c s->hshift[2] = s 548 libavcodec/magicyuv.c s->vshift[2] = 0; s 549 libavcodec/magicyuv.c s->decorrelate = 0; s 550 libavcodec/magicyuv.c s->bps = 8; s 556 libavcodec/magicyuv.c s->decorrelate = 1; s 560 libavcodec/magicyuv.c s->decorrelate = 1; s 567 libavcodec/magicyuv.c s->hshift[1] = s 568 libavcodec/magicyuv.c s->hshift[2] = 1; s 572 libavcodec/magicyuv.c s->hshift[1] = s 573 libavcodec/magicyuv.c s->vshift[1] = s 574 libavcodec/magicyuv.c s->hshift[2] = s 575 libavcodec/magicyuv.c s->vshift[2] = 1; s 585 libavcodec/magicyuv.c s->hshift[1] = s 586 libavcodec/magicyuv.c s->hshift[2] = 1; s 587 libavcodec/magicyuv.c s->bps = 10; s 591 libavcodec/magicyuv.c s->bps = 10; s 595 libavcodec/magicyuv.c s->decorrelate = 1; s 596 libavcodec/magicyuv.c s->bps = 10; s 600 libavcodec/magicyuv.c s->decorrelate = 1; s 601 libavcodec/magicyuv.c s->bps = 10; s 605 libavcodec/magicyuv.c s->decorrelate = 1; s 606 libavcodec/magicyuv.c s->bps = 12; s 610 libavcodec/magicyuv.c s->decorrelate = 1; s 611 libavcodec/magicyuv.c s->bps = 12; s 615 libavcodec/magicyuv.c s->bps = 10; s 621 libavcodec/magicyuv.c s->max = 1 << s->bps; s 622 libavcodec/magicyuv.c s->magy_decode_slice = s->bps == 8 ? magy_decode_slice : magy_decode_slice10; s 623 libavcodec/magicyuv.c if ( s->bps == 8) s 624 libavcodec/magicyuv.c s->huff_build = huff_build; s 626 libavcodec/magicyuv.c s->huff_build = s->bps == 10 ? huff_build10 : huff_build12; s 627 libavcodec/magicyuv.c s->planes = av_pix_fmt_count_planes(avctx->pix_fmt); s 630 libavcodec/magicyuv.c s->color_matrix = bytestream2_get_byte(&gbyte); s 631 libavcodec/magicyuv.c s->flags = bytestream2_get_byte(&gbyte); s 632 libavcodec/magicyuv.c s->interlaced = !!(s->flags & 2); s 646 libavcodec/magicyuv.c s->slice_height = bytestream2_get_le32(&gbyte); s 647 libavcodec/magicyuv.c if (s->slice_height <= 0 || s->slice_height > INT_MAX - avctx->coded_height) { s 649 libavcodec/magicyuv.c "invalid slice height: %d\n", s->slice_height); s 655 libavcodec/magicyuv.c s->nb_slices = (avctx->coded_height + s->slice_height - 1) / s->slice_height; s 656 libavcodec/magicyuv.c if (s->nb_slices > INT_MAX / sizeof(Slice)) { s 658 libavcodec/magicyuv.c "invalid number of slices: %d\n", s->nb_slices); s 662 libavcodec/magicyuv.c if (s->interlaced) { s 663 libavcodec/magicyuv.c if ((s->slice_height >> s->vshift[1]) < 2) { s 667 libavcodec/magicyuv.c if ((avctx->coded_height % s->slice_height) && ((avctx->coded_height % s->slice_height) >> s->vshift[1]) < 2) { s 673 libavcodec/magicyuv.c for (i = 0; i < s->planes; i++) { s 674 libavcodec/magicyuv.c av_fast_malloc(&s->slices[i], &s->slices_size[i], s->nb_slices * sizeof(Slice)); s 675 libavcodec/magicyuv.c if (!s->slices[i]) s 685 libavcodec/magicyuv.c for (j = 0; j < s->nb_slices - 1; j++) { s 686 libavcodec/magicyuv.c s->slices[i][j].start = offset + header_size; s 692 libavcodec/magicyuv.c s->slices[i][j].size = next_offset - offset; s 696 libavcodec/magicyuv.c s->slices[i][j].start = offset + header_size; s 697 libavcodec/magicyuv.c s->slices[i][j].size = avpkt->size - s->slices[i][j].start; s 700 libavcodec/magicyuv.c if (bytestream2_get_byte(&gbyte) != s->planes) s 703 libavcodec/magicyuv.c bytestream2_skip(&gbyte, s->nb_slices * s->planes); s 713 libavcodec/magicyuv.c ret = build_huffman(avctx, &gbit, s->max); s 723 libavcodec/magicyuv.c s->buf = avpkt->data; s 724 libavcodec/magicyuv.c s->p = p; s 725 libavcodec/magicyuv.c avctx->execute2(avctx, s->magy_decode_slice, NULL, NULL, s->nb_slices); s 736 libavcodec/magicyuv.c switch (s->color_matrix) { s 744 libavcodec/magicyuv.c p->color_range = (s->flags & 4) ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG; s 754 libavcodec/magicyuv.c MagicYUVContext *s = avctx->priv_data; s 755 libavcodec/magicyuv.c ff_llviddsp_init(&s->llviddsp); s 761 libavcodec/magicyuv.c MagicYUVContext * const s = avctx->priv_data; s 764 libavcodec/magicyuv.c for (i = 0; i < FF_ARRAY_ELEMS(s->slices); i++) { s 765 libavcodec/magicyuv.c av_freep(&s->slices[i]); s 766 libavcodec/magicyuv.c s->slices_size[i] = 0; s 767 libavcodec/magicyuv.c ff_free_vlc(&s->vlc[i]); s 70 libavcodec/magicyuvenc.c void (*predict)(struct MagicYUVContext *s, uint8_t *src, uint8_t *dst, s 74 libavcodec/magicyuvenc.c static void left_predict(MagicYUVContext *s, s 98 libavcodec/magicyuvenc.c static void gradient_predict(MagicYUVContext *s, s 126 libavcodec/magicyuvenc.c static void median_predict(MagicYUVContext *s, s 141 libavcodec/magicyuvenc.c s->llvidencdsp.sub_median_pred(dst, src - stride, src, width, &left, &lefttop); s 149 libavcodec/magicyuvenc.c MagicYUVContext *s = avctx->priv_data; s 156 libavcodec/magicyuvenc.c s->correlate = 1; s 157 libavcodec/magicyuvenc.c s->format = 0x65; s 161 libavcodec/magicyuvenc.c s->correlate = 1; s 162 libavcodec/magicyuvenc.c s->format = 0x66; s 166 libavcodec/magicyuvenc.c s->hshift[1] = s 167 libavcodec/magicyuvenc.c s->vshift[1] = s 168 libavcodec/magicyuvenc.c s->hshift[2] = s 169 libavcodec/magicyuvenc.c s->vshift[2] = 1; s 170 libavcodec/magicyuvenc.c s->format = 0x69; s 174 libavcodec/magicyuvenc.c s->hshift[1] = s 175 libavcodec/magicyuvenc.c s->hshift[2] = 1; s 176 libavcodec/magicyuvenc.c s->format = 0x68; s 180 libavcodec/magicyuvenc.c s->format = 0x67; s 184 libavcodec/magicyuvenc.c s->format = 0x6a; s 188 libavcodec/magicyuvenc.c s->format = 0x6b; s 196 libavcodec/magicyuvenc.c ff_llvidencdsp_init(&s->llvidencdsp); s 198 libavcodec/magicyuvenc.c s->planes = av_pix_fmt_count_planes(avctx->pix_fmt); s 200 libavcodec/magicyuvenc.c s->nb_slices = 1; s 202 libavcodec/magicyuvenc.c for (i = 0; i < s->planes; i++) { s 203 libavcodec/magicyuvenc.c s->slices[i] = av_malloc(avctx->width * (avctx->height + 2) + s 205 libavcodec/magicyuvenc.c if (!s->slices[i]) { s 211 libavcodec/magicyuvenc.c switch (s->frame_pred) { s 212 libavcodec/magicyuvenc.c case LEFT: s->predict = left_predict; break; s 213 libavcodec/magicyuvenc.c case GRADIENT: s->predict = gradient_predict; break; s 214 libavcodec/magicyuvenc.c case MEDIAN: s->predict = median_predict; break; s 231 libavcodec/magicyuvenc.c bytestream2_put_byte(&pb, s->format); s 426 libavcodec/magicyuvenc.c MagicYUVContext *s = avctx->priv_data; s 431 libavcodec/magicyuvenc.c ret = ff_alloc_packet2(avctx, pkt, (256 + 4 * s->nb_slices + width * height) * s 432 libavcodec/magicyuvenc.c s->planes + 256, 0); s 440 libavcodec/magicyuvenc.c bytestream2_put_byte(&pb, s->format); s 455 libavcodec/magicyuvenc.c for (i = 0; i < s->planes; i++) { s 457 libavcodec/magicyuvenc.c for (j = 1; j < s->nb_slices; j++) { s 462 libavcodec/magicyuvenc.c bytestream2_put_byte(&pb, s->planes); s 464 libavcodec/magicyuvenc.c for (i = 0; i < s->planes; i++) { s 465 libavcodec/magicyuvenc.c for (slice = 0; slice < s->nb_slices; slice++) { s 470 libavcodec/magicyuvenc.c if (s->correlate) { s 479 libavcodec/magicyuvenc.c s->llvidencdsp.diff_bytes(b, b, g, width); s 480 libavcodec/magicyuvenc.c s->llvidencdsp.diff_bytes(r, r, g, width); s 489 libavcodec/magicyuvenc.c for (i = 0; i < s->planes; i++) { s 490 libavcodec/magicyuvenc.c for (slice = 0; slice < s->nb_slices; slice++) { s 491 libavcodec/magicyuvenc.c s->predict(s, p->data[i], s->slices[i], p->linesize[i], s 498 libavcodec/magicyuvenc.c for (i = 0; i < s->planes; i++) { s 499 libavcodec/magicyuvenc.c for (slice = 0; slice < s->nb_slices; slice++) { s 500 libavcodec/magicyuvenc.c s->predict(s, frame->data[i], s->slices[i], frame->linesize[i], s 501 libavcodec/magicyuvenc.c AV_CEIL_RSHIFT(frame->width, s->hshift[i]), s 502 libavcodec/magicyuvenc.c AV_CEIL_RSHIFT(frame->height, s->vshift[i])); s 507 libavcodec/magicyuvenc.c init_put_bits(&s->pb, pkt->data + bytestream2_tell_p(&pb), bytestream2_get_bytes_left_p(&pb)); s 509 libavcodec/magicyuvenc.c for (i = 0; i < s->planes; i++) { s 510 libavcodec/magicyuvenc.c encode_table(avctx, s->slices[i], s 511 libavcodec/magicyuvenc.c AV_CEIL_RSHIFT(frame->width, s->hshift[i]), s 512 libavcodec/magicyuvenc.c AV_CEIL_RSHIFT(frame->height, s->vshift[i]), s 513 libavcodec/magicyuvenc.c &s->pb, s->he[i]); s 515 libavcodec/magicyuvenc.c s->tables_size = (put_bits_count(&s->pb) + 7) >> 3; s 516 libavcodec/magicyuvenc.c bytestream2_skip_p(&pb, s->tables_size); s 518 libavcodec/magicyuvenc.c for (i = 0; i < s->planes; i++) { s 521 libavcodec/magicyuvenc.c s->slice_pos[i] = bytestream2_tell_p(&pb); s 522 libavcodec/magicyuvenc.c slice_size = encode_slice(s->slices[i], pkt->data + bytestream2_tell_p(&pb), s 524 libavcodec/magicyuvenc.c AV_CEIL_RSHIFT(frame->width, s->hshift[i]), s 525 libavcodec/magicyuvenc.c AV_CEIL_RSHIFT(frame->height, s->vshift[i]), s 526 libavcodec/magicyuvenc.c s->he[i], s->frame_pred); s 532 libavcodec/magicyuvenc.c bytestream2_put_le32(&pb, s->slice_pos[0] - 32); s 533 libavcodec/magicyuvenc.c for (i = 0; i < s->planes; i++) { s 534 libavcodec/magicyuvenc.c bytestream2_put_le32(&pb, s->slice_pos[i] - 32); s 548 libavcodec/magicyuvenc.c MagicYUVContext *s = avctx->priv_data; s 551 libavcodec/magicyuvenc.c for (i = 0; i < s->planes; i++) s 552 libavcodec/magicyuvenc.c av_freep(&s->slices[i]); s 58 libavcodec/mathops.h # define MULL(a,b,s) (MUL64(a, b) >> (s)) s 133 libavcodec/mathops.h union { unsigned u; int s; } v = { (unsigned) val << shift }; s 134 libavcodec/mathops.h return v.s >> shift; s 162 libavcodec/mathops.h # define NEG_SSR32(a,s) ((( int32_t)(a))>>(32-(s))) s 166 libavcodec/mathops.h # define NEG_USR32(a,s) (((uint32_t)(a))>>(32-(s))) s 218 libavcodec/mathops.h int s = av_log2_16bit(a >> 16) >> 1; s 219 libavcodec/mathops.h unsigned int c = a >> (s + 2); s 220 libavcodec/mathops.h b = ff_sqrt_tab[c >> (s + 8)]; s 221 libavcodec/mathops.h b = FASTDIV(c,b) + (b << s); s 45 libavcodec/mdct15.c MDCT15Context *s = *ps; s 47 libavcodec/mdct15.c if (!s) s 50 libavcodec/mdct15.c ff_fft_end(&s->ptwo_fft); s 52 libavcodec/mdct15.c av_freep(&s->pfa_prereindex); s 53 libavcodec/mdct15.c av_freep(&s->pfa_postreindex); s 54 libavcodec/mdct15.c av_freep(&s->twiddle_exptab); s 55 libavcodec/mdct15.c av_freep(&s->tmp); s 60 libavcodec/mdct15.c static inline int init_pfa_reindex_tabs(MDCT15Context *s) s 63 libavcodec/mdct15.c const int b_ptwo = s->ptwo_fft.nbits; /* Bits for the power of two FFTs */ s 68 libavcodec/mdct15.c s->pfa_prereindex = av_malloc_array(15 * l_ptwo, sizeof(*s->pfa_prereindex)); s 69 libavcodec/mdct15.c if (!s->pfa_prereindex) s 72 libavcodec/mdct15.c s->pfa_postreindex = av_malloc_array(15 * l_ptwo, sizeof(*s->pfa_postreindex)); s 73 libavcodec/mdct15.c if (!s->pfa_postreindex) s 83 libavcodec/mdct15.c s->pfa_prereindex[i*15 + j] = k_pre << 1; s 84 libavcodec/mdct15.c s->pfa_postreindex[k_post] = l_ptwo*j + i; s 166 libavcodec/mdct15.c static void mdct15(MDCT15Context *s, float *dst, const float *src, ptrdiff_t stride) s 169 libavcodec/mdct15.c const int len4 = s->len4, len3 = len4 * 3, len8 = len4 >> 1; s 170 libavcodec/mdct15.c const int l_ptwo = 1 << s->ptwo_fft.nbits; s 176 libavcodec/mdct15.c const int k = s->pfa_prereindex[i*15 + j]; s 177 libavcodec/mdct15.c FFTComplex tmp, exp = s->twiddle_exptab[k >> 1]; s 187 libavcodec/mdct15.c s->fft15(s->tmp + s->ptwo_fft.revtab[i], fft15in, s->exptab, l_ptwo); s 192 libavcodec/mdct15.c s->ptwo_fft.fft_calc(&s->ptwo_fft, s->tmp + l_ptwo*i); s 197 libavcodec/mdct15.c const int s0 = s->pfa_postreindex[i0], s1 = s->pfa_postreindex[i1]; s 199 libavcodec/mdct15.c CMUL(dst[2*i1*stride + stride], dst[2*i0*stride], s->tmp[s0].re, s->tmp[s0].im, s 200 libavcodec/mdct15.c s->twiddle_exptab[i0].im, s->twiddle_exptab[i0].re); s 201 libavcodec/mdct15.c CMUL(dst[2*i0*stride + stride], dst[2*i1*stride], s->tmp[s1].re, s->tmp[s1].im, s 202 libavcodec/mdct15.c s->twiddle_exptab[i1].im, s->twiddle_exptab[i1].re); s 206 libavcodec/mdct15.c static void imdct15_half(MDCT15Context *s, float *dst, const float *src, s 211 libavcodec/mdct15.c int i, j, len8 = s->len4 >> 1, l_ptwo = 1 << s->ptwo_fft.nbits; s 212 libavcodec/mdct15.c const float *in1 = src, *in2 = src + (s->len2 - 1) * stride; s 217 libavcodec/mdct15.c const int k = s->pfa_prereindex[i*15 + j]; s 219 libavcodec/mdct15.c CMUL3(fft15in[j], tmp, s->twiddle_exptab[k >> 1]); s 221 libavcodec/mdct15.c s->fft15(s->tmp + s->ptwo_fft.revtab[i], fft15in, s->exptab, l_ptwo); s 226 libavcodec/mdct15.c s->ptwo_fft.fft_calc(&s->ptwo_fft, s->tmp + l_ptwo*i); s 229 libavcodec/mdct15.c s->postreindex(z, s->tmp, s->twiddle_exptab, s->pfa_postreindex, len8); s 249 libavcodec/mdct15.c MDCT15Context *s; s 259 libavcodec/mdct15.c s = av_mallocz(sizeof(*s)); s 260 libavcodec/mdct15.c if (!s) s 263 libavcodec/mdct15.c s->fft_n = N - 1; s 264 libavcodec/mdct15.c s->len4 = len2 / 2; s 265 libavcodec/mdct15.c s->len2 = len2; s 266 libavcodec/mdct15.c s->inverse = inverse; s 267 libavcodec/mdct15.c s->fft15 = fft15_c; s 268 libavcodec/mdct15.c s->mdct = mdct15; s 269 libavcodec/mdct15.c s->imdct_half = imdct15_half; s 270 libavcodec/mdct15.c s->postreindex = postrotate_c; s 272 libavcodec/mdct15.c if (ff_fft_init(&s->ptwo_fft, N - 1, s->inverse) < 0) s 275 libavcodec/mdct15.c if (init_pfa_reindex_tabs(s)) s 278 libavcodec/mdct15.c s->tmp = av_malloc_array(len, 2 * sizeof(*s->tmp)); s 279 libavcodec/mdct15.c if (!s->tmp) s 282 libavcodec/mdct15.c s->twiddle_exptab = av_malloc_array(s->len4, sizeof(*s->twiddle_exptab)); s 283 libavcodec/mdct15.c if (!s->twiddle_exptab) s 286 libavcodec/mdct15.c theta = 0.125f + (scale < 0 ? s->len4 : 0); s 288 libavcodec/mdct15.c for (i = 0; i < s->len4; i++) { s 290 libavcodec/mdct15.c s->twiddle_exptab[i].re = cosf(alpha) * scale; s 291 libavcodec/mdct15.c s->twiddle_exptab[i].im = sinf(alpha) * scale; s 298 libavcodec/mdct15.c if (!s->inverse) s 300 libavcodec/mdct15.c s->exptab[i].re = cosf(theta); s 301 libavcodec/mdct15.c s->exptab[i].im = sinf(theta); s 303 libavcodec/mdct15.c s->exptab[i] = s->exptab[i - 15]; s 308 libavcodec/mdct15.c s->exptab[19].re = cosf(2.0f * M_PI / 5.0f); s 309 libavcodec/mdct15.c s->exptab[19].im = sinf(2.0f * M_PI / 5.0f); s 310 libavcodec/mdct15.c s->exptab[20].re = cosf(1.0f * M_PI / 5.0f); s 311 libavcodec/mdct15.c s->exptab[20].im = sinf(1.0f * M_PI / 5.0f); s 314 libavcodec/mdct15.c if (s->inverse) { s 315 libavcodec/mdct15.c s->exptab[19].im *= -1; s 316 libavcodec/mdct15.c s->exptab[20].im *= -1; s 320 libavcodec/mdct15.c ff_mdct15_init_x86(s); s 322 libavcodec/mdct15.c *ps = s; s 327 libavcodec/mdct15.c ff_mdct15_uninit(&s); s 49 libavcodec/mdct15.h void (*mdct)(struct MDCT15Context *s, float *dst, const float *src, ptrdiff_t stride); s 52 libavcodec/mdct15.h void (*imdct_half)(struct MDCT15Context *s, float *dst, const float *src, s 60 libavcodec/mdct15.h void ff_mdct15_init_x86(MDCT15Context *s); s 24 libavcodec/mdct_fixed.c void ff_mdct_calcw_c(FFTContext *s, FFTDouble *out, const FFTSample *input) s 28 libavcodec/mdct_fixed.c const uint16_t *revtab = s->revtab; s 29 libavcodec/mdct_fixed.c const FFTSample *tcos = s->tcos; s 30 libavcodec/mdct_fixed.c const FFTSample *tsin = s->tsin; s 31 libavcodec/mdct_fixed.c FFTComplex *x = s->tmp_buf; s 34 libavcodec/mdct_fixed.c n = 1 << s->mdct_bits; s 53 libavcodec/mdct_fixed.c s->fft_calc(s, x); s 48 libavcodec/mdct_template.c av_cold int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale) s 54 libavcodec/mdct_template.c memset(s, 0, sizeof(*s)); s 56 libavcodec/mdct_template.c s->mdct_bits = nbits; s 57 libavcodec/mdct_template.c s->mdct_size = n; s 59 libavcodec/mdct_template.c s->mdct_permutation = FF_MDCT_PERM_NONE; s 61 libavcodec/mdct_template.c if (ff_fft_init(s, s->mdct_bits - 2, inverse) < 0) s 64 libavcodec/mdct_template.c s->tcos = av_malloc_array(n/2, sizeof(FFTSample)); s 65 libavcodec/mdct_template.c if (!s->tcos) s 68 libavcodec/mdct_template.c switch (s->mdct_permutation) { s 70 libavcodec/mdct_template.c s->tsin = s->tcos + n4; s 74 libavcodec/mdct_template.c s->tsin = s->tcos + 1; s 86 libavcodec/mdct_template.c s->tcos[i*tstep] = lrint(-cos(alpha) * 2147483648.0); s 87 libavcodec/mdct_template.c s->tsin[i*tstep] = lrint(-sin(alpha) * 2147483648.0); s 89 libavcodec/mdct_template.c s->tcos[i*tstep] = FIX15(-cos(alpha) * scale); s 90 libavcodec/mdct_template.c s->tsin[i*tstep] = FIX15(-sin(alpha) * scale); s 95 libavcodec/mdct_template.c ff_mdct_end(s); s 105 libavcodec/mdct_template.c void ff_imdct_half_c(FFTContext *s, FFTSample *output, const FFTSample *input) s 108 libavcodec/mdct_template.c const uint16_t *revtab = s->revtab; s 109 libavcodec/mdct_template.c const FFTSample *tcos = s->tcos; s 110 libavcodec/mdct_template.c const FFTSample *tsin = s->tsin; s 114 libavcodec/mdct_template.c n = 1 << s->mdct_bits; s 128 libavcodec/mdct_template.c s->fft_calc(s, z); s 147 libavcodec/mdct_template.c void ff_imdct_calc_c(FFTContext *s, FFTSample *output, const FFTSample *input) s 150 libavcodec/mdct_template.c int n = 1 << s->mdct_bits; s 154 libavcodec/mdct_template.c ff_imdct_half_c(s, output+n4, input); s 167 libavcodec/mdct_template.c void ff_mdct_calc_c(FFTContext *s, FFTSample *out, const FFTSample *input) s 171 libavcodec/mdct_template.c const uint16_t *revtab = s->revtab; s 172 libavcodec/mdct_template.c const FFTSample *tcos = s->tcos; s 173 libavcodec/mdct_template.c const FFTSample *tsin = s->tsin; s 176 libavcodec/mdct_template.c n = 1 << s->mdct_bits; s 195 libavcodec/mdct_template.c s->fft_calc(s, x); s 209 libavcodec/mdct_template.c av_cold void ff_mdct_end(FFTContext *s) s 211 libavcodec/mdct_template.c av_freep(&s->tcos); s 212 libavcodec/mdct_template.c ff_fft_end(s); s 71 libavcodec/me_cmp.c int s = 0, i; s 75 libavcodec/me_cmp.c s += sq[pix1[0] - pix2[0]]; s 76 libavcodec/me_cmp.c s += sq[pix1[1] - pix2[1]]; s 77 libavcodec/me_cmp.c s += sq[pix1[2] - pix2[2]]; s 78 libavcodec/me_cmp.c s += sq[pix1[3] - pix2[3]]; s 82 libavcodec/me_cmp.c return s; s 88 libavcodec/me_cmp.c int s = 0, i; s 92 libavcodec/me_cmp.c s += sq[pix1[0] - pix2[0]]; s 93 libavcodec/me_cmp.c s += sq[pix1[1] - pix2[1]]; s 94 libavcodec/me_cmp.c s += sq[pix1[2] - pix2[2]]; s 95 libavcodec/me_cmp.c s += sq[pix1[3] - pix2[3]]; s 96 libavcodec/me_cmp.c s += sq[pix1[4] - pix2[4]]; s 97 libavcodec/me_cmp.c s += sq[pix1[5] - pix2[5]]; s 98 libavcodec/me_cmp.c s += sq[pix1[6] - pix2[6]]; s 99 libavcodec/me_cmp.c s += sq[pix1[7] - pix2[7]]; s 103 libavcodec/me_cmp.c return s; s 109 libavcodec/me_cmp.c int s = 0, i; s 113 libavcodec/me_cmp.c s += sq[pix1[0] - pix2[0]]; s 114 libavcodec/me_cmp.c s += sq[pix1[1] - pix2[1]]; s 115 libavcodec/me_cmp.c s += sq[pix1[2] - pix2[2]]; s 116 libavcodec/me_cmp.c s += sq[pix1[3] - pix2[3]]; s 117 libavcodec/me_cmp.c s += sq[pix1[4] - pix2[4]]; s 118 libavcodec/me_cmp.c s += sq[pix1[5] - pix2[5]]; s 119 libavcodec/me_cmp.c s += sq[pix1[6] - pix2[6]]; s 120 libavcodec/me_cmp.c s += sq[pix1[7] - pix2[7]]; s 121 libavcodec/me_cmp.c s += sq[pix1[8] - pix2[8]]; s 122 libavcodec/me_cmp.c s += sq[pix1[9] - pix2[9]]; s 123 libavcodec/me_cmp.c s += sq[pix1[10] - pix2[10]]; s 124 libavcodec/me_cmp.c s += sq[pix1[11] - pix2[11]]; s 125 libavcodec/me_cmp.c s += sq[pix1[12] - pix2[12]]; s 126 libavcodec/me_cmp.c s += sq[pix1[13] - pix2[13]]; s 127 libavcodec/me_cmp.c s += sq[pix1[14] - pix2[14]]; s 128 libavcodec/me_cmp.c s += sq[pix1[15] - pix2[15]]; s 133 libavcodec/me_cmp.c return s; s 151 libavcodec/me_cmp.c int s = 0, i; s 154 libavcodec/me_cmp.c s += abs(pix1[0] - pix2[0]); s 155 libavcodec/me_cmp.c s += abs(pix1[1] - pix2[1]); s 156 libavcodec/me_cmp.c s += abs(pix1[2] - pix2[2]); s 157 libavcodec/me_cmp.c s += abs(pix1[3] - pix2[3]); s 158 libavcodec/me_cmp.c s += abs(pix1[4] - pix2[4]); s 159 libavcodec/me_cmp.c s += abs(pix1[5] - pix2[5]); s 160 libavcodec/me_cmp.c s += abs(pix1[6] - pix2[6]); s 161 libavcodec/me_cmp.c s += abs(pix1[7] - pix2[7]); s 162 libavcodec/me_cmp.c s += abs(pix1[8] - pix2[8]); s 163 libavcodec/me_cmp.c s += abs(pix1[9] - pix2[9]); s 164 libavcodec/me_cmp.c s += abs(pix1[10] - pix2[10]); s 165 libavcodec/me_cmp.c s += abs(pix1[11] - pix2[11]); s 166 libavcodec/me_cmp.c s += abs(pix1[12] - pix2[12]); s 167 libavcodec/me_cmp.c s += abs(pix1[13] - pix2[13]); s 168 libavcodec/me_cmp.c s += abs(pix1[14] - pix2[14]); s 169 libavcodec/me_cmp.c s += abs(pix1[15] - pix2[15]); s 173 libavcodec/me_cmp.c return s; s 179 libavcodec/me_cmp.c int s = 0, i, j; s 183 libavcodec/me_cmp.c s += abs(V(0)); s 184 libavcodec/me_cmp.c s += abs(V(1) - V(0)); s 185 libavcodec/me_cmp.c s += abs(V(2) - V(1)); s 186 libavcodec/me_cmp.c s += abs(V(3) - V(2)); s 187 libavcodec/me_cmp.c s += abs(V(4) - V(3)); s 188 libavcodec/me_cmp.c s += abs(V(5) - V(4)); s 189 libavcodec/me_cmp.c s += abs(V(6) - V(5)); s 190 libavcodec/me_cmp.c s += abs(V(7) - V(6)); s 191 libavcodec/me_cmp.c s += abs(V(8) - V(7)); s 192 libavcodec/me_cmp.c s += abs(V(9) - V(8)); s 193 libavcodec/me_cmp.c s += abs(V(10) - V(9)); s 194 libavcodec/me_cmp.c s += abs(V(11) - V(10)); s 195 libavcodec/me_cmp.c s += abs(V(12) - V(11)); s 196 libavcodec/me_cmp.c s += abs(V(13) - V(12)); s 197 libavcodec/me_cmp.c s += abs(V(14) - V(13)); s 198 libavcodec/me_cmp.c s += abs(V(15) - V(14)); s 204 libavcodec/me_cmp.c s += abs(V(0) - V(-stride)); s 206 libavcodec/me_cmp.c s += abs(V(j) - mid_pred(V(j-stride), V(j-1), V(j-stride) + V(j-1) - V(j-stride-1))); s 212 libavcodec/me_cmp.c return s; s 218 libavcodec/me_cmp.c int s = 0, i; s 221 libavcodec/me_cmp.c s += abs(pix1[0] - avg2(pix2[0], pix2[1])); s 222 libavcodec/me_cmp.c s += abs(pix1[1] - avg2(pix2[1], pix2[2])); s 223 libavcodec/me_cmp.c s += abs(pix1[2] - avg2(pix2[2], pix2[3])); s 224 libavcodec/me_cmp.c s += abs(pix1[3] - avg2(pix2[3], pix2[4])); s 225 libavcodec/me_cmp.c s += abs(pix1[4] - avg2(pix2[4], pix2[5])); s 226 libavcodec/me_cmp.c s += abs(pix1[5] - avg2(pix2[5], pix2[6])); s 227 libavcodec/me_cmp.c s += abs(pix1[6] - avg2(pix2[6], pix2[7])); s 228 libavcodec/me_cmp.c s += abs(pix1[7] - avg2(pix2[7], pix2[8])); s 229 libavcodec/me_cmp.c s += abs(pix1[8] - avg2(pix2[8], pix2[9])); s 230 libavcodec/me_cmp.c s += abs(pix1[9] - avg2(pix2[9], pix2[10])); s 231 libavcodec/me_cmp.c s += abs(pix1[10] - avg2(pix2[10], pix2[11])); s 232 libavcodec/me_cmp.c s += abs(pix1[11] - avg2(pix2[11], pix2[12])); s 233 libavcodec/me_cmp.c s += abs(pix1[12] - avg2(pix2[12], pix2[13])); s 234 libavcodec/me_cmp.c s += abs(pix1[13] - avg2(pix2[13], pix2[14])); s 235 libavcodec/me_cmp.c s += abs(pix1[14] - avg2(pix2[14], pix2[15])); s 236 libavcodec/me_cmp.c s += abs(pix1[15] - avg2(pix2[15], pix2[16])); s 240 libavcodec/me_cmp.c return s; s 246 libavcodec/me_cmp.c int s = 0, i; s 250 libavcodec/me_cmp.c s += abs(pix1[0] - avg2(pix2[0], pix3[0])); s 251 libavcodec/me_cmp.c s += abs(pix1[1] - avg2(pix2[1], pix3[1])); s 252 libavcodec/me_cmp.c s += abs(pix1[2] - avg2(pix2[2], pix3[2])); s 253 libavcodec/me_cmp.c s += abs(pix1[3] - avg2(pix2[3], pix3[3])); s 254 libavcodec/me_cmp.c s += abs(pix1[4] - avg2(pix2[4], pix3[4])); s 255 libavcodec/me_cmp.c s += abs(pix1[5] - avg2(pix2[5], pix3[5])); s 256 libavcodec/me_cmp.c s += abs(pix1[6] - avg2(pix2[6], pix3[6])); s 257 libavcodec/me_cmp.c s += abs(pix1[7] - avg2(pix2[7], pix3[7])); s 258 libavcodec/me_cmp.c s += abs(pix1[8] - avg2(pix2[8], pix3[8])); s 259 libavcodec/me_cmp.c s += abs(pix1[9] - avg2(pix2[9], pix3[9])); s 260 libavcodec/me_cmp.c s += abs(pix1[10] - avg2(pix2[10], pix3[10])); s 261 libavcodec/me_cmp.c s += abs(pix1[11] - avg2(pix2[11], pix3[11])); s 262 libavcodec/me_cmp.c s += abs(pix1[12] - avg2(pix2[12], pix3[12])); s 263 libavcodec/me_cmp.c s += abs(pix1[13] - avg2(pix2[13], pix3[13])); s 264 libavcodec/me_cmp.c s += abs(pix1[14] - avg2(pix2[14], pix3[14])); s 265 libavcodec/me_cmp.c s += abs(pix1[15] - avg2(pix2[15], pix3[15])); s 270 libavcodec/me_cmp.c return s; s 276 libavcodec/me_cmp.c int s = 0, i; s 280 libavcodec/me_cmp.c s += abs(pix1[0] - avg4(pix2[0], pix2[1], pix3[0], pix3[1])); s 281 libavcodec/me_cmp.c s += abs(pix1[1] - avg4(pix2[1], pix2[2], pix3[1], pix3[2])); s 282 libavcodec/me_cmp.c s += abs(pix1[2] - avg4(pix2[2], pix2[3], pix3[2], pix3[3])); s 283 libavcodec/me_cmp.c s += abs(pix1[3] - avg4(pix2[3], pix2[4], pix3[3], pix3[4])); s 284 libavcodec/me_cmp.c s += abs(pix1[4] - avg4(pix2[4], pix2[5], pix3[4], pix3[5])); s 285 libavcodec/me_cmp.c s += abs(pix1[5] - avg4(pix2[5], pix2[6], pix3[5], pix3[6])); s 286 libavcodec/me_cmp.c s += abs(pix1[6] - avg4(pix2[6], pix2[7], pix3[6], pix3[7])); s 287 libavcodec/me_cmp.c s += abs(pix1[7] - avg4(pix2[7], pix2[8], pix3[7], pix3[8])); s 288 libavcodec/me_cmp.c s += abs(pix1[8] - avg4(pix2[8], pix2[9], pix3[8], pix3[9])); s 289 libavcodec/me_cmp.c s += abs(pix1[9] - avg4(pix2[9], pix2[10], pix3[9], pix3[10])); s 290 libavcodec/me_cmp.c s += abs(pix1[10] - avg4(pix2[10], pix2[11], pix3[10], pix3[11])); s 291 libavcodec/me_cmp.c s += abs(pix1[11] - avg4(pix2[11], pix2[12], pix3[11], pix3[12])); s 292 libavcodec/me_cmp.c s += abs(pix1[12] - avg4(pix2[12], pix2[13], pix3[12], pix3[13])); s 293 libavcodec/me_cmp.c s += abs(pix1[13] - avg4(pix2[13], pix2[14], pix3[13], pix3[14])); s 294 libavcodec/me_cmp.c s += abs(pix1[14] - avg4(pix2[14], pix2[15], pix3[14], pix3[15])); s 295 libavcodec/me_cmp.c s += abs(pix1[15] - avg4(pix2[15], pix2[16], pix3[15], pix3[16])); s 300 libavcodec/me_cmp.c return s; s 306 libavcodec/me_cmp.c int s = 0, i; s 309 libavcodec/me_cmp.c s += abs(pix1[0] - pix2[0]); s 310 libavcodec/me_cmp.c s += abs(pix1[1] - pix2[1]); s 311 libavcodec/me_cmp.c s += abs(pix1[2] - pix2[2]); s 312 libavcodec/me_cmp.c s += abs(pix1[3] - pix2[3]); s 313 libavcodec/me_cmp.c s += abs(pix1[4] - pix2[4]); s 314 libavcodec/me_cmp.c s += abs(pix1[5] - pix2[5]); s 315 libavcodec/me_cmp.c s += abs(pix1[6] - pix2[6]); s 316 libavcodec/me_cmp.c s += abs(pix1[7] - pix2[7]); s 320 libavcodec/me_cmp.c return s; s 326 libavcodec/me_cmp.c int s = 0, i, j; s 330 libavcodec/me_cmp.c s += abs(V(0)); s 331 libavcodec/me_cmp.c s += abs(V(1) - V(0)); s 332 libavcodec/me_cmp.c s += abs(V(2) - V(1)); s 333 libavcodec/me_cmp.c s += abs(V(3) - V(2)); s 334 libavcodec/me_cmp.c s += abs(V(4) - V(3)); s 335 libavcodec/me_cmp.c s += abs(V(5) - V(4)); s 336 libavcodec/me_cmp.c s += abs(V(6) - V(5)); s 337 libavcodec/me_cmp.c s += abs(V(7) - V(6)); s 343 libavcodec/me_cmp.c s += abs(V(0) - V(-stride)); s 345 libavcodec/me_cmp.c s += abs(V(j) - mid_pred(V(j-stride), V(j-1), V(j-stride) + V(j-1) - V(j-stride-1))); s 351 libavcodec/me_cmp.c return s; s 357 libavcodec/me_cmp.c int s = 0, i; s 360 libavcodec/me_cmp.c s += abs(pix1[0] - avg2(pix2[0], pix2[1])); s 361 libavcodec/me_cmp.c s += abs(pix1[1] - avg2(pix2[1], pix2[2])); s 362 libavcodec/me_cmp.c s += abs(pix1[2] - avg2(pix2[2], pix2[3])); s 363 libavcodec/me_cmp.c s += abs(pix1[3] - avg2(pix2[3], pix2[4])); s 364 libavcodec/me_cmp.c s += abs(pix1[4] - avg2(pix2[4], pix2[5])); s 365 libavcodec/me_cmp.c s += abs(pix1[5] - avg2(pix2[5], pix2[6])); s 366 libavcodec/me_cmp.c s += abs(pix1[6] - avg2(pix2[6], pix2[7])); s 367 libavcodec/me_cmp.c s += abs(pix1[7] - avg2(pix2[7], pix2[8])); s 371 libavcodec/me_cmp.c return s; s 377 libavcodec/me_cmp.c int s = 0, i; s 381 libavcodec/me_cmp.c s += abs(pix1[0] - avg2(pix2[0], pix3[0])); s 382 libavcodec/me_cmp.c s += abs(pix1[1] - avg2(pix2[1], pix3[1])); s 383 libavcodec/me_cmp.c s += abs(pix1[2] - avg2(pix2[2], pix3[2])); s 384 libavcodec/me_cmp.c s += abs(pix1[3] - avg2(pix2[3], pix3[3])); s 385 libavcodec/me_cmp.c s += abs(pix1[4] - avg2(pix2[4], pix3[4])); s 386 libavcodec/me_cmp.c s += abs(pix1[5] - avg2(pix2[5], pix3[5])); s 387 libavcodec/me_cmp.c s += abs(pix1[6] - avg2(pix2[6], pix3[6])); s 388 libavcodec/me_cmp.c s += abs(pix1[7] - avg2(pix2[7], pix3[7])); s 393 libavcodec/me_cmp.c return s; s 399 libavcodec/me_cmp.c int s = 0, i; s 403 libavcodec/me_cmp.c s += abs(pix1[0] - avg4(pix2[0], pix2[1], pix3[0], pix3[1])); s 404 libavcodec/me_cmp.c s += abs(pix1[1] - avg4(pix2[1], pix2[2], pix3[1], pix3[2])); s 405 libavcodec/me_cmp.c s += abs(pix1[2] - avg4(pix2[2], pix2[3], pix3[2], pix3[3])); s 406 libavcodec/me_cmp.c s += abs(pix1[3] - avg4(pix2[3], pix2[4], pix3[3], pix3[4])); s 407 libavcodec/me_cmp.c s += abs(pix1[4] - avg4(pix2[4], pix2[5], pix3[4], pix3[5])); s 408 libavcodec/me_cmp.c s += abs(pix1[5] - avg4(pix2[5], pix2[6], pix3[5], pix3[6])); s 409 libavcodec/me_cmp.c s += abs(pix1[6] - avg4(pix2[6], pix2[7], pix3[6], pix3[7])); s 410 libavcodec/me_cmp.c s += abs(pix1[7] - avg4(pix2[7], pix2[8], pix3[7], pix3[8])); s 415 libavcodec/me_cmp.c return s; s 468 libavcodec/me_cmp.c static int zero_cmp(MpegEncContext *s, uint8_t *a, uint8_t *b, s 554 libavcodec/me_cmp.c static int hadamard8_diff8x8_c(MpegEncContext *s, uint8_t *dst, s 606 libavcodec/me_cmp.c static int hadamard8_intra8x8_c(MpegEncContext *s, uint8_t *src, s 658 libavcodec/me_cmp.c static int dct_sad8x8_c(MpegEncContext *s, uint8_t *src1, s 665 libavcodec/me_cmp.c s->pdsp.diff_pixels_unaligned(temp, src1, src2, stride); s 666 libavcodec/me_cmp.c s->fdsp.fdct(temp); s 667 libavcodec/me_cmp.c return s->mecc.sum_abs_dctelem(temp); s 699 libavcodec/me_cmp.c static int dct264_sad8x8_c(MpegEncContext *s, uint8_t *src1, s 705 libavcodec/me_cmp.c s->pdsp.diff_pixels_unaligned(dct[0], src1, src2, stride); s 724 libavcodec/me_cmp.c static int dct_max8x8_c(MpegEncContext *s, uint8_t *src1, s 732 libavcodec/me_cmp.c s->pdsp.diff_pixels_unaligned(temp, src1, src2, stride); s 733 libavcodec/me_cmp.c s->fdsp.fdct(temp); s 741 libavcodec/me_cmp.c static int quant_psnr8x8_c(MpegEncContext *s, uint8_t *src1, s 749 libavcodec/me_cmp.c s->mb_intra = 0; s 751 libavcodec/me_cmp.c s->pdsp.diff_pixels_unaligned(temp, src1, src2, stride); s 755 libavcodec/me_cmp.c s->block_last_index[0 /* FIXME */] = s 756 libavcodec/me_cmp.c s->fast_dct_quantize(s, temp, 0 /* FIXME */, s->qscale, &i); s 757 libavcodec/me_cmp.c s->dct_unquantize_inter(s, temp, 0, s->qscale); s 766 libavcodec/me_cmp.c static int rd8x8_c(MpegEncContext *s, uint8_t *src1, uint8_t *src2, s 769 libavcodec/me_cmp.c const uint8_t *scantable = s->intra_scantable.permutated; s 774 libavcodec/me_cmp.c const int esc_length = s->ac_esc_length; s 782 libavcodec/me_cmp.c s->pdsp.diff_pixels(temp, lsrc1, lsrc2, 8); s 784 libavcodec/me_cmp.c s->block_last_index[0 /* FIXME */] = s 786 libavcodec/me_cmp.c s->fast_dct_quantize(s, temp, 0 /* FIXME */, s->qscale, &i); s 790 libavcodec/me_cmp.c if (s->mb_intra) { s 792 libavcodec/me_cmp.c length = s->intra_ac_vlc_length; s 793 libavcodec/me_cmp.c last_length = s->intra_ac_vlc_last_length; s 794 libavcodec/me_cmp.c bits += s->luma_dc_vlc_length[temp[0] + 256]; // FIXME: chroma s 797 libavcodec/me_cmp.c length = s->inter_ac_vlc_length; s 798 libavcodec/me_cmp.c last_length = s->inter_ac_vlc_last_length; s 830 libavcodec/me_cmp.c if (s->mb_intra) s 831 libavcodec/me_cmp.c s->dct_unquantize_intra(s, temp, 0, s->qscale); s 833 libavcodec/me_cmp.c s->dct_unquantize_inter(s, temp, 0, s->qscale); s 836 libavcodec/me_cmp.c s->idsp.idct_add(lsrc2, 8, temp); s 838 libavcodec/me_cmp.c distortion = s->mecc.sse[1](NULL, lsrc2, lsrc1, 8, 8); s 840 libavcodec/me_cmp.c return distortion + ((bits * s->qscale * s->qscale * 109 + 64) >> 7); s 843 libavcodec/me_cmp.c static int bit8x8_c(MpegEncContext *s, uint8_t *src1, uint8_t *src2, s 846 libavcodec/me_cmp.c const uint8_t *scantable = s->intra_scantable.permutated; s 849 libavcodec/me_cmp.c const int esc_length = s->ac_esc_length; s 854 libavcodec/me_cmp.c s->pdsp.diff_pixels_unaligned(temp, src1, src2, stride); s 856 libavcodec/me_cmp.c s->block_last_index[0 /* FIXME */] = s 858 libavcodec/me_cmp.c s->fast_dct_quantize(s, temp, 0 /* FIXME */, s->qscale, &i); s 862 libavcodec/me_cmp.c if (s->mb_intra) { s 864 libavcodec/me_cmp.c length = s->intra_ac_vlc_length; s 865 libavcodec/me_cmp.c last_length = s->intra_ac_vlc_last_length; s 866 libavcodec/me_cmp.c bits += s->luma_dc_vlc_length[temp[0] + 256]; // FIXME: chroma s 869 libavcodec/me_cmp.c length = s->inter_ac_vlc_length; s 870 libavcodec/me_cmp.c last_length = s->inter_ac_vlc_last_length; s 906 libavcodec/me_cmp.c uint8_t *s, uint8_t *dummy, \ s 913 libavcodec/me_cmp.c score += FFABS(s[x] - s[x + stride]) + \ s 914 libavcodec/me_cmp.c FFABS(s[x + 1] - s[x + stride + 1]) + \ s 915 libavcodec/me_cmp.c FFABS(s[x + 2] - s[x + 2 + stride]) + \ s 916 libavcodec/me_cmp.c FFABS(s[x + 3] - s[x + 3 + stride]); \ s 918 libavcodec/me_cmp.c s += stride; \ s 948 libavcodec/me_cmp.c uint8_t *s, uint8_t *dummy, \ s 955 libavcodec/me_cmp.c score += SQ(s[x] - s[x + stride]) + \ s 956 libavcodec/me_cmp.c SQ(s[x + 1] - s[x + stride + 1]) + \ s 957 libavcodec/me_cmp.c SQ(s[x + 2] - s[x + stride + 2]) + \ s 958 libavcodec/me_cmp.c SQ(s[x + 3] - s[x + stride + 3]); \ s 960 libavcodec/me_cmp.c s += stride; \ s 987 libavcodec/me_cmp.c static int name16(MpegEncContext *s, uint8_t *dst, uint8_t *src, \ s 992 libavcodec/me_cmp.c score += name8(s, dst, src, stride, 8); \ s 993 libavcodec/me_cmp.c score += name8(s, dst + 8, src + 8, stride, 8); \ s 997 libavcodec/me_cmp.c score += name8(s, dst, src, stride, 8); \ s 998 libavcodec/me_cmp.c score += name8(s, dst + 8, src + 8, stride, 8); \ s 77 libavcodec/mediacodec_sw_buffer.c MediaCodecDecContext *s, s 87 libavcodec/mediacodec_sw_buffer.c int stride = s->stride; s 94 libavcodec/mediacodec_sw_buffer.c src += s->crop_top * s->stride; s 95 libavcodec/mediacodec_sw_buffer.c src += s->crop_left; s 98 libavcodec/mediacodec_sw_buffer.c stride = (s->stride + 1) / 2; s 100 libavcodec/mediacodec_sw_buffer.c src += s->slice_height * s->stride; s 103 libavcodec/mediacodec_sw_buffer.c src += ((s->slice_height + 1) / 2) * stride; s 106 libavcodec/mediacodec_sw_buffer.c src += s->crop_top * stride; s 107 libavcodec/mediacodec_sw_buffer.c src += (s->crop_left / 2); s 132 libavcodec/mediacodec_sw_buffer.c MediaCodecDecContext *s, s 148 libavcodec/mediacodec_sw_buffer.c src += s->crop_top * s->stride; s 149 libavcodec/mediacodec_sw_buffer.c src += s->crop_left; s 153 libavcodec/mediacodec_sw_buffer.c src += s->slice_height * s->stride; s 154 libavcodec/mediacodec_sw_buffer.c src += s->crop_top * s->stride; s 155 libavcodec/mediacodec_sw_buffer.c src += s->crop_left; s 158 libavcodec/mediacodec_sw_buffer.c if (frame->linesize[i] == s->stride) { s 159 libavcodec/mediacodec_sw_buffer.c memcpy(frame->data[i], src, height * s->stride); s 172 libavcodec/mediacodec_sw_buffer.c src += s->stride; s 182 libavcodec/mediacodec_sw_buffer.c MediaCodecDecContext *s, s 200 libavcodec/mediacodec_sw_buffer.c src += (s->slice_height - s->crop_top / 2) * s->stride; s 202 libavcodec/mediacodec_sw_buffer.c src += s->crop_top * s->stride; s 203 libavcodec/mediacodec_sw_buffer.c src += s->crop_left; s 206 libavcodec/mediacodec_sw_buffer.c if (frame->linesize[i] == s->stride) { s 207 libavcodec/mediacodec_sw_buffer.c memcpy(frame->data[i], src, height * s->stride); s 220 libavcodec/mediacodec_sw_buffer.c src += s->stride; s 273 libavcodec/mediacodec_sw_buffer.c MediaCodecDecContext *s, s 35 libavcodec/mediacodec_sw_buffer.h MediaCodecDecContext *s, s 42 libavcodec/mediacodec_sw_buffer.h MediaCodecDecContext *s, s 49 libavcodec/mediacodec_sw_buffer.h MediaCodecDecContext *s, s 56 libavcodec/mediacodec_sw_buffer.h MediaCodecDecContext *s, s 57 libavcodec/mediacodecdec.c MediaCodecH264DecContext *s = avctx->priv_data; s 59 libavcodec/mediacodecdec.c ff_mediacodec_dec_close(avctx, s->ctx); s 60 libavcodec/mediacodecdec.c s->ctx = NULL; s 62 libavcodec/mediacodecdec.c av_packet_unref(&s->buffered_pkt); s 296 libavcodec/mediacodecdec.c MediaCodecH264DecContext *s = avctx->priv_data; s 368 libavcodec/mediacodecdec.c s->ctx = av_mallocz(sizeof(*s->ctx)); s 369 libavcodec/mediacodecdec.c if (!s->ctx) { s 375 libavcodec/mediacodecdec.c s->ctx->delay_flush = s->delay_flush; s 377 libavcodec/mediacodecdec.c if ((ret = ff_mediacodec_dec_init(avctx, s->ctx, codec_mime, format)) < 0) { s 378 libavcodec/mediacodecdec.c s->ctx = NULL; s 384 libavcodec/mediacodecdec.c s->ctx->codec_name, ret); s 388 libavcodec/mediacodecdec.c strcmp(s->ctx->codec_name, "OMX.amlogic.mpeg2.decoder.awesome") == 0) { s 390 libavcodec/mediacodecdec.c s->ctx->codec_name, sdk_int); s 391 libavcodec/mediacodecdec.c s->amlogic_mpeg2_api23_workaround = 1; s 408 libavcodec/mediacodecdec.c MediaCodecH264DecContext *s = avctx->priv_data; s 414 libavcodec/mediacodecdec.c if (s->delay_flush && ff_mediacodec_dec_is_flushing(avctx, s->ctx)) { s 415 libavcodec/mediacodecdec.c if (!ff_mediacodec_dec_flush(avctx, s->ctx)) { s 421 libavcodec/mediacodecdec.c ret = ff_mediacodec_dec_receive(avctx, s->ctx, frame, false); s 427 libavcodec/mediacodecdec.c if (s->ctx->current_input_buffer < 0) { s 429 libavcodec/mediacodecdec.c index = ff_AMediaCodec_dequeueInputBuffer(s->ctx->codec, 0); s 432 libavcodec/mediacodecdec.c return ff_mediacodec_dec_receive(avctx, s->ctx, frame, true); s 434 libavcodec/mediacodecdec.c s->ctx->current_input_buffer = index; s 438 libavcodec/mediacodecdec.c if (s->buffered_pkt.size > 0) { s 439 libavcodec/mediacodecdec.c ret = ff_mediacodec_dec_send(avctx, s->ctx, &s->buffered_pkt, false); s 441 libavcodec/mediacodecdec.c s->buffered_pkt.size -= ret; s 442 libavcodec/mediacodecdec.c s->buffered_pkt.data += ret; s 443 libavcodec/mediacodecdec.c if (s->buffered_pkt.size <= 0) { s 444 libavcodec/mediacodecdec.c av_packet_unref(&s->buffered_pkt); s 448 libavcodec/mediacodecdec.c ret, s->buffered_pkt.size+ret); s 454 libavcodec/mediacodecdec.c if (s->amlogic_mpeg2_api23_workaround && s->buffered_pkt.size <= 0) { s 463 libavcodec/mediacodecdec.c ret = ff_decode_get_packet(avctx, &s->buffered_pkt); s 466 libavcodec/mediacodecdec.c ret = ff_mediacodec_dec_send(avctx, s->ctx, &null_pkt, true); s 469 libavcodec/mediacodecdec.c return ff_mediacodec_dec_receive(avctx, s->ctx, frame, true); s 470 libavcodec/mediacodecdec.c } else if (ret == AVERROR(EAGAIN) && s->ctx->current_input_buffer < 0) { s 471 libavcodec/mediacodecdec.c return ff_mediacodec_dec_receive(avctx, s->ctx, frame, true); s 482 libavcodec/mediacodecdec.c MediaCodecH264DecContext *s = avctx->priv_data; s 484 libavcodec/mediacodecdec.c av_packet_unref(&s->buffered_pkt); s 486 libavcodec/mediacodecdec.c ff_mediacodec_dec_flush(avctx, s->ctx); s 197 libavcodec/mediacodecdec_common.c MediaCodecDecContext *s, s 203 libavcodec/mediacodecdec_common.c if (s->surface) { s 207 libavcodec/mediacodecdec_common.c if (!strcmp(s->codec_name, "OMX.k3.video.decoder.avc") && color_format == COLOR_FormatYCbYCr) { s 208 libavcodec/mediacodecdec_common.c s->color_format = color_format = COLOR_TI_FormatYUV420PackedSemiPlanar; s 223 libavcodec/mediacodecdec_common.c static void ff_mediacodec_dec_ref(MediaCodecDecContext *s) s 225 libavcodec/mediacodecdec_common.c atomic_fetch_add(&s->refcount, 1); s 228 libavcodec/mediacodecdec_common.c static void ff_mediacodec_dec_unref(MediaCodecDecContext *s) s 230 libavcodec/mediacodecdec_common.c if (!s) s 233 libavcodec/mediacodecdec_common.c if (atomic_fetch_sub(&s->refcount, 1) == 1) { s 234 libavcodec/mediacodecdec_common.c if (s->codec) { s 235 libavcodec/mediacodecdec_common.c ff_AMediaCodec_delete(s->codec); s 236 libavcodec/mediacodecdec_common.c s->codec = NULL; s 239 libavcodec/mediacodecdec_common.c if (s->format) { s 240 libavcodec/mediacodecdec_common.c ff_AMediaFormat_delete(s->format); s 241 libavcodec/mediacodecdec_common.c s->format = NULL; s 244 libavcodec/mediacodecdec_common.c if (s->surface) { s 245 libavcodec/mediacodecdec_common.c ff_mediacodec_surface_unref(s->surface, NULL); s 246 libavcodec/mediacodecdec_common.c s->surface = NULL; s 249 libavcodec/mediacodecdec_common.c av_freep(&s->codec_name); s 250 libavcodec/mediacodecdec_common.c av_freep(&s); s 274 libavcodec/mediacodecdec_common.c MediaCodecDecContext *s, s 327 libavcodec/mediacodecdec_common.c buffer->ctx = s; s 328 libavcodec/mediacodecdec_common.c buffer->serial = atomic_load(&s->serial); s 329 libavcodec/mediacodecdec_common.c if (s->delay_flush) s 330 libavcodec/mediacodecdec_common.c ff_mediacodec_dec_ref(s); s 337 libavcodec/mediacodecdec_common.c atomic_fetch_add(&s->hw_buffer_count, 1); s 340 libavcodec/mediacodecdec_common.c buffer->index, buffer, buffer->pts, atomic_load(&s->hw_buffer_count)); s 346 libavcodec/mediacodecdec_common.c status = ff_AMediaCodec_releaseOutputBuffer(s->codec, index, 0); s 356 libavcodec/mediacodecdec_common.c MediaCodecDecContext *s, s 400 libavcodec/mediacodecdec_common.c avctx->width, s->stride, avctx->height, s->slice_height, s 401 libavcodec/mediacodecdec_common.c s->crop_top, s->crop_bottom, s->crop_left, s->crop_right, s->codec_name, s 404 libavcodec/mediacodecdec_common.c switch (s->color_format) { s 406 libavcodec/mediacodecdec_common.c ff_mediacodec_sw_buffer_copy_yuv420_planar(avctx, s, data, size, info, frame); s 411 libavcodec/mediacodecdec_common.c ff_mediacodec_sw_buffer_copy_yuv420_semi_planar(avctx, s, data, size, info, frame); s 415 libavcodec/mediacodecdec_common.c ff_mediacodec_sw_buffer_copy_yuv420_packed_semi_planar(avctx, s, data, size, info, frame); s 418 libavcodec/mediacodecdec_common.c ff_mediacodec_sw_buffer_copy_yuv420_packed_semi_planar_64x32Tile2m8ka(avctx, s, data, size, info, frame); s 422 libavcodec/mediacodecdec_common.c s->color_format, s->color_format); s 429 libavcodec/mediacodecdec_common.c status = ff_AMediaCodec_releaseOutputBuffer(s->codec, index, 0); s 440 libavcodec/mediacodecdec_common.c if (ff_AMediaFormat_getInt32(s->format, key, &value)) { \ s 449 libavcodec/mediacodecdec_common.c static int mediacodec_dec_parse_format(AVCodecContext *avctx, MediaCodecDecContext *s) s 459 libavcodec/mediacodecdec_common.c if (!s->format) { s 464 libavcodec/mediacodecdec_common.c format = ff_AMediaFormat_toString(s->format); s 471 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->width, "width", 1); s 472 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->height, "height", 1); s 474 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->stride, "stride", 0); s 475 libavcodec/mediacodecdec_common.c s->stride = s->stride > 0 ? s->stride : s->width; s 477 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->slice_height, "slice-height", 0); s 479 libavcodec/mediacodecdec_common.c if (strstr(s->codec_name, "OMX.Nvidia.") && s->slice_height == 0) { s 480 libavcodec/mediacodecdec_common.c s->slice_height = FFALIGN(s->height, 16); s 481 libavcodec/mediacodecdec_common.c } else if (strstr(s->codec_name, "OMX.SEC.avc.dec")) { s 482 libavcodec/mediacodecdec_common.c s->slice_height = avctx->height; s 483 libavcodec/mediacodecdec_common.c s->stride = avctx->width; s 484 libavcodec/mediacodecdec_common.c } else if (s->slice_height == 0) { s 485 libavcodec/mediacodecdec_common.c s->slice_height = s->height; s 488 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->color_format, "color-format", 1); s 489 libavcodec/mediacodecdec_common.c avctx->pix_fmt = mcdec_map_color_format(avctx, s, s->color_format); s 497 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->crop_top, "crop-top", 0); s 498 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->crop_bottom, "crop-bottom", 0); s 499 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->crop_left, "crop-left", 0); s 500 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->crop_right, "crop-right", 0); s 502 libavcodec/mediacodecdec_common.c width = s->crop_right + 1 - s->crop_left; s 503 libavcodec/mediacodecdec_common.c height = s->crop_bottom + 1 - s->crop_top; s 505 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->display_width, "display-width", 0); s 506 libavcodec/mediacodecdec_common.c AMEDIAFORMAT_GET_INT32(s->display_height, "display-height", 0); s 508 libavcodec/mediacodecdec_common.c if (s->display_width && s->display_height) { s 510 libavcodec/mediacodecdec_common.c (AVRational){ s->display_width, s->display_height }, s 532 libavcodec/mediacodecdec_common.c s->crop_top, s->crop_bottom, s->crop_left, s->crop_right, s 542 libavcodec/mediacodecdec_common.c static int mediacodec_dec_flush_codec(AVCodecContext *avctx, MediaCodecDecContext *s) s 544 libavcodec/mediacodecdec_common.c FFAMediaCodec *codec = s->codec; s 547 libavcodec/mediacodecdec_common.c s->output_buffer_count = 0; s 549 libavcodec/mediacodecdec_common.c s->draining = 0; s 550 libavcodec/mediacodecdec_common.c s->flushing = 0; s 551 libavcodec/mediacodecdec_common.c s->eos = 0; s 552 libavcodec/mediacodecdec_common.c atomic_fetch_add(&s->serial, 1); s 553 libavcodec/mediacodecdec_common.c atomic_init(&s->hw_buffer_count, 0); s 554 libavcodec/mediacodecdec_common.c s->current_input_buffer = -1; s 565 libavcodec/mediacodecdec_common.c int ff_mediacodec_dec_init(AVCodecContext *avctx, MediaCodecDecContext *s, s 578 libavcodec/mediacodecdec_common.c s->avctx = avctx; s 579 libavcodec/mediacodecdec_common.c atomic_init(&s->refcount, 1); s 580 libavcodec/mediacodecdec_common.c atomic_init(&s->hw_buffer_count, 0); s 581 libavcodec/mediacodecdec_common.c atomic_init(&s->serial, 1); s 582 libavcodec/mediacodecdec_common.c s->current_input_buffer = -1; s 593 libavcodec/mediacodecdec_common.c s->surface = ff_mediacodec_surface_ref(mediacodec_ctx->surface, avctx); s 594 libavcodec/mediacodecdec_common.c av_log(avctx, AV_LOG_INFO, "Using surface %p\n", s->surface); s 599 libavcodec/mediacodecdec_common.c if (!s->surface && user_ctx && user_ctx->surface) { s 600 libavcodec/mediacodecdec_common.c s->surface = ff_mediacodec_surface_ref(user_ctx->surface, avctx); s 601 libavcodec/mediacodecdec_common.c av_log(avctx, AV_LOG_INFO, "Using surface %p\n", s->surface); s 610 libavcodec/mediacodecdec_common.c s->codec_name = ff_AMediaCodecList_getCodecNameByType(mime, profile, 0, avctx); s 611 libavcodec/mediacodecdec_common.c if (!s->codec_name) { s 616 libavcodec/mediacodecdec_common.c av_log(avctx, AV_LOG_DEBUG, "Found decoder %s\n", s->codec_name); s 617 libavcodec/mediacodecdec_common.c s->codec = ff_AMediaCodec_createCodecByName(s->codec_name); s 618 libavcodec/mediacodecdec_common.c if (!s->codec) { s 619 libavcodec/mediacodecdec_common.c av_log(avctx, AV_LOG_ERROR, "Failed to create media decoder for type %s and name %s\n", mime, s->codec_name); s 624 libavcodec/mediacodecdec_common.c status = ff_AMediaCodec_configure(s->codec, format, s->surface, NULL, 0); s 629 libavcodec/mediacodecdec_common.c s->codec_name, status, desc); s 636 libavcodec/mediacodecdec_common.c status = ff_AMediaCodec_start(s->codec); s 641 libavcodec/mediacodecdec_common.c s->codec_name, status, desc); s 647 libavcodec/mediacodecdec_common.c s->format = ff_AMediaCodec_getOutputFormat(s->codec); s 648 libavcodec/mediacodecdec_common.c if (s->format) { s 649 libavcodec/mediacodecdec_common.c if ((ret = mediacodec_dec_parse_format(avctx, s)) < 0) { s 656 libavcodec/mediacodecdec_common.c av_log(avctx, AV_LOG_DEBUG, "MediaCodec %p started successfully\n", s->codec); s 661 libavcodec/mediacodecdec_common.c av_log(avctx, AV_LOG_ERROR, "MediaCodec %p failed to start\n", s->codec); s 662 libavcodec/mediacodecdec_common.c ff_mediacodec_dec_close(avctx, s); s 666 libavcodec/mediacodecdec_common.c int ff_mediacodec_dec_send(AVCodecContext *avctx, MediaCodecDecContext *s, s 673 libavcodec/mediacodecdec_common.c FFAMediaCodec *codec = s->codec; s 678 libavcodec/mediacodecdec_common.c if (s->flushing) { s 688 libavcodec/mediacodecdec_common.c if (s->draining && s->eos) { s 692 libavcodec/mediacodecdec_common.c while (offset < pkt->size || (need_draining && !s->draining)) { s 693 libavcodec/mediacodecdec_common.c ssize_t index = s->current_input_buffer; s 706 libavcodec/mediacodecdec_common.c s->current_input_buffer = -1; s 737 libavcodec/mediacodecdec_common.c s->draining = 1; s 760 libavcodec/mediacodecdec_common.c int ff_mediacodec_dec_receive(AVCodecContext *avctx, MediaCodecDecContext *s, s 767 libavcodec/mediacodecdec_common.c FFAMediaCodec *codec = s->codec; s 772 libavcodec/mediacodecdec_common.c if (s->draining && s->eos) { s 776 libavcodec/mediacodecdec_common.c if (s->draining) { s 780 libavcodec/mediacodecdec_common.c } else if (s->output_buffer_count == 0 || !wait) { s 795 libavcodec/mediacodecdec_common.c s->eos = 1; s 799 libavcodec/mediacodecdec_common.c if (s->surface) { s 800 libavcodec/mediacodecdec_common.c if ((ret = mediacodec_wrap_hw_buffer(avctx, s, index, &info, frame)) < 0) { s 811 libavcodec/mediacodecdec_common.c if ((ret = mediacodec_wrap_sw_buffer(avctx, s, data, size, index, &info, frame)) < 0) { s 817 libavcodec/mediacodecdec_common.c s->output_buffer_count++; s 829 libavcodec/mediacodecdec_common.c if (s->format) { s 830 libavcodec/mediacodecdec_common.c status = ff_AMediaFormat_delete(s->format); s 832 libavcodec/mediacodecdec_common.c av_log(avctx, AV_LOG_ERROR, "Failed to delete MediaFormat %p\n", s->format); s 836 libavcodec/mediacodecdec_common.c s->format = ff_AMediaCodec_getOutputFormat(codec); s 837 libavcodec/mediacodecdec_common.c if (!s->format) { s 842 libavcodec/mediacodecdec_common.c format = ff_AMediaFormat_toString(s->format); s 849 libavcodec/mediacodecdec_common.c if ((ret = mediacodec_dec_parse_format(avctx, s)) < 0) { s 856 libavcodec/mediacodecdec_common.c if (s->draining) { s 883 libavcodec/mediacodecdec_common.c int ff_mediacodec_dec_flush(AVCodecContext *avctx, MediaCodecDecContext *s) s 885 libavcodec/mediacodecdec_common.c if (!s->surface || atomic_load(&s->refcount) == 1) { s 890 libavcodec/mediacodecdec_common.c if ((ret = mediacodec_dec_flush_codec(avctx, s)) < 0) { s 897 libavcodec/mediacodecdec_common.c s->flushing = 1; s 901 libavcodec/mediacodecdec_common.c int ff_mediacodec_dec_close(AVCodecContext *avctx, MediaCodecDecContext *s) s 903 libavcodec/mediacodecdec_common.c ff_mediacodec_dec_unref(s); s 908 libavcodec/mediacodecdec_common.c int ff_mediacodec_dec_is_flushing(AVCodecContext *avctx, MediaCodecDecContext *s) s 910 libavcodec/mediacodecdec_common.c return s->flushing; s 76 libavcodec/mediacodecdec_common.h MediaCodecDecContext *s, s 81 libavcodec/mediacodecdec_common.h MediaCodecDecContext *s, s 86 libavcodec/mediacodecdec_common.h MediaCodecDecContext *s, s 91 libavcodec/mediacodecdec_common.h MediaCodecDecContext *s); s 94 libavcodec/mediacodecdec_common.h MediaCodecDecContext *s); s 97 libavcodec/mediacodecdec_common.h MediaCodecDecContext *s); s 464 libavcodec/mf_utils.c wchar_t s[512]; // being lazy here s 465 libavcodec/mf_utils.c hr = IMFAttributes_GetString(attrs, &key, s, sizeof(s), NULL); s 468 libavcodec/mf_utils.c av_log(log, AV_LOG_VERBOSE, " %s='%ls'%s\n", name, s, extra); s 648 libavcodec/mf_utils.c wchar_t s[512]; // being lazy here s 658 libavcodec/mf_utils.c hr = IMFActivate_GetString(winner, &MFT_FRIENDLY_NAME_Attribute, s, s 659 libavcodec/mf_utils.c sizeof(s), NULL); s 661 libavcodec/mf_utils.c av_log(log, AV_LOG_INFO, "MFT name: '%ls'\n", s); s 35 libavcodec/microdvddec.c static int indexof(const char *s, int c) s 37 libavcodec/microdvddec.c char *f = strchr(s, c); s 38 libavcodec/microdvddec.c return f ? (f - s) : -1; s 71 libavcodec/microdvddec.c static char *check_for_italic_slash_marker(struct microdvd_tag *tags, char *s) s 73 libavcodec/microdvddec.c if (*s == '/') { s 78 libavcodec/microdvddec.c s++; s 80 libavcodec/microdvddec.c return s; s 83 libavcodec/microdvddec.c static char *microdvd_load_tags(struct microdvd_tag *tags, char *s) s 85 libavcodec/microdvddec.c s = check_for_italic_slash_marker(tags, s); s 87 libavcodec/microdvddec.c while (*s == '{') { s 88 libavcodec/microdvddec.c char *start = s; s 89 libavcodec/microdvddec.c char tag_char = *(s + 1); s 92 libavcodec/microdvddec.c if (!tag_char || *(s + 2) != ':') s 94 libavcodec/microdvddec.c s += 3; s 102 libavcodec/microdvddec.c while (*s && *s != '}' && s - start < 256) { s 103 libavcodec/microdvddec.c int style_index = indexof(MICRODVD_STYLES, *s); s 107 libavcodec/microdvddec.c s++; s 109 libavcodec/microdvddec.c if (*s != '}') s 120 libavcodec/microdvddec.c while (*s == '$' || *s == '#') s 121 libavcodec/microdvddec.c s++; s 122 libavcodec/microdvddec.c tag.data1 = strtol(s, &s, 16) & 0x00ffffff; s 123 libavcodec/microdvddec.c if (*s != '}') s 132 libavcodec/microdvddec.c int len = indexof(s, '}'); s 135 libavcodec/microdvddec.c tag.data_string = s; s 137 libavcodec/microdvddec.c s += len; s 146 libavcodec/microdvddec.c tag.data1 = strtol(s, &s, 10); s 147 libavcodec/microdvddec.c if (*s != '}') s 155 libavcodec/microdvddec.c int len = indexof(s, '}'); s 158 libavcodec/microdvddec.c tag.data_string = s; s 160 libavcodec/microdvddec.c s += len; s 167 libavcodec/microdvddec.c if (!*s) s 170 libavcodec/microdvddec.c tag.data1 = (*s++ == '1'); s 171 libavcodec/microdvddec.c if (*s != '}') s 179 libavcodec/microdvddec.c tag.data1 = strtol(s, &s, 10); s 180 libavcodec/microdvddec.c if (*s != ',') s 182 libavcodec/microdvddec.c s++; s 183 libavcodec/microdvddec.c tag.data2 = strtol(s, &s, 10); s 184 libavcodec/microdvddec.c if (*s != '}') s 197 libavcodec/microdvddec.c s++; s 199 libavcodec/microdvddec.c return check_for_italic_slash_marker(tags, s); s 283 libavcodec/microdvddec.c FFASSDecoderContext *s = avctx->priv_data; s 312 libavcodec/microdvddec.c int ret = ff_ass_add_rect(sub, new_line.str, s->readorder++, 0, NULL, NULL); s 47 libavcodec/midivid.c static int decode_mvdv(MidiVidContext *s, AVCodecContext *avctx, AVFrame *frame) s 49 libavcodec/midivid.c GetByteContext *gb = &s->gb; s 81 libavcodec/midivid.c skip = s->skip; s 107 libavcodec/midivid.c skip = s->skip; s 154 libavcodec/midivid.c static ptrdiff_t lzss_uncompress(MidiVidContext *s, GetByteContext *gb, uint8_t *dst, unsigned int size) s 193 libavcodec/midivid.c MidiVidContext *s = avctx->priv_data; s 194 libavcodec/midivid.c GetByteContext *gb = &s->gb; s 195 libavcodec/midivid.c AVFrame *frame = s->frame; s 205 libavcodec/midivid.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 209 libavcodec/midivid.c ret = decode_mvdv(s, avctx, frame); s 211 libavcodec/midivid.c av_fast_padded_malloc(&s->uncompressed, &s->uncompressed_size, 16LL * (avpkt->size - 12)); s 212 libavcodec/midivid.c if (!s->uncompressed) s 215 libavcodec/midivid.c ret = lzss_uncompress(s, gb, s->uncompressed, s->uncompressed_size); s 218 libavcodec/midivid.c bytestream2_init(gb, s->uncompressed, ret); s 219 libavcodec/midivid.c ret = decode_mvdv(s, avctx, frame); s 226 libavcodec/midivid.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 238 libavcodec/midivid.c MidiVidContext *s = avctx->priv_data; s 252 libavcodec/midivid.c s->frame = av_frame_alloc(); s 253 libavcodec/midivid.c if (!s->frame) s 255 libavcodec/midivid.c s->skip = av_calloc(avctx->width >> 1, avctx->height >> 1); s 256 libavcodec/midivid.c if (!s->skip) s 264 libavcodec/midivid.c MidiVidContext *s = avctx->priv_data; s 266 libavcodec/midivid.c av_frame_unref(s->frame); s 271 libavcodec/midivid.c MidiVidContext *s = avctx->priv_data; s 273 libavcodec/midivid.c av_frame_free(&s->frame); s 274 libavcodec/midivid.c av_freep(&s->uncompressed); s 275 libavcodec/midivid.c av_freep(&s->skip); s 138 libavcodec/mips/aaccoder_mips.c static void quantize_and_encode_band_cost_SQUAD_mips(struct AACEncContext *s, s 154 libavcodec/mips/aaccoder_mips.c abs_pow34_v(s->scoefs, in, size); s 155 libavcodec/mips/aaccoder_mips.c scaled = s->scoefs; s 234 libavcodec/mips/aaccoder_mips.c static void quantize_and_encode_band_cost_UQUAD_mips(struct AACEncContext *s, s 250 libavcodec/mips/aaccoder_mips.c abs_pow34_v(s->scoefs, in, size); s 251 libavcodec/mips/aaccoder_mips.c scaled = s->scoefs; s 349 libavcodec/mips/aaccoder_mips.c static void quantize_and_encode_band_cost_SPAIR_mips(struct AACEncContext *s, s 365 libavcodec/mips/aaccoder_mips.c abs_pow34_v(s->scoefs, in, size); s 366 libavcodec/mips/aaccoder_mips.c scaled = s->scoefs; s 452 libavcodec/mips/aaccoder_mips.c static void quantize_and_encode_band_cost_UPAIR7_mips(struct AACEncContext *s, s 468 libavcodec/mips/aaccoder_mips.c abs_pow34_v(s->scoefs, in, size); s 469 libavcodec/mips/aaccoder_mips.c scaled = s->scoefs; s 570 libavcodec/mips/aaccoder_mips.c static void quantize_and_encode_band_cost_UPAIR12_mips(struct AACEncContext *s, s 586 libavcodec/mips/aaccoder_mips.c abs_pow34_v(s->scoefs, in, size); s 587 libavcodec/mips/aaccoder_mips.c scaled = s->scoefs; s 687 libavcodec/mips/aaccoder_mips.c static void quantize_and_encode_band_cost_ESC_mips(struct AACEncContext *s, s 703 libavcodec/mips/aaccoder_mips.c abs_pow34_v(s->scoefs, in, size); s 704 libavcodec/mips/aaccoder_mips.c scaled = s->scoefs; s 932 libavcodec/mips/aaccoder_mips.c static void quantize_and_encode_band_cost_NONE_mips(struct AACEncContext *s, s 940 libavcodec/mips/aaccoder_mips.c static void quantize_and_encode_band_cost_ZERO_mips(struct AACEncContext *s, s 960 libavcodec/mips/aaccoder_mips.c static void (*const quantize_and_encode_band_cost_arr[])(struct AACEncContext *s, s 984 libavcodec/mips/aaccoder_mips.c s, pb, in, out, scaled, size, scale_idx, cb, \ s 987 libavcodec/mips/aaccoder_mips.c s, pb, in, out, scaled, size, scale_idx, cb, \ s 990 libavcodec/mips/aaccoder_mips.c static void quantize_and_encode_band_mips(struct AACEncContext *s, PutBitContext *pb, s 994 libavcodec/mips/aaccoder_mips.c quantize_and_encode_band_cost(s, pb, in, out, NULL, size, scale_idx, cb, lambda, s 1001 libavcodec/mips/aaccoder_mips.c static float get_band_numbits_ZERO_mips(struct AACEncContext *s, s 1010 libavcodec/mips/aaccoder_mips.c static float get_band_numbits_NONE_mips(struct AACEncContext *s, s 1020 libavcodec/mips/aaccoder_mips.c static float get_band_numbits_SQUAD_mips(struct AACEncContext *s, s 1092 libavcodec/mips/aaccoder_mips.c static float get_band_numbits_UQUAD_mips(struct AACEncContext *s, s 1150 libavcodec/mips/aaccoder_mips.c static float get_band_numbits_SPAIR_mips(struct AACEncContext *s, s 1224 libavcodec/mips/aaccoder_mips.c static float get_band_numbits_UPAIR7_mips(struct AACEncContext *s, s 1282 libavcodec/mips/aaccoder_mips.c static float get_band_numbits_UPAIR12_mips(struct AACEncContext *s, s 1340 libavcodec/mips/aaccoder_mips.c static float get_band_numbits_ESC_mips(struct AACEncContext *s, s 1442 libavcodec/mips/aaccoder_mips.c static float (*const get_band_numbits_arr[])(struct AACEncContext *s, s 1466 libavcodec/mips/aaccoder_mips.c s, pb, in, scaled, size, scale_idx, cb, \ s 1469 libavcodec/mips/aaccoder_mips.c s, pb, in, scaled, size, scale_idx, cb, \ s 1472 libavcodec/mips/aaccoder_mips.c static float quantize_band_cost_bits(struct AACEncContext *s, const float *in, s 1477 libavcodec/mips/aaccoder_mips.c return get_band_numbits(s, NULL, in, scaled, size, scale_idx, cb, lambda, uplim, bits); s 1484 libavcodec/mips/aaccoder_mips.c static float get_band_cost_ZERO_mips(struct AACEncContext *s, s 1506 libavcodec/mips/aaccoder_mips.c static float get_band_cost_NONE_mips(struct AACEncContext *s, s 1516 libavcodec/mips/aaccoder_mips.c static float get_band_cost_SQUAD_mips(struct AACEncContext *s, s 1635 libavcodec/mips/aaccoder_mips.c static float get_band_cost_UQUAD_mips(struct AACEncContext *s, s 1743 libavcodec/mips/aaccoder_mips.c static float get_band_cost_SPAIR_mips(struct AACEncContext *s, s 1867 libavcodec/mips/aaccoder_mips.c static float get_band_cost_UPAIR7_mips(struct AACEncContext *s, s 2006 libavcodec/mips/aaccoder_mips.c static float get_band_cost_UPAIR12_mips(struct AACEncContext *s, s 2145 libavcodec/mips/aaccoder_mips.c static float get_band_cost_ESC_mips(struct AACEncContext *s, s 2296 libavcodec/mips/aaccoder_mips.c static float (*const get_band_cost_arr[])(struct AACEncContext *s, s 2320 libavcodec/mips/aaccoder_mips.c s, pb, in, scaled, size, scale_idx, cb, \ s 2323 libavcodec/mips/aaccoder_mips.c s, pb, in, scaled, size, scale_idx, cb, \ s 2326 libavcodec/mips/aaccoder_mips.c static float quantize_band_cost(struct AACEncContext *s, const float *in, s 2331 libavcodec/mips/aaccoder_mips.c return get_band_cost(s, NULL, in, scaled, size, scale_idx, cb, lambda, uplim, bits, energy); s 2338 libavcodec/mips/aaccoder_mips.c static void search_for_ms_mips(AACEncContext *s, ChannelElement *cpe) s 2343 libavcodec/mips/aaccoder_mips.c float *L34 = s->scoefs, *R34 = s->scoefs + 128, *M34 = s->scoefs + 128*2, *S34 = s->scoefs + 128*3; s 2344 libavcodec/mips/aaccoder_mips.c const float lambda = s->lambda; s 2407 libavcodec/mips/aaccoder_mips.c FFPsyBand *band0 = &s->psy.ch[s->cur_channel+0].psy_bands[(w+w2)*16+g]; s 2408 libavcodec/mips/aaccoder_mips.c FFPsyBand *band1 = &s->psy.ch[s->cur_channel+1].psy_bands[(w+w2)*16+g]; s 2422 libavcodec/mips/aaccoder_mips.c dist1 += quantize_band_cost(s, &sce0->coeffs[start + (w+w2)*128], s 2428 libavcodec/mips/aaccoder_mips.c dist1 += quantize_band_cost(s, &sce1->coeffs[start + (w+w2)*128], s 2434 libavcodec/mips/aaccoder_mips.c dist2 += quantize_band_cost(s, M, s 2440 libavcodec/mips/aaccoder_mips.c dist2 += quantize_band_cost(s, S, s 110 libavcodec/mips/aacdec_mips.c union { unsigned u; int s; } v = { previous_val * 1664525u + 1013904223 }; s 111 libavcodec/mips/aacdec_mips.c return v.s; s 450 libavcodec/mips/aacpsdsp_mips.c void ff_psdsp_init_mips(PSDSPContext *s) s 454 libavcodec/mips/aacpsdsp_mips.c s->hybrid_analysis_ileave = ps_hybrid_analysis_ileave_mips; s 455 libavcodec/mips/aacpsdsp_mips.c s->hybrid_synthesis_deint = ps_hybrid_synthesis_deint_mips; s 457 libavcodec/mips/aacpsdsp_mips.c s->add_squares = ps_add_squares_mips; s 458 libavcodec/mips/aacpsdsp_mips.c s->mul_pair_single = ps_mul_pair_single_mips; s 459 libavcodec/mips/aacpsdsp_mips.c s->decorrelate = ps_decorrelate_mips; s 460 libavcodec/mips/aacpsdsp_mips.c s->stereo_interpolate[0] = ps_stereo_interpolate_mips; s 59 libavcodec/mips/compute_antialias_fixed.h static void compute_antialias_mips_fixed(MPADecodeContext *s, s 62 libavcodec/mips/compute_antialias_float.h static void compute_antialias_mips_float(MPADecodeContext *s, s 61 libavcodec/mips/fft_mips.c static void ff_fft_calc_mips(FFTContext *s, FFTComplex *z) s 69 libavcodec/mips/fft_mips.c const int fft_size = (1 << s->nbits); s 75 libavcodec/mips/fft_mips.c num_transforms = (21845 >> (17 - s->nbits)) | 1; s 204 libavcodec/mips/fft_mips.c for (nbits=4; nbits<=s->nbits; nbits++) { s 324 libavcodec/mips/fft_mips.c static void ff_imdct_half_mips(FFTContext *s, FFTSample *output, const FFTSample *input) s 327 libavcodec/mips/fft_mips.c const uint16_t *revtab = s->revtab; s 328 libavcodec/mips/fft_mips.c const FFTSample *tcos = s->tcos; s 329 libavcodec/mips/fft_mips.c const FFTSample *tsin = s->tsin; s 339 libavcodec/mips/fft_mips.c n = 1 << s->mdct_bits; s 401 libavcodec/mips/fft_mips.c s->fft_calc(s, z); s 477 libavcodec/mips/fft_mips.c static void ff_imdct_calc_mips(FFTContext *s, FFTSample *output, const FFTSample *input) s 480 libavcodec/mips/fft_mips.c int n = 1 << s->mdct_bits; s 484 libavcodec/mips/fft_mips.c ff_imdct_half_mips(s, output+n4, input); s 501 libavcodec/mips/fft_mips.c av_cold void ff_fft_init_mips(FFTContext *s) s 510 libavcodec/mips/fft_mips.c s->fft_calc = ff_fft_calc_mips; s 512 libavcodec/mips/fft_mips.c s->imdct_calc = ff_imdct_calc_mips; s 513 libavcodec/mips/fft_mips.c s->imdct_half = ff_imdct_half_mips; s 28 libavcodec/mips/h263dsp_mips.h void ff_dct_unquantize_mpeg2_inter_msa(MpegEncContext *s, int16_t *block, s 30 libavcodec/mips/h263dsp_mips.h void ff_dct_unquantize_h263_inter_msa(MpegEncContext *s, int16_t *block, s 32 libavcodec/mips/h263dsp_mips.h void ff_dct_unquantize_h263_intra_msa(MpegEncContext *s, int16_t *block, s 70 libavcodec/mips/hevcpred_mips.h void ff_intra_pred_8_16x16_msa(struct HEVCContext *s, int x0, int y0, int c_idx); s 71 libavcodec/mips/hevcpred_mips.h void ff_intra_pred_8_32x32_msa(struct HEVCContext *s, int x0, int y0, int c_idx); s 1906 libavcodec/mips/hevcpred_msa.c void ff_intra_pred_8_16x16_msa(HEVCContext *s, int x0, int y0, int c_idx) s 1909 libavcodec/mips/hevcpred_msa.c HEVCLocalContext *lc = s->HEVClc; s 1911 libavcodec/mips/hevcpred_msa.c int hshift = s->ps.sps->hshift[c_idx]; s 1912 libavcodec/mips/hevcpred_msa.c int vshift = s->ps.sps->vshift[c_idx]; s 1914 libavcodec/mips/hevcpred_msa.c int size_in_tbs_h = size_in_luma_h >> s->ps.sps->log2_min_tb_size; s 1916 libavcodec/mips/hevcpred_msa.c int size_in_tbs_v = size_in_luma_v >> s->ps.sps->log2_min_tb_size; s 1919 libavcodec/mips/hevcpred_msa.c int x_tb = (x0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask; s 1920 libavcodec/mips/hevcpred_msa.c int y_tb = (y0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask; s 1923 libavcodec/mips/hevcpred_msa.c s->ps.pps->min_tb_addr_zs[(y_tb) * (s->ps.sps->tb_mask + 2) + (x_tb)]; s 1925 libavcodec/mips/hevcpred_msa.c ptrdiff_t stride = s->frame->linesize[c_idx] / sizeof(uint8_t); s 1926 libavcodec/mips/hevcpred_msa.c uint8_t *src = (uint8_t *) s->frame->data[c_idx] + x + y * stride; s 1928 libavcodec/mips/hevcpred_msa.c int min_pu_width = s->ps.sps->min_pu_width; s 1944 libavcodec/mips/hevcpred_msa.c s->ps.pps->min_tb_addr_zs[((y_tb + size_in_tbs_v) & s->ps.sps->tb_mask) * s 1945 libavcodec/mips/hevcpred_msa.c (s->ps.sps->tb_mask + 2) + (x_tb - 1)]; s 1951 libavcodec/mips/hevcpred_msa.c s->ps.pps->min_tb_addr_zs[(y_tb - 1) * (s->ps.sps->tb_mask + 2) + s 1952 libavcodec/mips/hevcpred_msa.c ((x_tb + size_in_tbs_h) & s->ps.sps->tb_mask)]; s 1956 libavcodec/mips/hevcpred_msa.c (s->ps.sps->height) ? (s->ps.sps->height) : (y0 + s 1961 libavcodec/mips/hevcpred_msa.c (s->ps.sps->width) ? (s->ps.sps->width) : (x0 + 2 * size_in_luma_h)) - s 1964 libavcodec/mips/hevcpred_msa.c if (s->ps.pps->constrained_intra_pred_flag == 1) { s 1965 libavcodec/mips/hevcpred_msa.c int size_in_luma_pu_v = ((size_in_luma_v) >> s->ps.sps->log2_min_pu_size); s 1966 libavcodec/mips/hevcpred_msa.c int size_in_luma_pu_h = ((size_in_luma_h) >> s->ps.sps->log2_min_pu_size); s 1967 libavcodec/mips/hevcpred_msa.c int on_pu_edge_x = !(x0 & ((1 << s->ps.sps->log2_min_pu_size) - 1)); s 1968 libavcodec/mips/hevcpred_msa.c int on_pu_edge_y = !(y0 & ((1 << s->ps.sps->log2_min_pu_size) - 1)); s 1972 libavcodec/mips/hevcpred_msa.c int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size); s 1974 libavcodec/mips/hevcpred_msa.c ((y0 + size_in_luma_v) >> s->ps.sps->log2_min_pu_size); s 1977 libavcodec/mips/hevcpred_msa.c (s->ps.sps->min_pu_height - s 1978 libavcodec/mips/hevcpred_msa.c y_bottom_pu) ? (s->ps.sps->min_pu_height - s 1983 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(x_left_pu) + s 1989 libavcodec/mips/hevcpred_msa.c int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size); s 1990 libavcodec/mips/hevcpred_msa.c int y_left_pu = ((y0) >> s->ps.sps->log2_min_pu_size); s 1993 libavcodec/mips/hevcpred_msa.c (s->ps.sps->min_pu_height - s 1994 libavcodec/mips/hevcpred_msa.c y_left_pu) ? (s->ps.sps->min_pu_height - s 1999 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(x_left_pu) + s 2005 libavcodec/mips/hevcpred_msa.c int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size); s 2006 libavcodec/mips/hevcpred_msa.c int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size); s 2008 libavcodec/mips/hevcpred_msa.c (s->ref->tab_mvf[(x_left_pu) + s 2013 libavcodec/mips/hevcpred_msa.c int x_top_pu = ((x0) >> s->ps.sps->log2_min_pu_size); s 2014 libavcodec/mips/hevcpred_msa.c int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size); s 2017 libavcodec/mips/hevcpred_msa.c (s->ps.sps->min_pu_width - s 2018 libavcodec/mips/hevcpred_msa.c x_top_pu) ? (s->ps.sps->min_pu_width - s 2023 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(x_top_pu + i) + s 2028 libavcodec/mips/hevcpred_msa.c int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size); s 2030 libavcodec/mips/hevcpred_msa.c ((x0 + size_in_luma_h) >> s->ps.sps->log2_min_pu_size); s 2033 libavcodec/mips/hevcpred_msa.c (s->ps.sps->min_pu_width - s 2034 libavcodec/mips/hevcpred_msa.c x_right_pu) ? (s->ps.sps->min_pu_width - s 2039 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(x_right_pu + i) + s 2089 libavcodec/mips/hevcpred_msa.c if (s->ps.pps->constrained_intra_pred_flag == 1) { s 2094 libavcodec/mips/hevcpred_msa.c s->ps.sps->width ? 2 * 16 : (s->ps.sps->width - x0) >> hshift; s 2097 libavcodec/mips/hevcpred_msa.c s->ps.sps->height ? 2 * 16 : (s->ps.sps->height - y0) >> vshift; s 2100 libavcodec/mips/hevcpred_msa.c size_max_x = x0 + ((16) << hshift) < s->ps.sps->width ? s 2101 libavcodec/mips/hevcpred_msa.c 16 : (s->ps.sps->width - x0) >> hshift; s 2104 libavcodec/mips/hevcpred_msa.c size_max_y = y0 + ((16) << vshift) < s->ps.sps->height ? s 2105 libavcodec/mips/hevcpred_msa.c 16 : (s->ps.sps->height - y0) >> vshift; s 2110 libavcodec/mips/hevcpred_msa.c !((s->ref->tab_mvf[(((x0 + s 2111 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2115 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2121 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2122 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2126 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2132 libavcodec/mips/hevcpred_msa.c !((s->ref->tab_mvf[(((x0 + s 2133 libavcodec/mips/hevcpred_msa.c ((j) << hshift)) >> s->ps.sps-> s 2137 libavcodec/mips/hevcpred_msa.c >> s-> s 2145 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2147 libavcodec/mips/hevcpred_msa.c 1) << hshift)) >> s->ps.sps-> s 2151 libavcodec/mips/hevcpred_msa.c >> s-> s 2163 libavcodec/mips/hevcpred_msa.c !((s->ref->tab_mvf[(((x0 + s 2164 libavcodec/mips/hevcpred_msa.c ((j) << hshift)) >> s->ps.sps-> s 2168 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2177 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2180 libavcodec/mips/hevcpred_msa.c s->ps.sps->log2_min_pu_size)) s 2184 libavcodec/mips/hevcpred_msa.c s->ps.sps->log2_min_pu_size)) s 2192 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2195 libavcodec/mips/hevcpred_msa.c s->ps.sps->log2_min_pu_size)) s 2199 libavcodec/mips/hevcpred_msa.c s->ps.sps->log2_min_pu_size)) s 2213 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2214 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2218 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2242 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2243 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2248 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2256 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2257 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2261 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2276 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2277 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2282 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2295 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2296 libavcodec/mips/hevcpred_msa.c ((i) << hshift)) >> s->ps.sps-> s 2300 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2372 libavcodec/mips/hevcpred_msa.c if (!s->ps.sps->intra_smoothing_disabled_flag s 2373 libavcodec/mips/hevcpred_msa.c && (c_idx == 0 || s->ps.sps->chroma_format_idc == 3)) { s 2405 libavcodec/mips/hevcpred_msa.c s->hpc.pred_planar[4 - 2] ((uint8_t *) src, (uint8_t *) top, s 2409 libavcodec/mips/hevcpred_msa.c s->hpc.pred_dc((uint8_t *) src, (uint8_t *) top, s 2413 libavcodec/mips/hevcpred_msa.c s->hpc.pred_angular[4 - 2] ((uint8_t *) src, (uint8_t *) top, s 2419 libavcodec/mips/hevcpred_msa.c void ff_intra_pred_8_32x32_msa(HEVCContext *s, int x0, int y0, int c_idx) s 2426 libavcodec/mips/hevcpred_msa.c HEVCLocalContext *lc = s->HEVClc; s 2428 libavcodec/mips/hevcpred_msa.c int hshift = s->ps.sps->hshift[c_idx]; s 2429 libavcodec/mips/hevcpred_msa.c int vshift = s->ps.sps->vshift[c_idx]; s 2431 libavcodec/mips/hevcpred_msa.c int size_in_tbs_h = size_in_luma_h >> s->ps.sps->log2_min_tb_size; s 2433 libavcodec/mips/hevcpred_msa.c int size_in_tbs_v = size_in_luma_v >> s->ps.sps->log2_min_tb_size; s 2436 libavcodec/mips/hevcpred_msa.c int x_tb = (x0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask; s 2437 libavcodec/mips/hevcpred_msa.c int y_tb = (y0 >> s->ps.sps->log2_min_tb_size) & s->ps.sps->tb_mask; s 2440 libavcodec/mips/hevcpred_msa.c s->ps.pps->min_tb_addr_zs[(y_tb) * (s->ps.sps->tb_mask + 2) + (x_tb)]; s 2442 libavcodec/mips/hevcpred_msa.c ptrdiff_t stride = s->frame->linesize[c_idx] / sizeof(uint8_t); s 2443 libavcodec/mips/hevcpred_msa.c uint8_t *src = (uint8_t *) s->frame->data[c_idx] + x + y * stride; s 2445 libavcodec/mips/hevcpred_msa.c int min_pu_width = s->ps.sps->min_pu_width; s 2461 libavcodec/mips/hevcpred_msa.c s->ps.pps->min_tb_addr_zs[((y_tb + size_in_tbs_v) & s->ps.sps->tb_mask) * s 2462 libavcodec/mips/hevcpred_msa.c (s->ps.sps->tb_mask + 2) + (x_tb - 1)]; s 2468 libavcodec/mips/hevcpred_msa.c s->ps.pps->min_tb_addr_zs[(y_tb - 1) * (s->ps.sps->tb_mask + 2) + s 2469 libavcodec/mips/hevcpred_msa.c ((x_tb + size_in_tbs_h) & s->ps.sps->tb_mask)]; s 2473 libavcodec/mips/hevcpred_msa.c (s->ps.sps->height) ? (s->ps.sps->height) : (y0 + s 2478 libavcodec/mips/hevcpred_msa.c (s->ps.sps->width) ? (s->ps.sps->width) : (x0 + 2 * size_in_luma_h)) - s 2481 libavcodec/mips/hevcpred_msa.c if (s->ps.pps->constrained_intra_pred_flag == 1) { s 2482 libavcodec/mips/hevcpred_msa.c int size_in_luma_pu_v = ((size_in_luma_v) >> s->ps.sps->log2_min_pu_size); s 2483 libavcodec/mips/hevcpred_msa.c int size_in_luma_pu_h = ((size_in_luma_h) >> s->ps.sps->log2_min_pu_size); s 2484 libavcodec/mips/hevcpred_msa.c int on_pu_edge_x = !(x0 & ((1 << s->ps.sps->log2_min_pu_size) - 1)); s 2485 libavcodec/mips/hevcpred_msa.c int on_pu_edge_y = !(y0 & ((1 << s->ps.sps->log2_min_pu_size) - 1)); s 2489 libavcodec/mips/hevcpred_msa.c int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size); s 2491 libavcodec/mips/hevcpred_msa.c ((y0 + size_in_luma_v) >> s->ps.sps->log2_min_pu_size); s 2494 libavcodec/mips/hevcpred_msa.c (s->ps.sps->min_pu_height - s 2495 libavcodec/mips/hevcpred_msa.c y_bottom_pu) ? (s->ps.sps->min_pu_height - s 2500 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(x_left_pu) + s 2506 libavcodec/mips/hevcpred_msa.c int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size); s 2507 libavcodec/mips/hevcpred_msa.c int y_left_pu = ((y0) >> s->ps.sps->log2_min_pu_size); s 2510 libavcodec/mips/hevcpred_msa.c (s->ps.sps->min_pu_height - s 2511 libavcodec/mips/hevcpred_msa.c y_left_pu) ? (s->ps.sps->min_pu_height - s 2516 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(x_left_pu) + s 2522 libavcodec/mips/hevcpred_msa.c int x_left_pu = ((x0 - 1) >> s->ps.sps->log2_min_pu_size); s 2523 libavcodec/mips/hevcpred_msa.c int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size); s 2525 libavcodec/mips/hevcpred_msa.c (s->ref->tab_mvf[(x_left_pu) + s 2530 libavcodec/mips/hevcpred_msa.c int x_top_pu = ((x0) >> s->ps.sps->log2_min_pu_size); s 2531 libavcodec/mips/hevcpred_msa.c int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size); s 2534 libavcodec/mips/hevcpred_msa.c (s->ps.sps->min_pu_width - s 2535 libavcodec/mips/hevcpred_msa.c x_top_pu) ? (s->ps.sps->min_pu_width - s 2540 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(x_top_pu + i) + s 2545 libavcodec/mips/hevcpred_msa.c int y_top_pu = ((y0 - 1) >> s->ps.sps->log2_min_pu_size); s 2547 libavcodec/mips/hevcpred_msa.c ((x0 + size_in_luma_h) >> s->ps.sps->log2_min_pu_size); s 2550 libavcodec/mips/hevcpred_msa.c (s->ps.sps->min_pu_width - s 2551 libavcodec/mips/hevcpred_msa.c x_right_pu) ? (s->ps.sps->min_pu_width - s 2556 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(x_right_pu + i) + s 2604 libavcodec/mips/hevcpred_msa.c if (s->ps.pps->constrained_intra_pred_flag == 1) { s 2609 libavcodec/mips/hevcpred_msa.c s->ps.sps->width ? 2 * 32 : (s->ps.sps->width - x0) >> hshift; s 2612 libavcodec/mips/hevcpred_msa.c s->ps.sps->height ? 2 * 32 : (s->ps.sps->height - y0) >> vshift; s 2615 libavcodec/mips/hevcpred_msa.c size_max_x = x0 + ((32) << hshift) < s->ps.sps->width ? s 2616 libavcodec/mips/hevcpred_msa.c 32 : (s->ps.sps->width - x0) >> hshift; s 2619 libavcodec/mips/hevcpred_msa.c size_max_y = y0 + ((32) << vshift) < s->ps.sps->height ? s 2620 libavcodec/mips/hevcpred_msa.c 32 : (s->ps.sps->height - y0) >> vshift; s 2625 libavcodec/mips/hevcpred_msa.c !((s->ref->tab_mvf[(((x0 + s 2626 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2630 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2636 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2637 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2641 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2647 libavcodec/mips/hevcpred_msa.c !((s->ref->tab_mvf[(((x0 + s 2648 libavcodec/mips/hevcpred_msa.c ((j) << hshift)) >> s->ps.sps-> s 2652 libavcodec/mips/hevcpred_msa.c >> s-> s 2660 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2662 libavcodec/mips/hevcpred_msa.c 1) << hshift)) >> s->ps.sps-> s 2666 libavcodec/mips/hevcpred_msa.c >> s-> s 2678 libavcodec/mips/hevcpred_msa.c !((s->ref->tab_mvf[(((x0 + s 2679 libavcodec/mips/hevcpred_msa.c ((j) << hshift)) >> s->ps.sps-> s 2683 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2692 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2695 libavcodec/mips/hevcpred_msa.c s->ps.sps->log2_min_pu_size)) s 2699 libavcodec/mips/hevcpred_msa.c s->ps.sps->log2_min_pu_size)) s 2707 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2710 libavcodec/mips/hevcpred_msa.c s->ps.sps->log2_min_pu_size)) s 2714 libavcodec/mips/hevcpred_msa.c s->ps.sps->log2_min_pu_size)) s 2728 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2729 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2733 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2756 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2757 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2762 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2770 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2771 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2775 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2790 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2791 libavcodec/mips/hevcpred_msa.c ((-1) << hshift)) >> s->ps.sps-> s 2796 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2809 libavcodec/mips/hevcpred_msa.c ((s->ref->tab_mvf[(((x0 + s 2810 libavcodec/mips/hevcpred_msa.c ((i) << hshift)) >> s->ps.sps-> s 2814 libavcodec/mips/hevcpred_msa.c >> s->ps.sps-> s 2889 libavcodec/mips/hevcpred_msa.c if (!s->ps.sps->intra_smoothing_disabled_flag s 2890 libavcodec/mips/hevcpred_msa.c && (c_idx == 0 || s->ps.sps->chroma_format_idc == 3)) { s 2904 libavcodec/mips/hevcpred_msa.c if (s->ps.sps->sps_strong_intra_smoothing_enable_flag s 3065 libavcodec/mips/hevcpred_msa.c s->hpc.pred_planar[3] ((uint8_t *) src, (uint8_t *) top, s 3069 libavcodec/mips/hevcpred_msa.c s->hpc.pred_dc((uint8_t *) src, (uint8_t *) top, s 3073 libavcodec/mips/hevcpred_msa.c s->hpc.pred_angular[3] ((uint8_t *) src, (uint8_t *) top, s 72 libavcodec/mips/iirfilter_mips.c struct FFIIRFilterState *s, int size, s 80 libavcodec/mips/iirfilter_mips.c float in = *src0 * c->gain + s->x[0] * c->cy[0] + s->x[1] * c->cy[1]; s 81 libavcodec/mips/iirfilter_mips.c *dst0 = s->x[0] + in + s->x[1] * c->cx[1]; s 82 libavcodec/mips/iirfilter_mips.c s->x[0] = s->x[1]; s 83 libavcodec/mips/iirfilter_mips.c s->x[1] = in; s 96 libavcodec/mips/iirfilter_mips.c float *x = s->x; s 187 libavcodec/mips/iirfilter_mips.c in += c->cy[j] * s->x[j]; s 188 libavcodec/mips/iirfilter_mips.c res = s->x[0] + in + s->x[c->order >> 1] * c->cx[c->order >> 1]; s 190 libavcodec/mips/iirfilter_mips.c res += (s->x[j] + s->x[c->order - j]) * c->cx[j]; s 192 libavcodec/mips/iirfilter_mips.c s->x[j] = s->x[j + 1]; s 194 libavcodec/mips/iirfilter_mips.c s->x[c->order - 1] = in; s 27 libavcodec/mips/me_cmp_mips.h int ff_hadamard8_diff8x8_msa(MpegEncContext *s, uint8_t *dst, uint8_t *src, s 29 libavcodec/mips/me_cmp_mips.h int ff_hadamard8_intra8x8_msa(MpegEncContext *s, uint8_t *dst, uint8_t *src, s 31 libavcodec/mips/me_cmp_mips.h int ff_hadamard8_diff16_msa(MpegEncContext *s, uint8_t *dst, uint8_t *src, s 33 libavcodec/mips/me_cmp_mips.h int ff_hadamard8_intra16_msa(MpegEncContext *s, uint8_t *dst, uint8_t *src, s 656 libavcodec/mips/me_cmp_msa.c int ff_hadamard8_diff8x8_msa(MpegEncContext *s, uint8_t *dst, uint8_t *src, s 662 libavcodec/mips/me_cmp_msa.c int ff_hadamard8_intra8x8_msa(MpegEncContext *s, uint8_t *dst, uint8_t *src, s 670 libavcodec/mips/me_cmp_msa.c int name16(MpegEncContext *s, uint8_t *dst, uint8_t *src, \ s 674 libavcodec/mips/me_cmp_msa.c score += name8(s, dst, src, stride, 8); \ s 675 libavcodec/mips/me_cmp_msa.c score += name8(s, dst + 8, src + 8, stride, 8); \ s 679 libavcodec/mips/me_cmp_msa.c score +=name8(s, dst, src, stride, 8); \ s 680 libavcodec/mips/me_cmp_msa.c score +=name8(s, dst + 8, src + 8, stride, 8); \ s 910 libavcodec/mips/mpegaudiodsp_mips_fixed.c void ff_mpadsp_init_mipsdsp(MPADSPContext *s) s 914 libavcodec/mips/mpegaudiodsp_mips_fixed.c s->apply_window_fixed = ff_mpadsp_apply_window_mips_fixed; s 915 libavcodec/mips/mpegaudiodsp_mips_fixed.c s->imdct36_blocks_fixed = ff_imdct36_blocks_mips_fixed; s 1252 libavcodec/mips/mpegaudiodsp_mips_float.c void ff_mpadsp_init_mipsfpu(MPADSPContext *s) s 1256 libavcodec/mips/mpegaudiodsp_mips_float.c s->apply_window_float = ff_mpadsp_apply_window_mips_float; s 1257 libavcodec/mips/mpegaudiodsp_mips_float.c s->imdct36_blocks_float = ff_imdct36_blocks_mips_float; s 1258 libavcodec/mips/mpegaudiodsp_mips_float.c s->dct32_float = ff_dct32_mips_float; s 25 libavcodec/mips/mpegvideo_init_mips.c static av_cold void dct_unquantize_init_msa(MpegEncContext *s) s 27 libavcodec/mips/mpegvideo_init_mips.c s->dct_unquantize_h263_intra = ff_dct_unquantize_h263_intra_msa; s 28 libavcodec/mips/mpegvideo_init_mips.c s->dct_unquantize_h263_inter = ff_dct_unquantize_h263_inter_msa; s 29 libavcodec/mips/mpegvideo_init_mips.c if (!s->q_scale_type) s 30 libavcodec/mips/mpegvideo_init_mips.c s->dct_unquantize_mpeg2_inter = ff_dct_unquantize_mpeg2_inter_msa; s 35 libavcodec/mips/mpegvideo_init_mips.c static av_cold void dct_unquantize_init_mmi(MpegEncContext *s) s 37 libavcodec/mips/mpegvideo_init_mips.c s->dct_unquantize_h263_intra = ff_dct_unquantize_h263_intra_mmi; s 38 libavcodec/mips/mpegvideo_init_mips.c s->dct_unquantize_h263_inter = ff_dct_unquantize_h263_inter_mmi; s 39 libavcodec/mips/mpegvideo_init_mips.c s->dct_unquantize_mpeg1_intra = ff_dct_unquantize_mpeg1_intra_mmi; s 40 libavcodec/mips/mpegvideo_init_mips.c s->dct_unquantize_mpeg1_inter = ff_dct_unquantize_mpeg1_inter_mmi; s 42 libavcodec/mips/mpegvideo_init_mips.c if (!(s->avctx->flags & AV_CODEC_FLAG_BITEXACT)) s 43 libavcodec/mips/mpegvideo_init_mips.c if (!s->q_scale_type) s 44 libavcodec/mips/mpegvideo_init_mips.c s->dct_unquantize_mpeg2_intra = ff_dct_unquantize_mpeg2_intra_mmi; s 46 libavcodec/mips/mpegvideo_init_mips.c s->denoise_dct= ff_denoise_dct_mmi; s 50 libavcodec/mips/mpegvideo_init_mips.c av_cold void ff_mpv_common_init_mips(MpegEncContext *s) s 53 libavcodec/mips/mpegvideo_init_mips.c dct_unquantize_init_mmi(s); s 56 libavcodec/mips/mpegvideo_init_mips.c dct_unquantize_init_msa(s); s 26 libavcodec/mips/mpegvideo_mips.h void ff_dct_unquantize_h263_intra_mmi(MpegEncContext *s, int16_t *block, s 28 libavcodec/mips/mpegvideo_mips.h void ff_dct_unquantize_h263_inter_mmi(MpegEncContext *s, int16_t *block, s 30 libavcodec/mips/mpegvideo_mips.h void ff_dct_unquantize_mpeg1_intra_mmi(MpegEncContext *s, int16_t *block, s 32 libavcodec/mips/mpegvideo_mips.h void ff_dct_unquantize_mpeg1_inter_mmi(MpegEncContext *s, int16_t *block, s 34 libavcodec/mips/mpegvideo_mips.h void ff_dct_unquantize_mpeg2_intra_mmi(MpegEncContext *s, int16_t *block, s 36 libavcodec/mips/mpegvideo_mips.h void ff_denoise_dct_mmi(MpegEncContext *s, int16_t *block); s 28 libavcodec/mips/mpegvideo_mmi.c void ff_dct_unquantize_h263_intra_mmi(MpegEncContext *s, int16_t *block, s 37 libavcodec/mips/mpegvideo_mmi.c av_assert2(s->block_last_index[n]>=0 || s->h263_aic); s 39 libavcodec/mips/mpegvideo_mmi.c if (!s->h263_aic) { s 41 libavcodec/mips/mpegvideo_mmi.c level = block[0] * s->y_dc_scale; s 43 libavcodec/mips/mpegvideo_mmi.c level = block[0] * s->c_dc_scale; s 50 libavcodec/mips/mpegvideo_mmi.c if(s->ac_pred) s 53 libavcodec/mips/mpegvideo_mmi.c nCoeffs = s->inter_scantable.raster_end[s->block_last_index[n]]; s 103 libavcodec/mips/mpegvideo_mmi.c void ff_dct_unquantize_h263_inter_mmi(MpegEncContext *s, int16_t *block, s 113 libavcodec/mips/mpegvideo_mmi.c av_assert2(s->block_last_index[n]>=0 || s->h263_aic); s 114 libavcodec/mips/mpegvideo_mmi.c nCoeffs = s->inter_scantable.raster_end[s->block_last_index[n]]; s 161 libavcodec/mips/mpegvideo_mmi.c void ff_dct_unquantize_mpeg1_intra_mmi(MpegEncContext *s, int16_t *block, s 173 libavcodec/mips/mpegvideo_mmi.c av_assert2(s->block_last_index[n]>=0); s 174 libavcodec/mips/mpegvideo_mmi.c nCoeffs = s->intra_scantable.raster_end[s->block_last_index[n]] + 1; s 177 libavcodec/mips/mpegvideo_mmi.c block0 = block[0] * s->y_dc_scale; s 179 libavcodec/mips/mpegvideo_mmi.c block0 = block[0] * s->c_dc_scale; s 182 libavcodec/mips/mpegvideo_mmi.c quant_matrix = s->intra_matrix; s 255 libavcodec/mips/mpegvideo_mmi.c void ff_dct_unquantize_mpeg1_inter_mmi(MpegEncContext *s, int16_t *block, s 266 libavcodec/mips/mpegvideo_mmi.c av_assert2(s->block_last_index[n] >= 0); s 267 libavcodec/mips/mpegvideo_mmi.c nCoeffs = s->intra_scantable.raster_end[s->block_last_index[n]] + 1; s 268 libavcodec/mips/mpegvideo_mmi.c quant_matrix = s->inter_matrix; s 343 libavcodec/mips/mpegvideo_mmi.c void ff_dct_unquantize_mpeg2_intra_mmi(MpegEncContext *s, int16_t *block, s 355 libavcodec/mips/mpegvideo_mmi.c assert(s->block_last_index[n]>=0); s 357 libavcodec/mips/mpegvideo_mmi.c if (s->alternate_scan) s 360 libavcodec/mips/mpegvideo_mmi.c nCoeffs = s->intra_scantable.raster_end[s->block_last_index[n]]; s 363 libavcodec/mips/mpegvideo_mmi.c block0 = block[0] * s->y_dc_scale; s 365 libavcodec/mips/mpegvideo_mmi.c block0 = block[0] * s->c_dc_scale; s 367 libavcodec/mips/mpegvideo_mmi.c quant_matrix = s->intra_matrix; s 436 libavcodec/mips/mpegvideo_mmi.c void ff_denoise_dct_mmi(MpegEncContext *s, int16_t *block) s 438 libavcodec/mips/mpegvideo_mmi.c const int intra = s->mb_intra; s 439 libavcodec/mips/mpegvideo_mmi.c int *sum = s->dct_error_sum[intra]; s 440 libavcodec/mips/mpegvideo_mmi.c uint16_t *offset = s->dct_offset[intra]; s 445 libavcodec/mips/mpegvideo_mmi.c s->dct_count[intra]++; s 196 libavcodec/mips/mpegvideo_msa.c void ff_dct_unquantize_h263_intra_msa(MpegEncContext *s, s 203 libavcodec/mips/mpegvideo_msa.c av_assert2(s->block_last_index[index] >= 0 || s->h263_aic); s 207 libavcodec/mips/mpegvideo_msa.c if (!s->h263_aic) { s 208 libavcodec/mips/mpegvideo_msa.c block[0] *= index < 4 ? s->y_dc_scale : s->c_dc_scale; s 213 libavcodec/mips/mpegvideo_msa.c if (s->ac_pred) s 216 libavcodec/mips/mpegvideo_msa.c nCoeffs = s->inter_scantable.raster_end[s->block_last_index[index]]; s 221 libavcodec/mips/mpegvideo_msa.c void ff_dct_unquantize_h263_inter_msa(MpegEncContext *s, s 228 libavcodec/mips/mpegvideo_msa.c av_assert2(s->block_last_index[index] >= 0); s 233 libavcodec/mips/mpegvideo_msa.c nCoeffs = s->inter_scantable.raster_end[s->block_last_index[index]]; s 238 libavcodec/mips/mpegvideo_msa.c void ff_dct_unquantize_mpeg2_inter_msa(MpegEncContext *s, s 245 libavcodec/mips/mpegvideo_msa.c quant_matrix = s->inter_matrix; s 890 libavcodec/mips/sbrdsp_mips.c void ff_sbrdsp_init_mips(SBRDSPContext *s) s 894 libavcodec/mips/sbrdsp_mips.c s->qmf_pre_shuffle = sbr_qmf_pre_shuffle_mips; s 895 libavcodec/mips/sbrdsp_mips.c s->qmf_post_shuffle = sbr_qmf_post_shuffle_mips; s 897 libavcodec/mips/sbrdsp_mips.c s->sum64x5 = sbr_sum64x5_mips; s 898 libavcodec/mips/sbrdsp_mips.c s->sum_square = sbr_sum_square_mips; s 899 libavcodec/mips/sbrdsp_mips.c s->qmf_deint_bfly = sbr_qmf_deint_bfly_mips; s 900 libavcodec/mips/sbrdsp_mips.c s->autocorrelate = sbr_autocorrelate_mips; s 901 libavcodec/mips/sbrdsp_mips.c s->hf_gen = sbr_hf_gen_mips; s 902 libavcodec/mips/sbrdsp_mips.c s->hf_g_filt = sbr_hf_g_filt_mips; s 904 libavcodec/mips/sbrdsp_mips.c s->hf_apply_noise[0] = sbr_hf_apply_noise_0_mips; s 905 libavcodec/mips/sbrdsp_mips.c s->hf_apply_noise[1] = sbr_hf_apply_noise_1_mips; s 906 libavcodec/mips/sbrdsp_mips.c s->hf_apply_noise[2] = sbr_hf_apply_noise_2_mips; s 907 libavcodec/mips/sbrdsp_mips.c s->hf_apply_noise[3] = sbr_hf_apply_noise_3_mips; s 104 libavcodec/mjpeg_parser.c static int jpeg_parse(AVCodecParserContext *s, s 109 libavcodec/mjpeg_parser.c MJPEGParserContext *m = s->priv_data; s 113 libavcodec/mjpeg_parser.c if(s->flags & PARSER_FLAG_COMPLETE_FRAMES){ s 49 libavcodec/mjpegbdec.c MJpegDecodeContext *s = avctx->priv_data; s 58 libavcodec/mjpegbdec.c s->got_picture = 0; s 59 libavcodec/mjpegbdec.c s->adobe_transform = -1; s 63 libavcodec/mjpegbdec.c s->restart_interval = 0; s 64 libavcodec/mjpegbdec.c s->restart_count = 0; s 65 libavcodec/mjpegbdec.c s->mjpb_skiptosod = 0; s 89 libavcodec/mjpegbdec.c init_get_bits(&s->gb, buf_ptr+dqt_offs, (buf_end - (buf_ptr+dqt_offs))*8); s 90 libavcodec/mjpegbdec.c s->start_code = DQT; s 91 libavcodec/mjpegbdec.c ret = ff_mjpeg_decode_dqt(s); s 99 libavcodec/mjpegbdec.c init_get_bits(&s->gb, buf_ptr+dht_offs, (buf_end - (buf_ptr+dht_offs))*8); s 100 libavcodec/mjpegbdec.c s->start_code = DHT; s 101 libavcodec/mjpegbdec.c ff_mjpeg_decode_dht(s); s 107 libavcodec/mjpegbdec.c init_get_bits(&s->gb, buf_ptr+sof_offs, (buf_end - (buf_ptr+sof_offs))*8); s 108 libavcodec/mjpegbdec.c s->start_code = SOF0; s 109 libavcodec/mjpegbdec.c if ((ret = ff_mjpeg_decode_sof(s)) < 0) s 118 libavcodec/mjpegbdec.c init_get_bits(&s->gb, buf_ptr + sos_offs, s 120 libavcodec/mjpegbdec.c s->mjpb_skiptosod = (sod_offs - sos_offs - show_bits(&s->gb, 16)); s 121 libavcodec/mjpegbdec.c s->start_code = SOS; s 122 libavcodec/mjpegbdec.c ret = ff_mjpeg_decode_sos(s, NULL, 0, NULL); s 127 libavcodec/mjpegbdec.c if (s->interlaced) { s 128 libavcodec/mjpegbdec.c s->bottom_field ^= 1; s 130 libavcodec/mjpegbdec.c if (s->bottom_field != s->interlace_polarity && second_field_offs) { s 138 libavcodec/mjpegbdec.c if(!s->got_picture) { s 143 libavcodec/mjpegbdec.c if ((ret = av_frame_ref(data, s->picture_ptr)) < 0) s 147 libavcodec/mjpegbdec.c if (!s->lossless && avctx->debug & FF_DEBUG_QP) { s 149 libavcodec/mjpegbdec.c FFMAX3(s->qscale[0], s->qscale[1], s->qscale[2])); s 76 libavcodec/mjpegdec.c static int init_default_huffman_tables(MJpegDecodeContext *s) s 102 libavcodec/mjpegdec.c ret = build_vlc(&s->vlcs[ht[i].class][ht[i].index], s 109 libavcodec/mjpegdec.c memcpy(s->raw_huffman_lengths[ht[i].class][ht[i].index], s 111 libavcodec/mjpegdec.c memcpy(s->raw_huffman_values[ht[i].class][ht[i].index], s 119 libavcodec/mjpegdec.c static void parse_avid(MJpegDecodeContext *s, uint8_t *buf, int len) s 121 libavcodec/mjpegdec.c s->buggy_avid = 1; s 123 libavcodec/mjpegdec.c s->interlace_polarity = 1; s 125 libavcodec/mjpegdec.c s->interlace_polarity = 0; s 126 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 127 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_INFO, "AVID: len:%d %d\n", len, len > 14 ? buf[12] : -1); s 132 libavcodec/mjpegdec.c MJpegDecodeContext *s = avctx->priv_data; s 134 libavcodec/mjpegdec.c ff_idctdsp_init(&s->idsp, avctx); s 135 libavcodec/mjpegdec.c ff_init_scantable(s->idsp.idct_permutation, &s->scantable, s 141 libavcodec/mjpegdec.c MJpegDecodeContext *s = avctx->priv_data; s 144 libavcodec/mjpegdec.c if (!s->picture_ptr) { s 145 libavcodec/mjpegdec.c s->picture = av_frame_alloc(); s 146 libavcodec/mjpegdec.c if (!s->picture) s 148 libavcodec/mjpegdec.c s->picture_ptr = s->picture; s 151 libavcodec/mjpegdec.c s->avctx = avctx; s 152 libavcodec/mjpegdec.c ff_blockdsp_init(&s->bdsp, avctx); s 153 libavcodec/mjpegdec.c ff_hpeldsp_init(&s->hdsp, avctx->flags); s 155 libavcodec/mjpegdec.c s->buffer_size = 0; s 156 libavcodec/mjpegdec.c s->buffer = NULL; s 157 libavcodec/mjpegdec.c s->start_code = -1; s 158 libavcodec/mjpegdec.c s->first_picture = 1; s 159 libavcodec/mjpegdec.c s->got_picture = 0; s 160 libavcodec/mjpegdec.c s->org_height = avctx->coded_height; s 163 libavcodec/mjpegdec.c s->hwaccel_pix_fmt = s->hwaccel_sw_pix_fmt = AV_PIX_FMT_NONE; s 165 libavcodec/mjpegdec.c if ((ret = init_default_huffman_tables(s)) < 0) s 168 libavcodec/mjpegdec.c if (s->extern_huff) { s 170 libavcodec/mjpegdec.c if ((ret = init_get_bits(&s->gb, avctx->extradata, avctx->extradata_size * 8)) < 0) s 172 libavcodec/mjpegdec.c if (ff_mjpeg_decode_dht(s)) { s 175 libavcodec/mjpegdec.c init_default_huffman_tables(s); s 179 libavcodec/mjpegdec.c s->interlace_polarity = 1; /* bottom field first */ s 183 libavcodec/mjpegdec.c s->interlace_polarity = 1; s 189 libavcodec/mjpegdec.c parse_avid(s, avctx->extradata, avctx->extradata_size); s 193 libavcodec/mjpegdec.c s->flipped = 1; s 200 libavcodec/mjpegdec.c int ff_mjpeg_decode_dqt(MJpegDecodeContext *s) s 204 libavcodec/mjpegdec.c len = get_bits(&s->gb, 16) - 2; s 206 libavcodec/mjpegdec.c if (8*len > get_bits_left(&s->gb)) { s 207 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "dqt: len %d is too large\n", len); s 212 libavcodec/mjpegdec.c int pr = get_bits(&s->gb, 4); s 214 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "dqt: invalid precision\n"); s 217 libavcodec/mjpegdec.c index = get_bits(&s->gb, 4); s 220 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "index=%d\n", index); s 223 libavcodec/mjpegdec.c s->quant_matrixes[index][i] = get_bits(&s->gb, pr ? 16 : 8); s 224 libavcodec/mjpegdec.c if (s->quant_matrixes[index][i] == 0) { s 225 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "dqt: 0 quant value\n"); s 231 libavcodec/mjpegdec.c s->qscale[index] = FFMAX(s->quant_matrixes[index][1], s 232 libavcodec/mjpegdec.c s->quant_matrixes[index][8]) >> 1; s 233 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "qscale[%d]: %d\n", s 234 libavcodec/mjpegdec.c index, s->qscale[index]); s 241 libavcodec/mjpegdec.c int ff_mjpeg_decode_dht(MJpegDecodeContext *s) s 248 libavcodec/mjpegdec.c len = get_bits(&s->gb, 16) - 2; s 250 libavcodec/mjpegdec.c if (8*len > get_bits_left(&s->gb)) { s 251 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "dht: len %d is too large\n", len); s 258 libavcodec/mjpegdec.c class = get_bits(&s->gb, 4); s 261 libavcodec/mjpegdec.c index = get_bits(&s->gb, 4); s 266 libavcodec/mjpegdec.c bits_table[i] = get_bits(&s->gb, 8); s 275 libavcodec/mjpegdec.c v = get_bits(&s->gb, 8); s 283 libavcodec/mjpegdec.c ff_free_vlc(&s->vlcs[class][index]); s 284 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "class=%d index=%d nb_codes=%d\n", s 286 libavcodec/mjpegdec.c if ((ret = build_vlc(&s->vlcs[class][index], bits_table, val_table, s 291 libavcodec/mjpegdec.c ff_free_vlc(&s->vlcs[2][index]); s 292 libavcodec/mjpegdec.c if ((ret = build_vlc(&s->vlcs[2][index], bits_table, val_table, s 298 libavcodec/mjpegdec.c s->raw_huffman_lengths[class][index][i] = bits_table[i + 1]; s 300 libavcodec/mjpegdec.c s->raw_huffman_values[class][index][i] = val_table[i]; s 305 libavcodec/mjpegdec.c int ff_mjpeg_decode_sof(MJpegDecodeContext *s) s 312 libavcodec/mjpegdec.c s->cur_scan = 0; s 313 libavcodec/mjpegdec.c memset(s->upscale_h, 0, sizeof(s->upscale_h)); s 314 libavcodec/mjpegdec.c memset(s->upscale_v, 0, sizeof(s->upscale_v)); s 316 libavcodec/mjpegdec.c len = get_bits(&s->gb, 16); s 317 libavcodec/mjpegdec.c bits = get_bits(&s->gb, 8); s 320 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "bits %d is invalid\n", bits); s 324 libavcodec/mjpegdec.c if (s->avctx->bits_per_raw_sample != bits) { s 325 libavcodec/mjpegdec.c av_log(s->avctx, s->avctx->bits_per_raw_sample > 0 ? AV_LOG_INFO : AV_LOG_DEBUG, "Changing bps from %d to %d\n", s->avctx->bits_per_raw_sample, bits); s 326 libavcodec/mjpegdec.c s->avctx->bits_per_raw_sample = bits; s 327 libavcodec/mjpegdec.c init_idct(s->avctx); s 329 libavcodec/mjpegdec.c if (s->pegasus_rct) s 331 libavcodec/mjpegdec.c if (bits == 9 && !s->pegasus_rct) s 332 libavcodec/mjpegdec.c s->rct = 1; // FIXME ugly s 334 libavcodec/mjpegdec.c if(s->lossless && s->avctx->lowres){ s 335 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "lowres is not possible with lossless jpeg\n"); s 339 libavcodec/mjpegdec.c height = get_bits(&s->gb, 16); s 340 libavcodec/mjpegdec.c width = get_bits(&s->gb, 16); s 343 libavcodec/mjpegdec.c if (s->interlaced && s->width == width && s->height == height + 1) s 344 libavcodec/mjpegdec.c height= s->height; s 346 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "sof0: picture: %dx%d\n", width, height); s 347 libavcodec/mjpegdec.c if (av_image_check_size(width, height, 0, s->avctx) < 0) s 349 libavcodec/mjpegdec.c if (s->buf_size && (width + 7) / 8 * ((height + 7) / 8) > s->buf_size * 4LL) s 352 libavcodec/mjpegdec.c nb_components = get_bits(&s->gb, 8); s 356 libavcodec/mjpegdec.c if (s->interlaced && (s->bottom_field == !s->interlace_polarity)) { s 357 libavcodec/mjpegdec.c if (nb_components != s->nb_components) { s 358 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, s 363 libavcodec/mjpegdec.c if (s->ls && !(bits <= 8 || nb_components == 1)) { s 364 libavcodec/mjpegdec.c avpriv_report_missing_feature(s->avctx, s 370 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "decode_sof0: error, len(%d) mismatch %d components\n", len, nb_components); s 374 libavcodec/mjpegdec.c s->nb_components = nb_components; s 375 libavcodec/mjpegdec.c s->h_max = 1; s 376 libavcodec/mjpegdec.c s->v_max = 1; s 379 libavcodec/mjpegdec.c s->component_id[i] = get_bits(&s->gb, 8) - 1; s 380 libavcodec/mjpegdec.c h_count[i] = get_bits(&s->gb, 4); s 381 libavcodec/mjpegdec.c v_count[i] = get_bits(&s->gb, 4); s 383 libavcodec/mjpegdec.c if (h_count[i] > s->h_max) s 384 libavcodec/mjpegdec.c s->h_max = h_count[i]; s 385 libavcodec/mjpegdec.c if (v_count[i] > s->v_max) s 386 libavcodec/mjpegdec.c s->v_max = v_count[i]; s 387 libavcodec/mjpegdec.c s->quant_index[i] = get_bits(&s->gb, 8); s 388 libavcodec/mjpegdec.c if (s->quant_index[i] >= 4) { s 389 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "quant_index is invalid\n"); s 393 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, s 399 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "component %d %d:%d id: %d quant:%d\n", s 401 libavcodec/mjpegdec.c s->component_id[i], s->quant_index[i]); s 404 libavcodec/mjpegdec.c && s->component_id[0] == 'C' - 1 s 405 libavcodec/mjpegdec.c && s->component_id[1] == 'M' - 1 s 406 libavcodec/mjpegdec.c && s->component_id[2] == 'Y' - 1 s 407 libavcodec/mjpegdec.c && s->component_id[3] == 'K' - 1) s 408 libavcodec/mjpegdec.c s->adobe_transform = 0; s 410 libavcodec/mjpegdec.c if (s->ls && (s->h_max > 1 || s->v_max > 1)) { s 411 libavcodec/mjpegdec.c avpriv_report_missing_feature(s->avctx, "Subsampling in JPEG-LS"); s 415 libavcodec/mjpegdec.c if (s->bayer) { s 429 libavcodec/mjpegdec.c if (width != s->width || height != s->height || bits != s->bits || s 430 libavcodec/mjpegdec.c memcmp(s->h_count, h_count, sizeof(h_count)) || s 431 libavcodec/mjpegdec.c memcmp(s->v_count, v_count, sizeof(v_count))) { s 434 libavcodec/mjpegdec.c s->width = width; s 435 libavcodec/mjpegdec.c s->height = height; s 436 libavcodec/mjpegdec.c s->bits = bits; s 437 libavcodec/mjpegdec.c memcpy(s->h_count, h_count, sizeof(h_count)); s 438 libavcodec/mjpegdec.c memcpy(s->v_count, v_count, sizeof(v_count)); s 439 libavcodec/mjpegdec.c s->interlaced = 0; s 440 libavcodec/mjpegdec.c s->got_picture = 0; s 443 libavcodec/mjpegdec.c if (s->first_picture && s 444 libavcodec/mjpegdec.c (s->multiscope != 2 || s->avctx->time_base.den >= 25 * s->avctx->time_base.num) && s 445 libavcodec/mjpegdec.c s->org_height != 0 && s 446 libavcodec/mjpegdec.c s->height < ((s->org_height * 3) / 4)) { s 447 libavcodec/mjpegdec.c s->interlaced = 1; s 448 libavcodec/mjpegdec.c s->bottom_field = s->interlace_polarity; s 449 libavcodec/mjpegdec.c s->picture_ptr->interlaced_frame = 1; s 450 libavcodec/mjpegdec.c s->picture_ptr->top_field_first = !s->interlace_polarity; s 454 libavcodec/mjpegdec.c ret = ff_set_dimensions(s->avctx, width, height); s 458 libavcodec/mjpegdec.c s->first_picture = 0; s 463 libavcodec/mjpegdec.c if (s->got_picture && s->interlaced && (s->bottom_field == !s->interlace_polarity)) { s 464 libavcodec/mjpegdec.c if (s->progressive) { s 465 libavcodec/mjpegdec.c avpriv_request_sample(s->avctx, "progressively coded interlaced picture"); s 469 libavcodec/mjpegdec.c if (s->v_max == 1 && s->h_max == 1 && s->lossless==1 && (nb_components==3 || nb_components==4)) s 470 libavcodec/mjpegdec.c s->rgb = 1; s 471 libavcodec/mjpegdec.c else if (!s->lossless) s 472 libavcodec/mjpegdec.c s->rgb = 0; s 474 libavcodec/mjpegdec.c pix_fmt_id = ((unsigned)s->h_count[0] << 28) | (s->v_count[0] << 24) | s 475 libavcodec/mjpegdec.c (s->h_count[1] << 20) | (s->v_count[1] << 16) | s 476 libavcodec/mjpegdec.c (s->h_count[2] << 12) | (s->v_count[2] << 8) | s 477 libavcodec/mjpegdec.c (s->h_count[3] << 4) | s->v_count[3]; s 478 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "pix fmt id %x\n", pix_fmt_id); s 497 libavcodec/mjpegdec.c if (i & 1) s->upscale_h[j/2] = 1; s 498 libavcodec/mjpegdec.c else s->upscale_v[j/2] = 1; s 502 libavcodec/mjpegdec.c if (s->bayer) { s 509 libavcodec/mjpegdec.c if (!s->bayer) s 511 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_GRAY16LE; s 514 libavcodec/mjpegdec.c if (s->rgb) s 515 libavcodec/mjpegdec.c s->avctx->pix_fmt = s->bits <= 9 ? AV_PIX_FMT_BGR24 : AV_PIX_FMT_BGR48; s 517 libavcodec/mjpegdec.c if ( s->adobe_transform == 0 s 518 libavcodec/mjpegdec.c || s->component_id[0] == 'R' - 1 && s->component_id[1] == 'G' - 1 && s->component_id[2] == 'B' - 1) { s 519 libavcodec/mjpegdec.c s->avctx->pix_fmt = s->bits <= 8 ? AV_PIX_FMT_GBRP : AV_PIX_FMT_GBRP16; s 521 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV444P : AV_PIX_FMT_YUVJ444P; s 522 libavcodec/mjpegdec.c else s->avctx->pix_fmt = AV_PIX_FMT_YUV444P16; s 523 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 526 libavcodec/mjpegdec.c av_assert0(s->nb_components == 3); s 529 libavcodec/mjpegdec.c if (s->rgb) s 530 libavcodec/mjpegdec.c s->avctx->pix_fmt = s->bits <= 9 ? AV_PIX_FMT_ABGR : AV_PIX_FMT_RGBA64; s 532 libavcodec/mjpegdec.c if (s->adobe_transform == 0 && s->bits <= 8) { s 533 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_GBRAP; s 535 libavcodec/mjpegdec.c s->avctx->pix_fmt = s->bits <= 8 ? AV_PIX_FMT_YUVA444P : AV_PIX_FMT_YUVA444P16; s 536 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 539 libavcodec/mjpegdec.c av_assert0(s->nb_components == 4); s 543 libavcodec/mjpegdec.c if (s->adobe_transform == 0 && s->bits <= 8) { s 544 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_GBRAP; s 545 libavcodec/mjpegdec.c s->upscale_v[1] = s->upscale_v[2] = 1; s 546 libavcodec/mjpegdec.c s->upscale_h[1] = s->upscale_h[2] = 1; s 547 libavcodec/mjpegdec.c } else if (s->adobe_transform == 2 && s->bits <= 8) { s 548 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_YUVA444P; s 549 libavcodec/mjpegdec.c s->upscale_v[1] = s->upscale_v[2] = 1; s 550 libavcodec/mjpegdec.c s->upscale_h[1] = s->upscale_h[2] = 1; s 551 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 553 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = AV_PIX_FMT_YUVA420P; s 554 libavcodec/mjpegdec.c else s->avctx->pix_fmt = AV_PIX_FMT_YUVA420P16; s 555 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 557 libavcodec/mjpegdec.c av_assert0(s->nb_components == 4); s 566 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV444P : AV_PIX_FMT_YUVJ444P; s 569 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 580 libavcodec/mjpegdec.c if(s->bits <= 8) s 581 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_GRAY8; s 583 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_GRAY16; s 590 libavcodec/mjpegdec.c if (s->component_id[0] == 'Q' && s->component_id[1] == 'F' && s->component_id[2] == 'A') { s 591 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = AV_PIX_FMT_GBRP; s 594 libavcodec/mjpegdec.c s->upscale_v[0] = s->upscale_v[1] = 1; s 597 libavcodec/mjpegdec.c s->upscale_v[1] = s->upscale_v[2] = 1; s 598 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV440P : AV_PIX_FMT_YUVJ440P; s 601 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 605 libavcodec/mjpegdec.c if (s->component_id[0] == 'Q' && s->component_id[1] == 'F' && s->component_id[2] == 'A') { s 606 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = AV_PIX_FMT_GBRP; s 609 libavcodec/mjpegdec.c s->upscale_h[0] = s->upscale_h[1] = 1; s 611 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV422P : AV_PIX_FMT_YUVJ422P; s 612 libavcodec/mjpegdec.c else s->avctx->pix_fmt = AV_PIX_FMT_YUV422P16; s 613 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 617 libavcodec/mjpegdec.c if (s->bits > 8) s 619 libavcodec/mjpegdec.c s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV444P : AV_PIX_FMT_YUVJ444P; s 620 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 621 libavcodec/mjpegdec.c s->upscale_h[1] = s->upscale_h[2] = 2; s 625 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV422P : AV_PIX_FMT_YUVJ422P; s 628 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 634 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV420P : AV_PIX_FMT_YUVJ420P; s 635 libavcodec/mjpegdec.c else s->avctx->pix_fmt = AV_PIX_FMT_YUV420P16; s 636 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 638 libavcodec/mjpegdec.c if (s->bits > 8) s 640 libavcodec/mjpegdec.c s->upscale_h[1] = s->upscale_h[2] = 1; s 642 libavcodec/mjpegdec.c if (s->bits > 8) s 644 libavcodec/mjpegdec.c s->upscale_v[1] = s->upscale_v[2] = 1; s 646 libavcodec/mjpegdec.c if (s->bits > 8) s 648 libavcodec/mjpegdec.c s->upscale_v[1] = s->upscale_v[2] = 2; s 652 libavcodec/mjpegdec.c if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV411P : AV_PIX_FMT_YUVJ411P; s 655 libavcodec/mjpegdec.c s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; s 659 libavcodec/mjpegdec.c avpriv_report_missing_feature(s->avctx, "Pixel format 0x%x bits:%d", pix_fmt_id, s->bits); s 660 libavcodec/mjpegdec.c memset(s->upscale_h, 0, sizeof(s->upscale_h)); s 661 libavcodec/mjpegdec.c memset(s->upscale_v, 0, sizeof(s->upscale_v)); s 664 libavcodec/mjpegdec.c if ((AV_RB32(s->upscale_h) || AV_RB32(s->upscale_v)) && s->avctx->lowres) { s 665 libavcodec/mjpegdec.c avpriv_report_missing_feature(s->avctx, "Lowres for weird subsampling"); s 668 libavcodec/mjpegdec.c if ((AV_RB32(s->upscale_h) || AV_RB32(s->upscale_v)) && s->progressive && s->avctx->pix_fmt == AV_PIX_FMT_GBRP) { s 669 libavcodec/mjpegdec.c avpriv_report_missing_feature(s->avctx, "progressive for weird subsampling"); s 672 libavcodec/mjpegdec.c if (s->ls) { s 673 libavcodec/mjpegdec.c memset(s->upscale_h, 0, sizeof(s->upscale_h)); s 674 libavcodec/mjpegdec.c memset(s->upscale_v, 0, sizeof(s->upscale_v)); s 675 libavcodec/mjpegdec.c if (s->nb_components == 3) { s 676 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_RGB24; s 677 libavcodec/mjpegdec.c } else if (s->nb_components != 1) { s 678 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported number of components %d\n", s->nb_components); s 680 libavcodec/mjpegdec.c } else if (s->palette_index && s->bits <= 8) s 681 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_PAL8; s 682 libavcodec/mjpegdec.c else if (s->bits <= 8) s 683 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_GRAY8; s 685 libavcodec/mjpegdec.c s->avctx->pix_fmt = AV_PIX_FMT_GRAY16; s 688 libavcodec/mjpegdec.c s->pix_desc = av_pix_fmt_desc_get(s->avctx->pix_fmt); s 689 libavcodec/mjpegdec.c if (!s->pix_desc) { s 690 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "Could not get a pixel format descriptor.\n"); s 694 libavcodec/mjpegdec.c if (s->avctx->pix_fmt == s->hwaccel_sw_pix_fmt && !size_change) { s 695 libavcodec/mjpegdec.c s->avctx->pix_fmt = s->hwaccel_pix_fmt; s 704 libavcodec/mjpegdec.c s->avctx->pix_fmt, s 707 libavcodec/mjpegdec.c s->hwaccel_pix_fmt = ff_get_format(s->avctx, pix_fmts); s 708 libavcodec/mjpegdec.c if (s->hwaccel_pix_fmt < 0) s 711 libavcodec/mjpegdec.c s->hwaccel_sw_pix_fmt = s->avctx->pix_fmt; s 712 libavcodec/mjpegdec.c s->avctx->pix_fmt = s->hwaccel_pix_fmt; s 715 libavcodec/mjpegdec.c if (s->avctx->skip_frame == AVDISCARD_ALL) { s 716 libavcodec/mjpegdec.c s->picture_ptr->pict_type = AV_PICTURE_TYPE_I; s 717 libavcodec/mjpegdec.c s->picture_ptr->key_frame = 1; s 718 libavcodec/mjpegdec.c s->got_picture = 1; s 722 libavcodec/mjpegdec.c av_frame_unref(s->picture_ptr); s 723 libavcodec/mjpegdec.c if (ff_get_buffer(s->avctx, s->picture_ptr, AV_GET_BUFFER_FLAG_REF) < 0) s 725 libavcodec/mjpegdec.c s->picture_ptr->pict_type = AV_PICTURE_TYPE_I; s 726 libavcodec/mjpegdec.c s->picture_ptr->key_frame = 1; s 727 libavcodec/mjpegdec.c s->got_picture = 1; s 730 libavcodec/mjpegdec.c s->linesize[i] = s->picture_ptr->linesize[i] << s->interlaced; s 732 libavcodec/mjpegdec.c ff_dlog(s->avctx, "%d %d %d %d %d %d\n", s 733 libavcodec/mjpegdec.c s->width, s->height, s->linesize[0], s->linesize[1], s 734 libavcodec/mjpegdec.c s->interlaced, s->avctx->height); s 738 libavcodec/mjpegdec.c if ((s->rgb && !s->lossless && !s->ls) || s 739 libavcodec/mjpegdec.c (!s->rgb && s->ls && s->nb_components > 1) || s 740 libavcodec/mjpegdec.c (s->avctx->pix_fmt == AV_PIX_FMT_PAL8 && !s->ls) s 742 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported coding and pixel format combination\n"); s 747 libavcodec/mjpegdec.c if (s->progressive) { s 748 libavcodec/mjpegdec.c int bw = (width + s->h_max * 8 - 1) / (s->h_max * 8); s 749 libavcodec/mjpegdec.c int bh = (height + s->v_max * 8 - 1) / (s->v_max * 8); s 750 libavcodec/mjpegdec.c for (i = 0; i < s->nb_components; i++) { s 751 libavcodec/mjpegdec.c int size = bw * bh * s->h_count[i] * s->v_count[i]; s 752 libavcodec/mjpegdec.c av_freep(&s->blocks[i]); s 753 libavcodec/mjpegdec.c av_freep(&s->last_nnz[i]); s 754 libavcodec/mjpegdec.c s->blocks[i] = av_mallocz_array(size, sizeof(**s->blocks)); s 755 libavcodec/mjpegdec.c s->last_nnz[i] = av_mallocz_array(size, sizeof(**s->last_nnz)); s 756 libavcodec/mjpegdec.c if (!s->blocks[i] || !s->last_nnz[i]) s 758 libavcodec/mjpegdec.c s->block_stride[i] = bw * s->h_count[i]; s 760 libavcodec/mjpegdec.c memset(s->coefs_finished, 0, sizeof(s->coefs_finished)); s 763 libavcodec/mjpegdec.c if (s->avctx->hwaccel) { s 764 libavcodec/mjpegdec.c s->hwaccel_picture_private = s 765 libavcodec/mjpegdec.c av_mallocz(s->avctx->hwaccel->frame_priv_data_size); s 766 libavcodec/mjpegdec.c if (!s->hwaccel_picture_private) s 769 libavcodec/mjpegdec.c ret = s->avctx->hwaccel->start_frame(s->avctx, s->raw_image_buffer, s 770 libavcodec/mjpegdec.c s->raw_image_buffer_size); s 778 libavcodec/mjpegdec.c static inline int mjpeg_decode_dc(MJpegDecodeContext *s, int dc_index) s 781 libavcodec/mjpegdec.c code = get_vlc2(&s->gb, s->vlcs[0][dc_index].table, 9, 2); s 783 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, s 785 libavcodec/mjpegdec.c 0, dc_index, &s->vlcs[0][dc_index]); s 790 libavcodec/mjpegdec.c return get_xbits(&s->gb, code); s 796 libavcodec/mjpegdec.c static int decode_block(MJpegDecodeContext *s, int16_t *block, int component, s 802 libavcodec/mjpegdec.c val = mjpeg_decode_dc(s, dc_index); s 804 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "error dc\n"); s 807 libavcodec/mjpegdec.c val = val * (unsigned)quant_matrix[0] + s->last_dc[component]; s 809 libavcodec/mjpegdec.c s->last_dc[component] = val; s 813 libavcodec/mjpegdec.c {OPEN_READER(re, &s->gb); s 815 libavcodec/mjpegdec.c UPDATE_CACHE(re, &s->gb); s 816 libavcodec/mjpegdec.c GET_VLC(code, re, &s->gb, s->vlcs[1][ac_index].table, 9, 2); s 822 libavcodec/mjpegdec.c UPDATE_CACHE(re, &s->gb); s 825 libavcodec/mjpegdec.c int cache = GET_CACHE(re, &s->gb); s 830 libavcodec/mjpegdec.c LAST_SKIP_BITS(re, &s->gb, code); s 833 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "error count: %d\n", i); s 836 libavcodec/mjpegdec.c j = s->scantable.permutated[i]; s 840 libavcodec/mjpegdec.c CLOSE_READER(re, &s->gb);} s 845 libavcodec/mjpegdec.c static int decode_dc_progressive(MJpegDecodeContext *s, int16_t *block, s 850 libavcodec/mjpegdec.c s->bdsp.clear_block(block); s 851 libavcodec/mjpegdec.c val = mjpeg_decode_dc(s, dc_index); s 853 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "error dc\n"); s 856 libavcodec/mjpegdec.c val = (val * (quant_matrix[0] << Al)) + s->last_dc[component]; s 857 libavcodec/mjpegdec.c s->last_dc[component] = val; s 863 libavcodec/mjpegdec.c static int decode_block_progressive(MJpegDecodeContext *s, int16_t *block, s 877 libavcodec/mjpegdec.c OPEN_READER(re, &s->gb); s 879 libavcodec/mjpegdec.c UPDATE_CACHE(re, &s->gb); s 880 libavcodec/mjpegdec.c GET_VLC(code, re, &s->gb, s->vlcs[2][ac_index].table, 9, 2); s 887 libavcodec/mjpegdec.c UPDATE_CACHE(re, &s->gb); s 890 libavcodec/mjpegdec.c int cache = GET_CACHE(re, &s->gb); s 895 libavcodec/mjpegdec.c LAST_SKIP_BITS(re, &s->gb, code); s 899 libavcodec/mjpegdec.c j = s->scantable.permutated[se]; s 903 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "error count: %d\n", i); s 906 libavcodec/mjpegdec.c j = s->scantable.permutated[i]; s 912 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "ZRL overflow: %d\n", i); s 918 libavcodec/mjpegdec.c UPDATE_CACHE(re, &s->gb); s 919 libavcodec/mjpegdec.c val += NEG_USR32(GET_CACHE(re, &s->gb), run); s 920 libavcodec/mjpegdec.c LAST_SKIP_BITS(re, &s->gb, run); s 927 libavcodec/mjpegdec.c CLOSE_READER(re, &s->gb); s 937 libavcodec/mjpegdec.c UPDATE_CACHE(re, &s->gb); \ s 939 libavcodec/mjpegdec.c block[j] += SHOW_UBITS(re, &s->gb, 1) * \ s 941 libavcodec/mjpegdec.c LAST_SKIP_BITS(re, &s->gb, 1); \ s 949 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "error count: %d\n", i); \ s 954 libavcodec/mjpegdec.c j = s->scantable.permutated[i]; \ s 962 libavcodec/mjpegdec.c static int decode_block_refinement(MJpegDecodeContext *s, int16_t *block, s 970 libavcodec/mjpegdec.c OPEN_READER(re, &s->gb); s 975 libavcodec/mjpegdec.c UPDATE_CACHE(re, &s->gb); s 976 libavcodec/mjpegdec.c GET_VLC(code, re, &s->gb, s->vlcs[2][ac_index].table, 9, 2); s 980 libavcodec/mjpegdec.c UPDATE_CACHE(re, &s->gb); s 981 libavcodec/mjpegdec.c val = SHOW_UBITS(re, &s->gb, 1); s 982 libavcodec/mjpegdec.c LAST_SKIP_BITS(re, &s->gb, 1); s 984 libavcodec/mjpegdec.c j = s->scantable.permutated[i]; s 990 libavcodec/mjpegdec.c CLOSE_READER(re, &s->gb); s 1001 libavcodec/mjpegdec.c UPDATE_CACHE(re, &s->gb); s 1002 libavcodec/mjpegdec.c run += SHOW_UBITS(re, &s->gb, val); s 1003 libavcodec/mjpegdec.c LAST_SKIP_BITS(re, &s->gb, val); s 1016 libavcodec/mjpegdec.c j = s->scantable.permutated[i]; s 1020 libavcodec/mjpegdec.c CLOSE_READER(re, &s->gb); s 1027 libavcodec/mjpegdec.c static int handle_rstn(MJpegDecodeContext *s, int nb_components) s 1032 libavcodec/mjpegdec.c if (s->restart_interval) { s 1033 libavcodec/mjpegdec.c s->restart_count--; s 1034 libavcodec/mjpegdec.c if(s->restart_count == 0 && s->avctx->codec_id == AV_CODEC_ID_THP){ s 1035 libavcodec/mjpegdec.c align_get_bits(&s->gb); s 1037 libavcodec/mjpegdec.c s->last_dc[i] = (4 << s->bits); s 1040 libavcodec/mjpegdec.c i = 8 + ((-get_bits_count(&s->gb)) & 7); s 1042 libavcodec/mjpegdec.c if (s->restart_count == 0) { s 1043 libavcodec/mjpegdec.c if( show_bits(&s->gb, i) == (1 << i) - 1 s 1044 libavcodec/mjpegdec.c || show_bits(&s->gb, i) == 0xFF) { s 1045 libavcodec/mjpegdec.c int pos = get_bits_count(&s->gb); s 1046 libavcodec/mjpegdec.c align_get_bits(&s->gb); s 1047 libavcodec/mjpegdec.c while (get_bits_left(&s->gb) >= 8 && show_bits(&s->gb, 8) == 0xFF) s 1048 libavcodec/mjpegdec.c skip_bits(&s->gb, 8); s 1049 libavcodec/mjpegdec.c if (get_bits_left(&s->gb) >= 8 && (get_bits(&s->gb, 8) & 0xF8) == 0xD0) { s 1051 libavcodec/mjpegdec.c s->last_dc[i] = (4 << s->bits); s 1054 libavcodec/mjpegdec.c skip_bits_long(&s->gb, pos - get_bits_count(&s->gb)); s 1062 libavcodec/mjpegdec.c static int ljpeg_decode_rgb_scan(MJpegDecodeContext *s, int nb_components, int predictor, int point_transform) s 1068 libavcodec/mjpegdec.c const int linesize = s->linesize[0]; s 1069 libavcodec/mjpegdec.c const int mask = ((1 << s->bits) - 1) << point_transform; s 1074 libavcodec/mjpegdec.c if (!s->bayer && s->nb_components < 3) s 1076 libavcodec/mjpegdec.c if (s->bayer && s->nb_components > 2) s 1078 libavcodec/mjpegdec.c if (s->nb_components <= 0 || s->nb_components > 4) s 1080 libavcodec/mjpegdec.c if (s->v_max != 1 || s->h_max != 1 || !s->lossless) s 1084 libavcodec/mjpegdec.c s->restart_count = s->restart_interval; s 1086 libavcodec/mjpegdec.c if (s->restart_interval == 0) s 1087 libavcodec/mjpegdec.c s->restart_interval = INT_MAX; s 1089 libavcodec/mjpegdec.c if (s->bayer) s 1090 libavcodec/mjpegdec.c width = s->mb_width / nb_components; /* Interleaved, width stored is the total so need to divide */ s 1092 libavcodec/mjpegdec.c width = s->mb_width; s 1094 libavcodec/mjpegdec.c av_fast_malloc(&s->ljpeg_buffer, &s->ljpeg_buffer_size, width * 4 * sizeof(s->ljpeg_buffer[0][0])); s 1095 libavcodec/mjpegdec.c if (!s->ljpeg_buffer) s 1098 libavcodec/mjpegdec.c buffer = s->ljpeg_buffer; s 1101 libavcodec/mjpegdec.c buffer[0][i] = 1 << (s->bits - 1); s 1103 libavcodec/mjpegdec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 1104 libavcodec/mjpegdec.c uint8_t *ptr = s->picture_ptr->data[0] + (linesize * mb_y); s 1106 libavcodec/mjpegdec.c if (s->interlaced && s->bottom_field) s 1112 libavcodec/mjpegdec.c if ((mb_y * s->width) % s->restart_interval == 0) { s 1114 libavcodec/mjpegdec.c vpred[i] = 1 << (s->bits-1); s 1120 libavcodec/mjpegdec.c if (get_bits_left(&s->gb) < 1) { s 1121 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "bitstream end in rgb_scan\n"); s 1125 libavcodec/mjpegdec.c if (s->restart_interval && !s->restart_count){ s 1126 libavcodec/mjpegdec.c s->restart_count = s->restart_interval; s 1130 libavcodec/mjpegdec.c top[i] = left[i]= topleft[i]= 1 << (s->bits - 1); s 1141 libavcodec/mjpegdec.c dc = mjpeg_decode_dc(s, s->dc_index[i]); s 1145 libavcodec/mjpegdec.c if (!s->bayer || mb_x) { s 1158 libavcodec/mjpegdec.c if (s->restart_interval && !--s->restart_count) { s 1159 libavcodec/mjpegdec.c align_get_bits(&s->gb); s 1160 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); /* skip RSTn */ s 1163 libavcodec/mjpegdec.c if (s->rct && s->nb_components == 4) { s 1164 libavcodec/mjpegdec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1170 libavcodec/mjpegdec.c } else if (s->nb_components == 4) { s 1172 libavcodec/mjpegdec.c int c= s->comp_index[i]; s 1173 libavcodec/mjpegdec.c if (s->bits <= 8) { s 1174 libavcodec/mjpegdec.c for(mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1177 libavcodec/mjpegdec.c } else if(s->bits == 9) { s 1180 libavcodec/mjpegdec.c for(mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1185 libavcodec/mjpegdec.c } else if (s->rct) { s 1186 libavcodec/mjpegdec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1191 libavcodec/mjpegdec.c } else if (s->pegasus_rct) { s 1192 libavcodec/mjpegdec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1197 libavcodec/mjpegdec.c } else if (s->bayer) { s 1210 libavcodec/mjpegdec.c int c= s->comp_index[i]; s 1211 libavcodec/mjpegdec.c if (s->bits <= 8) { s 1212 libavcodec/mjpegdec.c for(mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1215 libavcodec/mjpegdec.c } else if(s->bits == 9) { s 1218 libavcodec/mjpegdec.c for(mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1228 libavcodec/mjpegdec.c static int ljpeg_decode_yuv_scan(MJpegDecodeContext *s, int predictor, s 1232 libavcodec/mjpegdec.c int bits= (s->bits+7)&~7; s 1236 libavcodec/mjpegdec.c point_transform += bits - s->bits; s 1237 libavcodec/mjpegdec.c mask = ((1 << s->bits) - 1) << point_transform; s 1241 libavcodec/mjpegdec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 1242 libavcodec/mjpegdec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1243 libavcodec/mjpegdec.c if (get_bits_left(&s->gb) < 1) { s 1244 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "bitstream end in yuv_scan\n"); s 1247 libavcodec/mjpegdec.c if (s->restart_interval && !s->restart_count){ s 1248 libavcodec/mjpegdec.c s->restart_count = s->restart_interval; s 1253 libavcodec/mjpegdec.c if(!mb_x || mb_y == resync_mb_y || mb_y == resync_mb_y+1 && mb_x < resync_mb_x || s->interlaced){ s 1260 libavcodec/mjpegdec.c n = s->nb_blocks[i]; s 1261 libavcodec/mjpegdec.c c = s->comp_index[i]; s 1262 libavcodec/mjpegdec.c h = s->h_scount[i]; s 1263 libavcodec/mjpegdec.c v = s->v_scount[i]; s 1266 libavcodec/mjpegdec.c linesize= s->linesize[c]; s 1273 libavcodec/mjpegdec.c dc = mjpeg_decode_dc(s, s->dc_index[i]); s 1276 libavcodec/mjpegdec.c if ( h * mb_x + x >= s->width s 1277 libavcodec/mjpegdec.c || v * mb_y + y >= s->height) { s 1280 libavcodec/mjpegdec.c ptr = s->picture_ptr->data[c] + (linesize * (v * mb_y + y)) + (h * mb_x + x); //FIXME optimize this crap s 1295 libavcodec/mjpegdec.c if (s->interlaced && s->bottom_field) s 1300 libavcodec/mjpegdec.c ptr16 = (uint16_t*)(s->picture_ptr->data[c] + 2*(linesize * (v * mb_y + y)) + 2*(h * mb_x + x)); //FIXME optimize this crap s 1315 libavcodec/mjpegdec.c if (s->interlaced && s->bottom_field) s 1331 libavcodec/mjpegdec.c n = s->nb_blocks[i]; s 1332 libavcodec/mjpegdec.c c = s->comp_index[i]; s 1333 libavcodec/mjpegdec.c h = s->h_scount[i]; s 1334 libavcodec/mjpegdec.c v = s->v_scount[i]; s 1337 libavcodec/mjpegdec.c linesize = s->linesize[c]; s 1344 libavcodec/mjpegdec.c dc = mjpeg_decode_dc(s, s->dc_index[i]); s 1347 libavcodec/mjpegdec.c if ( h * mb_x + x >= s->width s 1348 libavcodec/mjpegdec.c || v * mb_y + y >= s->height) { s 1351 libavcodec/mjpegdec.c ptr = s->picture_ptr->data[c] + s 1359 libavcodec/mjpegdec.c ptr16 = (uint16_t*)(s->picture_ptr->data[c] + 2*(linesize * (v * mb_y + y)) + 2*(h * mb_x + x)); //FIXME optimize this crap s 1373 libavcodec/mjpegdec.c if (s->restart_interval && !--s->restart_count) { s 1374 libavcodec/mjpegdec.c align_get_bits(&s->gb); s 1375 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); /* skip RSTn */ s 1382 libavcodec/mjpegdec.c static av_always_inline void mjpeg_copy_block(MJpegDecodeContext *s, s 1387 libavcodec/mjpegdec.c case 0: s->hdsp.put_pixels_tab[1][0](dst, src, linesize, 8); s 1398 libavcodec/mjpegdec.c static void shift_output(MJpegDecodeContext *s, uint8_t *ptr, int linesize) s 1401 libavcodec/mjpegdec.c int size = 8 >> s->avctx->lowres; s 1402 libavcodec/mjpegdec.c if (s->bits > 8) { s 1405 libavcodec/mjpegdec.c *(uint16_t*)(ptr + 2*block_x + block_y*linesize) <<= 16 - s->bits; s 1409 libavcodec/mjpegdec.c *(ptr + block_x + block_y*linesize) <<= 8 - s->bits; s 1413 libavcodec/mjpegdec.c static int mjpeg_decode_scan(MJpegDecodeContext *s, int nb_components, int Ah, s 1423 libavcodec/mjpegdec.c int bytes_per_pixel = 1 + (s->bits > 8); s 1426 libavcodec/mjpegdec.c if (mb_bitmask_size != (s->mb_width * s->mb_height + 7)>>3) { s 1427 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "mb_bitmask_size mismatches\n"); s 1430 libavcodec/mjpegdec.c init_get_bits(&mb_bitmask_gb, mb_bitmask, s->mb_width * s->mb_height); s 1433 libavcodec/mjpegdec.c s->restart_count = 0; s 1435 libavcodec/mjpegdec.c av_pix_fmt_get_chroma_sub_sample(s->avctx->pix_fmt, &chroma_h_shift, s 1437 libavcodec/mjpegdec.c chroma_width = AV_CEIL_RSHIFT(s->width, chroma_h_shift); s 1438 libavcodec/mjpegdec.c chroma_height = AV_CEIL_RSHIFT(s->height, chroma_v_shift); s 1441 libavcodec/mjpegdec.c int c = s->comp_index[i]; s 1442 libavcodec/mjpegdec.c data[c] = s->picture_ptr->data[c]; s 1444 libavcodec/mjpegdec.c linesize[c] = s->linesize[c]; s 1445 libavcodec/mjpegdec.c s->coefs_finished[c] |= 1; s 1448 libavcodec/mjpegdec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 1449 libavcodec/mjpegdec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 1452 libavcodec/mjpegdec.c if (s->restart_interval && !s->restart_count) s 1453 libavcodec/mjpegdec.c s->restart_count = s->restart_interval; s 1455 libavcodec/mjpegdec.c if (get_bits_left(&s->gb) < 0) { s 1456 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "overread %d\n", s 1457 libavcodec/mjpegdec.c -get_bits_left(&s->gb)); s 1464 libavcodec/mjpegdec.c n = s->nb_blocks[i]; s 1465 libavcodec/mjpegdec.c c = s->comp_index[i]; s 1466 libavcodec/mjpegdec.c h = s->h_scount[i]; s 1467 libavcodec/mjpegdec.c v = s->v_scount[i]; s 1472 libavcodec/mjpegdec.c (h * mb_x + x) * 8 * bytes_per_pixel) >> s->avctx->lowres); s 1474 libavcodec/mjpegdec.c if (s->interlaced && s->bottom_field) s 1476 libavcodec/mjpegdec.c if ( 8*(h * mb_x + x) < ((c == 1) || (c == 2) ? chroma_width : s->width) s 1477 libavcodec/mjpegdec.c && 8*(v * mb_y + y) < ((c == 1) || (c == 2) ? chroma_height : s->height)) { s 1481 libavcodec/mjpegdec.c if (!s->progressive) { s 1484 libavcodec/mjpegdec.c mjpeg_copy_block(s, ptr, reference_data[c] + block_offset, s 1485 libavcodec/mjpegdec.c linesize[c], s->avctx->lowres); s 1488 libavcodec/mjpegdec.c s->bdsp.clear_block(s->block); s 1489 libavcodec/mjpegdec.c if (decode_block(s, s->block, i, s 1490 libavcodec/mjpegdec.c s->dc_index[i], s->ac_index[i], s 1491 libavcodec/mjpegdec.c s->quant_matrixes[s->quant_sindex[i]]) < 0) { s 1492 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, s 1497 libavcodec/mjpegdec.c s->idsp.idct_put(ptr, linesize[c], s->block); s 1498 libavcodec/mjpegdec.c if (s->bits & 7) s 1499 libavcodec/mjpegdec.c shift_output(s, ptr, linesize[c]); s 1503 libavcodec/mjpegdec.c int block_idx = s->block_stride[c] * (v * mb_y + y) + s 1505 libavcodec/mjpegdec.c int16_t *block = s->blocks[c][block_idx]; s 1507 libavcodec/mjpegdec.c block[0] += get_bits1(&s->gb) * s 1508 libavcodec/mjpegdec.c s->quant_matrixes[s->quant_sindex[i]][0] << Al; s 1509 libavcodec/mjpegdec.c else if (decode_dc_progressive(s, block, i, s->dc_index[i], s 1510 libavcodec/mjpegdec.c s->quant_matrixes[s->quant_sindex[i]], s 1512 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, s 1517 libavcodec/mjpegdec.c ff_dlog(s->avctx, "mb: %d %d processed\n", mb_y, mb_x); s 1518 libavcodec/mjpegdec.c ff_dlog(s->avctx, "%d %d %d %d %d %d %d %d \n", s 1519 libavcodec/mjpegdec.c mb_x, mb_y, x, y, c, s->bottom_field, s 1528 libavcodec/mjpegdec.c handle_rstn(s, nb_components); s 1534 libavcodec/mjpegdec.c static int mjpeg_decode_scan_progressive_ac(MJpegDecodeContext *s, int ss, s 1539 libavcodec/mjpegdec.c int c = s->comp_index[0]; s 1540 libavcodec/mjpegdec.c uint16_t *quant_matrix = s->quant_matrixes[s->quant_sindex[0]]; s 1544 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "SS/SE %d/%d is invalid\n", ss, se); s 1550 libavcodec/mjpegdec.c s->coefs_finished[c] |= (2ULL << se) - (1ULL << ss); s 1552 libavcodec/mjpegdec.c s->restart_count = 0; s 1554 libavcodec/mjpegdec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 1555 libavcodec/mjpegdec.c int block_idx = mb_y * s->block_stride[c]; s 1556 libavcodec/mjpegdec.c int16_t (*block)[64] = &s->blocks[c][block_idx]; s 1557 libavcodec/mjpegdec.c uint8_t *last_nnz = &s->last_nnz[c][block_idx]; s 1558 libavcodec/mjpegdec.c if (get_bits_left(&s->gb) <= 0) { s 1559 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "bitstream truncated in mjpeg_decode_scan_progressive_ac\n"); s 1562 libavcodec/mjpegdec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++, block++, last_nnz++) { s 1564 libavcodec/mjpegdec.c if (s->restart_interval && !s->restart_count) s 1565 libavcodec/mjpegdec.c s->restart_count = s->restart_interval; s 1568 libavcodec/mjpegdec.c ret = decode_block_refinement(s, *block, last_nnz, s->ac_index[0], s 1571 libavcodec/mjpegdec.c ret = decode_block_progressive(s, *block, last_nnz, s->ac_index[0], s 1574 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, s 1579 libavcodec/mjpegdec.c if (handle_rstn(s, 0)) s 1586 libavcodec/mjpegdec.c static void mjpeg_idct_scan_progressive_ac(MJpegDecodeContext *s) s 1590 libavcodec/mjpegdec.c const int bytes_per_pixel = 1 + (s->bits > 8); s 1591 libavcodec/mjpegdec.c const int block_size = s->lossless ? 1 : 8; s 1593 libavcodec/mjpegdec.c for (c = 0; c < s->nb_components; c++) { s 1594 libavcodec/mjpegdec.c uint8_t *data = s->picture_ptr->data[c]; s 1595 libavcodec/mjpegdec.c int linesize = s->linesize[c]; s 1596 libavcodec/mjpegdec.c int h = s->h_max / s->h_count[c]; s 1597 libavcodec/mjpegdec.c int v = s->v_max / s->v_count[c]; s 1598 libavcodec/mjpegdec.c int mb_width = (s->width + h * block_size - 1) / (h * block_size); s 1599 libavcodec/mjpegdec.c int mb_height = (s->height + v * block_size - 1) / (v * block_size); s 1601 libavcodec/mjpegdec.c if (~s->coefs_finished[c]) s 1602 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "component %d is incomplete\n", c); s 1604 libavcodec/mjpegdec.c if (s->interlaced && s->bottom_field) s 1608 libavcodec/mjpegdec.c uint8_t *ptr = data + (mb_y * linesize * 8 >> s->avctx->lowres); s 1609 libavcodec/mjpegdec.c int block_idx = mb_y * s->block_stride[c]; s 1610 libavcodec/mjpegdec.c int16_t (*block)[64] = &s->blocks[c][block_idx]; s 1612 libavcodec/mjpegdec.c s->idsp.idct_put(ptr, linesize, *block); s 1613 libavcodec/mjpegdec.c if (s->bits & 7) s 1614 libavcodec/mjpegdec.c shift_output(s, ptr, linesize); s 1615 libavcodec/mjpegdec.c ptr += bytes_per_pixel*8 >> s->avctx->lowres; s 1621 libavcodec/mjpegdec.c int ff_mjpeg_decode_sos(MJpegDecodeContext *s, const uint8_t *mb_bitmask, s 1626 libavcodec/mjpegdec.c const int block_size = s->lossless ? 1 : 8; s 1629 libavcodec/mjpegdec.c if (!s->got_picture) { s 1630 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, s 1636 libavcodec/mjpegdec.c if (reference->width != s->picture_ptr->width || s 1637 libavcodec/mjpegdec.c reference->height != s->picture_ptr->height || s 1638 libavcodec/mjpegdec.c reference->format != s->picture_ptr->format) { s 1639 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "Reference mismatching\n"); s 1645 libavcodec/mjpegdec.c len = get_bits(&s->gb, 16); s 1646 libavcodec/mjpegdec.c nb_components = get_bits(&s->gb, 8); s 1648 libavcodec/mjpegdec.c avpriv_report_missing_feature(s->avctx, s 1654 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "decode_sos: invalid len (%d)\n", len); s 1658 libavcodec/mjpegdec.c id = get_bits(&s->gb, 8) - 1; s 1659 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "component: %d\n", id); s 1661 libavcodec/mjpegdec.c for (index = 0; index < s->nb_components; index++) s 1662 libavcodec/mjpegdec.c if (id == s->component_id[index]) s 1664 libavcodec/mjpegdec.c if (index == s->nb_components) { s 1665 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, s 1670 libavcodec/mjpegdec.c if (s->avctx->codec_tag == MKTAG('M', 'T', 'S', 'J') s 1671 libavcodec/mjpegdec.c && nb_components == 3 && s->nb_components == 3 && i) s 1674 libavcodec/mjpegdec.c s->quant_sindex[i] = s->quant_index[index]; s 1675 libavcodec/mjpegdec.c s->nb_blocks[i] = s->h_count[index] * s->v_count[index]; s 1676 libavcodec/mjpegdec.c s->h_scount[i] = s->h_count[index]; s 1677 libavcodec/mjpegdec.c s->v_scount[i] = s->v_count[index]; s 1679 libavcodec/mjpegdec.c if((nb_components == 1 || nb_components == 3) && s->nb_components == 3 && s->avctx->pix_fmt == AV_PIX_FMT_GBR24P) s 1682 libavcodec/mjpegdec.c s->comp_index[i] = index; s 1684 libavcodec/mjpegdec.c s->dc_index[i] = get_bits(&s->gb, 4); s 1685 libavcodec/mjpegdec.c s->ac_index[i] = get_bits(&s->gb, 4); s 1687 libavcodec/mjpegdec.c if (s->dc_index[i] < 0 || s->ac_index[i] < 0 || s 1688 libavcodec/mjpegdec.c s->dc_index[i] >= 4 || s->ac_index[i] >= 4) s 1690 libavcodec/mjpegdec.c if (!s->vlcs[0][s->dc_index[i]].table || !(s->progressive ? s->vlcs[2][s->ac_index[0]].table : s->vlcs[1][s->ac_index[i]].table)) s 1694 libavcodec/mjpegdec.c predictor = get_bits(&s->gb, 8); /* JPEG Ss / lossless JPEG predictor /JPEG-LS NEAR */ s 1695 libavcodec/mjpegdec.c ilv = get_bits(&s->gb, 8); /* JPEG Se / JPEG-LS ILV */ s 1696 libavcodec/mjpegdec.c if(s->avctx->codec_tag != AV_RL32("CJPG")){ s 1697 libavcodec/mjpegdec.c prev_shift = get_bits(&s->gb, 4); /* Ah */ s 1698 libavcodec/mjpegdec.c point_transform = get_bits(&s->gb, 4); /* Al */ s 1704 libavcodec/mjpegdec.c s->mb_width = (s->width + s->h_max * block_size - 1) / (s->h_max * block_size); s 1705 libavcodec/mjpegdec.c s->mb_height = (s->height + s->v_max * block_size - 1) / (s->v_max * block_size); s 1706 libavcodec/mjpegdec.c } else if (!s->ls) { /* skip this for JPEG-LS */ s 1707 libavcodec/mjpegdec.c h = s->h_max / s->h_scount[0]; s 1708 libavcodec/mjpegdec.c v = s->v_max / s->v_scount[0]; s 1709 libavcodec/mjpegdec.c s->mb_width = (s->width + h * block_size - 1) / (h * block_size); s 1710 libavcodec/mjpegdec.c s->mb_height = (s->height + v * block_size - 1) / (v * block_size); s 1711 libavcodec/mjpegdec.c s->nb_blocks[0] = 1; s 1712 libavcodec/mjpegdec.c s->h_scount[0] = 1; s 1713 libavcodec/mjpegdec.c s->v_scount[0] = 1; s 1716 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1717 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "%s %s p:%d >>:%d ilv:%d bits:%d skip:%d %s comp:%d\n", s 1718 libavcodec/mjpegdec.c s->lossless ? "lossless" : "sequential DCT", s->rgb ? "RGB" : "", s 1719 libavcodec/mjpegdec.c predictor, point_transform, ilv, s->bits, s->mjpb_skiptosod, s 1720 libavcodec/mjpegdec.c s->pegasus_rct ? "PRCT" : (s->rct ? "RCT" : ""), nb_components); s 1724 libavcodec/mjpegdec.c for (i = s->mjpb_skiptosod; i > 0; i--) s 1725 libavcodec/mjpegdec.c skip_bits(&s->gb, 8); s 1729 libavcodec/mjpegdec.c s->last_dc[i] = (4 << s->bits); s 1731 libavcodec/mjpegdec.c if (s->avctx->hwaccel) { s 1732 libavcodec/mjpegdec.c int bytes_to_start = get_bits_count(&s->gb) / 8; s 1734 libavcodec/mjpegdec.c s->raw_scan_buffer_size >= bytes_to_start); s 1736 libavcodec/mjpegdec.c ret = s->avctx->hwaccel->decode_slice(s->avctx, s 1737 libavcodec/mjpegdec.c s->raw_scan_buffer + bytes_to_start, s 1738 libavcodec/mjpegdec.c s->raw_scan_buffer_size - bytes_to_start); s 1742 libavcodec/mjpegdec.c } else if (s->lossless) { s 1743 libavcodec/mjpegdec.c av_assert0(s->picture_ptr == s->picture); s 1744 libavcodec/mjpegdec.c if (CONFIG_JPEGLS_DECODER && s->ls) { s 1748 libavcodec/mjpegdec.c if ((ret = ff_jpegls_decode_picture(s, predictor, s 1752 libavcodec/mjpegdec.c if (s->rgb || s->bayer) { s 1753 libavcodec/mjpegdec.c if ((ret = ljpeg_decode_rgb_scan(s, nb_components, predictor, point_transform)) < 0) s 1756 libavcodec/mjpegdec.c if ((ret = ljpeg_decode_yuv_scan(s, predictor, s 1763 libavcodec/mjpegdec.c if (s->progressive && predictor) { s 1764 libavcodec/mjpegdec.c av_assert0(s->picture_ptr == s->picture); s 1765 libavcodec/mjpegdec.c if ((ret = mjpeg_decode_scan_progressive_ac(s, predictor, s 1770 libavcodec/mjpegdec.c if ((ret = mjpeg_decode_scan(s, nb_components, s 1777 libavcodec/mjpegdec.c if (s->interlaced && s 1778 libavcodec/mjpegdec.c get_bits_left(&s->gb) > 32 && s 1779 libavcodec/mjpegdec.c show_bits(&s->gb, 8) == 0xFF) { s 1780 libavcodec/mjpegdec.c GetBitContext bak = s->gb; s 1783 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "AVRn interlaced picture marker found\n"); s 1784 libavcodec/mjpegdec.c s->gb = bak; s 1785 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); s 1786 libavcodec/mjpegdec.c s->bottom_field ^= 1; s 1795 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "decode_sos: ac/dc index out of range\n"); s 1799 libavcodec/mjpegdec.c static int mjpeg_decode_dri(MJpegDecodeContext *s) s 1801 libavcodec/mjpegdec.c if (get_bits(&s->gb, 16) != 4) s 1803 libavcodec/mjpegdec.c s->restart_interval = get_bits(&s->gb, 16); s 1804 libavcodec/mjpegdec.c s->restart_count = 0; s 1805 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "restart interval: %d\n", s 1806 libavcodec/mjpegdec.c s->restart_interval); s 1811 libavcodec/mjpegdec.c static int mjpeg_decode_app(MJpegDecodeContext *s) s 1815 libavcodec/mjpegdec.c len = get_bits(&s->gb, 16); s 1817 libavcodec/mjpegdec.c if (s->bayer) { s 1819 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "skipping APPx (len=%"PRId32") for bayer-encoded image\n", len); s 1820 libavcodec/mjpegdec.c skip_bits(&s->gb, len); s 1825 libavcodec/mjpegdec.c if (8 * len > get_bits_left(&s->gb)) s 1828 libavcodec/mjpegdec.c id = get_bits_long(&s->gb, 32); s 1831 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_STARTCODE) s 1832 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "APPx (%s / %8X) len=%d\n", s 1846 libavcodec/mjpegdec.c s->buggy_avid = 1; s 1847 libavcodec/mjpegdec.c i = get_bits(&s->gb, 8); len--; s 1848 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "polarity %d\n", i); s 1856 libavcodec/mjpegdec.c skip_bits(&s->gb, 8); /* the trailing zero-byte */ s 1857 libavcodec/mjpegdec.c v1 = get_bits(&s->gb, 8); s 1858 libavcodec/mjpegdec.c v2 = get_bits(&s->gb, 8); s 1859 libavcodec/mjpegdec.c skip_bits(&s->gb, 8); s 1861 libavcodec/mjpegdec.c s->avctx->sample_aspect_ratio.num = get_bits(&s->gb, 16); s 1862 libavcodec/mjpegdec.c s->avctx->sample_aspect_ratio.den = get_bits(&s->gb, 16); s 1863 libavcodec/mjpegdec.c if ( s->avctx->sample_aspect_ratio.num <= 0 s 1864 libavcodec/mjpegdec.c || s->avctx->sample_aspect_ratio.den <= 0) { s 1865 libavcodec/mjpegdec.c s->avctx->sample_aspect_ratio.num = 0; s 1866 libavcodec/mjpegdec.c s->avctx->sample_aspect_ratio.den = 1; s 1869 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1870 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_INFO, s 1873 libavcodec/mjpegdec.c s->avctx->sample_aspect_ratio.num, s 1874 libavcodec/mjpegdec.c s->avctx->sample_aspect_ratio.den); s 1878 libavcodec/mjpegdec.c t_w = get_bits(&s->gb, 8); s 1879 libavcodec/mjpegdec.c t_h = get_bits(&s->gb, 8); s 1892 libavcodec/mjpegdec.c && show_bits(&s->gb, 8) == 'e' s 1893 libavcodec/mjpegdec.c && show_bits_long(&s->gb, 32) != AV_RB32("e_CM")) { s 1894 libavcodec/mjpegdec.c skip_bits(&s->gb, 8); /* 'e' */ s 1895 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); /* version */ s 1896 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); /* flags0 */ s 1897 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); /* flags1 */ s 1898 libavcodec/mjpegdec.c s->adobe_transform = get_bits(&s->gb, 8); s 1899 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1900 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_INFO, "mjpeg: Adobe header found, transform=%d\n", s->adobe_transform); s 1906 libavcodec/mjpegdec.c int rgb = s->rgb; s 1907 libavcodec/mjpegdec.c int pegasus_rct = s->pegasus_rct; s 1908 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1909 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_INFO, s 1911 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); /* version ? */ s 1912 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); /* unknown always 0? */ s 1913 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); /* unknown always 0? */ s 1914 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); /* unknown always 0? */ s 1915 libavcodec/mjpegdec.c switch (i=get_bits(&s->gb, 8)) { s 1925 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "unknown colorspace %d\n", i); s 1929 libavcodec/mjpegdec.c if (s->got_picture) s 1930 libavcodec/mjpegdec.c if (rgb != s->rgb || pegasus_rct != s->pegasus_rct) { s 1931 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "Mismatching LJIF tag\n"); s 1935 libavcodec/mjpegdec.c s->rgb = rgb; s 1936 libavcodec/mjpegdec.c s->pegasus_rct = pegasus_rct; s 1941 libavcodec/mjpegdec.c s->colr = get_bits(&s->gb, 8); s 1942 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1943 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_INFO, "COLR %d\n", s->colr); s 1948 libavcodec/mjpegdec.c s->xfrm = get_bits(&s->gb, 8); s 1949 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1950 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_INFO, "XFRM %d\n", s->xfrm); s 1956 libavcodec/mjpegdec.c if (s->start_code == APP3 && id == AV_RB32("_JPS") && len >= 10) { s 1958 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1959 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_INFO, "_JPSJPS_\n"); s 1961 libavcodec/mjpegdec.c skip_bits(&s->gb, 32); len -= 4; /* JPS_ */ s 1962 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); len -= 2; /* block length */ s 1963 libavcodec/mjpegdec.c skip_bits(&s->gb, 8); /* reserved */ s 1964 libavcodec/mjpegdec.c flags = get_bits(&s->gb, 8); s 1965 libavcodec/mjpegdec.c layout = get_bits(&s->gb, 8); s 1966 libavcodec/mjpegdec.c type = get_bits(&s->gb, 8); s 1969 libavcodec/mjpegdec.c av_freep(&s->stereo3d); s 1970 libavcodec/mjpegdec.c s->stereo3d = av_stereo3d_alloc(); s 1971 libavcodec/mjpegdec.c if (!s->stereo3d) { s 1975 libavcodec/mjpegdec.c s->stereo3d->type = AV_STEREO3D_2D; s 1979 libavcodec/mjpegdec.c s->stereo3d->type = AV_STEREO3D_LINES; s 1982 libavcodec/mjpegdec.c s->stereo3d->type = AV_STEREO3D_SIDEBYSIDE; s 1985 libavcodec/mjpegdec.c s->stereo3d->type = AV_STEREO3D_TOPBOTTOM; s 1989 libavcodec/mjpegdec.c s->stereo3d->flags = AV_STEREO3D_FLAG_INVERT; s 1996 libavcodec/mjpegdec.c if (s->start_code == APP1 && id == AV_RB32("Exif") && len >= 2) { s 2001 libavcodec/mjpegdec.c skip_bits(&s->gb, 16); // skip padding s 2005 libavcodec/mjpegdec.c aligned = align_get_bits(&s->gb); s 2011 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "mjpeg: invalid TIFF header in EXIF data\n"); s 2017 libavcodec/mjpegdec.c ret = ff_exif_decode_ifd(s->avctx, &gbytes, le, 0, &s->exif_metadata); s 2019 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "mjpeg: error decoding EXIF data\n"); s 2024 libavcodec/mjpegdec.c skip_bits(&s->gb, bytes_read << 3); s 2031 libavcodec/mjpegdec.c if ((s->start_code == APP1) && (len > (0x28 - 8))) { s 2032 libavcodec/mjpegdec.c id = get_bits_long(&s->gb, 32); s 2046 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 2047 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_INFO, "mjpeg: Apple MJPEG-A header found\n"); s 2051 libavcodec/mjpegdec.c if (s->start_code == APP2 && id == AV_RB32("ICC_") && len >= 10) { s 2056 libavcodec/mjpegdec.c id = get_bits_long(&s->gb, 32); s 2057 libavcodec/mjpegdec.c id2 = get_bits(&s->gb, 24); s 2060 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "Invalid ICC_PROFILE header in APP2\n"); s 2064 libavcodec/mjpegdec.c skip_bits(&s->gb, 8); s 2065 libavcodec/mjpegdec.c seqno = get_bits(&s->gb, 8); s 2068 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "Invalid sequence number in APP2\n"); s 2072 libavcodec/mjpegdec.c nummarkers = get_bits(&s->gb, 8); s 2075 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "Invalid number of markers coded in APP2\n"); s 2077 libavcodec/mjpegdec.c } else if (s->iccnum != 0 && nummarkers != s->iccnum) { s 2078 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "Mistmatch in coded number of ICC markers between markers\n"); s 2081 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "Mismatching sequence number and coded number of ICC markers\n"); s 2086 libavcodec/mjpegdec.c if (s->iccnum == 0) { s 2087 libavcodec/mjpegdec.c s->iccdata = av_mallocz(nummarkers * sizeof(*(s->iccdata))); s 2088 libavcodec/mjpegdec.c s->iccdatalens = av_mallocz(nummarkers * sizeof(*(s->iccdatalens))); s 2089 libavcodec/mjpegdec.c if (!s->iccdata || !s->iccdatalens) { s 2090 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "Could not allocate ICC data arrays\n"); s 2093 libavcodec/mjpegdec.c s->iccnum = nummarkers; s 2096 libavcodec/mjpegdec.c if (s->iccdata[seqno - 1]) { s 2097 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "Duplicate ICC sequence number\n"); s 2101 libavcodec/mjpegdec.c s->iccdatalens[seqno - 1] = len; s 2102 libavcodec/mjpegdec.c s->iccdata[seqno - 1] = av_malloc(len); s 2103 libavcodec/mjpegdec.c if (!s->iccdata[seqno - 1]) { s 2104 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "Could not allocate ICC data buffer\n"); s 2108 libavcodec/mjpegdec.c memcpy(s->iccdata[seqno - 1], align_get_bits(&s->gb), len); s 2109 libavcodec/mjpegdec.c skip_bits(&s->gb, len << 3); s 2111 libavcodec/mjpegdec.c s->iccread++; s 2113 libavcodec/mjpegdec.c if (s->iccread > s->iccnum) s 2114 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "Read more ICC markers than are supposed to be coded\n"); s 2120 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, s 2123 libavcodec/mjpegdec.c skip_bits(&s->gb, 8); s 2128 libavcodec/mjpegdec.c static int mjpeg_decode_com(MJpegDecodeContext *s) s 2130 libavcodec/mjpegdec.c int len = get_bits(&s->gb, 16); s 2131 libavcodec/mjpegdec.c if (len >= 2 && 8 * len - 16 <= get_bits_left(&s->gb)) { s 2138 libavcodec/mjpegdec.c cbuf[i] = get_bits(&s->gb, 8); s 2144 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 2145 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_INFO, "comment: '%s'\n", cbuf); s 2149 libavcodec/mjpegdec.c parse_avid(s, cbuf, len); s 2151 libavcodec/mjpegdec.c s->cs_itu601 = 1; s 2152 libavcodec/mjpegdec.c else if ((!strncmp(cbuf, "Intel(R) JPEG Library, version 1", 32) && s->avctx->codec_tag) || s 2154 libavcodec/mjpegdec.c s->flipped = 1; s 2156 libavcodec/mjpegdec.c s->avctx->sample_aspect_ratio = (AVRational) { 1, 2 }; s 2157 libavcodec/mjpegdec.c s->multiscope = 2; s 2193 libavcodec/mjpegdec.c int ff_mjpeg_find_marker(MJpegDecodeContext *s, s 2201 libavcodec/mjpegdec.c av_fast_padded_malloc(&s->buffer, &s->buffer_size, buf_end - *buf_ptr); s 2202 libavcodec/mjpegdec.c if (!s->buffer) s 2206 libavcodec/mjpegdec.c if (start_code == SOS && !s->ls) { s 2209 libavcodec/mjpegdec.c uint8_t *dst = s->buffer; s 2220 libavcodec/mjpegdec.c if (s->avctx->codec_id == AV_CODEC_ID_THP) { s 2256 libavcodec/mjpegdec.c *unescaped_buf_ptr = s->buffer; s 2257 libavcodec/mjpegdec.c *unescaped_buf_size = dst - s->buffer; s 2258 libavcodec/mjpegdec.c memset(s->buffer + *unescaped_buf_size, 0, s 2261 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_DEBUG, "escaping removed %"PTRDIFF_SPECIFIER" bytes\n", s 2262 libavcodec/mjpegdec.c (buf_end - *buf_ptr) - (dst - s->buffer)); s 2263 libavcodec/mjpegdec.c } else if (start_code == SOS && s->ls) { s 2265 libavcodec/mjpegdec.c uint8_t *dst = s->buffer; s 2292 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_WARNING, "Invalid escape sequence\n"); s 2303 libavcodec/mjpegdec.c memset(s->buffer + *unescaped_buf_size, 0, s 2313 libavcodec/mjpegdec.c static void reset_icc_profile(MJpegDecodeContext *s) s 2317 libavcodec/mjpegdec.c if (s->iccdata) s 2318 libavcodec/mjpegdec.c for (i = 0; i < s->iccnum; i++) s 2319 libavcodec/mjpegdec.c av_freep(&s->iccdata[i]); s 2320 libavcodec/mjpegdec.c av_freep(&s->iccdata); s 2321 libavcodec/mjpegdec.c av_freep(&s->iccdatalens); s 2323 libavcodec/mjpegdec.c s->iccread = 0; s 2324 libavcodec/mjpegdec.c s->iccnum = 0; s 2333 libavcodec/mjpegdec.c MJpegDecodeContext *s = avctx->priv_data; s 2343 libavcodec/mjpegdec.c s->buf_size = buf_size; s 2345 libavcodec/mjpegdec.c av_dict_free(&s->exif_metadata); s 2346 libavcodec/mjpegdec.c av_freep(&s->stereo3d); s 2347 libavcodec/mjpegdec.c s->adobe_transform = -1; s 2349 libavcodec/mjpegdec.c if (s->iccnum != 0) s 2350 libavcodec/mjpegdec.c reset_icc_profile(s); s 2356 libavcodec/mjpegdec.c start_code = ff_mjpeg_find_marker(s, &buf_ptr, buf_end, s 2371 libavcodec/mjpegdec.c ret = init_get_bits8(&s->gb, unescaped_buf_ptr, unescaped_buf_size); s 2378 libavcodec/mjpegdec.c s->start_code = start_code; s 2379 libavcodec/mjpegdec.c if (s->avctx->debug & FF_DEBUG_STARTCODE) s 2388 libavcodec/mjpegdec.c if ((ret = mjpeg_decode_app(s)) < 0) s 2393 libavcodec/mjpegdec.c ret = mjpeg_decode_com(s); s 2397 libavcodec/mjpegdec.c ret = ff_mjpeg_decode_dqt(s); s 2428 libavcodec/mjpegdec.c s->restart_interval = 0; s 2429 libavcodec/mjpegdec.c s->restart_count = 0; s 2430 libavcodec/mjpegdec.c s->raw_image_buffer = buf_ptr; s 2431 libavcodec/mjpegdec.c s->raw_image_buffer_size = buf_end - buf_ptr; s 2435 libavcodec/mjpegdec.c if ((ret = ff_mjpeg_decode_dht(s)) < 0) { s 2443 libavcodec/mjpegdec.c s->avctx->profile = FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT; s 2445 libavcodec/mjpegdec.c s->avctx->profile = FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT; s 2446 libavcodec/mjpegdec.c s->lossless = 0; s 2447 libavcodec/mjpegdec.c s->ls = 0; s 2448 libavcodec/mjpegdec.c s->progressive = 0; s 2449 libavcodec/mjpegdec.c if ((ret = ff_mjpeg_decode_sof(s)) < 0) s 2453 libavcodec/mjpegdec.c s->avctx->profile = FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT; s 2454 libavcodec/mjpegdec.c s->lossless = 0; s 2455 libavcodec/mjpegdec.c s->ls = 0; s 2456 libavcodec/mjpegdec.c s->progressive = 1; s 2457 libavcodec/mjpegdec.c if ((ret = ff_mjpeg_decode_sof(s)) < 0) s 2461 libavcodec/mjpegdec.c s->avctx->profile = FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS; s 2462 libavcodec/mjpegdec.c s->avctx->properties |= FF_CODEC_PROPERTY_LOSSLESS; s 2463 libavcodec/mjpegdec.c s->lossless = 1; s 2464 libavcodec/mjpegdec.c s->ls = 0; s 2465 libavcodec/mjpegdec.c s->progressive = 0; s 2466 libavcodec/mjpegdec.c if ((ret = ff_mjpeg_decode_sof(s)) < 0) s 2470 libavcodec/mjpegdec.c s->avctx->profile = FF_PROFILE_MJPEG_JPEG_LS; s 2471 libavcodec/mjpegdec.c s->avctx->properties |= FF_CODEC_PROPERTY_LOSSLESS; s 2472 libavcodec/mjpegdec.c s->lossless = 1; s 2473 libavcodec/mjpegdec.c s->ls = 1; s 2474 libavcodec/mjpegdec.c s->progressive = 0; s 2475 libavcodec/mjpegdec.c if ((ret = ff_mjpeg_decode_sof(s)) < 0) s 2480 libavcodec/mjpegdec.c (ret = ff_jpegls_decode_lse(s)) < 0) s 2486 libavcodec/mjpegdec.c s->progressive && s->cur_scan && s->got_picture) s 2487 libavcodec/mjpegdec.c mjpeg_idct_scan_progressive_ac(s); s 2488 libavcodec/mjpegdec.c s->cur_scan = 0; s 2489 libavcodec/mjpegdec.c if (!s->got_picture) { s 2494 libavcodec/mjpegdec.c if (s->interlaced) { s 2495 libavcodec/mjpegdec.c s->bottom_field ^= 1; s 2497 libavcodec/mjpegdec.c if (s->bottom_field == !s->interlace_polarity) s 2501 libavcodec/mjpegdec.c s->got_picture = 0; s 2504 libavcodec/mjpegdec.c if (s->avctx->hwaccel) { s 2505 libavcodec/mjpegdec.c ret = s->avctx->hwaccel->end_frame(s->avctx); s 2509 libavcodec/mjpegdec.c av_freep(&s->hwaccel_picture_private); s 2511 libavcodec/mjpegdec.c if ((ret = av_frame_ref(frame, s->picture_ptr)) < 0) s 2514 libavcodec/mjpegdec.c s->got_picture = 0; s 2516 libavcodec/mjpegdec.c if (!s->lossless) { s 2517 libavcodec/mjpegdec.c int qp = FFMAX3(s->qscale[0], s 2518 libavcodec/mjpegdec.c s->qscale[1], s 2519 libavcodec/mjpegdec.c s->qscale[2]); s 2520 libavcodec/mjpegdec.c int qpw = (s->width + 15) / 16; s 2533 libavcodec/mjpegdec.c s->raw_scan_buffer = buf_ptr; s 2534 libavcodec/mjpegdec.c s->raw_scan_buffer_size = buf_end - buf_ptr; s 2536 libavcodec/mjpegdec.c s->cur_scan++; s 2538 libavcodec/mjpegdec.c skip_bits(&s->gb, get_bits_left(&s->gb)); s 2542 libavcodec/mjpegdec.c if ((ret = ff_mjpeg_decode_sos(s, NULL, 0, NULL)) < 0 && s 2547 libavcodec/mjpegdec.c if ((ret = mjpeg_decode_dri(s)) < 0) s 2567 libavcodec/mjpegdec.c buf_ptr += (get_bits_count(&s->gb) + 7) / 8; s 2570 libavcodec/mjpegdec.c (get_bits_count(&s->gb) + 7) / 8, get_bits_count(&s->gb)); s 2572 libavcodec/mjpegdec.c if (s->got_picture && s->cur_scan) { s 2579 libavcodec/mjpegdec.c s->got_picture = 0; s 2583 libavcodec/mjpegdec.c is16bit = av_pix_fmt_desc_get(s->avctx->pix_fmt)->comp[0].step > 1; s 2585 libavcodec/mjpegdec.c if (AV_RB32(s->upscale_h)) { s 2600 libavcodec/mjpegdec.c ret = av_pix_fmt_get_chroma_sub_sample(s->avctx->pix_fmt, &hshift, &vshift); s 2604 libavcodec/mjpegdec.c av_assert0(s->nb_components == av_pix_fmt_count_planes(s->picture_ptr->format)); s 2605 libavcodec/mjpegdec.c for (p = 0; p<s->nb_components; p++) { s 2606 libavcodec/mjpegdec.c uint8_t *line = s->picture_ptr->data[p]; s 2607 libavcodec/mjpegdec.c int w = s->width; s 2608 libavcodec/mjpegdec.c int h = s->height; s 2609 libavcodec/mjpegdec.c if (!s->upscale_h[p]) s 2615 libavcodec/mjpegdec.c if (s->upscale_v[p] == 1) s 2619 libavcodec/mjpegdec.c if (s->upscale_h[p] == 1) { s 2628 libavcodec/mjpegdec.c } else if (s->upscale_h[p] == 2) { s 2642 libavcodec/mjpegdec.c line += s->linesize[p]; s 2646 libavcodec/mjpegdec.c if (AV_RB32(s->upscale_v)) { s 2662 libavcodec/mjpegdec.c ret = av_pix_fmt_get_chroma_sub_sample(s->avctx->pix_fmt, &hshift, &vshift); s 2666 libavcodec/mjpegdec.c av_assert0(s->nb_components == av_pix_fmt_count_planes(s->picture_ptr->format)); s 2667 libavcodec/mjpegdec.c for (p = 0; p < s->nb_components; p++) { s 2669 libavcodec/mjpegdec.c int w = s->width; s 2670 libavcodec/mjpegdec.c int h = s->height; s 2671 libavcodec/mjpegdec.c if (!s->upscale_v[p]) s 2677 libavcodec/mjpegdec.c dst = &((uint8_t *)s->picture_ptr->data[p])[(h - 1) * s->linesize[p]]; s 2679 libavcodec/mjpegdec.c uint8_t *src1 = &((uint8_t *)s->picture_ptr->data[p])[i * s->upscale_v[p] / (s->upscale_v[p] + 1) * s->linesize[p]]; s 2680 libavcodec/mjpegdec.c uint8_t *src2 = &((uint8_t *)s->picture_ptr->data[p])[(i + 1) * s->upscale_v[p] / (s->upscale_v[p] + 1) * s->linesize[p]]; s 2681 libavcodec/mjpegdec.c if (s->upscale_v[p] != 2 && (src1 == src2 || i == h - 1)) { s 2687 libavcodec/mjpegdec.c dst -= s->linesize[p]; s 2691 libavcodec/mjpegdec.c if (s->flipped && !s->rgb) { s 2693 libavcodec/mjpegdec.c ret = av_pix_fmt_get_chroma_sub_sample(s->avctx->pix_fmt, &hshift, &vshift); s 2697 libavcodec/mjpegdec.c av_assert0(s->nb_components == av_pix_fmt_count_planes(s->picture_ptr->format)); s 2698 libavcodec/mjpegdec.c for (index=0; index<s->nb_components; index++) { s 2699 libavcodec/mjpegdec.c uint8_t *dst = s->picture_ptr->data[index]; s 2700 libavcodec/mjpegdec.c int w = s->picture_ptr->width; s 2701 libavcodec/mjpegdec.c int h = s->picture_ptr->height; s 2707 libavcodec/mjpegdec.c uint8_t *dst2 = dst + s->picture_ptr->linesize[index]*(h-1); s 2711 libavcodec/mjpegdec.c dst += s->picture_ptr->linesize[index]; s 2712 libavcodec/mjpegdec.c dst2 -= s->picture_ptr->linesize[index]; s 2717 libavcodec/mjpegdec.c if (s->adobe_transform == 0 && s->avctx->pix_fmt == AV_PIX_FMT_GBRAP) { s 2718 libavcodec/mjpegdec.c int w = s->picture_ptr->width; s 2719 libavcodec/mjpegdec.c int h = s->picture_ptr->height; s 2720 libavcodec/mjpegdec.c av_assert0(s->nb_components == 4); s 2725 libavcodec/mjpegdec.c dst[index] = s->picture_ptr->data[index] s 2726 libavcodec/mjpegdec.c + s->picture_ptr->linesize[index]*i; s 2740 libavcodec/mjpegdec.c if (s->adobe_transform == 2 && s->avctx->pix_fmt == AV_PIX_FMT_YUVA444P) { s 2741 libavcodec/mjpegdec.c int w = s->picture_ptr->width; s 2742 libavcodec/mjpegdec.c int h = s->picture_ptr->height; s 2743 libavcodec/mjpegdec.c av_assert0(s->nb_components == 4); s 2748 libavcodec/mjpegdec.c dst[index] = s->picture_ptr->data[index] s 2749 libavcodec/mjpegdec.c + s->picture_ptr->linesize[index]*i; s 2764 libavcodec/mjpegdec.c if (s->stereo3d) { s 2767 libavcodec/mjpegdec.c stereo->type = s->stereo3d->type; s 2768 libavcodec/mjpegdec.c stereo->flags = s->stereo3d->flags; s 2770 libavcodec/mjpegdec.c av_freep(&s->stereo3d); s 2773 libavcodec/mjpegdec.c if (s->iccnum != 0 && s->iccnum == s->iccread) { s 2780 libavcodec/mjpegdec.c for (i = 0; i < s->iccnum; i++) s 2781 libavcodec/mjpegdec.c total_size += s->iccdatalens[i]; s 2785 libavcodec/mjpegdec.c av_log(s->avctx, AV_LOG_ERROR, "Could not allocate frame side data\n"); s 2790 libavcodec/mjpegdec.c for (i = 0; i < s->iccnum; i++) { s 2791 libavcodec/mjpegdec.c memcpy(sd->data + offset, s->iccdata[i], s->iccdatalens[i]); s 2792 libavcodec/mjpegdec.c offset += s->iccdatalens[i]; s 2796 libavcodec/mjpegdec.c av_dict_copy(&((AVFrame *) data)->metadata, s->exif_metadata, 0); s 2797 libavcodec/mjpegdec.c av_dict_free(&s->exif_metadata); s 2808 libavcodec/mjpegdec.c MJpegDecodeContext *s = avctx->priv_data; s 2811 libavcodec/mjpegdec.c if (s->interlaced && s->bottom_field == !s->interlace_polarity && s->got_picture && !avctx->frame_number) { s 2815 libavcodec/mjpegdec.c if (s->picture) { s 2816 libavcodec/mjpegdec.c av_frame_free(&s->picture); s 2817 libavcodec/mjpegdec.c s->picture_ptr = NULL; s 2818 libavcodec/mjpegdec.c } else if (s->picture_ptr) s 2819 libavcodec/mjpegdec.c av_frame_unref(s->picture_ptr); s 2821 libavcodec/mjpegdec.c av_freep(&s->buffer); s 2822 libavcodec/mjpegdec.c av_freep(&s->stereo3d); s 2823 libavcodec/mjpegdec.c av_freep(&s->ljpeg_buffer); s 2824 libavcodec/mjpegdec.c s->ljpeg_buffer_size = 0; s 2828 libavcodec/mjpegdec.c ff_free_vlc(&s->vlcs[i][j]); s 2831 libavcodec/mjpegdec.c av_freep(&s->blocks[i]); s 2832 libavcodec/mjpegdec.c av_freep(&s->last_nnz[i]); s 2834 libavcodec/mjpegdec.c av_dict_free(&s->exif_metadata); s 2836 libavcodec/mjpegdec.c reset_icc_profile(s); s 2838 libavcodec/mjpegdec.c av_freep(&s->hwaccel_picture_private); s 2845 libavcodec/mjpegdec.c MJpegDecodeContext *s = avctx->priv_data; s 2846 libavcodec/mjpegdec.c s->got_picture = 0; s 162 libavcodec/mjpegdec.h int ff_mjpeg_decode_dqt(MJpegDecodeContext *s); s 163 libavcodec/mjpegdec.h int ff_mjpeg_decode_dht(MJpegDecodeContext *s); s 164 libavcodec/mjpegdec.h int ff_mjpeg_decode_sof(MJpegDecodeContext *s); s 165 libavcodec/mjpegdec.h int ff_mjpeg_decode_sos(MJpegDecodeContext *s, s 168 libavcodec/mjpegdec.h int ff_mjpeg_find_marker(MJpegDecodeContext *s, s 43 libavcodec/mjpegenc.c static int alloc_huffman(MpegEncContext *s) s 45 libavcodec/mjpegenc.c MJpegContext *m = s->mjpeg_ctx; s 50 libavcodec/mjpegenc.c s->mb_width = (s->width + 15) / 16; s 51 libavcodec/mjpegenc.c s->mb_height = (s->height + 15) / 16; s 53 libavcodec/mjpegenc.c switch (s->chroma_format) { s 61 libavcodec/mjpegenc.c num_mbs = s->mb_width * s->mb_height; s 71 libavcodec/mjpegenc.c av_cold int ff_mjpeg_encode_init(MpegEncContext *s) s 75 libavcodec/mjpegenc.c av_assert0(s->slice_context_count == 1); s 77 libavcodec/mjpegenc.c if (s->width > 65500 || s->height > 65500) { s 78 libavcodec/mjpegenc.c av_log(s, AV_LOG_ERROR, "JPEG does not support resolutions above 65500x65500\n"); s 86 libavcodec/mjpegenc.c s->min_qcoeff=-1023; s 87 libavcodec/mjpegenc.c s->max_qcoeff= 1023; s 111 libavcodec/mjpegenc.c s->intra_ac_vlc_length = s 112 libavcodec/mjpegenc.c s->intra_ac_vlc_last_length = m->uni_ac_vlc_len; s 113 libavcodec/mjpegenc.c s->intra_chroma_ac_vlc_length = s 114 libavcodec/mjpegenc.c s->intra_chroma_ac_vlc_last_length = m->uni_chroma_ac_vlc_len; s 118 libavcodec/mjpegenc.c s->mjpeg_ctx = m; s 120 libavcodec/mjpegenc.c if(s->huffman == HUFFMAN_TABLE_OPTIMAL) s 121 libavcodec/mjpegenc.c return alloc_huffman(s); s 126 libavcodec/mjpegenc.c av_cold void ff_mjpeg_encode_close(MpegEncContext *s) s 128 libavcodec/mjpegenc.c av_freep(&s->mjpeg_ctx->huff_buffer); s 129 libavcodec/mjpegenc.c av_freep(&s->mjpeg_ctx); s 139 libavcodec/mjpegenc.c static inline void ff_mjpeg_encode_code(MJpegContext *s, uint8_t table_id, int code) s 141 libavcodec/mjpegenc.c MJpegHuffmanCode *c = &s->huff_buffer[s->huff_ncode++]; s 154 libavcodec/mjpegenc.c static void ff_mjpeg_encode_coef(MJpegContext *s, uint8_t table_id, int val, int run) s 160 libavcodec/mjpegenc.c ff_mjpeg_encode_code(s, table_id, 0); s 170 libavcodec/mjpegenc.c s->huff_buffer[s->huff_ncode].mant = mant; s 171 libavcodec/mjpegenc.c ff_mjpeg_encode_code(s, table_id, code); s 182 libavcodec/mjpegenc.c static void record_block(MpegEncContext *s, int16_t *block, int n) s 186 libavcodec/mjpegenc.c MJpegContext *m = s->mjpeg_ctx; s 192 libavcodec/mjpegenc.c val = dc - s->last_dc[component]; s 196 libavcodec/mjpegenc.c s->last_dc[component] = dc; s 201 libavcodec/mjpegenc.c last_index = s->block_last_index[n]; s 205 libavcodec/mjpegenc.c j = s->intra_scantable.permutated[i]; s 225 libavcodec/mjpegenc.c static void encode_block(MpegEncContext *s, int16_t *block, int n) s 229 libavcodec/mjpegenc.c MJpegContext *m = s->mjpeg_ctx; s 236 libavcodec/mjpegenc.c val = dc - s->last_dc[component]; s 238 libavcodec/mjpegenc.c ff_mjpeg_encode_dc(&s->pb, val, m->huff_size_dc_luminance, m->huff_code_dc_luminance); s 242 libavcodec/mjpegenc.c ff_mjpeg_encode_dc(&s->pb, val, m->huff_size_dc_chrominance, m->huff_code_dc_chrominance); s 246 libavcodec/mjpegenc.c s->last_dc[component] = dc; s 251 libavcodec/mjpegenc.c last_index = s->block_last_index[n]; s 253 libavcodec/mjpegenc.c j = s->intra_scantable.permutated[i]; s 259 libavcodec/mjpegenc.c put_bits(&s->pb, huff_size_ac[0xf0], huff_code_ac[0xf0]); s 271 libavcodec/mjpegenc.c put_bits(&s->pb, huff_size_ac[code], huff_code_ac[code]); s 273 libavcodec/mjpegenc.c put_sbits(&s->pb, nbits, mant); s 280 libavcodec/mjpegenc.c put_bits(&s->pb, huff_size_ac[0], huff_code_ac[0]); s 283 libavcodec/mjpegenc.c void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[12][64]) s 286 libavcodec/mjpegenc.c if (s->huffman == HUFFMAN_TABLE_OPTIMAL) { s 287 libavcodec/mjpegenc.c if (s->chroma_format == CHROMA_444) { s 288 libavcodec/mjpegenc.c record_block(s, block[0], 0); s 289 libavcodec/mjpegenc.c record_block(s, block[2], 2); s 290 libavcodec/mjpegenc.c record_block(s, block[4], 4); s 291 libavcodec/mjpegenc.c record_block(s, block[8], 8); s 292 libavcodec/mjpegenc.c record_block(s, block[5], 5); s 293 libavcodec/mjpegenc.c record_block(s, block[9], 9); s 295 libavcodec/mjpegenc.c if (16*s->mb_x+8 < s->width) { s 296 libavcodec/mjpegenc.c record_block(s, block[1], 1); s 297 libavcodec/mjpegenc.c record_block(s, block[3], 3); s 298 libavcodec/mjpegenc.c record_block(s, block[6], 6); s 299 libavcodec/mjpegenc.c record_block(s, block[10], 10); s 300 libavcodec/mjpegenc.c record_block(s, block[7], 7); s 301 libavcodec/mjpegenc.c record_block(s, block[11], 11); s 305 libavcodec/mjpegenc.c record_block(s, block[i], i); s 307 libavcodec/mjpegenc.c if (s->chroma_format == CHROMA_420) { s 308 libavcodec/mjpegenc.c record_block(s, block[5], 5); s 310 libavcodec/mjpegenc.c record_block(s, block[6], 6); s 311 libavcodec/mjpegenc.c record_block(s, block[5], 5); s 312 libavcodec/mjpegenc.c record_block(s, block[7], 7); s 316 libavcodec/mjpegenc.c if (s->chroma_format == CHROMA_444) { s 317 libavcodec/mjpegenc.c encode_block(s, block[0], 0); s 318 libavcodec/mjpegenc.c encode_block(s, block[2], 2); s 319 libavcodec/mjpegenc.c encode_block(s, block[4], 4); s 320 libavcodec/mjpegenc.c encode_block(s, block[8], 8); s 321 libavcodec/mjpegenc.c encode_block(s, block[5], 5); s 322 libavcodec/mjpegenc.c encode_block(s, block[9], 9); s 324 libavcodec/mjpegenc.c if (16*s->mb_x+8 < s->width) { s 325 libavcodec/mjpegenc.c encode_block(s, block[1], 1); s 326 libavcodec/mjpegenc.c encode_block(s, block[3], 3); s 327 libavcodec/mjpegenc.c encode_block(s, block[6], 6); s 328 libavcodec/mjpegenc.c encode_block(s, block[10], 10); s 329 libavcodec/mjpegenc.c encode_block(s, block[7], 7); s 330 libavcodec/mjpegenc.c encode_block(s, block[11], 11); s 334 libavcodec/mjpegenc.c encode_block(s, block[i], i); s 336 libavcodec/mjpegenc.c if (s->chroma_format == CHROMA_420) { s 337 libavcodec/mjpegenc.c encode_block(s, block[5], 5); s 339 libavcodec/mjpegenc.c encode_block(s, block[6], 6); s 340 libavcodec/mjpegenc.c encode_block(s, block[5], 5); s 341 libavcodec/mjpegenc.c encode_block(s, block[7], 7); s 345 libavcodec/mjpegenc.c s->i_tex_bits += get_bits_diff(s); s 355 libavcodec/mjpegenc.c MpegEncContext *s = avctx->priv_data; s 377 libavcodec/mjpegenc.c pic->data[i] += pic->linesize[i] * (vsample * s->height / V_MAX - 1); s 107 libavcodec/mjpegenc.h int ff_mjpeg_encode_init(MpegEncContext *s); s 108 libavcodec/mjpegenc.h void ff_mjpeg_encode_close(MpegEncContext *s); s 109 libavcodec/mjpegenc.h void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[12][64]); s 94 libavcodec/mjpegenc_common.c MpegEncContext *s = NULL; s 98 libavcodec/mjpegenc_common.c s = avctx->priv_data; s 104 libavcodec/mjpegenc_common.c if (s && s->force_duplicated_matrix) s 141 libavcodec/mjpegenc_common.c if (s && s->huffman == HUFFMAN_TABLE_OPTIMAL) { s 142 libavcodec/mjpegenc_common.c size += put_huffman_table(p, 0, 0, s->mjpeg_ctx->bits_dc_luminance, s 143 libavcodec/mjpegenc_common.c s->mjpeg_ctx->val_dc_luminance); s 144 libavcodec/mjpegenc_common.c size += put_huffman_table(p, 0, 1, s->mjpeg_ctx->bits_dc_chrominance, s 145 libavcodec/mjpegenc_common.c s->mjpeg_ctx->val_dc_chrominance); s 147 libavcodec/mjpegenc_common.c size += put_huffman_table(p, 1, 0, s->mjpeg_ctx->bits_ac_luminance, s 148 libavcodec/mjpegenc_common.c s->mjpeg_ctx->val_ac_luminance); s 149 libavcodec/mjpegenc_common.c size += put_huffman_table(p, 1, 1, s->mjpeg_ctx->bits_ac_chrominance, s 150 libavcodec/mjpegenc_common.c s->mjpeg_ctx->val_ac_chrominance); s 353 libavcodec/mjpegenc_common.c MpegEncContext *s = avctx->priv_data; s 356 libavcodec/mjpegenc_common.c s->esc_pos = put_bits_count(pb) >> 3; s 357 libavcodec/mjpegenc_common.c for(i=1; i<s->slice_context_count; i++) s 358 libavcodec/mjpegenc_common.c s->thread_context[i]->esc_pos = 0; s 367 libavcodec/mjpegenc_common.c void ff_mjpeg_encode_picture_frame(MpegEncContext *s) s 370 libavcodec/mjpegenc_common.c MJpegContext *m = s->mjpeg_ctx; s 382 libavcodec/mjpegenc_common.c s->header_bits = get_bits_diff(s); s 393 libavcodec/mjpegenc_common.c ff_mpv_reallocate_putbitbuffer(s, bytes_needed, bytes_needed); s 400 libavcodec/mjpegenc_common.c put_bits(&s->pb, huff_size[table_id][code], huff_code[table_id][code]); s 402 libavcodec/mjpegenc_common.c put_sbits(&s->pb, nbits, m->huff_buffer[i].mant); s 407 libavcodec/mjpegenc_common.c s->i_tex_bits = get_bits_diff(s); s 539 libavcodec/mjpegenc_common.c int ff_mjpeg_encode_stuffing(MpegEncContext *s) s 542 libavcodec/mjpegenc_common.c PutBitContext *pbc = &s->pb; s 543 libavcodec/mjpegenc_common.c int mb_y = s->mb_y - !s->mb_x; s 547 libavcodec/mjpegenc_common.c m = s->mjpeg_ctx; s 549 libavcodec/mjpegenc_common.c if (s->huffman == HUFFMAN_TABLE_OPTIMAL) { s 556 libavcodec/mjpegenc_common.c s->intra_ac_vlc_length = s 557 libavcodec/mjpegenc_common.c s->intra_ac_vlc_last_length = m->uni_ac_vlc_len; s 558 libavcodec/mjpegenc_common.c s->intra_chroma_ac_vlc_length = s 559 libavcodec/mjpegenc_common.c s->intra_chroma_ac_vlc_last_length = m->uni_chroma_ac_vlc_len; s 561 libavcodec/mjpegenc_common.c ff_mjpeg_encode_picture_header(s->avctx, &s->pb, &s->intra_scantable, s 562 libavcodec/mjpegenc_common.c s->pred, s->intra_matrix, s->chroma_intra_matrix); s 563 libavcodec/mjpegenc_common.c ff_mjpeg_encode_picture_frame(s); s 566 libavcodec/mjpegenc_common.c ret = ff_mpv_reallocate_putbitbuffer(s, put_bits_count(&s->pb) / 8 + 100, s 567 libavcodec/mjpegenc_common.c put_bits_count(&s->pb) / 4 + 1000); s 570 libavcodec/mjpegenc_common.c av_log(s->avctx, AV_LOG_ERROR, "Buffer reallocation failed\n"); s 574 libavcodec/mjpegenc_common.c ff_mjpeg_escape_FF(pbc, s->esc_pos); s 576 libavcodec/mjpegenc_common.c if((s->avctx->active_thread_type & FF_THREAD_SLICE) && mb_y < s->mb_height - 1) s 578 libavcodec/mjpegenc_common.c s->esc_pos = put_bits_count(pbc) >> 3; s 582 libavcodec/mjpegenc_common.c s->last_dc[i] = 128 << s->intra_dc_precision; s 35 libavcodec/mjpegenc_common.h void ff_mjpeg_encode_picture_frame(MpegEncContext *s); s 38 libavcodec/mjpegenc_common.h int ff_mjpeg_encode_stuffing(MpegEncContext *s); s 148 libavcodec/mjpegenc_huffman.c void ff_mjpeg_encode_huffman_init(MJpegEncHuffmanContext *s) s 150 libavcodec/mjpegenc_huffman.c memset(s->val_count, 0, sizeof(s->val_count)); s 161 libavcodec/mjpegenc_huffman.c void ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s, uint8_t bits[17], s 170 libavcodec/mjpegenc_huffman.c if (s->val_count[i]) nval++; s 176 libavcodec/mjpegenc_huffman.c if (s->val_count[i]) { s 178 libavcodec/mjpegenc_huffman.c val_counts[j].prob = s->val_count[i]; s 37 libavcodec/mjpegenc_huffman.h void ff_mjpeg_encode_huffman_init(MJpegEncHuffmanContext *s); s 38 libavcodec/mjpegenc_huffman.h static inline void ff_mjpeg_encode_huffman_increment(MJpegEncHuffmanContext *s, s 41 libavcodec/mjpegenc_huffman.h s->val_count[val]++; s 43 libavcodec/mjpegenc_huffman.h void ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s, s 46 libavcodec/mlp_parser.c static av_cold int mlp_init(AVCodecParserContext *s) s 52 libavcodec/mlp_parser.c static int mlp_parse(AVCodecParserContext *s, s 57 libavcodec/mlp_parser.c MLPParseContext *mp = s->priv_data; s 64 libavcodec/mlp_parser.c s->key_frame = 0; s 71 libavcodec/mlp_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 142 libavcodec/mlp_parser.c s->key_frame = 0; s 167 libavcodec/mlp_parser.c s->key_frame = 1; s 176 libavcodec/mlp_parser.c s->duration = mh.access_unit_size; s 226 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 227 libavcodec/mlpdec.c ChannelParams *cp = &s->channel_params[ch]; s 228 libavcodec/mlpdec.c int lsb_bits = cp->huff_lsbs - s->quant_step_size[ch]; s 247 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 250 libavcodec/mlpdec.c for (mat = 0; mat < s->num_primitive_matrices; mat++) s 251 libavcodec/mlpdec.c if (s->lsb_bypass[mat]) s 252 libavcodec/mlpdec.c m->bypassed_lsbs[pos + s->blockpos][mat] = get_bits1(gbp); s 254 libavcodec/mlpdec.c for (channel = s->min_channel; channel <= s->max_channel; channel++) { s 255 libavcodec/mlpdec.c ChannelParams *cp = &s->channel_params[channel]; s 257 libavcodec/mlpdec.c int quant_step_size = s->quant_step_size[channel]; s 274 libavcodec/mlpdec.c m->sample_buffer[pos + s->blockpos][channel] = result; s 476 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 537 libavcodec/mlpdec.c s->min_channel = min_channel; s 538 libavcodec/mlpdec.c s->max_channel = max_channel; s 539 libavcodec/mlpdec.c s->max_matrix_channel = max_matrix_channel; s 540 libavcodec/mlpdec.c s->noise_type = noise_type; s 542 libavcodec/mlpdec.c if (mlp_channel_layout_subset(m->avctx->request_channel_layout, s->mask) && s 547 libavcodec/mlpdec.c s->max_channel + 1, s->mask, substr); s 551 libavcodec/mlpdec.c s->noise_shift = get_bits(gbp, 4); s 552 libavcodec/mlpdec.c s->noisegen_seed = get_bits(gbp, 23); s 556 libavcodec/mlpdec.c s->data_check_present = get_bits1(gbp); s 559 libavcodec/mlpdec.c && s->lossless_check_data != 0xffffffff) { s 560 libavcodec/mlpdec.c tmp = xor_32_to_8(s->lossless_check_data); s 569 libavcodec/mlpdec.c memset(s->ch_assign, 0, sizeof(s->ch_assign)); s 571 libavcodec/mlpdec.c for (ch = 0; ch <= s->max_matrix_channel; ch++) { s 574 libavcodec/mlpdec.c uint64_t channel = thd_channel_layout_extract_channel(s->mask, s 576 libavcodec/mlpdec.c ch_assign = av_get_channel_layout_channel_index(s->mask, s 579 libavcodec/mlpdec.c if (ch_assign < 0 || ch_assign > s->max_matrix_channel) { s 585 libavcodec/mlpdec.c s->ch_assign[ch_assign] = ch; s 594 libavcodec/mlpdec.c s->param_presence_flags = 0xff; s 595 libavcodec/mlpdec.c s->num_primitive_matrices = 0; s 596 libavcodec/mlpdec.c s->blocksize = 8; s 597 libavcodec/mlpdec.c s->lossless_check_data = 0; s 599 libavcodec/mlpdec.c memset(s->output_shift , 0, sizeof(s->output_shift )); s 600 libavcodec/mlpdec.c memset(s->quant_step_size, 0, sizeof(s->quant_step_size)); s 602 libavcodec/mlpdec.c for (ch = s->min_channel; ch <= s->max_channel; ch++) { s 603 libavcodec/mlpdec.c ChannelParams *cp = &s->channel_params[ch]; s 617 libavcodec/mlpdec.c m->avctx->channels = s->max_matrix_channel + 1; s 618 libavcodec/mlpdec.c m->avctx->channel_layout = s->mask; s 619 libavcodec/mlpdec.c m->dsp.mlp_pack_output = m->dsp.mlp_select_pack_output(s->ch_assign, s 620 libavcodec/mlpdec.c s->output_shift, s 621 libavcodec/mlpdec.c s->max_matrix_channel, s 627 libavcodec/mlpdec.c int i = s->ch_assign[4]; s 628 libavcodec/mlpdec.c s->ch_assign[4] = s->ch_assign[3]; s 629 libavcodec/mlpdec.c s->ch_assign[3] = s->ch_assign[2]; s 630 libavcodec/mlpdec.c s->ch_assign[2] = i; s 632 libavcodec/mlpdec.c FFSWAP(int, s->ch_assign[2], s->ch_assign[4]); s 633 libavcodec/mlpdec.c FFSWAP(int, s->ch_assign[3], s->ch_assign[5]); s 648 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 649 libavcodec/mlpdec.c FilterParams *fp = &s->channel_params[channel].filter_params[filter]; s 672 libavcodec/mlpdec.c int32_t *fcoeff = s->channel_params[channel].coeff[filter]; s 721 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 732 libavcodec/mlpdec.c s->num_primitive_matrices = get_bits(gbp, 4); s 734 libavcodec/mlpdec.c if (s->num_primitive_matrices > max_primitive_matrices) { s 741 libavcodec/mlpdec.c for (mat = 0; mat < s->num_primitive_matrices; mat++) { s 743 libavcodec/mlpdec.c s->matrix_out_ch[mat] = get_bits(gbp, 4); s 745 libavcodec/mlpdec.c s->lsb_bypass [mat] = get_bits1(gbp); s 747 libavcodec/mlpdec.c if (s->matrix_out_ch[mat] > s->max_matrix_channel) { s 750 libavcodec/mlpdec.c s->matrix_out_ch[mat]); s 759 libavcodec/mlpdec.c max_chan = s->max_matrix_channel; s 760 libavcodec/mlpdec.c if (!s->noise_type) s 768 libavcodec/mlpdec.c s->matrix_coeff[mat][ch] = coeff_val * (1 << (14 - frac_bits)); s 771 libavcodec/mlpdec.c if (s->noise_type) s 772 libavcodec/mlpdec.c s->matrix_noise_shift[mat] = get_bits(gbp, 4); s 774 libavcodec/mlpdec.c s->matrix_noise_shift[mat] = 0; s 779 libavcodec/mlpdec.c s->num_primitive_matrices = 0; s 780 libavcodec/mlpdec.c memset(s->matrix_out_ch, 0, sizeof(s->matrix_out_ch)); s 790 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 791 libavcodec/mlpdec.c ChannelParams *cp = &s->channel_params[ch]; s 796 libavcodec/mlpdec.c if (s->param_presence_flags & PARAM_FIR) s 801 libavcodec/mlpdec.c if (s->param_presence_flags & PARAM_IIR) s 825 libavcodec/mlpdec.c if (s->param_presence_flags & PARAM_HUFFOFFSET) s 847 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 852 libavcodec/mlpdec.c if (s->param_presence_flags & PARAM_PRESENCE) s 854 libavcodec/mlpdec.c s->param_presence_flags = get_bits(gbp, 8); s 856 libavcodec/mlpdec.c if (s->param_presence_flags & PARAM_BLOCKSIZE) s 858 libavcodec/mlpdec.c s->blocksize = get_bits(gbp, 9); s 859 libavcodec/mlpdec.c if (s->blocksize < 8 || s->blocksize > m->access_unit_size) { s 861 libavcodec/mlpdec.c s->blocksize = 0; s 866 libavcodec/mlpdec.c if (s->param_presence_flags & PARAM_MATRIX) s 871 libavcodec/mlpdec.c if (s->param_presence_flags & PARAM_OUTSHIFT) s 873 libavcodec/mlpdec.c for (ch = 0; ch <= s->max_matrix_channel; ch++) { s 874 libavcodec/mlpdec.c s->output_shift[ch] = get_sbits(gbp, 4); s 875 libavcodec/mlpdec.c if (s->output_shift[ch] < 0) { s 877 libavcodec/mlpdec.c s->output_shift[ch] = 0; s 881 libavcodec/mlpdec.c m->dsp.mlp_pack_output = m->dsp.mlp_select_pack_output(s->ch_assign, s 882 libavcodec/mlpdec.c s->output_shift, s 883 libavcodec/mlpdec.c s->max_matrix_channel, s 887 libavcodec/mlpdec.c if (s->param_presence_flags & PARAM_QUANTSTEP) s 889 libavcodec/mlpdec.c for (ch = 0; ch <= s->max_channel; ch++) { s 890 libavcodec/mlpdec.c s->quant_step_size[ch] = get_bits(gbp, 4); s 895 libavcodec/mlpdec.c for (ch = s->min_channel; ch <= s->max_channel; ch++) s 904 libavcodec/mlpdec.c for (ch = 0; ch <= s->max_channel; ch++) { s 906 libavcodec/mlpdec.c ChannelParams *cp = &s->channel_params[ch]; s 908 libavcodec/mlpdec.c if (cp->codebook > 0 && cp->huff_lsbs < s->quant_step_size[ch]) { s 913 libavcodec/mlpdec.c s->quant_step_size[ch] = 0; s 930 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 931 libavcodec/mlpdec.c const int32_t *fircoeff = s->channel_params[channel].coeff[FIR]; s 935 libavcodec/mlpdec.c FilterParams *fir = &s->channel_params[channel].filter_params[FIR]; s 936 libavcodec/mlpdec.c FilterParams *iir = &s->channel_params[channel].filter_params[IIR]; s 938 libavcodec/mlpdec.c int32_t mask = MSB_MASK(s->quant_step_size[channel]); s 945 libavcodec/mlpdec.c filter_shift, mask, s->blocksize, s 946 libavcodec/mlpdec.c &m->sample_buffer[s->blockpos][channel]); s 948 libavcodec/mlpdec.c memcpy(fir->state, firbuf - s->blocksize, MAX_FIR_ORDER * sizeof(int32_t)); s 949 libavcodec/mlpdec.c memcpy(iir->state, iirbuf - s->blocksize, MAX_IIR_ORDER * sizeof(int32_t)); s 957 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 961 libavcodec/mlpdec.c if (s->data_check_present) { s 968 libavcodec/mlpdec.c if (s->blockpos + s->blocksize > m->access_unit_size) { s 973 libavcodec/mlpdec.c memset(&m->bypassed_lsbs[s->blockpos][0], 0, s 974 libavcodec/mlpdec.c s->blocksize * sizeof(m->bypassed_lsbs[0])); s 976 libavcodec/mlpdec.c for (i = 0; i < s->blocksize; i++) s 980 libavcodec/mlpdec.c for (ch = s->min_channel; ch <= s->max_channel; ch++) s 983 libavcodec/mlpdec.c s->blockpos += s->blocksize; s 985 libavcodec/mlpdec.c if (s->data_check_present) { s 1027 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 1029 libavcodec/mlpdec.c uint32_t seed = s->noisegen_seed; s 1030 libavcodec/mlpdec.c unsigned int maxchan = s->max_matrix_channel; s 1032 libavcodec/mlpdec.c for (i = 0; i < s->blockpos; i++) { s 1034 libavcodec/mlpdec.c m->sample_buffer[i][maxchan+1] = ((int8_t)(seed >> 15)) * (1 << s->noise_shift); s 1035 libavcodec/mlpdec.c m->sample_buffer[i][maxchan+2] = ((int8_t) seed_shr7) * (1 << s->noise_shift); s 1040 libavcodec/mlpdec.c s->noisegen_seed = seed; s 1047 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 1049 libavcodec/mlpdec.c uint32_t seed = s->noisegen_seed; s 1057 libavcodec/mlpdec.c s->noisegen_seed = seed; s 1066 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 1072 libavcodec/mlpdec.c if (m->avctx->channels != s->max_matrix_channel + 1) { s 1077 libavcodec/mlpdec.c if (!s->blockpos) { s 1082 libavcodec/mlpdec.c maxchan = s->max_matrix_channel; s 1083 libavcodec/mlpdec.c if (!s->noise_type) { s 1092 libavcodec/mlpdec.c for (mat = 0; mat < s->num_primitive_matrices; mat++) { s 1093 libavcodec/mlpdec.c unsigned int dest_ch = s->matrix_out_ch[mat]; s 1095 libavcodec/mlpdec.c s->matrix_coeff[mat], s 1098 libavcodec/mlpdec.c s->num_primitive_matrices - mat, s 1100 libavcodec/mlpdec.c s->blockpos, s 1102 libavcodec/mlpdec.c s->matrix_noise_shift[mat], s 1104 libavcodec/mlpdec.c MSB_MASK(s->quant_step_size[dest_ch])); s 1108 libavcodec/mlpdec.c frame->nb_samples = s->blockpos; s 1111 libavcodec/mlpdec.c s->lossless_check_data = m->dsp.mlp_pack_output(s->lossless_check_data, s 1112 libavcodec/mlpdec.c s->blockpos, s 1115 libavcodec/mlpdec.c s->ch_assign, s 1116 libavcodec/mlpdec.c s->output_shift, s 1117 libavcodec/mlpdec.c s->max_matrix_channel, s 1121 libavcodec/mlpdec.c if ((ret = ff_side_data_update_matrix_encoding(frame, s->matrix_encoding)) < 0) s 1241 libavcodec/mlpdec.c SubStream *s = &m->substream[substr]; s 1247 libavcodec/mlpdec.c s->blockpos = 0; s 1254 libavcodec/mlpdec.c s->restart_seen = 1; s 1257 libavcodec/mlpdec.c if (!s->restart_seen) s 1263 libavcodec/mlpdec.c if (!s->restart_seen) s 1284 libavcodec/mlpdec.c s->blockpos -= FFMIN(shorten_by & 0x1FFF, s->blockpos); s 1311 libavcodec/mlpdec.c if (!s->restart_seen) s 58 libavcodec/mmvideo.c MmContext *s = avctx->priv_data; s 60 libavcodec/mmvideo.c s->avctx = avctx; s 71 libavcodec/mmvideo.c s->frame = av_frame_alloc(); s 72 libavcodec/mmvideo.c if (!s->frame) s 78 libavcodec/mmvideo.c static void mm_decode_pal(MmContext *s) s 82 libavcodec/mmvideo.c bytestream2_skip(&s->gb, 4); s 84 libavcodec/mmvideo.c s->palette[i] = 0xFFU << 24 | bytestream2_get_be24(&s->gb); s 85 libavcodec/mmvideo.c s->palette[i+128] = s->palette[i]<<2; s 93 libavcodec/mmvideo.c static int mm_decode_intra(MmContext * s, int half_horiz, int half_vert) s 97 libavcodec/mmvideo.c while (bytestream2_get_bytes_left(&s->gb) > 0) { s 100 libavcodec/mmvideo.c if (y >= s->avctx->height) s 103 libavcodec/mmvideo.c color = bytestream2_get_byte(&s->gb); s 108 libavcodec/mmvideo.c color = bytestream2_get_byte(&s->gb); s 114 libavcodec/mmvideo.c if (run_length > s->avctx->width - x) s 118 libavcodec/mmvideo.c memset(s->frame->data[0] + y*s->frame->linesize[0] + x, color, run_length); s 119 libavcodec/mmvideo.c if (half_vert && y + half_vert < s->avctx->height) s 120 libavcodec/mmvideo.c memset(s->frame->data[0] + (y+1)*s->frame->linesize[0] + x, color, run_length); s 124 libavcodec/mmvideo.c if (x >= s->avctx->width) { s 137 libavcodec/mmvideo.c static int mm_decode_inter(MmContext * s, int half_horiz, int half_vert) s 139 libavcodec/mmvideo.c int data_off = bytestream2_get_le16(&s->gb); s 143 libavcodec/mmvideo.c if (bytestream2_get_bytes_left(&s->gb) < data_off) s 146 libavcodec/mmvideo.c bytestream2_init(&data_ptr, s->gb.buffer + data_off, bytestream2_get_bytes_left(&s->gb) - data_off); s 147 libavcodec/mmvideo.c while (s->gb.buffer < data_ptr.buffer_start) { s 149 libavcodec/mmvideo.c int length = bytestream2_get_byte(&s->gb); s 150 libavcodec/mmvideo.c int x = bytestream2_get_byte(&s->gb) + ((length & 0x80) << 1); s 158 libavcodec/mmvideo.c if (y + half_vert >= s->avctx->height) s 162 libavcodec/mmvideo.c int replace_array = bytestream2_get_byte(&s->gb); s 165 libavcodec/mmvideo.c if (x + half_horiz >= s->avctx->width) s 169 libavcodec/mmvideo.c s->frame->data[0][y*s->frame->linesize[0] + x] = color; s 171 libavcodec/mmvideo.c s->frame->data[0][y*s->frame->linesize[0] + x + 1] = color; s 173 libavcodec/mmvideo.c s->frame->data[0][(y+1)*s->frame->linesize[0] + x] = color; s 175 libavcodec/mmvideo.c s->frame->data[0][(y+1)*s->frame->linesize[0] + x + 1] = color; s 194 libavcodec/mmvideo.c MmContext *s = avctx->priv_data; s 202 libavcodec/mmvideo.c bytestream2_init(&s->gb, buf, buf_size); s 204 libavcodec/mmvideo.c if ((res = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 208 libavcodec/mmvideo.c case MM_TYPE_PALETTE : mm_decode_pal(s); return avpkt->size; s 209 libavcodec/mmvideo.c case MM_TYPE_INTRA : res = mm_decode_intra(s, 0, 0); break; s 210 libavcodec/mmvideo.c case MM_TYPE_INTRA_HH : res = mm_decode_intra(s, 1, 0); break; s 211 libavcodec/mmvideo.c case MM_TYPE_INTRA_HHV : res = mm_decode_intra(s, 1, 1); break; s 212 libavcodec/mmvideo.c case MM_TYPE_INTER : res = mm_decode_inter(s, 0, 0); break; s 213 libavcodec/mmvideo.c case MM_TYPE_INTER_HH : res = mm_decode_inter(s, 1, 0); break; s 214 libavcodec/mmvideo.c case MM_TYPE_INTER_HHV : res = mm_decode_inter(s, 1, 1); break; s 222 libavcodec/mmvideo.c memcpy(s->frame->data[1], s->palette, AVPALETTE_SIZE); s 224 libavcodec/mmvideo.c if ((res = av_frame_ref(data, s->frame)) < 0) s 234 libavcodec/mmvideo.c MmContext *s = avctx->priv_data; s 236 libavcodec/mmvideo.c av_frame_free(&s->frame); s 50 libavcodec/motion_est.c static int sad_hpel_motion_search(MpegEncContext * s, s 107 libavcodec/motion_est.c static av_always_inline int cmp_direct_inline(MpegEncContext *s, const int x, const int y, const int subx, const int suby, s 110 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 120 libavcodec/motion_est.c const int time_pp= s->pp_time; s 121 libavcodec/motion_est.c const int time_pb= s->pb_time; s 123 libavcodec/motion_est.c if(s->mv_type==MV_TYPE_8X8){ s 160 libavcodec/motion_est.c av_assert2((fx>>1) + 16*s->mb_x >= -16); s 161 libavcodec/motion_est.c av_assert2((fy>>1) + 16*s->mb_y >= -16); s 162 libavcodec/motion_est.c av_assert2((fx>>1) + 16*s->mb_x <= s->width); s 163 libavcodec/motion_est.c av_assert2((fy>>1) + 16*s->mb_y <= s->height); s 164 libavcodec/motion_est.c av_assert2((bx>>1) + 16*s->mb_x >= -16); s 165 libavcodec/motion_est.c av_assert2((by>>1) + 16*s->mb_y >= -16); s 166 libavcodec/motion_est.c av_assert2((bx>>1) + 16*s->mb_x <= s->width); s 167 libavcodec/motion_est.c av_assert2((by>>1) + 16*s->mb_y <= s->height); s 173 libavcodec/motion_est.c d = cmp_func(s, c->temp, src[0], stride, 16); s 179 libavcodec/motion_est.c static av_always_inline int cmp_inline(MpegEncContext *s, const int x, const int y, const int subx, const int suby, s 182 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 215 libavcodec/motion_est.c d = cmp_func(s, c->temp, src[0], stride, h); s 217 libavcodec/motion_est.c d = cmp_func(s, src[0], ref[0] + x + y*stride, stride, h); s 225 libavcodec/motion_est.c d += chroma_cmp_func(s, uvtemp , src[1], uvstride, h>>1); s 226 libavcodec/motion_est.c d += chroma_cmp_func(s, uvtemp+8, src[2], uvstride, h>>1); s 231 libavcodec/motion_est.c static int cmp_simple(MpegEncContext *s, const int x, const int y, s 234 libavcodec/motion_est.c return cmp_inline(s,x,y,0,0,0,16,ref_index,src_index, cmp_func, chroma_cmp_func, 0, 0); s 237 libavcodec/motion_est.c static int cmp_fpel_internal(MpegEncContext *s, const int x, const int y, s 241 libavcodec/motion_est.c return cmp_direct_inline(s,x,y,0,0,size,h,ref_index,src_index, cmp_func, chroma_cmp_func, flags&FLAG_QPEL); s 243 libavcodec/motion_est.c return cmp_inline(s,x,y,0,0,size,h,ref_index,src_index, cmp_func, chroma_cmp_func, 0, flags&FLAG_CHROMA); s 247 libavcodec/motion_est.c static int cmp_internal(MpegEncContext *s, const int x, const int y, const int subx, const int suby, s 251 libavcodec/motion_est.c return cmp_direct_inline(s,x,y,subx,suby,size,h,ref_index,src_index, cmp_func, chroma_cmp_func, flags&FLAG_QPEL); s 253 libavcodec/motion_est.c return cmp_inline(s,x,y,subx,suby,size,h,ref_index,src_index, cmp_func, chroma_cmp_func, flags&FLAG_QPEL, flags&FLAG_CHROMA); s 260 libavcodec/motion_est.c static av_always_inline int cmp(MpegEncContext *s, const int x, const int y, const int subx, const int suby, s 266 libavcodec/motion_est.c return cmp_simple(s,x,y,ref_index,src_index, cmp_func, chroma_cmp_func); s 269 libavcodec/motion_est.c return cmp_fpel_internal(s,x,y,size,h,ref_index,src_index, cmp_func, chroma_cmp_func,flags); s 271 libavcodec/motion_est.c return cmp_internal(s,x,y,subx,suby,size,h,ref_index,src_index, cmp_func, chroma_cmp_func, flags); s 275 libavcodec/motion_est.c static int cmp_hpel(MpegEncContext *s, const int x, const int y, const int subx, const int suby, s 279 libavcodec/motion_est.c return cmp_direct_inline(s,x,y,subx,suby,size,h,ref_index,src_index, cmp_func, chroma_cmp_func, 0); s 281 libavcodec/motion_est.c return cmp_inline(s,x,y,subx,suby,size,h,ref_index,src_index, cmp_func, chroma_cmp_func, 0, flags&FLAG_CHROMA); s 285 libavcodec/motion_est.c static int cmp_qpel(MpegEncContext *s, const int x, const int y, const int subx, const int suby, s 289 libavcodec/motion_est.c return cmp_direct_inline(s,x,y,subx,suby,size,h,ref_index,src_index, cmp_func, chroma_cmp_func, 1); s 291 libavcodec/motion_est.c return cmp_inline(s,x,y,subx,suby,size,h,ref_index,src_index, cmp_func, chroma_cmp_func, 1, flags&FLAG_CHROMA); s 297 libavcodec/motion_est.c static int zero_cmp(MpegEncContext *s, uint8_t *a, uint8_t *b, s 306 libavcodec/motion_est.c int ff_init_me(MpegEncContext *s){ s 307 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 309 libavcodec/motion_est.c int dia_size= FFMAX(FFABS(s->avctx->dia_size)&255, FFABS(s->avctx->pre_dia_size)&255); s 311 libavcodec/motion_est.c if(FFMIN(s->avctx->dia_size, s->avctx->pre_dia_size) < -FFMIN(ME_MAP_SIZE, MAX_SAB_SIZE)){ s 312 libavcodec/motion_est.c av_log(s->avctx, AV_LOG_ERROR, "ME_MAP size is too small for SAB diamond\n"); s 316 libavcodec/motion_est.c c->avctx= s->avctx; s 318 libavcodec/motion_est.c if(s->codec_id == AV_CODEC_ID_H261) s 322 libavcodec/motion_est.c av_log(s->avctx, AV_LOG_INFO, "ME_MAP size may be a little small for the selected diamond size\n"); s 325 libavcodec/motion_est.c ff_set_cmp(&s->mecc, s->mecc.me_pre_cmp, c->avctx->me_pre_cmp); s 326 libavcodec/motion_est.c ff_set_cmp(&s->mecc, s->mecc.me_cmp, c->avctx->me_cmp); s 327 libavcodec/motion_est.c ff_set_cmp(&s->mecc, s->mecc.me_sub_cmp, c->avctx->me_sub_cmp); s 328 libavcodec/motion_est.c ff_set_cmp(&s->mecc, s->mecc.mb_cmp, c->avctx->mb_cmp); s 335 libavcodec/motion_est.c if (s->avctx->flags & AV_CODEC_FLAG_QPEL) { s 337 libavcodec/motion_est.c c->qpel_avg = s->qdsp.avg_qpel_pixels_tab; s 338 libavcodec/motion_est.c if (s->no_rounding) s 339 libavcodec/motion_est.c c->qpel_put = s->qdsp.put_no_rnd_qpel_pixels_tab; s 341 libavcodec/motion_est.c c->qpel_put = s->qdsp.put_qpel_pixels_tab; s 352 libavcodec/motion_est.c c->hpel_avg = s->hdsp.avg_pixels_tab; s 353 libavcodec/motion_est.c if (s->no_rounding) s 354 libavcodec/motion_est.c c->hpel_put = s->hdsp.put_no_rnd_pixels_tab; s 356 libavcodec/motion_est.c c->hpel_put = s->hdsp.put_pixels_tab; s 358 libavcodec/motion_est.c if(s->linesize){ s 359 libavcodec/motion_est.c c->stride = s->linesize; s 360 libavcodec/motion_est.c c->uvstride= s->uvlinesize; s 362 libavcodec/motion_est.c c->stride = 16*s->mb_width + 32; s 363 libavcodec/motion_est.c c->uvstride= 8*s->mb_width + 16; s 369 libavcodec/motion_est.c if (s->codec_id != AV_CODEC_ID_SNOW) { s 371 libavcodec/motion_est.c s->mecc.me_cmp[2] = zero_cmp; s 372 libavcodec/motion_est.c if ((c->avctx->me_sub_cmp & FF_CMP_CHROMA) && !s->mecc.me_sub_cmp[2]) s 373 libavcodec/motion_est.c s->mecc.me_sub_cmp[2] = zero_cmp; s 378 libavcodec/motion_est.c if(s->codec_id == AV_CODEC_ID_H261){ s 387 libavcodec/motion_est.c d = s->mecc.pix_abs[size][(x ? 1 : 0) + (y ? 2 : 0)](NULL, pix, ptr + ((x) >> 1), stride, h); \ s 392 libavcodec/motion_est.c static int sad_hpel_motion_search(MpegEncContext * s, s 397 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 497 libavcodec/motion_est.c static inline void set_p_mv_tables(MpegEncContext * s, int mx, int my, int mv4) s 499 libavcodec/motion_est.c const int xy= s->mb_x + s->mb_y*s->mb_stride; s 501 libavcodec/motion_est.c s->p_mv_table[xy][0] = mx; s 502 libavcodec/motion_est.c s->p_mv_table[xy][1] = my; s 506 libavcodec/motion_est.c int mot_xy= s->block_index[0]; s 508 libavcodec/motion_est.c s->current_picture.motion_val[0][mot_xy ][0] = mx; s 509 libavcodec/motion_est.c s->current_picture.motion_val[0][mot_xy ][1] = my; s 510 libavcodec/motion_est.c s->current_picture.motion_val[0][mot_xy + 1][0] = mx; s 511 libavcodec/motion_est.c s->current_picture.motion_val[0][mot_xy + 1][1] = my; s 513 libavcodec/motion_est.c mot_xy += s->b8_stride; s 514 libavcodec/motion_est.c s->current_picture.motion_val[0][mot_xy ][0] = mx; s 515 libavcodec/motion_est.c s->current_picture.motion_val[0][mot_xy ][1] = my; s 516 libavcodec/motion_est.c s->current_picture.motion_val[0][mot_xy + 1][0] = mx; s 517 libavcodec/motion_est.c s->current_picture.motion_val[0][mot_xy + 1][1] = my; s 524 libavcodec/motion_est.c static inline void get_limits(MpegEncContext *s, int x, int y) s 526 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 533 libavcodec/motion_est.c if (s->unrestricted_mv) { s 536 libavcodec/motion_est.c c->xmax = - x + s->width; s 537 libavcodec/motion_est.c c->ymax = - y + s->height; s 538 libavcodec/motion_est.c } else if (s->out_format == FMT_H261){ s 542 libavcodec/motion_est.c c->xmax = (x < s->mb_width * 16 - 16) ? 15 : 0; s 543 libavcodec/motion_est.c c->ymax = (y < s->mb_height * 16 - 16) ? 15 : 0; s 547 libavcodec/motion_est.c c->xmax = - x + s->mb_width *16 - 16; s 548 libavcodec/motion_est.c c->ymax = - y + s->mb_height*16 - 16; s 571 libavcodec/motion_est.c static inline int h263_mv4_search(MpegEncContext *s, int mx, int my, int shift) s 573 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 582 libavcodec/motion_est.c int safety_clipping= s->unrestricted_mv && (s->width&15) && (s->height&15); s 591 libavcodec/motion_est.c const int mot_stride = s->b8_stride; s 592 libavcodec/motion_est.c const int mot_xy = s->block_index[block]; s 595 libavcodec/motion_est.c c->xmax = - 16*s->mb_x + s->width - 8*(block &1); s 596 libavcodec/motion_est.c c->ymax = - 16*s->mb_y + s->height - 8*(block>>1); s 599 libavcodec/motion_est.c P_LEFT[0] = s->current_picture.motion_val[0][mot_xy - 1][0]; s 600 libavcodec/motion_est.c P_LEFT[1] = s->current_picture.motion_val[0][mot_xy - 1][1]; s 605 libavcodec/motion_est.c if (s->first_slice_line && block<2) { s 609 libavcodec/motion_est.c P_TOP[0] = s->current_picture.motion_val[0][mot_xy - mot_stride ][0]; s 610 libavcodec/motion_est.c P_TOP[1] = s->current_picture.motion_val[0][mot_xy - mot_stride ][1]; s 611 libavcodec/motion_est.c P_TOPRIGHT[0] = s->current_picture.motion_val[0][mot_xy - mot_stride + off[block]][0]; s 612 libavcodec/motion_est.c P_TOPRIGHT[1] = s->current_picture.motion_val[0][mot_xy - mot_stride + off[block]][1]; s 628 libavcodec/motion_est.c if (s->first_slice_line && block<2 && i>1 && i<9) s 636 libavcodec/motion_est.c dmin4 = epzs_motion_search2(s, &mx4, &my4, P, block, block, s->p_mv_table, (1<<16)>>shift, 1); s 638 libavcodec/motion_est.c dmin4= c->sub_motion_search(s, &mx4, &my4, dmin4, block, block, size, h); s 640 libavcodec/motion_est.c if (s->mecc.me_sub_cmp[0] != s->mecc.mb_cmp[0]) { s 644 libavcodec/motion_est.c if(s->quarter_sample){ s 648 libavcodec/motion_est.c if(s->no_rounding) s 649 libavcodec/motion_est.c s->qdsp.put_no_rnd_qpel_pixels_tab[1][dxy](dest_y, ref, stride); s 651 libavcodec/motion_est.c s->qdsp.put_qpel_pixels_tab[1][dxy](dest_y, ref, stride); s 656 libavcodec/motion_est.c if(s->no_rounding) s 657 libavcodec/motion_est.c s->hdsp.put_no_rnd_pixels_tab[1][dxy](dest_y , ref , stride, h); s 659 libavcodec/motion_est.c s->hdsp.put_pixels_tab [1][dxy](dest_y , ref , stride, h); s 665 libavcodec/motion_est.c if(s->quarter_sample){ s 673 libavcodec/motion_est.c s->current_picture.motion_val[0][s->block_index[block]][0] = mx4; s 674 libavcodec/motion_est.c s->current_picture.motion_val[0][s->block_index[block]][1] = my4; s 682 libavcodec/motion_est.c if (s->mecc.me_sub_cmp[0] != s->mecc.mb_cmp[0]) { s 683 libavcodec/motion_est.c dmin_sum += s->mecc.mb_cmp[0](s, s 684 libavcodec/motion_est.c s->new_picture.f->data[0] + s 685 libavcodec/motion_est.c s->mb_x * 16 + s->mb_y * 16 * stride, s 698 libavcodec/motion_est.c offset= (s->mb_x*8 + (mx>>1)) + (s->mb_y*8 + (my>>1))*s->uvlinesize; s 700 libavcodec/motion_est.c if(s->no_rounding){ s 701 libavcodec/motion_est.c s->hdsp.put_no_rnd_pixels_tab[1][dxy](c->scratchpad , s->last_picture.f->data[1] + offset, s->uvlinesize, 8); s 702 libavcodec/motion_est.c s->hdsp.put_no_rnd_pixels_tab[1][dxy](c->scratchpad + 8, s->last_picture.f->data[2] + offset, s->uvlinesize, 8); s 704 libavcodec/motion_est.c s->hdsp.put_pixels_tab [1][dxy](c->scratchpad , s->last_picture.f->data[1] + offset, s->uvlinesize, 8); s 705 libavcodec/motion_est.c s->hdsp.put_pixels_tab [1][dxy](c->scratchpad + 8, s->last_picture.f->data[2] + offset, s->uvlinesize, 8); s 708 libavcodec/motion_est.c dmin_sum += s->mecc.mb_cmp[1](s, s->new_picture.f->data[1] + s->mb_x * 8 + s->mb_y * 8 * s->uvlinesize, c->scratchpad, s->uvlinesize, 8); s 709 libavcodec/motion_est.c dmin_sum += s->mecc.mb_cmp[1](s, s->new_picture.f->data[2] + s->mb_x * 8 + s->mb_y * 8 * s->uvlinesize, c->scratchpad + 8, s->uvlinesize, 8); s 725 libavcodec/motion_est.c static inline void init_interlaced_ref(MpegEncContext *s, int ref_index){ s 726 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 728 libavcodec/motion_est.c c->ref[1+ref_index][0] = c->ref[0+ref_index][0] + s->linesize; s 729 libavcodec/motion_est.c c->src[1][0] = c->src[0][0] + s->linesize; s 731 libavcodec/motion_est.c c->ref[1+ref_index][1] = c->ref[0+ref_index][1] + s->uvlinesize; s 732 libavcodec/motion_est.c c->ref[1+ref_index][2] = c->ref[0+ref_index][2] + s->uvlinesize; s 733 libavcodec/motion_est.c c->src[1][1] = c->src[0][1] + s->uvlinesize; s 734 libavcodec/motion_est.c c->src[1][2] = c->src[0][2] + s->uvlinesize; s 738 libavcodec/motion_est.c static int interlaced_search(MpegEncContext *s, int ref_index, s 741 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 748 libavcodec/motion_est.c const int stride= 2*s->linesize; s 750 libavcodec/motion_est.c const int mot_stride= s->mb_stride; s 751 libavcodec/motion_est.c const int xy= s->mb_x + s->mb_y*mot_stride; s 757 libavcodec/motion_est.c init_interlaced_ref(s, ref_index); s 782 libavcodec/motion_est.c if(!s->first_slice_line){ s 798 libavcodec/motion_est.c dmin = epzs_motion_search2(s, &mx_i, &my_i, P, block, field_select+ref_index, mv_table, (1<<16)>>1, 0); s 800 libavcodec/motion_est.c dmin= c->sub_motion_search(s, &mx_i, &my_i, dmin, block, field_select+ref_index, size, h); s 805 libavcodec/motion_est.c if (s->mecc.me_sub_cmp[0] != s->mecc.mb_cmp[0]) { s 812 libavcodec/motion_est.c if(s->no_rounding){ s 813 libavcodec/motion_est.c s->hdsp.put_no_rnd_pixels_tab[size][dxy](c->scratchpad, ref , stride, h); s 815 libavcodec/motion_est.c s->hdsp.put_pixels_tab [size][dxy](c->scratchpad, ref , stride, h); s 817 libavcodec/motion_est.c dmin = s->mecc.mb_cmp[size](s, c->src[block][0], c->scratchpad, stride, h); s 885 libavcodec/motion_est.c void ff_estimate_p_frame_motion(MpegEncContext * s, s 888 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 894 libavcodec/motion_est.c const int shift= 1+s->quarter_sample; s 896 libavcodec/motion_est.c Picture * const pic= &s->current_picture; s 898 libavcodec/motion_est.c init_ref(c, s->new_picture.f->data, s->last_picture.f->data, NULL, 16*mb_x, 16*mb_y, 0); s 900 libavcodec/motion_est.c av_assert0(s->quarter_sample==0 || s->quarter_sample==1); s 901 libavcodec/motion_est.c av_assert0(s->linesize == c->stride); s 902 libavcodec/motion_est.c av_assert0(s->uvlinesize == c->uvstride); s 904 libavcodec/motion_est.c c->penalty_factor = get_penalty_factor(s->lambda, s->lambda2, c->avctx->me_cmp); s 905 libavcodec/motion_est.c c->sub_penalty_factor= get_penalty_factor(s->lambda, s->lambda2, c->avctx->me_sub_cmp); s 906 libavcodec/motion_est.c c->mb_penalty_factor = get_penalty_factor(s->lambda, s->lambda2, c->avctx->mb_cmp); s 907 libavcodec/motion_est.c c->current_mv_penalty= c->mv_penalty[s->f_code] + MAX_DMV; s 909 libavcodec/motion_est.c get_limits(s, 16*mb_x, 16*mb_y); s 914 libavcodec/motion_est.c sum = s->mpvencdsp.pix_sum(pix, s->linesize); s 915 libavcodec/motion_est.c varc = s->mpvencdsp.pix_norm1(pix, s->linesize) - s 918 libavcodec/motion_est.c pic->mb_mean[s->mb_stride * mb_y + mb_x] = (sum+128)>>8; s 919 libavcodec/motion_est.c pic->mb_var [s->mb_stride * mb_y + mb_x] = (varc+128)>>8; s 922 libavcodec/motion_est.c if (s->motion_est != FF_ME_ZERO) { s 923 libavcodec/motion_est.c const int mot_stride = s->b8_stride; s 924 libavcodec/motion_est.c const int mot_xy = s->block_index[0]; s 926 libavcodec/motion_est.c P_LEFT[0] = s->current_picture.motion_val[0][mot_xy - 1][0]; s 927 libavcodec/motion_est.c P_LEFT[1] = s->current_picture.motion_val[0][mot_xy - 1][1]; s 932 libavcodec/motion_est.c if (!s->first_slice_line) { s 933 libavcodec/motion_est.c P_TOP[0] = s->current_picture.motion_val[0][mot_xy - mot_stride ][0]; s 934 libavcodec/motion_est.c P_TOP[1] = s->current_picture.motion_val[0][mot_xy - mot_stride ][1]; s 935 libavcodec/motion_est.c P_TOPRIGHT[0] = s->current_picture.motion_val[0][mot_xy - mot_stride + 2][0]; s 936 libavcodec/motion_est.c P_TOPRIGHT[1] = s->current_picture.motion_val[0][mot_xy - mot_stride + 2][1]; s 947 libavcodec/motion_est.c if (s->out_format == FMT_H263) { s 958 libavcodec/motion_est.c dmin = ff_epzs_motion_search(s, &mx, &my, P, 0, 0, s->p_mv_table, (1<<16)>>shift, 0, 16); s 962 libavcodec/motion_est.c ppix = c->ref[0][0] + (my * s->linesize) + mx; s 964 libavcodec/motion_est.c vard = s->mecc.sse[0](NULL, pix, ppix, s->linesize, 16); s 966 libavcodec/motion_est.c pic->mc_mb_var[s->mb_stride * mb_y + mb_x] = (vard+128)>>8; s 970 libavcodec/motion_est.c int p_score= FFMIN(vard, varc-500+(s->lambda2>>FF_LAMBDA_SHIFT)*100); s 971 libavcodec/motion_est.c int i_score= varc-500+(s->lambda2>>FF_LAMBDA_SHIFT)*20; s 974 libavcodec/motion_est.c if (vard*2 + 200*256 > varc && !s->intra_penalty) s 976 libavcodec/motion_est.c if (varc*2 + 200*256 > vard || s->qscale > 24){ s 979 libavcodec/motion_est.c c->sub_motion_search(s, &mx, &my, dmin, 0, 0, 0, 16); s 980 libavcodec/motion_est.c if (s->mpv_flags & FF_MPV_FLAG_MV0) s 987 libavcodec/motion_est.c if ((s->avctx->flags & AV_CODEC_FLAG_4MV) s 989 libavcodec/motion_est.c if(h263_mv4_search(s, mx, my, shift) < INT_MAX) s 992 libavcodec/motion_est.c set_p_mv_tables(s, mx, my, 0); s 994 libavcodec/motion_est.c set_p_mv_tables(s, mx, my, 1); s 995 libavcodec/motion_est.c if ((s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) s 997 libavcodec/motion_est.c if(interlaced_search(s, 0, s->p_field_mv_table, s->p_field_select_table, mx, my, 0) < INT_MAX) s 1004 libavcodec/motion_est.c dmin= c->sub_motion_search(s, &mx, &my, dmin, 0, 0, 0, 16); s 1006 libavcodec/motion_est.c dmin= get_mb_score(s, mx, my, 0, 0, 0, 16, 1); s 1008 libavcodec/motion_est.c if ((s->avctx->flags & AV_CODEC_FLAG_4MV) s 1010 libavcodec/motion_est.c int dmin4= h263_mv4_search(s, mx, my, shift); s 1016 libavcodec/motion_est.c if ((s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) s 1018 libavcodec/motion_est.c int dmin_i= interlaced_search(s, 0, s->p_field_mv_table, s->p_field_select_table, mx, my, 0); s 1025 libavcodec/motion_est.c set_p_mv_tables(s, mx, my, mb_type!=CANDIDATE_MB_TYPE_INTER4V); s 1035 libavcodec/motion_est.c *(uint32_t*)(&c->scratchpad[i*s->linesize+ 0]) = mean; s 1036 libavcodec/motion_est.c *(uint32_t*)(&c->scratchpad[i*s->linesize+ 4]) = mean; s 1037 libavcodec/motion_est.c *(uint32_t*)(&c->scratchpad[i*s->linesize+ 8]) = mean; s 1038 libavcodec/motion_est.c *(uint32_t*)(&c->scratchpad[i*s->linesize+12]) = mean; s 1041 libavcodec/motion_est.c intra_score= s->mecc.mb_cmp[0](s, c->scratchpad, pix, s->linesize, 16); s 1043 libavcodec/motion_est.c intra_score += c->mb_penalty_factor*16 + s->intra_penalty; s 1047 libavcodec/motion_est.c s->current_picture.mb_type[mb_y*s->mb_stride + mb_x] = CANDIDATE_MB_TYPE_INTRA; //FIXME cleanup s 1049 libavcodec/motion_est.c s->current_picture.mb_type[mb_y*s->mb_stride + mb_x] = 0; s 1052 libavcodec/motion_est.c int p_score= FFMIN(vard, varc-500+(s->lambda2>>FF_LAMBDA_SHIFT)*100); s 1053 libavcodec/motion_est.c int i_score= varc-500+(s->lambda2>>FF_LAMBDA_SHIFT)*20; s 1058 libavcodec/motion_est.c s->mb_type[mb_y*s->mb_stride + mb_x]= mb_type; s 1061 libavcodec/motion_est.c int ff_pre_estimate_p_frame_motion(MpegEncContext * s, s 1064 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 1067 libavcodec/motion_est.c const int shift= 1+s->quarter_sample; s 1068 libavcodec/motion_est.c const int xy= mb_x + mb_y*s->mb_stride; s 1069 libavcodec/motion_est.c init_ref(c, s->new_picture.f->data, s->last_picture.f->data, NULL, 16*mb_x, 16*mb_y, 0); s 1071 libavcodec/motion_est.c av_assert0(s->quarter_sample==0 || s->quarter_sample==1); s 1073 libavcodec/motion_est.c c->pre_penalty_factor = get_penalty_factor(s->lambda, s->lambda2, c->avctx->me_pre_cmp); s 1074 libavcodec/motion_est.c c->current_mv_penalty= c->mv_penalty[s->f_code] + MAX_DMV; s 1076 libavcodec/motion_est.c get_limits(s, 16*mb_x, 16*mb_y); s 1079 libavcodec/motion_est.c P_LEFT[0] = s->p_mv_table[xy + 1][0]; s 1080 libavcodec/motion_est.c P_LEFT[1] = s->p_mv_table[xy + 1][1]; s 1085 libavcodec/motion_est.c if (s->first_slice_line) { s 1091 libavcodec/motion_est.c P_TOP[0] = s->p_mv_table[xy + s->mb_stride ][0]; s 1092 libavcodec/motion_est.c P_TOP[1] = s->p_mv_table[xy + s->mb_stride ][1]; s 1093 libavcodec/motion_est.c P_TOPRIGHT[0] = s->p_mv_table[xy + s->mb_stride - 1][0]; s 1094 libavcodec/motion_est.c P_TOPRIGHT[1] = s->p_mv_table[xy + s->mb_stride - 1][1]; s 1106 libavcodec/motion_est.c dmin = ff_epzs_motion_search(s, &mx, &my, P, 0, 0, s->p_mv_table, (1<<16)>>shift, 0, 16); s 1108 libavcodec/motion_est.c s->p_mv_table[xy][0] = mx<<shift; s 1109 libavcodec/motion_est.c s->p_mv_table[xy][1] = my<<shift; s 1114 libavcodec/motion_est.c static int estimate_motion_b(MpegEncContext *s, int mb_x, int mb_y, s 1117 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 1120 libavcodec/motion_est.c const int shift= 1+s->quarter_sample; s 1121 libavcodec/motion_est.c const int mot_stride = s->mb_stride; s 1126 libavcodec/motion_est.c c->penalty_factor = get_penalty_factor(s->lambda, s->lambda2, c->avctx->me_cmp); s 1127 libavcodec/motion_est.c c->sub_penalty_factor= get_penalty_factor(s->lambda, s->lambda2, c->avctx->me_sub_cmp); s 1128 libavcodec/motion_est.c c->mb_penalty_factor = get_penalty_factor(s->lambda, s->lambda2, c->avctx->mb_cmp); s 1131 libavcodec/motion_est.c get_limits(s, 16*mb_x, 16*mb_y); s 1133 libavcodec/motion_est.c if (s->motion_est != FF_ME_ZERO) { s 1140 libavcodec/motion_est.c if (!s->first_slice_line) { s 1155 libavcodec/motion_est.c if(mv_table == s->b_forw_mv_table){ s 1156 libavcodec/motion_est.c mv_scale= (s->pb_time<<16) / (s->pp_time<<shift); s 1158 libavcodec/motion_est.c mv_scale= ((s->pb_time - s->pp_time)<<16) / (s->pp_time<<shift); s 1161 libavcodec/motion_est.c dmin = ff_epzs_motion_search(s, &mx, &my, P, 0, ref_index, s->p_mv_table, mv_scale, 0, 16); s 1164 libavcodec/motion_est.c dmin= c->sub_motion_search(s, &mx, &my, dmin, 0, ref_index, 0, 16); s 1167 libavcodec/motion_est.c dmin= get_mb_score(s, mx, my, 0, ref_index, 0, 16, 1); s 1176 libavcodec/motion_est.c static inline int check_bidir_mv(MpegEncContext * s, s 1186 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 1187 libavcodec/motion_est.c uint8_t * const mv_penalty_f= c->mv_penalty[s->f_code] + MAX_DMV; // f_code of the prev frame s 1188 libavcodec/motion_est.c uint8_t * const mv_penalty_b= c->mv_penalty[s->b_code] + MAX_DMV; // f_code of the prev frame s 1199 libavcodec/motion_est.c if(s->quarter_sample){ s 1205 libavcodec/motion_est.c s->qdsp.put_qpel_pixels_tab[0][dxy](dest_y, ptr, stride); s 1212 libavcodec/motion_est.c s->qdsp.avg_qpel_pixels_tab[size][dxy](dest_y, ptr, stride); s 1219 libavcodec/motion_est.c s->hdsp.put_pixels_tab[size][dxy](dest_y , ptr , stride, h); s 1226 libavcodec/motion_est.c s->hdsp.avg_pixels_tab[size][dxy](dest_y , ptr , stride, h); s 1231 libavcodec/motion_est.c + s->mecc.mb_cmp[size](s, src_data[0], dest_y, stride, h); // FIXME new_pic s 1241 libavcodec/motion_est.c static inline int bidir_refine(MpegEncContext * s, int mb_x, int mb_y) s 1243 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 1244 libavcodec/motion_est.c const int mot_stride = s->mb_stride; s 1247 libavcodec/motion_est.c int pred_fx= s->b_bidir_forw_mv_table[xy-1][0]; s 1248 libavcodec/motion_est.c int pred_fy= s->b_bidir_forw_mv_table[xy-1][1]; s 1249 libavcodec/motion_est.c int pred_bx= s->b_bidir_back_mv_table[xy-1][0]; s 1250 libavcodec/motion_est.c int pred_by= s->b_bidir_back_mv_table[xy-1][1]; s 1251 libavcodec/motion_est.c int motion_fx= s->b_bidir_forw_mv_table[xy][0]= s->b_forw_mv_table[xy][0]; s 1252 libavcodec/motion_est.c int motion_fy= s->b_bidir_forw_mv_table[xy][1]= s->b_forw_mv_table[xy][1]; s 1253 libavcodec/motion_est.c int motion_bx= s->b_bidir_back_mv_table[xy][0]= s->b_back_mv_table[xy][0]; s 1254 libavcodec/motion_est.c int motion_by= s->b_bidir_back_mv_table[xy][1]= s->b_back_mv_table[xy][1]; s 1269 libavcodec/motion_est.c fbmin= check_bidir_mv(s, motion_fx, motion_fy, s 1275 libavcodec/motion_est.c if(s->avctx->bidir_refine){ s 1278 libavcodec/motion_est.c const int limit= limittab[s->avctx->bidir_refine]; s 1320 libavcodec/motion_est.c score= check_bidir_mv(s, motion_fx+fx, motion_fy+fy, motion_bx+bx, motion_by+by, pred_fx, pred_fy, pred_bx, pred_by, 0, 16);\ s 1359 libavcodec/motion_est.c score= check_bidir_mv(s, fx, fy, bx, by, pred_fx, pred_fy, pred_bx, pred_by, 0, 16); s 1380 libavcodec/motion_est.c s->b_bidir_forw_mv_table[xy][0]= motion_fx; s 1381 libavcodec/motion_est.c s->b_bidir_forw_mv_table[xy][1]= motion_fy; s 1382 libavcodec/motion_est.c s->b_bidir_back_mv_table[xy][0]= motion_bx; s 1383 libavcodec/motion_est.c s->b_bidir_back_mv_table[xy][1]= motion_by; s 1388 libavcodec/motion_est.c static inline int direct_search(MpegEncContext * s, int mb_x, int mb_y) s 1390 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 1392 libavcodec/motion_est.c const int mot_stride = s->mb_stride; s 1394 libavcodec/motion_est.c const int shift= 1+s->quarter_sample; s 1396 libavcodec/motion_est.c const int time_pp= s->pp_time; s 1397 libavcodec/motion_est.c const int time_pb= s->pb_time; s 1399 libavcodec/motion_est.c int16_t (*mv_table)[2]= s->b_direct_mv_table; s 1405 libavcodec/motion_est.c if (IS_8X8(s->next_picture.mb_type[mot_xy])) { s 1406 libavcodec/motion_est.c s->mv_type= MV_TYPE_8X8; s 1408 libavcodec/motion_est.c s->mv_type= MV_TYPE_16X16; s 1412 libavcodec/motion_est.c int index= s->block_index[i]; s 1415 libavcodec/motion_est.c c->co_located_mv[i][0] = s->next_picture.motion_val[0][index][0]; s 1416 libavcodec/motion_est.c c->co_located_mv[i][1] = s->next_picture.motion_val[0][index][1]; s 1426 libavcodec/motion_est.c xmax= FFMIN(xmax, s->width - max); s 1433 libavcodec/motion_est.c ymax= FFMIN(ymax, s->height - max); s 1436 libavcodec/motion_est.c if(s->mv_type == MV_TYPE_16X16) break; s 1442 libavcodec/motion_est.c s->b_direct_mv_table[mot_xy][0]= 0; s 1443 libavcodec/motion_est.c s->b_direct_mv_table[mot_xy][1]= 0; s 1461 libavcodec/motion_est.c if (!s->first_slice_line) { //FIXME maybe allow this over thread boundary as it is clipped s 1471 libavcodec/motion_est.c dmin = ff_epzs_motion_search(s, &mx, &my, P, 0, 0, mv_table, 1<<(16-shift), 0, 16); s 1473 libavcodec/motion_est.c dmin = qpel_motion_search(s, &mx, &my, dmin, 0, 0, 0, 16); s 1475 libavcodec/motion_est.c dmin = hpel_motion_search(s, &mx, &my, dmin, 0, 0, 0, 16); s 1478 libavcodec/motion_est.c dmin= get_mb_score(s, mx, my, 0, 0, 0, 16, 1); s 1480 libavcodec/motion_est.c get_limits(s, 16*mb_x, 16*mb_y); //restore c->?min/max, maybe not needed s 1490 libavcodec/motion_est.c void ff_estimate_b_frame_motion(MpegEncContext * s, s 1493 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 1497 libavcodec/motion_est.c const int xy = mb_y*s->mb_stride + mb_x; s 1498 libavcodec/motion_est.c init_ref(c, s->new_picture.f->data, s->last_picture.f->data, s 1499 libavcodec/motion_est.c s->next_picture.f->data, 16 * mb_x, 16 * mb_y, 2); s 1501 libavcodec/motion_est.c get_limits(s, 16*mb_x, 16*mb_y); s 1505 libavcodec/motion_est.c if (s->codec_id == AV_CODEC_ID_MPEG4 && s->next_picture.mbskip_table[xy]) { s 1506 libavcodec/motion_est.c int score= direct_search(s, mb_x, mb_y); //FIXME just check 0,0 s 1510 libavcodec/motion_est.c s->current_picture.mc_mb_var[mb_y*s->mb_stride + mb_x] = score; //FIXME use SSE s 1511 libavcodec/motion_est.c s->mb_type[mb_y*s->mb_stride + mb_x]= CANDIDATE_MB_TYPE_DIRECT0; s 1516 libavcodec/motion_est.c if (s->codec_id == AV_CODEC_ID_MPEG4) s 1517 libavcodec/motion_est.c dmin= direct_search(s, mb_x, mb_y); s 1522 libavcodec/motion_est.c fmin = estimate_motion_b(s, mb_x, mb_y, s->b_forw_mv_table, 0, s->f_code) + s 1526 libavcodec/motion_est.c bmin = estimate_motion_b(s, mb_x, mb_y, s->b_back_mv_table, 2, s->b_code) + s 1528 libavcodec/motion_est.c ff_dlog(s, " %d %d ", s->b_forw_mv_table[xy][0], s->b_forw_mv_table[xy][1]); s 1531 libavcodec/motion_est.c fbmin= bidir_refine(s, mb_x, mb_y) + penalty_factor; s 1532 libavcodec/motion_est.c ff_dlog(s, "%d %d %d %d\n", dmin, fmin, bmin, fbmin); s 1534 libavcodec/motion_est.c if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) { s 1537 libavcodec/motion_est.c c->current_mv_penalty= c->mv_penalty[s->f_code] + MAX_DMV; s 1538 libavcodec/motion_est.c fimin= interlaced_search(s, 0, s 1539 libavcodec/motion_est.c s->b_field_mv_table[0], s->b_field_select_table[0], s 1540 libavcodec/motion_est.c s->b_forw_mv_table[xy][0], s->b_forw_mv_table[xy][1], 0); s 1541 libavcodec/motion_est.c c->current_mv_penalty= c->mv_penalty[s->b_code] + MAX_DMV; s 1542 libavcodec/motion_est.c bimin= interlaced_search(s, 2, s 1543 libavcodec/motion_est.c s->b_field_mv_table[1], s->b_field_select_table[1], s 1544 libavcodec/motion_est.c s->b_back_mv_table[xy][0], s->b_back_mv_table[xy][1], 0); s 1575 libavcodec/motion_est.c s->current_picture.mc_mb_var[mb_y*s->mb_stride + mb_x] = score; //FIXME use SSE s 1589 libavcodec/motion_est.c if (s->codec_id == AV_CODEC_ID_MPEG4 && type&CANDIDATE_MB_TYPE_DIRECT && s 1590 libavcodec/motion_est.c s->mpv_flags & FF_MPV_FLAG_MV0 && *(uint32_t*)s->b_direct_mv_table[xy]) s 1594 libavcodec/motion_est.c s->mb_type[mb_y*s->mb_stride + mb_x]= type; s 1598 libavcodec/motion_est.c int ff_get_best_fcode(MpegEncContext * s, int16_t (*mv_table)[2], int type) s 1600 libavcodec/motion_est.c if (s->motion_est != FF_ME_ZERO) { s 1602 libavcodec/motion_est.c int i, y, range= s->avctx->me_range ? s->avctx->me_range : (INT_MAX/2); s 1603 libavcodec/motion_est.c uint8_t * fcode_tab= s->fcode_tab; s 1607 libavcodec/motion_est.c if(s->msmpeg4_version) s 1609 libavcodec/motion_est.c else if(s->codec_id == AV_CODEC_ID_MPEG2VIDEO && s->avctx->strict_std_compliance >= FF_COMPLIANCE_NORMAL) s 1612 libavcodec/motion_est.c for(i=0; i<8; i++) score[i]= s->mb_num*(8-i); s 1614 libavcodec/motion_est.c for(y=0; y<s->mb_height; y++){ s 1616 libavcodec/motion_est.c int xy= y*s->mb_stride; s 1617 libavcodec/motion_est.c for(x=0; x<s->mb_width; x++){ s 1618 libavcodec/motion_est.c if(s->mb_type[xy] & type){ s 1630 libavcodec/motion_est.c if(s->pict_type==AV_PICTURE_TYPE_B || s->current_picture.mc_mb_var[xy] < s->current_picture.mb_var[xy]) s 1651 libavcodec/motion_est.c void ff_fix_long_p_mvs(MpegEncContext * s, int type) s 1653 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 1654 libavcodec/motion_est.c const int f_code= s->f_code; s 1656 libavcodec/motion_est.c av_assert0(s->pict_type==AV_PICTURE_TYPE_P); s 1658 libavcodec/motion_est.c range = (((s->out_format == FMT_MPEG1 || s->msmpeg4_version) ? 8 : 16) << f_code); s 1660 libavcodec/motion_est.c av_assert0(range <= 16 || !s->msmpeg4_version); s 1661 libavcodec/motion_est.c av_assert0(range <=256 || !(s->codec_id == AV_CODEC_ID_MPEG2VIDEO && s->avctx->strict_std_compliance >= FF_COMPLIANCE_NORMAL)); s 1665 libavcodec/motion_est.c if (s->avctx->flags & AV_CODEC_FLAG_4MV) { s 1666 libavcodec/motion_est.c const int wrap= s->b8_stride; s 1669 libavcodec/motion_est.c for(y=0; y<s->mb_height; y++){ s 1671 libavcodec/motion_est.c int i= y*s->mb_stride; s 1674 libavcodec/motion_est.c for(x=0; x<s->mb_width; x++){ s 1675 libavcodec/motion_est.c if(s->mb_type[i]&CANDIDATE_MB_TYPE_INTER4V){ s 1679 libavcodec/motion_est.c int mx = s->current_picture.motion_val[0][ xy + off ][0]; s 1680 libavcodec/motion_est.c int my = s->current_picture.motion_val[0][ xy + off ][1]; s 1684 libavcodec/motion_est.c s->mb_type[i] &= ~CANDIDATE_MB_TYPE_INTER4V; s 1685 libavcodec/motion_est.c s->mb_type[i] |= type; s 1686 libavcodec/motion_est.c s->current_picture.mb_type[i] = type; s 1700 libavcodec/motion_est.c void ff_fix_long_mvs(MpegEncContext * s, uint8_t *field_select_table, int field_select, s 1703 libavcodec/motion_est.c MotionEstContext * const c= &s->me; s 1707 libavcodec/motion_est.c int range = (((s->out_format == FMT_MPEG1 || s->msmpeg4_version) ? 8 : 16) << f_code); s 1715 libavcodec/motion_est.c for(y=0; y<s->mb_height; y++){ s 1717 libavcodec/motion_est.c int xy= y*s->mb_stride; s 1718 libavcodec/motion_est.c for(x=0; x<s->mb_width; x++){ s 1719 libavcodec/motion_est.c if (s->mb_type[xy] & type){ // RAL: "type" test added... s 1730 libavcodec/motion_est.c s->mb_type[xy] &= ~type; s 1731 libavcodec/motion_est.c s->mb_type[xy] |= CANDIDATE_MB_TYPE_INTRA; s 95 libavcodec/motion_est.h int (*sub_motion_search)(struct MpegEncContext *s, s 111 libavcodec/motion_est.h int ff_init_me(struct MpegEncContext *s); s 113 libavcodec/motion_est.h void ff_estimate_p_frame_motion(struct MpegEncContext *s, int mb_x, int mb_y); s 114 libavcodec/motion_est.h void ff_estimate_b_frame_motion(struct MpegEncContext *s, int mb_x, int mb_y); s 116 libavcodec/motion_est.h int ff_pre_estimate_p_frame_motion(struct MpegEncContext *s, s 119 libavcodec/motion_est.h int ff_epzs_motion_search(struct MpegEncContext *s, int *mx_ptr, int *my_ptr, s 124 libavcodec/motion_est.h int ff_get_mb_score(struct MpegEncContext *s, int mx, int my, int src_index, s 127 libavcodec/motion_est.h int ff_get_best_fcode(struct MpegEncContext *s, s 130 libavcodec/motion_est.h void ff_fix_long_p_mvs(struct MpegEncContext *s, int type); s 131 libavcodec/motion_est.h void ff_fix_long_mvs(struct MpegEncContext *s, uint8_t *field_select_table, s 45 libavcodec/motion_est_template.c d= cmp_hpel(s, x, y, dx, dy, size, h, ref_index, src_index, cmp_sub, chroma_cmp_sub, flags);\ s 50 libavcodec/motion_est_template.c static int hpel_motion_search(MpegEncContext * s, s 55 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 67 libavcodec/motion_est_template.c cmp_sub = s->mecc.me_sub_cmp[size]; s 68 libavcodec/motion_est_template.c chroma_cmp_sub = s->mecc.me_sub_cmp[size + 1]; s 77 libavcodec/motion_est_template.c dmin= cmp(s, mx, my, 0, 0, size, h, ref_index, src_index, cmp_sub, chroma_cmp_sub, flags); s 155 libavcodec/motion_est_template.c static int no_sub_motion_search(MpegEncContext * s, s 165 libavcodec/motion_est_template.c static inline int get_mb_score(MpegEncContext *s, int mx, int my, s 169 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 181 libavcodec/motion_est_template.c cmp_sub = s->mecc.mb_cmp[size]; s 182 libavcodec/motion_est_template.c chroma_cmp_sub = s->mecc.mb_cmp[size + 1]; s 184 libavcodec/motion_est_template.c d= cmp(s, mx>>(qpel+1), my>>(qpel+1), mx&mask, my&mask, size, h, ref_index, src_index, cmp_sub, chroma_cmp_sub, flags); s 192 libavcodec/motion_est_template.c int ff_get_mb_score(MpegEncContext *s, int mx, int my, int src_index, s 195 libavcodec/motion_est_template.c return get_mb_score(s, mx, my, src_index, ref_index, size, h, add_rate); s 202 libavcodec/motion_est_template.c d= cmp_qpel(s, x, y, dx, dy, size, h, ref_index, src_index, cmpf, chroma_cmpf, flags);\ s 207 libavcodec/motion_est_template.c static int qpel_motion_search(MpegEncContext * s, s 212 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 225 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 226 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; // FIXME: factorize s 229 libavcodec/motion_est_template.c cmp_sub = s->mecc.me_sub_cmp[size]; s 230 libavcodec/motion_est_template.c chroma_cmp_sub = s->mecc.me_sub_cmp[size + 1]; s 239 libavcodec/motion_est_template.c dmin= cmp(s, mx, my, 0, 0, size, h, ref_index, src_index, cmp_sub, chroma_cmp_sub, flags); s 259 libavcodec/motion_est_template.c if(s->me.dia_size>=2){ s 305 libavcodec/motion_est_template.c tl= cmp(s, mx-1, my-1, 0, 0, size, h, ref_index, src_index, cmpf, chroma_cmpf, flags);//FIXME wrong if chroma me is different s 369 libavcodec/motion_est_template.c d= cmp(s, x, y, 0, 0, size, h, ref_index, src_index, cmpf, chroma_cmpf, flags);\ s 391 libavcodec/motion_est_template.c d= cmp(s, x, y, 0, 0, size, h, ref_index, src_index, cmpf, chroma_cmpf, flags);\ s 405 libavcodec/motion_est_template.c if( (x)<(xmin<<(S)) ) av_log(NULL, AV_LOG_ERROR, "%d %d %d %d %d xmin" #v, xmin, (x), (y), s->mb_x, s->mb_y);\ s 406 libavcodec/motion_est_template.c if( (x)>(xmax<<(S)) ) av_log(NULL, AV_LOG_ERROR, "%d %d %d %d %d xmax" #v, xmax, (x), (y), s->mb_x, s->mb_y);\ s 407 libavcodec/motion_est_template.c if( (y)<(ymin<<(S)) ) av_log(NULL, AV_LOG_ERROR, "%d %d %d %d %d ymin" #v, ymin, (x), (y), s->mb_x, s->mb_y);\ s 408 libavcodec/motion_est_template.c if( (y)>(ymax<<(S)) ) av_log(NULL, AV_LOG_ERROR, "%d %d %d %d %d ymax" #v, ymax, (x), (y), s->mb_x, s->mb_y);\ s 415 libavcodec/motion_est_template.c static av_always_inline int small_diamond_search(MpegEncContext * s, int *best, int dmin, s 419 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 426 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 427 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 433 libavcodec/motion_est_template.c score_map[index]= cmp(s, best[0], best[1], 0, 0, size, h, ref_index, src_index, cmpf, chroma_cmpf, flags); s 456 libavcodec/motion_est_template.c static int funny_diamond_search(MpegEncContext * s, int *best, int dmin, s 460 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 467 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 468 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 498 libavcodec/motion_est_template.c static int hex_search(MpegEncContext * s, int *best, int dmin, s 502 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 510 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 511 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 532 libavcodec/motion_est_template.c static int l2s_dia_search(MpegEncContext * s, int *best, int dmin, s 536 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 547 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 548 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 570 libavcodec/motion_est_template.c static int umh_search(MpegEncContext * s, int *best, int dmin, s 574 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 586 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 587 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 614 libavcodec/motion_est_template.c return hex_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags, 2); s 617 libavcodec/motion_est_template.c static int full_search(MpegEncContext * s, int *best, int dmin, s 621 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 629 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 630 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 657 libavcodec/motion_est_template.c d= cmp(s, ax, ay, 0, 0, size, h, ref_index, src_index, cmpf, chroma_cmpf, flags);\ s 680 libavcodec/motion_est_template.c static int sab_diamond_search(MpegEncContext * s, int *best, int dmin, s 684 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 695 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 696 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 770 libavcodec/motion_est_template.c static int var_diamond_search(MpegEncContext * s, int *best, int dmin, s 774 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 781 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 782 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 831 libavcodec/motion_est_template.c static av_always_inline int diamond_search(MpegEncContext * s, int *best, int dmin, s 834 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 836 libavcodec/motion_est_template.c return funny_diamond_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags); s 838 libavcodec/motion_est_template.c return sab_diamond_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags); s 840 libavcodec/motion_est_template.c return small_diamond_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags); s 842 libavcodec/motion_est_template.c return full_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags); s 844 libavcodec/motion_est_template.c return umh_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags); s 846 libavcodec/motion_est_template.c return hex_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags, c->dia_size&0xFF); s 848 libavcodec/motion_est_template.c return l2s_dia_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags); s 850 libavcodec/motion_est_template.c return var_diamond_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags); s 859 libavcodec/motion_est_template.c static av_always_inline int epzs_motion_search_internal(MpegEncContext * s, int *mx_ptr, int *my_ptr, s 863 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 873 libavcodec/motion_est_template.c const int ref_mv_stride= s->mb_stride; //pass as arg FIXME s 874 libavcodec/motion_est_template.c const int ref_mv_xy = s->mb_x + s->mb_y * ref_mv_stride; // add to last_mv before passing FIXME s 882 libavcodec/motion_est_template.c cmpf = s->mecc.me_pre_cmp[size]; s 883 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_pre_cmp[size + 1]; s 886 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 887 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 893 libavcodec/motion_est_template.c dmin= cmp(s, 0, 0, 0, 0, size, h, ref_index, src_index, cmpf, chroma_cmpf, flags); s 898 libavcodec/motion_est_template.c if ((s->pict_type == AV_PICTURE_TYPE_B && !(c->flags & FLAG_DIRECT)) || s 899 libavcodec/motion_est_template.c s->mpv_flags & FF_MPV_FLAG_MV0) s 903 libavcodec/motion_est_template.c if (s->first_slice_line) { s 908 libavcodec/motion_est_template.c if(dmin<((h*h*s->avctx->mv0_threshold)>>8) s 932 libavcodec/motion_est_template.c if(!s->first_slice_line) s 938 libavcodec/motion_est_template.c if(s->mb_y+1<s->end_mb_y) //FIXME replace at least with last_slice_line s 946 libavcodec/motion_est_template.c const int xstart= FFMAX(0, s->mb_x - count); s 947 libavcodec/motion_est_template.c const int ystart= FFMAX(0, s->mb_y - count); s 948 libavcodec/motion_est_template.c const int xend= FFMIN(s->mb_width , s->mb_x + count + 1); s 949 libavcodec/motion_est_template.c const int yend= FFMIN(s->mb_height, s->mb_y + count + 1); s 966 libavcodec/motion_est_template.c dmin= diamond_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags); s 976 libavcodec/motion_est_template.c int ff_epzs_motion_search(MpegEncContext *s, int *mx_ptr, int *my_ptr, s 981 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 984 libavcodec/motion_est_template.c return epzs_motion_search_internal(s, mx_ptr, my_ptr, P, src_index, ref_index, last_mv, ref_mv_scale, 0, 0, 16); s 988 libavcodec/motion_est_template.c return epzs_motion_search_internal(s, mx_ptr, my_ptr, P, src_index, ref_index, last_mv, ref_mv_scale, c->flags, size, h); s 992 libavcodec/motion_est_template.c static int epzs_motion_search2(MpegEncContext * s, s 997 libavcodec/motion_est_template.c MotionEstContext * const c= &s->me; s 1003 libavcodec/motion_est_template.c const int ref_mv_stride= s->mb_stride; s 1004 libavcodec/motion_est_template.c const int ref_mv_xy= s->mb_x + s->mb_y *ref_mv_stride; s 1010 libavcodec/motion_est_template.c cmpf = s->mecc.me_cmp[size]; s 1011 libavcodec/motion_est_template.c chroma_cmpf = s->mecc.me_cmp[size + 1]; s 1018 libavcodec/motion_est_template.c if (s->first_slice_line) { s 1036 libavcodec/motion_est_template.c if(s->mb_y+1<s->end_mb_y) //FIXME replace at least with last_slice_line s 1041 libavcodec/motion_est_template.c dmin= diamond_search(s, best, dmin, src_index, ref_index, penalty_factor, size, h, flags); s 101 libavcodec/movtextdec.c StyleBox **s; s 130 libavcodec/movtextdec.c av_freep(&m->s[i]); s 132 libavcodec/movtextdec.c av_freep(&m->s); s 323 libavcodec/movtextdec.c || (m->count_s && m->s_temp->style_start < m->s[m->count_s - 1]->style_end)) { s 343 libavcodec/movtextdec.c av_dynarray_add(&m->s, &m->count_s, m->s_temp); s 344 libavcodec/movtextdec.c if(!m->s) { s 397 libavcodec/movtextdec.c if (text_pos == m->s[entry]->style_start) { s 399 libavcodec/movtextdec.c if (m->s[entry]->bold ^ m->d.bold) s 400 libavcodec/movtextdec.c av_bprintf(buf, "{\\b%d}", m->s[entry]->bold); s 401 libavcodec/movtextdec.c if (m->s[entry]->italic ^ m->d.italic) s 402 libavcodec/movtextdec.c av_bprintf(buf, "{\\i%d}", m->s[entry]->italic); s 403 libavcodec/movtextdec.c if (m->s[entry]->underline ^ m->d.underline) s 404 libavcodec/movtextdec.c av_bprintf(buf, "{\\u%d}", m->s[entry]->underline); s 405 libavcodec/movtextdec.c if (m->s[entry]->fontsize != m->d.fontsize) s 406 libavcodec/movtextdec.c av_bprintf(buf, "{\\fs%d}", m->s[entry]->fontsize); s 407 libavcodec/movtextdec.c if (m->s[entry]->style_fontID != m->d.fontID) s 409 libavcodec/movtextdec.c if (m->s[entry]->style_fontID == m->ftab[i]->fontID) s 412 libavcodec/movtextdec.c if (m->d.color != m->s[entry]->color) { s 413 libavcodec/movtextdec.c color = m->s[entry]->color; s 416 libavcodec/movtextdec.c if (m->d.alpha != m->s[entry]->alpha) s 417 libavcodec/movtextdec.c av_bprintf(buf, "{\\1a&H%02X&}", 255 - m->s[entry]->alpha); s 419 libavcodec/movtextdec.c if (text_pos == m->s[entry]->style_end) { s 49 libavcodec/movtextenc.c #define FONTSIZE_SCALE(s,fs) ((fs) * (s)->font_scale_factor + 0.5) s 94 libavcodec/movtextenc.c void (*encode)(MovTextContext *s, uint32_t tsmb_type); s 97 libavcodec/movtextenc.c static void mov_text_cleanup(MovTextContext *s) s 100 libavcodec/movtextenc.c if (s->box_flags & STYL_BOX) { s 101 libavcodec/movtextenc.c for (j = 0; j < s->count; j++) { s 102 libavcodec/movtextenc.c av_freep(&s->style_attributes[j]); s 104 libavcodec/movtextenc.c av_freep(&s->style_attributes); s 106 libavcodec/movtextenc.c if (s->style_attributes_temp) { s 107 libavcodec/movtextenc.c *s->style_attributes_temp = s->d; s 111 libavcodec/movtextenc.c static void encode_styl(MovTextContext *s, uint32_t tsmb_type) s 116 libavcodec/movtextenc.c if ((s->box_flags & STYL_BOX) && s->count) { s 117 libavcodec/movtextenc.c tsmb_size = s->count * STYLE_RECORD_SIZE + SIZE_ADD; s 119 libavcodec/movtextenc.c style_entries = AV_RB16(&s->count); s 122 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &tsmb_size, 4); s 123 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &tsmb_type, 4); s 124 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &style_entries, 2); s 125 libavcodec/movtextenc.c for (j = 0; j < s->count; j++) { s 129 libavcodec/movtextenc.c style_start = AV_RB16(&s->style_attributes[j]->style_start); s 130 libavcodec/movtextenc.c style_end = AV_RB16(&s->style_attributes[j]->style_end); s 131 libavcodec/movtextenc.c style_color = AV_RB32(&s->style_attributes[j]->style_color); s 132 libavcodec/movtextenc.c style_fontID = AV_RB16(&s->style_attributes[j]->style_fontID); s 134 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &style_start, 2); s 135 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &style_end, 2); s 136 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &style_fontID, 2); s 137 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &s->style_attributes[j]->style_flag, 1); s 138 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &s->style_attributes[j]->style_fontsize, 1); s 139 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &style_color, 4); s 142 libavcodec/movtextenc.c mov_text_cleanup(s); s 145 libavcodec/movtextenc.c static void encode_hlit(MovTextContext *s, uint32_t tsmb_type) s 149 libavcodec/movtextenc.c if (s->box_flags & HLIT_BOX) { s 152 libavcodec/movtextenc.c start = AV_RB16(&s->hlit.start); s 153 libavcodec/movtextenc.c end = AV_RB16(&s->hlit.end); s 154 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &tsmb_size, 4); s 155 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &tsmb_type, 4); s 156 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &start, 2); s 157 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &end, 2); s 161 libavcodec/movtextenc.c static void encode_hclr(MovTextContext *s, uint32_t tsmb_type) s 164 libavcodec/movtextenc.c if (s->box_flags & HCLR_BOX) { s 167 libavcodec/movtextenc.c color = AV_RB32(&s->hclr.color); s 168 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &tsmb_size, 4); s 169 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &tsmb_type, 4); s 170 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &color, 4); s 184 libavcodec/movtextenc.c MovTextContext *s = avctx->priv_data; s 187 libavcodec/movtextenc.c ff_ass_split_free(s->ass_ctx); s 188 libavcodec/movtextenc.c if (s->style_attributes) { s 189 libavcodec/movtextenc.c for (i = 0; i < s->count; i++) { s 190 libavcodec/movtextenc.c av_freep(&s->style_attributes[i]); s 192 libavcodec/movtextenc.c av_freep(&s->style_attributes); s 194 libavcodec/movtextenc.c av_freep(&s->fonts); s 195 libavcodec/movtextenc.c av_freep(&s->style_attributes_temp); s 196 libavcodec/movtextenc.c av_bprint_finalize(&s->buffer, NULL); s 208 libavcodec/movtextenc.c MovTextContext *s = avctx->priv_data; s 244 libavcodec/movtextenc.c ass = (ASS*)s->ass_ctx; s 247 libavcodec/movtextenc.c if (s->frame_height && ass->script_info.play_res_y) s 248 libavcodec/movtextenc.c s->font_scale_factor = (double)s->frame_height / ass->script_info.play_res_y; s 250 libavcodec/movtextenc.c s->font_scale_factor = 1; s 252 libavcodec/movtextenc.c style = ff_ass_style_get(s->ass_ctx, "Default"); s 256 libavcodec/movtextenc.c s->d.style_fontID = DEFAULT_STYLE_FONT_ID; s 257 libavcodec/movtextenc.c s->d.style_fontsize = DEFAULT_STYLE_FONTSIZE; s 258 libavcodec/movtextenc.c s->d.style_color = DEFAULT_STYLE_COLOR; s 259 libavcodec/movtextenc.c s->d.style_flag = DEFAULT_STYLE_FLAG; s 261 libavcodec/movtextenc.c s->d.style_fontsize = FONTSIZE_SCALE(s, style->font_size); s 262 libavcodec/movtextenc.c s->d.style_color = BGR_TO_RGB(style->primary_color & 0xffffff) << 8 | s 264 libavcodec/movtextenc.c s->d.style_flag = (!!style->bold * STYLE_FLAG_BOLD) | s 271 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, display_and_justification, s 274 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &back_color, 4); s 276 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, box_record, sizeof(box_record)); s 279 libavcodec/movtextenc.c style_start = AV_RB16(&s->d.style_start); s 280 libavcodec/movtextenc.c style_end = AV_RB16(&s->d.style_end); s 281 libavcodec/movtextenc.c fontID = AV_RB16(&s->d.style_fontID); s 282 libavcodec/movtextenc.c style_color = AV_RB32(&s->d.style_color); s 283 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &style_start, 2); s 284 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &style_end, 2); s 285 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &fontID, 2); s 286 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &s->d.style_flag, 1); s 287 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &s->d.style_fontsize, 1); s 288 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &style_color, 4); s 297 libavcodec/movtextenc.c av_dynarray_add(&s->fonts, &s->font_count, style->font_name); s 301 libavcodec/movtextenc.c for (j = 0; j < s->font_count; j++) { s 302 libavcodec/movtextenc.c if (!strcmp(s->fonts[j], ass->styles[i].font_name)) { s 308 libavcodec/movtextenc.c av_dynarray_add(&s->fonts, &s->font_count, s 314 libavcodec/movtextenc.c av_dynarray_add(&s->fonts, &s->font_count, (char*)"Serif"); s 317 libavcodec/movtextenc.c tsmb_size = SIZE_ADD + 3 * s->font_count + font_names_total_len; s 320 libavcodec/movtextenc.c count = AV_RB16(&s->font_count); s 321 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &tsmb_size, 4); s 322 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &tsmb_type, 4); s 323 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &count, 2); s 325 libavcodec/movtextenc.c for (i = 0; i < s->font_count; i++) { s 329 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &fontID, 2); s 330 libavcodec/movtextenc.c len = strlen(s->fonts[i]); s 331 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, &len, 1); s 332 libavcodec/movtextenc.c av_bprint_append_any(&s->buffer, s->fonts[i], len); s 337 libavcodec/movtextenc.c if (!av_bprint_is_complete(&s->buffer)) { s 341 libavcodec/movtextenc.c avctx->extradata_size = s->buffer.len; s 347 libavcodec/movtextenc.c memcpy(avctx->extradata, s->buffer.str, avctx->extradata_size); s 348 libavcodec/movtextenc.c av_bprint_clear(&s->buffer); s 356 libavcodec/movtextenc.c MovTextContext *s = avctx->priv_data; s 357 libavcodec/movtextenc.c s->avctx = avctx; s 359 libavcodec/movtextenc.c av_bprint_init(&s->buffer, 0, AV_BPRINT_SIZE_UNLIMITED); s 361 libavcodec/movtextenc.c s->style_attributes_temp = av_mallocz(sizeof(*s->style_attributes_temp)); s 362 libavcodec/movtextenc.c if (!s->style_attributes_temp) { s 367 libavcodec/movtextenc.c s->ass_ctx = ff_ass_split(avctx->subtitle_header); s 368 libavcodec/movtextenc.c if (!s->ass_ctx) { s 384 libavcodec/movtextenc.c static int mov_text_style_start(MovTextContext *s) s 387 libavcodec/movtextenc.c if (s->style_attributes_temp->style_start == s->text_pos) s 390 libavcodec/movtextenc.c if (s->style_attributes_temp->style_flag != s->d.style_flag || s 391 libavcodec/movtextenc.c s->style_attributes_temp->style_color != s->d.style_color || s 392 libavcodec/movtextenc.c s->style_attributes_temp->style_fontID != s->d.style_fontID || s 393 libavcodec/movtextenc.c s->style_attributes_temp->style_fontsize != s->d.style_fontsize) { s 395 libavcodec/movtextenc.c s->box_flags |= STYL_BOX; s 396 libavcodec/movtextenc.c s->style_attributes_temp->style_end = s->text_pos; s 397 libavcodec/movtextenc.c av_dynarray_add(&s->style_attributes, &s->count, s->style_attributes_temp); s 398 libavcodec/movtextenc.c s->style_attributes_temp = av_malloc(sizeof(*s->style_attributes_temp)); s 399 libavcodec/movtextenc.c if (!s->style_attributes_temp) { s 400 libavcodec/movtextenc.c mov_text_cleanup(s); s 401 libavcodec/movtextenc.c av_bprint_clear(&s->buffer); s 402 libavcodec/movtextenc.c s->box_flags &= ~STYL_BOX; s 406 libavcodec/movtextenc.c *s->style_attributes_temp = s->d; s 407 libavcodec/movtextenc.c s->style_attributes_temp->style_start = s->text_pos; s 409 libavcodec/movtextenc.c *s->style_attributes_temp = s->d; s 410 libavcodec/movtextenc.c s->style_attributes_temp->style_start = s->text_pos; s 433 libavcodec/movtextenc.c static void mov_text_style_set(MovTextContext *s, uint8_t style_flags) s 435 libavcodec/movtextenc.c if (!s->style_attributes_temp || s 436 libavcodec/movtextenc.c !((s->style_attributes_temp->style_flag & style_flags) ^ style_flags)) { s 440 libavcodec/movtextenc.c if (mov_text_style_start(s)) s 441 libavcodec/movtextenc.c s->style_attributes_temp->style_flag |= style_flags; s 446 libavcodec/movtextenc.c MovTextContext *s = priv; s 449 libavcodec/movtextenc.c if (!s->style_attributes_temp || s 450 libavcodec/movtextenc.c !!(s->style_attributes_temp->style_flag & style_flag) != close) { s 454 libavcodec/movtextenc.c if (mov_text_style_start(s)) { s 456 libavcodec/movtextenc.c s->style_attributes_temp->style_flag |= style_flag; s 458 libavcodec/movtextenc.c s->style_attributes_temp->style_flag &= ~style_flag; s 462 libavcodec/movtextenc.c static void mov_text_color_set(MovTextContext *s, uint32_t color) s 464 libavcodec/movtextenc.c if (!s->style_attributes_temp || s 465 libavcodec/movtextenc.c (s->style_attributes_temp->style_color & 0xffffff00) == color) { s 469 libavcodec/movtextenc.c if (mov_text_style_start(s)) s 470 libavcodec/movtextenc.c s->style_attributes_temp->style_color = (color & 0xffffff00) | s 471 libavcodec/movtextenc.c (s->style_attributes_temp->style_color & 0xff); s 476 libavcodec/movtextenc.c MovTextContext *s = priv; s 480 libavcodec/movtextenc.c mov_text_color_set(s, color); s 482 libavcodec/movtextenc.c if (!(s->box_flags & HCLR_BOX)) s 484 libavcodec/movtextenc.c s->hclr.color = s->style_attributes_temp->style_color; s 485 libavcodec/movtextenc.c if (!(s->box_flags & HLIT_BOX) || s->hlit.start == s->text_pos) { s 486 libavcodec/movtextenc.c s->box_flags |= HCLR_BOX; s 487 libavcodec/movtextenc.c s->box_flags |= HLIT_BOX; s 488 libavcodec/movtextenc.c s->hlit.start = s->text_pos; s 489 libavcodec/movtextenc.c s->hclr.color = color | (s->hclr.color & 0xFF); s 492 libavcodec/movtextenc.c s->hlit.end = s->text_pos; s 501 libavcodec/movtextenc.c static void mov_text_alpha_set(MovTextContext *s, uint8_t alpha) s 503 libavcodec/movtextenc.c if (!s->style_attributes_temp || s 504 libavcodec/movtextenc.c (s->style_attributes_temp->style_color & 0xff) == alpha) { s 508 libavcodec/movtextenc.c if (mov_text_style_start(s)) s 509 libavcodec/movtextenc.c s->style_attributes_temp->style_color = s 510 libavcodec/movtextenc.c (s->style_attributes_temp->style_color & 0xffffff00) | alpha; s 515 libavcodec/movtextenc.c MovTextContext *s = priv; s 519 libavcodec/movtextenc.c mov_text_alpha_set(s, alpha); s 521 libavcodec/movtextenc.c if (!(s->box_flags & HCLR_BOX)) s 523 libavcodec/movtextenc.c s->hclr.color = s->style_attributes_temp->style_color; s 524 libavcodec/movtextenc.c if (!(s->box_flags & HLIT_BOX) || s->hlit.start == s->text_pos) { s 525 libavcodec/movtextenc.c s->box_flags |= HCLR_BOX; s 526 libavcodec/movtextenc.c s->box_flags |= HLIT_BOX; s 527 libavcodec/movtextenc.c s->hlit.start = s->text_pos; s 528 libavcodec/movtextenc.c s->hclr.color = (s->hclr.color & 0xffffff00) | alpha; s 531 libavcodec/movtextenc.c s->hlit.end = s->text_pos; s 536 libavcodec/movtextenc.c static uint16_t find_font_id(MovTextContext * s, const char * name) s 539 libavcodec/movtextenc.c for (i = 0; i < s->font_count; i++) { s 540 libavcodec/movtextenc.c if (!strcmp(name, s->fonts[i])) s 546 libavcodec/movtextenc.c static void mov_text_font_name_set(MovTextContext *s, const char *name) s 548 libavcodec/movtextenc.c int fontID = find_font_id(s, name); s 549 libavcodec/movtextenc.c if (!s->style_attributes_temp || s 550 libavcodec/movtextenc.c s->style_attributes_temp->style_fontID == fontID) { s 554 libavcodec/movtextenc.c if (mov_text_style_start(s)) s 555 libavcodec/movtextenc.c s->style_attributes_temp->style_fontID = fontID; s 563 libavcodec/movtextenc.c static void mov_text_font_size_set(MovTextContext *s, int size) s 565 libavcodec/movtextenc.c size = FONTSIZE_SCALE(s, size); s 566 libavcodec/movtextenc.c if (!s->style_attributes_temp || s 567 libavcodec/movtextenc.c s->style_attributes_temp->style_fontsize == size) { s 571 libavcodec/movtextenc.c if (mov_text_style_start(s)) s 572 libavcodec/movtextenc.c s->style_attributes_temp->style_fontsize = size; s 586 libavcodec/movtextenc.c static void mov_text_ass_style_set(MovTextContext *s, ASSStyle *style) s 595 libavcodec/movtextenc.c mov_text_style_set(s, style_flags); s 597 libavcodec/movtextenc.c mov_text_color_set(s, color); s 599 libavcodec/movtextenc.c mov_text_alpha_set(s, alpha); s 600 libavcodec/movtextenc.c mov_text_font_size_set(s, style->font_size); s 601 libavcodec/movtextenc.c mov_text_font_name_set(s, style->font_name); s 604 libavcodec/movtextenc.c mov_text_style_start(s); s 608 libavcodec/movtextenc.c static void mov_text_dialog(MovTextContext *s, ASSDialog *dialog) s 610 libavcodec/movtextenc.c ASSStyle * style = ff_ass_style_get(s->ass_ctx, dialog->style); s 612 libavcodec/movtextenc.c s->ass_dialog_style = style; s 613 libavcodec/movtextenc.c mov_text_ass_style_set(s, style); s 618 libavcodec/movtextenc.c MovTextContext *s = priv; s 622 libavcodec/movtextenc.c style = s->ass_dialog_style; s 624 libavcodec/movtextenc.c style= ff_ass_style_get(s->ass_ctx, style_name); s 626 libavcodec/movtextenc.c mov_text_ass_style_set(s, style); s 652 libavcodec/movtextenc.c MovTextContext *s = priv; s 653 libavcodec/movtextenc.c av_bprint_append_data(&s->buffer, text, len); s 655 libavcodec/movtextenc.c s->text_pos += utf8_len ? utf8_len : len; s 656 libavcodec/movtextenc.c s->byte_count += len; s 661 libavcodec/movtextenc.c MovTextContext *s = priv; s 662 libavcodec/movtextenc.c av_bprint_append_data(&s->buffer, "\n", 1); s 663 libavcodec/movtextenc.c s->text_pos += 1; s 664 libavcodec/movtextenc.c s->byte_count += 1; s 682 libavcodec/movtextenc.c MovTextContext *s = avctx->priv_data; s 687 libavcodec/movtextenc.c s->byte_count = 0; s 688 libavcodec/movtextenc.c s->text_pos = 0; s 689 libavcodec/movtextenc.c s->count = 0; s 690 libavcodec/movtextenc.c s->box_flags = 0; s 702 libavcodec/movtextenc.c dialog = ff_ass_split_dialog(s->ass_ctx, ass, 0, &num); s 704 libavcodec/movtextenc.c mov_text_dialog(s, dialog); s 705 libavcodec/movtextenc.c ff_ass_split_override_codes(&mov_text_callbacks, s, dialog->text); s 709 libavcodec/movtextenc.c dialog = ff_ass_split_dialog2(s->ass_ctx, ass); s 712 libavcodec/movtextenc.c mov_text_dialog(s, dialog); s 713 libavcodec/movtextenc.c ff_ass_split_override_codes(&mov_text_callbacks, s, dialog->text); s 720 libavcodec/movtextenc.c box_types[j].encode(s, box_types[j].type); s 724 libavcodec/movtextenc.c AV_WB16(buf, s->byte_count); s 727 libavcodec/movtextenc.c if (!av_bprint_is_complete(&s->buffer)) { s 732 libavcodec/movtextenc.c if (!s->buffer.len) { s 737 libavcodec/movtextenc.c if (s->buffer.len > bufsize - 3) { s 743 libavcodec/movtextenc.c memcpy(buf, s->buffer.str, s->buffer.len); s 744 libavcodec/movtextenc.c length = s->buffer.len + 2; s 747 libavcodec/movtextenc.c av_bprint_clear(&s->buffer); s 107 libavcodec/mpeg12.c av_cold void ff_mpeg12_common_init(MpegEncContext *s) s 110 libavcodec/mpeg12.c s->y_dc_scale_table = s 111 libavcodec/mpeg12.c s->c_dc_scale_table = ff_mpeg2_dc_scale_table[s->intra_dc_precision]; s 115 libavcodec/mpeg12.c void ff_mpeg1_clean_buffers(MpegEncContext *s) s 117 libavcodec/mpeg12.c s->last_dc[0] = 1 << (7 + s->intra_dc_precision); s 118 libavcodec/mpeg12.c s->last_dc[1] = s->last_dc[0]; s 119 libavcodec/mpeg12.c s->last_dc[2] = s->last_dc[0]; s 120 libavcodec/mpeg12.c memset(s->last_mv, 0, sizeof(s->last_mv)); s 178 libavcodec/mpeg12.c int ff_mpeg1_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size, AVCodecParserContext *s) s 229 libavcodec/mpeg12.c if (pc->frame_start_found == 0 && s && state == PICTURE_START_CODE) { s 230 libavcodec/mpeg12.c ff_fetch_timestamp(s, i - 3, 1, i > 3); s 30 libavcodec/mpeg12.h void ff_mpeg12_common_init(MpegEncContext *s); s 67 libavcodec/mpeg12.h void ff_mpeg1_clean_buffers(MpegEncContext *s); s 68 libavcodec/mpeg12.h int ff_mpeg1_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size, AVCodecParserContext *s); s 70 libavcodec/mpeg12.h void ff_mpeg1_encode_picture_header(MpegEncContext *s, int picture_number); s 71 libavcodec/mpeg12.h void ff_mpeg1_encode_mb(MpegEncContext *s, int16_t block[8][64], s 73 libavcodec/mpeg12.h void ff_mpeg1_encode_init(MpegEncContext *s); s 74 libavcodec/mpeg12.h void ff_mpeg1_encode_slice_header(MpegEncContext *s); s 102 libavcodec/mpeg12dec.c static int mpeg_decode_motion(MpegEncContext *s, int fcode, int pred) s 106 libavcodec/mpeg12dec.c code = get_vlc2(&s->gb, ff_mv_vlc.table, MV_VLC_BITS, 2); s 112 libavcodec/mpeg12dec.c sign = get_bits1(&s->gb); s 117 libavcodec/mpeg12dec.c val |= get_bits(&s->gb, shift); s 138 libavcodec/mpeg12dec.c static inline int mpeg1_decode_block_inter(MpegEncContext *s, s 143 libavcodec/mpeg12dec.c uint8_t *const scantable = s->intra_scantable.permutated; s 144 libavcodec/mpeg12dec.c const uint16_t *quant_matrix = s->inter_matrix; s 145 libavcodec/mpeg12dec.c const int qscale = s->qscale; s 148 libavcodec/mpeg12dec.c OPEN_READER(re, &s->gb); s 151 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 152 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) < 0) { s 155 libavcodec/mpeg12dec.c if (GET_CACHE(re, &s->gb) & 0x40000000) s 159 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 2); s 160 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) <= (int32_t) 0xBFFFFFFF) s 165 libavcodec/mpeg12dec.c GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], s 175 libavcodec/mpeg12dec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - s 176 libavcodec/mpeg12dec.c SHOW_SBITS(re, &s->gb, 1); s 177 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 1); s 180 libavcodec/mpeg12dec.c run = SHOW_UBITS(re, &s->gb, 6) + 1; s 181 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 6); s 182 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 183 libavcodec/mpeg12dec.c level = SHOW_SBITS(re, &s->gb, 8); s 184 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 8); s 186 libavcodec/mpeg12dec.c level = SHOW_UBITS(re, &s->gb, 8) - 256; s 187 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 8); s 189 libavcodec/mpeg12dec.c level = SHOW_UBITS(re, &s->gb, 8); s 190 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 8); s 208 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) <= (int32_t) 0xBFFFFFFF) s 210 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 213 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 2); s 214 libavcodec/mpeg12dec.c CLOSE_READER(re, &s->gb); s 217 libavcodec/mpeg12dec.c check_scantable_index(s, i); s 219 libavcodec/mpeg12dec.c s->block_last_index[n] = i; s 227 libavcodec/mpeg12dec.c static inline int mpeg1_fast_decode_block_inter(MpegEncContext *s, s 232 libavcodec/mpeg12dec.c uint8_t *const scantable = s->intra_scantable.permutated; s 233 libavcodec/mpeg12dec.c const int qscale = s->qscale; s 236 libavcodec/mpeg12dec.c OPEN_READER(re, &s->gb); s 239 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 240 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) < 0) { s 243 libavcodec/mpeg12dec.c if (GET_CACHE(re, &s->gb) & 0x40000000) s 247 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 2); s 248 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) <= (int32_t) 0xBFFFFFFF) s 254 libavcodec/mpeg12dec.c GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], s 264 libavcodec/mpeg12dec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - s 265 libavcodec/mpeg12dec.c SHOW_SBITS(re, &s->gb, 1); s 266 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 1); s 269 libavcodec/mpeg12dec.c run = SHOW_UBITS(re, &s->gb, 6) + 1; s 270 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 6); s 271 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 272 libavcodec/mpeg12dec.c level = SHOW_SBITS(re, &s->gb, 8); s 273 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 8); s 275 libavcodec/mpeg12dec.c level = SHOW_UBITS(re, &s->gb, 8) - 256; s 276 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 8); s 278 libavcodec/mpeg12dec.c level = SHOW_UBITS(re, &s->gb, 8); s 279 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 8); s 297 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) <= (int32_t) 0xBFFFFFFF) s 299 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 302 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 2); s 303 libavcodec/mpeg12dec.c CLOSE_READER(re, &s->gb); s 306 libavcodec/mpeg12dec.c check_scantable_index(s, i); s 308 libavcodec/mpeg12dec.c s->block_last_index[n] = i; s 312 libavcodec/mpeg12dec.c static inline int mpeg2_decode_block_non_intra(MpegEncContext *s, s 317 libavcodec/mpeg12dec.c uint8_t *const scantable = s->intra_scantable.permutated; s 319 libavcodec/mpeg12dec.c const int qscale = s->qscale; s 325 libavcodec/mpeg12dec.c OPEN_READER(re, &s->gb); s 328 libavcodec/mpeg12dec.c quant_matrix = s->inter_matrix; s 330 libavcodec/mpeg12dec.c quant_matrix = s->chroma_inter_matrix; s 333 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 334 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) < 0) { s 336 libavcodec/mpeg12dec.c if (GET_CACHE(re, &s->gb) & 0x40000000) s 341 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 2); s 342 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) <= (int32_t) 0xBFFFFFFF) s 348 libavcodec/mpeg12dec.c GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], s 357 libavcodec/mpeg12dec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - s 358 libavcodec/mpeg12dec.c SHOW_SBITS(re, &s->gb, 1); s 359 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 1); s 362 libavcodec/mpeg12dec.c run = SHOW_UBITS(re, &s->gb, 6) + 1; s 363 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 6); s 364 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 365 libavcodec/mpeg12dec.c level = SHOW_SBITS(re, &s->gb, 12); s 366 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 12); s 382 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) <= (int32_t) 0xBFFFFFFF) s 384 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 387 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 2); s 388 libavcodec/mpeg12dec.c CLOSE_READER(re, &s->gb); s 392 libavcodec/mpeg12dec.c check_scantable_index(s, i); s 394 libavcodec/mpeg12dec.c s->block_last_index[n] = i; s 402 libavcodec/mpeg12dec.c static inline int mpeg2_fast_decode_block_non_intra(MpegEncContext *s, s 407 libavcodec/mpeg12dec.c uint8_t *const scantable = s->intra_scantable.permutated; s 408 libavcodec/mpeg12dec.c const int qscale = s->qscale; s 409 libavcodec/mpeg12dec.c OPEN_READER(re, &s->gb); s 413 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 414 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) < 0) { s 416 libavcodec/mpeg12dec.c if (GET_CACHE(re, &s->gb) & 0x40000000) s 420 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 2); s 421 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) <= (int32_t) 0xBFFFFFFF) s 427 libavcodec/mpeg12dec.c GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], TEX_VLC_BITS, 2, 0); s 435 libavcodec/mpeg12dec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - s 436 libavcodec/mpeg12dec.c SHOW_SBITS(re, &s->gb, 1); s 437 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 1); s 440 libavcodec/mpeg12dec.c run = SHOW_UBITS(re, &s->gb, 6) + 1; s 441 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 6); s 442 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 443 libavcodec/mpeg12dec.c level = SHOW_SBITS(re, &s->gb, 12); s 444 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 12); s 459 libavcodec/mpeg12dec.c if (((int32_t) GET_CACHE(re, &s->gb)) <= (int32_t) 0xBFFFFFFF || i > 63) s 462 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 465 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 2); s 466 libavcodec/mpeg12dec.c CLOSE_READER(re, &s->gb); s 468 libavcodec/mpeg12dec.c check_scantable_index(s, i); s 470 libavcodec/mpeg12dec.c s->block_last_index[n] = i; s 474 libavcodec/mpeg12dec.c static inline int mpeg2_decode_block_intra(MpegEncContext *s, s 480 libavcodec/mpeg12dec.c uint8_t *const scantable = s->intra_scantable.permutated; s 482 libavcodec/mpeg12dec.c const int qscale = s->qscale; s 487 libavcodec/mpeg12dec.c quant_matrix = s->intra_matrix; s 490 libavcodec/mpeg12dec.c quant_matrix = s->chroma_intra_matrix; s 493 libavcodec/mpeg12dec.c diff = decode_dc(&s->gb, component); s 496 libavcodec/mpeg12dec.c dc = s->last_dc[component]; s 498 libavcodec/mpeg12dec.c s->last_dc[component] = dc; s 499 libavcodec/mpeg12dec.c block[0] = dc * (1 << (3 - s->intra_dc_precision)); s 500 libavcodec/mpeg12dec.c ff_tlog(s->avctx, "dc=%d\n", block[0]); s 503 libavcodec/mpeg12dec.c if (s->intra_vlc_format) s 509 libavcodec/mpeg12dec.c OPEN_READER(re, &s->gb); s 512 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 513 libavcodec/mpeg12dec.c GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], s 524 libavcodec/mpeg12dec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - s 525 libavcodec/mpeg12dec.c SHOW_SBITS(re, &s->gb, 1); s 526 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 1); s 529 libavcodec/mpeg12dec.c run = SHOW_UBITS(re, &s->gb, 6) + 1; s 530 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 6); s 531 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 532 libavcodec/mpeg12dec.c level = SHOW_SBITS(re, &s->gb, 12); s 533 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 12); s 549 libavcodec/mpeg12dec.c CLOSE_READER(re, &s->gb); s 553 libavcodec/mpeg12dec.c check_scantable_index(s, i); s 555 libavcodec/mpeg12dec.c s->block_last_index[n] = i; s 563 libavcodec/mpeg12dec.c static inline int mpeg2_fast_decode_block_intra(MpegEncContext *s, s 569 libavcodec/mpeg12dec.c uint8_t *const scantable = s->intra_scantable.permutated; s 571 libavcodec/mpeg12dec.c const int qscale = s->qscale; s 575 libavcodec/mpeg12dec.c quant_matrix = s->intra_matrix; s 578 libavcodec/mpeg12dec.c quant_matrix = s->chroma_intra_matrix; s 581 libavcodec/mpeg12dec.c diff = decode_dc(&s->gb, component); s 584 libavcodec/mpeg12dec.c dc = s->last_dc[component]; s 586 libavcodec/mpeg12dec.c s->last_dc[component] = dc; s 587 libavcodec/mpeg12dec.c block[0] = dc * (1 << (3 - s->intra_dc_precision)); s 589 libavcodec/mpeg12dec.c if (s->intra_vlc_format) s 595 libavcodec/mpeg12dec.c OPEN_READER(re, &s->gb); s 598 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 599 libavcodec/mpeg12dec.c GET_RL_VLC(level, run, re, &s->gb, rl->rl_vlc[0], s 608 libavcodec/mpeg12dec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - s 609 libavcodec/mpeg12dec.c SHOW_SBITS(re, &s->gb, 1); s 610 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 1); s 613 libavcodec/mpeg12dec.c run = SHOW_UBITS(re, &s->gb, 6) + 1; s 614 libavcodec/mpeg12dec.c LAST_SKIP_BITS(re, &s->gb, 6); s 615 libavcodec/mpeg12dec.c UPDATE_CACHE(re, &s->gb); s 616 libavcodec/mpeg12dec.c level = SHOW_SBITS(re, &s->gb, 12); s 617 libavcodec/mpeg12dec.c SKIP_BITS(re, &s->gb, 12); s 630 libavcodec/mpeg12dec.c CLOSE_READER(re, &s->gb); s 633 libavcodec/mpeg12dec.c check_scantable_index(s, i); s 635 libavcodec/mpeg12dec.c s->block_last_index[n] = i; s 642 libavcodec/mpeg12dec.c static inline int get_dmv(MpegEncContext *s) s 644 libavcodec/mpeg12dec.c if (get_bits1(&s->gb)) s 645 libavcodec/mpeg12dec.c return 1 - (get_bits1(&s->gb) << 1); s 656 libavcodec/mpeg12dec.c static int mpeg_decode_mb(MpegEncContext *s, int16_t block[12][64]) s 659 libavcodec/mpeg12dec.c const int mb_block_count = 4 + (1 << s->chroma_format); s 662 libavcodec/mpeg12dec.c ff_tlog(s->avctx, "decode_mb: x=%d y=%d\n", s->mb_x, s->mb_y); s 664 libavcodec/mpeg12dec.c av_assert2(s->mb_skipped == 0); s 666 libavcodec/mpeg12dec.c if (s->mb_skip_run-- != 0) { s 667 libavcodec/mpeg12dec.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 668 libavcodec/mpeg12dec.c s->mb_skipped = 1; s 669 libavcodec/mpeg12dec.c s->current_picture.mb_type[s->mb_x + s->mb_y * s->mb_stride] = s 674 libavcodec/mpeg12dec.c if (s->mb_x) s 675 libavcodec/mpeg12dec.c mb_type = s->current_picture.mb_type[s->mb_x + s->mb_y * s->mb_stride - 1]; s 678 libavcodec/mpeg12dec.c mb_type = s->current_picture.mb_type[s->mb_width + (s->mb_y - 1) * s->mb_stride - 1]; s 680 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "skip with previntra\n"); s 683 libavcodec/mpeg12dec.c s->current_picture.mb_type[s->mb_x + s->mb_y * s->mb_stride] = s 686 libavcodec/mpeg12dec.c if ((s->mv[0][0][0] | s->mv[0][0][1] | s->mv[1][0][0] | s->mv[1][0][1]) == 0) s 687 libavcodec/mpeg12dec.c s->mb_skipped = 1; s 693 libavcodec/mpeg12dec.c switch (s->pict_type) { s 696 libavcodec/mpeg12dec.c if (get_bits1(&s->gb) == 0) { s 697 libavcodec/mpeg12dec.c if (get_bits1(&s->gb) == 0) { s 698 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, s 700 libavcodec/mpeg12dec.c s->mb_x, s->mb_y); s 709 libavcodec/mpeg12dec.c mb_type = get_vlc2(&s->gb, ff_mb_ptype_vlc.table, MB_PTYPE_VLC_BITS, 1); s 711 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, s 712 libavcodec/mpeg12dec.c "Invalid mb type in P-frame at %d %d\n", s->mb_x, s->mb_y); s 718 libavcodec/mpeg12dec.c mb_type = get_vlc2(&s->gb, ff_mb_btype_vlc.table, MB_BTYPE_VLC_BITS, 1); s 720 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, s 721 libavcodec/mpeg12dec.c "Invalid mb type in B-frame at %d %d\n", s->mb_x, s->mb_y); s 727 libavcodec/mpeg12dec.c ff_tlog(s->avctx, "mb_type=%x\n", mb_type); s 730 libavcodec/mpeg12dec.c s->bdsp.clear_blocks(s->block[0]); s 732 libavcodec/mpeg12dec.c if (!s->chroma_y_shift) s 733 libavcodec/mpeg12dec.c s->bdsp.clear_blocks(s->block[6]); s 737 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME && s 738 libavcodec/mpeg12dec.c !s->frame_pred_frame_dct) s 739 libavcodec/mpeg12dec.c s->interlaced_dct = get_bits1(&s->gb); s 742 libavcodec/mpeg12dec.c s->qscale = mpeg_get_qscale(s); s 744 libavcodec/mpeg12dec.c if (s->concealment_motion_vectors) { s 746 libavcodec/mpeg12dec.c if (s->picture_structure != PICT_FRAME) s 747 libavcodec/mpeg12dec.c skip_bits1(&s->gb); /* field select */ s 749 libavcodec/mpeg12dec.c s->mv[0][0][0] = s 750 libavcodec/mpeg12dec.c s->last_mv[0][0][0] = s 751 libavcodec/mpeg12dec.c s->last_mv[0][1][0] = mpeg_decode_motion(s, s->mpeg_f_code[0][0], s 752 libavcodec/mpeg12dec.c s->last_mv[0][0][0]); s 753 libavcodec/mpeg12dec.c s->mv[0][0][1] = s 754 libavcodec/mpeg12dec.c s->last_mv[0][0][1] = s 755 libavcodec/mpeg12dec.c s->last_mv[0][1][1] = mpeg_decode_motion(s, s->mpeg_f_code[0][1], s 756 libavcodec/mpeg12dec.c s->last_mv[0][0][1]); s 758 libavcodec/mpeg12dec.c check_marker(s->avctx, &s->gb, "after concealment_motion_vectors"); s 761 libavcodec/mpeg12dec.c memset(s->last_mv, 0, sizeof(s->last_mv)); s 763 libavcodec/mpeg12dec.c s->mb_intra = 1; s 765 libavcodec/mpeg12dec.c if ((CONFIG_MPEG1_XVMC_HWACCEL || CONFIG_MPEG2_XVMC_HWACCEL) && s->pack_pblocks) s 766 libavcodec/mpeg12dec.c ff_xvmc_pack_pblocks(s, -1); // inter are always full blocks s 768 libavcodec/mpeg12dec.c if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { s 769 libavcodec/mpeg12dec.c if (s->avctx->flags2 & AV_CODEC_FLAG2_FAST) { s 771 libavcodec/mpeg12dec.c mpeg2_fast_decode_block_intra(s, *s->pblocks[i], i); s 774 libavcodec/mpeg12dec.c if ((ret = mpeg2_decode_block_intra(s, *s->pblocks[i], i)) < 0) s 779 libavcodec/mpeg12dec.c ret = ff_mpeg1_decode_block_intra(&s->gb, s 780 libavcodec/mpeg12dec.c s->intra_matrix, s 781 libavcodec/mpeg12dec.c s->intra_scantable.permutated, s 782 libavcodec/mpeg12dec.c s->last_dc, *s->pblocks[i], s 783 libavcodec/mpeg12dec.c i, s->qscale); s 785 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", s 786 libavcodec/mpeg12dec.c s->mb_x, s->mb_y); s 790 libavcodec/mpeg12dec.c s->block_last_index[i] = ret; s 797 libavcodec/mpeg12dec.c s->mv_dir = MV_DIR_FORWARD; s 798 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME) { s 799 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME s 800 libavcodec/mpeg12dec.c && !s->frame_pred_frame_dct) s 801 libavcodec/mpeg12dec.c s->interlaced_dct = get_bits1(&s->gb); s 802 libavcodec/mpeg12dec.c s->mv_type = MV_TYPE_16X16; s 804 libavcodec/mpeg12dec.c s->mv_type = MV_TYPE_FIELD; s 806 libavcodec/mpeg12dec.c s->field_select[0][0] = s->picture_structure - 1; s 810 libavcodec/mpeg12dec.c s->qscale = mpeg_get_qscale(s); s 812 libavcodec/mpeg12dec.c s->last_mv[0][0][0] = 0; s 813 libavcodec/mpeg12dec.c s->last_mv[0][0][1] = 0; s 814 libavcodec/mpeg12dec.c s->last_mv[0][1][0] = 0; s 815 libavcodec/mpeg12dec.c s->last_mv[0][1][1] = 0; s 816 libavcodec/mpeg12dec.c s->mv[0][0][0] = 0; s 817 libavcodec/mpeg12dec.c s->mv[0][0][1] = 0; s 822 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME && s->frame_pred_frame_dct) { s 825 libavcodec/mpeg12dec.c motion_type = get_bits(&s->gb, 2); s 826 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME && HAS_CBP(mb_type)) s 827 libavcodec/mpeg12dec.c s->interlaced_dct = get_bits1(&s->gb); s 831 libavcodec/mpeg12dec.c s->qscale = mpeg_get_qscale(s); s 834 libavcodec/mpeg12dec.c s->mv_dir = (mb_type >> 13) & 3; s 835 libavcodec/mpeg12dec.c ff_tlog(s->avctx, "motion_type=%d\n", motion_type); s 838 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME) { s 840 libavcodec/mpeg12dec.c s->mv_type = MV_TYPE_16X16; s 844 libavcodec/mpeg12dec.c s->mv[i][0][0] = s 845 libavcodec/mpeg12dec.c s->last_mv[i][0][0] = s 846 libavcodec/mpeg12dec.c s->last_mv[i][1][0] = s 847 libavcodec/mpeg12dec.c mpeg_decode_motion(s, s->mpeg_f_code[i][0], s 848 libavcodec/mpeg12dec.c s->last_mv[i][0][0]); s 849 libavcodec/mpeg12dec.c s->mv[i][0][1] = s 850 libavcodec/mpeg12dec.c s->last_mv[i][0][1] = s 851 libavcodec/mpeg12dec.c s->last_mv[i][1][1] = s 852 libavcodec/mpeg12dec.c mpeg_decode_motion(s, s->mpeg_f_code[i][1], s 853 libavcodec/mpeg12dec.c s->last_mv[i][0][1]); s 855 libavcodec/mpeg12dec.c if (s->full_pel[i]) { s 856 libavcodec/mpeg12dec.c s->mv[i][0][0] *= 2; s 857 libavcodec/mpeg12dec.c s->mv[i][0][1] *= 2; s 863 libavcodec/mpeg12dec.c s->mv_type = MV_TYPE_16X8; s 868 libavcodec/mpeg12dec.c s->field_select[i][j] = get_bits1(&s->gb); s 870 libavcodec/mpeg12dec.c val = mpeg_decode_motion(s, s->mpeg_f_code[i][k], s 871 libavcodec/mpeg12dec.c s->last_mv[i][j][k]); s 872 libavcodec/mpeg12dec.c s->last_mv[i][j][k] = val; s 873 libavcodec/mpeg12dec.c s->mv[i][j][k] = val; s 881 libavcodec/mpeg12dec.c s->mv_type = MV_TYPE_FIELD; s 882 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME) { s 887 libavcodec/mpeg12dec.c s->field_select[i][j] = get_bits1(&s->gb); s 888 libavcodec/mpeg12dec.c val = mpeg_decode_motion(s, s->mpeg_f_code[i][0], s 889 libavcodec/mpeg12dec.c s->last_mv[i][j][0]); s 890 libavcodec/mpeg12dec.c s->last_mv[i][j][0] = val; s 891 libavcodec/mpeg12dec.c s->mv[i][j][0] = val; s 892 libavcodec/mpeg12dec.c ff_tlog(s->avctx, "fmx=%d\n", val); s 893 libavcodec/mpeg12dec.c val = mpeg_decode_motion(s, s->mpeg_f_code[i][1], s 894 libavcodec/mpeg12dec.c s->last_mv[i][j][1] >> 1); s 895 libavcodec/mpeg12dec.c s->last_mv[i][j][1] = 2 * val; s 896 libavcodec/mpeg12dec.c s->mv[i][j][1] = val; s 897 libavcodec/mpeg12dec.c ff_tlog(s->avctx, "fmy=%d\n", val); s 902 libavcodec/mpeg12dec.c av_assert0(!s->progressive_sequence); s 906 libavcodec/mpeg12dec.c s->field_select[i][0] = get_bits1(&s->gb); s 908 libavcodec/mpeg12dec.c val = mpeg_decode_motion(s, s->mpeg_f_code[i][k], s 909 libavcodec/mpeg12dec.c s->last_mv[i][0][k]); s 910 libavcodec/mpeg12dec.c s->last_mv[i][0][k] = val; s 911 libavcodec/mpeg12dec.c s->last_mv[i][1][k] = val; s 912 libavcodec/mpeg12dec.c s->mv[i][0][k] = val; s 919 libavcodec/mpeg12dec.c if (s->progressive_sequence){ s 920 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "MT_DMV in progressive_sequence\n"); s 923 libavcodec/mpeg12dec.c s->mv_type = MV_TYPE_DMV; s 927 libavcodec/mpeg12dec.c const int my_shift = s->picture_structure == PICT_FRAME; s 929 libavcodec/mpeg12dec.c mx = mpeg_decode_motion(s, s->mpeg_f_code[i][0], s 930 libavcodec/mpeg12dec.c s->last_mv[i][0][0]); s 931 libavcodec/mpeg12dec.c s->last_mv[i][0][0] = mx; s 932 libavcodec/mpeg12dec.c s->last_mv[i][1][0] = mx; s 933 libavcodec/mpeg12dec.c dmx = get_dmv(s); s 934 libavcodec/mpeg12dec.c my = mpeg_decode_motion(s, s->mpeg_f_code[i][1], s 935 libavcodec/mpeg12dec.c s->last_mv[i][0][1] >> my_shift); s 936 libavcodec/mpeg12dec.c dmy = get_dmv(s); s 939 libavcodec/mpeg12dec.c s->last_mv[i][0][1] = my * (1 << my_shift); s 940 libavcodec/mpeg12dec.c s->last_mv[i][1][1] = my * (1 << my_shift); s 942 libavcodec/mpeg12dec.c s->mv[i][0][0] = mx; s 943 libavcodec/mpeg12dec.c s->mv[i][0][1] = my; s 944 libavcodec/mpeg12dec.c s->mv[i][1][0] = mx; // not used s 945 libavcodec/mpeg12dec.c s->mv[i][1][1] = my; // not used s 947 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME) { s 951 libavcodec/mpeg12dec.c m = s->top_field_first ? 1 : 3; s 954 libavcodec/mpeg12dec.c s->mv[i][2][0] = ((mx * m + (mx > 0)) >> 1) + dmx; s 955 libavcodec/mpeg12dec.c s->mv[i][2][1] = ((my * m + (my > 0)) >> 1) + dmy - 1; s 957 libavcodec/mpeg12dec.c s->mv[i][3][0] = ((mx * m + (mx > 0)) >> 1) + dmx; s 958 libavcodec/mpeg12dec.c s->mv[i][3][1] = ((my * m + (my > 0)) >> 1) + dmy + 1; s 962 libavcodec/mpeg12dec.c s->mv[i][2][0] = ((mx + (mx > 0)) >> 1) + dmx; s 963 libavcodec/mpeg12dec.c s->mv[i][2][1] = ((my + (my > 0)) >> 1) + dmy; s 964 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_TOP_FIELD) s 965 libavcodec/mpeg12dec.c s->mv[i][2][1]--; s 967 libavcodec/mpeg12dec.c s->mv[i][2][1]++; s 973 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, s 974 libavcodec/mpeg12dec.c "00 motion_type at %d %d\n", s->mb_x, s->mb_y); s 979 libavcodec/mpeg12dec.c s->mb_intra = 0; s 981 libavcodec/mpeg12dec.c s->bdsp.clear_blocks(s->block[0]); s 983 libavcodec/mpeg12dec.c cbp = get_vlc2(&s->gb, ff_mb_pat_vlc.table, MB_PAT_VLC_BITS, 1); s 986 libavcodec/mpeg12dec.c cbp |= get_bits(&s->gb, mb_block_count - 6); s 987 libavcodec/mpeg12dec.c s->bdsp.clear_blocks(s->block[6]); s 990 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, s 991 libavcodec/mpeg12dec.c "invalid cbp %d at %d %d\n", cbp, s->mb_x, s->mb_y); s 996 libavcodec/mpeg12dec.c if ((CONFIG_MPEG1_XVMC_HWACCEL || CONFIG_MPEG2_XVMC_HWACCEL) && s->pack_pblocks) s 997 libavcodec/mpeg12dec.c ff_xvmc_pack_pblocks(s, cbp); s 999 libavcodec/mpeg12dec.c if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { s 1000 libavcodec/mpeg12dec.c if (s->avctx->flags2 & AV_CODEC_FLAG2_FAST) { s 1003 libavcodec/mpeg12dec.c mpeg2_fast_decode_block_non_intra(s, *s->pblocks[i], i); s 1005 libavcodec/mpeg12dec.c s->block_last_index[i] = -1; s 1013 libavcodec/mpeg12dec.c if ((ret = mpeg2_decode_block_non_intra(s, *s->pblocks[i], i)) < 0) s 1016 libavcodec/mpeg12dec.c s->block_last_index[i] = -1; s 1022 libavcodec/mpeg12dec.c if (s->avctx->flags2 & AV_CODEC_FLAG2_FAST) { s 1025 libavcodec/mpeg12dec.c mpeg1_fast_decode_block_inter(s, *s->pblocks[i], i); s 1027 libavcodec/mpeg12dec.c s->block_last_index[i] = -1; s 1033 libavcodec/mpeg12dec.c if ((ret = mpeg1_decode_block_inter(s, *s->pblocks[i], i)) < 0) s 1036 libavcodec/mpeg12dec.c s->block_last_index[i] = -1; s 1044 libavcodec/mpeg12dec.c s->block_last_index[i] = -1; s 1048 libavcodec/mpeg12dec.c s->current_picture.mb_type[s->mb_x + s->mb_y * s->mb_stride] = mb_type; s 1055 libavcodec/mpeg12dec.c Mpeg1Context *s = avctx->priv_data; s 1056 libavcodec/mpeg12dec.c MpegEncContext *s2 = &s->mpeg_enc_ctx; s 1065 libavcodec/mpeg12dec.c s->mpeg_enc_ctx.avctx = avctx; s 1070 libavcodec/mpeg12dec.c ff_mpeg12_common_init(&s->mpeg_enc_ctx); s 1074 libavcodec/mpeg12dec.c s->mpeg_enc_ctx_allocated = 0; s 1075 libavcodec/mpeg12dec.c s->mpeg_enc_ctx.picture_number = 0; s 1076 libavcodec/mpeg12dec.c s->repeat_field = 0; s 1077 libavcodec/mpeg12dec.c s->mpeg_enc_ctx.codec_id = avctx->codec->id; s 1087 libavcodec/mpeg12dec.c MpegEncContext *s = &ctx->mpeg_enc_ctx, *s1 = &ctx_from->mpeg_enc_ctx; s 1100 libavcodec/mpeg12dec.c memcpy(s + 1, s1 + 1, sizeof(Mpeg1Context) - sizeof(MpegEncContext)); s 1102 libavcodec/mpeg12dec.c if (!(s->pict_type == AV_PICTURE_TYPE_B || s->low_delay)) s 1103 libavcodec/mpeg12dec.c s->picture_number++; s 1175 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 1181 libavcodec/mpeg12dec.c if (s->chroma_format < 2) s 1185 libavcodec/mpeg12dec.c else if (s->chroma_format == 2) s 1202 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 1204 libavcodec/mpeg12dec.c s->pack_pblocks = 1; s 1213 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 1219 libavcodec/mpeg12dec.c AVRational aspect_inv = av_d2q(ff_mpeg1_aspect[s->aspect_ratio_info], 255); s 1223 libavcodec/mpeg12dec.c if (s->aspect_ratio_info > 1) { s 1225 libavcodec/mpeg12dec.c av_mul_q(av_div_q(ff_mpeg2_aspect[s->aspect_ratio_info], s 1228 libavcodec/mpeg12dec.c (AVRational) { s->width, s->height }); s 1237 libavcodec/mpeg12dec.c s->avctx->sample_aspect_ratio = s 1238 libavcodec/mpeg12dec.c av_div_q(ff_mpeg2_aspect[s->aspect_ratio_info], s 1239 libavcodec/mpeg12dec.c (AVRational) { s->width, s->height }); s 1241 libavcodec/mpeg12dec.c s->avctx->sample_aspect_ratio = s 1242 libavcodec/mpeg12dec.c av_div_q(ff_mpeg2_aspect[s->aspect_ratio_info], s 1249 libavcodec/mpeg12dec.c ff_mpeg2_aspect[s->aspect_ratio_info].num, s 1250 libavcodec/mpeg12dec.c ff_mpeg2_aspect[s->aspect_ratio_info].den); s 1251 libavcodec/mpeg12dec.c ff_dlog(avctx, "aspect B %d/%d\n", s->avctx->sample_aspect_ratio.num, s 1252 libavcodec/mpeg12dec.c s->avctx->sample_aspect_ratio.den); s 1255 libavcodec/mpeg12dec.c s->avctx->sample_aspect_ratio = s 1256 libavcodec/mpeg12dec.c ff_mpeg2_aspect[s->aspect_ratio_info]; s 1260 libavcodec/mpeg12dec.c if (av_image_check_sar(s->width, s->height, s 1269 libavcodec/mpeg12dec.c avctx->coded_width != s->width || s 1270 libavcodec/mpeg12dec.c avctx->coded_height != s->height || s 1271 libavcodec/mpeg12dec.c s1->save_width != s->width || s 1272 libavcodec/mpeg12dec.c s1->save_height != s->height || s 1273 libavcodec/mpeg12dec.c av_cmp_q(s1->save_aspect, s->avctx->sample_aspect_ratio) || s 1274 libavcodec/mpeg12dec.c (s1->save_progressive_seq != s->progressive_sequence && FFALIGN(s->height, 16) != FFALIGN(s->height, 32)) || s 1277 libavcodec/mpeg12dec.c ParseContext pc = s->parse_context; s 1278 libavcodec/mpeg12dec.c s->parse_context.buffer = 0; s 1279 libavcodec/mpeg12dec.c ff_mpv_common_end(s); s 1280 libavcodec/mpeg12dec.c s->parse_context = pc; s 1284 libavcodec/mpeg12dec.c ret = ff_set_dimensions(avctx, s->width, s->height); s 1288 libavcodec/mpeg12dec.c if (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO && s->bit_rate) { s 1289 libavcodec/mpeg12dec.c avctx->rc_max_rate = s->bit_rate; s 1290 libavcodec/mpeg12dec.c } else if (avctx->codec_id == AV_CODEC_ID_MPEG1VIDEO && s->bit_rate && s 1291 libavcodec/mpeg12dec.c (s->bit_rate != 0x3FFFF*400 || s->vbv_delay != 0xFFFF)) { s 1292 libavcodec/mpeg12dec.c avctx->bit_rate = s->bit_rate; s 1294 libavcodec/mpeg12dec.c s1->save_aspect = s->avctx->sample_aspect_ratio; s 1295 libavcodec/mpeg12dec.c s1->save_width = s->width; s 1296 libavcodec/mpeg12dec.c s1->save_height = s->height; s 1297 libavcodec/mpeg12dec.c s1->save_progressive_seq = s->progressive_sequence; s 1301 libavcodec/mpeg12dec.c avctx->has_b_frames = !s->low_delay; s 1305 libavcodec/mpeg12dec.c avctx->framerate = ff_mpeg12_frame_rate_tab[s->frame_rate_index]; s 1311 libavcodec/mpeg12dec.c av_reduce(&s->avctx->framerate.num, s 1312 libavcodec/mpeg12dec.c &s->avctx->framerate.den, s 1313 libavcodec/mpeg12dec.c ff_mpeg12_frame_rate_tab[s->frame_rate_index].num * s1->frame_rate_ext.num, s 1314 libavcodec/mpeg12dec.c ff_mpeg12_frame_rate_tab[s->frame_rate_index].den * s1->frame_rate_ext.den, s 1318 libavcodec/mpeg12dec.c switch (s->chroma_format) { s 1331 libavcodec/mpeg12dec.c memcpy(old_permutation, s->idsp.idct_permutation, 64 * sizeof(uint8_t)); s 1333 libavcodec/mpeg12dec.c ff_mpv_idct_init(s); s 1334 libavcodec/mpeg12dec.c if ((ret = ff_mpv_common_init(s)) < 0) s 1337 libavcodec/mpeg12dec.c quant_matrix_rebuild(s->intra_matrix, old_permutation, s->idsp.idct_permutation); s 1338 libavcodec/mpeg12dec.c quant_matrix_rebuild(s->inter_matrix, old_permutation, s->idsp.idct_permutation); s 1339 libavcodec/mpeg12dec.c quant_matrix_rebuild(s->chroma_intra_matrix, old_permutation, s->idsp.idct_permutation); s 1340 libavcodec/mpeg12dec.c quant_matrix_rebuild(s->chroma_inter_matrix, old_permutation, s->idsp.idct_permutation); s 1351 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 1354 libavcodec/mpeg12dec.c init_get_bits(&s->gb, buf, buf_size * 8); s 1356 libavcodec/mpeg12dec.c ref = get_bits(&s->gb, 10); /* temporal ref */ s 1357 libavcodec/mpeg12dec.c s->pict_type = get_bits(&s->gb, 3); s 1358 libavcodec/mpeg12dec.c if (s->pict_type == 0 || s->pict_type > 3) s 1361 libavcodec/mpeg12dec.c vbv_delay = get_bits(&s->gb, 16); s 1362 libavcodec/mpeg12dec.c s->vbv_delay = vbv_delay; s 1363 libavcodec/mpeg12dec.c if (s->pict_type == AV_PICTURE_TYPE_P || s 1364 libavcodec/mpeg12dec.c s->pict_type == AV_PICTURE_TYPE_B) { s 1365 libavcodec/mpeg12dec.c s->full_pel[0] = get_bits1(&s->gb); s 1366 libavcodec/mpeg12dec.c f_code = get_bits(&s->gb, 3); s 1370 libavcodec/mpeg12dec.c s->mpeg_f_code[0][0] = f_code; s 1371 libavcodec/mpeg12dec.c s->mpeg_f_code[0][1] = f_code; s 1373 libavcodec/mpeg12dec.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 1374 libavcodec/mpeg12dec.c s->full_pel[1] = get_bits1(&s->gb); s 1375 libavcodec/mpeg12dec.c f_code = get_bits(&s->gb, 3); s 1379 libavcodec/mpeg12dec.c s->mpeg_f_code[1][0] = f_code; s 1380 libavcodec/mpeg12dec.c s->mpeg_f_code[1][1] = f_code; s 1382 libavcodec/mpeg12dec.c s->current_picture.f->pict_type = s->pict_type; s 1383 libavcodec/mpeg12dec.c s->current_picture.f->key_frame = s->pict_type == AV_PICTURE_TYPE_I; s 1387 libavcodec/mpeg12dec.c "vbv_delay %d, ref %d type:%d\n", vbv_delay, ref, s->pict_type); s 1389 libavcodec/mpeg12dec.c s->y_dc_scale = 8; s 1390 libavcodec/mpeg12dec.c s->c_dc_scale = 8; s 1396 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 1401 libavcodec/mpeg12dec.c skip_bits(&s->gb, 1); /* profile and level esc*/ s 1402 libavcodec/mpeg12dec.c s->avctx->profile = get_bits(&s->gb, 3); s 1403 libavcodec/mpeg12dec.c s->avctx->level = get_bits(&s->gb, 4); s 1404 libavcodec/mpeg12dec.c s->progressive_sequence = get_bits1(&s->gb); /* progressive_sequence */ s 1405 libavcodec/mpeg12dec.c s->chroma_format = get_bits(&s->gb, 2); /* chroma_format 1=420, 2=422, 3=444 */ s 1407 libavcodec/mpeg12dec.c if (!s->chroma_format) { s 1408 libavcodec/mpeg12dec.c s->chroma_format = 1; s 1409 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_WARNING, "Chroma format invalid\n"); s 1412 libavcodec/mpeg12dec.c horiz_size_ext = get_bits(&s->gb, 2); s 1413 libavcodec/mpeg12dec.c vert_size_ext = get_bits(&s->gb, 2); s 1414 libavcodec/mpeg12dec.c s->width |= (horiz_size_ext << 12); s 1415 libavcodec/mpeg12dec.c s->height |= (vert_size_ext << 12); s 1416 libavcodec/mpeg12dec.c bit_rate_ext = get_bits(&s->gb, 12); /* XXX: handle it */ s 1417 libavcodec/mpeg12dec.c s->bit_rate += (bit_rate_ext << 18) * 400LL; s 1418 libavcodec/mpeg12dec.c check_marker(s->avctx, &s->gb, "after bit rate extension"); s 1419 libavcodec/mpeg12dec.c s1->rc_buffer_size += get_bits(&s->gb, 8) * 1024 * 16 << 10; s 1421 libavcodec/mpeg12dec.c s->low_delay = get_bits1(&s->gb); s 1422 libavcodec/mpeg12dec.c if (s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY) s 1423 libavcodec/mpeg12dec.c s->low_delay = 1; s 1425 libavcodec/mpeg12dec.c s1->frame_rate_ext.num = get_bits(&s->gb, 2) + 1; s 1426 libavcodec/mpeg12dec.c s1->frame_rate_ext.den = get_bits(&s->gb, 5) + 1; s 1428 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "sequence extension\n"); s 1429 libavcodec/mpeg12dec.c s->codec_id = s->avctx->codec_id = AV_CODEC_ID_MPEG2VIDEO; s 1431 libavcodec/mpeg12dec.c if (cpb_props = ff_add_cpb_side_data(s->avctx)) { s 1433 libavcodec/mpeg12dec.c if (s->bit_rate != 0x3FFFF*400) s 1434 libavcodec/mpeg12dec.c cpb_props->max_bitrate = s->bit_rate; s 1437 libavcodec/mpeg12dec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1438 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_DEBUG, s 1440 libavcodec/mpeg12dec.c s->avctx->profile, s->avctx->level, s->progressive_sequence, s->chroma_format, s 1441 libavcodec/mpeg12dec.c s1->rc_buffer_size, s->bit_rate); s 1446 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 1449 libavcodec/mpeg12dec.c skip_bits(&s->gb, 3); /* video format */ s 1450 libavcodec/mpeg12dec.c color_description = get_bits1(&s->gb); s 1452 libavcodec/mpeg12dec.c s->avctx->color_primaries = get_bits(&s->gb, 8); s 1453 libavcodec/mpeg12dec.c s->avctx->color_trc = get_bits(&s->gb, 8); s 1454 libavcodec/mpeg12dec.c s->avctx->colorspace = get_bits(&s->gb, 8); s 1456 libavcodec/mpeg12dec.c w = get_bits(&s->gb, 14); s 1457 libavcodec/mpeg12dec.c skip_bits(&s->gb, 1); // marker s 1458 libavcodec/mpeg12dec.c h = get_bits(&s->gb, 14); s 1464 libavcodec/mpeg12dec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1465 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_DEBUG, "sde w:%d, h:%d\n", w, h); s 1470 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 1474 libavcodec/mpeg12dec.c if (s->progressive_sequence) { s 1475 libavcodec/mpeg12dec.c if (s->repeat_first_field) { s 1477 libavcodec/mpeg12dec.c if (s->top_field_first) s 1481 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME) { s 1483 libavcodec/mpeg12dec.c if (s->repeat_first_field) s 1488 libavcodec/mpeg12dec.c s1->pan_scan.position[i][0] = get_sbits(&s->gb, 16); s 1489 libavcodec/mpeg12dec.c skip_bits(&s->gb, 1); // marker s 1490 libavcodec/mpeg12dec.c s1->pan_scan.position[i][1] = get_sbits(&s->gb, 16); s 1491 libavcodec/mpeg12dec.c skip_bits(&s->gb, 1); // marker s 1494 libavcodec/mpeg12dec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 1495 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_DEBUG, s 1502 libavcodec/mpeg12dec.c static int load_matrix(MpegEncContext *s, uint16_t matrix0[64], s 1508 libavcodec/mpeg12dec.c int j = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 1509 libavcodec/mpeg12dec.c int v = get_bits(&s->gb, 8); s 1511 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "matrix damaged\n"); s 1515 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_DEBUG, "intra matrix specifies invalid DC quantizer %d, ignoring\n", v); s 1525 libavcodec/mpeg12dec.c static void mpeg_decode_quant_matrix_extension(MpegEncContext *s) s 1527 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "matrix extension\n"); s 1529 libavcodec/mpeg12dec.c if (get_bits1(&s->gb)) s 1530 libavcodec/mpeg12dec.c load_matrix(s, s->chroma_intra_matrix, s->intra_matrix, 1); s 1531 libavcodec/mpeg12dec.c if (get_bits1(&s->gb)) s 1532 libavcodec/mpeg12dec.c load_matrix(s, s->chroma_inter_matrix, s->inter_matrix, 0); s 1533 libavcodec/mpeg12dec.c if (get_bits1(&s->gb)) s 1534 libavcodec/mpeg12dec.c load_matrix(s, s->chroma_intra_matrix, NULL, 1); s 1535 libavcodec/mpeg12dec.c if (get_bits1(&s->gb)) s 1536 libavcodec/mpeg12dec.c load_matrix(s, s->chroma_inter_matrix, NULL, 0); s 1541 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 1543 libavcodec/mpeg12dec.c s->full_pel[0] = s->full_pel[1] = 0; s 1544 libavcodec/mpeg12dec.c s->mpeg_f_code[0][0] = get_bits(&s->gb, 4); s 1545 libavcodec/mpeg12dec.c s->mpeg_f_code[0][1] = get_bits(&s->gb, 4); s 1546 libavcodec/mpeg12dec.c s->mpeg_f_code[1][0] = get_bits(&s->gb, 4); s 1547 libavcodec/mpeg12dec.c s->mpeg_f_code[1][1] = get_bits(&s->gb, 4); s 1548 libavcodec/mpeg12dec.c if (!s->pict_type && s1->mpeg_enc_ctx_allocated) { s 1549 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, s 1551 libavcodec/mpeg12dec.c if (s->mpeg_f_code[1][0] == 15 && s->mpeg_f_code[1][1] == 15) { s 1552 libavcodec/mpeg12dec.c if (s->mpeg_f_code[0][0] == 15 && s->mpeg_f_code[0][1] == 15) s 1553 libavcodec/mpeg12dec.c s->pict_type = AV_PICTURE_TYPE_I; s 1555 libavcodec/mpeg12dec.c s->pict_type = AV_PICTURE_TYPE_P; s 1557 libavcodec/mpeg12dec.c s->pict_type = AV_PICTURE_TYPE_B; s 1558 libavcodec/mpeg12dec.c s->current_picture.f->pict_type = s->pict_type; s 1559 libavcodec/mpeg12dec.c s->current_picture.f->key_frame = s->pict_type == AV_PICTURE_TYPE_I; s 1561 libavcodec/mpeg12dec.c s->mpeg_f_code[0][0] += !s->mpeg_f_code[0][0]; s 1562 libavcodec/mpeg12dec.c s->mpeg_f_code[0][1] += !s->mpeg_f_code[0][1]; s 1563 libavcodec/mpeg12dec.c s->mpeg_f_code[1][0] += !s->mpeg_f_code[1][0]; s 1564 libavcodec/mpeg12dec.c s->mpeg_f_code[1][1] += !s->mpeg_f_code[1][1]; s 1566 libavcodec/mpeg12dec.c s->intra_dc_precision = get_bits(&s->gb, 2); s 1567 libavcodec/mpeg12dec.c s->picture_structure = get_bits(&s->gb, 2); s 1568 libavcodec/mpeg12dec.c s->top_field_first = get_bits1(&s->gb); s 1569 libavcodec/mpeg12dec.c s->frame_pred_frame_dct = get_bits1(&s->gb); s 1570 libavcodec/mpeg12dec.c s->concealment_motion_vectors = get_bits1(&s->gb); s 1571 libavcodec/mpeg12dec.c s->q_scale_type = get_bits1(&s->gb); s 1572 libavcodec/mpeg12dec.c s->intra_vlc_format = get_bits1(&s->gb); s 1573 libavcodec/mpeg12dec.c s->alternate_scan = get_bits1(&s->gb); s 1574 libavcodec/mpeg12dec.c s->repeat_first_field = get_bits1(&s->gb); s 1575 libavcodec/mpeg12dec.c s->chroma_420_type = get_bits1(&s->gb); s 1576 libavcodec/mpeg12dec.c s->progressive_frame = get_bits1(&s->gb); s 1578 libavcodec/mpeg12dec.c if (s->alternate_scan) { s 1579 libavcodec/mpeg12dec.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_alternate_vertical_scan); s 1580 libavcodec/mpeg12dec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_alternate_vertical_scan); s 1582 libavcodec/mpeg12dec.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_zigzag_direct); s 1583 libavcodec/mpeg12dec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_zigzag_direct); s 1587 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "intra_dc_precision=%d\n", s->intra_dc_precision); s 1588 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "picture_structure=%d\n", s->picture_structure); s 1589 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "top field first=%d\n", s->top_field_first); s 1590 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "repeat first field=%d\n", s->repeat_first_field); s 1591 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "conceal=%d\n", s->concealment_motion_vectors); s 1592 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "intra_vlc_format=%d\n", s->intra_vlc_format); s 1593 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "alternate_scan=%d\n", s->alternate_scan); s 1594 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "frame_pred_frame_dct=%d\n", s->frame_pred_frame_dct); s 1595 libavcodec/mpeg12dec.c ff_dlog(s->avctx, "progressive_frame=%d\n", s->progressive_frame); s 1598 libavcodec/mpeg12dec.c static int mpeg_field_start(MpegEncContext *s, const uint8_t *buf, int buf_size) s 1600 libavcodec/mpeg12dec.c AVCodecContext *avctx = s->avctx; s 1601 libavcodec/mpeg12dec.c Mpeg1Context *s1 = (Mpeg1Context *) s; s 1605 libavcodec/mpeg12dec.c if (s->mb_width * s->mb_height * 11LL / (33 * 2 * 8) > buf_size) s 1610 libavcodec/mpeg12dec.c if (s->first_field || s->picture_structure == PICT_FRAME) { s 1613 libavcodec/mpeg12dec.c if ((ret = ff_mpv_frame_start(s, avctx)) < 0) s 1616 libavcodec/mpeg12dec.c ff_mpeg_er_frame_start(s); s 1619 libavcodec/mpeg12dec.c s->current_picture_ptr->f->repeat_pict = 0; s 1620 libavcodec/mpeg12dec.c if (s->repeat_first_field) { s 1621 libavcodec/mpeg12dec.c if (s->progressive_sequence) { s 1622 libavcodec/mpeg12dec.c if (s->top_field_first) s 1623 libavcodec/mpeg12dec.c s->current_picture_ptr->f->repeat_pict = 4; s 1625 libavcodec/mpeg12dec.c s->current_picture_ptr->f->repeat_pict = 2; s 1626 libavcodec/mpeg12dec.c } else if (s->progressive_frame) { s 1627 libavcodec/mpeg12dec.c s->current_picture_ptr->f->repeat_pict = 1; s 1631 libavcodec/mpeg12dec.c pan_scan = av_frame_new_side_data(s->current_picture_ptr->f, s 1640 libavcodec/mpeg12dec.c s->current_picture_ptr->f, AV_FRAME_DATA_A53_CC, s 1648 libavcodec/mpeg12dec.c AVStereo3D *stereo = av_stereo3d_create_side_data(s->current_picture_ptr->f); s 1658 libavcodec/mpeg12dec.c av_frame_new_side_data(s->current_picture_ptr->f, s 1672 libavcodec/mpeg12dec.c if (!s->current_picture_ptr) { s 1673 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "first field missing\n"); s 1677 libavcodec/mpeg12dec.c if (s->avctx->hwaccel) { s 1678 libavcodec/mpeg12dec.c if ((ret = s->avctx->hwaccel->end_frame(s->avctx)) < 0) { s 1686 libavcodec/mpeg12dec.c s->current_picture.f->data[i] = s->current_picture_ptr->f->data[i]; s 1687 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_BOTTOM_FIELD) s 1688 libavcodec/mpeg12dec.c s->current_picture.f->data[i] += s 1689 libavcodec/mpeg12dec.c s->current_picture_ptr->f->linesize[i]; s 1710 libavcodec/mpeg12dec.c static int mpeg_decode_slice(MpegEncContext *s, int mb_y, s 1713 libavcodec/mpeg12dec.c AVCodecContext *avctx = s->avctx; s 1714 libavcodec/mpeg12dec.c const int lowres = s->avctx->lowres; s 1715 libavcodec/mpeg12dec.c const int field_pic = s->picture_structure != PICT_FRAME; s 1718 libavcodec/mpeg12dec.c s->resync_mb_x = s 1719 libavcodec/mpeg12dec.c s->resync_mb_y = -1; s 1721 libavcodec/mpeg12dec.c av_assert0(mb_y < s->mb_height); s 1723 libavcodec/mpeg12dec.c init_get_bits(&s->gb, *buf, buf_size * 8); s 1724 libavcodec/mpeg12dec.c if (s->codec_id != AV_CODEC_ID_MPEG1VIDEO && s->mb_height > 2800/16) s 1725 libavcodec/mpeg12dec.c skip_bits(&s->gb, 3); s 1727 libavcodec/mpeg12dec.c ff_mpeg1_clean_buffers(s); s 1728 libavcodec/mpeg12dec.c s->interlaced_dct = 0; s 1730 libavcodec/mpeg12dec.c s->qscale = mpeg_get_qscale(s); s 1732 libavcodec/mpeg12dec.c if (s->qscale == 0) { s 1733 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "qscale == 0\n"); s 1738 libavcodec/mpeg12dec.c if (skip_1stop_8data_bits(&s->gb) < 0) s 1741 libavcodec/mpeg12dec.c s->mb_x = 0; s 1743 libavcodec/mpeg12dec.c if (mb_y == 0 && s->codec_tag == AV_RL32("SLIF")) { s 1744 libavcodec/mpeg12dec.c skip_bits1(&s->gb); s 1746 libavcodec/mpeg12dec.c while (get_bits_left(&s->gb) > 0) { s 1747 libavcodec/mpeg12dec.c int code = get_vlc2(&s->gb, ff_mbincr_vlc.table, s 1750 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "first mb_incr damaged\n"); s 1755 libavcodec/mpeg12dec.c s->mb_x += 33; s 1758 libavcodec/mpeg12dec.c s->mb_x += code; s 1764 libavcodec/mpeg12dec.c if (s->mb_x >= (unsigned) s->mb_width) { s 1765 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "initial skip overflow\n"); s 1775 libavcodec/mpeg12dec.c s->mb_y = mb_y; s 1782 libavcodec/mpeg12dec.c s->resync_mb_x = s->mb_x; s 1783 libavcodec/mpeg12dec.c s->resync_mb_y = s->mb_y = mb_y; s 1784 libavcodec/mpeg12dec.c s->mb_skip_run = 0; s 1785 libavcodec/mpeg12dec.c ff_init_block_index(s); s 1787 libavcodec/mpeg12dec.c if (s->mb_y == 0 && s->mb_x == 0 && (s->first_field || s->picture_structure == PICT_FRAME)) { s 1788 libavcodec/mpeg12dec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) { s 1789 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_DEBUG, s 1791 libavcodec/mpeg12dec.c s->qscale, s 1792 libavcodec/mpeg12dec.c s->mpeg_f_code[0][0], s->mpeg_f_code[0][1], s 1793 libavcodec/mpeg12dec.c s->mpeg_f_code[1][0], s->mpeg_f_code[1][1], s 1794 libavcodec/mpeg12dec.c s->pict_type == AV_PICTURE_TYPE_I ? "I" : s 1795 libavcodec/mpeg12dec.c (s->pict_type == AV_PICTURE_TYPE_P ? "P" : s 1796 libavcodec/mpeg12dec.c (s->pict_type == AV_PICTURE_TYPE_B ? "B" : "S")), s 1797 libavcodec/mpeg12dec.c s->progressive_sequence ? "ps" : "", s 1798 libavcodec/mpeg12dec.c s->progressive_frame ? "pf" : "", s 1799 libavcodec/mpeg12dec.c s->alternate_scan ? "alt" : "", s 1800 libavcodec/mpeg12dec.c s->top_field_first ? "top" : "", s 1801 libavcodec/mpeg12dec.c s->intra_dc_precision, s->picture_structure, s 1802 libavcodec/mpeg12dec.c s->frame_pred_frame_dct, s->concealment_motion_vectors, s 1803 libavcodec/mpeg12dec.c s->q_scale_type, s->intra_vlc_format, s 1804 libavcodec/mpeg12dec.c s->repeat_first_field, s->chroma_420_type ? "420" : ""); s 1810 libavcodec/mpeg12dec.c if ((CONFIG_MPEG1_XVMC_HWACCEL || CONFIG_MPEG2_XVMC_HWACCEL) && s->pack_pblocks) s 1811 libavcodec/mpeg12dec.c ff_xvmc_init_block(s); // set s->block s 1813 libavcodec/mpeg12dec.c if ((ret = mpeg_decode_mb(s, s->block)) < 0) s 1817 libavcodec/mpeg12dec.c if (s->current_picture.motion_val[0] && !s->encoding) { s 1818 libavcodec/mpeg12dec.c const int wrap = s->b8_stride; s 1819 libavcodec/mpeg12dec.c int xy = s->mb_x * 2 + s->mb_y * 2 * wrap; s 1820 libavcodec/mpeg12dec.c int b8_xy = 4 * (s->mb_x + s->mb_y * s->mb_stride); s 1825 libavcodec/mpeg12dec.c if (s->mb_intra || s 1826 libavcodec/mpeg12dec.c (dir == 1 && s->pict_type != AV_PICTURE_TYPE_B)) { s 1828 libavcodec/mpeg12dec.c } else if (s->mv_type == MV_TYPE_16X16 || s 1829 libavcodec/mpeg12dec.c (s->mv_type == MV_TYPE_FIELD && field_pic)) { s 1830 libavcodec/mpeg12dec.c motion_x = s->mv[dir][0][0]; s 1831 libavcodec/mpeg12dec.c motion_y = s->mv[dir][0][1]; s 1833 libavcodec/mpeg12dec.c motion_x = s->mv[dir][i][0]; s 1834 libavcodec/mpeg12dec.c motion_y = s->mv[dir][i][1]; s 1837 libavcodec/mpeg12dec.c s->current_picture.motion_val[dir][xy][0] = motion_x; s 1838 libavcodec/mpeg12dec.c s->current_picture.motion_val[dir][xy][1] = motion_y; s 1839 libavcodec/mpeg12dec.c s->current_picture.motion_val[dir][xy + 1][0] = motion_x; s 1840 libavcodec/mpeg12dec.c s->current_picture.motion_val[dir][xy + 1][1] = motion_y; s 1841 libavcodec/mpeg12dec.c s->current_picture.ref_index [dir][b8_xy] = s 1842 libavcodec/mpeg12dec.c s->current_picture.ref_index [dir][b8_xy + 1] = s->field_select[dir][i]; s 1843 libavcodec/mpeg12dec.c av_assert2(s->field_select[dir][i] == 0 || s 1844 libavcodec/mpeg12dec.c s->field_select[dir][i] == 1); s 1851 libavcodec/mpeg12dec.c s->dest[0] += 16 >> lowres; s 1852 libavcodec/mpeg12dec.c s->dest[1] +=(16 >> lowres) >> s->chroma_x_shift; s 1853 libavcodec/mpeg12dec.c s->dest[2] +=(16 >> lowres) >> s->chroma_x_shift; s 1855 libavcodec/mpeg12dec.c ff_mpv_reconstruct_mb(s, s->block); s 1857 libavcodec/mpeg12dec.c if (++s->mb_x >= s->mb_width) { s 1858 libavcodec/mpeg12dec.c const int mb_size = 16 >> s->avctx->lowres; s 1861 libavcodec/mpeg12dec.c ff_mpeg_draw_horiz_band(s, mb_size * (s->mb_y >> field_pic), mb_size); s 1862 libavcodec/mpeg12dec.c ff_mpv_report_decode_progress(s); s 1864 libavcodec/mpeg12dec.c s->mb_x = 0; s 1865 libavcodec/mpeg12dec.c s->mb_y += 1 << field_pic; s 1867 libavcodec/mpeg12dec.c if (s->mb_y >= s->mb_height) { s 1868 libavcodec/mpeg12dec.c int left = get_bits_left(&s->gb); s 1869 libavcodec/mpeg12dec.c int is_d10 = s->chroma_format == 2 && s 1870 libavcodec/mpeg12dec.c s->pict_type == AV_PICTURE_TYPE_I && s 1872 libavcodec/mpeg12dec.c s->intra_dc_precision == 2 && s 1873 libavcodec/mpeg12dec.c s->q_scale_type == 1 && s->alternate_scan == 0 && s 1874 libavcodec/mpeg12dec.c s->progressive_frame == 0 s 1878 libavcodec/mpeg12dec.c GetBitContext gb = s->gb; s 1891 libavcodec/mpeg12dec.c (left && show_bits(&s->gb, FFMIN(left, 23)) && !is_d10) || s 1894 libavcodec/mpeg12dec.c left, left>0 ? show_bits(&s->gb, FFMIN(left, 23)) : 0, s->mb_x, s->mb_y); s 1903 libavcodec/mpeg12dec.c left = get_bits_left(&s->gb); s 1904 libavcodec/mpeg12dec.c if (s->mb_y >= ((s->height + 15) >> 4) && s 1905 libavcodec/mpeg12dec.c !s->progressive_sequence && s 1908 libavcodec/mpeg12dec.c s->mb_skip_run == -1 && s 1909 libavcodec/mpeg12dec.c (!left || show_bits(&s->gb, left) == 0)) s 1912 libavcodec/mpeg12dec.c ff_init_block_index(s); s 1916 libavcodec/mpeg12dec.c if (s->mb_skip_run == -1) { s 1918 libavcodec/mpeg12dec.c s->mb_skip_run = 0; s 1920 libavcodec/mpeg12dec.c int code = get_vlc2(&s->gb, ff_mbincr_vlc.table, s 1923 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "mb incr damaged\n"); s 1928 libavcodec/mpeg12dec.c s->mb_skip_run += 33; s 1930 libavcodec/mpeg12dec.c if (s->mb_skip_run != 0 || show_bits(&s->gb, 15) != 0) { s 1931 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "slice mismatch\n"); s 1938 libavcodec/mpeg12dec.c s->mb_skip_run += code; s 1942 libavcodec/mpeg12dec.c if (s->mb_skip_run) { s 1944 libavcodec/mpeg12dec.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 1945 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, s 1946 libavcodec/mpeg12dec.c "skipped MB in I-frame at %d %d\n", s->mb_x, s->mb_y); s 1951 libavcodec/mpeg12dec.c s->mb_intra = 0; s 1953 libavcodec/mpeg12dec.c s->block_last_index[i] = -1; s 1954 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_FRAME) s 1955 libavcodec/mpeg12dec.c s->mv_type = MV_TYPE_16X16; s 1957 libavcodec/mpeg12dec.c s->mv_type = MV_TYPE_FIELD; s 1958 libavcodec/mpeg12dec.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 1960 libavcodec/mpeg12dec.c s->mv_dir = MV_DIR_FORWARD; s 1961 libavcodec/mpeg12dec.c s->mv[0][0][0] = s->mv[0][0][1] = 0; s 1962 libavcodec/mpeg12dec.c s->last_mv[0][0][0] = s->last_mv[0][0][1] = 0; s 1963 libavcodec/mpeg12dec.c s->last_mv[0][1][0] = s->last_mv[0][1][1] = 0; s 1964 libavcodec/mpeg12dec.c s->field_select[0][0] = (s->picture_structure - 1) & 1; s 1967 libavcodec/mpeg12dec.c s->mv[0][0][0] = s->last_mv[0][0][0]; s 1968 libavcodec/mpeg12dec.c s->mv[0][0][1] = s->last_mv[0][0][1]; s 1969 libavcodec/mpeg12dec.c s->mv[1][0][0] = s->last_mv[1][0][0]; s 1970 libavcodec/mpeg12dec.c s->mv[1][0][1] = s->last_mv[1][0][1]; s 1971 libavcodec/mpeg12dec.c s->field_select[0][0] = (s->picture_structure - 1) & 1; s 1972 libavcodec/mpeg12dec.c s->field_select[1][0] = (s->picture_structure - 1) & 1; s 1978 libavcodec/mpeg12dec.c if (get_bits_left(&s->gb) < 0) { s 1979 libavcodec/mpeg12dec.c av_log(s, AV_LOG_ERROR, "overread %d\n", -get_bits_left(&s->gb)); s 1982 libavcodec/mpeg12dec.c *buf += (get_bits_count(&s->gb) - 1) / 8; s 1983 libavcodec/mpeg12dec.c ff_dlog(s, "Slice start:%d %d end:%d %d\n", s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y); s 1989 libavcodec/mpeg12dec.c MpegEncContext *s = *(void **) arg; s 1990 libavcodec/mpeg12dec.c const uint8_t *buf = s->gb.buffer; s 1991 libavcodec/mpeg12dec.c int mb_y = s->start_mb_y; s 1992 libavcodec/mpeg12dec.c const int field_pic = s->picture_structure != PICT_FRAME; s 1994 libavcodec/mpeg12dec.c s->er.error_count = (3 * (s->end_mb_y - s->start_mb_y) * s->mb_width) >> field_pic; s 2000 libavcodec/mpeg12dec.c ret = mpeg_decode_slice(s, mb_y, &buf, s->gb.buffer_end - buf); s 2003 libavcodec/mpeg12dec.c ret, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, s 2004 libavcodec/mpeg12dec.c s->start_mb_y, s->end_mb_y, s->er.error_count); s 2008 libavcodec/mpeg12dec.c if (s->resync_mb_x >= 0 && s->resync_mb_y >= 0) s 2009 libavcodec/mpeg12dec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 2010 libavcodec/mpeg12dec.c s->mb_x, s->mb_y, s 2013 libavcodec/mpeg12dec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 2014 libavcodec/mpeg12dec.c s->mb_x - 1, s->mb_y, s 2018 libavcodec/mpeg12dec.c if (s->mb_y == s->end_mb_y) s 2022 libavcodec/mpeg12dec.c buf = avpriv_find_start_code(buf, s->gb.buffer_end, &start_code); s 2026 libavcodec/mpeg12dec.c if (s->codec_id != AV_CODEC_ID_MPEG1VIDEO && s->mb_height > 2800/16) s 2029 libavcodec/mpeg12dec.c if (s->picture_structure == PICT_BOTTOM_FIELD) s 2031 libavcodec/mpeg12dec.c if (mb_y >= s->end_mb_y) s 2043 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 2045 libavcodec/mpeg12dec.c if (!s1->mpeg_enc_ctx_allocated || !s->current_picture_ptr) s 2048 libavcodec/mpeg12dec.c if (s->avctx->hwaccel) { s 2049 libavcodec/mpeg12dec.c int ret = s->avctx->hwaccel->end_frame(s->avctx); s 2058 libavcodec/mpeg12dec.c if (/* s->mb_y << field_pic == s->mb_height && */ !s->first_field && !s1->first_slice) { s 2061 libavcodec/mpeg12dec.c ff_er_frame_end(&s->er); s 2063 libavcodec/mpeg12dec.c ff_mpv_frame_end(s); s 2065 libavcodec/mpeg12dec.c if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) { s 2066 libavcodec/mpeg12dec.c int ret = av_frame_ref(pict, s->current_picture_ptr->f); s 2069 libavcodec/mpeg12dec.c ff_print_debug_info(s, s->current_picture_ptr, pict); s 2070 libavcodec/mpeg12dec.c ff_mpv_export_qp_table(s, pict, s->current_picture_ptr, FF_QSCALE_TYPE_MPEG2); s 2073 libavcodec/mpeg12dec.c s->picture_number++; s 2076 libavcodec/mpeg12dec.c if (s->last_picture_ptr) { s 2077 libavcodec/mpeg12dec.c int ret = av_frame_ref(pict, s->last_picture_ptr->f); s 2080 libavcodec/mpeg12dec.c ff_print_debug_info(s, s->last_picture_ptr, pict); s 2081 libavcodec/mpeg12dec.c ff_mpv_export_qp_table(s, pict, s->last_picture_ptr, FF_QSCALE_TYPE_MPEG2); s 2095 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 2099 libavcodec/mpeg12dec.c init_get_bits(&s->gb, buf, buf_size * 8); s 2101 libavcodec/mpeg12dec.c width = get_bits(&s->gb, 12); s 2102 libavcodec/mpeg12dec.c height = get_bits(&s->gb, 12); s 2109 libavcodec/mpeg12dec.c s->aspect_ratio_info = get_bits(&s->gb, 4); s 2110 libavcodec/mpeg12dec.c if (s->aspect_ratio_info == 0) { s 2115 libavcodec/mpeg12dec.c s->frame_rate_index = get_bits(&s->gb, 4); s 2116 libavcodec/mpeg12dec.c if (s->frame_rate_index == 0 || s->frame_rate_index > 13) { s 2118 libavcodec/mpeg12dec.c "frame_rate_index %d is invalid\n", s->frame_rate_index); s 2119 libavcodec/mpeg12dec.c s->frame_rate_index = 1; s 2121 libavcodec/mpeg12dec.c s->bit_rate = get_bits(&s->gb, 18) * 400LL; s 2122 libavcodec/mpeg12dec.c if (check_marker(s->avctx, &s->gb, "in sequence header") == 0) { s 2126 libavcodec/mpeg12dec.c s1->rc_buffer_size = get_bits(&s->gb, 10) * 1024 * 16; s 2127 libavcodec/mpeg12dec.c skip_bits(&s->gb, 1); s 2130 libavcodec/mpeg12dec.c if (get_bits1(&s->gb)) { s 2131 libavcodec/mpeg12dec.c load_matrix(s, s->chroma_intra_matrix, s->intra_matrix, 1); s 2134 libavcodec/mpeg12dec.c j = s->idsp.idct_permutation[i]; s 2136 libavcodec/mpeg12dec.c s->intra_matrix[j] = v; s 2137 libavcodec/mpeg12dec.c s->chroma_intra_matrix[j] = v; s 2140 libavcodec/mpeg12dec.c if (get_bits1(&s->gb)) { s 2141 libavcodec/mpeg12dec.c load_matrix(s, s->chroma_inter_matrix, s->inter_matrix, 0); s 2144 libavcodec/mpeg12dec.c int j = s->idsp.idct_permutation[i]; s 2146 libavcodec/mpeg12dec.c s->inter_matrix[j] = v; s 2147 libavcodec/mpeg12dec.c s->chroma_inter_matrix[j] = v; s 2151 libavcodec/mpeg12dec.c if (show_bits(&s->gb, 23) != 0) { s 2152 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_ERROR, "sequence header damaged\n"); s 2156 libavcodec/mpeg12dec.c s->width = width; s 2157 libavcodec/mpeg12dec.c s->height = height; s 2160 libavcodec/mpeg12dec.c s->progressive_sequence = 1; s 2161 libavcodec/mpeg12dec.c s->progressive_frame = 1; s 2162 libavcodec/mpeg12dec.c s->picture_structure = PICT_FRAME; s 2163 libavcodec/mpeg12dec.c s->first_field = 0; s 2164 libavcodec/mpeg12dec.c s->frame_pred_frame_dct = 1; s 2165 libavcodec/mpeg12dec.c s->chroma_format = 1; s 2166 libavcodec/mpeg12dec.c s->codec_id = s 2167 libavcodec/mpeg12dec.c s->avctx->codec_id = AV_CODEC_ID_MPEG1VIDEO; s 2168 libavcodec/mpeg12dec.c s->out_format = FMT_MPEG1; s 2169 libavcodec/mpeg12dec.c s->swap_uv = 0; // AFAIK VCR2 does not have SEQ_HEADER s 2170 libavcodec/mpeg12dec.c if (s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY) s 2171 libavcodec/mpeg12dec.c s->low_delay = 1; s 2173 libavcodec/mpeg12dec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 2174 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_DEBUG, "vbv buffer: %d, bitrate:%"PRId64", aspect_ratio_info: %d \n", s 2175 libavcodec/mpeg12dec.c s1->rc_buffer_size, s->bit_rate, s->aspect_ratio_info); s 2183 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 2187 libavcodec/mpeg12dec.c s->out_format = FMT_MPEG1; s 2189 libavcodec/mpeg12dec.c ff_mpv_common_end(s); s 2192 libavcodec/mpeg12dec.c s->width = avctx->coded_width; s 2193 libavcodec/mpeg12dec.c s->height = avctx->coded_height; s 2195 libavcodec/mpeg12dec.c s->low_delay = 1; s 2200 libavcodec/mpeg12dec.c ff_mpv_idct_init(s); s 2201 libavcodec/mpeg12dec.c if ((ret = ff_mpv_common_init(s)) < 0) s 2206 libavcodec/mpeg12dec.c int j = s->idsp.idct_permutation[i]; s 2208 libavcodec/mpeg12dec.c s->intra_matrix[j] = v; s 2209 libavcodec/mpeg12dec.c s->chroma_intra_matrix[j] = v; s 2212 libavcodec/mpeg12dec.c s->inter_matrix[j] = v; s 2213 libavcodec/mpeg12dec.c s->chroma_inter_matrix[j] = v; s 2216 libavcodec/mpeg12dec.c s->progressive_sequence = 1; s 2217 libavcodec/mpeg12dec.c s->progressive_frame = 1; s 2218 libavcodec/mpeg12dec.c s->picture_structure = PICT_FRAME; s 2219 libavcodec/mpeg12dec.c s->first_field = 0; s 2220 libavcodec/mpeg12dec.c s->frame_pred_frame_dct = 1; s 2221 libavcodec/mpeg12dec.c s->chroma_format = 1; s 2222 libavcodec/mpeg12dec.c if (s->codec_tag == AV_RL32("BW10")) { s 2223 libavcodec/mpeg12dec.c s->codec_id = s->avctx->codec_id = AV_CODEC_ID_MPEG1VIDEO; s 2225 libavcodec/mpeg12dec.c s->swap_uv = 1; // in case of xvmc we need to swap uv for each MB s 2226 libavcodec/mpeg12dec.c s->codec_id = s->avctx->codec_id = AV_CODEC_ID_MPEG2VIDEO; s 2228 libavcodec/mpeg12dec.c s1->save_width = s->width; s 2229 libavcodec/mpeg12dec.c s1->save_height = s->height; s 2230 libavcodec/mpeg12dec.c s1->save_progressive_seq = s->progressive_sequence; s 2362 libavcodec/mpeg12dec.c Mpeg1Context *s = avctx->priv_data; s 2378 libavcodec/mpeg12dec.c s->tmpgexs= 1; s 2433 libavcodec/mpeg12dec.c MpegEncContext *s = &s1->mpeg_enc_ctx; s 2437 libavcodec/mpeg12dec.c init_get_bits(&s->gb, buf, buf_size * 8); s 2439 libavcodec/mpeg12dec.c tc = s-> timecode_frame_start = get_bits(&s->gb, 25); s 2447 libavcodec/mpeg12dec.c s->closed_gop = get_bits1(&s->gb); s 2451 libavcodec/mpeg12dec.c broken_link = get_bits1(&s->gb); s 2453 libavcodec/mpeg12dec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) { s 2456 libavcodec/mpeg12dec.c av_log(s->avctx, AV_LOG_DEBUG, s 2458 libavcodec/mpeg12dec.c tcbuf, s->closed_gop, broken_link); s 2465 libavcodec/mpeg12dec.c Mpeg1Context *s = avctx->priv_data; s 2466 libavcodec/mpeg12dec.c MpegEncContext *s2 = &s->mpeg_enc_ctx; s 2487 libavcodec/mpeg12dec.c s->slice_count, sizeof(void *)); s 2488 libavcodec/mpeg12dec.c for (i = 0; i < s->slice_count; i++) s 2521 libavcodec/mpeg12dec.c s->sync = 1; s 2545 libavcodec/mpeg12dec.c if (s->tmpgexs){ s 2550 libavcodec/mpeg12dec.c !avctx->hwaccel && s->slice_count) { s 2555 libavcodec/mpeg12dec.c s->slice_count, sizeof(void *)); s 2556 libavcodec/mpeg12dec.c for (i = 0; i < s->slice_count; i++) s 2558 libavcodec/mpeg12dec.c s->slice_count = 0; s 2571 libavcodec/mpeg12dec.c s->first_slice = 1; s 2586 libavcodec/mpeg12dec.c mpeg_decode_sequence_extension(s); s 2595 libavcodec/mpeg12dec.c mpeg_decode_sequence_display_extension(s); s 2601 libavcodec/mpeg12dec.c mpeg_decode_picture_display_extension(s); s 2605 libavcodec/mpeg12dec.c mpeg_decode_picture_coding_extension(s); s 2622 libavcodec/mpeg12dec.c s->sync = 1; s 2695 libavcodec/mpeg12dec.c s->sync = 1; s 2699 libavcodec/mpeg12dec.c if (s2->pict_type == AV_PICTURE_TYPE_P && !s->sync) { s 2715 libavcodec/mpeg12dec.c if (!s->mpeg_enc_ctx_allocated) s 2731 libavcodec/mpeg12dec.c if (s->first_slice) { s 2733 libavcodec/mpeg12dec.c s->first_slice = 0; s 2746 libavcodec/mpeg12dec.c int threshold = (s2->mb_height * s->slice_count + s 2751 libavcodec/mpeg12dec.c MpegEncContext *thread_context = s2->thread_context[s->slice_count]; s 2755 libavcodec/mpeg12dec.c if (s->slice_count) { s 2756 libavcodec/mpeg12dec.c s2->thread_context[s->slice_count - 1]->end_mb_y = mb_y; s 2762 libavcodec/mpeg12dec.c s->slice_count++; s 2794 libavcodec/mpeg12dec.c Mpeg1Context *s = avctx->priv_data; s 2796 libavcodec/mpeg12dec.c MpegEncContext *s2 = &s->mpeg_enc_ctx; s 2822 libavcodec/mpeg12dec.c if (s->mpeg_enc_ctx_allocated == 0 && ( s2->codec_tag == AV_RL32("VCR2") s 2827 libavcodec/mpeg12dec.c s->slice_count = 0; s 2829 libavcodec/mpeg12dec.c if (avctx->extradata && !s->extradata_decoded) { s 2837 libavcodec/mpeg12dec.c s->extradata_decoded = 1; s 2865 libavcodec/mpeg12dec.c Mpeg1Context *s = avctx->priv_data; s 2867 libavcodec/mpeg12dec.c s->sync = 0; s 2874 libavcodec/mpeg12dec.c Mpeg1Context *s = avctx->priv_data; s 2876 libavcodec/mpeg12dec.c if (s->mpeg_enc_ctx_allocated) s 2877 libavcodec/mpeg12dec.c ff_mpv_common_end(&s->mpeg_enc_ctx); s 2878 libavcodec/mpeg12dec.c av_freep(&s->a53_caption); s 102 libavcodec/mpeg12enc.c static int find_frame_rate_index(MpegEncContext *s) s 107 libavcodec/mpeg12enc.c AVRational target = av_inv_q(s->avctx->time_base); s 110 libavcodec/mpeg12enc.c if (s->avctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL && s 118 libavcodec/mpeg12enc.c if (s->codec_id != AV_CODEC_ID_MPEG2VIDEO && (ext.den!=1 || ext.num!=1)) s 127 libavcodec/mpeg12enc.c s->frame_rate_index = i; s 128 libavcodec/mpeg12enc.c s->mpeg2_frame_rate_ext.num = ext.num; s 129 libavcodec/mpeg12enc.c s->mpeg2_frame_rate_ext.den = ext.den; s 144 libavcodec/mpeg12enc.c MpegEncContext *s = avctx->priv_data; s 149 libavcodec/mpeg12enc.c if (find_frame_rate_index(s) < 0) { s 150 libavcodec/mpeg12enc.c if (s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { s 167 libavcodec/mpeg12enc.c avctx->profile = s->chroma_format == CHROMA_420 ? FF_PROFILE_MPEG2_MAIN : FF_PROFILE_MPEG2_422; s 177 libavcodec/mpeg12enc.c if (avctx->profile != FF_PROFILE_MPEG2_HIGH && s->chroma_format != CHROMA_420) { s 196 libavcodec/mpeg12enc.c if (s->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL) { s 204 libavcodec/mpeg12enc.c s->drop_frame_timecode = s->drop_frame_timecode || !!(avctx->flags2 & AV_CODEC_FLAG2_DROP_FRAME_TIMECODE); s 205 libavcodec/mpeg12enc.c if (s->drop_frame_timecode) s 206 libavcodec/mpeg12enc.c s->tc.flags |= AV_TIMECODE_FLAG_DROPFRAME; s 207 libavcodec/mpeg12enc.c if (s->drop_frame_timecode && s->frame_rate_index != 4) { s 216 libavcodec/mpeg12enc.c s->timecode_frame_start = avctx->timecode_frame_start; s 220 libavcodec/mpeg12enc.c if (s->tc_opt_str) { s 221 libavcodec/mpeg12enc.c AVRational rate = ff_mpeg12_frame_rate_tab[s->frame_rate_index]; s 222 libavcodec/mpeg12enc.c int ret = av_timecode_init_from_string(&s->tc, rate, s->tc_opt_str, s); s 225 libavcodec/mpeg12enc.c s->drop_frame_timecode = !!(s->tc.flags & AV_TIMECODE_FLAG_DROPFRAME); s 226 libavcodec/mpeg12enc.c s->timecode_frame_start = s->tc.start; s 228 libavcodec/mpeg12enc.c s->timecode_frame_start = 0; // default is -1 s 234 libavcodec/mpeg12enc.c static void put_header(MpegEncContext *s, int header) s 236 libavcodec/mpeg12enc.c avpriv_align_put_bits(&s->pb); s 237 libavcodec/mpeg12enc.c put_bits(&s->pb, 16, header >> 16); s 238 libavcodec/mpeg12enc.c put_sbits(&s->pb, 16, header); s 242 libavcodec/mpeg12enc.c static void mpeg1_encode_sequence_header(MpegEncContext *s) s 248 libavcodec/mpeg12enc.c AVRational aspect_ratio = s->avctx->sample_aspect_ratio; s 253 libavcodec/mpeg12enc.c if (s->current_picture.f->key_frame) { s 254 libavcodec/mpeg12enc.c AVRational framerate = ff_mpeg12_frame_rate_tab[s->frame_rate_index]; s 257 libavcodec/mpeg12enc.c put_header(s, SEQ_START_CODE); s 259 libavcodec/mpeg12enc.c put_sbits(&s->pb, 12, s->width & 0xFFF); s 260 libavcodec/mpeg12enc.c put_sbits(&s->pb, 12, s->height & 0xFFF); s 264 libavcodec/mpeg12enc.c if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO || i <= 1) s 267 libavcodec/mpeg12enc.c error -= (1LL<<32)*ff_mpeg2_aspect[i].num * s->height / s->width / ff_mpeg2_aspect[i].den; s 273 libavcodec/mpeg12enc.c s->aspect_ratio_info = i; s 277 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, s->aspect_ratio_info); s 278 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, s->frame_rate_index); s 280 libavcodec/mpeg12enc.c if (s->avctx->rc_max_rate) { s 281 libavcodec/mpeg12enc.c v = (s->avctx->rc_max_rate + 399) / 400; s 282 libavcodec/mpeg12enc.c if (v > 0x3ffff && s->codec_id == AV_CODEC_ID_MPEG1VIDEO) s 288 libavcodec/mpeg12enc.c if (s->avctx->rc_buffer_size) s 289 libavcodec/mpeg12enc.c vbv_buffer_size = s->avctx->rc_buffer_size; s 293 libavcodec/mpeg12enc.c vbv_buffer_size = ((20 * s->bit_rate) / (1151929 / 2)) * 8 * 1024; s 296 libavcodec/mpeg12enc.c put_sbits(&s->pb, 18, v); s 297 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 1); // marker s 298 libavcodec/mpeg12enc.c put_sbits(&s->pb, 10, vbv_buffer_size); s 301 libavcodec/mpeg12enc.c s->width <= 768 && s 302 libavcodec/mpeg12enc.c s->height <= 576 && s 303 libavcodec/mpeg12enc.c s->mb_width * s->mb_height <= 396 && s 304 libavcodec/mpeg12enc.c s->mb_width * s->mb_height * framerate.num <= 396 * 25 * framerate.den && s 306 libavcodec/mpeg12enc.c s->avctx->me_range && s 307 libavcodec/mpeg12enc.c s->avctx->me_range < 128 && s 310 libavcodec/mpeg12enc.c s->codec_id == AV_CODEC_ID_MPEG1VIDEO; s 312 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, constraint_parameter_flag); s 314 libavcodec/mpeg12enc.c ff_write_quant_matrix(&s->pb, s->avctx->intra_matrix); s 315 libavcodec/mpeg12enc.c ff_write_quant_matrix(&s->pb, s->avctx->inter_matrix); s 317 libavcodec/mpeg12enc.c if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { s 319 libavcodec/mpeg12enc.c int width = s->width; s 320 libavcodec/mpeg12enc.c int height = s->height; s 323 libavcodec/mpeg12enc.c put_header(s, EXT_START_CODE); s 324 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, 1); // seq ext s 326 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->avctx->profile == FF_PROFILE_MPEG2_422); // escx 1 for 4:2:2 profile s 328 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, s->avctx->profile); // profile s 329 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, s->avctx->level); // level s 331 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->progressive_sequence); s 332 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, s->chroma_format); s 333 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, s->width >> 12); s 334 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, s->height >> 12); s 335 libavcodec/mpeg12enc.c put_bits(&s->pb, 12, v >> 18); // bitrate ext s 336 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 1); // marker s 337 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, vbv_buffer_size >> 10); // vbv buffer ext s 338 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->low_delay); s 339 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, s->mpeg2_frame_rate_ext.num-1); // frame_rate_ext_n s 340 libavcodec/mpeg12enc.c put_bits(&s->pb, 5, s->mpeg2_frame_rate_ext.den-1); // frame_rate_ext_d s 342 libavcodec/mpeg12enc.c side_data = av_frame_get_side_data(s->current_picture_ptr->f, AV_FRAME_DATA_PANSCAN); s 351 libavcodec/mpeg12enc.c use_seq_disp_ext = (width != s->width || s 352 libavcodec/mpeg12enc.c height != s->height || s 353 libavcodec/mpeg12enc.c s->avctx->color_primaries != AVCOL_PRI_UNSPECIFIED || s 354 libavcodec/mpeg12enc.c s->avctx->color_trc != AVCOL_TRC_UNSPECIFIED || s 355 libavcodec/mpeg12enc.c s->avctx->colorspace != AVCOL_SPC_UNSPECIFIED || s 356 libavcodec/mpeg12enc.c s->video_format != VIDEO_FORMAT_UNSPECIFIED); s 358 libavcodec/mpeg12enc.c if (s->seq_disp_ext == 1 || (s->seq_disp_ext == -1 && use_seq_disp_ext)) { s 359 libavcodec/mpeg12enc.c put_header(s, EXT_START_CODE); s 360 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, 2); // sequence display extension s 361 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, s->video_format); // video_format s 362 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 1); // colour_description s 363 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, s->avctx->color_primaries); // colour_primaries s 364 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, s->avctx->color_trc); // transfer_characteristics s 365 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, s->avctx->colorspace); // matrix_coefficients s 366 libavcodec/mpeg12enc.c put_bits(&s->pb, 14, width); // display_horizontal_size s 367 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 1); // marker_bit s 368 libavcodec/mpeg12enc.c put_bits(&s->pb, 14, height); // display_vertical_size s 369 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, 0); // remaining 3 bits are zero padding s 373 libavcodec/mpeg12enc.c put_header(s, GOP_START_CODE); s 374 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->drop_frame_timecode); // drop frame flag s 378 libavcodec/mpeg12enc.c time_code = s->current_picture_ptr->f->coded_picture_number + s 379 libavcodec/mpeg12enc.c s->timecode_frame_start; s 381 libavcodec/mpeg12enc.c s->gop_picture_number = s->current_picture_ptr->f->coded_picture_number; s 383 libavcodec/mpeg12enc.c av_assert0(s->drop_frame_timecode == !!(s->tc.flags & AV_TIMECODE_FLAG_DROPFRAME)); s 384 libavcodec/mpeg12enc.c if (s->drop_frame_timecode) s 387 libavcodec/mpeg12enc.c put_bits(&s->pb, 5, (uint32_t)((time_code / (fps * 3600)) % 24)); s 388 libavcodec/mpeg12enc.c put_bits(&s->pb, 6, (uint32_t)((time_code / (fps * 60)) % 60)); s 389 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 1); s 390 libavcodec/mpeg12enc.c put_bits(&s->pb, 6, (uint32_t)((time_code / fps) % 60)); s 391 libavcodec/mpeg12enc.c put_bits(&s->pb, 6, (uint32_t)((time_code % fps))); s 392 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, !!(s->avctx->flags & AV_CODEC_FLAG_CLOSED_GOP) || s->intra_only || !s->gop_picture_number); s 393 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 0); // broken link s 397 libavcodec/mpeg12enc.c static inline void encode_mb_skip_run(MpegEncContext *s, int run) s 400 libavcodec/mpeg12enc.c put_bits(&s->pb, 11, 0x008); s 403 libavcodec/mpeg12enc.c put_bits(&s->pb, ff_mpeg12_mbAddrIncrTable[run][1], s 407 libavcodec/mpeg12enc.c static av_always_inline void put_qscale(MpegEncContext *s) s 409 libavcodec/mpeg12enc.c put_bits(&s->pb, 5, s->qscale); s 412 libavcodec/mpeg12enc.c void ff_mpeg1_encode_slice_header(MpegEncContext *s) s 414 libavcodec/mpeg12enc.c if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO && s->height > 2800) { s 415 libavcodec/mpeg12enc.c put_header(s, SLICE_MIN_START_CODE + (s->mb_y & 127)); s 417 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, s->mb_y >> 7); s 419 libavcodec/mpeg12enc.c put_header(s, SLICE_MIN_START_CODE + s->mb_y); s 421 libavcodec/mpeg12enc.c put_qscale(s); s 423 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 0); s 426 libavcodec/mpeg12enc.c void ff_mpeg1_encode_picture_header(MpegEncContext *s, int picture_number) s 429 libavcodec/mpeg12enc.c mpeg1_encode_sequence_header(s); s 432 libavcodec/mpeg12enc.c put_header(s, PICTURE_START_CODE); s 436 libavcodec/mpeg12enc.c put_bits(&s->pb, 10, s 437 libavcodec/mpeg12enc.c (s->picture_number - s->gop_picture_number) & 0x3ff); s 438 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, s->pict_type); s 440 libavcodec/mpeg12enc.c s->vbv_delay_ptr = s->pb.buf + put_bits_count(&s->pb) / 8; s 441 libavcodec/mpeg12enc.c put_bits(&s->pb, 16, 0xFFFF); /* vbv_delay */ s 444 libavcodec/mpeg12enc.c if (s->pict_type == AV_PICTURE_TYPE_P || s 445 libavcodec/mpeg12enc.c s->pict_type == AV_PICTURE_TYPE_B) { s 446 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 0); /* half pel coordinates */ s 447 libavcodec/mpeg12enc.c if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO) s 448 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, s->f_code); /* forward_f_code */ s 450 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, 7); /* forward_f_code */ s 454 libavcodec/mpeg12enc.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 455 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 0); /* half pel coordinates */ s 456 libavcodec/mpeg12enc.c if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO) s 457 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, s->b_code); /* backward_f_code */ s 459 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, 7); /* backward_f_code */ s 462 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 0); /* extra bit picture */ s 464 libavcodec/mpeg12enc.c s->frame_pred_frame_dct = 1; s 465 libavcodec/mpeg12enc.c if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { s 466 libavcodec/mpeg12enc.c put_header(s, EXT_START_CODE); s 467 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, 8); /* pic ext */ s 468 libavcodec/mpeg12enc.c if (s->pict_type == AV_PICTURE_TYPE_P || s 469 libavcodec/mpeg12enc.c s->pict_type == AV_PICTURE_TYPE_B) { s 470 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, s->f_code); s 471 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, s->f_code); s 473 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 255); s 475 libavcodec/mpeg12enc.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 476 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, s->b_code); s 477 libavcodec/mpeg12enc.c put_bits(&s->pb, 4, s->b_code); s 479 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 255); s 481 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, s->intra_dc_precision); s 483 libavcodec/mpeg12enc.c av_assert0(s->picture_structure == PICT_FRAME); s 484 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, s->picture_structure); s 485 libavcodec/mpeg12enc.c if (s->progressive_sequence) s 486 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 0); /* no repeat */ s 488 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->current_picture_ptr->f->top_field_first); s 490 libavcodec/mpeg12enc.c s->frame_pred_frame_dct = s->progressive_sequence; s 492 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->frame_pred_frame_dct); s 493 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->concealment_motion_vectors); s 494 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->q_scale_type); s 495 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->intra_vlc_format); s 496 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->alternate_scan); s 497 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->repeat_first_field); s 498 libavcodec/mpeg12enc.c s->progressive_frame = s->progressive_sequence; s 500 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->chroma_format == s 501 libavcodec/mpeg12enc.c CHROMA_420 ? s->progressive_frame : 0); s 502 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->progressive_frame); s 503 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 0); /* composite_display_flag */ s 505 libavcodec/mpeg12enc.c if (s->scan_offset) { s 508 libavcodec/mpeg12enc.c put_header(s, USER_START_CODE); s 510 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, svcd_scan_offset_placeholder[i]); s 512 libavcodec/mpeg12enc.c side_data = av_frame_get_side_data(s->current_picture_ptr->f, s 537 libavcodec/mpeg12enc.c put_header(s, USER_START_CODE); s 538 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 'J'); // S3D_video_format_signaling_identifier s 539 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 'P'); s 540 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, '3'); s 541 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 'D'); s 542 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 0x03); // S3D_video_format_length s 544 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, 1); // reserved_bit s 545 libavcodec/mpeg12enc.c put_bits(&s->pb, 7, fpa_type); // S3D_video_format_type s 546 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 0x04); // reserved_data[0] s 547 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 0xFF); // reserved_data[1] s 551 libavcodec/mpeg12enc.c if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO && s->a53_cc) { s 552 libavcodec/mpeg12enc.c side_data = av_frame_get_side_data(s->current_picture_ptr->f, s 558 libavcodec/mpeg12enc.c put_header (s, USER_START_CODE); s 560 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 'G'); // user_identifier s 561 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 'A'); s 562 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, '9'); s 563 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, '4'); s 564 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 3); // user_data_type_code s 565 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, s 567 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 0xff); // em_data s 570 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, side_data->data[i]); s 572 libavcodec/mpeg12enc.c put_bits(&s->pb, 8, 0xff); // marker_bits s 574 libavcodec/mpeg12enc.c av_log(s->avctx, AV_LOG_WARNING, s 581 libavcodec/mpeg12enc.c s->mb_y = 0; s 582 libavcodec/mpeg12enc.c ff_mpeg1_encode_slice_header(s); s 585 libavcodec/mpeg12enc.c static inline void put_mb_modes(MpegEncContext *s, int n, int bits, s 588 libavcodec/mpeg12enc.c put_bits(&s->pb, n, bits); s 589 libavcodec/mpeg12enc.c if (!s->frame_pred_frame_dct) { s 592 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, 2 - field_motion); s 593 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->interlaced_dct); s 598 libavcodec/mpeg12enc.c static void mpeg1_encode_motion(MpegEncContext *s, int val, int f_or_b_code) s 602 libavcodec/mpeg12enc.c put_bits(&s->pb, s 627 libavcodec/mpeg12enc.c put_bits(&s->pb, s 631 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, sign); s 633 libavcodec/mpeg12enc.c put_bits(&s->pb, bit_size, bits); s 637 libavcodec/mpeg12enc.c static inline void encode_dc(MpegEncContext *s, int diff, int component) s 650 libavcodec/mpeg12enc.c put_bits(&s->pb, s 655 libavcodec/mpeg12enc.c put_bits(&s->pb, s 661 libavcodec/mpeg12enc.c put_bits(&s->pb, s 665 libavcodec/mpeg12enc.c put_bits(&s->pb, s 671 libavcodec/mpeg12enc.c static void mpeg1_encode_block(MpegEncContext *s, int16_t *block, int n) s 677 libavcodec/mpeg12enc.c last_index = s->block_last_index[n]; s 680 libavcodec/mpeg12enc.c if (s->mb_intra) { s 683 libavcodec/mpeg12enc.c diff = dc - s->last_dc[component]; s 684 libavcodec/mpeg12enc.c encode_dc(s, diff, component); s 685 libavcodec/mpeg12enc.c s->last_dc[component] = dc; s 687 libavcodec/mpeg12enc.c if (s->intra_vlc_format) s 695 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, code | 0x02); s 708 libavcodec/mpeg12enc.c j = s->intra_scantable.permutated[i]; s 723 libavcodec/mpeg12enc.c put_bits(&s->pb, table_vlc[code][1] + 1, s 727 libavcodec/mpeg12enc.c put_bits(&s->pb, table_vlc[111][1], table_vlc[111][0]); s 729 libavcodec/mpeg12enc.c put_bits(&s->pb, 6, run); s 730 libavcodec/mpeg12enc.c if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO) { s 732 libavcodec/mpeg12enc.c put_sbits(&s->pb, 8, level); s 735 libavcodec/mpeg12enc.c put_bits(&s->pb, 16, 0x8001 + level + 255); s 737 libavcodec/mpeg12enc.c put_sbits(&s->pb, 16, level); s 740 libavcodec/mpeg12enc.c put_sbits(&s->pb, 12, level); s 747 libavcodec/mpeg12enc.c put_bits(&s->pb, table_vlc[112][1], table_vlc[112][0]); s 750 libavcodec/mpeg12enc.c static av_always_inline void mpeg1_encode_mb_internal(MpegEncContext *s, s 756 libavcodec/mpeg12enc.c const int mb_x = s->mb_x; s 757 libavcodec/mpeg12enc.c const int mb_y = s->mb_y; s 758 libavcodec/mpeg12enc.c const int first_mb = mb_x == s->resync_mb_x && mb_y == s->resync_mb_y; s 763 libavcodec/mpeg12enc.c if (s->block_last_index[i] >= 0) s 766 libavcodec/mpeg12enc.c if (cbp == 0 && !first_mb && s->mv_type == MV_TYPE_16X16 && s 767 libavcodec/mpeg12enc.c (mb_x != s->mb_width - 1 || s 768 libavcodec/mpeg12enc.c (mb_y != s->end_mb_y - 1 && s->codec_id == AV_CODEC_ID_MPEG1VIDEO)) && s 769 libavcodec/mpeg12enc.c ((s->pict_type == AV_PICTURE_TYPE_P && (motion_x | motion_y) == 0) || s 770 libavcodec/mpeg12enc.c (s->pict_type == AV_PICTURE_TYPE_B && s->mv_dir == s->last_mv_dir && s 771 libavcodec/mpeg12enc.c (((s->mv_dir & MV_DIR_FORWARD) s 772 libavcodec/mpeg12enc.c ? ((s->mv[0][0][0] - s->last_mv[0][0][0]) | s 773 libavcodec/mpeg12enc.c (s->mv[0][0][1] - s->last_mv[0][0][1])) : 0) | s 774 libavcodec/mpeg12enc.c ((s->mv_dir & MV_DIR_BACKWARD) s 775 libavcodec/mpeg12enc.c ? ((s->mv[1][0][0] - s->last_mv[1][0][0]) | s 776 libavcodec/mpeg12enc.c (s->mv[1][0][1] - s->last_mv[1][0][1])) : 0)) == 0))) { s 777 libavcodec/mpeg12enc.c s->mb_skip_run++; s 778 libavcodec/mpeg12enc.c s->qscale -= s->dquant; s 779 libavcodec/mpeg12enc.c s->skip_count++; s 780 libavcodec/mpeg12enc.c s->misc_bits++; s 781 libavcodec/mpeg12enc.c s->last_bits++; s 782 libavcodec/mpeg12enc.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 783 libavcodec/mpeg12enc.c s->last_mv[0][0][0] = s 784 libavcodec/mpeg12enc.c s->last_mv[0][0][1] = s 785 libavcodec/mpeg12enc.c s->last_mv[0][1][0] = s 786 libavcodec/mpeg12enc.c s->last_mv[0][1][1] = 0; s 790 libavcodec/mpeg12enc.c av_assert0(s->mb_skip_run == 0); s 791 libavcodec/mpeg12enc.c encode_mb_skip_run(s, s->mb_x); s 793 libavcodec/mpeg12enc.c encode_mb_skip_run(s, s->mb_skip_run); s 796 libavcodec/mpeg12enc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 797 libavcodec/mpeg12enc.c if (s->dquant && cbp) { s 799 libavcodec/mpeg12enc.c put_mb_modes(s, 2, 1, 0, 0); s 800 libavcodec/mpeg12enc.c put_qscale(s); s 803 libavcodec/mpeg12enc.c put_mb_modes(s, 1, 1, 0, 0); s 804 libavcodec/mpeg12enc.c s->qscale -= s->dquant; s 806 libavcodec/mpeg12enc.c s->misc_bits += get_bits_diff(s); s 807 libavcodec/mpeg12enc.c s->i_count++; s 808 libavcodec/mpeg12enc.c } else if (s->mb_intra) { s 809 libavcodec/mpeg12enc.c if (s->dquant && cbp) { s 810 libavcodec/mpeg12enc.c put_mb_modes(s, 6, 0x01, 0, 0); s 811 libavcodec/mpeg12enc.c put_qscale(s); s 813 libavcodec/mpeg12enc.c put_mb_modes(s, 5, 0x03, 0, 0); s 814 libavcodec/mpeg12enc.c s->qscale -= s->dquant; s 816 libavcodec/mpeg12enc.c s->misc_bits += get_bits_diff(s); s 817 libavcodec/mpeg12enc.c s->i_count++; s 818 libavcodec/mpeg12enc.c memset(s->last_mv, 0, sizeof(s->last_mv)); s 819 libavcodec/mpeg12enc.c } else if (s->pict_type == AV_PICTURE_TYPE_P) { s 820 libavcodec/mpeg12enc.c if (s->mv_type == MV_TYPE_16X16) { s 823 libavcodec/mpeg12enc.c if (s->dquant) { s 825 libavcodec/mpeg12enc.c put_mb_modes(s, 5, 1, 0, 0); s 826 libavcodec/mpeg12enc.c put_qscale(s); s 829 libavcodec/mpeg12enc.c put_mb_modes(s, 2, 1, 0, 0); s 831 libavcodec/mpeg12enc.c s->misc_bits += get_bits_diff(s); s 833 libavcodec/mpeg12enc.c if (s->dquant) { s 834 libavcodec/mpeg12enc.c put_mb_modes(s, 5, 2, 1, 0); /* motion + cbp */ s 835 libavcodec/mpeg12enc.c put_qscale(s); s 837 libavcodec/mpeg12enc.c put_mb_modes(s, 1, 1, 1, 0); /* motion + cbp */ s 839 libavcodec/mpeg12enc.c s->misc_bits += get_bits_diff(s); s 841 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 842 libavcodec/mpeg12enc.c motion_x - s->last_mv[0][0][0], s 843 libavcodec/mpeg12enc.c s->f_code); s 845 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 846 libavcodec/mpeg12enc.c motion_y - s->last_mv[0][0][1], s 847 libavcodec/mpeg12enc.c s->f_code); s 848 libavcodec/mpeg12enc.c s->mv_bits += get_bits_diff(s); s 851 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, 1); /* motion only */ s 852 libavcodec/mpeg12enc.c if (!s->frame_pred_frame_dct) s 853 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, 2); /* motion_type: frame */ s 854 libavcodec/mpeg12enc.c s->misc_bits += get_bits_diff(s); s 856 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 857 libavcodec/mpeg12enc.c motion_x - s->last_mv[0][0][0], s 858 libavcodec/mpeg12enc.c s->f_code); s 860 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 861 libavcodec/mpeg12enc.c motion_y - s->last_mv[0][0][1], s 862 libavcodec/mpeg12enc.c s->f_code); s 863 libavcodec/mpeg12enc.c s->qscale -= s->dquant; s 864 libavcodec/mpeg12enc.c s->mv_bits += get_bits_diff(s); s 866 libavcodec/mpeg12enc.c s->last_mv[0][1][0] = s->last_mv[0][0][0] = motion_x; s 867 libavcodec/mpeg12enc.c s->last_mv[0][1][1] = s->last_mv[0][0][1] = motion_y; s 869 libavcodec/mpeg12enc.c av_assert2(!s->frame_pred_frame_dct && s->mv_type == MV_TYPE_FIELD); s 872 libavcodec/mpeg12enc.c if (s->dquant) { s 873 libavcodec/mpeg12enc.c put_mb_modes(s, 5, 2, 1, 1); /* motion + cbp */ s 874 libavcodec/mpeg12enc.c put_qscale(s); s 876 libavcodec/mpeg12enc.c put_mb_modes(s, 1, 1, 1, 1); /* motion + cbp */ s 879 libavcodec/mpeg12enc.c put_bits(&s->pb, 3, 1); /* motion only */ s 880 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, 1); /* motion_type: field */ s 881 libavcodec/mpeg12enc.c s->qscale -= s->dquant; s 883 libavcodec/mpeg12enc.c s->misc_bits += get_bits_diff(s); s 885 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->field_select[0][i]); s 886 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 887 libavcodec/mpeg12enc.c s->mv[0][i][0] - s->last_mv[0][i][0], s 888 libavcodec/mpeg12enc.c s->f_code); s 889 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 890 libavcodec/mpeg12enc.c s->mv[0][i][1] - (s->last_mv[0][i][1] >> 1), s 891 libavcodec/mpeg12enc.c s->f_code); s 892 libavcodec/mpeg12enc.c s->last_mv[0][i][0] = s->mv[0][i][0]; s 893 libavcodec/mpeg12enc.c s->last_mv[0][i][1] = 2 * s->mv[0][i][1]; s 895 libavcodec/mpeg12enc.c s->mv_bits += get_bits_diff(s); s 898 libavcodec/mpeg12enc.c if (s->chroma_y_shift) { s 899 libavcodec/mpeg12enc.c put_bits(&s->pb, s 903 libavcodec/mpeg12enc.c put_bits(&s->pb, s 906 libavcodec/mpeg12enc.c put_sbits(&s->pb, 2, cbp); s 909 libavcodec/mpeg12enc.c s->f_count++; s 911 libavcodec/mpeg12enc.c if (s->mv_type == MV_TYPE_16X16) { s 913 libavcodec/mpeg12enc.c if (s->dquant) { s 914 libavcodec/mpeg12enc.c if (s->mv_dir == MV_DIR_FORWARD) s 915 libavcodec/mpeg12enc.c put_mb_modes(s, 6, 3, 1, 0); s 917 libavcodec/mpeg12enc.c put_mb_modes(s, 8 - s->mv_dir, 2, 1, 0); s 918 libavcodec/mpeg12enc.c put_qscale(s); s 920 libavcodec/mpeg12enc.c put_mb_modes(s, 5 - s->mv_dir, 3, 1, 0); s 923 libavcodec/mpeg12enc.c put_bits(&s->pb, 5 - s->mv_dir, 2); s 924 libavcodec/mpeg12enc.c if (!s->frame_pred_frame_dct) s 925 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, 2); /* motion_type: frame */ s 926 libavcodec/mpeg12enc.c s->qscale -= s->dquant; s 928 libavcodec/mpeg12enc.c s->misc_bits += get_bits_diff(s); s 929 libavcodec/mpeg12enc.c if (s->mv_dir & MV_DIR_FORWARD) { s 930 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 931 libavcodec/mpeg12enc.c s->mv[0][0][0] - s->last_mv[0][0][0], s 932 libavcodec/mpeg12enc.c s->f_code); s 933 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 934 libavcodec/mpeg12enc.c s->mv[0][0][1] - s->last_mv[0][0][1], s 935 libavcodec/mpeg12enc.c s->f_code); s 936 libavcodec/mpeg12enc.c s->last_mv[0][0][0] = s 937 libavcodec/mpeg12enc.c s->last_mv[0][1][0] = s->mv[0][0][0]; s 938 libavcodec/mpeg12enc.c s->last_mv[0][0][1] = s 939 libavcodec/mpeg12enc.c s->last_mv[0][1][1] = s->mv[0][0][1]; s 940 libavcodec/mpeg12enc.c s->f_count++; s 942 libavcodec/mpeg12enc.c if (s->mv_dir & MV_DIR_BACKWARD) { s 943 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 944 libavcodec/mpeg12enc.c s->mv[1][0][0] - s->last_mv[1][0][0], s 945 libavcodec/mpeg12enc.c s->b_code); s 946 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 947 libavcodec/mpeg12enc.c s->mv[1][0][1] - s->last_mv[1][0][1], s 948 libavcodec/mpeg12enc.c s->b_code); s 949 libavcodec/mpeg12enc.c s->last_mv[1][0][0] = s 950 libavcodec/mpeg12enc.c s->last_mv[1][1][0] = s->mv[1][0][0]; s 951 libavcodec/mpeg12enc.c s->last_mv[1][0][1] = s 952 libavcodec/mpeg12enc.c s->last_mv[1][1][1] = s->mv[1][0][1]; s 953 libavcodec/mpeg12enc.c s->b_count++; s 956 libavcodec/mpeg12enc.c av_assert2(s->mv_type == MV_TYPE_FIELD); s 957 libavcodec/mpeg12enc.c av_assert2(!s->frame_pred_frame_dct); s 959 libavcodec/mpeg12enc.c if (s->dquant) { s 960 libavcodec/mpeg12enc.c if (s->mv_dir == MV_DIR_FORWARD) s 961 libavcodec/mpeg12enc.c put_mb_modes(s, 6, 3, 1, 1); s 963 libavcodec/mpeg12enc.c put_mb_modes(s, 8 - s->mv_dir, 2, 1, 1); s 964 libavcodec/mpeg12enc.c put_qscale(s); s 966 libavcodec/mpeg12enc.c put_mb_modes(s, 5 - s->mv_dir, 3, 1, 1); s 969 libavcodec/mpeg12enc.c put_bits(&s->pb, 5 - s->mv_dir, 2); s 970 libavcodec/mpeg12enc.c put_bits(&s->pb, 2, 1); /* motion_type: field */ s 971 libavcodec/mpeg12enc.c s->qscale -= s->dquant; s 973 libavcodec/mpeg12enc.c s->misc_bits += get_bits_diff(s); s 974 libavcodec/mpeg12enc.c if (s->mv_dir & MV_DIR_FORWARD) { s 976 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->field_select[0][i]); s 977 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 978 libavcodec/mpeg12enc.c s->mv[0][i][0] - s->last_mv[0][i][0], s 979 libavcodec/mpeg12enc.c s->f_code); s 980 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 981 libavcodec/mpeg12enc.c s->mv[0][i][1] - (s->last_mv[0][i][1] >> 1), s 982 libavcodec/mpeg12enc.c s->f_code); s 983 libavcodec/mpeg12enc.c s->last_mv[0][i][0] = s->mv[0][i][0]; s 984 libavcodec/mpeg12enc.c s->last_mv[0][i][1] = s->mv[0][i][1] * 2; s 986 libavcodec/mpeg12enc.c s->f_count++; s 988 libavcodec/mpeg12enc.c if (s->mv_dir & MV_DIR_BACKWARD) { s 990 libavcodec/mpeg12enc.c put_bits(&s->pb, 1, s->field_select[1][i]); s 991 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 992 libavcodec/mpeg12enc.c s->mv[1][i][0] - s->last_mv[1][i][0], s 993 libavcodec/mpeg12enc.c s->b_code); s 994 libavcodec/mpeg12enc.c mpeg1_encode_motion(s, s 995 libavcodec/mpeg12enc.c s->mv[1][i][1] - (s->last_mv[1][i][1] >> 1), s 996 libavcodec/mpeg12enc.c s->b_code); s 997 libavcodec/mpeg12enc.c s->last_mv[1][i][0] = s->mv[1][i][0]; s 998 libavcodec/mpeg12enc.c s->last_mv[1][i][1] = s->mv[1][i][1] * 2; s 1000 libavcodec/mpeg12enc.c s->b_count++; s 1003 libavcodec/mpeg12enc.c s->mv_bits += get_bits_diff(s); s 1005 libavcodec/mpeg12enc.c if (s->chroma_y_shift) { s 1006 libavcodec/mpeg12enc.c put_bits(&s->pb, s 1010 libavcodec/mpeg12enc.c put_bits(&s->pb, s 1013 libavcodec/mpeg12enc.c put_sbits(&s->pb, 2, cbp); s 1019 libavcodec/mpeg12enc.c mpeg1_encode_block(s, block[i], i); s 1020 libavcodec/mpeg12enc.c s->mb_skip_run = 0; s 1021 libavcodec/mpeg12enc.c if (s->mb_intra) s 1022 libavcodec/mpeg12enc.c s->i_tex_bits += get_bits_diff(s); s 1024 libavcodec/mpeg12enc.c s->p_tex_bits += get_bits_diff(s); s 1028 libavcodec/mpeg12enc.c void ff_mpeg1_encode_mb(MpegEncContext *s, int16_t block[8][64], s 1031 libavcodec/mpeg12enc.c if (s->chroma_format == CHROMA_420) s 1032 libavcodec/mpeg12enc.c mpeg1_encode_mb_internal(s, block, motion_x, motion_y, 6); s 1034 libavcodec/mpeg12enc.c mpeg1_encode_mb_internal(s, block, motion_x, motion_y, 8); s 1037 libavcodec/mpeg12enc.c av_cold void ff_mpeg1_encode_init(MpegEncContext *s) s 1041 libavcodec/mpeg12enc.c ff_mpeg12_common_init(s); s 1058 libavcodec/mpeg12enc.c if (s->intra_vlc_format) s 1115 libavcodec/mpeg12enc.c s->me.mv_penalty = mv_penalty; s 1116 libavcodec/mpeg12enc.c s->fcode_tab = fcode_tab; s 1117 libavcodec/mpeg12enc.c if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO) { s 1118 libavcodec/mpeg12enc.c s->min_qcoeff = -255; s 1119 libavcodec/mpeg12enc.c s->max_qcoeff = 255; s 1121 libavcodec/mpeg12enc.c s->min_qcoeff = -2047; s 1122 libavcodec/mpeg12enc.c s->max_qcoeff = 2047; s 1124 libavcodec/mpeg12enc.c if (s->intra_vlc_format) { s 1125 libavcodec/mpeg12enc.c s->intra_ac_vlc_length = s 1126 libavcodec/mpeg12enc.c s->intra_ac_vlc_last_length = uni_mpeg2_ac_vlc_len; s 1128 libavcodec/mpeg12enc.c s->intra_ac_vlc_length = s 1129 libavcodec/mpeg12enc.c s->intra_ac_vlc_last_length = uni_mpeg1_ac_vlc_len; s 1131 libavcodec/mpeg12enc.c s->inter_ac_vlc_length = s 1132 libavcodec/mpeg12enc.c s->inter_ac_vlc_last_length = uni_mpeg1_ac_vlc_len; s 61 libavcodec/mpeg4_unpack_bframes_bsf.c UnpackBFramesBSFContext *s = ctx->priv_data; s 72 libavcodec/mpeg4_unpack_bframes_bsf.c if (s->b_frame_ref) { s 75 libavcodec/mpeg4_unpack_bframes_bsf.c av_buffer_unref(&s->b_frame_ref); s 78 libavcodec/mpeg4_unpack_bframes_bsf.c s->b_frame_ref = av_buffer_ref(pkt->buf); s 79 libavcodec/mpeg4_unpack_bframes_bsf.c if (!s->b_frame_ref) { s 83 libavcodec/mpeg4_unpack_bframes_bsf.c s->b_frame_ref->data = pkt->data + pos_vop2; s 84 libavcodec/mpeg4_unpack_bframes_bsf.c s->b_frame_ref->size = pkt->size - pos_vop2; s 92 libavcodec/mpeg4_unpack_bframes_bsf.c if (nb_vop == 1 && s->b_frame_ref) { s 100 libavcodec/mpeg4_unpack_bframes_bsf.c pkt->buf = s->b_frame_ref; s 101 libavcodec/mpeg4_unpack_bframes_bsf.c pkt->data = s->b_frame_ref->data; s 102 libavcodec/mpeg4_unpack_bframes_bsf.c pkt->size = s->b_frame_ref->size; s 105 libavcodec/mpeg4_unpack_bframes_bsf.c s->b_frame_ref = tmp; s 107 libavcodec/mpeg4_unpack_bframes_bsf.c if (s->b_frame_ref->size <= MAX_NVOP_SIZE) { s 110 libavcodec/mpeg4_unpack_bframes_bsf.c av_buffer_unref(&s->b_frame_ref); s 30 libavcodec/mpeg4video.c int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s) s 32 libavcodec/mpeg4video.c switch (s->pict_type) { s 37 libavcodec/mpeg4video.c return s->f_code + 15; s 39 libavcodec/mpeg4video.c return FFMAX3(s->f_code, s->b_code, 2) + 15; s 45 libavcodec/mpeg4video.c void ff_mpeg4_clean_buffers(MpegEncContext *s) s 49 libavcodec/mpeg4video.c l_wrap = s->b8_stride; s 50 libavcodec/mpeg4video.c l_xy = (2 * s->mb_y - 1) * l_wrap + s->mb_x * 2 - 1; s 51 libavcodec/mpeg4video.c c_wrap = s->mb_stride; s 52 libavcodec/mpeg4video.c c_xy = (s->mb_y - 1) * c_wrap + s->mb_x - 1; s 55 libavcodec/mpeg4video.c memset(s->ac_val[0] + l_xy, 0, (l_wrap * 2 + 1) * 16 * sizeof(int16_t)); s 56 libavcodec/mpeg4video.c memset(s->ac_val[1] + c_xy, 0, (c_wrap + 1) * 16 * sizeof(int16_t)); s 57 libavcodec/mpeg4video.c memset(s->ac_val[2] + c_xy, 0, (c_wrap + 1) * 16 * sizeof(int16_t)); s 61 libavcodec/mpeg4video.c s->last_mv[0][0][0] = s 62 libavcodec/mpeg4video.c s->last_mv[0][0][1] = s 63 libavcodec/mpeg4video.c s->last_mv[1][0][0] = s 64 libavcodec/mpeg4video.c s->last_mv[1][0][1] = 0; s 67 libavcodec/mpeg4video.c #define tab_size ((signed)FF_ARRAY_ELEMS(s->direct_scale_mv[0])) s 71 libavcodec/mpeg4video.c void ff_mpeg4_init_direct_mv(MpegEncContext *s) s 75 libavcodec/mpeg4video.c s->direct_scale_mv[0][i] = (i - tab_bias) * s->pb_time / s->pp_time; s 76 libavcodec/mpeg4video.c s->direct_scale_mv[1][i] = (i - tab_bias) * (s->pb_time - s->pp_time) / s 77 libavcodec/mpeg4video.c s->pp_time; s 81 libavcodec/mpeg4video.c static inline void ff_mpeg4_set_one_direct_mv(MpegEncContext *s, int mx, s 84 libavcodec/mpeg4video.c int xy = s->block_index[i]; s 85 libavcodec/mpeg4video.c uint16_t time_pp = s->pp_time; s 86 libavcodec/mpeg4video.c uint16_t time_pb = s->pb_time; s 89 libavcodec/mpeg4video.c p_mx = s->next_picture.motion_val[0][xy][0]; s 91 libavcodec/mpeg4video.c s->mv[0][i][0] = s->direct_scale_mv[0][p_mx + tab_bias] + mx; s 92 libavcodec/mpeg4video.c s->mv[1][i][0] = mx ? s->mv[0][i][0] - p_mx s 93 libavcodec/mpeg4video.c : s->direct_scale_mv[1][p_mx + tab_bias]; s 95 libavcodec/mpeg4video.c s->mv[0][i][0] = p_mx * time_pb / time_pp + mx; s 96 libavcodec/mpeg4video.c s->mv[1][i][0] = mx ? s->mv[0][i][0] - p_mx s 99 libavcodec/mpeg4video.c p_my = s->next_picture.motion_val[0][xy][1]; s 101 libavcodec/mpeg4video.c s->mv[0][i][1] = s->direct_scale_mv[0][p_my + tab_bias] + my; s 102 libavcodec/mpeg4video.c s->mv[1][i][1] = my ? s->mv[0][i][1] - p_my s 103 libavcodec/mpeg4video.c : s->direct_scale_mv[1][p_my + tab_bias]; s 105 libavcodec/mpeg4video.c s->mv[0][i][1] = p_my * time_pb / time_pp + my; s 106 libavcodec/mpeg4video.c s->mv[1][i][1] = my ? s->mv[0][i][1] - p_my s 117 libavcodec/mpeg4video.c int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my) s 119 libavcodec/mpeg4video.c const int mb_index = s->mb_x + s->mb_y * s->mb_stride; s 120 libavcodec/mpeg4video.c const int colocated_mb_type = s->next_picture.mb_type[mb_index]; s 129 libavcodec/mpeg4video.c s->mv_type = MV_TYPE_8X8; s 131 libavcodec/mpeg4video.c ff_mpeg4_set_one_direct_mv(s, mx, my, i); s 134 libavcodec/mpeg4video.c s->mv_type = MV_TYPE_FIELD; s 136 libavcodec/mpeg4video.c int field_select = s->next_picture.ref_index[0][4 * mb_index + 2 * i]; s 137 libavcodec/mpeg4video.c s->field_select[0][i] = field_select; s 138 libavcodec/mpeg4video.c s->field_select[1][i] = i; s 139 libavcodec/mpeg4video.c if (s->top_field_first) { s 140 libavcodec/mpeg4video.c time_pp = s->pp_field_time - field_select + i; s 141 libavcodec/mpeg4video.c time_pb = s->pb_field_time - field_select + i; s 143 libavcodec/mpeg4video.c time_pp = s->pp_field_time + field_select - i; s 144 libavcodec/mpeg4video.c time_pb = s->pb_field_time + field_select - i; s 146 libavcodec/mpeg4video.c s->mv[0][i][0] = s->p_field_mv_table[i][0][mb_index][0] * s 148 libavcodec/mpeg4video.c s->mv[0][i][1] = s->p_field_mv_table[i][0][mb_index][1] * s 150 libavcodec/mpeg4video.c s->mv[1][i][0] = mx ? s->mv[0][i][0] - s 151 libavcodec/mpeg4video.c s->p_field_mv_table[i][0][mb_index][0] s 152 libavcodec/mpeg4video.c : s->p_field_mv_table[i][0][mb_index][0] * s 154 libavcodec/mpeg4video.c s->mv[1][i][1] = my ? s->mv[0][i][1] - s 155 libavcodec/mpeg4video.c s->p_field_mv_table[i][0][mb_index][1] s 156 libavcodec/mpeg4video.c : s->p_field_mv_table[i][0][mb_index][1] * s 162 libavcodec/mpeg4video.c ff_mpeg4_set_one_direct_mv(s, mx, my, 0); s 163 libavcodec/mpeg4video.c s->mv[0][1][0] = s 164 libavcodec/mpeg4video.c s->mv[0][2][0] = s 165 libavcodec/mpeg4video.c s->mv[0][3][0] = s->mv[0][0][0]; s 166 libavcodec/mpeg4video.c s->mv[0][1][1] = s 167 libavcodec/mpeg4video.c s->mv[0][2][1] = s 168 libavcodec/mpeg4video.c s->mv[0][3][1] = s->mv[0][0][1]; s 169 libavcodec/mpeg4video.c s->mv[1][1][0] = s 170 libavcodec/mpeg4video.c s->mv[1][2][0] = s 171 libavcodec/mpeg4video.c s->mv[1][3][0] = s->mv[1][0][0]; s 172 libavcodec/mpeg4video.c s->mv[1][1][1] = s 173 libavcodec/mpeg4video.c s->mv[1][2][1] = s 174 libavcodec/mpeg4video.c s->mv[1][3][1] = s->mv[1][0][1]; s 175 libavcodec/mpeg4video.c if ((s->avctx->workaround_bugs & FF_BUG_DIRECT_BLOCKSIZE) || s 176 libavcodec/mpeg4video.c !s->quarter_sample) s 177 libavcodec/mpeg4video.c s->mv_type = MV_TYPE_16X16; s 179 libavcodec/mpeg4video.c s->mv_type = MV_TYPE_8X8; s 158 libavcodec/mpeg4video.h void ff_mpeg4_encode_mb(MpegEncContext *s, s 161 libavcodec/mpeg4video.h void ff_mpeg4_pred_ac(MpegEncContext *s, int16_t *block, int n, s 163 libavcodec/mpeg4video.h void ff_set_mpeg4_time(MpegEncContext *s); s 164 libavcodec/mpeg4video.h int ff_mpeg4_encode_picture_header(MpegEncContext *s, int picture_number); s 167 libavcodec/mpeg4video.h void ff_mpeg4_encode_video_packet_header(MpegEncContext *s); s 168 libavcodec/mpeg4video.h void ff_mpeg4_clean_buffers(MpegEncContext *s); s 170 libavcodec/mpeg4video.h void ff_mpeg4_init_partitions(MpegEncContext *s); s 171 libavcodec/mpeg4video.h void ff_mpeg4_merge_partitions(MpegEncContext *s); s 172 libavcodec/mpeg4video.h void ff_clean_mpeg4_qscales(MpegEncContext *s); s 174 libavcodec/mpeg4video.h int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s); s 177 libavcodec/mpeg4video.h void ff_mpeg4_init_direct_mv(MpegEncContext *s); s 185 libavcodec/mpeg4video.h int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my); s 190 libavcodec/mpeg4video.h #define IS_3IV1 s->codec_tag == AV_RL32("3IV1") s 202 libavcodec/mpeg4video.h static inline int ff_mpeg4_pred_dc(MpegEncContext *s, int n, int level, s 210 libavcodec/mpeg4video.h scale = s->y_dc_scale; s 212 libavcodec/mpeg4video.h scale = s->c_dc_scale; s 216 libavcodec/mpeg4video.h wrap = s->block_wrap[n]; s 217 libavcodec/mpeg4video.h dc_val = s->dc_val[0] + s->block_index[n]; s 228 libavcodec/mpeg4video.h if (s->first_slice_line && n != 3) { s 231 libavcodec/mpeg4video.h if (n != 1 && s->mb_x == s->resync_mb_x) s 234 libavcodec/mpeg4video.h if (s->mb_x == s->resync_mb_x && s->mb_y == s->resync_mb_y + 1) { s 257 libavcodec/mpeg4video.h if (!s->encoding && (s->avctx->err_recognition & (AV_EF_BITSTREAM | AV_EF_AGGRESSIVE))) { s 259 libavcodec/mpeg4video.h av_log(s->avctx, AV_LOG_ERROR, s 260 libavcodec/mpeg4video.h "dc<0 at %dx%d\n", s->mb_x, s->mb_y); s 264 libavcodec/mpeg4video.h av_log(s->avctx, AV_LOG_ERROR, s 265 libavcodec/mpeg4video.h "dc overflow at %dx%d\n", s->mb_x, s->mb_y); s 271 libavcodec/mpeg4video.h else if (!(s->workaround_bugs & FF_BUG_DC_CLIP)) s 83 libavcodec/mpeg4video_parser.c MpegEncContext *s = &dec_ctx->m; s 87 libavcodec/mpeg4video_parser.c s->avctx = avctx; s 88 libavcodec/mpeg4video_parser.c s->current_picture_ptr = &s->current_picture; s 99 libavcodec/mpeg4video_parser.c if (s->width && (!avctx->width || !avctx->height || s 101 libavcodec/mpeg4video_parser.c ret = ff_set_dimensions(avctx, s->width, s->height); s 105 libavcodec/mpeg4video_parser.c if((s1->flags & PARSER_FLAG_USE_CODEC_TS) && s->avctx->time_base.den>0 && ret>=0){ s 109 libavcodec/mpeg4video_parser.c s1->pts = av_rescale_q(s->time, (AVRational){1, s->avctx->time_base.den}, (AVRational){1, 1200000}); s 112 libavcodec/mpeg4video_parser.c s1->pict_type = s->pict_type; s 117 libavcodec/mpeg4video_parser.c static av_cold int mpeg4video_parse_init(AVCodecParserContext *s) s 119 libavcodec/mpeg4video_parser.c struct Mp4vParseContext *pc = s->priv_data; s 130 libavcodec/mpeg4video_parser.c static int mpeg4video_parse(AVCodecParserContext *s, s 135 libavcodec/mpeg4video_parser.c ParseContext *pc = s->priv_data; s 138 libavcodec/mpeg4video_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 149 libavcodec/mpeg4video_parser.c mpeg4_decode_header(s, avctx, buf, buf_size); s 69 libavcodec/mpeg4videodec.c void ff_mpeg4_pred_ac(MpegEncContext *s, int16_t *block, int n, int dir) s 73 libavcodec/mpeg4videodec.c int8_t *const qscale_table = s->current_picture.qscale_table; s 76 libavcodec/mpeg4videodec.c ac_val = &s->ac_val[0][0][0] + s->block_index[n] * 16; s 78 libavcodec/mpeg4videodec.c if (s->ac_pred) { s 80 libavcodec/mpeg4videodec.c const int xy = s->mb_x - 1 + s->mb_y * s->mb_stride; s 84 libavcodec/mpeg4videodec.c if (s->mb_x == 0 || s->qscale == qscale_table[xy] || s 88 libavcodec/mpeg4videodec.c block[s->idsp.idct_permutation[i << 3]] += ac_val[i]; s 92 libavcodec/mpeg4videodec.c block[s->idsp.idct_permutation[i << 3]] += ROUNDED_DIV(ac_val[i] * qscale_table[xy], s->qscale); s 95 libavcodec/mpeg4videodec.c const int xy = s->mb_x + s->mb_y * s->mb_stride - s->mb_stride; s 97 libavcodec/mpeg4videodec.c ac_val -= 16 * s->block_wrap[n]; s 99 libavcodec/mpeg4videodec.c if (s->mb_y == 0 || s->qscale == qscale_table[xy] || s 103 libavcodec/mpeg4videodec.c block[s->idsp.idct_permutation[i]] += ac_val[i + 8]; s 107 libavcodec/mpeg4videodec.c block[s->idsp.idct_permutation[i]] += ROUNDED_DIV(ac_val[i + 8] * qscale_table[xy], s->qscale); s 113 libavcodec/mpeg4videodec.c ac_val1[i] = block[s->idsp.idct_permutation[i << 3]]; s 117 libavcodec/mpeg4videodec.c ac_val1[8 + i] = block[s->idsp.idct_permutation[i]]; s 126 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 127 libavcodec/mpeg4videodec.c int bits_count = get_bits_count(&s->gb); s 128 libavcodec/mpeg4videodec.c int v = show_bits(&s->gb, 16); s 130 libavcodec/mpeg4videodec.c if (s->workaround_bugs & FF_BUG_NO_PADDING && !ctx->resync_marker) s 134 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_B || s 135 libavcodec/mpeg4videodec.c (v >> (8 - s->pict_type) != 1) || s->partitioned_frame) s 137 libavcodec/mpeg4videodec.c skip_bits(&s->gb, 8 + s->pict_type); s 138 libavcodec/mpeg4videodec.c bits_count += 8 + s->pict_type; s 139 libavcodec/mpeg4videodec.c v = show_bits(&s->gb, 16); s 142 libavcodec/mpeg4videodec.c if (bits_count + 8 >= s->gb.size_in_bits) { s 147 libavcodec/mpeg4videodec.c return s->mb_num; s 151 libavcodec/mpeg4videodec.c int mb_num_bits = av_log2(s->mb_num - 1) + 1; s 152 libavcodec/mpeg4videodec.c GetBitContext gb = s->gb; s 154 libavcodec/mpeg4videodec.c skip_bits(&s->gb, 1); s 155 libavcodec/mpeg4videodec.c align_get_bits(&s->gb); s 158 libavcodec/mpeg4videodec.c if (get_bits1(&s->gb)) s 161 libavcodec/mpeg4videodec.c mb_num = get_bits(&s->gb, mb_num_bits); s 162 libavcodec/mpeg4videodec.c if (!mb_num || mb_num > s->mb_num || get_bits_count(&s->gb)+6 > s->gb.size_in_bits) s 165 libavcodec/mpeg4videodec.c s->gb = gb; s 167 libavcodec/mpeg4videodec.c if (len >= ff_mpeg4_get_video_packet_prefix_length(s)) s 176 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 177 libavcodec/mpeg4videodec.c int a = 2 << s->sprite_warping_accuracy; s 178 libavcodec/mpeg4videodec.c int rho = 3 - s->sprite_warping_accuracy; s 182 libavcodec/mpeg4videodec.c int w = s->width; s 183 libavcodec/mpeg4videodec.c int h = s->height; s 191 libavcodec/mpeg4videodec.c const int vop_ref[4][2] = { { 0, 0 }, { s->width, 0 }, s 192 libavcodec/mpeg4videodec.c { 0, s->height }, { s->width, s->height } }; s 211 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "before sprite_trajectory"); s 217 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after sprite_trajectory"); s 370 libavcodec/mpeg4videodec.c s->real_sprite_warping_points = 1; s 382 libavcodec/mpeg4videodec.c avpriv_request_sample(s->avctx, "Too large sprite shift, delta or offset"); s 412 libavcodec/mpeg4videodec.c avpriv_request_sample(s->avctx, "Overflow on sprite points"); s 416 libavcodec/mpeg4videodec.c s->real_sprite_warping_points = ctx->num_sprite_warping_points; s 420 libavcodec/mpeg4videodec.c s->sprite_offset[i&1][i>>1] = sprite_offset[i&1][i>>1]; s 421 libavcodec/mpeg4videodec.c s->sprite_delta [i&1][i>>1] = sprite_delta [i&1][i>>1]; s 426 libavcodec/mpeg4videodec.c memset(s->sprite_offset, 0, sizeof(s->sprite_offset)); s 427 libavcodec/mpeg4videodec.c memset(s->sprite_delta, 0, sizeof(s->sprite_delta)); s 432 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 438 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after new_pred"); s 449 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 451 libavcodec/mpeg4videodec.c int mb_num_bits = av_log2(s->mb_num - 1) + 1; s 455 libavcodec/mpeg4videodec.c if (get_bits_count(&s->gb) > s->gb.size_in_bits - 20) s 459 libavcodec/mpeg4videodec.c if (get_bits1(&s->gb)) s 462 libavcodec/mpeg4videodec.c if (len != ff_mpeg4_get_video_packet_prefix_length(s)) { s 463 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "marker does not match f_code\n"); s 468 libavcodec/mpeg4videodec.c header_extension = get_bits1(&s->gb); s 472 libavcodec/mpeg4videodec.c mb_num = get_bits(&s->gb, mb_num_bits); s 473 libavcodec/mpeg4videodec.c if (mb_num >= s->mb_num || !mb_num) { s 474 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 475 libavcodec/mpeg4videodec.c "illegal mb_num in video packet (%d %d) \n", mb_num, s->mb_num); s 479 libavcodec/mpeg4videodec.c s->mb_x = mb_num % s->mb_width; s 480 libavcodec/mpeg4videodec.c s->mb_y = mb_num / s->mb_width; s 483 libavcodec/mpeg4videodec.c int qscale = get_bits(&s->gb, s->quant_precision); s 485 libavcodec/mpeg4videodec.c s->chroma_qscale = s->qscale = qscale; s 489 libavcodec/mpeg4videodec.c header_extension = get_bits1(&s->gb); s 494 libavcodec/mpeg4videodec.c while (get_bits1(&s->gb) != 0) s 497 libavcodec/mpeg4videodec.c check_marker(s->avctx, &s->gb, "before time_increment in video packed header"); s 498 libavcodec/mpeg4videodec.c skip_bits(&s->gb, ctx->time_increment_bits); /* time_increment */ s 499 libavcodec/mpeg4videodec.c check_marker(s->avctx, &s->gb, "before vop_coding_type in video packed header"); s 501 libavcodec/mpeg4videodec.c skip_bits(&s->gb, 2); /* vop coding type */ s 505 libavcodec/mpeg4videodec.c skip_bits(&s->gb, 3); /* intra dc vlc threshold */ s 507 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_S && s 509 libavcodec/mpeg4videodec.c if (mpeg4_decode_sprite_trajectory(ctx, &s->gb) < 0) s 511 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "untested\n"); s 516 libavcodec/mpeg4videodec.c if (s->pict_type != AV_PICTURE_TYPE_I) { s 517 libavcodec/mpeg4videodec.c int f_code = get_bits(&s->gb, 3); /* fcode_for */ s 519 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 522 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 523 libavcodec/mpeg4videodec.c int b_code = get_bits(&s->gb, 3); s 525 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 531 libavcodec/mpeg4videodec.c decode_new_pred(ctx, &s->gb); s 536 libavcodec/mpeg4videodec.c static void reset_studio_dc_predictors(MpegEncContext *s) s 539 libavcodec/mpeg4videodec.c s->last_dc[0] = s 540 libavcodec/mpeg4videodec.c s->last_dc[1] = s 541 libavcodec/mpeg4videodec.c s->last_dc[2] = 1 << (s->avctx->bits_per_raw_sample + s->dct_precision + s->intra_dc_precision - 1); s 550 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 551 libavcodec/mpeg4videodec.c GetBitContext *gb = &s->gb; s 556 libavcodec/mpeg4videodec.c vlc_len = av_log2(s->mb_width * s->mb_height) + 1; s 559 libavcodec/mpeg4videodec.c if (mb_num >= s->mb_num) s 562 libavcodec/mpeg4videodec.c s->mb_x = mb_num % s->mb_width; s 563 libavcodec/mpeg4videodec.c s->mb_y = mb_num / s->mb_width; s 566 libavcodec/mpeg4videodec.c s->qscale = mpeg_get_qscale(s); s 576 libavcodec/mpeg4videodec.c reset_studio_dc_predictors(s); s 592 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 594 libavcodec/mpeg4videodec.c int len = 1 << (s->f_code + 4); s 595 libavcodec/mpeg4videodec.c const int a = s->sprite_warping_accuracy; s 597 libavcodec/mpeg4videodec.c if (s->workaround_bugs & FF_BUG_AMV) s 598 libavcodec/mpeg4videodec.c len >>= s->quarter_sample; s 600 libavcodec/mpeg4videodec.c if (s->real_sprite_warping_points == 1) { s 601 libavcodec/mpeg4videodec.c if (ctx->divx_version == 500 && ctx->divx_build == 413 && a >= s->quarter_sample) s 602 libavcodec/mpeg4videodec.c sum = s->sprite_offset[0][n] / (1 << (a - s->quarter_sample)); s 604 libavcodec/mpeg4videodec.c sum = RSHIFT(s->sprite_offset[0][n] * (1 << s->quarter_sample), a); s 606 libavcodec/mpeg4videodec.c dx = s->sprite_delta[n][0]; s 607 libavcodec/mpeg4videodec.c dy = s->sprite_delta[n][1]; s 613 libavcodec/mpeg4videodec.c mb_v = s->sprite_offset[0][n] + dx * s->mb_x * 16U + dy * s->mb_y * 16U; s 626 libavcodec/mpeg4videodec.c sum = RSHIFT(sum, a + 8 - s->quarter_sample); s 643 libavcodec/mpeg4videodec.c static inline int mpeg4_decode_dc(MpegEncContext *s, int n, int *dir_ptr) s 648 libavcodec/mpeg4videodec.c code = get_vlc2(&s->gb, dc_lum.table, DC_VLC_BITS, 1); s 650 libavcodec/mpeg4videodec.c code = get_vlc2(&s->gb, dc_chrom.table, DC_VLC_BITS, 1); s 653 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "illegal dc vlc\n"); s 662 libavcodec/mpeg4videodec.c level = 2 * get_bits1(&s->gb) - 1; s 664 libavcodec/mpeg4videodec.c if (get_bits1(&s->gb)) s 665 libavcodec/mpeg4videodec.c level = get_bits(&s->gb, code - 1) + (1 << (code - 1)); s 667 libavcodec/mpeg4videodec.c level = -get_bits(&s->gb, code - 1) - (1 << (code - 1)); s 670 libavcodec/mpeg4videodec.c level = get_xbits(&s->gb, code); s 674 libavcodec/mpeg4videodec.c if (get_bits1(&s->gb) == 0) { /* marker */ s 675 libavcodec/mpeg4videodec.c if (s->avctx->err_recognition & (AV_EF_BITSTREAM|AV_EF_COMPLIANT)) { s 676 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "dc marker bit missing\n"); s 683 libavcodec/mpeg4videodec.c return ff_mpeg4_pred_dc(s, n, level, dir_ptr, 0); s 692 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 697 libavcodec/mpeg4videodec.c s->first_slice_line = 1; s 698 libavcodec/mpeg4videodec.c for (; s->mb_y < s->mb_height; s->mb_y++) { s 699 libavcodec/mpeg4videodec.c ff_init_block_index(s); s 700 libavcodec/mpeg4videodec.c for (; s->mb_x < s->mb_width; s->mb_x++) { s 701 libavcodec/mpeg4videodec.c const int xy = s->mb_x + s->mb_y * s->mb_stride; s 706 libavcodec/mpeg4videodec.c ff_update_block_index(s); s 707 libavcodec/mpeg4videodec.c if (s->mb_x == s->resync_mb_x && s->mb_y == s->resync_mb_y + 1) s 708 libavcodec/mpeg4videodec.c s->first_slice_line = 0; s 710 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 714 libavcodec/mpeg4videodec.c if (show_bits(&s->gb, 19) == DC_MARKER) s 717 libavcodec/mpeg4videodec.c cbpc = get_vlc2(&s->gb, ff_h263_intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); s 719 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 720 libavcodec/mpeg4videodec.c "mcbpc corrupted at %d %d\n", s->mb_x, s->mb_y); s 725 libavcodec/mpeg4videodec.c s->cbp_table[xy] = cbpc & 3; s 726 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_INTRA; s 727 libavcodec/mpeg4videodec.c s->mb_intra = 1; s 730 libavcodec/mpeg4videodec.c ff_set_qscale(s, s->qscale + quant_tab[get_bits(&s->gb, 2)]); s 732 libavcodec/mpeg4videodec.c s->current_picture.qscale_table[xy] = s->qscale; s 734 libavcodec/mpeg4videodec.c s->mbintra_table[xy] = 1; s 737 libavcodec/mpeg4videodec.c int dc = mpeg4_decode_dc(s, i, &dc_pred_dir); s 739 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 740 libavcodec/mpeg4videodec.c "DC corrupted at %d %d\n", s->mb_x, s->mb_y); s 747 libavcodec/mpeg4videodec.c s->pred_dir_table[xy] = dir; s 750 libavcodec/mpeg4videodec.c int16_t *const mot_val = s->current_picture.motion_val[0][s->block_index[0]]; s 751 libavcodec/mpeg4videodec.c const int stride = s->b8_stride * 2; s 754 libavcodec/mpeg4videodec.c bits = show_bits(&s->gb, 17); s 758 libavcodec/mpeg4videodec.c skip_bits1(&s->gb); s 761 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_S && s 763 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_SKIP | s 770 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_SKIP | s 784 libavcodec/mpeg4videodec.c if (s->mbintra_table[xy]) s 785 libavcodec/mpeg4videodec.c ff_clean_intra_table_entries(s); s 789 libavcodec/mpeg4videodec.c cbpc = get_vlc2(&s->gb, ff_h263_inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); s 791 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 792 libavcodec/mpeg4videodec.c "mcbpc corrupted at %d %d\n", s->mb_x, s->mb_y); s 798 libavcodec/mpeg4videodec.c s->cbp_table[xy] = cbpc & (8 + 3); // 8 is dquant s 800 libavcodec/mpeg4videodec.c s->mb_intra = ((cbpc & 4) != 0); s 802 libavcodec/mpeg4videodec.c if (s->mb_intra) { s 803 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_INTRA; s 804 libavcodec/mpeg4videodec.c s->mbintra_table[xy] = 1; s 814 libavcodec/mpeg4videodec.c if (s->mbintra_table[xy]) s 815 libavcodec/mpeg4videodec.c ff_clean_intra_table_entries(s); s 817 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_S && s 820 libavcodec/mpeg4videodec.c s->mcsel = get_bits1(&s->gb); s 822 libavcodec/mpeg4videodec.c s->mcsel = 0; s 827 libavcodec/mpeg4videodec.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 828 libavcodec/mpeg4videodec.c if (!s->mcsel) { s 829 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, pred_x, s->f_code); s 833 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, pred_y, s->f_code); s 836 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_16x16 | s 841 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_16x16 | s 856 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_8x8 | s 859 libavcodec/mpeg4videodec.c int16_t *mot_val = ff_h263_pred_motion(s, i, 0, &pred_x, &pred_y); s 860 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, pred_x, s->f_code); s 864 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, pred_y, s->f_code); s 874 libavcodec/mpeg4videodec.c s->mb_x = 0; s 884 libavcodec/mpeg4videodec.c static int mpeg4_decode_partition_b(MpegEncContext *s, int mb_count) s 889 libavcodec/mpeg4videodec.c s->mb_x = s->resync_mb_x; s 890 libavcodec/mpeg4videodec.c s->first_slice_line = 1; s 891 libavcodec/mpeg4videodec.c for (s->mb_y = s->resync_mb_y; mb_num < mb_count; s->mb_y++) { s 892 libavcodec/mpeg4videodec.c ff_init_block_index(s); s 893 libavcodec/mpeg4videodec.c for (; mb_num < mb_count && s->mb_x < s->mb_width; s->mb_x++) { s 894 libavcodec/mpeg4videodec.c const int xy = s->mb_x + s->mb_y * s->mb_stride; s 897 libavcodec/mpeg4videodec.c ff_update_block_index(s); s 898 libavcodec/mpeg4videodec.c if (s->mb_x == s->resync_mb_x && s->mb_y == s->resync_mb_y + 1) s 899 libavcodec/mpeg4videodec.c s->first_slice_line = 0; s 901 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 902 libavcodec/mpeg4videodec.c int ac_pred = get_bits1(&s->gb); s 903 libavcodec/mpeg4videodec.c int cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 905 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 906 libavcodec/mpeg4videodec.c "cbpy corrupted at %d %d\n", s->mb_x, s->mb_y); s 910 libavcodec/mpeg4videodec.c s->cbp_table[xy] |= cbpy << 2; s 911 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] |= ac_pred * MB_TYPE_ACPRED; s 913 libavcodec/mpeg4videodec.c if (IS_INTRA(s->current_picture.mb_type[xy])) { s 916 libavcodec/mpeg4videodec.c int ac_pred = get_bits1(&s->gb); s 917 libavcodec/mpeg4videodec.c int cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 920 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 921 libavcodec/mpeg4videodec.c "I cbpy corrupted at %d %d\n", s->mb_x, s->mb_y); s 925 libavcodec/mpeg4videodec.c if (s->cbp_table[xy] & 8) s 926 libavcodec/mpeg4videodec.c ff_set_qscale(s, s->qscale + quant_tab[get_bits(&s->gb, 2)]); s 927 libavcodec/mpeg4videodec.c s->current_picture.qscale_table[xy] = s->qscale; s 931 libavcodec/mpeg4videodec.c int dc = mpeg4_decode_dc(s, i, &dc_pred_dir); s 933 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 934 libavcodec/mpeg4videodec.c "DC corrupted at %d %d\n", s->mb_x, s->mb_y); s 941 libavcodec/mpeg4videodec.c s->cbp_table[xy] &= 3; // remove dquant s 942 libavcodec/mpeg4videodec.c s->cbp_table[xy] |= cbpy << 2; s 943 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] |= ac_pred * MB_TYPE_ACPRED; s 944 libavcodec/mpeg4videodec.c s->pred_dir_table[xy] = dir; s 945 libavcodec/mpeg4videodec.c } else if (IS_SKIP(s->current_picture.mb_type[xy])) { s 946 libavcodec/mpeg4videodec.c s->current_picture.qscale_table[xy] = s->qscale; s 947 libavcodec/mpeg4videodec.c s->cbp_table[xy] = 0; s 949 libavcodec/mpeg4videodec.c int cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 952 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 953 libavcodec/mpeg4videodec.c "P cbpy corrupted at %d %d\n", s->mb_x, s->mb_y); s 957 libavcodec/mpeg4videodec.c if (s->cbp_table[xy] & 8) s 958 libavcodec/mpeg4videodec.c ff_set_qscale(s, s->qscale + quant_tab[get_bits(&s->gb, 2)]); s 959 libavcodec/mpeg4videodec.c s->current_picture.qscale_table[xy] = s->qscale; s 961 libavcodec/mpeg4videodec.c s->cbp_table[xy] &= 3; // remove dquant s 962 libavcodec/mpeg4videodec.c s->cbp_table[xy] |= (cbpy ^ 0xf) << 2; s 968 libavcodec/mpeg4videodec.c s->mb_x = 0; s 979 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 982 libavcodec/mpeg4videodec.c const int part_a_error = s->pict_type == AV_PICTURE_TYPE_I ? (ER_DC_ERROR | ER_MV_ERROR) : ER_MV_ERROR; s 983 libavcodec/mpeg4videodec.c const int part_a_end = s->pict_type == AV_PICTURE_TYPE_I ? (ER_DC_END | ER_MV_END) : ER_MV_END; s 987 libavcodec/mpeg4videodec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 988 libavcodec/mpeg4videodec.c s->mb_x, s->mb_y, part_a_error); s 992 libavcodec/mpeg4videodec.c if (s->resync_mb_x + s->resync_mb_y * s->mb_width + mb_num > s->mb_num) { s 993 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "slice below monitor ...\n"); s 994 libavcodec/mpeg4videodec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 995 libavcodec/mpeg4videodec.c s->mb_x, s->mb_y, part_a_error); s 999 libavcodec/mpeg4videodec.c s->mb_num_left = mb_num; s 1001 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 1002 libavcodec/mpeg4videodec.c while (show_bits(&s->gb, 9) == 1) s 1003 libavcodec/mpeg4videodec.c skip_bits(&s->gb, 9); s 1004 libavcodec/mpeg4videodec.c if (get_bits(&s->gb, 19) != DC_MARKER) { s 1005 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1007 libavcodec/mpeg4videodec.c s->mb_x, s->mb_y); s 1011 libavcodec/mpeg4videodec.c while (show_bits(&s->gb, 10) == 1) s 1012 libavcodec/mpeg4videodec.c skip_bits(&s->gb, 10); s 1013 libavcodec/mpeg4videodec.c if (get_bits(&s->gb, 17) != MOTION_MARKER) { s 1014 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1016 libavcodec/mpeg4videodec.c s->mb_x, s->mb_y); s 1020 libavcodec/mpeg4videodec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 1021 libavcodec/mpeg4videodec.c s->mb_x - 1, s->mb_y, part_a_end); s 1023 libavcodec/mpeg4videodec.c ret = mpeg4_decode_partition_b(s, mb_num); s 1025 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_P) s 1026 libavcodec/mpeg4videodec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 1027 libavcodec/mpeg4videodec.c s->mb_x, s->mb_y, ER_DC_ERROR); s 1030 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_P) s 1031 libavcodec/mpeg4videodec.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s 1032 libavcodec/mpeg4videodec.c s->mb_x - 1, s->mb_y, ER_DC_END); s 1045 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 1057 libavcodec/mpeg4videodec.c if (s->partitioned_frame) { s 1058 libavcodec/mpeg4videodec.c level = s->dc_val[0][s->block_index[n]]; s 1060 libavcodec/mpeg4videodec.c level = FASTDIV((level + (s->y_dc_scale >> 1)), s->y_dc_scale); s 1062 libavcodec/mpeg4videodec.c level = FASTDIV((level + (s->c_dc_scale >> 1)), s->c_dc_scale); s 1063 libavcodec/mpeg4videodec.c dc_pred_dir = (s->pred_dir_table[s->mb_x + s->mb_y * s->mb_stride] << n) & 32; s 1065 libavcodec/mpeg4videodec.c level = mpeg4_decode_dc(s, n, &dc_pred_dir); s 1073 libavcodec/mpeg4videodec.c ff_mpeg4_pred_dc(s, n, 0, &dc_pred_dir, 0); s 1085 libavcodec/mpeg4videodec.c if (s->ac_pred) { s 1087 libavcodec/mpeg4videodec.c scan_table = s->intra_v_scantable.permutated; /* left */ s 1089 libavcodec/mpeg4videodec.c scan_table = s->intra_h_scantable.permutated; /* top */ s 1091 libavcodec/mpeg4videodec.c scan_table = s->intra_scantable.permutated; s 1098 libavcodec/mpeg4videodec.c s->block_last_index[n] = i; s 1106 libavcodec/mpeg4videodec.c scan_table = s->intra_scantable.permutated; s 1108 libavcodec/mpeg4videodec.c if (s->mpeg_quant) { s 1116 libavcodec/mpeg4videodec.c qmul = s->qscale << 1; s 1117 libavcodec/mpeg4videodec.c qadd = (s->qscale - 1) | 1; s 1119 libavcodec/mpeg4videodec.c rl_vlc = ff_rvlc_rl_inter.rl_vlc[s->qscale]; s 1121 libavcodec/mpeg4videodec.c rl_vlc = ff_h263_rl_inter.rl_vlc[s->qscale]; s 1125 libavcodec/mpeg4videodec.c OPEN_READER(re, &s->gb); s 1127 libavcodec/mpeg4videodec.c UPDATE_CACHE(re, &s->gb); s 1128 libavcodec/mpeg4videodec.c GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 0); s 1132 libavcodec/mpeg4videodec.c if (SHOW_UBITS(re, &s->gb, 1) == 0) { s 1133 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1137 libavcodec/mpeg4videodec.c SKIP_CACHE(re, &s->gb, 1); s 1139 libavcodec/mpeg4videodec.c last = SHOW_UBITS(re, &s->gb, 1); s 1140 libavcodec/mpeg4videodec.c SKIP_CACHE(re, &s->gb, 1); s 1141 libavcodec/mpeg4videodec.c run = SHOW_UBITS(re, &s->gb, 6); s 1142 libavcodec/mpeg4videodec.c SKIP_COUNTER(re, &s->gb, 1 + 1 + 6); s 1143 libavcodec/mpeg4videodec.c UPDATE_CACHE(re, &s->gb); s 1145 libavcodec/mpeg4videodec.c if (SHOW_UBITS(re, &s->gb, 1) == 0) { s 1146 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1150 libavcodec/mpeg4videodec.c SKIP_CACHE(re, &s->gb, 1); s 1152 libavcodec/mpeg4videodec.c level = SHOW_UBITS(re, &s->gb, 11); s 1153 libavcodec/mpeg4videodec.c SKIP_CACHE(re, &s->gb, 11); s 1155 libavcodec/mpeg4videodec.c if (SHOW_UBITS(re, &s->gb, 5) != 0x10) { s 1156 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "reverse esc missing\n"); s 1159 libavcodec/mpeg4videodec.c SKIP_CACHE(re, &s->gb, 5); s 1162 libavcodec/mpeg4videodec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); s 1163 libavcodec/mpeg4videodec.c SKIP_COUNTER(re, &s->gb, 1 + 11 + 5 + 1); s 1170 libavcodec/mpeg4videodec.c cache = GET_CACHE(re, &s->gb); s 1178 libavcodec/mpeg4videodec.c SKIP_CACHE(re, &s->gb, 2); s 1179 libavcodec/mpeg4videodec.c last = SHOW_UBITS(re, &s->gb, 1); s 1180 libavcodec/mpeg4videodec.c SKIP_CACHE(re, &s->gb, 1); s 1181 libavcodec/mpeg4videodec.c run = SHOW_UBITS(re, &s->gb, 6); s 1182 libavcodec/mpeg4videodec.c SKIP_COUNTER(re, &s->gb, 2 + 1 + 6); s 1183 libavcodec/mpeg4videodec.c UPDATE_CACHE(re, &s->gb); s 1186 libavcodec/mpeg4videodec.c level = SHOW_SBITS(re, &s->gb, 12); s 1187 libavcodec/mpeg4videodec.c LAST_SKIP_BITS(re, &s->gb, 12); s 1189 libavcodec/mpeg4videodec.c if (SHOW_UBITS(re, &s->gb, 1) == 0) { s 1190 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1192 libavcodec/mpeg4videodec.c if (!(s->avctx->err_recognition & AV_EF_IGNORE_ERR)) s 1195 libavcodec/mpeg4videodec.c SKIP_CACHE(re, &s->gb, 1); s 1197 libavcodec/mpeg4videodec.c level = SHOW_SBITS(re, &s->gb, 12); s 1198 libavcodec/mpeg4videodec.c SKIP_CACHE(re, &s->gb, 12); s 1200 libavcodec/mpeg4videodec.c if (SHOW_UBITS(re, &s->gb, 1) == 0) { s 1201 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1203 libavcodec/mpeg4videodec.c if (!(s->avctx->err_recognition & AV_EF_IGNORE_ERR)) s 1207 libavcodec/mpeg4videodec.c SKIP_COUNTER(re, &s->gb, 1 + 12 + 1); s 1211 libavcodec/mpeg4videodec.c if (s->error_recognition >= FF_ER_COMPLIANT) { s 1216 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "illegal 3. esc, vlc encoding possible\n"); s 1219 libavcodec/mpeg4videodec.c if (s->error_recognition > FF_ER_COMPLIANT) { s 1221 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "illegal 3. esc, esc 1 encoding possible\n"); s 1225 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "illegal 3. esc, esc 2 encoding possible\n"); s 1238 libavcodec/mpeg4videodec.c if (s->avctx->err_recognition & (AV_EF_BITSTREAM|AV_EF_AGGRESSIVE)) { s 1240 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1242 libavcodec/mpeg4videodec.c s->qscale); s 1254 libavcodec/mpeg4videodec.c SKIP_BITS(re, &s->gb, 2); s 1255 libavcodec/mpeg4videodec.c GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 1); s 1257 libavcodec/mpeg4videodec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); s 1258 libavcodec/mpeg4videodec.c LAST_SKIP_BITS(re, &s->gb, 1); s 1262 libavcodec/mpeg4videodec.c SKIP_BITS(re, &s->gb, 1); s 1263 libavcodec/mpeg4videodec.c GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 1); s 1266 libavcodec/mpeg4videodec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); s 1267 libavcodec/mpeg4videodec.c LAST_SKIP_BITS(re, &s->gb, 1); s 1272 libavcodec/mpeg4videodec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); s 1273 libavcodec/mpeg4videodec.c LAST_SKIP_BITS(re, &s->gb, 1); s 1275 libavcodec/mpeg4videodec.c ff_tlog(s->avctx, "dct[%d][%d] = %- 4d end?:%d\n", scan_table[i&63]&7, scan_table[i&63] >> 3, level, i>62); s 1279 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1280 libavcodec/mpeg4videodec.c "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y); s 1290 libavcodec/mpeg4videodec.c CLOSE_READER(re, &s->gb); s 1296 libavcodec/mpeg4videodec.c block[0] = ff_mpeg4_pred_dc(s, n, block[0], &dc_pred_dir, 0); s 1301 libavcodec/mpeg4videodec.c ff_mpeg4_pred_ac(s, block, n, dc_pred_dir); s 1302 libavcodec/mpeg4videodec.c if (s->ac_pred) s 1305 libavcodec/mpeg4videodec.c s->block_last_index[n] = i; s 1313 libavcodec/mpeg4videodec.c static int mpeg4_decode_partitioned_mb(MpegEncContext *s, int16_t block[6][64]) s 1315 libavcodec/mpeg4videodec.c Mpeg4DecContext *ctx = s->avctx->priv_data; s 1317 libavcodec/mpeg4videodec.c const int xy = s->mb_x + s->mb_y * s->mb_stride; s 1319 libavcodec/mpeg4videodec.c av_assert2(s == (void*)ctx); s 1321 libavcodec/mpeg4videodec.c mb_type = s->current_picture.mb_type[xy]; s 1322 libavcodec/mpeg4videodec.c cbp = s->cbp_table[xy]; s 1324 libavcodec/mpeg4videodec.c ctx->use_intra_dc_vlc = s->qscale < ctx->intra_dc_threshold; s 1326 libavcodec/mpeg4videodec.c if (s->current_picture.qscale_table[xy] != s->qscale) s 1327 libavcodec/mpeg4videodec.c ff_set_qscale(s, s->current_picture.qscale_table[xy]); s 1329 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_P || s 1330 libavcodec/mpeg4videodec.c s->pict_type == AV_PICTURE_TYPE_S) { s 1333 libavcodec/mpeg4videodec.c s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0]; s 1334 libavcodec/mpeg4videodec.c s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1]; s 1336 libavcodec/mpeg4videodec.c s->mb_intra = IS_INTRA(mb_type); s 1341 libavcodec/mpeg4videodec.c s->block_last_index[i] = -1; s 1342 libavcodec/mpeg4videodec.c s->mv_dir = MV_DIR_FORWARD; s 1343 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_16X16; s 1344 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_S s 1346 libavcodec/mpeg4videodec.c s->mcsel = 1; s 1347 libavcodec/mpeg4videodec.c s->mb_skipped = 0; s 1349 libavcodec/mpeg4videodec.c s->mcsel = 0; s 1350 libavcodec/mpeg4videodec.c s->mb_skipped = 1; s 1352 libavcodec/mpeg4videodec.c } else if (s->mb_intra) { s 1353 libavcodec/mpeg4videodec.c s->ac_pred = IS_ACPRED(s->current_picture.mb_type[xy]); s 1354 libavcodec/mpeg4videodec.c } else if (!s->mb_intra) { s 1357 libavcodec/mpeg4videodec.c s->mv_dir = MV_DIR_FORWARD; s 1359 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_8X8; s 1361 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_16X16; s 1365 libavcodec/mpeg4videodec.c s->mb_intra = 1; s 1366 libavcodec/mpeg4videodec.c s->ac_pred = IS_ACPRED(s->current_picture.mb_type[xy]); s 1371 libavcodec/mpeg4videodec.c s->bdsp.clear_blocks(s->block[0]); s 1374 libavcodec/mpeg4videodec.c if (mpeg4_decode_block(ctx, block[i], i, cbp & 32, s->mb_intra, ctx->rvlc) < 0) { s 1375 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1377 libavcodec/mpeg4videodec.c s->mb_x, s->mb_y, s->mb_intra); s 1385 libavcodec/mpeg4videodec.c if (--s->mb_num_left <= 0) { s 1392 libavcodec/mpeg4videodec.c const int delta = s->mb_x + 1 == s->mb_width ? 2 : 1; s 1393 libavcodec/mpeg4videodec.c if (s->cbp_table[xy + delta]) s 1400 libavcodec/mpeg4videodec.c static int mpeg4_decode_mb(MpegEncContext *s, int16_t block[6][64]) s 1402 libavcodec/mpeg4videodec.c Mpeg4DecContext *ctx = s->avctx->priv_data; s 1406 libavcodec/mpeg4videodec.c const int xy = s->mb_x + s->mb_y * s->mb_stride; s 1408 libavcodec/mpeg4videodec.c av_assert2(s == (void*)ctx); s 1409 libavcodec/mpeg4videodec.c av_assert2(s->h263_pred); s 1411 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_P || s 1412 libavcodec/mpeg4videodec.c s->pict_type == AV_PICTURE_TYPE_S) { s 1414 libavcodec/mpeg4videodec.c if (get_bits1(&s->gb)) { s 1416 libavcodec/mpeg4videodec.c s->mb_intra = 0; s 1418 libavcodec/mpeg4videodec.c s->block_last_index[i] = -1; s 1419 libavcodec/mpeg4videodec.c s->mv_dir = MV_DIR_FORWARD; s 1420 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_16X16; s 1421 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_S && s 1423 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_SKIP | s 1427 libavcodec/mpeg4videodec.c s->mcsel = 1; s 1428 libavcodec/mpeg4videodec.c s->mv[0][0][0] = get_amv(ctx, 0); s 1429 libavcodec/mpeg4videodec.c s->mv[0][0][1] = get_amv(ctx, 1); s 1430 libavcodec/mpeg4videodec.c s->mb_skipped = 0; s 1432 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_SKIP | s 1435 libavcodec/mpeg4videodec.c s->mcsel = 0; s 1436 libavcodec/mpeg4videodec.c s->mv[0][0][0] = 0; s 1437 libavcodec/mpeg4videodec.c s->mv[0][0][1] = 0; s 1438 libavcodec/mpeg4videodec.c s->mb_skipped = 1; s 1442 libavcodec/mpeg4videodec.c cbpc = get_vlc2(&s->gb, ff_h263_inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); s 1444 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1445 libavcodec/mpeg4videodec.c "mcbpc damaged at %d %d\n", s->mb_x, s->mb_y); s 1450 libavcodec/mpeg4videodec.c s->bdsp.clear_blocks(s->block[0]); s 1452 libavcodec/mpeg4videodec.c s->mb_intra = ((cbpc & 4) != 0); s 1453 libavcodec/mpeg4videodec.c if (s->mb_intra) s 1456 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_S && s 1458 libavcodec/mpeg4videodec.c s->mcsel = get_bits1(&s->gb); s 1460 libavcodec/mpeg4videodec.c s->mcsel = 0; s 1461 libavcodec/mpeg4videodec.c cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1) ^ 0x0F; s 1463 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1464 libavcodec/mpeg4videodec.c "P cbpy damaged at %d %d\n", s->mb_x, s->mb_y); s 1470 libavcodec/mpeg4videodec.c ff_set_qscale(s, s->qscale + quant_tab[get_bits(&s->gb, 2)]); s 1471 libavcodec/mpeg4videodec.c if ((!s->progressive_sequence) && s 1472 libavcodec/mpeg4videodec.c (cbp || (s->workaround_bugs & FF_BUG_XVID_ILACE))) s 1473 libavcodec/mpeg4videodec.c s->interlaced_dct = get_bits1(&s->gb); s 1475 libavcodec/mpeg4videodec.c s->mv_dir = MV_DIR_FORWARD; s 1477 libavcodec/mpeg4videodec.c if (s->mcsel) { s 1478 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_GMC | s 1482 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_16X16; s 1485 libavcodec/mpeg4videodec.c s->mv[0][0][0] = mx; s 1486 libavcodec/mpeg4videodec.c s->mv[0][0][1] = my; s 1487 libavcodec/mpeg4videodec.c } else if ((!s->progressive_sequence) && get_bits1(&s->gb)) { s 1488 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_16x8 | s 1492 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_FIELD; s 1494 libavcodec/mpeg4videodec.c s->field_select[0][0] = get_bits1(&s->gb); s 1495 libavcodec/mpeg4videodec.c s->field_select[0][1] = get_bits1(&s->gb); s 1497 libavcodec/mpeg4videodec.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 1500 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, pred_x, s->f_code); s 1504 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, pred_y / 2, s->f_code); s 1508 libavcodec/mpeg4videodec.c s->mv[0][i][0] = mx; s 1509 libavcodec/mpeg4videodec.c s->mv[0][i][1] = my; s 1512 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_16x16 | MB_TYPE_L0; s 1514 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_16X16; s 1515 libavcodec/mpeg4videodec.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 1516 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, pred_x, s->f_code); s 1521 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, pred_y, s->f_code); s 1525 libavcodec/mpeg4videodec.c s->mv[0][0][0] = mx; s 1526 libavcodec/mpeg4videodec.c s->mv[0][0][1] = my; s 1529 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_8x8 | MB_TYPE_L0; s 1530 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_8X8; s 1532 libavcodec/mpeg4videodec.c mot_val = ff_h263_pred_motion(s, i, 0, &pred_x, &pred_y); s 1533 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, pred_x, s->f_code); s 1537 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, pred_y, s->f_code); s 1540 libavcodec/mpeg4videodec.c s->mv[0][i][0] = mx; s 1541 libavcodec/mpeg4videodec.c s->mv[0][i][1] = my; s 1546 libavcodec/mpeg4videodec.c } else if (s->pict_type == AV_PICTURE_TYPE_B) { s 1551 libavcodec/mpeg4videodec.c s->mb_intra = 0; // B-frames never contain intra blocks s 1552 libavcodec/mpeg4videodec.c s->mcsel = 0; // ... true gmc blocks s 1554 libavcodec/mpeg4videodec.c if (s->mb_x == 0) { s 1556 libavcodec/mpeg4videodec.c s->last_mv[i][0][0] = s 1557 libavcodec/mpeg4videodec.c s->last_mv[i][0][1] = s 1558 libavcodec/mpeg4videodec.c s->last_mv[i][1][0] = s 1559 libavcodec/mpeg4videodec.c s->last_mv[i][1][1] = 0; s 1562 libavcodec/mpeg4videodec.c ff_thread_await_progress(&s->next_picture_ptr->tf, s->mb_y, 0); s 1566 libavcodec/mpeg4videodec.c s->mb_skipped = s->next_picture.mbskip_table[s->mb_y * s->mb_stride + s->mb_x]; // Note, skiptab=0 if last was GMC s 1568 libavcodec/mpeg4videodec.c if (s->mb_skipped) { s 1571 libavcodec/mpeg4videodec.c s->block_last_index[i] = -1; s 1573 libavcodec/mpeg4videodec.c s->mv_dir = MV_DIR_FORWARD; s 1574 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_16X16; s 1575 libavcodec/mpeg4videodec.c s->mv[0][0][0] = s 1576 libavcodec/mpeg4videodec.c s->mv[0][0][1] = s 1577 libavcodec/mpeg4videodec.c s->mv[1][0][0] = s 1578 libavcodec/mpeg4videodec.c s->mv[1][0][1] = 0; s 1579 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_SKIP | s 1585 libavcodec/mpeg4videodec.c modb1 = get_bits1(&s->gb); s 1591 libavcodec/mpeg4videodec.c modb2 = get_bits1(&s->gb); s 1592 libavcodec/mpeg4videodec.c mb_type = get_vlc2(&s->gb, mb_type_b_vlc.table, MB_TYPE_B_VLC_BITS, 1); s 1594 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "illegal MB_type\n"); s 1601 libavcodec/mpeg4videodec.c s->bdsp.clear_blocks(s->block[0]); s 1602 libavcodec/mpeg4videodec.c cbp = get_bits(&s->gb, 6); s 1606 libavcodec/mpeg4videodec.c if (get_bits1(&s->gb)) s 1607 libavcodec/mpeg4videodec.c ff_set_qscale(s, s->qscale + get_bits1(&s->gb) * 4 - 2); s 1610 libavcodec/mpeg4videodec.c if (!s->progressive_sequence) { s 1612 libavcodec/mpeg4videodec.c s->interlaced_dct = get_bits1(&s->gb); s 1614 libavcodec/mpeg4videodec.c if (!IS_DIRECT(mb_type) && get_bits1(&s->gb)) { s 1619 libavcodec/mpeg4videodec.c s->field_select[0][0] = get_bits1(&s->gb); s 1620 libavcodec/mpeg4videodec.c s->field_select[0][1] = get_bits1(&s->gb); s 1623 libavcodec/mpeg4videodec.c s->field_select[1][0] = get_bits1(&s->gb); s 1624 libavcodec/mpeg4videodec.c s->field_select[1][1] = get_bits1(&s->gb); s 1629 libavcodec/mpeg4videodec.c s->mv_dir = 0; s 1631 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_16X16; s 1634 libavcodec/mpeg4videodec.c s->mv_dir = MV_DIR_FORWARD; s 1636 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, s->last_mv[0][0][0], s->f_code); s 1637 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, s->last_mv[0][0][1], s->f_code); s 1638 libavcodec/mpeg4videodec.c s->last_mv[0][1][0] = s 1639 libavcodec/mpeg4videodec.c s->last_mv[0][0][0] = s 1640 libavcodec/mpeg4videodec.c s->mv[0][0][0] = mx; s 1641 libavcodec/mpeg4videodec.c s->last_mv[0][1][1] = s 1642 libavcodec/mpeg4videodec.c s->last_mv[0][0][1] = s 1643 libavcodec/mpeg4videodec.c s->mv[0][0][1] = my; s 1647 libavcodec/mpeg4videodec.c s->mv_dir |= MV_DIR_BACKWARD; s 1649 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, s->last_mv[1][0][0], s->b_code); s 1650 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, s->last_mv[1][0][1], s->b_code); s 1651 libavcodec/mpeg4videodec.c s->last_mv[1][1][0] = s 1652 libavcodec/mpeg4videodec.c s->last_mv[1][0][0] = s 1653 libavcodec/mpeg4videodec.c s->mv[1][0][0] = mx; s 1654 libavcodec/mpeg4videodec.c s->last_mv[1][1][1] = s 1655 libavcodec/mpeg4videodec.c s->last_mv[1][0][1] = s 1656 libavcodec/mpeg4videodec.c s->mv[1][0][1] = my; s 1659 libavcodec/mpeg4videodec.c s->mv_type = MV_TYPE_FIELD; s 1662 libavcodec/mpeg4videodec.c s->mv_dir = MV_DIR_FORWARD; s 1665 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, s->last_mv[0][i][0], s->f_code); s 1666 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, s->last_mv[0][i][1] / 2, s->f_code); s 1667 libavcodec/mpeg4videodec.c s->last_mv[0][i][0] = s 1668 libavcodec/mpeg4videodec.c s->mv[0][i][0] = mx; s 1669 libavcodec/mpeg4videodec.c s->last_mv[0][i][1] = (s->mv[0][i][1] = my) * 2; s 1674 libavcodec/mpeg4videodec.c s->mv_dir |= MV_DIR_BACKWARD; s 1677 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, s->last_mv[1][i][0], s->b_code); s 1678 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, s->last_mv[1][i][1] / 2, s->b_code); s 1679 libavcodec/mpeg4videodec.c s->last_mv[1][i][0] = s 1680 libavcodec/mpeg4videodec.c s->mv[1][i][0] = mx; s 1681 libavcodec/mpeg4videodec.c s->last_mv[1][i][1] = (s->mv[1][i][1] = my) * 2; s 1692 libavcodec/mpeg4videodec.c mx = ff_h263_decode_motion(s, 0, 1); s 1693 libavcodec/mpeg4videodec.c my = ff_h263_decode_motion(s, 0, 1); s 1696 libavcodec/mpeg4videodec.c s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; s 1697 libavcodec/mpeg4videodec.c mb_type |= ff_mpeg4_set_direct_mv(s, mx, my); s 1699 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = mb_type; s 1702 libavcodec/mpeg4videodec.c cbpc = get_vlc2(&s->gb, ff_h263_intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); s 1704 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1705 libavcodec/mpeg4videodec.c "I cbpc damaged at %d %d\n", s->mb_x, s->mb_y); s 1711 libavcodec/mpeg4videodec.c s->mb_intra = 1; s 1714 libavcodec/mpeg4videodec.c s->ac_pred = get_bits1(&s->gb); s 1715 libavcodec/mpeg4videodec.c if (s->ac_pred) s 1716 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_INTRA | MB_TYPE_ACPRED; s 1718 libavcodec/mpeg4videodec.c s->current_picture.mb_type[xy] = MB_TYPE_INTRA; s 1720 libavcodec/mpeg4videodec.c cbpy = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 1722 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 1723 libavcodec/mpeg4videodec.c "I cbpy damaged at %d %d\n", s->mb_x, s->mb_y); s 1728 libavcodec/mpeg4videodec.c ctx->use_intra_dc_vlc = s->qscale < ctx->intra_dc_threshold; s 1731 libavcodec/mpeg4videodec.c ff_set_qscale(s, s->qscale + quant_tab[get_bits(&s->gb, 2)]); s 1733 libavcodec/mpeg4videodec.c if (!s->progressive_sequence) s 1734 libavcodec/mpeg4videodec.c s->interlaced_dct = get_bits1(&s->gb); s 1736 libavcodec/mpeg4videodec.c s->bdsp.clear_blocks(s->block[0]); s 1755 libavcodec/mpeg4videodec.c if (s->codec_id == AV_CODEC_ID_MPEG4) { s 1758 libavcodec/mpeg4videodec.c if (s->mb_x + s->mb_y*s->mb_width + 1 > next && (s->avctx->err_recognition & AV_EF_AGGRESSIVE)) { s 1760 libavcodec/mpeg4videodec.c } else if (s->mb_x + s->mb_y*s->mb_width + 1 >= next) s 1763 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 1764 libavcodec/mpeg4videodec.c const int delta= s->mb_x + 1 == s->mb_width ? 2 : 1; s 1765 libavcodec/mpeg4videodec.c ff_thread_await_progress(&s->next_picture_ptr->tf, s 1766 libavcodec/mpeg4videodec.c (s->mb_x + delta >= s->mb_width) s 1767 libavcodec/mpeg4videodec.c ? FFMIN(s->mb_y + 1, s->mb_height - 1) s 1768 libavcodec/mpeg4videodec.c : s->mb_y, 0); s 1769 libavcodec/mpeg4videodec.c if (s->next_picture.mbskip_table[xy + delta]) s 1817 libavcodec/mpeg4videodec.c static int mpeg4_decode_studio_block(MpegEncContext *s, int32_t block[64], int n) s 1819 libavcodec/mpeg4videodec.c Mpeg4DecContext *ctx = s->avctx->priv_data; s 1824 libavcodec/mpeg4videodec.c uint8_t *const scantable = s->intra_scantable.permutated; s 1827 libavcodec/mpeg4videodec.c const int min = -1 * (1 << (s->avctx->bits_per_raw_sample + 6)); s 1828 libavcodec/mpeg4videodec.c const int max = ((1 << (s->avctx->bits_per_raw_sample + 6)) - 1); s 1829 libavcodec/mpeg4videodec.c int shift = 3 - s->dct_precision; s 1837 libavcodec/mpeg4videodec.c dct_dc_size = get_vlc2(&s->gb, ctx->studio_luma_dc.table, STUDIO_INTRA_BITS, 2); s 1838 libavcodec/mpeg4videodec.c quant_matrix = s->intra_matrix; s 1842 libavcodec/mpeg4videodec.c dct_dc_size = get_vlc2(&s->gb, ctx->studio_luma_dc.table, STUDIO_INTRA_BITS, 2); s 1844 libavcodec/mpeg4videodec.c dct_dc_size = get_vlc2(&s->gb, ctx->studio_chroma_dc.table, STUDIO_INTRA_BITS, 2); s 1845 libavcodec/mpeg4videodec.c quant_matrix = s->chroma_intra_matrix; s 1849 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "illegal dct_dc_size vlc\n"); s 1854 libavcodec/mpeg4videodec.c dct_diff = get_xbits(&s->gb, dct_dc_size); s 1857 libavcodec/mpeg4videodec.c if(!check_marker(s->avctx, &s->gb, "dct_dc_size > 8")) s 1863 libavcodec/mpeg4videodec.c s->last_dc[cc] += dct_diff; s 1865 libavcodec/mpeg4videodec.c if (s->mpeg_quant) s 1866 libavcodec/mpeg4videodec.c block[0] = s->last_dc[cc] * (8 >> s->intra_dc_precision); s 1868 libavcodec/mpeg4videodec.c block[0] = s->last_dc[cc] * (8 >> s->intra_dc_precision) * (8 >> s->dct_precision); s 1876 libavcodec/mpeg4videodec.c group = get_vlc2(&s->gb, cur_vlc->table, STUDIO_INTRA_BITS, 2); s 1879 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "illegal ac coefficient group vlc\n"); s 1893 libavcodec/mpeg4videodec.c run += get_bits(&s->gb, additional_code_len); s 1898 libavcodec/mpeg4videodec.c code = get_bits(&s->gb, additional_code_len); s 1912 libavcodec/mpeg4videodec.c block[j] = get_xbits(&s->gb, additional_code_len); s 1918 libavcodec/mpeg4videodec.c additional_code_len = s->avctx->bits_per_raw_sample + s->dct_precision + 4; s 1919 libavcodec/mpeg4videodec.c flc = get_bits(&s->gb, additional_code_len); s 1925 libavcodec/mpeg4videodec.c block[j] = ((block[j] * quant_matrix[j] * s->qscale) * (1 << shift)) / 16; s 1935 libavcodec/mpeg4videodec.c static int mpeg4_decode_dpcm_macroblock(MpegEncContext *s, int16_t macroblock[256], int n) s 1940 libavcodec/mpeg4videodec.c h = 16 >> (n ? s->chroma_y_shift : 0); s 1941 libavcodec/mpeg4videodec.c w = 16 >> (n ? s->chroma_x_shift : 0); s 1943 libavcodec/mpeg4videodec.c block_mean = get_bits(&s->gb, s->avctx->bits_per_raw_sample); s 1945 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "Forbidden block_mean\n"); s 1948 libavcodec/mpeg4videodec.c s->last_dc[n] = block_mean * (1 << (s->dct_precision + s->intra_dc_precision)); s 1950 libavcodec/mpeg4videodec.c rice_parameter = get_bits(&s->gb, 4); s 1952 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "Forbidden rice_parameter\n"); s 1960 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "Forbidden rice_parameter\n"); s 1965 libavcodec/mpeg4videodec.c output = 1 << (s->avctx->bits_per_raw_sample - 1); s 1966 libavcodec/mpeg4videodec.c top = 1 << (s->avctx->bits_per_raw_sample - 1); s 1972 libavcodec/mpeg4videodec.c rice_prefix_code = get_unary(&s->gb, 1, 12); s 1976 libavcodec/mpeg4videodec.c dpcm_residual = get_bits(&s->gb, s->avctx->bits_per_raw_sample); s 1979 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "Forbidden rice_prefix_code\n"); s 1982 libavcodec/mpeg4videodec.c rice_suffix_code = get_bitsz(&s->gb, rice_parameter); s 2011 libavcodec/mpeg4videodec.c macroblock[idx++] = output = (dpcm_residual + p) & ((1 << s->avctx->bits_per_raw_sample) - 1); s 2018 libavcodec/mpeg4videodec.c static int mpeg4_decode_studio_mb(MpegEncContext *s, int16_t block_[12][64]) s 2022 libavcodec/mpeg4videodec.c s->dpcm_direction = 0; s 2026 libavcodec/mpeg4videodec.c s->mb_intra = 1; s 2027 libavcodec/mpeg4videodec.c if (get_bits1(&s->gb)) { /* compression_mode */ s 2030 libavcodec/mpeg4videodec.c if (!get_bits1(&s->gb)) { s 2031 libavcodec/mpeg4videodec.c skip_bits1(&s->gb); s 2032 libavcodec/mpeg4videodec.c s->qscale = mpeg_get_qscale(s); s 2035 libavcodec/mpeg4videodec.c for (i = 0; i < mpeg4_block_count[s->chroma_format]; i++) { s 2036 libavcodec/mpeg4videodec.c if (mpeg4_decode_studio_block(s, (*s->block32)[i], i) < 0) s 2041 libavcodec/mpeg4videodec.c check_marker(s->avctx, &s->gb, "DPCM block start"); s 2042 libavcodec/mpeg4videodec.c s->dpcm_direction = get_bits1(&s->gb) ? -1 : 1; s 2044 libavcodec/mpeg4videodec.c if (mpeg4_decode_dpcm_macroblock(s, (*s->dpcm_macroblock)[i], i) < 0) s 2049 libavcodec/mpeg4videodec.c if (get_bits_left(&s->gb) >= 24 && show_bits(&s->gb, 23) == 0) { s 2050 libavcodec/mpeg4videodec.c next_start_code_studio(&s->gb); s 2055 libavcodec/mpeg4videodec.c if (get_bits_left(&s->gb) == 0) s 2059 libavcodec/mpeg4videodec.c if (get_bits_left(&s->gb) < 8U && show_bits(&s->gb, get_bits_left(&s->gb)) == 0) s 2065 libavcodec/mpeg4videodec.c static int mpeg4_decode_gop_header(MpegEncContext *s, GetBitContext *gb) s 2070 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_WARNING, "GOP header invalid\n"); s 2076 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "in gop_header"); s 2079 libavcodec/mpeg4videodec.c s->time_base = seconds + 60*(minutes + 60*hours); s 2087 libavcodec/mpeg4videodec.c static int mpeg4_decode_profile_level(MpegEncContext *s, GetBitContext *gb, int *profile, int *level) s 2101 libavcodec/mpeg4videodec.c static int mpeg4_decode_visual_object(MpegEncContext *s, GetBitContext *gb) s 2120 libavcodec/mpeg4videodec.c s->avctx->color_range = video_range ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG; s 2123 libavcodec/mpeg4videodec.c s->avctx->color_primaries = get_bits(gb, 8); s 2124 libavcodec/mpeg4videodec.c s->avctx->color_trc = get_bits(gb, 8); s 2125 libavcodec/mpeg4videodec.c s->avctx->colorspace = get_bits(gb, 8); s 2133 libavcodec/mpeg4videodec.c static void mpeg4_load_default_matrices(MpegEncContext *s) s 2139 libavcodec/mpeg4videodec.c int j = s->idsp.idct_permutation[i]; s 2141 libavcodec/mpeg4videodec.c s->intra_matrix[j] = v; s 2142 libavcodec/mpeg4videodec.c s->chroma_intra_matrix[j] = v; s 2145 libavcodec/mpeg4videodec.c s->inter_matrix[j] = v; s 2146 libavcodec/mpeg4videodec.c s->chroma_inter_matrix[j] = v; s 2152 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 2157 libavcodec/mpeg4videodec.c s->vo_type = get_bits(gb, 8); s 2164 libavcodec/mpeg4videodec.c if (s->vo_type == CORE_STUDIO_VO_TYPE || s 2165 libavcodec/mpeg4videodec.c s->vo_type == SIMPLE_STUDIO_VO_TYPE) { s 2166 libavcodec/mpeg4videodec.c if (s->avctx->profile != FF_PROFILE_UNKNOWN && s->avctx->profile != FF_PROFILE_MPEG4_SIMPLE_STUDIO) s 2168 libavcodec/mpeg4videodec.c s->studio_profile = 1; s 2169 libavcodec/mpeg4videodec.c s->avctx->profile = FF_PROFILE_MPEG4_SIMPLE_STUDIO; s 2171 libavcodec/mpeg4videodec.c } else if (s->studio_profile) { s 2181 libavcodec/mpeg4videodec.c s->aspect_ratio_info = get_bits(gb, 4); s 2182 libavcodec/mpeg4videodec.c if (s->aspect_ratio_info == FF_ASPECT_EXTENDED) { s 2183 libavcodec/mpeg4videodec.c s->avctx->sample_aspect_ratio.num = get_bits(gb, 8); // par_width s 2184 libavcodec/mpeg4videodec.c s->avctx->sample_aspect_ratio.den = get_bits(gb, 8); // par_height s 2186 libavcodec/mpeg4videodec.c s->avctx->sample_aspect_ratio = ff_h263_pixel_aspect[s->aspect_ratio_info]; s 2192 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "illegal chroma format\n"); s 2194 libavcodec/mpeg4videodec.c s->low_delay = get_bits1(gb); s 2197 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after first_half_bitrate"); s 2199 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after latter_half_bitrate"); s 2201 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after first_half_vbv_buffer_size"); s 2204 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after first_half_vbv_occupancy"); s 2206 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after latter_half_vbv_occupancy"); s 2211 libavcodec/mpeg4videodec.c if (s->picture_number == 0) { s 2212 libavcodec/mpeg4videodec.c switch(s->vo_type) { s 2215 libavcodec/mpeg4videodec.c s->low_delay = 1; s 2218 libavcodec/mpeg4videodec.c s->low_delay = 0; s 2225 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "only rectangular vol supported\n"); s 2227 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "Gray shape not supported\n"); s 2231 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "before time_increment_resolution"); s 2233 libavcodec/mpeg4videodec.c s->avctx->framerate.num = get_bits(gb, 16); s 2234 libavcodec/mpeg4videodec.c if (!s->avctx->framerate.num) { s 2235 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "framerate==0\n"); s 2239 libavcodec/mpeg4videodec.c ctx->time_increment_bits = av_log2(s->avctx->framerate.num - 1) + 1; s 2243 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "before fixed_vop_rate"); s 2246 libavcodec/mpeg4videodec.c s->avctx->framerate.den = get_bits(gb, ctx->time_increment_bits); s 2248 libavcodec/mpeg4videodec.c s->avctx->framerate.den = 1; s 2250 libavcodec/mpeg4videodec.c s->avctx->time_base = av_inv_q(av_mul_q(s->avctx->framerate, (AVRational){s->avctx->ticks_per_frame, 1})); s 2256 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "before width"); s 2258 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "before height"); s 2260 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after height"); s 2262 libavcodec/mpeg4videodec.c !(s->width && s->codec_tag == AV_RL32("MP4S"))) { s 2263 libavcodec/mpeg4videodec.c if (s->width && s->height && s 2264 libavcodec/mpeg4videodec.c (s->width != width || s->height != height)) s 2265 libavcodec/mpeg4videodec.c s->context_reinit = 1; s 2266 libavcodec/mpeg4videodec.c s->width = width; s 2267 libavcodec/mpeg4videodec.c s->height = height; s 2271 libavcodec/mpeg4videodec.c s->progressive_sequence = s 2272 libavcodec/mpeg4videodec.c s->progressive_frame = get_bits1(gb) ^ 1; s 2273 libavcodec/mpeg4videodec.c s->interlaced_dct = 0; s 2274 libavcodec/mpeg4videodec.c if (!get_bits1(gb) && (s->avctx->debug & FF_DEBUG_PICT_INFO)) s 2275 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_INFO, /* OBMC Disable */ s 2283 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "Static Sprites not supported\n"); s 2288 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after sprite_width"); s 2290 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after sprite_height"); s 2292 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after sprite_left"); s 2294 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after sprite_top"); s 2298 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 2304 libavcodec/mpeg4videodec.c s->sprite_warping_accuracy = get_bits(gb, 2); s 2312 libavcodec/mpeg4videodec.c s->quant_precision = get_bits(gb, 4); /* quant_precision */ s 2314 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "N-bit not supported\n"); s 2315 libavcodec/mpeg4videodec.c if (s->quant_precision != 5) s 2316 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 2317 libavcodec/mpeg4videodec.c "quant precision %d\n", s->quant_precision); s 2318 libavcodec/mpeg4videodec.c if (s->quant_precision<3 || s->quant_precision>9) { s 2319 libavcodec/mpeg4videodec.c s->quant_precision = 5; s 2322 libavcodec/mpeg4videodec.c s->quant_precision = 5; s 2327 libavcodec/mpeg4videodec.c if ((s->mpeg_quant = get_bits1(gb))) { /* vol_quant_type */ s 2330 libavcodec/mpeg4videodec.c mpeg4_load_default_matrices(s); s 2338 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "insufficient data for custom matrix\n"); s 2346 libavcodec/mpeg4videodec.c j = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 2347 libavcodec/mpeg4videodec.c s->intra_matrix[j] = last; s 2348 libavcodec/mpeg4videodec.c s->chroma_intra_matrix[j] = last; s 2353 libavcodec/mpeg4videodec.c int j = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 2354 libavcodec/mpeg4videodec.c s->intra_matrix[j] = last; s 2355 libavcodec/mpeg4videodec.c s->chroma_intra_matrix[j] = last; s 2365 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "insufficient data for custom matrix\n"); s 2373 libavcodec/mpeg4videodec.c j = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 2374 libavcodec/mpeg4videodec.c s->inter_matrix[j] = v; s 2375 libavcodec/mpeg4videodec.c s->chroma_inter_matrix[j] = v; s 2380 libavcodec/mpeg4videodec.c int j = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 2381 libavcodec/mpeg4videodec.c s->inter_matrix[j] = last; s 2382 libavcodec/mpeg4videodec.c s->chroma_inter_matrix[j] = last; s 2390 libavcodec/mpeg4videodec.c s->quarter_sample = get_bits1(gb); s 2392 libavcodec/mpeg4videodec.c s->quarter_sample = 0; s 2395 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "VOL Header truncated\n"); s 2417 libavcodec/mpeg4videodec.c if (!check_marker(s->avctx, gb, "in complexity estimation part 1")) { s 2435 libavcodec/mpeg4videodec.c if (!check_marker(s->avctx, gb, "in complexity estimation part 2")) { s 2444 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 2457 libavcodec/mpeg4videodec.c s->data_partitioning = get_bits1(gb); s 2458 libavcodec/mpeg4videodec.c if (s->data_partitioning) s 2464 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "new pred not supported\n"); s 2469 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 2500 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "scalability not supported\n"); s 2506 libavcodec/mpeg4videodec.c if (s->avctx->debug&FF_DEBUG_PICT_INFO) { s 2507 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "tb %d/%d, tincrbits:%d, qp_prec:%d, ps:%d, low_delay:%d %s%s%s%s\n", s 2508 libavcodec/mpeg4videodec.c s->avctx->framerate.den, s->avctx->framerate.num, s 2510 libavcodec/mpeg4videodec.c s->quant_precision, s 2511 libavcodec/mpeg4videodec.c s->progressive_sequence, s 2512 libavcodec/mpeg4videodec.c s->low_delay, s 2513 libavcodec/mpeg4videodec.c ctx->scalability ? "scalability " :"" , s->quarter_sample ? "qpel " : "", s 2514 libavcodec/mpeg4videodec.c s->data_partitioning ? "partition " : "", ctx->rvlc ? "rvlc " : "" s 2527 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 2548 libavcodec/mpeg4videodec.c s->divx_packed = e == 3 && last == 'p'; s 2559 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_WARNING, s 2585 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 2588 libavcodec/mpeg4videodec.c if (s->codec_tag == AV_RL32("XVID") || s 2589 libavcodec/mpeg4videodec.c s->codec_tag == AV_RL32("XVIX") || s 2590 libavcodec/mpeg4videodec.c s->codec_tag == AV_RL32("RMP4") || s 2591 libavcodec/mpeg4videodec.c s->codec_tag == AV_RL32("ZMP4") || s 2592 libavcodec/mpeg4videodec.c s->codec_tag == AV_RL32("SIPP")) s 2597 libavcodec/mpeg4videodec.c if (s->codec_tag == AV_RL32("DIVX") && s->vo_type == 0 && s 2606 libavcodec/mpeg4videodec.c if (s->workaround_bugs & FF_BUG_AUTODETECT) { s 2607 libavcodec/mpeg4videodec.c if (s->codec_tag == AV_RL32("XVIX")) s 2608 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_XVID_ILACE; s 2610 libavcodec/mpeg4videodec.c if (s->codec_tag == AV_RL32("UMP4")) s 2611 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_UMP4; s 2614 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_QPEL_CHROMA; s 2617 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_QPEL_CHROMA2; s 2620 libavcodec/mpeg4videodec.c s->padding_bug_score = 256 * 256 * 256 * 64; s 2623 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_QPEL_CHROMA; s 2626 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_EDGE; s 2629 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_DC_CLIP; s 2632 libavcodec/mpeg4videodec.c s->qdsp.put_ ## postfix1 = ff_put_ ## postfix2; \ s 2633 libavcodec/mpeg4videodec.c s->qdsp.put_no_rnd_ ## postfix1 = ff_put_no_rnd_ ## postfix2; \ s 2634 libavcodec/mpeg4videodec.c s->qdsp.avg_ ## postfix1 = ff_avg_ ## postfix2; s 2637 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_STD_QPEL; s 2640 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_DIRECT_BLOCKSIZE; s 2643 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_EDGE; s 2646 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_DC_CLIP; s 2652 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_IEDGE; s 2656 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_DIRECT_BLOCKSIZE; s 2658 libavcodec/mpeg4videodec.c s->padding_bug_score = 256 * 256 * 256 * 64; s 2661 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_EDGE; s 2664 libavcodec/mpeg4videodec.c s->workaround_bugs |= FF_BUG_HPEL_CHROMA; s 2667 libavcodec/mpeg4videodec.c if (s->workaround_bugs & FF_BUG_STD_QPEL) { s 2684 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, s 2686 libavcodec/mpeg4videodec.c s->workaround_bugs, ctx->lavc_build, ctx->xvid_build, s 2687 libavcodec/mpeg4videodec.c ctx->divx_version, ctx->divx_build, s->divx_packed ? "p" : ""); s 2690 libavcodec/mpeg4videodec.c s->codec_id == AV_CODEC_ID_MPEG4 && s 2693 libavcodec/mpeg4videodec.c ff_mpv_idct_init(s); s 2702 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 2706 libavcodec/mpeg4videodec.c s->mcsel = 0; s 2707 libavcodec/mpeg4videodec.c s->pict_type = get_bits(gb, 2) + AV_PICTURE_TYPE_I; /* pict type: I = 0 , P = 1 */ s 2708 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_B && s->low_delay && s 2709 libavcodec/mpeg4videodec.c ctx->vol_control_parameters == 0 && !(s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY)) { s 2710 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "low_delay flag set incorrectly, clearing it\n"); s 2711 libavcodec/mpeg4videodec.c s->low_delay = 0; s 2714 libavcodec/mpeg4videodec.c s->partitioned_frame = s->data_partitioning && s->pict_type != AV_PICTURE_TYPE_B; s 2715 libavcodec/mpeg4videodec.c if (s->partitioned_frame) s 2716 libavcodec/mpeg4videodec.c s->decode_mb = mpeg4_decode_partitioned_mb; s 2718 libavcodec/mpeg4videodec.c s->decode_mb = mpeg4_decode_mb; s 2724 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "before time_increment"); s 2728 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_WARNING, s 2734 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_P || s 2735 libavcodec/mpeg4videodec.c (s->pict_type == AV_PICTURE_TYPE_S && s 2743 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_WARNING, s 2745 libavcodec/mpeg4videodec.c if (s->avctx->framerate.num && 4*s->avctx->framerate.num < 1<<ctx->time_increment_bits) { s 2746 libavcodec/mpeg4videodec.c s->avctx->framerate.num = 1<<ctx->time_increment_bits; s 2747 libavcodec/mpeg4videodec.c s->avctx->time_base = av_inv_q(av_mul_q(s->avctx->framerate, (AVRational){s->avctx->ticks_per_frame, 1})); s 2756 libavcodec/mpeg4videodec.c if (s->pict_type != AV_PICTURE_TYPE_B) { s 2757 libavcodec/mpeg4videodec.c s->last_time_base = s->time_base; s 2758 libavcodec/mpeg4videodec.c s->time_base += time_incr; s 2759 libavcodec/mpeg4videodec.c s->time = s->time_base * (int64_t)s->avctx->framerate.num + time_increment; s 2760 libavcodec/mpeg4videodec.c if (s->workaround_bugs & FF_BUG_UMP4) { s 2761 libavcodec/mpeg4videodec.c if (s->time < s->last_non_b_time) { s 2764 libavcodec/mpeg4videodec.c s->time_base++; s 2765 libavcodec/mpeg4videodec.c s->time += s->avctx->framerate.num; s 2768 libavcodec/mpeg4videodec.c s->pp_time = s->time - s->last_non_b_time; s 2769 libavcodec/mpeg4videodec.c s->last_non_b_time = s->time; s 2771 libavcodec/mpeg4videodec.c s->time = (s->last_time_base + time_incr) * (int64_t)s->avctx->framerate.num + time_increment; s 2772 libavcodec/mpeg4videodec.c s->pb_time = s->pp_time - (s->last_non_b_time - s->time); s 2773 libavcodec/mpeg4videodec.c if (s->pp_time <= s->pb_time || s 2774 libavcodec/mpeg4videodec.c s->pp_time <= s->pp_time - s->pb_time || s 2775 libavcodec/mpeg4videodec.c s->pp_time <= 0) { s 2779 libavcodec/mpeg4videodec.c ff_mpeg4_init_direct_mv(s); s 2782 libavcodec/mpeg4videodec.c ctx->t_frame = s->pb_time; s 2785 libavcodec/mpeg4videodec.c s->pp_field_time = (ROUNDED_DIV(s->last_non_b_time, ctx->t_frame) - s 2786 libavcodec/mpeg4videodec.c ROUNDED_DIV(s->last_non_b_time - s->pp_time, ctx->t_frame)) * 2; s 2787 libavcodec/mpeg4videodec.c s->pb_field_time = (ROUNDED_DIV(s->time, ctx->t_frame) - s 2788 libavcodec/mpeg4videodec.c ROUNDED_DIV(s->last_non_b_time - s->pp_time, ctx->t_frame)) * 2; s 2789 libavcodec/mpeg4videodec.c if (s->pp_field_time <= s->pb_field_time || s->pb_field_time <= 1) { s 2790 libavcodec/mpeg4videodec.c s->pb_field_time = 2; s 2791 libavcodec/mpeg4videodec.c s->pp_field_time = 4; s 2792 libavcodec/mpeg4videodec.c if (!s->progressive_sequence) s 2797 libavcodec/mpeg4videodec.c if (s->avctx->framerate.den) s 2798 libavcodec/mpeg4videodec.c pts = ROUNDED_DIV(s->time, s->avctx->framerate.den); s 2801 libavcodec/mpeg4videodec.c ff_dlog(s->avctx, "MPEG4 PTS: %"PRId64"\n", pts); s 2803 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "before vop_coded"); s 2807 libavcodec/mpeg4videodec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 2808 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "vop not coded\n"); s 2815 libavcodec/mpeg4videodec.c (s->pict_type == AV_PICTURE_TYPE_P || s 2816 libavcodec/mpeg4videodec.c (s->pict_type == AV_PICTURE_TYPE_S && s 2819 libavcodec/mpeg4videodec.c s->no_rounding = get_bits1(gb); s 2821 libavcodec/mpeg4videodec.c s->no_rounding = 0; s 2826 libavcodec/mpeg4videodec.c if (ctx->vol_sprite_usage != 1 || s->pict_type != AV_PICTURE_TYPE_I) { s 2828 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after width"); s 2830 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after height"); s 2832 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after hor_spat_ref"); s 2845 libavcodec/mpeg4videodec.c if (s->pict_type != AV_PICTURE_TYPE_I) s 2847 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_B) s 2851 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "Header truncated\n"); s 2855 libavcodec/mpeg4videodec.c if (!s->progressive_sequence) { s 2856 libavcodec/mpeg4videodec.c s->top_field_first = get_bits1(gb); s 2857 libavcodec/mpeg4videodec.c s->alternate_scan = get_bits1(gb); s 2859 libavcodec/mpeg4videodec.c s->alternate_scan = 0; s 2862 libavcodec/mpeg4videodec.c if (s->alternate_scan) { s 2863 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_alternate_vertical_scan); s 2864 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_alternate_vertical_scan); s 2865 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_h_scantable, ff_alternate_vertical_scan); s 2866 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_v_scantable, ff_alternate_vertical_scan); s 2868 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_zigzag_direct); s 2869 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_zigzag_direct); s 2870 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_h_scantable, ff_alternate_horizontal_scan); s 2871 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_v_scantable, ff_alternate_vertical_scan); s 2874 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_S) { s 2880 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 2883 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "static sprite not supported\n"); s 2885 libavcodec/mpeg4videodec.c memset(s->sprite_offset, 0, sizeof(s->sprite_offset)); s 2886 libavcodec/mpeg4videodec.c memset(s->sprite_delta, 0, sizeof(s->sprite_delta)); s 2891 libavcodec/mpeg4videodec.c s->chroma_qscale = s->qscale = get_bits(gb, s->quant_precision); s 2892 libavcodec/mpeg4videodec.c if (s->qscale == 0) { s 2893 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 2898 libavcodec/mpeg4videodec.c if (s->pict_type != AV_PICTURE_TYPE_I) { s 2899 libavcodec/mpeg4videodec.c s->f_code = get_bits(gb, 3); /* fcode_for */ s 2900 libavcodec/mpeg4videodec.c if (s->f_code == 0) { s 2901 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 2903 libavcodec/mpeg4videodec.c s->f_code = 1; s 2907 libavcodec/mpeg4videodec.c s->f_code = 1; s 2909 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 2910 libavcodec/mpeg4videodec.c s->b_code = get_bits(gb, 3); s 2911 libavcodec/mpeg4videodec.c if (s->b_code == 0) { s 2912 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 2914 libavcodec/mpeg4videodec.c s->b_code=1; s 2918 libavcodec/mpeg4videodec.c s->b_code = 1; s 2920 libavcodec/mpeg4videodec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) { s 2921 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, s 2923 libavcodec/mpeg4videodec.c s->qscale, s->f_code, s->b_code, s 2924 libavcodec/mpeg4videodec.c s->pict_type == AV_PICTURE_TYPE_I ? "I" : (s->pict_type == AV_PICTURE_TYPE_P ? "P" : (s->pict_type == AV_PICTURE_TYPE_B ? "B" : "S")), s 2925 libavcodec/mpeg4videodec.c gb->size_in_bits,s->progressive_sequence, s->alternate_scan, s 2926 libavcodec/mpeg4videodec.c s->top_field_first, s->quarter_sample ? "q" : "h", s 2927 libavcodec/mpeg4videodec.c s->data_partitioning, ctx->resync_marker, s 2928 libavcodec/mpeg4videodec.c ctx->num_sprite_warping_points, s->sprite_warping_accuracy, s 2929 libavcodec/mpeg4videodec.c 1 - s->no_rounding, s->vo_type, s 2933 libavcodec/mpeg4videodec.c s->time, s 2939 libavcodec/mpeg4videodec.c if (ctx->shape != RECT_SHAPE && s->pict_type != AV_PICTURE_TYPE_I) s 2945 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, s 2954 libavcodec/mpeg4videodec.c if (s->vo_type == 0 && ctx->vol_control_parameters == 0 && s 2955 libavcodec/mpeg4videodec.c ctx->divx_version == -1 && s->picture_number == 0) { s 2956 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_WARNING, s 2958 libavcodec/mpeg4videodec.c s->low_delay = 1; s 2961 libavcodec/mpeg4videodec.c s->picture_number++; // better than pic number==0 always ;) s 2964 libavcodec/mpeg4videodec.c s->y_dc_scale_table = ff_mpeg4_y_dc_scale_table; s 2965 libavcodec/mpeg4videodec.c s->c_dc_scale_table = ff_mpeg4_c_dc_scale_table; s 2967 libavcodec/mpeg4videodec.c if (s->workaround_bugs & FF_BUG_EDGE) { s 2968 libavcodec/mpeg4videodec.c s->h_edge_pos = s->width; s 2969 libavcodec/mpeg4videodec.c s->v_edge_pos = s->height; s 2974 libavcodec/mpeg4videodec.c static int read_quant_matrix_ext(MpegEncContext *s, GetBitContext *gb) s 2984 libavcodec/mpeg4videodec.c j = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 2985 libavcodec/mpeg4videodec.c s->intra_matrix[j] = v; s 2986 libavcodec/mpeg4videodec.c s->chroma_intra_matrix[j] = v; s 3005 libavcodec/mpeg4videodec.c j = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 3006 libavcodec/mpeg4videodec.c s->chroma_intra_matrix[j] = v; s 3023 libavcodec/mpeg4videodec.c static void extension_and_user_data(MpegEncContext *s, GetBitContext *gb, int id) s 3035 libavcodec/mpeg4videodec.c read_quant_matrix_ext(s, gb); s 3042 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 3045 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after Time_code[63..48]"); s 3047 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after Time_code[47..32]"); s 3049 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after Time_code[31..16]"); s 3051 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after Time_code[15..0]"); s 3061 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 3066 libavcodec/mpeg4videodec.c s->partitioned_frame = 0; s 3067 libavcodec/mpeg4videodec.c s->interlaced_dct = 0; s 3068 libavcodec/mpeg4videodec.c s->decode_mb = mpeg4_decode_studio_mb; s 3074 libavcodec/mpeg4videodec.c s->pict_type = get_bits(gb, 2) + AV_PICTURE_TYPE_I; /* vop_coding_type */ s 3078 libavcodec/mpeg4videodec.c s->progressive_frame = get_bits1(gb) ^ 1; /* progressive_frame */ s 3081 libavcodec/mpeg4videodec.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 3083 libavcodec/mpeg4videodec.c reset_studio_dc_predictors(s); s 3087 libavcodec/mpeg4videodec.c s->alternate_scan = get_bits1(gb); s 3088 libavcodec/mpeg4videodec.c s->frame_pred_frame_dct = get_bits1(gb); s 3089 libavcodec/mpeg4videodec.c s->dct_precision = get_bits(gb, 2); s 3090 libavcodec/mpeg4videodec.c s->intra_dc_precision = get_bits(gb, 2); s 3091 libavcodec/mpeg4videodec.c s->q_scale_type = get_bits1(gb); s 3094 libavcodec/mpeg4videodec.c if (s->alternate_scan) { s 3095 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_alternate_vertical_scan); s 3096 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_alternate_vertical_scan); s 3097 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_h_scantable, ff_alternate_vertical_scan); s 3098 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_v_scantable, ff_alternate_vertical_scan); s 3100 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_zigzag_direct); s 3101 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_zigzag_direct); s 3102 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_h_scantable, ff_alternate_horizontal_scan); s 3103 libavcodec/mpeg4videodec.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_v_scantable, ff_alternate_vertical_scan); s 3106 libavcodec/mpeg4videodec.c mpeg4_load_default_matrices(s); s 3109 libavcodec/mpeg4videodec.c extension_and_user_data(s, gb, 4); s 3116 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 3122 libavcodec/mpeg4videodec.c avpriv_request_sample(s->avctx, "VO type %u", visual_object_type); s 3127 libavcodec/mpeg4videodec.c extension_and_user_data(s, gb, 1); s 3134 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 3146 libavcodec/mpeg4videodec.c avpriv_request_sample(s->avctx, "MPEG-4 Studio profile non rectangular shape"); s 3153 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "illegal chroma format\n"); s 3160 libavcodec/mpeg4videodec.c s->avctx->pix_fmt = AV_PIX_FMT_GBRP10; s 3163 libavcodec/mpeg4videodec.c s->avctx->pix_fmt = chroma_format == CHROMA_422 ? AV_PIX_FMT_YUV422P10 : AV_PIX_FMT_YUV444P10; s 3167 libavcodec/mpeg4videodec.c avpriv_request_sample(s->avctx, "MPEG-4 Studio profile bit-depth %u", bits_per_raw_sample); s 3170 libavcodec/mpeg4videodec.c if (rgb != ctx->rgb || s->chroma_format != chroma_format) s 3171 libavcodec/mpeg4videodec.c s->context_reinit = 1; s 3172 libavcodec/mpeg4videodec.c s->avctx->bits_per_raw_sample = bits_per_raw_sample; s 3174 libavcodec/mpeg4videodec.c s->chroma_format = chroma_format; s 3177 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "before video_object_layer_width"); s 3179 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "before video_object_layer_height"); s 3181 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after video_object_layer_height"); s 3185 libavcodec/mpeg4videodec.c if (s->width && s->height && s 3186 libavcodec/mpeg4videodec.c (s->width != width || s->height != height)) s 3187 libavcodec/mpeg4videodec.c s->context_reinit = 1; s 3188 libavcodec/mpeg4videodec.c s->width = width; s 3189 libavcodec/mpeg4videodec.c s->height = height; s 3192 libavcodec/mpeg4videodec.c s->aspect_ratio_info = get_bits(gb, 4); s 3193 libavcodec/mpeg4videodec.c if (s->aspect_ratio_info == FF_ASPECT_EXTENDED) { s 3194 libavcodec/mpeg4videodec.c s->avctx->sample_aspect_ratio.num = get_bits(gb, 8); // par_width s 3195 libavcodec/mpeg4videodec.c s->avctx->sample_aspect_ratio.den = get_bits(gb, 8); // par_height s 3197 libavcodec/mpeg4videodec.c s->avctx->sample_aspect_ratio = ff_h263_pixel_aspect[s->aspect_ratio_info]; s 3201 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after first_half_bit_rate"); s 3203 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after latter_half_bit_rate"); s 3205 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after first_half_vbv_buffer_size"); s 3208 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after first_half_vbv_buffer_size"); s 3210 libavcodec/mpeg4videodec.c check_marker(s->avctx, gb, "after latter_half_vbv_occupancy"); s 3211 libavcodec/mpeg4videodec.c s->low_delay = get_bits1(gb); s 3212 libavcodec/mpeg4videodec.c s->mpeg_quant = get_bits1(gb); /* mpeg2_stream */ s 3215 libavcodec/mpeg4videodec.c extension_and_user_data(s, gb, 2); s 3230 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 3241 libavcodec/mpeg4videodec.c if (!s->studio_profile && s->avctx->bits_per_raw_sample != 8) s 3242 libavcodec/mpeg4videodec.c s->avctx->bits_per_raw_sample = 0; s 3244 libavcodec/mpeg4videodec.c if (s->codec_tag == AV_RL32("WV1F") && show_bits(gb, 24) == 0x575630) { s 3254 libavcodec/mpeg4videodec.c (ctx->divx_version >= 0 || ctx->xvid_build >= 0) || s->codec_tag == AV_RL32("QMP4")) { s 3255 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_VERBOSE, "frame skip %d\n", gb->size_in_bits); s 3270 libavcodec/mpeg4videodec.c if (s->avctx->debug & FF_DEBUG_STARTCODE) { s 3271 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "startcode: %3X ", startcode); s 3273 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Video Object Start"); s 3275 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Video Object Layer Start"); s 3277 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Reserved"); s 3279 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "FGS bp start"); s 3281 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Reserved"); s 3283 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Visual Object Seq Start"); s 3285 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Visual Object Seq End"); s 3287 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "User Data"); s 3289 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Group of VOP start"); s 3291 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Video Session Error"); s 3293 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Visual Object Start"); s 3295 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Video Object Plane start"); s 3297 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "slice start"); s 3299 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "extension start"); s 3301 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "fgs start"); s 3303 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "FBA Object start"); s 3305 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "FBA Object Plane start"); s 3307 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Mesh Object start"); s 3309 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Mesh Object Plane start"); s 3311 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Still Texture Object start"); s 3313 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Texture Spatial Layer start"); s 3315 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Texture SNR Layer start"); s 3317 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Texture Tile start"); s 3319 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "Texture Shape Layer start"); s 3321 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "stuffing start"); s 3323 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "reserved"); s 3325 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, "System start"); s 3326 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_DEBUG, " at %d\n", get_bits_count(gb)); s 3331 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_WARNING, "Ignoring multiple VOL headers\n"); s 3340 libavcodec/mpeg4videodec.c mpeg4_decode_gop_header(s, gb); s 3343 libavcodec/mpeg4videodec.c mpeg4_decode_profile_level(s, gb, &profile, &level); s 3346 libavcodec/mpeg4videodec.c s->studio_profile = 1; s 3348 libavcodec/mpeg4videodec.c extension_and_user_data(s, gb, 0); s 3349 libavcodec/mpeg4videodec.c } else if (s->studio_profile) { s 3350 libavcodec/mpeg4videodec.c avpriv_request_sample(s->avctx, "Mixes studio and non studio profile\n"); s 3353 libavcodec/mpeg4videodec.c s->avctx->profile = profile; s 3354 libavcodec/mpeg4videodec.c s->avctx->level = level; s 3356 libavcodec/mpeg4videodec.c if (s->studio_profile) { s 3360 libavcodec/mpeg4videodec.c mpeg4_decode_visual_object(s, gb); s 3370 libavcodec/mpeg4videodec.c if (s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY) s 3371 libavcodec/mpeg4videodec.c s->low_delay = 1; s 3372 libavcodec/mpeg4videodec.c s->avctx->has_b_frames = !s->low_delay; s 3374 libavcodec/mpeg4videodec.c if (s->studio_profile) { s 3375 libavcodec/mpeg4videodec.c if (!s->avctx->bits_per_raw_sample) { s 3376 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_ERROR, "Missing VOL header\n"); s 3413 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 3418 libavcodec/mpeg4videodec.c if (s->divx_packed) { s 3419 libavcodec/mpeg4videodec.c int current_pos = s->gb.buffer == s->bitstream_buffer ? 0 : (get_bits_count(&s->gb) >> 3); s 3438 libavcodec/mpeg4videodec.c av_log(s->avctx, AV_LOG_INFO, "Video uses a non-standard and " s 3443 libavcodec/mpeg4videodec.c av_fast_padded_malloc(&s->bitstream_buffer, s 3444 libavcodec/mpeg4videodec.c &s->allocated_bitstream_buffer_size, s 3446 libavcodec/mpeg4videodec.c if (!s->bitstream_buffer) { s 3447 libavcodec/mpeg4videodec.c s->bitstream_buffer_size = 0; s 3450 libavcodec/mpeg4videodec.c memcpy(s->bitstream_buffer, buf + current_pos, s 3452 libavcodec/mpeg4videodec.c s->bitstream_buffer_size = buf_size - current_pos; s 3463 libavcodec/mpeg4videodec.c Mpeg4DecContext *s = dst->priv_data; s 3465 libavcodec/mpeg4videodec.c int init = s->m.context_initialized; s 3473 libavcodec/mpeg4videodec.c s->time_increment_bits = s1->time_increment_bits; s 3474 libavcodec/mpeg4videodec.c s->shape = s1->shape; s 3475 libavcodec/mpeg4videodec.c s->vol_sprite_usage = s1->vol_sprite_usage; s 3476 libavcodec/mpeg4videodec.c s->sprite_brightness_change = s1->sprite_brightness_change; s 3477 libavcodec/mpeg4videodec.c s->num_sprite_warping_points = s1->num_sprite_warping_points; s 3478 libavcodec/mpeg4videodec.c s->rvlc = s1->rvlc; s 3479 libavcodec/mpeg4videodec.c s->resync_marker = s1->resync_marker; s 3480 libavcodec/mpeg4videodec.c s->t_frame = s1->t_frame; s 3481 libavcodec/mpeg4videodec.c s->new_pred = s1->new_pred; s 3482 libavcodec/mpeg4videodec.c s->enhancement_type = s1->enhancement_type; s 3483 libavcodec/mpeg4videodec.c s->scalability = s1->scalability; s 3484 libavcodec/mpeg4videodec.c s->use_intra_dc_vlc = s1->use_intra_dc_vlc; s 3485 libavcodec/mpeg4videodec.c s->intra_dc_threshold = s1->intra_dc_threshold; s 3486 libavcodec/mpeg4videodec.c s->divx_version = s1->divx_version; s 3487 libavcodec/mpeg4videodec.c s->divx_build = s1->divx_build; s 3488 libavcodec/mpeg4videodec.c s->xvid_build = s1->xvid_build; s 3489 libavcodec/mpeg4videodec.c s->lavc_build = s1->lavc_build; s 3490 libavcodec/mpeg4videodec.c s->showed_packed_warning = s1->showed_packed_warning; s 3491 libavcodec/mpeg4videodec.c s->vol_control_parameters = s1->vol_control_parameters; s 3492 libavcodec/mpeg4videodec.c s->cplx_estimation_trash_i = s1->cplx_estimation_trash_i; s 3493 libavcodec/mpeg4videodec.c s->cplx_estimation_trash_p = s1->cplx_estimation_trash_p; s 3494 libavcodec/mpeg4videodec.c s->cplx_estimation_trash_b = s1->cplx_estimation_trash_b; s 3495 libavcodec/mpeg4videodec.c s->rgb = s1->rgb; s 3497 libavcodec/mpeg4videodec.c memcpy(s->sprite_shift, s1->sprite_shift, sizeof(s1->sprite_shift)); s 3498 libavcodec/mpeg4videodec.c memcpy(s->sprite_traj, s1->sprite_traj, sizeof(s1->sprite_traj)); s 3501 libavcodec/mpeg4videodec.c ff_xvid_idct_init(&s->m.idsp, dst); s 3541 libavcodec/mpeg4videodec.c MpegEncContext *s = &ctx->m; s 3556 libavcodec/mpeg4videodec.c s->h263_pred = 1; s 3557 libavcodec/mpeg4videodec.c s->low_delay = 0; /* default, might be overridden in the vol header during header parsing */ s 3558 libavcodec/mpeg4videodec.c s->decode_mb = mpeg4_decode_mb; s 65 libavcodec/mpeg4videoenc.c static inline int get_block_rate(MpegEncContext *s, int16_t block[64], s 79 libavcodec/mpeg4videoenc.c rate += s->intra_ac_vlc_length[UNI_AC_ENC_INDEX(j - last - 1, level)]; s 81 libavcodec/mpeg4videoenc.c rate += s->intra_ac_vlc_last_length[UNI_AC_ENC_INDEX(j - last - 1, level)]; s 83 libavcodec/mpeg4videoenc.c rate += s->ac_esc_length; s 100 libavcodec/mpeg4videoenc.c static inline void restore_ac_coeffs(MpegEncContext *s, int16_t block[6][64], s 105 libavcodec/mpeg4videoenc.c memcpy(s->block_last_index, zigzag_last_index, sizeof(int) * 6); s 108 libavcodec/mpeg4videoenc.c int16_t *ac_val = &s->ac_val[0][0][0] + s->block_index[n] * 16; s 110 libavcodec/mpeg4videoenc.c st[n] = s->intra_scantable.permutated; s 114 libavcodec/mpeg4videoenc.c block[n][s->idsp.idct_permutation[i]] = ac_val[i + 8]; s 118 libavcodec/mpeg4videoenc.c block[n][s->idsp.idct_permutation[i << 3]] = ac_val[i]; s 131 libavcodec/mpeg4videoenc.c static inline int decide_ac_pred(MpegEncContext *s, int16_t block[6][64], s 137 libavcodec/mpeg4videoenc.c int8_t *const qscale_table = s->current_picture.qscale_table; s 139 libavcodec/mpeg4videoenc.c memcpy(zigzag_last_index, s->block_last_index, sizeof(int) * 6); s 144 libavcodec/mpeg4videoenc.c score -= get_block_rate(s, block[n], s->block_last_index[n], s 145 libavcodec/mpeg4videoenc.c s->intra_scantable.permutated); s 147 libavcodec/mpeg4videoenc.c ac_val = &s->ac_val[0][0][0] + s->block_index[n] * 16; s 150 libavcodec/mpeg4videoenc.c const int xy = s->mb_x + s->mb_y * s->mb_stride - s->mb_stride; s 152 libavcodec/mpeg4videoenc.c ac_val -= s->block_wrap[n] * 16; s 153 libavcodec/mpeg4videoenc.c if (s->mb_y == 0 || s->qscale == qscale_table[xy] || n == 2 || n == 3) { s 156 libavcodec/mpeg4videoenc.c const int level = block[n][s->idsp.idct_permutation[i]]; s 157 libavcodec/mpeg4videoenc.c block[n][s->idsp.idct_permutation[i]] = level - ac_val[i + 8]; s 158 libavcodec/mpeg4videoenc.c ac_val1[i] = block[n][s->idsp.idct_permutation[i << 3]]; s 164 libavcodec/mpeg4videoenc.c const int level = block[n][s->idsp.idct_permutation[i]]; s 165 libavcodec/mpeg4videoenc.c block[n][s->idsp.idct_permutation[i]] = level - ROUNDED_DIV(ac_val[i + 8] * qscale_table[xy], s->qscale); s 166 libavcodec/mpeg4videoenc.c ac_val1[i] = block[n][s->idsp.idct_permutation[i << 3]]; s 170 libavcodec/mpeg4videoenc.c st[n] = s->intra_h_scantable.permutated; s 172 libavcodec/mpeg4videoenc.c const int xy = s->mb_x - 1 + s->mb_y * s->mb_stride; s 175 libavcodec/mpeg4videoenc.c if (s->mb_x == 0 || s->qscale == qscale_table[xy] || n == 1 || n == 3) { s 178 libavcodec/mpeg4videoenc.c const int level = block[n][s->idsp.idct_permutation[i << 3]]; s 179 libavcodec/mpeg4videoenc.c block[n][s->idsp.idct_permutation[i << 3]] = level - ac_val[i]; s 181 libavcodec/mpeg4videoenc.c ac_val1[i + 8] = block[n][s->idsp.idct_permutation[i]]; s 186 libavcodec/mpeg4videoenc.c const int level = block[n][s->idsp.idct_permutation[i << 3]]; s 187 libavcodec/mpeg4videoenc.c block[n][s->idsp.idct_permutation[i << 3]] = level - ROUNDED_DIV(ac_val[i] * qscale_table[xy], s->qscale); s 189 libavcodec/mpeg4videoenc.c ac_val1[i + 8] = block[n][s->idsp.idct_permutation[i]]; s 192 libavcodec/mpeg4videoenc.c st[n] = s->intra_v_scantable.permutated; s 198 libavcodec/mpeg4videoenc.c s->block_last_index[n] = i; s 200 libavcodec/mpeg4videoenc.c score += get_block_rate(s, block[n], s->block_last_index[n], st[n]); s 206 libavcodec/mpeg4videoenc.c restore_ac_coeffs(s, block, dir, st, zigzag_last_index); s 214 libavcodec/mpeg4videoenc.c void ff_clean_mpeg4_qscales(MpegEncContext *s) s 217 libavcodec/mpeg4videoenc.c int8_t *const qscale_table = s->current_picture.qscale_table; s 219 libavcodec/mpeg4videoenc.c ff_clean_h263_qscales(s); s 221 libavcodec/mpeg4videoenc.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 226 libavcodec/mpeg4videoenc.c for (i = 0; i < s->mb_num; i++) { s 227 libavcodec/mpeg4videoenc.c int mb_xy = s->mb_index2xy[i]; s 231 libavcodec/mpeg4videoenc.c if (2 * odd > s->mb_num) s 236 libavcodec/mpeg4videoenc.c for (i = 0; i < s->mb_num; i++) { s 237 libavcodec/mpeg4videoenc.c int mb_xy = s->mb_index2xy[i]; s 244 libavcodec/mpeg4videoenc.c for (i = 1; i < s->mb_num; i++) { s 245 libavcodec/mpeg4videoenc.c int mb_xy = s->mb_index2xy[i]; s 246 libavcodec/mpeg4videoenc.c if (qscale_table[mb_xy] != qscale_table[s->mb_index2xy[i - 1]] && s 247 libavcodec/mpeg4videoenc.c (s->mb_type[mb_xy] & CANDIDATE_MB_TYPE_DIRECT)) { s 248 libavcodec/mpeg4videoenc.c s->mb_type[mb_xy] |= CANDIDATE_MB_TYPE_BIDIR; s 258 libavcodec/mpeg4videoenc.c static inline void mpeg4_encode_dc(PutBitContext *s, int level, int n) s 264 libavcodec/mpeg4videoenc.c put_bits(s, uni_DCtab_lum_len[level], uni_DCtab_lum_bits[level]); s 267 libavcodec/mpeg4videoenc.c put_bits(s, uni_DCtab_chrom_len[level], uni_DCtab_chrom_bits[level]); s 283 libavcodec/mpeg4videoenc.c static inline void mpeg4_encode_block(MpegEncContext *s, s 291 libavcodec/mpeg4videoenc.c const int last_index = s->block_last_index[n]; s 293 libavcodec/mpeg4videoenc.c if (s->mb_intra) { // Note gcc (3.2.1 at least) will optimize this away s 344 libavcodec/mpeg4videoenc.c static int mpeg4_get_block_length(MpegEncContext *s, s 350 libavcodec/mpeg4videoenc.c const int last_index = s->block_last_index[n]; s 353 libavcodec/mpeg4videoenc.c if (s->mb_intra) { // Note gcc (3.2.1 at least) will optimize this away s 398 libavcodec/mpeg4videoenc.c static inline void mpeg4_encode_blocks(MpegEncContext *s, int16_t block[6][64], s 406 libavcodec/mpeg4videoenc.c if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) { s 408 libavcodec/mpeg4videoenc.c skip_put_bits(&s->pb, s 409 libavcodec/mpeg4videoenc.c mpeg4_get_block_length(s, block[i], i, s 414 libavcodec/mpeg4videoenc.c mpeg4_encode_block(s, block[i], i, s 418 libavcodec/mpeg4videoenc.c if (s->avctx->flags2 & AV_CODEC_FLAG2_NO_OUTPUT) { s 420 libavcodec/mpeg4videoenc.c skip_put_bits(&s->pb, s 421 libavcodec/mpeg4videoenc.c mpeg4_get_block_length(s, block[i], i, 0, s 422 libavcodec/mpeg4videoenc.c s->intra_scantable.permutated)); s 426 libavcodec/mpeg4videoenc.c mpeg4_encode_block(s, block[i], i, 0, s 427 libavcodec/mpeg4videoenc.c s->intra_scantable.permutated, dc_pb, ac_pb); s 432 libavcodec/mpeg4videoenc.c static inline int get_b_cbp(MpegEncContext *s, int16_t block[6][64], s 437 libavcodec/mpeg4videoenc.c if (s->mpv_flags & FF_MPV_FLAG_CBP_RD) { s 439 libavcodec/mpeg4videoenc.c const int lambda = s->lambda2 >> (FF_LAMBDA_SHIFT - 6); s 442 libavcodec/mpeg4videoenc.c if (s->coded_score[i] < 0) { s 443 libavcodec/mpeg4videoenc.c score += s->coded_score[i]; s 450 libavcodec/mpeg4videoenc.c if ((motion_x | motion_y | s->dquant | mb_type) == 0) s 459 libavcodec/mpeg4videoenc.c if (s->block_last_index[i] >= 0 && ((cbp >> (5 - i)) & 1) == 0) { s 460 libavcodec/mpeg4videoenc.c s->block_last_index[i] = -1; s 461 libavcodec/mpeg4videoenc.c s->bdsp.clear_block(s->block[i]); s 466 libavcodec/mpeg4videoenc.c if (s->block_last_index[i] >= 0) s 476 libavcodec/mpeg4videoenc.c void ff_mpeg4_encode_mb(MpegEncContext *s, int16_t block[6][64], s 480 libavcodec/mpeg4videoenc.c PutBitContext *const pb2 = s->data_partitioning ? &s->pb2 : &s->pb; s 481 libavcodec/mpeg4videoenc.c PutBitContext *const tex_pb = s->data_partitioning && s->pict_type != AV_PICTURE_TYPE_B ? &s->tex_pb : &s->pb; s 482 libavcodec/mpeg4videoenc.c PutBitContext *const dc_pb = s->data_partitioning && s->pict_type != AV_PICTURE_TYPE_I ? &s->pb2 : &s->pb; s 483 libavcodec/mpeg4videoenc.c const int interleaved_stats = (s->avctx->flags & AV_CODEC_FLAG_PASS1) && !s->data_partitioning ? 1 : 0; s 485 libavcodec/mpeg4videoenc.c if (!s->mb_intra) { s 488 libavcodec/mpeg4videoenc.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 491 libavcodec/mpeg4videoenc.c int mb_type = mb_type_table[s->mv_dir]; s 493 libavcodec/mpeg4videoenc.c if (s->mb_x == 0) { s 495 libavcodec/mpeg4videoenc.c s->last_mv[i][0][0] = s 496 libavcodec/mpeg4videoenc.c s->last_mv[i][0][1] = s 497 libavcodec/mpeg4videoenc.c s->last_mv[i][1][0] = s 498 libavcodec/mpeg4videoenc.c s->last_mv[i][1][1] = 0; s 501 libavcodec/mpeg4videoenc.c av_assert2(s->dquant >= -2 && s->dquant <= 2); s 502 libavcodec/mpeg4videoenc.c av_assert2((s->dquant & 1) == 0); s 506 libavcodec/mpeg4videoenc.c if (s->next_picture.mbskip_table[s->mb_y * s->mb_stride + s->mb_x]) { // FIXME avoid DCT & ... s 507 libavcodec/mpeg4videoenc.c s->skip_count++; s 508 libavcodec/mpeg4videoenc.c s->mv[0][0][0] = s 509 libavcodec/mpeg4videoenc.c s->mv[0][0][1] = s 510 libavcodec/mpeg4videoenc.c s->mv[1][0][0] = s 511 libavcodec/mpeg4videoenc.c s->mv[1][0][1] = 0; s 512 libavcodec/mpeg4videoenc.c s->mv_dir = MV_DIR_FORWARD; // doesn't matter s 513 libavcodec/mpeg4videoenc.c s->qscale -= s->dquant; s 519 libavcodec/mpeg4videoenc.c cbp = get_b_cbp(s, block, motion_x, motion_y, mb_type); s 523 libavcodec/mpeg4videoenc.c av_assert2(s->dquant == 0); s 525 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* mb not coded modb1=1 */ s 528 libavcodec/mpeg4videoenc.c s->misc_bits++; s 529 libavcodec/mpeg4videoenc.c s->last_bits++; s 531 libavcodec/mpeg4videoenc.c s->skip_count++; s 535 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* mb coded modb1=0 */ s 536 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, cbp ? 0 : 1); /* modb2 */ // FIXME merge s 537 libavcodec/mpeg4videoenc.c put_bits(&s->pb, mb_type + 1, 1); // this table is so simple that we don't need it :) s 539 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 6, cbp); s 542 libavcodec/mpeg4videoenc.c if (s->dquant) s 543 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 2, (s->dquant >> 2) + 3); s 545 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); s 547 libavcodec/mpeg4videoenc.c s->qscale -= s->dquant; s 549 libavcodec/mpeg4videoenc.c if (!s->progressive_sequence) { s 551 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->interlaced_dct); s 553 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->mv_type == MV_TYPE_FIELD); s 557 libavcodec/mpeg4videoenc.c s->misc_bits += get_bits_diff(s); s 560 libavcodec/mpeg4videoenc.c av_assert2(s->mv_dir & MV_DIRECT); s 561 libavcodec/mpeg4videoenc.c ff_h263_encode_motion_vector(s, motion_x, motion_y, 1); s 562 libavcodec/mpeg4videoenc.c s->b_count++; s 563 libavcodec/mpeg4videoenc.c s->f_count++; s 566 libavcodec/mpeg4videoenc.c if (s->mv_type != MV_TYPE_FIELD) { s 567 libavcodec/mpeg4videoenc.c if (s->mv_dir & MV_DIR_FORWARD) { s 568 libavcodec/mpeg4videoenc.c ff_h263_encode_motion_vector(s, s 569 libavcodec/mpeg4videoenc.c s->mv[0][0][0] - s->last_mv[0][0][0], s 570 libavcodec/mpeg4videoenc.c s->mv[0][0][1] - s->last_mv[0][0][1], s 571 libavcodec/mpeg4videoenc.c s->f_code); s 572 libavcodec/mpeg4videoenc.c s->last_mv[0][0][0] = s 573 libavcodec/mpeg4videoenc.c s->last_mv[0][1][0] = s->mv[0][0][0]; s 574 libavcodec/mpeg4videoenc.c s->last_mv[0][0][1] = s 575 libavcodec/mpeg4videoenc.c s->last_mv[0][1][1] = s->mv[0][0][1]; s 576 libavcodec/mpeg4videoenc.c s->f_count++; s 578 libavcodec/mpeg4videoenc.c if (s->mv_dir & MV_DIR_BACKWARD) { s 579 libavcodec/mpeg4videoenc.c ff_h263_encode_motion_vector(s, s 580 libavcodec/mpeg4videoenc.c s->mv[1][0][0] - s->last_mv[1][0][0], s 581 libavcodec/mpeg4videoenc.c s->mv[1][0][1] - s->last_mv[1][0][1], s 582 libavcodec/mpeg4videoenc.c s->b_code); s 583 libavcodec/mpeg4videoenc.c s->last_mv[1][0][0] = s 584 libavcodec/mpeg4videoenc.c s->last_mv[1][1][0] = s->mv[1][0][0]; s 585 libavcodec/mpeg4videoenc.c s->last_mv[1][0][1] = s 586 libavcodec/mpeg4videoenc.c s->last_mv[1][1][1] = s->mv[1][0][1]; s 587 libavcodec/mpeg4videoenc.c s->b_count++; s 590 libavcodec/mpeg4videoenc.c if (s->mv_dir & MV_DIR_FORWARD) { s 591 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->field_select[0][0]); s 592 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->field_select[0][1]); s 594 libavcodec/mpeg4videoenc.c if (s->mv_dir & MV_DIR_BACKWARD) { s 595 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->field_select[1][0]); s 596 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->field_select[1][1]); s 598 libavcodec/mpeg4videoenc.c if (s->mv_dir & MV_DIR_FORWARD) { s 600 libavcodec/mpeg4videoenc.c ff_h263_encode_motion_vector(s, s 601 libavcodec/mpeg4videoenc.c s->mv[0][i][0] - s->last_mv[0][i][0], s 602 libavcodec/mpeg4videoenc.c s->mv[0][i][1] - s->last_mv[0][i][1] / 2, s 603 libavcodec/mpeg4videoenc.c s->f_code); s 604 libavcodec/mpeg4videoenc.c s->last_mv[0][i][0] = s->mv[0][i][0]; s 605 libavcodec/mpeg4videoenc.c s->last_mv[0][i][1] = s->mv[0][i][1] * 2; s 607 libavcodec/mpeg4videoenc.c s->f_count++; s 609 libavcodec/mpeg4videoenc.c if (s->mv_dir & MV_DIR_BACKWARD) { s 611 libavcodec/mpeg4videoenc.c ff_h263_encode_motion_vector(s, s 612 libavcodec/mpeg4videoenc.c s->mv[1][i][0] - s->last_mv[1][i][0], s 613 libavcodec/mpeg4videoenc.c s->mv[1][i][1] - s->last_mv[1][i][1] / 2, s 614 libavcodec/mpeg4videoenc.c s->b_code); s 615 libavcodec/mpeg4videoenc.c s->last_mv[1][i][0] = s->mv[1][i][0]; s 616 libavcodec/mpeg4videoenc.c s->last_mv[1][i][1] = s->mv[1][i][1] * 2; s 618 libavcodec/mpeg4videoenc.c s->b_count++; s 624 libavcodec/mpeg4videoenc.c s->mv_bits += get_bits_diff(s); s 626 libavcodec/mpeg4videoenc.c mpeg4_encode_blocks(s, block, NULL, NULL, NULL, &s->pb); s 629 libavcodec/mpeg4videoenc.c s->p_tex_bits += get_bits_diff(s); s 631 libavcodec/mpeg4videoenc.c cbp = get_p_cbp(s, block, motion_x, motion_y); s 633 libavcodec/mpeg4videoenc.c if ((cbp | motion_x | motion_y | s->dquant) == 0 && s 634 libavcodec/mpeg4videoenc.c s->mv_type == MV_TYPE_16X16) { s 638 libavcodec/mpeg4videoenc.c if (s->max_b_frames > 0) { s 643 libavcodec/mpeg4videoenc.c x = s->mb_x * 16; s 644 libavcodec/mpeg4videoenc.c y = s->mb_y * 16; s 646 libavcodec/mpeg4videoenc.c offset = x + y * s->linesize; s 647 libavcodec/mpeg4videoenc.c p_pic = s->new_picture.f->data[0] + offset; s 649 libavcodec/mpeg4videoenc.c s->mb_skipped = 1; s 650 libavcodec/mpeg4videoenc.c for (i = 0; i < s->max_b_frames; i++) { s 653 libavcodec/mpeg4videoenc.c Picture *pic = s->reordered_input_picture[i + 1]; s 662 libavcodec/mpeg4videoenc.c if (x + 16 > s->width || y + 16 > s->height) { s 664 libavcodec/mpeg4videoenc.c int xe = FFMIN(16, s->width - x); s 665 libavcodec/mpeg4videoenc.c int ye = FFMIN(16, s->height - y); s 669 libavcodec/mpeg4videoenc.c diff += FFABS(p_pic[x1 + y1 * s->linesize] - b_pic[x1 + y1 * s->linesize]); s 674 libavcodec/mpeg4videoenc.c diff = s->mecc.sad[0](NULL, p_pic, b_pic, s->linesize, 16); s 676 libavcodec/mpeg4videoenc.c if (diff > s->qscale * 70) { // FIXME check that 70 is optimal s 677 libavcodec/mpeg4videoenc.c s->mb_skipped = 0; s 682 libavcodec/mpeg4videoenc.c s->mb_skipped = 1; s 684 libavcodec/mpeg4videoenc.c if (s->mb_skipped == 1) { s 686 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); s 689 libavcodec/mpeg4videoenc.c s->misc_bits++; s 690 libavcodec/mpeg4videoenc.c s->last_bits++; s 692 libavcodec/mpeg4videoenc.c s->skip_count++; s 698 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* mb coded */ s 702 libavcodec/mpeg4videoenc.c if (s->mv_type == MV_TYPE_16X16) { s 703 libavcodec/mpeg4videoenc.c if (s->dquant) s 705 libavcodec/mpeg4videoenc.c put_bits(&s->pb, s 710 libavcodec/mpeg4videoenc.c if (s->dquant) s 711 libavcodec/mpeg4videoenc.c put_bits(pb2, 2, dquant_code[s->dquant + 2]); s 713 libavcodec/mpeg4videoenc.c if (!s->progressive_sequence) { s 715 libavcodec/mpeg4videoenc.c put_bits(pb2, 1, s->interlaced_dct); s 720 libavcodec/mpeg4videoenc.c s->misc_bits += get_bits_diff(s); s 723 libavcodec/mpeg4videoenc.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 725 libavcodec/mpeg4videoenc.c ff_h263_encode_motion_vector(s, s 728 libavcodec/mpeg4videoenc.c s->f_code); s 729 libavcodec/mpeg4videoenc.c } else if (s->mv_type == MV_TYPE_FIELD) { s 730 libavcodec/mpeg4videoenc.c if (s->dquant) s 732 libavcodec/mpeg4videoenc.c put_bits(&s->pb, s 737 libavcodec/mpeg4videoenc.c if (s->dquant) s 738 libavcodec/mpeg4videoenc.c put_bits(pb2, 2, dquant_code[s->dquant + 2]); s 740 libavcodec/mpeg4videoenc.c av_assert2(!s->progressive_sequence); s 742 libavcodec/mpeg4videoenc.c put_bits(pb2, 1, s->interlaced_dct); s 746 libavcodec/mpeg4videoenc.c s->misc_bits += get_bits_diff(s); s 749 libavcodec/mpeg4videoenc.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 752 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->field_select[0][0]); s 753 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->field_select[0][1]); s 755 libavcodec/mpeg4videoenc.c ff_h263_encode_motion_vector(s, s 756 libavcodec/mpeg4videoenc.c s->mv[0][0][0] - pred_x, s 757 libavcodec/mpeg4videoenc.c s->mv[0][0][1] - pred_y, s 758 libavcodec/mpeg4videoenc.c s->f_code); s 759 libavcodec/mpeg4videoenc.c ff_h263_encode_motion_vector(s, s 760 libavcodec/mpeg4videoenc.c s->mv[0][1][0] - pred_x, s 761 libavcodec/mpeg4videoenc.c s->mv[0][1][1] - pred_y, s 762 libavcodec/mpeg4videoenc.c s->f_code); s 764 libavcodec/mpeg4videoenc.c av_assert2(s->mv_type == MV_TYPE_8X8); s 765 libavcodec/mpeg4videoenc.c put_bits(&s->pb, s 770 libavcodec/mpeg4videoenc.c if (!s->progressive_sequence && cbp) s 771 libavcodec/mpeg4videoenc.c put_bits(pb2, 1, s->interlaced_dct); s 774 libavcodec/mpeg4videoenc.c s->misc_bits += get_bits_diff(s); s 778 libavcodec/mpeg4videoenc.c ff_h263_pred_motion(s, i, 0, &pred_x, &pred_y); s 780 libavcodec/mpeg4videoenc.c ff_h263_encode_motion_vector(s, s 781 libavcodec/mpeg4videoenc.c s->current_picture.motion_val[0][s->block_index[i]][0] - pred_x, s 782 libavcodec/mpeg4videoenc.c s->current_picture.motion_val[0][s->block_index[i]][1] - pred_y, s 783 libavcodec/mpeg4videoenc.c s->f_code); s 788 libavcodec/mpeg4videoenc.c s->mv_bits += get_bits_diff(s); s 790 libavcodec/mpeg4videoenc.c mpeg4_encode_blocks(s, block, NULL, NULL, NULL, tex_pb); s 793 libavcodec/mpeg4videoenc.c s->p_tex_bits += get_bits_diff(s); s 795 libavcodec/mpeg4videoenc.c s->f_count++; s 806 libavcodec/mpeg4videoenc.c dc_diff[i] = ff_mpeg4_pred_dc(s, i, block[i][0], &dir[i], 1); s 808 libavcodec/mpeg4videoenc.c if (s->avctx->flags & AV_CODEC_FLAG_AC_PRED) { s 809 libavcodec/mpeg4videoenc.c s->ac_pred = decide_ac_pred(s, block, dir, scan_table, zigzag_last_index); s 812 libavcodec/mpeg4videoenc.c scan_table[i] = s->intra_scantable.permutated; s 818 libavcodec/mpeg4videoenc.c if (s->block_last_index[i] >= 1) s 822 libavcodec/mpeg4videoenc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 823 libavcodec/mpeg4videoenc.c if (s->dquant) s 825 libavcodec/mpeg4videoenc.c put_bits(&s->pb, s 829 libavcodec/mpeg4videoenc.c if (s->dquant) s 831 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* mb coded */ s 832 libavcodec/mpeg4videoenc.c put_bits(&s->pb, s 836 libavcodec/mpeg4videoenc.c put_bits(pb2, 1, s->ac_pred); s 839 libavcodec/mpeg4videoenc.c if (s->dquant) s 840 libavcodec/mpeg4videoenc.c put_bits(dc_pb, 2, dquant_code[s->dquant + 2]); s 842 libavcodec/mpeg4videoenc.c if (!s->progressive_sequence) s 843 libavcodec/mpeg4videoenc.c put_bits(dc_pb, 1, s->interlaced_dct); s 846 libavcodec/mpeg4videoenc.c s->misc_bits += get_bits_diff(s); s 848 libavcodec/mpeg4videoenc.c mpeg4_encode_blocks(s, block, dc_diff, scan_table, dc_pb, tex_pb); s 851 libavcodec/mpeg4videoenc.c s->i_tex_bits += get_bits_diff(s); s 852 libavcodec/mpeg4videoenc.c s->i_count++; s 856 libavcodec/mpeg4videoenc.c if (s->ac_pred) s 857 libavcodec/mpeg4videoenc.c restore_ac_coeffs(s, block, dir, scan_table, zigzag_last_index); s 874 libavcodec/mpeg4videoenc.c void ff_set_mpeg4_time(MpegEncContext *s) s 876 libavcodec/mpeg4videoenc.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 877 libavcodec/mpeg4videoenc.c ff_mpeg4_init_direct_mv(s); s 879 libavcodec/mpeg4videoenc.c s->last_time_base = s->time_base; s 880 libavcodec/mpeg4videoenc.c s->time_base = FFUDIV(s->time, s->avctx->time_base.den); s 884 libavcodec/mpeg4videoenc.c static void mpeg4_encode_gop_header(MpegEncContext *s) s 889 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0); s 890 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, GOP_STARTCODE); s 892 libavcodec/mpeg4videoenc.c time = s->current_picture_ptr->f->pts; s 893 libavcodec/mpeg4videoenc.c if (s->reordered_input_picture[1]) s 894 libavcodec/mpeg4videoenc.c time = FFMIN(time, s->reordered_input_picture[1]->f->pts); s 895 libavcodec/mpeg4videoenc.c time = time * s->avctx->time_base.num; s 896 libavcodec/mpeg4videoenc.c s->last_time_base = FFUDIV(time, s->avctx->time_base.den); s 898 libavcodec/mpeg4videoenc.c seconds = FFUDIV(time, s->avctx->time_base.den); s 903 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 5, hours); s 904 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 6, minutes); s 905 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); s 906 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 6, seconds); s 908 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, !!(s->avctx->flags & AV_CODEC_FLAG_CLOSED_GOP)); s 909 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); // broken link == NO s 911 libavcodec/mpeg4videoenc.c ff_mpeg4_stuffing(&s->pb); s 914 libavcodec/mpeg4videoenc.c static void mpeg4_encode_visual_object_header(MpegEncContext *s) s 919 libavcodec/mpeg4videoenc.c if (s->avctx->profile != FF_PROFILE_UNKNOWN) { s 920 libavcodec/mpeg4videoenc.c profile_and_level_indication = s->avctx->profile << 4; s 921 libavcodec/mpeg4videoenc.c } else if (s->max_b_frames || s->quarter_sample) { s 927 libavcodec/mpeg4videoenc.c if (s->avctx->level != FF_LEVEL_UNKNOWN) s 928 libavcodec/mpeg4videoenc.c profile_and_level_indication |= s->avctx->level; s 939 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0); s 940 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, VOS_STARTCODE); s 942 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 8, profile_and_level_indication); s 944 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0); s 945 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, VISUAL_OBJ_STARTCODE); s 947 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); s 948 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 4, vo_ver_id); s 949 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 3, 1); // priority s 951 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 4, 1); // visual obj type== video obj s 953 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); // video signal type == no clue // FIXME s 955 libavcodec/mpeg4videoenc.c ff_mpeg4_stuffing(&s->pb); s 958 libavcodec/mpeg4videoenc.c static void mpeg4_encode_vol_header(MpegEncContext *s, s 967 libavcodec/mpeg4videoenc.c if (s->max_b_frames || s->quarter_sample) { s 969 libavcodec/mpeg4videoenc.c s->vo_type = ADV_SIMPLE_VO_TYPE; s 972 libavcodec/mpeg4videoenc.c s->vo_type = SIMPLE_VO_TYPE; s 975 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0); s 976 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0x100 + vo_number); /* video obj */ s 977 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0); s 978 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0x120 + vol_number); /* video obj layer */ s 980 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* random access vol */ s 981 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 8, s->vo_type); /* video obj type indication */ s 982 libavcodec/mpeg4videoenc.c if (s->workaround_bugs & FF_BUG_MS) { s 983 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* is obj layer id= no */ s 985 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* is obj layer id= yes */ s 986 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 4, vo_ver_id); /* is obj layer ver id */ s 987 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 3, 1); /* is obj layer priority */ s 990 libavcodec/mpeg4videoenc.c s->aspect_ratio_info = ff_h263_aspect_to_info(s->avctx->sample_aspect_ratio); s 992 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 4, s->aspect_ratio_info); /* aspect ratio info */ s 993 libavcodec/mpeg4videoenc.c if (s->aspect_ratio_info == FF_ASPECT_EXTENDED) { s 994 libavcodec/mpeg4videoenc.c av_reduce(&s->avctx->sample_aspect_ratio.num, &s->avctx->sample_aspect_ratio.den, s 995 libavcodec/mpeg4videoenc.c s->avctx->sample_aspect_ratio.num, s->avctx->sample_aspect_ratio.den, 255); s 996 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 8, s->avctx->sample_aspect_ratio.num); s 997 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 8, s->avctx->sample_aspect_ratio.den); s 1000 libavcodec/mpeg4videoenc.c if (s->workaround_bugs & FF_BUG_MS) { s 1001 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* vol control parameters= no @@@ */ s 1003 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* vol control parameters= yes */ s 1004 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 2, 1); /* chroma format YUV 420/YV12 */ s 1005 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->low_delay); s 1006 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* vbv parameters= no */ s 1009 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 2, RECT_SHAPE); /* vol shape= rectangle */ s 1010 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* marker bit */ s 1012 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, s->avctx->time_base.den); s 1013 libavcodec/mpeg4videoenc.c if (s->time_increment_bits < 1) s 1014 libavcodec/mpeg4videoenc.c s->time_increment_bits = 1; s 1015 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* marker bit */ s 1016 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* fixed vop rate=no */ s 1017 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* marker bit */ s 1018 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 13, s->width); /* vol width */ s 1019 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* marker bit */ s 1020 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 13, s->height); /* vol height */ s 1021 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* marker bit */ s 1022 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->progressive_sequence ? 0 : 1); s 1023 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* obmc disable */ s 1025 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* sprite enable */ s 1027 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 2, 0); /* sprite enable */ s 1029 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* not 8 bit == false */ s 1030 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->mpeg_quant); /* quant type = (0 = H.263 style) */ s 1032 libavcodec/mpeg4videoenc.c if (s->mpeg_quant) { s 1033 libavcodec/mpeg4videoenc.c ff_write_quant_matrix(&s->pb, s->avctx->intra_matrix); s 1034 libavcodec/mpeg4videoenc.c ff_write_quant_matrix(&s->pb, s->avctx->inter_matrix); s 1038 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->quarter_sample); s 1039 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* complexity estimation disable */ s 1040 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->rtp_mode ? 0 : 1); /* resync marker disable */ s 1041 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->data_partitioning ? 1 : 0); s 1042 libavcodec/mpeg4videoenc.c if (s->data_partitioning) s 1043 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* no rvlc */ s 1046 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* newpred */ s 1047 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* reduced res vop */ s 1049 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* scalability */ s 1051 libavcodec/mpeg4videoenc.c ff_mpeg4_stuffing(&s->pb); s 1054 libavcodec/mpeg4videoenc.c if (!(s->avctx->flags & AV_CODEC_FLAG_BITEXACT)) { s 1055 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0); s 1056 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0x1B2); /* user_data */ s 1057 libavcodec/mpeg4videoenc.c avpriv_put_string(&s->pb, LIBAVCODEC_IDENT, 0); s 1062 libavcodec/mpeg4videoenc.c int ff_mpeg4_encode_picture_header(MpegEncContext *s, int picture_number) s 1067 libavcodec/mpeg4videoenc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 1068 libavcodec/mpeg4videoenc.c if (!(s->avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER)) { s 1069 libavcodec/mpeg4videoenc.c if (s->strict_std_compliance < FF_COMPLIANCE_VERY_STRICT) // HACK, the reference sw is buggy s 1070 libavcodec/mpeg4videoenc.c mpeg4_encode_visual_object_header(s); s 1071 libavcodec/mpeg4videoenc.c if (s->strict_std_compliance < FF_COMPLIANCE_VERY_STRICT || picture_number == 0) // HACK, the reference sw is buggy s 1072 libavcodec/mpeg4videoenc.c mpeg4_encode_vol_header(s, 0, 0); s 1074 libavcodec/mpeg4videoenc.c if (!(s->workaround_bugs & FF_BUG_MS)) s 1075 libavcodec/mpeg4videoenc.c mpeg4_encode_gop_header(s); s 1078 libavcodec/mpeg4videoenc.c s->partitioned_frame = s->data_partitioning && s->pict_type != AV_PICTURE_TYPE_B; s 1080 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, 0); /* vop header */ s 1081 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 16, VOP_STARTCODE); /* vop header */ s 1082 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 2, s->pict_type - 1); /* pict type: I = 0 , P = 1 */ s 1084 libavcodec/mpeg4videoenc.c time_div = FFUDIV(s->time, s->avctx->time_base.den); s 1085 libavcodec/mpeg4videoenc.c time_mod = FFUMOD(s->time, s->avctx->time_base.den); s 1086 libavcodec/mpeg4videoenc.c time_incr = time_div - s->last_time_base; s 1090 libavcodec/mpeg4videoenc.c av_log(s->avctx, AV_LOG_ERROR, "time_incr %"PRIu64" too large\n", time_incr); s 1094 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); s 1096 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); s 1098 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* marker */ s 1099 libavcodec/mpeg4videoenc.c put_bits(&s->pb, s->time_increment_bits, time_mod); /* time increment */ s 1100 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* marker */ s 1101 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); /* vop coded */ s 1102 libavcodec/mpeg4videoenc.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 1103 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->no_rounding); /* rounding type */ s 1105 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 3, 0); /* intra dc VLC threshold */ s 1106 libavcodec/mpeg4videoenc.c if (!s->progressive_sequence) { s 1107 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->current_picture_ptr->f->top_field_first); s 1108 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, s->alternate_scan); s 1112 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 5, s->qscale); s 1114 libavcodec/mpeg4videoenc.c if (s->pict_type != AV_PICTURE_TYPE_I) s 1115 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 3, s->f_code); /* fcode_for */ s 1116 libavcodec/mpeg4videoenc.c if (s->pict_type == AV_PICTURE_TYPE_B) s 1117 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 3, s->b_code); /* fcode_back */ s 1274 libavcodec/mpeg4videoenc.c MpegEncContext *s = avctx->priv_data; s 1297 libavcodec/mpeg4videoenc.c s->min_qcoeff = -2048; s 1298 libavcodec/mpeg4videoenc.c s->max_qcoeff = 2047; s 1299 libavcodec/mpeg4videoenc.c s->intra_ac_vlc_length = uni_mpeg4_intra_rl_len; s 1300 libavcodec/mpeg4videoenc.c s->intra_ac_vlc_last_length = uni_mpeg4_intra_rl_len + 128 * 64; s 1301 libavcodec/mpeg4videoenc.c s->inter_ac_vlc_length = uni_mpeg4_inter_rl_len; s 1302 libavcodec/mpeg4videoenc.c s->inter_ac_vlc_last_length = uni_mpeg4_inter_rl_len + 128 * 64; s 1303 libavcodec/mpeg4videoenc.c s->luma_dc_vlc_length = uni_DCtab_lum_len; s 1304 libavcodec/mpeg4videoenc.c s->ac_esc_length = 7 + 2 + 1 + 6 + 1 + 12 + 1; s 1305 libavcodec/mpeg4videoenc.c s->y_dc_scale_table = ff_mpeg4_y_dc_scale_table; s 1306 libavcodec/mpeg4videoenc.c s->c_dc_scale_table = ff_mpeg4_c_dc_scale_table; s 1308 libavcodec/mpeg4videoenc.c if (s->avctx->flags & AV_CODEC_FLAG_GLOBAL_HEADER) { s 1309 libavcodec/mpeg4videoenc.c s->avctx->extradata = av_malloc(1024); s 1310 libavcodec/mpeg4videoenc.c init_put_bits(&s->pb, s->avctx->extradata, 1024); s 1312 libavcodec/mpeg4videoenc.c if (!(s->workaround_bugs & FF_BUG_MS)) s 1313 libavcodec/mpeg4videoenc.c mpeg4_encode_visual_object_header(s); s 1314 libavcodec/mpeg4videoenc.c mpeg4_encode_vol_header(s, 0, 0); s 1317 libavcodec/mpeg4videoenc.c flush_put_bits(&s->pb); s 1318 libavcodec/mpeg4videoenc.c s->avctx->extradata_size = (put_bits_count(&s->pb) + 7) >> 3; s 1323 libavcodec/mpeg4videoenc.c void ff_mpeg4_init_partitions(MpegEncContext *s) s 1325 libavcodec/mpeg4videoenc.c uint8_t *start = put_bits_ptr(&s->pb); s 1326 libavcodec/mpeg4videoenc.c uint8_t *end = s->pb.buf_end; s 1331 libavcodec/mpeg4videoenc.c set_put_bits_buffer_size(&s->pb, pb_size); s 1332 libavcodec/mpeg4videoenc.c init_put_bits(&s->tex_pb, start + pb_size, tex_size); s 1333 libavcodec/mpeg4videoenc.c init_put_bits(&s->pb2, start + pb_size + tex_size, pb_size); s 1336 libavcodec/mpeg4videoenc.c void ff_mpeg4_merge_partitions(MpegEncContext *s) s 1338 libavcodec/mpeg4videoenc.c const int pb2_len = put_bits_count(&s->pb2); s 1339 libavcodec/mpeg4videoenc.c const int tex_pb_len = put_bits_count(&s->tex_pb); s 1340 libavcodec/mpeg4videoenc.c const int bits = put_bits_count(&s->pb); s 1342 libavcodec/mpeg4videoenc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 1343 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 19, DC_MARKER); s 1344 libavcodec/mpeg4videoenc.c s->misc_bits += 19 + pb2_len + bits - s->last_bits; s 1345 libavcodec/mpeg4videoenc.c s->i_tex_bits += tex_pb_len; s 1347 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 17, MOTION_MARKER); s 1348 libavcodec/mpeg4videoenc.c s->misc_bits += 17 + pb2_len; s 1349 libavcodec/mpeg4videoenc.c s->mv_bits += bits - s->last_bits; s 1350 libavcodec/mpeg4videoenc.c s->p_tex_bits += tex_pb_len; s 1353 libavcodec/mpeg4videoenc.c flush_put_bits(&s->pb2); s 1354 libavcodec/mpeg4videoenc.c flush_put_bits(&s->tex_pb); s 1356 libavcodec/mpeg4videoenc.c set_put_bits_buffer_size(&s->pb, s->pb2.buf_end - s->pb.buf); s 1357 libavcodec/mpeg4videoenc.c avpriv_copy_bits(&s->pb, s->pb2.buf, pb2_len); s 1358 libavcodec/mpeg4videoenc.c avpriv_copy_bits(&s->pb, s->tex_pb.buf, tex_pb_len); s 1359 libavcodec/mpeg4videoenc.c s->last_bits = put_bits_count(&s->pb); s 1362 libavcodec/mpeg4videoenc.c void ff_mpeg4_encode_video_packet_header(MpegEncContext *s) s 1364 libavcodec/mpeg4videoenc.c int mb_num_bits = av_log2(s->mb_num - 1) + 1; s 1366 libavcodec/mpeg4videoenc.c put_bits(&s->pb, ff_mpeg4_get_video_packet_prefix_length(s), 0); s 1367 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 1); s 1369 libavcodec/mpeg4videoenc.c put_bits(&s->pb, mb_num_bits, s->mb_x + s->mb_y * s->mb_width); s 1370 libavcodec/mpeg4videoenc.c put_bits(&s->pb, s->quant_precision, s->qscale); s 1371 libavcodec/mpeg4videoenc.c put_bits(&s->pb, 1, 0); /* no HEC */ s 46 libavcodec/mpeg_er.c void ff_mpeg_er_frame_start(MpegEncContext *s) s 48 libavcodec/mpeg_er.c ERContext *er = &s->er; s 50 libavcodec/mpeg_er.c set_erpic(&er->cur_pic, s->current_picture_ptr); s 51 libavcodec/mpeg_er.c set_erpic(&er->next_pic, s->next_picture_ptr); s 52 libavcodec/mpeg_er.c set_erpic(&er->last_pic, s->last_picture_ptr); s 54 libavcodec/mpeg_er.c er->pp_time = s->pp_time; s 55 libavcodec/mpeg_er.c er->pb_time = s->pb_time; s 56 libavcodec/mpeg_er.c er->quarter_sample = s->quarter_sample; s 57 libavcodec/mpeg_er.c er->partitioned_frame = s->partitioned_frame; s 66 libavcodec/mpeg_er.c MpegEncContext *s = opaque; s 68 libavcodec/mpeg_er.c s->mv_dir = mv_dir; s 69 libavcodec/mpeg_er.c s->mv_type = mv_type; s 70 libavcodec/mpeg_er.c s->mb_intra = mb_intra; s 71 libavcodec/mpeg_er.c s->mb_skipped = mb_skipped; s 72 libavcodec/mpeg_er.c s->mb_x = mb_x; s 73 libavcodec/mpeg_er.c s->mb_y = mb_y; s 74 libavcodec/mpeg_er.c s->mcsel = 0; s 75 libavcodec/mpeg_er.c memcpy(s->mv, mv, sizeof(*mv)); s 77 libavcodec/mpeg_er.c ff_init_block_index(s); s 78 libavcodec/mpeg_er.c ff_update_block_index(s); s 80 libavcodec/mpeg_er.c s->bdsp.clear_blocks(s->block[0]); s 81 libavcodec/mpeg_er.c if (!s->chroma_y_shift) s 82 libavcodec/mpeg_er.c s->bdsp.clear_blocks(s->block[6]); s 84 libavcodec/mpeg_er.c s->dest[0] = s->current_picture.f->data[0] + s 85 libavcodec/mpeg_er.c s->mb_y * 16 * s->linesize + s 86 libavcodec/mpeg_er.c s->mb_x * 16; s 87 libavcodec/mpeg_er.c s->dest[1] = s->current_picture.f->data[1] + s 88 libavcodec/mpeg_er.c s->mb_y * (16 >> s->chroma_y_shift) * s->uvlinesize + s 89 libavcodec/mpeg_er.c s->mb_x * (16 >> s->chroma_x_shift); s 90 libavcodec/mpeg_er.c s->dest[2] = s->current_picture.f->data[2] + s 91 libavcodec/mpeg_er.c s->mb_y * (16 >> s->chroma_y_shift) * s->uvlinesize + s 92 libavcodec/mpeg_er.c s->mb_x * (16 >> s->chroma_x_shift); s 95 libavcodec/mpeg_er.c av_log(s->avctx, AV_LOG_DEBUG, s 97 libavcodec/mpeg_er.c ff_mpv_reconstruct_mb(s, s->block); s 100 libavcodec/mpeg_er.c int ff_mpeg_er_init(MpegEncContext *s) s 102 libavcodec/mpeg_er.c ERContext *er = &s->er; s 103 libavcodec/mpeg_er.c int mb_array_size = s->mb_height * s->mb_stride; s 106 libavcodec/mpeg_er.c er->avctx = s->avctx; s 108 libavcodec/mpeg_er.c er->mb_index2xy = s->mb_index2xy; s 109 libavcodec/mpeg_er.c er->mb_num = s->mb_num; s 110 libavcodec/mpeg_er.c er->mb_width = s->mb_width; s 111 libavcodec/mpeg_er.c er->mb_height = s->mb_height; s 112 libavcodec/mpeg_er.c er->mb_stride = s->mb_stride; s 113 libavcodec/mpeg_er.c er->b8_stride = s->b8_stride; s 115 libavcodec/mpeg_er.c er->er_temp_buffer = av_malloc(s->mb_height * s->mb_stride * (4*sizeof(int) + 1)); s 120 libavcodec/mpeg_er.c er->mbskip_table = s->mbskip_table; s 121 libavcodec/mpeg_er.c er->mbintra_table = s->mbintra_table; s 123 libavcodec/mpeg_er.c for (i = 0; i < FF_ARRAY_ELEMS(s->dc_val); i++) s 124 libavcodec/mpeg_er.c er->dc_val[i] = s->dc_val[i]; s 127 libavcodec/mpeg_er.c er->opaque = s; s 24 libavcodec/mpeg_er.h int ff_mpeg_er_init(MpegEncContext *s); s 25 libavcodec/mpeg_er.h void ff_mpeg_er_frame_start(MpegEncContext *s); s 48 libavcodec/mpegaudio_parser.c MpegAudioParseContext *s = s1->priv_data; s 49 libavcodec/mpegaudio_parser.c ParseContext *pc = &s->pc; s 56 libavcodec/mpegaudio_parser.c if(s->frame_size){ s 57 libavcodec/mpegaudio_parser.c int inc= FFMIN(buf_size - i, s->frame_size); s 59 libavcodec/mpegaudio_parser.c s->frame_size -= inc; s 62 libavcodec/mpegaudio_parser.c if(!s->frame_size){ s 76 libavcodec/mpegaudio_parser.c s->header_count = -2; s 79 libavcodec/mpegaudio_parser.c if((state&SAME_HEADER_MASK) != (s->header&SAME_HEADER_MASK) && s->header) s 80 libavcodec/mpegaudio_parser.c s->header_count= -3; s 81 libavcodec/mpegaudio_parser.c s->header= state; s 82 libavcodec/mpegaudio_parser.c s->header_count++; s 83 libavcodec/mpegaudio_parser.c s->frame_size = ret-4; s 85 libavcodec/mpegaudio_parser.c if (s->header_count > header_threshold) { s 90 libavcodec/mpegaudio_parser.c if (s->no_bitrate || !avctx->bit_rate) { s 91 libavcodec/mpegaudio_parser.c s->no_bitrate = 1; s 92 libavcodec/mpegaudio_parser.c avctx->bit_rate += (bit_rate - avctx->bit_rate) / (s->header_count - header_threshold); s 97 libavcodec/mpegaudio_parser.c s->frame_size = 0; s 33 libavcodec/mpegaudiodec_fixed.c #define MULH3(x, y, s) MULH((s)*(x), y) s 34 libavcodec/mpegaudiodec_fixed.c #define MULLx(x, y, s) MULL((int)(x),(y),s) s 33 libavcodec/mpegaudiodec_float.c #define MULH3(x, y, s) ((s)*(y)*(x)) s 34 libavcodec/mpegaudiodec_float.c #define MULLx(x, y, s) ((y)*(x)) s 158 libavcodec/mpegaudiodec_template.c static void init_short_region(MPADecodeContext *s, GranuleDef *g) s 161 libavcodec/mpegaudiodec_template.c if (s->sample_rate_index != 8) s 166 libavcodec/mpegaudiodec_template.c if (s->sample_rate_index <= 2) s 168 libavcodec/mpegaudiodec_template.c else if (s->sample_rate_index != 8) s 176 libavcodec/mpegaudiodec_template.c static void init_long_region(MPADecodeContext *s, GranuleDef *g, s 180 libavcodec/mpegaudiodec_template.c g->region_size[0] = band_index_long[s->sample_rate_index][ra1 + 1] >> 1; s 183 libavcodec/mpegaudiodec_template.c g->region_size[1] = band_index_long[s->sample_rate_index][ l] >> 1; s 186 libavcodec/mpegaudiodec_template.c static void compute_band_indexes(MPADecodeContext *s, GranuleDef *g) s 190 libavcodec/mpegaudiodec_template.c if(s->sample_rate_index == 8) s 191 libavcodec/mpegaudiodec_template.c avpriv_request_sample(s->avctx, "switch point in 8khz"); s 195 libavcodec/mpegaudiodec_template.c if (s->sample_rate_index <= 2) s 415 libavcodec/mpegaudiodec_template.c MPADecodeContext *s = avctx->priv_data; s 416 libavcodec/mpegaudiodec_template.c av_freep(&s->fdsp); s 425 libavcodec/mpegaudiodec_template.c MPADecodeContext *s = avctx->priv_data; s 432 libavcodec/mpegaudiodec_template.c s->avctx = avctx; s 435 libavcodec/mpegaudiodec_template.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 436 libavcodec/mpegaudiodec_template.c if (!s->fdsp) s 440 libavcodec/mpegaudiodec_template.c ff_mpadsp_init(&s->mpadsp); s 447 libavcodec/mpegaudiodec_template.c s->err_recognition = avctx->err_recognition; s 450 libavcodec/mpegaudiodec_template.c s->adu_mode = 1; s 504 libavcodec/mpegaudiodec_template.c static int mp_decode_layer1(MPADecodeContext *s) s 510 libavcodec/mpegaudiodec_template.c if (s->mode == MPA_JSTEREO) s 511 libavcodec/mpegaudiodec_template.c bound = (s->mode_ext + 1) * 4; s 517 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 518 libavcodec/mpegaudiodec_template.c allocation[ch][i] = get_bits(&s->gb, 4); s 522 libavcodec/mpegaudiodec_template.c allocation[0][i] = get_bits(&s->gb, 4); s 526 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 528 libavcodec/mpegaudiodec_template.c scale_factors[ch][i] = get_bits(&s->gb, 6); s 533 libavcodec/mpegaudiodec_template.c scale_factors[0][i] = get_bits(&s->gb, 6); s 534 libavcodec/mpegaudiodec_template.c scale_factors[1][i] = get_bits(&s->gb, 6); s 541 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 544 libavcodec/mpegaudiodec_template.c mant = get_bits(&s->gb, n + 1); s 549 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][j][i] = v; s 555 libavcodec/mpegaudiodec_template.c mant = get_bits(&s->gb, n + 1); s 557 libavcodec/mpegaudiodec_template.c s->sb_samples[0][j][i] = v; s 559 libavcodec/mpegaudiodec_template.c s->sb_samples[1][j][i] = v; s 561 libavcodec/mpegaudiodec_template.c s->sb_samples[0][j][i] = 0; s 562 libavcodec/mpegaudiodec_template.c s->sb_samples[1][j][i] = 0; s 569 libavcodec/mpegaudiodec_template.c static int mp_decode_layer2(MPADecodeContext *s) s 580 libavcodec/mpegaudiodec_template.c table = ff_mpa_l2_select_table(s->bit_rate / 1000, s->nb_channels, s 581 libavcodec/mpegaudiodec_template.c s->sample_rate, s->lsf); s 585 libavcodec/mpegaudiodec_template.c if (s->mode == MPA_JSTEREO) s 586 libavcodec/mpegaudiodec_template.c bound = (s->mode_ext + 1) * 4; s 590 libavcodec/mpegaudiodec_template.c ff_dlog(s->avctx, "bound=%d sblimit=%d\n", bound, sblimit); s 600 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) s 601 libavcodec/mpegaudiodec_template.c bit_alloc[ch][i] = get_bits(&s->gb, bit_alloc_bits); s 606 libavcodec/mpegaudiodec_template.c v = get_bits(&s->gb, bit_alloc_bits); s 614 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 616 libavcodec/mpegaudiodec_template.c scale_code[ch][i] = get_bits(&s->gb, 2); s 622 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 628 libavcodec/mpegaudiodec_template.c sf[0] = get_bits(&s->gb, 6); s 629 libavcodec/mpegaudiodec_template.c sf[1] = get_bits(&s->gb, 6); s 630 libavcodec/mpegaudiodec_template.c sf[2] = get_bits(&s->gb, 6); s 633 libavcodec/mpegaudiodec_template.c sf[0] = get_bits(&s->gb, 6); s 638 libavcodec/mpegaudiodec_template.c sf[0] = get_bits(&s->gb, 6); s 639 libavcodec/mpegaudiodec_template.c sf[2] = get_bits(&s->gb, 6); s 643 libavcodec/mpegaudiodec_template.c sf[0] = get_bits(&s->gb, 6); s 644 libavcodec/mpegaudiodec_template.c sf[2] = get_bits(&s->gb, 6); s 658 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 667 libavcodec/mpegaudiodec_template.c v = get_bits(&s->gb, -bits); s 671 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + 0][i] = s 673 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + 1][i] = s 675 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + 2][i] = s 679 libavcodec/mpegaudiodec_template.c v = get_bits(&s->gb, bits); s 681 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + m][i] = v; s 685 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + 0][i] = 0; s 686 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + 1][i] = 0; s 687 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + 2][i] = 0; s 705 libavcodec/mpegaudiodec_template.c v = get_bits(&s->gb, -bits); s 709 libavcodec/mpegaudiodec_template.c s->sb_samples[0][k * 12 + l + 0][i] = s 711 libavcodec/mpegaudiodec_template.c s->sb_samples[1][k * 12 + l + 0][i] = s 715 libavcodec/mpegaudiodec_template.c s->sb_samples[0][k * 12 + l + 1][i] = s 717 libavcodec/mpegaudiodec_template.c s->sb_samples[1][k * 12 + l + 1][i] = s 719 libavcodec/mpegaudiodec_template.c s->sb_samples[0][k * 12 + l + 2][i] = s 721 libavcodec/mpegaudiodec_template.c s->sb_samples[1][k * 12 + l + 2][i] = s 725 libavcodec/mpegaudiodec_template.c mant = get_bits(&s->gb, bits); s 726 libavcodec/mpegaudiodec_template.c s->sb_samples[0][k * 12 + l + m][i] = s 728 libavcodec/mpegaudiodec_template.c s->sb_samples[1][k * 12 + l + m][i] = s 733 libavcodec/mpegaudiodec_template.c s->sb_samples[0][k * 12 + l + 0][i] = 0; s 734 libavcodec/mpegaudiodec_template.c s->sb_samples[0][k * 12 + l + 1][i] = 0; s 735 libavcodec/mpegaudiodec_template.c s->sb_samples[0][k * 12 + l + 2][i] = 0; s 736 libavcodec/mpegaudiodec_template.c s->sb_samples[1][k * 12 + l + 0][i] = 0; s 737 libavcodec/mpegaudiodec_template.c s->sb_samples[1][k * 12 + l + 1][i] = 0; s 738 libavcodec/mpegaudiodec_template.c s->sb_samples[1][k * 12 + l + 2][i] = 0; s 745 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 746 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + 0][i] = 0; s 747 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + 1][i] = 0; s 748 libavcodec/mpegaudiodec_template.c s->sb_samples[ch][k * 12 + l + 2][i] = 0; s 785 libavcodec/mpegaudiodec_template.c static void exponents_from_scale_factors(MPADecodeContext *s, GranuleDef *g, s 796 libavcodec/mpegaudiodec_template.c bstab = band_size_long[s->sample_rate_index]; s 806 libavcodec/mpegaudiodec_template.c bstab = band_size_short[s->sample_rate_index]; s 822 libavcodec/mpegaudiodec_template.c static void switch_buffer(MPADecodeContext *s, int *pos, int *end_pos, s 825 libavcodec/mpegaudiodec_template.c if (s->in_gb.buffer && *pos >= s->gb.size_in_bits - s->extrasize * 8) { s 826 libavcodec/mpegaudiodec_template.c s->gb = s->in_gb; s 827 libavcodec/mpegaudiodec_template.c s->in_gb.buffer = NULL; s 828 libavcodec/mpegaudiodec_template.c s->extrasize = 0; s 829 libavcodec/mpegaudiodec_template.c av_assert2((get_bits_count(&s->gb) & 7) == 0); s 830 libavcodec/mpegaudiodec_template.c skip_bits_long(&s->gb, *pos - *end_pos); s 832 libavcodec/mpegaudiodec_template.c *end_pos = *end_pos2 + get_bits_count(&s->gb) - *pos; s 833 libavcodec/mpegaudiodec_template.c *pos = get_bits_count(&s->gb); s 845 libavcodec/mpegaudiodec_template.c v = AV_RN32A(src) ^ (get_bits1(&s->gb) << 31); \ s 849 libavcodec/mpegaudiodec_template.c v = -get_bits1(&s->gb); \ s 853 libavcodec/mpegaudiodec_template.c static int huffman_decode(MPADecodeContext *s, GranuleDef *g, s 860 libavcodec/mpegaudiodec_template.c int end_pos = FFMIN(end_pos2, s->gb.size_in_bits - s->extrasize * 8); s 885 libavcodec/mpegaudiodec_template.c int pos = get_bits_count(&s->gb); s 888 libavcodec/mpegaudiodec_template.c switch_buffer(s, &pos, &end_pos, &end_pos2); s 892 libavcodec/mpegaudiodec_template.c y = get_vlc2(&s->gb, vlc->table, 7, 3); s 903 libavcodec/mpegaudiodec_template.c ff_dlog(s->avctx, "region=%d n=%d y=%d exp=%d\n", s 911 libavcodec/mpegaudiodec_template.c x += get_bitsz(&s->gb, linbits); s 913 libavcodec/mpegaudiodec_template.c if (get_bits1(&s->gb)) s 920 libavcodec/mpegaudiodec_template.c y += get_bitsz(&s->gb, linbits); s 922 libavcodec/mpegaudiodec_template.c if (get_bits1(&s->gb)) s 933 libavcodec/mpegaudiodec_template.c x += get_bitsz(&s->gb, linbits); s 935 libavcodec/mpegaudiodec_template.c if (get_bits1(&s->gb)) s 950 libavcodec/mpegaudiodec_template.c pos = get_bits_count(&s->gb); s 956 libavcodec/mpegaudiodec_template.c skip_bits_long(&s->gb, last_pos - pos); s 957 libavcodec/mpegaudiodec_template.c av_log(s->avctx, AV_LOG_INFO, "overread, skip %d enddists: %d %d\n", last_pos - pos, end_pos-pos, end_pos2-pos); s 958 libavcodec/mpegaudiodec_template.c if(s->err_recognition & (AV_EF_BITSTREAM|AV_EF_COMPLIANT)) s 962 libavcodec/mpegaudiodec_template.c switch_buffer(s, &pos, &end_pos, &end_pos2); s 968 libavcodec/mpegaudiodec_template.c code = get_vlc2(&s->gb, vlc->table, vlc->bits, 1); s 969 libavcodec/mpegaudiodec_template.c ff_dlog(s->avctx, "t=%d code=%d\n", g->count1table_select, code); s 984 libavcodec/mpegaudiodec_template.c bits_left = end_pos2 - get_bits_count(&s->gb); s 985 libavcodec/mpegaudiodec_template.c if (bits_left < 0 && (s->err_recognition & (AV_EF_BUFFER|AV_EF_COMPLIANT))) { s 986 libavcodec/mpegaudiodec_template.c av_log(s->avctx, AV_LOG_ERROR, "bits_left=%d\n", bits_left); s 988 libavcodec/mpegaudiodec_template.c } else if (bits_left > 0 && (s->err_recognition & (AV_EF_BUFFER|AV_EF_AGGRESSIVE))) { s 989 libavcodec/mpegaudiodec_template.c av_log(s->avctx, AV_LOG_ERROR, "bits_left=%d\n", bits_left); s 993 libavcodec/mpegaudiodec_template.c skip_bits_long(&s->gb, bits_left); s 995 libavcodec/mpegaudiodec_template.c i = get_bits_count(&s->gb); s 996 libavcodec/mpegaudiodec_template.c switch_buffer(s, &i, &end_pos, &end_pos2); s 1004 libavcodec/mpegaudiodec_template.c static void reorder_block(MPADecodeContext *s, GranuleDef *g) s 1014 libavcodec/mpegaudiodec_template.c if (s->sample_rate_index != 8) s 1023 libavcodec/mpegaudiodec_template.c len = band_size_short[s->sample_rate_index][i]; s 1039 libavcodec/mpegaudiodec_template.c static void compute_stereo(MPADecodeContext *s, GranuleDef *g0, GranuleDef *g1) s 1048 libavcodec/mpegaudiodec_template.c if (s->mode_ext & MODE_EXT_I_STEREO) { s 1049 libavcodec/mpegaudiodec_template.c if (!s->lsf) { s 1068 libavcodec/mpegaudiodec_template.c len = band_size_short[s->sample_rate_index][i]; s 1093 libavcodec/mpegaudiodec_template.c if (s->mode_ext & MODE_EXT_MS_STEREO) { s 1112 libavcodec/mpegaudiodec_template.c len = band_size_long[s->sample_rate_index][i]; s 1137 libavcodec/mpegaudiodec_template.c if (s->mode_ext & MODE_EXT_MS_STEREO) { s 1149 libavcodec/mpegaudiodec_template.c } else if (s->mode_ext & MODE_EXT_MS_STEREO) { s 1154 libavcodec/mpegaudiodec_template.c s->fdsp->butterflies_float(g0->sb_hybrid, g1->sb_hybrid, 576); s 1196 libavcodec/mpegaudiodec_template.c static void compute_antialias(MPADecodeContext *s, GranuleDef *g) s 1227 libavcodec/mpegaudiodec_template.c static void compute_imdct(MPADecodeContext *s, GranuleDef *g, s 1256 libavcodec/mpegaudiodec_template.c s->mpadsp.RENAME(imdct36_blocks)(sb_samples, mdct_buf, g->sb_hybrid, s 1307 libavcodec/mpegaudiodec_template.c static int mp_decode_layer3(MPADecodeContext *s) s 1315 libavcodec/mpegaudiodec_template.c if (s->lsf) { s 1316 libavcodec/mpegaudiodec_template.c main_data_begin = get_bits(&s->gb, 8); s 1317 libavcodec/mpegaudiodec_template.c skip_bits(&s->gb, s->nb_channels); s 1320 libavcodec/mpegaudiodec_template.c main_data_begin = get_bits(&s->gb, 9); s 1321 libavcodec/mpegaudiodec_template.c if (s->nb_channels == 2) s 1322 libavcodec/mpegaudiodec_template.c skip_bits(&s->gb, 3); s 1324 libavcodec/mpegaudiodec_template.c skip_bits(&s->gb, 5); s 1326 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 1327 libavcodec/mpegaudiodec_template.c s->granules[ch][0].scfsi = 0;/* all scale factors are transmitted */ s 1328 libavcodec/mpegaudiodec_template.c s->granules[ch][1].scfsi = get_bits(&s->gb, 4); s 1333 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 1334 libavcodec/mpegaudiodec_template.c ff_dlog(s->avctx, "gr=%d ch=%d: side_info\n", gr, ch); s 1335 libavcodec/mpegaudiodec_template.c g = &s->granules[ch][gr]; s 1336 libavcodec/mpegaudiodec_template.c g->part2_3_length = get_bits(&s->gb, 12); s 1337 libavcodec/mpegaudiodec_template.c g->big_values = get_bits(&s->gb, 9); s 1339 libavcodec/mpegaudiodec_template.c av_log(s->avctx, AV_LOG_ERROR, "big_values too big\n"); s 1343 libavcodec/mpegaudiodec_template.c g->global_gain = get_bits(&s->gb, 8); s 1346 libavcodec/mpegaudiodec_template.c if ((s->mode_ext & (MODE_EXT_MS_STEREO | MODE_EXT_I_STEREO)) == s 1349 libavcodec/mpegaudiodec_template.c if (s->lsf) s 1350 libavcodec/mpegaudiodec_template.c g->scalefac_compress = get_bits(&s->gb, 9); s 1352 libavcodec/mpegaudiodec_template.c g->scalefac_compress = get_bits(&s->gb, 4); s 1353 libavcodec/mpegaudiodec_template.c blocksplit_flag = get_bits1(&s->gb); s 1355 libavcodec/mpegaudiodec_template.c g->block_type = get_bits(&s->gb, 2); s 1357 libavcodec/mpegaudiodec_template.c av_log(s->avctx, AV_LOG_ERROR, "invalid block type\n"); s 1360 libavcodec/mpegaudiodec_template.c g->switch_point = get_bits1(&s->gb); s 1362 libavcodec/mpegaudiodec_template.c g->table_select[i] = get_bits(&s->gb, 5); s 1364 libavcodec/mpegaudiodec_template.c g->subblock_gain[i] = get_bits(&s->gb, 3); s 1365 libavcodec/mpegaudiodec_template.c init_short_region(s, g); s 1371 libavcodec/mpegaudiodec_template.c g->table_select[i] = get_bits(&s->gb, 5); s 1373 libavcodec/mpegaudiodec_template.c region_address1 = get_bits(&s->gb, 4); s 1374 libavcodec/mpegaudiodec_template.c region_address2 = get_bits(&s->gb, 3); s 1375 libavcodec/mpegaudiodec_template.c ff_dlog(s->avctx, "region1=%d region2=%d\n", s 1377 libavcodec/mpegaudiodec_template.c init_long_region(s, g, region_address1, region_address2); s 1380 libavcodec/mpegaudiodec_template.c compute_band_indexes(s, g); s 1383 libavcodec/mpegaudiodec_template.c if (!s->lsf) s 1384 libavcodec/mpegaudiodec_template.c g->preflag = get_bits1(&s->gb); s 1385 libavcodec/mpegaudiodec_template.c g->scalefac_scale = get_bits1(&s->gb); s 1386 libavcodec/mpegaudiodec_template.c g->count1table_select = get_bits1(&s->gb); s 1387 libavcodec/mpegaudiodec_template.c ff_dlog(s->avctx, "block_type=%d switch_point=%d\n", s 1392 libavcodec/mpegaudiodec_template.c if (!s->adu_mode) { s 1394 libavcodec/mpegaudiodec_template.c const uint8_t *ptr = s->gb.buffer + (get_bits_count(&s->gb)>>3); s 1395 libavcodec/mpegaudiodec_template.c s->extrasize = av_clip((get_bits_left(&s->gb) >> 3) - s->extrasize, 0, s 1396 libavcodec/mpegaudiodec_template.c FFMAX(0, LAST_BUF_SIZE - s->last_buf_size)); s 1397 libavcodec/mpegaudiodec_template.c av_assert1((get_bits_count(&s->gb) & 7) == 0); s 1399 libavcodec/mpegaudiodec_template.c ff_dlog(s->avctx, "seekback:%d, lastbuf:%d\n", s 1400 libavcodec/mpegaudiodec_template.c main_data_begin, s->last_buf_size); s 1402 libavcodec/mpegaudiodec_template.c memcpy(s->last_buf + s->last_buf_size, ptr, s->extrasize); s 1403 libavcodec/mpegaudiodec_template.c s->in_gb = s->gb; s 1404 libavcodec/mpegaudiodec_template.c init_get_bits(&s->gb, s->last_buf, (s->last_buf_size + s->extrasize) * 8); s 1405 libavcodec/mpegaudiodec_template.c s->last_buf_size <<= 3; s 1406 libavcodec/mpegaudiodec_template.c for (gr = 0; gr < nb_granules && (s->last_buf_size >> 3) < main_data_begin; gr++) { s 1407 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 1408 libavcodec/mpegaudiodec_template.c g = &s->granules[ch][gr]; s 1409 libavcodec/mpegaudiodec_template.c s->last_buf_size += g->part2_3_length; s 1411 libavcodec/mpegaudiodec_template.c compute_imdct(s, g, &s->sb_samples[ch][18 * gr][0], s->mdct_buf[ch]); s 1414 libavcodec/mpegaudiodec_template.c skip = s->last_buf_size - 8 * main_data_begin; s 1415 libavcodec/mpegaudiodec_template.c if (skip >= s->gb.size_in_bits - s->extrasize * 8 && s->in_gb.buffer) { s 1416 libavcodec/mpegaudiodec_template.c skip_bits_long(&s->in_gb, skip - s->gb.size_in_bits + s->extrasize * 8); s 1417 libavcodec/mpegaudiodec_template.c s->gb = s->in_gb; s 1418 libavcodec/mpegaudiodec_template.c s->in_gb.buffer = NULL; s 1419 libavcodec/mpegaudiodec_template.c s->extrasize = 0; s 1421 libavcodec/mpegaudiodec_template.c skip_bits_long(&s->gb, skip); s 1425 libavcodec/mpegaudiodec_template.c s->extrasize = 0; s 1429 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 1430 libavcodec/mpegaudiodec_template.c g = &s->granules[ch][gr]; s 1431 libavcodec/mpegaudiodec_template.c bits_pos = get_bits_count(&s->gb); s 1433 libavcodec/mpegaudiodec_template.c if (!s->lsf) { s 1440 libavcodec/mpegaudiodec_template.c ff_dlog(s->avctx, "slen1=%d slen2=%d\n", slen1, slen2); s 1446 libavcodec/mpegaudiodec_template.c g->scale_factors[j++] = get_bits(&s->gb, slen1); s 1453 libavcodec/mpegaudiodec_template.c g->scale_factors[j++] = get_bits(&s->gb, slen2); s 1461 libavcodec/mpegaudiodec_template.c sc = s->granules[ch][0].scale_factors; s 1469 libavcodec/mpegaudiodec_template.c g->scale_factors[j++] = get_bits(&s->gb, slen); s 1494 libavcodec/mpegaudiodec_template.c if ((s->mode_ext & MODE_EXT_I_STEREO) && ch == 1) { s 1528 libavcodec/mpegaudiodec_template.c g->scale_factors[j++] = get_bits(&s->gb, sl); s 1539 libavcodec/mpegaudiodec_template.c exponents_from_scale_factors(s, g, exponents); s 1542 libavcodec/mpegaudiodec_template.c huffman_decode(s, g, exponents, bits_pos + g->part2_3_length); s 1545 libavcodec/mpegaudiodec_template.c if (s->mode == MPA_JSTEREO) s 1546 libavcodec/mpegaudiodec_template.c compute_stereo(s, &s->granules[0][gr], &s->granules[1][gr]); s 1548 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 1549 libavcodec/mpegaudiodec_template.c g = &s->granules[ch][gr]; s 1551 libavcodec/mpegaudiodec_template.c reorder_block(s, g); s 1552 libavcodec/mpegaudiodec_template.c compute_antialias(s, g); s 1553 libavcodec/mpegaudiodec_template.c compute_imdct(s, g, &s->sb_samples[ch][18 * gr][0], s->mdct_buf[ch]); s 1556 libavcodec/mpegaudiodec_template.c if (get_bits_count(&s->gb) < 0) s 1557 libavcodec/mpegaudiodec_template.c skip_bits_long(&s->gb, -get_bits_count(&s->gb)); s 1561 libavcodec/mpegaudiodec_template.c static int mp_decode_frame(MPADecodeContext *s, OUT_INT **samples, s 1567 libavcodec/mpegaudiodec_template.c init_get_bits(&s->gb, buf + HEADER_SIZE, (buf_size - HEADER_SIZE) * 8); s 1569 libavcodec/mpegaudiodec_template.c if (s->error_protection) { s 1570 libavcodec/mpegaudiodec_template.c uint16_t crc = get_bits(&s->gb, 16); s 1571 libavcodec/mpegaudiodec_template.c if (s->err_recognition & AV_EF_CRCCHECK) { s 1572 libavcodec/mpegaudiodec_template.c const int sec_len = s->lsf ? ((s->nb_channels == 1) ? 9 : 17) : s 1573 libavcodec/mpegaudiodec_template.c ((s->nb_channels == 1) ? 17 : 32); s 1579 libavcodec/mpegaudiodec_template.c av_log(s->avctx, AV_LOG_ERROR, "CRC mismatch!\n"); s 1580 libavcodec/mpegaudiodec_template.c if (s->err_recognition & AV_EF_EXPLODE) s 1586 libavcodec/mpegaudiodec_template.c switch(s->layer) { s 1588 libavcodec/mpegaudiodec_template.c s->avctx->frame_size = 384; s 1589 libavcodec/mpegaudiodec_template.c nb_frames = mp_decode_layer1(s); s 1592 libavcodec/mpegaudiodec_template.c s->avctx->frame_size = 1152; s 1593 libavcodec/mpegaudiodec_template.c nb_frames = mp_decode_layer2(s); s 1596 libavcodec/mpegaudiodec_template.c s->avctx->frame_size = s->lsf ? 576 : 1152; s 1598 libavcodec/mpegaudiodec_template.c nb_frames = mp_decode_layer3(s); s 1600 libavcodec/mpegaudiodec_template.c s->last_buf_size=0; s 1601 libavcodec/mpegaudiodec_template.c if (s->in_gb.buffer) { s 1602 libavcodec/mpegaudiodec_template.c align_get_bits(&s->gb); s 1603 libavcodec/mpegaudiodec_template.c i = (get_bits_left(&s->gb) >> 3) - s->extrasize; s 1605 libavcodec/mpegaudiodec_template.c memmove(s->last_buf, s->gb.buffer + (get_bits_count(&s->gb)>>3), i); s 1606 libavcodec/mpegaudiodec_template.c s->last_buf_size=i; s 1608 libavcodec/mpegaudiodec_template.c av_log(s->avctx, AV_LOG_ERROR, "invalid old backstep %d\n", i); s 1609 libavcodec/mpegaudiodec_template.c s->gb = s->in_gb; s 1610 libavcodec/mpegaudiodec_template.c s->in_gb.buffer = NULL; s 1611 libavcodec/mpegaudiodec_template.c s->extrasize = 0; s 1614 libavcodec/mpegaudiodec_template.c align_get_bits(&s->gb); s 1615 libavcodec/mpegaudiodec_template.c av_assert1((get_bits_count(&s->gb) & 7) == 0); s 1616 libavcodec/mpegaudiodec_template.c i = (get_bits_left(&s->gb) >> 3) - s->extrasize; s 1619 libavcodec/mpegaudiodec_template.c av_log(s->avctx, AV_LOG_ERROR, "invalid new backstep %d\n", i); s 1623 libavcodec/mpegaudiodec_template.c memcpy(s->last_buf + s->last_buf_size, s->gb.buffer + buf_size - HEADER_SIZE - i, i); s 1624 libavcodec/mpegaudiodec_template.c s->last_buf_size += i; s 1632 libavcodec/mpegaudiodec_template.c av_assert0(s->frame); s 1633 libavcodec/mpegaudiodec_template.c s->frame->nb_samples = s->avctx->frame_size; s 1634 libavcodec/mpegaudiodec_template.c if ((ret = ff_get_buffer(s->avctx, s->frame, 0)) < 0) s 1636 libavcodec/mpegaudiodec_template.c samples = (OUT_INT **)s->frame->extended_data; s 1640 libavcodec/mpegaudiodec_template.c for (ch = 0; ch < s->nb_channels; ch++) { s 1642 libavcodec/mpegaudiodec_template.c if (s->avctx->sample_fmt == OUT_FMT_P) { s 1647 libavcodec/mpegaudiodec_template.c sample_stride = s->nb_channels; s 1650 libavcodec/mpegaudiodec_template.c RENAME(ff_mpa_synth_filter)(&s->mpadsp, s->synth_buf[ch], s 1651 libavcodec/mpegaudiodec_template.c &(s->synth_buf_offset[ch]), s 1653 libavcodec/mpegaudiodec_template.c &s->dither_state, samples_ptr, s 1654 libavcodec/mpegaudiodec_template.c sample_stride, s->sb_samples[ch][i]); s 1659 libavcodec/mpegaudiodec_template.c return nb_frames * 32 * sizeof(OUT_INT) * s->nb_channels; s 1667 libavcodec/mpegaudiodec_template.c MPADecodeContext *s = avctx->priv_data; s 1686 libavcodec/mpegaudiodec_template.c ret = avpriv_mpegaudio_decode_header((MPADecodeHeader *)s, header); s 1692 libavcodec/mpegaudiodec_template.c s->frame_size = -1; s 1696 libavcodec/mpegaudiodec_template.c avctx->channels = s->nb_channels; s 1697 libavcodec/mpegaudiodec_template.c avctx->channel_layout = s->nb_channels == 1 ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO; s 1699 libavcodec/mpegaudiodec_template.c avctx->bit_rate = s->bit_rate; s 1701 libavcodec/mpegaudiodec_template.c if (s->frame_size <= 0) { s 1704 libavcodec/mpegaudiodec_template.c } else if (s->frame_size < buf_size) { s 1706 libavcodec/mpegaudiodec_template.c buf_size= s->frame_size; s 1709 libavcodec/mpegaudiodec_template.c s->frame = data; s 1711 libavcodec/mpegaudiodec_template.c ret = mp_decode_frame(s, NULL, buf, buf_size); s 1713 libavcodec/mpegaudiodec_template.c s->frame->nb_samples = avctx->frame_size; s 1715 libavcodec/mpegaudiodec_template.c avctx->sample_rate = s->sample_rate; s 1728 libavcodec/mpegaudiodec_template.c s->frame_size = 0; s 1751 libavcodec/mpegaudiodec_template.c MPADecodeContext *s = avctx->priv_data; s 1771 libavcodec/mpegaudiodec_template.c ret = avpriv_mpegaudio_decode_header((MPADecodeHeader *)s, header); s 1777 libavcodec/mpegaudiodec_template.c avctx->sample_rate = s->sample_rate; s 1778 libavcodec/mpegaudiodec_template.c avctx->channels = s->nb_channels; s 1779 libavcodec/mpegaudiodec_template.c avctx->channel_layout = s->nb_channels == 1 ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO; s 1781 libavcodec/mpegaudiodec_template.c avctx->bit_rate = s->bit_rate; s 1783 libavcodec/mpegaudiodec_template.c s->frame_size = len; s 1785 libavcodec/mpegaudiodec_template.c s->frame = data; s 1787 libavcodec/mpegaudiodec_template.c ret = mp_decode_frame(s, NULL, buf, buf_size); s 1844 libavcodec/mpegaudiodec_template.c MP3On4DecodeContext *s = avctx->priv_data; s 1847 libavcodec/mpegaudiodec_template.c if (s->mp3decctx[0]) s 1848 libavcodec/mpegaudiodec_template.c av_freep(&s->mp3decctx[0]->fdsp); s 1850 libavcodec/mpegaudiodec_template.c for (i = 0; i < s->frames; i++) s 1851 libavcodec/mpegaudiodec_template.c av_freep(&s->mp3decctx[i]); s 1859 libavcodec/mpegaudiodec_template.c MP3On4DecodeContext *s = avctx->priv_data; s 1874 libavcodec/mpegaudiodec_template.c s->frames = mp3Frames[cfg.chan_config]; s 1875 libavcodec/mpegaudiodec_template.c s->coff = chan_offset[cfg.chan_config]; s 1880 libavcodec/mpegaudiodec_template.c s->syncword = 0xffe00000; s 1882 libavcodec/mpegaudiodec_template.c s->syncword = 0xfff00000; s 1890 libavcodec/mpegaudiodec_template.c s->mp3decctx[0] = av_mallocz(sizeof(MPADecodeContext)); s 1891 libavcodec/mpegaudiodec_template.c if (!s->mp3decctx[0]) s 1894 libavcodec/mpegaudiodec_template.c avctx->priv_data = s->mp3decctx[0]; s 1897 libavcodec/mpegaudiodec_template.c avctx->priv_data = s; s 1898 libavcodec/mpegaudiodec_template.c s->mp3decctx[0]->adu_mode = 1; // Set adu mode s 1903 libavcodec/mpegaudiodec_template.c for (i = 1; i < s->frames; i++) { s 1904 libavcodec/mpegaudiodec_template.c s->mp3decctx[i] = av_mallocz(sizeof(MPADecodeContext)); s 1905 libavcodec/mpegaudiodec_template.c if (!s->mp3decctx[i]) s 1907 libavcodec/mpegaudiodec_template.c s->mp3decctx[i]->adu_mode = 1; s 1908 libavcodec/mpegaudiodec_template.c s->mp3decctx[i]->avctx = avctx; s 1909 libavcodec/mpegaudiodec_template.c s->mp3decctx[i]->mpadsp = s->mp3decctx[0]->mpadsp; s 1910 libavcodec/mpegaudiodec_template.c s->mp3decctx[i]->fdsp = s->mp3decctx[0]->fdsp; s 1923 libavcodec/mpegaudiodec_template.c MP3On4DecodeContext *s = avctx->priv_data; s 1925 libavcodec/mpegaudiodec_template.c for (i = 0; i < s->frames; i++) s 1926 libavcodec/mpegaudiodec_template.c mp_flush(s->mp3decctx[i]); s 1936 libavcodec/mpegaudiodec_template.c MP3On4DecodeContext *s = avctx->priv_data; s 1957 libavcodec/mpegaudiodec_template.c for (fr = 0; fr < s->frames; fr++) { s 1960 libavcodec/mpegaudiodec_template.c m = s->mp3decctx[fr]; s 1967 libavcodec/mpegaudiodec_template.c header = (AV_RB32(buf) & 0x000fffff) | s->syncword; // patch header s 1976 libavcodec/mpegaudiodec_template.c s->coff[fr] + m->nb_channels > avctx->channels) { s 1983 libavcodec/mpegaudiodec_template.c outptr[0] = out_samples[s->coff[fr]]; s 1985 libavcodec/mpegaudiodec_template.c outptr[1] = out_samples[s->coff[fr] + 1]; s 2007 libavcodec/mpegaudiodec_template.c avctx->sample_rate = s->mp3decctx[0]->sample_rate; s 36 libavcodec/mpegaudiodecheader.c int avpriv_mpegaudio_decode_header(MPADecodeHeader *s, uint32_t header) s 47 libavcodec/mpegaudiodecheader.c s->lsf = (header & (1<<19)) ? 0 : 1; s 50 libavcodec/mpegaudiodecheader.c s->lsf = 1; s 54 libavcodec/mpegaudiodecheader.c s->layer = 4 - ((header >> 17) & 3); s 59 libavcodec/mpegaudiodecheader.c sample_rate = avpriv_mpa_freq_tab[sample_rate_index] >> (s->lsf + mpeg25); s 60 libavcodec/mpegaudiodecheader.c sample_rate_index += 3 * (s->lsf + mpeg25); s 61 libavcodec/mpegaudiodecheader.c s->sample_rate_index = sample_rate_index; s 62 libavcodec/mpegaudiodecheader.c s->error_protection = ((header >> 16) & 1) ^ 1; s 63 libavcodec/mpegaudiodecheader.c s->sample_rate = sample_rate; s 68 libavcodec/mpegaudiodecheader.c s->mode = (header >> 6) & 3; s 69 libavcodec/mpegaudiodecheader.c s->mode_ext = (header >> 4) & 3; s 74 libavcodec/mpegaudiodecheader.c if (s->mode == MPA_MONO) s 75 libavcodec/mpegaudiodecheader.c s->nb_channels = 1; s 77 libavcodec/mpegaudiodecheader.c s->nb_channels = 2; s 80 libavcodec/mpegaudiodecheader.c frame_size = avpriv_mpa_bitrate_tab[s->lsf][s->layer - 1][bitrate_index]; s 81 libavcodec/mpegaudiodecheader.c s->bit_rate = frame_size * 1000; s 82 libavcodec/mpegaudiodecheader.c switch(s->layer) { s 93 libavcodec/mpegaudiodecheader.c frame_size = (frame_size * 144000) / (sample_rate << s->lsf); s 97 libavcodec/mpegaudiodecheader.c s->frame_size = frame_size; s 105 libavcodec/mpegaudiodecheader.c s->layer, s->sample_rate, s->bit_rate); s 106 libavcodec/mpegaudiodecheader.c if (s->nb_channels == 2) { s 107 libavcodec/mpegaudiodecheader.c if (s->layer == 3) { s 108 libavcodec/mpegaudiodecheader.c if (s->mode_ext & MODE_EXT_MS_STEREO) s 110 libavcodec/mpegaudiodecheader.c if (s->mode_ext & MODE_EXT_I_STEREO) s 124 libavcodec/mpegaudiodecheader.c MPADecodeHeader s1, *s = &s1; s 126 libavcodec/mpegaudiodecheader.c if (avpriv_mpegaudio_decode_header(s, head) != 0) { s 130 libavcodec/mpegaudiodecheader.c switch(s->layer) { s 143 libavcodec/mpegaudiodecheader.c if (s->lsf) s 150 libavcodec/mpegaudiodecheader.c *sample_rate = s->sample_rate; s 151 libavcodec/mpegaudiodecheader.c *channels = s->nb_channels; s 152 libavcodec/mpegaudiodecheader.c *bit_rate = s->bit_rate; s 153 libavcodec/mpegaudiodecheader.c return s->frame_size; s 53 libavcodec/mpegaudiodecheader.h int avpriv_mpegaudio_decode_header(MPADecodeHeader *s, uint32_t header); s 31 libavcodec/mpegaudiodsp.c av_cold void ff_mpadsp_init(MPADSPContext *s) s 39 libavcodec/mpegaudiodsp.c s->apply_window_float = ff_mpadsp_apply_window_float; s 40 libavcodec/mpegaudiodsp.c s->apply_window_fixed = ff_mpadsp_apply_window_fixed; s 42 libavcodec/mpegaudiodsp.c s->dct32_float = dct.dct32; s 43 libavcodec/mpegaudiodsp.c s->dct32_fixed = ff_dct32_fixed; s 45 libavcodec/mpegaudiodsp.c s->imdct36_blocks_float = ff_imdct36_blocks_float; s 46 libavcodec/mpegaudiodsp.c s->imdct36_blocks_fixed = ff_imdct36_blocks_fixed; s 48 libavcodec/mpegaudiodsp.c if (ARCH_AARCH64) ff_mpadsp_init_aarch64(s); s 49 libavcodec/mpegaudiodsp.c if (ARCH_ARM) ff_mpadsp_init_arm(s); s 50 libavcodec/mpegaudiodsp.c if (ARCH_PPC) ff_mpadsp_init_ppc(s); s 51 libavcodec/mpegaudiodsp.c if (ARCH_X86) ff_mpadsp_init_x86(s); s 52 libavcodec/mpegaudiodsp.c if (HAVE_MIPSFPU) ff_mpadsp_init_mipsfpu(s); s 53 libavcodec/mpegaudiodsp.c if (HAVE_MIPSDSP) ff_mpadsp_init_mipsdsp(s); s 43 libavcodec/mpegaudiodsp.h void ff_mpadsp_init(MPADSPContext *s); s 50 libavcodec/mpegaudiodsp.h void ff_mpa_synth_filter_fixed(MPADSPContext *s, s 56 libavcodec/mpegaudiodsp.h void ff_mpa_synth_filter_float(MPADSPContext *s, s 62 libavcodec/mpegaudiodsp.h void ff_mpadsp_init_aarch64(MPADSPContext *s); s 63 libavcodec/mpegaudiodsp.h void ff_mpadsp_init_arm(MPADSPContext *s); s 64 libavcodec/mpegaudiodsp.h void ff_mpadsp_init_ppc(MPADSPContext *s); s 65 libavcodec/mpegaudiodsp.h void ff_mpadsp_init_x86(MPADSPContext *s); s 66 libavcodec/mpegaudiodsp.h void ff_mpadsp_init_mipsfpu(MPADSPContext *s); s 67 libavcodec/mpegaudiodsp.h void ff_mpadsp_init_mipsdsp(MPADSPContext *s); s 42 libavcodec/mpegaudiodsp_template.c #define MULH3(x, y, s) ((s)*(y)*(x)) s 44 libavcodec/mpegaudiodsp_template.c #define MULLx(x, y, s) ((y)*(x)) s 65 libavcodec/mpegaudiodsp_template.c # define MULH3(x, y, s) MULH((s)*(x), y) s 66 libavcodec/mpegaudiodsp_template.c # define MULLx(x, y, s) MULL((int)(x),(y),s) s 176 libavcodec/mpegaudiodsp_template.c void RENAME(ff_mpa_synth_filter)(MPADSPContext *s, MPA_INT *synth_buf_ptr, s 188 libavcodec/mpegaudiodsp_template.c s->RENAME(dct32)(synth_buf, sb_samples); s 189 libavcodec/mpegaudiodsp_template.c s->RENAME(apply_window)(synth_buf, window, dither_state, samples, incr); s 78 libavcodec/mpegaudioenc_template.c MpegAudioContext *s = avctx->priv_data; s 90 libavcodec/mpegaudioenc_template.c s->nb_channels = channels; s 95 libavcodec/mpegaudioenc_template.c s->lsf = 0; s 100 libavcodec/mpegaudioenc_template.c s->lsf = 1; s 108 libavcodec/mpegaudioenc_template.c s->freq_index = i; s 112 libavcodec/mpegaudioenc_template.c if (avpriv_mpa_bitrate_tab[s->lsf][1][i] == bitrate) s 117 libavcodec/mpegaudioenc_template.c bitrate = avpriv_mpa_bitrate_tab[s->lsf][1][i]; s 124 libavcodec/mpegaudioenc_template.c s->bitrate_index = i; s 129 libavcodec/mpegaudioenc_template.c s->frame_size = ((int)a) * 8; s 132 libavcodec/mpegaudioenc_template.c s->frame_frac = 0; s 133 libavcodec/mpegaudioenc_template.c s->frame_frac_incr = (int)((a - floor(a)) * 65536.0); s 136 libavcodec/mpegaudioenc_template.c table = ff_mpa_l2_select_table(bitrate, s->nb_channels, freq, s->lsf); s 139 libavcodec/mpegaudioenc_template.c s->sblimit = ff_mpa_sblimit_table[table]; s 140 libavcodec/mpegaudioenc_template.c s->alloc_table = ff_mpa_alloc_tables[table]; s 143 libavcodec/mpegaudioenc_template.c bitrate, freq, s->frame_size, table, s->frame_frac_incr); s 145 libavcodec/mpegaudioenc_template.c for(i=0;i<s->nb_channels;i++) s 146 libavcodec/mpegaudioenc_template.c s->samples_offset[i] = 0; s 154 libavcodec/mpegaudioenc_template.c s->filter_bank[i] = v; s 158 libavcodec/mpegaudioenc_template.c s->filter_bank[512 - i] = v; s 165 libavcodec/mpegaudioenc_template.c s->scale_factor_table[i] = v; s 167 libavcodec/mpegaudioenc_template.c s->scale_factor_inv_table[i] = exp2(-(3 - i) / 3.0) / (float)(1 << 20); s 170 libavcodec/mpegaudioenc_template.c s->scale_factor_shift[i] = 21 - P - (i / 3); s 171 libavcodec/mpegaudioenc_template.c s->scale_factor_mult[i] = (1 << P) * exp2((i % 3) / 3.0); s 186 libavcodec/mpegaudioenc_template.c s->scale_diff_table[i] = v; s 195 libavcodec/mpegaudioenc_template.c s->total_quant_bits[i] = 12 * v; s 323 libavcodec/mpegaudioenc_template.c static void filter(MpegAudioContext *s, int ch, const short *samples, int incr) s 331 libavcodec/mpegaudioenc_template.c offset = s->samples_offset[ch]; s 332 libavcodec/mpegaudioenc_template.c out = &s->sb_samples[ch][0][0][0]; s 336 libavcodec/mpegaudioenc_template.c s->samples_buf[ch][offset + (31 - i)] = samples[0]; s 341 libavcodec/mpegaudioenc_template.c p = s->samples_buf[ch] + offset; s 342 libavcodec/mpegaudioenc_template.c q = s->filter_bank; s 368 libavcodec/mpegaudioenc_template.c memmove(s->samples_buf[ch] + SAMPLES_BUF_SIZE - (512 - 32), s 369 libavcodec/mpegaudioenc_template.c s->samples_buf[ch], (512 - 32) * 2); s 373 libavcodec/mpegaudioenc_template.c s->samples_offset[ch] = offset; s 376 libavcodec/mpegaudioenc_template.c static void compute_scale_factors(MpegAudioContext *s, s 404 libavcodec/mpegaudioenc_template.c while (vmax <= s->scale_factor_table[index+1]) s 414 libavcodec/mpegaudioenc_template.c j, i, vmax, s->scale_factor_table[index], index); s 422 libavcodec/mpegaudioenc_template.c d1 = s->scale_diff_table[sf[0] - sf[1] + 64]; s 423 libavcodec/mpegaudioenc_template.c d2 = s->scale_diff_table[sf[1] - sf[2] + 64]; s 492 libavcodec/mpegaudioenc_template.c static void psycho_acoustic_model(MpegAudioContext *s, short smr[SBLIMIT]) s 496 libavcodec/mpegaudioenc_template.c for(i=0;i<s->sblimit;i++) { s 509 libavcodec/mpegaudioenc_template.c static void compute_bit_allocation(MpegAudioContext *s, s 520 libavcodec/mpegaudioenc_template.c memcpy(smr, smr1, s->nb_channels * sizeof(short) * SBLIMIT); s 521 libavcodec/mpegaudioenc_template.c memset(subband_status, SB_NOTALLOCATED, s->nb_channels * SBLIMIT); s 522 libavcodec/mpegaudioenc_template.c memset(bit_alloc, 0, s->nb_channels * SBLIMIT); s 525 libavcodec/mpegaudioenc_template.c max_frame_size = s->frame_size; s 526 libavcodec/mpegaudioenc_template.c s->frame_frac += s->frame_frac_incr; s 527 libavcodec/mpegaudioenc_template.c if (s->frame_frac >= 65536) { s 528 libavcodec/mpegaudioenc_template.c s->frame_frac -= 65536; s 529 libavcodec/mpegaudioenc_template.c s->do_padding = 1; s 532 libavcodec/mpegaudioenc_template.c s->do_padding = 0; s 537 libavcodec/mpegaudioenc_template.c alloc = s->alloc_table; s 538 libavcodec/mpegaudioenc_template.c for(i=0;i<s->sblimit;i++) { s 540 libavcodec/mpegaudioenc_template.c current_frame_size += incr * s->nb_channels; s 548 libavcodec/mpegaudioenc_template.c for(ch=0;ch<s->nb_channels;ch++) { s 549 libavcodec/mpegaudioenc_template.c for(i=0;i<s->sblimit;i++) { s 565 libavcodec/mpegaudioenc_template.c alloc = s->alloc_table; s 572 libavcodec/mpegaudioenc_template.c incr = 2 + nb_scale_factors[s->scale_code[max_ch][max_sb]] * 6; s 573 libavcodec/mpegaudioenc_template.c incr += s->total_quant_bits[alloc[1]]; s 577 libavcodec/mpegaudioenc_template.c incr = s->total_quant_bits[alloc[b + 1]] - s 578 libavcodec/mpegaudioenc_template.c s->total_quant_bits[alloc[b]]; s 605 libavcodec/mpegaudioenc_template.c static void encode_frame(MpegAudioContext *s, s 612 libavcodec/mpegaudioenc_template.c PutBitContext *p = &s->pb; s 617 libavcodec/mpegaudioenc_template.c put_bits(p, 1, 1 - s->lsf); /* 1 = MPEG-1 ID, 0 = MPEG-2 lsf ID */ s 620 libavcodec/mpegaudioenc_template.c put_bits(p, 4, s->bitrate_index); s 621 libavcodec/mpegaudioenc_template.c put_bits(p, 2, s->freq_index); s 622 libavcodec/mpegaudioenc_template.c put_bits(p, 1, s->do_padding); /* use padding */ s 624 libavcodec/mpegaudioenc_template.c put_bits(p, 2, s->nb_channels == 2 ? MPA_STEREO : MPA_MONO); s 632 libavcodec/mpegaudioenc_template.c for(i=0;i<s->sblimit;i++) { s 633 libavcodec/mpegaudioenc_template.c bit_alloc_bits = s->alloc_table[j]; s 634 libavcodec/mpegaudioenc_template.c for(ch=0;ch<s->nb_channels;ch++) { s 641 libavcodec/mpegaudioenc_template.c for(i=0;i<s->sblimit;i++) { s 642 libavcodec/mpegaudioenc_template.c for(ch=0;ch<s->nb_channels;ch++) { s 644 libavcodec/mpegaudioenc_template.c put_bits(p, 2, s->scale_code[ch][i]); s 649 libavcodec/mpegaudioenc_template.c for(i=0;i<s->sblimit;i++) { s 650 libavcodec/mpegaudioenc_template.c for(ch=0;ch<s->nb_channels;ch++) { s 652 libavcodec/mpegaudioenc_template.c sf = &s->scale_factors[ch][i][0]; s 653 libavcodec/mpegaudioenc_template.c switch(s->scale_code[ch][i]) { s 677 libavcodec/mpegaudioenc_template.c for(i=0;i<s->sblimit;i++) { s 678 libavcodec/mpegaudioenc_template.c bit_alloc_bits = s->alloc_table[j]; s 679 libavcodec/mpegaudioenc_template.c for(ch=0;ch<s->nb_channels;ch++) { s 684 libavcodec/mpegaudioenc_template.c qindex = s->alloc_table[j+b]; s 687 libavcodec/mpegaudioenc_template.c sample = s->sb_samples[ch][k][l + m][i]; s 692 libavcodec/mpegaudioenc_template.c a = (float)sample * s->scale_factor_inv_table[s->scale_factors[ch][i][k]]; s 698 libavcodec/mpegaudioenc_template.c e = s->scale_factors[ch][i][k]; s 699 libavcodec/mpegaudioenc_template.c shift = s->scale_factor_shift[e]; s 700 libavcodec/mpegaudioenc_template.c mult = s->scale_factor_mult[e]; s 747 libavcodec/mpegaudioenc_template.c MpegAudioContext *s = avctx->priv_data; s 753 libavcodec/mpegaudioenc_template.c for(i=0;i<s->nb_channels;i++) { s 754 libavcodec/mpegaudioenc_template.c filter(s, i, samples + i, s->nb_channels); s 757 libavcodec/mpegaudioenc_template.c for(i=0;i<s->nb_channels;i++) { s 758 libavcodec/mpegaudioenc_template.c compute_scale_factors(s, s->scale_code[i], s->scale_factors[i], s 759 libavcodec/mpegaudioenc_template.c s->sb_samples[i], s->sblimit); s 761 libavcodec/mpegaudioenc_template.c for(i=0;i<s->nb_channels;i++) { s 762 libavcodec/mpegaudioenc_template.c psycho_acoustic_model(s, smr[i]); s 764 libavcodec/mpegaudioenc_template.c compute_bit_allocation(s, smr, bit_alloc, &padding); s 769 libavcodec/mpegaudioenc_template.c init_put_bits(&s->pb, avpkt->data, avpkt->size); s 771 libavcodec/mpegaudioenc_template.c encode_frame(s, bit_alloc, padding); s 776 libavcodec/mpegaudioenc_template.c avpkt->size = put_bits_count(&s->pb) / 8; s 52 libavcodec/mpegvideo.c static void dct_unquantize_mpeg1_intra_c(MpegEncContext *s, s 58 libavcodec/mpegvideo.c nCoeffs= s->block_last_index[n]; s 60 libavcodec/mpegvideo.c block[0] *= n < 4 ? s->y_dc_scale : s->c_dc_scale; s 62 libavcodec/mpegvideo.c quant_matrix = s->intra_matrix; s 64 libavcodec/mpegvideo.c int j= s->intra_scantable.permutated[i]; s 81 libavcodec/mpegvideo.c static void dct_unquantize_mpeg1_inter_c(MpegEncContext *s, s 87 libavcodec/mpegvideo.c nCoeffs= s->block_last_index[n]; s 89 libavcodec/mpegvideo.c quant_matrix = s->inter_matrix; s 91 libavcodec/mpegvideo.c int j= s->intra_scantable.permutated[i]; s 110 libavcodec/mpegvideo.c static void dct_unquantize_mpeg2_intra_c(MpegEncContext *s, s 116 libavcodec/mpegvideo.c if (s->q_scale_type) qscale = ff_mpeg2_non_linear_qscale[qscale]; s 119 libavcodec/mpegvideo.c if(s->alternate_scan) nCoeffs= 63; s 120 libavcodec/mpegvideo.c else nCoeffs= s->block_last_index[n]; s 122 libavcodec/mpegvideo.c block[0] *= n < 4 ? s->y_dc_scale : s->c_dc_scale; s 123 libavcodec/mpegvideo.c quant_matrix = s->intra_matrix; s 125 libavcodec/mpegvideo.c int j= s->intra_scantable.permutated[i]; s 140 libavcodec/mpegvideo.c static void dct_unquantize_mpeg2_intra_bitexact(MpegEncContext *s, s 147 libavcodec/mpegvideo.c if (s->q_scale_type) qscale = ff_mpeg2_non_linear_qscale[qscale]; s 150 libavcodec/mpegvideo.c if(s->alternate_scan) nCoeffs= 63; s 151 libavcodec/mpegvideo.c else nCoeffs= s->block_last_index[n]; s 153 libavcodec/mpegvideo.c block[0] *= n < 4 ? s->y_dc_scale : s->c_dc_scale; s 155 libavcodec/mpegvideo.c quant_matrix = s->intra_matrix; s 157 libavcodec/mpegvideo.c int j= s->intra_scantable.permutated[i]; s 174 libavcodec/mpegvideo.c static void dct_unquantize_mpeg2_inter_c(MpegEncContext *s, s 181 libavcodec/mpegvideo.c if (s->q_scale_type) qscale = ff_mpeg2_non_linear_qscale[qscale]; s 184 libavcodec/mpegvideo.c if(s->alternate_scan) nCoeffs= 63; s 185 libavcodec/mpegvideo.c else nCoeffs= s->block_last_index[n]; s 187 libavcodec/mpegvideo.c quant_matrix = s->inter_matrix; s 189 libavcodec/mpegvideo.c int j= s->intra_scantable.permutated[i]; s 208 libavcodec/mpegvideo.c static void dct_unquantize_h263_intra_c(MpegEncContext *s, s 214 libavcodec/mpegvideo.c av_assert2(s->block_last_index[n]>=0 || s->h263_aic); s 218 libavcodec/mpegvideo.c if (!s->h263_aic) { s 219 libavcodec/mpegvideo.c block[0] *= n < 4 ? s->y_dc_scale : s->c_dc_scale; s 224 libavcodec/mpegvideo.c if(s->ac_pred) s 227 libavcodec/mpegvideo.c nCoeffs= s->intra_scantable.raster_end[ s->block_last_index[n] ]; s 242 libavcodec/mpegvideo.c static void dct_unquantize_h263_inter_c(MpegEncContext *s, s 248 libavcodec/mpegvideo.c av_assert2(s->block_last_index[n]>=0); s 253 libavcodec/mpegvideo.c nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ]; s 282 libavcodec/mpegvideo.c static av_cold int dct_init(MpegEncContext *s) s 284 libavcodec/mpegvideo.c ff_blockdsp_init(&s->bdsp, s->avctx); s 285 libavcodec/mpegvideo.c ff_h264chroma_init(&s->h264chroma, 8); //for lowres s 286 libavcodec/mpegvideo.c ff_hpeldsp_init(&s->hdsp, s->avctx->flags); s 287 libavcodec/mpegvideo.c ff_mpegvideodsp_init(&s->mdsp); s 288 libavcodec/mpegvideo.c ff_videodsp_init(&s->vdsp, s->avctx->bits_per_raw_sample); s 290 libavcodec/mpegvideo.c if (s->avctx->debug & FF_DEBUG_NOMC) { s 293 libavcodec/mpegvideo.c s->hdsp.avg_pixels_tab[0][i] = gray16; s 294 libavcodec/mpegvideo.c s->hdsp.put_pixels_tab[0][i] = gray16; s 295 libavcodec/mpegvideo.c s->hdsp.put_no_rnd_pixels_tab[0][i] = gray16; s 297 libavcodec/mpegvideo.c s->hdsp.avg_pixels_tab[1][i] = gray8; s 298 libavcodec/mpegvideo.c s->hdsp.put_pixels_tab[1][i] = gray8; s 299 libavcodec/mpegvideo.c s->hdsp.put_no_rnd_pixels_tab[1][i] = gray8; s 303 libavcodec/mpegvideo.c s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_c; s 304 libavcodec/mpegvideo.c s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_c; s 305 libavcodec/mpegvideo.c s->dct_unquantize_mpeg1_intra = dct_unquantize_mpeg1_intra_c; s 306 libavcodec/mpegvideo.c s->dct_unquantize_mpeg1_inter = dct_unquantize_mpeg1_inter_c; s 307 libavcodec/mpegvideo.c s->dct_unquantize_mpeg2_intra = dct_unquantize_mpeg2_intra_c; s 308 libavcodec/mpegvideo.c if (s->avctx->flags & AV_CODEC_FLAG_BITEXACT) s 309 libavcodec/mpegvideo.c s->dct_unquantize_mpeg2_intra = dct_unquantize_mpeg2_intra_bitexact; s 310 libavcodec/mpegvideo.c s->dct_unquantize_mpeg2_inter = dct_unquantize_mpeg2_inter_c; s 313 libavcodec/mpegvideo.c ff_mpv_common_init_neon(s); s 316 libavcodec/mpegvideo.c ff_mpv_common_init_axp(s); s 318 libavcodec/mpegvideo.c ff_mpv_common_init_arm(s); s 320 libavcodec/mpegvideo.c ff_mpv_common_init_ppc(s); s 322 libavcodec/mpegvideo.c ff_mpv_common_init_x86(s); s 324 libavcodec/mpegvideo.c ff_mpv_common_init_mips(s); s 329 libavcodec/mpegvideo.c av_cold void ff_mpv_idct_init(MpegEncContext *s) s 331 libavcodec/mpegvideo.c if (s->codec_id == AV_CODEC_ID_MPEG4) s 332 libavcodec/mpegvideo.c s->idsp.mpeg4_studio_profile = s->studio_profile; s 333 libavcodec/mpegvideo.c ff_idctdsp_init(&s->idsp, s->avctx); s 338 libavcodec/mpegvideo.c if (s->alternate_scan) { s 339 libavcodec/mpegvideo.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_alternate_vertical_scan); s 340 libavcodec/mpegvideo.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_alternate_vertical_scan); s 342 libavcodec/mpegvideo.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_zigzag_direct); s 343 libavcodec/mpegvideo.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_zigzag_direct); s 345 libavcodec/mpegvideo.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_h_scantable, ff_alternate_horizontal_scan); s 346 libavcodec/mpegvideo.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_v_scantable, ff_alternate_vertical_scan); s 349 libavcodec/mpegvideo.c static int alloc_picture(MpegEncContext *s, Picture *pic) s 351 libavcodec/mpegvideo.c return ff_alloc_picture(s->avctx, pic, &s->me, &s->sc, 0, 0, s 352 libavcodec/mpegvideo.c s->chroma_x_shift, s->chroma_y_shift, s->out_format, s 353 libavcodec/mpegvideo.c s->mb_stride, s->mb_width, s->mb_height, s->b8_stride, s 354 libavcodec/mpegvideo.c &s->linesize, &s->uvlinesize); s 357 libavcodec/mpegvideo.c static int init_duplicate_context(MpegEncContext *s) s 359 libavcodec/mpegvideo.c int y_size = s->b8_stride * (2 * s->mb_height + 1); s 360 libavcodec/mpegvideo.c int c_size = s->mb_stride * (s->mb_height + 1); s 364 libavcodec/mpegvideo.c if (s->mb_height & 1) s 365 libavcodec/mpegvideo.c yc_size += 2*s->b8_stride + 2*s->mb_stride; s 367 libavcodec/mpegvideo.c s->sc.edge_emu_buffer = s 368 libavcodec/mpegvideo.c s->me.scratchpad = s 369 libavcodec/mpegvideo.c s->me.temp = s 370 libavcodec/mpegvideo.c s->sc.rd_scratchpad = s 371 libavcodec/mpegvideo.c s->sc.b_scratchpad = s 372 libavcodec/mpegvideo.c s->sc.obmc_scratchpad = NULL; s 374 libavcodec/mpegvideo.c if (s->encoding) { s 375 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->me.map, s 377 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->me.score_map, s 379 libavcodec/mpegvideo.c if (s->noise_reduction) { s 380 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->dct_error_sum, s 384 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->blocks, 64 * 12 * 2 * sizeof(int16_t), fail) s 385 libavcodec/mpegvideo.c s->block = s->blocks[0]; s 388 libavcodec/mpegvideo.c s->pblocks[i] = &s->block[i]; s 391 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->block32, sizeof(*s->block32), fail) s 392 libavcodec/mpegvideo.c s->dpcm_direction = 0; s 393 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->dpcm_macroblock, sizeof(*s->dpcm_macroblock), fail) s 395 libavcodec/mpegvideo.c if (s->avctx->codec_tag == AV_RL32("VCR2")) { s 397 libavcodec/mpegvideo.c FFSWAP(void *, s->pblocks[4], s->pblocks[5]); s 400 libavcodec/mpegvideo.c if (s->out_format == FMT_H263) { s 402 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->ac_val_base, s 404 libavcodec/mpegvideo.c s->ac_val[0] = s->ac_val_base + s->b8_stride + 1; s 405 libavcodec/mpegvideo.c s->ac_val[1] = s->ac_val_base + y_size + s->mb_stride + 1; s 406 libavcodec/mpegvideo.c s->ac_val[2] = s->ac_val[1] + c_size; s 414 libavcodec/mpegvideo.c static void free_duplicate_context(MpegEncContext *s) s 416 libavcodec/mpegvideo.c if (!s) s 419 libavcodec/mpegvideo.c av_freep(&s->sc.edge_emu_buffer); s 420 libavcodec/mpegvideo.c av_freep(&s->me.scratchpad); s 421 libavcodec/mpegvideo.c s->me.temp = s 422 libavcodec/mpegvideo.c s->sc.rd_scratchpad = s 423 libavcodec/mpegvideo.c s->sc.b_scratchpad = s 424 libavcodec/mpegvideo.c s->sc.obmc_scratchpad = NULL; s 426 libavcodec/mpegvideo.c av_freep(&s->dct_error_sum); s 427 libavcodec/mpegvideo.c av_freep(&s->me.map); s 428 libavcodec/mpegvideo.c av_freep(&s->me.score_map); s 429 libavcodec/mpegvideo.c av_freep(&s->blocks); s 430 libavcodec/mpegvideo.c av_freep(&s->block32); s 431 libavcodec/mpegvideo.c av_freep(&s->dpcm_macroblock); s 432 libavcodec/mpegvideo.c av_freep(&s->ac_val_base); s 433 libavcodec/mpegvideo.c s->block = NULL; s 495 libavcodec/mpegvideo.c MpegEncContext *s = dst->priv_data, *s1 = src->priv_data; s 500 libavcodec/mpegvideo.c av_assert0(s != s1); s 504 libavcodec/mpegvideo.c if (!s->context_initialized) { s 506 libavcodec/mpegvideo.c memcpy(s, s1, sizeof(MpegEncContext)); s 508 libavcodec/mpegvideo.c s->avctx = dst; s 509 libavcodec/mpegvideo.c s->bitstream_buffer = NULL; s 510 libavcodec/mpegvideo.c s->bitstream_buffer_size = s->allocated_bitstream_buffer_size = 0; s 515 libavcodec/mpegvideo.c ff_mpv_idct_init(s); s 516 libavcodec/mpegvideo.c if((err = ff_mpv_common_init(s)) < 0){ s 517 libavcodec/mpegvideo.c memset(s, 0, sizeof(MpegEncContext)); s 518 libavcodec/mpegvideo.c s->avctx = dst; s 524 libavcodec/mpegvideo.c if (s->height != s1->height || s->width != s1->width || s->context_reinit) { s 525 libavcodec/mpegvideo.c s->context_reinit = 0; s 526 libavcodec/mpegvideo.c s->height = s1->height; s 527 libavcodec/mpegvideo.c s->width = s1->width; s 528 libavcodec/mpegvideo.c if ((ret = ff_mpv_common_frame_size_change(s)) < 0) s 532 libavcodec/mpegvideo.c s->avctx->coded_height = s1->avctx->coded_height; s 533 libavcodec/mpegvideo.c s->avctx->coded_width = s1->avctx->coded_width; s 534 libavcodec/mpegvideo.c s->avctx->width = s1->avctx->width; s 535 libavcodec/mpegvideo.c s->avctx->height = s1->avctx->height; s 537 libavcodec/mpegvideo.c s->quarter_sample = s1->quarter_sample; s 539 libavcodec/mpegvideo.c s->coded_picture_number = s1->coded_picture_number; s 540 libavcodec/mpegvideo.c s->picture_number = s1->picture_number; s 542 libavcodec/mpegvideo.c av_assert0(!s->picture || s->picture != s1->picture); s 543 libavcodec/mpegvideo.c if(s->picture) s 545 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->picture[i]); s 547 libavcodec/mpegvideo.c (ret = ff_mpeg_ref_picture(s->avctx, &s->picture[i], &s1->picture[i])) < 0) s 553 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->pic);\ s 555 libavcodec/mpegvideo.c ret = ff_mpeg_ref_picture(s->avctx, &s->pic, &s1->pic);\ s 557 libavcodec/mpegvideo.c ret = ff_update_picture_tables(&s->pic, &s1->pic);\ s 571 libavcodec/mpegvideo.c s->last_picture_ptr = REBASE_PICTURE(s1->last_picture_ptr, s, s1); s 572 libavcodec/mpegvideo.c s->current_picture_ptr = REBASE_PICTURE(s1->current_picture_ptr, s, s1); s 573 libavcodec/mpegvideo.c s->next_picture_ptr = REBASE_PICTURE(s1->next_picture_ptr, s, s1); s 576 libavcodec/mpegvideo.c s->next_p_frame_damaged = s1->next_p_frame_damaged; s 577 libavcodec/mpegvideo.c s->workaround_bugs = s1->workaround_bugs; s 578 libavcodec/mpegvideo.c s->padding_bug_score = s1->padding_bug_score; s 581 libavcodec/mpegvideo.c memcpy(&s->last_time_base, &s1->last_time_base, s 586 libavcodec/mpegvideo.c s->max_b_frames = s1->max_b_frames; s 587 libavcodec/mpegvideo.c s->low_delay = s1->low_delay; s 588 libavcodec/mpegvideo.c s->droppable = s1->droppable; s 591 libavcodec/mpegvideo.c s->divx_packed = s1->divx_packed; s 595 libavcodec/mpegvideo.c AV_INPUT_BUFFER_PADDING_SIZE > s->allocated_bitstream_buffer_size) { s 596 libavcodec/mpegvideo.c av_fast_malloc(&s->bitstream_buffer, s 597 libavcodec/mpegvideo.c &s->allocated_bitstream_buffer_size, s 599 libavcodec/mpegvideo.c if (!s->bitstream_buffer) { s 600 libavcodec/mpegvideo.c s->bitstream_buffer_size = 0; s 604 libavcodec/mpegvideo.c s->bitstream_buffer_size = s1->bitstream_buffer_size; s 605 libavcodec/mpegvideo.c memcpy(s->bitstream_buffer, s1->bitstream_buffer, s 607 libavcodec/mpegvideo.c memset(s->bitstream_buffer + s->bitstream_buffer_size, 0, s 612 libavcodec/mpegvideo.c if (!s->sc.edge_emu_buffer) s 614 libavcodec/mpegvideo.c if (ff_mpeg_framesize_alloc(s->avctx, &s->me, s 615 libavcodec/mpegvideo.c &s->sc, s1->linesize) < 0) { s 616 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_ERROR, "Failed to allocate context " s 621 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_ERROR, "Context scratch buffers could not " s 626 libavcodec/mpegvideo.c memcpy(&s->progressive_sequence, &s1->progressive_sequence, s 630 libavcodec/mpegvideo.c s->last_pict_type = s1->pict_type; s 632 libavcodec/mpegvideo.c s->last_lambda_for[s1->pict_type] = s1->current_picture_ptr->f->quality; s 644 libavcodec/mpegvideo.c void ff_mpv_common_defaults(MpegEncContext *s) s 646 libavcodec/mpegvideo.c s->y_dc_scale_table = s 647 libavcodec/mpegvideo.c s->c_dc_scale_table = ff_mpeg1_dc_scale_table; s 648 libavcodec/mpegvideo.c s->chroma_qscale_table = ff_default_chroma_qscale_table; s 649 libavcodec/mpegvideo.c s->progressive_frame = 1; s 650 libavcodec/mpegvideo.c s->progressive_sequence = 1; s 651 libavcodec/mpegvideo.c s->picture_structure = PICT_FRAME; s 653 libavcodec/mpegvideo.c s->coded_picture_number = 0; s 654 libavcodec/mpegvideo.c s->picture_number = 0; s 656 libavcodec/mpegvideo.c s->f_code = 1; s 657 libavcodec/mpegvideo.c s->b_code = 1; s 659 libavcodec/mpegvideo.c s->slice_context_count = 1; s 667 libavcodec/mpegvideo.c void ff_mpv_decode_defaults(MpegEncContext *s) s 669 libavcodec/mpegvideo.c ff_mpv_common_defaults(s); s 672 libavcodec/mpegvideo.c void ff_mpv_decode_init(MpegEncContext *s, AVCodecContext *avctx) s 674 libavcodec/mpegvideo.c s->avctx = avctx; s 675 libavcodec/mpegvideo.c s->width = avctx->coded_width; s 676 libavcodec/mpegvideo.c s->height = avctx->coded_height; s 677 libavcodec/mpegvideo.c s->codec_id = avctx->codec->id; s 678 libavcodec/mpegvideo.c s->workaround_bugs = avctx->workaround_bugs; s 681 libavcodec/mpegvideo.c s->codec_tag = avpriv_toupper4(avctx->codec_tag); s 687 libavcodec/mpegvideo.c static int init_context_frame(MpegEncContext *s) s 691 libavcodec/mpegvideo.c s->mb_width = (s->width + 15) / 16; s 692 libavcodec/mpegvideo.c s->mb_stride = s->mb_width + 1; s 693 libavcodec/mpegvideo.c s->b8_stride = s->mb_width * 2 + 1; s 694 libavcodec/mpegvideo.c mb_array_size = s->mb_height * s->mb_stride; s 695 libavcodec/mpegvideo.c mv_table_size = (s->mb_height + 2) * s->mb_stride + 1; s 699 libavcodec/mpegvideo.c s->h_edge_pos = s->mb_width * 16; s 700 libavcodec/mpegvideo.c s->v_edge_pos = s->mb_height * 16; s 702 libavcodec/mpegvideo.c s->mb_num = s->mb_width * s->mb_height; s 704 libavcodec/mpegvideo.c s->block_wrap[0] = s 705 libavcodec/mpegvideo.c s->block_wrap[1] = s 706 libavcodec/mpegvideo.c s->block_wrap[2] = s 707 libavcodec/mpegvideo.c s->block_wrap[3] = s->b8_stride; s 708 libavcodec/mpegvideo.c s->block_wrap[4] = s 709 libavcodec/mpegvideo.c s->block_wrap[5] = s->mb_stride; s 711 libavcodec/mpegvideo.c y_size = s->b8_stride * (2 * s->mb_height + 1); s 712 libavcodec/mpegvideo.c c_size = s->mb_stride * (s->mb_height + 1); s 715 libavcodec/mpegvideo.c if (s->mb_height & 1) s 716 libavcodec/mpegvideo.c yc_size += 2*s->b8_stride + 2*s->mb_stride; s 718 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int), s 720 libavcodec/mpegvideo.c for (y = 0; y < s->mb_height; y++) s 721 libavcodec/mpegvideo.c for (x = 0; x < s->mb_width; x++) s 722 libavcodec/mpegvideo.c s->mb_index2xy[x + y * s->mb_width] = x + y * s->mb_stride; s 724 libavcodec/mpegvideo.c s->mb_index2xy[s->mb_height * s->mb_width] = (s->mb_height - 1) * s->mb_stride + s->mb_width; // FIXME really needed? s 726 libavcodec/mpegvideo.c if (s->encoding) { s 728 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->p_mv_table_base, mv_table_size * 2 * sizeof(int16_t), fail) s 729 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->b_forw_mv_table_base, mv_table_size * 2 * sizeof(int16_t), fail) s 730 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->b_back_mv_table_base, mv_table_size * 2 * sizeof(int16_t), fail) s 731 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->b_bidir_forw_mv_table_base, mv_table_size * 2 * sizeof(int16_t), fail) s 732 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->b_bidir_back_mv_table_base, mv_table_size * 2 * sizeof(int16_t), fail) s 733 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->b_direct_mv_table_base, mv_table_size * 2 * sizeof(int16_t), fail) s 734 libavcodec/mpegvideo.c s->p_mv_table = s->p_mv_table_base + s->mb_stride + 1; s 735 libavcodec/mpegvideo.c s->b_forw_mv_table = s->b_forw_mv_table_base + s->mb_stride + 1; s 736 libavcodec/mpegvideo.c s->b_back_mv_table = s->b_back_mv_table_base + s->mb_stride + 1; s 737 libavcodec/mpegvideo.c s->b_bidir_forw_mv_table = s->b_bidir_forw_mv_table_base + s->mb_stride + 1; s 738 libavcodec/mpegvideo.c s->b_bidir_back_mv_table = s->b_bidir_back_mv_table_base + s->mb_stride + 1; s 739 libavcodec/mpegvideo.c s->b_direct_mv_table = s->b_direct_mv_table_base + s->mb_stride + 1; s 742 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_type, mb_array_size * sizeof(uint16_t), fail) // needed for encoding s 744 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->lambda_table, mb_array_size * sizeof(int), fail) s 746 libavcodec/mpegvideo.c FF_ALLOC_OR_GOTO(s->avctx, s->cplx_tab, s 748 libavcodec/mpegvideo.c FF_ALLOC_OR_GOTO(s->avctx, s->bits_tab, s 753 libavcodec/mpegvideo.c if (s->codec_id == AV_CODEC_ID_MPEG4 || s 754 libavcodec/mpegvideo.c (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME)) { s 760 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s 761 libavcodec/mpegvideo.c s->b_field_mv_table_base[i][j][k], s 764 libavcodec/mpegvideo.c s->b_field_mv_table[i][j][k] = s->b_field_mv_table_base[i][j][k] + s 765 libavcodec/mpegvideo.c s->mb_stride + 1; s 767 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->b_field_select_table [i][j], mb_array_size * 2 * sizeof(uint8_t), fail) s 768 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->p_field_mv_table_base[i][j], mv_table_size * 2 * sizeof(int16_t), fail) s 769 libavcodec/mpegvideo.c s->p_field_mv_table[i][j] = s->p_field_mv_table_base[i][j] + s->mb_stride + 1; s 771 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->p_field_select_table[i], mb_array_size * 2 * sizeof(uint8_t), fail) s 774 libavcodec/mpegvideo.c if (s->out_format == FMT_H263) { s 776 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->coded_block_base, y_size + (s->mb_height&1)*2*s->b8_stride, fail); s 777 libavcodec/mpegvideo.c s->coded_block = s->coded_block_base + s->b8_stride + 1; s 780 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->cbp_table , mb_array_size * sizeof(uint8_t), fail); s 781 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->pred_dir_table, mb_array_size * sizeof(uint8_t), fail); s 784 libavcodec/mpegvideo.c if (s->h263_pred || s->h263_plus || !s->encoding) { s 787 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->dc_val_base, yc_size * sizeof(int16_t), fail); s 788 libavcodec/mpegvideo.c s->dc_val[0] = s->dc_val_base + s->b8_stride + 1; s 789 libavcodec/mpegvideo.c s->dc_val[1] = s->dc_val_base + y_size + s->mb_stride + 1; s 790 libavcodec/mpegvideo.c s->dc_val[2] = s->dc_val[1] + c_size; s 792 libavcodec/mpegvideo.c s->dc_val_base[i] = 1024; s 796 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->mbintra_table, mb_array_size, fail); s 797 libavcodec/mpegvideo.c memset(s->mbintra_table, 1, mb_array_size); s 800 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->mbskip_table, mb_array_size + 2, fail); s 803 libavcodec/mpegvideo.c return ff_mpeg_er_init(s); s 808 libavcodec/mpegvideo.c static void clear_context(MpegEncContext *s) s 812 libavcodec/mpegvideo.c memset(&s->next_picture, 0, sizeof(s->next_picture)); s 813 libavcodec/mpegvideo.c memset(&s->last_picture, 0, sizeof(s->last_picture)); s 814 libavcodec/mpegvideo.c memset(&s->current_picture, 0, sizeof(s->current_picture)); s 815 libavcodec/mpegvideo.c memset(&s->new_picture, 0, sizeof(s->new_picture)); s 817 libavcodec/mpegvideo.c memset(s->thread_context, 0, sizeof(s->thread_context)); s 819 libavcodec/mpegvideo.c s->me.map = NULL; s 820 libavcodec/mpegvideo.c s->me.score_map = NULL; s 821 libavcodec/mpegvideo.c s->dct_error_sum = NULL; s 822 libavcodec/mpegvideo.c s->block = NULL; s 823 libavcodec/mpegvideo.c s->blocks = NULL; s 824 libavcodec/mpegvideo.c s->block32 = NULL; s 825 libavcodec/mpegvideo.c memset(s->pblocks, 0, sizeof(s->pblocks)); s 826 libavcodec/mpegvideo.c s->dpcm_direction = 0; s 827 libavcodec/mpegvideo.c s->dpcm_macroblock = NULL; s 828 libavcodec/mpegvideo.c s->ac_val_base = NULL; s 829 libavcodec/mpegvideo.c s->ac_val[0] = s 830 libavcodec/mpegvideo.c s->ac_val[1] = s 831 libavcodec/mpegvideo.c s->ac_val[2] =NULL; s 832 libavcodec/mpegvideo.c s->sc.edge_emu_buffer = NULL; s 833 libavcodec/mpegvideo.c s->me.scratchpad = NULL; s 834 libavcodec/mpegvideo.c s->me.temp = s 835 libavcodec/mpegvideo.c s->sc.rd_scratchpad = s 836 libavcodec/mpegvideo.c s->sc.b_scratchpad = s 837 libavcodec/mpegvideo.c s->sc.obmc_scratchpad = NULL; s 840 libavcodec/mpegvideo.c s->bitstream_buffer = NULL; s 841 libavcodec/mpegvideo.c s->allocated_bitstream_buffer_size = 0; s 842 libavcodec/mpegvideo.c s->picture = NULL; s 843 libavcodec/mpegvideo.c s->mb_type = NULL; s 844 libavcodec/mpegvideo.c s->p_mv_table_base = NULL; s 845 libavcodec/mpegvideo.c s->b_forw_mv_table_base = NULL; s 846 libavcodec/mpegvideo.c s->b_back_mv_table_base = NULL; s 847 libavcodec/mpegvideo.c s->b_bidir_forw_mv_table_base = NULL; s 848 libavcodec/mpegvideo.c s->b_bidir_back_mv_table_base = NULL; s 849 libavcodec/mpegvideo.c s->b_direct_mv_table_base = NULL; s 850 libavcodec/mpegvideo.c s->p_mv_table = NULL; s 851 libavcodec/mpegvideo.c s->b_forw_mv_table = NULL; s 852 libavcodec/mpegvideo.c s->b_back_mv_table = NULL; s 853 libavcodec/mpegvideo.c s->b_bidir_forw_mv_table = NULL; s 854 libavcodec/mpegvideo.c s->b_bidir_back_mv_table = NULL; s 855 libavcodec/mpegvideo.c s->b_direct_mv_table = NULL; s 859 libavcodec/mpegvideo.c s->b_field_mv_table_base[i][j][k] = NULL; s 860 libavcodec/mpegvideo.c s->b_field_mv_table[i][j][k] = NULL; s 862 libavcodec/mpegvideo.c s->b_field_select_table[i][j] = NULL; s 863 libavcodec/mpegvideo.c s->p_field_mv_table_base[i][j] = NULL; s 864 libavcodec/mpegvideo.c s->p_field_mv_table[i][j] = NULL; s 866 libavcodec/mpegvideo.c s->p_field_select_table[i] = NULL; s 869 libavcodec/mpegvideo.c s->dc_val_base = NULL; s 870 libavcodec/mpegvideo.c s->coded_block_base = NULL; s 871 libavcodec/mpegvideo.c s->mbintra_table = NULL; s 872 libavcodec/mpegvideo.c s->cbp_table = NULL; s 873 libavcodec/mpegvideo.c s->pred_dir_table = NULL; s 875 libavcodec/mpegvideo.c s->mbskip_table = NULL; s 877 libavcodec/mpegvideo.c s->er.error_status_table = NULL; s 878 libavcodec/mpegvideo.c s->er.er_temp_buffer = NULL; s 879 libavcodec/mpegvideo.c s->mb_index2xy = NULL; s 880 libavcodec/mpegvideo.c s->lambda_table = NULL; s 882 libavcodec/mpegvideo.c s->cplx_tab = NULL; s 883 libavcodec/mpegvideo.c s->bits_tab = NULL; s 890 libavcodec/mpegvideo.c av_cold int ff_mpv_common_init(MpegEncContext *s) s 894 libavcodec/mpegvideo.c s->avctx->active_thread_type & FF_THREAD_SLICE) ? s 895 libavcodec/mpegvideo.c s->avctx->thread_count : 1; s 897 libavcodec/mpegvideo.c clear_context(s); s 899 libavcodec/mpegvideo.c if (s->encoding && s->avctx->slices) s 900 libavcodec/mpegvideo.c nb_slices = s->avctx->slices; s 902 libavcodec/mpegvideo.c if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO && !s->progressive_sequence) s 903 libavcodec/mpegvideo.c s->mb_height = (s->height + 31) / 32 * 2; s 905 libavcodec/mpegvideo.c s->mb_height = (s->height + 15) / 16; s 907 libavcodec/mpegvideo.c if (s->avctx->pix_fmt == AV_PIX_FMT_NONE) { s 908 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_ERROR, s 913 libavcodec/mpegvideo.c if (nb_slices > MAX_THREADS || (nb_slices > s->mb_height && s->mb_height)) { s 915 libavcodec/mpegvideo.c if (s->mb_height) s 916 libavcodec/mpegvideo.c max_slices = FFMIN(MAX_THREADS, s->mb_height); s 919 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_WARNING, "too many threads/slices (%d)," s 924 libavcodec/mpegvideo.c if ((s->width || s->height) && s 925 libavcodec/mpegvideo.c av_image_check_size(s->width, s->height, 0, s->avctx)) s 928 libavcodec/mpegvideo.c dct_init(s); s 931 libavcodec/mpegvideo.c ret = av_pix_fmt_get_chroma_sub_sample(s->avctx->pix_fmt, s 932 libavcodec/mpegvideo.c &s->chroma_x_shift, s 933 libavcodec/mpegvideo.c &s->chroma_y_shift); s 937 libavcodec/mpegvideo.c FF_ALLOCZ_OR_GOTO(s->avctx, s->picture, s 940 libavcodec/mpegvideo.c s->picture[i].f = av_frame_alloc(); s 941 libavcodec/mpegvideo.c if (!s->picture[i].f) s 944 libavcodec/mpegvideo.c s->next_picture.f = av_frame_alloc(); s 945 libavcodec/mpegvideo.c if (!s->next_picture.f) s 947 libavcodec/mpegvideo.c s->last_picture.f = av_frame_alloc(); s 948 libavcodec/mpegvideo.c if (!s->last_picture.f) s 950 libavcodec/mpegvideo.c s->current_picture.f = av_frame_alloc(); s 951 libavcodec/mpegvideo.c if (!s->current_picture.f) s 953 libavcodec/mpegvideo.c s->new_picture.f = av_frame_alloc(); s 954 libavcodec/mpegvideo.c if (!s->new_picture.f) s 957 libavcodec/mpegvideo.c if ((ret = init_context_frame(s))) s 960 libavcodec/mpegvideo.c s->parse_context.state = -1; s 962 libavcodec/mpegvideo.c s->context_initialized = 1; s 963 libavcodec/mpegvideo.c memset(s->thread_context, 0, sizeof(s->thread_context)); s 964 libavcodec/mpegvideo.c s->thread_context[0] = s; s 970 libavcodec/mpegvideo.c s->thread_context[i] = av_memdup(s, sizeof(MpegEncContext)); s 971 libavcodec/mpegvideo.c if (!s->thread_context[i]) s 974 libavcodec/mpegvideo.c if ((ret = init_duplicate_context(s->thread_context[i])) < 0) s 976 libavcodec/mpegvideo.c s->thread_context[i]->start_mb_y = s 977 libavcodec/mpegvideo.c (s->mb_height * (i) + nb_slices / 2) / nb_slices; s 978 libavcodec/mpegvideo.c s->thread_context[i]->end_mb_y = s 979 libavcodec/mpegvideo.c (s->mb_height * (i + 1) + nb_slices / 2) / nb_slices; s 982 libavcodec/mpegvideo.c if ((ret = init_duplicate_context(s)) < 0) s 984 libavcodec/mpegvideo.c s->start_mb_y = 0; s 985 libavcodec/mpegvideo.c s->end_mb_y = s->mb_height; s 987 libavcodec/mpegvideo.c s->slice_context_count = nb_slices; s 994 libavcodec/mpegvideo.c ff_mpv_common_end(s); s 1003 libavcodec/mpegvideo.c static void free_context_frame(MpegEncContext *s) s 1007 libavcodec/mpegvideo.c av_freep(&s->mb_type); s 1008 libavcodec/mpegvideo.c av_freep(&s->p_mv_table_base); s 1009 libavcodec/mpegvideo.c av_freep(&s->b_forw_mv_table_base); s 1010 libavcodec/mpegvideo.c av_freep(&s->b_back_mv_table_base); s 1011 libavcodec/mpegvideo.c av_freep(&s->b_bidir_forw_mv_table_base); s 1012 libavcodec/mpegvideo.c av_freep(&s->b_bidir_back_mv_table_base); s 1013 libavcodec/mpegvideo.c av_freep(&s->b_direct_mv_table_base); s 1014 libavcodec/mpegvideo.c s->p_mv_table = NULL; s 1015 libavcodec/mpegvideo.c s->b_forw_mv_table = NULL; s 1016 libavcodec/mpegvideo.c s->b_back_mv_table = NULL; s 1017 libavcodec/mpegvideo.c s->b_bidir_forw_mv_table = NULL; s 1018 libavcodec/mpegvideo.c s->b_bidir_back_mv_table = NULL; s 1019 libavcodec/mpegvideo.c s->b_direct_mv_table = NULL; s 1023 libavcodec/mpegvideo.c av_freep(&s->b_field_mv_table_base[i][j][k]); s 1024 libavcodec/mpegvideo.c s->b_field_mv_table[i][j][k] = NULL; s 1026 libavcodec/mpegvideo.c av_freep(&s->b_field_select_table[i][j]); s 1027 libavcodec/mpegvideo.c av_freep(&s->p_field_mv_table_base[i][j]); s 1028 libavcodec/mpegvideo.c s->p_field_mv_table[i][j] = NULL; s 1030 libavcodec/mpegvideo.c av_freep(&s->p_field_select_table[i]); s 1033 libavcodec/mpegvideo.c av_freep(&s->dc_val_base); s 1034 libavcodec/mpegvideo.c av_freep(&s->coded_block_base); s 1035 libavcodec/mpegvideo.c av_freep(&s->mbintra_table); s 1036 libavcodec/mpegvideo.c av_freep(&s->cbp_table); s 1037 libavcodec/mpegvideo.c av_freep(&s->pred_dir_table); s 1039 libavcodec/mpegvideo.c av_freep(&s->mbskip_table); s 1041 libavcodec/mpegvideo.c av_freep(&s->er.error_status_table); s 1042 libavcodec/mpegvideo.c av_freep(&s->er.er_temp_buffer); s 1043 libavcodec/mpegvideo.c av_freep(&s->mb_index2xy); s 1044 libavcodec/mpegvideo.c av_freep(&s->lambda_table); s 1046 libavcodec/mpegvideo.c av_freep(&s->cplx_tab); s 1047 libavcodec/mpegvideo.c av_freep(&s->bits_tab); s 1049 libavcodec/mpegvideo.c s->linesize = s->uvlinesize = 0; s 1052 libavcodec/mpegvideo.c int ff_mpv_common_frame_size_change(MpegEncContext *s) s 1056 libavcodec/mpegvideo.c if (!s->context_initialized) s 1059 libavcodec/mpegvideo.c if (s->slice_context_count > 1) { s 1060 libavcodec/mpegvideo.c for (i = 0; i < s->slice_context_count; i++) { s 1061 libavcodec/mpegvideo.c free_duplicate_context(s->thread_context[i]); s 1063 libavcodec/mpegvideo.c for (i = 1; i < s->slice_context_count; i++) { s 1064 libavcodec/mpegvideo.c av_freep(&s->thread_context[i]); s 1067 libavcodec/mpegvideo.c free_duplicate_context(s); s 1069 libavcodec/mpegvideo.c free_context_frame(s); s 1071 libavcodec/mpegvideo.c if (s->picture) s 1073 libavcodec/mpegvideo.c s->picture[i].needs_realloc = 1; s 1076 libavcodec/mpegvideo.c s->last_picture_ptr = s 1077 libavcodec/mpegvideo.c s->next_picture_ptr = s 1078 libavcodec/mpegvideo.c s->current_picture_ptr = NULL; s 1081 libavcodec/mpegvideo.c if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO && !s->progressive_sequence) s 1082 libavcodec/mpegvideo.c s->mb_height = (s->height + 31) / 32 * 2; s 1084 libavcodec/mpegvideo.c s->mb_height = (s->height + 15) / 16; s 1086 libavcodec/mpegvideo.c if ((s->width || s->height) && s 1087 libavcodec/mpegvideo.c (err = av_image_check_size(s->width, s->height, 0, s->avctx)) < 0) s 1090 libavcodec/mpegvideo.c if ((err = init_context_frame(s))) s 1093 libavcodec/mpegvideo.c memset(s->thread_context, 0, sizeof(s->thread_context)); s 1094 libavcodec/mpegvideo.c s->thread_context[0] = s; s 1096 libavcodec/mpegvideo.c if (s->width && s->height) { s 1097 libavcodec/mpegvideo.c int nb_slices = s->slice_context_count; s 1101 libavcodec/mpegvideo.c s->thread_context[i] = av_memdup(s, sizeof(MpegEncContext)); s 1102 libavcodec/mpegvideo.c if (!s->thread_context[i]) { s 1107 libavcodec/mpegvideo.c if ((err = init_duplicate_context(s->thread_context[i])) < 0) s 1109 libavcodec/mpegvideo.c s->thread_context[i]->start_mb_y = s 1110 libavcodec/mpegvideo.c (s->mb_height * (i) + nb_slices / 2) / nb_slices; s 1111 libavcodec/mpegvideo.c s->thread_context[i]->end_mb_y = s 1112 libavcodec/mpegvideo.c (s->mb_height * (i + 1) + nb_slices / 2) / nb_slices; s 1115 libavcodec/mpegvideo.c err = init_duplicate_context(s); s 1118 libavcodec/mpegvideo.c s->start_mb_y = 0; s 1119 libavcodec/mpegvideo.c s->end_mb_y = s->mb_height; s 1121 libavcodec/mpegvideo.c s->slice_context_count = nb_slices; s 1126 libavcodec/mpegvideo.c ff_mpv_common_end(s); s 1131 libavcodec/mpegvideo.c void ff_mpv_common_end(MpegEncContext *s) s 1135 libavcodec/mpegvideo.c if (!s) s 1138 libavcodec/mpegvideo.c if (s->slice_context_count > 1) { s 1139 libavcodec/mpegvideo.c for (i = 0; i < s->slice_context_count; i++) { s 1140 libavcodec/mpegvideo.c free_duplicate_context(s->thread_context[i]); s 1142 libavcodec/mpegvideo.c for (i = 1; i < s->slice_context_count; i++) { s 1143 libavcodec/mpegvideo.c av_freep(&s->thread_context[i]); s 1145 libavcodec/mpegvideo.c s->slice_context_count = 1; s 1146 libavcodec/mpegvideo.c } else free_duplicate_context(s); s 1148 libavcodec/mpegvideo.c av_freep(&s->parse_context.buffer); s 1149 libavcodec/mpegvideo.c s->parse_context.buffer_size = 0; s 1151 libavcodec/mpegvideo.c av_freep(&s->bitstream_buffer); s 1152 libavcodec/mpegvideo.c s->allocated_bitstream_buffer_size = 0; s 1154 libavcodec/mpegvideo.c if (s->picture) { s 1156 libavcodec/mpegvideo.c ff_free_picture_tables(&s->picture[i]); s 1157 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->picture[i]); s 1158 libavcodec/mpegvideo.c av_frame_free(&s->picture[i].f); s 1161 libavcodec/mpegvideo.c av_freep(&s->picture); s 1162 libavcodec/mpegvideo.c ff_free_picture_tables(&s->last_picture); s 1163 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->last_picture); s 1164 libavcodec/mpegvideo.c av_frame_free(&s->last_picture.f); s 1165 libavcodec/mpegvideo.c ff_free_picture_tables(&s->current_picture); s 1166 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->current_picture); s 1167 libavcodec/mpegvideo.c av_frame_free(&s->current_picture.f); s 1168 libavcodec/mpegvideo.c ff_free_picture_tables(&s->next_picture); s 1169 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->next_picture); s 1170 libavcodec/mpegvideo.c av_frame_free(&s->next_picture.f); s 1171 libavcodec/mpegvideo.c ff_free_picture_tables(&s->new_picture); s 1172 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->new_picture); s 1173 libavcodec/mpegvideo.c av_frame_free(&s->new_picture.f); s 1175 libavcodec/mpegvideo.c free_context_frame(s); s 1177 libavcodec/mpegvideo.c s->context_initialized = 0; s 1178 libavcodec/mpegvideo.c s->last_picture_ptr = s 1179 libavcodec/mpegvideo.c s->next_picture_ptr = s 1180 libavcodec/mpegvideo.c s->current_picture_ptr = NULL; s 1181 libavcodec/mpegvideo.c s->linesize = s->uvlinesize = 0; s 1205 libavcodec/mpegvideo.c int ff_mpv_frame_start(MpegEncContext *s, AVCodecContext *avctx) s 1209 libavcodec/mpegvideo.c s->mb_skipped = 0; s 1217 libavcodec/mpegvideo.c if (s->pict_type != AV_PICTURE_TYPE_B && s->last_picture_ptr && s 1218 libavcodec/mpegvideo.c s->last_picture_ptr != s->next_picture_ptr && s 1219 libavcodec/mpegvideo.c s->last_picture_ptr->f->buf[0]) { s 1220 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, s->last_picture_ptr); s 1226 libavcodec/mpegvideo.c if (&s->picture[i] != s->last_picture_ptr && s 1227 libavcodec/mpegvideo.c &s->picture[i] != s->next_picture_ptr && s 1228 libavcodec/mpegvideo.c s->picture[i].reference && !s->picture[i].needs_realloc) { s 1229 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->picture[i]); s 1233 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->current_picture); s 1234 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->last_picture); s 1235 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->next_picture); s 1239 libavcodec/mpegvideo.c if (!s->picture[i].reference) s 1240 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->picture[i]); s 1243 libavcodec/mpegvideo.c if (s->current_picture_ptr && !s->current_picture_ptr->f->buf[0]) { s 1246 libavcodec/mpegvideo.c pic = s->current_picture_ptr; s 1248 libavcodec/mpegvideo.c i = ff_find_unused_picture(s->avctx, s->picture, 0); s 1250 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_ERROR, "no frame buffer available\n"); s 1253 libavcodec/mpegvideo.c pic = &s->picture[i]; s 1257 libavcodec/mpegvideo.c if (!s->droppable) { s 1258 libavcodec/mpegvideo.c if (s->pict_type != AV_PICTURE_TYPE_B) s 1262 libavcodec/mpegvideo.c pic->f->coded_picture_number = s->coded_picture_number++; s 1264 libavcodec/mpegvideo.c if (alloc_picture(s, pic) < 0) s 1267 libavcodec/mpegvideo.c s->current_picture_ptr = pic; s 1269 libavcodec/mpegvideo.c s->current_picture_ptr->f->top_field_first = s->top_field_first; s 1270 libavcodec/mpegvideo.c if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO || s 1271 libavcodec/mpegvideo.c s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { s 1272 libavcodec/mpegvideo.c if (s->picture_structure != PICT_FRAME) s 1273 libavcodec/mpegvideo.c s->current_picture_ptr->f->top_field_first = s 1274 libavcodec/mpegvideo.c (s->picture_structure == PICT_TOP_FIELD) == s->first_field; s 1276 libavcodec/mpegvideo.c s->current_picture_ptr->f->interlaced_frame = !s->progressive_frame && s 1277 libavcodec/mpegvideo.c !s->progressive_sequence; s 1278 libavcodec/mpegvideo.c s->current_picture_ptr->field_picture = s->picture_structure != PICT_FRAME; s 1280 libavcodec/mpegvideo.c s->current_picture_ptr->f->pict_type = s->pict_type; s 1283 libavcodec/mpegvideo.c s->current_picture_ptr->f->key_frame = s->pict_type == AV_PICTURE_TYPE_I; s 1285 libavcodec/mpegvideo.c if ((ret = ff_mpeg_ref_picture(s->avctx, &s->current_picture, s 1286 libavcodec/mpegvideo.c s->current_picture_ptr)) < 0) s 1289 libavcodec/mpegvideo.c if (s->pict_type != AV_PICTURE_TYPE_B) { s 1290 libavcodec/mpegvideo.c s->last_picture_ptr = s->next_picture_ptr; s 1291 libavcodec/mpegvideo.c if (!s->droppable) s 1292 libavcodec/mpegvideo.c s->next_picture_ptr = s->current_picture_ptr; s 1294 libavcodec/mpegvideo.c ff_dlog(s->avctx, "L%p N%p C%p L%p N%p C%p type:%d drop:%d\n", s 1295 libavcodec/mpegvideo.c s->last_picture_ptr, s->next_picture_ptr,s->current_picture_ptr, s 1296 libavcodec/mpegvideo.c s->last_picture_ptr ? s->last_picture_ptr->f->data[0] : NULL, s 1297 libavcodec/mpegvideo.c s->next_picture_ptr ? s->next_picture_ptr->f->data[0] : NULL, s 1298 libavcodec/mpegvideo.c s->current_picture_ptr ? s->current_picture_ptr->f->data[0] : NULL, s 1299 libavcodec/mpegvideo.c s->pict_type, s->droppable); s 1301 libavcodec/mpegvideo.c if ((!s->last_picture_ptr || !s->last_picture_ptr->f->buf[0]) && s 1302 libavcodec/mpegvideo.c (s->pict_type != AV_PICTURE_TYPE_I)) { s 1304 libavcodec/mpegvideo.c av_pix_fmt_get_chroma_sub_sample(s->avctx->pix_fmt, s 1306 libavcodec/mpegvideo.c if (s->pict_type == AV_PICTURE_TYPE_B && s->next_picture_ptr && s->next_picture_ptr->f->buf[0]) s 1309 libavcodec/mpegvideo.c else if (s->pict_type != AV_PICTURE_TYPE_I) s 1314 libavcodec/mpegvideo.c i = ff_find_unused_picture(s->avctx, s->picture, 0); s 1316 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_ERROR, "no frame buffer available\n"); s 1319 libavcodec/mpegvideo.c s->last_picture_ptr = &s->picture[i]; s 1321 libavcodec/mpegvideo.c s->last_picture_ptr->reference = 3; s 1322 libavcodec/mpegvideo.c s->last_picture_ptr->f->key_frame = 0; s 1323 libavcodec/mpegvideo.c s->last_picture_ptr->f->pict_type = AV_PICTURE_TYPE_P; s 1325 libavcodec/mpegvideo.c if (alloc_picture(s, s->last_picture_ptr) < 0) { s 1326 libavcodec/mpegvideo.c s->last_picture_ptr = NULL; s 1332 libavcodec/mpegvideo.c memset(s->last_picture_ptr->f->data[0] + s->last_picture_ptr->f->linesize[0]*i, s 1334 libavcodec/mpegvideo.c if (s->last_picture_ptr->f->data[2]) { s 1336 libavcodec/mpegvideo.c memset(s->last_picture_ptr->f->data[1] + s->last_picture_ptr->f->linesize[1]*i, s 1338 libavcodec/mpegvideo.c memset(s->last_picture_ptr->f->data[2] + s->last_picture_ptr->f->linesize[2]*i, s 1343 libavcodec/mpegvideo.c if(s->codec_id == AV_CODEC_ID_FLV1 || s->codec_id == AV_CODEC_ID_H263){ s 1345 libavcodec/mpegvideo.c memset(s->last_picture_ptr->f->data[0] + s->last_picture_ptr->f->linesize[0]*i, 16, avctx->width); s 1349 libavcodec/mpegvideo.c ff_thread_report_progress(&s->last_picture_ptr->tf, INT_MAX, 0); s 1350 libavcodec/mpegvideo.c ff_thread_report_progress(&s->last_picture_ptr->tf, INT_MAX, 1); s 1352 libavcodec/mpegvideo.c if ((!s->next_picture_ptr || !s->next_picture_ptr->f->buf[0]) && s 1353 libavcodec/mpegvideo.c s->pict_type == AV_PICTURE_TYPE_B) { s 1355 libavcodec/mpegvideo.c i = ff_find_unused_picture(s->avctx, s->picture, 0); s 1357 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_ERROR, "no frame buffer available\n"); s 1360 libavcodec/mpegvideo.c s->next_picture_ptr = &s->picture[i]; s 1362 libavcodec/mpegvideo.c s->next_picture_ptr->reference = 3; s 1363 libavcodec/mpegvideo.c s->next_picture_ptr->f->key_frame = 0; s 1364 libavcodec/mpegvideo.c s->next_picture_ptr->f->pict_type = AV_PICTURE_TYPE_P; s 1366 libavcodec/mpegvideo.c if (alloc_picture(s, s->next_picture_ptr) < 0) { s 1367 libavcodec/mpegvideo.c s->next_picture_ptr = NULL; s 1370 libavcodec/mpegvideo.c ff_thread_report_progress(&s->next_picture_ptr->tf, INT_MAX, 0); s 1371 libavcodec/mpegvideo.c ff_thread_report_progress(&s->next_picture_ptr->tf, INT_MAX, 1); s 1375 libavcodec/mpegvideo.c memset(s->last_picture.f->data, 0, sizeof(s->last_picture.f->data)); s 1376 libavcodec/mpegvideo.c memset(s->next_picture.f->data, 0, sizeof(s->next_picture.f->data)); s 1378 libavcodec/mpegvideo.c if (s->last_picture_ptr) { s 1379 libavcodec/mpegvideo.c if (s->last_picture_ptr->f->buf[0] && s 1380 libavcodec/mpegvideo.c (ret = ff_mpeg_ref_picture(s->avctx, &s->last_picture, s 1381 libavcodec/mpegvideo.c s->last_picture_ptr)) < 0) s 1384 libavcodec/mpegvideo.c if (s->next_picture_ptr) { s 1385 libavcodec/mpegvideo.c if (s->next_picture_ptr->f->buf[0] && s 1386 libavcodec/mpegvideo.c (ret = ff_mpeg_ref_picture(s->avctx, &s->next_picture, s 1387 libavcodec/mpegvideo.c s->next_picture_ptr)) < 0) s 1391 libavcodec/mpegvideo.c av_assert0(s->pict_type == AV_PICTURE_TYPE_I || (s->last_picture_ptr && s 1392 libavcodec/mpegvideo.c s->last_picture_ptr->f->buf[0])); s 1394 libavcodec/mpegvideo.c if (s->picture_structure!= PICT_FRAME) { s 1397 libavcodec/mpegvideo.c if (s->picture_structure == PICT_BOTTOM_FIELD) { s 1398 libavcodec/mpegvideo.c s->current_picture.f->data[i] += s 1399 libavcodec/mpegvideo.c s->current_picture.f->linesize[i]; s 1401 libavcodec/mpegvideo.c s->current_picture.f->linesize[i] *= 2; s 1402 libavcodec/mpegvideo.c s->last_picture.f->linesize[i] *= 2; s 1403 libavcodec/mpegvideo.c s->next_picture.f->linesize[i] *= 2; s 1410 libavcodec/mpegvideo.c if (s->mpeg_quant || s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { s 1411 libavcodec/mpegvideo.c s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; s 1412 libavcodec/mpegvideo.c s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; s 1413 libavcodec/mpegvideo.c } else if (s->out_format == FMT_H263 || s->out_format == FMT_H261) { s 1414 libavcodec/mpegvideo.c s->dct_unquantize_intra = s->dct_unquantize_h263_intra; s 1415 libavcodec/mpegvideo.c s->dct_unquantize_inter = s->dct_unquantize_h263_inter; s 1417 libavcodec/mpegvideo.c s->dct_unquantize_intra = s->dct_unquantize_mpeg1_intra; s 1418 libavcodec/mpegvideo.c s->dct_unquantize_inter = s->dct_unquantize_mpeg1_inter; s 1421 libavcodec/mpegvideo.c if (s->avctx->debug & FF_DEBUG_NOMC) { s 1422 libavcodec/mpegvideo.c gray_frame(s->current_picture_ptr->f); s 1429 libavcodec/mpegvideo.c void ff_mpv_frame_end(MpegEncContext *s) s 1433 libavcodec/mpegvideo.c if (s->current_picture.reference) s 1434 libavcodec/mpegvideo.c ff_thread_report_progress(&s->current_picture_ptr->tf, INT_MAX, 0); s 1437 libavcodec/mpegvideo.c void ff_print_debug_info(MpegEncContext *s, Picture *p, AVFrame *pict) s 1439 libavcodec/mpegvideo.c ff_print_debug_info2(s->avctx, pict, s->mbskip_table, p->mb_type, s 1440 libavcodec/mpegvideo.c p->qscale_table, p->motion_val, &s->low_delay, s 1441 libavcodec/mpegvideo.c s->mb_width, s->mb_height, s->mb_stride, s->quarter_sample); s 1444 libavcodec/mpegvideo.c int ff_mpv_export_qp_table(MpegEncContext *s, AVFrame *f, Picture *p, int qp_type) s 1447 libavcodec/mpegvideo.c int offset = 2*s->mb_stride + 1; s 1450 libavcodec/mpegvideo.c av_assert0(ref->size >= offset + s->mb_stride * ((f->height+15)/16)); s 1453 libavcodec/mpegvideo.c return av_frame_set_qp_table(f, ref, s->mb_stride, qp_type); s 1456 libavcodec/mpegvideo.c static inline int hpel_motion_lowres(MpegEncContext *s, s 1465 libavcodec/mpegvideo.c const int lowres = s->avctx->lowres; s 1471 libavcodec/mpegvideo.c if (s->quarter_sample) { s 1485 libavcodec/mpegvideo.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, src, s 1486 libavcodec/mpegvideo.c s->linesize, s->linesize, s 1490 libavcodec/mpegvideo.c src = s->sc.edge_emu_buffer; s 1497 libavcodec/mpegvideo.c src += s->linesize; s 1503 libavcodec/mpegvideo.c static av_always_inline void mpeg_motion_lowres(MpegEncContext *s, s 1518 libavcodec/mpegvideo.c const int lowres = s->avctx->lowres; s 1519 libavcodec/mpegvideo.c const int op_index = FFMIN(lowres-1+s->chroma_x_shift, 3); s 1522 libavcodec/mpegvideo.c const int h_edge_pos = s->h_edge_pos >> lowres; s 1523 libavcodec/mpegvideo.c const int v_edge_pos = s->v_edge_pos >> lowres; s 1524 libavcodec/mpegvideo.c linesize = s->current_picture.f->linesize[0] << field_based; s 1525 libavcodec/mpegvideo.c uvlinesize = s->current_picture.f->linesize[1] << field_based; s 1528 libavcodec/mpegvideo.c if (s->quarter_sample) { s 1539 libavcodec/mpegvideo.c src_x = s->mb_x * 2 * block_s + (motion_x >> lowres + 1); s 1542 libavcodec/mpegvideo.c if (s->out_format == FMT_H263) { s 1547 libavcodec/mpegvideo.c } else if (s->out_format == FMT_H261) { s 1553 libavcodec/mpegvideo.c uvsrc_x = s->mb_x * block_s + (mx >> lowres); s 1556 libavcodec/mpegvideo.c if(s->chroma_y_shift){ s 1561 libavcodec/mpegvideo.c uvsrc_x = s->mb_x * block_s + (mx >> lowres + 1); s 1564 libavcodec/mpegvideo.c if(s->chroma_x_shift){ s 1570 libavcodec/mpegvideo.c uvsrc_x = s->mb_x*block_s + (mx >> (lowres+1)); s 1587 libavcodec/mpegvideo.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr_y, s 1592 libavcodec/mpegvideo.c ptr_y = s->sc.edge_emu_buffer; s 1593 libavcodec/mpegvideo.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 1594 libavcodec/mpegvideo.c uint8_t *ubuf = s->sc.edge_emu_buffer + 18 * s->linesize; s 1595 libavcodec/mpegvideo.c uint8_t *vbuf =ubuf + 10 * s->uvlinesize; s 1596 libavcodec/mpegvideo.c if (s->workaround_bugs & FF_BUG_IEDGE) s 1597 libavcodec/mpegvideo.c vbuf -= s->uvlinesize; s 1598 libavcodec/mpegvideo.c s->vdsp.emulated_edge_mc(ubuf, ptr_cb, s 1603 libavcodec/mpegvideo.c s->vdsp.emulated_edge_mc(vbuf, ptr_cr, s 1615 libavcodec/mpegvideo.c dest_y += s->linesize; s 1616 libavcodec/mpegvideo.c dest_cb += s->uvlinesize; s 1617 libavcodec/mpegvideo.c dest_cr += s->uvlinesize; s 1621 libavcodec/mpegvideo.c ptr_y += s->linesize; s 1622 libavcodec/mpegvideo.c ptr_cb += s->uvlinesize; s 1623 libavcodec/mpegvideo.c ptr_cr += s->uvlinesize; s 1630 libavcodec/mpegvideo.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 1631 libavcodec/mpegvideo.c int hc = s->chroma_y_shift ? (h+1-bottom_field)>>1 : h; s 1642 libavcodec/mpegvideo.c static inline void chroma_4mv_motion_lowres(MpegEncContext *s, s 1648 libavcodec/mpegvideo.c const int lowres = s->avctx->lowres; s 1652 libavcodec/mpegvideo.c const int h_edge_pos = s->h_edge_pos >> lowres + 1; s 1653 libavcodec/mpegvideo.c const int v_edge_pos = s->v_edge_pos >> lowres + 1; s 1658 libavcodec/mpegvideo.c if (s->quarter_sample) { s 1670 libavcodec/mpegvideo.c src_x = s->mb_x * block_s + (mx >> lowres + 1); s 1671 libavcodec/mpegvideo.c src_y = s->mb_y * block_s + (my >> lowres + 1); s 1673 libavcodec/mpegvideo.c offset = src_y * s->uvlinesize + src_x; s 1677 libavcodec/mpegvideo.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 1678 libavcodec/mpegvideo.c s->uvlinesize, s->uvlinesize, s 1681 libavcodec/mpegvideo.c ptr = s->sc.edge_emu_buffer; s 1686 libavcodec/mpegvideo.c pix_op[op_index](dest_cb, ptr, s->uvlinesize, block_s, sx, sy); s 1690 libavcodec/mpegvideo.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 1691 libavcodec/mpegvideo.c s->uvlinesize, s->uvlinesize, s 1694 libavcodec/mpegvideo.c ptr = s->sc.edge_emu_buffer; s 1696 libavcodec/mpegvideo.c pix_op[op_index](dest_cr, ptr, s->uvlinesize, block_s, sx, sy); s 1710 libavcodec/mpegvideo.c static inline void MPV_motion_lowres(MpegEncContext *s, s 1718 libavcodec/mpegvideo.c const int lowres = s->avctx->lowres; s 1721 libavcodec/mpegvideo.c mb_x = s->mb_x; s 1722 libavcodec/mpegvideo.c mb_y = s->mb_y; s 1724 libavcodec/mpegvideo.c switch (s->mv_type) { s 1726 libavcodec/mpegvideo.c mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr, s 1729 libavcodec/mpegvideo.c s->mv[dir][0][0], s->mv[dir][0][1], s 1736 libavcodec/mpegvideo.c hpel_motion_lowres(s, dest_y + ((i & 1) + (i >> 1) * s 1737 libavcodec/mpegvideo.c s->linesize) * block_s, s 1741 libavcodec/mpegvideo.c s->width, s->height, s->linesize, s 1742 libavcodec/mpegvideo.c s->h_edge_pos >> lowres, s->v_edge_pos >> lowres, s 1744 libavcodec/mpegvideo.c s->mv[dir][i][0], s->mv[dir][i][1]); s 1746 libavcodec/mpegvideo.c mx += s->mv[dir][i][0]; s 1747 libavcodec/mpegvideo.c my += s->mv[dir][i][1]; s 1750 libavcodec/mpegvideo.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 1751 libavcodec/mpegvideo.c chroma_4mv_motion_lowres(s, dest_cb, dest_cr, ref_picture, s 1755 libavcodec/mpegvideo.c if (s->picture_structure == PICT_FRAME) { s 1757 libavcodec/mpegvideo.c mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr, s 1758 libavcodec/mpegvideo.c 1, 0, s->field_select[dir][0], s 1760 libavcodec/mpegvideo.c s->mv[dir][0][0], s->mv[dir][0][1], s 1763 libavcodec/mpegvideo.c mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr, s 1764 libavcodec/mpegvideo.c 1, 1, s->field_select[dir][1], s 1766 libavcodec/mpegvideo.c s->mv[dir][1][0], s->mv[dir][1][1], s 1769 libavcodec/mpegvideo.c if (s->picture_structure != s->field_select[dir][0] + 1 && s 1770 libavcodec/mpegvideo.c s->pict_type != AV_PICTURE_TYPE_B && !s->first_field) { s 1771 libavcodec/mpegvideo.c ref_picture = s->current_picture_ptr->f->data; s 1774 libavcodec/mpegvideo.c mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr, s 1775 libavcodec/mpegvideo.c 0, 0, s->field_select[dir][0], s 1777 libavcodec/mpegvideo.c s->mv[dir][0][0], s 1778 libavcodec/mpegvideo.c s->mv[dir][0][1], 2 * block_s, mb_y >> 1); s 1785 libavcodec/mpegvideo.c if (s->picture_structure == s->field_select[dir][i] + 1 || s 1786 libavcodec/mpegvideo.c s->pict_type == AV_PICTURE_TYPE_B || s->first_field) { s 1789 libavcodec/mpegvideo.c ref2picture = s->current_picture_ptr->f->data; s 1792 libavcodec/mpegvideo.c mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr, s 1793 libavcodec/mpegvideo.c 0, 0, s->field_select[dir][i], s 1795 libavcodec/mpegvideo.c s->mv[dir][i][0], s->mv[dir][i][1] + s 1798 libavcodec/mpegvideo.c dest_y += 2 * block_s * s->linesize; s 1799 libavcodec/mpegvideo.c dest_cb += (2 * block_s >> s->chroma_y_shift) * s->uvlinesize; s 1800 libavcodec/mpegvideo.c dest_cr += (2 * block_s >> s->chroma_y_shift) * s->uvlinesize; s 1804 libavcodec/mpegvideo.c if (s->picture_structure == PICT_FRAME) { s 1808 libavcodec/mpegvideo.c mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr, s 1811 libavcodec/mpegvideo.c s->mv[dir][2 * i + j][0], s 1812 libavcodec/mpegvideo.c s->mv[dir][2 * i + j][1], s 1815 libavcodec/mpegvideo.c pix_op = s->h264chroma.avg_h264_chroma_pixels_tab; s 1819 libavcodec/mpegvideo.c mpeg_motion_lowres(s, dest_y, dest_cb, dest_cr, s 1820 libavcodec/mpegvideo.c 0, 0, s->picture_structure != i + 1, s 1822 libavcodec/mpegvideo.c s->mv[dir][2 * i][0],s->mv[dir][2 * i][1], s 1826 libavcodec/mpegvideo.c pix_op = s->h264chroma.avg_h264_chroma_pixels_tab; s 1830 libavcodec/mpegvideo.c if (!s->first_field) { s 1831 libavcodec/mpegvideo.c ref_picture = s->current_picture_ptr->f->data; s 1844 libavcodec/mpegvideo.c static int lowest_referenced_row(MpegEncContext *s, int dir) s 1846 libavcodec/mpegvideo.c int my_max = INT_MIN, my_min = INT_MAX, qpel_shift = !s->quarter_sample; s 1849 libavcodec/mpegvideo.c if (s->picture_structure != PICT_FRAME || s->mcsel) s 1852 libavcodec/mpegvideo.c switch (s->mv_type) { s 1867 libavcodec/mpegvideo.c my = s->mv[dir][i][1]; s 1874 libavcodec/mpegvideo.c return av_clip(s->mb_y + off, 0, s->mb_height - 1); s 1876 libavcodec/mpegvideo.c return s->mb_height-1; s 1880 libavcodec/mpegvideo.c static inline void put_dct(MpegEncContext *s, s 1883 libavcodec/mpegvideo.c s->dct_unquantize_intra(s, block, i, qscale); s 1884 libavcodec/mpegvideo.c s->idsp.idct_put(dest, line_size, block); s 1888 libavcodec/mpegvideo.c static inline void add_dct(MpegEncContext *s, s 1891 libavcodec/mpegvideo.c if (s->block_last_index[i] >= 0) { s 1892 libavcodec/mpegvideo.c s->idsp.idct_add(dest, line_size, block); s 1896 libavcodec/mpegvideo.c static inline void add_dequant_dct(MpegEncContext *s, s 1899 libavcodec/mpegvideo.c if (s->block_last_index[i] >= 0) { s 1900 libavcodec/mpegvideo.c s->dct_unquantize_inter(s, block, i, qscale); s 1902 libavcodec/mpegvideo.c s->idsp.idct_add(dest, line_size, block); s 1909 libavcodec/mpegvideo.c void ff_clean_intra_table_entries(MpegEncContext *s) s 1911 libavcodec/mpegvideo.c int wrap = s->b8_stride; s 1912 libavcodec/mpegvideo.c int xy = s->block_index[0]; s 1914 libavcodec/mpegvideo.c s->dc_val[0][xy ] = s 1915 libavcodec/mpegvideo.c s->dc_val[0][xy + 1 ] = s 1916 libavcodec/mpegvideo.c s->dc_val[0][xy + wrap] = s 1917 libavcodec/mpegvideo.c s->dc_val[0][xy + 1 + wrap] = 1024; s 1919 libavcodec/mpegvideo.c memset(s->ac_val[0][xy ], 0, 32 * sizeof(int16_t)); s 1920 libavcodec/mpegvideo.c memset(s->ac_val[0][xy + wrap], 0, 32 * sizeof(int16_t)); s 1921 libavcodec/mpegvideo.c if (s->msmpeg4_version>=3) { s 1922 libavcodec/mpegvideo.c s->coded_block[xy ] = s 1923 libavcodec/mpegvideo.c s->coded_block[xy + 1 ] = s 1924 libavcodec/mpegvideo.c s->coded_block[xy + wrap] = s 1925 libavcodec/mpegvideo.c s->coded_block[xy + 1 + wrap] = 0; s 1928 libavcodec/mpegvideo.c wrap = s->mb_stride; s 1929 libavcodec/mpegvideo.c xy = s->mb_x + s->mb_y * wrap; s 1930 libavcodec/mpegvideo.c s->dc_val[1][xy] = s 1931 libavcodec/mpegvideo.c s->dc_val[2][xy] = 1024; s 1933 libavcodec/mpegvideo.c memset(s->ac_val[1][xy], 0, 16 * sizeof(int16_t)); s 1934 libavcodec/mpegvideo.c memset(s->ac_val[2][xy], 0, 16 * sizeof(int16_t)); s 1936 libavcodec/mpegvideo.c s->mbintra_table[xy]= 0; s 1950 libavcodec/mpegvideo.c void mpv_reconstruct_mb_internal(MpegEncContext *s, int16_t block[12][64], s 1953 libavcodec/mpegvideo.c const int mb_xy = s->mb_y * s->mb_stride + s->mb_x; s 1956 libavcodec/mpegvideo.c s->avctx->hwaccel && s->avctx->hwaccel->decode_mb) { s 1957 libavcodec/mpegvideo.c s->avctx->hwaccel->decode_mb(s);//xvmc uses pblocks s 1961 libavcodec/mpegvideo.c if(s->avctx->debug&FF_DEBUG_DCT_COEFF) { s 1964 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_DEBUG, "DCT coeffs of MB at %dx%d:\n", s->mb_x, s->mb_y); s 1967 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_DEBUG, "%5d", s 1968 libavcodec/mpegvideo.c block[i][s->idsp.idct_permutation[j]]); s 1970 libavcodec/mpegvideo.c av_log(s->avctx, AV_LOG_DEBUG, "\n"); s 1974 libavcodec/mpegvideo.c s->current_picture.qscale_table[mb_xy] = s->qscale; s 1977 libavcodec/mpegvideo.c if (!s->mb_intra) { s 1978 libavcodec/mpegvideo.c if (!is_mpeg12 && (s->h263_pred || s->h263_aic)) { s 1979 libavcodec/mpegvideo.c if(s->mbintra_table[mb_xy]) s 1980 libavcodec/mpegvideo.c ff_clean_intra_table_entries(s); s 1982 libavcodec/mpegvideo.c s->last_dc[0] = s 1983 libavcodec/mpegvideo.c s->last_dc[1] = s 1984 libavcodec/mpegvideo.c s->last_dc[2] = 128 << s->intra_dc_precision; s 1987 libavcodec/mpegvideo.c else if (!is_mpeg12 && (s->h263_pred || s->h263_aic)) s 1988 libavcodec/mpegvideo.c s->mbintra_table[mb_xy]=1; s 1990 libavcodec/mpegvideo.c if ((s->avctx->flags & AV_CODEC_FLAG_PSNR) || s->frame_skip_threshold || s->frame_skip_factor || s 1991 libavcodec/mpegvideo.c !(s->encoding && (s->intra_only || s->pict_type == AV_PICTURE_TYPE_B) && s 1992 libavcodec/mpegvideo.c s->avctx->mb_decision != FF_MB_DECISION_RD)) { // FIXME precalc s 1997 libavcodec/mpegvideo.c const int linesize = s->current_picture.f->linesize[0]; //not s->linesize as this would be wrong for field pics s 1998 libavcodec/mpegvideo.c const int uvlinesize = s->current_picture.f->linesize[1]; s 1999 libavcodec/mpegvideo.c const int readable= s->pict_type != AV_PICTURE_TYPE_B || s->encoding || s->avctx->draw_horiz_band || lowres_flag; s 2000 libavcodec/mpegvideo.c const int block_size= lowres_flag ? 8>>s->avctx->lowres : 8; s 2004 libavcodec/mpegvideo.c if(!s->encoding){ s 2005 libavcodec/mpegvideo.c uint8_t *mbskip_ptr = &s->mbskip_table[mb_xy]; s 2007 libavcodec/mpegvideo.c if (s->mb_skipped) { s 2008 libavcodec/mpegvideo.c s->mb_skipped= 0; s 2009 libavcodec/mpegvideo.c av_assert2(s->pict_type!=AV_PICTURE_TYPE_I); s 2011 libavcodec/mpegvideo.c } else if(!s->current_picture.reference) { s 2018 libavcodec/mpegvideo.c dct_linesize = linesize << s->interlaced_dct; s 2019 libavcodec/mpegvideo.c dct_offset = s->interlaced_dct ? linesize : linesize * block_size; s 2022 libavcodec/mpegvideo.c dest_y= s->dest[0]; s 2023 libavcodec/mpegvideo.c dest_cb= s->dest[1]; s 2024 libavcodec/mpegvideo.c dest_cr= s->dest[2]; s 2026 libavcodec/mpegvideo.c dest_y = s->sc.b_scratchpad; s 2027 libavcodec/mpegvideo.c dest_cb= s->sc.b_scratchpad+16*linesize; s 2028 libavcodec/mpegvideo.c dest_cr= s->sc.b_scratchpad+32*linesize; s 2031 libavcodec/mpegvideo.c if (!s->mb_intra) { s 2034 libavcodec/mpegvideo.c if(!s->encoding){ s 2036 libavcodec/mpegvideo.c if(HAVE_THREADS && s->avctx->active_thread_type&FF_THREAD_FRAME) { s 2037 libavcodec/mpegvideo.c if (s->mv_dir & MV_DIR_FORWARD) { s 2038 libavcodec/mpegvideo.c ff_thread_await_progress(&s->last_picture_ptr->tf, s 2039 libavcodec/mpegvideo.c lowest_referenced_row(s, 0), s 2042 libavcodec/mpegvideo.c if (s->mv_dir & MV_DIR_BACKWARD) { s 2043 libavcodec/mpegvideo.c ff_thread_await_progress(&s->next_picture_ptr->tf, s 2044 libavcodec/mpegvideo.c lowest_referenced_row(s, 1), s 2050 libavcodec/mpegvideo.c h264_chroma_mc_func *op_pix = s->h264chroma.put_h264_chroma_pixels_tab; s 2052 libavcodec/mpegvideo.c if (s->mv_dir & MV_DIR_FORWARD) { s 2053 libavcodec/mpegvideo.c MPV_motion_lowres(s, dest_y, dest_cb, dest_cr, 0, s->last_picture.f->data, op_pix); s 2054 libavcodec/mpegvideo.c op_pix = s->h264chroma.avg_h264_chroma_pixels_tab; s 2056 libavcodec/mpegvideo.c if (s->mv_dir & MV_DIR_BACKWARD) { s 2057 libavcodec/mpegvideo.c MPV_motion_lowres(s, dest_y, dest_cb, dest_cr, 1, s->next_picture.f->data, op_pix); s 2060 libavcodec/mpegvideo.c op_qpix = s->me.qpel_put; s 2061 libavcodec/mpegvideo.c if ((!s->no_rounding) || s->pict_type==AV_PICTURE_TYPE_B){ s 2062 libavcodec/mpegvideo.c op_pix = s->hdsp.put_pixels_tab; s 2064 libavcodec/mpegvideo.c op_pix = s->hdsp.put_no_rnd_pixels_tab; s 2066 libavcodec/mpegvideo.c if (s->mv_dir & MV_DIR_FORWARD) { s 2067 libavcodec/mpegvideo.c ff_mpv_motion(s, dest_y, dest_cb, dest_cr, 0, s->last_picture.f->data, op_pix, op_qpix); s 2068 libavcodec/mpegvideo.c op_pix = s->hdsp.avg_pixels_tab; s 2069 libavcodec/mpegvideo.c op_qpix= s->me.qpel_avg; s 2071 libavcodec/mpegvideo.c if (s->mv_dir & MV_DIR_BACKWARD) { s 2072 libavcodec/mpegvideo.c ff_mpv_motion(s, dest_y, dest_cb, dest_cr, 1, s->next_picture.f->data, op_pix, op_qpix); s 2078 libavcodec/mpegvideo.c if(s->avctx->skip_idct){ s 2079 libavcodec/mpegvideo.c if( (s->avctx->skip_idct >= AVDISCARD_NONREF && s->pict_type == AV_PICTURE_TYPE_B) s 2080 libavcodec/mpegvideo.c ||(s->avctx->skip_idct >= AVDISCARD_NONKEY && s->pict_type != AV_PICTURE_TYPE_I) s 2081 libavcodec/mpegvideo.c || s->avctx->skip_idct >= AVDISCARD_ALL) s 2086 libavcodec/mpegvideo.c if(s->encoding || !( s->msmpeg4_version || s->codec_id==AV_CODEC_ID_MPEG1VIDEO || s->codec_id==AV_CODEC_ID_MPEG2VIDEO s 2087 libavcodec/mpegvideo.c || (s->codec_id==AV_CODEC_ID_MPEG4 && !s->mpeg_quant))){ s 2088 libavcodec/mpegvideo.c add_dequant_dct(s, block[0], 0, dest_y , dct_linesize, s->qscale); s 2089 libavcodec/mpegvideo.c add_dequant_dct(s, block[1], 1, dest_y + block_size, dct_linesize, s->qscale); s 2090 libavcodec/mpegvideo.c add_dequant_dct(s, block[2], 2, dest_y + dct_offset , dct_linesize, s->qscale); s 2091 libavcodec/mpegvideo.c add_dequant_dct(s, block[3], 3, dest_y + dct_offset + block_size, dct_linesize, s->qscale); s 2093 libavcodec/mpegvideo.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 2094 libavcodec/mpegvideo.c if (s->chroma_y_shift){ s 2095 libavcodec/mpegvideo.c add_dequant_dct(s, block[4], 4, dest_cb, uvlinesize, s->chroma_qscale); s 2096 libavcodec/mpegvideo.c add_dequant_dct(s, block[5], 5, dest_cr, uvlinesize, s->chroma_qscale); s 2100 libavcodec/mpegvideo.c add_dequant_dct(s, block[4], 4, dest_cb, dct_linesize, s->chroma_qscale); s 2101 libavcodec/mpegvideo.c add_dequant_dct(s, block[5], 5, dest_cr, dct_linesize, s->chroma_qscale); s 2102 libavcodec/mpegvideo.c add_dequant_dct(s, block[6], 6, dest_cb + dct_offset, dct_linesize, s->chroma_qscale); s 2103 libavcodec/mpegvideo.c add_dequant_dct(s, block[7], 7, dest_cr + dct_offset, dct_linesize, s->chroma_qscale); s 2106 libavcodec/mpegvideo.c } else if(is_mpeg12 || (s->codec_id != AV_CODEC_ID_WMV2)){ s 2107 libavcodec/mpegvideo.c add_dct(s, block[0], 0, dest_y , dct_linesize); s 2108 libavcodec/mpegvideo.c add_dct(s, block[1], 1, dest_y + block_size, dct_linesize); s 2109 libavcodec/mpegvideo.c add_dct(s, block[2], 2, dest_y + dct_offset , dct_linesize); s 2110 libavcodec/mpegvideo.c add_dct(s, block[3], 3, dest_y + dct_offset + block_size, dct_linesize); s 2112 libavcodec/mpegvideo.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 2113 libavcodec/mpegvideo.c if(s->chroma_y_shift){//Chroma420 s 2114 libavcodec/mpegvideo.c add_dct(s, block[4], 4, dest_cb, uvlinesize); s 2115 libavcodec/mpegvideo.c add_dct(s, block[5], 5, dest_cr, uvlinesize); s 2118 libavcodec/mpegvideo.c dct_linesize = uvlinesize << s->interlaced_dct; s 2119 libavcodec/mpegvideo.c dct_offset = s->interlaced_dct ? uvlinesize : uvlinesize*block_size; s 2121 libavcodec/mpegvideo.c add_dct(s, block[4], 4, dest_cb, dct_linesize); s 2122 libavcodec/mpegvideo.c add_dct(s, block[5], 5, dest_cr, dct_linesize); s 2123 libavcodec/mpegvideo.c add_dct(s, block[6], 6, dest_cb+dct_offset, dct_linesize); s 2124 libavcodec/mpegvideo.c add_dct(s, block[7], 7, dest_cr+dct_offset, dct_linesize); s 2125 libavcodec/mpegvideo.c if(!s->chroma_x_shift){//Chroma444 s 2126 libavcodec/mpegvideo.c add_dct(s, block[8], 8, dest_cb+block_size, dct_linesize); s 2127 libavcodec/mpegvideo.c add_dct(s, block[9], 9, dest_cr+block_size, dct_linesize); s 2128 libavcodec/mpegvideo.c add_dct(s, block[10], 10, dest_cb+block_size+dct_offset, dct_linesize); s 2129 libavcodec/mpegvideo.c add_dct(s, block[11], 11, dest_cr+block_size+dct_offset, dct_linesize); s 2135 libavcodec/mpegvideo.c ff_wmv2_add_mb(s, block, dest_y, dest_cb, dest_cr); s 2140 libavcodec/mpegvideo.c if (s->avctx->bits_per_raw_sample > 8){ s 2143 libavcodec/mpegvideo.c if(s->dpcm_direction == 0) { s 2144 libavcodec/mpegvideo.c s->idsp.idct_put(dest_y, dct_linesize, (int16_t*)(*s->block32)[0]); s 2145 libavcodec/mpegvideo.c s->idsp.idct_put(dest_y + act_block_size, dct_linesize, (int16_t*)(*s->block32)[1]); s 2146 libavcodec/mpegvideo.c s->idsp.idct_put(dest_y + dct_offset, dct_linesize, (int16_t*)(*s->block32)[2]); s 2147 libavcodec/mpegvideo.c s->idsp.idct_put(dest_y + dct_offset + act_block_size, dct_linesize, (int16_t*)(*s->block32)[3]); s 2149 libavcodec/mpegvideo.c dct_linesize = uvlinesize << s->interlaced_dct; s 2150 libavcodec/mpegvideo.c dct_offset = s->interlaced_dct ? uvlinesize : uvlinesize*block_size; s 2152 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cb, dct_linesize, (int16_t*)(*s->block32)[4]); s 2153 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cr, dct_linesize, (int16_t*)(*s->block32)[5]); s 2154 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cb + dct_offset, dct_linesize, (int16_t*)(*s->block32)[6]); s 2155 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cr + dct_offset, dct_linesize, (int16_t*)(*s->block32)[7]); s 2156 libavcodec/mpegvideo.c if(!s->chroma_x_shift){//Chroma444 s 2157 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cb + act_block_size, dct_linesize, (int16_t*)(*s->block32)[8]); s 2158 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cr + act_block_size, dct_linesize, (int16_t*)(*s->block32)[9]); s 2159 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cb + act_block_size + dct_offset, dct_linesize, (int16_t*)(*s->block32)[10]); s 2160 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cr + act_block_size + dct_offset, dct_linesize, (int16_t*)(*s->block32)[11]); s 2162 libavcodec/mpegvideo.c } else if(s->dpcm_direction == 1) { s 2168 libavcodec/mpegvideo.c int vsub = i ? s->chroma_y_shift : 0; s 2169 libavcodec/mpegvideo.c int hsub = i ? s->chroma_x_shift : 0; s 2172 libavcodec/mpegvideo.c dest_pcm[i][w] = (*s->dpcm_macroblock)[i][idx++]; s 2176 libavcodec/mpegvideo.c } else if(s->dpcm_direction == -1) { s 2182 libavcodec/mpegvideo.c int vsub = i ? s->chroma_y_shift : 0; s 2183 libavcodec/mpegvideo.c int hsub = i ? s->chroma_x_shift : 0; s 2187 libavcodec/mpegvideo.c dest_pcm[i][w] = (*s->dpcm_macroblock)[i][idx++]; s 2194 libavcodec/mpegvideo.c else if(s->encoding || !(s->codec_id==AV_CODEC_ID_MPEG1VIDEO || s->codec_id==AV_CODEC_ID_MPEG2VIDEO)){ s 2195 libavcodec/mpegvideo.c put_dct(s, block[0], 0, dest_y , dct_linesize, s->qscale); s 2196 libavcodec/mpegvideo.c put_dct(s, block[1], 1, dest_y + block_size, dct_linesize, s->qscale); s 2197 libavcodec/mpegvideo.c put_dct(s, block[2], 2, dest_y + dct_offset , dct_linesize, s->qscale); s 2198 libavcodec/mpegvideo.c put_dct(s, block[3], 3, dest_y + dct_offset + block_size, dct_linesize, s->qscale); s 2200 libavcodec/mpegvideo.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 2201 libavcodec/mpegvideo.c if(s->chroma_y_shift){ s 2202 libavcodec/mpegvideo.c put_dct(s, block[4], 4, dest_cb, uvlinesize, s->chroma_qscale); s 2203 libavcodec/mpegvideo.c put_dct(s, block[5], 5, dest_cr, uvlinesize, s->chroma_qscale); s 2207 libavcodec/mpegvideo.c put_dct(s, block[4], 4, dest_cb, dct_linesize, s->chroma_qscale); s 2208 libavcodec/mpegvideo.c put_dct(s, block[5], 5, dest_cr, dct_linesize, s->chroma_qscale); s 2209 libavcodec/mpegvideo.c put_dct(s, block[6], 6, dest_cb + dct_offset, dct_linesize, s->chroma_qscale); s 2210 libavcodec/mpegvideo.c put_dct(s, block[7], 7, dest_cr + dct_offset, dct_linesize, s->chroma_qscale); s 2214 libavcodec/mpegvideo.c s->idsp.idct_put(dest_y, dct_linesize, block[0]); s 2215 libavcodec/mpegvideo.c s->idsp.idct_put(dest_y + block_size, dct_linesize, block[1]); s 2216 libavcodec/mpegvideo.c s->idsp.idct_put(dest_y + dct_offset, dct_linesize, block[2]); s 2217 libavcodec/mpegvideo.c s->idsp.idct_put(dest_y + dct_offset + block_size, dct_linesize, block[3]); s 2219 libavcodec/mpegvideo.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 2220 libavcodec/mpegvideo.c if(s->chroma_y_shift){ s 2221 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cb, uvlinesize, block[4]); s 2222 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cr, uvlinesize, block[5]); s 2225 libavcodec/mpegvideo.c dct_linesize = uvlinesize << s->interlaced_dct; s 2226 libavcodec/mpegvideo.c dct_offset = s->interlaced_dct ? uvlinesize : uvlinesize*block_size; s 2228 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cb, dct_linesize, block[4]); s 2229 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cr, dct_linesize, block[5]); s 2230 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cb + dct_offset, dct_linesize, block[6]); s 2231 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cr + dct_offset, dct_linesize, block[7]); s 2232 libavcodec/mpegvideo.c if(!s->chroma_x_shift){//Chroma444 s 2233 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cb + block_size, dct_linesize, block[8]); s 2234 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cr + block_size, dct_linesize, block[9]); s 2235 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cb + block_size + dct_offset, dct_linesize, block[10]); s 2236 libavcodec/mpegvideo.c s->idsp.idct_put(dest_cr + block_size + dct_offset, dct_linesize, block[11]); s 2244 libavcodec/mpegvideo.c s->hdsp.put_pixels_tab[0][0](s->dest[0], dest_y , linesize,16); s 2245 libavcodec/mpegvideo.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 2246 libavcodec/mpegvideo.c s->hdsp.put_pixels_tab[s->chroma_x_shift][0](s->dest[1], dest_cb, uvlinesize,16 >> s->chroma_y_shift); s 2247 libavcodec/mpegvideo.c s->hdsp.put_pixels_tab[s->chroma_x_shift][0](s->dest[2], dest_cr, uvlinesize,16 >> s->chroma_y_shift); s 2253 libavcodec/mpegvideo.c void ff_mpv_reconstruct_mb(MpegEncContext *s, int16_t block[12][64]) s 2256 libavcodec/mpegvideo.c if(s->out_format == FMT_MPEG1) { s 2257 libavcodec/mpegvideo.c if(s->avctx->lowres) mpv_reconstruct_mb_internal(s, block, 1, 1); s 2258 libavcodec/mpegvideo.c else mpv_reconstruct_mb_internal(s, block, 0, 1); s 2261 libavcodec/mpegvideo.c if(s->avctx->lowres) mpv_reconstruct_mb_internal(s, block, 1, 0); s 2262 libavcodec/mpegvideo.c else mpv_reconstruct_mb_internal(s, block, 0, 0); s 2265 libavcodec/mpegvideo.c void ff_mpeg_draw_horiz_band(MpegEncContext *s, int y, int h) s 2267 libavcodec/mpegvideo.c ff_draw_horiz_band(s->avctx, s->current_picture_ptr->f, s 2268 libavcodec/mpegvideo.c s->last_picture_ptr ? s->last_picture_ptr->f : NULL, y, h, s->picture_structure, s 2269 libavcodec/mpegvideo.c s->first_field, s->low_delay); s 2272 libavcodec/mpegvideo.c void ff_init_block_index(MpegEncContext *s){ //FIXME maybe rename s 2273 libavcodec/mpegvideo.c const int linesize = s->current_picture.f->linesize[0]; //not s->linesize as this would be wrong for field pics s 2274 libavcodec/mpegvideo.c const int uvlinesize = s->current_picture.f->linesize[1]; s 2275 libavcodec/mpegvideo.c const int width_of_mb = (4 + (s->avctx->bits_per_raw_sample > 8)) - s->avctx->lowres; s 2276 libavcodec/mpegvideo.c const int height_of_mb = 4 - s->avctx->lowres; s 2278 libavcodec/mpegvideo.c s->block_index[0]= s->b8_stride*(s->mb_y*2 ) - 2 + s->mb_x*2; s 2279 libavcodec/mpegvideo.c s->block_index[1]= s->b8_stride*(s->mb_y*2 ) - 1 + s->mb_x*2; s 2280 libavcodec/mpegvideo.c s->block_index[2]= s->b8_stride*(s->mb_y*2 + 1) - 2 + s->mb_x*2; s 2281 libavcodec/mpegvideo.c s->block_index[3]= s->b8_stride*(s->mb_y*2 + 1) - 1 + s->mb_x*2; s 2282 libavcodec/mpegvideo.c s->block_index[4]= s->mb_stride*(s->mb_y + 1) + s->b8_stride*s->mb_height*2 + s->mb_x - 1; s 2283 libavcodec/mpegvideo.c s->block_index[5]= s->mb_stride*(s->mb_y + s->mb_height + 2) + s->b8_stride*s->mb_height*2 + s->mb_x - 1; s 2286 libavcodec/mpegvideo.c s->dest[0] = s->current_picture.f->data[0] + (int)((s->mb_x - 1U) << width_of_mb); s 2287 libavcodec/mpegvideo.c s->dest[1] = s->current_picture.f->data[1] + (int)((s->mb_x - 1U) << (width_of_mb - s->chroma_x_shift)); s 2288 libavcodec/mpegvideo.c s->dest[2] = s->current_picture.f->data[2] + (int)((s->mb_x - 1U) << (width_of_mb - s->chroma_x_shift)); s 2290 libavcodec/mpegvideo.c if(!(s->pict_type==AV_PICTURE_TYPE_B && s->avctx->draw_horiz_band && s->picture_structure==PICT_FRAME)) s 2292 libavcodec/mpegvideo.c if(s->picture_structure==PICT_FRAME){ s 2293 libavcodec/mpegvideo.c s->dest[0] += s->mb_y * linesize << height_of_mb; s 2294 libavcodec/mpegvideo.c s->dest[1] += s->mb_y * uvlinesize << (height_of_mb - s->chroma_y_shift); s 2295 libavcodec/mpegvideo.c s->dest[2] += s->mb_y * uvlinesize << (height_of_mb - s->chroma_y_shift); s 2297 libavcodec/mpegvideo.c s->dest[0] += (s->mb_y>>1) * linesize << height_of_mb; s 2298 libavcodec/mpegvideo.c s->dest[1] += (s->mb_y>>1) * uvlinesize << (height_of_mb - s->chroma_y_shift); s 2299 libavcodec/mpegvideo.c s->dest[2] += (s->mb_y>>1) * uvlinesize << (height_of_mb - s->chroma_y_shift); s 2300 libavcodec/mpegvideo.c av_assert1((s->mb_y&1) == (s->picture_structure == PICT_BOTTOM_FIELD)); s 2307 libavcodec/mpegvideo.c MpegEncContext *s = avctx->priv_data; s 2309 libavcodec/mpegvideo.c if (!s || !s->picture) s 2313 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->picture[i]); s 2314 libavcodec/mpegvideo.c s->current_picture_ptr = s->last_picture_ptr = s->next_picture_ptr = NULL; s 2316 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->current_picture); s 2317 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->last_picture); s 2318 libavcodec/mpegvideo.c ff_mpeg_unref_picture(s->avctx, &s->next_picture); s 2320 libavcodec/mpegvideo.c s->mb_x= s->mb_y= 0; s 2321 libavcodec/mpegvideo.c s->closed_gop= 0; s 2323 libavcodec/mpegvideo.c s->parse_context.state= -1; s 2324 libavcodec/mpegvideo.c s->parse_context.frame_start_found= 0; s 2325 libavcodec/mpegvideo.c s->parse_context.overread= 0; s 2326 libavcodec/mpegvideo.c s->parse_context.overread_index= 0; s 2327 libavcodec/mpegvideo.c s->parse_context.index= 0; s 2328 libavcodec/mpegvideo.c s->parse_context.last_index= 0; s 2329 libavcodec/mpegvideo.c s->bitstream_buffer_size=0; s 2330 libavcodec/mpegvideo.c s->pp_time=0; s 2336 libavcodec/mpegvideo.c void ff_set_qscale(MpegEncContext * s, int qscale) s 2343 libavcodec/mpegvideo.c s->qscale = qscale; s 2344 libavcodec/mpegvideo.c s->chroma_qscale= s->chroma_qscale_table[qscale]; s 2346 libavcodec/mpegvideo.c s->y_dc_scale= s->y_dc_scale_table[ qscale ]; s 2347 libavcodec/mpegvideo.c s->c_dc_scale= s->c_dc_scale_table[ s->chroma_qscale ]; s 2350 libavcodec/mpegvideo.c void ff_mpv_report_decode_progress(MpegEncContext *s) s 2352 libavcodec/mpegvideo.c if (s->pict_type != AV_PICTURE_TYPE_B && !s->partitioned_frame && !s->er.error_occurred) s 2353 libavcodec/mpegvideo.c ff_thread_report_progress(&s->current_picture_ptr->tf, s->mb_y, 0); s 510 libavcodec/mpegvideo.h int (*decode_mb)(struct MpegEncContext *s, int16_t block[12][64]); // used by some codecs to avoid a switch() s 521 libavcodec/mpegvideo.h void (*dct_unquantize_mpeg1_intra)(struct MpegEncContext *s, s 523 libavcodec/mpegvideo.h void (*dct_unquantize_mpeg1_inter)(struct MpegEncContext *s, s 525 libavcodec/mpegvideo.h void (*dct_unquantize_mpeg2_intra)(struct MpegEncContext *s, s 527 libavcodec/mpegvideo.h void (*dct_unquantize_mpeg2_inter)(struct MpegEncContext *s, s 529 libavcodec/mpegvideo.h void (*dct_unquantize_h263_intra)(struct MpegEncContext *s, s 531 libavcodec/mpegvideo.h void (*dct_unquantize_h263_inter)(struct MpegEncContext *s, s 533 libavcodec/mpegvideo.h void (*dct_unquantize_intra)(struct MpegEncContext *s, // unquantizer to use (MPEG-4 can use both) s 535 libavcodec/mpegvideo.h void (*dct_unquantize_inter)(struct MpegEncContext *s, // unquantizer to use (MPEG-4 can use both) s 537 libavcodec/mpegvideo.h int (*dct_quantize)(struct MpegEncContext *s, int16_t *block/*align 16*/, int n, int qscale, int *overflow); s 538 libavcodec/mpegvideo.h int (*fast_dct_quantize)(struct MpegEncContext *s, int16_t *block/*align 16*/, int n, int qscale, int *overflow); s 539 libavcodec/mpegvideo.h void (*denoise_dct)(struct MpegEncContext *s, int16_t *block); s 679 libavcodec/mpegvideo.h void ff_mpv_common_defaults(MpegEncContext *s); s 681 libavcodec/mpegvideo.h void ff_dct_encode_init_x86(MpegEncContext *s); s 683 libavcodec/mpegvideo.h int ff_mpv_common_init(MpegEncContext *s); s 684 libavcodec/mpegvideo.h void ff_mpv_common_init_arm(MpegEncContext *s); s 685 libavcodec/mpegvideo.h void ff_mpv_common_init_axp(MpegEncContext *s); s 686 libavcodec/mpegvideo.h void ff_mpv_common_init_neon(MpegEncContext *s); s 687 libavcodec/mpegvideo.h void ff_mpv_common_init_ppc(MpegEncContext *s); s 688 libavcodec/mpegvideo.h void ff_mpv_common_init_x86(MpegEncContext *s); s 689 libavcodec/mpegvideo.h void ff_mpv_common_init_mips(MpegEncContext *s); s 691 libavcodec/mpegvideo.h int ff_mpv_common_frame_size_change(MpegEncContext *s); s 692 libavcodec/mpegvideo.h void ff_mpv_common_end(MpegEncContext *s); s 694 libavcodec/mpegvideo.h void ff_mpv_decode_defaults(MpegEncContext *s); s 695 libavcodec/mpegvideo.h void ff_mpv_decode_init(MpegEncContext *s, AVCodecContext *avctx); s 696 libavcodec/mpegvideo.h void ff_mpv_reconstruct_mb(MpegEncContext *s, int16_t block[12][64]); s 697 libavcodec/mpegvideo.h void ff_mpv_report_decode_progress(MpegEncContext *s); s 699 libavcodec/mpegvideo.h int ff_mpv_frame_start(MpegEncContext *s, AVCodecContext *avctx); s 700 libavcodec/mpegvideo.h void ff_mpv_frame_end(MpegEncContext *s); s 703 libavcodec/mpegvideo.h void ff_mpv_encode_init_x86(MpegEncContext *s); s 708 libavcodec/mpegvideo.h int ff_mpv_reallocate_putbitbuffer(MpegEncContext *s, size_t threshold, size_t size_increase); s 710 libavcodec/mpegvideo.h void ff_clean_intra_table_entries(MpegEncContext *s); s 711 libavcodec/mpegvideo.h void ff_mpeg_draw_horiz_band(MpegEncContext *s, int y, int h); s 714 libavcodec/mpegvideo.h void ff_print_debug_info(MpegEncContext *s, Picture *p, AVFrame *pict); s 716 libavcodec/mpegvideo.h int ff_mpv_export_qp_table(MpegEncContext *s, AVFrame *f, Picture *p, int qp_type); s 722 libavcodec/mpegvideo.h void ff_set_qscale(MpegEncContext * s, int qscale); s 724 libavcodec/mpegvideo.h void ff_mpv_idct_init(MpegEncContext *s); s 725 libavcodec/mpegvideo.h int ff_dct_encode_init(MpegEncContext *s); s 726 libavcodec/mpegvideo.h void ff_convert_matrix(MpegEncContext *s, int (*qmat)[64], uint16_t (*qmat16)[2][64], s 728 libavcodec/mpegvideo.h int ff_dct_quantize_c(MpegEncContext *s, int16_t *block, int n, int qscale, int *overflow); s 731 libavcodec/mpegvideo.h void ff_init_block_index(MpegEncContext *s); s 733 libavcodec/mpegvideo.h void ff_mpv_motion(MpegEncContext *s, s 740 libavcodec/mpegvideo.h static inline void ff_update_block_index(MpegEncContext *s){ s 741 libavcodec/mpegvideo.h const int bytes_per_pixel = 1 + (s->avctx->bits_per_raw_sample > 8); s 742 libavcodec/mpegvideo.h const int block_size= (8*bytes_per_pixel) >> s->avctx->lowres; s 744 libavcodec/mpegvideo.h s->block_index[0]+=2; s 745 libavcodec/mpegvideo.h s->block_index[1]+=2; s 746 libavcodec/mpegvideo.h s->block_index[2]+=2; s 747 libavcodec/mpegvideo.h s->block_index[3]+=2; s 748 libavcodec/mpegvideo.h s->block_index[4]++; s 749 libavcodec/mpegvideo.h s->block_index[5]++; s 750 libavcodec/mpegvideo.h s->dest[0]+= 2*block_size; s 751 libavcodec/mpegvideo.h s->dest[1]+= (2 >> s->chroma_x_shift) * block_size; s 752 libavcodec/mpegvideo.h s->dest[2]+= (2 >> s->chroma_x_shift) * block_size; s 755 libavcodec/mpegvideo.h static inline int get_bits_diff(MpegEncContext *s){ s 756 libavcodec/mpegvideo.h const int bits= put_bits_count(&s->pb); s 757 libavcodec/mpegvideo.h const int last= s->last_bits; s 759 libavcodec/mpegvideo.h s->last_bits = bits; s 764 libavcodec/mpegvideo.h static inline int mpeg_get_qscale(MpegEncContext *s) s 766 libavcodec/mpegvideo.h int qscale = get_bits(&s->gb, 5); s 767 libavcodec/mpegvideo.h if (s->q_scale_type) s 76 libavcodec/mpegvideo_enc.c static int encode_picture(MpegEncContext *s, int picture_number); s 77 libavcodec/mpegvideo_enc.c static int dct_quantize_refine(MpegEncContext *s, int16_t *block, int16_t *weight, int16_t *orig, int n, int qscale); s 78 libavcodec/mpegvideo_enc.c static int sse_mb(MpegEncContext *s); s 79 libavcodec/mpegvideo_enc.c static void denoise_dct_c(MpegEncContext *s, int16_t *block); s 80 libavcodec/mpegvideo_enc.c static int dct_quantize_trellis_c(MpegEncContext *s, int16_t *block, int n, int qscale, int *overflow); s 90 libavcodec/mpegvideo_enc.c void ff_convert_matrix(MpegEncContext *s, int (*qmat)[64], s 95 libavcodec/mpegvideo_enc.c FDCTDSPContext *fdsp = &s->fdsp; s 103 libavcodec/mpegvideo_enc.c if (s->q_scale_type) qscale2 = ff_mpeg2_non_linear_qscale[qscale]; s 112 libavcodec/mpegvideo_enc.c const int j = s->idsp.idct_permutation[i]; s 124 libavcodec/mpegvideo_enc.c const int j = s->idsp.idct_permutation[i]; s 136 libavcodec/mpegvideo_enc.c const int j = s->idsp.idct_permutation[i]; s 168 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_INFO, s 174 libavcodec/mpegvideo_enc.c static inline void update_qscale(MpegEncContext *s) s 176 libavcodec/mpegvideo_enc.c if (s->q_scale_type == 1 && 0) { s 182 libavcodec/mpegvideo_enc.c int diff = FFABS((ff_mpeg2_non_linear_qscale[i]<<(FF_LAMBDA_SHIFT + 6)) - (int)s->lambda * 139); s 183 libavcodec/mpegvideo_enc.c if (ff_mpeg2_non_linear_qscale[i] < s->avctx->qmin || s 184 libavcodec/mpegvideo_enc.c (ff_mpeg2_non_linear_qscale[i] > s->avctx->qmax && !s->vbv_ignore_qmax)) s 191 libavcodec/mpegvideo_enc.c s->qscale = best; s 193 libavcodec/mpegvideo_enc.c s->qscale = (s->lambda * 139 + FF_LAMBDA_SCALE * 64) >> s 195 libavcodec/mpegvideo_enc.c s->qscale = av_clip(s->qscale, s->avctx->qmin, s->vbv_ignore_qmax ? 31 : s->avctx->qmax); s 198 libavcodec/mpegvideo_enc.c s->lambda2 = (s->lambda * s->lambda + FF_LAMBDA_SCALE / 2) >> s 218 libavcodec/mpegvideo_enc.c void ff_init_qscale_tab(MpegEncContext *s) s 220 libavcodec/mpegvideo_enc.c int8_t * const qscale_table = s->current_picture.qscale_table; s 223 libavcodec/mpegvideo_enc.c for (i = 0; i < s->mb_num; i++) { s 224 libavcodec/mpegvideo_enc.c unsigned int lam = s->lambda_table[s->mb_index2xy[i]]; s 226 libavcodec/mpegvideo_enc.c qscale_table[s->mb_index2xy[i]] = av_clip(qp, s->avctx->qmin, s 227 libavcodec/mpegvideo_enc.c s->avctx->qmax); s 254 libavcodec/mpegvideo_enc.c static void mpv_encode_defaults(MpegEncContext *s) s 257 libavcodec/mpegvideo_enc.c ff_mpv_common_defaults(s); s 262 libavcodec/mpegvideo_enc.c s->me.mv_penalty = default_mv_penalty; s 263 libavcodec/mpegvideo_enc.c s->fcode_tab = default_fcode_tab; s 265 libavcodec/mpegvideo_enc.c s->input_picture_number = 0; s 266 libavcodec/mpegvideo_enc.c s->picture_in_gop_number = 0; s 269 libavcodec/mpegvideo_enc.c av_cold int ff_dct_encode_init(MpegEncContext *s) s 272 libavcodec/mpegvideo_enc.c ff_dct_encode_init_x86(s); s 275 libavcodec/mpegvideo_enc.c ff_h263dsp_init(&s->h263dsp); s 276 libavcodec/mpegvideo_enc.c if (!s->dct_quantize) s 277 libavcodec/mpegvideo_enc.c s->dct_quantize = ff_dct_quantize_c; s 278 libavcodec/mpegvideo_enc.c if (!s->denoise_dct) s 279 libavcodec/mpegvideo_enc.c s->denoise_dct = denoise_dct_c; s 280 libavcodec/mpegvideo_enc.c s->fast_dct_quantize = s->dct_quantize; s 281 libavcodec/mpegvideo_enc.c if (s->avctx->trellis) s 282 libavcodec/mpegvideo_enc.c s->dct_quantize = dct_quantize_trellis_c; s 290 libavcodec/mpegvideo_enc.c MpegEncContext *s = avctx->priv_data; s 294 libavcodec/mpegvideo_enc.c mpv_encode_defaults(s); s 339 libavcodec/mpegvideo_enc.c s->chroma_format = CHROMA_444; s 343 libavcodec/mpegvideo_enc.c s->chroma_format = CHROMA_422; s 348 libavcodec/mpegvideo_enc.c s->chroma_format = CHROMA_420; s 357 libavcodec/mpegvideo_enc.c s->rtp_payload_size = avctx->rtp_payload_size; s 359 libavcodec/mpegvideo_enc.c s->me_penalty_compensation = avctx->me_penalty_compensation; s 361 libavcodec/mpegvideo_enc.c s->me_pre = avctx->pre_me; s 365 libavcodec/mpegvideo_enc.c s->bit_rate = avctx->bit_rate; s 366 libavcodec/mpegvideo_enc.c s->width = avctx->width; s 367 libavcodec/mpegvideo_enc.c s->height = avctx->height; s 375 libavcodec/mpegvideo_enc.c s->gop_size = avctx->gop_size; s 376 libavcodec/mpegvideo_enc.c s->avctx = avctx; s 382 libavcodec/mpegvideo_enc.c s->max_b_frames = avctx->max_b_frames; s 383 libavcodec/mpegvideo_enc.c s->codec_id = avctx->codec->id; s 384 libavcodec/mpegvideo_enc.c s->strict_std_compliance = avctx->strict_std_compliance; s 385 libavcodec/mpegvideo_enc.c s->quarter_sample = (avctx->flags & AV_CODEC_FLAG_QPEL) != 0; s 386 libavcodec/mpegvideo_enc.c s->rtp_mode = !!s->rtp_payload_size; s 387 libavcodec/mpegvideo_enc.c s->intra_dc_precision = avctx->intra_dc_precision; s 390 libavcodec/mpegvideo_enc.c if (s->intra_dc_precision < 0) { s 391 libavcodec/mpegvideo_enc.c s->intra_dc_precision += 8; s 392 libavcodec/mpegvideo_enc.c } else if (s->intra_dc_precision >= 8) s 393 libavcodec/mpegvideo_enc.c s->intra_dc_precision -= 8; s 395 libavcodec/mpegvideo_enc.c if (s->intra_dc_precision < 0) { s 403 libavcodec/mpegvideo_enc.c s->huffman = 0; s 405 libavcodec/mpegvideo_enc.c if (s->intra_dc_precision > (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO ? 3 : 0)) { s 409 libavcodec/mpegvideo_enc.c s->user_specified_pts = AV_NOPTS_VALUE; s 411 libavcodec/mpegvideo_enc.c if (s->gop_size <= 1) { s 412 libavcodec/mpegvideo_enc.c s->intra_only = 1; s 413 libavcodec/mpegvideo_enc.c s->gop_size = 12; s 415 libavcodec/mpegvideo_enc.c s->intra_only = 0; s 419 libavcodec/mpegvideo_enc.c s->fixed_qscale = !!(avctx->flags & AV_CODEC_FLAG_QSCALE); s 421 libavcodec/mpegvideo_enc.c s->adaptive_quant = (s->avctx->lumi_masking || s 422 libavcodec/mpegvideo_enc.c s->avctx->dark_masking || s 423 libavcodec/mpegvideo_enc.c s->avctx->temporal_cplx_masking || s 424 libavcodec/mpegvideo_enc.c s->avctx->spatial_cplx_masking || s 425 libavcodec/mpegvideo_enc.c s->avctx->p_masking || s 426 libavcodec/mpegvideo_enc.c s->border_masking || s 427 libavcodec/mpegvideo_enc.c (s->mpv_flags & FF_MPV_FLAG_QP_RD)) && s 428 libavcodec/mpegvideo_enc.c !s->fixed_qscale; s 430 libavcodec/mpegvideo_enc.c s->loop_filter = !!(s->avctx->flags & AV_CODEC_FLAG_LOOP_FILTER); s 492 libavcodec/mpegvideo_enc.c if (!s->fixed_qscale && s 500 libavcodec/mpegvideo_enc.c if (s->avctx->rc_max_rate && s 501 libavcodec/mpegvideo_enc.c s->avctx->rc_min_rate == s->avctx->rc_max_rate && s 502 libavcodec/mpegvideo_enc.c (s->codec_id == AV_CODEC_ID_MPEG1VIDEO || s 503 libavcodec/mpegvideo_enc.c s->codec_id == AV_CODEC_ID_MPEG2VIDEO) && s 505 libavcodec/mpegvideo_enc.c s->avctx->rc_max_rate * 0xFFFFLL) { s 511 libavcodec/mpegvideo_enc.c if ((s->avctx->flags & AV_CODEC_FLAG_4MV) && s->codec_id != AV_CODEC_ID_MPEG4 && s 512 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_H263 && s->codec_id != AV_CODEC_ID_H263P && s 513 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_FLV1) { s 518 libavcodec/mpegvideo_enc.c if (s->obmc && s->avctx->mb_decision != FF_MB_DECISION_SIMPLE) { s 524 libavcodec/mpegvideo_enc.c if (s->quarter_sample && s->codec_id != AV_CODEC_ID_MPEG4) { s 529 libavcodec/mpegvideo_enc.c if (s->max_b_frames && s 530 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_MPEG4 && s 531 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_MPEG1VIDEO && s 532 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_MPEG2VIDEO) { s 536 libavcodec/mpegvideo_enc.c if (s->max_b_frames < 0) { s 542 libavcodec/mpegvideo_enc.c if ((s->codec_id == AV_CODEC_ID_MPEG4 || s 543 libavcodec/mpegvideo_enc.c s->codec_id == AV_CODEC_ID_H263 || s 544 libavcodec/mpegvideo_enc.c s->codec_id == AV_CODEC_ID_H263P) && s 554 libavcodec/mpegvideo_enc.c if ((s->codec_id == AV_CODEC_ID_H263 || s 555 libavcodec/mpegvideo_enc.c s->codec_id == AV_CODEC_ID_H263P) && s 561 libavcodec/mpegvideo_enc.c if ((s->codec_id == AV_CODEC_ID_H263 || s 562 libavcodec/mpegvideo_enc.c s->codec_id == AV_CODEC_ID_H263P) && s 569 libavcodec/mpegvideo_enc.c if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO && s 576 libavcodec/mpegvideo_enc.c if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO && s 583 libavcodec/mpegvideo_enc.c if (s->codec_id == AV_CODEC_ID_RV10 && s 590 libavcodec/mpegvideo_enc.c if (s->codec_id == AV_CODEC_ID_RV20 && s 597 libavcodec/mpegvideo_enc.c if ((s->codec_id == AV_CODEC_ID_WMV1 || s 598 libavcodec/mpegvideo_enc.c s->codec_id == AV_CODEC_ID_WMV2) && s 604 libavcodec/mpegvideo_enc.c if ((s->avctx->flags & (AV_CODEC_FLAG_INTERLACED_DCT | AV_CODEC_FLAG_INTERLACED_ME)) && s 605 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_MPEG4 && s->codec_id != AV_CODEC_ID_MPEG2VIDEO) { s 613 libavcodec/mpegvideo_enc.c s->mpeg_quant = avctx->mpeg_quant; s 618 libavcodec/mpegvideo_enc.c if (s->mpeg_quant && ( s->codec_id != AV_CODEC_ID_MPEG4 s 619 libavcodec/mpegvideo_enc.c && s->codec_id != AV_CODEC_ID_MPEG2VIDEO)) { s 625 libavcodec/mpegvideo_enc.c if ((s->mpv_flags & FF_MPV_FLAG_CBP_RD) && !avctx->trellis) { s 630 libavcodec/mpegvideo_enc.c if ((s->mpv_flags & FF_MPV_FLAG_QP_RD) && s 631 libavcodec/mpegvideo_enc.c s->avctx->mb_decision != FF_MB_DECISION_RD) { s 636 libavcodec/mpegvideo_enc.c if ((s->mpv_flags & FF_MPV_FLAG_QP_RD) && s 637 libavcodec/mpegvideo_enc.c (s->codec_id == AV_CODEC_ID_AMV || s 638 libavcodec/mpegvideo_enc.c s->codec_id == AV_CODEC_ID_MJPEG)) { s 648 libavcodec/mpegvideo_enc.c s->scenechange_threshold = avctx->scenechange_threshold; s 652 libavcodec/mpegvideo_enc.c if (s->scenechange_threshold < 1000000000 && s 653 libavcodec/mpegvideo_enc.c (s->avctx->flags & AV_CODEC_FLAG_CLOSED_GOP)) { s 660 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY) { s 661 libavcodec/mpegvideo_enc.c if (s->codec_id != AV_CODEC_ID_MPEG2VIDEO && s 662 libavcodec/mpegvideo_enc.c s->strict_std_compliance >= FF_COMPLIANCE_NORMAL) { s 668 libavcodec/mpegvideo_enc.c if (s->max_b_frames != 0) { s 675 libavcodec/mpegvideo_enc.c if (s->q_scale_type == 1) { s 689 libavcodec/mpegvideo_enc.c if (s->avctx->thread_count > 1 && s 690 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_MPEG4 && s 691 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_MPEG1VIDEO && s 692 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_MPEG2VIDEO && s 693 libavcodec/mpegvideo_enc.c s->codec_id != AV_CODEC_ID_MJPEG && s 694 libavcodec/mpegvideo_enc.c (s->codec_id != AV_CODEC_ID_H263P)) { s 700 libavcodec/mpegvideo_enc.c if (s->avctx->thread_count < 1) { s 715 libavcodec/mpegvideo_enc.c s->b_frame_strategy = avctx->b_frame_strategy; s 717 libavcodec/mpegvideo_enc.c s->b_sensitivity = avctx->b_sensitivity; s 721 libavcodec/mpegvideo_enc.c if (s->b_frame_strategy && (avctx->flags & AV_CODEC_FLAG_PASS2)) { s 724 libavcodec/mpegvideo_enc.c s->b_frame_strategy = 0; s 735 libavcodec/mpegvideo_enc.c if (s->mpeg_quant || s->codec_id == AV_CODEC_ID_MPEG1VIDEO || s->codec_id == AV_CODEC_ID_MPEG2VIDEO || s->codec_id == AV_CODEC_ID_MJPEG || s->codec_id==AV_CODEC_ID_AMV) { s 737 libavcodec/mpegvideo_enc.c s->intra_quant_bias = 3 << (QUANT_BIAS_SHIFT - 3); s 738 libavcodec/mpegvideo_enc.c s->inter_quant_bias = 0; s 740 libavcodec/mpegvideo_enc.c s->intra_quant_bias = 0; s 742 libavcodec/mpegvideo_enc.c s->inter_quant_bias = -(1 << (QUANT_BIAS_SHIFT - 2)); s 750 libavcodec/mpegvideo_enc.c av_log(avctx, AV_LOG_DEBUG, "intra_quant_bias = %d inter_quant_bias = %d\n",s->intra_quant_bias,s->inter_quant_bias); s 753 libavcodec/mpegvideo_enc.c s->avctx->time_base.den > (1 << 16) - 1) { s 757 libavcodec/mpegvideo_enc.c "is %d\n", s->avctx->time_base.num, s->avctx->time_base.den, s 761 libavcodec/mpegvideo_enc.c s->time_increment_bits = av_log2(s->avctx->time_base.den - 1) + 1; s 765 libavcodec/mpegvideo_enc.c s->out_format = FMT_MPEG1; s 766 libavcodec/mpegvideo_enc.c s->low_delay = !!(s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY); s 767 libavcodec/mpegvideo_enc.c avctx->delay = s->low_delay ? 0 : (s->max_b_frames + 1); s 770 libavcodec/mpegvideo_enc.c s->out_format = FMT_MPEG1; s 771 libavcodec/mpegvideo_enc.c s->low_delay = !!(s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY); s 772 libavcodec/mpegvideo_enc.c avctx->delay = s->low_delay ? 0 : (s->max_b_frames + 1); s 773 libavcodec/mpegvideo_enc.c s->rtp_mode = 1; s 777 libavcodec/mpegvideo_enc.c s->out_format = FMT_MJPEG; s 778 libavcodec/mpegvideo_enc.c s->intra_only = 1; /* force intra only for jpeg */ s 781 libavcodec/mpegvideo_enc.c if ((ret = ff_mjpeg_encode_init(s)) < 0) s 784 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 789 libavcodec/mpegvideo_enc.c if (ff_h261_get_picture_format(s->width, s->height) < 0) { s 793 libavcodec/mpegvideo_enc.c s->width, s->height); s 796 libavcodec/mpegvideo_enc.c s->out_format = FMT_H261; s 798 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 799 libavcodec/mpegvideo_enc.c s->rtp_mode = 0; /* Sliced encoding not supported */ s 805 libavcodec/mpegvideo_enc.c s->width, s->height) == 8) { s 810 libavcodec/mpegvideo_enc.c "Try H.263+.\n", s->width, s->height); s 813 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 815 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 818 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 819 libavcodec/mpegvideo_enc.c s->h263_plus = 1; s 821 libavcodec/mpegvideo_enc.c s->h263_aic = (avctx->flags & AV_CODEC_FLAG_AC_PRED) ? 1 : 0; s 822 libavcodec/mpegvideo_enc.c s->modified_quant = s->h263_aic; s 823 libavcodec/mpegvideo_enc.c s->loop_filter = (avctx->flags & AV_CODEC_FLAG_LOOP_FILTER) ? 1 : 0; s 824 libavcodec/mpegvideo_enc.c s->unrestricted_mv = s->obmc || s->loop_filter || s->umvplus; s 829 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 832 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 833 libavcodec/mpegvideo_enc.c s->h263_flv = 2; /* format = 1; 11-bit codes */ s 834 libavcodec/mpegvideo_enc.c s->unrestricted_mv = 1; s 835 libavcodec/mpegvideo_enc.c s->rtp_mode = 0; /* don't allow GOB */ s 837 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 840 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 842 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 845 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 847 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 848 libavcodec/mpegvideo_enc.c s->modified_quant = 1; s 849 libavcodec/mpegvideo_enc.c s->h263_aic = 1; s 850 libavcodec/mpegvideo_enc.c s->h263_plus = 1; s 851 libavcodec/mpegvideo_enc.c s->loop_filter = 1; s 852 libavcodec/mpegvideo_enc.c s->unrestricted_mv = 0; s 855 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 856 libavcodec/mpegvideo_enc.c s->h263_pred = 1; s 857 libavcodec/mpegvideo_enc.c s->unrestricted_mv = 1; s 858 libavcodec/mpegvideo_enc.c s->low_delay = s->max_b_frames ? 0 : 1; s 859 libavcodec/mpegvideo_enc.c avctx->delay = s->low_delay ? 0 : (s->max_b_frames + 1); s 862 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 863 libavcodec/mpegvideo_enc.c s->h263_pred = 1; s 864 libavcodec/mpegvideo_enc.c s->unrestricted_mv = 1; s 865 libavcodec/mpegvideo_enc.c s->msmpeg4_version = 2; s 867 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 870 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 871 libavcodec/mpegvideo_enc.c s->h263_pred = 1; s 872 libavcodec/mpegvideo_enc.c s->unrestricted_mv = 1; s 873 libavcodec/mpegvideo_enc.c s->msmpeg4_version = 3; s 874 libavcodec/mpegvideo_enc.c s->flipflop_rounding = 1; s 876 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 879 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 880 libavcodec/mpegvideo_enc.c s->h263_pred = 1; s 881 libavcodec/mpegvideo_enc.c s->unrestricted_mv = 1; s 882 libavcodec/mpegvideo_enc.c s->msmpeg4_version = 4; s 883 libavcodec/mpegvideo_enc.c s->flipflop_rounding = 1; s 885 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 888 libavcodec/mpegvideo_enc.c s->out_format = FMT_H263; s 889 libavcodec/mpegvideo_enc.c s->h263_pred = 1; s 890 libavcodec/mpegvideo_enc.c s->unrestricted_mv = 1; s 891 libavcodec/mpegvideo_enc.c s->msmpeg4_version = 5; s 892 libavcodec/mpegvideo_enc.c s->flipflop_rounding = 1; s 894 libavcodec/mpegvideo_enc.c s->low_delay = 1; s 903 libavcodec/mpegvideo_enc.c s->noise_reduction = avctx->noise_reduction; s 907 libavcodec/mpegvideo_enc.c avctx->has_b_frames = !s->low_delay; s 909 libavcodec/mpegvideo_enc.c s->encoding = 1; s 911 libavcodec/mpegvideo_enc.c s->progressive_frame = s 912 libavcodec/mpegvideo_enc.c s->progressive_sequence = !(avctx->flags & (AV_CODEC_FLAG_INTERLACED_DCT | s 914 libavcodec/mpegvideo_enc.c s->alternate_scan); s 917 libavcodec/mpegvideo_enc.c ff_mpv_idct_init(s); s 918 libavcodec/mpegvideo_enc.c if ((ret = ff_mpv_common_init(s)) < 0) s 921 libavcodec/mpegvideo_enc.c ff_fdctdsp_init(&s->fdsp, avctx); s 922 libavcodec/mpegvideo_enc.c ff_me_cmp_init(&s->mecc, avctx); s 923 libavcodec/mpegvideo_enc.c ff_mpegvideoencdsp_init(&s->mpvencdsp, avctx); s 924 libavcodec/mpegvideo_enc.c ff_pixblockdsp_init(&s->pdsp, avctx); s 925 libavcodec/mpegvideo_enc.c ff_qpeldsp_init(&s->qdsp); s 927 libavcodec/mpegvideo_enc.c if (s->msmpeg4_version) { s 928 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->ac_stats, s 932 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->avctx->stats_out, 256, fail); s 934 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->q_intra_matrix, 64 * 32 * sizeof(int), fail); s 935 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->q_chroma_intra_matrix, 64 * 32 * sizeof(int), fail); s 936 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->q_inter_matrix, 64 * 32 * sizeof(int), fail); s 937 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->q_intra_matrix16, 64 * 32 * 2 * sizeof(uint16_t), fail); s 938 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->q_chroma_intra_matrix16, 64 * 32 * 2 * sizeof(uint16_t), fail); s 939 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->q_inter_matrix16, 64 * 32 * 2 * sizeof(uint16_t), fail); s 940 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->input_picture, s 942 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->reordered_input_picture, s 946 libavcodec/mpegvideo_enc.c if (s->noise_reduction) { s 947 libavcodec/mpegvideo_enc.c FF_ALLOCZ_OR_GOTO(s->avctx, s->dct_offset, s 951 libavcodec/mpegvideo_enc.c ff_dct_encode_init(s); s 953 libavcodec/mpegvideo_enc.c if ((CONFIG_H263P_ENCODER || CONFIG_RV20_ENCODER) && s->modified_quant) s 954 libavcodec/mpegvideo_enc.c s->chroma_qscale_table = ff_h263_chroma_qscale_table; s 956 libavcodec/mpegvideo_enc.c if (s->slice_context_count > 1) { s 957 libavcodec/mpegvideo_enc.c s->rtp_mode = 1; s 960 libavcodec/mpegvideo_enc.c s->h263_slice_structured = 1; s 963 libavcodec/mpegvideo_enc.c s->quant_precision = 5; s 968 libavcodec/mpegvideo_enc.c s->frame_skip_threshold = avctx->frame_skip_threshold; s 970 libavcodec/mpegvideo_enc.c s->frame_skip_factor = avctx->frame_skip_factor; s 972 libavcodec/mpegvideo_enc.c s->frame_skip_exp = avctx->frame_skip_exp; s 974 libavcodec/mpegvideo_enc.c s->frame_skip_cmp = avctx->frame_skip_cmp; s 978 libavcodec/mpegvideo_enc.c ff_set_cmp(&s->mecc, s->mecc.ildct_cmp, s->avctx->ildct_cmp); s 979 libavcodec/mpegvideo_enc.c ff_set_cmp(&s->mecc, s->mecc.frame_skip_cmp, s->frame_skip_cmp); s 981 libavcodec/mpegvideo_enc.c if (CONFIG_H261_ENCODER && s->out_format == FMT_H261) s 982 libavcodec/mpegvideo_enc.c ff_h261_encode_init(s); s 983 libavcodec/mpegvideo_enc.c if (CONFIG_H263_ENCODER && s->out_format == FMT_H263) s 984 libavcodec/mpegvideo_enc.c ff_h263_encode_init(s); s 985 libavcodec/mpegvideo_enc.c if (CONFIG_MSMPEG4_ENCODER && s->msmpeg4_version) s 986 libavcodec/mpegvideo_enc.c if ((ret = ff_msmpeg4_encode_init(s)) < 0) s 989 libavcodec/mpegvideo_enc.c && s->out_format == FMT_MPEG1) s 990 libavcodec/mpegvideo_enc.c ff_mpeg1_encode_init(s); s 994 libavcodec/mpegvideo_enc.c int j = s->idsp.idct_permutation[i]; s 995 libavcodec/mpegvideo_enc.c if (CONFIG_MPEG4_ENCODER && s->codec_id == AV_CODEC_ID_MPEG4 && s 996 libavcodec/mpegvideo_enc.c s->mpeg_quant) { s 997 libavcodec/mpegvideo_enc.c s->intra_matrix[j] = ff_mpeg4_default_intra_matrix[i]; s 998 libavcodec/mpegvideo_enc.c s->inter_matrix[j] = ff_mpeg4_default_non_intra_matrix[i]; s 999 libavcodec/mpegvideo_enc.c } else if (s->out_format == FMT_H263 || s->out_format == FMT_H261) { s 1000 libavcodec/mpegvideo_enc.c s->intra_matrix[j] = s 1001 libavcodec/mpegvideo_enc.c s->inter_matrix[j] = ff_mpeg1_default_non_intra_matrix[i]; s 1004 libavcodec/mpegvideo_enc.c s->chroma_intra_matrix[j] = s 1005 libavcodec/mpegvideo_enc.c s->intra_matrix[j] = ff_mpeg1_default_intra_matrix[i]; s 1006 libavcodec/mpegvideo_enc.c s->inter_matrix[j] = ff_mpeg1_default_non_intra_matrix[i]; s 1008 libavcodec/mpegvideo_enc.c if (s->avctx->intra_matrix) s 1009 libavcodec/mpegvideo_enc.c s->intra_matrix[j] = s->avctx->intra_matrix[i]; s 1010 libavcodec/mpegvideo_enc.c if (s->avctx->inter_matrix) s 1011 libavcodec/mpegvideo_enc.c s->inter_matrix[j] = s->avctx->inter_matrix[i]; s 1016 libavcodec/mpegvideo_enc.c if (s->out_format != FMT_MJPEG) { s 1017 libavcodec/mpegvideo_enc.c ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16, s 1018 libavcodec/mpegvideo_enc.c s->intra_matrix, s->intra_quant_bias, avctx->qmin, s 1020 libavcodec/mpegvideo_enc.c ff_convert_matrix(s, s->q_inter_matrix, s->q_inter_matrix16, s 1021 libavcodec/mpegvideo_enc.c s->inter_matrix, s->inter_quant_bias, avctx->qmin, s 1025 libavcodec/mpegvideo_enc.c if ((ret = ff_rate_control_init(s)) < 0) s 1031 libavcodec/mpegvideo_enc.c s->brd_scale = avctx->brd_scale; s 1034 libavcodec/mpegvideo_enc.c s->pred = avctx->prediction_method + 1; s 1038 libavcodec/mpegvideo_enc.c if (s->b_frame_strategy == 2) { s 1039 libavcodec/mpegvideo_enc.c for (i = 0; i < s->max_b_frames + 2; i++) { s 1040 libavcodec/mpegvideo_enc.c s->tmp_frames[i] = av_frame_alloc(); s 1041 libavcodec/mpegvideo_enc.c if (!s->tmp_frames[i]) s 1044 libavcodec/mpegvideo_enc.c s->tmp_frames[i]->format = AV_PIX_FMT_YUV420P; s 1045 libavcodec/mpegvideo_enc.c s->tmp_frames[i]->width = s->width >> s->brd_scale; s 1046 libavcodec/mpegvideo_enc.c s->tmp_frames[i]->height = s->height >> s->brd_scale; s 1048 libavcodec/mpegvideo_enc.c ret = av_frame_get_buffer(s->tmp_frames[i], 0); s 1069 libavcodec/mpegvideo_enc.c MpegEncContext *s = avctx->priv_data; s 1072 libavcodec/mpegvideo_enc.c ff_rate_control_uninit(s); s 1074 libavcodec/mpegvideo_enc.c ff_mpv_common_end(s); s 1076 libavcodec/mpegvideo_enc.c s->out_format == FMT_MJPEG) s 1077 libavcodec/mpegvideo_enc.c ff_mjpeg_encode_close(s); s 1081 libavcodec/mpegvideo_enc.c for (i = 0; i < FF_ARRAY_ELEMS(s->tmp_frames); i++) s 1082 libavcodec/mpegvideo_enc.c av_frame_free(&s->tmp_frames[i]); s 1084 libavcodec/mpegvideo_enc.c ff_free_picture_tables(&s->new_picture); s 1085 libavcodec/mpegvideo_enc.c ff_mpeg_unref_picture(s->avctx, &s->new_picture); s 1087 libavcodec/mpegvideo_enc.c av_freep(&s->avctx->stats_out); s 1088 libavcodec/mpegvideo_enc.c av_freep(&s->ac_stats); s 1090 libavcodec/mpegvideo_enc.c if(s->q_chroma_intra_matrix != s->q_intra_matrix ) av_freep(&s->q_chroma_intra_matrix); s 1091 libavcodec/mpegvideo_enc.c if(s->q_chroma_intra_matrix16 != s->q_intra_matrix16) av_freep(&s->q_chroma_intra_matrix16); s 1092 libavcodec/mpegvideo_enc.c s->q_chroma_intra_matrix= NULL; s 1093 libavcodec/mpegvideo_enc.c s->q_chroma_intra_matrix16= NULL; s 1094 libavcodec/mpegvideo_enc.c av_freep(&s->q_intra_matrix); s 1095 libavcodec/mpegvideo_enc.c av_freep(&s->q_inter_matrix); s 1096 libavcodec/mpegvideo_enc.c av_freep(&s->q_intra_matrix16); s 1097 libavcodec/mpegvideo_enc.c av_freep(&s->q_inter_matrix16); s 1098 libavcodec/mpegvideo_enc.c av_freep(&s->input_picture); s 1099 libavcodec/mpegvideo_enc.c av_freep(&s->reordered_input_picture); s 1100 libavcodec/mpegvideo_enc.c av_freep(&s->dct_offset); s 1119 libavcodec/mpegvideo_enc.c static int get_intra_count(MpegEncContext *s, uint8_t *src, s 1125 libavcodec/mpegvideo_enc.c w = s->width & ~15; s 1126 libavcodec/mpegvideo_enc.c h = s->height & ~15; s 1131 libavcodec/mpegvideo_enc.c int sad = s->mecc.sad[0](NULL, src + offset, ref + offset, s 1133 libavcodec/mpegvideo_enc.c int mean = (s->mpvencdsp.pix_sum(src + offset, stride) + 128) >> 8; s 1142 libavcodec/mpegvideo_enc.c static int alloc_picture(MpegEncContext *s, Picture *pic, int shared) s 1144 libavcodec/mpegvideo_enc.c return ff_alloc_picture(s->avctx, pic, &s->me, &s->sc, shared, 1, s 1145 libavcodec/mpegvideo_enc.c s->chroma_x_shift, s->chroma_y_shift, s->out_format, s 1146 libavcodec/mpegvideo_enc.c s->mb_stride, s->mb_width, s->mb_height, s->b8_stride, s 1147 libavcodec/mpegvideo_enc.c &s->linesize, &s->uvlinesize); s 1150 libavcodec/mpegvideo_enc.c static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) s 1155 libavcodec/mpegvideo_enc.c int encoding_delay = s->max_b_frames ? s->max_b_frames s 1156 libavcodec/mpegvideo_enc.c : (s->low_delay ? 0 : 1); s 1162 libavcodec/mpegvideo_enc.c display_picture_number = s->input_picture_number++; s 1165 libavcodec/mpegvideo_enc.c if (s->user_specified_pts != AV_NOPTS_VALUE) { s 1166 libavcodec/mpegvideo_enc.c int64_t last = s->user_specified_pts; s 1169 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_ERROR, s 1175 libavcodec/mpegvideo_enc.c if (!s->low_delay && display_picture_number == 1) s 1176 libavcodec/mpegvideo_enc.c s->dts_delta = pts - last; s 1178 libavcodec/mpegvideo_enc.c s->user_specified_pts = pts; s 1180 libavcodec/mpegvideo_enc.c if (s->user_specified_pts != AV_NOPTS_VALUE) { s 1181 libavcodec/mpegvideo_enc.c s->user_specified_pts = s 1182 libavcodec/mpegvideo_enc.c pts = s->user_specified_pts + 1; s 1183 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_INFO, s 1192 libavcodec/mpegvideo_enc.c pic_arg->linesize[0] != s->linesize || s 1193 libavcodec/mpegvideo_enc.c pic_arg->linesize[1] != s->uvlinesize || s 1194 libavcodec/mpegvideo_enc.c pic_arg->linesize[2] != s->uvlinesize) s 1196 libavcodec/mpegvideo_enc.c if ((s->width & 15) || (s->height & 15)) s 1200 libavcodec/mpegvideo_enc.c if (s->linesize & (STRIDE_ALIGN-1)) s 1203 libavcodec/mpegvideo_enc.c ff_dlog(s->avctx, "%d %d %"PTRDIFF_SPECIFIER" %"PTRDIFF_SPECIFIER"\n", pic_arg->linesize[0], s 1204 libavcodec/mpegvideo_enc.c pic_arg->linesize[1], s->linesize, s->uvlinesize); s 1206 libavcodec/mpegvideo_enc.c i = ff_find_unused_picture(s->avctx, s->picture, direct); s 1210 libavcodec/mpegvideo_enc.c pic = &s->picture[i]; s 1217 libavcodec/mpegvideo_enc.c ret = alloc_picture(s, pic, direct); s 1228 libavcodec/mpegvideo_enc.c av_pix_fmt_get_chroma_sub_sample(s->avctx->pix_fmt, s 1234 libavcodec/mpegvideo_enc.c int dst_stride = i ? s->uvlinesize : s->linesize; s 1237 libavcodec/mpegvideo_enc.c int w = s->width >> h_shift; s 1238 libavcodec/mpegvideo_enc.c int h = s->height >> v_shift; s 1243 libavcodec/mpegvideo_enc.c if ( s->codec_id == AV_CODEC_ID_MPEG2VIDEO s 1244 libavcodec/mpegvideo_enc.c && !s->progressive_sequence s 1245 libavcodec/mpegvideo_enc.c && FFALIGN(s->height, 32) - s->height > 16) s 1248 libavcodec/mpegvideo_enc.c if (!s->avctx->rc_buffer_size) s 1262 libavcodec/mpegvideo_enc.c if ((s->width & 15) || (s->height & (vpad-1))) { s 1263 libavcodec/mpegvideo_enc.c s->mpvencdsp.draw_edges(dst, dst_stride, s 1283 libavcodec/mpegvideo_enc.c if (s->input_picture[flush_offset]) s 1294 libavcodec/mpegvideo_enc.c s->input_picture[i - flush_offset] = s->input_picture[i]; s 1296 libavcodec/mpegvideo_enc.c s->input_picture[encoding_delay] = (Picture*) pic; s 1301 libavcodec/mpegvideo_enc.c static int skip_check(MpegEncContext *s, Picture *p, Picture *ref) s 1310 libavcodec/mpegvideo_enc.c for (y = 0; y < s->mb_height * bw; y++) { s 1311 libavcodec/mpegvideo_enc.c for (x = 0; x < s->mb_width * bw; x++) { s 1315 libavcodec/mpegvideo_enc.c int v = s->mecc.frame_skip_cmp[1](s, dptr, rptr, stride, 8); s 1317 libavcodec/mpegvideo_enc.c switch (FFABS(s->frame_skip_exp)) { s 1331 libavcodec/mpegvideo_enc.c if (s->frame_skip_exp < 0) s 1332 libavcodec/mpegvideo_enc.c score64 = pow(score64 / (double)(s->mb_width * s->mb_height), s 1333 libavcodec/mpegvideo_enc.c -1.0/s->frame_skip_exp); s 1335 libavcodec/mpegvideo_enc.c if (score64 < s->frame_skip_threshold) s 1337 libavcodec/mpegvideo_enc.c if (score64 < ((s->frame_skip_factor * (int64_t) s->lambda) >> 8)) s 1366 libavcodec/mpegvideo_enc.c static int estimate_best_b_count(MpegEncContext *s) s 1368 libavcodec/mpegvideo_enc.c const AVCodec *codec = avcodec_find_encoder(s->avctx->codec_id); s 1369 libavcodec/mpegvideo_enc.c const int scale = s->brd_scale; s 1370 libavcodec/mpegvideo_enc.c int width = s->width >> scale; s 1371 libavcodec/mpegvideo_enc.c int height = s->height >> scale; s 1381 libavcodec/mpegvideo_enc.c p_lambda = s->last_lambda_for[AV_PICTURE_TYPE_P]; s 1383 libavcodec/mpegvideo_enc.c b_lambda = s->last_lambda_for[AV_PICTURE_TYPE_B]; s 1389 libavcodec/mpegvideo_enc.c for (i = 0; i < s->max_b_frames + 2; i++) { s 1390 libavcodec/mpegvideo_enc.c Picture pre_input, *pre_input_ptr = i ? s->input_picture[i - 1] : s 1391 libavcodec/mpegvideo_enc.c s->next_picture_ptr; s 1394 libavcodec/mpegvideo_enc.c if (pre_input_ptr && (!i || s->input_picture[i - 1])) { s 1404 libavcodec/mpegvideo_enc.c s->mpvencdsp.shrink[scale](s->tmp_frames[i]->data[0], s 1405 libavcodec/mpegvideo_enc.c s->tmp_frames[i]->linesize[0], s 1409 libavcodec/mpegvideo_enc.c s->mpvencdsp.shrink[scale](s->tmp_frames[i]->data[1], s 1410 libavcodec/mpegvideo_enc.c s->tmp_frames[i]->linesize[1], s 1414 libavcodec/mpegvideo_enc.c s->mpvencdsp.shrink[scale](s->tmp_frames[i]->data[2], s 1415 libavcodec/mpegvideo_enc.c s->tmp_frames[i]->linesize[2], s 1422 libavcodec/mpegvideo_enc.c for (j = 0; j < s->max_b_frames + 1; j++) { s 1426 libavcodec/mpegvideo_enc.c if (!s->input_picture[j]) s 1436 libavcodec/mpegvideo_enc.c c->flags |= s->avctx->flags & AV_CODEC_FLAG_QPEL; s 1437 libavcodec/mpegvideo_enc.c c->mb_decision = s->avctx->mb_decision; s 1438 libavcodec/mpegvideo_enc.c c->me_cmp = s->avctx->me_cmp; s 1439 libavcodec/mpegvideo_enc.c c->mb_cmp = s->avctx->mb_cmp; s 1440 libavcodec/mpegvideo_enc.c c->me_sub_cmp = s->avctx->me_sub_cmp; s 1442 libavcodec/mpegvideo_enc.c c->time_base = s->avctx->time_base; s 1443 libavcodec/mpegvideo_enc.c c->max_b_frames = s->max_b_frames; s 1449 libavcodec/mpegvideo_enc.c s->tmp_frames[0]->pict_type = AV_PICTURE_TYPE_I; s 1450 libavcodec/mpegvideo_enc.c s->tmp_frames[0]->quality = 1 * FF_QP2LAMBDA; s 1452 libavcodec/mpegvideo_enc.c out_size = encode_frame(c, s->tmp_frames[0]); s 1460 libavcodec/mpegvideo_enc.c for (i = 0; i < s->max_b_frames + 1; i++) { s 1461 libavcodec/mpegvideo_enc.c int is_p = i % (j + 1) == j || i == s->max_b_frames; s 1463 libavcodec/mpegvideo_enc.c s->tmp_frames[i + 1]->pict_type = is_p ? s 1465 libavcodec/mpegvideo_enc.c s->tmp_frames[i + 1]->quality = is_p ? p_lambda : b_lambda; s 1467 libavcodec/mpegvideo_enc.c out_size = encode_frame(c, s->tmp_frames[i + 1]); s 1500 libavcodec/mpegvideo_enc.c static int select_input_picture(MpegEncContext *s) s 1505 libavcodec/mpegvideo_enc.c s->reordered_input_picture[i - 1] = s->reordered_input_picture[i]; s 1506 libavcodec/mpegvideo_enc.c s->reordered_input_picture[MAX_PICTURE_COUNT - 1] = NULL; s 1509 libavcodec/mpegvideo_enc.c if (!s->reordered_input_picture[0] && s->input_picture[0]) { s 1510 libavcodec/mpegvideo_enc.c if (s->frame_skip_threshold || s->frame_skip_factor) { s 1511 libavcodec/mpegvideo_enc.c if (s->picture_in_gop_number < s->gop_size && s 1512 libavcodec/mpegvideo_enc.c s->next_picture_ptr && s 1513 libavcodec/mpegvideo_enc.c skip_check(s, s->input_picture[0], s->next_picture_ptr)) { s 1515 libavcodec/mpegvideo_enc.c av_frame_unref(s->input_picture[0]->f); s 1517 libavcodec/mpegvideo_enc.c ff_vbv_update(s, 0); s 1524 libavcodec/mpegvideo_enc.c !s->next_picture_ptr || s->intra_only) { s 1525 libavcodec/mpegvideo_enc.c s->reordered_input_picture[0] = s->input_picture[0]; s 1526 libavcodec/mpegvideo_enc.c s->reordered_input_picture[0]->f->pict_type = AV_PICTURE_TYPE_I; s 1527 libavcodec/mpegvideo_enc.c s->reordered_input_picture[0]->f->coded_picture_number = s 1528 libavcodec/mpegvideo_enc.c s->coded_picture_number++; s 1532 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_PASS2) { s 1533 libavcodec/mpegvideo_enc.c for (i = 0; i < s->max_b_frames + 1; i++) { s 1534 libavcodec/mpegvideo_enc.c int pict_num = s->input_picture[0]->f->display_picture_number + i; s 1536 libavcodec/mpegvideo_enc.c if (pict_num >= s->rc_context.num_entries) s 1538 libavcodec/mpegvideo_enc.c if (!s->input_picture[i]) { s 1539 libavcodec/mpegvideo_enc.c s->rc_context.entry[pict_num - 1].new_pict_type = AV_PICTURE_TYPE_P; s 1543 libavcodec/mpegvideo_enc.c s->input_picture[i]->f->pict_type = s 1544 libavcodec/mpegvideo_enc.c s->rc_context.entry[pict_num].new_pict_type; s 1548 libavcodec/mpegvideo_enc.c if (s->b_frame_strategy == 0) { s 1549 libavcodec/mpegvideo_enc.c b_frames = s->max_b_frames; s 1550 libavcodec/mpegvideo_enc.c while (b_frames && !s->input_picture[b_frames]) s 1552 libavcodec/mpegvideo_enc.c } else if (s->b_frame_strategy == 1) { s 1553 libavcodec/mpegvideo_enc.c for (i = 1; i < s->max_b_frames + 1; i++) { s 1554 libavcodec/mpegvideo_enc.c if (s->input_picture[i] && s 1555 libavcodec/mpegvideo_enc.c s->input_picture[i]->b_frame_score == 0) { s 1556 libavcodec/mpegvideo_enc.c s->input_picture[i]->b_frame_score = s 1557 libavcodec/mpegvideo_enc.c get_intra_count(s, s 1558 libavcodec/mpegvideo_enc.c s->input_picture[i ]->f->data[0], s 1559 libavcodec/mpegvideo_enc.c s->input_picture[i - 1]->f->data[0], s 1560 libavcodec/mpegvideo_enc.c s->linesize) + 1; s 1563 libavcodec/mpegvideo_enc.c for (i = 0; i < s->max_b_frames + 1; i++) { s 1564 libavcodec/mpegvideo_enc.c if (!s->input_picture[i] || s 1565 libavcodec/mpegvideo_enc.c s->input_picture[i]->b_frame_score - 1 > s 1566 libavcodec/mpegvideo_enc.c s->mb_num / s->b_sensitivity) s 1574 libavcodec/mpegvideo_enc.c s->input_picture[i]->b_frame_score = 0; s 1576 libavcodec/mpegvideo_enc.c } else if (s->b_frame_strategy == 2) { s 1577 libavcodec/mpegvideo_enc.c b_frames = estimate_best_b_count(s); s 1585 libavcodec/mpegvideo_enc.c int type = s->input_picture[i]->f->pict_type; s 1589 libavcodec/mpegvideo_enc.c if (s->input_picture[b_frames]->f->pict_type == AV_PICTURE_TYPE_B && s 1590 libavcodec/mpegvideo_enc.c b_frames == s->max_b_frames) { s 1591 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_ERROR, s 1595 libavcodec/mpegvideo_enc.c if (s->picture_in_gop_number + b_frames >= s->gop_size) { s 1596 libavcodec/mpegvideo_enc.c if ((s->mpv_flags & FF_MPV_FLAG_STRICT_GOP) && s 1597 libavcodec/mpegvideo_enc.c s->gop_size > s->picture_in_gop_number) { s 1598 libavcodec/mpegvideo_enc.c b_frames = s->gop_size - s->picture_in_gop_number - 1; s 1600 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_CLOSED_GOP) s 1602 libavcodec/mpegvideo_enc.c s->input_picture[b_frames]->f->pict_type = AV_PICTURE_TYPE_I; s 1606 libavcodec/mpegvideo_enc.c if ((s->avctx->flags & AV_CODEC_FLAG_CLOSED_GOP) && b_frames && s 1607 libavcodec/mpegvideo_enc.c s->input_picture[b_frames]->f->pict_type == AV_PICTURE_TYPE_I) s 1610 libavcodec/mpegvideo_enc.c s->reordered_input_picture[0] = s->input_picture[b_frames]; s 1611 libavcodec/mpegvideo_enc.c if (s->reordered_input_picture[0]->f->pict_type != AV_PICTURE_TYPE_I) s 1612 libavcodec/mpegvideo_enc.c s->reordered_input_picture[0]->f->pict_type = AV_PICTURE_TYPE_P; s 1613 libavcodec/mpegvideo_enc.c s->reordered_input_picture[0]->f->coded_picture_number = s 1614 libavcodec/mpegvideo_enc.c s->coded_picture_number++; s 1616 libavcodec/mpegvideo_enc.c s->reordered_input_picture[i + 1] = s->input_picture[i]; s 1617 libavcodec/mpegvideo_enc.c s->reordered_input_picture[i + 1]->f->pict_type = s 1619 libavcodec/mpegvideo_enc.c s->reordered_input_picture[i + 1]->f->coded_picture_number = s 1620 libavcodec/mpegvideo_enc.c s->coded_picture_number++; s 1625 libavcodec/mpegvideo_enc.c ff_mpeg_unref_picture(s->avctx, &s->new_picture); s 1627 libavcodec/mpegvideo_enc.c if (s->reordered_input_picture[0]) { s 1628 libavcodec/mpegvideo_enc.c s->reordered_input_picture[0]->reference = s 1629 libavcodec/mpegvideo_enc.c s->reordered_input_picture[0]->f->pict_type != s 1632 libavcodec/mpegvideo_enc.c if ((ret = ff_mpeg_ref_picture(s->avctx, &s->new_picture, s->reordered_input_picture[0]))) s 1635 libavcodec/mpegvideo_enc.c if (s->reordered_input_picture[0]->shared || s->avctx->rc_buffer_size) { s 1640 libavcodec/mpegvideo_enc.c int i = ff_find_unused_picture(s->avctx, s->picture, 0); s 1643 libavcodec/mpegvideo_enc.c pic = &s->picture[i]; s 1645 libavcodec/mpegvideo_enc.c pic->reference = s->reordered_input_picture[0]->reference; s 1646 libavcodec/mpegvideo_enc.c if (alloc_picture(s, pic, 0) < 0) { s 1650 libavcodec/mpegvideo_enc.c ret = av_frame_copy_props(pic->f, s->reordered_input_picture[0]->f); s 1655 libavcodec/mpegvideo_enc.c av_frame_unref(s->reordered_input_picture[0]->f); s 1656 libavcodec/mpegvideo_enc.c s->reordered_input_picture[0]->shared = 0; s 1658 libavcodec/mpegvideo_enc.c s->current_picture_ptr = pic; s 1661 libavcodec/mpegvideo_enc.c s->current_picture_ptr = s->reordered_input_picture[0]; s 1663 libavcodec/mpegvideo_enc.c s->new_picture.f->data[i] += INPLACE_OFFSET; s 1666 libavcodec/mpegvideo_enc.c ff_mpeg_unref_picture(s->avctx, &s->current_picture); s 1667 libavcodec/mpegvideo_enc.c if ((ret = ff_mpeg_ref_picture(s->avctx, &s->current_picture, s 1668 libavcodec/mpegvideo_enc.c s->current_picture_ptr)) < 0) s 1671 libavcodec/mpegvideo_enc.c s->picture_number = s->new_picture.f->display_picture_number; s 1676 libavcodec/mpegvideo_enc.c static void frame_end(MpegEncContext *s) s 1678 libavcodec/mpegvideo_enc.c if (s->unrestricted_mv && s 1679 libavcodec/mpegvideo_enc.c s->current_picture.reference && s 1680 libavcodec/mpegvideo_enc.c !s->intra_only) { s 1681 libavcodec/mpegvideo_enc.c const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(s->avctx->pix_fmt); s 1684 libavcodec/mpegvideo_enc.c s->mpvencdsp.draw_edges(s->current_picture.f->data[0], s 1685 libavcodec/mpegvideo_enc.c s->current_picture.f->linesize[0], s 1686 libavcodec/mpegvideo_enc.c s->h_edge_pos, s->v_edge_pos, s 1689 libavcodec/mpegvideo_enc.c s->mpvencdsp.draw_edges(s->current_picture.f->data[1], s 1690 libavcodec/mpegvideo_enc.c s->current_picture.f->linesize[1], s 1691 libavcodec/mpegvideo_enc.c s->h_edge_pos >> hshift, s 1692 libavcodec/mpegvideo_enc.c s->v_edge_pos >> vshift, s 1696 libavcodec/mpegvideo_enc.c s->mpvencdsp.draw_edges(s->current_picture.f->data[2], s 1697 libavcodec/mpegvideo_enc.c s->current_picture.f->linesize[2], s 1698 libavcodec/mpegvideo_enc.c s->h_edge_pos >> hshift, s 1699 libavcodec/mpegvideo_enc.c s->v_edge_pos >> vshift, s 1707 libavcodec/mpegvideo_enc.c s->last_pict_type = s->pict_type; s 1708 libavcodec/mpegvideo_enc.c s->last_lambda_for [s->pict_type] = s->current_picture_ptr->f->quality; s 1709 libavcodec/mpegvideo_enc.c if (s->pict_type!= AV_PICTURE_TYPE_B) s 1710 libavcodec/mpegvideo_enc.c s->last_non_b_pict_type = s->pict_type; s 1714 libavcodec/mpegvideo_enc.c av_frame_unref(s->avctx->coded_frame); s 1715 libavcodec/mpegvideo_enc.c av_frame_copy_props(s->avctx->coded_frame, s->current_picture.f); s 1720 libavcodec/mpegvideo_enc.c memcpy(s->current_picture.f->error, s->current_picture.encoding_error, s 1721 libavcodec/mpegvideo_enc.c sizeof(s->current_picture.encoding_error)); s 1726 libavcodec/mpegvideo_enc.c static void update_noise_reduction(MpegEncContext *s) s 1731 libavcodec/mpegvideo_enc.c if (s->dct_count[intra] > (1 << 16)) { s 1733 libavcodec/mpegvideo_enc.c s->dct_error_sum[intra][i] >>= 1; s 1735 libavcodec/mpegvideo_enc.c s->dct_count[intra] >>= 1; s 1739 libavcodec/mpegvideo_enc.c s->dct_offset[intra][i] = (s->noise_reduction * s 1740 libavcodec/mpegvideo_enc.c s->dct_count[intra] + s 1741 libavcodec/mpegvideo_enc.c s->dct_error_sum[intra][i] / 2) / s 1742 libavcodec/mpegvideo_enc.c (s->dct_error_sum[intra][i] + 1); s 1747 libavcodec/mpegvideo_enc.c static int frame_start(MpegEncContext *s) s 1752 libavcodec/mpegvideo_enc.c if (s->pict_type != AV_PICTURE_TYPE_B && s->last_picture_ptr && s 1753 libavcodec/mpegvideo_enc.c s->last_picture_ptr != s->next_picture_ptr && s 1754 libavcodec/mpegvideo_enc.c s->last_picture_ptr->f->buf[0]) { s 1755 libavcodec/mpegvideo_enc.c ff_mpeg_unref_picture(s->avctx, s->last_picture_ptr); s 1758 libavcodec/mpegvideo_enc.c s->current_picture_ptr->f->pict_type = s->pict_type; s 1759 libavcodec/mpegvideo_enc.c s->current_picture_ptr->f->key_frame = s->pict_type == AV_PICTURE_TYPE_I; s 1761 libavcodec/mpegvideo_enc.c ff_mpeg_unref_picture(s->avctx, &s->current_picture); s 1762 libavcodec/mpegvideo_enc.c if ((ret = ff_mpeg_ref_picture(s->avctx, &s->current_picture, s 1763 libavcodec/mpegvideo_enc.c s->current_picture_ptr)) < 0) s 1766 libavcodec/mpegvideo_enc.c if (s->pict_type != AV_PICTURE_TYPE_B) { s 1767 libavcodec/mpegvideo_enc.c s->last_picture_ptr = s->next_picture_ptr; s 1768 libavcodec/mpegvideo_enc.c if (!s->droppable) s 1769 libavcodec/mpegvideo_enc.c s->next_picture_ptr = s->current_picture_ptr; s 1772 libavcodec/mpegvideo_enc.c if (s->last_picture_ptr) { s 1773 libavcodec/mpegvideo_enc.c ff_mpeg_unref_picture(s->avctx, &s->last_picture); s 1774 libavcodec/mpegvideo_enc.c if (s->last_picture_ptr->f->buf[0] && s 1775 libavcodec/mpegvideo_enc.c (ret = ff_mpeg_ref_picture(s->avctx, &s->last_picture, s 1776 libavcodec/mpegvideo_enc.c s->last_picture_ptr)) < 0) s 1779 libavcodec/mpegvideo_enc.c if (s->next_picture_ptr) { s 1780 libavcodec/mpegvideo_enc.c ff_mpeg_unref_picture(s->avctx, &s->next_picture); s 1781 libavcodec/mpegvideo_enc.c if (s->next_picture_ptr->f->buf[0] && s 1782 libavcodec/mpegvideo_enc.c (ret = ff_mpeg_ref_picture(s->avctx, &s->next_picture, s 1783 libavcodec/mpegvideo_enc.c s->next_picture_ptr)) < 0) s 1787 libavcodec/mpegvideo_enc.c if (s->picture_structure!= PICT_FRAME) { s 1790 libavcodec/mpegvideo_enc.c if (s->picture_structure == PICT_BOTTOM_FIELD) { s 1791 libavcodec/mpegvideo_enc.c s->current_picture.f->data[i] += s 1792 libavcodec/mpegvideo_enc.c s->current_picture.f->linesize[i]; s 1794 libavcodec/mpegvideo_enc.c s->current_picture.f->linesize[i] *= 2; s 1795 libavcodec/mpegvideo_enc.c s->last_picture.f->linesize[i] *= 2; s 1796 libavcodec/mpegvideo_enc.c s->next_picture.f->linesize[i] *= 2; s 1800 libavcodec/mpegvideo_enc.c if (s->mpeg_quant || s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { s 1801 libavcodec/mpegvideo_enc.c s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; s 1802 libavcodec/mpegvideo_enc.c s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; s 1803 libavcodec/mpegvideo_enc.c } else if (s->out_format == FMT_H263 || s->out_format == FMT_H261) { s 1804 libavcodec/mpegvideo_enc.c s->dct_unquantize_intra = s->dct_unquantize_h263_intra; s 1805 libavcodec/mpegvideo_enc.c s->dct_unquantize_inter = s->dct_unquantize_h263_inter; s 1807 libavcodec/mpegvideo_enc.c s->dct_unquantize_intra = s->dct_unquantize_mpeg1_intra; s 1808 libavcodec/mpegvideo_enc.c s->dct_unquantize_inter = s->dct_unquantize_mpeg1_inter; s 1811 libavcodec/mpegvideo_enc.c if (s->dct_error_sum) { s 1812 libavcodec/mpegvideo_enc.c av_assert2(s->noise_reduction && s->encoding); s 1813 libavcodec/mpegvideo_enc.c update_noise_reduction(s); s 1822 libavcodec/mpegvideo_enc.c MpegEncContext *s = avctx->priv_data; s 1824 libavcodec/mpegvideo_enc.c int context_count = s->slice_context_count; s 1826 libavcodec/mpegvideo_enc.c s->vbv_ignore_qmax = 0; s 1828 libavcodec/mpegvideo_enc.c s->picture_in_gop_number++; s 1830 libavcodec/mpegvideo_enc.c if (load_input_picture(s, pic_arg) < 0) s 1833 libavcodec/mpegvideo_enc.c if (select_input_picture(s) < 0) { s 1838 libavcodec/mpegvideo_enc.c if (s->new_picture.f->data[0]) { s 1839 libavcodec/mpegvideo_enc.c int growing_buffer = context_count == 1 && !pkt->data && !s->data_partitioning; s 1840 libavcodec/mpegvideo_enc.c int pkt_size = growing_buffer ? FFMAX(s->mb_width*s->mb_height*64+10000, avctx->internal->byte_buffer_size) - AV_INPUT_BUFFER_PADDING_SIZE s 1842 libavcodec/mpegvideo_enc.c s->mb_width*s->mb_height*(MAX_MB_BYTES+100)+10000; s 1845 libavcodec/mpegvideo_enc.c if (s->mb_info) { s 1846 libavcodec/mpegvideo_enc.c s->mb_info_ptr = av_packet_new_side_data(pkt, s 1848 libavcodec/mpegvideo_enc.c s->mb_width*s->mb_height*12); s 1849 libavcodec/mpegvideo_enc.c s->prev_mb_info = s->last_mb_info = s->mb_info_size = 0; s 1853 libavcodec/mpegvideo_enc.c int start_y = s->thread_context[i]->start_mb_y; s 1854 libavcodec/mpegvideo_enc.c int end_y = s->thread_context[i]-> end_mb_y; s 1855 libavcodec/mpegvideo_enc.c int h = s->mb_height; s 1859 libavcodec/mpegvideo_enc.c init_put_bits(&s->thread_context[i]->pb, start, end - start); s 1862 libavcodec/mpegvideo_enc.c s->pict_type = s->new_picture.f->pict_type; s 1864 libavcodec/mpegvideo_enc.c ret = frame_start(s); s 1868 libavcodec/mpegvideo_enc.c ret = encode_picture(s, s->picture_number); s 1870 libavcodec/mpegvideo_enc.c av_assert0(s->pb.buf == avctx->internal->byte_buffer); s 1871 libavcodec/mpegvideo_enc.c pkt->data = s->pb.buf; s 1879 libavcodec/mpegvideo_enc.c avctx->header_bits = s->header_bits; s 1880 libavcodec/mpegvideo_enc.c avctx->mv_bits = s->mv_bits; s 1881 libavcodec/mpegvideo_enc.c avctx->misc_bits = s->misc_bits; s 1882 libavcodec/mpegvideo_enc.c avctx->i_tex_bits = s->i_tex_bits; s 1883 libavcodec/mpegvideo_enc.c avctx->p_tex_bits = s->p_tex_bits; s 1884 libavcodec/mpegvideo_enc.c avctx->i_count = s->i_count; s 1886 libavcodec/mpegvideo_enc.c avctx->p_count = s->mb_num - s->i_count - s->skip_count; s 1887 libavcodec/mpegvideo_enc.c avctx->skip_count = s->skip_count; s 1891 libavcodec/mpegvideo_enc.c frame_end(s); s 1893 libavcodec/mpegvideo_enc.c if (CONFIG_MJPEG_ENCODER && s->out_format == FMT_MJPEG) s 1894 libavcodec/mpegvideo_enc.c ff_mjpeg_encode_picture_trailer(&s->pb, s->header_bits); s 1897 libavcodec/mpegvideo_enc.c RateControlContext *rcc = &s->rc_context; s 1899 libavcodec/mpegvideo_enc.c int hq = (s->avctx->mb_decision == FF_MB_DECISION_RD || s->avctx->trellis); s 1902 libavcodec/mpegvideo_enc.c if (put_bits_count(&s->pb) > max_size && s 1903 libavcodec/mpegvideo_enc.c s->lambda < s->lmax) { s 1904 libavcodec/mpegvideo_enc.c s->next_lambda = FFMAX(s->lambda + min_step, s->lambda * s 1905 libavcodec/mpegvideo_enc.c (s->qscale + 1) / s->qscale); s 1906 libavcodec/mpegvideo_enc.c if (s->adaptive_quant) { s 1908 libavcodec/mpegvideo_enc.c for (i = 0; i < s->mb_height * s->mb_stride; i++) s 1909 libavcodec/mpegvideo_enc.c s->lambda_table[i] = s 1910 libavcodec/mpegvideo_enc.c FFMAX(s->lambda_table[i] + min_step, s 1911 libavcodec/mpegvideo_enc.c s->lambda_table[i] * (s->qscale + 1) / s 1912 libavcodec/mpegvideo_enc.c s->qscale); s 1914 libavcodec/mpegvideo_enc.c s->mb_skipped = 0; // done in frame_start() s 1916 libavcodec/mpegvideo_enc.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 1917 libavcodec/mpegvideo_enc.c if (s->flipflop_rounding || s 1918 libavcodec/mpegvideo_enc.c s->codec_id == AV_CODEC_ID_H263P || s 1919 libavcodec/mpegvideo_enc.c s->codec_id == AV_CODEC_ID_MPEG4) s 1920 libavcodec/mpegvideo_enc.c s->no_rounding ^= 1; s 1922 libavcodec/mpegvideo_enc.c if (s->pict_type != AV_PICTURE_TYPE_B) { s 1923 libavcodec/mpegvideo_enc.c s->time_base = s->last_time_base; s 1924 libavcodec/mpegvideo_enc.c s->last_non_b_time = s->time - s->pp_time; s 1927 libavcodec/mpegvideo_enc.c PutBitContext *pb = &s->thread_context[i]->pb; s 1930 libavcodec/mpegvideo_enc.c s->vbv_ignore_qmax = 1; s 1931 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_VERBOSE, "reencoding frame due to VBV\n"); s 1935 libavcodec/mpegvideo_enc.c av_assert0(s->avctx->rc_max_rate); s 1938 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_PASS1) s 1939 libavcodec/mpegvideo_enc.c ff_write_pass1_stats(s); s 1942 libavcodec/mpegvideo_enc.c s->current_picture_ptr->encoding_error[i] = s->current_picture.encoding_error[i]; s 1943 libavcodec/mpegvideo_enc.c avctx->error[i] += s->current_picture_ptr->encoding_error[i]; s 1945 libavcodec/mpegvideo_enc.c ff_side_data_set_encoder_stats(pkt, s->current_picture.f->quality, s 1946 libavcodec/mpegvideo_enc.c s->current_picture_ptr->encoding_error, s 1947 libavcodec/mpegvideo_enc.c (s->avctx->flags&AV_CODEC_FLAG_PSNR) ? 4 : 0, s 1948 libavcodec/mpegvideo_enc.c s->pict_type); s 1950 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_PASS1) s 1951 libavcodec/mpegvideo_enc.c assert(put_bits_count(&s->pb) == s->header_bits + s->mv_bits + s 1952 libavcodec/mpegvideo_enc.c s->misc_bits + s->i_tex_bits + s 1953 libavcodec/mpegvideo_enc.c s->p_tex_bits); s 1954 libavcodec/mpegvideo_enc.c flush_put_bits(&s->pb); s 1955 libavcodec/mpegvideo_enc.c s->frame_bits = put_bits_count(&s->pb); s 1957 libavcodec/mpegvideo_enc.c stuffing_count = ff_vbv_update(s, s->frame_bits); s 1958 libavcodec/mpegvideo_enc.c s->stuffing_bits = 8*stuffing_count; s 1960 libavcodec/mpegvideo_enc.c if (s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb) >> 3) < s 1962 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_ERROR, "stuffing too large\n"); s 1966 libavcodec/mpegvideo_enc.c switch (s->codec_id) { s 1970 libavcodec/mpegvideo_enc.c put_bits(&s->pb, 8, 0); s 1974 libavcodec/mpegvideo_enc.c put_bits(&s->pb, 16, 0); s 1975 libavcodec/mpegvideo_enc.c put_bits(&s->pb, 16, 0x1C3); s 1978 libavcodec/mpegvideo_enc.c put_bits(&s->pb, 8, 0xFF); s 1982 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_ERROR, "vbv buffer overflow\n"); s 1984 libavcodec/mpegvideo_enc.c flush_put_bits(&s->pb); s 1985 libavcodec/mpegvideo_enc.c s->frame_bits = put_bits_count(&s->pb); s 1989 libavcodec/mpegvideo_enc.c if (s->avctx->rc_max_rate && s 1990 libavcodec/mpegvideo_enc.c s->avctx->rc_min_rate == s->avctx->rc_max_rate && s 1991 libavcodec/mpegvideo_enc.c s->out_format == FMT_MPEG1 && s 1993 libavcodec/mpegvideo_enc.c s->avctx->rc_max_rate * 0xFFFFLL) { s 1998 libavcodec/mpegvideo_enc.c double inbits = s->avctx->rc_max_rate * s 1999 libavcodec/mpegvideo_enc.c av_q2d(s->avctx->time_base); s 2000 libavcodec/mpegvideo_enc.c int minbits = s->frame_bits - 8 * s 2001 libavcodec/mpegvideo_enc.c (s->vbv_delay_ptr - s->pb.buf - 1); s 2002 libavcodec/mpegvideo_enc.c double bits = s->rc_context.buffer_index + minbits - inbits; s 2005 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_ERROR, s 2008 libavcodec/mpegvideo_enc.c av_assert1(s->repeat_first_field == 0); s 2010 libavcodec/mpegvideo_enc.c vbv_delay = bits * 90000 / s->avctx->rc_max_rate; s 2011 libavcodec/mpegvideo_enc.c min_delay = (minbits * 90000LL + s->avctx->rc_max_rate - 1) / s 2012 libavcodec/mpegvideo_enc.c s->avctx->rc_max_rate; s 2018 libavcodec/mpegvideo_enc.c s->vbv_delay_ptr[0] &= 0xF8; s 2019 libavcodec/mpegvideo_enc.c s->vbv_delay_ptr[0] |= vbv_delay >> 13; s 2020 libavcodec/mpegvideo_enc.c s->vbv_delay_ptr[1] = vbv_delay >> 5; s 2021 libavcodec/mpegvideo_enc.c s->vbv_delay_ptr[2] &= 0x07; s 2022 libavcodec/mpegvideo_enc.c s->vbv_delay_ptr[2] |= vbv_delay << 3; s 2042 libavcodec/mpegvideo_enc.c s->total_bits += s->frame_bits; s 2045 libavcodec/mpegvideo_enc.c avctx->frame_bits = s->frame_bits; s 2050 libavcodec/mpegvideo_enc.c pkt->pts = s->current_picture.f->pts; s 2051 libavcodec/mpegvideo_enc.c if (!s->low_delay && s->pict_type != AV_PICTURE_TYPE_B) { s 2052 libavcodec/mpegvideo_enc.c if (!s->current_picture.f->coded_picture_number) s 2053 libavcodec/mpegvideo_enc.c pkt->dts = pkt->pts - s->dts_delta; s 2055 libavcodec/mpegvideo_enc.c pkt->dts = s->reordered_pts; s 2056 libavcodec/mpegvideo_enc.c s->reordered_pts = pkt->pts; s 2059 libavcodec/mpegvideo_enc.c if (s->current_picture.f->key_frame) s 2061 libavcodec/mpegvideo_enc.c if (s->mb_info) s 2062 libavcodec/mpegvideo_enc.c av_packet_shrink_side_data(pkt, AV_PKT_DATA_H263_MB_INFO, s->mb_info_size); s 2064 libavcodec/mpegvideo_enc.c s->frame_bits = 0; s 2069 libavcodec/mpegvideo_enc.c if (!s->picture[i].reference) s 2070 libavcodec/mpegvideo_enc.c ff_mpeg_unref_picture(s->avctx, &s->picture[i]); s 2073 libavcodec/mpegvideo_enc.c av_assert1((s->frame_bits & 7) == 0); s 2075 libavcodec/mpegvideo_enc.c pkt->size = s->frame_bits / 8; s 2080 libavcodec/mpegvideo_enc.c static inline void dct_single_coeff_elimination(MpegEncContext *s, s 2096 libavcodec/mpegvideo_enc.c int16_t *block = s->block[n]; s 2097 libavcodec/mpegvideo_enc.c const int last_index = s->block_last_index[n]; s 2111 libavcodec/mpegvideo_enc.c const int j = s->intra_scantable.permutated[i]; s 2127 libavcodec/mpegvideo_enc.c const int j = s->intra_scantable.permutated[i]; s 2131 libavcodec/mpegvideo_enc.c s->block_last_index[n] = 0; s 2133 libavcodec/mpegvideo_enc.c s->block_last_index[n] = -1; s 2136 libavcodec/mpegvideo_enc.c static inline void clip_coeffs(MpegEncContext *s, int16_t *block, s 2140 libavcodec/mpegvideo_enc.c const int maxlevel = s->max_qcoeff; s 2141 libavcodec/mpegvideo_enc.c const int minlevel = s->min_qcoeff; s 2144 libavcodec/mpegvideo_enc.c if (s->mb_intra) { s 2150 libavcodec/mpegvideo_enc.c const int j = s->intra_scantable.permutated[i]; s 2164 libavcodec/mpegvideo_enc.c if (overflow && s->avctx->mb_decision == FF_MB_DECISION_SIMPLE) s 2165 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_INFO, s 2194 libavcodec/mpegvideo_enc.c static av_always_inline void encode_mb_internal(MpegEncContext *s, s 2202 libavcodec/mpegvideo_enc.c const int mb_x = s->mb_x; s 2203 libavcodec/mpegvideo_enc.c const int mb_y = s->mb_y; s 2206 libavcodec/mpegvideo_enc.c int dct_offset = s->linesize * 8; // default for progressive frames s 2207 libavcodec/mpegvideo_enc.c int uv_dct_offset = s->uvlinesize * 8; s 2212 libavcodec/mpegvideo_enc.c skip_dct[i] = s->skipdct; s 2214 libavcodec/mpegvideo_enc.c if (s->adaptive_quant) { s 2215 libavcodec/mpegvideo_enc.c const int last_qp = s->qscale; s 2216 libavcodec/mpegvideo_enc.c const int mb_xy = mb_x + mb_y * s->mb_stride; s 2218 libavcodec/mpegvideo_enc.c s->lambda = s->lambda_table[mb_xy]; s 2219 libavcodec/mpegvideo_enc.c update_qscale(s); s 2221 libavcodec/mpegvideo_enc.c if (!(s->mpv_flags & FF_MPV_FLAG_QP_RD)) { s 2222 libavcodec/mpegvideo_enc.c s->qscale = s->current_picture_ptr->qscale_table[mb_xy]; s 2223 libavcodec/mpegvideo_enc.c s->dquant = s->qscale - last_qp; s 2225 libavcodec/mpegvideo_enc.c if (s->out_format == FMT_H263) { s 2226 libavcodec/mpegvideo_enc.c s->dquant = av_clip(s->dquant, -2, 2); s 2228 libavcodec/mpegvideo_enc.c if (s->codec_id == AV_CODEC_ID_MPEG4) { s 2229 libavcodec/mpegvideo_enc.c if (!s->mb_intra) { s 2230 libavcodec/mpegvideo_enc.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 2231 libavcodec/mpegvideo_enc.c if (s->dquant & 1 || s->mv_dir & MV_DIRECT) s 2232 libavcodec/mpegvideo_enc.c s->dquant = 0; s 2234 libavcodec/mpegvideo_enc.c if (s->mv_type == MV_TYPE_8X8) s 2235 libavcodec/mpegvideo_enc.c s->dquant = 0; s 2240 libavcodec/mpegvideo_enc.c ff_set_qscale(s, last_qp + s->dquant); s 2241 libavcodec/mpegvideo_enc.c } else if (s->mpv_flags & FF_MPV_FLAG_QP_RD) s 2242 libavcodec/mpegvideo_enc.c ff_set_qscale(s, s->qscale + s->dquant); s 2244 libavcodec/mpegvideo_enc.c wrap_y = s->linesize; s 2245 libavcodec/mpegvideo_enc.c wrap_c = s->uvlinesize; s 2246 libavcodec/mpegvideo_enc.c ptr_y = s->new_picture.f->data[0] + s 2248 libavcodec/mpegvideo_enc.c ptr_cb = s->new_picture.f->data[1] + s 2250 libavcodec/mpegvideo_enc.c ptr_cr = s->new_picture.f->data[2] + s 2253 libavcodec/mpegvideo_enc.c if((mb_x * 16 + 16 > s->width || mb_y * 16 + 16 > s->height) && s->codec_id != AV_CODEC_ID_AMV){ s 2254 libavcodec/mpegvideo_enc.c uint8_t *ebuf = s->sc.edge_emu_buffer + 38 * wrap_y; s 2255 libavcodec/mpegvideo_enc.c int cw = (s->width + s->chroma_x_shift) >> s->chroma_x_shift; s 2256 libavcodec/mpegvideo_enc.c int ch = (s->height + s->chroma_y_shift) >> s->chroma_y_shift; s 2257 libavcodec/mpegvideo_enc.c s->vdsp.emulated_edge_mc(ebuf, ptr_y, s 2260 libavcodec/mpegvideo_enc.c s->width, s->height); s 2262 libavcodec/mpegvideo_enc.c s->vdsp.emulated_edge_mc(ebuf + 16 * wrap_y, ptr_cb, s 2268 libavcodec/mpegvideo_enc.c s->vdsp.emulated_edge_mc(ebuf + 16 * wrap_y + 16, ptr_cr, s 2276 libavcodec/mpegvideo_enc.c if (s->mb_intra) { s 2277 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { s 2280 libavcodec/mpegvideo_enc.c s->interlaced_dct = 0; s 2281 libavcodec/mpegvideo_enc.c progressive_score = s->mecc.ildct_cmp[4](s, ptr_y, NULL, wrap_y, 8) + s 2282 libavcodec/mpegvideo_enc.c s->mecc.ildct_cmp[4](s, ptr_y + wrap_y * 8, s 2286 libavcodec/mpegvideo_enc.c interlaced_score = s->mecc.ildct_cmp[4](s, ptr_y, s 2288 libavcodec/mpegvideo_enc.c s->mecc.ildct_cmp[4](s, ptr_y + wrap_y, s 2291 libavcodec/mpegvideo_enc.c s->interlaced_dct = 1; s 2296 libavcodec/mpegvideo_enc.c if (s->chroma_format == CHROMA_422 || s 2297 libavcodec/mpegvideo_enc.c s->chroma_format == CHROMA_444) s 2303 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[0], ptr_y, wrap_y); s 2304 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[1], ptr_y + 8, wrap_y); s 2305 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[2], ptr_y + dct_offset, wrap_y); s 2306 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[3], ptr_y + dct_offset + 8, wrap_y); s 2308 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_GRAY) { s 2312 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[4], ptr_cb, wrap_c); s 2313 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[5], ptr_cr, wrap_c); s 2314 libavcodec/mpegvideo_enc.c if (!s->chroma_y_shift && s->chroma_x_shift) { /* 422 */ s 2315 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[6], ptr_cb + uv_dct_offset, wrap_c); s 2316 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[7], ptr_cr + uv_dct_offset, wrap_c); s 2317 libavcodec/mpegvideo_enc.c } else if (!s->chroma_y_shift && !s->chroma_x_shift) { /* 444 */ s 2318 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[ 6], ptr_cb + 8, wrap_c); s 2319 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[ 7], ptr_cr + 8, wrap_c); s 2320 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[ 8], ptr_cb + uv_dct_offset, wrap_c); s 2321 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[ 9], ptr_cr + uv_dct_offset, wrap_c); s 2322 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[10], ptr_cb + uv_dct_offset + 8, wrap_c); s 2323 libavcodec/mpegvideo_enc.c s->pdsp.get_pixels(s->block[11], ptr_cr + uv_dct_offset + 8, wrap_c); s 2331 libavcodec/mpegvideo_enc.c dest_y = s->dest[0]; s 2332 libavcodec/mpegvideo_enc.c dest_cb = s->dest[1]; s 2333 libavcodec/mpegvideo_enc.c dest_cr = s->dest[2]; s 2335 libavcodec/mpegvideo_enc.c if ((!s->no_rounding) || s->pict_type == AV_PICTURE_TYPE_B) { s 2336 libavcodec/mpegvideo_enc.c op_pix = s->hdsp.put_pixels_tab; s 2337 libavcodec/mpegvideo_enc.c op_qpix = s->qdsp.put_qpel_pixels_tab; s 2339 libavcodec/mpegvideo_enc.c op_pix = s->hdsp.put_no_rnd_pixels_tab; s 2340 libavcodec/mpegvideo_enc.c op_qpix = s->qdsp.put_no_rnd_qpel_pixels_tab; s 2343 libavcodec/mpegvideo_enc.c if (s->mv_dir & MV_DIR_FORWARD) { s 2344 libavcodec/mpegvideo_enc.c ff_mpv_motion(s, dest_y, dest_cb, dest_cr, 0, s 2345 libavcodec/mpegvideo_enc.c s->last_picture.f->data, s 2347 libavcodec/mpegvideo_enc.c op_pix = s->hdsp.avg_pixels_tab; s 2348 libavcodec/mpegvideo_enc.c op_qpix = s->qdsp.avg_qpel_pixels_tab; s 2350 libavcodec/mpegvideo_enc.c if (s->mv_dir & MV_DIR_BACKWARD) { s 2351 libavcodec/mpegvideo_enc.c ff_mpv_motion(s, dest_y, dest_cb, dest_cr, 1, s 2352 libavcodec/mpegvideo_enc.c s->next_picture.f->data, s 2356 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { s 2359 libavcodec/mpegvideo_enc.c s->interlaced_dct = 0; s 2360 libavcodec/mpegvideo_enc.c progressive_score = s->mecc.ildct_cmp[0](s, dest_y, ptr_y, wrap_y, 8) + s 2361 libavcodec/mpegvideo_enc.c s->mecc.ildct_cmp[0](s, dest_y + wrap_y * 8, s 2365 libavcodec/mpegvideo_enc.c if (s->avctx->ildct_cmp == FF_CMP_VSSE) s 2369 libavcodec/mpegvideo_enc.c interlaced_score = s->mecc.ildct_cmp[0](s, dest_y, ptr_y, s 2371 libavcodec/mpegvideo_enc.c s->mecc.ildct_cmp[0](s, dest_y + wrap_y, s 2376 libavcodec/mpegvideo_enc.c s->interlaced_dct = 1; s 2381 libavcodec/mpegvideo_enc.c if (s->chroma_format == CHROMA_422) s 2387 libavcodec/mpegvideo_enc.c s->pdsp.diff_pixels(s->block[0], ptr_y, dest_y, wrap_y); s 2388 libavcodec/mpegvideo_enc.c s->pdsp.diff_pixels(s->block[1], ptr_y + 8, dest_y + 8, wrap_y); s 2389 libavcodec/mpegvideo_enc.c s->pdsp.diff_pixels(s->block[2], ptr_y + dct_offset, s 2391 libavcodec/mpegvideo_enc.c s->pdsp.diff_pixels(s->block[3], ptr_y + dct_offset + 8, s 2394 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_GRAY) { s 2398 libavcodec/mpegvideo_enc.c s->pdsp.diff_pixels(s->block[4], ptr_cb, dest_cb, wrap_c); s 2399 libavcodec/mpegvideo_enc.c s->pdsp.diff_pixels(s->block[5], ptr_cr, dest_cr, wrap_c); s 2400 libavcodec/mpegvideo_enc.c if (!s->chroma_y_shift) { /* 422 */ s 2401 libavcodec/mpegvideo_enc.c s->pdsp.diff_pixels(s->block[6], ptr_cb + uv_dct_offset, s 2403 libavcodec/mpegvideo_enc.c s->pdsp.diff_pixels(s->block[7], ptr_cr + uv_dct_offset, s 2408 libavcodec/mpegvideo_enc.c if (s->current_picture.mc_mb_var[s->mb_stride * mb_y + mb_x] < s 2409 libavcodec/mpegvideo_enc.c 2 * s->qscale * s->qscale) { s 2411 libavcodec/mpegvideo_enc.c if (s->mecc.sad[1](NULL, ptr_y, dest_y, wrap_y, 8) < 20 * s->qscale) s 2413 libavcodec/mpegvideo_enc.c if (s->mecc.sad[1](NULL, ptr_y + 8, dest_y + 8, wrap_y, 8) < 20 * s->qscale) s 2415 libavcodec/mpegvideo_enc.c if (s->mecc.sad[1](NULL, ptr_y + dct_offset, dest_y + dct_offset, s 2416 libavcodec/mpegvideo_enc.c wrap_y, 8) < 20 * s->qscale) s 2418 libavcodec/mpegvideo_enc.c if (s->mecc.sad[1](NULL, ptr_y + dct_offset + 8, dest_y + dct_offset + 8, s 2419 libavcodec/mpegvideo_enc.c wrap_y, 8) < 20 * s->qscale) s 2421 libavcodec/mpegvideo_enc.c if (s->mecc.sad[1](NULL, ptr_cb, dest_cb, wrap_c, 8) < 20 * s->qscale) s 2423 libavcodec/mpegvideo_enc.c if (s->mecc.sad[1](NULL, ptr_cr, dest_cr, wrap_c, 8) < 20 * s->qscale) s 2425 libavcodec/mpegvideo_enc.c if (!s->chroma_y_shift) { /* 422 */ s 2426 libavcodec/mpegvideo_enc.c if (s->mecc.sad[1](NULL, ptr_cb + uv_dct_offset, s 2428 libavcodec/mpegvideo_enc.c wrap_c, 8) < 20 * s->qscale) s 2430 libavcodec/mpegvideo_enc.c if (s->mecc.sad[1](NULL, ptr_cr + uv_dct_offset, s 2432 libavcodec/mpegvideo_enc.c wrap_c, 8) < 20 * s->qscale) s 2438 libavcodec/mpegvideo_enc.c if (s->quantizer_noise_shaping) { s 2451 libavcodec/mpegvideo_enc.c if (!s->chroma_y_shift) { /* 422 */ s 2459 libavcodec/mpegvideo_enc.c memcpy(orig[0], s->block[0], sizeof(int16_t) * 64 * mb_block_count); s 2463 libavcodec/mpegvideo_enc.c av_assert2(s->out_format != FMT_MJPEG || s->qscale == 8); s 2468 libavcodec/mpegvideo_enc.c s->block_last_index[i] = s->dct_quantize(s, s->block[i], i, s->qscale, &overflow); s 2475 libavcodec/mpegvideo_enc.c clip_coeffs(s, s->block[i], s->block_last_index[i]); s 2477 libavcodec/mpegvideo_enc.c s->block_last_index[i] = -1; s 2479 libavcodec/mpegvideo_enc.c if (s->quantizer_noise_shaping) { s 2482 libavcodec/mpegvideo_enc.c s->block_last_index[i] = s 2483 libavcodec/mpegvideo_enc.c dct_quantize_refine(s, s->block[i], weight[i], s 2484 libavcodec/mpegvideo_enc.c orig[i], i, s->qscale); s 2489 libavcodec/mpegvideo_enc.c if (s->luma_elim_threshold && !s->mb_intra) s 2491 libavcodec/mpegvideo_enc.c dct_single_coeff_elimination(s, i, s->luma_elim_threshold); s 2492 libavcodec/mpegvideo_enc.c if (s->chroma_elim_threshold && !s->mb_intra) s 2494 libavcodec/mpegvideo_enc.c dct_single_coeff_elimination(s, i, s->chroma_elim_threshold); s 2496 libavcodec/mpegvideo_enc.c if (s->mpv_flags & FF_MPV_FLAG_CBP_RD) { s 2498 libavcodec/mpegvideo_enc.c if (s->block_last_index[i] == -1) s 2499 libavcodec/mpegvideo_enc.c s->coded_score[i] = INT_MAX / 256; s 2504 libavcodec/mpegvideo_enc.c if ((s->avctx->flags & AV_CODEC_FLAG_GRAY) && s->mb_intra) { s 2505 libavcodec/mpegvideo_enc.c s->block_last_index[4] = s 2506 libavcodec/mpegvideo_enc.c s->block_last_index[5] = 0; s 2507 libavcodec/mpegvideo_enc.c s->block[4][0] = s 2508 libavcodec/mpegvideo_enc.c s->block[5][0] = (1024 + s->c_dc_scale / 2) / s->c_dc_scale; s 2509 libavcodec/mpegvideo_enc.c if (!s->chroma_y_shift) { /* 422 / 444 */ s 2511 libavcodec/mpegvideo_enc.c s->block_last_index[i] = 0; s 2512 libavcodec/mpegvideo_enc.c s->block[i][0] = s->block[4][0]; s 2518 libavcodec/mpegvideo_enc.c if (s->alternate_scan && s->dct_quantize != ff_dct_quantize_c) { s 2521 libavcodec/mpegvideo_enc.c if (s->block_last_index[i] > 0) { s 2523 libavcodec/mpegvideo_enc.c if (s->block[i][s->intra_scantable.permutated[j]]) s 2526 libavcodec/mpegvideo_enc.c s->block_last_index[i] = j; s 2532 libavcodec/mpegvideo_enc.c switch(s->codec_id){ //FIXME funct ptr could be slightly faster s 2536 libavcodec/mpegvideo_enc.c ff_mpeg1_encode_mb(s, s->block, motion_x, motion_y); s 2540 libavcodec/mpegvideo_enc.c ff_mpeg4_encode_mb(s, s->block, motion_x, motion_y); s 2546 libavcodec/mpegvideo_enc.c ff_msmpeg4_encode_mb(s, s->block, motion_x, motion_y); s 2550 libavcodec/mpegvideo_enc.c ff_wmv2_encode_mb(s, s->block, motion_x, motion_y); s 2554 libavcodec/mpegvideo_enc.c ff_h261_encode_mb(s, s->block, motion_x, motion_y); s 2562 libavcodec/mpegvideo_enc.c ff_h263_encode_mb(s, s->block, motion_x, motion_y); s 2567 libavcodec/mpegvideo_enc.c ff_mjpeg_encode_mb(s, s->block); s 2574 libavcodec/mpegvideo_enc.c static av_always_inline void encode_mb(MpegEncContext *s, int motion_x, int motion_y) s 2576 libavcodec/mpegvideo_enc.c if (s->chroma_format == CHROMA_420) encode_mb_internal(s, motion_x, motion_y, 8, 8, 6); s 2577 libavcodec/mpegvideo_enc.c else if (s->chroma_format == CHROMA_422) encode_mb_internal(s, motion_x, motion_y, 16, 8, 8); s 2578 libavcodec/mpegvideo_enc.c else encode_mb_internal(s, motion_x, motion_y, 16, 16, 12); s 2581 libavcodec/mpegvideo_enc.c static inline void copy_context_before_encode(MpegEncContext *d, MpegEncContext *s, int type){ s 2584 libavcodec/mpegvideo_enc.c memcpy(d->last_mv, s->last_mv, 2*2*2*sizeof(int)); //FIXME is memcpy faster than a loop? s 2587 libavcodec/mpegvideo_enc.c d->mb_skip_run= s->mb_skip_run; s 2589 libavcodec/mpegvideo_enc.c d->last_dc[i] = s->last_dc[i]; s 2592 libavcodec/mpegvideo_enc.c d->mv_bits= s->mv_bits; s 2593 libavcodec/mpegvideo_enc.c d->i_tex_bits= s->i_tex_bits; s 2594 libavcodec/mpegvideo_enc.c d->p_tex_bits= s->p_tex_bits; s 2595 libavcodec/mpegvideo_enc.c d->i_count= s->i_count; s 2596 libavcodec/mpegvideo_enc.c d->f_count= s->f_count; s 2597 libavcodec/mpegvideo_enc.c d->b_count= s->b_count; s 2598 libavcodec/mpegvideo_enc.c d->skip_count= s->skip_count; s 2599 libavcodec/mpegvideo_enc.c d->misc_bits= s->misc_bits; s 2603 libavcodec/mpegvideo_enc.c d->qscale= s->qscale; s 2604 libavcodec/mpegvideo_enc.c d->dquant= s->dquant; s 2606 libavcodec/mpegvideo_enc.c d->esc3_level_length= s->esc3_level_length; s 2609 libavcodec/mpegvideo_enc.c static inline void copy_context_after_encode(MpegEncContext *d, MpegEncContext *s, int type){ s 2612 libavcodec/mpegvideo_enc.c memcpy(d->mv, s->mv, 2*4*2*sizeof(int)); s 2613 libavcodec/mpegvideo_enc.c memcpy(d->last_mv, s->last_mv, 2*2*2*sizeof(int)); //FIXME is memcpy faster than a loop? s 2616 libavcodec/mpegvideo_enc.c d->mb_skip_run= s->mb_skip_run; s 2618 libavcodec/mpegvideo_enc.c d->last_dc[i] = s->last_dc[i]; s 2621 libavcodec/mpegvideo_enc.c d->mv_bits= s->mv_bits; s 2622 libavcodec/mpegvideo_enc.c d->i_tex_bits= s->i_tex_bits; s 2623 libavcodec/mpegvideo_enc.c d->p_tex_bits= s->p_tex_bits; s 2624 libavcodec/mpegvideo_enc.c d->i_count= s->i_count; s 2625 libavcodec/mpegvideo_enc.c d->f_count= s->f_count; s 2626 libavcodec/mpegvideo_enc.c d->b_count= s->b_count; s 2627 libavcodec/mpegvideo_enc.c d->skip_count= s->skip_count; s 2628 libavcodec/mpegvideo_enc.c d->misc_bits= s->misc_bits; s 2630 libavcodec/mpegvideo_enc.c d->mb_intra= s->mb_intra; s 2631 libavcodec/mpegvideo_enc.c d->mb_skipped= s->mb_skipped; s 2632 libavcodec/mpegvideo_enc.c d->mv_type= s->mv_type; s 2633 libavcodec/mpegvideo_enc.c d->mv_dir= s->mv_dir; s 2634 libavcodec/mpegvideo_enc.c d->pb= s->pb; s 2635 libavcodec/mpegvideo_enc.c if(s->data_partitioning){ s 2636 libavcodec/mpegvideo_enc.c d->pb2= s->pb2; s 2637 libavcodec/mpegvideo_enc.c d->tex_pb= s->tex_pb; s 2639 libavcodec/mpegvideo_enc.c d->block= s->block; s 2641 libavcodec/mpegvideo_enc.c d->block_last_index[i]= s->block_last_index[i]; s 2642 libavcodec/mpegvideo_enc.c d->interlaced_dct= s->interlaced_dct; s 2643 libavcodec/mpegvideo_enc.c d->qscale= s->qscale; s 2645 libavcodec/mpegvideo_enc.c d->esc3_level_length= s->esc3_level_length; s 2648 libavcodec/mpegvideo_enc.c static inline void encode_mb_hq(MpegEncContext *s, MpegEncContext *backup, MpegEncContext *best, int type, s 2655 libavcodec/mpegvideo_enc.c copy_context_before_encode(s, backup, type); s 2657 libavcodec/mpegvideo_enc.c s->block= s->blocks[*next_block]; s 2658 libavcodec/mpegvideo_enc.c s->pb= pb[*next_block]; s 2659 libavcodec/mpegvideo_enc.c if(s->data_partitioning){ s 2660 libavcodec/mpegvideo_enc.c s->pb2 = pb2 [*next_block]; s 2661 libavcodec/mpegvideo_enc.c s->tex_pb= tex_pb[*next_block]; s 2665 libavcodec/mpegvideo_enc.c memcpy(dest_backup, s->dest, sizeof(s->dest)); s 2666 libavcodec/mpegvideo_enc.c s->dest[0] = s->sc.rd_scratchpad; s 2667 libavcodec/mpegvideo_enc.c s->dest[1] = s->sc.rd_scratchpad + 16*s->linesize; s 2668 libavcodec/mpegvideo_enc.c s->dest[2] = s->sc.rd_scratchpad + 16*s->linesize + 8; s 2669 libavcodec/mpegvideo_enc.c av_assert0(s->linesize >= 32); //FIXME s 2672 libavcodec/mpegvideo_enc.c encode_mb(s, motion_x, motion_y); s 2674 libavcodec/mpegvideo_enc.c score= put_bits_count(&s->pb); s 2675 libavcodec/mpegvideo_enc.c if(s->data_partitioning){ s 2676 libavcodec/mpegvideo_enc.c score+= put_bits_count(&s->pb2); s 2677 libavcodec/mpegvideo_enc.c score+= put_bits_count(&s->tex_pb); s 2680 libavcodec/mpegvideo_enc.c if(s->avctx->mb_decision == FF_MB_DECISION_RD){ s 2681 libavcodec/mpegvideo_enc.c ff_mpv_reconstruct_mb(s, s->block); s 2683 libavcodec/mpegvideo_enc.c score *= s->lambda2; s 2684 libavcodec/mpegvideo_enc.c score += sse_mb(s) << FF_LAMBDA_SHIFT; s 2688 libavcodec/mpegvideo_enc.c memcpy(s->dest, dest_backup, sizeof(s->dest)); s 2695 libavcodec/mpegvideo_enc.c copy_context_after_encode(best, s, type); s 2699 libavcodec/mpegvideo_enc.c static int sse(MpegEncContext *s, uint8_t *src1, uint8_t *src2, int w, int h, int stride){ s 2705 libavcodec/mpegvideo_enc.c return s->mecc.sse[0](NULL, src1, src2, stride, 16); s 2707 libavcodec/mpegvideo_enc.c return s->mecc.sse[1](NULL, src1, src2, stride, 8); s 2720 libavcodec/mpegvideo_enc.c static int sse_mb(MpegEncContext *s){ s 2724 libavcodec/mpegvideo_enc.c if(s->mb_x*16 + 16 > s->width ) w= s->width - s->mb_x*16; s 2725 libavcodec/mpegvideo_enc.c if(s->mb_y*16 + 16 > s->height) h= s->height- s->mb_y*16; s 2728 libavcodec/mpegvideo_enc.c if(s->avctx->mb_cmp == FF_CMP_NSSE){ s 2729 libavcodec/mpegvideo_enc.c return s->mecc.nsse[0](s, s->new_picture.f->data[0] + s->mb_x * 16 + s->mb_y * s->linesize * 16, s->dest[0], s->linesize, 16) + s 2730 libavcodec/mpegvideo_enc.c s->mecc.nsse[1](s, s->new_picture.f->data[1] + s->mb_x * 8 + s->mb_y * s->uvlinesize * 8, s->dest[1], s->uvlinesize, 8) + s 2731 libavcodec/mpegvideo_enc.c s->mecc.nsse[1](s, s->new_picture.f->data[2] + s->mb_x * 8 + s->mb_y * s->uvlinesize * 8, s->dest[2], s->uvlinesize, 8); s 2733 libavcodec/mpegvideo_enc.c return s->mecc.sse[0](NULL, s->new_picture.f->data[0] + s->mb_x * 16 + s->mb_y * s->linesize * 16, s->dest[0], s->linesize, 16) + s 2734 libavcodec/mpegvideo_enc.c s->mecc.sse[1](NULL, s->new_picture.f->data[1] + s->mb_x * 8 + s->mb_y * s->uvlinesize * 8, s->dest[1], s->uvlinesize, 8) + s 2735 libavcodec/mpegvideo_enc.c s->mecc.sse[1](NULL, s->new_picture.f->data[2] + s->mb_x * 8 + s->mb_y * s->uvlinesize * 8, s->dest[2], s->uvlinesize, 8); s 2738 libavcodec/mpegvideo_enc.c return sse(s, s->new_picture.f->data[0] + s->mb_x*16 + s->mb_y*s->linesize*16, s->dest[0], w, h, s->linesize) s 2739 libavcodec/mpegvideo_enc.c +sse(s, s->new_picture.f->data[1] + s->mb_x*8 + s->mb_y*s->uvlinesize*8,s->dest[1], w>>1, h>>1, s->uvlinesize) s 2740 libavcodec/mpegvideo_enc.c +sse(s, s->new_picture.f->data[2] + s->mb_x*8 + s->mb_y*s->uvlinesize*8,s->dest[2], w>>1, h>>1, s->uvlinesize); s 2744 libavcodec/mpegvideo_enc.c MpegEncContext *s= *(void**)arg; s 2747 libavcodec/mpegvideo_enc.c s->me.pre_pass=1; s 2748 libavcodec/mpegvideo_enc.c s->me.dia_size= s->avctx->pre_dia_size; s 2749 libavcodec/mpegvideo_enc.c s->first_slice_line=1; s 2750 libavcodec/mpegvideo_enc.c for(s->mb_y= s->end_mb_y-1; s->mb_y >= s->start_mb_y; s->mb_y--) { s 2751 libavcodec/mpegvideo_enc.c for(s->mb_x=s->mb_width-1; s->mb_x >=0 ;s->mb_x--) { s 2752 libavcodec/mpegvideo_enc.c ff_pre_estimate_p_frame_motion(s, s->mb_x, s->mb_y); s 2754 libavcodec/mpegvideo_enc.c s->first_slice_line=0; s 2757 libavcodec/mpegvideo_enc.c s->me.pre_pass=0; s 2763 libavcodec/mpegvideo_enc.c MpegEncContext *s= *(void**)arg; s 2767 libavcodec/mpegvideo_enc.c s->me.dia_size= s->avctx->dia_size; s 2768 libavcodec/mpegvideo_enc.c s->first_slice_line=1; s 2769 libavcodec/mpegvideo_enc.c for(s->mb_y= s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) { s 2770 libavcodec/mpegvideo_enc.c s->mb_x=0; //for block init below s 2771 libavcodec/mpegvideo_enc.c ff_init_block_index(s); s 2772 libavcodec/mpegvideo_enc.c for(s->mb_x=0; s->mb_x < s->mb_width; s->mb_x++) { s 2773 libavcodec/mpegvideo_enc.c s->block_index[0]+=2; s 2774 libavcodec/mpegvideo_enc.c s->block_index[1]+=2; s 2775 libavcodec/mpegvideo_enc.c s->block_index[2]+=2; s 2776 libavcodec/mpegvideo_enc.c s->block_index[3]+=2; s 2779 libavcodec/mpegvideo_enc.c if(s->pict_type==AV_PICTURE_TYPE_B) s 2780 libavcodec/mpegvideo_enc.c ff_estimate_b_frame_motion(s, s->mb_x, s->mb_y); s 2782 libavcodec/mpegvideo_enc.c ff_estimate_p_frame_motion(s, s->mb_x, s->mb_y); s 2784 libavcodec/mpegvideo_enc.c s->first_slice_line=0; s 2790 libavcodec/mpegvideo_enc.c MpegEncContext *s= *(void**)arg; s 2795 libavcodec/mpegvideo_enc.c for(mb_y=s->start_mb_y; mb_y < s->end_mb_y; mb_y++) { s 2796 libavcodec/mpegvideo_enc.c for(mb_x=0; mb_x < s->mb_width; mb_x++) { s 2799 libavcodec/mpegvideo_enc.c uint8_t *pix = s->new_picture.f->data[0] + (yy * s->linesize) + xx; s 2801 libavcodec/mpegvideo_enc.c int sum = s->mpvencdsp.pix_sum(pix, s->linesize); s 2803 libavcodec/mpegvideo_enc.c varc = (s->mpvencdsp.pix_norm1(pix, s->linesize) - s 2806 libavcodec/mpegvideo_enc.c s->current_picture.mb_var [s->mb_stride * mb_y + mb_x] = varc; s 2807 libavcodec/mpegvideo_enc.c s->current_picture.mb_mean[s->mb_stride * mb_y + mb_x] = (sum+128)>>8; s 2808 libavcodec/mpegvideo_enc.c s->me.mb_var_sum_temp += varc; s 2814 libavcodec/mpegvideo_enc.c static void write_slice_end(MpegEncContext *s){ s 2815 libavcodec/mpegvideo_enc.c if(CONFIG_MPEG4_ENCODER && s->codec_id==AV_CODEC_ID_MPEG4){ s 2816 libavcodec/mpegvideo_enc.c if(s->partitioned_frame){ s 2817 libavcodec/mpegvideo_enc.c ff_mpeg4_merge_partitions(s); s 2820 libavcodec/mpegvideo_enc.c ff_mpeg4_stuffing(&s->pb); s 2821 libavcodec/mpegvideo_enc.c }else if(CONFIG_MJPEG_ENCODER && s->out_format == FMT_MJPEG){ s 2822 libavcodec/mpegvideo_enc.c ff_mjpeg_encode_stuffing(s); s 2825 libavcodec/mpegvideo_enc.c avpriv_align_put_bits(&s->pb); s 2826 libavcodec/mpegvideo_enc.c flush_put_bits(&s->pb); s 2828 libavcodec/mpegvideo_enc.c if ((s->avctx->flags & AV_CODEC_FLAG_PASS1) && !s->partitioned_frame) s 2829 libavcodec/mpegvideo_enc.c s->misc_bits+= get_bits_diff(s); s 2832 libavcodec/mpegvideo_enc.c static void write_mb_info(MpegEncContext *s) s 2834 libavcodec/mpegvideo_enc.c uint8_t *ptr = s->mb_info_ptr + s->mb_info_size - 12; s 2835 libavcodec/mpegvideo_enc.c int offset = put_bits_count(&s->pb); s 2836 libavcodec/mpegvideo_enc.c int mba = s->mb_x + s->mb_width * (s->mb_y % s->gob_index); s 2837 libavcodec/mpegvideo_enc.c int gobn = s->mb_y / s->gob_index; s 2840 libavcodec/mpegvideo_enc.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 2842 libavcodec/mpegvideo_enc.c bytestream_put_byte(&ptr, s->qscale); s 2852 libavcodec/mpegvideo_enc.c static void update_mb_info(MpegEncContext *s, int startcode) s 2854 libavcodec/mpegvideo_enc.c if (!s->mb_info) s 2856 libavcodec/mpegvideo_enc.c if (put_bits_count(&s->pb) - s->prev_mb_info*8 >= s->mb_info*8) { s 2857 libavcodec/mpegvideo_enc.c s->mb_info_size += 12; s 2858 libavcodec/mpegvideo_enc.c s->prev_mb_info = s->last_mb_info; s 2861 libavcodec/mpegvideo_enc.c s->prev_mb_info = put_bits_count(&s->pb)/8; s 2869 libavcodec/mpegvideo_enc.c s->last_mb_info = put_bits_count(&s->pb)/8; s 2870 libavcodec/mpegvideo_enc.c if (!s->mb_info_size) s 2871 libavcodec/mpegvideo_enc.c s->mb_info_size += 12; s 2872 libavcodec/mpegvideo_enc.c write_mb_info(s); s 2875 libavcodec/mpegvideo_enc.c int ff_mpv_reallocate_putbitbuffer(MpegEncContext *s, size_t threshold, size_t size_increase) s 2877 libavcodec/mpegvideo_enc.c if ( s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb)>>3) < threshold s 2878 libavcodec/mpegvideo_enc.c && s->slice_context_count == 1 s 2879 libavcodec/mpegvideo_enc.c && s->pb.buf == s->avctx->internal->byte_buffer) { s 2880 libavcodec/mpegvideo_enc.c int lastgob_pos = s->ptr_lastgob - s->pb.buf; s 2881 libavcodec/mpegvideo_enc.c int vbv_pos = s->vbv_delay_ptr - s->pb.buf; s 2886 libavcodec/mpegvideo_enc.c if ((s->avctx->internal->byte_buffer_size + size_increase) >= INT_MAX/8) { s 2887 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_ERROR, "Cannot reallocate putbit buffer\n"); s 2894 libavcodec/mpegvideo_enc.c s->avctx->internal->byte_buffer_size + size_increase); s 2898 libavcodec/mpegvideo_enc.c memcpy(new_buffer, s->avctx->internal->byte_buffer, s->avctx->internal->byte_buffer_size); s 2899 libavcodec/mpegvideo_enc.c av_free(s->avctx->internal->byte_buffer); s 2900 libavcodec/mpegvideo_enc.c s->avctx->internal->byte_buffer = new_buffer; s 2901 libavcodec/mpegvideo_enc.c s->avctx->internal->byte_buffer_size = new_buffer_size; s 2902 libavcodec/mpegvideo_enc.c rebase_put_bits(&s->pb, new_buffer, new_buffer_size); s 2903 libavcodec/mpegvideo_enc.c s->ptr_lastgob = s->pb.buf + lastgob_pos; s 2904 libavcodec/mpegvideo_enc.c s->vbv_delay_ptr = s->pb.buf + vbv_pos; s 2906 libavcodec/mpegvideo_enc.c if (s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb)>>3) < threshold) s 2912 libavcodec/mpegvideo_enc.c MpegEncContext *s= *(void**)arg; s 2914 libavcodec/mpegvideo_enc.c int chr_h= 16>>s->chroma_y_shift; s 2930 libavcodec/mpegvideo_enc.c s->last_bits= put_bits_count(&s->pb); s 2931 libavcodec/mpegvideo_enc.c s->mv_bits=0; s 2932 libavcodec/mpegvideo_enc.c s->misc_bits=0; s 2933 libavcodec/mpegvideo_enc.c s->i_tex_bits=0; s 2934 libavcodec/mpegvideo_enc.c s->p_tex_bits=0; s 2935 libavcodec/mpegvideo_enc.c s->i_count=0; s 2936 libavcodec/mpegvideo_enc.c s->f_count=0; s 2937 libavcodec/mpegvideo_enc.c s->b_count=0; s 2938 libavcodec/mpegvideo_enc.c s->skip_count=0; s 2943 libavcodec/mpegvideo_enc.c s->last_dc[i] = 128 << s->intra_dc_precision; s 2945 libavcodec/mpegvideo_enc.c s->current_picture.encoding_error[i] = 0; s 2947 libavcodec/mpegvideo_enc.c if(s->codec_id==AV_CODEC_ID_AMV){ s 2948 libavcodec/mpegvideo_enc.c s->last_dc[0] = 128*8/13; s 2949 libavcodec/mpegvideo_enc.c s->last_dc[1] = 128*8/14; s 2950 libavcodec/mpegvideo_enc.c s->last_dc[2] = 128*8/14; s 2952 libavcodec/mpegvideo_enc.c s->mb_skip_run = 0; s 2953 libavcodec/mpegvideo_enc.c memset(s->last_mv, 0, sizeof(s->last_mv)); s 2955 libavcodec/mpegvideo_enc.c s->last_mv_dir = 0; s 2957 libavcodec/mpegvideo_enc.c switch(s->codec_id){ s 2962 libavcodec/mpegvideo_enc.c s->gob_index = H263_GOB_HEIGHT(s->height); s 2965 libavcodec/mpegvideo_enc.c if(CONFIG_MPEG4_ENCODER && s->partitioned_frame) s 2966 libavcodec/mpegvideo_enc.c ff_mpeg4_init_partitions(s); s 2970 libavcodec/mpegvideo_enc.c s->resync_mb_x=0; s 2971 libavcodec/mpegvideo_enc.c s->resync_mb_y=0; s 2972 libavcodec/mpegvideo_enc.c s->first_slice_line = 1; s 2973 libavcodec/mpegvideo_enc.c s->ptr_lastgob = s->pb.buf; s 2974 libavcodec/mpegvideo_enc.c for(mb_y= s->start_mb_y; mb_y < s->end_mb_y; mb_y++) { s 2975 libavcodec/mpegvideo_enc.c s->mb_x=0; s 2976 libavcodec/mpegvideo_enc.c s->mb_y= mb_y; s 2978 libavcodec/mpegvideo_enc.c ff_set_qscale(s, s->qscale); s 2979 libavcodec/mpegvideo_enc.c ff_init_block_index(s); s 2981 libavcodec/mpegvideo_enc.c for(mb_x=0; mb_x < s->mb_width; mb_x++) { s 2982 libavcodec/mpegvideo_enc.c int xy= mb_y*s->mb_stride + mb_x; // removed const, H261 needs to adjust this s 2983 libavcodec/mpegvideo_enc.c int mb_type= s->mb_type[xy]; s 2987 libavcodec/mpegvideo_enc.c int size_increase = s->avctx->internal->byte_buffer_size/4 s 2988 libavcodec/mpegvideo_enc.c + s->mb_width*MAX_MB_BYTES; s 2990 libavcodec/mpegvideo_enc.c ff_mpv_reallocate_putbitbuffer(s, MAX_MB_BYTES, size_increase); s 2991 libavcodec/mpegvideo_enc.c if(s->pb.buf_end - s->pb.buf - (put_bits_count(&s->pb)>>3) < MAX_MB_BYTES){ s 2992 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 2995 libavcodec/mpegvideo_enc.c if(s->data_partitioning){ s 2996 libavcodec/mpegvideo_enc.c if( s->pb2 .buf_end - s->pb2 .buf - (put_bits_count(&s-> pb2)>>3) < MAX_MB_BYTES s 2997 libavcodec/mpegvideo_enc.c || s->tex_pb.buf_end - s->tex_pb.buf - (put_bits_count(&s->tex_pb )>>3) < MAX_MB_BYTES){ s 2998 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_ERROR, "encoded partitioned frame too large\n"); s 3003 libavcodec/mpegvideo_enc.c s->mb_x = mb_x; s 3004 libavcodec/mpegvideo_enc.c s->mb_y = mb_y; // moved into loop, can get changed by H.261 s 3005 libavcodec/mpegvideo_enc.c ff_update_block_index(s); s 3007 libavcodec/mpegvideo_enc.c if(CONFIG_H261_ENCODER && s->codec_id == AV_CODEC_ID_H261){ s 3008 libavcodec/mpegvideo_enc.c ff_h261_reorder_mb_index(s); s 3009 libavcodec/mpegvideo_enc.c xy= s->mb_y*s->mb_stride + s->mb_x; s 3010 libavcodec/mpegvideo_enc.c mb_type= s->mb_type[xy]; s 3014 libavcodec/mpegvideo_enc.c if(s->rtp_mode){ s 3017 libavcodec/mpegvideo_enc.c current_packet_size= ((put_bits_count(&s->pb)+7)>>3) - (s->ptr_lastgob - s->pb.buf); s 3019 libavcodec/mpegvideo_enc.c is_gob_start = s->rtp_payload_size && s 3020 libavcodec/mpegvideo_enc.c current_packet_size >= s->rtp_payload_size && s 3023 libavcodec/mpegvideo_enc.c if(s->start_mb_y == mb_y && mb_y > 0 && mb_x==0) is_gob_start=1; s 3025 libavcodec/mpegvideo_enc.c switch(s->codec_id){ s 3028 libavcodec/mpegvideo_enc.c if(!s->h263_slice_structured) s 3029 libavcodec/mpegvideo_enc.c if(s->mb_x || s->mb_y%s->gob_index) is_gob_start=0; s 3032 libavcodec/mpegvideo_enc.c if(s->mb_x==0 && s->mb_y!=0) is_gob_start=1; s 3034 libavcodec/mpegvideo_enc.c if(s->mb_skip_run) is_gob_start=0; s 3037 libavcodec/mpegvideo_enc.c if(s->mb_x==0 && s->mb_y!=0) is_gob_start=1; s 3042 libavcodec/mpegvideo_enc.c if(s->start_mb_y != mb_y || mb_x!=0){ s 3043 libavcodec/mpegvideo_enc.c write_slice_end(s); s 3045 libavcodec/mpegvideo_enc.c if(CONFIG_MPEG4_ENCODER && s->codec_id==AV_CODEC_ID_MPEG4 && s->partitioned_frame){ s 3046 libavcodec/mpegvideo_enc.c ff_mpeg4_init_partitions(s); s 3050 libavcodec/mpegvideo_enc.c av_assert2((put_bits_count(&s->pb)&7) == 0); s 3051 libavcodec/mpegvideo_enc.c current_packet_size= put_bits_ptr(&s->pb) - s->ptr_lastgob; s 3053 libavcodec/mpegvideo_enc.c if (s->error_rate && s->resync_mb_x + s->resync_mb_y > 0) { s 3054 libavcodec/mpegvideo_enc.c int r= put_bits_count(&s->pb)/8 + s->picture_number + 16 + s->mb_x + s->mb_y; s 3055 libavcodec/mpegvideo_enc.c int d = 100 / s->error_rate; s 3058 libavcodec/mpegvideo_enc.c s->pb.buf_ptr= s->ptr_lastgob; s 3059 libavcodec/mpegvideo_enc.c av_assert1(put_bits_ptr(&s->pb) == s->ptr_lastgob); s 3065 libavcodec/mpegvideo_enc.c if (s->avctx->rtp_callback){ s 3066 libavcodec/mpegvideo_enc.c int number_mb = (mb_y - s->resync_mb_y)*s->mb_width + mb_x - s->resync_mb_x; s 3067 libavcodec/mpegvideo_enc.c s->avctx->rtp_callback(s->avctx, s->ptr_lastgob, current_packet_size, number_mb); s 3071 libavcodec/mpegvideo_enc.c update_mb_info(s, 1); s 3073 libavcodec/mpegvideo_enc.c switch(s->codec_id){ s 3076 libavcodec/mpegvideo_enc.c ff_mpeg4_encode_video_packet_header(s); s 3077 libavcodec/mpegvideo_enc.c ff_mpeg4_clean_buffers(s); s 3083 libavcodec/mpegvideo_enc.c ff_mpeg1_encode_slice_header(s); s 3084 libavcodec/mpegvideo_enc.c ff_mpeg1_clean_buffers(s); s 3090 libavcodec/mpegvideo_enc.c ff_h263_encode_gob_header(s, mb_y); s 3094 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_PASS1) { s 3095 libavcodec/mpegvideo_enc.c int bits= put_bits_count(&s->pb); s 3096 libavcodec/mpegvideo_enc.c s->misc_bits+= bits - s->last_bits; s 3097 libavcodec/mpegvideo_enc.c s->last_bits= bits; s 3100 libavcodec/mpegvideo_enc.c s->ptr_lastgob += current_packet_size; s 3101 libavcodec/mpegvideo_enc.c s->first_slice_line=1; s 3102 libavcodec/mpegvideo_enc.c s->resync_mb_x=mb_x; s 3103 libavcodec/mpegvideo_enc.c s->resync_mb_y=mb_y; s 3107 libavcodec/mpegvideo_enc.c if( (s->resync_mb_x == s->mb_x) s 3108 libavcodec/mpegvideo_enc.c && s->resync_mb_y+1 == s->mb_y){ s 3109 libavcodec/mpegvideo_enc.c s->first_slice_line=0; s 3112 libavcodec/mpegvideo_enc.c s->mb_skipped=0; s 3113 libavcodec/mpegvideo_enc.c s->dquant=0; //only for QP_RD s 3115 libavcodec/mpegvideo_enc.c update_mb_info(s, 0); s 3117 libavcodec/mpegvideo_enc.c if (mb_type & (mb_type-1) || (s->mpv_flags & FF_MPV_FLAG_QP_RD)) { // more than 1 MB type possible or FF_MPV_FLAG_QP_RD s 3121 libavcodec/mpegvideo_enc.c copy_context_before_encode(&backup_s, s, -1); s 3122 libavcodec/mpegvideo_enc.c backup_s.pb= s->pb; s 3123 libavcodec/mpegvideo_enc.c best_s.data_partitioning= s->data_partitioning; s 3124 libavcodec/mpegvideo_enc.c best_s.partitioned_frame= s->partitioned_frame; s 3125 libavcodec/mpegvideo_enc.c if(s->data_partitioning){ s 3126 libavcodec/mpegvideo_enc.c backup_s.pb2= s->pb2; s 3127 libavcodec/mpegvideo_enc.c backup_s.tex_pb= s->tex_pb; s 3131 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3132 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_16X16; s 3133 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3134 libavcodec/mpegvideo_enc.c s->mv[0][0][0] = s->p_mv_table[xy][0]; s 3135 libavcodec/mpegvideo_enc.c s->mv[0][0][1] = s->p_mv_table[xy][1]; s 3136 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_INTER, pb, pb2, tex_pb, s 3137 libavcodec/mpegvideo_enc.c &dmin, &next_block, s->mv[0][0][0], s->mv[0][0][1]); s 3140 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3141 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_FIELD; s 3142 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3144 libavcodec/mpegvideo_enc.c j= s->field_select[0][i] = s->p_field_select_table[i][xy]; s 3145 libavcodec/mpegvideo_enc.c s->mv[0][i][0] = s->p_field_mv_table[i][j][xy][0]; s 3146 libavcodec/mpegvideo_enc.c s->mv[0][i][1] = s->p_field_mv_table[i][j][xy][1]; s 3148 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_INTER_I, pb, pb2, tex_pb, s 3152 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3153 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_16X16; s 3154 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3155 libavcodec/mpegvideo_enc.c s->mv[0][0][0] = 0; s 3156 libavcodec/mpegvideo_enc.c s->mv[0][0][1] = 0; s 3157 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_SKIPPED, pb, pb2, tex_pb, s 3158 libavcodec/mpegvideo_enc.c &dmin, &next_block, s->mv[0][0][0], s->mv[0][0][1]); s 3161 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3162 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_8X8; s 3163 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3165 libavcodec/mpegvideo_enc.c s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0]; s 3166 libavcodec/mpegvideo_enc.c s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1]; s 3168 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_INTER4V, pb, pb2, tex_pb, s 3172 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3173 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_16X16; s 3174 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3175 libavcodec/mpegvideo_enc.c s->mv[0][0][0] = s->b_forw_mv_table[xy][0]; s 3176 libavcodec/mpegvideo_enc.c s->mv[0][0][1] = s->b_forw_mv_table[xy][1]; s 3177 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_FORWARD, pb, pb2, tex_pb, s 3178 libavcodec/mpegvideo_enc.c &dmin, &next_block, s->mv[0][0][0], s->mv[0][0][1]); s 3181 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_BACKWARD; s 3182 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_16X16; s 3183 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3184 libavcodec/mpegvideo_enc.c s->mv[1][0][0] = s->b_back_mv_table[xy][0]; s 3185 libavcodec/mpegvideo_enc.c s->mv[1][0][1] = s->b_back_mv_table[xy][1]; s 3186 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_BACKWARD, pb, pb2, tex_pb, s 3187 libavcodec/mpegvideo_enc.c &dmin, &next_block, s->mv[1][0][0], s->mv[1][0][1]); s 3190 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD; s 3191 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_16X16; s 3192 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3193 libavcodec/mpegvideo_enc.c s->mv[0][0][0] = s->b_bidir_forw_mv_table[xy][0]; s 3194 libavcodec/mpegvideo_enc.c s->mv[0][0][1] = s->b_bidir_forw_mv_table[xy][1]; s 3195 libavcodec/mpegvideo_enc.c s->mv[1][0][0] = s->b_bidir_back_mv_table[xy][0]; s 3196 libavcodec/mpegvideo_enc.c s->mv[1][0][1] = s->b_bidir_back_mv_table[xy][1]; s 3197 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_BIDIR, pb, pb2, tex_pb, s 3201 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3202 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_FIELD; s 3203 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3205 libavcodec/mpegvideo_enc.c j= s->field_select[0][i] = s->b_field_select_table[0][i][xy]; s 3206 libavcodec/mpegvideo_enc.c s->mv[0][i][0] = s->b_field_mv_table[0][i][j][xy][0]; s 3207 libavcodec/mpegvideo_enc.c s->mv[0][i][1] = s->b_field_mv_table[0][i][j][xy][1]; s 3209 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_FORWARD_I, pb, pb2, tex_pb, s 3213 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_BACKWARD; s 3214 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_FIELD; s 3215 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3217 libavcodec/mpegvideo_enc.c j= s->field_select[1][i] = s->b_field_select_table[1][i][xy]; s 3218 libavcodec/mpegvideo_enc.c s->mv[1][i][0] = s->b_field_mv_table[1][i][j][xy][0]; s 3219 libavcodec/mpegvideo_enc.c s->mv[1][i][1] = s->b_field_mv_table[1][i][j][xy][1]; s 3221 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_BACKWARD_I, pb, pb2, tex_pb, s 3225 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD; s 3226 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_FIELD; s 3227 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3230 libavcodec/mpegvideo_enc.c j= s->field_select[dir][i] = s->b_field_select_table[dir][i][xy]; s 3231 libavcodec/mpegvideo_enc.c s->mv[dir][i][0] = s->b_field_mv_table[dir][i][j][xy][0]; s 3232 libavcodec/mpegvideo_enc.c s->mv[dir][i][1] = s->b_field_mv_table[dir][i][j][xy][1]; s 3235 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_BIDIR_I, pb, pb2, tex_pb, s 3239 libavcodec/mpegvideo_enc.c s->mv_dir = 0; s 3240 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_16X16; s 3241 libavcodec/mpegvideo_enc.c s->mb_intra= 1; s 3242 libavcodec/mpegvideo_enc.c s->mv[0][0][0] = 0; s 3243 libavcodec/mpegvideo_enc.c s->mv[0][0][1] = 0; s 3244 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_INTRA, pb, pb2, tex_pb, s 3246 libavcodec/mpegvideo_enc.c if(s->h263_pred || s->h263_aic){ s 3248 libavcodec/mpegvideo_enc.c s->mbintra_table[mb_x + mb_y*s->mb_stride]=1; s 3250 libavcodec/mpegvideo_enc.c ff_clean_intra_table_entries(s); //old mode? s 3254 libavcodec/mpegvideo_enc.c if ((s->mpv_flags & FF_MPV_FLAG_QP_RD) && dmin < INT_MAX) { s 3261 libavcodec/mpegvideo_enc.c int storecoefs = s->mb_intra && s->dc_val[0]; s 3266 libavcodec/mpegvideo_enc.c s->mv_dir= best_s.mv_dir; s 3267 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_16X16; s 3268 libavcodec/mpegvideo_enc.c s->mb_intra= best_s.mb_intra; s 3269 libavcodec/mpegvideo_enc.c s->mv[0][0][0] = best_s.mv[0][0][0]; s 3270 libavcodec/mpegvideo_enc.c s->mv[0][0][1] = best_s.mv[0][0][1]; s 3271 libavcodec/mpegvideo_enc.c s->mv[1][0][0] = best_s.mv[1][0][0]; s 3272 libavcodec/mpegvideo_enc.c s->mv[1][0][1] = best_s.mv[1][0][1]; s 3274 libavcodec/mpegvideo_enc.c qpi = s->pict_type == AV_PICTURE_TYPE_B ? 2 : 0; s 3278 libavcodec/mpegvideo_enc.c if(qp < s->avctx->qmin || qp > s->avctx->qmax) s 3283 libavcodec/mpegvideo_enc.c dc[i]= s->dc_val[0][ s->block_index[i] ]; s 3284 libavcodec/mpegvideo_enc.c memcpy(ac[i], s->ac_val[0][s->block_index[i]], sizeof(int16_t)*16); s 3288 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_INTER /* wrong but unused */, pb, pb2, tex_pb, s 3289 libavcodec/mpegvideo_enc.c &dmin, &next_block, s->mv[mvdir][0][0], s->mv[mvdir][0][1]); s 3293 libavcodec/mpegvideo_enc.c s->dc_val[0][ s->block_index[i] ]= dc[i]; s 3294 libavcodec/mpegvideo_enc.c memcpy(s->ac_val[0][s->block_index[i]], ac[i], sizeof(int16_t)*16); s 3302 libavcodec/mpegvideo_enc.c int mx= s->b_direct_mv_table[xy][0]; s 3303 libavcodec/mpegvideo_enc.c int my= s->b_direct_mv_table[xy][1]; s 3306 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; s 3307 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3308 libavcodec/mpegvideo_enc.c ff_mpeg4_set_direct_mv(s, mx, my); s 3309 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb, s 3314 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD | MV_DIRECT; s 3315 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3316 libavcodec/mpegvideo_enc.c ff_mpeg4_set_direct_mv(s, 0, 0); s 3317 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_DIRECT, pb, pb2, tex_pb, s 3320 libavcodec/mpegvideo_enc.c if (!best_s.mb_intra && s->mpv_flags & FF_MPV_FLAG_SKIP_RD) { s 3323 libavcodec/mpegvideo_enc.c coded |= s->block_last_index[i]; s 3326 libavcodec/mpegvideo_enc.c memcpy(s->mv, best_s.mv, sizeof(s->mv)); s 3329 libavcodec/mpegvideo_enc.c ff_mpeg4_set_direct_mv(s, mx, my); s 3331 libavcodec/mpegvideo_enc.c mx= s->mv[1][0][0]; s 3332 libavcodec/mpegvideo_enc.c my= s->mv[1][0][1]; s 3334 libavcodec/mpegvideo_enc.c mx= s->mv[0][0][0]; s 3335 libavcodec/mpegvideo_enc.c my= s->mv[0][0][1]; s 3338 libavcodec/mpegvideo_enc.c s->mv_dir= best_s.mv_dir; s 3339 libavcodec/mpegvideo_enc.c s->mv_type = best_s.mv_type; s 3340 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3346 libavcodec/mpegvideo_enc.c s->skipdct=1; s 3347 libavcodec/mpegvideo_enc.c encode_mb_hq(s, &backup_s, &best_s, CANDIDATE_MB_TYPE_INTER /* wrong but unused */, pb, pb2, tex_pb, s 3349 libavcodec/mpegvideo_enc.c s->skipdct=0; s 3353 libavcodec/mpegvideo_enc.c s->current_picture.qscale_table[xy] = best_s.qscale; s 3355 libavcodec/mpegvideo_enc.c copy_context_after_encode(s, &best_s, -1); s 3357 libavcodec/mpegvideo_enc.c pb_bits_count= put_bits_count(&s->pb); s 3358 libavcodec/mpegvideo_enc.c flush_put_bits(&s->pb); s 3360 libavcodec/mpegvideo_enc.c s->pb= backup_s.pb; s 3362 libavcodec/mpegvideo_enc.c if(s->data_partitioning){ s 3363 libavcodec/mpegvideo_enc.c pb2_bits_count= put_bits_count(&s->pb2); s 3364 libavcodec/mpegvideo_enc.c flush_put_bits(&s->pb2); s 3366 libavcodec/mpegvideo_enc.c s->pb2= backup_s.pb2; s 3368 libavcodec/mpegvideo_enc.c tex_pb_bits_count= put_bits_count(&s->tex_pb); s 3369 libavcodec/mpegvideo_enc.c flush_put_bits(&s->tex_pb); s 3371 libavcodec/mpegvideo_enc.c s->tex_pb= backup_s.tex_pb; s 3373 libavcodec/mpegvideo_enc.c s->last_bits= put_bits_count(&s->pb); s 3376 libavcodec/mpegvideo_enc.c s->out_format == FMT_H263 && s->pict_type!=AV_PICTURE_TYPE_B) s 3377 libavcodec/mpegvideo_enc.c ff_h263_update_motion_val(s); s 3380 libavcodec/mpegvideo_enc.c s->hdsp.put_pixels_tab[0][0](s->dest[0], s->sc.rd_scratchpad , s->linesize ,16); s 3381 libavcodec/mpegvideo_enc.c s->hdsp.put_pixels_tab[1][0](s->dest[1], s->sc.rd_scratchpad + 16*s->linesize , s->uvlinesize, 8); s 3382 libavcodec/mpegvideo_enc.c s->hdsp.put_pixels_tab[1][0](s->dest[2], s->sc.rd_scratchpad + 16*s->linesize + 8, s->uvlinesize, 8); s 3385 libavcodec/mpegvideo_enc.c if(s->avctx->mb_decision == FF_MB_DECISION_BITS) s 3386 libavcodec/mpegvideo_enc.c ff_mpv_reconstruct_mb(s, s->block); s 3389 libavcodec/mpegvideo_enc.c s->mv_type=MV_TYPE_16X16; s 3394 libavcodec/mpegvideo_enc.c s->mv_dir = 0; s 3395 libavcodec/mpegvideo_enc.c s->mb_intra= 1; s 3396 libavcodec/mpegvideo_enc.c motion_x= s->mv[0][0][0] = 0; s 3397 libavcodec/mpegvideo_enc.c motion_y= s->mv[0][0][1] = 0; s 3400 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3401 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3402 libavcodec/mpegvideo_enc.c motion_x= s->mv[0][0][0] = s->p_mv_table[xy][0]; s 3403 libavcodec/mpegvideo_enc.c motion_y= s->mv[0][0][1] = s->p_mv_table[xy][1]; s 3406 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3407 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_FIELD; s 3408 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3410 libavcodec/mpegvideo_enc.c j= s->field_select[0][i] = s->p_field_select_table[i][xy]; s 3411 libavcodec/mpegvideo_enc.c s->mv[0][i][0] = s->p_field_mv_table[i][j][xy][0]; s 3412 libavcodec/mpegvideo_enc.c s->mv[0][i][1] = s->p_field_mv_table[i][j][xy][1]; s 3416 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3417 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_8X8; s 3418 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3420 libavcodec/mpegvideo_enc.c s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0]; s 3421 libavcodec/mpegvideo_enc.c s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1]; s 3426 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD|MV_DIR_BACKWARD|MV_DIRECT; s 3427 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3428 libavcodec/mpegvideo_enc.c motion_x=s->b_direct_mv_table[xy][0]; s 3429 libavcodec/mpegvideo_enc.c motion_y=s->b_direct_mv_table[xy][1]; s 3430 libavcodec/mpegvideo_enc.c ff_mpeg4_set_direct_mv(s, motion_x, motion_y); s 3435 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD|MV_DIR_BACKWARD|MV_DIRECT; s 3436 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3437 libavcodec/mpegvideo_enc.c ff_mpeg4_set_direct_mv(s, 0, 0); s 3441 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD; s 3442 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3443 libavcodec/mpegvideo_enc.c s->mv[0][0][0] = s->b_bidir_forw_mv_table[xy][0]; s 3444 libavcodec/mpegvideo_enc.c s->mv[0][0][1] = s->b_bidir_forw_mv_table[xy][1]; s 3445 libavcodec/mpegvideo_enc.c s->mv[1][0][0] = s->b_bidir_back_mv_table[xy][0]; s 3446 libavcodec/mpegvideo_enc.c s->mv[1][0][1] = s->b_bidir_back_mv_table[xy][1]; s 3449 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_BACKWARD; s 3450 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3451 libavcodec/mpegvideo_enc.c motion_x= s->mv[1][0][0] = s->b_back_mv_table[xy][0]; s 3452 libavcodec/mpegvideo_enc.c motion_y= s->mv[1][0][1] = s->b_back_mv_table[xy][1]; s 3455 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3456 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3457 libavcodec/mpegvideo_enc.c motion_x= s->mv[0][0][0] = s->b_forw_mv_table[xy][0]; s 3458 libavcodec/mpegvideo_enc.c motion_y= s->mv[0][0][1] = s->b_forw_mv_table[xy][1]; s 3461 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD; s 3462 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_FIELD; s 3463 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3465 libavcodec/mpegvideo_enc.c j= s->field_select[0][i] = s->b_field_select_table[0][i][xy]; s 3466 libavcodec/mpegvideo_enc.c s->mv[0][i][0] = s->b_field_mv_table[0][i][j][xy][0]; s 3467 libavcodec/mpegvideo_enc.c s->mv[0][i][1] = s->b_field_mv_table[0][i][j][xy][1]; s 3471 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_BACKWARD; s 3472 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_FIELD; s 3473 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3475 libavcodec/mpegvideo_enc.c j= s->field_select[1][i] = s->b_field_select_table[1][i][xy]; s 3476 libavcodec/mpegvideo_enc.c s->mv[1][i][0] = s->b_field_mv_table[1][i][j][xy][0]; s 3477 libavcodec/mpegvideo_enc.c s->mv[1][i][1] = s->b_field_mv_table[1][i][j][xy][1]; s 3481 libavcodec/mpegvideo_enc.c s->mv_dir = MV_DIR_FORWARD | MV_DIR_BACKWARD; s 3482 libavcodec/mpegvideo_enc.c s->mv_type = MV_TYPE_FIELD; s 3483 libavcodec/mpegvideo_enc.c s->mb_intra= 0; s 3486 libavcodec/mpegvideo_enc.c j= s->field_select[dir][i] = s->b_field_select_table[dir][i][xy]; s 3487 libavcodec/mpegvideo_enc.c s->mv[dir][i][0] = s->b_field_mv_table[dir][i][j][xy][0]; s 3488 libavcodec/mpegvideo_enc.c s->mv[dir][i][1] = s->b_field_mv_table[dir][i][j][xy][1]; s 3493 libavcodec/mpegvideo_enc.c av_log(s->avctx, AV_LOG_ERROR, "illegal MB type\n"); s 3496 libavcodec/mpegvideo_enc.c encode_mb(s, motion_x, motion_y); s 3499 libavcodec/mpegvideo_enc.c s->last_mv_dir = s->mv_dir; s 3502 libavcodec/mpegvideo_enc.c s->out_format == FMT_H263 && s->pict_type!=AV_PICTURE_TYPE_B) s 3503 libavcodec/mpegvideo_enc.c ff_h263_update_motion_val(s); s 3505 libavcodec/mpegvideo_enc.c ff_mpv_reconstruct_mb(s, s->block); s 3509 libavcodec/mpegvideo_enc.c if(s->mb_intra /* && I,P,S_TYPE */){ s 3510 libavcodec/mpegvideo_enc.c s->p_mv_table[xy][0]=0; s 3511 libavcodec/mpegvideo_enc.c s->p_mv_table[xy][1]=0; s 3514 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_PSNR) { s 3518 libavcodec/mpegvideo_enc.c if(s->mb_x*16 + 16 > s->width ) w= s->width - s->mb_x*16; s 3519 libavcodec/mpegvideo_enc.c if(s->mb_y*16 + 16 > s->height) h= s->height- s->mb_y*16; s 3521 libavcodec/mpegvideo_enc.c s->current_picture.encoding_error[0] += sse( s 3522 libavcodec/mpegvideo_enc.c s, s->new_picture.f->data[0] + s->mb_x*16 + s->mb_y*s->linesize*16, s 3523 libavcodec/mpegvideo_enc.c s->dest[0], w, h, s->linesize); s 3524 libavcodec/mpegvideo_enc.c s->current_picture.encoding_error[1] += sse( s 3525 libavcodec/mpegvideo_enc.c s, s->new_picture.f->data[1] + s->mb_x*8 + s->mb_y*s->uvlinesize*chr_h, s 3526 libavcodec/mpegvideo_enc.c s->dest[1], w>>1, h>>s->chroma_y_shift, s->uvlinesize); s 3527 libavcodec/mpegvideo_enc.c s->current_picture.encoding_error[2] += sse( s 3528 libavcodec/mpegvideo_enc.c s, s->new_picture.f->data[2] + s->mb_x*8 + s->mb_y*s->uvlinesize*chr_h, s 3529 libavcodec/mpegvideo_enc.c s->dest[2], w>>1, h>>s->chroma_y_shift, s->uvlinesize); s 3531 libavcodec/mpegvideo_enc.c if(s->loop_filter){ s 3532 libavcodec/mpegvideo_enc.c if(CONFIG_H263_ENCODER && s->out_format == FMT_H263) s 3533 libavcodec/mpegvideo_enc.c ff_h263_loop_filter(s); s 3535 libavcodec/mpegvideo_enc.c ff_dlog(s->avctx, "MB %d %d bits\n", s 3536 libavcodec/mpegvideo_enc.c s->mb_x + s->mb_y * s->mb_stride, put_bits_count(&s->pb)); s 3541 libavcodec/mpegvideo_enc.c if (CONFIG_MSMPEG4_ENCODER && s->msmpeg4_version && s->msmpeg4_version<4 && s->pict_type == AV_PICTURE_TYPE_I) s 3542 libavcodec/mpegvideo_enc.c ff_msmpeg4_encode_ext_header(s); s 3544 libavcodec/mpegvideo_enc.c write_slice_end(s); s 3549 libavcodec/mpegvideo_enc.c if (s->avctx->rtp_callback) { s 3550 libavcodec/mpegvideo_enc.c int number_mb = (mb_y - s->resync_mb_y)*s->mb_width - s->resync_mb_x; s 3551 libavcodec/mpegvideo_enc.c int pdif = put_bits_ptr(&s->pb) - s->ptr_lastgob; s 3554 libavcodec/mpegvideo_enc.c s->avctx->rtp_callback(s->avctx, s->ptr_lastgob, pdif, number_mb); s 3601 libavcodec/mpegvideo_enc.c static int estimate_qp(MpegEncContext *s, int dry_run){ s 3602 libavcodec/mpegvideo_enc.c if (s->next_lambda){ s 3603 libavcodec/mpegvideo_enc.c s->current_picture_ptr->f->quality = s 3604 libavcodec/mpegvideo_enc.c s->current_picture.f->quality = s->next_lambda; s 3605 libavcodec/mpegvideo_enc.c if(!dry_run) s->next_lambda= 0; s 3606 libavcodec/mpegvideo_enc.c } else if (!s->fixed_qscale) { s 3607 libavcodec/mpegvideo_enc.c int quality = ff_rate_estimate_qscale(s, dry_run); s 3608 libavcodec/mpegvideo_enc.c s->current_picture_ptr->f->quality = s 3609 libavcodec/mpegvideo_enc.c s->current_picture.f->quality = quality; s 3610 libavcodec/mpegvideo_enc.c if (s->current_picture.f->quality < 0) s 3614 libavcodec/mpegvideo_enc.c if(s->adaptive_quant){ s 3615 libavcodec/mpegvideo_enc.c switch(s->codec_id){ s 3618 libavcodec/mpegvideo_enc.c ff_clean_mpeg4_qscales(s); s 3624 libavcodec/mpegvideo_enc.c ff_clean_h263_qscales(s); s 3627 libavcodec/mpegvideo_enc.c ff_init_qscale_tab(s); s 3630 libavcodec/mpegvideo_enc.c s->lambda= s->lambda_table[0]; s 3633 libavcodec/mpegvideo_enc.c s->lambda = s->current_picture.f->quality; s 3634 libavcodec/mpegvideo_enc.c update_qscale(s); s 3639 libavcodec/mpegvideo_enc.c static void set_frame_distances(MpegEncContext * s){ s 3640 libavcodec/mpegvideo_enc.c av_assert1(s->current_picture_ptr->f->pts != AV_NOPTS_VALUE); s 3641 libavcodec/mpegvideo_enc.c s->time = s->current_picture_ptr->f->pts * s->avctx->time_base.num; s 3643 libavcodec/mpegvideo_enc.c if(s->pict_type==AV_PICTURE_TYPE_B){ s 3644 libavcodec/mpegvideo_enc.c s->pb_time= s->pp_time - (s->last_non_b_time - s->time); s 3645 libavcodec/mpegvideo_enc.c av_assert1(s->pb_time > 0 && s->pb_time < s->pp_time); s 3647 libavcodec/mpegvideo_enc.c s->pp_time= s->time - s->last_non_b_time; s 3648 libavcodec/mpegvideo_enc.c s->last_non_b_time= s->time; s 3649 libavcodec/mpegvideo_enc.c av_assert1(s->picture_number==0 || s->pp_time > 0); s 3653 libavcodec/mpegvideo_enc.c static int encode_picture(MpegEncContext *s, int picture_number) s 3657 libavcodec/mpegvideo_enc.c int context_count = s->slice_context_count; s 3659 libavcodec/mpegvideo_enc.c s->picture_number = picture_number; s 3662 libavcodec/mpegvideo_enc.c s->me.mb_var_sum_temp = s 3663 libavcodec/mpegvideo_enc.c s->me.mc_mb_var_sum_temp = 0; s 3667 libavcodec/mpegvideo_enc.c if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO || s->codec_id == AV_CODEC_ID_MPEG2VIDEO || (s->h263_pred && !s->msmpeg4_version)) s 3668 libavcodec/mpegvideo_enc.c set_frame_distances(s); s 3669 libavcodec/mpegvideo_enc.c if(CONFIG_MPEG4_ENCODER && s->codec_id == AV_CODEC_ID_MPEG4) s 3670 libavcodec/mpegvideo_enc.c ff_set_mpeg4_time(s); s 3672 libavcodec/mpegvideo_enc.c s->me.scene_change_score=0; s 3676 libavcodec/mpegvideo_enc.c if(s->pict_type==AV_PICTURE_TYPE_I){ s 3677 libavcodec/mpegvideo_enc.c if(s->msmpeg4_version >= 3) s->no_rounding=1; s 3678 libavcodec/mpegvideo_enc.c else s->no_rounding=0; s 3679 libavcodec/mpegvideo_enc.c }else if(s->pict_type!=AV_PICTURE_TYPE_B){ s 3680 libavcodec/mpegvideo_enc.c if(s->flipflop_rounding || s->codec_id == AV_CODEC_ID_H263P || s->codec_id == AV_CODEC_ID_MPEG4) s 3681 libavcodec/mpegvideo_enc.c s->no_rounding ^= 1; s 3684 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_PASS2) { s 3685 libavcodec/mpegvideo_enc.c if (estimate_qp(s,1) < 0) s 3687 libavcodec/mpegvideo_enc.c ff_get_2pass_fcode(s); s 3688 libavcodec/mpegvideo_enc.c } else if (!(s->avctx->flags & AV_CODEC_FLAG_QSCALE)) { s 3689 libavcodec/mpegvideo_enc.c if(s->pict_type==AV_PICTURE_TYPE_B) s 3690 libavcodec/mpegvideo_enc.c s->lambda= s->last_lambda_for[s->pict_type]; s 3692 libavcodec/mpegvideo_enc.c s->lambda= s->last_lambda_for[s->last_non_b_pict_type]; s 3693 libavcodec/mpegvideo_enc.c update_qscale(s); s 3696 libavcodec/mpegvideo_enc.c if(s->codec_id != AV_CODEC_ID_AMV && s->codec_id != AV_CODEC_ID_MJPEG){ s 3697 libavcodec/mpegvideo_enc.c if(s->q_chroma_intra_matrix != s->q_intra_matrix ) av_freep(&s->q_chroma_intra_matrix); s 3698 libavcodec/mpegvideo_enc.c if(s->q_chroma_intra_matrix16 != s->q_intra_matrix16) av_freep(&s->q_chroma_intra_matrix16); s 3699 libavcodec/mpegvideo_enc.c s->q_chroma_intra_matrix = s->q_intra_matrix; s 3700 libavcodec/mpegvideo_enc.c s->q_chroma_intra_matrix16 = s->q_intra_matrix16; s 3703 libavcodec/mpegvideo_enc.c s->mb_intra=0; //for the rate distortion & bit compare functions s 3705 libavcodec/mpegvideo_enc.c ret = ff_update_duplicate_context(s->thread_context[i], s); s 3710 libavcodec/mpegvideo_enc.c if(ff_init_me(s)<0) s 3714 libavcodec/mpegvideo_enc.c if(s->pict_type != AV_PICTURE_TYPE_I){ s 3715 libavcodec/mpegvideo_enc.c s->lambda = (s->lambda * s->me_penalty_compensation + 128) >> 8; s 3716 libavcodec/mpegvideo_enc.c s->lambda2 = (s->lambda2 * (int64_t) s->me_penalty_compensation + 128) >> 8; s 3717 libavcodec/mpegvideo_enc.c if (s->pict_type != AV_PICTURE_TYPE_B) { s 3718 libavcodec/mpegvideo_enc.c if ((s->me_pre && s->last_non_b_pict_type == AV_PICTURE_TYPE_I) || s 3719 libavcodec/mpegvideo_enc.c s->me_pre == 2) { s 3720 libavcodec/mpegvideo_enc.c s->avctx->execute(s->avctx, pre_estimate_motion_thread, &s->thread_context[0], NULL, context_count, sizeof(void*)); s 3724 libavcodec/mpegvideo_enc.c s->avctx->execute(s->avctx, estimate_motion_thread, &s->thread_context[0], NULL, context_count, sizeof(void*)); s 3727 libavcodec/mpegvideo_enc.c for(i=0; i<s->mb_stride*s->mb_height; i++) s 3728 libavcodec/mpegvideo_enc.c s->mb_type[i]= CANDIDATE_MB_TYPE_INTRA; s 3730 libavcodec/mpegvideo_enc.c if(!s->fixed_qscale){ s 3732 libavcodec/mpegvideo_enc.c s->avctx->execute(s->avctx, mb_var_thread, &s->thread_context[0], NULL, context_count, sizeof(void*)); s 3736 libavcodec/mpegvideo_enc.c merge_context_after_me(s, s->thread_context[i]); s 3738 libavcodec/mpegvideo_enc.c s->current_picture.mc_mb_var_sum= s->current_picture_ptr->mc_mb_var_sum= s->me.mc_mb_var_sum_temp; s 3739 libavcodec/mpegvideo_enc.c s->current_picture. mb_var_sum= s->current_picture_ptr-> mb_var_sum= s->me. mb_var_sum_temp; s 3742 libavcodec/mpegvideo_enc.c if (s->me.scene_change_score > s->scenechange_threshold && s 3743 libavcodec/mpegvideo_enc.c s->pict_type == AV_PICTURE_TYPE_P) { s 3744 libavcodec/mpegvideo_enc.c s->pict_type= AV_PICTURE_TYPE_I; s 3745 libavcodec/mpegvideo_enc.c for(i=0; i<s->mb_stride*s->mb_height; i++) s 3746 libavcodec/mpegvideo_enc.c s->mb_type[i]= CANDIDATE_MB_TYPE_INTRA; s 3747 libavcodec/mpegvideo_enc.c if(s->msmpeg4_version >= 3) s 3748 libavcodec/mpegvideo_enc.c s->no_rounding=1; s 3749 libavcodec/mpegvideo_enc.c ff_dlog(s, "Scene change detected, encoding as I Frame %"PRId64" %"PRId64"\n", s 3750 libavcodec/mpegvideo_enc.c s->current_picture.mb_var_sum, s->current_picture.mc_mb_var_sum); s 3753 libavcodec/mpegvideo_enc.c if(!s->umvplus){ s 3754 libavcodec/mpegvideo_enc.c if(s->pict_type==AV_PICTURE_TYPE_P || s->pict_type==AV_PICTURE_TYPE_S) { s 3755 libavcodec/mpegvideo_enc.c s->f_code= ff_get_best_fcode(s, s->p_mv_table, CANDIDATE_MB_TYPE_INTER); s 3757 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) { s 3759 libavcodec/mpegvideo_enc.c a= ff_get_best_fcode(s, s->p_field_mv_table[0][0], CANDIDATE_MB_TYPE_INTER_I); //FIXME field_select s 3760 libavcodec/mpegvideo_enc.c b= ff_get_best_fcode(s, s->p_field_mv_table[1][1], CANDIDATE_MB_TYPE_INTER_I); s 3761 libavcodec/mpegvideo_enc.c s->f_code= FFMAX3(s->f_code, a, b); s 3764 libavcodec/mpegvideo_enc.c ff_fix_long_p_mvs(s, s->intra_penalty ? CANDIDATE_MB_TYPE_INTER : CANDIDATE_MB_TYPE_INTRA); s 3765 libavcodec/mpegvideo_enc.c ff_fix_long_mvs(s, NULL, 0, s->p_mv_table, s->f_code, CANDIDATE_MB_TYPE_INTER, !!s->intra_penalty); s 3766 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) { s 3770 libavcodec/mpegvideo_enc.c ff_fix_long_mvs(s, s->p_field_select_table[i], j, s 3771 libavcodec/mpegvideo_enc.c s->p_field_mv_table[i][j], s->f_code, CANDIDATE_MB_TYPE_INTER_I, !!s->intra_penalty); s 3776 libavcodec/mpegvideo_enc.c if(s->pict_type==AV_PICTURE_TYPE_B){ s 3779 libavcodec/mpegvideo_enc.c a = ff_get_best_fcode(s, s->b_forw_mv_table, CANDIDATE_MB_TYPE_FORWARD); s 3780 libavcodec/mpegvideo_enc.c b = ff_get_best_fcode(s, s->b_bidir_forw_mv_table, CANDIDATE_MB_TYPE_BIDIR); s 3781 libavcodec/mpegvideo_enc.c s->f_code = FFMAX(a, b); s 3783 libavcodec/mpegvideo_enc.c a = ff_get_best_fcode(s, s->b_back_mv_table, CANDIDATE_MB_TYPE_BACKWARD); s 3784 libavcodec/mpegvideo_enc.c b = ff_get_best_fcode(s, s->b_bidir_back_mv_table, CANDIDATE_MB_TYPE_BIDIR); s 3785 libavcodec/mpegvideo_enc.c s->b_code = FFMAX(a, b); s 3787 libavcodec/mpegvideo_enc.c ff_fix_long_mvs(s, NULL, 0, s->b_forw_mv_table, s->f_code, CANDIDATE_MB_TYPE_FORWARD, 1); s 3788 libavcodec/mpegvideo_enc.c ff_fix_long_mvs(s, NULL, 0, s->b_back_mv_table, s->b_code, CANDIDATE_MB_TYPE_BACKWARD, 1); s 3789 libavcodec/mpegvideo_enc.c ff_fix_long_mvs(s, NULL, 0, s->b_bidir_forw_mv_table, s->f_code, CANDIDATE_MB_TYPE_BIDIR, 1); s 3790 libavcodec/mpegvideo_enc.c ff_fix_long_mvs(s, NULL, 0, s->b_bidir_back_mv_table, s->b_code, CANDIDATE_MB_TYPE_BIDIR, 1); s 3791 libavcodec/mpegvideo_enc.c if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) { s 3798 libavcodec/mpegvideo_enc.c ff_fix_long_mvs(s, s->b_field_select_table[dir][i], j, s 3799 libavcodec/mpegvideo_enc.c s->b_field_mv_table[dir][i][j], dir ? s->b_code : s->f_code, type, 1); s 3807 libavcodec/mpegvideo_enc.c if (estimate_qp(s, 0) < 0) s 3810 libavcodec/mpegvideo_enc.c if (s->qscale < 3 && s->max_qcoeff <= 128 && s 3811 libavcodec/mpegvideo_enc.c s->pict_type == AV_PICTURE_TYPE_I && s 3812 libavcodec/mpegvideo_enc.c !(s->avctx->flags & AV_CODEC_FLAG_QSCALE)) s 3813 libavcodec/mpegvideo_enc.c s->qscale= 3; //reduce clipping problems s 3815 libavcodec/mpegvideo_enc.c if (s->out_format == FMT_MJPEG) { s 3819 libavcodec/mpegvideo_enc.c if (s->avctx->intra_matrix) { s 3821 libavcodec/mpegvideo_enc.c luma_matrix = s->avctx->intra_matrix; s 3823 libavcodec/mpegvideo_enc.c if (s->avctx->chroma_intra_matrix) s 3824 libavcodec/mpegvideo_enc.c chroma_matrix = s->avctx->chroma_intra_matrix; s 3828 libavcodec/mpegvideo_enc.c int j = s->idsp.idct_permutation[i]; s 3830 libavcodec/mpegvideo_enc.c s->chroma_intra_matrix[j] = av_clip_uint8((chroma_matrix[i] * s->qscale) >> 3); s 3831 libavcodec/mpegvideo_enc.c s-> intra_matrix[j] = av_clip_uint8(( luma_matrix[i] * s->qscale) >> 3); s 3833 libavcodec/mpegvideo_enc.c s->y_dc_scale_table= s 3834 libavcodec/mpegvideo_enc.c s->c_dc_scale_table= ff_mpeg2_dc_scale_table[s->intra_dc_precision]; s 3835 libavcodec/mpegvideo_enc.c s->chroma_intra_matrix[0] = s 3836 libavcodec/mpegvideo_enc.c s->intra_matrix[0] = ff_mpeg2_dc_scale_table[s->intra_dc_precision][8]; s 3837 libavcodec/mpegvideo_enc.c ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16, s 3838 libavcodec/mpegvideo_enc.c s->intra_matrix, s->intra_quant_bias, 8, 8, 1); s 3839 libavcodec/mpegvideo_enc.c ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16, s 3840 libavcodec/mpegvideo_enc.c s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1); s 3841 libavcodec/mpegvideo_enc.c s->qscale= 8; s 3843 libavcodec/mpegvideo_enc.c if(s->codec_id == AV_CODEC_ID_AMV){ s 3847 libavcodec/mpegvideo_enc.c int j= s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 3849 libavcodec/mpegvideo_enc.c s->intra_matrix[j] = sp5x_quant_table[5*2+0][i]; s 3850 libavcodec/mpegvideo_enc.c s->chroma_intra_matrix[j] = sp5x_quant_table[5*2+1][i]; s 3852 libavcodec/mpegvideo_enc.c s->y_dc_scale_table= y; s 3853 libavcodec/mpegvideo_enc.c s->c_dc_scale_table= c; s 3854 libavcodec/mpegvideo_enc.c s->intra_matrix[0] = 13; s 3855 libavcodec/mpegvideo_enc.c s->chroma_intra_matrix[0] = 14; s 3856 libavcodec/mpegvideo_enc.c ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16, s 3857 libavcodec/mpegvideo_enc.c s->intra_matrix, s->intra_quant_bias, 8, 8, 1); s 3858 libavcodec/mpegvideo_enc.c ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16, s 3859 libavcodec/mpegvideo_enc.c s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1); s 3860 libavcodec/mpegvideo_enc.c s->qscale= 8; s 3864 libavcodec/mpegvideo_enc.c s->current_picture_ptr->f->key_frame = s 3865 libavcodec/mpegvideo_enc.c s->current_picture.f->key_frame = s->pict_type == AV_PICTURE_TYPE_I; //FIXME pic_ptr s 3866 libavcodec/mpegvideo_enc.c s->current_picture_ptr->f->pict_type = s 3867 libavcodec/mpegvideo_enc.c s->current_picture.f->pict_type = s->pict_type; s 3869 libavcodec/mpegvideo_enc.c if (s->current_picture.f->key_frame) s 3870 libavcodec/mpegvideo_enc.c s->picture_in_gop_number=0; s 3872 libavcodec/mpegvideo_enc.c s->mb_x = s->mb_y = 0; s 3873 libavcodec/mpegvideo_enc.c s->last_bits= put_bits_count(&s->pb); s 3874 libavcodec/mpegvideo_enc.c switch(s->out_format) { s 3876 libavcodec/mpegvideo_enc.c if (CONFIG_MJPEG_ENCODER && s->huffman != HUFFMAN_TABLE_OPTIMAL) s 3877 libavcodec/mpegvideo_enc.c ff_mjpeg_encode_picture_header(s->avctx, &s->pb, &s->intra_scantable, s 3878 libavcodec/mpegvideo_enc.c s->pred, s->intra_matrix, s->chroma_intra_matrix); s 3882 libavcodec/mpegvideo_enc.c ff_h261_encode_picture_header(s, picture_number); s 3885 libavcodec/mpegvideo_enc.c if (CONFIG_WMV2_ENCODER && s->codec_id == AV_CODEC_ID_WMV2) s 3886 libavcodec/mpegvideo_enc.c ff_wmv2_encode_picture_header(s, picture_number); s 3887 libavcodec/mpegvideo_enc.c else if (CONFIG_MSMPEG4_ENCODER && s->msmpeg4_version) s 3888 libavcodec/mpegvideo_enc.c ff_msmpeg4_encode_picture_header(s, picture_number); s 3889 libavcodec/mpegvideo_enc.c else if (CONFIG_MPEG4_ENCODER && s->h263_pred) { s 3890 libavcodec/mpegvideo_enc.c ret = ff_mpeg4_encode_picture_header(s, picture_number); s 3893 libavcodec/mpegvideo_enc.c } else if (CONFIG_RV10_ENCODER && s->codec_id == AV_CODEC_ID_RV10) { s 3894 libavcodec/mpegvideo_enc.c ret = ff_rv10_encode_picture_header(s, picture_number); s 3898 libavcodec/mpegvideo_enc.c else if (CONFIG_RV20_ENCODER && s->codec_id == AV_CODEC_ID_RV20) s 3899 libavcodec/mpegvideo_enc.c ff_rv20_encode_picture_header(s, picture_number); s 3900 libavcodec/mpegvideo_enc.c else if (CONFIG_FLV_ENCODER && s->codec_id == AV_CODEC_ID_FLV1) s 3901 libavcodec/mpegvideo_enc.c ff_flv_encode_picture_header(s, picture_number); s 3903 libavcodec/mpegvideo_enc.c ff_h263_encode_picture_header(s, picture_number); s 3907 libavcodec/mpegvideo_enc.c ff_mpeg1_encode_picture_header(s, picture_number); s 3912 libavcodec/mpegvideo_enc.c bits= put_bits_count(&s->pb); s 3913 libavcodec/mpegvideo_enc.c s->header_bits= bits - s->last_bits; s 3916 libavcodec/mpegvideo_enc.c update_duplicate_context_after_me(s->thread_context[i], s); s 3918 libavcodec/mpegvideo_enc.c s->avctx->execute(s->avctx, encode_thread, &s->thread_context[0], NULL, context_count, sizeof(void*)); s 3920 libavcodec/mpegvideo_enc.c if (s->pb.buf_end == s->thread_context[i]->pb.buf) s 3921 libavcodec/mpegvideo_enc.c set_put_bits_buffer_size(&s->pb, FFMIN(s->thread_context[i]->pb.buf_end - s->pb.buf, INT_MAX/8-32)); s 3922 libavcodec/mpegvideo_enc.c merge_context_after_encode(s, s->thread_context[i]); s 3928 libavcodec/mpegvideo_enc.c static void denoise_dct_c(MpegEncContext *s, int16_t *block){ s 3929 libavcodec/mpegvideo_enc.c const int intra= s->mb_intra; s 3932 libavcodec/mpegvideo_enc.c s->dct_count[intra]++; s 3939 libavcodec/mpegvideo_enc.c s->dct_error_sum[intra][i] += level; s 3940 libavcodec/mpegvideo_enc.c level -= s->dct_offset[intra][i]; s 3943 libavcodec/mpegvideo_enc.c s->dct_error_sum[intra][i] -= level; s 3944 libavcodec/mpegvideo_enc.c level += s->dct_offset[intra][i]; s 3952 libavcodec/mpegvideo_enc.c static int dct_quantize_trellis_c(MpegEncContext *s, s 3974 libavcodec/mpegvideo_enc.c const int esc_length= s->ac_esc_length; s 3977 libavcodec/mpegvideo_enc.c const int lambda= s->lambda2 >> (FF_LAMBDA_SHIFT - 6); s 3980 libavcodec/mpegvideo_enc.c s->fdsp.fdct(block); s 3982 libavcodec/mpegvideo_enc.c if(s->dct_error_sum) s 3983 libavcodec/mpegvideo_enc.c s->denoise_dct(s, block); s 3987 libavcodec/mpegvideo_enc.c if (s->q_scale_type) mpeg2_qscale = ff_mpeg2_non_linear_qscale[qscale]; s 3990 libavcodec/mpegvideo_enc.c if (s->mb_intra) { s 3992 libavcodec/mpegvideo_enc.c scantable= s->intra_scantable.scantable; s 3993 libavcodec/mpegvideo_enc.c perm_scantable= s->intra_scantable.permutated; s 3994 libavcodec/mpegvideo_enc.c if (!s->h263_aic) { s 3996 libavcodec/mpegvideo_enc.c q = s->y_dc_scale; s 3998 libavcodec/mpegvideo_enc.c q = s->c_dc_scale; s 4010 libavcodec/mpegvideo_enc.c qmat = n < 4 ? s->q_intra_matrix[qscale] : s->q_chroma_intra_matrix[qscale]; s 4011 libavcodec/mpegvideo_enc.c matrix = n < 4 ? s->intra_matrix : s->chroma_intra_matrix; s 4012 libavcodec/mpegvideo_enc.c if(s->mpeg_quant || s->out_format == FMT_MPEG1 || s->out_format == FMT_MJPEG) s 4015 libavcodec/mpegvideo_enc.c if (n > 3 && s->intra_chroma_ac_vlc_length) { s 4016 libavcodec/mpegvideo_enc.c length = s->intra_chroma_ac_vlc_length; s 4017 libavcodec/mpegvideo_enc.c last_length= s->intra_chroma_ac_vlc_last_length; s 4019 libavcodec/mpegvideo_enc.c length = s->intra_ac_vlc_length; s 4020 libavcodec/mpegvideo_enc.c last_length= s->intra_ac_vlc_last_length; s 4023 libavcodec/mpegvideo_enc.c scantable= s->inter_scantable.scantable; s 4024 libavcodec/mpegvideo_enc.c perm_scantable= s->inter_scantable.permutated; s 4027 libavcodec/mpegvideo_enc.c qmat = s->q_inter_matrix[qscale]; s 4028 libavcodec/mpegvideo_enc.c matrix = s->inter_matrix; s 4029 libavcodec/mpegvideo_enc.c length = s->inter_ac_vlc_length; s 4030 libavcodec/mpegvideo_enc.c last_length= s->inter_ac_vlc_last_length; s 4074 libavcodec/mpegvideo_enc.c *overflow= s->max_qcoeff < max; //overflow might have happened s 4090 libavcodec/mpegvideo_enc.c if (s->fdsp.fdct == ff_fdct_ifast) s 4102 libavcodec/mpegvideo_enc.c if(s->out_format == FMT_H263 || s->out_format == FMT_H261){ s 4104 libavcodec/mpegvideo_enc.c } else if(s->out_format == FMT_MJPEG) { s 4105 libavcodec/mpegvideo_enc.c j = s->idsp.idct_permutation[scantable[i]]; s 4108 libavcodec/mpegvideo_enc.c j = s->idsp.idct_permutation[scantable[i]]; // FIXME: optimize s 4109 libavcodec/mpegvideo_enc.c if(s->mb_intra){ s 4134 libavcodec/mpegvideo_enc.c if(s->out_format == FMT_H263 || s->out_format == FMT_H261){ s 4160 libavcodec/mpegvideo_enc.c if(s->out_format == FMT_H263 || s->out_format == FMT_H261){ s 4193 libavcodec/mpegvideo_enc.c if(s->out_format != FMT_H263 && s->out_format != FMT_H261){ s 4209 libavcodec/mpegvideo_enc.c s->coded_score[n] = last_score; s 4227 libavcodec/mpegvideo_enc.c if(s->out_format == FMT_H263 || s->out_format == FMT_H261){ s 4247 libavcodec/mpegvideo_enc.c s->coded_score[n] = best_score - dc*dc; s 4274 libavcodec/mpegvideo_enc.c double s= 0.25*(1<<BASIS_SHIFT); s 4277 libavcodec/mpegvideo_enc.c if(i==0) s*= sqrt(0.5); s 4278 libavcodec/mpegvideo_enc.c if(j==0) s*= sqrt(0.5); s 4279 libavcodec/mpegvideo_enc.c basis[perm_index][8*x + y]= lrintf(s * cos((M_PI/8.0)*i*(x+0.5)) * cos((M_PI/8.0)*j*(y+0.5))); s 4286 libavcodec/mpegvideo_enc.c static int dct_quantize_refine(MpegEncContext *s, //FIXME breaks denoise? s 4305 libavcodec/mpegvideo_enc.c build_basis(s->idsp.idct_permutation); s 4309 libavcodec/mpegvideo_enc.c if (s->mb_intra) { s 4310 libavcodec/mpegvideo_enc.c scantable= s->intra_scantable.scantable; s 4311 libavcodec/mpegvideo_enc.c perm_scantable= s->intra_scantable.permutated; s 4312 libavcodec/mpegvideo_enc.c if (!s->h263_aic) { s 4314 libavcodec/mpegvideo_enc.c q = s->y_dc_scale; s 4316 libavcodec/mpegvideo_enc.c q = s->c_dc_scale; s 4329 libavcodec/mpegvideo_enc.c if (n > 3 && s->intra_chroma_ac_vlc_length) { s 4330 libavcodec/mpegvideo_enc.c length = s->intra_chroma_ac_vlc_length; s 4331 libavcodec/mpegvideo_enc.c last_length= s->intra_chroma_ac_vlc_last_length; s 4333 libavcodec/mpegvideo_enc.c length = s->intra_ac_vlc_length; s 4334 libavcodec/mpegvideo_enc.c last_length= s->intra_ac_vlc_last_length; s 4337 libavcodec/mpegvideo_enc.c scantable= s->inter_scantable.scantable; s 4338 libavcodec/mpegvideo_enc.c perm_scantable= s->inter_scantable.permutated; s 4341 libavcodec/mpegvideo_enc.c length = s->inter_ac_vlc_length; s 4342 libavcodec/mpegvideo_enc.c last_length= s->inter_ac_vlc_last_length; s 4344 libavcodec/mpegvideo_enc.c last_non_zero = s->block_last_index[n]; s 4367 libavcodec/mpegvideo_enc.c lambda= sum*(uint64_t)s->lambda2 >> (FF_LAMBDA_SHIFT - 6 + 6 + 6 + 6); s 4382 libavcodec/mpegvideo_enc.c s->mpvencdsp.add_8x8basis(rem, basis[j], coeff); s 4389 libavcodec/mpegvideo_enc.c int best_score = s->mpvencdsp.try_8x8basis(rem, weight, basis[0], 0); s 4393 libavcodec/mpegvideo_enc.c analyze_gradient = last_non_zero > 2 || s->quantizer_noise_shaping >= 3; s 4401 libavcodec/mpegvideo_enc.c s->fdsp.fdct(d1); s 4408 libavcodec/mpegvideo_enc.c av_assert2(s->mb_intra); s 4420 libavcodec/mpegvideo_enc.c score = s->mpvencdsp.try_8x8basis(rem, weight, basis[0], s 4442 libavcodec/mpegvideo_enc.c if(s->quantizer_noise_shaping < 3 && i > last_non_zero + 1) s 4460 libavcodec/mpegvideo_enc.c if(s->quantizer_noise_shaping < 2 && FFABS(new_level) > FFABS(level)) s 4544 libavcodec/mpegvideo_enc.c score += s->mpvencdsp.try_8x8basis(rem, weight, basis[j], s 4593 libavcodec/mpegvideo_enc.c s->mpvencdsp.add_8x8basis(rem, basis[j], best_unquant_change); s 4638 libavcodec/mpegvideo_enc.c int ff_dct_quantize_c(MpegEncContext *s, s 4649 libavcodec/mpegvideo_enc.c s->fdsp.fdct(block); s 4651 libavcodec/mpegvideo_enc.c if(s->dct_error_sum) s 4652 libavcodec/mpegvideo_enc.c s->denoise_dct(s, block); s 4654 libavcodec/mpegvideo_enc.c if (s->mb_intra) { s 4655 libavcodec/mpegvideo_enc.c scantable= s->intra_scantable.scantable; s 4656 libavcodec/mpegvideo_enc.c if (!s->h263_aic) { s 4658 libavcodec/mpegvideo_enc.c q = s->y_dc_scale; s 4660 libavcodec/mpegvideo_enc.c q = s->c_dc_scale; s 4670 libavcodec/mpegvideo_enc.c qmat = n < 4 ? s->q_intra_matrix[qscale] : s->q_chroma_intra_matrix[qscale]; s 4671 libavcodec/mpegvideo_enc.c bias= s->intra_quant_bias*(1<<(QMAT_SHIFT - QUANT_BIAS_SHIFT)); s 4673 libavcodec/mpegvideo_enc.c scantable= s->inter_scantable.scantable; s 4676 libavcodec/mpegvideo_enc.c qmat = s->q_inter_matrix[qscale]; s 4677 libavcodec/mpegvideo_enc.c bias= s->inter_quant_bias*(1<<(QMAT_SHIFT - QUANT_BIAS_SHIFT)); s 4711 libavcodec/mpegvideo_enc.c *overflow= s->max_qcoeff < max; //overflow might have happened s 4714 libavcodec/mpegvideo_enc.c if (s->idsp.perm_type != FF_IDCT_PERM_NONE) s 4715 libavcodec/mpegvideo_enc.c ff_block_permute(block, s->idsp.idct_permutation, s 38 libavcodec/mpegvideo_motion.c static void gmc1_motion(MpegEncContext *s, s 47 libavcodec/mpegvideo_motion.c motion_x = s->sprite_offset[0][0]; s 48 libavcodec/mpegvideo_motion.c motion_y = s->sprite_offset[0][1]; s 49 libavcodec/mpegvideo_motion.c src_x = s->mb_x * 16 + (motion_x >> (s->sprite_warping_accuracy + 1)); s 50 libavcodec/mpegvideo_motion.c src_y = s->mb_y * 16 + (motion_y >> (s->sprite_warping_accuracy + 1)); s 51 libavcodec/mpegvideo_motion.c motion_x *= 1 << (3 - s->sprite_warping_accuracy); s 52 libavcodec/mpegvideo_motion.c motion_y *= 1 << (3 - s->sprite_warping_accuracy); s 53 libavcodec/mpegvideo_motion.c src_x = av_clip(src_x, -16, s->width); s 54 libavcodec/mpegvideo_motion.c if (src_x == s->width) s 56 libavcodec/mpegvideo_motion.c src_y = av_clip(src_y, -16, s->height); s 57 libavcodec/mpegvideo_motion.c if (src_y == s->height) s 60 libavcodec/mpegvideo_motion.c linesize = s->linesize; s 61 libavcodec/mpegvideo_motion.c uvlinesize = s->uvlinesize; s 65 libavcodec/mpegvideo_motion.c if ((unsigned)src_x >= FFMAX(s->h_edge_pos - 17, 0) || s 66 libavcodec/mpegvideo_motion.c (unsigned)src_y >= FFMAX(s->v_edge_pos - 17, 0)) { s 67 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 71 libavcodec/mpegvideo_motion.c s->h_edge_pos, s->v_edge_pos); s 72 libavcodec/mpegvideo_motion.c ptr = s->sc.edge_emu_buffer; s 76 libavcodec/mpegvideo_motion.c s->mdsp.gmc1(dest_y, ptr, linesize, 16, s 77 libavcodec/mpegvideo_motion.c motion_x & 15, motion_y & 15, 128 - s->no_rounding); s 78 libavcodec/mpegvideo_motion.c s->mdsp.gmc1(dest_y + 8, ptr + 8, linesize, 16, s 79 libavcodec/mpegvideo_motion.c motion_x & 15, motion_y & 15, 128 - s->no_rounding); s 84 libavcodec/mpegvideo_motion.c if (s->no_rounding) { s 85 libavcodec/mpegvideo_motion.c s->hdsp.put_no_rnd_pixels_tab[0][dxy](dest_y, ptr, linesize, 16); s 87 libavcodec/mpegvideo_motion.c s->hdsp.put_pixels_tab[0][dxy](dest_y, ptr, linesize, 16); s 91 libavcodec/mpegvideo_motion.c if (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY) s 94 libavcodec/mpegvideo_motion.c motion_x = s->sprite_offset[1][0]; s 95 libavcodec/mpegvideo_motion.c motion_y = s->sprite_offset[1][1]; s 96 libavcodec/mpegvideo_motion.c src_x = s->mb_x * 8 + (motion_x >> (s->sprite_warping_accuracy + 1)); s 97 libavcodec/mpegvideo_motion.c src_y = s->mb_y * 8 + (motion_y >> (s->sprite_warping_accuracy + 1)); s 98 libavcodec/mpegvideo_motion.c motion_x *= 1 << (3 - s->sprite_warping_accuracy); s 99 libavcodec/mpegvideo_motion.c motion_y *= 1 << (3 - s->sprite_warping_accuracy); s 100 libavcodec/mpegvideo_motion.c src_x = av_clip(src_x, -8, s->width >> 1); s 101 libavcodec/mpegvideo_motion.c if (src_x == s->width >> 1) s 103 libavcodec/mpegvideo_motion.c src_y = av_clip(src_y, -8, s->height >> 1); s 104 libavcodec/mpegvideo_motion.c if (src_y == s->height >> 1) s 109 libavcodec/mpegvideo_motion.c if ((unsigned)src_x >= FFMAX((s->h_edge_pos >> 1) - 9, 0) || s 110 libavcodec/mpegvideo_motion.c (unsigned)src_y >= FFMAX((s->v_edge_pos >> 1) - 9, 0)) { s 111 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 115 libavcodec/mpegvideo_motion.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 116 libavcodec/mpegvideo_motion.c ptr = s->sc.edge_emu_buffer; s 119 libavcodec/mpegvideo_motion.c s->mdsp.gmc1(dest_cb, ptr, uvlinesize, 8, s 120 libavcodec/mpegvideo_motion.c motion_x & 15, motion_y & 15, 128 - s->no_rounding); s 124 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 128 libavcodec/mpegvideo_motion.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 129 libavcodec/mpegvideo_motion.c ptr = s->sc.edge_emu_buffer; s 131 libavcodec/mpegvideo_motion.c s->mdsp.gmc1(dest_cr, ptr, uvlinesize, 8, s 132 libavcodec/mpegvideo_motion.c motion_x & 15, motion_y & 15, 128 - s->no_rounding); s 135 libavcodec/mpegvideo_motion.c static void gmc_motion(MpegEncContext *s, s 141 libavcodec/mpegvideo_motion.c const int a = s->sprite_warping_accuracy; s 144 libavcodec/mpegvideo_motion.c linesize = s->linesize; s 145 libavcodec/mpegvideo_motion.c uvlinesize = s->uvlinesize; s 149 libavcodec/mpegvideo_motion.c ox = s->sprite_offset[0][0] + s->sprite_delta[0][0] * s->mb_x * 16 + s 150 libavcodec/mpegvideo_motion.c s->sprite_delta[0][1] * s->mb_y * 16; s 151 libavcodec/mpegvideo_motion.c oy = s->sprite_offset[0][1] + s->sprite_delta[1][0] * s->mb_x * 16 + s 152 libavcodec/mpegvideo_motion.c s->sprite_delta[1][1] * s->mb_y * 16; s 154 libavcodec/mpegvideo_motion.c s->mdsp.gmc(dest_y, ptr, linesize, 16, s 156 libavcodec/mpegvideo_motion.c s->sprite_delta[0][0], s->sprite_delta[0][1], s 157 libavcodec/mpegvideo_motion.c s->sprite_delta[1][0], s->sprite_delta[1][1], s 158 libavcodec/mpegvideo_motion.c a + 1, (1 << (2 * a + 1)) - s->no_rounding, s 159 libavcodec/mpegvideo_motion.c s->h_edge_pos, s->v_edge_pos); s 160 libavcodec/mpegvideo_motion.c s->mdsp.gmc(dest_y + 8, ptr, linesize, 16, s 161 libavcodec/mpegvideo_motion.c ox + s->sprite_delta[0][0] * 8, s 162 libavcodec/mpegvideo_motion.c oy + s->sprite_delta[1][0] * 8, s 163 libavcodec/mpegvideo_motion.c s->sprite_delta[0][0], s->sprite_delta[0][1], s 164 libavcodec/mpegvideo_motion.c s->sprite_delta[1][0], s->sprite_delta[1][1], s 165 libavcodec/mpegvideo_motion.c a + 1, (1 << (2 * a + 1)) - s->no_rounding, s 166 libavcodec/mpegvideo_motion.c s->h_edge_pos, s->v_edge_pos); s 168 libavcodec/mpegvideo_motion.c if (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY) s 171 libavcodec/mpegvideo_motion.c ox = s->sprite_offset[1][0] + s->sprite_delta[0][0] * s->mb_x * 8 + s 172 libavcodec/mpegvideo_motion.c s->sprite_delta[0][1] * s->mb_y * 8; s 173 libavcodec/mpegvideo_motion.c oy = s->sprite_offset[1][1] + s->sprite_delta[1][0] * s->mb_x * 8 + s 174 libavcodec/mpegvideo_motion.c s->sprite_delta[1][1] * s->mb_y * 8; s 177 libavcodec/mpegvideo_motion.c s->mdsp.gmc(dest_cb, ptr, uvlinesize, 8, s 179 libavcodec/mpegvideo_motion.c s->sprite_delta[0][0], s->sprite_delta[0][1], s 180 libavcodec/mpegvideo_motion.c s->sprite_delta[1][0], s->sprite_delta[1][1], s 181 libavcodec/mpegvideo_motion.c a + 1, (1 << (2 * a + 1)) - s->no_rounding, s 182 libavcodec/mpegvideo_motion.c (s->h_edge_pos + 1) >> 1, (s->v_edge_pos + 1) >> 1); s 185 libavcodec/mpegvideo_motion.c s->mdsp.gmc(dest_cr, ptr, uvlinesize, 8, s 187 libavcodec/mpegvideo_motion.c s->sprite_delta[0][0], s->sprite_delta[0][1], s 188 libavcodec/mpegvideo_motion.c s->sprite_delta[1][0], s->sprite_delta[1][1], s 189 libavcodec/mpegvideo_motion.c a + 1, (1 << (2 * a + 1)) - s->no_rounding, s 190 libavcodec/mpegvideo_motion.c (s->h_edge_pos + 1) >> 1, (s->v_edge_pos + 1) >> 1); s 193 libavcodec/mpegvideo_motion.c static inline int hpel_motion(MpegEncContext *s, s 206 libavcodec/mpegvideo_motion.c src_x = av_clip(src_x, -16, s->width); // FIXME unneeded for emu? s 207 libavcodec/mpegvideo_motion.c if (src_x != s->width) s 209 libavcodec/mpegvideo_motion.c src_y = av_clip(src_y, -16, s->height); s 210 libavcodec/mpegvideo_motion.c if (src_y != s->height) s 212 libavcodec/mpegvideo_motion.c src += src_y * s->linesize + src_x; s 214 libavcodec/mpegvideo_motion.c if ((unsigned)src_x >= FFMAX(s->h_edge_pos - (motion_x & 1) - 7, 0) || s 215 libavcodec/mpegvideo_motion.c (unsigned)src_y >= FFMAX(s->v_edge_pos - (motion_y & 1) - 7, 0)) { s 216 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, src, s 217 libavcodec/mpegvideo_motion.c s->linesize, s->linesize, s 220 libavcodec/mpegvideo_motion.c s->h_edge_pos, s->v_edge_pos); s 221 libavcodec/mpegvideo_motion.c src = s->sc.edge_emu_buffer; s 224 libavcodec/mpegvideo_motion.c pix_op[dxy](dest, src, s->linesize, 8); s 229 libavcodec/mpegvideo_motion.c void mpeg_motion_internal(MpegEncContext *s, s 250 libavcodec/mpegvideo_motion.c v_edge_pos = s->v_edge_pos >> field_based; s 251 libavcodec/mpegvideo_motion.c linesize = s->current_picture.f->linesize[0] << field_based; s 252 libavcodec/mpegvideo_motion.c uvlinesize = s->current_picture.f->linesize[1] << field_based; s 256 libavcodec/mpegvideo_motion.c src_x = s->mb_x * 16 + (motion_x >> 1); s 259 libavcodec/mpegvideo_motion.c if (!is_mpeg12 && s->out_format == FMT_H263) { s 260 libavcodec/mpegvideo_motion.c if ((s->workaround_bugs & FF_BUG_HPEL_CHROMA) && field_based) { s 264 libavcodec/mpegvideo_motion.c uvsrc_x = s->mb_x * 8 + (mx >> 1); s 272 libavcodec/mpegvideo_motion.c } else if (!is_mpeg12 && s->out_format == FMT_H261) { s 276 libavcodec/mpegvideo_motion.c uvsrc_x = s->mb_x * 8 + mx; s 279 libavcodec/mpegvideo_motion.c if (s->chroma_y_shift) { s 283 libavcodec/mpegvideo_motion.c uvsrc_x = s->mb_x * 8 + (mx >> 1); s 286 libavcodec/mpegvideo_motion.c if (s->chroma_x_shift) { s 290 libavcodec/mpegvideo_motion.c uvsrc_x = s->mb_x * 8 + (mx >> 1); s 305 libavcodec/mpegvideo_motion.c if ((unsigned)src_x >= FFMAX(s->h_edge_pos - (motion_x & 1) - 15 , 0) || s 308 libavcodec/mpegvideo_motion.c s->codec_id == AV_CODEC_ID_MPEG2VIDEO || s 309 libavcodec/mpegvideo_motion.c s->codec_id == AV_CODEC_ID_MPEG1VIDEO) { s 310 libavcodec/mpegvideo_motion.c av_log(s->avctx, AV_LOG_DEBUG, s 316 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr_y, s 317 libavcodec/mpegvideo_motion.c s->linesize, s->linesize, s 320 libavcodec/mpegvideo_motion.c s->h_edge_pos, s->v_edge_pos); s 321 libavcodec/mpegvideo_motion.c ptr_y = s->sc.edge_emu_buffer; s 322 libavcodec/mpegvideo_motion.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 323 libavcodec/mpegvideo_motion.c uint8_t *ubuf = s->sc.edge_emu_buffer + 18 * s->linesize; s 324 libavcodec/mpegvideo_motion.c uint8_t *vbuf = ubuf + 10 * s->uvlinesize; s 325 libavcodec/mpegvideo_motion.c if (s->workaround_bugs & FF_BUG_IEDGE) s 326 libavcodec/mpegvideo_motion.c vbuf -= s->uvlinesize; s 328 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(ubuf, ptr_cb, s 329 libavcodec/mpegvideo_motion.c s->uvlinesize, s->uvlinesize, s 332 libavcodec/mpegvideo_motion.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 333 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(vbuf, ptr_cr, s 334 libavcodec/mpegvideo_motion.c s->uvlinesize, s->uvlinesize, s 337 libavcodec/mpegvideo_motion.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 346 libavcodec/mpegvideo_motion.c dest_y += s->linesize; s 347 libavcodec/mpegvideo_motion.c dest_cb += s->uvlinesize; s 348 libavcodec/mpegvideo_motion.c dest_cr += s->uvlinesize; s 352 libavcodec/mpegvideo_motion.c ptr_y += s->linesize; s 353 libavcodec/mpegvideo_motion.c ptr_cb += s->uvlinesize; s 354 libavcodec/mpegvideo_motion.c ptr_cr += s->uvlinesize; s 359 libavcodec/mpegvideo_motion.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 360 libavcodec/mpegvideo_motion.c pix_op[s->chroma_x_shift][uvdxy] s 361 libavcodec/mpegvideo_motion.c (dest_cb, ptr_cb, uvlinesize, h >> s->chroma_y_shift); s 362 libavcodec/mpegvideo_motion.c pix_op[s->chroma_x_shift][uvdxy] s 363 libavcodec/mpegvideo_motion.c (dest_cr, ptr_cr, uvlinesize, h >> s->chroma_y_shift); s 366 libavcodec/mpegvideo_motion.c s->out_format == FMT_H261) { s 367 libavcodec/mpegvideo_motion.c ff_h261_loop_filter(s); s 371 libavcodec/mpegvideo_motion.c static void mpeg_motion(MpegEncContext *s, s 378 libavcodec/mpegvideo_motion.c if (s->out_format == FMT_MPEG1) s 379 libavcodec/mpegvideo_motion.c mpeg_motion_internal(s, dest_y, dest_cb, dest_cr, 0, 0, s 384 libavcodec/mpegvideo_motion.c mpeg_motion_internal(s, dest_y, dest_cb, dest_cr, 0, 0, s 389 libavcodec/mpegvideo_motion.c static void mpeg_motion_field(MpegEncContext *s, uint8_t *dest_y, s 397 libavcodec/mpegvideo_motion.c if (s->out_format == FMT_MPEG1) s 398 libavcodec/mpegvideo_motion.c mpeg_motion_internal(s, dest_y, dest_cb, dest_cr, 1, s 403 libavcodec/mpegvideo_motion.c mpeg_motion_internal(s, dest_y, dest_cb, dest_cr, 1, s 462 libavcodec/mpegvideo_motion.c static inline void obmc_motion(MpegEncContext *s, s 472 libavcodec/mpegvideo_motion.c av_assert2(s->quarter_sample == 0); s 478 libavcodec/mpegvideo_motion.c ptr[i] = s->sc.obmc_scratchpad + 8 * (i & 1) + s 479 libavcodec/mpegvideo_motion.c s->linesize * 8 * (i >> 1); s 480 libavcodec/mpegvideo_motion.c hpel_motion(s, ptr[i], src, src_x, src_y, pix_op, s 485 libavcodec/mpegvideo_motion.c put_obmc(dest, ptr, s->linesize); s 488 libavcodec/mpegvideo_motion.c static inline void qpel_motion(MpegEncContext *s, s 504 libavcodec/mpegvideo_motion.c src_x = s->mb_x * 16 + (motion_x >> 2); s 505 libavcodec/mpegvideo_motion.c src_y = s->mb_y * (16 >> field_based) + (motion_y >> 2); s 507 libavcodec/mpegvideo_motion.c v_edge_pos = s->v_edge_pos >> field_based; s 508 libavcodec/mpegvideo_motion.c linesize = s->linesize << field_based; s 509 libavcodec/mpegvideo_motion.c uvlinesize = s->uvlinesize << field_based; s 514 libavcodec/mpegvideo_motion.c } else if (s->workaround_bugs & FF_BUG_QPEL_CHROMA2) { s 518 libavcodec/mpegvideo_motion.c } else if (s->workaround_bugs & FF_BUG_QPEL_CHROMA) { s 532 libavcodec/mpegvideo_motion.c uvsrc_x = s->mb_x * 8 + mx; s 533 libavcodec/mpegvideo_motion.c uvsrc_y = s->mb_y * (8 >> field_based) + my; s 539 libavcodec/mpegvideo_motion.c if ((unsigned)src_x >= FFMAX(s->h_edge_pos - (motion_x & 3) - 15 , 0) || s 541 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr_y, s 542 libavcodec/mpegvideo_motion.c s->linesize, s->linesize, s 545 libavcodec/mpegvideo_motion.c s->h_edge_pos, s->v_edge_pos); s 546 libavcodec/mpegvideo_motion.c ptr_y = s->sc.edge_emu_buffer; s 547 libavcodec/mpegvideo_motion.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 548 libavcodec/mpegvideo_motion.c uint8_t *ubuf = s->sc.edge_emu_buffer + 18 * s->linesize; s 549 libavcodec/mpegvideo_motion.c uint8_t *vbuf = ubuf + 10 * s->uvlinesize; s 550 libavcodec/mpegvideo_motion.c if (s->workaround_bugs & FF_BUG_IEDGE) s 551 libavcodec/mpegvideo_motion.c vbuf -= s->uvlinesize; s 552 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(ubuf, ptr_cb, s 553 libavcodec/mpegvideo_motion.c s->uvlinesize, s->uvlinesize, s 556 libavcodec/mpegvideo_motion.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 557 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(vbuf, ptr_cr, s 558 libavcodec/mpegvideo_motion.c s->uvlinesize, s->uvlinesize, s 561 libavcodec/mpegvideo_motion.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 571 libavcodec/mpegvideo_motion.c dest_y += s->linesize; s 572 libavcodec/mpegvideo_motion.c dest_cb += s->uvlinesize; s 573 libavcodec/mpegvideo_motion.c dest_cr += s->uvlinesize; s 577 libavcodec/mpegvideo_motion.c ptr_y += s->linesize; s 578 libavcodec/mpegvideo_motion.c ptr_cb += s->uvlinesize; s 579 libavcodec/mpegvideo_motion.c ptr_cr += s->uvlinesize; s 586 libavcodec/mpegvideo_motion.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 595 libavcodec/mpegvideo_motion.c static void chroma_4mv_motion(MpegEncContext *s, s 614 libavcodec/mpegvideo_motion.c src_x = s->mb_x * 8 + mx; s 615 libavcodec/mpegvideo_motion.c src_y = s->mb_y * 8 + my; s 616 libavcodec/mpegvideo_motion.c src_x = av_clip(src_x, -8, (s->width >> 1)); s 617 libavcodec/mpegvideo_motion.c if (src_x == (s->width >> 1)) s 619 libavcodec/mpegvideo_motion.c src_y = av_clip(src_y, -8, (s->height >> 1)); s 620 libavcodec/mpegvideo_motion.c if (src_y == (s->height >> 1)) s 623 libavcodec/mpegvideo_motion.c offset = src_y * s->uvlinesize + src_x; s 625 libavcodec/mpegvideo_motion.c if ((unsigned)src_x >= FFMAX((s->h_edge_pos >> 1) - (dxy & 1) - 7, 0) || s 626 libavcodec/mpegvideo_motion.c (unsigned)src_y >= FFMAX((s->v_edge_pos >> 1) - (dxy >> 1) - 7, 0)) { s 627 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 628 libavcodec/mpegvideo_motion.c s->uvlinesize, s->uvlinesize, s 630 libavcodec/mpegvideo_motion.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 631 libavcodec/mpegvideo_motion.c ptr = s->sc.edge_emu_buffer; s 634 libavcodec/mpegvideo_motion.c pix_op[dxy](dest_cb, ptr, s->uvlinesize, 8); s 638 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 639 libavcodec/mpegvideo_motion.c s->uvlinesize, s->uvlinesize, s 641 libavcodec/mpegvideo_motion.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 642 libavcodec/mpegvideo_motion.c ptr = s->sc.edge_emu_buffer; s 644 libavcodec/mpegvideo_motion.c pix_op[dxy](dest_cr, ptr, s->uvlinesize, 8); s 647 libavcodec/mpegvideo_motion.c static inline void prefetch_motion(MpegEncContext *s, uint8_t **pix, int dir) s 651 libavcodec/mpegvideo_motion.c const int shift = s->quarter_sample ? 2 : 1; s 652 libavcodec/mpegvideo_motion.c const int mx = (s->mv[dir][0][0] >> shift) + 16 * s->mb_x + 8; s 653 libavcodec/mpegvideo_motion.c const int my = (s->mv[dir][0][1] >> shift) + 16 * s->mb_y; s 654 libavcodec/mpegvideo_motion.c int off = mx + (my + (s->mb_x & 3) * 4) * s->linesize + 64; s 656 libavcodec/mpegvideo_motion.c s->vdsp.prefetch(pix[0] + off, s->linesize, 4); s 657 libavcodec/mpegvideo_motion.c off = (mx >> 1) + ((my >> 1) + (s->mb_x & 7)) * s->uvlinesize + 64; s 658 libavcodec/mpegvideo_motion.c s->vdsp.prefetch(pix[1] + off, pix[2] - pix[1], 2); s 661 libavcodec/mpegvideo_motion.c static inline void apply_obmc(MpegEncContext *s, s 669 libavcodec/mpegvideo_motion.c Picture *cur_frame = &s->current_picture; s 670 libavcodec/mpegvideo_motion.c int mb_x = s->mb_x; s 671 libavcodec/mpegvideo_motion.c int mb_y = s->mb_y; s 672 libavcodec/mpegvideo_motion.c const int xy = mb_x + mb_y * s->mb_stride; s 673 libavcodec/mpegvideo_motion.c const int mot_stride = s->b8_stride; s 677 libavcodec/mpegvideo_motion.c av_assert2(!s->mb_skipped); s 692 libavcodec/mpegvideo_motion.c if (mb_y == 0 || IS_INTRA(cur_frame->mb_type[xy - s->mb_stride])) { s 711 libavcodec/mpegvideo_motion.c if (mb_x + 1 >= s->mb_width || IS_INTRA(cur_frame->mb_type[xy + 1])) { s 733 libavcodec/mpegvideo_motion.c obmc_motion(s, dest_y + ((i & 1) * 8) + (i >> 1) * 8 * s->linesize, s 742 libavcodec/mpegvideo_motion.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 743 libavcodec/mpegvideo_motion.c chroma_4mv_motion(s, dest_cb, dest_cr, s 748 libavcodec/mpegvideo_motion.c static inline void apply_8x8(MpegEncContext *s, s 759 libavcodec/mpegvideo_motion.c int mb_x = s->mb_x; s 760 libavcodec/mpegvideo_motion.c int mb_y = s->mb_y; s 765 libavcodec/mpegvideo_motion.c if (s->quarter_sample) { s 767 libavcodec/mpegvideo_motion.c int motion_x = s->mv[dir][i][0]; s 768 libavcodec/mpegvideo_motion.c int motion_y = s->mv[dir][i][1]; s 775 libavcodec/mpegvideo_motion.c src_x = av_clip(src_x, -16, s->width); s 776 libavcodec/mpegvideo_motion.c if (src_x == s->width) s 778 libavcodec/mpegvideo_motion.c src_y = av_clip(src_y, -16, s->height); s 779 libavcodec/mpegvideo_motion.c if (src_y == s->height) s 782 libavcodec/mpegvideo_motion.c ptr = ref_picture[0] + (src_y * s->linesize) + (src_x); s 783 libavcodec/mpegvideo_motion.c if ((unsigned)src_x >= FFMAX(s->h_edge_pos - (motion_x & 3) - 7, 0) || s 784 libavcodec/mpegvideo_motion.c (unsigned)src_y >= FFMAX(s->v_edge_pos - (motion_y & 3) - 7, 0)) { s 785 libavcodec/mpegvideo_motion.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 786 libavcodec/mpegvideo_motion.c s->linesize, s->linesize, s 789 libavcodec/mpegvideo_motion.c s->h_edge_pos, s 790 libavcodec/mpegvideo_motion.c s->v_edge_pos); s 791 libavcodec/mpegvideo_motion.c ptr = s->sc.edge_emu_buffer; s 793 libavcodec/mpegvideo_motion.c dest = dest_y + ((i & 1) * 8) + (i >> 1) * 8 * s->linesize; s 794 libavcodec/mpegvideo_motion.c qpix_op[1][dxy](dest, ptr, s->linesize); s 796 libavcodec/mpegvideo_motion.c mx += s->mv[dir][i][0] / 2; s 797 libavcodec/mpegvideo_motion.c my += s->mv[dir][i][1] / 2; s 801 libavcodec/mpegvideo_motion.c hpel_motion(s, s 802 libavcodec/mpegvideo_motion.c dest_y + ((i & 1) * 8) + (i >> 1) * 8 * s->linesize, s 807 libavcodec/mpegvideo_motion.c s->mv[dir][i][0], s 808 libavcodec/mpegvideo_motion.c s->mv[dir][i][1]); s 810 libavcodec/mpegvideo_motion.c mx += s->mv[dir][i][0]; s 811 libavcodec/mpegvideo_motion.c my += s->mv[dir][i][1]; s 815 libavcodec/mpegvideo_motion.c if (!CONFIG_GRAY || !(s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 816 libavcodec/mpegvideo_motion.c chroma_4mv_motion(s, dest_cb, dest_cr, s 832 libavcodec/mpegvideo_motion.c static av_always_inline void mpv_motion_internal(MpegEncContext *s, s 843 libavcodec/mpegvideo_motion.c int mb_y = s->mb_y; s 845 libavcodec/mpegvideo_motion.c prefetch_motion(s, ref_picture, dir); s 847 libavcodec/mpegvideo_motion.c if (!is_mpeg12 && s->obmc && s->pict_type != AV_PICTURE_TYPE_B) { s 848 libavcodec/mpegvideo_motion.c apply_obmc(s, dest_y, dest_cb, dest_cr, ref_picture, pix_op); s 852 libavcodec/mpegvideo_motion.c switch (s->mv_type) { s 854 libavcodec/mpegvideo_motion.c if (s->mcsel) { s 855 libavcodec/mpegvideo_motion.c if (s->real_sprite_warping_points == 1) { s 856 libavcodec/mpegvideo_motion.c gmc1_motion(s, dest_y, dest_cb, dest_cr, s 859 libavcodec/mpegvideo_motion.c gmc_motion(s, dest_y, dest_cb, dest_cr, s 862 libavcodec/mpegvideo_motion.c } else if (!is_mpeg12 && s->quarter_sample) { s 863 libavcodec/mpegvideo_motion.c qpel_motion(s, dest_y, dest_cb, dest_cr, s 866 libavcodec/mpegvideo_motion.c s->mv[dir][0][0], s->mv[dir][0][1], 16); s 868 libavcodec/mpegvideo_motion.c s->mspel && s->codec_id == AV_CODEC_ID_WMV2) { s 869 libavcodec/mpegvideo_motion.c ff_mspel_motion(s, dest_y, dest_cb, dest_cr, s 871 libavcodec/mpegvideo_motion.c s->mv[dir][0][0], s->mv[dir][0][1], 16); s 873 libavcodec/mpegvideo_motion.c mpeg_motion(s, dest_y, dest_cb, dest_cr, 0, s 875 libavcodec/mpegvideo_motion.c s->mv[dir][0][0], s->mv[dir][0][1], 16, 0, mb_y); s 880 libavcodec/mpegvideo_motion.c apply_8x8(s, dest_y, dest_cb, dest_cr, s 884 libavcodec/mpegvideo_motion.c if (s->picture_structure == PICT_FRAME) { s 885 libavcodec/mpegvideo_motion.c if (!is_mpeg12 && s->quarter_sample) { s 887 libavcodec/mpegvideo_motion.c qpel_motion(s, dest_y, dest_cb, dest_cr, s 888 libavcodec/mpegvideo_motion.c 1, i, s->field_select[dir][i], s 890 libavcodec/mpegvideo_motion.c s->mv[dir][i][0], s->mv[dir][i][1], 8); s 893 libavcodec/mpegvideo_motion.c mpeg_motion_field(s, dest_y, dest_cb, dest_cr, s 894 libavcodec/mpegvideo_motion.c 0, s->field_select[dir][0], s 896 libavcodec/mpegvideo_motion.c s->mv[dir][0][0], s->mv[dir][0][1], 8, mb_y); s 898 libavcodec/mpegvideo_motion.c mpeg_motion_field(s, dest_y, dest_cb, dest_cr, s 899 libavcodec/mpegvideo_motion.c 1, s->field_select[dir][1], s 901 libavcodec/mpegvideo_motion.c s->mv[dir][1][0], s->mv[dir][1][1], 8, mb_y); s 904 libavcodec/mpegvideo_motion.c if ( s->picture_structure != s->field_select[dir][0] + 1 && s->pict_type != AV_PICTURE_TYPE_B && !s->first_field s 906 libavcodec/mpegvideo_motion.c ref_picture = s->current_picture_ptr->f->data; s 909 libavcodec/mpegvideo_motion.c mpeg_motion(s, dest_y, dest_cb, dest_cr, s 910 libavcodec/mpegvideo_motion.c s->field_select[dir][0], s 912 libavcodec/mpegvideo_motion.c s->mv[dir][0][0], s->mv[dir][0][1], 16, 0, mb_y >> 1); s 919 libavcodec/mpegvideo_motion.c if ((s->picture_structure == s->field_select[dir][i] + 1 s 920 libavcodec/mpegvideo_motion.c || s->pict_type == AV_PICTURE_TYPE_B || s->first_field) && ref_picture[0]) { s 923 libavcodec/mpegvideo_motion.c ref2picture = s->current_picture_ptr->f->data; s 926 libavcodec/mpegvideo_motion.c mpeg_motion(s, dest_y, dest_cb, dest_cr, s 927 libavcodec/mpegvideo_motion.c s->field_select[dir][i], s 929 libavcodec/mpegvideo_motion.c s->mv[dir][i][0], s->mv[dir][i][1], s 932 libavcodec/mpegvideo_motion.c dest_y += 16 * s->linesize; s 933 libavcodec/mpegvideo_motion.c dest_cb += (16 >> s->chroma_y_shift) * s->uvlinesize; s 934 libavcodec/mpegvideo_motion.c dest_cr += (16 >> s->chroma_y_shift) * s->uvlinesize; s 938 libavcodec/mpegvideo_motion.c if (s->picture_structure == PICT_FRAME) { s 942 libavcodec/mpegvideo_motion.c mpeg_motion_field(s, dest_y, dest_cb, dest_cr, s 944 libavcodec/mpegvideo_motion.c s->mv[dir][2 * i + j][0], s 945 libavcodec/mpegvideo_motion.c s->mv[dir][2 * i + j][1], 8, mb_y); s 946 libavcodec/mpegvideo_motion.c pix_op = s->hdsp.avg_pixels_tab; s 950 libavcodec/mpegvideo_motion.c ref_picture = s->current_picture_ptr->f->data; s 953 libavcodec/mpegvideo_motion.c mpeg_motion(s, dest_y, dest_cb, dest_cr, s 954 libavcodec/mpegvideo_motion.c s->picture_structure != i + 1, s 956 libavcodec/mpegvideo_motion.c s->mv[dir][2 * i][0], s->mv[dir][2 * i][1], s 960 libavcodec/mpegvideo_motion.c pix_op = s->hdsp.avg_pixels_tab; s 964 libavcodec/mpegvideo_motion.c if (!s->first_field) { s 965 libavcodec/mpegvideo_motion.c ref_picture = s->current_picture_ptr->f->data; s 974 libavcodec/mpegvideo_motion.c void ff_mpv_motion(MpegEncContext *s, s 982 libavcodec/mpegvideo_motion.c if (s->out_format == FMT_MPEG1) s 983 libavcodec/mpegvideo_motion.c mpv_motion_internal(s, dest_y, dest_cb, dest_cr, dir, s 987 libavcodec/mpegvideo_motion.c mpv_motion_internal(s, dest_y, dest_cb, dest_cr, dir, s 35 libavcodec/mpegvideo_parser.c static void mpegvideo_extract_headers(AVCodecParserContext *s, s 39 libavcodec/mpegvideo_parser.c struct MpvParseContext *pc = s->priv_data; s 53 libavcodec/mpegvideo_parser.c s->repeat_pict = 0; s 62 libavcodec/mpegvideo_parser.c s->pict_type = (buf[1] >> 3) & 7; s 122 libavcodec/mpegvideo_parser.c s->repeat_pict = 1; s 126 libavcodec/mpegvideo_parser.c s->repeat_pict = 5; s 128 libavcodec/mpegvideo_parser.c s->repeat_pict = 3; s 130 libavcodec/mpegvideo_parser.c s->repeat_pict = 2; s 136 libavcodec/mpegvideo_parser.c s->field_order = AV_FIELD_TT; s 138 libavcodec/mpegvideo_parser.c s->field_order = AV_FIELD_BB; s 140 libavcodec/mpegvideo_parser.c s->field_order = AV_FIELD_PROGRESSIVE; s 170 libavcodec/mpegvideo_parser.c s->format = pix_fmt; s 171 libavcodec/mpegvideo_parser.c s->width = pc->width; s 172 libavcodec/mpegvideo_parser.c s->height = pc->height; s 173 libavcodec/mpegvideo_parser.c s->coded_width = FFALIGN(pc->width, 16); s 174 libavcodec/mpegvideo_parser.c s->coded_height = FFALIGN(pc->height, 16); s 183 libavcodec/mpegvideo_parser.c static int mpegvideo_parse(AVCodecParserContext *s, s 188 libavcodec/mpegvideo_parser.c struct MpvParseContext *pc1 = s->priv_data; s 192 libavcodec/mpegvideo_parser.c if(s->flags & PARSER_FLAG_COMPLETE_FRAMES){ s 195 libavcodec/mpegvideo_parser.c next= ff_mpeg1_find_frame_end(pc, buf, buf_size, s); s 207 libavcodec/mpegvideo_parser.c mpegvideo_extract_headers(s, avctx, buf, buf_size); s 209 libavcodec/mpegvideo_parser.c s->pict_type, av_q2d(avctx->framerate), s->repeat_pict); s 233 libavcodec/mpegvideo_parser.c static int mpegvideo_parse_init(AVCodecParserContext *s) s 235 libavcodec/mpegvideo_parser.c s->pict_type = AV_PICTURE_TYPE_NONE; // first frame might be partial s 43 libavcodec/mpegvideo_xvmc.c void ff_xvmc_init_block(MpegEncContext *s) s 45 libavcodec/mpegvideo_xvmc.c struct xvmc_pix_fmt *render = (struct xvmc_pix_fmt*)s->current_picture.f->data[2]; s 48 libavcodec/mpegvideo_xvmc.c s->block = (int16_t (*)[64])(render->data_blocks + render->next_free_data_block_num * 64); s 51 libavcodec/mpegvideo_xvmc.c static void exchange_uv(MpegEncContext *s) s 55 libavcodec/mpegvideo_xvmc.c tmp = s->pblocks[4]; s 56 libavcodec/mpegvideo_xvmc.c s->pblocks[4] = s->pblocks[5]; s 57 libavcodec/mpegvideo_xvmc.c s->pblocks[5] = tmp; s 64 libavcodec/mpegvideo_xvmc.c void ff_xvmc_pack_pblocks(MpegEncContext *s, int cbp) s 67 libavcodec/mpegvideo_xvmc.c const int mb_block_count = 4 + (1 << s->chroma_format); s 72 libavcodec/mpegvideo_xvmc.c s->pblocks[i] = &s->block[j++]; s 74 libavcodec/mpegvideo_xvmc.c s->pblocks[i] = NULL; s 77 libavcodec/mpegvideo_xvmc.c if (s->swap_uv) { s 78 libavcodec/mpegvideo_xvmc.c exchange_uv(s); s 89 libavcodec/mpegvideo_xvmc.c struct MpegEncContext *s = avctx->priv_data; s 90 libavcodec/mpegvideo_xvmc.c struct xvmc_pix_fmt *last, *next, *render = (struct xvmc_pix_fmt*)s->current_picture.f->data[2]; s 91 libavcodec/mpegvideo_xvmc.c const int mb_block_count = 4 + (1 << s->chroma_format); s 121 libavcodec/mpegvideo_xvmc.c render->picture_structure = s->picture_structure; s 122 libavcodec/mpegvideo_xvmc.c render->flags = s->first_field ? 0 : XVMC_SECOND_FIELD; s 126 libavcodec/mpegvideo_xvmc.c switch(s->pict_type) { s 130 libavcodec/mpegvideo_xvmc.c next = (struct xvmc_pix_fmt*)s->next_picture.f->data[2]; s 138 libavcodec/mpegvideo_xvmc.c last = (struct xvmc_pix_fmt*)s->last_picture.f->data[2]; s 158 libavcodec/mpegvideo_xvmc.c struct MpegEncContext *s = avctx->priv_data; s 159 libavcodec/mpegvideo_xvmc.c struct xvmc_pix_fmt *render = (struct xvmc_pix_fmt*)s->current_picture.f->data[2]; s 163 libavcodec/mpegvideo_xvmc.c ff_mpeg_draw_horiz_band(s, 0, 0); s 171 libavcodec/mpegvideo_xvmc.c static void ff_xvmc_decode_mb(struct MpegEncContext *s) s 177 libavcodec/mpegvideo_xvmc.c const int mb_xy = s->mb_y * s->mb_stride + s->mb_x; s 180 libavcodec/mpegvideo_xvmc.c if (s->encoding) { s 181 libavcodec/mpegvideo_xvmc.c av_log(s->avctx, AV_LOG_ERROR, "XVMC doesn't support encoding!!!\n"); s 186 libavcodec/mpegvideo_xvmc.c if (!s->mb_intra) { s 187 libavcodec/mpegvideo_xvmc.c s->last_dc[0] = s 188 libavcodec/mpegvideo_xvmc.c s->last_dc[1] = s 189 libavcodec/mpegvideo_xvmc.c s->last_dc[2] = 128 << s->intra_dc_precision; s 193 libavcodec/mpegvideo_xvmc.c s->mb_skipped = 0; s 198 libavcodec/mpegvideo_xvmc.c s->current_picture.qscale_table[mb_xy] = s->qscale; s 201 libavcodec/mpegvideo_xvmc.c render = (struct xvmc_pix_fmt*)s->current_picture.f->data[2]; s 210 libavcodec/mpegvideo_xvmc.c mv_block->x = s->mb_x; s 211 libavcodec/mpegvideo_xvmc.c mv_block->y = s->mb_y; s 212 libavcodec/mpegvideo_xvmc.c mv_block->dct_type = s->interlaced_dct; // XVMC_DCT_TYPE_FRAME/FIELD; s 213 libavcodec/mpegvideo_xvmc.c if (s->mb_intra) { s 218 libavcodec/mpegvideo_xvmc.c if (s->mv_dir & MV_DIR_FORWARD) { s 221 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][0][0] = s->mv[0][0][0]; s 222 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][0][1] = s->mv[0][0][1]; s 223 libavcodec/mpegvideo_xvmc.c mv_block->PMV[1][0][0] = s->mv[0][1][0]; s 224 libavcodec/mpegvideo_xvmc.c mv_block->PMV[1][0][1] = s->mv[0][1][1]; s 226 libavcodec/mpegvideo_xvmc.c if (s->mv_dir & MV_DIR_BACKWARD) { s 228 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][1][0] = s->mv[1][0][0]; s 229 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][1][1] = s->mv[1][0][1]; s 230 libavcodec/mpegvideo_xvmc.c mv_block->PMV[1][1][0] = s->mv[1][1][0]; s 231 libavcodec/mpegvideo_xvmc.c mv_block->PMV[1][1][1] = s->mv[1][1][1]; s 234 libavcodec/mpegvideo_xvmc.c switch(s->mv_type) { s 243 libavcodec/mpegvideo_xvmc.c if (s->picture_structure == PICT_FRAME) { s 252 libavcodec/mpegvideo_xvmc.c if (s->picture_structure == PICT_FRAME) { s 254 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][0][0] = s->mv[0][0][0]; // top from top s 255 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][0][1] = s->mv[0][0][1] << 1; s 257 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][1][0] = s->mv[0][0][0]; // bottom from bottom s 258 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][1][1] = s->mv[0][0][1] << 1; s 260 libavcodec/mpegvideo_xvmc.c mv_block->PMV[1][0][0] = s->mv[0][2][0]; // dmv00, top from bottom s 261 libavcodec/mpegvideo_xvmc.c mv_block->PMV[1][0][1] = s->mv[0][2][1] << 1; // dmv01 s 263 libavcodec/mpegvideo_xvmc.c mv_block->PMV[1][1][0] = s->mv[0][3][0]; // dmv10, bottom from top s 264 libavcodec/mpegvideo_xvmc.c mv_block->PMV[1][1][1] = s->mv[0][3][1] << 1; // dmv11 s 267 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][1][0] = s->mv[0][2][0]; // dmv00 s 268 libavcodec/mpegvideo_xvmc.c mv_block->PMV[0][1][1] = s->mv[0][2][1]; // dmv01 s 278 libavcodec/mpegvideo_xvmc.c if (s->mv_type == MV_TYPE_FIELD || s->mv_type == MV_TYPE_16X8) { s 279 libavcodec/mpegvideo_xvmc.c mv_block->motion_vertical_field_select |= s->field_select[0][0]; s 280 libavcodec/mpegvideo_xvmc.c mv_block->motion_vertical_field_select |= s->field_select[1][0] << 1; s 281 libavcodec/mpegvideo_xvmc.c mv_block->motion_vertical_field_select |= s->field_select[0][1] << 2; s 282 libavcodec/mpegvideo_xvmc.c mv_block->motion_vertical_field_select |= s->field_select[1][1] << 3; s 289 libavcodec/mpegvideo_xvmc.c if (s->chroma_format >= 2) { s 290 libavcodec/mpegvideo_xvmc.c blocks_per_mb = 4 + (1 << s->chroma_format); s 297 libavcodec/mpegvideo_xvmc.c if (s->block_last_index[i] >= 0) s 301 libavcodec/mpegvideo_xvmc.c if (s->avctx->flags & AV_CODEC_FLAG_GRAY) { s 302 libavcodec/mpegvideo_xvmc.c if (s->mb_intra) { // intra frames are always full chroma blocks s 304 libavcodec/mpegvideo_xvmc.c memset(s->pblocks[i], 0, sizeof(*s->pblocks[i])); // so we need to clear them s 306 libavcodec/mpegvideo_xvmc.c *s->pblocks[i][0] = 1 << 10; s 318 libavcodec/mpegvideo_xvmc.c if (s->block_last_index[i] >= 0) { s 320 libavcodec/mpegvideo_xvmc.c if (s->mb_intra && (render->idct || !render->unsigned_intra)) s 321 libavcodec/mpegvideo_xvmc.c *s->pblocks[i][0] -= 1 << 10; s 323 libavcodec/mpegvideo_xvmc.c s->idsp.idct(*s->pblocks[i]); s 330 libavcodec/mpegvideo_xvmc.c if (!s->pack_pblocks) { s 332 libavcodec/mpegvideo_xvmc.c s->pblocks[i], sizeof(*s->pblocks[i])); s 347 libavcodec/mpegvideo_xvmc.c ff_mpeg_draw_horiz_band(s, 0, 0); s 52 libavcodec/mpegvideodsp.c const int s = 1 << shift; s 66 libavcodec/mpegvideodsp.c int frac_x = src_x & (s - 1); s 67 libavcodec/mpegvideodsp.c int frac_y = src_y & (s - 1); s 76 libavcodec/mpegvideodsp.c ((src[index] * (s - frac_x) + s 77 libavcodec/mpegvideodsp.c src[index + 1] * frac_x) * (s - frac_y) + s 78 libavcodec/mpegvideodsp.c (src[index + stride] * (s - frac_x) + s 84 libavcodec/mpegvideodsp.c ((src[index] * (s - frac_x) + s 85 libavcodec/mpegvideodsp.c src[index + 1] * frac_x) * s + s 92 libavcodec/mpegvideodsp.c ((src[index] * (s - frac_y) + s 93 libavcodec/mpegvideodsp.c src[index + stride] * frac_y) * s + s 62 libavcodec/mpegvideoencdsp.c int s = 0, i, j; s 66 libavcodec/mpegvideoencdsp.c s += pix[0]; s 67 libavcodec/mpegvideoencdsp.c s += pix[1]; s 68 libavcodec/mpegvideoencdsp.c s += pix[2]; s 69 libavcodec/mpegvideoencdsp.c s += pix[3]; s 70 libavcodec/mpegvideoencdsp.c s += pix[4]; s 71 libavcodec/mpegvideoencdsp.c s += pix[5]; s 72 libavcodec/mpegvideoencdsp.c s += pix[6]; s 73 libavcodec/mpegvideoencdsp.c s += pix[7]; s 78 libavcodec/mpegvideoencdsp.c return s; s 83 libavcodec/mpegvideoencdsp.c int s = 0, i, j; s 90 libavcodec/mpegvideoencdsp.c s += sq[x & 0xff]; s 91 libavcodec/mpegvideoencdsp.c s += sq[(x >> 8) & 0xff]; s 92 libavcodec/mpegvideoencdsp.c s += sq[(x >> 16) & 0xff]; s 93 libavcodec/mpegvideoencdsp.c s += sq[(x >> 24) & 0xff]; s 94 libavcodec/mpegvideoencdsp.c s += sq[(x >> 32) & 0xff]; s 95 libavcodec/mpegvideoencdsp.c s += sq[(x >> 40) & 0xff]; s 96 libavcodec/mpegvideoencdsp.c s += sq[(x >> 48) & 0xff]; s 97 libavcodec/mpegvideoencdsp.c s += sq[(x >> 56) & 0xff]; s 100 libavcodec/mpegvideoencdsp.c s += sq[x & 0xff]; s 101 libavcodec/mpegvideoencdsp.c s += sq[(x >> 8) & 0xff]; s 102 libavcodec/mpegvideoencdsp.c s += sq[(x >> 16) & 0xff]; s 103 libavcodec/mpegvideoencdsp.c s += sq[(x >> 24) & 0xff]; s 105 libavcodec/mpegvideoencdsp.c s += sq[x & 0xff]; s 106 libavcodec/mpegvideoencdsp.c s += sq[(x >> 8) & 0xff]; s 107 libavcodec/mpegvideoencdsp.c s += sq[(x >> 16) & 0xff]; s 108 libavcodec/mpegvideoencdsp.c s += sq[(x >> 24) & 0xff]; s 114 libavcodec/mpegvideoencdsp.c return s; s 72 libavcodec/mpl2dec.c FFASSDecoderContext *s = avctx->priv_data; s 76 libavcodec/mpl2dec.c ret = ff_ass_add_rect(sub, buf.str, s->readorder++, 0, NULL, NULL); s 46 libavcodec/mscc.c MSCCContext *s = avctx->priv_data; s 93 libavcodec/mscc.c bytestream2_seek_p(pb, y * avctx->width * s->bpp, SEEK_SET); s 101 libavcodec/mscc.c bytestream2_seek_p(pb, y * avctx->width * s->bpp + x * s->bpp, SEEK_SET); s 120 libavcodec/mscc.c if (s->bpp == 1 && (copy & 1)) s 134 libavcodec/mscc.c MSCCContext *s = avctx->priv_data; s 161 libavcodec/mscc.c s->pal[j] = 0xFF000000 | AV_RL32(pal + j * 4); s 165 libavcodec/mscc.c memcpy(frame->data[1], s->pal, AVPALETTE_SIZE); s 168 libavcodec/mscc.c ret = inflateReset(&s->zstream); s 173 libavcodec/mscc.c s->zstream.next_in = buf; s 174 libavcodec/mscc.c s->zstream.avail_in = buf_size; s 175 libavcodec/mscc.c s->zstream.next_out = s->decomp_buf; s 176 libavcodec/mscc.c s->zstream.avail_out = s->decomp_size; s 177 libavcodec/mscc.c ret = inflate(&s->zstream, Z_FINISH); s 183 libavcodec/mscc.c bytestream2_init(&gb, s->decomp_buf, s->zstream.total_out); s 184 libavcodec/mscc.c bytestream2_init_writer(&pb, s->uncomp_buf, s->uncomp_size); s 192 libavcodec/mscc.c s->uncomp_buf + s->bpp * j * avctx->width, s->bpp * avctx->width); s 205 libavcodec/mscc.c MSCCContext *s = avctx->priv_data; s 218 libavcodec/mscc.c s->bpp = avctx->bits_per_coded_sample >> 3; s 221 libavcodec/mscc.c s->decomp_size = 2 * avctx->height * stride; s 222 libavcodec/mscc.c if (!(s->decomp_buf = av_malloc(s->decomp_size))) s 225 libavcodec/mscc.c s->uncomp_size = avctx->height * stride; s 226 libavcodec/mscc.c if (!(s->uncomp_buf = av_malloc(s->uncomp_size))) s 229 libavcodec/mscc.c s->zstream.zalloc = Z_NULL; s 230 libavcodec/mscc.c s->zstream.zfree = Z_NULL; s 231 libavcodec/mscc.c s->zstream.opaque = Z_NULL; s 232 libavcodec/mscc.c zret = inflateInit(&s->zstream); s 243 libavcodec/mscc.c MSCCContext *s = avctx->priv_data; s 245 libavcodec/mscc.c av_freep(&s->decomp_buf); s 246 libavcodec/mscc.c s->decomp_size = 0; s 247 libavcodec/mscc.c av_freep(&s->uncomp_buf); s 248 libavcodec/mscc.c s->uncomp_size = 0; s 249 libavcodec/mscc.c inflateEnd(&s->zstream); s 109 libavcodec/msmpeg4.c av_cold void ff_msmpeg4_common_init(MpegEncContext *s) s 111 libavcodec/msmpeg4.c switch(s->msmpeg4_version){ s 114 libavcodec/msmpeg4.c s->y_dc_scale_table= s 115 libavcodec/msmpeg4.c s->c_dc_scale_table= ff_mpeg1_dc_scale_table; s 118 libavcodec/msmpeg4.c if(s->workaround_bugs){ s 119 libavcodec/msmpeg4.c s->y_dc_scale_table= ff_old_ff_y_dc_scale_table; s 120 libavcodec/msmpeg4.c s->c_dc_scale_table= ff_wmv1_c_dc_scale_table; s 122 libavcodec/msmpeg4.c s->y_dc_scale_table= ff_mpeg4_y_dc_scale_table; s 123 libavcodec/msmpeg4.c s->c_dc_scale_table= ff_mpeg4_c_dc_scale_table; s 128 libavcodec/msmpeg4.c s->y_dc_scale_table= ff_wmv1_y_dc_scale_table; s 129 libavcodec/msmpeg4.c s->c_dc_scale_table= ff_wmv1_c_dc_scale_table; s 133 libavcodec/msmpeg4.c s->y_dc_scale_table= ff_wmv3_dc_scale_table; s 134 libavcodec/msmpeg4.c s->c_dc_scale_table= ff_wmv3_dc_scale_table; s 141 libavcodec/msmpeg4.c if(s->msmpeg4_version>=4){ s 142 libavcodec/msmpeg4.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_wmv1_scantable[1]); s 143 libavcodec/msmpeg4.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_h_scantable, ff_wmv1_scantable[2]); s 144 libavcodec/msmpeg4.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_v_scantable, ff_wmv1_scantable[3]); s 145 libavcodec/msmpeg4.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, ff_wmv1_scantable[0]); s 153 libavcodec/msmpeg4.c int ff_msmpeg4_coded_block_pred(MpegEncContext * s, int n, uint8_t **coded_block_ptr) s 157 libavcodec/msmpeg4.c xy = s->block_index[n]; s 158 libavcodec/msmpeg4.c wrap = s->b8_stride; s 163 libavcodec/msmpeg4.c a = s->coded_block[xy - 1 ]; s 164 libavcodec/msmpeg4.c b = s->coded_block[xy - 1 - wrap]; s 165 libavcodec/msmpeg4.c c = s->coded_block[xy - wrap]; s 174 libavcodec/msmpeg4.c *coded_block_ptr = &s->coded_block[xy]; s 193 libavcodec/msmpeg4.c int ff_msmpeg4_pred_dc(MpegEncContext *s, int n, s 201 libavcodec/msmpeg4.c scale = s->y_dc_scale; s 203 libavcodec/msmpeg4.c scale = s->c_dc_scale; s 206 libavcodec/msmpeg4.c wrap = s->block_wrap[n]; s 207 libavcodec/msmpeg4.c dc_val= s->dc_val[0] + s->block_index[n]; s 216 libavcodec/msmpeg4.c if(s->first_slice_line && (n&2)==0 && s->msmpeg4_version<4){ s 257 libavcodec/msmpeg4.c if(s->msmpeg4_version>3){ s 258 libavcodec/msmpeg4.c if(s->inter_intra_pred){ s 277 libavcodec/msmpeg4.c int bs = 8 >> s->avctx->lowres; s 279 libavcodec/msmpeg4.c wrap= s->linesize; s 280 libavcodec/msmpeg4.c dest= s->current_picture.f->data[0] + (((n >> 1) + 2*s->mb_y) * bs* wrap ) + ((n & 1) + 2*s->mb_x) * bs; s 282 libavcodec/msmpeg4.c wrap= s->uvlinesize; s 283 libavcodec/msmpeg4.c dest= s->current_picture.f->data[n - 3] + (s->mb_y * bs * wrap) + s->mb_x * bs; s 285 libavcodec/msmpeg4.c if(s->mb_x==0) a= (1024 + (scale>>1))/scale; s 286 libavcodec/msmpeg4.c else a= get_dc(dest-bs, wrap, scale*8>>(2*s->avctx->lowres), bs); s 287 libavcodec/msmpeg4.c if(s->mb_y==0) c= (1024 + (scale>>1))/scale; s 288 libavcodec/msmpeg4.c else c= get_dc(dest-bs*wrap, wrap, scale*8>>(2*s->avctx->lowres), bs); s 290 libavcodec/msmpeg4.c if (s->h263_aic_dir==0) { s 293 libavcodec/msmpeg4.c }else if (s->h263_aic_dir==1) { s 301 libavcodec/msmpeg4.c }else if (s->h263_aic_dir==2) { s 46 libavcodec/msmpeg4.h void ff_msmpeg4_common_init(MpegEncContext *s); s 47 libavcodec/msmpeg4.h void ff_msmpeg4_encode_block(MpegEncContext * s, int16_t * block, int n); s 48 libavcodec/msmpeg4.h void ff_msmpeg4_handle_slices(MpegEncContext *s); s 49 libavcodec/msmpeg4.h void ff_msmpeg4_encode_motion(MpegEncContext * s, int mx, int my); s 50 libavcodec/msmpeg4.h int ff_msmpeg4_coded_block_pred(MpegEncContext * s, int n, s 53 libavcodec/msmpeg4.h int ff_msmpeg4_encode_init(MpegEncContext *s); s 54 libavcodec/msmpeg4.h void ff_msmpeg4_encode_picture_header(MpegEncContext *s, int picture_number); s 55 libavcodec/msmpeg4.h void ff_msmpeg4_encode_ext_header(MpegEncContext *s); s 56 libavcodec/msmpeg4.h void ff_msmpeg4_encode_mb(MpegEncContext *s, int16_t block[6][64], s 60 libavcodec/msmpeg4.h int ff_msmpeg4_decode_picture_header(MpegEncContext *s); s 61 libavcodec/msmpeg4.h int ff_msmpeg4_decode_ext_header(MpegEncContext *s, int buf_size); s 62 libavcodec/msmpeg4.h int ff_msmpeg4_decode_motion(MpegEncContext * s, int *mx_ptr, int *my_ptr); s 63 libavcodec/msmpeg4.h int ff_msmpeg4_decode_block(MpegEncContext * s, int16_t * block, s 65 libavcodec/msmpeg4.h int ff_msmpeg4_pred_dc(MpegEncContext *s, int n, s 46 libavcodec/msmpeg4dec.c static inline int msmpeg4v1_pred_dc(MpegEncContext * s, int n, s 57 libavcodec/msmpeg4dec.c *dc_val_ptr= &s->last_dc[i]; s 58 libavcodec/msmpeg4dec.c return s->last_dc[i]; s 73 libavcodec/msmpeg4dec.c static int msmpeg4v2_decode_motion(MpegEncContext * s, int pred, int f_code) s 77 libavcodec/msmpeg4dec.c code = get_vlc2(&s->gb, v2_mv_vlc.table, V2_MV_VLC_BITS, 2); s 78 libavcodec/msmpeg4dec.c ff_dlog(s, "MV code %d at %d %d pred: %d\n", code, s->mb_x,s->mb_y, pred); s 84 libavcodec/msmpeg4dec.c sign = get_bits1(&s->gb); s 89 libavcodec/msmpeg4dec.c val |= get_bits(&s->gb, shift); s 104 libavcodec/msmpeg4dec.c static int msmpeg4v12_decode_mb(MpegEncContext *s, int16_t block[6][64]) s 107 libavcodec/msmpeg4dec.c uint32_t * const mb_type_ptr = &s->current_picture.mb_type[s->mb_x + s->mb_y*s->mb_stride]; s 109 libavcodec/msmpeg4dec.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 110 libavcodec/msmpeg4dec.c if (s->use_skip_mb_code) { s 111 libavcodec/msmpeg4dec.c if (get_bits1(&s->gb)) { s 113 libavcodec/msmpeg4dec.c s->mb_intra = 0; s 115 libavcodec/msmpeg4dec.c s->block_last_index[i] = -1; s 116 libavcodec/msmpeg4dec.c s->mv_dir = MV_DIR_FORWARD; s 117 libavcodec/msmpeg4dec.c s->mv_type = MV_TYPE_16X16; s 118 libavcodec/msmpeg4dec.c s->mv[0][0][0] = 0; s 119 libavcodec/msmpeg4dec.c s->mv[0][0][1] = 0; s 120 libavcodec/msmpeg4dec.c s->mb_skipped = 1; s 126 libavcodec/msmpeg4dec.c if(s->msmpeg4_version==2) s 127 libavcodec/msmpeg4dec.c code = get_vlc2(&s->gb, v2_mb_type_vlc.table, V2_MB_TYPE_VLC_BITS, 1); s 129 libavcodec/msmpeg4dec.c code = get_vlc2(&s->gb, ff_h263_inter_MCBPC_vlc.table, INTER_MCBPC_VLC_BITS, 2); s 131 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "cbpc %d invalid at %d %d\n", code, s->mb_x, s->mb_y); s 135 libavcodec/msmpeg4dec.c s->mb_intra = code >>2; s 139 libavcodec/msmpeg4dec.c s->mb_intra = 1; s 140 libavcodec/msmpeg4dec.c if(s->msmpeg4_version==2) s 141 libavcodec/msmpeg4dec.c cbp= get_vlc2(&s->gb, v2_intra_cbpc_vlc.table, V2_INTRA_CBPC_VLC_BITS, 1); s 143 libavcodec/msmpeg4dec.c cbp= get_vlc2(&s->gb, ff_h263_intra_MCBPC_vlc.table, INTRA_MCBPC_VLC_BITS, 2); s 145 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "cbpc %d invalid at %d %d\n", cbp, s->mb_x, s->mb_y); s 150 libavcodec/msmpeg4dec.c if (!s->mb_intra) { s 153 libavcodec/msmpeg4dec.c cbpy= get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 155 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "cbpy %d invalid at %d %d\n", cbp, s->mb_x, s->mb_y); s 160 libavcodec/msmpeg4dec.c if(s->msmpeg4_version==1 || (cbp&3) != 3) cbp^= 0x3C; s 162 libavcodec/msmpeg4dec.c ff_h263_pred_motion(s, 0, 0, &mx, &my); s 163 libavcodec/msmpeg4dec.c mx= msmpeg4v2_decode_motion(s, mx, 1); s 164 libavcodec/msmpeg4dec.c my= msmpeg4v2_decode_motion(s, my, 1); s 166 libavcodec/msmpeg4dec.c s->mv_dir = MV_DIR_FORWARD; s 167 libavcodec/msmpeg4dec.c s->mv_type = MV_TYPE_16X16; s 168 libavcodec/msmpeg4dec.c s->mv[0][0][0] = mx; s 169 libavcodec/msmpeg4dec.c s->mv[0][0][1] = my; s 173 libavcodec/msmpeg4dec.c if(s->msmpeg4_version==2){ s 174 libavcodec/msmpeg4dec.c s->ac_pred = get_bits1(&s->gb); s 175 libavcodec/msmpeg4dec.c v = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 177 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "cbpy vlc invalid\n"); s 182 libavcodec/msmpeg4dec.c s->ac_pred = 0; s 183 libavcodec/msmpeg4dec.c v = get_vlc2(&s->gb, ff_h263_cbpy_vlc.table, CBPY_VLC_BITS, 1); s 185 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "cbpy vlc invalid\n"); s 189 libavcodec/msmpeg4dec.c if(s->pict_type==AV_PICTURE_TYPE_P) cbp^=0x3C; s 194 libavcodec/msmpeg4dec.c s->bdsp.clear_blocks(s->block[0]); s 196 libavcodec/msmpeg4dec.c if (ff_msmpeg4_decode_block(s, block[i], i, (cbp >> (5 - i)) & 1, NULL) < 0) s 198 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "\nerror while decoding block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); s 205 libavcodec/msmpeg4dec.c static int msmpeg4v34_decode_mb(MpegEncContext *s, int16_t block[6][64]) s 209 libavcodec/msmpeg4dec.c uint32_t * const mb_type_ptr = &s->current_picture.mb_type[s->mb_x + s->mb_y*s->mb_stride]; s 211 libavcodec/msmpeg4dec.c if (get_bits_left(&s->gb) <= 0) s 214 libavcodec/msmpeg4dec.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 215 libavcodec/msmpeg4dec.c if (s->use_skip_mb_code) { s 216 libavcodec/msmpeg4dec.c if (get_bits1(&s->gb)) { s 218 libavcodec/msmpeg4dec.c s->mb_intra = 0; s 220 libavcodec/msmpeg4dec.c s->block_last_index[i] = -1; s 221 libavcodec/msmpeg4dec.c s->mv_dir = MV_DIR_FORWARD; s 222 libavcodec/msmpeg4dec.c s->mv_type = MV_TYPE_16X16; s 223 libavcodec/msmpeg4dec.c s->mv[0][0][0] = 0; s 224 libavcodec/msmpeg4dec.c s->mv[0][0][1] = 0; s 225 libavcodec/msmpeg4dec.c s->mb_skipped = 1; s 232 libavcodec/msmpeg4dec.c code = get_vlc2(&s->gb, ff_mb_non_intra_vlc[DEFAULT_INTER_INDEX].table, MB_NON_INTRA_VLC_BITS, 3); s 236 libavcodec/msmpeg4dec.c s->mb_intra = (~code & 0x40) >> 6; s 240 libavcodec/msmpeg4dec.c s->mb_intra = 1; s 241 libavcodec/msmpeg4dec.c code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); s 249 libavcodec/msmpeg4dec.c int pred = ff_msmpeg4_coded_block_pred(s, i, &coded_val); s 257 libavcodec/msmpeg4dec.c if (!s->mb_intra) { s 259 libavcodec/msmpeg4dec.c if(s->per_mb_rl_table && cbp){ s 260 libavcodec/msmpeg4dec.c s->rl_table_index = decode012(&s->gb); s 261 libavcodec/msmpeg4dec.c s->rl_chroma_table_index = s->rl_table_index; s 263 libavcodec/msmpeg4dec.c ff_h263_pred_motion(s, 0, 0, &mx, &my); s 264 libavcodec/msmpeg4dec.c if (ff_msmpeg4_decode_motion(s, &mx, &my) < 0) s 266 libavcodec/msmpeg4dec.c s->mv_dir = MV_DIR_FORWARD; s 267 libavcodec/msmpeg4dec.c s->mv_type = MV_TYPE_16X16; s 268 libavcodec/msmpeg4dec.c s->mv[0][0][0] = mx; s 269 libavcodec/msmpeg4dec.c s->mv[0][0][1] = my; s 272 libavcodec/msmpeg4dec.c ff_dlog(s, "I at %d %d %d %06X\n", s->mb_x, s->mb_y, s 274 libavcodec/msmpeg4dec.c show_bits(&s->gb, 24)); s 275 libavcodec/msmpeg4dec.c s->ac_pred = get_bits1(&s->gb); s 277 libavcodec/msmpeg4dec.c if(s->inter_intra_pred){ s 278 libavcodec/msmpeg4dec.c s->h263_aic_dir= get_vlc2(&s->gb, ff_inter_intra_vlc.table, INTER_INTRA_VLC_BITS, 1); s 279 libavcodec/msmpeg4dec.c ff_dlog(s, "%d%d %d %d/", s 280 libavcodec/msmpeg4dec.c s->ac_pred, s->h263_aic_dir, s->mb_x, s->mb_y); s 282 libavcodec/msmpeg4dec.c if(s->per_mb_rl_table && cbp){ s 283 libavcodec/msmpeg4dec.c s->rl_table_index = decode012(&s->gb); s 284 libavcodec/msmpeg4dec.c s->rl_chroma_table_index = s->rl_table_index; s 288 libavcodec/msmpeg4dec.c s->bdsp.clear_blocks(s->block[0]); s 290 libavcodec/msmpeg4dec.c if (ff_msmpeg4_decode_block(s, block[i], i, (cbp >> (5 - i)) & 1, NULL) < 0) s 292 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "\nerror while decoding block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); s 303 libavcodec/msmpeg4dec.c MpegEncContext *s = avctx->priv_data; s 314 libavcodec/msmpeg4dec.c ff_msmpeg4_common_init(s); s 389 libavcodec/msmpeg4dec.c switch(s->msmpeg4_version){ s 392 libavcodec/msmpeg4dec.c s->decode_mb= msmpeg4v12_decode_mb; s 396 libavcodec/msmpeg4dec.c s->decode_mb= msmpeg4v34_decode_mb; s 400 libavcodec/msmpeg4dec.c s->decode_mb= ff_wmv2_decode_mb; s 406 libavcodec/msmpeg4dec.c s->slice_height= s->mb_height; //to avoid 1/0 if the first frame is not a keyframe s 411 libavcodec/msmpeg4dec.c int ff_msmpeg4_decode_picture_header(MpegEncContext * s) s 420 libavcodec/msmpeg4dec.c if (get_bits_left(&s->gb) * 8LL < (s->width+15)/16 * ((s->height+15)/16)) s 423 libavcodec/msmpeg4dec.c if(s->msmpeg4_version==1){ s 424 libavcodec/msmpeg4dec.c int start_code = get_bits_long(&s->gb, 32); s 426 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "invalid startcode\n"); s 430 libavcodec/msmpeg4dec.c skip_bits(&s->gb, 5); // frame number */ s 433 libavcodec/msmpeg4dec.c s->pict_type = get_bits(&s->gb, 2) + 1; s 434 libavcodec/msmpeg4dec.c if (s->pict_type != AV_PICTURE_TYPE_I && s 435 libavcodec/msmpeg4dec.c s->pict_type != AV_PICTURE_TYPE_P){ s 436 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "invalid picture type\n"); s 439 libavcodec/msmpeg4dec.c s->chroma_qscale= s->qscale = get_bits(&s->gb, 5); s 440 libavcodec/msmpeg4dec.c if(s->qscale==0){ s 441 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "invalid qscale\n"); s 445 libavcodec/msmpeg4dec.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 446 libavcodec/msmpeg4dec.c code = get_bits(&s->gb, 5); s 447 libavcodec/msmpeg4dec.c if(s->msmpeg4_version==1){ s 448 libavcodec/msmpeg4dec.c if(code==0 || code>s->mb_height){ s 449 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "invalid slice height %d\n", code); s 453 libavcodec/msmpeg4dec.c s->slice_height = code; s 457 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "error, slice code was %X\n", code); s 461 libavcodec/msmpeg4dec.c s->slice_height = s->mb_height / (code - 0x16); s 464 libavcodec/msmpeg4dec.c switch(s->msmpeg4_version){ s 467 libavcodec/msmpeg4dec.c s->rl_chroma_table_index = 2; s 468 libavcodec/msmpeg4dec.c s->rl_table_index = 2; s 470 libavcodec/msmpeg4dec.c s->dc_table_index = 0; //not used s 473 libavcodec/msmpeg4dec.c s->rl_chroma_table_index = decode012(&s->gb); s 474 libavcodec/msmpeg4dec.c s->rl_table_index = decode012(&s->gb); s 476 libavcodec/msmpeg4dec.c s->dc_table_index = get_bits1(&s->gb); s 479 libavcodec/msmpeg4dec.c ff_msmpeg4_decode_ext_header(s, (2+5+5+17+7)/8); s 481 libavcodec/msmpeg4dec.c if(s->bit_rate > MBAC_BITRATE) s->per_mb_rl_table= get_bits1(&s->gb); s 482 libavcodec/msmpeg4dec.c else s->per_mb_rl_table= 0; s 484 libavcodec/msmpeg4dec.c if(!s->per_mb_rl_table){ s 485 libavcodec/msmpeg4dec.c s->rl_chroma_table_index = decode012(&s->gb); s 486 libavcodec/msmpeg4dec.c s->rl_table_index = decode012(&s->gb); s 489 libavcodec/msmpeg4dec.c s->dc_table_index = get_bits1(&s->gb); s 490 libavcodec/msmpeg4dec.c s->inter_intra_pred= 0; s 493 libavcodec/msmpeg4dec.c s->no_rounding = 1; s 494 libavcodec/msmpeg4dec.c if(s->avctx->debug&FF_DEBUG_PICT_INFO) s 495 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_DEBUG, "qscale:%d rlc:%d rl:%d dc:%d mbrl:%d slice:%d \n", s 496 libavcodec/msmpeg4dec.c s->qscale, s 497 libavcodec/msmpeg4dec.c s->rl_chroma_table_index, s 498 libavcodec/msmpeg4dec.c s->rl_table_index, s 499 libavcodec/msmpeg4dec.c s->dc_table_index, s 500 libavcodec/msmpeg4dec.c s->per_mb_rl_table, s 501 libavcodec/msmpeg4dec.c s->slice_height); s 503 libavcodec/msmpeg4dec.c switch(s->msmpeg4_version){ s 506 libavcodec/msmpeg4dec.c if(s->msmpeg4_version==1) s 507 libavcodec/msmpeg4dec.c s->use_skip_mb_code = 1; s 509 libavcodec/msmpeg4dec.c s->use_skip_mb_code = get_bits1(&s->gb); s 510 libavcodec/msmpeg4dec.c s->rl_table_index = 2; s 511 libavcodec/msmpeg4dec.c s->rl_chroma_table_index = s->rl_table_index; s 512 libavcodec/msmpeg4dec.c s->dc_table_index = 0; //not used s 513 libavcodec/msmpeg4dec.c s->mv_table_index = 0; s 516 libavcodec/msmpeg4dec.c s->use_skip_mb_code = get_bits1(&s->gb); s 517 libavcodec/msmpeg4dec.c s->rl_table_index = decode012(&s->gb); s 518 libavcodec/msmpeg4dec.c s->rl_chroma_table_index = s->rl_table_index; s 520 libavcodec/msmpeg4dec.c s->dc_table_index = get_bits1(&s->gb); s 522 libavcodec/msmpeg4dec.c s->mv_table_index = get_bits1(&s->gb); s 525 libavcodec/msmpeg4dec.c s->use_skip_mb_code = get_bits1(&s->gb); s 527 libavcodec/msmpeg4dec.c if(s->bit_rate > MBAC_BITRATE) s->per_mb_rl_table= get_bits1(&s->gb); s 528 libavcodec/msmpeg4dec.c else s->per_mb_rl_table= 0; s 530 libavcodec/msmpeg4dec.c if(!s->per_mb_rl_table){ s 531 libavcodec/msmpeg4dec.c s->rl_table_index = decode012(&s->gb); s 532 libavcodec/msmpeg4dec.c s->rl_chroma_table_index = s->rl_table_index; s 535 libavcodec/msmpeg4dec.c s->dc_table_index = get_bits1(&s->gb); s 537 libavcodec/msmpeg4dec.c s->mv_table_index = get_bits1(&s->gb); s 538 libavcodec/msmpeg4dec.c s->inter_intra_pred= (s->width*s->height < 320*240 && s->bit_rate<=II_BITRATE); s 542 libavcodec/msmpeg4dec.c if(s->avctx->debug&FF_DEBUG_PICT_INFO) s 543 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_DEBUG, "skip:%d rl:%d rlc:%d dc:%d mv:%d mbrl:%d qp:%d \n", s 544 libavcodec/msmpeg4dec.c s->use_skip_mb_code, s 545 libavcodec/msmpeg4dec.c s->rl_table_index, s 546 libavcodec/msmpeg4dec.c s->rl_chroma_table_index, s 547 libavcodec/msmpeg4dec.c s->dc_table_index, s 548 libavcodec/msmpeg4dec.c s->mv_table_index, s 549 libavcodec/msmpeg4dec.c s->per_mb_rl_table, s 550 libavcodec/msmpeg4dec.c s->qscale); s 552 libavcodec/msmpeg4dec.c if(s->flipflop_rounding){ s 553 libavcodec/msmpeg4dec.c s->no_rounding ^= 1; s 555 libavcodec/msmpeg4dec.c s->no_rounding = 0; s 558 libavcodec/msmpeg4dec.c ff_dlog(s->avctx, "%d %"PRId64" %d %d %d\n", s->pict_type, s->bit_rate, s 559 libavcodec/msmpeg4dec.c s->inter_intra_pred, s->width, s->height); s 561 libavcodec/msmpeg4dec.c s->esc3_level_length= 0; s 562 libavcodec/msmpeg4dec.c s->esc3_run_length= 0; s 567 libavcodec/msmpeg4dec.c int ff_msmpeg4_decode_ext_header(MpegEncContext * s, int buf_size) s 569 libavcodec/msmpeg4dec.c int left= buf_size*8 - get_bits_count(&s->gb); s 570 libavcodec/msmpeg4dec.c int length= s->msmpeg4_version>=3 ? 17 : 16; s 574 libavcodec/msmpeg4dec.c skip_bits(&s->gb, 5); /* fps */ s 575 libavcodec/msmpeg4dec.c s->bit_rate= get_bits(&s->gb, 11)*1024; s 576 libavcodec/msmpeg4dec.c if(s->msmpeg4_version>=3) s 577 libavcodec/msmpeg4dec.c s->flipflop_rounding= get_bits1(&s->gb); s 579 libavcodec/msmpeg4dec.c s->flipflop_rounding= 0; s 583 libavcodec/msmpeg4dec.c s->flipflop_rounding= 0; s 584 libavcodec/msmpeg4dec.c if(s->msmpeg4_version != 2) s 585 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "ext header missing, %d left\n", left); s 589 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "I-frame too long, ignoring ext header\n"); s 595 libavcodec/msmpeg4dec.c static int msmpeg4_decode_dc(MpegEncContext * s, int n, int *dir_ptr) s 599 libavcodec/msmpeg4dec.c if(s->msmpeg4_version<=2){ s 601 libavcodec/msmpeg4dec.c level = get_vlc2(&s->gb, v2_dc_lum_vlc.table, DC_VLC_BITS, 3); s 603 libavcodec/msmpeg4dec.c level = get_vlc2(&s->gb, v2_dc_chroma_vlc.table, DC_VLC_BITS, 3); s 606 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "illegal dc vlc\n"); s 613 libavcodec/msmpeg4dec.c level = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); s 615 libavcodec/msmpeg4dec.c level = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); s 618 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "illegal dc vlc\n"); s 624 libavcodec/msmpeg4dec.c level = get_bits(&s->gb, 8); s 625 libavcodec/msmpeg4dec.c if (get_bits1(&s->gb)) s 628 libavcodec/msmpeg4dec.c if (get_bits1(&s->gb)) s 633 libavcodec/msmpeg4dec.c if(s->msmpeg4_version==1){ s 635 libavcodec/msmpeg4dec.c pred = msmpeg4v1_pred_dc(s, n, &dc_val); s 642 libavcodec/msmpeg4dec.c pred = ff_msmpeg4_pred_dc(s, n, &dc_val, dir_ptr); s 647 libavcodec/msmpeg4dec.c *dc_val = level * s->y_dc_scale; s 649 libavcodec/msmpeg4dec.c *dc_val = level * s->c_dc_scale; s 656 libavcodec/msmpeg4dec.c int ff_msmpeg4_decode_block(MpegEncContext * s, int16_t * block, s 665 libavcodec/msmpeg4dec.c if (s->mb_intra) { s 670 libavcodec/msmpeg4dec.c level = msmpeg4_decode_dc(s, n, &dc_pred_dir); s 673 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "dc overflow- block: %d qscale: %d//\n", n, s->qscale); s 674 libavcodec/msmpeg4dec.c if(s->inter_intra_pred) level=0; s 677 libavcodec/msmpeg4dec.c rl = &ff_rl_table[s->rl_table_index]; s 678 libavcodec/msmpeg4dec.c if(level > 256*s->y_dc_scale){ s 679 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "dc overflow+ L qscale: %d//\n", s->qscale); s 680 libavcodec/msmpeg4dec.c if(!s->inter_intra_pred) return -1; s 683 libavcodec/msmpeg4dec.c rl = &ff_rl_table[3 + s->rl_chroma_table_index]; s 684 libavcodec/msmpeg4dec.c if(level > 256*s->c_dc_scale){ s 685 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "dc overflow+ C qscale: %d//\n", s->qscale); s 686 libavcodec/msmpeg4dec.c if(!s->inter_intra_pred) return -1; s 691 libavcodec/msmpeg4dec.c run_diff = s->msmpeg4_version >= 4; s 696 libavcodec/msmpeg4dec.c if (s->ac_pred) { s 698 libavcodec/msmpeg4dec.c scan_table = s->intra_v_scantable.permutated; /* left */ s 700 libavcodec/msmpeg4dec.c scan_table = s->intra_h_scantable.permutated; /* top */ s 702 libavcodec/msmpeg4dec.c scan_table = s->intra_scantable.permutated; s 706 libavcodec/msmpeg4dec.c qmul = s->qscale << 1; s 707 libavcodec/msmpeg4dec.c qadd = (s->qscale - 1) | 1; s 709 libavcodec/msmpeg4dec.c rl = &ff_rl_table[3 + s->rl_table_index]; s 711 libavcodec/msmpeg4dec.c if(s->msmpeg4_version==2) s 717 libavcodec/msmpeg4dec.c s->block_last_index[n] = i; s 721 libavcodec/msmpeg4dec.c scan_table = s->inter_scantable.permutated; s 722 libavcodec/msmpeg4dec.c rl_vlc= rl->rl_vlc[s->qscale]; s 725 libavcodec/msmpeg4dec.c OPEN_READER(re, &s->gb); s 727 libavcodec/msmpeg4dec.c UPDATE_CACHE(re, &s->gb); s 728 libavcodec/msmpeg4dec.c GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 0); s 731 libavcodec/msmpeg4dec.c cache= GET_CACHE(re, &s->gb); s 733 libavcodec/msmpeg4dec.c if (s->msmpeg4_version==1 || (cache&0x80000000)==0) { s 734 libavcodec/msmpeg4dec.c if (s->msmpeg4_version==1 || (cache&0x40000000)==0) { s 736 libavcodec/msmpeg4dec.c if(s->msmpeg4_version!=1) LAST_SKIP_BITS(re, &s->gb, 2); s 737 libavcodec/msmpeg4dec.c UPDATE_CACHE(re, &s->gb); s 738 libavcodec/msmpeg4dec.c if(s->msmpeg4_version<=3){ s 739 libavcodec/msmpeg4dec.c last= SHOW_UBITS(re, &s->gb, 1); SKIP_CACHE(re, &s->gb, 1); s 740 libavcodec/msmpeg4dec.c run= SHOW_UBITS(re, &s->gb, 6); SKIP_CACHE(re, &s->gb, 6); s 741 libavcodec/msmpeg4dec.c level= SHOW_SBITS(re, &s->gb, 8); s 742 libavcodec/msmpeg4dec.c SKIP_COUNTER(re, &s->gb, 1+6+8); s 745 libavcodec/msmpeg4dec.c last= SHOW_UBITS(re, &s->gb, 1); SKIP_BITS(re, &s->gb, 1); s 746 libavcodec/msmpeg4dec.c if(!s->esc3_level_length){ s 748 libavcodec/msmpeg4dec.c ff_dlog(s->avctx, "ESC-3 %X at %d %d\n", s 749 libavcodec/msmpeg4dec.c show_bits(&s->gb, 24), s->mb_x, s->mb_y); s 750 libavcodec/msmpeg4dec.c if(s->qscale<8){ s 751 libavcodec/msmpeg4dec.c ll= SHOW_UBITS(re, &s->gb, 3); SKIP_BITS(re, &s->gb, 3); s 753 libavcodec/msmpeg4dec.c ll= 8+SHOW_UBITS(re, &s->gb, 1); SKIP_BITS(re, &s->gb, 1); s 757 libavcodec/msmpeg4dec.c while(ll<8 && SHOW_UBITS(re, &s->gb, 1)==0){ s 759 libavcodec/msmpeg4dec.c SKIP_BITS(re, &s->gb, 1); s 761 libavcodec/msmpeg4dec.c if(ll<8) SKIP_BITS(re, &s->gb, 1); s 764 libavcodec/msmpeg4dec.c s->esc3_level_length= ll; s 765 libavcodec/msmpeg4dec.c s->esc3_run_length= SHOW_UBITS(re, &s->gb, 2) + 3; SKIP_BITS(re, &s->gb, 2); s 766 libavcodec/msmpeg4dec.c UPDATE_CACHE(re, &s->gb); s 768 libavcodec/msmpeg4dec.c run= SHOW_UBITS(re, &s->gb, s->esc3_run_length); s 769 libavcodec/msmpeg4dec.c SKIP_BITS(re, &s->gb, s->esc3_run_length); s 771 libavcodec/msmpeg4dec.c sign= SHOW_UBITS(re, &s->gb, 1); s 772 libavcodec/msmpeg4dec.c SKIP_BITS(re, &s->gb, 1); s 774 libavcodec/msmpeg4dec.c level= SHOW_UBITS(re, &s->gb, s->esc3_level_length); s 775 libavcodec/msmpeg4dec.c SKIP_BITS(re, &s->gb, s->esc3_level_length); s 786 libavcodec/msmpeg4dec.c SKIP_BITS(re, &s->gb, 2); s 787 libavcodec/msmpeg4dec.c GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 1); s 789 libavcodec/msmpeg4dec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); s 790 libavcodec/msmpeg4dec.c LAST_SKIP_BITS(re, &s->gb, 1); s 794 libavcodec/msmpeg4dec.c SKIP_BITS(re, &s->gb, 1); s 795 libavcodec/msmpeg4dec.c GET_RL_VLC(level, run, re, &s->gb, rl_vlc, TEX_VLC_BITS, 2, 1); s 798 libavcodec/msmpeg4dec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); s 799 libavcodec/msmpeg4dec.c LAST_SKIP_BITS(re, &s->gb, 1); s 803 libavcodec/msmpeg4dec.c level = (level ^ SHOW_SBITS(re, &s->gb, 1)) - SHOW_SBITS(re, &s->gb, 1); s 804 libavcodec/msmpeg4dec.c LAST_SKIP_BITS(re, &s->gb, 1); s 809 libavcodec/msmpeg4dec.c const int left= get_bits_left(&s->gb); s 811 libavcodec/msmpeg4dec.c !(s->avctx->err_recognition & (AV_EF_BITSTREAM|AV_EF_COMPLIANT))) && s 813 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "ignoring overflow at %d %d\n", s->mb_x, s->mb_y); s 817 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "ac-tex damaged at %d %d\n", s->mb_x, s->mb_y); s 828 libavcodec/msmpeg4dec.c CLOSE_READER(re, &s->gb); s 831 libavcodec/msmpeg4dec.c if (s->mb_intra) { s 832 libavcodec/msmpeg4dec.c ff_mpeg4_pred_ac(s, block, n, dc_pred_dir); s 833 libavcodec/msmpeg4dec.c if (s->ac_pred) { s 837 libavcodec/msmpeg4dec.c if(s->msmpeg4_version>=4 && i>0) i=63; //FIXME/XXX optimize s 838 libavcodec/msmpeg4dec.c s->block_last_index[n] = i; s 843 libavcodec/msmpeg4dec.c int ff_msmpeg4_decode_motion(MpegEncContext * s, s 849 libavcodec/msmpeg4dec.c mv = &ff_mv_tables[s->mv_table_index]; s 851 libavcodec/msmpeg4dec.c code = get_vlc2(&s->gb, mv->vlc.table, MV_VLC_BITS, 2); s 853 libavcodec/msmpeg4dec.c av_log(s->avctx, AV_LOG_ERROR, "illegal MV code at %d %d\n", s->mb_x, s->mb_y); s 857 libavcodec/msmpeg4dec.c mx = get_bits(&s->gb, 6); s 858 libavcodec/msmpeg4dec.c my = get_bits(&s->gb, 6); s 80 libavcodec/msmpeg4enc.c static int get_size_of_code(MpegEncContext * s, RLTable *rl, int last, int run, int level, int intra){ s 121 libavcodec/msmpeg4enc.c av_cold int ff_msmpeg4_encode_init(MpegEncContext *s) s 126 libavcodec/msmpeg4enc.c ff_msmpeg4_common_init(s); s 127 libavcodec/msmpeg4enc.c if(s->msmpeg4_version>=4){ s 128 libavcodec/msmpeg4enc.c s->min_qcoeff= -255; s 129 libavcodec/msmpeg4enc.c s->max_qcoeff= 255; s 149 libavcodec/msmpeg4enc.c rl_length[i][level][run][last]= get_size_of_code(s, &ff_rl_table[ i], last, run, level, 0); s 159 libavcodec/msmpeg4enc.c static void find_best_tables(MpegEncContext * s) s 180 libavcodec/msmpeg4enc.c int inter_count = s->ac_stats[0][0][level][run][last] + s->ac_stats[0][1][level][run][last]; s 181 libavcodec/msmpeg4enc.c int intra_luma_count = s->ac_stats[1][0][level][run][last]; s 182 libavcodec/msmpeg4enc.c int intra_chroma_count= s->ac_stats[1][1][level][run][last]; s 184 libavcodec/msmpeg4enc.c if(s->pict_type==AV_PICTURE_TYPE_I){ s 206 libavcodec/msmpeg4enc.c if(s->pict_type==AV_PICTURE_TYPE_P) chroma_best= best; s 208 libavcodec/msmpeg4enc.c memset(s->ac_stats, 0, sizeof(int)*(MAX_LEVEL+1)*(MAX_RUN+1)*2*2*2); s 210 libavcodec/msmpeg4enc.c s->rl_table_index = best; s 211 libavcodec/msmpeg4enc.c s->rl_chroma_table_index= chroma_best; s 213 libavcodec/msmpeg4enc.c if(s->pict_type != s->last_non_b_pict_type){ s 214 libavcodec/msmpeg4enc.c s->rl_table_index= 2; s 215 libavcodec/msmpeg4enc.c if(s->pict_type==AV_PICTURE_TYPE_I) s 216 libavcodec/msmpeg4enc.c s->rl_chroma_table_index= 1; s 218 libavcodec/msmpeg4enc.c s->rl_chroma_table_index= 2; s 224 libavcodec/msmpeg4enc.c void ff_msmpeg4_encode_picture_header(MpegEncContext * s, int picture_number) s 226 libavcodec/msmpeg4enc.c find_best_tables(s); s 228 libavcodec/msmpeg4enc.c avpriv_align_put_bits(&s->pb); s 229 libavcodec/msmpeg4enc.c put_bits(&s->pb, 2, s->pict_type - 1); s 231 libavcodec/msmpeg4enc.c put_bits(&s->pb, 5, s->qscale); s 232 libavcodec/msmpeg4enc.c if(s->msmpeg4_version<=2){ s 233 libavcodec/msmpeg4enc.c s->rl_table_index = 2; s 234 libavcodec/msmpeg4enc.c s->rl_chroma_table_index = 2; s 237 libavcodec/msmpeg4enc.c s->dc_table_index = 1; s 238 libavcodec/msmpeg4enc.c s->mv_table_index = 1; /* only if P-frame */ s 239 libavcodec/msmpeg4enc.c s->use_skip_mb_code = 1; /* only if P-frame */ s 240 libavcodec/msmpeg4enc.c s->per_mb_rl_table = 0; s 241 libavcodec/msmpeg4enc.c if(s->msmpeg4_version==4) s 242 libavcodec/msmpeg4enc.c s->inter_intra_pred= (s->width*s->height < 320*240 && s->bit_rate<=II_BITRATE && s->pict_type==AV_PICTURE_TYPE_P); s 243 libavcodec/msmpeg4enc.c ff_dlog(s, "%d %"PRId64" %d %d %d\n", s->pict_type, s->bit_rate, s 244 libavcodec/msmpeg4enc.c s->inter_intra_pred, s->width, s->height); s 246 libavcodec/msmpeg4enc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 247 libavcodec/msmpeg4enc.c s->slice_height= s->mb_height/1; s 248 libavcodec/msmpeg4enc.c put_bits(&s->pb, 5, 0x16 + s->mb_height/s->slice_height); s 250 libavcodec/msmpeg4enc.c if(s->msmpeg4_version==4){ s 251 libavcodec/msmpeg4enc.c ff_msmpeg4_encode_ext_header(s); s 252 libavcodec/msmpeg4enc.c if(s->bit_rate>MBAC_BITRATE) s 253 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, s->per_mb_rl_table); s 256 libavcodec/msmpeg4enc.c if(s->msmpeg4_version>2){ s 257 libavcodec/msmpeg4enc.c if(!s->per_mb_rl_table){ s 258 libavcodec/msmpeg4enc.c ff_msmpeg4_code012(&s->pb, s->rl_chroma_table_index); s 259 libavcodec/msmpeg4enc.c ff_msmpeg4_code012(&s->pb, s->rl_table_index); s 262 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, s->dc_table_index); s 265 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, s->use_skip_mb_code); s 267 libavcodec/msmpeg4enc.c if(s->msmpeg4_version==4 && s->bit_rate>MBAC_BITRATE) s 268 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, s->per_mb_rl_table); s 270 libavcodec/msmpeg4enc.c if(s->msmpeg4_version>2){ s 271 libavcodec/msmpeg4enc.c if(!s->per_mb_rl_table) s 272 libavcodec/msmpeg4enc.c ff_msmpeg4_code012(&s->pb, s->rl_table_index); s 274 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, s->dc_table_index); s 276 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, s->mv_table_index); s 280 libavcodec/msmpeg4enc.c s->esc3_level_length= 0; s 281 libavcodec/msmpeg4enc.c s->esc3_run_length= 0; s 284 libavcodec/msmpeg4enc.c void ff_msmpeg4_encode_ext_header(MpegEncContext * s) s 286 libavcodec/msmpeg4enc.c unsigned fps = s->avctx->time_base.den / s->avctx->time_base.num / FFMAX(s->avctx->ticks_per_frame, 1); s 287 libavcodec/msmpeg4enc.c put_bits(&s->pb, 5, FFMIN(fps, 31)); //yes 29.97 -> 29 s 289 libavcodec/msmpeg4enc.c put_bits(&s->pb, 11, FFMIN(s->bit_rate/1024, 2047)); s 291 libavcodec/msmpeg4enc.c if(s->msmpeg4_version>=3) s 292 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, s->flipflop_rounding); s 294 libavcodec/msmpeg4enc.c av_assert0(s->flipflop_rounding==0); s 297 libavcodec/msmpeg4enc.c void ff_msmpeg4_encode_motion(MpegEncContext * s, s 317 libavcodec/msmpeg4enc.c mv = &ff_mv_tables[s->mv_table_index]; s 320 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 325 libavcodec/msmpeg4enc.c put_bits(&s->pb, 6, mx); s 326 libavcodec/msmpeg4enc.c put_bits(&s->pb, 6, my); s 330 libavcodec/msmpeg4enc.c void ff_msmpeg4_handle_slices(MpegEncContext *s){ s 331 libavcodec/msmpeg4enc.c if (s->mb_x == 0) { s 332 libavcodec/msmpeg4enc.c if (s->slice_height && (s->mb_y % s->slice_height) == 0) { s 333 libavcodec/msmpeg4enc.c if(s->msmpeg4_version < 4){ s 334 libavcodec/msmpeg4enc.c ff_mpeg4_clean_buffers(s); s 336 libavcodec/msmpeg4enc.c s->first_slice_line = 1; s 338 libavcodec/msmpeg4enc.c s->first_slice_line = 0; s 343 libavcodec/msmpeg4enc.c static void msmpeg4v2_encode_motion(MpegEncContext * s, int val) s 350 libavcodec/msmpeg4enc.c put_bits(&s->pb, ff_mvtab[code][1], ff_mvtab[code][0]); s 352 libavcodec/msmpeg4enc.c bit_size = s->f_code - 1; s 369 libavcodec/msmpeg4enc.c put_bits(&s->pb, ff_mvtab[code][1] + 1, (ff_mvtab[code][0] << 1) | sign); s 371 libavcodec/msmpeg4enc.c put_bits(&s->pb, bit_size, bits); s 376 libavcodec/msmpeg4enc.c void ff_msmpeg4_encode_mb(MpegEncContext * s, s 384 libavcodec/msmpeg4enc.c ff_msmpeg4_handle_slices(s); s 386 libavcodec/msmpeg4enc.c if (!s->mb_intra) { s 390 libavcodec/msmpeg4enc.c if (s->block_last_index[i] >= 0) s 393 libavcodec/msmpeg4enc.c if (s->use_skip_mb_code && (cbp | motion_x | motion_y) == 0) { s 395 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 1); s 396 libavcodec/msmpeg4enc.c s->last_bits++; s 397 libavcodec/msmpeg4enc.c s->misc_bits++; s 398 libavcodec/msmpeg4enc.c s->skip_count++; s 402 libavcodec/msmpeg4enc.c if (s->use_skip_mb_code) s 403 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 0); /* mb coded */ s 405 libavcodec/msmpeg4enc.c if(s->msmpeg4_version<=2){ s 406 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 412 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 416 libavcodec/msmpeg4enc.c s->misc_bits += get_bits_diff(s); s 418 libavcodec/msmpeg4enc.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 419 libavcodec/msmpeg4enc.c msmpeg4v2_encode_motion(s, motion_x - pred_x); s 420 libavcodec/msmpeg4enc.c msmpeg4v2_encode_motion(s, motion_y - pred_y); s 422 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 426 libavcodec/msmpeg4enc.c s->misc_bits += get_bits_diff(s); s 429 libavcodec/msmpeg4enc.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 430 libavcodec/msmpeg4enc.c ff_msmpeg4_encode_motion(s, motion_x - pred_x, s 434 libavcodec/msmpeg4enc.c s->mv_bits += get_bits_diff(s); s 437 libavcodec/msmpeg4enc.c ff_msmpeg4_encode_block(s, block[i], i); s 439 libavcodec/msmpeg4enc.c s->p_tex_bits += get_bits_diff(s); s 446 libavcodec/msmpeg4enc.c val = (s->block_last_index[i] >= 1); s 450 libavcodec/msmpeg4enc.c pred = ff_msmpeg4_coded_block_pred(s, i, &coded_block); s 457 libavcodec/msmpeg4enc.c if(s->msmpeg4_version<=2){ s 458 libavcodec/msmpeg4enc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 459 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 462 libavcodec/msmpeg4enc.c if (s->use_skip_mb_code) s 463 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 0); /* mb coded */ s 464 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 468 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 0); /* no AC prediction yet */ s 469 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 473 libavcodec/msmpeg4enc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 474 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 477 libavcodec/msmpeg4enc.c if (s->use_skip_mb_code) s 478 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 0); /* mb coded */ s 479 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 483 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 0); /* no AC prediction yet */ s 484 libavcodec/msmpeg4enc.c if(s->inter_intra_pred){ s 485 libavcodec/msmpeg4enc.c s->h263_aic_dir=0; s 486 libavcodec/msmpeg4enc.c put_bits(&s->pb, ff_table_inter_intra[s->h263_aic_dir][1], ff_table_inter_intra[s->h263_aic_dir][0]); s 489 libavcodec/msmpeg4enc.c s->misc_bits += get_bits_diff(s); s 492 libavcodec/msmpeg4enc.c ff_msmpeg4_encode_block(s, block[i], i); s 494 libavcodec/msmpeg4enc.c s->i_tex_bits += get_bits_diff(s); s 495 libavcodec/msmpeg4enc.c s->i_count++; s 499 libavcodec/msmpeg4enc.c static void msmpeg4_encode_dc(MpegEncContext * s, int level, int n, int *dir_ptr) s 506 libavcodec/msmpeg4enc.c pred = ff_msmpeg4_pred_dc(s, n, &dc_val, dir_ptr); s 510 libavcodec/msmpeg4enc.c *dc_val = level * s->y_dc_scale; s 512 libavcodec/msmpeg4enc.c *dc_val = level * s->c_dc_scale; s 518 libavcodec/msmpeg4enc.c if(s->msmpeg4_version<=2){ s 520 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 524 libavcodec/msmpeg4enc.c put_bits(&s->pb, s 537 libavcodec/msmpeg4enc.c else if( s->msmpeg4_version>=6 ) { s 538 libavcodec/msmpeg4enc.c if( s->qscale == 1 ) { s 541 libavcodec/msmpeg4enc.c } else if( s->qscale == 2 ) { s 547 libavcodec/msmpeg4enc.c if (s->dc_table_index == 0) { s 549 libavcodec/msmpeg4enc.c put_bits(&s->pb, ff_table0_dc_lum[code][1], ff_table0_dc_lum[code][0]); s 551 libavcodec/msmpeg4enc.c put_bits(&s->pb, ff_table0_dc_chroma[code][1], ff_table0_dc_chroma[code][0]); s 555 libavcodec/msmpeg4enc.c put_bits(&s->pb, ff_table1_dc_lum[code][1], ff_table1_dc_lum[code][0]); s 557 libavcodec/msmpeg4enc.c put_bits(&s->pb, ff_table1_dc_chroma[code][1], ff_table1_dc_chroma[code][0]); s 561 libavcodec/msmpeg4enc.c if(s->msmpeg4_version>=6 && s->qscale<=2) s 562 libavcodec/msmpeg4enc.c extrabits = 3 - s->qscale; s 565 libavcodec/msmpeg4enc.c put_bits(&s->pb, 8 + extrabits, level); s 567 libavcodec/msmpeg4enc.c put_bits(&s->pb, extrabits, extquant); s 570 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, sign); s 577 libavcodec/msmpeg4enc.c void ff_msmpeg4_encode_block(MpegEncContext * s, int16_t * block, int n) s 585 libavcodec/msmpeg4enc.c if (s->mb_intra) { s 586 libavcodec/msmpeg4enc.c msmpeg4_encode_dc(s, block[0], n, &dc_pred_dir); s 589 libavcodec/msmpeg4enc.c rl = &ff_rl_table[s->rl_table_index]; s 591 libavcodec/msmpeg4enc.c rl = &ff_rl_table[3 + s->rl_chroma_table_index]; s 593 libavcodec/msmpeg4enc.c run_diff = s->msmpeg4_version>=4; s 594 libavcodec/msmpeg4enc.c scantable= s->intra_scantable.permutated; s 597 libavcodec/msmpeg4enc.c rl = &ff_rl_table[3 + s->rl_table_index]; s 598 libavcodec/msmpeg4enc.c if(s->msmpeg4_version<=2) s 602 libavcodec/msmpeg4enc.c scantable= s->inter_scantable.permutated; s 606 libavcodec/msmpeg4enc.c if(s->msmpeg4_version>=4 && s->msmpeg4_version<6 && s->block_last_index[n]>0){ s 610 libavcodec/msmpeg4enc.c s->block_last_index[n]= last_index; s 612 libavcodec/msmpeg4enc.c last_index = s->block_last_index[n]; s 629 libavcodec/msmpeg4enc.c s->ac_stats[s->mb_intra][n>3][level][run][last]++; s 632 libavcodec/msmpeg4enc.c s->ac_stats[s->mb_intra][n > 3][40][63][0]++; //esc3 like s 635 libavcodec/msmpeg4enc.c put_bits(&s->pb, rl->table_vlc[code][1], rl->table_vlc[code][0]); s 645 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 0); s 652 libavcodec/msmpeg4enc.c if (s->msmpeg4_version == 4 && code == rl->n) s 658 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 0); s 659 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, last); s 660 libavcodec/msmpeg4enc.c if(s->msmpeg4_version>=4){ s 661 libavcodec/msmpeg4enc.c if(s->esc3_level_length==0){ s 662 libavcodec/msmpeg4enc.c s->esc3_level_length=8; s 663 libavcodec/msmpeg4enc.c s->esc3_run_length= 6; s 665 libavcodec/msmpeg4enc.c if(s->qscale<8) s 666 libavcodec/msmpeg4enc.c put_bits(&s->pb, 6 + (s->msmpeg4_version>=6), 3); s 668 libavcodec/msmpeg4enc.c put_bits(&s->pb, 8, 3); s 670 libavcodec/msmpeg4enc.c put_bits(&s->pb, s->esc3_run_length, run); s 671 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, sign); s 672 libavcodec/msmpeg4enc.c put_bits(&s->pb, s->esc3_level_length, level); s 674 libavcodec/msmpeg4enc.c put_bits(&s->pb, 6, run); s 675 libavcodec/msmpeg4enc.c put_sbits(&s->pb, 8, slevel); s 679 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 1); s 680 libavcodec/msmpeg4enc.c put_bits(&s->pb, rl->table_vlc[code][1], rl->table_vlc[code][0]); s 681 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, sign); s 685 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, 1); s 686 libavcodec/msmpeg4enc.c put_bits(&s->pb, rl->table_vlc[code][1], rl->table_vlc[code][0]); s 687 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, sign); s 690 libavcodec/msmpeg4enc.c put_bits(&s->pb, 1, sign); s 51 libavcodec/msrle.c MsrleContext *s = avctx->priv_data; s 54 libavcodec/msrle.c s->avctx = avctx; s 72 libavcodec/msrle.c s->frame = av_frame_alloc(); s 73 libavcodec/msrle.c if (!s->frame) s 78 libavcodec/msrle.c s->pal[i] = 0xFFU<<24 | AV_RL32(avctx->extradata+4*i); s 89 libavcodec/msrle.c MsrleContext *s = avctx->priv_data; s 96 libavcodec/msrle.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 104 libavcodec/msrle.c s->frame->palette_has_changed = 1; s 105 libavcodec/msrle.c memcpy(s->pal, pal, AVPALETTE_SIZE); s 110 libavcodec/msrle.c memcpy(s->frame->data[1], s->pal, AVPALETTE_SIZE); s 116 libavcodec/msrle.c uint8_t *ptr = s->frame->data[0]; s 135 libavcodec/msrle.c ptr += s->frame->linesize[0]; s 138 libavcodec/msrle.c bytestream2_init(&s->gb, buf, buf_size); s 139 libavcodec/msrle.c ff_msrle_decode(avctx, s->frame, avctx->bits_per_coded_sample, &s->gb); s 142 libavcodec/msrle.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 153 libavcodec/msrle.c MsrleContext *s = avctx->priv_data; s 155 libavcodec/msrle.c av_frame_unref(s->frame); s 160 libavcodec/msrle.c MsrleContext *s = avctx->priv_data; s 163 libavcodec/msrle.c av_frame_free(&s->frame); s 384 libavcodec/mss2.c MpegEncContext *s = &v->s; s 390 libavcodec/mss2.c if ((ret = init_get_bits8(&s->gb, buf, buf_size)) < 0) s 393 libavcodec/mss2.c s->loop_filter = avctx->skip_loop_filter < AVDISCARD_ALL; s 395 libavcodec/mss2.c if (ff_vc1_parse_frame_header(v, &s->gb) < 0) { s 396 libavcodec/mss2.c av_log(v->s.avctx, AV_LOG_ERROR, "header error\n"); s 400 libavcodec/mss2.c if (s->pict_type != AV_PICTURE_TYPE_I) { s 401 libavcodec/mss2.c av_log(v->s.avctx, AV_LOG_ERROR, "expected I-frame\n"); s 407 libavcodec/mss2.c if ((ret = ff_mpv_frame_start(s, avctx)) < 0) { s 408 libavcodec/mss2.c av_log(v->s.avctx, AV_LOG_ERROR, "ff_mpv_frame_start error\n"); s 413 libavcodec/mss2.c ff_mpeg_er_frame_start(s); s 416 libavcodec/mss2.c s->end_mb_y = (h + 15) >> 4; s 420 libavcodec/mss2.c s->end_mb_y = s->end_mb_y + 1 >> 1; s 424 libavcodec/mss2.c if (v->end_mb_x == s->mb_width && s->end_mb_y == s->mb_height) { s 425 libavcodec/mss2.c ff_er_frame_end(&s->er); s 427 libavcodec/mss2.c av_log(v->s.avctx, AV_LOG_WARNING, s 429 libavcodec/mss2.c v->end_mb_x, s->end_mb_y, s->mb_width, s->mb_height); s 432 libavcodec/mss2.c ff_mpv_frame_end(s); s 434 libavcodec/mss2.c f = s->current_picture.f; s 441 libavcodec/mss2.c avpriv_request_sample(v->s.avctx, s 752 libavcodec/mss2.c v->s.avctx = avctx; s 786 libavcodec/mss2.c v->s.max_b_frames = avctx->max_b_frames = 0; s 800 libavcodec/mss2.c v->s.me.qpel_put = v->s.qdsp.put_qpel_pixels_tab; s 801 libavcodec/mss2.c v->s.me.qpel_avg = v->s.qdsp.avg_qpel_pixels_tab; s 40 libavcodec/msvideo1.c if ((stream_ptr + n) > s->size ) { \ s 41 libavcodec/msvideo1.c av_log(s->avctx, AV_LOG_ERROR, " MS Video-1 warning: stream_ptr out of bounds (%d >= %d)\n", \ s 42 libavcodec/msvideo1.c stream_ptr + n, s->size); \ s 61 libavcodec/msvideo1.c Msvideo1Context *s = avctx->priv_data; s 63 libavcodec/msvideo1.c s->avctx = avctx; s 69 libavcodec/msvideo1.c if (s->avctx->bits_per_coded_sample == 8) { s 70 libavcodec/msvideo1.c s->mode_8bit = 1; s 73 libavcodec/msvideo1.c memcpy(s->pal, avctx->extradata, AVPALETTE_SIZE); s 75 libavcodec/msvideo1.c s->mode_8bit = 0; s 79 libavcodec/msvideo1.c s->frame = av_frame_alloc(); s 80 libavcodec/msvideo1.c if (!s->frame) s 86 libavcodec/msvideo1.c static void msvideo1_decode_8bit(Msvideo1Context *s) s 102 libavcodec/msvideo1.c unsigned char *pixels = s->frame->data[0]; s 103 libavcodec/msvideo1.c int stride = s->frame->linesize[0]; s 107 libavcodec/msvideo1.c blocks_wide = s->avctx->width / 4; s 108 libavcodec/msvideo1.c blocks_high = s->avctx->height / 4; s 128 libavcodec/msvideo1.c byte_a = s->buf[stream_ptr++]; s 129 libavcodec/msvideo1.c byte_b = s->buf[stream_ptr++]; s 142 libavcodec/msvideo1.c colors[0] = s->buf[stream_ptr++]; s 143 libavcodec/msvideo1.c colors[1] = s->buf[stream_ptr++]; s 155 libavcodec/msvideo1.c memcpy(colors, &s->buf[stream_ptr], 8); s 182 libavcodec/msvideo1.c if (s->avctx->pix_fmt == AV_PIX_FMT_PAL8) s 183 libavcodec/msvideo1.c memcpy(s->frame->data[1], s->pal, AVPALETTE_SIZE); s 186 libavcodec/msvideo1.c static void msvideo1_decode_16bit(Msvideo1Context *s) s 202 libavcodec/msvideo1.c unsigned short *pixels = (unsigned short *)s->frame->data[0]; s 203 libavcodec/msvideo1.c int stride = s->frame->linesize[0] / 2; s 207 libavcodec/msvideo1.c blocks_wide = s->avctx->width / 4; s 208 libavcodec/msvideo1.c blocks_high = s->avctx->height / 4; s 228 libavcodec/msvideo1.c byte_a = s->buf[stream_ptr++]; s 229 libavcodec/msvideo1.c byte_b = s->buf[stream_ptr++]; s 242 libavcodec/msvideo1.c colors[0] = AV_RL16(&s->buf[stream_ptr]); s 244 libavcodec/msvideo1.c colors[1] = AV_RL16(&s->buf[stream_ptr]); s 250 libavcodec/msvideo1.c colors[2] = AV_RL16(&s->buf[stream_ptr]); s 252 libavcodec/msvideo1.c colors[3] = AV_RL16(&s->buf[stream_ptr]); s 254 libavcodec/msvideo1.c colors[4] = AV_RL16(&s->buf[stream_ptr]); s 256 libavcodec/msvideo1.c colors[5] = AV_RL16(&s->buf[stream_ptr]); s 258 libavcodec/msvideo1.c colors[6] = AV_RL16(&s->buf[stream_ptr]); s 260 libavcodec/msvideo1.c colors[7] = AV_RL16(&s->buf[stream_ptr]); s 301 libavcodec/msvideo1.c Msvideo1Context *s = avctx->priv_data; s 304 libavcodec/msvideo1.c s->buf = buf; s 305 libavcodec/msvideo1.c s->size = buf_size; s 313 libavcodec/msvideo1.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 316 libavcodec/msvideo1.c if (s->mode_8bit) { s 321 libavcodec/msvideo1.c memcpy(s->pal, pal, AVPALETTE_SIZE); s 322 libavcodec/msvideo1.c s->frame->palette_has_changed = 1; s 328 libavcodec/msvideo1.c if (s->mode_8bit) s 329 libavcodec/msvideo1.c msvideo1_decode_8bit(s); s 331 libavcodec/msvideo1.c msvideo1_decode_16bit(s); s 333 libavcodec/msvideo1.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 344 libavcodec/msvideo1.c Msvideo1Context *s = avctx->priv_data; s 346 libavcodec/msvideo1.c av_frame_free(&s->frame); s 298 libavcodec/mv30.c MV30Context *s = avctx->priv_data; s 303 libavcodec/mv30.c s->bdsp.fill_block_tab[1](dst, 128, linesize, 8); s 309 libavcodec/mv30.c s->bdsp.fill_block_tab[1](dst, block[0], linesize, 8); s 406 libavcodec/mv30.c MV30Context *s = avctx->priv_data; s 413 libavcodec/mv30.c if (get_bits_left(gb) < s->mode_size * 8) s 416 libavcodec/mv30.c skip_bits_long(gb, s->mode_size * 8); s 430 libavcodec/mv30.c av_fast_padded_malloc(&s->coeffs, &s->coeffs_size, nb_codes * sizeof(*s->coeffs)); s 431 libavcodec/mv30.c if (!s->coeffs) s 433 libavcodec/mv30.c ret = decode_coeffs(gb, s->coeffs, nb_codes); s 437 libavcodec/mv30.c bytestream2_init(&gbyte, (uint8_t *)s->coeffs, nb_codes * sizeof(*s->coeffs)); s 450 libavcodec/mv30.c ret = decode_intra_block(avctx, mode, &gbyte, s->intraq_tab[b >= 4], s 451 libavcodec/mv30.c s->block[b], s 466 libavcodec/mv30.c MV30Context *s = avctx->priv_data; s 491 libavcodec/mv30.c av_fast_padded_malloc(&s->mvectors, &s->mvectors_size, 2 * s->nb_mvectors * sizeof(*s->mvectors)); s 492 libavcodec/mv30.c if (!s->mvectors) { s 500 libavcodec/mv30.c skip_bits_long(gb, s->mode_size * 8); s 502 libavcodec/mv30.c ret = decode_coeffs(gb, s->mvectors, 2 * s->nb_mvectors); s 506 libavcodec/mv30.c bytestream2_init(&mv, (uint8_t *)s->mvectors, 2 * s->nb_mvectors * sizeof(*s->mvectors)); s 519 libavcodec/mv30.c av_fast_padded_malloc(&s->coeffs, &s->coeffs_size, nb_codes * sizeof(*s->coeffs)); s 520 libavcodec/mv30.c if (!s->coeffs) { s 525 libavcodec/mv30.c ret = decode_coeffs(gb, s->coeffs, nb_codes); s 529 libavcodec/mv30.c bytestream2_init(&gbyte, (uint8_t *)s->coeffs, nb_codes * sizeof(*s->coeffs)); s 569 libavcodec/mv30.c ret = decode_inter_block(avctx, mode, &gbyte, s->interq_tab[b >= 4], s 570 libavcodec/mv30.c s->block[b], s 582 libavcodec/mv30.c ret = decode_intra_block(avctx, mode, &gbyte, s->intraq_tab[b >= 4], s 583 libavcodec/mv30.c s->block[b], s 602 libavcodec/mv30.c MV30Context *s = avctx->priv_data; s 603 libavcodec/mv30.c GetBitContext *gb = &s->gb; s 613 libavcodec/mv30.c s->intra_quant = get_bits(gb, 8); s 614 libavcodec/mv30.c s->inter_quant = s->intra_quant + get_sbits(gb, 8); s 615 libavcodec/mv30.c s->is_inter = get_bits_le(gb, 16); s 616 libavcodec/mv30.c s->mode_size = get_bits_le(gb, 16); s 617 libavcodec/mv30.c if (s->is_inter) s 618 libavcodec/mv30.c s->nb_mvectors = get_bits_le(gb, 16); s 620 libavcodec/mv30.c get_qtable(s->intraq_tab[0], s->intra_quant, luma_tab); s 621 libavcodec/mv30.c get_qtable(s->intraq_tab[1], s->intra_quant, chroma_tab); s 623 libavcodec/mv30.c frame->key_frame = s->is_inter == 0; s 630 libavcodec/mv30.c get_qtable(s->interq_tab[0], s->inter_quant, luma_tab); s 631 libavcodec/mv30.c get_qtable(s->interq_tab[1], s->inter_quant, chroma_tab); s 633 libavcodec/mv30.c if (!s->prev_frame->data[0]) { s 638 libavcodec/mv30.c ret = decode_inter(avctx, gb, frame, s->prev_frame); s 643 libavcodec/mv30.c av_frame_unref(s->prev_frame); s 644 libavcodec/mv30.c if ((ret = av_frame_ref(s->prev_frame, frame)) < 0) s 668 libavcodec/mv30.c MV30Context *s = avctx->priv_data; s 674 libavcodec/mv30.c ff_blockdsp_init(&s->bdsp, avctx); s 676 libavcodec/mv30.c s->prev_frame = av_frame_alloc(); s 677 libavcodec/mv30.c if (!s->prev_frame) s 687 libavcodec/mv30.c MV30Context *s = avctx->priv_data; s 689 libavcodec/mv30.c av_frame_unref(s->prev_frame); s 694 libavcodec/mv30.c MV30Context *s = avctx->priv_data; s 696 libavcodec/mv30.c av_frame_free(&s->prev_frame); s 697 libavcodec/mv30.c av_freep(&s->coeffs); s 698 libavcodec/mv30.c s->coeffs_size = 0; s 699 libavcodec/mv30.c av_freep(&s->mvectors); s 700 libavcodec/mv30.c s->mvectors_size = 0; s 39 libavcodec/mvcdec.c MvcContext *s = avctx->priv_data; s 55 libavcodec/mvcdec.c s->vflip = avctx->extradata_size >= 9 && s 228 libavcodec/mvcdec.c MvcContext *s = avctx->priv_data; s 243 libavcodec/mvcdec.c s->vflip); s 61 libavcodec/mvha.c int s; s 63 libavcodec/mvha.c s = nodes[node].sym; s 64 libavcodec/mvha.c if (s != -1) { s 67 libavcodec/mvha.c xlat[*pos] = s + (pl == 0); s 82 libavcodec/mvha.c MVHAContext *s = avctx->priv_data; s 91 libavcodec/mvha.c for (i = 0; i < s->nb_symbols; i++) { s 92 libavcodec/mvha.c nodes[i].count = s->prob[i]; s 93 libavcodec/mvha.c nodes[i].sym = s->symb[i]; s 99 libavcodec/mvha.c cur_node = s->nb_symbols; s 142 libavcodec/mvha.c } while (cur_node - s->nb_symbols == j); s 153 libavcodec/mvha.c MVHAContext *s = avctx->priv_data; s 171 libavcodec/mvha.c ret = inflateReset(&s->zstream); s 177 libavcodec/mvha.c s->zstream.next_in = avpkt->data + 8; s 178 libavcodec/mvha.c s->zstream.avail_in = avpkt->size - 8; s 182 libavcodec/mvha.c s->zstream.next_out = frame->data[p] + (avctx->height - y - 1) * frame->linesize[p]; s 183 libavcodec/mvha.c s->zstream.avail_out = avctx->width >> (p > 0); s 185 libavcodec/mvha.c ret = inflate(&s->zstream, Z_SYNC_FLUSH); s 193 libavcodec/mvha.c GetBitContext *gb = &s->gb; s 203 libavcodec/mvha.c s->nb_symbols = get_bits(gb, 8) + 1; s 206 libavcodec/mvha.c for (int i = 0; i < s->nb_symbols; symbol++) { s 219 libavcodec/mvha.c s->symb[i] = symbol; s 220 libavcodec/mvha.c s->prob[i] = prob; s 225 libavcodec/mvha.c ret = build_vlc(avctx, &s->vlc); s 239 libavcodec/mvha.c int v = get_vlc2(gb, s->vlc.table, s->vlc.bits, 3); s 260 libavcodec/mvha.c s->llviddsp.add_left_pred(dst, dst, width, 0); s 265 libavcodec/mvha.c s->llviddsp.add_median_pred(dst, dst + stride, dst, width, &left, &lefttop); s 281 libavcodec/mvha.c MVHAContext *s = avctx->priv_data; s 286 libavcodec/mvha.c s->zstream.zalloc = Z_NULL; s 287 libavcodec/mvha.c s->zstream.zfree = Z_NULL; s 288 libavcodec/mvha.c s->zstream.opaque = Z_NULL; s 289 libavcodec/mvha.c zret = inflateInit(&s->zstream); s 295 libavcodec/mvha.c ff_llviddsp_init(&s->llviddsp); s 302 libavcodec/mvha.c MVHAContext *s = avctx->priv_data; s 304 libavcodec/mvha.c inflateEnd(&s->zstream); s 305 libavcodec/mvha.c ff_free_vlc(&s->vlc); s 92 libavcodec/mwsc.c MWSCContext *s = avctx->priv_data; s 101 libavcodec/mwsc.c ret = inflateReset(&s->zstream); s 106 libavcodec/mwsc.c s->zstream.next_in = buf; s 107 libavcodec/mwsc.c s->zstream.avail_in = buf_size; s 108 libavcodec/mwsc.c s->zstream.next_out = s->decomp_buf; s 109 libavcodec/mwsc.c s->zstream.avail_out = s->decomp_size; s 110 libavcodec/mwsc.c ret = inflate(&s->zstream, Z_FINISH); s 119 libavcodec/mwsc.c bytestream2_init(&gb, s->decomp_buf, s->zstream.total_out); s 120 libavcodec/mwsc.c bytestream2_init(&gbp, s->prev_frame->data[0], avctx->height * s->prev_frame->linesize[0]); s 124 libavcodec/mwsc.c frame->linesize[0], s->prev_frame->linesize[0]); s 128 libavcodec/mwsc.c av_frame_unref(s->prev_frame); s 129 libavcodec/mwsc.c if ((ret = av_frame_ref(s->prev_frame, frame)) < 0) s 139 libavcodec/mwsc.c MWSCContext *s = avctx->priv_data; s 148 libavcodec/mwsc.c s->decomp_size = size; s 149 libavcodec/mwsc.c if (!(s->decomp_buf = av_malloc(s->decomp_size))) s 152 libavcodec/mwsc.c s->zstream.zalloc = Z_NULL; s 153 libavcodec/mwsc.c s->zstream.zfree = Z_NULL; s 154 libavcodec/mwsc.c s->zstream.opaque = Z_NULL; s 155 libavcodec/mwsc.c zret = inflateInit(&s->zstream); s 161 libavcodec/mwsc.c s->prev_frame = av_frame_alloc(); s 162 libavcodec/mwsc.c if (!s->prev_frame) s 170 libavcodec/mwsc.c MWSCContext *s = avctx->priv_data; s 172 libavcodec/mwsc.c av_frame_free(&s->prev_frame); s 173 libavcodec/mwsc.c av_freep(&s->decomp_buf); s 174 libavcodec/mwsc.c s->decomp_size = 0; s 175 libavcodec/mwsc.c inflateEnd(&s->zstream); s 47 libavcodec/mxpegdec.c MXpegDecodeContext *s = avctx->priv_data; s 48 libavcodec/mxpegdec.c MJpegDecodeContext *jpg = &s->jpg; s 55 libavcodec/mxpegdec.c av_frame_free(&s->picture[i]); s 57 libavcodec/mxpegdec.c s->bitmask_size = 0; s 58 libavcodec/mxpegdec.c av_freep(&s->mxm_bitmask); s 59 libavcodec/mxpegdec.c av_freep(&s->completion_bitmask); s 66 libavcodec/mxpegdec.c MXpegDecodeContext *s = avctx->priv_data; s 68 libavcodec/mxpegdec.c s->picture[0] = av_frame_alloc(); s 69 libavcodec/mxpegdec.c s->picture[1] = av_frame_alloc(); s 70 libavcodec/mxpegdec.c if (!s->picture[0] || !s->picture[1]) { s 75 libavcodec/mxpegdec.c s->jpg.picture_ptr = s->picture[0]; s 79 libavcodec/mxpegdec.c static int mxpeg_decode_app(MXpegDecodeContext *s, s 86 libavcodec/mxpegdec.c skip_bits(&s->jpg.gb, 8*FFMIN(len,buf_size)); s 91 libavcodec/mxpegdec.c static int mxpeg_decode_mxm(MXpegDecodeContext *s, s 97 libavcodec/mxpegdec.c s->mb_width = AV_RL16(buf_ptr+4); s 98 libavcodec/mxpegdec.c s->mb_height = AV_RL16(buf_ptr+6); s 99 libavcodec/mxpegdec.c mb_count = s->mb_width * s->mb_height; s 103 libavcodec/mxpegdec.c av_log(s->jpg.avctx, AV_LOG_ERROR, s 108 libavcodec/mxpegdec.c if (s->bitmask_size != bitmask_size) { s 109 libavcodec/mxpegdec.c s->bitmask_size = 0; s 110 libavcodec/mxpegdec.c av_freep(&s->mxm_bitmask); s 111 libavcodec/mxpegdec.c s->mxm_bitmask = av_malloc(bitmask_size); s 112 libavcodec/mxpegdec.c if (!s->mxm_bitmask) { s 113 libavcodec/mxpegdec.c av_log(s->jpg.avctx, AV_LOG_ERROR, s 118 libavcodec/mxpegdec.c av_freep(&s->completion_bitmask); s 119 libavcodec/mxpegdec.c s->completion_bitmask = av_mallocz(bitmask_size); s 120 libavcodec/mxpegdec.c if (!s->completion_bitmask) { s 121 libavcodec/mxpegdec.c av_log(s->jpg.avctx, AV_LOG_ERROR, s 126 libavcodec/mxpegdec.c s->bitmask_size = bitmask_size; s 129 libavcodec/mxpegdec.c memcpy(s->mxm_bitmask, buf_ptr + 12, bitmask_size); s 130 libavcodec/mxpegdec.c s->got_mxm_bitmask = 1; s 132 libavcodec/mxpegdec.c if (!s->has_complete_frame) { s 135 libavcodec/mxpegdec.c s->completion_bitmask[i] |= s->mxm_bitmask[i]; s 136 libavcodec/mxpegdec.c completion_check &= s->completion_bitmask[i]; s 138 libavcodec/mxpegdec.c s->has_complete_frame = !(completion_check ^ 0xFF); s 144 libavcodec/mxpegdec.c static int mxpeg_decode_com(MXpegDecodeContext *s, s 152 libavcodec/mxpegdec.c ret = mxpeg_decode_mxm(s, buf_ptr + 2, len - 2); s 154 libavcodec/mxpegdec.c skip_bits(&s->jpg.gb, 8*FFMIN(len,buf_size)); s 159 libavcodec/mxpegdec.c static int mxpeg_check_dimensions(MXpegDecodeContext *s, MJpegDecodeContext *jpg, s 162 libavcodec/mxpegdec.c if ((jpg->width + 0x0F)>>4 != s->mb_width || s 163 libavcodec/mxpegdec.c (jpg->height + 0x0F)>>4 != s->mb_height) { s 190 libavcodec/mxpegdec.c MXpegDecodeContext *s = avctx->priv_data; s 191 libavcodec/mxpegdec.c MJpegDecodeContext *jpg = &s->jpg; s 201 libavcodec/mxpegdec.c s->got_mxm_bitmask = 0; s 202 libavcodec/mxpegdec.c s->got_sof_data = !!s->got_sof_data; s 212 libavcodec/mxpegdec.c mxpeg_decode_app(s, unescaped_buf_ptr, unescaped_buf_size); s 239 libavcodec/mxpegdec.c ret = mxpeg_decode_com(s, unescaped_buf_ptr, s 245 libavcodec/mxpegdec.c if (s->got_sof_data > 1) { s 250 libavcodec/mxpegdec.c s->got_sof_data = 0; s 262 libavcodec/mxpegdec.c s->got_sof_data ++; s 265 libavcodec/mxpegdec.c if (!s->got_sof_data) { s 276 libavcodec/mxpegdec.c if (!s->got_mxm_bitmask){ s 294 libavcodec/mxpegdec.c if (s->got_mxm_bitmask) { s 295 libavcodec/mxpegdec.c AVFrame *reference_ptr = s->picture[s->picture_index ^ 1]; s 296 libavcodec/mxpegdec.c if (mxpeg_check_dimensions(s, jpg, reference_ptr) < 0) s 305 libavcodec/mxpegdec.c ret = ff_mjpeg_decode_sos(jpg, s->mxm_bitmask, s->bitmask_size, reference_ptr); s 329 libavcodec/mxpegdec.c s->picture_index ^= 1; s 330 libavcodec/mxpegdec.c jpg->picture_ptr = s->picture[s->picture_index]; s 332 libavcodec/mxpegdec.c if (!s->has_complete_frame) { s 333 libavcodec/mxpegdec.c if (!s->got_mxm_bitmask) s 334 libavcodec/mxpegdec.c s->has_complete_frame = 1; s 60 libavcodec/nellymoserdec.c static void nelly_decode_block(NellyMoserDecodeContext *s, s 70 libavcodec/nellymoserdec.c init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8); s 74 libavcodec/nellymoserdec.c val = ff_nelly_init_table[get_bits(&s->gb, 6)]; s 77 libavcodec/nellymoserdec.c val += ff_nelly_delta_table[get_bits(&s->gb, 5)]; s 78 libavcodec/nellymoserdec.c pval = -exp2(val/2048) * s->scale_bias; s 91 libavcodec/nellymoserdec.c init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8); s 92 libavcodec/nellymoserdec.c skip_bits_long(&s->gb, NELLY_HEADER_BITS + i*NELLY_DETAIL_BITS); s 97 libavcodec/nellymoserdec.c if (av_lfg_get(&s->random_state) & 1) s 100 libavcodec/nellymoserdec.c v = get_bits(&s->gb, bits[j]); s 107 libavcodec/nellymoserdec.c s->imdct_ctx.imdct_half(&s->imdct_ctx, s->imdct_out, aptr); s 108 libavcodec/nellymoserdec.c s->fdsp->vector_fmul_window(aptr, s->imdct_prev + NELLY_BUF_LEN / 2, s 109 libavcodec/nellymoserdec.c s->imdct_out, ff_sine_128, s 111 libavcodec/nellymoserdec.c FFSWAP(float *, s->imdct_out, s->imdct_prev); s 116 libavcodec/nellymoserdec.c NellyMoserDecodeContext *s = avctx->priv_data; s 118 libavcodec/nellymoserdec.c s->avctx = avctx; s 119 libavcodec/nellymoserdec.c s->imdct_out = s->imdct_buf[0]; s 120 libavcodec/nellymoserdec.c s->imdct_prev = s->imdct_buf[1]; s 121 libavcodec/nellymoserdec.c av_lfg_init(&s->random_state, 0); s 122 libavcodec/nellymoserdec.c ff_mdct_init(&s->imdct_ctx, 8, 1, 1.0); s 124 libavcodec/nellymoserdec.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 125 libavcodec/nellymoserdec.c if (!s->fdsp) s 128 libavcodec/nellymoserdec.c s->scale_bias = 1.0/(32768*8); s 148 libavcodec/nellymoserdec.c NellyMoserDecodeContext *s = avctx->priv_data; s 180 libavcodec/nellymoserdec.c nelly_decode_block(s, buf, samples_flt); s 191 libavcodec/nellymoserdec.c NellyMoserDecodeContext *s = avctx->priv_data; s 193 libavcodec/nellymoserdec.c ff_mdct_end(&s->imdct_ctx); s 194 libavcodec/nellymoserdec.c av_freep(&s->fdsp); s 119 libavcodec/nellymoserenc.c static void apply_mdct(NellyMoserEncodeContext *s) s 121 libavcodec/nellymoserenc.c float *in0 = s->buf; s 122 libavcodec/nellymoserenc.c float *in1 = s->buf + NELLY_BUF_LEN; s 123 libavcodec/nellymoserenc.c float *in2 = s->buf + 2 * NELLY_BUF_LEN; s 125 libavcodec/nellymoserenc.c s->fdsp->vector_fmul (s->in_buff, in0, ff_sine_128, NELLY_BUF_LEN); s 126 libavcodec/nellymoserenc.c s->fdsp->vector_fmul_reverse(s->in_buff + NELLY_BUF_LEN, in1, ff_sine_128, NELLY_BUF_LEN); s 127 libavcodec/nellymoserenc.c s->mdct_ctx.mdct_calc(&s->mdct_ctx, s->mdct_out, s->in_buff); s 129 libavcodec/nellymoserenc.c s->fdsp->vector_fmul (s->in_buff, in1, ff_sine_128, NELLY_BUF_LEN); s 130 libavcodec/nellymoserenc.c s->fdsp->vector_fmul_reverse(s->in_buff + NELLY_BUF_LEN, in2, ff_sine_128, NELLY_BUF_LEN); s 131 libavcodec/nellymoserenc.c s->mdct_ctx.mdct_calc(&s->mdct_ctx, s->mdct_out + NELLY_BUF_LEN, s->in_buff); s 136 libavcodec/nellymoserenc.c NellyMoserEncodeContext *s = avctx->priv_data; s 138 libavcodec/nellymoserenc.c ff_mdct_end(&s->mdct_ctx); s 140 libavcodec/nellymoserenc.c if (s->avctx->trellis) { s 141 libavcodec/nellymoserenc.c av_freep(&s->opt); s 142 libavcodec/nellymoserenc.c av_freep(&s->path); s 144 libavcodec/nellymoserenc.c ff_af_queue_close(&s->afq); s 145 libavcodec/nellymoserenc.c av_freep(&s->fdsp); s 152 libavcodec/nellymoserenc.c NellyMoserEncodeContext *s = avctx->priv_data; s 170 libavcodec/nellymoserenc.c ff_af_queue_init(avctx, &s->afq); s 171 libavcodec/nellymoserenc.c s->avctx = avctx; s 172 libavcodec/nellymoserenc.c if ((ret = ff_mdct_init(&s->mdct_ctx, 8, 0, 32768.0)) < 0) s 174 libavcodec/nellymoserenc.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 175 libavcodec/nellymoserenc.c if (!s->fdsp) { s 195 libavcodec/nellymoserenc.c if (s->avctx->trellis) { s 196 libavcodec/nellymoserenc.c s->opt = av_malloc(NELLY_BANDS * OPT_SIZE * sizeof(float )); s 197 libavcodec/nellymoserenc.c s->path = av_malloc(NELLY_BANDS * OPT_SIZE * sizeof(uint8_t)); s 198 libavcodec/nellymoserenc.c if (!s->opt || !s->path) { s 216 libavcodec/nellymoserenc.c static void get_exponent_greedy(NellyMoserEncodeContext *s, float *cand, int *idx_table) s 241 libavcodec/nellymoserenc.c static void get_exponent_dynamic(NellyMoserEncodeContext *s, float *cand, int *idx_table) s 246 libavcodec/nellymoserenc.c float (*opt )[OPT_SIZE] = s->opt ; s 247 libavcodec/nellymoserenc.c uint8_t(*path)[OPT_SIZE] = s->path; s 310 libavcodec/nellymoserenc.c static void encode_block(NellyMoserEncodeContext *s, unsigned char *output, int output_size) s 319 libavcodec/nellymoserenc.c apply_mdct(s); s 327 libavcodec/nellymoserenc.c coeff_sum += s->mdct_out[i ] * s->mdct_out[i ] s 328 libavcodec/nellymoserenc.c + s->mdct_out[i + NELLY_BUF_LEN] * s->mdct_out[i + NELLY_BUF_LEN]; s 334 libavcodec/nellymoserenc.c if (s->avctx->trellis) { s 335 libavcodec/nellymoserenc.c get_exponent_dynamic(s, cand, idx_table); s 337 libavcodec/nellymoserenc.c get_exponent_greedy(s, cand, idx_table); s 351 libavcodec/nellymoserenc.c s->mdct_out[i] *= power_val; s 352 libavcodec/nellymoserenc.c s->mdct_out[i + NELLY_BUF_LEN] *= power_val; s 363 libavcodec/nellymoserenc.c coeff = s->mdct_out[block * NELLY_BUF_LEN + i]; s 387 libavcodec/nellymoserenc.c NellyMoserEncodeContext *s = avctx->priv_data; s 390 libavcodec/nellymoserenc.c if (s->last_frame) s 393 libavcodec/nellymoserenc.c memcpy(s->buf, s->buf + NELLY_SAMPLES, NELLY_BUF_LEN * sizeof(*s->buf)); s 395 libavcodec/nellymoserenc.c memcpy(s->buf + NELLY_BUF_LEN, frame->data[0], s 396 libavcodec/nellymoserenc.c frame->nb_samples * sizeof(*s->buf)); s 398 libavcodec/nellymoserenc.c memset(s->buf + NELLY_BUF_LEN + frame->nb_samples, 0, s 399 libavcodec/nellymoserenc.c (NELLY_SAMPLES - frame->nb_samples) * sizeof(*s->buf)); s 401 libavcodec/nellymoserenc.c s->last_frame = 1; s 403 libavcodec/nellymoserenc.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) s 406 libavcodec/nellymoserenc.c memset(s->buf + NELLY_BUF_LEN, 0, NELLY_SAMPLES * sizeof(*s->buf)); s 407 libavcodec/nellymoserenc.c s->last_frame = 1; s 412 libavcodec/nellymoserenc.c encode_block(s, avpkt->data, avpkt->size); s 415 libavcodec/nellymoserenc.c ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts, s 85 libavcodec/neon/mpegvideo.c static void dct_unquantize_h263_inter_neon(MpegEncContext *s, int16_t *block, s 88 libavcodec/neon/mpegvideo.c int nCoeffs = s->inter_scantable.raster_end[s->block_last_index[n]]; s 94 libavcodec/neon/mpegvideo.c static void dct_unquantize_h263_intra_neon(MpegEncContext *s, int16_t *block, s 100 libavcodec/neon/mpegvideo.c if (!s->h263_aic) { s 102 libavcodec/neon/mpegvideo.c block[0] *= s->y_dc_scale; s 104 libavcodec/neon/mpegvideo.c block[0] *= s->c_dc_scale; s 110 libavcodec/neon/mpegvideo.c if (s->ac_pred) { s 113 libavcodec/neon/mpegvideo.c nCoeffs = s->inter_scantable.raster_end[s->block_last_index[n]]; s 126 libavcodec/neon/mpegvideo.c av_cold void ff_mpv_common_init_neon(MpegEncContext *s) s 131 libavcodec/neon/mpegvideo.c s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_neon; s 132 libavcodec/neon/mpegvideo.c s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_neon; s 38 libavcodec/noise_bsf.c NoiseContext *s = ctx->priv_data; s 39 libavcodec/noise_bsf.c int amount = s->amount > 0 ? s->amount : (s->state % 10001 + 1); s 49 libavcodec/noise_bsf.c if (s->dropamount > 0 && s->state % s->dropamount == 0) { s 50 libavcodec/noise_bsf.c s->state++; s 62 libavcodec/noise_bsf.c s->state += pkt->data[i] + 1; s 63 libavcodec/noise_bsf.c if (s->state % amount == 0) s 64 libavcodec/noise_bsf.c pkt->data[i] = s->state; s 153 libavcodec/notchlc.c NotchLCContext *s = avctx->priv_data; s 154 libavcodec/notchlc.c GetByteContext rgb, dgb, *gb = &s->gb; s 160 libavcodec/notchlc.c s->texture_size_x = bytestream2_get_le32(gb); s 161 libavcodec/notchlc.c s->texture_size_y = bytestream2_get_le32(gb); s 163 libavcodec/notchlc.c ret = ff_set_dimensions(avctx, s->texture_size_x, s->texture_size_y); s 167 libavcodec/notchlc.c s->uv_offset_data_offset = bytestream2_get_le32(gb); s 168 libavcodec/notchlc.c if (s->uv_offset_data_offset >= UINT_MAX / 4) s 170 libavcodec/notchlc.c s->uv_offset_data_offset *= 4; s 171 libavcodec/notchlc.c if (s->uv_offset_data_offset >= uncompressed_size) s 174 libavcodec/notchlc.c s->y_control_data_offset = bytestream2_get_le32(gb); s 175 libavcodec/notchlc.c if (s->y_control_data_offset >= UINT_MAX / 4) s 177 libavcodec/notchlc.c s->y_control_data_offset *= 4; s 178 libavcodec/notchlc.c if (s->y_control_data_offset >= uncompressed_size) s 181 libavcodec/notchlc.c s->a_control_word_offset = bytestream2_get_le32(gb); s 182 libavcodec/notchlc.c if (s->a_control_word_offset >= UINT_MAX / 4) s 184 libavcodec/notchlc.c s->a_control_word_offset *= 4; s 185 libavcodec/notchlc.c if (s->a_control_word_offset >= uncompressed_size) s 188 libavcodec/notchlc.c s->uv_data_offset = bytestream2_get_le32(gb); s 189 libavcodec/notchlc.c if (s->uv_data_offset >= UINT_MAX / 4) s 191 libavcodec/notchlc.c s->uv_data_offset *= 4; s 192 libavcodec/notchlc.c if (s->uv_data_offset >= uncompressed_size) s 195 libavcodec/notchlc.c s->y_data_size = bytestream2_get_le32(gb); s 196 libavcodec/notchlc.c if (s->y_data_size >= UINT_MAX / 4) s 199 libavcodec/notchlc.c s->uv_count_size = bytestream2_get_le32(gb); s 200 libavcodec/notchlc.c if (s->uv_count_size >= UINT_MAX / 4) s 202 libavcodec/notchlc.c s->uv_count_size *= 4; s 203 libavcodec/notchlc.c if (s->uv_count_size >= uncompressed_size) s 206 libavcodec/notchlc.c s->a_count_size = bytestream2_get_le32(gb); s 207 libavcodec/notchlc.c if (s->a_count_size >= UINT_MAX / 4) s 209 libavcodec/notchlc.c s->a_count_size *= 4; s 210 libavcodec/notchlc.c if (s->a_count_size >= uncompressed_size) s 213 libavcodec/notchlc.c s->data_end = bytestream2_get_le32(gb); s 214 libavcodec/notchlc.c if (s->data_end > uncompressed_size) s 217 libavcodec/notchlc.c s->y_data_row_offsets = bytestream2_tell(gb); s 218 libavcodec/notchlc.c if (s->data_end <= s->y_data_size) s 220 libavcodec/notchlc.c s->y_data_offset = s->data_end - s->y_data_size; s 221 libavcodec/notchlc.c if (s->y_data_offset <= s->uv_count_size) s 223 libavcodec/notchlc.c s->uv_count_offset = s->y_data_offset - s->uv_count_size; s 230 libavcodec/notchlc.c bytestream2_seek(&rgb, s->y_data_row_offsets, SEEK_SET); s 231 libavcodec/notchlc.c bytestream2_seek(gb, s->y_control_data_offset, SEEK_SET); s 241 libavcodec/notchlc.c bytestream2_seek(&dgb, s->y_data_offset + row_offset, SEEK_SET); s 274 libavcodec/notchlc.c bytestream2_seek(&rgb, s->uv_offset_data_offset, SEEK_SET); s 275 libavcodec/notchlc.c bytestream2_seek(gb, s->a_control_word_offset, SEEK_SET); s 289 libavcodec/notchlc.c bytestream2_seek(&dgb, s->uv_data_offset + offset, SEEK_SET); s 398 libavcodec/notchlc.c NotchLCContext *s = avctx->priv_data; s 400 libavcodec/notchlc.c GetByteContext *gb = &s->gb; s 401 libavcodec/notchlc.c PutByteContext *pb = &s->pb; s 415 libavcodec/notchlc.c s->compressed_size = bytestream2_get_le32(gb); s 416 libavcodec/notchlc.c s->format = bytestream2_get_le32(gb); s 418 libavcodec/notchlc.c if (s->format > 2) s 421 libavcodec/notchlc.c if (s->format == 0) { s 422 libavcodec/notchlc.c ret = ff_lzf_uncompress(gb, &s->lzf_buffer, &s->lzf_size); s 426 libavcodec/notchlc.c if (uncompressed_size > s->lzf_size) s 429 libavcodec/notchlc.c bytestream2_init(gb, s->lzf_buffer, uncompressed_size); s 430 libavcodec/notchlc.c } else if (s->format == 1) { s 431 libavcodec/notchlc.c av_fast_padded_malloc(&s->uncompressed_buffer, &s->uncompressed_size, s 433 libavcodec/notchlc.c if (!s->uncompressed_buffer) s 436 libavcodec/notchlc.c bytestream2_init_writer(pb, s->uncompressed_buffer, s->uncompressed_size); s 442 libavcodec/notchlc.c bytestream2_init(gb, s->uncompressed_buffer, uncompressed_size); s 459 libavcodec/notchlc.c NotchLCContext *s = avctx->priv_data; s 461 libavcodec/notchlc.c av_freep(&s->uncompressed_buffer); s 462 libavcodec/notchlc.c s->uncompressed_size = 0; s 463 libavcodec/notchlc.c av_freep(&s->lzf_buffer); s 464 libavcodec/notchlc.c s->lzf_size = 0; s 43 libavcodec/nvdec_hevc.c static void fill_scaling_lists(CUVIDHEVCPICPARAMS *ppc, const HEVCContext *s) s 45 libavcodec/nvdec_hevc.c const ScalingList *sl = s->ps.pps->scaling_list_data_present_flag ? s 46 libavcodec/nvdec_hevc.c &s->ps.pps->scaling_list : &s->ps.sps->scaling_list; s 73 libavcodec/nvdec_hevc.c const HEVCContext *s = avctx->priv_data; s 74 libavcodec/nvdec_hevc.c const HEVCPPS *pps = s->ps.pps; s 75 libavcodec/nvdec_hevc.c const HEVCSPS *sps = s->ps.sps; s 85 libavcodec/nvdec_hevc.c ret = ff_nvdec_start_frame(avctx, s->ref->frame); s 89 libavcodec/nvdec_hevc.c fdd = (FrameDecodeData*)s->ref->frame->private_ref->data; s 97 libavcodec/nvdec_hevc.c .intra_pic_flag = IS_IRAP(s), s 130 libavcodec/nvdec_hevc.c .IrapPicFlag = IS_IRAP(s), s 131 libavcodec/nvdec_hevc.c .IdrPicFlag = IS_IDR(s), s 186 libavcodec/nvdec_hevc.c .NumBitsForShortTermRPSInSlice = s->sh.short_term_rps ? s->sh.short_term_ref_pic_set_size : 0, s 187 libavcodec/nvdec_hevc.c .NumDeltaPocsOfRefRpsIdx = s->sh.short_term_rps ? s->sh.short_term_rps->rps_idx_num_delta_pocs : 0, s 188 libavcodec/nvdec_hevc.c .NumPocTotalCurr = ff_hevc_frame_nb_refs(s), s 189 libavcodec/nvdec_hevc.c .NumPocStCurrBefore = s->rps[ST_CURR_BEF].nb_refs, s 190 libavcodec/nvdec_hevc.c .NumPocStCurrAfter = s->rps[ST_CURR_AFT].nb_refs, s 191 libavcodec/nvdec_hevc.c .NumPocLtCurr = s->rps[LT_CURR].nb_refs, s 192 libavcodec/nvdec_hevc.c .CurrPicOrderCntVal = s->ref->poc, s 218 libavcodec/nvdec_hevc.c if (s->rps[LT_CURR].nb_refs > FF_ARRAY_ELEMS(ppc->RefPicSetLtCurr) || s 219 libavcodec/nvdec_hevc.c s->rps[ST_CURR_BEF].nb_refs > FF_ARRAY_ELEMS(ppc->RefPicSetStCurrBefore) || s 220 libavcodec/nvdec_hevc.c s->rps[ST_CURR_AFT].nb_refs > FF_ARRAY_ELEMS(ppc->RefPicSetStCurrAfter)) { s 226 libavcodec/nvdec_hevc.c for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { s 227 libavcodec/nvdec_hevc.c const HEVCFrame *ref = &s->DPB[i]; s 240 libavcodec/nvdec_hevc.c for (i = 0; i < s->rps[ST_CURR_BEF].nb_refs; i++) { s 242 libavcodec/nvdec_hevc.c if (ppc->PicOrderCntVal[j] == s->rps[ST_CURR_BEF].list[i]) { s 248 libavcodec/nvdec_hevc.c for (i = 0; i < s->rps[ST_CURR_AFT].nb_refs; i++) { s 250 libavcodec/nvdec_hevc.c if (ppc->PicOrderCntVal[j] == s->rps[ST_CURR_AFT].list[i]) { s 256 libavcodec/nvdec_hevc.c for (i = 0; i < s->rps[LT_CURR].nb_refs; i++) { s 258 libavcodec/nvdec_hevc.c if (ppc->PicOrderCntVal[j] == s->rps[LT_CURR].list[i]) { s 265 libavcodec/nvdec_hevc.c fill_scaling_lists(ppc, s); s 300 libavcodec/nvdec_hevc.c const HEVCContext *s = avctx->priv_data; s 301 libavcodec/nvdec_hevc.c const HEVCSPS *sps = s->ps.sps; s 31 libavcodec/nvdec_mjpeg.c MJpegDecodeContext *s = avctx->priv_data; s 37 libavcodec/nvdec_mjpeg.c AVFrame *cur_frame = s->picture; s 30 libavcodec/nvdec_mpeg12.c MpegEncContext *s = avctx->priv_data; s 37 libavcodec/nvdec_mpeg12.c AVFrame *cur_frame = s->current_picture.f; s 53 libavcodec/nvdec_mpeg12.c .field_pic_flag = s->picture_structure != PICT_FRAME, s 54 libavcodec/nvdec_mpeg12.c .bottom_field_flag = s->picture_structure == PICT_BOTTOM_FIELD, s 55 libavcodec/nvdec_mpeg12.c .second_field = s->picture_structure != PICT_FRAME && !s->first_field, s 57 libavcodec/nvdec_mpeg12.c .intra_pic_flag = s->pict_type == AV_PICTURE_TYPE_I, s 58 libavcodec/nvdec_mpeg12.c .ref_pic_flag = s->pict_type == AV_PICTURE_TYPE_I || s 59 libavcodec/nvdec_mpeg12.c s->pict_type == AV_PICTURE_TYPE_P, s 62 libavcodec/nvdec_mpeg12.c .ForwardRefIdx = ff_nvdec_get_ref_idx(s->last_picture.f), s 63 libavcodec/nvdec_mpeg12.c .BackwardRefIdx = ff_nvdec_get_ref_idx(s->next_picture.f), s 65 libavcodec/nvdec_mpeg12.c .picture_coding_type = s->pict_type, s 66 libavcodec/nvdec_mpeg12.c .full_pel_forward_vector = s->full_pel[0], s 67 libavcodec/nvdec_mpeg12.c .full_pel_backward_vector = s->full_pel[1], s 68 libavcodec/nvdec_mpeg12.c .f_code = { { s->mpeg_f_code[0][0], s 69 libavcodec/nvdec_mpeg12.c s->mpeg_f_code[0][1] }, s 70 libavcodec/nvdec_mpeg12.c { s->mpeg_f_code[1][0], s 71 libavcodec/nvdec_mpeg12.c s->mpeg_f_code[1][1] } }, s 72 libavcodec/nvdec_mpeg12.c .intra_dc_precision = s->intra_dc_precision, s 73 libavcodec/nvdec_mpeg12.c .frame_pred_frame_dct = s->frame_pred_frame_dct, s 74 libavcodec/nvdec_mpeg12.c .concealment_motion_vectors = s->concealment_motion_vectors, s 75 libavcodec/nvdec_mpeg12.c .q_scale_type = s->q_scale_type, s 76 libavcodec/nvdec_mpeg12.c .intra_vlc_format = s->intra_vlc_format, s 77 libavcodec/nvdec_mpeg12.c .alternate_scan = s->alternate_scan, s 78 libavcodec/nvdec_mpeg12.c .top_field_first = s->top_field_first, s 83 libavcodec/nvdec_mpeg12.c ppc->QuantMatrixIntra[i] = s->intra_matrix[i]; s 84 libavcodec/nvdec_mpeg12.c ppc->QuantMatrixInter[i] = s->inter_matrix[i]; s 31 libavcodec/nvdec_mpeg4.c MpegEncContext *s = &m->m; s 38 libavcodec/nvdec_mpeg4.c AVFrame *cur_frame = s->current_picture.f; s 54 libavcodec/nvdec_mpeg4.c .intra_pic_flag = s->pict_type == AV_PICTURE_TYPE_I, s 55 libavcodec/nvdec_mpeg4.c .ref_pic_flag = s->pict_type == AV_PICTURE_TYPE_I || s 56 libavcodec/nvdec_mpeg4.c s->pict_type == AV_PICTURE_TYPE_P || s 57 libavcodec/nvdec_mpeg4.c s->pict_type == AV_PICTURE_TYPE_S, s 60 libavcodec/nvdec_mpeg4.c .ForwardRefIdx = ff_nvdec_get_ref_idx(s->last_picture.f), s 61 libavcodec/nvdec_mpeg4.c .BackwardRefIdx = ff_nvdec_get_ref_idx(s->next_picture.f), s 63 libavcodec/nvdec_mpeg4.c .video_object_layer_width = s->width, s 64 libavcodec/nvdec_mpeg4.c .video_object_layer_height = s->height, s 66 libavcodec/nvdec_mpeg4.c .top_field_first = s->top_field_first, s 68 libavcodec/nvdec_mpeg4.c .quant_type = s->mpeg_quant, s 69 libavcodec/nvdec_mpeg4.c .quarter_sample = s->quarter_sample, s 71 libavcodec/nvdec_mpeg4.c .divx_flags = s->divx_packed ? 5 : 0, s 73 libavcodec/nvdec_mpeg4.c .vop_coding_type = s->pict_type - AV_PICTURE_TYPE_I, s 75 libavcodec/nvdec_mpeg4.c .vop_rounding_type = s->no_rounding, s 76 libavcodec/nvdec_mpeg4.c .alternate_vertical_scan_flag = s->alternate_scan, s 77 libavcodec/nvdec_mpeg4.c .interlaced = !s->progressive_sequence, s 78 libavcodec/nvdec_mpeg4.c .vop_fcode_forward = s->f_code, s 79 libavcodec/nvdec_mpeg4.c .vop_fcode_backward = s->b_code, s 80 libavcodec/nvdec_mpeg4.c .trd = { s->pp_time, s->pp_field_time >> 1 }, s 81 libavcodec/nvdec_mpeg4.c .trb = { s->pb_time, s->pb_field_time >> 1 }, s 83 libavcodec/nvdec_mpeg4.c .gmc_enabled = s->pict_type == AV_PICTURE_TYPE_S && s 89 libavcodec/nvdec_mpeg4.c ppc->QuantMatrixIntra[i] = s->intra_matrix[i]; s 90 libavcodec/nvdec_mpeg4.c ppc->QuantMatrixInter[i] = s->inter_matrix[i]; s 31 libavcodec/nvdec_vc1.c MpegEncContext *s = &v->s; s 37 libavcodec/nvdec_vc1.c AVFrame *cur_frame = s->current_picture.f; s 56 libavcodec/nvdec_vc1.c .intra_pic_flag = s->pict_type == AV_PICTURE_TYPE_I || s 57 libavcodec/nvdec_vc1.c s->pict_type == AV_PICTURE_TYPE_BI, s 58 libavcodec/nvdec_vc1.c .ref_pic_flag = s->pict_type == AV_PICTURE_TYPE_I || s 59 libavcodec/nvdec_vc1.c s->pict_type == AV_PICTURE_TYPE_P, s 62 libavcodec/nvdec_vc1.c .ForwardRefIdx = ff_nvdec_get_ref_idx(s->last_picture.f), s 63 libavcodec/nvdec_vc1.c .BackwardRefIdx = ff_nvdec_get_ref_idx(s->next_picture.f), s 67 libavcodec/nvdec_vc1.c .intra_pic_flag = s->pict_type == AV_PICTURE_TYPE_I || s 68 libavcodec/nvdec_vc1.c s->pict_type == AV_PICTURE_TYPE_BI, s 69 libavcodec/nvdec_vc1.c .ref_pic_flag = s->pict_type == AV_PICTURE_TYPE_I || s 70 libavcodec/nvdec_vc1.c s->pict_type == AV_PICTURE_TYPE_P, s 83 libavcodec/nvdec_vc1.c .maxbframes = s->max_b_frames, s 90 libavcodec/nvdec_vc1.c .loopfilter = v->s.loop_filter, s 50 libavcodec/omx.c OMX_TICKS s; s 51 libavcodec/omx.c s.nLowPart = value & 0xffffffff; s 52 libavcodec/omx.c s.nHighPart = value >> 32; s 53 libavcodec/omx.c return s; s 66 libavcodec/omx.c x.nVersion = s->version; \ s 96 libavcodec/omx.c static av_cold int omx_try_load(OMXContext *s, void *logctx, s 101 libavcodec/omx.c s->lib2 = dlopen(libname2, RTLD_NOW | RTLD_GLOBAL); s 102 libavcodec/omx.c if (!s->lib2) { s 106 libavcodec/omx.c s->host_init = dlsym(s->lib2, "bcm_host_init"); s 107 libavcodec/omx.c if (!s->host_init) { s 109 libavcodec/omx.c dlclose(s->lib2); s 110 libavcodec/omx.c s->lib2 = NULL; s 114 libavcodec/omx.c s->lib = dlopen(libname, RTLD_NOW | RTLD_GLOBAL); s 115 libavcodec/omx.c if (!s->lib) { s 119 libavcodec/omx.c s->ptr_Init = dlsym_prefixed(s->lib, "OMX_Init", prefix); s 120 libavcodec/omx.c s->ptr_Deinit = dlsym_prefixed(s->lib, "OMX_Deinit", prefix); s 121 libavcodec/omx.c s->ptr_ComponentNameEnum = dlsym_prefixed(s->lib, "OMX_ComponentNameEnum", prefix); s 122 libavcodec/omx.c s->ptr_GetHandle = dlsym_prefixed(s->lib, "OMX_GetHandle", prefix); s 123 libavcodec/omx.c s->ptr_FreeHandle = dlsym_prefixed(s->lib, "OMX_FreeHandle", prefix); s 124 libavcodec/omx.c s->ptr_GetComponentsOfRole = dlsym_prefixed(s->lib, "OMX_GetComponentsOfRole", prefix); s 125 libavcodec/omx.c s->ptr_GetRolesOfComponent = dlsym_prefixed(s->lib, "OMX_GetRolesOfComponent", prefix); s 126 libavcodec/omx.c if (!s->ptr_Init || !s->ptr_Deinit || !s->ptr_ComponentNameEnum || s 127 libavcodec/omx.c !s->ptr_GetHandle || !s->ptr_FreeHandle || s 128 libavcodec/omx.c !s->ptr_GetComponentsOfRole || !s->ptr_GetRolesOfComponent) { s 130 libavcodec/omx.c dlclose(s->lib); s 131 libavcodec/omx.c s->lib = NULL; s 132 libavcodec/omx.c if (s->lib2) s 133 libavcodec/omx.c dlclose(s->lib2); s 134 libavcodec/omx.c s->lib2 = NULL; s 266 libavcodec/omx.c OMXCodecContext *s = app_data; s 272 libavcodec/omx.c pthread_mutex_lock(&s->state_mutex); s 273 libavcodec/omx.c av_log(s->avctx, AV_LOG_ERROR, "OMX error %"PRIx32"\n", (uint32_t) data1); s 274 libavcodec/omx.c s->error = data1; s 275 libavcodec/omx.c pthread_cond_broadcast(&s->state_cond); s 276 libavcodec/omx.c pthread_mutex_unlock(&s->state_mutex); s 280 libavcodec/omx.c pthread_mutex_lock(&s->state_mutex); s 281 libavcodec/omx.c s->state = data2; s 282 libavcodec/omx.c av_log(s->avctx, AV_LOG_VERBOSE, "OMX state changed to %"PRIu32"\n", (uint32_t) data2); s 283 libavcodec/omx.c pthread_cond_broadcast(&s->state_cond); s 284 libavcodec/omx.c pthread_mutex_unlock(&s->state_mutex); s 286 libavcodec/omx.c av_log(s->avctx, AV_LOG_VERBOSE, "OMX port %"PRIu32" disabled\n", (uint32_t) data2); s 288 libavcodec/omx.c av_log(s->avctx, AV_LOG_VERBOSE, "OMX port %"PRIu32" enabled\n", (uint32_t) data2); s 290 libavcodec/omx.c av_log(s->avctx, AV_LOG_VERBOSE, "OMX command complete, command %"PRIu32", value %"PRIu32"\n", s 295 libavcodec/omx.c av_log(s->avctx, AV_LOG_VERBOSE, "OMX port %"PRIu32" settings changed\n", (uint32_t) data1); s 298 libavcodec/omx.c av_log(s->avctx, AV_LOG_VERBOSE, "OMX event %d %"PRIx32" %"PRIx32"\n", s 308 libavcodec/omx.c OMXCodecContext *s = app_data; s 309 libavcodec/omx.c if (s->input_zerocopy) { s 318 libavcodec/omx.c append_buffer(&s->input_mutex, &s->input_cond, s 319 libavcodec/omx.c &s->num_free_in_buffers, s->free_in_buffers, buffer); s 326 libavcodec/omx.c OMXCodecContext *s = app_data; s 327 libavcodec/omx.c append_buffer(&s->output_mutex, &s->output_cond, s 328 libavcodec/omx.c &s->num_done_out_buffers, s->done_out_buffers, buffer); s 375 libavcodec/omx.c static av_cold int wait_for_state(OMXCodecContext *s, OMX_STATETYPE state) s 378 libavcodec/omx.c pthread_mutex_lock(&s->state_mutex); s 379 libavcodec/omx.c while (s->state != state && s->error == OMX_ErrorNone) s 380 libavcodec/omx.c pthread_cond_wait(&s->state_cond, &s->state_mutex); s 381 libavcodec/omx.c if (s->error != OMX_ErrorNone) s 383 libavcodec/omx.c pthread_mutex_unlock(&s->state_mutex); s 389 libavcodec/omx.c OMXCodecContext *s = avctx->priv_data; s 398 libavcodec/omx.c s->version.s.nVersionMajor = 1; s 399 libavcodec/omx.c s->version.s.nVersionMinor = 1; s 400 libavcodec/omx.c s->version.s.nRevision = 2; s 402 libavcodec/omx.c err = s->omx_context->ptr_GetHandle(&s->handle, s->component_name, s, (OMX_CALLBACKTYPE*) &callbacks); s 404 libavcodec/omx.c av_log(avctx, AV_LOG_ERROR, "OMX_GetHandle(%s) failed: %x\n", s->component_name, err); s 412 libavcodec/omx.c OMX_SetParameter(s->handle, OMX_IndexParamStandardComponentRole, &role_params); s 415 libavcodec/omx.c err = OMX_GetParameter(s->handle, OMX_IndexParamVideoInit, &video_port_params); s 418 libavcodec/omx.c s->in_port = s->out_port = -1; s 424 libavcodec/omx.c err = OMX_GetParameter(s->handle, OMX_IndexParamPortDefinition, &port_params); s 429 libavcodec/omx.c if (port_params.eDir == OMX_DirInput && s->in_port < 0) { s 431 libavcodec/omx.c s->in_port = port; s 432 libavcodec/omx.c } else if (port_params.eDir == OMX_DirOutput && s->out_port < 0) { s 434 libavcodec/omx.c s->out_port = port; s 437 libavcodec/omx.c if (s->in_port < 0 || s->out_port < 0) { s 438 libavcodec/omx.c av_log(avctx, AV_LOG_ERROR, "No in or out port found (in %d out %d)\n", s->in_port, s->out_port); s 442 libavcodec/omx.c s->color_format = 0; s 446 libavcodec/omx.c video_port_format.nPortIndex = s->in_port; s 447 libavcodec/omx.c if (OMX_GetParameter(s->handle, OMX_IndexParamVideoPortFormat, &video_port_format) != OMX_ErrorNone) s 451 libavcodec/omx.c s->color_format = video_port_format.eColorFormat; s 455 libavcodec/omx.c if (s->color_format == 0) { s 466 libavcodec/omx.c in_port_params.format.video.eColorFormat = s->color_format; s 467 libavcodec/omx.c s->stride = avctx->width; s 468 libavcodec/omx.c s->plane_size = avctx->height; s 471 libavcodec/omx.c in_port_params.format.video.nStride = s->stride; s 472 libavcodec/omx.c in_port_params.format.video.nSliceHeight = s->plane_size; s 480 libavcodec/omx.c err = OMX_SetParameter(s->handle, OMX_IndexParamPortDefinition, &in_port_params); s 482 libavcodec/omx.c err = OMX_GetParameter(s->handle, OMX_IndexParamPortDefinition, &in_port_params); s 484 libavcodec/omx.c s->stride = in_port_params.format.video.nStride; s 485 libavcodec/omx.c s->plane_size = in_port_params.format.video.nSliceHeight; s 486 libavcodec/omx.c s->num_in_buffers = in_port_params.nBufferCountActual; s 488 libavcodec/omx.c err = OMX_GetParameter(s->handle, OMX_IndexParamPortDefinition, &out_port_params); s 505 libavcodec/omx.c err = OMX_SetParameter(s->handle, OMX_IndexParamPortDefinition, &out_port_params); s 507 libavcodec/omx.c err = OMX_GetParameter(s->handle, OMX_IndexParamPortDefinition, &out_port_params); s 509 libavcodec/omx.c s->num_out_buffers = out_port_params.nBufferCountActual; s 512 libavcodec/omx.c vid_param_bitrate.nPortIndex = s->out_port; s 515 libavcodec/omx.c err = OMX_SetParameter(s->handle, OMX_IndexParamVideoBitrate, &vid_param_bitrate); s 522 libavcodec/omx.c avc.nPortIndex = s->out_port; s 523 libavcodec/omx.c err = OMX_GetParameter(s->handle, OMX_IndexParamVideoAvc, &avc); s 527 libavcodec/omx.c switch (s->profile == FF_PROFILE_UNKNOWN ? avctx->profile : s->profile) { s 540 libavcodec/omx.c err = OMX_SetParameter(s->handle, OMX_IndexParamVideoAvc, &avc); s 544 libavcodec/omx.c err = OMX_SendCommand(s->handle, OMX_CommandStateSet, OMX_StateIdle, NULL); s 547 libavcodec/omx.c s->in_buffer_headers = av_mallocz(sizeof(OMX_BUFFERHEADERTYPE*) * s->num_in_buffers); s 548 libavcodec/omx.c s->free_in_buffers = av_mallocz(sizeof(OMX_BUFFERHEADERTYPE*) * s->num_in_buffers); s 549 libavcodec/omx.c s->out_buffer_headers = av_mallocz(sizeof(OMX_BUFFERHEADERTYPE*) * s->num_out_buffers); s 550 libavcodec/omx.c s->done_out_buffers = av_mallocz(sizeof(OMX_BUFFERHEADERTYPE*) * s->num_out_buffers); s 551 libavcodec/omx.c if (!s->in_buffer_headers || !s->free_in_buffers || !s->out_buffer_headers || !s->done_out_buffers) s 553 libavcodec/omx.c for (i = 0; i < s->num_in_buffers && err == OMX_ErrorNone; i++) { s 554 libavcodec/omx.c if (s->input_zerocopy) s 555 libavcodec/omx.c err = OMX_UseBuffer(s->handle, &s->in_buffer_headers[i], s->in_port, s, in_port_params.nBufferSize, NULL); s 557 libavcodec/omx.c err = OMX_AllocateBuffer(s->handle, &s->in_buffer_headers[i], s->in_port, s, in_port_params.nBufferSize); s 559 libavcodec/omx.c s->in_buffer_headers[i]->pAppPrivate = s->in_buffer_headers[i]->pOutputPortPrivate = NULL; s 562 libavcodec/omx.c s->num_in_buffers = i; s 563 libavcodec/omx.c for (i = 0; i < s->num_out_buffers && err == OMX_ErrorNone; i++) s 564 libavcodec/omx.c err = OMX_AllocateBuffer(s->handle, &s->out_buffer_headers[i], s->out_port, s, out_port_params.nBufferSize); s 566 libavcodec/omx.c s->num_out_buffers = i; s 568 libavcodec/omx.c if (wait_for_state(s, OMX_StateIdle) < 0) { s 572 libavcodec/omx.c err = OMX_SendCommand(s->handle, OMX_CommandStateSet, OMX_StateExecuting, NULL); s 574 libavcodec/omx.c if (wait_for_state(s, OMX_StateExecuting) < 0) { s 579 libavcodec/omx.c for (i = 0; i < s->num_out_buffers && err == OMX_ErrorNone; i++) s 580 libavcodec/omx.c err = OMX_FillThisBuffer(s->handle, s->out_buffer_headers[i]); s 582 libavcodec/omx.c for (; i < s->num_out_buffers; i++) s 583 libavcodec/omx.c s->done_out_buffers[s->num_done_out_buffers++] = s->out_buffer_headers[i]; s 585 libavcodec/omx.c for (i = 0; i < s->num_in_buffers; i++) s 586 libavcodec/omx.c s->free_in_buffers[s->num_free_in_buffers++] = s->in_buffer_headers[i]; s 590 libavcodec/omx.c static av_cold void cleanup(OMXCodecContext *s) s 594 libavcodec/omx.c pthread_mutex_lock(&s->state_mutex); s 595 libavcodec/omx.c executing = s->state == OMX_StateExecuting; s 596 libavcodec/omx.c pthread_mutex_unlock(&s->state_mutex); s 599 libavcodec/omx.c OMX_SendCommand(s->handle, OMX_CommandStateSet, OMX_StateIdle, NULL); s 600 libavcodec/omx.c wait_for_state(s, OMX_StateIdle); s 601 libavcodec/omx.c OMX_SendCommand(s->handle, OMX_CommandStateSet, OMX_StateLoaded, NULL); s 602 libavcodec/omx.c for (i = 0; i < s->num_in_buffers; i++) { s 603 libavcodec/omx.c OMX_BUFFERHEADERTYPE *buffer = get_buffer(&s->input_mutex, &s->input_cond, s 604 libavcodec/omx.c &s->num_free_in_buffers, s->free_in_buffers, 1); s 605 libavcodec/omx.c if (s->input_zerocopy) s 607 libavcodec/omx.c OMX_FreeBuffer(s->handle, s->in_port, buffer); s 609 libavcodec/omx.c for (i = 0; i < s->num_out_buffers; i++) { s 610 libavcodec/omx.c OMX_BUFFERHEADERTYPE *buffer = get_buffer(&s->output_mutex, &s->output_cond, s 611 libavcodec/omx.c &s->num_done_out_buffers, s->done_out_buffers, 1); s 612 libavcodec/omx.c OMX_FreeBuffer(s->handle, s->out_port, buffer); s 614 libavcodec/omx.c wait_for_state(s, OMX_StateLoaded); s 616 libavcodec/omx.c if (s->handle) { s 617 libavcodec/omx.c s->omx_context->ptr_FreeHandle(s->handle); s 618 libavcodec/omx.c s->handle = NULL; s 621 libavcodec/omx.c omx_deinit(s->omx_context); s 622 libavcodec/omx.c s->omx_context = NULL; s 623 libavcodec/omx.c if (s->mutex_cond_inited) { s 624 libavcodec/omx.c pthread_cond_destroy(&s->state_cond); s 625 libavcodec/omx.c pthread_mutex_destroy(&s->state_mutex); s 626 libavcodec/omx.c pthread_cond_destroy(&s->input_cond); s 627 libavcodec/omx.c pthread_mutex_destroy(&s->input_mutex); s 628 libavcodec/omx.c pthread_cond_destroy(&s->output_cond); s 629 libavcodec/omx.c pthread_mutex_destroy(&s->output_mutex); s 630 libavcodec/omx.c s->mutex_cond_inited = 0; s 632 libavcodec/omx.c av_freep(&s->in_buffer_headers); s 633 libavcodec/omx.c av_freep(&s->out_buffer_headers); s 634 libavcodec/omx.c av_freep(&s->free_in_buffers); s 635 libavcodec/omx.c av_freep(&s->done_out_buffers); s 636 libavcodec/omx.c av_freep(&s->output_buf); s 641 libavcodec/omx.c OMXCodecContext *s = avctx->priv_data; s 647 libavcodec/omx.c s->omx_context = omx_init(avctx, s->libname, s->libprefix); s 648 libavcodec/omx.c if (!s->omx_context) s 651 libavcodec/omx.c pthread_mutex_init(&s->state_mutex, NULL); s 652 libavcodec/omx.c pthread_cond_init(&s->state_cond, NULL); s 653 libavcodec/omx.c pthread_mutex_init(&s->input_mutex, NULL); s 654 libavcodec/omx.c pthread_cond_init(&s->input_cond, NULL); s 655 libavcodec/omx.c pthread_mutex_init(&s->output_mutex, NULL); s 656 libavcodec/omx.c pthread_cond_init(&s->output_cond, NULL); s 657 libavcodec/omx.c s->mutex_cond_inited = 1; s 658 libavcodec/omx.c s->avctx = avctx; s 659 libavcodec/omx.c s->state = OMX_StateLoaded; s 660 libavcodec/omx.c s->error = OMX_ErrorNone; s 673 libavcodec/omx.c if ((ret = find_component(s->omx_context, avctx, role, s->component_name, sizeof(s->component_name))) < 0) s 676 libavcodec/omx.c av_log(avctx, AV_LOG_INFO, "Using %s\n", s->component_name); s 683 libavcodec/omx.c buffer = get_buffer(&s->output_mutex, &s->output_cond, s 684 libavcodec/omx.c &s->num_done_out_buffers, s->done_out_buffers, 1); s 694 libavcodec/omx.c err = OMX_FillThisBuffer(s->handle, buffer); s 696 libavcodec/omx.c append_buffer(&s->output_mutex, &s->output_cond, s 697 libavcodec/omx.c &s->num_done_out_buffers, s->done_out_buffers, buffer); s 734 libavcodec/omx.c OMXCodecContext *s = avctx->priv_data; s 744 libavcodec/omx.c buffer = get_buffer(&s->input_mutex, &s->input_cond, s 745 libavcodec/omx.c &s->num_free_in_buffers, s->free_in_buffers, 1); s 747 libavcodec/omx.c buffer->nFilledLen = av_image_fill_arrays(dst, linesize, buffer->pBuffer, avctx->pix_fmt, s->stride, s->plane_size, 1); s 749 libavcodec/omx.c if (s->input_zerocopy) { s 752 libavcodec/omx.c av_image_fill_arrays(src, src_linesize, frame->data[0], avctx->pix_fmt, s->stride, s->plane_size, 1); s 764 libavcodec/omx.c append_buffer(&s->input_mutex, &s->input_cond, &s->num_free_in_buffers, s->free_in_buffers, buffer); s 776 libavcodec/omx.c int image_buffer_size = av_image_get_buffer_size(avctx->pix_fmt, s->stride, s->plane_size, 1); s 781 libavcodec/omx.c append_buffer(&s->input_mutex, &s->input_cond, &s->num_free_in_buffers, s->free_in_buffers, buffer); s 789 libavcodec/omx.c buffer->nFilledLen = av_image_fill_arrays(dst, linesize, buffer->pBuffer, avctx->pix_fmt, s->stride, s->plane_size, 1); s 807 libavcodec/omx.c err = OMX_SetConfig(s->handle, OMX_IndexConfigBrcmVideoRequestIFrame, &config); s 814 libavcodec/omx.c config.nPortIndex = s->out_port; s 816 libavcodec/omx.c err = OMX_SetConfig(s->handle, OMX_IndexConfigVideoIntraVOPRefresh, &config); s 822 libavcodec/omx.c err = OMX_EmptyThisBuffer(s->handle, buffer); s 824 libavcodec/omx.c append_buffer(&s->input_mutex, &s->input_cond, &s->num_free_in_buffers, s->free_in_buffers, buffer); s 828 libavcodec/omx.c } else if (!s->eos_sent) { s 829 libavcodec/omx.c buffer = get_buffer(&s->input_mutex, &s->input_cond, s 830 libavcodec/omx.c &s->num_free_in_buffers, s->free_in_buffers, 1); s 835 libavcodec/omx.c err = OMX_EmptyThisBuffer(s->handle, buffer); s 837 libavcodec/omx.c append_buffer(&s->input_mutex, &s->input_cond, &s->num_free_in_buffers, s->free_in_buffers, buffer); s 841 libavcodec/omx.c s->eos_sent = 1; s 844 libavcodec/omx.c while (!*got_packet && ret == 0 && !s->got_eos) { s 848 libavcodec/omx.c buffer = get_buffer(&s->output_mutex, &s->output_cond, s 849 libavcodec/omx.c &s->num_done_out_buffers, s->done_out_buffers, s 855 libavcodec/omx.c s->got_eos = 1; s 869 libavcodec/omx.c int newsize = s->output_buf_size + buffer->nFilledLen + AV_INPUT_BUFFER_PADDING_SIZE; s 870 libavcodec/omx.c if ((ret = av_reallocp(&s->output_buf, newsize)) < 0) { s 871 libavcodec/omx.c s->output_buf_size = 0; s 874 libavcodec/omx.c memcpy(s->output_buf + s->output_buf_size, buffer->pBuffer + buffer->nOffset, buffer->nFilledLen); s 875 libavcodec/omx.c s->output_buf_size += buffer->nFilledLen; s 877 libavcodec/omx.c if ((ret = av_packet_from_data(pkt, s->output_buf, s->output_buf_size)) < 0) { s 878 libavcodec/omx.c av_freep(&s->output_buf); s 879 libavcodec/omx.c s->output_buf_size = 0; s 882 libavcodec/omx.c s->output_buf = NULL; s 883 libavcodec/omx.c s->output_buf_size = 0; s 890 libavcodec/omx.c if ((ret = ff_alloc_packet2(avctx, pkt, s->output_buf_size + buffer->nFilledLen, 0)) < 0) { s 892 libavcodec/omx.c (int)(s->output_buf_size + buffer->nFilledLen)); s 895 libavcodec/omx.c memcpy(pkt->data, s->output_buf, s->output_buf_size); s 896 libavcodec/omx.c memcpy(pkt->data + s->output_buf_size, buffer->pBuffer + buffer->nOffset, buffer->nFilledLen); s 897 libavcodec/omx.c av_freep(&s->output_buf); s 898 libavcodec/omx.c s->output_buf_size = 0; s 912 libavcodec/omx.c err = OMX_FillThisBuffer(s->handle, buffer); s 914 libavcodec/omx.c append_buffer(&s->output_mutex, &s->output_cond, &s->num_done_out_buffers, s->done_out_buffers, buffer); s 924 libavcodec/omx.c OMXCodecContext *s = avctx->priv_data; s 926 libavcodec/omx.c cleanup(s); s 378 libavcodec/on2avc.c #define CMUL1_R(s, t, is, it) \ s 379 libavcodec/on2avc.c s[is + 0] * t[it + 0] - s[is + 1] * t[it + 1] s 380 libavcodec/on2avc.c #define CMUL1_I(s, t, is, it) \ s 381 libavcodec/on2avc.c s[is + 0] * t[it + 1] + s[is + 1] * t[it + 0] s 382 libavcodec/on2avc.c #define CMUL2_R(s, t, is, it) \ s 383 libavcodec/on2avc.c s[is + 0] * t[it + 0] + s[is + 1] * t[it + 1] s 384 libavcodec/on2avc.c #define CMUL2_I(s, t, is, it) \ s 385 libavcodec/on2avc.c s[is + 0] * t[it + 1] - s[is + 1] * t[it + 0] s 50 libavcodec/options.c AVCodecContext *s = obj; s 51 libavcodec/options.c if (!prev && s->codec && s->codec->priv_class && s->priv_data) s 52 libavcodec/options.c return s->priv_data; s 92 libavcodec/options.c static int init_context_defaults(AVCodecContext *s, const AVCodec *codec) s 95 libavcodec/options.c memset(s, 0, sizeof(AVCodecContext)); s 97 libavcodec/options.c s->av_class = &av_codec_context_class; s 99 libavcodec/options.c s->codec_type = codec ? codec->type : AVMEDIA_TYPE_UNKNOWN; s 101 libavcodec/options.c s->codec = codec; s 102 libavcodec/options.c s->codec_id = codec->id; s 105 libavcodec/options.c if(s->codec_type == AVMEDIA_TYPE_AUDIO) s 107 libavcodec/options.c else if(s->codec_type == AVMEDIA_TYPE_VIDEO) s 109 libavcodec/options.c else if(s->codec_type == AVMEDIA_TYPE_SUBTITLE) s 111 libavcodec/options.c av_opt_set_defaults2(s, flags, flags); s 113 libavcodec/options.c s->time_base = (AVRational){0,1}; s 114 libavcodec/options.c s->framerate = (AVRational){ 0, 1 }; s 115 libavcodec/options.c s->pkt_timebase = (AVRational){ 0, 1 }; s 116 libavcodec/options.c s->get_buffer2 = avcodec_default_get_buffer2; s 117 libavcodec/options.c s->get_format = avcodec_default_get_format; s 118 libavcodec/options.c s->execute = avcodec_default_execute; s 119 libavcodec/options.c s->execute2 = avcodec_default_execute2; s 120 libavcodec/options.c s->sample_aspect_ratio = (AVRational){0,1}; s 121 libavcodec/options.c s->pix_fmt = AV_PIX_FMT_NONE; s 122 libavcodec/options.c s->sw_pix_fmt = AV_PIX_FMT_NONE; s 123 libavcodec/options.c s->sample_fmt = AV_SAMPLE_FMT_NONE; s 125 libavcodec/options.c s->reordered_opaque = AV_NOPTS_VALUE; s 127 libavcodec/options.c if(!s->priv_data){ s 128 libavcodec/options.c s->priv_data= av_mallocz(codec->priv_data_size); s 129 libavcodec/options.c if (!s->priv_data) { s 134 libavcodec/options.c *(const AVClass**)s->priv_data = codec->priv_class; s 135 libavcodec/options.c av_opt_set_defaults(s->priv_data); s 142 libavcodec/options.c ret = av_opt_set(s, d->key, d->value, 0); s 151 libavcodec/options.c int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec) s 153 libavcodec/options.c return init_context_defaults(s, codec); s 293 libavcodec/opus.c OpusContext *s) s 339 libavcodec/opus.c s->gain_i = AV_RL16(extradata + 16); s 340 libavcodec/opus.c if (s->gain_i) s 341 libavcodec/opus.c s->gain = ff_exp10(s->gain_i / (20.0 * 256)); s 402 libavcodec/opus.c s->channel_maps = av_mallocz_array(channels, sizeof(*s->channel_maps)); s 403 libavcodec/opus.c if (!s->channel_maps) s 407 libavcodec/opus.c ChannelMap *map = &s->channel_maps[i]; s 416 libavcodec/opus.c av_freep(&s->channel_maps); s 440 libavcodec/opus.c s->nb_streams = streams; s 441 libavcodec/opus.c s->nb_stereo_streams = stereo_streams; s 50 libavcodec/opus.h #define ROUND_MULL(a,b,s) (((MUL64(a, b) >> ((s) - 1)) + 1) >> 1) s 179 libavcodec/opus.h int ff_opus_parse_extradata(AVCodecContext *avctx, OpusContext *s); s 183 libavcodec/opus.h void ff_silk_flush(SilkContext *s); s 189 libavcodec/opus.h int ff_silk_decode_superframe(SilkContext *s, OpusRangeCoder *rc, s 30 libavcodec/opus_metadata_bsf.c OpusBSFContext *s = bsfc->priv_data; s 35 libavcodec/opus_metadata_bsf.c AV_WL16(bsfc->par_out->extradata + 16, s->gain); s 86 libavcodec/opus_parser.c OpusParseContext *s = ctx->priv_data; s 87 libavcodec/opus_parser.c ParseContext *pc = &s->pc; s 102 libavcodec/opus_parser.c if (!s->ts_framing && buf_size > 2) { s 105 libavcodec/opus_parser.c s->ts_framing = 1; s 108 libavcodec/opus_parser.c if (s->ts_framing && !start_found) { s 124 libavcodec/opus_parser.c if (!s->ts_framing) s 127 libavcodec/opus_parser.c if (avctx->extradata && !s->extradata_parsed) { s 128 libavcodec/opus_parser.c ret = ff_opus_parse_extradata(avctx, &s->ctx); s 133 libavcodec/opus_parser.c av_freep(&s->ctx.channel_maps); s 134 libavcodec/opus_parser.c s->extradata_parsed = 1; s 137 libavcodec/opus_parser.c if (payload_len <= buf_size && (!s->ts_framing || start_found)) { s 138 libavcodec/opus_parser.c ret = ff_opus_parse_packet(&s->pkt, payload, payload_len, s->ctx.nb_streams > 1); s 145 libavcodec/opus_parser.c ctx->duration = s->pkt.frame_count * s->pkt.frame_duration; s 148 libavcodec/opus_parser.c if (s->ts_framing) { s 169 libavcodec/opus_parser.c OpusParseContext *s = ctx->priv_data; s 170 libavcodec/opus_parser.c ParseContext *pc = &s->pc; s 175 libavcodec/opus_parser.c if (s->ts_framing && next != AVERROR_INVALIDDATA && s 85 libavcodec/opus_pvq.c float c, float s) s 94 libavcodec/opus_pvq.c Xptr[stride] = c * x2 + s * x1; s 95 libavcodec/opus_pvq.c *Xptr++ = c * x1 - s * x2; s 102 libavcodec/opus_pvq.c Xptr[stride] = c * x2 + s * x1; s 103 libavcodec/opus_pvq.c *Xptr-- = c * x1 - s * x2; s 112 libavcodec/opus_pvq.c float c, s; s 123 libavcodec/opus_pvq.c s = sinf(theta); s 136 libavcodec/opus_pvq.c celt_exp_rotation_impl(X + i * len, len, 1, c, -s); s 138 libavcodec/opus_pvq.c celt_exp_rotation_impl(X + i * len, len, stride2, s, -c); s 141 libavcodec/opus_pvq.c celt_exp_rotation_impl(X + i * len, len, stride2, s, c); s 142 libavcodec/opus_pvq.c celt_exp_rotation_impl(X + i * len, len, 1, c, s); s 272 libavcodec/opus_pvq.c int s, val; s 282 libavcodec/opus_pvq.c s = -(i >= p); s 283 libavcodec/opus_pvq.c i -= p & s; s 298 libavcodec/opus_pvq.c val = (k0 - K + s) ^ s; s 311 libavcodec/opus_pvq.c s = -(i >= q); s 312 libavcodec/opus_pvq.c i -= q & s; s 320 libavcodec/opus_pvq.c val = (k0 - K + s) ^ s; s 330 libavcodec/opus_pvq.c s = -(i >= p); s 331 libavcodec/opus_pvq.c i -= p & s; s 338 libavcodec/opus_pvq.c val = (k0 - K + s) ^ s; s 343 libavcodec/opus_pvq.c s = -i; s 344 libavcodec/opus_pvq.c val = (K + s) ^ s; s 899 libavcodec/opus_pvq.c CeltPVQ *s = av_malloc(sizeof(CeltPVQ)); s 900 libavcodec/opus_pvq.c if (!s) s 903 libavcodec/opus_pvq.c s->pvq_search = ppp_pvq_search_c; s 904 libavcodec/opus_pvq.c s->quant_band = encode ? pvq_encode_band : pvq_decode_band; s 907 libavcodec/opus_pvq.c ff_celt_pvq_init_x86(s); s 909 libavcodec/opus_pvq.c *pvq = s; s 43 libavcodec/opus_pvq.h void ff_celt_pvq_init_x86(struct CeltPVQ *s); s 304 libavcodec/opus_silk.c static inline void silk_decode_lpc(SilkContext *s, SilkFrame *frame, s 315 libavcodec/opus_silk.c *lpc_order = order = s->wb ? 16 : 10; s 318 libavcodec/opus_silk.c lsf_i1 = ff_opus_rc_dec_cdf(rc, ff_silk_model_lsf_s1[s->wb][voiced]); s 320 libavcodec/opus_silk.c int index = s->wb ? ff_silk_lsf_s2_model_sel_wb [lsf_i1][i] : s 331 libavcodec/opus_silk.c int qstep = s->wb ? 9830 : 11796; s 339 libavcodec/opus_silk.c int weight = s->wb ? ff_silk_lsf_pred_weights_wb [ff_silk_lsf_weight_sel_wb [lsf_i1][i]][i] : s 347 libavcodec/opus_silk.c const uint8_t * codebook = s->wb ? ff_silk_lsf_codebook_wb [lsf_i1] : s 369 libavcodec/opus_silk.c silk_stabilize_lsf(nlsf, order, s->wb ? ff_silk_lsf_min_spacing_wb : s 375 libavcodec/opus_silk.c if (s->subframes == 4) { s 389 libavcodec/opus_silk.c s->nlsf_interp_factor = offset; s 393 libavcodec/opus_silk.c s->nlsf_interp_factor = 4; s 414 libavcodec/opus_silk.c static inline void silk_decode_excitation(SilkContext *s, OpusRangeCoder *rc, s 428 libavcodec/opus_silk.c shellblocks = ff_silk_shell_blocks[s->bandwidth][s->subframes >> 2]; s 508 libavcodec/opus_silk.c static void silk_decode_frame(SilkContext *s, OpusRangeCoder *rc, s 526 libavcodec/opus_silk.c SilkFrame * const frame = s->frame + channel; s 544 libavcodec/opus_silk.c s->stereo_weights[0] = (w[0] - w[1]) / 8192.0; s 545 libavcodec/opus_silk.c s->stereo_weights[1] = w[1] / 8192.0; s 548 libavcodec/opus_silk.c s->midonly = active1 ? 0 : ff_opus_rc_dec_cdf(rc, ff_silk_model_mid_only); s 562 libavcodec/opus_silk.c for (i = 0; i < s->subframes; i++) { s 591 libavcodec/opus_silk.c silk_decode_lpc(s, frame, rc, lpc_leadin, lpc_body, &order, &has_lpc_leadin, voiced); s 616 libavcodec/opus_silk.c lowbits = ff_opus_rc_dec_cdf(rc, model[s->bandwidth]); s 618 libavcodec/opus_silk.c primarylag = ff_silk_pitch_min_lag[s->bandwidth] + s 619 libavcodec/opus_silk.c highbits*ff_silk_pitch_scale[s->bandwidth] + lowbits; s 623 libavcodec/opus_silk.c if (s->subframes == 2) s 624 libavcodec/opus_silk.c offsets = (s->bandwidth == OPUS_BANDWIDTH_NARROWBAND) s 630 libavcodec/opus_silk.c offsets = (s->bandwidth == OPUS_BANDWIDTH_NARROWBAND) s 636 libavcodec/opus_silk.c for (i = 0; i < s->subframes; i++) s 638 libavcodec/opus_silk.c ff_silk_pitch_min_lag[s->bandwidth], s 639 libavcodec/opus_silk.c ff_silk_pitch_max_lag[s->bandwidth]); s 643 libavcodec/opus_silk.c for (i = 0; i < s->subframes; i++) { s 665 libavcodec/opus_silk.c silk_decode_excitation(s, rc, residual + SILK_MAX_LAG, qoffset_high, s 669 libavcodec/opus_silk.c if (s->output_channels == channel) s 673 libavcodec/opus_silk.c for (i = 0; i < s->subframes; i++) { s 675 libavcodec/opus_silk.c float *dst = frame->output + SILK_HISTORY + i * s->sflength; s 676 libavcodec/opus_silk.c float *resptr = residual + SILK_MAX_LAG + i * s->sflength; s 677 libavcodec/opus_silk.c float *lpc = frame->lpc_history + SILK_HISTORY + i * s->sflength; s 685 libavcodec/opus_silk.c if (i < 2 || s->nlsf_interp_factor == 4) { s 686 libavcodec/opus_silk.c out_end = -i * s->sflength; s 689 libavcodec/opus_silk.c out_end = -(i - 2) * s->sflength; s 709 libavcodec/opus_silk.c for (j = 0; j < s->sflength; j++) { s 718 libavcodec/opus_silk.c for (j = 0; j < s->sflength; j++) { s 729 libavcodec/opus_silk.c memmove(frame->lpc_history, frame->lpc_history + s->flength, SILK_HISTORY * sizeof(float)); s 730 libavcodec/opus_silk.c memmove(frame->output, frame->output + s->flength, SILK_HISTORY * sizeof(float)); s 735 libavcodec/opus_silk.c static void silk_unmix_ms(SilkContext *s, float *l, float *r) s 737 libavcodec/opus_silk.c float *mid = s->frame[0].output + SILK_HISTORY - s->flength; s 738 libavcodec/opus_silk.c float *side = s->frame[1].output + SILK_HISTORY - s->flength; s 739 libavcodec/opus_silk.c float w0_prev = s->prev_stereo_weights[0]; s 740 libavcodec/opus_silk.c float w1_prev = s->prev_stereo_weights[1]; s 741 libavcodec/opus_silk.c float w0 = s->stereo_weights[0]; s 742 libavcodec/opus_silk.c float w1 = s->stereo_weights[1]; s 743 libavcodec/opus_silk.c int n1 = ff_silk_stereo_interp_len[s->bandwidth]; s 755 libavcodec/opus_silk.c for (; i < s->flength; i++) { s 762 libavcodec/opus_silk.c memcpy(s->prev_stereo_weights, s->stereo_weights, sizeof(s->stereo_weights)); s 783 libavcodec/opus_silk.c int ff_silk_decode_superframe(SilkContext *s, OpusRangeCoder *rc, s 794 libavcodec/opus_silk.c av_log(s->avctx, AV_LOG_ERROR, "Invalid parameters passed " s 800 libavcodec/opus_silk.c s->subframes = duration_ms / nb_frames / 5; // 5ms subframes s 801 libavcodec/opus_silk.c s->sflength = 20 * (bandwidth + 2); s 802 libavcodec/opus_silk.c s->flength = s->sflength * s->subframes; s 803 libavcodec/opus_silk.c s->bandwidth = bandwidth; s 804 libavcodec/opus_silk.c s->wb = bandwidth == OPUS_BANDWIDTH_WIDEBAND; s 807 libavcodec/opus_silk.c if (coded_channels > s->prev_coded_channels) s 808 libavcodec/opus_silk.c silk_flush_frame(&s->frame[1]); s 809 libavcodec/opus_silk.c s->prev_coded_channels = coded_channels; s 818 libavcodec/opus_silk.c avpriv_report_missing_feature(s->avctx, "LBRR frames"); s 824 libavcodec/opus_silk.c for (j = 0; j < coded_channels && !s->midonly; j++) s 825 libavcodec/opus_silk.c silk_decode_frame(s, rc, i, j, coded_channels, active[j][i], active[1][i]); s 828 libavcodec/opus_silk.c if (s->midonly && s->frame[1].coded) s 829 libavcodec/opus_silk.c silk_flush_frame(&s->frame[1]); s 831 libavcodec/opus_silk.c if (coded_channels == 1 || s->output_channels == 1) { s 832 libavcodec/opus_silk.c for (j = 0; j < s->output_channels; j++) { s 833 libavcodec/opus_silk.c memcpy(output[j] + i * s->flength, s 834 libavcodec/opus_silk.c s->frame[0].output + SILK_HISTORY - s->flength - 2, s 835 libavcodec/opus_silk.c s->flength * sizeof(float)); s 838 libavcodec/opus_silk.c silk_unmix_ms(s, output[0] + i * s->flength, output[1] + i * s->flength); s 841 libavcodec/opus_silk.c s->midonly = 0; s 844 libavcodec/opus_silk.c return nb_frames * s->flength; s 852 libavcodec/opus_silk.c void ff_silk_flush(SilkContext *s) s 854 libavcodec/opus_silk.c silk_flush_frame(&s->frame[0]); s 855 libavcodec/opus_silk.c silk_flush_frame(&s->frame[1]); s 857 libavcodec/opus_silk.c memset(s->prev_stereo_weights, 0, sizeof(s->prev_stereo_weights)); s 862 libavcodec/opus_silk.c SilkContext *s; s 870 libavcodec/opus_silk.c s = av_mallocz(sizeof(*s)); s 871 libavcodec/opus_silk.c if (!s) s 874 libavcodec/opus_silk.c s->avctx = avctx; s 875 libavcodec/opus_silk.c s->output_channels = output_channels; s 877 libavcodec/opus_silk.c ff_silk_flush(s); s 879 libavcodec/opus_silk.c *ps = s; s 85 libavcodec/opusdec.c static int opus_flush_resample(OpusStreamContext *s, int nb_samples) s 87 libavcodec/opusdec.c int celt_size = av_audio_fifo_size(s->celt_delay); s 89 libavcodec/opusdec.c ret = swr_convert(s->swr, s 90 libavcodec/opusdec.c (uint8_t**)s->out, nb_samples, s 95 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, "Wrong number of flushed samples: %d\n", s 102 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, "Wrong number of CELT delay samples.\n"); s 105 libavcodec/opusdec.c av_audio_fifo_read(s->celt_delay, (void**)s->celt_output, nb_samples); s 106 libavcodec/opusdec.c for (i = 0; i < s->output_channels; i++) { s 107 libavcodec/opusdec.c s->fdsp->vector_fmac_scalar(s->out[i], s 108 libavcodec/opusdec.c s->celt_output[i], 1.0, s 113 libavcodec/opusdec.c if (s->redundancy_idx) { s 114 libavcodec/opusdec.c for (i = 0; i < s->output_channels; i++) s 115 libavcodec/opusdec.c opus_fade(s->out[i], s->out[i], s 116 libavcodec/opusdec.c s->redundancy_output[i] + 120 + s->redundancy_idx, s 117 libavcodec/opusdec.c ff_celt_window2 + s->redundancy_idx, 120 - s->redundancy_idx); s 118 libavcodec/opusdec.c s->redundancy_idx = 0; s 121 libavcodec/opusdec.c s->out[0] += nb_samples; s 122 libavcodec/opusdec.c s->out[1] += nb_samples; s 123 libavcodec/opusdec.c s->out_size -= nb_samples * sizeof(float); s 128 libavcodec/opusdec.c static int opus_init_resample(OpusStreamContext *s) s 134 libavcodec/opusdec.c av_opt_set_int(s->swr, "in_sample_rate", s->silk_samplerate, 0); s 135 libavcodec/opusdec.c ret = swr_init(s->swr); s 137 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, "Error opening the resampler.\n"); s 141 libavcodec/opusdec.c ret = swr_convert(s->swr, s 143 libavcodec/opusdec.c delayptr, silk_resample_delay[s->packet.bandwidth]); s 145 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, s 153 libavcodec/opusdec.c static int opus_decode_redundancy(OpusStreamContext *s, const uint8_t *data, int size) s 155 libavcodec/opusdec.c int ret = ff_opus_rc_dec_init(&s->redundancy_rc, data, size); s 158 libavcodec/opusdec.c ff_opus_rc_dec_raw_init(&s->redundancy_rc, data + size, size); s 160 libavcodec/opusdec.c ret = ff_celt_decode_frame(s->celt, &s->redundancy_rc, s 161 libavcodec/opusdec.c s->redundancy_output, s 162 libavcodec/opusdec.c s->packet.stereo + 1, 240, s 163 libavcodec/opusdec.c 0, ff_celt_band_end[s->packet.bandwidth]); s 169 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, "Error decoding the redundancy frame.\n"); s 173 libavcodec/opusdec.c static int opus_decode_frame(OpusStreamContext *s, const uint8_t *data, int size) s 175 libavcodec/opusdec.c int samples = s->packet.frame_duration; s 179 libavcodec/opusdec.c int delayed_samples = s->delayed_samples; s 181 libavcodec/opusdec.c ret = ff_opus_rc_dec_init(&s->rc, data, size); s 186 libavcodec/opusdec.c if (s->packet.mode == OPUS_MODE_SILK || s->packet.mode == OPUS_MODE_HYBRID) { s 187 libavcodec/opusdec.c if (!swr_is_initialized(s->swr)) { s 188 libavcodec/opusdec.c ret = opus_init_resample(s); s 193 libavcodec/opusdec.c samples = ff_silk_decode_superframe(s->silk, &s->rc, s->silk_output, s 194 libavcodec/opusdec.c FFMIN(s->packet.bandwidth, OPUS_BANDWIDTH_WIDEBAND), s 195 libavcodec/opusdec.c s->packet.stereo + 1, s 196 libavcodec/opusdec.c silk_frame_duration_ms[s->packet.config]); s 198 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, "Error decoding a SILK frame.\n"); s 201 libavcodec/opusdec.c samples = swr_convert(s->swr, s 202 libavcodec/opusdec.c (uint8_t**)s->out, s->packet.frame_duration, s 203 libavcodec/opusdec.c (const uint8_t**)s->silk_output, samples); s 205 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, "Error resampling SILK data.\n"); s 209 libavcodec/opusdec.c s->delayed_samples += s->packet.frame_duration - samples; s 211 libavcodec/opusdec.c ff_silk_flush(s->silk); s 214 libavcodec/opusdec.c consumed = opus_rc_tell(&s->rc); s 215 libavcodec/opusdec.c if (s->packet.mode == OPUS_MODE_HYBRID && consumed + 37 <= size * 8) s 216 libavcodec/opusdec.c redundancy = ff_opus_rc_dec_log(&s->rc, 12); s 217 libavcodec/opusdec.c else if (s->packet.mode == OPUS_MODE_SILK && consumed + 17 <= size * 8) s 221 libavcodec/opusdec.c redundancy_pos = ff_opus_rc_dec_log(&s->rc, 1); s 223 libavcodec/opusdec.c if (s->packet.mode == OPUS_MODE_HYBRID) s 224 libavcodec/opusdec.c redundancy_size = ff_opus_rc_dec_uint(&s->rc, 256) + 2; s 229 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid redundancy frame size.\n"); s 234 libavcodec/opusdec.c ret = opus_decode_redundancy(s, data + size, redundancy_size); s 237 libavcodec/opusdec.c ff_celt_flush(s->celt); s 242 libavcodec/opusdec.c if (s->packet.mode == OPUS_MODE_CELT || s->packet.mode == OPUS_MODE_HYBRID) { s 243 libavcodec/opusdec.c float *out_tmp[2] = { s->out[0], s->out[1] }; s 244 libavcodec/opusdec.c float **dst = (s->packet.mode == OPUS_MODE_CELT) ? s 245 libavcodec/opusdec.c out_tmp : s->celt_output; s 247 libavcodec/opusdec.c int delay_samples = av_audio_fifo_size(s->celt_delay); s 250 libavcodec/opusdec.c if (s->packet.mode == OPUS_MODE_HYBRID) { s 251 libavcodec/opusdec.c av_audio_fifo_read(s->celt_delay, (void**)s->celt_output, delay_samples); s 253 libavcodec/opusdec.c for (i = 0; i < s->output_channels; i++) { s 254 libavcodec/opusdec.c s->fdsp->vector_fmac_scalar(out_tmp[i], s->celt_output[i], 1.0, s 260 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_WARNING, s 262 libavcodec/opusdec.c av_audio_fifo_drain(s->celt_delay, delay_samples); s 263 libavcodec/opusdec.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 268 libavcodec/opusdec.c ff_opus_rc_dec_raw_init(&s->rc, data + size, size); s 270 libavcodec/opusdec.c ret = ff_celt_decode_frame(s->celt, &s->rc, dst, s 271 libavcodec/opusdec.c s->packet.stereo + 1, s 272 libavcodec/opusdec.c s->packet.frame_duration, s 273 libavcodec/opusdec.c (s->packet.mode == OPUS_MODE_HYBRID) ? 17 : 0, s 274 libavcodec/opusdec.c ff_celt_band_end[s->packet.bandwidth]); s 278 libavcodec/opusdec.c if (s->packet.mode == OPUS_MODE_HYBRID) { s 279 libavcodec/opusdec.c int celt_delay = s->packet.frame_duration - celt_output_samples; s 280 libavcodec/opusdec.c void *delaybuf[2] = { s->celt_output[0] + celt_output_samples, s 281 libavcodec/opusdec.c s->celt_output[1] + celt_output_samples }; s 283 libavcodec/opusdec.c for (i = 0; i < s->output_channels; i++) { s 284 libavcodec/opusdec.c s->fdsp->vector_fmac_scalar(out_tmp[i], s 285 libavcodec/opusdec.c s->celt_output[i], 1.0, s 289 libavcodec/opusdec.c ret = av_audio_fifo_write(s->celt_delay, delaybuf, celt_delay); s 294 libavcodec/opusdec.c ff_celt_flush(s->celt); s 296 libavcodec/opusdec.c if (s->redundancy_idx) { s 297 libavcodec/opusdec.c for (i = 0; i < s->output_channels; i++) s 298 libavcodec/opusdec.c opus_fade(s->out[i], s->out[i], s 299 libavcodec/opusdec.c s->redundancy_output[i] + 120 + s->redundancy_idx, s 300 libavcodec/opusdec.c ff_celt_window2 + s->redundancy_idx, 120 - s->redundancy_idx); s 301 libavcodec/opusdec.c s->redundancy_idx = 0; s 305 libavcodec/opusdec.c ff_celt_flush(s->celt); s 306 libavcodec/opusdec.c ret = opus_decode_redundancy(s, data + size, redundancy_size); s 310 libavcodec/opusdec.c for (i = 0; i < s->output_channels; i++) { s 311 libavcodec/opusdec.c opus_fade(s->out[i] + samples - 120 + delayed_samples, s 312 libavcodec/opusdec.c s->out[i] + samples - 120 + delayed_samples, s 313 libavcodec/opusdec.c s->redundancy_output[i] + 120, s 316 libavcodec/opusdec.c s->redundancy_idx = 120 - delayed_samples; s 319 libavcodec/opusdec.c for (i = 0; i < s->output_channels; i++) { s 320 libavcodec/opusdec.c memcpy(s->out[i] + delayed_samples, s->redundancy_output[i], 120 * sizeof(float)); s 321 libavcodec/opusdec.c opus_fade(s->out[i] + 120 + delayed_samples, s 322 libavcodec/opusdec.c s->redundancy_output[i] + 120, s 323 libavcodec/opusdec.c s->out[i] + 120 + delayed_samples, s 332 libavcodec/opusdec.c static int opus_decode_subpacket(OpusStreamContext *s, s 341 libavcodec/opusdec.c s->out[0] = out[0]; s 342 libavcodec/opusdec.c s->out[1] = out[1]; s 343 libavcodec/opusdec.c s->out_size = out_size; s 346 libavcodec/opusdec.c if (swr_is_initialized(s->swr)) { s 349 libavcodec/opusdec.c av_opt_get_int(s->swr, "in_sample_rate", 0, &cur_samplerate); s 350 libavcodec/opusdec.c flush_needed = (s->packet.mode == OPUS_MODE_CELT) || (cur_samplerate != s->silk_samplerate); s 352 libavcodec/opusdec.c flush_needed = !!s->delayed_samples; s 360 libavcodec/opusdec.c if (!s->out[0] || s 361 libavcodec/opusdec.c (s->output_channels == 2 && !s->out[1])) { s 362 libavcodec/opusdec.c av_fast_malloc(&s->out_dummy, &s->out_dummy_allocated_size, s->out_size); s 363 libavcodec/opusdec.c if (!s->out_dummy) s 365 libavcodec/opusdec.c if (!s->out[0]) s 366 libavcodec/opusdec.c s->out[0] = s->out_dummy; s 367 libavcodec/opusdec.c if (!s->out[1]) s 368 libavcodec/opusdec.c s->out[1] = s->out_dummy; s 373 libavcodec/opusdec.c ret = opus_flush_resample(s, s->delayed_samples); s 375 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, "Error flushing the resampler.\n"); s 378 libavcodec/opusdec.c swr_close(s->swr); s 379 libavcodec/opusdec.c output_samples += s->delayed_samples; s 380 libavcodec/opusdec.c s->delayed_samples = 0; s 387 libavcodec/opusdec.c for (i = 0; i < s->packet.frame_count; i++) { s 388 libavcodec/opusdec.c int size = s->packet.frame_size[i]; s 389 libavcodec/opusdec.c int samples = opus_decode_frame(s, buf + s->packet.frame_offset[i], size); s 392 libavcodec/opusdec.c av_log(s->avctx, AV_LOG_ERROR, "Error decoding an Opus frame.\n"); s 393 libavcodec/opusdec.c if (s->avctx->err_recognition & AV_EF_EXPLODE) s 396 libavcodec/opusdec.c for (j = 0; j < s->output_channels; j++) s 397 libavcodec/opusdec.c memset(s->out[j], 0, s->packet.frame_duration * sizeof(float)); s 398 libavcodec/opusdec.c samples = s->packet.frame_duration; s 402 libavcodec/opusdec.c for (j = 0; j < s->output_channels; j++) s 403 libavcodec/opusdec.c s->out[j] += samples; s 404 libavcodec/opusdec.c s->out_size -= samples * sizeof(float); s 408 libavcodec/opusdec.c s->out[0] = s->out[1] = NULL; s 409 libavcodec/opusdec.c s->out_size = 0; s 428 libavcodec/opusdec.c OpusStreamContext *s = &c->streams[i]; s 429 libavcodec/opusdec.c s->out[0] = s 430 libavcodec/opusdec.c s->out[1] = NULL; s 432 libavcodec/opusdec.c s->delayed_samples + av_audio_fifo_size(c->sync_buffers[i])); s 501 libavcodec/opusdec.c OpusStreamContext *s = &c->streams[i]; s 504 libavcodec/opusdec.c ret = ff_opus_parse_packet(&s->packet, buf, buf_size, i != c->nb_streams - 1); s 509 libavcodec/opusdec.c if (coded_samples != s->packet.frame_count * s->packet.frame_duration) { s 515 libavcodec/opusdec.c s->silk_samplerate = get_silk_samplerate(s->packet.config); s 518 libavcodec/opusdec.c ret = opus_decode_subpacket(&c->streams[i], buf, s->packet.data_size, s 525 libavcodec/opusdec.c buf += s->packet.packet_size; s 526 libavcodec/opusdec.c buf_size -= s->packet.packet_size; s 574 libavcodec/opusdec.c OpusStreamContext *s = &c->streams[i]; s 576 libavcodec/opusdec.c memset(&s->packet, 0, sizeof(s->packet)); s 577 libavcodec/opusdec.c s->delayed_samples = 0; s 579 libavcodec/opusdec.c if (s->celt_delay) s 580 libavcodec/opusdec.c av_audio_fifo_drain(s->celt_delay, av_audio_fifo_size(s->celt_delay)); s 581 libavcodec/opusdec.c swr_close(s->swr); s 585 libavcodec/opusdec.c ff_silk_flush(s->silk); s 586 libavcodec/opusdec.c ff_celt_flush(s->celt); s 596 libavcodec/opusdec.c OpusStreamContext *s = &c->streams[i]; s 598 libavcodec/opusdec.c ff_silk_free(&s->silk); s 599 libavcodec/opusdec.c ff_celt_free(&s->celt); s 601 libavcodec/opusdec.c av_freep(&s->out_dummy); s 602 libavcodec/opusdec.c s->out_dummy_allocated_size = 0; s 604 libavcodec/opusdec.c av_audio_fifo_free(s->celt_delay); s 605 libavcodec/opusdec.c swr_free(&s->swr); s 659 libavcodec/opusdec.c OpusStreamContext *s = &c->streams[i]; s 662 libavcodec/opusdec.c s->output_channels = (i < c->nb_stereo_streams) ? 2 : 1; s 664 libavcodec/opusdec.c s->avctx = avctx; s 666 libavcodec/opusdec.c for (j = 0; j < s->output_channels; j++) { s 667 libavcodec/opusdec.c s->silk_output[j] = s->silk_buf[j]; s 668 libavcodec/opusdec.c s->celt_output[j] = s->celt_buf[j]; s 669 libavcodec/opusdec.c s->redundancy_output[j] = s->redundancy_buf[j]; s 672 libavcodec/opusdec.c s->fdsp = c->fdsp; s 674 libavcodec/opusdec.c s->swr =swr_alloc(); s 675 libavcodec/opusdec.c if (!s->swr) s 678 libavcodec/opusdec.c layout = (s->output_channels == 1) ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO; s 679 libavcodec/opusdec.c av_opt_set_int(s->swr, "in_sample_fmt", avctx->sample_fmt, 0); s 680 libavcodec/opusdec.c av_opt_set_int(s->swr, "out_sample_fmt", avctx->sample_fmt, 0); s 681 libavcodec/opusdec.c av_opt_set_int(s->swr, "in_channel_layout", layout, 0); s 682 libavcodec/opusdec.c av_opt_set_int(s->swr, "out_channel_layout", layout, 0); s 683 libavcodec/opusdec.c av_opt_set_int(s->swr, "out_sample_rate", avctx->sample_rate, 0); s 684 libavcodec/opusdec.c av_opt_set_int(s->swr, "filter_size", 16, 0); s 686 libavcodec/opusdec.c ret = ff_silk_init(avctx, &s->silk, s->output_channels); s 690 libavcodec/opusdec.c ret = ff_celt_init(avctx, &s->celt, s->output_channels, c->apply_phase_inv); s 694 libavcodec/opusdec.c s->celt_delay = av_audio_fifo_alloc(avctx->sample_fmt, s 695 libavcodec/opusdec.c s->output_channels, 1024); s 696 libavcodec/opusdec.c if (!s->celt_delay) { s 702 libavcodec/opusdec.c s->output_channels, 32); s 73 libavcodec/opusenc.c static int opus_gen_toc(OpusEncContext *s, uint8_t *toc, int *size, int *fsize_needed) s 86 libavcodec/opusenc.c int cfg = toc_cfg[s->packet.framesize][s->packet.mode][s->packet.bandwidth]; s 90 libavcodec/opusenc.c if (s->packet.frames == 2) { /* 2 packets */ s 91 libavcodec/opusenc.c if (s->frame[0].framebits == s->frame[1].framebits) { /* same size */ s 97 libavcodec/opusenc.c } else if (s->packet.frames > 2) { s 101 libavcodec/opusenc.c tmp |= (s->channels > 1) << 2; /* Stereo or mono */ s 105 libavcodec/opusenc.c for (int i = 0; i < (s->packet.frames - 1); i++) s 106 libavcodec/opusenc.c *fsize_needed |= (s->frame[i].framebits != s->frame[i + 1].framebits); s 109 libavcodec/opusenc.c tmp |= s->packet.frames; s 116 libavcodec/opusenc.c static void celt_frame_setup_input(OpusEncContext *s, CeltFrame *f) s 119 libavcodec/opusenc.c const int subframesize = s->avctx->frame_size; s 120 libavcodec/opusenc.c int subframes = OPUS_BLOCK_SIZE(s->packet.framesize) / subframesize; s 122 libavcodec/opusenc.c cur = ff_bufqueue_get(&s->bufqueue); s 135 libavcodec/opusenc.c cur = ff_bufqueue_get(&s->bufqueue); s 137 libavcodec/opusenc.c cur = ff_bufqueue_peek(&s->bufqueue, 0); s 156 libavcodec/opusenc.c static void celt_apply_preemph_filter(OpusEncContext *s, CeltFrame *f) s 158 libavcodec/opusenc.c const int subframesize = s->avctx->frame_size; s 159 libavcodec/opusenc.c const int subframes = OPUS_BLOCK_SIZE(s->packet.framesize) / subframesize; s 190 libavcodec/opusenc.c static void celt_frame_mdct(OpusEncContext *s, CeltFrame *f) s 192 libavcodec/opusenc.c float *win = s->scratch, *temp = s->scratch + 1920; s 200 libavcodec/opusenc.c s->dsp->vector_fmul(win, src1, ff_celt_window, 128); s 201 libavcodec/opusenc.c s->dsp->vector_fmul_reverse(&win[CELT_OVERLAP], src2, s 204 libavcodec/opusenc.c s->mdct[0]->mdct(s->mdct[0], b->coeffs + t, win, f->blocks); s 215 libavcodec/opusenc.c s->dsp->vector_fmul(temp, b->overlap, ff_celt_window, 128); s 222 libavcodec/opusenc.c s->dsp->vector_fmul_reverse(temp, b->samples + rwin, s 226 libavcodec/opusenc.c s->mdct[f->size]->mdct(s->mdct[f->size], b->coeffs, win, 1); s 399 libavcodec/opusenc.c static void celt_quant_final(OpusEncContext *s, OpusRangeCoder *rc, CeltFrame *f) s 417 libavcodec/opusenc.c static void celt_encode_frame(OpusEncContext *s, OpusRangeCoder *rc, s 422 libavcodec/opusenc.c ff_opus_psy_celt_frame_init(&s->psyctx, f, index); s 424 libavcodec/opusenc.c celt_frame_setup_input(s, f); s 429 libavcodec/opusenc.c for (int ch = 0; ch < s->channels; ch++) s 430 libavcodec/opusenc.c memset(s->last_quantized_energy[ch], 0.0f, sizeof(float)*CELT_MAX_BANDS); s 435 libavcodec/opusenc.c celt_apply_preemph_filter(s, f); s 442 libavcodec/opusenc.c celt_frame_mdct(s, f); s 445 libavcodec/opusenc.c while (ff_opus_psy_celt_frame_process(&s->psyctx, f, index)) s 446 libavcodec/opusenc.c celt_frame_mdct(s, f); s 462 libavcodec/opusenc.c celt_quant_coarse (f, rc, s->last_quantized_energy); s 473 libavcodec/opusenc.c celt_quant_final(s, rc, f); s 478 libavcodec/opusenc.c s->last_quantized_energy[ch][i] = block->energy[i] + block->error_energy[i]; s 489 libavcodec/opusenc.c static void opus_packet_assembler(OpusEncContext *s, AVPacket *avpkt) s 494 libavcodec/opusenc.c opus_gen_toc(s, avpkt->data, &offset, &fsize_needed); s 498 libavcodec/opusenc.c for (int i = 0; i < s->packet.frames - 1; i++) { s 500 libavcodec/opusenc.c s->frame[i].framebits >> 3); s 505 libavcodec/opusenc.c for (int i = 0; i < s->packet.frames; i++) { s 506 libavcodec/opusenc.c ff_opus_rc_enc_end(&s->rc[i], avpkt->data + offset, s 507 libavcodec/opusenc.c s->frame[i].framebits >> 3); s 508 libavcodec/opusenc.c offset += s->frame[i].framebits >> 3; s 515 libavcodec/opusenc.c static AVFrame *spawn_empty_frame(OpusEncContext *s) s 520 libavcodec/opusenc.c f->format = s->avctx->sample_fmt; s 521 libavcodec/opusenc.c f->nb_samples = s->avctx->frame_size; s 522 libavcodec/opusenc.c f->channel_layout = s->avctx->channel_layout; s 527 libavcodec/opusenc.c for (int i = 0; i < s->channels; i++) { s 537 libavcodec/opusenc.c OpusEncContext *s = avctx->priv_data; s 541 libavcodec/opusenc.c if ((ret = ff_af_queue_add(&s->afq, frame)) < 0) s 543 libavcodec/opusenc.c ff_bufqueue_add(avctx, &s->bufqueue, av_frame_clone(frame)); s 545 libavcodec/opusenc.c ff_opus_psy_signal_eof(&s->psyctx); s 546 libavcodec/opusenc.c if (!s->afq.remaining_samples || !avctx->frame_number) s 551 libavcodec/opusenc.c if (ff_opus_psy_process(&s->psyctx, &s->packet)) s 554 libavcodec/opusenc.c frame_size = OPUS_BLOCK_SIZE(s->packet.framesize); s 558 libavcodec/opusenc.c int pad_empty = s->packet.frames*(frame_size/s->avctx->frame_size) - s->bufqueue.available + 1; s 564 libavcodec/opusenc.c AVFrame *empty = spawn_empty_frame(s); s 567 libavcodec/opusenc.c ff_bufqueue_add(avctx, &s->bufqueue, empty); s 571 libavcodec/opusenc.c for (int i = 0; i < s->packet.frames; i++) { s 572 libavcodec/opusenc.c celt_encode_frame(s, &s->rc[i], &s->frame[i], i); s 573 libavcodec/opusenc.c alloc_size += s->frame[i].framebits >> 3; s 577 libavcodec/opusenc.c alloc_size += 2 + s->packet.frames*2; s 583 libavcodec/opusenc.c opus_packet_assembler(s, avpkt); s 586 libavcodec/opusenc.c ff_opus_psy_postencode_update(&s->psyctx, s->frame, s->rc); s 589 libavcodec/opusenc.c ff_af_queue_remove(&s->afq, s->packet.frames*frame_size, &avpkt->pts, &avpkt->duration); s 590 libavcodec/opusenc.c if (s->packet.frames*frame_size > avpkt->duration) { s 594 libavcodec/opusenc.c AV_WL32(&side[4], s->packet.frames*frame_size - avpkt->duration + 120); s 604 libavcodec/opusenc.c OpusEncContext *s = avctx->priv_data; s 607 libavcodec/opusenc.c ff_mdct15_uninit(&s->mdct[i]); s 609 libavcodec/opusenc.c ff_celt_pvq_uninit(&s->pvq); s 610 libavcodec/opusenc.c av_freep(&s->dsp); s 611 libavcodec/opusenc.c av_freep(&s->frame); s 612 libavcodec/opusenc.c av_freep(&s->rc); s 613 libavcodec/opusenc.c ff_af_queue_close(&s->afq); s 614 libavcodec/opusenc.c ff_opus_psy_end(&s->psyctx); s 615 libavcodec/opusenc.c ff_bufqueue_discard_all(&s->bufqueue); s 624 libavcodec/opusenc.c OpusEncContext *s = avctx->priv_data; s 626 libavcodec/opusenc.c s->avctx = avctx; s 627 libavcodec/opusenc.c s->channels = avctx->channels; s 639 libavcodec/opusenc.c int coupled = ff_opus_default_coupled_streams[s->channels - 1]; s 640 libavcodec/opusenc.c avctx->bit_rate = coupled*(96000) + (s->channels - coupled*2)*(48000); s 641 libavcodec/opusenc.c } else if (avctx->bit_rate < 6000 || avctx->bit_rate > 255000 * s->channels) { s 642 libavcodec/opusenc.c int64_t clipped_rate = av_clip(avctx->bit_rate, 6000, 255000 * s->channels); s 655 libavcodec/opusenc.c ff_af_queue_init(avctx, &s->afq); s 657 libavcodec/opusenc.c if ((ret = ff_celt_pvq_init(&s->pvq, 1)) < 0) s 660 libavcodec/opusenc.c if (!(s->dsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT))) s 665 libavcodec/opusenc.c if ((ret = ff_mdct15_init(&s->mdct[i], 0, i + 3, 68 << (CELT_BLOCK_NB - 1 - i)))) s 669 libavcodec/opusenc.c for (int ch = 0; ch < s->channels; ch++) s 670 libavcodec/opusenc.c memset(s->last_quantized_energy[ch], 0.0f, sizeof(float)*CELT_MAX_BANDS); s 673 libavcodec/opusenc.c ff_bufqueue_add(avctx, &s->bufqueue, spawn_empty_frame(s)); s 674 libavcodec/opusenc.c if (!ff_bufqueue_peek(&s->bufqueue, 0)) s 677 libavcodec/opusenc.c if ((ret = ff_opus_psy_init(&s->psyctx, s->avctx, &s->bufqueue, &s->options))) s 681 libavcodec/opusenc.c max_frames = ceilf(FFMIN(s->options.max_delay_ms, 120.0f)/2.5f); s 682 libavcodec/opusenc.c s->frame = av_malloc(max_frames*sizeof(CeltFrame)); s 683 libavcodec/opusenc.c if (!s->frame) s 685 libavcodec/opusenc.c s->rc = av_malloc(max_frames*sizeof(OpusRangeCoder)); s 686 libavcodec/opusenc.c if (!s->rc) s 690 libavcodec/opusenc.c s->frame[i].dsp = s->dsp; s 691 libavcodec/opusenc.c s->frame[i].avctx = s->avctx; s 692 libavcodec/opusenc.c s->frame[i].seed = 0; s 693 libavcodec/opusenc.c s->frame[i].pvq = s->pvq; s 694 libavcodec/opusenc.c s->frame[i].apply_phase_inv = s->options.apply_phase_inv; s 695 libavcodec/opusenc.c s->frame[i].block[0].emph_coeff = s->frame[i].block[1].emph_coeff = 0.0f; s 79 libavcodec/opusenc_psy.c static void step_collect_psy_metrics(OpusPsyContext *s, int index) s 82 libavcodec/opusenc_psy.c OpusPsyStep *st = s->steps[index]; s 86 libavcodec/opusenc_psy.c for (ch = 0; ch < s->avctx->channels; ch++) { s 87 libavcodec/opusenc_psy.c const int lap_size = (1 << s->bsize_analysis); s 90 libavcodec/opusenc_psy.c AVFrame *cur = ff_bufqueue_peek(s->bufqueue, index - i); s 91 libavcodec/opusenc_psy.c memcpy(&s->scratch[offset], cur->extended_data[ch], cur->nb_samples*sizeof(float)); s 95 libavcodec/opusenc_psy.c AVFrame *cur = ff_bufqueue_peek(s->bufqueue, index + i); s 96 libavcodec/opusenc_psy.c memcpy(&s->scratch[offset], cur->extended_data[ch], cur->nb_samples*sizeof(float)); s 99 libavcodec/opusenc_psy.c s->dsp->vector_fmul(s->scratch, s->scratch, s->window[s->bsize_analysis], s 100 libavcodec/opusenc_psy.c (OPUS_BLOCK_SIZE(s->bsize_analysis) << 1)); s 102 libavcodec/opusenc_psy.c s->mdct[s->bsize_analysis]->mdct(s->mdct[s->bsize_analysis], st->coeffs[ch], s->scratch, 1); s 105 libavcodec/opusenc_psy.c st->bands[ch][i] = &st->coeffs[ch][ff_celt_freq_bands[i] << s->bsize_analysis]; s 108 libavcodec/opusenc_psy.c for (ch = 0; ch < s->avctx->channels; ch++) { s 111 libavcodec/opusenc_psy.c const int range = ff_celt_freq_range[i] << s->bsize_analysis; s 131 libavcodec/opusenc_psy.c if (s->avctx->channels > 1) { s 136 libavcodec/opusenc_psy.c const int range = ff_celt_freq_range[i] << s->bsize_analysis; s 143 libavcodec/opusenc_psy.c for (ch = 0; ch < s->avctx->channels; ch++) { s 145 libavcodec/opusenc_psy.c OpusBandExcitation *ex = &s->ex[ch][i]; s 146 libavcodec/opusenc_psy.c float bp_e = bessel_filter(&s->bfilter_lo[ch][i], st->energy[ch][i]); s 147 libavcodec/opusenc_psy.c bp_e = bessel_filter(&s->bfilter_hi[ch][i], bp_e); s 164 libavcodec/opusenc_psy.c static void search_for_change_points(OpusPsyContext *s, float tgt_change, s 173 libavcodec/opusenc_psy.c c_change += s->steps[i]->total_change; s 179 libavcodec/opusenc_psy.c search_for_change_points(s, tgt_change / 2.0f, offset_s, i + 0, resolution, level + 1); s 180 libavcodec/opusenc_psy.c s->inflection_points[s->inflection_points_count++] = i; s 181 libavcodec/opusenc_psy.c search_for_change_points(s, tgt_change / 2.0f, i + 1, offset_e, resolution, level + 1); s 184 libavcodec/opusenc_psy.c static int flush_silent_frames(OpusPsyContext *s) s 188 libavcodec/opusenc_psy.c for (silent_frames = 0; silent_frames < s->buffered_steps; silent_frames++) s 189 libavcodec/opusenc_psy.c if (!s->steps[silent_frames]->silence) s 197 libavcodec/opusenc_psy.c s->p.frames = FFMIN(silent_frames / (1 << fsize), 48 >> fsize); s 198 libavcodec/opusenc_psy.c s->p.framesize = fsize; s 206 libavcodec/opusenc_psy.c static void psy_output_groups(OpusPsyContext *s) s 208 libavcodec/opusenc_psy.c int max_delay_samples = (s->options->max_delay_ms*s->avctx->sample_rate)/1000; s 212 libavcodec/opusenc_psy.c s->p.mode = OPUS_MODE_CELT; s 213 libavcodec/opusenc_psy.c s->p.bandwidth = OPUS_BANDWIDTH_FULLBAND; s 216 libavcodec/opusenc_psy.c if (s->steps[0]->silence && flush_silent_frames(s)) s 219 libavcodec/opusenc_psy.c s->p.framesize = FFMIN(max_bsize, CELT_BLOCK_960); s 220 libavcodec/opusenc_psy.c s->p.frames = 1; s 223 libavcodec/opusenc_psy.c int ff_opus_psy_process(OpusPsyContext *s, OpusPacketInfo *p) s 228 libavcodec/opusenc_psy.c if (s->buffered_steps < s->max_steps && !s->eof) { s 229 libavcodec/opusenc_psy.c const int awin = (1 << s->bsize_analysis); s 230 libavcodec/opusenc_psy.c if (++s->steps_to_process >= awin) { s 231 libavcodec/opusenc_psy.c step_collect_psy_metrics(s, s->buffered_steps - awin + 1); s 232 libavcodec/opusenc_psy.c s->steps_to_process = 0; s 234 libavcodec/opusenc_psy.c if ((++s->buffered_steps) < s->max_steps) s 238 libavcodec/opusenc_psy.c for (i = 0; i < s->buffered_steps; i++) s 239 libavcodec/opusenc_psy.c total_energy_change += s->steps[i]->total_change; s 241 libavcodec/opusenc_psy.c search_for_change_points(s, total_energy_change / 2.0f, 0, s 242 libavcodec/opusenc_psy.c s->buffered_steps, 1, 0); s 244 libavcodec/opusenc_psy.c psy_output_groups(s); s 246 libavcodec/opusenc_psy.c p->frames = s->p.frames; s 247 libavcodec/opusenc_psy.c p->framesize = s->p.framesize; s 248 libavcodec/opusenc_psy.c p->mode = s->p.mode; s 249 libavcodec/opusenc_psy.c p->bandwidth = s->p.bandwidth; s 254 libavcodec/opusenc_psy.c void ff_opus_psy_celt_frame_init(OpusPsyContext *s, CeltFrame *f, int index) s 257 libavcodec/opusenc_psy.c int radius = (1 << s->p.framesize), step_offset = radius*index; s 260 libavcodec/opusenc_psy.c f->start_band = (s->p.mode == OPUS_MODE_HYBRID) ? 17 : 0; s 261 libavcodec/opusenc_psy.c f->end_band = ff_celt_band_end[s->p.bandwidth]; s 262 libavcodec/opusenc_psy.c f->channels = s->avctx->channels; s 263 libavcodec/opusenc_psy.c f->size = s->p.framesize; s 266 libavcodec/opusenc_psy.c silence &= s->steps[index*(1 << f->size) + i]->silence; s 274 libavcodec/opusenc_psy.c for (i = 0; i < s->inflection_points_count; i++) { s 275 libavcodec/opusenc_psy.c if (s->inflection_points[i] >= step_offset) { s 281 libavcodec/opusenc_psy.c for (i = start_offset; i < FFMIN(radius, s->inflection_points_count - start_offset); i++) { s 282 libavcodec/opusenc_psy.c if (s->inflection_points[i] < (step_offset + radius)) { s 289 libavcodec/opusenc_psy.c f->blocks = f->transient ? OPUS_BLOCK_SIZE(s->p.framesize)/CELT_OVERLAP : 1; s 310 libavcodec/opusenc_psy.c static void celt_gauge_psy_weight(OpusPsyContext *s, OpusPsyStep **start, s 314 libavcodec/opusenc_psy.c int frame_size = OPUS_BLOCK_SIZE(s->p.framesize); s 328 libavcodec/opusenc_psy.c for (f = 0; f < (1 << s->p.framesize); f++) { s 330 libavcodec/opusenc_psy.c for (ch = 0; ch < s->avctx->channels; ch++) { s 354 libavcodec/opusenc_psy.c rate = ((float)s->avctx->bit_rate) + frame_bits*frame_size*16; s 355 libavcodec/opusenc_psy.c rate *= s->lambda; s 356 libavcodec/opusenc_psy.c rate /= s->avctx->sample_rate/frame_size; s 363 libavcodec/opusenc_psy.c static int bands_dist(OpusPsyContext *s, CeltFrame *f, float *total_dist) s 373 libavcodec/opusenc_psy.c float dist = pvq_band_cost(f->pvq, f, &dump, i, &bits, s->lambda); s 382 libavcodec/opusenc_psy.c static void celt_search_for_dual_stereo(OpusPsyContext *s, CeltFrame *f) s 387 libavcodec/opusenc_psy.c if (s->avctx->channels < 2) s 390 libavcodec/opusenc_psy.c bands_dist(s, f, &td1); s 392 libavcodec/opusenc_psy.c bands_dist(s, f, &td2); s 395 libavcodec/opusenc_psy.c s->dual_stereo_used += td2 < td1; s 398 libavcodec/opusenc_psy.c static void celt_search_for_intensity(OpusPsyContext *s, CeltFrame *f) s 405 libavcodec/opusenc_psy.c if (s->avctx->channels < 2) s 410 libavcodec/opusenc_psy.c bands_dist(s, f, &dist); s 418 libavcodec/opusenc_psy.c s->avg_is_band = (s->avg_is_band + f->intensity_stereo)/2.0f; s 421 libavcodec/opusenc_psy.c static int celt_search_for_tf(OpusPsyContext *s, OpusPsyStep **start, CeltFrame *f) s 439 libavcodec/opusenc_psy.c for (k = 0; k < s->avctx->channels; k++) { s 455 libavcodec/opusenc_psy.c int ff_opus_psy_celt_frame_process(OpusPsyContext *s, CeltFrame *f, int index) s 458 libavcodec/opusenc_psy.c OpusPsyStep **start = &s->steps[index * (1 << s->p.framesize)]; s 463 libavcodec/opusenc_psy.c celt_gauge_psy_weight(s, start, f); s 464 libavcodec/opusenc_psy.c celt_search_for_intensity(s, f); s 465 libavcodec/opusenc_psy.c celt_search_for_dual_stereo(s, f); s 466 libavcodec/opusenc_psy.c celt_search_for_tf(s, start, f); s 469 libavcodec/opusenc_psy.c f->blocks = f->transient ? OPUS_BLOCK_SIZE(s->p.framesize)/CELT_OVERLAP : 1; s 470 libavcodec/opusenc_psy.c s->redo_analysis = 1; s 474 libavcodec/opusenc_psy.c s->redo_analysis = 0; s 479 libavcodec/opusenc_psy.c void ff_opus_psy_postencode_update(OpusPsyContext *s, CeltFrame *f, OpusRangeCoder *rc) s 481 libavcodec/opusenc_psy.c int i, frame_size = OPUS_BLOCK_SIZE(s->p.framesize); s 482 libavcodec/opusenc_psy.c int steps_out = s->p.frames*(frame_size/120); s 487 libavcodec/opusenc_psy.c memset(s->steps[i], 0, sizeof(OpusPsyStep)); s 489 libavcodec/opusenc_psy.c for (i = 0; i < s->max_steps; i++) s 490 libavcodec/opusenc_psy.c tmp[i] = s->steps[i]; s 492 libavcodec/opusenc_psy.c for (i = 0; i < s->max_steps; i++) { s 494 libavcodec/opusenc_psy.c s->steps[i_new < 0 ? s->max_steps + i_new : i_new] = tmp[i]; s 497 libavcodec/opusenc_psy.c for (i = steps_out; i < s->buffered_steps; i++) s 498 libavcodec/opusenc_psy.c s->steps[i]->index -= steps_out; s 500 libavcodec/opusenc_psy.c ideal_fbits = s->avctx->bit_rate/(s->avctx->sample_rate/frame_size); s 502 libavcodec/opusenc_psy.c for (i = 0; i < s->p.frames; i++) { s 503 libavcodec/opusenc_psy.c s->avg_is_band += f[i].intensity_stereo; s 504 libavcodec/opusenc_psy.c s->lambda *= ideal_fbits / f[i].framebits; s 507 libavcodec/opusenc_psy.c s->avg_is_band /= (s->p.frames + 1); s 509 libavcodec/opusenc_psy.c s->cs_num = 0; s 510 libavcodec/opusenc_psy.c s->steps_to_process = 0; s 511 libavcodec/opusenc_psy.c s->buffered_steps -= steps_out; s 512 libavcodec/opusenc_psy.c s->total_packets_out += s->p.frames; s 513 libavcodec/opusenc_psy.c s->inflection_points_count = 0; s 516 libavcodec/opusenc_psy.c av_cold int ff_opus_psy_init(OpusPsyContext *s, AVCodecContext *avctx, s 521 libavcodec/opusenc_psy.c s->redo_analysis = 0; s 522 libavcodec/opusenc_psy.c s->lambda = 1.0f; s 523 libavcodec/opusenc_psy.c s->options = options; s 524 libavcodec/opusenc_psy.c s->avctx = avctx; s 525 libavcodec/opusenc_psy.c s->bufqueue = bufqueue; s 526 libavcodec/opusenc_psy.c s->max_steps = ceilf(s->options->max_delay_ms/2.5f); s 527 libavcodec/opusenc_psy.c s->bsize_analysis = CELT_BLOCK_960; s 528 libavcodec/opusenc_psy.c s->avg_is_band = CELT_MAX_BANDS - 1; s 529 libavcodec/opusenc_psy.c s->inflection_points_count = 0; s 531 libavcodec/opusenc_psy.c s->inflection_points = av_mallocz(sizeof(*s->inflection_points)*s->max_steps); s 532 libavcodec/opusenc_psy.c if (!s->inflection_points) { s 537 libavcodec/opusenc_psy.c s->dsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 538 libavcodec/opusenc_psy.c if (!s->dsp) { s 543 libavcodec/opusenc_psy.c for (ch = 0; ch < s->avctx->channels; ch++) { s 545 libavcodec/opusenc_psy.c bessel_init(&s->bfilter_hi[ch][i], 1.0f, 19.0f, 100.0f, 1); s 546 libavcodec/opusenc_psy.c bessel_init(&s->bfilter_lo[ch][i], 1.0f, 20.0f, 100.0f, 0); s 550 libavcodec/opusenc_psy.c for (i = 0; i < s->max_steps; i++) { s 551 libavcodec/opusenc_psy.c s->steps[i] = av_mallocz(sizeof(OpusPsyStep)); s 552 libavcodec/opusenc_psy.c if (!s->steps[i]) { s 561 libavcodec/opusenc_psy.c s->window[i] = av_malloc(2*len*sizeof(float)); s 562 libavcodec/opusenc_psy.c if (!s->window[i]) { s 566 libavcodec/opusenc_psy.c generate_window_func(s->window[i], 2*len, WFUNC_SINE, &tmp); s 567 libavcodec/opusenc_psy.c if ((ret = ff_mdct15_init(&s->mdct[i], 0, i + 3, 68 << (CELT_BLOCK_NB - 1 - i)))) s 574 libavcodec/opusenc_psy.c av_freep(&s->inflection_points); s 575 libavcodec/opusenc_psy.c av_freep(&s->dsp); s 578 libavcodec/opusenc_psy.c ff_mdct15_uninit(&s->mdct[i]); s 579 libavcodec/opusenc_psy.c av_freep(&s->window[i]); s 582 libavcodec/opusenc_psy.c for (i = 0; i < s->max_steps; i++) s 583 libavcodec/opusenc_psy.c av_freep(&s->steps[i]); s 588 libavcodec/opusenc_psy.c void ff_opus_psy_signal_eof(OpusPsyContext *s) s 590 libavcodec/opusenc_psy.c s->eof = 1; s 593 libavcodec/opusenc_psy.c av_cold int ff_opus_psy_end(OpusPsyContext *s) s 597 libavcodec/opusenc_psy.c av_freep(&s->inflection_points); s 598 libavcodec/opusenc_psy.c av_freep(&s->dsp); s 601 libavcodec/opusenc_psy.c ff_mdct15_uninit(&s->mdct[i]); s 602 libavcodec/opusenc_psy.c av_freep(&s->window[i]); s 605 libavcodec/opusenc_psy.c for (i = 0; i < s->max_steps; i++) s 606 libavcodec/opusenc_psy.c av_freep(&s->steps[i]); s 608 libavcodec/opusenc_psy.c av_log(s->avctx, AV_LOG_INFO, "Average Intensity Stereo band: %0.1f\n", s->avg_is_band); s 609 libavcodec/opusenc_psy.c av_log(s->avctx, AV_LOG_INFO, "Dual Stereo used: %0.2f%%\n", ((float)s->dual_stereo_used/s->total_packets_out)*100.0f); s 94 libavcodec/opusenc_psy.h int ff_opus_psy_process (OpusPsyContext *s, OpusPacketInfo *p); s 95 libavcodec/opusenc_psy.h void ff_opus_psy_celt_frame_init (OpusPsyContext *s, CeltFrame *f, int index); s 96 libavcodec/opusenc_psy.h int ff_opus_psy_celt_frame_process(OpusPsyContext *s, CeltFrame *f, int index); s 97 libavcodec/opusenc_psy.h void ff_opus_psy_postencode_update (OpusPsyContext *s, CeltFrame *f, OpusRangeCoder *rc); s 99 libavcodec/opusenc_psy.h int ff_opus_psy_init(OpusPsyContext *s, AVCodecContext *avctx, s 101 libavcodec/opusenc_psy.h void ff_opus_psy_signal_eof(OpusPsyContext *s); s 102 libavcodec/opusenc_psy.h int ff_opus_psy_end(OpusPsyContext *s); s 35 libavcodec/opusenc_utils.h static inline int bessel_reinit(FFBesselFilter *s, float n, float f0, float fs, s 55 libavcodec/opusenc_utils.h s->a[0] = k2/(1.0f + k1 + k2); s 56 libavcodec/opusenc_utils.h s->a[1] = 2.0f * s->a[0]; s 57 libavcodec/opusenc_utils.h s->a[2] = s->a[0]; s 58 libavcodec/opusenc_utils.h s->b[0] = 2.0f * s->a[0] * (1.0f/k2 - 1.0f); s 59 libavcodec/opusenc_utils.h s->b[1] = 1.0f - (s->a[0] + s->a[1] + s->a[2] + s->b[0]); s 62 libavcodec/opusenc_utils.h s->a[1] *= -1; s 63 libavcodec/opusenc_utils.h s->b[0] *= -1; s 69 libavcodec/opusenc_utils.h static inline int bessel_init(FFBesselFilter *s, float n, float f0, float fs, s 72 libavcodec/opusenc_utils.h memset(s, 0, sizeof(FFBesselFilter)); s 73 libavcodec/opusenc_utils.h return bessel_reinit(s, n, f0, fs, highpass); s 76 libavcodec/opusenc_utils.h static inline float bessel_filter(FFBesselFilter *s, float x) s 78 libavcodec/opusenc_utils.h s->x[2] = s->x[1]; s 79 libavcodec/opusenc_utils.h s->x[1] = s->x[0]; s 80 libavcodec/opusenc_utils.h s->x[0] = x; s 81 libavcodec/opusenc_utils.h s->y[2] = s->y[1]; s 82 libavcodec/opusenc_utils.h s->y[1] = s->y[0]; s 83 libavcodec/opusenc_utils.h s->y[0] = s->a[0]*s->x[0] + s->a[1]*s->x[1] + s->a[2]*s->x[2] + s->b[0]*s->y[1] + s->b[1]*s->y[2]; s 84 libavcodec/opusenc_utils.h return s->y[0]; s 36 libavcodec/parser.c AVCodecParserContext *s = NULL; s 55 libavcodec/parser.c s = av_mallocz(sizeof(AVCodecParserContext)); s 56 libavcodec/parser.c if (!s) s 58 libavcodec/parser.c s->parser = (AVCodecParser*)parser; s 59 libavcodec/parser.c s->priv_data = av_mallocz(parser->priv_data_size); s 60 libavcodec/parser.c if (!s->priv_data) s 62 libavcodec/parser.c s->fetch_timestamp=1; s 63 libavcodec/parser.c s->pict_type = AV_PICTURE_TYPE_I; s 65 libavcodec/parser.c ret = parser->parser_init(s); s 69 libavcodec/parser.c s->key_frame = -1; s 72 libavcodec/parser.c s->convergence_duration = 0; s 75 libavcodec/parser.c s->dts_sync_point = INT_MIN; s 76 libavcodec/parser.c s->dts_ref_dts_delta = INT_MIN; s 77 libavcodec/parser.c s->pts_dts_delta = INT_MIN; s 78 libavcodec/parser.c s->format = -1; s 80 libavcodec/parser.c return s; s 83 libavcodec/parser.c if (s) s 84 libavcodec/parser.c av_freep(&s->priv_data); s 85 libavcodec/parser.c av_free(s); s 89 libavcodec/parser.c void ff_fetch_timestamp(AVCodecParserContext *s, int off, int remove, int fuzzy) s 94 libavcodec/parser.c s->dts = s 95 libavcodec/parser.c s->pts = AV_NOPTS_VALUE; s 96 libavcodec/parser.c s->pos = -1; s 97 libavcodec/parser.c s->offset = 0; s 100 libavcodec/parser.c if (s->cur_offset + off >= s->cur_frame_offset[i] && s 101 libavcodec/parser.c (s->frame_offset < s->cur_frame_offset[i] || s 102 libavcodec/parser.c (!s->frame_offset && !s->next_frame_offset)) && // first field/frame s 104 libavcodec/parser.c /*s->next_frame_offset + off <*/ s->cur_frame_end[i]){ s 106 libavcodec/parser.c if (!fuzzy || s->cur_frame_dts[i] != AV_NOPTS_VALUE) { s 107 libavcodec/parser.c s->dts = s->cur_frame_dts[i]; s 108 libavcodec/parser.c s->pts = s->cur_frame_pts[i]; s 109 libavcodec/parser.c s->pos = s->cur_frame_pos[i]; s 110 libavcodec/parser.c s->offset = s->next_frame_offset - s->cur_frame_offset[i]; s 113 libavcodec/parser.c s->cur_frame_offset[i] = INT64_MAX; s 114 libavcodec/parser.c if (s->cur_offset + off < s->cur_frame_end[i]) s 120 libavcodec/parser.c int av_parser_parse2(AVCodecParserContext *s, AVCodecContext *avctx, s 131 libavcodec/parser.c av_assert1(avctx->codec_id == s->parser->codec_ids[0] || s 132 libavcodec/parser.c avctx->codec_id == s->parser->codec_ids[1] || s 133 libavcodec/parser.c avctx->codec_id == s->parser->codec_ids[2] || s 134 libavcodec/parser.c avctx->codec_id == s->parser->codec_ids[3] || s 135 libavcodec/parser.c avctx->codec_id == s->parser->codec_ids[4]); s 137 libavcodec/parser.c if (!(s->flags & PARSER_FLAG_FETCHED_OFFSET)) { s 138 libavcodec/parser.c s->next_frame_offset = s 139 libavcodec/parser.c s->cur_offset = pos; s 140 libavcodec/parser.c s->flags |= PARSER_FLAG_FETCHED_OFFSET; s 147 libavcodec/parser.c } else if (s->cur_offset + buf_size != s->cur_frame_end[s->cur_frame_start_index]) { /* skip remainder packets */ s 149 libavcodec/parser.c i = (s->cur_frame_start_index + 1) & (AV_PARSER_PTS_NB - 1); s 150 libavcodec/parser.c s->cur_frame_start_index = i; s 151 libavcodec/parser.c s->cur_frame_offset[i] = s->cur_offset; s 152 libavcodec/parser.c s->cur_frame_end[i] = s->cur_offset + buf_size; s 153 libavcodec/parser.c s->cur_frame_pts[i] = pts; s 154 libavcodec/parser.c s->cur_frame_dts[i] = dts; s 155 libavcodec/parser.c s->cur_frame_pos[i] = pos; s 158 libavcodec/parser.c if (s->fetch_timestamp) { s 159 libavcodec/parser.c s->fetch_timestamp = 0; s 160 libavcodec/parser.c s->last_pts = s->pts; s 161 libavcodec/parser.c s->last_dts = s->dts; s 162 libavcodec/parser.c s->last_pos = s->pos; s 163 libavcodec/parser.c ff_fetch_timestamp(s, 0, 0, 0); s 166 libavcodec/parser.c index = s->parser->parser_parse(s, avctx, (const uint8_t **) poutbuf, s 169 libavcodec/parser.c #define FILL(name) if(s->name > 0 && avctx->name <= 0) avctx->name = s->name s 177 libavcodec/parser.c s->frame_offset = s->next_frame_offset; s 180 libavcodec/parser.c s->next_frame_offset = s->cur_offset + index; s 181 libavcodec/parser.c s->fetch_timestamp = 1; s 185 libavcodec/parser.c s->cur_offset += index; s 189 libavcodec/parser.c int av_parser_change(AVCodecParserContext *s, AVCodecContext *avctx, s 193 libavcodec/parser.c if (s && s->parser->split) { s 196 libavcodec/parser.c int i = s->parser->split(avctx, buf, buf_size); s 224 libavcodec/parser.c void av_parser_close(AVCodecParserContext *s) s 226 libavcodec/parser.c if (s) { s 227 libavcodec/parser.c if (s->parser->parser_close) s 228 libavcodec/parser.c s->parser->parser_close(s); s 229 libavcodec/parser.c av_freep(&s->priv_data); s 230 libavcodec/parser.c av_free(s); s 319 libavcodec/parser.c void ff_parse_close(AVCodecParserContext *s) s 321 libavcodec/parser.c ParseContext *pc = s->priv_data; s 50 libavcodec/parser.h void ff_parse_close(AVCodecParserContext *s); s 58 libavcodec/parser.h void ff_fetch_timestamp(AVCodecParserContext *s, int off, int remove, int fuzzy); s 43 libavcodec/pcm-dvd.c PCMDVDContext *s = avctx->priv_data; s 46 libavcodec/pcm-dvd.c s->last_header = -1; s 48 libavcodec/pcm-dvd.c if (!(s->extra_samples = av_malloc(8 * 3 * 4))) s 56 libavcodec/pcm-dvd.c PCMDVDContext *s = avctx->priv_data; s 58 libavcodec/pcm-dvd.c av_freep(&s->extra_samples); s 67 libavcodec/pcm-dvd.c PCMDVDContext *s = avctx->priv_data; s 71 libavcodec/pcm-dvd.c if (s->last_header == header_int) s 73 libavcodec/pcm-dvd.c s->last_header = -1; s 85 libavcodec/pcm-dvd.c s->extra_sample_count = 0; s 113 libavcodec/pcm-dvd.c s->samples_per_block = 1; s 114 libavcodec/pcm-dvd.c s->block_size = avctx->channels * 2; s 121 libavcodec/pcm-dvd.c s->block_size = 4 * avctx->bits_per_coded_sample / 8; s 122 libavcodec/pcm-dvd.c s->samples_per_block = 4 / avctx->channels; s 123 libavcodec/pcm-dvd.c s->groups_per_block = 1; s 127 libavcodec/pcm-dvd.c s->block_size = 8 * avctx->bits_per_coded_sample / 8; s 128 libavcodec/pcm-dvd.c s->samples_per_block = 1; s 129 libavcodec/pcm-dvd.c s->groups_per_block = 2; s 133 libavcodec/pcm-dvd.c s->block_size = 4 * avctx->channels * s 135 libavcodec/pcm-dvd.c s->samples_per_block = 4; s 136 libavcodec/pcm-dvd.c s->groups_per_block = avctx->channels; s 147 libavcodec/pcm-dvd.c s->last_header = header_int; s 155 libavcodec/pcm-dvd.c PCMDVDContext *s = avctx->priv_data; s 162 libavcodec/pcm-dvd.c bytestream2_init(&gb, src, blocks * s->block_size); s 166 libavcodec/pcm-dvd.c bytestream2_get_buffer(&gb, dst16, blocks * s->block_size); s 167 libavcodec/pcm-dvd.c dst16 += blocks * s->block_size / 2; s 189 libavcodec/pcm-dvd.c for (i = s->groups_per_block; i; i--) { s 216 libavcodec/pcm-dvd.c for (i = s->groups_per_block; i; i--) { s 240 libavcodec/pcm-dvd.c PCMDVDContext *s = avctx->priv_data; s 252 libavcodec/pcm-dvd.c if (s->last_block_size && s->last_block_size != s->block_size) { s 253 libavcodec/pcm-dvd.c av_log(avctx, AV_LOG_WARNING, "block_size has changed %d != %d\n", s->last_block_size, s->block_size); s 254 libavcodec/pcm-dvd.c s->extra_sample_count = 0; s 256 libavcodec/pcm-dvd.c s->last_block_size = s->block_size; s 260 libavcodec/pcm-dvd.c blocks = (buf_size + s->extra_sample_count) / s->block_size; s 263 libavcodec/pcm-dvd.c frame->nb_samples = blocks * s->samples_per_block; s 269 libavcodec/pcm-dvd.c if (s->extra_sample_count) { s 270 libavcodec/pcm-dvd.c int missing_samples = s->block_size - s->extra_sample_count; s 272 libavcodec/pcm-dvd.c memcpy(s->extra_samples + s->extra_sample_count, src, s 274 libavcodec/pcm-dvd.c dst = pcm_dvd_decode_samples(avctx, s->extra_samples, dst, 1); s 277 libavcodec/pcm-dvd.c s->extra_sample_count = 0; s 281 libavcodec/pcm-dvd.c memcpy(s->extra_samples + s->extra_sample_count, src, buf_size); s 282 libavcodec/pcm-dvd.c s->extra_sample_count += buf_size; s 290 libavcodec/pcm-dvd.c buf_size -= blocks * s->block_size; s 295 libavcodec/pcm-dvd.c src += blocks * s->block_size; s 296 libavcodec/pcm-dvd.c memcpy(s->extra_samples, src, buf_size); s 297 libavcodec/pcm-dvd.c s->extra_sample_count = buf_size; s 37 libavcodec/pcm-dvdenc.c PCMDVDContext *s = avctx->priv_data; s 69 libavcodec/pcm-dvdenc.c s->samples_per_block = 1; s 70 libavcodec/pcm-dvdenc.c s->block_size = avctx->channels * 2; s 71 libavcodec/pcm-dvdenc.c frame_size = 2008 / s->block_size; s 78 libavcodec/pcm-dvdenc.c s->block_size = 4 * avctx->bits_per_coded_sample / 8; s 79 libavcodec/pcm-dvdenc.c s->samples_per_block = 4 / avctx->channels; s 80 libavcodec/pcm-dvdenc.c s->groups_per_block = 1; s 84 libavcodec/pcm-dvdenc.c s->block_size = 8 * avctx->bits_per_coded_sample / 8; s 85 libavcodec/pcm-dvdenc.c s->samples_per_block = 1; s 86 libavcodec/pcm-dvdenc.c s->groups_per_block = 2; s 90 libavcodec/pcm-dvdenc.c s->block_size = 4 * avctx->channels * s 92 libavcodec/pcm-dvdenc.c s->samples_per_block = 4; s 93 libavcodec/pcm-dvdenc.c s->groups_per_block = avctx->channels; s 97 libavcodec/pcm-dvdenc.c frame_size = FFALIGN(2008 / s->block_size, s->samples_per_block); s 100 libavcodec/pcm-dvdenc.c s->header[0] = 0x0c; s 101 libavcodec/pcm-dvdenc.c s->header[1] = (quant << 6) | (freq << 4) | (avctx->channels - 1); s 102 libavcodec/pcm-dvdenc.c s->header[2] = 0x80; s 113 libavcodec/pcm-dvdenc.c PCMDVDContext *s = avctx->priv_data; s 115 libavcodec/pcm-dvdenc.c int64_t pkt_size = (frame->nb_samples / s->samples_per_block) * s->block_size + 3; s 116 libavcodec/pcm-dvdenc.c int blocks = (pkt_size - 3) / s->block_size; s 125 libavcodec/pcm-dvdenc.c memcpy(avpkt->data, s->header, 3); s 150 libavcodec/pcm-dvdenc.c for (int i = s->groups_per_block; i; i--) { s 244 libavcodec/pcm.c PCMDecode *s = avctx->priv_data; s 255 libavcodec/pcm.c s->table[i] = alaw2linear(i); s 259 libavcodec/pcm.c s->table[i] = ulaw2linear(i); s 263 libavcodec/pcm.c s->table[i] = vidc2linear(i); s 270 libavcodec/pcm.c s->scale = 1. / (1 << (avctx->bits_per_coded_sample - 1)); s 271 libavcodec/pcm.c s->fdsp = avpriv_float_dsp_alloc(0); s 272 libavcodec/pcm.c if (!s->fdsp) s 289 libavcodec/pcm.c PCMDecode *s = avctx->priv_data; s 291 libavcodec/pcm.c av_freep(&s->fdsp); s 330 libavcodec/pcm.c PCMDecode *s = avctx->priv_data; s 498 libavcodec/pcm.c AV_WN16A(samples, s->table[*src++]); s 532 libavcodec/pcm.c s->fdsp->vector_fmul_scalar((float *)frame->extended_data[0], s 534 libavcodec/pcm.c s->scale, FFALIGN(frame->nb_samples * avctx->channels, 4)); s 41 libavcodec/pcm_rechunk_bsf.c PCMContext *s = ctx->priv_data; s 49 libavcodec/pcm_rechunk_bsf.c s->sample_size = ctx->par_in->channels * av_get_bits_per_sample(ctx->par_in->codec_id) / 8; s 51 libavcodec/pcm_rechunk_bsf.c if (s->frame_rate.num) { s 52 libavcodec/pcm_rechunk_bsf.c min_samples = av_rescale_q_rnd(1, sr, s->frame_rate, AV_ROUND_DOWN); s 54 libavcodec/pcm_rechunk_bsf.c min_samples = s->nb_out_samples; s 56 libavcodec/pcm_rechunk_bsf.c if (min_samples <= 0 || min_samples > INT_MAX / s->sample_size - 1) s 59 libavcodec/pcm_rechunk_bsf.c s->in_pkt = av_packet_alloc(); s 60 libavcodec/pcm_rechunk_bsf.c s->out_pkt = av_packet_alloc(); s 61 libavcodec/pcm_rechunk_bsf.c if (!s->in_pkt || !s->out_pkt) s 69 libavcodec/pcm_rechunk_bsf.c PCMContext *s = ctx->priv_data; s 70 libavcodec/pcm_rechunk_bsf.c av_packet_free(&s->in_pkt); s 71 libavcodec/pcm_rechunk_bsf.c av_packet_free(&s->out_pkt); s 76 libavcodec/pcm_rechunk_bsf.c PCMContext *s = ctx->priv_data; s 77 libavcodec/pcm_rechunk_bsf.c av_packet_unref(s->in_pkt); s 78 libavcodec/pcm_rechunk_bsf.c av_packet_unref(s->out_pkt); s 79 libavcodec/pcm_rechunk_bsf.c s->n = 0; s 82 libavcodec/pcm_rechunk_bsf.c static int send_packet(PCMContext *s, int nb_samples, AVPacket *pkt) s 85 libavcodec/pcm_rechunk_bsf.c s->n++; s 101 libavcodec/pcm_rechunk_bsf.c PCMContext *s = ctx->priv_data; s 102 libavcodec/pcm_rechunk_bsf.c if (s->frame_rate.num) { s 104 libavcodec/pcm_rechunk_bsf.c return av_rescale_q(s->n + 1, sr, s->frame_rate) - av_rescale_q(s->n, sr, s->frame_rate); s 106 libavcodec/pcm_rechunk_bsf.c return s->nb_out_samples; s 112 libavcodec/pcm_rechunk_bsf.c PCMContext *s = ctx->priv_data; s 114 libavcodec/pcm_rechunk_bsf.c int data_size = nb_samples * s->sample_size; s 118 libavcodec/pcm_rechunk_bsf.c if (s->in_pkt->size) { s 119 libavcodec/pcm_rechunk_bsf.c if (s->out_pkt->size || s->in_pkt->size < data_size) { s 120 libavcodec/pcm_rechunk_bsf.c int drain = FFMIN(s->in_pkt->size, data_size - s->out_pkt->size); s 121 libavcodec/pcm_rechunk_bsf.c if (!s->out_pkt->size) { s 122 libavcodec/pcm_rechunk_bsf.c ret = av_new_packet(s->out_pkt, data_size); s 125 libavcodec/pcm_rechunk_bsf.c ret = av_packet_copy_props(s->out_pkt, s->in_pkt); s 127 libavcodec/pcm_rechunk_bsf.c av_packet_unref(s->out_pkt); s 130 libavcodec/pcm_rechunk_bsf.c s->out_pkt->size = 0; s 132 libavcodec/pcm_rechunk_bsf.c memcpy(s->out_pkt->data + s->out_pkt->size, s->in_pkt->data, drain); s 133 libavcodec/pcm_rechunk_bsf.c s->out_pkt->size += drain; s 134 libavcodec/pcm_rechunk_bsf.c drain_packet(s->in_pkt, drain, drain / s->sample_size); s 135 libavcodec/pcm_rechunk_bsf.c if (!s->in_pkt->size) s 136 libavcodec/pcm_rechunk_bsf.c av_packet_unref(s->in_pkt); s 137 libavcodec/pcm_rechunk_bsf.c if (s->out_pkt->size == data_size) { s 138 libavcodec/pcm_rechunk_bsf.c av_packet_move_ref(pkt, s->out_pkt); s 139 libavcodec/pcm_rechunk_bsf.c return send_packet(s, nb_samples, pkt); s 141 libavcodec/pcm_rechunk_bsf.c } else if (s->in_pkt->size > data_size) { s 142 libavcodec/pcm_rechunk_bsf.c ret = av_packet_ref(pkt, s->in_pkt); s 146 libavcodec/pcm_rechunk_bsf.c drain_packet(s->in_pkt, data_size, nb_samples); s 147 libavcodec/pcm_rechunk_bsf.c return send_packet(s, nb_samples, pkt); s 149 libavcodec/pcm_rechunk_bsf.c av_assert0(s->in_pkt->size == data_size); s 150 libavcodec/pcm_rechunk_bsf.c av_packet_move_ref(pkt, s->in_pkt); s 151 libavcodec/pcm_rechunk_bsf.c return send_packet(s, nb_samples, pkt); s 155 libavcodec/pcm_rechunk_bsf.c ret = ff_bsf_get_packet_ref(ctx, s->in_pkt); s 156 libavcodec/pcm_rechunk_bsf.c if (ret == AVERROR_EOF && s->out_pkt->size) { s 157 libavcodec/pcm_rechunk_bsf.c if (s->pad) { s 158 libavcodec/pcm_rechunk_bsf.c memset(s->out_pkt->data + s->out_pkt->size, 0, data_size - s->out_pkt->size); s 159 libavcodec/pcm_rechunk_bsf.c s->out_pkt->size = data_size; s 161 libavcodec/pcm_rechunk_bsf.c nb_samples = s->out_pkt->size / s->sample_size; s 163 libavcodec/pcm_rechunk_bsf.c av_packet_move_ref(pkt, s->out_pkt); s 164 libavcodec/pcm_rechunk_bsf.c return send_packet(s, nb_samples, pkt); s 167 libavcodec/pcm_rechunk_bsf.c av_packet_rescale_ts(s->in_pkt, ctx->time_base_in, ctx->time_base_out); s 200 libavcodec/pcx.c GetBitContext s; s 203 libavcodec/pcx.c init_get_bits8(&s, scanline, bytes_per_scanline); s 210 libavcodec/pcx.c ptr[x] = get_bits(&s, bits_per_pixel); s 39 libavcodec/pictordec.c static void picmemset_8bpp(PicContext *s, AVFrame *frame, int value, int run, s 44 libavcodec/pictordec.c if (*x + run >= s->width) { s 45 libavcodec/pictordec.c int n = s->width - *x; s 60 libavcodec/pictordec.c static void picmemset(PicContext *s, AVFrame *frame, unsigned value, int run, s 78 libavcodec/pictordec.c while (xl == s->width) { s 82 libavcodec/pictordec.c yl = s->height - 1; s 84 libavcodec/pictordec.c if (planel >= s->nb_planes) s 90 libavcodec/pictordec.c if (s->nb_planes == 1 && s 91 libavcodec/pictordec.c run*pixels_per_value >= s->width && s 92 libavcodec/pictordec.c pixels_per_value < s->width && s 93 libavcodec/pictordec.c s->width % pixels_per_value == 0 s 99 libavcodec/pictordec.c av_memcpy_backptr(d+xl, pixels_per_value, s->width - xl); s 100 libavcodec/pictordec.c run -= s->width / pixels_per_value; s 101 libavcodec/pictordec.c xl = s->width; s 126 libavcodec/pictordec.c PicContext *s = avctx->priv_data; s 132 libavcodec/pictordec.c bytestream2_init(&s->g, avpkt->data, avpkt->size); s 134 libavcodec/pictordec.c if (bytestream2_get_bytes_left(&s->g) < 11) s 137 libavcodec/pictordec.c if (bytestream2_get_le16u(&s->g) != 0x1234) s 140 libavcodec/pictordec.c s->width = bytestream2_get_le16u(&s->g); s 141 libavcodec/pictordec.c s->height = bytestream2_get_le16u(&s->g); s 142 libavcodec/pictordec.c bytestream2_skip(&s->g, 4); s 143 libavcodec/pictordec.c tmp = bytestream2_get_byteu(&s->g); s 145 libavcodec/pictordec.c s->nb_planes = (tmp >> 4) + 1; s 146 libavcodec/pictordec.c bpp = bits_per_plane * s->nb_planes; s 152 libavcodec/pictordec.c if (bytestream2_peek_byte(&s->g) == 0xFF || bpp == 1 || bpp == 4 || bpp == 8) { s 153 libavcodec/pictordec.c bytestream2_skip(&s->g, 2); s 154 libavcodec/pictordec.c etype = bytestream2_get_le16(&s->g); s 155 libavcodec/pictordec.c esize = bytestream2_get_le16(&s->g); s 156 libavcodec/pictordec.c if (bytestream2_get_bytes_left(&s->g) < esize) s 165 libavcodec/pictordec.c if (av_image_check_size(s->width, s->height, 0, avctx) < 0) s 167 libavcodec/pictordec.c if (s->width != avctx->width || s->height != avctx->height) { s 168 libavcodec/pictordec.c ret = ff_set_dimensions(avctx, s->width, s->height); s 175 libavcodec/pictordec.c memset(frame->data[0], 0, s->height * frame->linesize[0]); s 179 libavcodec/pictordec.c pos_after_pal = bytestream2_tell(&s->g) + esize; s 181 libavcodec/pictordec.c if (etype == 1 && esize > 1 && bytestream2_peek_byte(&s->g) < 6) { s 182 libavcodec/pictordec.c int idx = bytestream2_get_byte(&s->g); s 189 libavcodec/pictordec.c int pal_idx = bytestream2_get_byte(&s->g); s 195 libavcodec/pictordec.c int pal_idx = bytestream2_get_byte(&s->g); s 201 libavcodec/pictordec.c palette[i] = bytestream2_get_be24(&s->g) << 2; s 221 libavcodec/pictordec.c bytestream2_seek(&s->g, pos_after_pal, SEEK_SET); s 224 libavcodec/pictordec.c y = s->height - 1; s 225 libavcodec/pictordec.c if (bytestream2_get_le16(&s->g)) { s 228 libavcodec/pictordec.c while (bytestream2_get_bytes_left(&s->g) >= 6) { s 231 libavcodec/pictordec.c t1 = bytestream2_get_bytes_left(&s->g); s 232 libavcodec/pictordec.c t2 = bytestream2_get_le16(&s->g); s 235 libavcodec/pictordec.c bytestream2_skip(&s->g, 2); s 236 libavcodec/pictordec.c marker = bytestream2_get_byte(&s->g); s 238 libavcodec/pictordec.c while (plane < s->nb_planes && s 239 libavcodec/pictordec.c bytestream2_get_bytes_left(&s->g) > stop_size) { s 241 libavcodec/pictordec.c val = bytestream2_get_byte(&s->g); s 243 libavcodec/pictordec.c run = bytestream2_get_byte(&s->g); s 245 libavcodec/pictordec.c run = bytestream2_get_le16(&s->g); s 246 libavcodec/pictordec.c val = bytestream2_get_byte(&s->g); s 248 libavcodec/pictordec.c if (!bytestream2_get_bytes_left(&s->g)) s 252 libavcodec/pictordec.c picmemset_8bpp(s, frame, val, run, &x, &y); s 256 libavcodec/pictordec.c picmemset(s, frame, val, run, &x, &y, &plane, bits_per_plane); s 261 libavcodec/pictordec.c if (s->nb_planes - plane > 1) s 264 libavcodec/pictordec.c if (plane < s->nb_planes && x < avctx->width) { s 267 libavcodec/pictordec.c picmemset_8bpp(s, frame, val, run, &x, &y); s 269 libavcodec/pictordec.c picmemset(s, frame, val, run / (8 / bits_per_plane), &x, &y, &plane, bits_per_plane); s 272 libavcodec/pictordec.c while (y >= 0 && bytestream2_get_bytes_left(&s->g) > 0) { s 273 libavcodec/pictordec.c memcpy(frame->data[0] + y * frame->linesize[0], s->g.buffer, FFMIN(avctx->width, bytestream2_get_bytes_left(&s->g))); s 274 libavcodec/pictordec.c bytestream2_skip(&s->g, avctx->width); s 37 libavcodec/png_parser.c static int png_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 41 libavcodec/png_parser.c PNGParseContext *ppc = s->priv_data; s 45 libavcodec/png_parser.c s->pict_type = AV_PICTURE_TYPE_NONE; s 123 libavcodec/pngdec.c const uint8_t *s; s 173 libavcodec/pngdec.c s = src; s 177 libavcodec/pngdec.c memcpy(d, s, bpp); s 181 libavcodec/pngdec.c s += bpp; s 268 libavcodec/pngdec.c unsigned s = *(int *)(src + i); s 269 libavcodec/pngdec.c p = ((s & 0x7f7f7f7f) + (p & 0x7f7f7f7f)) ^ ((s ^ p) & 0x80808080); s 273 libavcodec/pngdec.c #define OP_SUB(x, s, l) ((x) + (s)) s 285 libavcodec/pngdec.c #define OP_AVG(x, s, l) (((((x) + (l)) >> 1) + (s)) & 0xff) s 324 libavcodec/pngdec.c static int percent_missing(PNGDecContext *s) s 326 libavcodec/pngdec.c if (s->interlace_type) { s 327 libavcodec/pngdec.c return 100 - 100 * s->pass / (NB_PASSES - 1); s 329 libavcodec/pngdec.c return 100 - 100 * s->y / s->cur_h; s 334 libavcodec/pngdec.c static void png_handle_row(PNGDecContext *s) s 339 libavcodec/pngdec.c if (!s->interlace_type) { s 340 libavcodec/pngdec.c ptr = s->image_buf + s->image_linesize * (s->y + s->y_offset) + s->x_offset * s->bpp; s 341 libavcodec/pngdec.c if (s->y == 0) s 342 libavcodec/pngdec.c last_row = s->last_row; s 344 libavcodec/pngdec.c last_row = ptr - s->image_linesize; s 346 libavcodec/pngdec.c png_filter_row(&s->dsp, ptr, s->crow_buf[0], s->crow_buf + 1, s 347 libavcodec/pngdec.c last_row, s->row_size, s->bpp); s 349 libavcodec/pngdec.c if (s->filter_type == PNG_FILTER_TYPE_LOCO && s->y > 0) { s 350 libavcodec/pngdec.c if (s->bit_depth == 16) { s 351 libavcodec/pngdec.c deloco_rgb16((uint16_t *)(ptr - s->image_linesize), s->row_size / 2, s 352 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_RGB_ALPHA); s 354 libavcodec/pngdec.c deloco_rgb8(ptr - s->image_linesize, s->row_size, s 355 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_RGB_ALPHA); s 358 libavcodec/pngdec.c s->y++; s 359 libavcodec/pngdec.c if (s->y == s->cur_h) { s 360 libavcodec/pngdec.c s->pic_state |= PNG_ALLIMAGE; s 361 libavcodec/pngdec.c if (s->filter_type == PNG_FILTER_TYPE_LOCO) { s 362 libavcodec/pngdec.c if (s->bit_depth == 16) { s 363 libavcodec/pngdec.c deloco_rgb16((uint16_t *)ptr, s->row_size / 2, s 364 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_RGB_ALPHA); s 366 libavcodec/pngdec.c deloco_rgb8(ptr, s->row_size, s 367 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_RGB_ALPHA); s 374 libavcodec/pngdec.c ptr = s->image_buf + s->image_linesize * (s->y + s->y_offset) + s->x_offset * s->bpp; s 375 libavcodec/pngdec.c if ((ff_png_pass_ymask[s->pass] << (s->y & 7)) & 0x80) { s 380 libavcodec/pngdec.c png_filter_row(&s->dsp, s->tmp_row, s->crow_buf[0], s->crow_buf + 1, s 381 libavcodec/pngdec.c s->last_row, s->pass_row_size, s->bpp); s 382 libavcodec/pngdec.c FFSWAP(uint8_t *, s->last_row, s->tmp_row); s 383 libavcodec/pngdec.c FFSWAP(unsigned int, s->last_row_size, s->tmp_row_size); s 386 libavcodec/pngdec.c if ((png_pass_dsp_ymask[s->pass] << (s->y & 7)) & 0x80) { s 387 libavcodec/pngdec.c png_put_interlaced_row(ptr, s->cur_w, s->bits_per_pixel, s->pass, s 388 libavcodec/pngdec.c s->color_type, s->last_row); s 390 libavcodec/pngdec.c s->y++; s 391 libavcodec/pngdec.c if (s->y == s->cur_h) { s 392 libavcodec/pngdec.c memset(s->last_row, 0, s->row_size); s 394 libavcodec/pngdec.c if (s->pass == NB_PASSES - 1) { s 395 libavcodec/pngdec.c s->pic_state |= PNG_ALLIMAGE; s 398 libavcodec/pngdec.c s->pass++; s 399 libavcodec/pngdec.c s->y = 0; s 400 libavcodec/pngdec.c s->pass_row_size = ff_png_pass_row_size(s->pass, s 401 libavcodec/pngdec.c s->bits_per_pixel, s 402 libavcodec/pngdec.c s->cur_w); s 403 libavcodec/pngdec.c s->crow_size = s->pass_row_size + 1; s 404 libavcodec/pngdec.c if (s->pass_row_size != 0) s 415 libavcodec/pngdec.c static int png_decode_idat(PNGDecContext *s, int length) s 418 libavcodec/pngdec.c s->zstream.avail_in = FFMIN(length, bytestream2_get_bytes_left(&s->gb)); s 419 libavcodec/pngdec.c s->zstream.next_in = s->gb.buffer; s 420 libavcodec/pngdec.c bytestream2_skip(&s->gb, length); s 423 libavcodec/pngdec.c while (s->zstream.avail_in > 0) { s 424 libavcodec/pngdec.c ret = inflate(&s->zstream, Z_PARTIAL_FLUSH); s 426 libavcodec/pngdec.c av_log(s->avctx, AV_LOG_ERROR, "inflate returned error %d\n", ret); s 429 libavcodec/pngdec.c if (s->zstream.avail_out == 0) { s 430 libavcodec/pngdec.c if (!(s->pic_state & PNG_ALLIMAGE)) { s 431 libavcodec/pngdec.c png_handle_row(s); s 433 libavcodec/pngdec.c s->zstream.avail_out = s->crow_size; s 434 libavcodec/pngdec.c s->zstream.next_out = s->crow_buf; s 436 libavcodec/pngdec.c if (ret == Z_STREAM_END && s->zstream.avail_in > 0) { s 437 libavcodec/pngdec.c av_log(s->avctx, AV_LOG_WARNING, s 438 libavcodec/pngdec.c "%d undecompressed bytes left in buffer\n", s->zstream.avail_in); s 513 libavcodec/pngdec.c static int decode_text_chunk(PNGDecContext *s, uint32_t length, int compressed, s 517 libavcodec/pngdec.c const uint8_t *data = s->gb.buffer; s 561 libavcodec/pngdec.c static int decode_ihdr_chunk(AVCodecContext *avctx, PNGDecContext *s, s 567 libavcodec/pngdec.c if (s->pic_state & PNG_IDAT) { s 572 libavcodec/pngdec.c if (s->hdr_state & PNG_IHDR) { s 577 libavcodec/pngdec.c s->width = s->cur_w = bytestream2_get_be32(&s->gb); s 578 libavcodec/pngdec.c s->height = s->cur_h = bytestream2_get_be32(&s->gb); s 579 libavcodec/pngdec.c if (av_image_check_size(s->width, s->height, 0, avctx)) { s 580 libavcodec/pngdec.c s->cur_w = s->cur_h = s->width = s->height = 0; s 584 libavcodec/pngdec.c s->bit_depth = bytestream2_get_byte(&s->gb); s 585 libavcodec/pngdec.c if (s->bit_depth != 1 && s->bit_depth != 2 && s->bit_depth != 4 && s 586 libavcodec/pngdec.c s->bit_depth != 8 && s->bit_depth != 16) { s 590 libavcodec/pngdec.c s->color_type = bytestream2_get_byte(&s->gb); s 591 libavcodec/pngdec.c s->compression_type = bytestream2_get_byte(&s->gb); s 592 libavcodec/pngdec.c if (s->compression_type) { s 593 libavcodec/pngdec.c av_log(avctx, AV_LOG_ERROR, "Invalid compression method %d\n", s->compression_type); s 596 libavcodec/pngdec.c s->filter_type = bytestream2_get_byte(&s->gb); s 597 libavcodec/pngdec.c s->interlace_type = bytestream2_get_byte(&s->gb); s 598 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 599 libavcodec/pngdec.c s->hdr_state |= PNG_IHDR; s 603 libavcodec/pngdec.c s->width, s->height, s->bit_depth, s->color_type, s 604 libavcodec/pngdec.c s->compression_type, s->filter_type, s->interlace_type); s 608 libavcodec/pngdec.c s->cur_w = s->cur_h = s->width = s->height = 0; s 609 libavcodec/pngdec.c s->bit_depth = 8; s 613 libavcodec/pngdec.c static int decode_phys_chunk(AVCodecContext *avctx, PNGDecContext *s) s 615 libavcodec/pngdec.c if (s->pic_state & PNG_IDAT) { s 619 libavcodec/pngdec.c avctx->sample_aspect_ratio.num = bytestream2_get_be32(&s->gb); s 620 libavcodec/pngdec.c avctx->sample_aspect_ratio.den = bytestream2_get_be32(&s->gb); s 623 libavcodec/pngdec.c bytestream2_skip(&s->gb, 1); /* unit specifier */ s 624 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 629 libavcodec/pngdec.c static int decode_idat_chunk(AVCodecContext *avctx, PNGDecContext *s, s 633 libavcodec/pngdec.c size_t byte_depth = s->bit_depth > 8 ? 2 : 1; s 635 libavcodec/pngdec.c if (!(s->hdr_state & PNG_IHDR)) { s 639 libavcodec/pngdec.c if (!(s->pic_state & PNG_IDAT)) { s 641 libavcodec/pngdec.c ret = ff_set_dimensions(avctx, s->width, s->height); s 645 libavcodec/pngdec.c s->channels = ff_png_get_nb_channels(s->color_type); s 646 libavcodec/pngdec.c s->bits_per_pixel = s->bit_depth * s->channels; s 647 libavcodec/pngdec.c s->bpp = (s->bits_per_pixel + 7) >> 3; s 648 libavcodec/pngdec.c s->row_size = (s->cur_w * s->bits_per_pixel + 7) >> 3; s 650 libavcodec/pngdec.c if ((s->bit_depth == 2 || s->bit_depth == 4 || s->bit_depth == 8) && s 651 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_RGB) { s 653 libavcodec/pngdec.c } else if ((s->bit_depth == 2 || s->bit_depth == 4 || s->bit_depth == 8) && s 654 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_RGB_ALPHA) { s 656 libavcodec/pngdec.c } else if ((s->bit_depth == 2 || s->bit_depth == 4 || s->bit_depth == 8) && s 657 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_GRAY) { s 659 libavcodec/pngdec.c } else if (s->bit_depth == 16 && s 660 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_GRAY) { s 662 libavcodec/pngdec.c } else if (s->bit_depth == 16 && s 663 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_RGB) { s 665 libavcodec/pngdec.c } else if (s->bit_depth == 16 && s 666 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_RGB_ALPHA) { s 668 libavcodec/pngdec.c } else if ((s->bits_per_pixel == 1 || s->bits_per_pixel == 2 || s->bits_per_pixel == 4 || s->bits_per_pixel == 8) && s 669 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_PALETTE) { s 671 libavcodec/pngdec.c } else if (s->bit_depth == 1 && s->bits_per_pixel == 1 && avctx->codec_id != AV_CODEC_ID_APNG) { s 673 libavcodec/pngdec.c } else if (s->bit_depth == 8 && s 674 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { s 676 libavcodec/pngdec.c } else if (s->bit_depth == 16 && s 677 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { s 682 libavcodec/pngdec.c s->bit_depth, s->color_type); s 686 libavcodec/pngdec.c if (s->has_trns && s->color_type != PNG_COLOR_TYPE_PALETTE) { s 707 libavcodec/pngdec.c s->bit_depth, s->color_type); s 711 libavcodec/pngdec.c s->bpp += byte_depth; s 714 libavcodec/pngdec.c if ((ret = ff_thread_get_buffer(avctx, &s->picture, AV_GET_BUFFER_FLAG_REF)) < 0) s 716 libavcodec/pngdec.c if (avctx->codec_id == AV_CODEC_ID_APNG && s->last_dispose_op != APNG_DISPOSE_OP_PREVIOUS) { s 717 libavcodec/pngdec.c ff_thread_release_buffer(avctx, &s->previous_picture); s 718 libavcodec/pngdec.c if ((ret = ff_thread_get_buffer(avctx, &s->previous_picture, AV_GET_BUFFER_FLAG_REF)) < 0) s 723 libavcodec/pngdec.c p->interlaced_frame = !!s->interlace_type; s 728 libavcodec/pngdec.c if (!s->interlace_type) { s 729 libavcodec/pngdec.c s->crow_size = s->row_size + 1; s 731 libavcodec/pngdec.c s->pass = 0; s 732 libavcodec/pngdec.c s->pass_row_size = ff_png_pass_row_size(s->pass, s 733 libavcodec/pngdec.c s->bits_per_pixel, s 734 libavcodec/pngdec.c s->cur_w); s 735 libavcodec/pngdec.c s->crow_size = s->pass_row_size + 1; s 738 libavcodec/pngdec.c s->row_size, s->crow_size); s 739 libavcodec/pngdec.c s->image_buf = p->data[0]; s 740 libavcodec/pngdec.c s->image_linesize = p->linesize[0]; s 743 libavcodec/pngdec.c memcpy(p->data[1], s->palette, 256 * sizeof(uint32_t)); s 745 libavcodec/pngdec.c av_fast_padded_mallocz(&s->last_row, &s->last_row_size, s->row_size); s 746 libavcodec/pngdec.c if (!s->last_row) s 748 libavcodec/pngdec.c if (s->interlace_type || s 749 libavcodec/pngdec.c s->color_type == PNG_COLOR_TYPE_RGB_ALPHA) { s 750 libavcodec/pngdec.c av_fast_padded_malloc(&s->tmp_row, &s->tmp_row_size, s->row_size); s 751 libavcodec/pngdec.c if (!s->tmp_row) s 755 libavcodec/pngdec.c av_fast_padded_malloc(&s->buffer, &s->buffer_size, s->row_size + 16); s 756 libavcodec/pngdec.c if (!s->buffer) s 760 libavcodec/pngdec.c s->crow_buf = s->buffer + 15; s 761 libavcodec/pngdec.c s->zstream.avail_out = s->crow_size; s 762 libavcodec/pngdec.c s->zstream.next_out = s->crow_buf; s 765 libavcodec/pngdec.c s->pic_state |= PNG_IDAT; s 768 libavcodec/pngdec.c if (s->has_trns && s->color_type != PNG_COLOR_TYPE_PALETTE) s 769 libavcodec/pngdec.c s->bpp -= byte_depth; s 771 libavcodec/pngdec.c ret = png_decode_idat(s, length); s 773 libavcodec/pngdec.c if (s->has_trns && s->color_type != PNG_COLOR_TYPE_PALETTE) s 774 libavcodec/pngdec.c s->bpp += byte_depth; s 779 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 784 libavcodec/pngdec.c static int decode_plte_chunk(AVCodecContext *avctx, PNGDecContext *s, s 794 libavcodec/pngdec.c r = bytestream2_get_byte(&s->gb); s 795 libavcodec/pngdec.c g = bytestream2_get_byte(&s->gb); s 796 libavcodec/pngdec.c b = bytestream2_get_byte(&s->gb); s 797 libavcodec/pngdec.c s->palette[i] = (0xFFU << 24) | (r << 16) | (g << 8) | b; s 800 libavcodec/pngdec.c s->palette[i] = (0xFFU << 24); s 801 libavcodec/pngdec.c s->hdr_state |= PNG_PLTE; s 802 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 807 libavcodec/pngdec.c static int decode_trns_chunk(AVCodecContext *avctx, PNGDecContext *s, s 812 libavcodec/pngdec.c if (!(s->hdr_state & PNG_IHDR)) { s 817 libavcodec/pngdec.c if (s->pic_state & PNG_IDAT) { s 822 libavcodec/pngdec.c if (s->color_type == PNG_COLOR_TYPE_PALETTE) { s 823 libavcodec/pngdec.c if (length > 256 || !(s->hdr_state & PNG_PLTE)) s 827 libavcodec/pngdec.c unsigned v = bytestream2_get_byte(&s->gb); s 828 libavcodec/pngdec.c s->palette[i] = (s->palette[i] & 0x00ffffff) | (v << 24); s 830 libavcodec/pngdec.c } else if (s->color_type == PNG_COLOR_TYPE_GRAY || s->color_type == PNG_COLOR_TYPE_RGB) { s 831 libavcodec/pngdec.c if ((s->color_type == PNG_COLOR_TYPE_GRAY && length != 2) || s 832 libavcodec/pngdec.c (s->color_type == PNG_COLOR_TYPE_RGB && length != 6) || s 833 libavcodec/pngdec.c s->bit_depth == 1) s 838 libavcodec/pngdec.c v = av_mod_uintp2(bytestream2_get_be16(&s->gb), s->bit_depth); s 840 libavcodec/pngdec.c if (s->bit_depth > 8) s 841 libavcodec/pngdec.c AV_WB16(&s->transparent_color_be[2 * i], v); s 843 libavcodec/pngdec.c s->transparent_color_be[i] = v; s 849 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 850 libavcodec/pngdec.c s->has_trns = 1; s 855 libavcodec/pngdec.c static int decode_iccp_chunk(PNGDecContext *s, int length, AVFrame *f) s 862 libavcodec/pngdec.c while ((profile_name[cnt++] = bytestream2_get_byte(&s->gb)) && cnt < 81); s 864 libavcodec/pngdec.c av_log(s->avctx, AV_LOG_ERROR, "iCCP with invalid name!\n"); s 870 libavcodec/pngdec.c if (bytestream2_get_byte(&s->gb) != 0) { s 871 libavcodec/pngdec.c av_log(s->avctx, AV_LOG_ERROR, "iCCP with invalid compression!\n"); s 877 libavcodec/pngdec.c if ((ret = decode_zbuf(&bp, s->gb.buffer, s->gb.buffer + length)) < 0) s 895 libavcodec/pngdec.c bytestream2_skip(&s->gb, length + 4); s 900 libavcodec/pngdec.c static void handle_small_bpp(PNGDecContext *s, AVFrame *p) s 902 libavcodec/pngdec.c if (s->bits_per_pixel == 1 && s->color_type == PNG_COLOR_TYPE_PALETTE) { s 905 libavcodec/pngdec.c for (j = 0; j < s->height; j++) { s 906 libavcodec/pngdec.c i = s->width / 8; s 908 libavcodec/pngdec.c if ((s->width&7) >= k) s 920 libavcodec/pngdec.c pd += s->image_linesize; s 922 libavcodec/pngdec.c } else if (s->bits_per_pixel == 2) { s 925 libavcodec/pngdec.c for (j = 0; j < s->height; j++) { s 926 libavcodec/pngdec.c i = s->width / 4; s 927 libavcodec/pngdec.c if (s->color_type == PNG_COLOR_TYPE_PALETTE) { s 928 libavcodec/pngdec.c if ((s->width&3) >= 3) pd[4*i + 2]= (pd[i] >> 2) & 3; s 929 libavcodec/pngdec.c if ((s->width&3) >= 2) pd[4*i + 1]= (pd[i] >> 4) & 3; s 930 libavcodec/pngdec.c if ((s->width&3) >= 1) pd[4*i + 0]= pd[i] >> 6; s 938 libavcodec/pngdec.c if ((s->width&3) >= 3) pd[4*i + 2]= ((pd[i]>>2) & 3)*0x55; s 939 libavcodec/pngdec.c if ((s->width&3) >= 2) pd[4*i + 1]= ((pd[i]>>4) & 3)*0x55; s 940 libavcodec/pngdec.c if ((s->width&3) >= 1) pd[4*i + 0]= ( pd[i]>>6 )*0x55; s 948 libavcodec/pngdec.c pd += s->image_linesize; s 950 libavcodec/pngdec.c } else if (s->bits_per_pixel == 4) { s 953 libavcodec/pngdec.c for (j = 0; j < s->height; j++) { s 954 libavcodec/pngdec.c i = s->width/2; s 955 libavcodec/pngdec.c if (s->color_type == PNG_COLOR_TYPE_PALETTE) { s 956 libavcodec/pngdec.c if (s->width&1) pd[2*i+0]= pd[i]>>4; s 962 libavcodec/pngdec.c if (s->width & 1) pd[2*i + 0]= (pd[i] >> 4) * 0x11; s 968 libavcodec/pngdec.c pd += s->image_linesize; s 973 libavcodec/pngdec.c static int decode_fctl_chunk(AVCodecContext *avctx, PNGDecContext *s, s 982 libavcodec/pngdec.c if (!(s->hdr_state & PNG_IHDR)) { s 987 libavcodec/pngdec.c if (s->pic_state & PNG_IDAT) { s 992 libavcodec/pngdec.c s->last_w = s->cur_w; s 993 libavcodec/pngdec.c s->last_h = s->cur_h; s 994 libavcodec/pngdec.c s->last_x_offset = s->x_offset; s 995 libavcodec/pngdec.c s->last_y_offset = s->y_offset; s 996 libavcodec/pngdec.c s->last_dispose_op = s->dispose_op; s 998 libavcodec/pngdec.c sequence_number = bytestream2_get_be32(&s->gb); s 999 libavcodec/pngdec.c cur_w = bytestream2_get_be32(&s->gb); s 1000 libavcodec/pngdec.c cur_h = bytestream2_get_be32(&s->gb); s 1001 libavcodec/pngdec.c x_offset = bytestream2_get_be32(&s->gb); s 1002 libavcodec/pngdec.c y_offset = bytestream2_get_be32(&s->gb); s 1003 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* delay_num (2), delay_den (2) */ s 1004 libavcodec/pngdec.c dispose_op = bytestream2_get_byte(&s->gb); s 1005 libavcodec/pngdec.c blend_op = bytestream2_get_byte(&s->gb); s 1006 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 1009 libavcodec/pngdec.c (cur_w != s->width || s 1010 libavcodec/pngdec.c cur_h != s->height || s 1015 libavcodec/pngdec.c cur_w > s->width - x_offset|| cur_h > s->height - y_offset) s 1023 libavcodec/pngdec.c if ((sequence_number == 0 || !s->previous_picture.f->data[0]) && s 1030 libavcodec/pngdec.c if (blend_op == APNG_BLEND_OP_OVER && !s->has_trns && ( s 1042 libavcodec/pngdec.c s->cur_w = cur_w; s 1043 libavcodec/pngdec.c s->cur_h = cur_h; s 1044 libavcodec/pngdec.c s->x_offset = x_offset; s 1045 libavcodec/pngdec.c s->y_offset = y_offset; s 1046 libavcodec/pngdec.c s->dispose_op = dispose_op; s 1047 libavcodec/pngdec.c s->blend_op = blend_op; s 1052 libavcodec/pngdec.c static void handle_p_frame_png(PNGDecContext *s, AVFrame *p) s 1056 libavcodec/pngdec.c uint8_t *pd_last = s->last_picture.f->data[0]; s 1057 libavcodec/pngdec.c int ls = FFMIN(av_image_get_linesize(p->format, s->width, 0), s->width * s->bpp); s 1059 libavcodec/pngdec.c ff_thread_await_progress(&s->last_picture, INT_MAX, 0); s 1060 libavcodec/pngdec.c for (j = 0; j < s->height; j++) { s 1063 libavcodec/pngdec.c pd += s->image_linesize; s 1064 libavcodec/pngdec.c pd_last += s->image_linesize; s 1072 libavcodec/pngdec.c static int handle_p_frame_apng(AVCodecContext *avctx, PNGDecContext *s, s 1078 libavcodec/pngdec.c if (s->blend_op == APNG_BLEND_OP_OVER && s 1087 libavcodec/pngdec.c buffer = av_malloc_array(s->image_linesize, s->height); s 1093 libavcodec/pngdec.c if (s->last_dispose_op != APNG_DISPOSE_OP_PREVIOUS) { s 1094 libavcodec/pngdec.c ff_thread_await_progress(&s->last_picture, INT_MAX, 0); s 1095 libavcodec/pngdec.c memcpy(buffer, s->last_picture.f->data[0], s->image_linesize * s->height); s 1097 libavcodec/pngdec.c if (s->last_dispose_op == APNG_DISPOSE_OP_BACKGROUND) s 1098 libavcodec/pngdec.c for (y = s->last_y_offset; y < s->last_y_offset + s->last_h; ++y) s 1099 libavcodec/pngdec.c memset(buffer + s->image_linesize * y + s->bpp * s->last_x_offset, 0, s->bpp * s->last_w); s 1101 libavcodec/pngdec.c memcpy(s->previous_picture.f->data[0], buffer, s->image_linesize * s->height); s 1102 libavcodec/pngdec.c ff_thread_report_progress(&s->previous_picture, INT_MAX, 0); s 1104 libavcodec/pngdec.c ff_thread_await_progress(&s->previous_picture, INT_MAX, 0); s 1105 libavcodec/pngdec.c memcpy(buffer, s->previous_picture.f->data[0], s->image_linesize * s->height); s 1109 libavcodec/pngdec.c if (s->blend_op == APNG_BLEND_OP_SOURCE) { s 1110 libavcodec/pngdec.c for (y = s->y_offset; y < s->y_offset + s->cur_h; ++y) { s 1111 libavcodec/pngdec.c size_t row_start = s->image_linesize * y + s->bpp * s->x_offset; s 1112 libavcodec/pngdec.c memcpy(buffer + row_start, p->data[0] + row_start, s->bpp * s->cur_w); s 1115 libavcodec/pngdec.c for (y = s->y_offset; y < s->y_offset + s->cur_h; ++y) { s 1116 libavcodec/pngdec.c uint8_t *foreground = p->data[0] + s->image_linesize * y + s->bpp * s->x_offset; s 1117 libavcodec/pngdec.c uint8_t *background = buffer + s->image_linesize * y + s->bpp * s->x_offset; s 1118 libavcodec/pngdec.c for (x = s->x_offset; x < s->x_offset + s->cur_w; ++x, foreground += s->bpp, background += s->bpp) { s 1139 libavcodec/pngdec.c foreground_alpha = s->palette[foreground[0]] >> 24; s 1140 libavcodec/pngdec.c background_alpha = s->palette[background[0]] >> 24; s 1148 libavcodec/pngdec.c memcpy(background, foreground, s->bpp); s 1161 libavcodec/pngdec.c av_assert0(s->bpp <= 10); s 1163 libavcodec/pngdec.c for (b = 0; b < s->bpp - 1; ++b) { s 1173 libavcodec/pngdec.c memcpy(background, output, s->bpp); s 1179 libavcodec/pngdec.c memcpy(p->data[0], buffer, s->image_linesize * s->height); s 1185 libavcodec/pngdec.c static int decode_frame_common(AVCodecContext *avctx, PNGDecContext *s, s 1195 libavcodec/pngdec.c length = bytestream2_get_bytes_left(&s->gb); s 1204 libavcodec/pngdec.c if (!(s->pic_state & PNG_IDAT)) s 1210 libavcodec/pngdec.c if ( s->pic_state & PNG_ALLIMAGE s 1217 libavcodec/pngdec.c length = bytestream2_get_be32(&s->gb); s 1218 libavcodec/pngdec.c if (length > 0x7fffffff || length > bytestream2_get_bytes_left(&s->gb)) { s 1224 libavcodec/pngdec.c uint32_t crc_sig = AV_RB32(s->gb.buffer + length + 4); s 1225 libavcodec/pngdec.c uint32_t crc_cal = ~av_crc(crc_tab, UINT32_MAX, s->gb.buffer, length + 4); s 1234 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* tag */ s 1238 libavcodec/pngdec.c tag = bytestream2_get_le32(&s->gb); s 1260 libavcodec/pngdec.c if ((ret = decode_ihdr_chunk(avctx, s, length)) < 0) s 1264 libavcodec/pngdec.c if ((ret = decode_phys_chunk(avctx, s)) < 0) s 1270 libavcodec/pngdec.c if ((ret = decode_fctl_chunk(avctx, s, length)) < 0) s 1281 libavcodec/pngdec.c bytestream2_get_be32(&s->gb); s 1287 libavcodec/pngdec.c if ((ret = decode_idat_chunk(avctx, s, length, p)) < 0) s 1291 libavcodec/pngdec.c if (decode_plte_chunk(avctx, s, length) < 0) s 1295 libavcodec/pngdec.c if (decode_trns_chunk(avctx, s, length) < 0) s 1299 libavcodec/pngdec.c if (decode_text_chunk(s, length, 0, metadatap) < 0) s 1301 libavcodec/pngdec.c bytestream2_skip(&s->gb, length + 4); s 1304 libavcodec/pngdec.c if (decode_text_chunk(s, length, 1, metadatap) < 0) s 1306 libavcodec/pngdec.c bytestream2_skip(&s->gb, length + 4); s 1309 libavcodec/pngdec.c int mode = bytestream2_get_byte(&s->gb); s 1323 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 1327 libavcodec/pngdec.c if ((ret = decode_iccp_chunk(s, length, p)) < 0) s 1338 libavcodec/pngdec.c mdm->white_point[0] = av_make_q(bytestream2_get_be32(&s->gb), 100000); s 1339 libavcodec/pngdec.c mdm->white_point[1] = av_make_q(bytestream2_get_be32(&s->gb), 100000); s 1343 libavcodec/pngdec.c mdm->display_primaries[i][0] = av_make_q(bytestream2_get_be32(&s->gb), 100000); s 1344 libavcodec/pngdec.c mdm->display_primaries[i][1] = av_make_q(bytestream2_get_be32(&s->gb), 100000); s 1348 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 1354 libavcodec/pngdec.c int num = bytestream2_get_be32(&s->gb); s 1364 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 1368 libavcodec/pngdec.c if (!(s->pic_state & PNG_ALLIMAGE)) s 1370 libavcodec/pngdec.c if (!(s->pic_state & (PNG_ALLIMAGE|PNG_IDAT))) { s 1374 libavcodec/pngdec.c bytestream2_skip(&s->gb, 4); /* crc */ s 1379 libavcodec/pngdec.c bytestream2_skip(&s->gb, length + 4); s 1390 libavcodec/pngdec.c if (percent_missing(s) > avctx->discard_damaged_percentage) s 1393 libavcodec/pngdec.c if (s->bits_per_pixel <= 4) s 1394 libavcodec/pngdec.c handle_small_bpp(s, p); s 1397 libavcodec/pngdec.c if (s->has_trns && s->color_type != PNG_COLOR_TYPE_PALETTE) { s 1398 libavcodec/pngdec.c size_t byte_depth = s->bit_depth > 8 ? 2 : 1; s 1399 libavcodec/pngdec.c size_t raw_bpp = s->bpp - byte_depth; s 1402 libavcodec/pngdec.c av_assert0(s->bit_depth > 1); s 1404 libavcodec/pngdec.c for (y = 0; y < s->height; ++y) { s 1405 libavcodec/pngdec.c uint8_t *row = &s->image_buf[s->image_linesize * y]; s 1407 libavcodec/pngdec.c if (s->bpp == 2 && byte_depth == 1) { s 1408 libavcodec/pngdec.c uint8_t *pixel = &row[2 * s->width - 1]; s 1409 libavcodec/pngdec.c uint8_t *rowp = &row[1 * s->width - 1]; s 1410 libavcodec/pngdec.c int tcolor = s->transparent_color_be[0]; s 1411 libavcodec/pngdec.c for (x = s->width; x > 0; --x) { s 1415 libavcodec/pngdec.c } else if (s->bpp == 4 && byte_depth == 1) { s 1416 libavcodec/pngdec.c uint8_t *pixel = &row[4 * s->width - 1]; s 1417 libavcodec/pngdec.c uint8_t *rowp = &row[3 * s->width - 1]; s 1418 libavcodec/pngdec.c int tcolor = AV_RL24(s->transparent_color_be); s 1419 libavcodec/pngdec.c for (x = s->width; x > 0; --x) { s 1427 libavcodec/pngdec.c for (x = s->width; x > 0; --x) { s 1428 libavcodec/pngdec.c uint8_t *pixel = &row[s->bpp * (x - 1)]; s 1431 libavcodec/pngdec.c if (!memcmp(pixel, s->transparent_color_be, raw_bpp)) { s 1442 libavcodec/pngdec.c if (s->last_picture.f->data[0]) { s 1444 libavcodec/pngdec.c && s->last_picture.f->width == p->width s 1445 libavcodec/pngdec.c && s->last_picture.f->height== p->height s 1446 libavcodec/pngdec.c && s->last_picture.f->format== p->format s 1449 libavcodec/pngdec.c handle_p_frame_png(s, p); s 1451 libavcodec/pngdec.c s->previous_picture.f->width == p->width && s 1452 libavcodec/pngdec.c s->previous_picture.f->height== p->height && s 1453 libavcodec/pngdec.c s->previous_picture.f->format== p->format && s 1455 libavcodec/pngdec.c (ret = handle_p_frame_apng(avctx, s, p)) < 0) s 1459 libavcodec/pngdec.c ff_thread_report_progress(&s->picture, INT_MAX, 0); s 1460 libavcodec/pngdec.c ff_thread_report_progress(&s->previous_picture, INT_MAX, 0); s 1465 libavcodec/pngdec.c ff_thread_report_progress(&s->picture, INT_MAX, 0); s 1466 libavcodec/pngdec.c ff_thread_report_progress(&s->previous_picture, INT_MAX, 0); s 1475 libavcodec/pngdec.c PNGDecContext *const s = avctx->priv_data; s 1482 libavcodec/pngdec.c ff_thread_release_buffer(avctx, &s->last_picture); s 1483 libavcodec/pngdec.c FFSWAP(ThreadFrame, s->picture, s->last_picture); s 1484 libavcodec/pngdec.c p = s->picture.f; s 1486 libavcodec/pngdec.c bytestream2_init(&s->gb, buf, buf_size); s 1489 libavcodec/pngdec.c sig = bytestream2_get_be64(&s->gb); s 1496 libavcodec/pngdec.c s->y = s->has_trns = 0; s 1497 libavcodec/pngdec.c s->hdr_state = 0; s 1498 libavcodec/pngdec.c s->pic_state = 0; s 1501 libavcodec/pngdec.c s->zstream.zalloc = ff_png_zalloc; s 1502 libavcodec/pngdec.c s->zstream.zfree = ff_png_zfree; s 1503 libavcodec/pngdec.c s->zstream.opaque = NULL; s 1504 libavcodec/pngdec.c ret = inflateInit(&s->zstream); s 1510 libavcodec/pngdec.c if ((ret = decode_frame_common(avctx, s, p, avpkt)) < 0) s 1515 libavcodec/pngdec.c ret = bytestream2_tell(&s->gb); s 1519 libavcodec/pngdec.c if ((ret = av_frame_ref(data, s->picture.f)) < 0) s 1524 libavcodec/pngdec.c ret = bytestream2_tell(&s->gb); s 1526 libavcodec/pngdec.c inflateEnd(&s->zstream); s 1527 libavcodec/pngdec.c s->crow_buf = NULL; s 1537 libavcodec/pngdec.c PNGDecContext *const s = avctx->priv_data; s 1541 libavcodec/pngdec.c ff_thread_release_buffer(avctx, &s->last_picture); s 1542 libavcodec/pngdec.c FFSWAP(ThreadFrame, s->picture, s->last_picture); s 1543 libavcodec/pngdec.c p = s->picture.f; s 1545 libavcodec/pngdec.c if (!(s->hdr_state & PNG_IHDR)) { s 1550 libavcodec/pngdec.c s->zstream.zalloc = ff_png_zalloc; s 1551 libavcodec/pngdec.c s->zstream.zfree = ff_png_zfree; s 1553 libavcodec/pngdec.c bytestream2_init(&s->gb, avctx->extradata, avctx->extradata_size); s 1554 libavcodec/pngdec.c if ((ret = decode_frame_common(avctx, s, p, avpkt)) < 0) s 1559 libavcodec/pngdec.c if ((ret = inflateInit(&s->zstream)) != Z_OK) { s 1564 libavcodec/pngdec.c s->y = 0; s 1565 libavcodec/pngdec.c s->pic_state = 0; s 1566 libavcodec/pngdec.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 1567 libavcodec/pngdec.c if ((ret = decode_frame_common(avctx, s, p, avpkt)) < 0) s 1570 libavcodec/pngdec.c if (!(s->pic_state & PNG_ALLIMAGE)) s 1572 libavcodec/pngdec.c if (!(s->pic_state & (PNG_ALLIMAGE|PNG_IDAT))) { s 1576 libavcodec/pngdec.c if ((ret = av_frame_ref(data, s->picture.f)) < 0) s 1580 libavcodec/pngdec.c ret = bytestream2_tell(&s->gb); s 1583 libavcodec/pngdec.c inflateEnd(&s->zstream); s 1593 libavcodec/pngdec.c PNGDecContext *const s = avctx->priv_data; s 1594 libavcodec/pngdec.c GetByteContext *gb = &s->gb; s 1610 libavcodec/pngdec.c if (s->last_picture.f->data[0]) { s 1611 libavcodec/pngdec.c ret = av_frame_copy(frame, s->last_picture.f); s 1620 libavcodec/pngdec.c s->zstream.zalloc = ff_png_zalloc; s 1621 libavcodec/pngdec.c s->zstream.zfree = ff_png_zfree; s 1622 libavcodec/pngdec.c s->zstream.opaque = NULL; s 1624 libavcodec/pngdec.c if ((ret = inflateInit(&s->zstream)) != Z_OK) { s 1636 libavcodec/pngdec.c s->width = s->cur_w = w = x2-x; s 1637 libavcodec/pngdec.c s->height = s->cur_h = h = y2-y; s 1662 libavcodec/pngdec.c s->y = 0; s 1663 libavcodec/pngdec.c s->row_size = w * 3; s 1665 libavcodec/pngdec.c av_fast_padded_malloc(&s->buffer, &s->buffer_size, s->row_size + 16); s 1666 libavcodec/pngdec.c if (!s->buffer) { s 1671 libavcodec/pngdec.c av_fast_padded_malloc(&s->last_row, &s->last_row_size, s->row_size); s 1672 libavcodec/pngdec.c if (!s->last_row) { s 1677 libavcodec/pngdec.c s->crow_size = w * 3 + 1; s 1678 libavcodec/pngdec.c s->crow_buf = s->buffer + 15; s 1679 libavcodec/pngdec.c s->zstream.avail_out = s->crow_size; s 1680 libavcodec/pngdec.c s->zstream.next_out = s->crow_buf; s 1681 libavcodec/pngdec.c s->image_buf = frame->data[0] + (avctx->height - y - 1) * frame->linesize[0] + x * 3; s 1682 libavcodec/pngdec.c s->image_linesize =-frame->linesize[0]; s 1683 libavcodec/pngdec.c s->bpp = 3; s 1684 libavcodec/pngdec.c s->pic_state = 0; s 1687 libavcodec/pngdec.c ret = png_decode_idat(s, csize); s 1701 libavcodec/pngdec.c inflateEnd(&s->zstream); s 1706 libavcodec/pngdec.c av_frame_unref(s->last_picture.f); s 1707 libavcodec/pngdec.c if ((ret = av_frame_ref(s->last_picture.f, frame)) < 0) s 1712 libavcodec/pngdec.c inflateEnd(&s->zstream); s 1721 libavcodec/pngdec.c PNGDecContext *s = avctx->priv_data; s 1723 libavcodec/pngdec.c av_frame_unref(s->last_picture.f); s 1780 libavcodec/pngdec.c PNGDecContext *s = avctx->priv_data; s 1787 libavcodec/pngdec.c s->avctx = avctx; s 1788 libavcodec/pngdec.c s->previous_picture.f = av_frame_alloc(); s 1789 libavcodec/pngdec.c s->last_picture.f = av_frame_alloc(); s 1790 libavcodec/pngdec.c s->picture.f = av_frame_alloc(); s 1791 libavcodec/pngdec.c if (!s->previous_picture.f || !s->last_picture.f || !s->picture.f) { s 1792 libavcodec/pngdec.c av_frame_free(&s->previous_picture.f); s 1793 libavcodec/pngdec.c av_frame_free(&s->last_picture.f); s 1794 libavcodec/pngdec.c av_frame_free(&s->picture.f); s 1798 libavcodec/pngdec.c ff_pngdsp_init(&s->dsp); s 1805 libavcodec/pngdec.c PNGDecContext *s = avctx->priv_data; s 1807 libavcodec/pngdec.c ff_thread_release_buffer(avctx, &s->previous_picture); s 1808 libavcodec/pngdec.c av_frame_free(&s->previous_picture.f); s 1809 libavcodec/pngdec.c ff_thread_release_buffer(avctx, &s->last_picture); s 1810 libavcodec/pngdec.c av_frame_free(&s->last_picture.f); s 1811 libavcodec/pngdec.c ff_thread_release_buffer(avctx, &s->picture); s 1812 libavcodec/pngdec.c av_frame_free(&s->picture.f); s 1813 libavcodec/pngdec.c av_freep(&s->buffer); s 1814 libavcodec/pngdec.c s->buffer_size = 0; s 1815 libavcodec/pngdec.c av_freep(&s->last_row); s 1816 libavcodec/pngdec.c s->last_row_size = 0; s 1817 libavcodec/pngdec.c av_freep(&s->tmp_row); s 1818 libavcodec/pngdec.c s->tmp_row_size = 0; s 88 libavcodec/pngenc.c const uint8_t *s; s 108 libavcodec/pngenc.c s = src; s 112 libavcodec/pngenc.c memcpy(d, s, bpp); s 115 libavcodec/pngenc.c s += bpp; s 194 libavcodec/pngenc.c static uint8_t *png_choose_filter(PNGEncContext *s, uint8_t *dst, s 197 libavcodec/pngenc.c int pred = s->filter_type; s 206 libavcodec/pngenc.c png_filter_row(s, buf1 + 1, pred, src, top, size, bpp); s 218 libavcodec/pngenc.c png_filter_row(s, dst + 1, pred, src, top, size, bpp); s 246 libavcodec/pngenc.c PNGEncContext *s = avctx->priv_data; s 251 libavcodec/pngenc.c png_write_chunk(&s->bytestream, MKTAG('I', 'D', 'A', 'T'), buf, length); s 255 libavcodec/pngenc.c bytestream_put_be32(&s->bytestream, length + 4); s 257 libavcodec/pngenc.c bytestream_put_be32(&s->bytestream, MKBETAG('f', 'd', 'A', 'T')); s 258 libavcodec/pngenc.c bytestream_put_be32(&s->bytestream, s->sequence_number); s 259 libavcodec/pngenc.c crc = av_crc(crc_table, crc, s->bytestream - 8, 8); s 262 libavcodec/pngenc.c memcpy(s->bytestream, buf, length); s 263 libavcodec/pngenc.c s->bytestream += length; s 265 libavcodec/pngenc.c bytestream_put_be32(&s->bytestream, ~crc); s 267 libavcodec/pngenc.c ++s->sequence_number; s 273 libavcodec/pngenc.c PNGEncContext *s = avctx->priv_data; s 276 libavcodec/pngenc.c s->zstream.avail_in = size; s 277 libavcodec/pngenc.c s->zstream.next_in = data; s 278 libavcodec/pngenc.c while (s->zstream.avail_in > 0) { s 279 libavcodec/pngenc.c ret = deflate(&s->zstream, Z_NO_FLUSH); s 282 libavcodec/pngenc.c if (s->zstream.avail_out == 0) { s 283 libavcodec/pngenc.c if (s->bytestream_end - s->bytestream > IOBUF_SIZE + 100) s 284 libavcodec/pngenc.c png_write_image_data(avctx, s->buf, IOBUF_SIZE); s 285 libavcodec/pngenc.c s->zstream.avail_out = IOBUF_SIZE; s 286 libavcodec/pngenc.c s->zstream.next_out = s->buf; s 348 libavcodec/pngenc.c PNGEncContext *s = avctx->priv_data; s 351 libavcodec/pngenc.c AV_WB32(s->buf, avctx->width); s 352 libavcodec/pngenc.c AV_WB32(s->buf + 4, avctx->height); s 353 libavcodec/pngenc.c s->buf[8] = s->bit_depth; s 354 libavcodec/pngenc.c s->buf[9] = s->color_type; s 355 libavcodec/pngenc.c s->buf[10] = 0; /* compression type */ s 356 libavcodec/pngenc.c s->buf[11] = 0; /* filter type */ s 357 libavcodec/pngenc.c s->buf[12] = s->is_progressive; /* interlace type */ s 358 libavcodec/pngenc.c png_write_chunk(&s->bytestream, MKTAG('I', 'H', 'D', 'R'), s->buf, 13); s 361 libavcodec/pngenc.c if (s->dpm) { s 362 libavcodec/pngenc.c AV_WB32(s->buf, s->dpm); s 363 libavcodec/pngenc.c AV_WB32(s->buf + 4, s->dpm); s 364 libavcodec/pngenc.c s->buf[8] = 1; /* unit specifier is meter */ s 366 libavcodec/pngenc.c AV_WB32(s->buf, avctx->sample_aspect_ratio.num); s 367 libavcodec/pngenc.c AV_WB32(s->buf + 4, avctx->sample_aspect_ratio.den); s 368 libavcodec/pngenc.c s->buf[8] = 0; /* unit specifier is unknown */ s 370 libavcodec/pngenc.c png_write_chunk(&s->bytestream, MKTAG('p', 'H', 'Y', 's'), s->buf, 9); s 378 libavcodec/pngenc.c s->buf[0] = ((stereo3d->flags & AV_STEREO3D_FLAG_INVERT) == 0) ? 1 : 0; s 379 libavcodec/pngenc.c png_write_chunk(&s->bytestream, MKTAG('s', 'T', 'E', 'R'), s->buf, 1); s 392 libavcodec/pngenc.c s->buf[0] = 1; /* rendering intent, relative colorimetric by default */ s 393 libavcodec/pngenc.c png_write_chunk(&s->bytestream, MKTAG('s', 'R', 'G', 'B'), s->buf, 1); s 396 libavcodec/pngenc.c if (png_get_chrm(pict->color_primaries, s->buf)) s 397 libavcodec/pngenc.c png_write_chunk(&s->bytestream, MKTAG('c', 'H', 'R', 'M'), s->buf, 32); s 398 libavcodec/pngenc.c if (png_get_gama(pict->color_trc, s->buf)) s 399 libavcodec/pngenc.c png_write_chunk(&s->bytestream, MKTAG('g', 'A', 'M', 'A'), s->buf, 4); s 402 libavcodec/pngenc.c if (s->color_type == PNG_COLOR_TYPE_PALETTE) { s 409 libavcodec/pngenc.c ptr = s->buf; s 410 libavcodec/pngenc.c alpha_ptr = s->buf + 256 * 3; s 420 libavcodec/pngenc.c png_write_chunk(&s->bytestream, s 421 libavcodec/pngenc.c MKTAG('P', 'L', 'T', 'E'), s->buf, 256 * 3); s 423 libavcodec/pngenc.c png_write_chunk(&s->bytestream, s 424 libavcodec/pngenc.c MKTAG('t', 'R', 'N', 'S'), s->buf + 256 * 3, 256); s 433 libavcodec/pngenc.c PNGEncContext *s = avctx->priv_data; s 442 libavcodec/pngenc.c row_size = (pict->width * s->bits_per_pixel + 7) >> 3; s 444 libavcodec/pngenc.c crow_base = av_malloc((row_size + 32) << (s->filter_type == PNG_FILTER_VALUE_MIXED)); s 451 libavcodec/pngenc.c if (s->is_progressive) { s 461 libavcodec/pngenc.c s->zstream.avail_out = IOBUF_SIZE; s 462 libavcodec/pngenc.c s->zstream.next_out = s->buf; s 463 libavcodec/pngenc.c if (s->is_progressive) { s 469 libavcodec/pngenc.c pass_row_size = ff_png_pass_row_size(pass, s->bits_per_pixel, pict->width); s 477 libavcodec/pngenc.c s->bits_per_pixel, pass, s 479 libavcodec/pngenc.c crow = png_choose_filter(s, crow_buf, progressive_buf, s 480 libavcodec/pngenc.c top, pass_row_size, s->bits_per_pixel >> 3); s 490 libavcodec/pngenc.c crow = png_choose_filter(s, crow_buf, ptr, top, s 491 libavcodec/pngenc.c row_size, s->bits_per_pixel >> 3); s 498 libavcodec/pngenc.c ret = deflate(&s->zstream, Z_FINISH); s 500 libavcodec/pngenc.c len = IOBUF_SIZE - s->zstream.avail_out; s 501 libavcodec/pngenc.c if (len > 0 && s->bytestream_end - s->bytestream > len + 100) { s 502 libavcodec/pngenc.c png_write_image_data(avctx, s->buf, len); s 504 libavcodec/pngenc.c s->zstream.avail_out = IOBUF_SIZE; s 505 libavcodec/pngenc.c s->zstream.next_out = s->buf; s 520 libavcodec/pngenc.c deflateReset(&s->zstream); s 527 libavcodec/pngenc.c PNGEncContext *s = avctx->priv_data; s 532 libavcodec/pngenc.c enc_row_size = deflateBound(&s->zstream, (avctx->width * s->bits_per_pixel + 7) >> 3); s 545 libavcodec/pngenc.c s->bytestream_start = s 546 libavcodec/pngenc.c s->bytestream = pkt->data; s 547 libavcodec/pngenc.c s->bytestream_end = pkt->data + pkt->size; s 549 libavcodec/pngenc.c AV_WB64(s->bytestream, PNGSIG); s 550 libavcodec/pngenc.c s->bytestream += 8; s 560 libavcodec/pngenc.c png_write_chunk(&s->bytestream, MKTAG('I', 'E', 'N', 'D'), NULL, 0); s 562 libavcodec/pngenc.c pkt->size = s->bytestream - s->bytestream_start; s 715 libavcodec/pngenc.c PNGEncContext *s = avctx->priv_data; s 719 libavcodec/pngenc.c uint8_t bpp = (s->bits_per_pixel + 7) >> 3; s 747 libavcodec/pngenc.c original_bytestream = s->bytestream; s 748 libavcodec/pngenc.c original_bytestream_end = s->bytestream_end; s 766 libavcodec/pngenc.c uint32_t original_sequence_number = s->sequence_number, sequence_number; s 767 libavcodec/pngenc.c uint8_t *bytestream_start = s->bytestream; s 774 libavcodec/pngenc.c ret = av_frame_copy(diffFrame, s->last_frame); s 785 libavcodec/pngenc.c if (!s->prev_frame) s 790 libavcodec/pngenc.c ret = av_frame_copy(diffFrame, s->prev_frame); s 801 libavcodec/pngenc.c sequence_number = s->sequence_number; s 802 libavcodec/pngenc.c s->sequence_number = original_sequence_number; s 803 libavcodec/pngenc.c bytestream_size = s->bytestream - bytestream_start; s 804 libavcodec/pngenc.c s->bytestream = bytestream_start; s 813 libavcodec/pngenc.c best_bytestream = s->bytestream; s 817 libavcodec/pngenc.c s->bytestream = temp_bytestream; s 818 libavcodec/pngenc.c s->bytestream_end = temp_bytestream_end; s 820 libavcodec/pngenc.c s->bytestream = original_bytestream; s 821 libavcodec/pngenc.c s->bytestream_end = original_bytestream_end; s 827 libavcodec/pngenc.c s->sequence_number = best_sequence_number; s 828 libavcodec/pngenc.c s->bytestream = original_bytestream + best_bytestream_size; s 829 libavcodec/pngenc.c s->bytestream_end = original_bytestream_end; s 844 libavcodec/pngenc.c PNGEncContext *s = avctx->priv_data; s 850 libavcodec/pngenc.c if (pict && avctx->codec_id == AV_CODEC_ID_APNG && s->color_type == PNG_COLOR_TYPE_PALETTE) { s 854 libavcodec/pngenc.c s->palette_checksum = checksum; s 855 libavcodec/pngenc.c } else if (checksum != s->palette_checksum) { s 862 libavcodec/pngenc.c enc_row_size = deflateBound(&s->zstream, (avctx->width * s->bits_per_pixel + 7) >> 3); s 876 libavcodec/pngenc.c s->bytestream = s->extra_data = av_malloc(AV_INPUT_BUFFER_MIN_SIZE); s 877 libavcodec/pngenc.c if (!s->extra_data) s 884 libavcodec/pngenc.c s->extra_data_size = s->bytestream - s->extra_data; s 886 libavcodec/pngenc.c s->last_frame_packet = av_malloc(max_packet_size); s 887 libavcodec/pngenc.c if (!s->last_frame_packet) s 889 libavcodec/pngenc.c } else if (s->last_frame) { s 894 libavcodec/pngenc.c memcpy(pkt->data, s->last_frame_packet, s->last_frame_packet_size); s 895 libavcodec/pngenc.c pkt->size = s->last_frame_packet_size; s 896 libavcodec/pngenc.c pkt->pts = pkt->dts = s->last_frame->pts; s 900 libavcodec/pngenc.c s->bytestream_start = s 901 libavcodec/pngenc.c s->bytestream = s->last_frame_packet; s 902 libavcodec/pngenc.c s->bytestream_end = s->bytestream + max_packet_size; s 906 libavcodec/pngenc.c fctl_chunk.sequence_number = s->sequence_number; s 907 libavcodec/pngenc.c ++s->sequence_number; s 908 libavcodec/pngenc.c s->bytestream += 26 + 12; s 910 libavcodec/pngenc.c ret = apng_encode_frame(avctx, pict, &fctl_chunk, &s->last_frame_fctl); s 917 libavcodec/pngenc.c s->last_frame_fctl.dispose_op = APNG_DISPOSE_OP_NONE; s 920 libavcodec/pngenc.c if (s->last_frame) { s 923 libavcodec/pngenc.c if (!s->extra_data_updated) { s 924 libavcodec/pngenc.c uint8_t *side_data = av_packet_new_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, s->extra_data_size); s 927 libavcodec/pngenc.c memcpy(side_data, s->extra_data, s->extra_data_size); s 928 libavcodec/pngenc.c s->extra_data_updated = 1; s 931 libavcodec/pngenc.c AV_WB32(buf + 0, s->last_frame_fctl.sequence_number); s 932 libavcodec/pngenc.c AV_WB32(buf + 4, s->last_frame_fctl.width); s 933 libavcodec/pngenc.c AV_WB32(buf + 8, s->last_frame_fctl.height); s 934 libavcodec/pngenc.c AV_WB32(buf + 12, s->last_frame_fctl.x_offset); s 935 libavcodec/pngenc.c AV_WB32(buf + 16, s->last_frame_fctl.y_offset); s 936 libavcodec/pngenc.c AV_WB16(buf + 20, s->last_frame_fctl.delay_num); s 937 libavcodec/pngenc.c AV_WB16(buf + 22, s->last_frame_fctl.delay_den); s 938 libavcodec/pngenc.c buf[24] = s->last_frame_fctl.dispose_op; s 939 libavcodec/pngenc.c buf[25] = s->last_frame_fctl.blend_op; s 946 libavcodec/pngenc.c if (!s->last_frame) { s 947 libavcodec/pngenc.c s->last_frame = av_frame_alloc(); s 948 libavcodec/pngenc.c if (!s->last_frame) s 950 libavcodec/pngenc.c } else if (s->last_frame_fctl.dispose_op != APNG_DISPOSE_OP_PREVIOUS) { s 951 libavcodec/pngenc.c if (!s->prev_frame) { s 952 libavcodec/pngenc.c s->prev_frame = av_frame_alloc(); s 953 libavcodec/pngenc.c if (!s->prev_frame) s 956 libavcodec/pngenc.c s->prev_frame->format = pict->format; s 957 libavcodec/pngenc.c s->prev_frame->width = pict->width; s 958 libavcodec/pngenc.c s->prev_frame->height = pict->height; s 959 libavcodec/pngenc.c if ((ret = av_frame_get_buffer(s->prev_frame, 0)) < 0) s 964 libavcodec/pngenc.c av_frame_copy(s->prev_frame, s->last_frame); s 965 libavcodec/pngenc.c if (s->last_frame_fctl.dispose_op == APNG_DISPOSE_OP_BACKGROUND) { s 967 libavcodec/pngenc.c uint8_t bpp = (s->bits_per_pixel + 7) >> 3; s 968 libavcodec/pngenc.c for (y = s->last_frame_fctl.y_offset; y < s->last_frame_fctl.y_offset + s->last_frame_fctl.height; ++y) { s 969 libavcodec/pngenc.c size_t row_start = s->prev_frame->linesize[0] * y + bpp * s->last_frame_fctl.x_offset; s 970 libavcodec/pngenc.c memset(s->prev_frame->data[0] + row_start, 0, bpp * s->last_frame_fctl.width); s 975 libavcodec/pngenc.c av_frame_unref(s->last_frame); s 976 libavcodec/pngenc.c ret = av_frame_ref(s->last_frame, (AVFrame*)pict); s 980 libavcodec/pngenc.c s->last_frame_fctl = fctl_chunk; s 981 libavcodec/pngenc.c s->last_frame_packet_size = s->bytestream - s->bytestream_start; s 983 libavcodec/pngenc.c av_frame_free(&s->last_frame); s 991 libavcodec/pngenc.c PNGEncContext *s = avctx->priv_data; s 1018 libavcodec/pngenc.c ff_llvidencdsp_init(&s->llvidencdsp); s 1023 libavcodec/pngenc.c s->filter_type = av_clip(avctx->prediction_method, s 1030 libavcodec/pngenc.c s->filter_type = PNG_FILTER_VALUE_NONE; s 1032 libavcodec/pngenc.c if (s->dpi && s->dpm) { s 1035 libavcodec/pngenc.c } else if (s->dpi) { s 1036 libavcodec/pngenc.c s->dpm = s->dpi * 10000 / 254; s 1039 libavcodec/pngenc.c s->is_progressive = !!(avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT); s 1042 libavcodec/pngenc.c s->bit_depth = 16; s 1043 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_RGB_ALPHA; s 1046 libavcodec/pngenc.c s->bit_depth = 16; s 1047 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_RGB; s 1050 libavcodec/pngenc.c s->bit_depth = 8; s 1051 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_RGB_ALPHA; s 1054 libavcodec/pngenc.c s->bit_depth = 8; s 1055 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_RGB; s 1058 libavcodec/pngenc.c s->bit_depth = 16; s 1059 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_GRAY; s 1062 libavcodec/pngenc.c s->bit_depth = 8; s 1063 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_GRAY; s 1066 libavcodec/pngenc.c s->bit_depth = 8; s 1067 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_GRAY_ALPHA; s 1070 libavcodec/pngenc.c s->bit_depth = 16; s 1071 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_GRAY_ALPHA; s 1074 libavcodec/pngenc.c s->bit_depth = 1; s 1075 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_GRAY; s 1078 libavcodec/pngenc.c s->bit_depth = 8; s 1079 libavcodec/pngenc.c s->color_type = PNG_COLOR_TYPE_PALETTE; s 1084 libavcodec/pngenc.c s->bits_per_pixel = ff_png_get_nb_channels(s->color_type) * s->bit_depth; s 1086 libavcodec/pngenc.c s->zstream.zalloc = ff_png_zalloc; s 1087 libavcodec/pngenc.c s->zstream.zfree = ff_png_zfree; s 1088 libavcodec/pngenc.c s->zstream.opaque = NULL; s 1092 libavcodec/pngenc.c if (deflateInit2(&s->zstream, compression_level, Z_DEFLATED, 15, 8, Z_DEFAULT_STRATEGY) != Z_OK) s 1100 libavcodec/pngenc.c PNGEncContext *s = avctx->priv_data; s 1102 libavcodec/pngenc.c deflateEnd(&s->zstream); s 1103 libavcodec/pngenc.c av_frame_free(&s->last_frame); s 1104 libavcodec/pngenc.c av_frame_free(&s->prev_frame); s 1105 libavcodec/pngenc.c av_freep(&s->last_frame_packet); s 1106 libavcodec/pngenc.c av_freep(&s->extra_data); s 1107 libavcodec/pngenc.c s->extra_data_size = 0; s 39 libavcodec/pnm.c char *s; s 56 libavcodec/pnm.c s = str; s 57 libavcodec/pnm.c while (bs < end && !pnm_space(c) && (s - str) < buf_size - 1) { s 58 libavcodec/pnm.c *s++ = c; s 61 libavcodec/pnm.c *s = '\0'; s 65 libavcodec/pnm.c int ff_pnm_decode_header(AVCodecContext *avctx, PNMContext * const s) s 71 libavcodec/pnm.c if (s->bytestream_end - s->bytestream < 3 || s 72 libavcodec/pnm.c s->bytestream[0] != 'P' || s 73 libavcodec/pnm.c (s->bytestream[1] < '1' || s 74 libavcodec/pnm.c s->bytestream[1] > '7' && s 75 libavcodec/pnm.c s->bytestream[1] != 'F')) { s 76 libavcodec/pnm.c s->bytestream += s->bytestream_end > s->bytestream; s 77 libavcodec/pnm.c s->bytestream += s->bytestream_end > s->bytestream; s 80 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 81 libavcodec/pnm.c s->type= buf1[1]-'0'; s 85 libavcodec/pnm.c } else if (s->type==1 || s->type==4) { s 87 libavcodec/pnm.c } else if (s->type==2 || s->type==5) { s 92 libavcodec/pnm.c } else if (s->type==3 || s->type==6) { s 94 libavcodec/pnm.c } else if (s->type==7) { s 101 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 103 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 106 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 109 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 112 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 117 libavcodec/pnm.c pnm_get(s, tuple_type, sizeof(tuple_type)); s 124 libavcodec/pnm.c if (!pnm_space(s->bytestream[-1])) s 129 libavcodec/pnm.c av_image_check_size(w, h, 0, avctx) || s->bytestream >= s->bytestream_end) s 135 libavcodec/pnm.c s->maxval = maxval; s 169 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 171 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 173 libavcodec/pnm.c if(w <= 0 || h <= 0 || av_image_check_size(w, h, 0, avctx) || s->bytestream >= s->bytestream_end) s 181 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 182 libavcodec/pnm.c if (av_sscanf(buf1, "%f", &s->scale) != 1 || s->scale == 0.0 || !isfinite(s->scale)) { s 186 libavcodec/pnm.c s->endian = s->scale < 0.f; s 187 libavcodec/pnm.c s->scale = fabsf(s->scale); s 188 libavcodec/pnm.c s->maxval = (1ULL << 32) - 1; s 190 libavcodec/pnm.c pnm_get(s, buf1, sizeof(buf1)); s 191 libavcodec/pnm.c s->maxval = atoi(buf1); s 192 libavcodec/pnm.c if (s->maxval <= 0 || s->maxval > UINT16_MAX) { s 193 libavcodec/pnm.c av_log(avctx, AV_LOG_ERROR, "Invalid maxval: %d\n", s->maxval); s 194 libavcodec/pnm.c s->maxval = 255; s 196 libavcodec/pnm.c if (s->maxval >= 256) { s 201 libavcodec/pnm.c } else if (avctx->pix_fmt == AV_PIX_FMT_YUV420P && s->maxval < 65536) { s 202 libavcodec/pnm.c if (s->maxval < 512) s 204 libavcodec/pnm.c else if (s->maxval < 1024) s 215 libavcodec/pnm.c s->maxval=1; s 217 libavcodec/pnm.c if (!pnm_space(s->bytestream[-1])) s 37 libavcodec/pnm.h int ff_pnm_decode_header(AVCodecContext *avctx, PNMContext * const s); s 34 libavcodec/pnm_parser.c static int pnm_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 38 libavcodec/pnm_parser.c PNMParseContext *pnmpc = s->priv_data; s 44 libavcodec/pnmdec.c PNMContext * const s = avctx->priv_data; s 51 libavcodec/pnmdec.c s->bytestream_start = s 52 libavcodec/pnmdec.c s->bytestream = (uint8_t *)buf; s 53 libavcodec/pnmdec.c s->bytestream_end = (uint8_t *)buf + buf_size; s 55 libavcodec/pnmdec.c if ((ret = ff_pnm_decode_header(avctx, s)) < 0) s 62 libavcodec/pnmdec.c avctx->bits_per_raw_sample = av_log2(s->maxval) + 1; s 71 libavcodec/pnmdec.c if (s->maxval < 65535) s 78 libavcodec/pnmdec.c if (s->maxval < 65535) s 90 libavcodec/pnmdec.c if (s->maxval < 255) s 97 libavcodec/pnmdec.c if (s->maxval < 255) s 109 libavcodec/pnmdec.c if (s->maxval < 65535) s 116 libavcodec/pnmdec.c if (s->maxval < 65535) s 128 libavcodec/pnmdec.c if (n * avctx->height > s->bytestream_end - s->bytestream) s 130 libavcodec/pnmdec.c if(s->type < 4 || (is_mono && s->type==7)){ s 137 libavcodec/pnmdec.c if(s->type < 4) s 138 libavcodec/pnmdec.c while(s->bytestream < s->bytestream_end && (*s->bytestream < '0' || *s->bytestream > '9' )) s 139 libavcodec/pnmdec.c s->bytestream++; s 140 libavcodec/pnmdec.c if(s->bytestream >= s->bytestream_end) s 144 libavcodec/pnmdec.c v = (*s->bytestream++)&1; s 149 libavcodec/pnmdec.c c = (*s->bytestream++) - '0'; s 151 libavcodec/pnmdec.c if (v > s->maxval) { s 152 libavcodec/pnmdec.c av_log(avctx, AV_LOG_ERROR, "value %d larger than maxval %d\n", v, s->maxval); s 157 libavcodec/pnmdec.c ((uint16_t*)ptr)[j] = (((1<<sample_len)-1)*v + (s->maxval>>1))/s->maxval; s 159 libavcodec/pnmdec.c put_bits(&pb, sample_len, (((1<<sample_len)-1)*v + (s->maxval>>1))/s->maxval); s 168 libavcodec/pnmdec.c samplecpy(ptr, s->bytestream, n, s->maxval); s 170 libavcodec/pnmdec.c unsigned int j, f = (255 * 128 + s->maxval / 2) / s->maxval; s 172 libavcodec/pnmdec.c ptr[j] = (s->bytestream[j] * f + 64) >> 7; s 174 libavcodec/pnmdec.c unsigned int j, v, f = (65535 * 32768 + s->maxval / 2) / s->maxval; s 176 libavcodec/pnmdec.c v = AV_RB16(s->bytestream + 2*j); s 180 libavcodec/pnmdec.c s->bytestream += n; s 194 libavcodec/pnmdec.c if (s->maxval >= 256) s 196 libavcodec/pnmdec.c if (n * avctx->height * 3 / 2 > s->bytestream_end - s->bytestream) s 199 libavcodec/pnmdec.c samplecpy(ptr, s->bytestream, n, s->maxval); s 200 libavcodec/pnmdec.c s->bytestream += n; s 208 libavcodec/pnmdec.c samplecpy(ptr1, s->bytestream, n, s->maxval); s 209 libavcodec/pnmdec.c s->bytestream += n; s 210 libavcodec/pnmdec.c samplecpy(ptr2, s->bytestream, n, s->maxval); s 211 libavcodec/pnmdec.c s->bytestream += n; s 220 libavcodec/pnmdec.c const int f = (65535 * 32768 + s->maxval / 2) / s->maxval; s 226 libavcodec/pnmdec.c if (n * avctx->height * 3 / 2 > s->bytestream_end - s->bytestream) s 230 libavcodec/pnmdec.c v = AV_RB16(s->bytestream + 2*j); s 233 libavcodec/pnmdec.c s->bytestream += n; s 242 libavcodec/pnmdec.c v = AV_RB16(s->bytestream + 2*j); s 245 libavcodec/pnmdec.c s->bytestream += n; s 248 libavcodec/pnmdec.c v = AV_RB16(s->bytestream + 2*j); s 251 libavcodec/pnmdec.c s->bytestream += n; s 259 libavcodec/pnmdec.c if (avctx->width * avctx->height * 12 > s->bytestream_end - s->bytestream) s 261 libavcodec/pnmdec.c scale = 1.f / s->scale; s 262 libavcodec/pnmdec.c if (s->endian) { s 270 libavcodec/pnmdec.c r[j] = av_int2float(AV_RL32(s->bytestream+0)) * scale; s 271 libavcodec/pnmdec.c g[j] = av_int2float(AV_RL32(s->bytestream+4)) * scale; s 272 libavcodec/pnmdec.c b[j] = av_int2float(AV_RL32(s->bytestream+8)) * scale; s 273 libavcodec/pnmdec.c s->bytestream += 12; s 288 libavcodec/pnmdec.c r[j] = av_int2float(AV_RB32(s->bytestream+0)) * scale; s 289 libavcodec/pnmdec.c g[j] = av_int2float(AV_RB32(s->bytestream+4)) * scale; s 290 libavcodec/pnmdec.c b[j] = av_int2float(AV_RB32(s->bytestream+8)) * scale; s 291 libavcodec/pnmdec.c s->bytestream += 12; s 303 libavcodec/pnmdec.c return s->bytestream - s->bytestream_start; s 41 libavcodec/ppc/fft_init.c void ff_fft_calc_altivec(FFTContext *s, FFTComplex *z); s 42 libavcodec/ppc/fft_init.c void ff_fft_calc_interleave_altivec(FFTContext *s, FFTComplex *z); s 46 libavcodec/ppc/fft_init.c static void imdct_half_altivec(FFTContext *s, FFTSample *output, const FFTSample *input) s 49 libavcodec/ppc/fft_init.c int n = 1 << s->mdct_bits; s 53 libavcodec/ppc/fft_init.c const uint16_t *revtabj = s->revtab; s 54 libavcodec/ppc/fft_init.c const uint16_t *revtabk = s->revtab+n4; s 55 libavcodec/ppc/fft_init.c const vec_f *tcos = (const vec_f*)(s->tcos+n8); s 56 libavcodec/ppc/fft_init.c const vec_f *tsin = (const vec_f*)(s->tsin+n8); s 69 libavcodec/ppc/fft_init.c cos = vec_perm(cos0, cos1, vcprm(o0,o1,s##o2,s##o3)); /* { cos[k], cos[k+1], cos[-k-2], cos[-k-1] } */\ s 70 libavcodec/ppc/fft_init.c sin = vec_perm(sin0, sin1, vcprm(o0,o1,s##o2,s##o3));\ s 101 libavcodec/ppc/fft_init.c ff_fft_calc_vsx(s, (FFTComplex*)output); s 103 libavcodec/ppc/fft_init.c ff_fft_calc_altivec(s, (FFTComplex*)output); s 130 libavcodec/ppc/fft_init.c static void imdct_calc_altivec(FFTContext *s, FFTSample *output, const FFTSample *input) s 133 libavcodec/ppc/fft_init.c int n = 1 << s->mdct_bits; s 140 libavcodec/ppc/fft_init.c imdct_half_altivec(s, output + n4, input); s 151 libavcodec/ppc/fft_init.c av_cold void ff_fft_init_ppc(FFTContext *s) s 158 libavcodec/ppc/fft_init.c s->fft_calc = ff_fft_calc_interleave_vsx; s 160 libavcodec/ppc/fft_init.c s->fft_calc = ff_fft_calc_interleave_altivec; s 162 libavcodec/ppc/fft_init.c if (s->mdct_bits >= 5) { s 163 libavcodec/ppc/fft_init.c s->imdct_calc = imdct_calc_altivec; s 164 libavcodec/ppc/fft_init.c s->imdct_half = imdct_half_altivec; s 218 libavcodec/ppc/fft_vsx.c void ff_fft_calc_interleave_vsx(FFTContext *s, FFTComplex *z) s 220 libavcodec/ppc/fft_vsx.c fft_dispatch_vsx_interleave[s->nbits-2](z); s 222 libavcodec/ppc/fft_vsx.c void ff_fft_calc_vsx(FFTContext *s, FFTComplex *z) s 224 libavcodec/ppc/fft_vsx.c fft_dispatch_vsx[s->nbits-2](z); s 36 libavcodec/ppc/fft_vsx.h void ff_fft_calc_interleave_vsx(FFTContext *s, FFTComplex *z); s 37 libavcodec/ppc/fft_vsx.h void ff_fft_calc_vsx(FFTContext *s, FFTComplex *z); s 36 libavcodec/ppc/fmtconvert_altivec.c float s[4]; s 42 libavcodec/ppc/fmtconvert_altivec.c mul_u.s[0] = mul; s 32 libavcodec/ppc/h264chroma_init.c #define PUT_OP_U8_ALTIVEC(d, s, dst) d = s s 33 libavcodec/ppc/h264chroma_init.c #define AVG_OP_U8_ALTIVEC(d, s, dst) d = vec_avg(dst, s) s 75 libavcodec/ppc/h264chroma_template.c #define GET_VSRC1(vs0, off, b, perm0, s){ \ s 77 libavcodec/ppc/h264chroma_template.c vsrcCuc = vec_ld(off, s); \ s 79 libavcodec/ppc/h264chroma_template.c vsrcDuc = vec_ld(off + b, s); \ s 85 libavcodec/ppc/h264chroma_template.c #define GET_VSRC(vs0, vs1, off, b, perm0, perm1, s){ \ s 87 libavcodec/ppc/h264chroma_template.c vsrcCuc = vec_ld(off, s); \ s 89 libavcodec/ppc/h264chroma_template.c vsrcDuc = vec_ld(off + b, s); \ s 102 libavcodec/ppc/h264chroma_template.c #define GET_VSRC1(vs0, off, b, perm0, s){ \ s 103 libavcodec/ppc/h264chroma_template.c vs0 = vec_vsx_ld(off, s); \ s 105 libavcodec/ppc/h264chroma_template.c #define GET_VSRC(vs0, vs1, off, b, perm0, perm1, s){ \ s 106 libavcodec/ppc/h264chroma_template.c vs0 = vec_vsx_ld(off, s); \ s 107 libavcodec/ppc/h264chroma_template.c vs1 = vec_vsx_ld(off + 1, s); \ s 35 libavcodec/ppc/h264qpel.c #define PUT_OP_U8_ALTIVEC(d, s, dst) d = s s 36 libavcodec/ppc/h264qpel.c #define AVG_OP_U8_ALTIVEC(d, s, dst) d = vec_avg(dst, s) s 197 libavcodec/ppc/h264qpel.c #define put_unligned_store(s, dest) { \ s 203 libavcodec/ppc/h264qpel.c tmp2 = vec_perm(s, edges, align); \ s 204 libavcodec/ppc/h264qpel.c tmp1 = vec_perm(edges, s, align); \ s 209 libavcodec/ppc/h264qpel.c #define put_unligned_store(s, dest) vec_vsx_st(s, 0, dest); s 233 libavcodec/ppc/h264qpel.c #define avg_unligned_store(s, dest){ \ s 237 libavcodec/ppc/h264qpel.c a = vec_avg(vec_perm(tmp1, tmp2, mask), s); \ s 246 libavcodec/ppc/h264qpel.c #define avg_unligned_store(s, dest){ \ s 247 libavcodec/ppc/h264qpel.c a = vec_avg(vec_vsx_ld(0, dst), s); \ s 33 libavcodec/ppc/h264qpel_template.c #define load_alignment(s, ali, pm2, pm1, pp0, pp1, pp2, pp3){\ s 34 libavcodec/ppc/h264qpel_template.c vec_u8 srcR1 = vec_ld(-2, s);\ s 35 libavcodec/ppc/h264qpel_template.c vec_u8 srcR2 = vec_ld(14, s);\ s 54 libavcodec/ppc/h264qpel_template.c vec_u8 srcR3 = vec_ld(30, s);\ s 63 libavcodec/ppc/h264qpel_template.c vec_u8 srcR3 = vec_ld(30, s);\ s 72 libavcodec/ppc/h264qpel_template.c vec_u8 srcR3 = vec_ld(30, s);\ s 81 libavcodec/ppc/h264qpel_template.c vec_u8 srcR3 = vec_ld(30, s);\ s 92 libavcodec/ppc/h264qpel_template.c #define load_alignment(s, ali, pm2, pm1, pp0, pp1, pp2, pp3){\ s 93 libavcodec/ppc/h264qpel_template.c srcM2 = vec_vsx_ld(-2, s);\ s 94 libavcodec/ppc/h264qpel_template.c srcM1 = vec_vsx_ld(-1, s);\ s 95 libavcodec/ppc/h264qpel_template.c srcP0 = vec_vsx_ld(0, s);\ s 96 libavcodec/ppc/h264qpel_template.c srcP1 = vec_vsx_ld(1, s);\ s 97 libavcodec/ppc/h264qpel_template.c srcP2 = vec_vsx_ld(2, s);\ s 98 libavcodec/ppc/h264qpel_template.c srcP3 = vec_vsx_ld(3, s);\ s 58 libavcodec/ppc/me_cmp.c int __attribute__((aligned(16))) s = 0; s 89 libavcodec/ppc/me_cmp.c vec_ste(sumdiffs, 0, &s); s 91 libavcodec/ppc/me_cmp.c return s; s 98 libavcodec/ppc/me_cmp.c int __attribute__((aligned(16))) s = 0; s 140 libavcodec/ppc/me_cmp.c vec_ste(sumdiffs, 0, &s); s 141 libavcodec/ppc/me_cmp.c return s; s 148 libavcodec/ppc/me_cmp.c int __attribute__((aligned(16))) s = 0; s 228 libavcodec/ppc/me_cmp.c vec_ste(sumdiffs, 0, &s); s 230 libavcodec/ppc/me_cmp.c return s; s 237 libavcodec/ppc/me_cmp.c int __attribute__((aligned(16))) s; s 263 libavcodec/ppc/me_cmp.c vec_ste(sumdiffs, 0, &s); s 265 libavcodec/ppc/me_cmp.c return s; s 272 libavcodec/ppc/me_cmp.c int __attribute__((aligned(16))) s; s 305 libavcodec/ppc/me_cmp.c vec_ste(sumdiffs, 0, &s); s 307 libavcodec/ppc/me_cmp.c return s; s 316 libavcodec/ppc/me_cmp.c int __attribute__((aligned(16))) s; s 350 libavcodec/ppc/me_cmp.c vec_ste(sumsqr, 0, &s); s 352 libavcodec/ppc/me_cmp.c return s; s 361 libavcodec/ppc/me_cmp.c int __attribute__((aligned(16))) s; s 391 libavcodec/ppc/me_cmp.c vec_ste(sumsqr, 0, &s); s 392 libavcodec/ppc/me_cmp.c return s; s 395 libavcodec/ppc/me_cmp.c static int hadamard8_diff8x8_altivec(MpegEncContext *s, uint8_t *dst, s 521 libavcodec/ppc/me_cmp.c static int hadamard8_diff16x8_altivec(MpegEncContext *s, uint8_t *dst, s 712 libavcodec/ppc/me_cmp.c static int hadamard8_diff16_altivec(MpegEncContext *s, uint8_t *dst, s 715 libavcodec/ppc/me_cmp.c int score = hadamard8_diff16x8_altivec(s, dst, src, stride, 8); s 720 libavcodec/ppc/me_cmp.c score += hadamard8_diff16x8_altivec(s, dst, src, stride, 8); s 133 libavcodec/ppc/mpegaudiodsp_altivec.c av_cold void ff_mpadsp_init_ppc(MPADSPContext *s) s 139 libavcodec/ppc/mpegaudiodsp_altivec.c s->apply_window_float = apply_window_mp3; s 40 libavcodec/ppc/mpegvideo_altivec.c static void dct_unquantize_h263_altivec(MpegEncContext *s, s 49 libavcodec/ppc/mpegvideo_altivec.c if (s->mb_intra) { s 50 libavcodec/ppc/mpegvideo_altivec.c if (!s->h263_aic) { s 52 libavcodec/ppc/mpegvideo_altivec.c block[0] = block[0] * s->y_dc_scale; s 54 libavcodec/ppc/mpegvideo_altivec.c block[0] = block[0] * s->c_dc_scale; s 61 libavcodec/ppc/mpegvideo_altivec.c av_assert2(s->block_last_index[n]>=0); s 62 libavcodec/ppc/mpegvideo_altivec.c nCoeffs= s->intra_scantable.raster_end[ s->block_last_index[n] ]; s 118 libavcodec/ppc/mpegvideo_altivec.c av_cold void ff_mpv_common_init_ppc(MpegEncContext *s) s 124 libavcodec/ppc/mpegvideo_altivec.c if ((s->avctx->dct_algo == FF_DCT_AUTO) || s 125 libavcodec/ppc/mpegvideo_altivec.c (s->avctx->dct_algo == FF_DCT_ALTIVEC)) { s 126 libavcodec/ppc/mpegvideo_altivec.c s->dct_unquantize_h263_intra = dct_unquantize_h263_altivec; s 127 libavcodec/ppc/mpegvideo_altivec.c s->dct_unquantize_h263_inter = dct_unquantize_h263_altivec; s 35 libavcodec/ppc/mpegvideoencdsp.c int i, s = 0; s 56 libavcodec/ppc/mpegvideoencdsp.c vec_ste(sum, 0, &s); s 57 libavcodec/ppc/mpegvideoencdsp.c return s; s 62 libavcodec/ppc/mpegvideoencdsp.c int i, s = 0; s 83 libavcodec/ppc/mpegvideoencdsp.c vec_ste(sum, 0, &s); s 85 libavcodec/ppc/mpegvideoencdsp.c return s; s 92 libavcodec/ppc/mpegvideoencdsp.c int i, s; s 114 libavcodec/ppc/mpegvideoencdsp.c vec_ste(sumdiffs, 0, &s); s 115 libavcodec/ppc/mpegvideoencdsp.c return s; s 120 libavcodec/ppc/mpegvideoencdsp.c int i, s; s 142 libavcodec/ppc/mpegvideoencdsp.c vec_ste(sumdiffs, 0, &s); s 144 libavcodec/ppc/mpegvideoencdsp.c return s; s 337 libavcodec/ppc/vc1dsp_altivec.c #define PUT_OP_U8_ALTIVEC(d, s, dst) d = s s 338 libavcodec/ppc/vc1dsp_altivec.c #define AVG_OP_U8_ALTIVEC(d, s, dst) d = vec_avg(dst, s) s 188 libavcodec/ppc/vp8dsp_altivec.c #define LOAD_HL(off, s, perm) load_with_perm_vec(off, s, perm) s 190 libavcodec/ppc/vp8dsp_altivec.c #define LOAD_HL(off, s, perm) vec_mergeh(vec_vsx_ld(off,s), vec_vsx_ld(off+8,s)) s 149 libavcodec/prosumer.c ProSumerContext *s = avctx->priv_data; s 156 libavcodec/prosumer.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 157 libavcodec/prosumer.c bytestream2_init_writer(&s->pb, s->decbuffer, s->size); s 158 libavcodec/prosumer.c ret = decompress(&s->gb, AV_RL32(avpkt->data + 28) >> 1, &s->pb, s->lut); s 161 libavcodec/prosumer.c if (bytestream2_get_bytes_left_p(&s->pb) > s->size * (int64_t)avctx->discard_damaged_percentage / 100) s 164 libavcodec/prosumer.c av_assert0(s->size >= bytestream2_get_bytes_left_p(&s->pb)); s 165 libavcodec/prosumer.c memset(s->decbuffer + bytestream2_tell_p(&s->pb), 0, bytestream2_get_bytes_left_p(&s->pb)); s 167 libavcodec/prosumer.c vertical_predict((uint32_t *)s->decbuffer, 0, (uint32_t *)s->initial_line, s->stride, 1); s 168 libavcodec/prosumer.c vertical_predict((uint32_t *)s->decbuffer, s->stride, (uint32_t *)s->decbuffer, s->stride, avctx->height - 1); s 178 libavcodec/prosumer.c const uint8_t *src = s->decbuffer + (avctx->height - 1 - i) * s->stride; s 340 libavcodec/prosumer.c ProSumerContext *s = avctx->priv_data; s 342 libavcodec/prosumer.c s->stride = 3LL * FFALIGN(avctx->width, 8) >> 1; s 343 libavcodec/prosumer.c s->size = avctx->height * s->stride; s 347 libavcodec/prosumer.c s->initial_line = av_malloc(s->stride); s 348 libavcodec/prosumer.c s->decbuffer = av_malloc(s->size); s 349 libavcodec/prosumer.c if (!s->initial_line || !s->decbuffer) s 351 libavcodec/prosumer.c memset(s->initial_line, 0x80u, s->stride); s 353 libavcodec/prosumer.c fill_lut(s->lut); s 360 libavcodec/prosumer.c ProSumerContext *s = avctx->priv_data; s 362 libavcodec/prosumer.c av_freep(&s->initial_line); s 363 libavcodec/prosumer.c av_freep(&s->decbuffer); s 67 libavcodec/psd.c static int decode_header(PSDContext * s) s 73 libavcodec/psd.c if (bytestream2_get_bytes_left(&s->gb) < 30) {/* File header section + color map data section length */ s 74 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Header too short to parse.\n"); s 78 libavcodec/psd.c signature = bytestream2_get_le32(&s->gb); s 80 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Wrong signature %d.\n", signature); s 84 libavcodec/psd.c version = bytestream2_get_be16(&s->gb); s 86 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Wrong version %d.\n", version); s 90 libavcodec/psd.c bytestream2_skip(&s->gb, 6);/* reserved */ s 92 libavcodec/psd.c s->channel_count = bytestream2_get_be16(&s->gb); s 93 libavcodec/psd.c if ((s->channel_count < 1) || (s->channel_count > 56)) { s 94 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Invalid channel count %d.\n", s->channel_count); s 98 libavcodec/psd.c s->height = bytestream2_get_be32(&s->gb); s 100 libavcodec/psd.c if ((s->height > 30000) && (s->avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL)) { s 101 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, s 108 libavcodec/psd.c s->width = bytestream2_get_be32(&s->gb); s 109 libavcodec/psd.c if ((s->width > 30000) && (s->avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL)) { s 110 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, s 117 libavcodec/psd.c if ((ret = ff_set_dimensions(s->avctx, s->width, s->height)) < 0) s 120 libavcodec/psd.c s->channel_depth = bytestream2_get_be16(&s->gb); s 122 libavcodec/psd.c color_mode = bytestream2_get_be16(&s->gb); s 125 libavcodec/psd.c s->color_mode = PSD_BITMAP; s 128 libavcodec/psd.c s->color_mode = PSD_GRAYSCALE; s 131 libavcodec/psd.c s->color_mode = PSD_INDEXED; s 134 libavcodec/psd.c s->color_mode = PSD_RGB; s 137 libavcodec/psd.c s->color_mode = PSD_CMYK; s 140 libavcodec/psd.c s->color_mode = PSD_MULTICHANNEL; s 143 libavcodec/psd.c s->color_mode = PSD_DUOTONE; s 146 libavcodec/psd.c s->color_mode = PSD_LAB; s 149 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Unknown color mode %d.\n", color_mode); s 154 libavcodec/psd.c len_section = bytestream2_get_be32(&s->gb); s 156 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Negative size for color map data section.\n"); s 160 libavcodec/psd.c if (bytestream2_get_bytes_left(&s->gb) < (len_section + 4)) { /* section and len next section */ s 161 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Incomplete file.\n"); s 166 libavcodec/psd.c memset(s->palette, 0xff, AVPALETTE_SIZE); s 169 libavcodec/psd.c s->palette[i * 4 + (HAVE_BIGENDIAN ? j : 2 - j)] = bytestream2_get_byteu(&s->gb); s 172 libavcodec/psd.c bytestream2_skip(&s->gb, len_section); s 175 libavcodec/psd.c len_section = bytestream2_get_be32(&s->gb); s 177 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Negative size for image ressources section.\n"); s 181 libavcodec/psd.c if (bytestream2_get_bytes_left(&s->gb) < (len_section + 4)) { /* section and len next section */ s 182 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Incomplete file.\n"); s 185 libavcodec/psd.c bytestream2_skip(&s->gb, len_section); s 188 libavcodec/psd.c len_section = bytestream2_get_be32(&s->gb); s 190 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Negative size for layers and masks data section.\n"); s 194 libavcodec/psd.c if (bytestream2_get_bytes_left(&s->gb) < len_section) { s 195 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Incomplete file.\n"); s 198 libavcodec/psd.c bytestream2_skip(&s->gb, len_section); s 201 libavcodec/psd.c if (bytestream2_get_bytes_left(&s->gb) < 2) { s 202 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "File without image data section.\n"); s 206 libavcodec/psd.c s->compression = bytestream2_get_be16(&s->gb); s 207 libavcodec/psd.c switch (s->compression) { s 212 libavcodec/psd.c avpriv_request_sample(s->avctx, "ZIP without predictor compression"); s 215 libavcodec/psd.c avpriv_request_sample(s->avctx, "ZIP with predictor compression"); s 218 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Unknown compression %d.\n", s->compression); s 225 libavcodec/psd.c static int decode_rle(PSDContext * s){ s 234 libavcodec/psd.c scanline_count = s->height * s->channel_count; s 237 libavcodec/psd.c if (bytestream2_get_bytes_left(&s->gb) < scanline_count * 2) { s 238 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Not enough data for rle scanline table.\n"); s 241 libavcodec/psd.c bytestream2_skip(&s->gb, scanline_count * 2);/* size of each scanline */ s 247 libavcodec/psd.c while (count < s->line_size) { s 248 libavcodec/psd.c rle_char = bytestream2_get_byte(&s->gb); s 253 libavcodec/psd.c if (bytestream2_get_bytes_left(&s->gb) < 1) { s 254 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Not enough data for rle scanline.\n"); s 258 libavcodec/psd.c if (target_index + repeat_count >= s->uncompressed_size) { s 259 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Invalid rle char.\n"); s 263 libavcodec/psd.c v = bytestream2_get_byte(&s->gb); s 265 libavcodec/psd.c s->tmp[target_index++] = v; s 269 libavcodec/psd.c if (bytestream2_get_bytes_left(&s->gb) < rle_char) { s 270 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Not enough data for rle scanline.\n"); s 274 libavcodec/psd.c if (target_index + rle_char >= s->uncompressed_size) { s 275 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Invalid rle char.\n"); s 280 libavcodec/psd.c v = bytestream2_get_byte(&s->gb); s 281 libavcodec/psd.c s->tmp[target_index++] = v; s 303 libavcodec/psd.c PSDContext *s = avctx->priv_data; s 304 libavcodec/psd.c s->avctx = avctx; s 305 libavcodec/psd.c s->channel_count = 0; s 306 libavcodec/psd.c s->channel_depth = 0; s 307 libavcodec/psd.c s->tmp = NULL; s 308 libavcodec/psd.c s->line_size = 0; s 310 libavcodec/psd.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 312 libavcodec/psd.c if ((ret = decode_header(s)) < 0) s 315 libavcodec/psd.c s->pixel_size = s->channel_depth >> 3;/* in byte */ s 316 libavcodec/psd.c s->line_size = s->width * s->pixel_size; s 318 libavcodec/psd.c switch (s->color_mode) { s 320 libavcodec/psd.c if (s->channel_depth != 1 || s->channel_count != 1) { s 321 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, s 323 libavcodec/psd.c s->channel_depth, s->channel_count); s 326 libavcodec/psd.c s->line_size = s->width + 7 >> 3; s 330 libavcodec/psd.c if (s->channel_depth != 8 || s->channel_count != 1) { s 331 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, s 333 libavcodec/psd.c s->channel_depth, s->channel_count); s 339 libavcodec/psd.c if (s->channel_count == 4) { s 340 libavcodec/psd.c if (s->channel_depth == 8) { s 342 libavcodec/psd.c } else if (s->channel_depth == 16) { s 345 libavcodec/psd.c avpriv_report_missing_feature(avctx, "channel depth %d for cmyk", s->channel_depth); s 348 libavcodec/psd.c } else if (s->channel_count == 5) { s 349 libavcodec/psd.c if (s->channel_depth == 8) { s 351 libavcodec/psd.c } else if (s->channel_depth == 16) { s 354 libavcodec/psd.c avpriv_report_missing_feature(avctx, "channel depth %d for cmyk", s->channel_depth); s 358 libavcodec/psd.c avpriv_report_missing_feature(avctx, "channel count %d for cmyk", s->channel_count); s 363 libavcodec/psd.c if (s->channel_count == 3) { s 364 libavcodec/psd.c if (s->channel_depth == 8) { s 366 libavcodec/psd.c } else if (s->channel_depth == 16) { s 369 libavcodec/psd.c avpriv_report_missing_feature(avctx, "channel depth %d for rgb", s->channel_depth); s 372 libavcodec/psd.c } else if (s->channel_count == 4) { s 373 libavcodec/psd.c if (s->channel_depth == 8) { s 375 libavcodec/psd.c } else if (s->channel_depth == 16) { s 378 libavcodec/psd.c avpriv_report_missing_feature(avctx, "channel depth %d for rgb", s->channel_depth); s 382 libavcodec/psd.c avpriv_report_missing_feature(avctx, "channel count %d for rgb", s->channel_count); s 389 libavcodec/psd.c if (s->channel_count == 1) { s 390 libavcodec/psd.c if (s->channel_depth == 8) { s 392 libavcodec/psd.c } else if (s->channel_depth == 16) { s 394 libavcodec/psd.c } else if (s->channel_depth == 32) { s 397 libavcodec/psd.c avpriv_report_missing_feature(avctx, "channel depth %d for grayscale", s->channel_depth); s 400 libavcodec/psd.c } else if (s->channel_count == 2) { s 401 libavcodec/psd.c if (s->channel_depth == 8) { s 403 libavcodec/psd.c } else if (s->channel_depth == 16) { s 406 libavcodec/psd.c avpriv_report_missing_feature(avctx, "channel depth %d for grayscale", s->channel_depth); s 410 libavcodec/psd.c avpriv_report_missing_feature(avctx, "channel count %d for grayscale", s->channel_count); s 415 libavcodec/psd.c avpriv_report_missing_feature(avctx, "color mode %d", s->color_mode); s 419 libavcodec/psd.c s->uncompressed_size = s->line_size * s->height * s->channel_count; s 425 libavcodec/psd.c if (s->compression == PSD_RLE) { s 426 libavcodec/psd.c s->tmp = av_malloc(s->uncompressed_size); s 427 libavcodec/psd.c if (!s->tmp) s 430 libavcodec/psd.c ret = decode_rle(s); s 433 libavcodec/psd.c av_freep(&s->tmp); s 437 libavcodec/psd.c ptr_data = s->tmp; s 439 libavcodec/psd.c if (bytestream2_get_bytes_left(&s->gb) < s->uncompressed_size) { s 440 libavcodec/psd.c av_log(s->avctx, AV_LOG_ERROR, "Not enough data for raw image data section.\n"); s 443 libavcodec/psd.c ptr_data = s->gb.buffer; s 449 libavcodec/psd.c for (c = 0; c < s->channel_count; c++) { s 450 libavcodec/psd.c for (y = 0; y < s->height; y++) { s 451 libavcodec/psd.c for (x = 0; x < s->width; x++) { s 452 libavcodec/psd.c index_out = y * picture->linesize[0] + x * s->channel_count * s->pixel_size + c * s->pixel_size; s 453 libavcodec/psd.c for (p = 0; p < s->pixel_size; p++) { s 460 libavcodec/psd.c } else if (s->color_mode == PSD_CMYK) { s 463 libavcodec/psd.c src[1] = src[0] + s->line_size * s->height; s 464 libavcodec/psd.c src[2] = src[1] + s->line_size * s->height; s 465 libavcodec/psd.c src[3] = src[2] + s->line_size * s->height; s 466 libavcodec/psd.c src[4] = src[3] + s->line_size * s->height; s 467 libavcodec/psd.c if (s->channel_depth == 8) { s 468 libavcodec/psd.c for (y = 0; y < s->height; y++) { s 469 libavcodec/psd.c for (x = 0; x < s->width; x++) { s 481 libavcodec/psd.c src[0] += s->line_size; s 482 libavcodec/psd.c src[1] += s->line_size; s 483 libavcodec/psd.c src[2] += s->line_size; s 484 libavcodec/psd.c src[3] += s->line_size; s 487 libavcodec/psd.c for (y = 0; y < s->height; y++) { s 488 libavcodec/psd.c memcpy(dst[3], src[4], s->line_size); s 489 libavcodec/psd.c src[4] += s->line_size; s 494 libavcodec/psd.c for (y = 0; y < s->height; y++) { s 495 libavcodec/psd.c for (x = 0; x < s->width; x++) { s 507 libavcodec/psd.c src[0] += s->line_size; s 508 libavcodec/psd.c src[1] += s->line_size; s 509 libavcodec/psd.c src[2] += s->line_size; s 510 libavcodec/psd.c src[3] += s->line_size; s 513 libavcodec/psd.c for (y = 0; y < s->height; y++) { s 514 libavcodec/psd.c memcpy(dst[3], src[4], s->line_size); s 515 libavcodec/psd.c src[4] += s->line_size; s 521 libavcodec/psd.c if (s->channel_count == 1)/* gray 8 or gray 16be */ s 524 libavcodec/psd.c for (c = 0; c < s->channel_count; c++) { s 527 libavcodec/psd.c for (y = 0; y < s->height; y++) { s 528 libavcodec/psd.c memcpy(ptr, ptr_data, s->line_size); s 530 libavcodec/psd.c ptr_data += s->line_size; s 535 libavcodec/psd.c if (s->color_mode == PSD_INDEXED) { s 537 libavcodec/psd.c memcpy(picture->data[1], s->palette, AVPALETTE_SIZE); s 540 libavcodec/psd.c av_freep(&s->tmp); s 41 libavcodec/psymodel.h #define AAC_CUTOFF(s) ( \ s 42 libavcodec/psymodel.h (s->flags & AV_CODEC_FLAG_QSCALE) \ s 43 libavcodec/psymodel.h ? s->sample_rate / 2 \ s 44 libavcodec/psymodel.h : AAC_CUTOFF_FROM_BITRATE(s->bit_rate, s->channels, s->sample_rate) \ s 48 libavcodec/put_bits.h static inline void init_put_bits(PutBitContext *s, uint8_t *buffer, s 56 libavcodec/put_bits.h s->size_in_bits = 8 * buffer_size; s 57 libavcodec/put_bits.h s->buf = buffer; s 58 libavcodec/put_bits.h s->buf_end = s->buf + buffer_size; s 59 libavcodec/put_bits.h s->buf_ptr = s->buf; s 60 libavcodec/put_bits.h s->bit_left = 32; s 61 libavcodec/put_bits.h s->bit_buf = 0; s 67 libavcodec/put_bits.h static inline int put_bits_count(PutBitContext *s) s 69 libavcodec/put_bits.h return (s->buf_ptr - s->buf) * 8 + 32 - s->bit_left; s 79 libavcodec/put_bits.h static inline void rebase_put_bits(PutBitContext *s, uint8_t *buffer, s 82 libavcodec/put_bits.h av_assert0(8*buffer_size >= put_bits_count(s)); s 84 libavcodec/put_bits.h s->buf_end = buffer + buffer_size; s 85 libavcodec/put_bits.h s->buf_ptr = buffer + (s->buf_ptr - s->buf); s 86 libavcodec/put_bits.h s->buf = buffer; s 87 libavcodec/put_bits.h s->size_in_bits = 8 * buffer_size; s 93 libavcodec/put_bits.h static inline int put_bits_left(PutBitContext* s) s 95 libavcodec/put_bits.h return (s->buf_end - s->buf_ptr) * 8 - 32 + s->bit_left; s 101 libavcodec/put_bits.h static inline void flush_put_bits(PutBitContext *s) s 104 libavcodec/put_bits.h if (s->bit_left < 32) s 105 libavcodec/put_bits.h s->bit_buf <<= s->bit_left; s 107 libavcodec/put_bits.h while (s->bit_left < 32) { s 108 libavcodec/put_bits.h av_assert0(s->buf_ptr < s->buf_end); s 110 libavcodec/put_bits.h *s->buf_ptr++ = s->bit_buf; s 111 libavcodec/put_bits.h s->bit_buf >>= 8; s 113 libavcodec/put_bits.h *s->buf_ptr++ = s->bit_buf >> 24; s 114 libavcodec/put_bits.h s->bit_buf <<= 8; s 116 libavcodec/put_bits.h s->bit_left += 8; s 118 libavcodec/put_bits.h s->bit_left = 32; s 119 libavcodec/put_bits.h s->bit_buf = 0; s 122 libavcodec/put_bits.h static inline void flush_put_bits_le(PutBitContext *s) s 124 libavcodec/put_bits.h while (s->bit_left < 32) { s 125 libavcodec/put_bits.h av_assert0(s->buf_ptr < s->buf_end); s 126 libavcodec/put_bits.h *s->buf_ptr++ = s->bit_buf; s 127 libavcodec/put_bits.h s->bit_buf >>= 8; s 128 libavcodec/put_bits.h s->bit_left += 8; s 130 libavcodec/put_bits.h s->bit_left = 32; s 131 libavcodec/put_bits.h s->bit_buf = 0; s 142 libavcodec/put_bits.h void avpriv_align_put_bits(PutBitContext *s); s 164 libavcodec/put_bits.h static inline void put_bits(PutBitContext *s, int n, unsigned int value) s 171 libavcodec/put_bits.h bit_buf = s->bit_buf; s 172 libavcodec/put_bits.h bit_left = s->bit_left; s 178 libavcodec/put_bits.h if (3 < s->buf_end - s->buf_ptr) { s 179 libavcodec/put_bits.h AV_WL32(s->buf_ptr, bit_buf); s 180 libavcodec/put_bits.h s->buf_ptr += 4; s 196 libavcodec/put_bits.h if (3 < s->buf_end - s->buf_ptr) { s 197 libavcodec/put_bits.h AV_WB32(s->buf_ptr, bit_buf); s 198 libavcodec/put_bits.h s->buf_ptr += 4; s 208 libavcodec/put_bits.h s->bit_buf = bit_buf; s 209 libavcodec/put_bits.h s->bit_left = bit_left; s 212 libavcodec/put_bits.h static inline void put_bits_le(PutBitContext *s, int n, unsigned int value) s 219 libavcodec/put_bits.h bit_buf = s->bit_buf; s 220 libavcodec/put_bits.h bit_left = s->bit_left; s 224 libavcodec/put_bits.h if (3 < s->buf_end - s->buf_ptr) { s 225 libavcodec/put_bits.h AV_WL32(s->buf_ptr, bit_buf); s 226 libavcodec/put_bits.h s->buf_ptr += 4; s 236 libavcodec/put_bits.h s->bit_buf = bit_buf; s 237 libavcodec/put_bits.h s->bit_left = bit_left; s 250 libavcodec/put_bits.h static void av_unused put_bits32(PutBitContext *s, uint32_t value) s 255 libavcodec/put_bits.h bit_buf = s->bit_buf; s 256 libavcodec/put_bits.h bit_left = s->bit_left; s 260 libavcodec/put_bits.h if (3 < s->buf_end - s->buf_ptr) { s 261 libavcodec/put_bits.h AV_WL32(s->buf_ptr, bit_buf); s 262 libavcodec/put_bits.h s->buf_ptr += 4; s 271 libavcodec/put_bits.h if (3 < s->buf_end - s->buf_ptr) { s 272 libavcodec/put_bits.h AV_WB32(s->buf_ptr, bit_buf); s 273 libavcodec/put_bits.h s->buf_ptr += 4; s 281 libavcodec/put_bits.h s->bit_buf = bit_buf; s 282 libavcodec/put_bits.h s->bit_left = bit_left; s 288 libavcodec/put_bits.h static inline void put_bits64(PutBitContext *s, int n, uint64_t value) s 293 libavcodec/put_bits.h put_bits(s, n, value); s 295 libavcodec/put_bits.h put_bits32(s, value); s 300 libavcodec/put_bits.h put_bits32(s, lo); s 301 libavcodec/put_bits.h put_bits(s, n - 32, hi); s 303 libavcodec/put_bits.h put_bits(s, n - 32, hi); s 304 libavcodec/put_bits.h put_bits32(s, lo); s 310 libavcodec/put_bits.h put_bits32(s, lo); s 311 libavcodec/put_bits.h put_bits32(s, hi); s 313 libavcodec/put_bits.h put_bits32(s, hi); s 314 libavcodec/put_bits.h put_bits32(s, lo); s 324 libavcodec/put_bits.h static inline uint8_t *put_bits_ptr(PutBitContext *s) s 326 libavcodec/put_bits.h return s->buf_ptr; s 333 libavcodec/put_bits.h static inline void skip_put_bytes(PutBitContext *s, int n) s 335 libavcodec/put_bits.h av_assert2((put_bits_count(s) & 7) == 0); s 336 libavcodec/put_bits.h av_assert2(s->bit_left == 32); s 337 libavcodec/put_bits.h av_assert0(n <= s->buf_end - s->buf_ptr); s 338 libavcodec/put_bits.h s->buf_ptr += n; s 346 libavcodec/put_bits.h static inline void skip_put_bits(PutBitContext *s, int n) s 348 libavcodec/put_bits.h s->bit_left -= n; s 349 libavcodec/put_bits.h s->buf_ptr -= 4 * (s->bit_left >> 5); s 350 libavcodec/put_bits.h s->bit_left &= 31; s 358 libavcodec/put_bits.h static inline void set_put_bits_buffer_size(PutBitContext *s, int size) s 361 libavcodec/put_bits.h s->buf_end = s->buf + size; s 362 libavcodec/put_bits.h s->size_in_bits = 8*size; s 1620 libavcodec/qdm2.c QDM2Context *s = avctx->priv_data; s 1697 libavcodec/qdm2.c avctx->channels = s->nb_channels = s->channels = bytestream2_get_be32(&gb); s 1698 libavcodec/qdm2.c if (s->channels <= 0 || s->channels > MPA_MAX_CHANNELS) { s 1707 libavcodec/qdm2.c s->group_size = bytestream2_get_be32(&gb); s 1708 libavcodec/qdm2.c s->fft_size = bytestream2_get_be32(&gb); s 1709 libavcodec/qdm2.c s->checksum_size = bytestream2_get_be32(&gb); s 1710 libavcodec/qdm2.c if (s->checksum_size >= 1U << 28 || s->checksum_size <= 1) { s 1711 libavcodec/qdm2.c av_log(avctx, AV_LOG_ERROR, "data block size invalid (%u)\n", s->checksum_size); s 1715 libavcodec/qdm2.c s->fft_order = av_log2(s->fft_size) + 1; s 1718 libavcodec/qdm2.c if ((s->fft_order < 7) || (s->fft_order > 9)) { s 1719 libavcodec/qdm2.c avpriv_request_sample(avctx, "Unknown FFT order %d", s->fft_order); s 1724 libavcodec/qdm2.c s->group_order = av_log2(s->group_size) + 1; s 1725 libavcodec/qdm2.c s->frame_size = s->group_size / 16; // 16 iterations per super block s 1727 libavcodec/qdm2.c if (s->frame_size > QDM2_MAX_FRAME_SIZE) s 1730 libavcodec/qdm2.c s->sub_sampling = s->fft_order - 7; s 1731 libavcodec/qdm2.c s->frequency_range = 255 / (1 << (2 - s->sub_sampling)); s 1733 libavcodec/qdm2.c if (s->frame_size * 4 >> s->sub_sampling > MPA_FRAME_SIZE) { s 1738 libavcodec/qdm2.c switch ((s->sub_sampling * 2 + s->channels - 1)) { s 1745 libavcodec/qdm2.c default: tmp=s->sub_sampling; break; s 1752 libavcodec/qdm2.c s->cm_table_select = tmp_val; s 1755 libavcodec/qdm2.c s->coeff_per_sb_select = 0; s 1757 libavcodec/qdm2.c s->coeff_per_sb_select = 1; s 1759 libavcodec/qdm2.c s->coeff_per_sb_select = 2; s 1761 libavcodec/qdm2.c if (s->fft_size != (1 << (s->fft_order - 1))) { s 1762 libavcodec/qdm2.c av_log(avctx, AV_LOG_ERROR, "FFT size %d not power of 2.\n", s->fft_size); s 1766 libavcodec/qdm2.c ff_rdft_init(&s->rdft_ctx, s->fft_order, IDFT_C2R); s 1767 libavcodec/qdm2.c ff_mpadsp_init(&s->mpadsp); s 1776 libavcodec/qdm2.c QDM2Context *s = avctx->priv_data; s 1778 libavcodec/qdm2.c ff_rdft_end(&s->rdft_ctx); s 1851 libavcodec/qdm2.c QDM2Context *s = avctx->priv_data; s 1857 libavcodec/qdm2.c if(buf_size < s->checksum_size) s 1861 libavcodec/qdm2.c frame->nb_samples = 16 * s->frame_size; s 1867 libavcodec/qdm2.c if ((ret = qdm2_decode(s, buf, out)) < 0) s 1869 libavcodec/qdm2.c out += s->channels * s->frame_size; s 1874 libavcodec/qdm2.c return s->checksum_size; s 230 libavcodec/qdmc.c static void make_noises(QDMCContext *s) s 235 libavcodec/qdmc.c for (j = 0; j < noise_bands_size[s->band_index]; j++) { s 236 libavcodec/qdmc.c n0 = qdmc_nodes[j + 21 * s->band_index ]; s 237 libavcodec/qdmc.c n1 = qdmc_nodes[j + 21 * s->band_index + 1]; s 238 libavcodec/qdmc.c n2 = qdmc_nodes[j + 21 * s->band_index + 2]; s 239 libavcodec/qdmc.c nptr = s->noise_buffer + 256 * j; s 245 libavcodec/qdmc.c nptr = s->noise_buffer + (j << 8) + n1 - n0; s 255 libavcodec/qdmc.c QDMCContext *s = avctx->priv_data; s 295 libavcodec/qdmc.c avctx->channels = s->nb_channels = bytestream2_get_be32u(&b); s 296 libavcodec/qdmc.c if (s->nb_channels <= 0 || s->nb_channels > 2) { s 308 libavcodec/qdmc.c s->checksum_size = bytestream2_get_be32u(&b); s 309 libavcodec/qdmc.c if (s->checksum_size >= 1U << 28) { s 310 libavcodec/qdmc.c av_log(avctx, AV_LOG_ERROR, "data block size too large (%u)\n", s->checksum_size); s 316 libavcodec/qdmc.c s->frame_bits = 13; s 319 libavcodec/qdmc.c s->frame_bits = 12; s 322 libavcodec/qdmc.c s->frame_bits = 11; s 324 libavcodec/qdmc.c s->frame_size = 1 << s->frame_bits; s 325 libavcodec/qdmc.c s->subframe_size = s->frame_size >> 5; s 329 libavcodec/qdmc.c s->band_index = noise_bands_selector[FFMIN(6, llrint(floor(avctx->bit_rate * 3.0 / (double)x + 0.5)))]; s 341 libavcodec/qdmc.c ret = ff_fft_init(&s->fft_ctx, fft_order, 1); s 349 libavcodec/qdmc.c s->alt_sin[5-g][j] = sin_table[(((j+1) << (8 - g)) & 0x1FF)]; s 352 libavcodec/qdmc.c make_noises(s); s 359 libavcodec/qdmc.c QDMCContext *s = avctx->priv_data; s 361 libavcodec/qdmc.c ff_fft_end(&s->fft_ctx); s 390 libavcodec/qdmc.c static int skip_label(QDMCContext *s, GetBitContext *gb) s 400 libavcodec/qdmc.c for (i = 0; i < s->checksum_size - 6; i++) s 406 libavcodec/qdmc.c static int read_noise_data(QDMCContext *s, GetBitContext *gb) s 410 libavcodec/qdmc.c for (ch = 0; ch < s->nb_channels; ch++) { s 411 libavcodec/qdmc.c for (band = 0; band < noise_bands_size[s->band_index]; band++) { s 422 libavcodec/qdmc.c s->noise[ch][band][0] = lastval - 1; s 443 libavcodec/qdmc.c s->noise[ch][band][idx] = lastval + k * (newval - lastval) / len - 1; s 454 libavcodec/qdmc.c static void add_tone(QDMCContext *s, int group, int offset, int freq, int stereo_mode, int amplitude, int phase) s 456 libavcodec/qdmc.c const int index = s->nb_tones[group]; s 458 libavcodec/qdmc.c if (index >= FF_ARRAY_ELEMS(s->tones[group])) { s 459 libavcodec/qdmc.c av_log(s->avctx, AV_LOG_WARNING, "Too many tones already in buffer, ignoring tone!\n"); s 463 libavcodec/qdmc.c s->tones[group][index].offset = offset; s 464 libavcodec/qdmc.c s->tones[group][index].freq = freq; s 465 libavcodec/qdmc.c s->tones[group][index].mode = stereo_mode; s 466 libavcodec/qdmc.c s->tones[group][index].amplitude = amplitude; s 467 libavcodec/qdmc.c s->tones[group][index].phase = phase; s 468 libavcodec/qdmc.c s->nb_tones[group]++; s 471 libavcodec/qdmc.c static int read_wave_data(QDMCContext *s, GetBitContext *gb) s 477 libavcodec/qdmc.c group_size = 1 << (s->frame_bits - group - 1); s 496 libavcodec/qdmc.c if (pos2 >= s->frame_size) s 499 libavcodec/qdmc.c if (s->nb_channels > 1) s 522 libavcodec/qdmc.c if ((freq >> group_bits) + 1 < s->subframe_size) { s 523 libavcodec/qdmc.c add_tone(s, group, off, freq, stereo_mode & 1, amp, phase); s 525 libavcodec/qdmc.c add_tone(s, group, off, freq, ~stereo_mode & 1, amp2, phase2); s 533 libavcodec/qdmc.c static void lin_calc(QDMCContext *s, float amplitude, int node1, int node2, int index) s 539 libavcodec/qdmc.c subframe_size = s->subframe_size; s 544 libavcodec/qdmc.c noise_ptr = &s->noise_buffer[256 * index]; s 547 libavcodec/qdmc.c s->noise2_buffer[j ] += scale * noise_ptr[0]; s 548 libavcodec/qdmc.c s->noise2_buffer[j + 1] += scale * noise_ptr[1]; s 549 libavcodec/qdmc.c s->noise2_buffer[j + 2] += scale * noise_ptr[2]; s 550 libavcodec/qdmc.c s->noise2_buffer[j + 3] += scale * noise_ptr[3]; s 554 libavcodec/qdmc.c noise_ptr = s->noise_buffer + length + (index << 8); s 556 libavcodec/qdmc.c s->noise2_buffer[k] += scale * noise_ptr[0]; s 559 libavcodec/qdmc.c static void add_noise(QDMCContext *s, int ch, int current_subframe) s 563 libavcodec/qdmc.c float *im = &s->fft_buffer[0 + ch][s->fft_offset + s->subframe_size * current_subframe]; s 564 libavcodec/qdmc.c float *re = &s->fft_buffer[2 + ch][s->fft_offset + s->subframe_size * current_subframe]; s 566 libavcodec/qdmc.c memset(s->noise2_buffer, 0, 4 * s->subframe_size); s 568 libavcodec/qdmc.c for (i = 0; i < noise_bands_size[s->band_index]; i++) { s 569 libavcodec/qdmc.c if (qdmc_nodes[i + 21 * s->band_index] > s->subframe_size - 1) s 572 libavcodec/qdmc.c aindex = s->noise[ch][i][current_subframe / 2]; s 575 libavcodec/qdmc.c lin_calc(s, amplitude, qdmc_nodes[21 * s->band_index + i], s 576 libavcodec/qdmc.c qdmc_nodes[21 * s->band_index + i + 2], i); s 579 libavcodec/qdmc.c for (j = 2; j < s->subframe_size - 1; j++) { s 582 libavcodec/qdmc.c s->rndval = 214013U * s->rndval + 2531011; s 583 libavcodec/qdmc.c rnd_im = ((s->rndval & 0x7FFF) - 16384.0f) * 0.000030517578f * s->noise2_buffer[j]; s 584 libavcodec/qdmc.c s->rndval = 214013U * s->rndval + 2531011; s 585 libavcodec/qdmc.c rnd_re = ((s->rndval & 0x7FFF) - 16384.0f) * 0.000030517578f * s->noise2_buffer[j]; s 593 libavcodec/qdmc.c static void add_wave(QDMCContext *s, int offset, int freqs, int group, int stereo_mode, int amp, int phase) s 598 libavcodec/qdmc.c if (s->nb_channels == 1) s 604 libavcodec/qdmc.c imptr = &s->fft_buffer[ stereo_mode][s->fft_offset + s->subframe_size * offset + pos]; s 605 libavcodec/qdmc.c reptr = &s->fft_buffer[2 + stereo_mode][s->fft_offset + s->subframe_size * offset + pos]; s 609 libavcodec/qdmc.c level = amplitude * s->alt_sin[group][j]; s 616 libavcodec/qdmc.c imptr += s->subframe_size; s 617 libavcodec/qdmc.c reptr += s->subframe_size; s 618 libavcodec/qdmc.c if (imptr >= &s->fft_buffer[stereo_mode][2 * s->frame_size]) { s 619 libavcodec/qdmc.c imptr = &s->fft_buffer[0 + stereo_mode][pos]; s 620 libavcodec/qdmc.c reptr = &s->fft_buffer[2 + stereo_mode][pos]; s 625 libavcodec/qdmc.c static void add_wave0(QDMCContext *s, int offset, int freqs, int stereo_mode, int amp, int phase) s 630 libavcodec/qdmc.c if (s->nb_channels == 1) s 636 libavcodec/qdmc.c pos = s->fft_offset + freqs + s->subframe_size * offset; s 637 libavcodec/qdmc.c s->fft_buffer[ stereo_mode][pos ] += im; s 638 libavcodec/qdmc.c s->fft_buffer[2 + stereo_mode][pos ] += re; s 639 libavcodec/qdmc.c s->fft_buffer[ stereo_mode][pos + 1] -= im; s 640 libavcodec/qdmc.c s->fft_buffer[2 + stereo_mode][pos + 1] -= re; s 643 libavcodec/qdmc.c static void add_waves(QDMCContext *s, int current_subframe) s 648 libavcodec/qdmc.c for (w = s->cur_tone[g]; w < s->nb_tones[g]; w++) { s 649 libavcodec/qdmc.c QDMCTone *t = &s->tones[g][w]; s 653 libavcodec/qdmc.c add_wave(s, t->offset, t->freq, g, t->mode, t->amplitude, t->phase); s 655 libavcodec/qdmc.c s->cur_tone[g] = w; s 657 libavcodec/qdmc.c for (w = s->cur_tone[4]; w < s->nb_tones[4]; w++) { s 658 libavcodec/qdmc.c QDMCTone *t = &s->tones[4][w]; s 662 libavcodec/qdmc.c add_wave0(s, t->offset, t->freq, t->mode, t->amplitude, t->phase); s 664 libavcodec/qdmc.c s->cur_tone[4] = w; s 667 libavcodec/qdmc.c static int decode_frame(QDMCContext *s, GetBitContext *gb, int16_t *out) s 671 libavcodec/qdmc.c if (skip_label(s, gb)) s 674 libavcodec/qdmc.c s->fft_offset = s->frame_size - s->fft_offset; s 675 libavcodec/qdmc.c s->buffer_ptr = &s->buffer[s->nb_channels * s->buffer_offset]; s 677 libavcodec/qdmc.c ret = read_noise_data(s, gb); s 681 libavcodec/qdmc.c ret = read_wave_data(s, gb); s 688 libavcodec/qdmc.c for (ch = 0; ch < s->nb_channels; ch++) s 689 libavcodec/qdmc.c add_noise(s, ch, n); s 691 libavcodec/qdmc.c add_waves(s, n); s 693 libavcodec/qdmc.c for (ch = 0; ch < s->nb_channels; ch++) { s 694 libavcodec/qdmc.c for (i = 0; i < s->subframe_size; i++) { s 695 libavcodec/qdmc.c s->cmplx[ch][i].re = s->fft_buffer[ch + 2][s->fft_offset + n * s->subframe_size + i]; s 696 libavcodec/qdmc.c s->cmplx[ch][i].im = s->fft_buffer[ch + 0][s->fft_offset + n * s->subframe_size + i]; s 697 libavcodec/qdmc.c s->cmplx[ch][s->subframe_size + i].re = 0; s 698 libavcodec/qdmc.c s->cmplx[ch][s->subframe_size + i].im = 0; s 702 libavcodec/qdmc.c for (ch = 0; ch < s->nb_channels; ch++) { s 703 libavcodec/qdmc.c s->fft_ctx.fft_permute(&s->fft_ctx, s->cmplx[ch]); s 704 libavcodec/qdmc.c s->fft_ctx.fft_calc(&s->fft_ctx, s->cmplx[ch]); s 707 libavcodec/qdmc.c r = &s->buffer_ptr[s->nb_channels * n * s->subframe_size]; s 708 libavcodec/qdmc.c for (i = 0; i < 2 * s->subframe_size; i++) { s 709 libavcodec/qdmc.c for (ch = 0; ch < s->nb_channels; ch++) { s 710 libavcodec/qdmc.c *r++ += s->cmplx[ch][i].re; s 714 libavcodec/qdmc.c r = &s->buffer_ptr[n * s->subframe_size * s->nb_channels]; s 715 libavcodec/qdmc.c for (i = 0; i < s->nb_channels * s->subframe_size; i++) { s 718 libavcodec/qdmc.c out += s->subframe_size * s->nb_channels; s 720 libavcodec/qdmc.c for (ch = 0; ch < s->nb_channels; ch++) { s 721 libavcodec/qdmc.c memset(s->fft_buffer[ch+0] + s->fft_offset + n * s->subframe_size, 0, 4 * s->subframe_size); s 722 libavcodec/qdmc.c memset(s->fft_buffer[ch+2] + s->fft_offset + n * s->subframe_size, 0, 4 * s->subframe_size); s 724 libavcodec/qdmc.c memset(s->buffer + s->nb_channels * (n * s->subframe_size + s->frame_size + s->buffer_offset), 0, 4 * s->subframe_size * s->nb_channels); s 727 libavcodec/qdmc.c s->buffer_offset += s->frame_size; s 728 libavcodec/qdmc.c if (s->buffer_offset >= 32768 - s->frame_size) { s 729 libavcodec/qdmc.c memcpy(s->buffer, &s->buffer[s->nb_channels * s->buffer_offset], 4 * s->frame_size * s->nb_channels); s 730 libavcodec/qdmc.c s->buffer_offset = 0; s 738 libavcodec/qdmc.c QDMCContext *s = avctx->priv_data; s 740 libavcodec/qdmc.c memset(s->buffer, 0, sizeof(s->buffer)); s 741 libavcodec/qdmc.c memset(s->fft_buffer, 0, sizeof(s->fft_buffer)); s 742 libavcodec/qdmc.c s->fft_offset = 0; s 743 libavcodec/qdmc.c s->buffer_offset = 0; s 749 libavcodec/qdmc.c QDMCContext *s = avctx->priv_data; s 756 libavcodec/qdmc.c if (avpkt->size < s->checksum_size) s 759 libavcodec/qdmc.c s->avctx = avctx; s 760 libavcodec/qdmc.c frame->nb_samples = s->frame_size; s 764 libavcodec/qdmc.c if ((ret = init_get_bits8(&gb, avpkt->data, s->checksum_size)) < 0) s 767 libavcodec/qdmc.c memset(s->nb_tones, 0, sizeof(s->nb_tones)); s 768 libavcodec/qdmc.c memset(s->cur_tone, 0, sizeof(s->cur_tone)); s 770 libavcodec/qdmc.c ret = decode_frame(s, &gb, (int16_t *)frame->data[0]); s 773 libavcodec/qdmc.c return s->checksum_size; s 57 libavcodec/qsvdec_h2645.c static void qsv_clear_buffers(QSVH2645Context *s) s 60 libavcodec/qsvdec_h2645.c while (av_fifo_size(s->packet_fifo) >= sizeof(pkt)) { s 61 libavcodec/qsvdec_h2645.c av_fifo_generic_read(s->packet_fifo, &pkt, sizeof(pkt), NULL); s 65 libavcodec/qsvdec_h2645.c av_packet_unref(&s->buffer_pkt); s 70 libavcodec/qsvdec_h2645.c QSVH2645Context *s = avctx->priv_data; s 72 libavcodec/qsvdec_h2645.c ff_qsv_decode_close(&s->qsv); s 74 libavcodec/qsvdec_h2645.c qsv_clear_buffers(s); s 76 libavcodec/qsvdec_h2645.c av_fifo_free(s->packet_fifo); s 83 libavcodec/qsvdec_h2645.c QSVH2645Context *s = avctx->priv_data; s 86 libavcodec/qsvdec_h2645.c if (avctx->codec_id == AV_CODEC_ID_HEVC && s->load_plugin != LOAD_PLUGIN_NONE) { s 90 libavcodec/qsvdec_h2645.c if (s->qsv.load_plugins[0]) { s 95 libavcodec/qsvdec_h2645.c av_freep(&s->qsv.load_plugins); s 97 libavcodec/qsvdec_h2645.c if (s->load_plugin == LOAD_PLUGIN_HEVC_SW) s 98 libavcodec/qsvdec_h2645.c s->qsv.load_plugins = av_strdup(uid_hevcdec_sw); s 100 libavcodec/qsvdec_h2645.c s->qsv.load_plugins = av_strdup(uid_hevcdec_hw); s 101 libavcodec/qsvdec_h2645.c if (!s->qsv.load_plugins) s 106 libavcodec/qsvdec_h2645.c s->qsv.orig_pix_fmt = AV_PIX_FMT_NV12; s 107 libavcodec/qsvdec_h2645.c s->packet_fifo = av_fifo_alloc(sizeof(AVPacket)); s 108 libavcodec/qsvdec_h2645.c if (!s->packet_fifo) { s 122 libavcodec/qsvdec_h2645.c QSVH2645Context *s = avctx->priv_data; s 130 libavcodec/qsvdec_h2645.c if (av_fifo_space(s->packet_fifo) < sizeof(input_ref)) { s 131 libavcodec/qsvdec_h2645.c ret = av_fifo_realloc2(s->packet_fifo, s 132 libavcodec/qsvdec_h2645.c av_fifo_size(s->packet_fifo) + sizeof(input_ref)); s 140 libavcodec/qsvdec_h2645.c av_fifo_generic_write(s->packet_fifo, &input_ref, sizeof(input_ref), NULL); s 146 libavcodec/qsvdec_h2645.c if (s->buffer_pkt.size <= 0) { s 148 libavcodec/qsvdec_h2645.c if (av_fifo_size(s->packet_fifo) < sizeof(AVPacket)) s 149 libavcodec/qsvdec_h2645.c return avpkt->size ? avpkt->size : ff_qsv_process_data(avctx, &s->qsv, frame, got_frame, avpkt); s 151 libavcodec/qsvdec_h2645.c if (!s->qsv.reinit_flag) { s 152 libavcodec/qsvdec_h2645.c av_packet_unref(&s->buffer_pkt); s 153 libavcodec/qsvdec_h2645.c av_fifo_generic_read(s->packet_fifo, &s->buffer_pkt, sizeof(s->buffer_pkt), NULL); s 157 libavcodec/qsvdec_h2645.c ret = ff_qsv_process_data(avctx, &s->qsv, frame, got_frame, &s->buffer_pkt); s 161 libavcodec/qsvdec_h2645.c av_packet_unref(&s->buffer_pkt); s 164 libavcodec/qsvdec_h2645.c if (s->qsv.reinit_flag) s 167 libavcodec/qsvdec_h2645.c s->buffer_pkt.size -= ret; s 168 libavcodec/qsvdec_h2645.c s->buffer_pkt.data += ret; s 176 libavcodec/qsvdec_h2645.c QSVH2645Context *s = avctx->priv_data; s 178 libavcodec/qsvdec_h2645.c qsv_clear_buffers(s); s 179 libavcodec/qsvdec_h2645.c ff_qsv_decode_flush(avctx, &s->qsv); s 48 libavcodec/qsvdec_other.c static void qsv_clear_buffers(QSVOtherContext *s) s 51 libavcodec/qsvdec_other.c while (av_fifo_size(s->packet_fifo) >= sizeof(pkt)) { s 52 libavcodec/qsvdec_other.c av_fifo_generic_read(s->packet_fifo, &pkt, sizeof(pkt), NULL); s 56 libavcodec/qsvdec_other.c av_packet_unref(&s->input_ref); s 61 libavcodec/qsvdec_other.c QSVOtherContext *s = avctx->priv_data; s 65 libavcodec/qsvdec_other.c av_freep(&s->qsv.load_plugins); s 68 libavcodec/qsvdec_other.c ff_qsv_decode_close(&s->qsv); s 70 libavcodec/qsvdec_other.c qsv_clear_buffers(s); s 72 libavcodec/qsvdec_other.c av_fifo_free(s->packet_fifo); s 79 libavcodec/qsvdec_other.c QSVOtherContext *s = avctx->priv_data; s 86 libavcodec/qsvdec_other.c av_freep(&s->qsv.load_plugins); s 87 libavcodec/qsvdec_other.c s->qsv.load_plugins = av_strdup(uid_vp8dec_hw); s 88 libavcodec/qsvdec_other.c if (!s->qsv.load_plugins) s 97 libavcodec/qsvdec_other.c av_freep(&s->qsv.load_plugins); s 98 libavcodec/qsvdec_other.c s->qsv.load_plugins = av_strdup(uid_vp9dec_hw); s 99 libavcodec/qsvdec_other.c if (!s->qsv.load_plugins) s 104 libavcodec/qsvdec_other.c s->qsv.orig_pix_fmt = AV_PIX_FMT_NV12; s 105 libavcodec/qsvdec_other.c s->packet_fifo = av_fifo_alloc(sizeof(AVPacket)); s 106 libavcodec/qsvdec_other.c if (!s->packet_fifo) { s 120 libavcodec/qsvdec_other.c QSVOtherContext *s = avctx->priv_data; s 128 libavcodec/qsvdec_other.c if (av_fifo_space(s->packet_fifo) < sizeof(input_ref)) { s 129 libavcodec/qsvdec_other.c ret = av_fifo_realloc2(s->packet_fifo, s 130 libavcodec/qsvdec_other.c av_fifo_size(s->packet_fifo) + sizeof(input_ref)); s 138 libavcodec/qsvdec_other.c av_fifo_generic_write(s->packet_fifo, &input_ref, sizeof(input_ref), NULL); s 143 libavcodec/qsvdec_other.c if (s->input_ref.size <= 0) { s 145 libavcodec/qsvdec_other.c if (av_fifo_size(s->packet_fifo) < sizeof(AVPacket)) s 146 libavcodec/qsvdec_other.c return avpkt->size ? avpkt->size : ff_qsv_process_data(avctx, &s->qsv, frame, got_frame, avpkt); s 148 libavcodec/qsvdec_other.c if (!s->qsv.reinit_flag) { s 149 libavcodec/qsvdec_other.c av_packet_unref(&s->input_ref); s 150 libavcodec/qsvdec_other.c av_fifo_generic_read(s->packet_fifo, &s->input_ref, sizeof(s->input_ref), NULL); s 154 libavcodec/qsvdec_other.c ret = ff_qsv_process_data(avctx, &s->qsv, frame, got_frame, &s->input_ref); s 158 libavcodec/qsvdec_other.c av_packet_unref(&s->input_ref); s 162 libavcodec/qsvdec_other.c if (s->qsv.reinit_flag) s 165 libavcodec/qsvdec_other.c s->input_ref.size -= ret; s 166 libavcodec/qsvdec_other.c s->input_ref.data += ret; s 174 libavcodec/qsvdec_other.c QSVOtherContext *s = avctx->priv_data; s 176 libavcodec/qsvdec_other.c qsv_clear_buffers(s); s 177 libavcodec/qsvdec_other.c ff_qsv_decode_flush(avctx, &s->qsv); s 52 libavcodec/qtrle.c av_log (s->avctx, AV_LOG_ERROR, "Problem: pixel_ptr = %d, pixel_limit = %d\n",\ s 57 libavcodec/qtrle.c static void qtrle_decode_1bpp(QtrleContext *s, int row_ptr, int lines_to_change) s 61 libavcodec/qtrle.c int row_inc = s->frame->linesize[0]; s 63 libavcodec/qtrle.c uint8_t *rgb = s->frame->data[0]; s 64 libavcodec/qtrle.c int pixel_limit = s->frame->linesize[0] * s->avctx->height; s 79 libavcodec/qtrle.c skip = bytestream2_get_byte(&s->g); s 80 libavcodec/qtrle.c rle_code = (int8_t)bytestream2_get_byte(&s->g); s 100 libavcodec/qtrle.c pi0 = bytestream2_get_byte(&s->g); s 101 libavcodec/qtrle.c pi1 = bytestream2_get_byte(&s->g); s 128 libavcodec/qtrle.c int x = bytestream2_get_byte(&s->g); s 142 libavcodec/qtrle.c static inline void qtrle_decode_2n4bpp(QtrleContext *s, int row_ptr, s 147 libavcodec/qtrle.c int row_inc = s->frame->linesize[0]; s 149 libavcodec/qtrle.c uint8_t *rgb = s->frame->data[0]; s 150 libavcodec/qtrle.c int pixel_limit = s->frame->linesize[0] * s->avctx->height; s 154 libavcodec/qtrle.c pixel_ptr = row_ptr + (num_pixels * (bytestream2_get_byte(&s->g) - 1)); s 157 libavcodec/qtrle.c while ((rle_code = (int8_t)bytestream2_get_byte(&s->g)) != -1) { s 158 libavcodec/qtrle.c if (bytestream2_get_bytes_left(&s->g) < 1) s 162 libavcodec/qtrle.c pixel_ptr += (num_pixels * (bytestream2_get_byte(&s->g) - 1)); s 170 libavcodec/qtrle.c pi[num_pixels-1-i] = (bytestream2_peek_byte(&s->g) >> ((i*bpp) & 0x07)) & ((1<<bpp)-1); s 171 libavcodec/qtrle.c bytestream2_skip(&s->g, ((i & ((num_pixels>>2)-1)) == 0)); s 184 libavcodec/qtrle.c int x = bytestream2_get_byte(&s->g); s 188 libavcodec/qtrle.c int x = bytestream2_get_byte(&s->g); s 201 libavcodec/qtrle.c static void qtrle_decode_8bpp(QtrleContext *s, int row_ptr, int lines_to_change) s 205 libavcodec/qtrle.c int row_inc = s->frame->linesize[0]; s 207 libavcodec/qtrle.c uint8_t *rgb = s->frame->data[0]; s 208 libavcodec/qtrle.c int pixel_limit = s->frame->linesize[0] * s->avctx->height; s 211 libavcodec/qtrle.c pixel_ptr = row_ptr + (4 * (bytestream2_get_byte(&s->g) - 1)); s 214 libavcodec/qtrle.c while ((rle_code = (int8_t)bytestream2_get_byte(&s->g)) != -1) { s 215 libavcodec/qtrle.c if (bytestream2_get_bytes_left(&s->g) < 1) s 219 libavcodec/qtrle.c pixel_ptr += (4 * (bytestream2_get_byte(&s->g) - 1)); s 226 libavcodec/qtrle.c pi1 = bytestream2_get_byte(&s->g); s 227 libavcodec/qtrle.c pi2 = bytestream2_get_byte(&s->g); s 228 libavcodec/qtrle.c pi3 = bytestream2_get_byte(&s->g); s 229 libavcodec/qtrle.c pi4 = bytestream2_get_byte(&s->g); s 244 libavcodec/qtrle.c bytestream2_get_buffer(&s->g, &rgb[pixel_ptr], rle_code); s 252 libavcodec/qtrle.c static void qtrle_decode_16bpp(QtrleContext *s, int row_ptr, int lines_to_change) s 256 libavcodec/qtrle.c int row_inc = s->frame->linesize[0]; s 258 libavcodec/qtrle.c uint8_t *rgb = s->frame->data[0]; s 259 libavcodec/qtrle.c int pixel_limit = s->frame->linesize[0] * s->avctx->height; s 262 libavcodec/qtrle.c pixel_ptr = row_ptr + (bytestream2_get_byte(&s->g) - 1) * 2; s 265 libavcodec/qtrle.c while ((rle_code = (int8_t)bytestream2_get_byte(&s->g)) != -1) { s 266 libavcodec/qtrle.c if (bytestream2_get_bytes_left(&s->g) < 1) s 270 libavcodec/qtrle.c pixel_ptr += (bytestream2_get_byte(&s->g) - 1) * 2; s 275 libavcodec/qtrle.c rgb16 = bytestream2_get_be16(&s->g); s 288 libavcodec/qtrle.c rgb16 = bytestream2_get_be16(&s->g); s 298 libavcodec/qtrle.c static void qtrle_decode_24bpp(QtrleContext *s, int row_ptr, int lines_to_change) s 302 libavcodec/qtrle.c int row_inc = s->frame->linesize[0]; s 305 libavcodec/qtrle.c uint8_t *rgb = s->frame->data[0]; s 306 libavcodec/qtrle.c int pixel_limit = s->frame->linesize[0] * s->avctx->height; s 309 libavcodec/qtrle.c pixel_ptr = row_ptr + (bytestream2_get_byte(&s->g) - 1) * 3; s 312 libavcodec/qtrle.c while ((rle_code = (int8_t)bytestream2_get_byte(&s->g)) != -1) { s 313 libavcodec/qtrle.c if (bytestream2_get_bytes_left(&s->g) < 1) s 317 libavcodec/qtrle.c pixel_ptr += (bytestream2_get_byte(&s->g) - 1) * 3; s 322 libavcodec/qtrle.c rg = bytestream2_get_ne16(&s->g); s 323 libavcodec/qtrle.c b = bytestream2_get_byte(&s->g); s 338 libavcodec/qtrle.c AV_WN32(rgb + pixel_ptr, bytestream2_get_ne32(&s->g)); /* rgbr */ s 339 libavcodec/qtrle.c AV_WN16(rgb + pixel_ptr + 4, bytestream2_get_ne16(&s->g)); /* rgbr */ s 344 libavcodec/qtrle.c AV_WN16(rgb + pixel_ptr, bytestream2_get_ne16(&s->g)); s 345 libavcodec/qtrle.c rgb[pixel_ptr + 2] = bytestream2_get_byte(&s->g); s 354 libavcodec/qtrle.c static void qtrle_decode_32bpp(QtrleContext *s, int row_ptr, int lines_to_change) s 358 libavcodec/qtrle.c int row_inc = s->frame->linesize[0]; s 360 libavcodec/qtrle.c uint8_t *rgb = s->frame->data[0]; s 361 libavcodec/qtrle.c int pixel_limit = s->frame->linesize[0] * s->avctx->height; s 364 libavcodec/qtrle.c pixel_ptr = row_ptr + (bytestream2_get_byte(&s->g) - 1) * 4; s 367 libavcodec/qtrle.c while ((rle_code = (int8_t)bytestream2_get_byte(&s->g)) != -1) { s 368 libavcodec/qtrle.c if (bytestream2_get_bytes_left(&s->g) < 1) s 372 libavcodec/qtrle.c pixel_ptr += (bytestream2_get_byte(&s->g) - 1) * 4; s 377 libavcodec/qtrle.c argb = bytestream2_get_ne32(&s->g); s 391 libavcodec/qtrle.c AV_WN64(rgb + pixel_ptr, bytestream2_get_ne64(&s->g)); s 396 libavcodec/qtrle.c AV_WN32A(rgb + pixel_ptr, bytestream2_get_ne32(&s->g)); s 407 libavcodec/qtrle.c QtrleContext *s = avctx->priv_data; s 409 libavcodec/qtrle.c s->avctx = avctx; s 440 libavcodec/qtrle.c s->frame = av_frame_alloc(); s 441 libavcodec/qtrle.c if (!s->frame) s 451 libavcodec/qtrle.c QtrleContext *s = avctx->priv_data; s 458 libavcodec/qtrle.c bytestream2_init(&s->g, avpkt->data, avpkt->size); s 467 libavcodec/qtrle.c size = bytestream2_get_be32(&s->g) & 0x3FFFFFFF; s 473 libavcodec/qtrle.c header = bytestream2_get_be16(&s->g); s 481 libavcodec/qtrle.c start_line = bytestream2_get_be16(&s->g); s 482 libavcodec/qtrle.c bytestream2_skip(&s->g, 2); s 483 libavcodec/qtrle.c height = bytestream2_get_be16(&s->g); s 484 libavcodec/qtrle.c bytestream2_skip(&s->g, 2); s 485 libavcodec/qtrle.c if (height > s->avctx->height - start_line) { s 491 libavcodec/qtrle.c height = s->avctx->height; s 493 libavcodec/qtrle.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 496 libavcodec/qtrle.c row_ptr = s->frame->linesize[0] * start_line; s 501 libavcodec/qtrle.c qtrle_decode_1bpp(s, row_ptr, height); s 507 libavcodec/qtrle.c qtrle_decode_2n4bpp(s, row_ptr, height, 2); s 513 libavcodec/qtrle.c qtrle_decode_2n4bpp(s, row_ptr, height, 4); s 519 libavcodec/qtrle.c qtrle_decode_8bpp(s, row_ptr, height); s 524 libavcodec/qtrle.c qtrle_decode_16bpp(s, row_ptr, height); s 528 libavcodec/qtrle.c qtrle_decode_24bpp(s, row_ptr, height); s 532 libavcodec/qtrle.c qtrle_decode_32bpp(s, row_ptr, height); s 536 libavcodec/qtrle.c av_log (s->avctx, AV_LOG_ERROR, "Unsupported colorspace: %d bits/sample?\n", s 546 libavcodec/qtrle.c s->frame->palette_has_changed = 1; s 547 libavcodec/qtrle.c memcpy(s->pal, pal, AVPALETTE_SIZE); s 553 libavcodec/qtrle.c memcpy(s->frame->data[1], s->pal, AVPALETTE_SIZE); s 557 libavcodec/qtrle.c if (!s->frame->data[0]) s 562 libavcodec/qtrle.c ret = ff_decode_frame_props(avctx, s->frame); s 567 libavcodec/qtrle.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 577 libavcodec/qtrle.c QtrleContext *s = avctx->priv_data; s 579 libavcodec/qtrle.c av_frame_unref(s->frame); s 584 libavcodec/qtrle.c QtrleContext *s = avctx->priv_data; s 586 libavcodec/qtrle.c av_frame_free(&s->frame); s 68 libavcodec/qtrleenc.c QtrleEncContext *s = avctx->priv_data; s 70 libavcodec/qtrleenc.c av_frame_free(&s->previous_frame); s 71 libavcodec/qtrleenc.c av_free(s->rlecode_table); s 72 libavcodec/qtrleenc.c av_free(s->length_table); s 73 libavcodec/qtrleenc.c av_free(s->skip_table); s 79 libavcodec/qtrleenc.c QtrleEncContext *s = avctx->priv_data; s 84 libavcodec/qtrleenc.c s->avctx=avctx; s 85 libavcodec/qtrleenc.c s->logical_width=avctx->width; s 93 libavcodec/qtrleenc.c s->logical_width = avctx->width / 4; s 94 libavcodec/qtrleenc.c s->pixel_size = 4; s 97 libavcodec/qtrleenc.c s->pixel_size = 2; s 100 libavcodec/qtrleenc.c s->pixel_size = 3; s 103 libavcodec/qtrleenc.c s->pixel_size = 4; s 109 libavcodec/qtrleenc.c avctx->bits_per_coded_sample = avctx->pix_fmt == AV_PIX_FMT_GRAY8 ? 40 : s->pixel_size*8; s 111 libavcodec/qtrleenc.c s->rlecode_table = av_mallocz(s->logical_width); s 112 libavcodec/qtrleenc.c s->skip_table = av_mallocz(s->logical_width); s 113 libavcodec/qtrleenc.c s->length_table = av_mallocz_array(s->logical_width + 1, sizeof(int)); s 114 libavcodec/qtrleenc.c if (!s->skip_table || !s->length_table || !s->rlecode_table) { s 118 libavcodec/qtrleenc.c s->previous_frame = av_frame_alloc(); s 119 libavcodec/qtrleenc.c if (!s->previous_frame) { s 124 libavcodec/qtrleenc.c s->max_buf_size = s->logical_width*s->avctx->height*s->pixel_size*2 /* image base material */ s 126 libavcodec/qtrleenc.c + s->avctx->height*2 /* skip code+rle end */ s 127 libavcodec/qtrleenc.c + s->logical_width/MAX_RLE_BULK + 1 /* rle codes */; s 135 libavcodec/qtrleenc.c static void qtrle_encode_line(QtrleEncContext *s, const AVFrame *p, int line, uint8_t **buf) s 137 libavcodec/qtrleenc.c int width=s->logical_width; s 159 libavcodec/qtrleenc.c (width - 1)*s->pixel_size; s 160 libavcodec/qtrleenc.c uint8_t *prev_line = s->previous_frame->data[0] + line * s->previous_frame->linesize[0] + s 161 libavcodec/qtrleenc.c (width - 1)*s->pixel_size; s 163 libavcodec/qtrleenc.c s->length_table[width] = 0; s 172 libavcodec/qtrleenc.c base_bulk_cost = 1 + s->pixel_size; s 197 libavcodec/qtrleenc.c prev_bulk_cost = s->length_table[i + 1] + base_bulk_cost; s 217 libavcodec/qtrleenc.c if (!s->key_frame && !memcmp(this_line, prev_line, s->pixel_size)) s 222 libavcodec/qtrleenc.c total_skip_cost = s->length_table[i + skipcount] + 2; s 223 libavcodec/qtrleenc.c s->skip_table[i] = skipcount; s 226 libavcodec/qtrleenc.c if (i < width - 1 && !memcmp(this_line, this_line + s->pixel_size, s->pixel_size)) s 231 libavcodec/qtrleenc.c total_repeat_cost = s->length_table[i + repeatcount] + 1 + s->pixel_size; s 242 libavcodec/qtrleenc.c s->length_table[i] = total_repeat_cost; s 243 libavcodec/qtrleenc.c s->rlecode_table[i] = -repeatcount; s 247 libavcodec/qtrleenc.c s->length_table[i] = total_skip_cost; s 248 libavcodec/qtrleenc.c s->rlecode_table[i] = 0; s 254 libavcodec/qtrleenc.c s->length_table[i] = lowest_bulk_cost; s 255 libavcodec/qtrleenc.c s->rlecode_table[i] = lowest_bulk_cost_index - i; s 260 libavcodec/qtrleenc.c lowest_bulk_cost += s->pixel_size; s 261 libavcodec/qtrleenc.c sec_lowest_bulk_cost += s->pixel_size; s 262 libavcodec/qtrleenc.c if (this_line >= p->data[0] + s->pixel_size) s 263 libavcodec/qtrleenc.c this_line -= s->pixel_size; s 264 libavcodec/qtrleenc.c if (prev_line >= s->previous_frame->data[0] + s->pixel_size) s 265 libavcodec/qtrleenc.c prev_line -= s->pixel_size; s 276 libavcodec/qtrleenc.c if (s->rlecode_table[0] == 0) { s 277 libavcodec/qtrleenc.c bytestream_put_byte(buf, s->skip_table[0] + 1); s 278 libavcodec/qtrleenc.c i += s->skip_table[0]; s 284 libavcodec/qtrleenc.c rlecode = s->rlecode_table[i]; s 288 libavcodec/qtrleenc.c bytestream_put_byte(buf, s->skip_table[i] + 1); s 289 libavcodec/qtrleenc.c i += s->skip_table[i]; s 293 libavcodec/qtrleenc.c if (s->avctx->pix_fmt == AV_PIX_FMT_GRAY8) { s 298 libavcodec/qtrleenc.c for (j = 0; j < rlecode*s->pixel_size; ++j) s 299 libavcodec/qtrleenc.c bytestream_put_byte(buf, *(this_line + i*s->pixel_size + j) ^ 0xff); s 301 libavcodec/qtrleenc.c bytestream_put_buffer(buf, this_line + i*s->pixel_size, rlecode*s->pixel_size); s 307 libavcodec/qtrleenc.c if (s->avctx->pix_fmt == AV_PIX_FMT_GRAY8) { s 310 libavcodec/qtrleenc.c for (j = 0; j < s->pixel_size; ++j) s 311 libavcodec/qtrleenc.c bytestream_put_byte(buf, *(this_line + i*s->pixel_size + j) ^ 0xff); s 313 libavcodec/qtrleenc.c bytestream_put_buffer(buf, this_line + i*s->pixel_size, s->pixel_size); s 322 libavcodec/qtrleenc.c static int encode_frame(QtrleEncContext *s, const AVFrame *p, uint8_t *buf) s 326 libavcodec/qtrleenc.c int end_line = s->avctx->height; s 329 libavcodec/qtrleenc.c if (!s->key_frame) { s 330 libavcodec/qtrleenc.c unsigned line_size = s->logical_width * s->pixel_size; s 331 libavcodec/qtrleenc.c for (start_line = 0; start_line < s->avctx->height; start_line++) s 333 libavcodec/qtrleenc.c s->previous_frame->data[0] + start_line * s->previous_frame->linesize[0], s 337 libavcodec/qtrleenc.c for (end_line=s->avctx->height; end_line > start_line; end_line--) s 339 libavcodec/qtrleenc.c s->previous_frame->data[0] + (end_line - 1) * s->previous_frame->linesize[0], s 346 libavcodec/qtrleenc.c if ((start_line == 0 && end_line == s->avctx->height) || start_line == s->avctx->height) s 356 libavcodec/qtrleenc.c qtrle_encode_line(s, p, i, &buf); s 366 libavcodec/qtrleenc.c QtrleEncContext * const s = avctx->priv_data; s 369 libavcodec/qtrleenc.c if ((ret = ff_alloc_packet2(avctx, pkt, s->max_buf_size, 0)) < 0) s 372 libavcodec/qtrleenc.c if (avctx->gop_size == 0 || (s->avctx->frame_number % avctx->gop_size) == 0) { s 374 libavcodec/qtrleenc.c s->key_frame = 1; s 377 libavcodec/qtrleenc.c s->key_frame = 0; s 380 libavcodec/qtrleenc.c pkt->size = encode_frame(s, pict, pkt->data); s 383 libavcodec/qtrleenc.c av_frame_unref(s->previous_frame); s 384 libavcodec/qtrleenc.c ret = av_frame_ref(s->previous_frame, pict); s 392 libavcodec/qtrleenc.c avctx->coded_frame->key_frame = s->key_frame; s 393 libavcodec/qtrleenc.c avctx->coded_frame->pict_type = s->key_frame ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; s 397 libavcodec/qtrleenc.c if (s->key_frame) s 1627 libavcodec/ra144.c int s = 2; s 1629 libavcodec/ra144.c s++; s 1633 libavcodec/ra144.c return ff_sqrt(x << 20) << s; s 70 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 74 libavcodec/rasc.c memset(dst, 0, avctx->width * s->bpp); s 81 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 86 libavcodec/rasc.c memcpy(dstp, srcp, s->stride); s 94 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 97 libavcodec/rasc.c av_frame_unref(s->frame1); s 98 libavcodec/rasc.c av_frame_unref(s->frame2); s 99 libavcodec/rasc.c if ((ret = ff_get_buffer(avctx, s->frame1, 0)) < 0) s 102 libavcodec/rasc.c if ((ret = ff_get_buffer(avctx, s->frame2, 0)) < 0) s 105 libavcodec/rasc.c clear_plane(avctx, s->frame2); s 106 libavcodec/rasc.c clear_plane(avctx, s->frame1); s 114 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 115 libavcodec/rasc.c GetByteContext *gb = &s->gb; s 120 libavcodec/rasc.c if (!s->frame2->data[0] || !s->frame1->data[0]) s 123 libavcodec/rasc.c clear_plane(avctx, s->frame2); s 124 libavcodec/rasc.c clear_plane(avctx, s->frame1); s 138 libavcodec/rasc.c case 8: s->stride = FFALIGN(w, 4); s 139 libavcodec/rasc.c s->bpp = 1; s 141 libavcodec/rasc.c case 16: s->stride = w * 2; s 142 libavcodec/rasc.c s->bpp = 2; s 144 libavcodec/rasc.c case 32: s->stride = w * 4; s 145 libavcodec/rasc.c s->bpp = 4; s 162 libavcodec/rasc.c uint32_t *pal = (uint32_t *)s->frame2->data[1]; s 174 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 175 libavcodec/rasc.c GetByteContext *gb = &s->gb; s 178 libavcodec/rasc.c zret = inflateReset(&s->zstream); s 184 libavcodec/rasc.c av_fast_padded_malloc(&s->delta, &s->delta_size, uncompressed_size); s 185 libavcodec/rasc.c if (!s->delta) s 188 libavcodec/rasc.c s->zstream.next_in = avpkt->data + bytestream2_tell(gb); s 189 libavcodec/rasc.c s->zstream.avail_in = FFMIN(size, bytestream2_get_bytes_left(gb)); s 191 libavcodec/rasc.c s->zstream.next_out = s->delta; s 192 libavcodec/rasc.c s->zstream.avail_out = s->delta_size; s 194 libavcodec/rasc.c zret = inflate(&s->zstream, Z_FINISH); s 207 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 208 libavcodec/rasc.c GetByteContext *gb = &s->gb; s 231 libavcodec/rasc.c bytestream2_init(&mc, s->delta, uncompressed_size); s 274 libavcodec/rasc.c if (!s->frame2->data[0] || !s->frame1->data[0]) s 277 libavcodec/rasc.c b1 = s->frame1->data[0] + s->frame1->linesize[0] * (start_y + h - 1) + start_x * s->bpp; s 278 libavcodec/rasc.c b2 = s->frame2->data[0] + s->frame2->linesize[0] * (start_y + h - 1) + start_x * s->bpp; s 279 libavcodec/rasc.c e2 = s->frame2->data[0] + s->frame2->linesize[0] * (mov_y + h - 1) + mov_x * s->bpp; s 283 libavcodec/rasc.c memcpy(b1, b2, w * s->bpp); s 284 libavcodec/rasc.c b1 -= s->frame1->linesize[0]; s 285 libavcodec/rasc.c b2 -= s->frame2->linesize[0]; s 289 libavcodec/rasc.c memset(b2, 0, w * s->bpp); s 290 libavcodec/rasc.c b2 -= s->frame2->linesize[0]; s 295 libavcodec/rasc.c av_fast_padded_malloc(&s->delta, &s->delta_size, w * h * s->bpp); s 296 libavcodec/rasc.c buffer = s->delta; s 301 libavcodec/rasc.c memcpy(buffer + j * w * s->bpp, e2, w * s->bpp); s 302 libavcodec/rasc.c e2 -= s->frame2->linesize[0]; s 306 libavcodec/rasc.c memcpy(b2, buffer + j * w * s->bpp, w * s->bpp); s 307 libavcodec/rasc.c b2 -= s->frame2->linesize[0]; s 320 libavcodec/rasc.c if (cx >= w * s->bpp) { \ s 323 libavcodec/rasc.c b1 -= s->frame1->linesize[0]; \ s 324 libavcodec/rasc.c b2 -= s->frame2->linesize[0]; \ s 331 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 332 libavcodec/rasc.c GetByteContext *gb = &s->gb; s 358 libavcodec/rasc.c if (w * h * s->bpp * 3 < uncompressed_size) s 363 libavcodec/rasc.c bytestream2_init(&dc, s->delta, uncompressed_size); s 376 libavcodec/rasc.c if (!s->frame2->data[0] || !s->frame1->data[0]) s 379 libavcodec/rasc.c b1 = s->frame1->data[0] + s->frame1->linesize[0] * (y + h - 1) + x * s->bpp; s 380 libavcodec/rasc.c b2 = s->frame2->data[0] + s->frame2->linesize[0] * (y + h - 1) + x * s->bpp; s 473 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 474 libavcodec/rasc.c GetByteContext *gb = &s->gb; s 486 libavcodec/rasc.c if (!s->frame2->data[0]) s 489 libavcodec/rasc.c zret = inflateReset(&s->zstream); s 495 libavcodec/rasc.c s->zstream.next_in = avpkt->data + bytestream2_tell(gb); s 496 libavcodec/rasc.c s->zstream.avail_in = bytestream2_get_bytes_left(gb); s 498 libavcodec/rasc.c dst = s->frame2->data[0] + (avctx->height - 1) * s->frame2->linesize[0]; s 500 libavcodec/rasc.c s->zstream.next_out = dst; s 501 libavcodec/rasc.c s->zstream.avail_out = s->stride; s 503 libavcodec/rasc.c zret = inflate(&s->zstream, Z_SYNC_FLUSH); s 510 libavcodec/rasc.c dst -= s->frame2->linesize[0]; s 513 libavcodec/rasc.c dst = s->frame1->data[0] + (avctx->height - 1) * s->frame1->linesize[0]; s 515 libavcodec/rasc.c s->zstream.next_out = dst; s 516 libavcodec/rasc.c s->zstream.avail_out = s->stride; s 518 libavcodec/rasc.c zret = inflate(&s->zstream, Z_SYNC_FLUSH); s 525 libavcodec/rasc.c dst -= s->frame1->linesize[0]; s 536 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 537 libavcodec/rasc.c GetByteContext *gb = &s->gb; s 554 libavcodec/rasc.c av_fast_padded_malloc(&s->cursor, &s->cursor_size, uncompressed_size); s 555 libavcodec/rasc.c if (!s->cursor) s 563 libavcodec/rasc.c memcpy(s->cursor, s->delta, uncompressed_size); s 567 libavcodec/rasc.c s->cursor_w = w; s 568 libavcodec/rasc.c s->cursor_h = h; s 576 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 577 libavcodec/rasc.c GetByteContext *gb = &s->gb; s 582 libavcodec/rasc.c s->cursor_x = bytestream2_get_le32(gb); s 583 libavcodec/rasc.c s->cursor_y = bytestream2_get_le32(gb); s 592 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 595 libavcodec/rasc.c if (!s->cursor) s 598 libavcodec/rasc.c if (s->cursor_x >= avctx->width || s->cursor_y >= avctx->height) s 601 libavcodec/rasc.c if (s->cursor_x + s->cursor_w > avctx->width || s 602 libavcodec/rasc.c s->cursor_y + s->cursor_h > avctx->height) s 606 libavcodec/rasc.c pal = s->frame->data[1]; s 607 libavcodec/rasc.c for (int i = 0; i < s->cursor_h; i++) { s 608 libavcodec/rasc.c for (int j = 0; j < s->cursor_w; j++) { s 609 libavcodec/rasc.c int cr = s->cursor[3 * s->cursor_w * (s->cursor_h - i - 1) + 3 * j + 0]; s 610 libavcodec/rasc.c int cg = s->cursor[3 * s->cursor_w * (s->cursor_h - i - 1) + 3 * j + 1]; s 611 libavcodec/rasc.c int cb = s->cursor[3 * s->cursor_w * (s->cursor_h - i - 1) + 3 * j + 2]; s 616 libavcodec/rasc.c if (cr == s->cursor[0] && cg == s->cursor[1] && cb == s->cursor[2]) s 619 libavcodec/rasc.c dst = s->frame->data[0] + s->frame->linesize[0] * (s->cursor_y + i) + (s->cursor_x + j); s 635 libavcodec/rasc.c for (int i = 0; i < s->cursor_h; i++) { s 636 libavcodec/rasc.c for (int j = 0; j < s->cursor_w; j++) { s 637 libavcodec/rasc.c int cr = s->cursor[3 * s->cursor_w * (s->cursor_h - i - 1) + 3 * j + 0]; s 638 libavcodec/rasc.c int cg = s->cursor[3 * s->cursor_w * (s->cursor_h - i - 1) + 3 * j + 1]; s 639 libavcodec/rasc.c int cb = s->cursor[3 * s->cursor_w * (s->cursor_h - i - 1) + 3 * j + 2]; s 641 libavcodec/rasc.c if (cr == s->cursor[0] && cg == s->cursor[1] && cb == s->cursor[2]) s 645 libavcodec/rasc.c dst = s->frame->data[0] + s->frame->linesize[0] * (s->cursor_y + i) + 2 * (s->cursor_x + j); s 650 libavcodec/rasc.c for (int i = 0; i < s->cursor_h; i++) { s 651 libavcodec/rasc.c for (int j = 0; j < s->cursor_w; j++) { s 652 libavcodec/rasc.c int cr = s->cursor[3 * s->cursor_w * (s->cursor_h - i - 1) + 3 * j + 0]; s 653 libavcodec/rasc.c int cg = s->cursor[3 * s->cursor_w * (s->cursor_h - i - 1) + 3 * j + 1]; s 654 libavcodec/rasc.c int cb = s->cursor[3 * s->cursor_w * (s->cursor_h - i - 1) + 3 * j + 2]; s 656 libavcodec/rasc.c if (cr == s->cursor[0] && cg == s->cursor[1] && cb == s->cursor[2]) s 659 libavcodec/rasc.c dst = s->frame->data[0] + s->frame->linesize[0] * (s->cursor_y + i) + 4 * (s->cursor_x + j); s 672 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 673 libavcodec/rasc.c GetByteContext *gb = &s->gb; s 682 libavcodec/rasc.c s->frame = frame; s 728 libavcodec/rasc.c if (!s->frame2->data[0] || !s->frame1->data[0]) s 731 libavcodec/rasc.c if ((ret = ff_get_buffer(avctx, s->frame, 0)) < 0) s 734 libavcodec/rasc.c copy_plane(avctx, s->frame2, s->frame); s 736 libavcodec/rasc.c memcpy(s->frame->data[1], s->frame2->data[1], 1024); s 737 libavcodec/rasc.c if (!s->skip_cursor) s 740 libavcodec/rasc.c s->frame->key_frame = intra; s 741 libavcodec/rasc.c s->frame->pict_type = intra ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; s 750 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 753 libavcodec/rasc.c s->zstream.zalloc = Z_NULL; s 754 libavcodec/rasc.c s->zstream.zfree = Z_NULL; s 755 libavcodec/rasc.c s->zstream.opaque = Z_NULL; s 756 libavcodec/rasc.c zret = inflateInit(&s->zstream); s 762 libavcodec/rasc.c s->frame1 = av_frame_alloc(); s 763 libavcodec/rasc.c s->frame2 = av_frame_alloc(); s 764 libavcodec/rasc.c if (!s->frame1 || !s->frame2) s 772 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 774 libavcodec/rasc.c av_freep(&s->cursor); s 775 libavcodec/rasc.c s->cursor_size = 0; s 776 libavcodec/rasc.c av_freep(&s->delta); s 777 libavcodec/rasc.c s->delta_size = 0; s 778 libavcodec/rasc.c av_frame_free(&s->frame1); s 779 libavcodec/rasc.c av_frame_free(&s->frame2); s 780 libavcodec/rasc.c inflateEnd(&s->zstream); s 787 libavcodec/rasc.c RASCContext *s = avctx->priv_data; s 789 libavcodec/rasc.c clear_plane(avctx, s->frame1); s 790 libavcodec/rasc.c clear_plane(avctx, s->frame2); s 38 libavcodec/ratecontrol.c void ff_write_pass1_stats(MpegEncContext *s) s 40 libavcodec/ratecontrol.c snprintf(s->avctx->stats_out, 256, s 43 libavcodec/ratecontrol.c s->current_picture_ptr->f->display_picture_number, s 44 libavcodec/ratecontrol.c s->current_picture_ptr->f->coded_picture_number, s 45 libavcodec/ratecontrol.c s->pict_type, s 46 libavcodec/ratecontrol.c s->current_picture.f->quality, s 47 libavcodec/ratecontrol.c s->i_tex_bits, s 48 libavcodec/ratecontrol.c s->p_tex_bits, s 49 libavcodec/ratecontrol.c s->mv_bits, s 50 libavcodec/ratecontrol.c s->misc_bits, s 51 libavcodec/ratecontrol.c s->f_code, s 52 libavcodec/ratecontrol.c s->b_code, s 53 libavcodec/ratecontrol.c s->current_picture.mc_mb_var_sum, s 54 libavcodec/ratecontrol.c s->current_picture.mb_var_sum, s 55 libavcodec/ratecontrol.c s->i_count, s->skip_count, s 56 libavcodec/ratecontrol.c s->header_bits); s 80 libavcodec/ratecontrol.c static double get_diff_limited_q(MpegEncContext *s, RateControlEntry *rce, double q) s 82 libavcodec/ratecontrol.c RateControlContext *rcc = &s->rc_context; s 83 libavcodec/ratecontrol.c AVCodecContext *a = s->avctx; s 119 libavcodec/ratecontrol.c static void get_qminmax(int *qmin_ret, int *qmax_ret, MpegEncContext *s, int pict_type) s 121 libavcodec/ratecontrol.c int qmin = s->lmin; s 122 libavcodec/ratecontrol.c int qmax = s->lmax; s 128 libavcodec/ratecontrol.c qmin = (int)(qmin * FFABS(s->avctx->b_quant_factor) + s->avctx->b_quant_offset + 0.5); s 129 libavcodec/ratecontrol.c qmax = (int)(qmax * FFABS(s->avctx->b_quant_factor) + s->avctx->b_quant_offset + 0.5); s 132 libavcodec/ratecontrol.c qmin = (int)(qmin * FFABS(s->avctx->i_quant_factor) + s->avctx->i_quant_offset + 0.5); s 133 libavcodec/ratecontrol.c qmax = (int)(qmax * FFABS(s->avctx->i_quant_factor) + s->avctx->i_quant_offset + 0.5); s 147 libavcodec/ratecontrol.c static double modify_qscale(MpegEncContext *s, RateControlEntry *rce, s 150 libavcodec/ratecontrol.c RateControlContext *rcc = &s->rc_context; s 151 libavcodec/ratecontrol.c const double buffer_size = s->avctx->rc_buffer_size; s 152 libavcodec/ratecontrol.c const double fps = get_fps(s->avctx); s 153 libavcodec/ratecontrol.c const double min_rate = s->avctx->rc_min_rate / fps; s 154 libavcodec/ratecontrol.c const double max_rate = s->avctx->rc_max_rate / fps; s 158 libavcodec/ratecontrol.c get_qminmax(&qmin, &qmax, s, pict_type); s 161 libavcodec/ratecontrol.c if (s->rc_qmod_freq && s 162 libavcodec/ratecontrol.c frame_num % s->rc_qmod_freq == 0 && s 164 libavcodec/ratecontrol.c q *= s->rc_qmod_amp; s 177 libavcodec/ratecontrol.c q *= pow(d, 1.0 / s->rc_buffer_aggressivity); s 181 libavcodec/ratecontrol.c s->avctx->rc_min_vbv_overflow_use, 1)); s 184 libavcodec/ratecontrol.c if (s->avctx->debug & FF_DEBUG_RC) s 185 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_DEBUG, s 197 libavcodec/ratecontrol.c q /= pow(d, 1.0 / s->rc_buffer_aggressivity); s 201 libavcodec/ratecontrol.c s->avctx->rc_max_available_vbv_use, s 204 libavcodec/ratecontrol.c if (s->avctx->debug & FF_DEBUG_RC) s 205 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_DEBUG, s 211 libavcodec/ratecontrol.c ff_dlog(s, "q:%f max:%f min:%f size:%f index:%f agr:%f\n", s 213 libavcodec/ratecontrol.c s->rc_buffer_aggressivity); s 214 libavcodec/ratecontrol.c if (s->rc_qsquish == 0.0 || qmin == qmax) { s 238 libavcodec/ratecontrol.c static double get_qscale(MpegEncContext *s, RateControlEntry *rce, s 241 libavcodec/ratecontrol.c RateControlContext *rcc = &s->rc_context; s 242 libavcodec/ratecontrol.c AVCodecContext *a = s->avctx; s 244 libavcodec/ratecontrol.c const double mb_num = s->mb_num; s 274 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_ERROR, "Error evaluating rc_eq \"%s\"\n", s->rc_eq); s 285 libavcodec/ratecontrol.c for (i = 0; i < s->avctx->rc_override_count; i++) { s 286 libavcodec/ratecontrol.c RcOverride *rco = s->avctx->rc_override; s 301 libavcodec/ratecontrol.c if (pict_type == AV_PICTURE_TYPE_I && s->avctx->i_quant_factor < 0.0) s 302 libavcodec/ratecontrol.c q = -q * s->avctx->i_quant_factor + s->avctx->i_quant_offset; s 303 libavcodec/ratecontrol.c else if (pict_type == AV_PICTURE_TYPE_B && s->avctx->b_quant_factor < 0.0) s 304 libavcodec/ratecontrol.c q = -q * s->avctx->b_quant_factor + s->avctx->b_quant_offset; s 311 libavcodec/ratecontrol.c static int init_pass2(MpegEncContext *s) s 313 libavcodec/ratecontrol.c RateControlContext *rcc = &s->rc_context; s 314 libavcodec/ratecontrol.c AVCodecContext *a = s->avctx; s 316 libavcodec/ratecontrol.c double fps = get_fps(s->avctx); s 320 libavcodec/ratecontrol.c uint64_t all_available_bits = (uint64_t)(s->bit_rate * s 348 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_ERROR, "requested bitrate is too low\n"); s 365 libavcodec/ratecontrol.c rcc->buffer_index = s->avctx->rc_buffer_size / 2; s 371 libavcodec/ratecontrol.c qscale[i] = get_qscale(s, &rcc->entry[i], rate_factor, i); s 380 libavcodec/ratecontrol.c qscale[i] = get_diff_limited_q(s, rce, qscale[i]); s 386 libavcodec/ratecontrol.c qscale[i] = get_diff_limited_q(s, rce, qscale[i]); s 416 libavcodec/ratecontrol.c rce->new_qscale = modify_qscale(s, rce, blurred_qscale[i], i); s 419 libavcodec/ratecontrol.c bits += 8 * ff_vbv_update(s, bits); s 425 libavcodec/ratecontrol.c ff_dlog(s->avctx, s 439 libavcodec/ratecontrol.c ff_dlog(s, "[lavc rc] entry[%d].new_qscale = %.3f qp = %.3f\n", s 444 libavcodec/ratecontrol.c s->avctx->qmin, s->avctx->qmax); s 447 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_DEBUG, s 449 libavcodec/ratecontrol.c s->bit_rate, s 450 libavcodec/ratecontrol.c (int64_t)(expected_bits / ((double)all_available_bits / s->bit_rate))); s 451 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_DEBUG, s 455 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_INFO, s 459 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_ERROR, s 464 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_ERROR, s 472 libavcodec/ratecontrol.c av_cold int ff_rate_control_init(MpegEncContext *s) s 474 libavcodec/ratecontrol.c RateControlContext *rcc = &s->rc_context; s 511 libavcodec/ratecontrol.c if (!s->avctx->rc_max_available_vbv_use && s->avctx->rc_buffer_size) { s 512 libavcodec/ratecontrol.c if (s->avctx->rc_max_rate) { s 513 libavcodec/ratecontrol.c s->avctx->rc_max_available_vbv_use = av_clipf(s->avctx->rc_max_rate/(s->avctx->rc_buffer_size*get_fps(s->avctx)), 1.0/3, 1.0); s 515 libavcodec/ratecontrol.c s->avctx->rc_max_available_vbv_use = 1.0; s 519 libavcodec/ratecontrol.c s->rc_eq ? s->rc_eq : "tex^qComp", s 521 libavcodec/ratecontrol.c NULL, NULL, 0, s->avctx); s 523 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_ERROR, "Error parsing rc_eq \"%s\"\n", s->rc_eq); s 540 libavcodec/ratecontrol.c rcc->buffer_index = s->avctx->rc_initial_buffer_occupancy; s 542 libavcodec/ratecontrol.c rcc->buffer_index = s->avctx->rc_buffer_size * 3 / 4; s 544 libavcodec/ratecontrol.c if (s->avctx->flags & AV_CODEC_FLAG_PASS2) { s 549 libavcodec/ratecontrol.c p = s->avctx->stats_in; s 552 libavcodec/ratecontrol.c i += s->max_b_frames; s 567 libavcodec/ratecontrol.c rce->misc_bits = s->mb_num + 10; s 568 libavcodec/ratecontrol.c rce->mb_var_sum = s->mb_num * 100; s 572 libavcodec/ratecontrol.c p = s->avctx->stats_in; s 573 libavcodec/ratecontrol.c for (i = 0; i < rcc->num_entries - s->max_b_frames; i++) { s 597 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_ERROR, s 606 libavcodec/ratecontrol.c if (init_pass2(s) < 0) { s 607 libavcodec/ratecontrol.c ff_rate_control_uninit(s); s 612 libavcodec/ratecontrol.c if (!(s->avctx->flags & AV_CODEC_FLAG_PASS2)) { s 619 libavcodec/ratecontrol.c if (s->avctx->qblur > 1.0) { s 620 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_ERROR, "qblur too large\n"); s 624 libavcodec/ratecontrol.c if (s->rc_initial_cplx) { s 626 libavcodec/ratecontrol.c double bits = s->rc_initial_cplx * (i / 10000.0 + 1.0) * s->mb_num; s 629 libavcodec/ratecontrol.c if (i % ((s->gop_size + 3) / 4) == 0) s 631 libavcodec/ratecontrol.c else if (i % (s->max_b_frames + 1)) s 637 libavcodec/ratecontrol.c rce.mc_mb_var_sum = bits * s->mb_num / 100000; s 638 libavcodec/ratecontrol.c rce.mb_var_sum = s->mb_num; s 645 libavcodec/ratecontrol.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 646 libavcodec/ratecontrol.c rce.i_count = s->mb_num; s 661 libavcodec/ratecontrol.c get_qscale(s, &rce, rcc->pass1_wanted_bits / rcc->pass1_rc_eq_output_sum, i); s 664 libavcodec/ratecontrol.c rcc->pass1_wanted_bits += s->bit_rate / get_fps(s->avctx); s 672 libavcodec/ratecontrol.c av_cold void ff_rate_control_uninit(MpegEncContext *s) s 674 libavcodec/ratecontrol.c RateControlContext *rcc = &s->rc_context; s 681 libavcodec/ratecontrol.c int ff_vbv_update(MpegEncContext *s, int frame_size) s 683 libavcodec/ratecontrol.c RateControlContext *rcc = &s->rc_context; s 684 libavcodec/ratecontrol.c const double fps = get_fps(s->avctx); s 685 libavcodec/ratecontrol.c const int buffer_size = s->avctx->rc_buffer_size; s 686 libavcodec/ratecontrol.c const double min_rate = s->avctx->rc_min_rate / fps; s 687 libavcodec/ratecontrol.c const double max_rate = s->avctx->rc_max_rate / fps; s 689 libavcodec/ratecontrol.c ff_dlog(s, "%d %f %d %f %f\n", s 697 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_ERROR, "rc buffer underflow\n"); s 698 libavcodec/ratecontrol.c if (frame_size > max_rate && s->qscale == s->avctx->qmax) { s 699 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_ERROR, "max bitrate possibly too small or try trellis with large lmax or increase qmax\n"); s 710 libavcodec/ratecontrol.c if (stuffing < 4 && s->codec_id == AV_CODEC_ID_MPEG4) s 714 libavcodec/ratecontrol.c if (s->avctx->debug & FF_DEBUG_RC) s 715 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_DEBUG, "stuffing %d bytes\n", stuffing); s 740 libavcodec/ratecontrol.c static void adaptive_quantization(MpegEncContext *s, double q) s 743 libavcodec/ratecontrol.c const float lumi_masking = s->avctx->lumi_masking / (128.0 * 128.0); s 744 libavcodec/ratecontrol.c const float dark_masking = s->avctx->dark_masking / (128.0 * 128.0); s 745 libavcodec/ratecontrol.c const float temp_cplx_masking = s->avctx->temporal_cplx_masking; s 746 libavcodec/ratecontrol.c const float spatial_cplx_masking = s->avctx->spatial_cplx_masking; s 747 libavcodec/ratecontrol.c const float p_masking = s->avctx->p_masking; s 748 libavcodec/ratecontrol.c const float border_masking = s->border_masking; s 751 libavcodec/ratecontrol.c float *cplx_tab = s->cplx_tab; s 752 libavcodec/ratecontrol.c float *bits_tab = s->bits_tab; s 753 libavcodec/ratecontrol.c const int qmin = s->avctx->mb_lmin; s 754 libavcodec/ratecontrol.c const int qmax = s->avctx->mb_lmax; s 755 libavcodec/ratecontrol.c Picture *const pic = &s->current_picture; s 756 libavcodec/ratecontrol.c const int mb_width = s->mb_width; s 757 libavcodec/ratecontrol.c const int mb_height = s->mb_height; s 759 libavcodec/ratecontrol.c for (i = 0; i < s->mb_num; i++) { s 760 libavcodec/ratecontrol.c const int mb_xy = s->mb_index2xy[i]; s 765 libavcodec/ratecontrol.c int mb_x = mb_xy % s->mb_stride; s 766 libavcodec/ratecontrol.c int mb_y = mb_xy / s->mb_stride; s 774 libavcodec/ratecontrol.c if ((s->mb_type[mb_xy] & CANDIDATE_MB_TYPE_INTRA)) { // FIXME hq mode s 818 libavcodec/ratecontrol.c if (s->mpv_flags & FF_MPV_FLAG_NAQ) { s 820 libavcodec/ratecontrol.c for (i = 0; i < s->mb_num; i++) { s 838 libavcodec/ratecontrol.c for (i = 0; i < s->mb_num; i++) { s 839 libavcodec/ratecontrol.c const int mb_xy = s->mb_index2xy[i]; s 843 libavcodec/ratecontrol.c if (s->mpv_flags & FF_MPV_FLAG_NAQ) { s 853 libavcodec/ratecontrol.c s->lambda_table[mb_xy] = intq; s 857 libavcodec/ratecontrol.c void ff_get_2pass_fcode(MpegEncContext *s) s 859 libavcodec/ratecontrol.c RateControlContext *rcc = &s->rc_context; s 860 libavcodec/ratecontrol.c RateControlEntry *rce = &rcc->entry[s->picture_number]; s 862 libavcodec/ratecontrol.c s->f_code = rce->f_code; s 863 libavcodec/ratecontrol.c s->b_code = rce->b_code; s 868 libavcodec/ratecontrol.c float ff_rate_estimate_qscale(MpegEncContext *s, int dry_run) s 876 libavcodec/ratecontrol.c int picture_number = s->picture_number; s 878 libavcodec/ratecontrol.c RateControlContext *rcc = &s->rc_context; s 879 libavcodec/ratecontrol.c AVCodecContext *a = s->avctx; s 884 libavcodec/ratecontrol.c const int pict_type = s->pict_type; s 885 libavcodec/ratecontrol.c Picture * const pic = &s->current_picture; s 888 libavcodec/ratecontrol.c get_qminmax(&qmin, &qmax, s, pict_type); s 890 libavcodec/ratecontrol.c fps = get_fps(s->avctx); s 894 libavcodec/ratecontrol.c s->last_pict_type == AV_PICTURE_TYPE_I ? rcc->last_mb_var_sum s 896 libavcodec/ratecontrol.c av_assert1(s->frame_bits >= s->stuffing_bits); s 897 libavcodec/ratecontrol.c update_predictor(&rcc->pred[s->last_pict_type], s 900 libavcodec/ratecontrol.c s->frame_bits - s->stuffing_bits); s 903 libavcodec/ratecontrol.c if (s->avctx->flags & AV_CODEC_FLAG_PASS2) { s 906 libavcodec/ratecontrol.c av_log(s, AV_LOG_ERROR, "Input is longer than 2-pass log file\n"); s 918 libavcodec/ratecontrol.c if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) s 919 libavcodec/ratecontrol.c dts_pic = s->current_picture_ptr; s 921 libavcodec/ratecontrol.c dts_pic = s->last_picture_ptr; s 924 libavcodec/ratecontrol.c wanted_bits = (uint64_t)(s->bit_rate * (double)picture_number / fps); s 926 libavcodec/ratecontrol.c wanted_bits = (uint64_t)(s->bit_rate * (double)dts_pic->f->pts / fps); s 929 libavcodec/ratecontrol.c diff = s->total_bits - wanted_bits; s 937 libavcodec/ratecontrol.c if (s->avctx->flags & AV_CODEC_FLAG_PASS2) { s 942 libavcodec/ratecontrol.c ff_dlog(s, "%f %f %f last:%d var:%"PRId64" type:%d//\n", q, rce->new_qscale, s 943 libavcodec/ratecontrol.c br_compensation, s->frame_bits, var, pict_type); s 950 libavcodec/ratecontrol.c rce->f_code = s->f_code; s 951 libavcodec/ratecontrol.c rce->b_code = s->b_code; s 956 libavcodec/ratecontrol.c rce->i_count = s->mb_num; s 974 libavcodec/ratecontrol.c q = get_qscale(s, rce, rate_factor, picture_number); s 979 libavcodec/ratecontrol.c q = get_diff_limited_q(s, rce, q); s 983 libavcodec/ratecontrol.c if (pict_type == AV_PICTURE_TYPE_P || s->intra_only) { s 993 libavcodec/ratecontrol.c q = modify_qscale(s, rce, q, picture_number); s 995 libavcodec/ratecontrol.c rcc->pass1_wanted_bits += s->bit_rate / fps; s 1000 libavcodec/ratecontrol.c if (s->avctx->debug & FF_DEBUG_RC) { s 1001 libavcodec/ratecontrol.c av_log(s->avctx, AV_LOG_DEBUG, s 1006 libavcodec/ratecontrol.c wanted_bits / 1000, s->total_bits / 1000, s 1007 libavcodec/ratecontrol.c br_compensation, short_term_q, s->frame_bits, s 1009 libavcodec/ratecontrol.c s->bit_rate / 1000, (int)fps); s 1017 libavcodec/ratecontrol.c if (s->adaptive_quant) s 1018 libavcodec/ratecontrol.c adaptive_quantization(s, q); s 92 libavcodec/ratecontrol.h int ff_rate_control_init(struct MpegEncContext *s); s 93 libavcodec/ratecontrol.h float ff_rate_estimate_qscale(struct MpegEncContext *s, int dry_run); s 94 libavcodec/ratecontrol.h void ff_write_pass1_stats(struct MpegEncContext *s); s 95 libavcodec/ratecontrol.h void ff_rate_control_uninit(struct MpegEncContext *s); s 96 libavcodec/ratecontrol.h int ff_vbv_update(struct MpegEncContext *s, int frame_size); s 97 libavcodec/ratecontrol.h void ff_get_2pass_fcode(struct MpegEncContext *s); s 35 libavcodec/rdft.c static void rdft_calc_c(RDFTContext *s, FFTSample *data) s 39 libavcodec/rdft.c const int n = 1 << s->nbits; s 41 libavcodec/rdft.c const float k2 = 0.5 - s->inverse; s 42 libavcodec/rdft.c const FFTSample *tcos = s->tcos; s 43 libavcodec/rdft.c const FFTSample *tsin = s->tsin; s 45 libavcodec/rdft.c if (!s->inverse) { s 46 libavcodec/rdft.c s->fft.fft_permute(&s->fft, (FFTComplex*)data); s 47 libavcodec/rdft.c s->fft.fft_calc(&s->fft, (FFTComplex*)data); s 73 libavcodec/rdft.c if (s->negative_sin) { s 79 libavcodec/rdft.c data[2*i+1]=s->sign_convention*data[2*i+1]; s 80 libavcodec/rdft.c if (s->inverse) { s 83 libavcodec/rdft.c s->fft.fft_permute(&s->fft, (FFTComplex*)data); s 84 libavcodec/rdft.c s->fft.fft_calc(&s->fft, (FFTComplex*)data); s 88 libavcodec/rdft.c av_cold int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans) s 93 libavcodec/rdft.c s->nbits = nbits; s 94 libavcodec/rdft.c s->inverse = trans == IDFT_C2R || trans == DFT_C2R; s 95 libavcodec/rdft.c s->sign_convention = trans == IDFT_R2C || trans == DFT_C2R ? 1 : -1; s 96 libavcodec/rdft.c s->negative_sin = trans == DFT_C2R || trans == DFT_R2C; s 101 libavcodec/rdft.c if ((ret = ff_fft_init(&s->fft, nbits-1, trans == IDFT_C2R || trans == IDFT_R2C)) < 0) s 105 libavcodec/rdft.c s->tcos = ff_cos_tabs[nbits]; s 106 libavcodec/rdft.c s->tsin = ff_cos_tabs[nbits] + (n >> 2); s 107 libavcodec/rdft.c s->rdft_calc = rdft_calc_c; s 109 libavcodec/rdft.c if (ARCH_ARM) ff_rdft_init_arm(s); s 114 libavcodec/rdft.c av_cold void ff_rdft_end(RDFTContext *s) s 116 libavcodec/rdft.c ff_fft_end(&s->fft); s 38 libavcodec/rdft.h void (*rdft_calc)(struct RDFTContext *s, FFTSample *z); s 46 libavcodec/rdft.h int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans); s 47 libavcodec/rdft.h void ff_rdft_end(RDFTContext *s); s 49 libavcodec/rdft.h void ff_rdft_init_arm(RDFTContext *s); s 64 libavcodec/realtextdec.c FFASSDecoderContext *s = avctx->priv_data; s 69 libavcodec/realtextdec.c ret = ff_ass_add_rect(sub, buf.str, s->readorder++, 0, NULL, NULL); s 44 libavcodec/remove_extradata_bsf.c RemoveExtradataContext *s = ctx->priv_data; s 52 libavcodec/remove_extradata_bsf.c if (s->parser && s->parser->parser->split) { s 53 libavcodec/remove_extradata_bsf.c if (s->freq == REMOVE_FREQ_ALL || s 54 libavcodec/remove_extradata_bsf.c (s->freq == REMOVE_FREQ_NONKEYFRAME && !(pkt->flags & AV_PKT_FLAG_KEY)) || s 55 libavcodec/remove_extradata_bsf.c (s->freq == REMOVE_FREQ_KEYFRAME && pkt->flags & AV_PKT_FLAG_KEY)) { s 56 libavcodec/remove_extradata_bsf.c int i = s->parser->parser->split(s->avctx, pkt->data, pkt->size); s 67 libavcodec/remove_extradata_bsf.c RemoveExtradataContext *s = ctx->priv_data; s 70 libavcodec/remove_extradata_bsf.c s->parser = av_parser_init(ctx->par_in->codec_id); s 72 libavcodec/remove_extradata_bsf.c if (s->parser) { s 73 libavcodec/remove_extradata_bsf.c s->avctx = avcodec_alloc_context3(NULL); s 74 libavcodec/remove_extradata_bsf.c if (!s->avctx) s 77 libavcodec/remove_extradata_bsf.c ret = avcodec_parameters_to_context(s->avctx, ctx->par_in); s 87 libavcodec/remove_extradata_bsf.c RemoveExtradataContext *s = ctx->priv_data; s 89 libavcodec/remove_extradata_bsf.c avcodec_free_context(&s->avctx); s 90 libavcodec/remove_extradata_bsf.c av_parser_close(s->parser); s 60 libavcodec/rl2.c static void rl2_rle_decode(Rl2Context *s, const uint8_t *in, int size, s 63 libavcodec/rl2.c int base_x = video_base % s->avctx->width; s 64 libavcodec/rl2.c int base_y = video_base / s->avctx->width; s 65 libavcodec/rl2.c int stride_adj = stride - s->avctx->width; s 67 libavcodec/rl2.c const uint8_t *back_frame = s->back_frame; s 69 libavcodec/rl2.c const uint8_t *out_end = out + stride * s->avctx->height; s 74 libavcodec/rl2.c if (s->back_frame) s 75 libavcodec/rl2.c memcpy(out, back_frame, s->avctx->width); s 77 libavcodec/rl2.c back_frame += s->avctx->width; s 79 libavcodec/rl2.c back_frame += base_x - s->avctx->width; s 98 libavcodec/rl2.c if (s->back_frame) s 116 libavcodec/rl2.c if (s->back_frame) { s 134 libavcodec/rl2.c Rl2Context *s = avctx->priv_data; s 139 libavcodec/rl2.c s->avctx = avctx; s 153 libavcodec/rl2.c s->video_base = AV_RL16(&avctx->extradata[0]); s 154 libavcodec/rl2.c s->clr_count = AV_RL32(&avctx->extradata[2]); s 156 libavcodec/rl2.c if (s->video_base >= avctx->width * avctx->height) { s 163 libavcodec/rl2.c s->palette[i] = 0xFFU << 24 | AV_RB24(&avctx->extradata[6 + i * 3]); s 172 libavcodec/rl2.c rl2_rle_decode(s, avctx->extradata + EXTRADATA1_SIZE, back_size, s 174 libavcodec/rl2.c s->back_frame = back_frame; s 187 libavcodec/rl2.c Rl2Context *s = avctx->priv_data; s 193 libavcodec/rl2.c rl2_rle_decode(s, buf, buf_size, frame->data[0], frame->linesize[0], s 194 libavcodec/rl2.c s->video_base); s 197 libavcodec/rl2.c memcpy(frame->data[1], s->palette, AVPALETTE_SIZE); s 213 libavcodec/rl2.c Rl2Context *s = avctx->priv_data; s 215 libavcodec/rl2.c av_freep(&s->back_frame); s 173 libavcodec/roqvideodec.c RoqContext *s = avctx->priv_data; s 175 libavcodec/roqvideodec.c s->avctx = avctx; s 182 libavcodec/roqvideodec.c s->width = avctx->width; s 183 libavcodec/roqvideodec.c s->height = avctx->height; s 185 libavcodec/roqvideodec.c s->last_frame = av_frame_alloc(); s 186 libavcodec/roqvideodec.c s->current_frame = av_frame_alloc(); s 187 libavcodec/roqvideodec.c if (!s->current_frame || !s->last_frame) { s 188 libavcodec/roqvideodec.c av_frame_free(&s->current_frame); s 189 libavcodec/roqvideodec.c av_frame_free(&s->last_frame); s 205 libavcodec/roqvideodec.c RoqContext *s = avctx->priv_data; s 206 libavcodec/roqvideodec.c int copy = !s->current_frame->data[0] && s->last_frame->data[0]; s 209 libavcodec/roqvideodec.c if ((ret = ff_reget_buffer(avctx, s->current_frame, 0)) < 0) s 213 libavcodec/roqvideodec.c ret = av_frame_copy(s->current_frame, s->last_frame); s 218 libavcodec/roqvideodec.c bytestream2_init(&s->gb, buf, buf_size); s 219 libavcodec/roqvideodec.c roqvideo_decode_frame(s); s 221 libavcodec/roqvideodec.c if ((ret = av_frame_ref(data, s->current_frame)) < 0) s 226 libavcodec/roqvideodec.c FFSWAP(AVFrame *, s->current_frame, s->last_frame); s 233 libavcodec/roqvideodec.c RoqContext *s = avctx->priv_data; s 235 libavcodec/roqvideodec.c av_frame_free(&s->current_frame); s 236 libavcodec/roqvideodec.c av_frame_free(&s->last_frame); s 612 libavcodec/roqvideoenc.c static void write_typecode(CodingSpool *s, uint8_t type) s 614 libavcodec/roqvideoenc.c s->typeSpool |= (type & 3) << (14 - s->typeSpoolLength); s 615 libavcodec/roqvideoenc.c s->typeSpoolLength += 2; s 616 libavcodec/roqvideoenc.c if (s->typeSpoolLength == 16) { s 617 libavcodec/roqvideoenc.c bytestream_put_le16(s->pout, s->typeSpool); s 618 libavcodec/roqvideoenc.c bytestream_put_buffer(s->pout, s->argumentSpool, s 619 libavcodec/roqvideoenc.c s->args - s->argumentSpool); s 620 libavcodec/roqvideoenc.c s->typeSpoolLength = 0; s 621 libavcodec/roqvideoenc.c s->typeSpool = 0; s 622 libavcodec/roqvideoenc.c s->args = s->argumentSpool; s 57 libavcodec/rpza.c av_log(s->avctx, AV_LOG_ERROR, \ s 73 libavcodec/rpza.c static int rpza_decode_stream(RpzaContext *s) s 75 libavcodec/rpza.c int width = s->avctx->width; s 90 libavcodec/rpza.c if (bytestream2_peek_byte(&s->gb) != 0xe1) s 91 libavcodec/rpza.c av_log(s->avctx, AV_LOG_ERROR, "First chunk byte is 0x%02x instead of 0xe1\n", s 92 libavcodec/rpza.c bytestream2_peek_byte(&s->gb)); s 95 libavcodec/rpza.c chunk_size = bytestream2_get_be32(&s->gb) & 0x00FFFFFF; s 98 libavcodec/rpza.c if (chunk_size != bytestream2_get_bytes_left(&s->gb) + 4) s 99 libavcodec/rpza.c av_log(s->avctx, AV_LOG_WARNING, s 102 libavcodec/rpza.c bytestream2_get_bytes_left(&s->gb) + 4 s 106 libavcodec/rpza.c total_blocks = ((s->avctx->width + 3) / 4) * ((s->avctx->height + 3) / 4); s 108 libavcodec/rpza.c if (total_blocks / 32 > bytestream2_get_bytes_left(&s->gb)) s 111 libavcodec/rpza.c if ((ret = ff_reget_buffer(s->avctx, s->frame, 0)) < 0) s 113 libavcodec/rpza.c pixels = (uint16_t *)s->frame->data[0]; s 114 libavcodec/rpza.c stride = s->frame->linesize[0] / 2; s 118 libavcodec/rpza.c while (bytestream2_get_bytes_left(&s->gb)) { s 119 libavcodec/rpza.c uint8_t opcode = bytestream2_get_byte(&s->gb); /* Get opcode */ s 125 libavcodec/rpza.c colorA = (opcode << 8) | bytestream2_get_byte(&s->gb); s 127 libavcodec/rpza.c if ((bytestream2_peek_byte(&s->gb) & 0x80) != 0) { s 150 libavcodec/rpza.c colorA = bytestream2_get_be16(&s->gb); s 167 libavcodec/rpza.c colorA = bytestream2_get_be16(&s->gb); s 169 libavcodec/rpza.c colorB = bytestream2_get_be16(&s->gb); s 195 libavcodec/rpza.c if (bytestream2_get_bytes_left(&s->gb) < n_blocks * 4) s 201 libavcodec/rpza.c uint8_t index = bytestream2_get_byteu(&s->gb); s 215 libavcodec/rpza.c if (bytestream2_get_bytes_left(&s->gb) < 30) s 223 libavcodec/rpza.c colorA = bytestream2_get_be16u(&s->gb); s 234 libavcodec/rpza.c av_log(s->avctx, AV_LOG_ERROR, "Unknown opcode %d in rpza chunk." s 236 libavcodec/rpza.c bytestream2_get_bytes_left(&s->gb)); s 246 libavcodec/rpza.c RpzaContext *s = avctx->priv_data; s 248 libavcodec/rpza.c s->avctx = avctx; s 251 libavcodec/rpza.c s->frame = av_frame_alloc(); s 252 libavcodec/rpza.c if (!s->frame) s 262 libavcodec/rpza.c RpzaContext *s = avctx->priv_data; s 265 libavcodec/rpza.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 267 libavcodec/rpza.c ret = rpza_decode_stream(s); s 271 libavcodec/rpza.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 282 libavcodec/rpza.c RpzaContext *s = avctx->priv_data; s 284 libavcodec/rpza.c av_frame_free(&s->frame); s 198 libavcodec/rv10.c int ff_rv_decode_dc(MpegEncContext *s, int n) s 203 libavcodec/rv10.c code = get_vlc2(&s->gb, rv_dc_lum.table, DC_VLC_BITS, 2); s 208 libavcodec/rv10.c code = get_bits(&s->gb, 7); s 210 libavcodec/rv10.c code = (int8_t) (get_bits(&s->gb, 7) + 1); s 212 libavcodec/rv10.c code = -128 + get_bits(&s->gb, 7); s 214 libavcodec/rv10.c if (get_bits1(&s->gb) == 0) s 215 libavcodec/rv10.c code = (int8_t) (get_bits(&s->gb, 8) + 1); s 217 libavcodec/rv10.c code = (int8_t) (get_bits(&s->gb, 8)); s 219 libavcodec/rv10.c skip_bits(&s->gb, 11); s 226 libavcodec/rv10.c code = get_vlc2(&s->gb, rv_dc_chrom.table, DC_VLC_BITS, 2); s 229 libavcodec/rv10.c code = get_bits(&s->gb, 9); s 231 libavcodec/rv10.c code = (int8_t) (get_bits(&s->gb, 7) + 1); s 233 libavcodec/rv10.c code = -128 + get_bits(&s->gb, 7); s 235 libavcodec/rv10.c skip_bits(&s->gb, 9); s 238 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "chroma dc error\n"); s 249 libavcodec/rv10.c static int rv10_decode_picture_header(MpegEncContext *s) s 253 libavcodec/rv10.c marker = get_bits1(&s->gb); s 255 libavcodec/rv10.c if (get_bits1(&s->gb)) s 256 libavcodec/rv10.c s->pict_type = AV_PICTURE_TYPE_P; s 258 libavcodec/rv10.c s->pict_type = AV_PICTURE_TYPE_I; s 261 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "marker missing\n"); s 263 libavcodec/rv10.c pb_frame = get_bits1(&s->gb); s 265 libavcodec/rv10.c ff_dlog(s->avctx, "pict_type=%d pb_frame=%d\n", s->pict_type, pb_frame); s 268 libavcodec/rv10.c avpriv_request_sample(s->avctx, "PB-frame"); s 272 libavcodec/rv10.c s->qscale = get_bits(&s->gb, 5); s 273 libavcodec/rv10.c if (s->qscale == 0) { s 274 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "Invalid qscale value: 0\n"); s 278 libavcodec/rv10.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 279 libavcodec/rv10.c if (s->rv10_version == 3) { s 281 libavcodec/rv10.c s->last_dc[0] = get_bits(&s->gb, 8); s 282 libavcodec/rv10.c s->last_dc[1] = get_bits(&s->gb, 8); s 283 libavcodec/rv10.c s->last_dc[2] = get_bits(&s->gb, 8); s 284 libavcodec/rv10.c ff_dlog(s->avctx, "DC:%d %d %d\n", s->last_dc[0], s 285 libavcodec/rv10.c s->last_dc[1], s->last_dc[2]); s 291 libavcodec/rv10.c mb_xy = s->mb_x + s->mb_y * s->mb_width; s 292 libavcodec/rv10.c if (show_bits(&s->gb, 12) == 0 || (mb_xy && mb_xy < s->mb_num)) { s 293 libavcodec/rv10.c s->mb_x = get_bits(&s->gb, 6); /* mb_x */ s 294 libavcodec/rv10.c s->mb_y = get_bits(&s->gb, 6); /* mb_y */ s 295 libavcodec/rv10.c mb_count = get_bits(&s->gb, 12); s 297 libavcodec/rv10.c s->mb_x = 0; s 298 libavcodec/rv10.c s->mb_y = 0; s 299 libavcodec/rv10.c mb_count = s->mb_width * s->mb_height; s 301 libavcodec/rv10.c skip_bits(&s->gb, 3); /* ignored */ s 302 libavcodec/rv10.c s->f_code = 1; s 303 libavcodec/rv10.c s->unrestricted_mv = 1; s 310 libavcodec/rv10.c MpegEncContext *s = &rv->m; s 314 libavcodec/rv10.c i = get_bits(&s->gb, 2); s 317 libavcodec/rv10.c s->pict_type = AV_PICTURE_TYPE_I; s 320 libavcodec/rv10.c s->pict_type = AV_PICTURE_TYPE_I; s 323 libavcodec/rv10.c s->pict_type = AV_PICTURE_TYPE_P; s 326 libavcodec/rv10.c s->pict_type = AV_PICTURE_TYPE_B; s 329 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "unknown frame type\n"); s 333 libavcodec/rv10.c if (s->low_delay && s->pict_type == AV_PICTURE_TYPE_B) { s 334 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "low delay B\n"); s 337 libavcodec/rv10.c if (!s->last_picture_ptr && s->pict_type == AV_PICTURE_TYPE_B) { s 338 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "early B-frame\n"); s 342 libavcodec/rv10.c if (get_bits1(&s->gb)) { s 343 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "reserved bit set\n"); s 347 libavcodec/rv10.c s->qscale = get_bits(&s->gb, 5); s 348 libavcodec/rv10.c if (s->qscale == 0) { s 349 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "Invalid qscale value: 0\n"); s 354 libavcodec/rv10.c s->loop_filter = get_bits1(&s->gb) && !s->avctx->lowres; s 357 libavcodec/rv10.c seq = get_bits(&s->gb, 8) << 7; s 359 libavcodec/rv10.c seq = get_bits(&s->gb, 13) << 2; s 361 libavcodec/rv10.c rpr_max = s->avctx->extradata[1] & 7; s 366 libavcodec/rv10.c f = get_bits(&s->gb, rpr_bits); s 369 libavcodec/rv10.c if (s->avctx->extradata_size < 8 + 2 * f) { s 370 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "Extradata too small.\n"); s 374 libavcodec/rv10.c new_w = 4 * ((uint8_t *) s->avctx->extradata)[6 + 2 * f]; s 375 libavcodec/rv10.c new_h = 4 * ((uint8_t *) s->avctx->extradata)[7 + 2 * f]; s 380 libavcodec/rv10.c if (new_w != s->width || new_h != s->height) { s 381 libavcodec/rv10.c AVRational old_aspect = s->avctx->sample_aspect_ratio; s 382 libavcodec/rv10.c av_log(s->avctx, AV_LOG_DEBUG, s 384 libavcodec/rv10.c if (av_image_check_size(new_w, new_h, 0, s->avctx) < 0) s 386 libavcodec/rv10.c ff_mpv_common_end(s); s 391 libavcodec/rv10.c if (2 * (int64_t)new_w * s->height == (int64_t)new_h * s->width) s 392 libavcodec/rv10.c s->avctx->sample_aspect_ratio = av_mul_q(old_aspect, (AVRational){2, 1}); s 393 libavcodec/rv10.c if ((int64_t)new_w * s->height == 2 * (int64_t)new_h * s->width) s 394 libavcodec/rv10.c s->avctx->sample_aspect_ratio = av_mul_q(old_aspect, (AVRational){1, 2}); s 396 libavcodec/rv10.c ret = ff_set_dimensions(s->avctx, new_w, new_h); s 400 libavcodec/rv10.c s->width = new_w; s 401 libavcodec/rv10.c s->height = new_h; s 402 libavcodec/rv10.c if ((ret = ff_mpv_common_init(s)) < 0) s 406 libavcodec/rv10.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) { s 407 libavcodec/rv10.c av_log(s->avctx, AV_LOG_DEBUG, "F %d/%d/%d\n", f, rpr_bits, rpr_max); s 410 libavcodec/rv10.c if (av_image_check_size(s->width, s->height, 0, s->avctx) < 0) s 413 libavcodec/rv10.c mb_pos = ff_h263_decode_mba(s); s 415 libavcodec/rv10.c seq |= s->time & ~0x7FFF; s 416 libavcodec/rv10.c if (seq - s->time > 0x4000) s 418 libavcodec/rv10.c if (seq - s->time < -0x4000) s 421 libavcodec/rv10.c if (seq != s->time) { s 422 libavcodec/rv10.c if (s->pict_type != AV_PICTURE_TYPE_B) { s 423 libavcodec/rv10.c s->time = seq; s 424 libavcodec/rv10.c s->pp_time = s->time - s->last_non_b_time; s 425 libavcodec/rv10.c s->last_non_b_time = s->time; s 427 libavcodec/rv10.c s->time = seq; s 428 libavcodec/rv10.c s->pb_time = s->pp_time - (s->last_non_b_time - s->time); s 431 libavcodec/rv10.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 432 libavcodec/rv10.c if (s->pp_time <=s->pb_time || s->pp_time <= s->pp_time - s->pb_time || s->pp_time<=0) { s 433 libavcodec/rv10.c av_log(s->avctx, AV_LOG_DEBUG, s 438 libavcodec/rv10.c ff_mpeg4_init_direct_mv(s); s 441 libavcodec/rv10.c s->no_rounding = get_bits1(&s->gb); s 443 libavcodec/rv10.c if (RV_GET_MINOR_VER(rv->sub_id) <= 1 && s->pict_type == AV_PICTURE_TYPE_B) s 445 libavcodec/rv10.c skip_bits(&s->gb, 5); s 447 libavcodec/rv10.c s->f_code = 1; s 448 libavcodec/rv10.c s->unrestricted_mv = 1; s 449 libavcodec/rv10.c s->h263_aic = s->pict_type == AV_PICTURE_TYPE_I; s 450 libavcodec/rv10.c s->modified_quant = 1; s 451 libavcodec/rv10.c if (!s->avctx->lowres) s 452 libavcodec/rv10.c s->loop_filter = 1; s 454 libavcodec/rv10.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) { s 455 libavcodec/rv10.c av_log(s->avctx, AV_LOG_INFO, s 457 libavcodec/rv10.c seq, s->mb_x, s->mb_y, s->pict_type, s->qscale, s 458 libavcodec/rv10.c s->no_rounding); s 461 libavcodec/rv10.c av_assert0(s->pict_type != AV_PICTURE_TYPE_B || !s->low_delay); s 463 libavcodec/rv10.c return s->mb_width * s->mb_height - mb_pos; s 469 libavcodec/rv10.c MpegEncContext *s = &rv->m; s 481 libavcodec/rv10.c ff_mpv_decode_defaults(s); s 482 libavcodec/rv10.c ff_mpv_decode_init(s, avctx); s 484 libavcodec/rv10.c s->out_format = FMT_H263; s 487 libavcodec/rv10.c s->width = avctx->coded_width; s 489 libavcodec/rv10.c s->height = avctx->coded_height; s 491 libavcodec/rv10.c s->h263_long_vectors = ((uint8_t *) avctx->extradata)[3] & 1; s 498 libavcodec/rv10.c s->low_delay = 1; s 501 libavcodec/rv10.c s->rv10_version = micro_ver ? 3 : 1; s 502 libavcodec/rv10.c s->obmc = micro_ver == 2; s 506 libavcodec/rv10.c s->low_delay = 0; s 507 libavcodec/rv10.c s->avctx->has_b_frames = 1; s 511 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "unknown header %X\n", rv->sub_id); s 523 libavcodec/rv10.c ff_mpv_idct_init(s); s 524 libavcodec/rv10.c if ((ret = ff_mpv_common_init(s)) < 0) s 527 libavcodec/rv10.c ff_h263dsp_init(&s->h263dsp); s 546 libavcodec/rv10.c MpegEncContext *s = avctx->priv_data; s 548 libavcodec/rv10.c ff_mpv_common_end(s); s 556 libavcodec/rv10.c MpegEncContext *s = &rv->m; s 560 libavcodec/rv10.c init_get_bits(&s->gb, buf, FFMAX(buf_size, buf_size2) * 8); s 561 libavcodec/rv10.c if (s->codec_id == AV_CODEC_ID_RV10) s 562 libavcodec/rv10.c mb_count = rv10_decode_picture_header(s); s 567 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "HEADER ERROR\n"); s 571 libavcodec/rv10.c if (s->mb_x >= s->mb_width || s 572 libavcodec/rv10.c s->mb_y >= s->mb_height) { s 573 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "POS ERROR %d %d\n", s->mb_x, s->mb_y); s 576 libavcodec/rv10.c mb_pos = s->mb_y * s->mb_width + s->mb_x; s 577 libavcodec/rv10.c left = s->mb_width * s->mb_height - mb_pos; s 579 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "COUNT ERROR\n"); s 583 libavcodec/rv10.c if (whole_size < s->mb_width * s->mb_height / 8) s 586 libavcodec/rv10.c if ((s->mb_x == 0 && s->mb_y == 0) || !s->current_picture_ptr) { s 588 libavcodec/rv10.c if (s->current_picture_ptr) { s 589 libavcodec/rv10.c ff_er_frame_end(&s->er); s 590 libavcodec/rv10.c ff_mpv_frame_end(s); s 591 libavcodec/rv10.c s->mb_x = s->mb_y = s->resync_mb_x = s->resync_mb_y = 0; s 593 libavcodec/rv10.c if ((ret = ff_mpv_frame_start(s, avctx)) < 0) s 595 libavcodec/rv10.c ff_mpeg_er_frame_start(s); s 597 libavcodec/rv10.c if (s->current_picture_ptr->f->pict_type != s->pict_type) { s 598 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "Slice type mismatch\n"); s 604 libavcodec/rv10.c ff_dlog(avctx, "qscale=%d\n", s->qscale); s 607 libavcodec/rv10.c if (s->codec_id == AV_CODEC_ID_RV10) { s 608 libavcodec/rv10.c if (s->mb_y == 0) s 609 libavcodec/rv10.c s->first_slice_line = 1; s 611 libavcodec/rv10.c s->first_slice_line = 1; s 612 libavcodec/rv10.c s->resync_mb_x = s->mb_x; s 614 libavcodec/rv10.c start_mb_x = s->mb_x; s 615 libavcodec/rv10.c s->resync_mb_y = s->mb_y; s 616 libavcodec/rv10.c if (s->h263_aic) { s 617 libavcodec/rv10.c s->y_dc_scale_table = s 618 libavcodec/rv10.c s->c_dc_scale_table = ff_aic_dc_scale_table; s 620 libavcodec/rv10.c s->y_dc_scale_table = s 621 libavcodec/rv10.c s->c_dc_scale_table = ff_mpeg1_dc_scale_table; s 624 libavcodec/rv10.c if (s->modified_quant) s 625 libavcodec/rv10.c s->chroma_qscale_table = ff_h263_chroma_qscale_table; s 627 libavcodec/rv10.c ff_set_qscale(s, s->qscale); s 629 libavcodec/rv10.c s->rv10_first_dc_coded[0] = 0; s 630 libavcodec/rv10.c s->rv10_first_dc_coded[1] = 0; s 631 libavcodec/rv10.c s->rv10_first_dc_coded[2] = 0; s 632 libavcodec/rv10.c s->block_wrap[0] = s 633 libavcodec/rv10.c s->block_wrap[1] = s 634 libavcodec/rv10.c s->block_wrap[2] = s 635 libavcodec/rv10.c s->block_wrap[3] = s->b8_stride; s 636 libavcodec/rv10.c s->block_wrap[4] = s 637 libavcodec/rv10.c s->block_wrap[5] = s->mb_stride; s 638 libavcodec/rv10.c ff_init_block_index(s); s 641 libavcodec/rv10.c for (s->mb_num_left = mb_count; s->mb_num_left > 0; s->mb_num_left--) { s 643 libavcodec/rv10.c ff_update_block_index(s); s 644 libavcodec/rv10.c ff_tlog(avctx, "**mb x=%d y=%d\n", s->mb_x, s->mb_y); s 646 libavcodec/rv10.c s->mv_dir = MV_DIR_FORWARD; s 647 libavcodec/rv10.c s->mv_type = MV_TYPE_16X16; s 648 libavcodec/rv10.c ret = ff_h263_decode_mb(s, s->block); s 652 libavcodec/rv10.c if (ret != SLICE_ERROR && active_bits_size >= get_bits_count(&s->gb)) { s 653 libavcodec/rv10.c int v = show_bits(&s->gb, 16); s 655 libavcodec/rv10.c if (get_bits_count(&s->gb) + 16 > active_bits_size) s 656 libavcodec/rv10.c v >>= get_bits_count(&s->gb) + 16 - active_bits_size; s 661 libavcodec/rv10.c if (ret != SLICE_ERROR && active_bits_size < get_bits_count(&s->gb) && s 662 libavcodec/rv10.c 8 * buf_size2 >= get_bits_count(&s->gb)) { s 669 libavcodec/rv10.c if (ret == SLICE_ERROR || active_bits_size < get_bits_count(&s->gb)) { s 670 libavcodec/rv10.c av_log(s->avctx, AV_LOG_ERROR, "ERROR at MB %d %d\n", s->mb_x, s 671 libavcodec/rv10.c s->mb_y); s 674 libavcodec/rv10.c if (s->pict_type != AV_PICTURE_TYPE_B) s 675 libavcodec/rv10.c ff_h263_update_motion_val(s); s 676 libavcodec/rv10.c ff_mpv_reconstruct_mb(s, s->block); s 677 libavcodec/rv10.c if (s->loop_filter) s 678 libavcodec/rv10.c ff_h263_loop_filter(s); s 680 libavcodec/rv10.c if (++s->mb_x == s->mb_width) { s 681 libavcodec/rv10.c s->mb_x = 0; s 682 libavcodec/rv10.c s->mb_y++; s 683 libavcodec/rv10.c ff_init_block_index(s); s 685 libavcodec/rv10.c if (s->mb_x == s->resync_mb_x) s 686 libavcodec/rv10.c s->first_slice_line = 0; s 691 libavcodec/rv10.c ff_er_add_slice(&s->er, start_mb_x, s->resync_mb_y, s->mb_x - 1, s->mb_y, s 710 libavcodec/rv10.c MpegEncContext *s = avctx->priv_data; s 767 libavcodec/rv10.c if (s->current_picture_ptr && s->mb_y >= s->mb_height) { s 768 libavcodec/rv10.c ff_er_frame_end(&s->er); s 769 libavcodec/rv10.c ff_mpv_frame_end(s); s 771 libavcodec/rv10.c if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) { s 772 libavcodec/rv10.c if ((ret = av_frame_ref(pict, s->current_picture_ptr->f)) < 0) s 774 libavcodec/rv10.c ff_print_debug_info(s, s->current_picture_ptr, pict); s 775 libavcodec/rv10.c ff_mpv_export_qp_table(s, pict, s->current_picture_ptr, FF_QSCALE_TYPE_MPEG1); s 776 libavcodec/rv10.c } else if (s->last_picture_ptr) { s 777 libavcodec/rv10.c if ((ret = av_frame_ref(pict, s->last_picture_ptr->f)) < 0) s 779 libavcodec/rv10.c ff_print_debug_info(s, s->last_picture_ptr, pict); s 780 libavcodec/rv10.c ff_mpv_export_qp_table(s, pict,s->last_picture_ptr, FF_QSCALE_TYPE_MPEG1); s 783 libavcodec/rv10.c if (s->last_picture_ptr || s->low_delay) { s 788 libavcodec/rv10.c s->current_picture_ptr = NULL; s 28 libavcodec/rv10.h int ff_rv_decode_dc(MpegEncContext *s, int n); s 30 libavcodec/rv10.h int ff_rv10_encode_picture_header(MpegEncContext *s, int picture_number); s 31 libavcodec/rv10.h void ff_rv20_encode_picture_header(MpegEncContext *s, int picture_number); s 32 libavcodec/rv10enc.c int ff_rv10_encode_picture_header(MpegEncContext *s, int picture_number) s 36 libavcodec/rv10enc.c avpriv_align_put_bits(&s->pb); s 38 libavcodec/rv10enc.c put_bits(&s->pb, 1, 1); /* marker */ s 40 libavcodec/rv10enc.c put_bits(&s->pb, 1, (s->pict_type == AV_PICTURE_TYPE_P)); s 42 libavcodec/rv10enc.c put_bits(&s->pb, 1, 0); /* not PB-mframe */ s 44 libavcodec/rv10enc.c put_bits(&s->pb, 5, s->qscale); s 46 libavcodec/rv10enc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 52 libavcodec/rv10enc.c if (s->mb_width * s->mb_height >= (1U << 12)) { s 53 libavcodec/rv10enc.c avpriv_report_missing_feature(s->avctx, "Encoding frames with %d (>= 4096) macroblocks", s 54 libavcodec/rv10enc.c s->mb_width * s->mb_height); s 57 libavcodec/rv10enc.c put_bits(&s->pb, 6, 0); /* mb_x */ s 58 libavcodec/rv10enc.c put_bits(&s->pb, 6, 0); /* mb_y */ s 59 libavcodec/rv10enc.c put_bits(&s->pb, 12, s->mb_width * s->mb_height); s 62 libavcodec/rv10enc.c put_bits(&s->pb, 3, 0); /* ignored */ s 35 libavcodec/rv20enc.c void ff_rv20_encode_picture_header(MpegEncContext *s, int picture_number){ s 36 libavcodec/rv20enc.c put_bits(&s->pb, 2, s->pict_type); //I 0 vs. 1 ? s 37 libavcodec/rv20enc.c put_bits(&s->pb, 1, 0); /* unknown bit */ s 38 libavcodec/rv20enc.c put_bits(&s->pb, 5, s->qscale); s 40 libavcodec/rv20enc.c put_sbits(&s->pb, 8, picture_number); //FIXME wrong, but correct is not known s 41 libavcodec/rv20enc.c s->mb_x= s->mb_y= 0; s 42 libavcodec/rv20enc.c ff_h263_encode_mba(s); s 44 libavcodec/rv20enc.c put_bits(&s->pb, 1, s->no_rounding); s 46 libavcodec/rv20enc.c av_assert0(s->f_code == 1); s 47 libavcodec/rv20enc.c av_assert0(s->unrestricted_mv == 0); s 48 libavcodec/rv20enc.c av_assert0(s->alt_inter_vlc == 0); s 49 libavcodec/rv20enc.c av_assert0(s->umvplus == 0); s 50 libavcodec/rv20enc.c av_assert0(s->modified_quant==1); s 51 libavcodec/rv20enc.c av_assert0(s->loop_filter==1); s 53 libavcodec/rv20enc.c s->h263_aic= s->pict_type == AV_PICTURE_TYPE_I; s 54 libavcodec/rv20enc.c if(s->h263_aic){ s 55 libavcodec/rv20enc.c s->y_dc_scale_table= s 56 libavcodec/rv20enc.c s->c_dc_scale_table= ff_aic_dc_scale_table; s 58 libavcodec/rv20enc.c s->y_dc_scale_table= s 59 libavcodec/rv20enc.c s->c_dc_scale_table= ff_mpeg1_dc_scale_table; s 38 libavcodec/rv30.c AVCodecContext *avctx = r->s.avctx; s 40 libavcodec/rv30.c int w = r->s.width, h = r->s.height; s 68 libavcodec/rv30.c w = r->s.avctx->extradata[6 + rpr*2] << 2; s 69 libavcodec/rv30.c h = r->s.avctx->extradata[7 + rpr*2] << 2; s 94 libavcodec/rv30.c av_log(r->s.avctx, AV_LOG_ERROR, "Incorrect intra prediction code\n"); s 102 libavcodec/rv30.c av_log(r->s.avctx, AV_LOG_ERROR, "Incorrect intra prediction mode\n"); s 118 libavcodec/rv30.c MpegEncContext *s = &r->s; s 119 libavcodec/rv30.c GetBitContext *gb = &s->gb; s 123 libavcodec/rv30.c av_log(s->avctx, AV_LOG_ERROR, "Incorrect MB type code\n"); s 127 libavcodec/rv30.c av_log(s->avctx, AV_LOG_ERROR, "dquant needed\n"); s 130 libavcodec/rv30.c if(s->pict_type != AV_PICTURE_TYPE_B) s 153 libavcodec/rv30.c MpegEncContext *s = &r->s; s 159 libavcodec/rv30.c mb_pos = row * s->mb_stride; s 160 libavcodec/rv30.c for(mb_x = 0; mb_x < s->mb_width; mb_x++, mb_pos++){ s 161 libavcodec/rv30.c int mbtype = s->current_picture_ptr->mb_type[mb_pos]; s 171 libavcodec/rv30.c mb_pos = row * s->mb_stride; s 172 libavcodec/rv30.c for(mb_x = 0; mb_x < s->mb_width; mb_x++, mb_pos++){ s 173 libavcodec/rv30.c cur_lim = rv30_loop_filt_lim[s->current_picture_ptr->qscale_table[mb_pos]]; s 175 libavcodec/rv30.c left_lim = rv30_loop_filt_lim[s->current_picture_ptr->qscale_table[mb_pos - 1]]; s 177 libavcodec/rv30.c Y = s->current_picture_ptr->f->data[0] + mb_x*16 + (row*16 + j) * s->linesize + 4 * !mb_x; s 188 libavcodec/rv30.c rv30_weak_loop_filter(Y, 1, s->linesize, loc_lim); s 197 libavcodec/rv30.c C = s->current_picture_ptr->f->data[k + 1] + mb_x*8 + (row*8 + j) * s->uvlinesize + 4 * !mb_x; s 208 libavcodec/rv30.c rv30_weak_loop_filter(C, 1, s->uvlinesize, loc_lim); s 213 libavcodec/rv30.c mb_pos = row * s->mb_stride; s 214 libavcodec/rv30.c for(mb_x = 0; mb_x < s->mb_width; mb_x++, mb_pos++){ s 215 libavcodec/rv30.c cur_lim = rv30_loop_filt_lim[s->current_picture_ptr->qscale_table[mb_pos]]; s 217 libavcodec/rv30.c top_lim = rv30_loop_filt_lim[s->current_picture_ptr->qscale_table[mb_pos - s->mb_stride]]; s 219 libavcodec/rv30.c Y = s->current_picture_ptr->f->data[0] + mb_x*16 + (row*16 + j) * s->linesize; s 225 libavcodec/rv30.c else if(!j && r->deblock_coefs[mb_pos - s->mb_stride] & (1 << (ij + 12))) s 230 libavcodec/rv30.c rv30_weak_loop_filter(Y, s->linesize, 1, loc_lim); s 237 libavcodec/rv30.c top_cbp = (r->cbp_chroma[mb_pos - s->mb_stride] >> (k*4)) & 0xF; s 239 libavcodec/rv30.c C = s->current_picture_ptr->f->data[k+1] + mb_x*8 + (row*8 + j) * s->uvlinesize; s 250 libavcodec/rv30.c rv30_weak_loop_filter(C, s->uvlinesize, 1, loc_lim); s 355 libavcodec/rv34.c MpegEncContext *s = &r->s; s 356 libavcodec/rv34.c GetBitContext *gb = &s->gb; s 357 libavcodec/rv34.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 362 libavcodec/rv34.c s->current_picture_ptr->mb_type[mb_pos] = MB_TYPE_INTRA16x16; s 370 libavcodec/rv34.c av_log(s->avctx, AV_LOG_ERROR, "Need DQUANT\n"); s 372 libavcodec/rv34.c s->current_picture_ptr->mb_type[mb_pos] = MB_TYPE_INTRA; s 390 libavcodec/rv34.c MpegEncContext *s = &r->s; s 391 libavcodec/rv34.c GetBitContext *gb = &s->gb; s 392 libavcodec/rv34.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 398 libavcodec/rv34.c s->current_picture_ptr->mb_type[mb_pos] = rv34_mb_type_to_lavc[r->block_type]; s 401 libavcodec/rv34.c if(s->pict_type == AV_PICTURE_TYPE_P) s 403 libavcodec/rv34.c if(s->pict_type == AV_PICTURE_TYPE_B) s 406 libavcodec/rv34.c r->is16 = !!IS_INTRA16x16(s->current_picture_ptr->mb_type[mb_pos]); s 416 libavcodec/rv34.c if(IS_INTRA(s->current_picture_ptr->mb_type[mb_pos])){ s 468 libavcodec/rv34.c MpegEncContext *s = &r->s; s 469 libavcodec/rv34.c int mv_pos = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride; s 476 libavcodec/rv34.c mv_pos += (subblock_no & 1) + (subblock_no >> 1)*s->b8_stride; s 481 libavcodec/rv34.c A[0] = s->current_picture_ptr->motion_val[0][mv_pos-1][0]; s 482 libavcodec/rv34.c A[1] = s->current_picture_ptr->motion_val[0][mv_pos-1][1]; s 485 libavcodec/rv34.c B[0] = s->current_picture_ptr->motion_val[0][mv_pos-s->b8_stride][0]; s 486 libavcodec/rv34.c B[1] = s->current_picture_ptr->motion_val[0][mv_pos-s->b8_stride][1]; s 493 libavcodec/rv34.c C[0] = s->current_picture_ptr->motion_val[0][mv_pos-s->b8_stride-1][0]; s 494 libavcodec/rv34.c C[1] = s->current_picture_ptr->motion_val[0][mv_pos-s->b8_stride-1][1]; s 500 libavcodec/rv34.c C[0] = s->current_picture_ptr->motion_val[0][mv_pos-s->b8_stride+c_off][0]; s 501 libavcodec/rv34.c C[1] = s->current_picture_ptr->motion_val[0][mv_pos-s->b8_stride+c_off][1]; s 509 libavcodec/rv34.c s->current_picture_ptr->motion_val[0][mv_pos + i + j*s->b8_stride][0] = mx; s 510 libavcodec/rv34.c s->current_picture_ptr->motion_val[0][mv_pos + i + j*s->b8_stride][1] = my; s 552 libavcodec/rv34.c MpegEncContext *s = &r->s; s 553 libavcodec/rv34.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 554 libavcodec/rv34.c int mv_pos = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride; s 559 libavcodec/rv34.c Picture *cur_pic = s->current_picture_ptr; s 569 libavcodec/rv34.c B[0] = cur_pic->motion_val[dir][mv_pos - s->b8_stride][0]; s 570 libavcodec/rv34.c B[1] = cur_pic->motion_val[dir][mv_pos - s->b8_stride][1]; s 574 libavcodec/rv34.c C[0] = cur_pic->motion_val[dir][mv_pos - s->b8_stride + 2][0]; s 575 libavcodec/rv34.c C[1] = cur_pic->motion_val[dir][mv_pos - s->b8_stride + 2][1]; s 577 libavcodec/rv34.c }else if((s->mb_x+1) == s->mb_width && (r->avail_cache[6-5] & type) & mask){ s 578 libavcodec/rv34.c C[0] = cur_pic->motion_val[dir][mv_pos - s->b8_stride - 1][0]; s 579 libavcodec/rv34.c C[1] = cur_pic->motion_val[dir][mv_pos - s->b8_stride - 1][1]; s 590 libavcodec/rv34.c cur_pic->motion_val[dir][mv_pos + i + j*s->b8_stride][0] = mx; s 591 libavcodec/rv34.c cur_pic->motion_val[dir][mv_pos + i + j*s->b8_stride][1] = my; s 595 libavcodec/rv34.c ZERO8x2(cur_pic->motion_val[!dir][mv_pos], s->b8_stride); s 604 libavcodec/rv34.c MpegEncContext *s = &r->s; s 605 libavcodec/rv34.c int mv_pos = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride; s 612 libavcodec/rv34.c A[0] = s->current_picture_ptr->motion_val[0][mv_pos - 1][0]; s 613 libavcodec/rv34.c A[1] = s->current_picture_ptr->motion_val[0][mv_pos - 1][1]; s 616 libavcodec/rv34.c B[0] = s->current_picture_ptr->motion_val[0][mv_pos - s->b8_stride][0]; s 617 libavcodec/rv34.c B[1] = s->current_picture_ptr->motion_val[0][mv_pos - s->b8_stride][1]; s 624 libavcodec/rv34.c C[0] = s->current_picture_ptr->motion_val[0][mv_pos - s->b8_stride - 1][0]; s 625 libavcodec/rv34.c C[1] = s->current_picture_ptr->motion_val[0][mv_pos - s->b8_stride - 1][1]; s 631 libavcodec/rv34.c C[0] = s->current_picture_ptr->motion_val[0][mv_pos - s->b8_stride + 2][0]; s 632 libavcodec/rv34.c C[1] = s->current_picture_ptr->motion_val[0][mv_pos - s->b8_stride + 2][1]; s 641 libavcodec/rv34.c s->current_picture_ptr->motion_val[k][mv_pos + i + j*s->b8_stride][0] = mx; s 642 libavcodec/rv34.c s->current_picture_ptr->motion_val[k][mv_pos + i + j*s->b8_stride][1] = my; s 672 libavcodec/rv34.c MpegEncContext *s = &r->s; s 675 libavcodec/rv34.c int mv_pos = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride + mv_off; s 681 libavcodec/rv34.c mx = (s->current_picture_ptr->motion_val[dir][mv_pos][0] + (3 << 24)) / 3 - (1 << 24); s 682 libavcodec/rv34.c my = (s->current_picture_ptr->motion_val[dir][mv_pos][1] + (3 << 24)) / 3 - (1 << 24); s 683 libavcodec/rv34.c lx = (s->current_picture_ptr->motion_val[dir][mv_pos][0] + (3 << 24)) % 3; s 684 libavcodec/rv34.c ly = (s->current_picture_ptr->motion_val[dir][mv_pos][1] + (3 << 24)) % 3; s 685 libavcodec/rv34.c chroma_mx = s->current_picture_ptr->motion_val[dir][mv_pos][0] / 2; s 686 libavcodec/rv34.c chroma_my = s->current_picture_ptr->motion_val[dir][mv_pos][1] / 2; s 693 libavcodec/rv34.c mx = s->current_picture_ptr->motion_val[dir][mv_pos][0] >> 2; s 694 libavcodec/rv34.c my = s->current_picture_ptr->motion_val[dir][mv_pos][1] >> 2; s 695 libavcodec/rv34.c lx = s->current_picture_ptr->motion_val[dir][mv_pos][0] & 3; s 696 libavcodec/rv34.c ly = s->current_picture_ptr->motion_val[dir][mv_pos][1] & 3; s 697 libavcodec/rv34.c cx = s->current_picture_ptr->motion_val[dir][mv_pos][0] / 2; s 698 libavcodec/rv34.c cy = s->current_picture_ptr->motion_val[dir][mv_pos][1] / 2; s 708 libavcodec/rv34.c if (HAVE_THREADS && (s->avctx->active_thread_type & FF_THREAD_FRAME)) { s 710 libavcodec/rv34.c int mb_row = s->mb_y + ((yoff + my + 5 + 8 * height) >> 4); s 711 libavcodec/rv34.c ThreadFrame *f = dir ? &s->next_picture_ptr->tf : &s->last_picture_ptr->tf; s 716 libavcodec/rv34.c srcY = dir ? s->next_picture_ptr->f->data[0] : s->last_picture_ptr->f->data[0]; s 717 libavcodec/rv34.c srcU = dir ? s->next_picture_ptr->f->data[1] : s->last_picture_ptr->f->data[1]; s 718 libavcodec/rv34.c srcV = dir ? s->next_picture_ptr->f->data[2] : s->last_picture_ptr->f->data[2]; s 719 libavcodec/rv34.c src_x = s->mb_x * 16 + xoff + mx; s 720 libavcodec/rv34.c src_y = s->mb_y * 16 + yoff + my; s 721 libavcodec/rv34.c uvsrc_x = s->mb_x * 8 + (xoff >> 1) + umx; s 722 libavcodec/rv34.c uvsrc_y = s->mb_y * 8 + (yoff >> 1) + umy; s 723 libavcodec/rv34.c srcY += src_y * s->linesize + src_x; s 724 libavcodec/rv34.c srcU += uvsrc_y * s->uvlinesize + uvsrc_x; s 725 libavcodec/rv34.c srcV += uvsrc_y * s->uvlinesize + uvsrc_x; s 726 libavcodec/rv34.c if(s->h_edge_pos - (width << 3) < 6 || s->v_edge_pos - (height << 3) < 6 || s 727 libavcodec/rv34.c (unsigned)(src_x - !!lx*2) > s->h_edge_pos - !!lx*2 - (width <<3) - 4 || s 728 libavcodec/rv34.c (unsigned)(src_y - !!ly*2) > s->v_edge_pos - !!ly*2 - (height<<3) - 4) { s 729 libavcodec/rv34.c srcY -= 2 + 2*s->linesize; s 730 libavcodec/rv34.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, srcY, s 731 libavcodec/rv34.c s->linesize, s->linesize, s 734 libavcodec/rv34.c s->h_edge_pos, s->v_edge_pos); s 735 libavcodec/rv34.c srcY = s->sc.edge_emu_buffer + 2 + 2*s->linesize; s 739 libavcodec/rv34.c Y = s->dest[0] + xoff + yoff *s->linesize; s 740 libavcodec/rv34.c U = s->dest[1] + (xoff>>1) + (yoff>>1)*s->uvlinesize; s 741 libavcodec/rv34.c V = s->dest[2] + (xoff>>1) + (yoff>>1)*s->uvlinesize; s 743 libavcodec/rv34.c Y = r->tmp_b_block_y [dir] + xoff + yoff *s->linesize; s 744 libavcodec/rv34.c U = r->tmp_b_block_uv[dir*2] + (xoff>>1) + (yoff>>1)*s->uvlinesize; s 745 libavcodec/rv34.c V = r->tmp_b_block_uv[dir*2+1] + (xoff>>1) + (yoff>>1)*s->uvlinesize; s 749 libavcodec/rv34.c qpel_mc[1][dxy](Y, srcY, s->linesize); s 753 libavcodec/rv34.c qpel_mc[1][dxy](Y, srcY, s->linesize); s 754 libavcodec/rv34.c Y += 8 * s->linesize; s 755 libavcodec/rv34.c srcY += 8 * s->linesize; s 758 libavcodec/rv34.c qpel_mc[!is16x16][dxy](Y, srcY, s->linesize); s 760 libavcodec/rv34.c uint8_t *uvbuf = s->sc.edge_emu_buffer; s 762 libavcodec/rv34.c s->vdsp.emulated_edge_mc(uvbuf, srcU, s 763 libavcodec/rv34.c s->uvlinesize, s->uvlinesize, s 766 libavcodec/rv34.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 768 libavcodec/rv34.c uvbuf += 9*s->uvlinesize; s 770 libavcodec/rv34.c s->vdsp.emulated_edge_mc(uvbuf, srcV, s 771 libavcodec/rv34.c s->uvlinesize, s->uvlinesize, s 774 libavcodec/rv34.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 777 libavcodec/rv34.c chroma_mc[2-width] (U, srcU, s->uvlinesize, height*4, uvmx, uvmy); s 778 libavcodec/rv34.c chroma_mc[2-width] (V, srcV, s->uvlinesize, height*4, uvmx, uvmy); s 792 libavcodec/rv34.c r->rdsp.rv40_weight_pixels_tab[r->scaled_weight][0](r->s.dest[0], s 797 libavcodec/rv34.c r->s.linesize); s 798 libavcodec/rv34.c r->rdsp.rv40_weight_pixels_tab[r->scaled_weight][1](r->s.dest[1], s 803 libavcodec/rv34.c r->s.uvlinesize); s 804 libavcodec/rv34.c r->rdsp.rv40_weight_pixels_tab[r->scaled_weight][1](r->s.dest[2], s 809 libavcodec/rv34.c r->s.uvlinesize); s 838 libavcodec/rv34.c rv34_mc(r, RV34_MB_P_8x8, i*8, j*8, i+j*r->s.b8_stride, 1, 1, 0, r->rv30, s 842 libavcodec/rv34.c rv34_mc(r, RV34_MB_P_8x8, i*8, j*8, i+j*r->s.b8_stride, 1, 1, 1, r->rv30, s 860 libavcodec/rv34.c MpegEncContext *s = &r->s; s 861 libavcodec/rv34.c GetBitContext *gb = &s->gb; s 863 libavcodec/rv34.c int mv_pos = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride; s 879 libavcodec/rv34.c ZERO8x2(s->current_picture_ptr->motion_val[0][s->mb_x * 2 + s->mb_y * 2 * s->b8_stride], s->b8_stride); s 882 libavcodec/rv34.c if(s->pict_type == AV_PICTURE_TYPE_P){ s 883 libavcodec/rv34.c ZERO8x2(s->current_picture_ptr->motion_val[0][s->mb_x * 2 + s->mb_y * 2 * s->b8_stride], s->b8_stride); s 890 libavcodec/rv34.c if (HAVE_THREADS && (s->avctx->active_thread_type & FF_THREAD_FRAME)) s 891 libavcodec/rv34.c ff_thread_await_progress(&s->next_picture_ptr->tf, FFMAX(0, s->mb_y-1), 0); s 893 libavcodec/rv34.c next_bt = s->next_picture_ptr->mb_type[s->mb_x + s->mb_y * s->mb_stride]; s 895 libavcodec/rv34.c ZERO8x2(s->current_picture_ptr->motion_val[0][s->mb_x * 2 + s->mb_y * 2 * s->b8_stride], s->b8_stride); s 896 libavcodec/rv34.c ZERO8x2(s->current_picture_ptr->motion_val[1][s->mb_x * 2 + s->mb_y * 2 * s->b8_stride], s->b8_stride); s 902 libavcodec/rv34.c s->current_picture_ptr->motion_val[l][mv_pos + i + j*s->b8_stride][k] = calc_add_mv(r, l, s->next_picture_ptr->motion_val[0][mv_pos + i + j*s->b8_stride][k]); s 907 libavcodec/rv34.c ZERO8x2(s->current_picture_ptr->motion_val[0][s->mb_x * 2 + s->mb_y * 2 * s->b8_stride], s->b8_stride); s 930 libavcodec/rv34.c rv34_mc_1mv(r, block_type, 0, 8, s->b8_stride, 2, 1, 0); s 945 libavcodec/rv34.c rv34_mc_1mv (r, block_type, (i&1)<<3, (i&2)<<2, (i&1)+(i>>1)*s->b8_stride, 1, 1, 0); s 1019 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1020 libavcodec/rv34.c int16_t *ptr = s->block[0]; s 1021 libavcodec/rv34.c int has_ac = rv34_decode_block(ptr, &s->gb, r->cur_vlcs, s 1034 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1035 libavcodec/rv34.c GetBitContext *gb = &s->gb; s 1036 libavcodec/rv34.c int q_dc = rv34_qscale_tab[ r->luma_dc_quant_i[s->qscale] ], s 1037 libavcodec/rv34.c q_ac = rv34_qscale_tab[s->qscale]; s 1038 libavcodec/rv34.c uint8_t *dst = s->dest[0]; s 1039 libavcodec/rv34.c int16_t *ptr = s->block[0]; s 1052 libavcodec/rv34.c r->h.pred16x16[itype](dst, s->linesize); s 1065 libavcodec/rv34.c r->rdsp.rv34_idct_add(dst+4*i, s->linesize, ptr); s 1067 libavcodec/rv34.c r->rdsp.rv34_idct_dc_add(dst+4*i, s->linesize, dc); s 1070 libavcodec/rv34.c dst += 4*s->linesize; s 1077 libavcodec/rv34.c q_dc = rv34_qscale_tab[rv34_chroma_quant[1][s->qscale]]; s 1078 libavcodec/rv34.c q_ac = rv34_qscale_tab[rv34_chroma_quant[0][s->qscale]]; s 1081 libavcodec/rv34.c dst = s->dest[j]; s 1082 libavcodec/rv34.c r->h.pred8x8[itype](dst, s->uvlinesize); s 1086 libavcodec/rv34.c pdst = dst + (i&1)*4 + (i&2)*2*s->uvlinesize; s 1088 libavcodec/rv34.c rv34_process_block(r, pdst, s->uvlinesize, s 1096 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1097 libavcodec/rv34.c uint8_t *dst = s->dest[0]; s 1116 libavcodec/rv34.c q_ac = rv34_qscale_tab[s->qscale]; s 1120 libavcodec/rv34.c rv34_pred_4x4_block(r, dst, s->linesize, ittrans[intra_types[i]], avail[idx-8], avail[idx-1], avail[idx+7], avail[idx-7]); s 1124 libavcodec/rv34.c rv34_process_block(r, dst, s->linesize, s 1127 libavcodec/rv34.c dst += s->linesize * 4 - 4*4; s 1133 libavcodec/rv34.c q_dc = rv34_qscale_tab[rv34_chroma_quant[1][s->qscale]]; s 1134 libavcodec/rv34.c q_ac = rv34_qscale_tab[rv34_chroma_quant[0][s->qscale]]; s 1137 libavcodec/rv34.c dst = s->dest[1+k]; s 1144 libavcodec/rv34.c rv34_pred_4x4_block(r, dst+4*i, s->uvlinesize, itype, acache[-4], acache[-1], !i && !j, acache[-3]); s 1149 libavcodec/rv34.c rv34_process_block(r, dst + 4*i, s->uvlinesize, s 1153 libavcodec/rv34.c dst += 4*s->uvlinesize; s 1172 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1174 libavcodec/rv34.c int midx = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride; s 1175 libavcodec/rv34.c int16_t (*motion_val)[2] = &s->current_picture_ptr->motion_val[0][midx]; s 1180 libavcodec/rv34.c if((j || s->mb_y) && is_mv_diff_gt_3(motion_val + i, s->b8_stride)) s 1183 libavcodec/rv34.c motion_val += s->b8_stride; s 1185 libavcodec/rv34.c if(s->first_slice_line) s 1187 libavcodec/rv34.c if(!s->mb_x) s 1192 libavcodec/rv34.c if(s->mb_x) s 1193 libavcodec/rv34.c r->deblock_coefs[s->mb_x - 1 + s->mb_y*s->mb_stride] |= (vmvmask & 0x1111) << 3; s 1194 libavcodec/rv34.c if(!s->first_slice_line) s 1195 libavcodec/rv34.c r->deblock_coefs[s->mb_x + (s->mb_y - 1)*s->mb_stride] |= (hmvmask & 0xF) << 12; s 1202 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1203 libavcodec/rv34.c GetBitContext *gb = &s->gb; s 1204 libavcodec/rv34.c uint8_t *dst = s->dest[0]; s 1205 libavcodec/rv34.c int16_t *ptr = s->block[0]; s 1206 libavcodec/rv34.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 1215 libavcodec/rv34.c dist = (s->mb_x - s->resync_mb_x) + (s->mb_y - s->resync_mb_y) * s->mb_width; s 1216 libavcodec/rv34.c if(s->mb_x && dist) s 1218 libavcodec/rv34.c r->avail_cache[9] = s->current_picture_ptr->mb_type[mb_pos - 1]; s 1219 libavcodec/rv34.c if(dist >= s->mb_width) s 1221 libavcodec/rv34.c r->avail_cache[3] = s->current_picture_ptr->mb_type[mb_pos - s->mb_stride]; s 1222 libavcodec/rv34.c if(((s->mb_x+1) < s->mb_width) && dist >= s->mb_width - 1) s 1223 libavcodec/rv34.c r->avail_cache[4] = s->current_picture_ptr->mb_type[mb_pos - s->mb_stride + 1]; s 1224 libavcodec/rv34.c if(s->mb_x && dist > s->mb_width) s 1225 libavcodec/rv34.c r->avail_cache[1] = s->current_picture_ptr->mb_type[mb_pos - s->mb_stride - 1]; s 1227 libavcodec/rv34.c s->qscale = r->si.quant; s 1232 libavcodec/rv34.c s->current_picture_ptr->qscale_table[mb_pos] = s->qscale; s 1237 libavcodec/rv34.c if (IS_INTRA(s->current_picture_ptr->mb_type[mb_pos])){ s 1247 libavcodec/rv34.c q_dc = rv34_qscale_tab[ r->luma_dc_quant_p[s->qscale] ]; s 1248 libavcodec/rv34.c q_ac = rv34_qscale_tab[s->qscale]; s 1254 libavcodec/rv34.c q_ac = rv34_qscale_tab[s->qscale]; s 1267 libavcodec/rv34.c r->rdsp.rv34_idct_add(dst+4*i, s->linesize, ptr); s 1269 libavcodec/rv34.c r->rdsp.rv34_idct_dc_add(dst+4*i, s->linesize, dc); s 1272 libavcodec/rv34.c dst += 4*s->linesize; s 1277 libavcodec/rv34.c q_ac = rv34_qscale_tab[s->qscale]; s 1283 libavcodec/rv34.c rv34_process_block(r, dst + 4*i, s->linesize, s 1286 libavcodec/rv34.c dst += 4*s->linesize; s 1290 libavcodec/rv34.c q_dc = rv34_qscale_tab[rv34_chroma_quant[1][s->qscale]]; s 1291 libavcodec/rv34.c q_ac = rv34_qscale_tab[rv34_chroma_quant[0][s->qscale]]; s 1294 libavcodec/rv34.c dst = s->dest[j]; s 1298 libavcodec/rv34.c pdst = dst + (i&1)*4 + (i&2)*2*s->uvlinesize; s 1300 libavcodec/rv34.c rv34_process_block(r, pdst, s->uvlinesize, s 1310 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1312 libavcodec/rv34.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 1317 libavcodec/rv34.c dist = (s->mb_x - s->resync_mb_x) + (s->mb_y - s->resync_mb_y) * s->mb_width; s 1318 libavcodec/rv34.c if(s->mb_x && dist) s 1320 libavcodec/rv34.c r->avail_cache[9] = s->current_picture_ptr->mb_type[mb_pos - 1]; s 1321 libavcodec/rv34.c if(dist >= s->mb_width) s 1323 libavcodec/rv34.c r->avail_cache[3] = s->current_picture_ptr->mb_type[mb_pos - s->mb_stride]; s 1324 libavcodec/rv34.c if(((s->mb_x+1) < s->mb_width) && dist >= s->mb_width - 1) s 1325 libavcodec/rv34.c r->avail_cache[4] = s->current_picture_ptr->mb_type[mb_pos - s->mb_stride + 1]; s 1326 libavcodec/rv34.c if(s->mb_x && dist > s->mb_width) s 1327 libavcodec/rv34.c r->avail_cache[1] = s->current_picture_ptr->mb_type[mb_pos - s->mb_stride - 1]; s 1329 libavcodec/rv34.c s->qscale = r->si.quant; s 1334 libavcodec/rv34.c s->current_picture_ptr->qscale_table[mb_pos] = s->qscale; s 1348 libavcodec/rv34.c static int check_slice_end(RV34DecContext *r, MpegEncContext *s) s 1351 libavcodec/rv34.c if(s->mb_y >= s->mb_height) s 1353 libavcodec/rv34.c if(!s->mb_num_left) s 1355 libavcodec/rv34.c if(r->s.mb_skip_run > 1) s 1357 libavcodec/rv34.c bits = get_bits_left(&s->gb); s 1358 libavcodec/rv34.c if(bits <= 0 || (bits < 8 && !show_bits(&s->gb, bits))) s 1378 libavcodec/rv34.c r->intra_types_stride = r->s.mb_width * 4 + 4; s 1380 libavcodec/rv34.c r->cbp_chroma = av_mallocz(r->s.mb_stride * r->s.mb_height * s 1382 libavcodec/rv34.c r->cbp_luma = av_mallocz(r->s.mb_stride * r->s.mb_height * s 1384 libavcodec/rv34.c r->deblock_coefs = av_mallocz(r->s.mb_stride * r->s.mb_height * s 1388 libavcodec/rv34.c r->mb_type = av_mallocz(r->s.mb_stride * r->s.mb_height * s 1412 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1413 libavcodec/rv34.c GetBitContext *gb = &s->gb; s 1417 libavcodec/rv34.c init_get_bits(&r->s.gb, buf, buf_size*8); s 1420 libavcodec/rv34.c av_log(s->avctx, AV_LOG_ERROR, "Incorrect or unknown slice header\n"); s 1425 libavcodec/rv34.c if (slice_type != s->pict_type) { s 1426 libavcodec/rv34.c av_log(s->avctx, AV_LOG_ERROR, "Slice type mismatch\n"); s 1429 libavcodec/rv34.c if (s->width != r->si.width || s->height != r->si.height) { s 1430 libavcodec/rv34.c av_log(s->avctx, AV_LOG_ERROR, "Size mismatch\n"); s 1435 libavcodec/rv34.c s->qscale = r->si.quant; s 1436 libavcodec/rv34.c s->mb_num_left = r->si.end - r->si.start; s 1437 libavcodec/rv34.c r->s.mb_skip_run = 0; s 1439 libavcodec/rv34.c mb_pos = s->mb_x + s->mb_y * s->mb_width; s 1441 libavcodec/rv34.c av_log(s->avctx, AV_LOG_ERROR, "Slice indicates MB offset %d, got %d\n", r->si.start, mb_pos); s 1442 libavcodec/rv34.c s->mb_x = r->si.start % s->mb_width; s 1443 libavcodec/rv34.c s->mb_y = r->si.start / s->mb_width; s 1446 libavcodec/rv34.c s->first_slice_line = 1; s 1447 libavcodec/rv34.c s->resync_mb_x = s->mb_x; s 1448 libavcodec/rv34.c s->resync_mb_y = s->mb_y; s 1450 libavcodec/rv34.c ff_init_block_index(s); s 1451 libavcodec/rv34.c while(!check_slice_end(r, s)) { s 1452 libavcodec/rv34.c ff_update_block_index(s); s 1455 libavcodec/rv34.c res = rv34_decode_inter_macroblock(r, r->intra_types + s->mb_x * 4 + 4); s 1457 libavcodec/rv34.c res = rv34_decode_intra_macroblock(r, r->intra_types + s->mb_x * 4 + 4); s 1459 libavcodec/rv34.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s->mb_x-1, s->mb_y, ER_MB_ERROR); s 1462 libavcodec/rv34.c if (++s->mb_x == s->mb_width) { s 1463 libavcodec/rv34.c s->mb_x = 0; s 1464 libavcodec/rv34.c s->mb_y++; s 1465 libavcodec/rv34.c ff_init_block_index(s); s 1470 libavcodec/rv34.c if(r->loop_filter && s->mb_y >= 2) s 1471 libavcodec/rv34.c r->loop_filter(r, s->mb_y - 2); s 1473 libavcodec/rv34.c if (HAVE_THREADS && (s->avctx->active_thread_type & FF_THREAD_FRAME)) s 1474 libavcodec/rv34.c ff_thread_report_progress(&s->current_picture_ptr->tf, s 1475 libavcodec/rv34.c s->mb_y - 2, 0); s 1478 libavcodec/rv34.c if(s->mb_x == s->resync_mb_x) s 1479 libavcodec/rv34.c s->first_slice_line=0; s 1480 libavcodec/rv34.c s->mb_num_left--; s 1482 libavcodec/rv34.c ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y, s->mb_x-1, s->mb_y, ER_MB_END); s 1484 libavcodec/rv34.c return s->mb_y == s->mb_height; s 1495 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1498 libavcodec/rv34.c ff_mpv_decode_defaults(s); s 1499 libavcodec/rv34.c ff_mpv_decode_init(s, avctx); s 1500 libavcodec/rv34.c s->out_format = FMT_H263; s 1504 libavcodec/rv34.c s->low_delay = 0; s 1506 libavcodec/rv34.c ff_mpv_idct_init(s); s 1507 libavcodec/rv34.c if ((ret = ff_mpv_common_init(s)) < 0) s 1522 libavcodec/rv34.c ff_mpv_common_end(&r->s); s 1535 libavcodec/rv34.c MpegEncContext * const s = &r->s, * const s1 = &r1->s; s 1541 libavcodec/rv34.c if (s->height != s1->height || s->width != s1->width) { s 1542 libavcodec/rv34.c s->height = s1->height; s 1543 libavcodec/rv34.c s->width = s1->width; s 1544 libavcodec/rv34.c if ((err = ff_mpv_common_frame_size_change(s)) < 0) s 1576 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1579 libavcodec/rv34.c ff_er_frame_end(&s->er); s 1580 libavcodec/rv34.c ff_mpv_frame_end(s); s 1581 libavcodec/rv34.c s->mb_num_left = 0; s 1583 libavcodec/rv34.c if (HAVE_THREADS && (s->avctx->active_thread_type & FF_THREAD_FRAME)) s 1584 libavcodec/rv34.c ff_thread_report_progress(&s->current_picture_ptr->tf, INT_MAX, 0); s 1586 libavcodec/rv34.c if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) { s 1587 libavcodec/rv34.c if ((ret = av_frame_ref(pict, s->current_picture_ptr->f)) < 0) s 1589 libavcodec/rv34.c ff_print_debug_info(s, s->current_picture_ptr, pict); s 1590 libavcodec/rv34.c ff_mpv_export_qp_table(s, pict, s->current_picture_ptr, FF_QSCALE_TYPE_MPEG1); s 1592 libavcodec/rv34.c } else if (s->last_picture_ptr) { s 1593 libavcodec/rv34.c if ((ret = av_frame_ref(pict, s->last_picture_ptr->f)) < 0) s 1595 libavcodec/rv34.c ff_print_debug_info(s, s->last_picture_ptr, pict); s 1596 libavcodec/rv34.c ff_mpv_export_qp_table(s, pict, s->last_picture_ptr, FF_QSCALE_TYPE_MPEG1); s 1620 libavcodec/rv34.c MpegEncContext *s = &r->s; s 1633 libavcodec/rv34.c if (s->low_delay==0 && s->next_picture_ptr) { s 1634 libavcodec/rv34.c if ((ret = av_frame_ref(pict, s->next_picture_ptr->f)) < 0) s 1636 libavcodec/rv34.c s->next_picture_ptr = NULL; s 1657 libavcodec/rv34.c init_get_bits(&s->gb, buf+offset, (buf_size-offset)*8); s 1658 libavcodec/rv34.c if(r->parse_slice_header(r, &r->s.gb, &si) < 0 || si.start){ s 1662 libavcodec/rv34.c if ((!s->last_picture_ptr || !s->last_picture_ptr->f->data[0]) && s 1675 libavcodec/rv34.c if (s->mb_num_left > 0 && s->current_picture_ptr) { s 1677 libavcodec/rv34.c s->mb_num_left); s 1678 libavcodec/rv34.c ff_er_frame_end(&s->er); s 1679 libavcodec/rv34.c ff_mpv_frame_end(s); s 1682 libavcodec/rv34.c if (s->width != si.width || s->height != si.height) { s 1685 libavcodec/rv34.c av_log(s->avctx, AV_LOG_WARNING, "Changing dimensions to %dx%d\n", s 1688 libavcodec/rv34.c if (av_image_check_size(si.width, si.height, 0, s->avctx)) s 1691 libavcodec/rv34.c s->avctx->sample_aspect_ratio = update_sar( s 1692 libavcodec/rv34.c s->width, s->height, s->avctx->sample_aspect_ratio, s 1694 libavcodec/rv34.c s->width = si.width; s 1695 libavcodec/rv34.c s->height = si.height; s 1697 libavcodec/rv34.c err = ff_set_dimensions(s->avctx, s->width, s->height); s 1701 libavcodec/rv34.c if ((err = ff_mpv_common_frame_size_change(s)) < 0) s 1708 libavcodec/rv34.c s->pict_type = si.type ? si.type : AV_PICTURE_TYPE_I; s 1709 libavcodec/rv34.c if (ff_mpv_frame_start(s, s->avctx) < 0) s 1711 libavcodec/rv34.c ff_mpeg_er_frame_start(s); s 1715 libavcodec/rv34.c r->tmp_b_block_base = av_malloc(s->linesize * 48); s 1718 libavcodec/rv34.c + i * 16 * s->linesize; s 1720 libavcodec/rv34.c r->tmp_b_block_uv[i] = r->tmp_b_block_base + 32 * s->linesize s 1721 libavcodec/rv34.c + (i >> 1) * 8 * s->uvlinesize s 1725 libavcodec/rv34.c if (s->pict_type != AV_PICTURE_TYPE_B) { s 1753 libavcodec/rv34.c s->mb_x = s->mb_y = 0; s 1754 libavcodec/rv34.c ff_thread_finish_setup(s->avctx); s 1756 libavcodec/rv34.c (s->avctx->active_thread_type & FF_THREAD_FRAME)) { s 1757 libavcodec/rv34.c av_log(s->avctx, AV_LOG_ERROR, "Decoder needs full frames in frame " s 1773 libavcodec/rv34.c r->si.end = s->mb_width * s->mb_height; s 1774 libavcodec/rv34.c s->mb_num_left = r->s.mb_x + r->s.mb_y*r->s.mb_width - r->si.start; s 1782 libavcodec/rv34.c init_get_bits(&s->gb, buf+offset1, (buf_size-offset1)*8); s 1783 libavcodec/rv34.c if(r->parse_slice_header(r, &r->s.gb, &si) < 0){ s 1794 libavcodec/rv34.c if (s->current_picture_ptr) { s 1797 libavcodec/rv34.c r->loop_filter(r, s->mb_height - 1); s 1804 libavcodec/rv34.c (s->avctx->active_thread_type & FF_THREAD_FRAME)) { s 1808 libavcodec/rv34.c ff_er_frame_end(&s->er); s 1809 libavcodec/rv34.c ff_mpv_frame_end(s); s 1810 libavcodec/rv34.c s->mb_num_left = 0; s 1811 libavcodec/rv34.c ff_thread_report_progress(&s->current_picture_ptr->tf, INT_MAX, 0); s 1823 libavcodec/rv34.c ff_mpv_common_end(&r->s); s 85 libavcodec/rv34.h MpegEncContext s; s 40 libavcodec/rv34_parser.c static int rv34_parse(AVCodecParserContext *s, s 45 libavcodec/rv34_parser.c RV34ParseContext *pc = s->priv_data; s 63 libavcodec/rv34_parser.c if (type != 3 && s->pts != AV_NOPTS_VALUE) { s 64 libavcodec/rv34_parser.c pc->key_dts = s->pts; s 68 libavcodec/rv34_parser.c s->pts = pc->key_dts + ((pts - pc->key_pts) & 0x1FFF); s 70 libavcodec/rv34_parser.c s->pts = pc->key_dts - ((pc->key_pts - pts) & 0x1FFF); s 72 libavcodec/rv34_parser.c s->pict_type = rv_to_av_frame_type[type]; s 133 libavcodec/rv40.c int w = r->s.width, h = r->s.height; s 150 libavcodec/rv40.c if ((ret = av_image_check_size(w, h, 0, r->s.avctx)) < 0) s 166 libavcodec/rv40.c MpegEncContext *s = &r->s; s 173 libavcodec/rv40.c if(!i && s->first_slice_line){ s 229 libavcodec/rv40.c MpegEncContext *s = &r->s; s 230 libavcodec/rv40.c GetBitContext *gb = &s->gb; s 233 libavcodec/rv40.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 235 libavcodec/rv40.c if(!r->s.mb_skip_run) { s 236 libavcodec/rv40.c r->s.mb_skip_run = get_interleaved_ue_golomb(gb) + 1; s 237 libavcodec/rv40.c if(r->s.mb_skip_run > (unsigned)s->mb_num) s 241 libavcodec/rv40.c if(--r->s.mb_skip_run) s 249 libavcodec/rv40.c blocks[r->mb_type[mb_pos - s->mb_stride]]++; s 251 libavcodec/rv40.c blocks[r->mb_type[mb_pos - s->mb_stride + 1]]++; s 253 libavcodec/rv40.c blocks[r->mb_type[mb_pos - s->mb_stride - 1]]++; s 265 libavcodec/rv40.c if(s->pict_type == AV_PICTURE_TYPE_P){ s 271 libavcodec/rv40.c av_log(s->avctx, AV_LOG_ERROR, "Dquant for P-frame\n"); s 278 libavcodec/rv40.c av_log(s->avctx, AV_LOG_ERROR, "Dquant for B-frame\n"); s 339 libavcodec/rv40.c MpegEncContext *s = &r->s; s 371 libavcodec/rv40.c mb_pos = row * s->mb_stride; s 372 libavcodec/rv40.c for(mb_x = 0; mb_x < s->mb_width; mb_x++, mb_pos++){ s 373 libavcodec/rv40.c int mbtype = s->current_picture_ptr->mb_type[mb_pos]; s 379 libavcodec/rv40.c mb_pos = row * s->mb_stride; s 380 libavcodec/rv40.c for(mb_x = 0; mb_x < s->mb_width; mb_x++, mb_pos++){ s 388 libavcodec/rv40.c q = s->current_picture_ptr->qscale_table[mb_pos]; s 392 libavcodec/rv40.c if(s->width * s->height <= 176*144) s 398 libavcodec/rv40.c avail[3] = row < s->mb_height - 1; s 401 libavcodec/rv40.c int pos = mb_pos + neighbour_offs_x[i] + neighbour_offs_y[i]*s->mb_stride; s 403 libavcodec/rv40.c mbtype [i] = s->current_picture_ptr->mb_type[pos]; s 440 libavcodec/rv40.c if(row == s->mb_height - 1 || (mb_strong[POS_CUR] | mb_strong[POS_BOTTOM])) s 457 libavcodec/rv40.c if(row == s->mb_height - 1 || (mb_strong[POS_CUR] | mb_strong[POS_BOTTOM])) s 462 libavcodec/rv40.c Y = s->current_picture_ptr->f->data[0] + mb_x*16 + (row*16 + j) * s->linesize; s 471 libavcodec/rv40.c rv40_adaptive_loop_filter(&r->rdsp, Y+4*s->linesize, s 472 libavcodec/rv40.c s->linesize, dither, s 483 libavcodec/rv40.c rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither, s 490 libavcodec/rv40.c rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither, s 498 libavcodec/rv40.c rv40_adaptive_loop_filter(&r->rdsp, Y, s->linesize, dither, s 507 libavcodec/rv40.c C = s->current_picture_ptr->f->data[k + 1] + mb_x*8 + (row*8 + j*4) * s->uvlinesize; s 513 libavcodec/rv40.c rv40_adaptive_loop_filter(&r->rdsp, C+4*s->uvlinesize, s->uvlinesize, i*8, s 523 libavcodec/rv40.c rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, j*8, s 530 libavcodec/rv40.c rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, i*8, s 537 libavcodec/rv40.c rv40_adaptive_loop_filter(&r->rdsp, C, s->uvlinesize, j*8, s 95 libavcodec/s302m.c S302Context *s = avctx->priv_data; s 186 libavcodec/s302m.c if (s->non_pcm_mode == 3) { s 192 libavcodec/s302m.c if (s->non_pcm_mode & 1) { s 36 libavcodec/s302menc.c S302MEncContext *s = avctx->priv_data; s 64 libavcodec/s302menc.c s->framing_index = 0; s 72 libavcodec/s302menc.c S302MEncContext *s = avctx->priv_data; s 103 libavcodec/s302menc.c uint8_t vucf = s->framing_index == 0 ? 0x10: 0; s 117 libavcodec/s302menc.c s->framing_index++; s 118 libavcodec/s302menc.c if (s->framing_index >= 192) s 119 libavcodec/s302menc.c s->framing_index = 0; s 125 libavcodec/s302menc.c uint8_t vucf = s->framing_index == 0 ? 0x80: 0; s 138 libavcodec/s302menc.c s->framing_index++; s 139 libavcodec/s302menc.c if (s->framing_index >= 192) s 140 libavcodec/s302menc.c s->framing_index = 0; s 146 libavcodec/s302menc.c uint8_t vucf = s->framing_index == 0 ? 0x10 : 0; s 159 libavcodec/s302menc.c s->framing_index++; s 160 libavcodec/s302menc.c if (s->framing_index >= 192) s 161 libavcodec/s302menc.c s->framing_index = 0; s 33 libavcodec/sbc_parser.c static int sbc_parse_header(AVCodecParserContext *s, AVCodecContext *avctx, s 48 libavcodec/sbc_parser.c s->duration = avctx->frame_size; s 72 libavcodec/sbc_parser.c s->duration = avctx->frame_size; s 76 libavcodec/sbc_parser.c static int sbc_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 80 libavcodec/sbc_parser.c SBCParseContext *pc = s->priv_data; s 83 libavcodec/sbc_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 89 libavcodec/sbc_parser.c next = sbc_parse_header(s, avctx, pc->header, sizeof(pc->header)) s 93 libavcodec/sbc_parser.c next = sbc_parse_header(s, avctx, buf, buf_size); s 106 libavcodec/sbcdsp.c static inline void sbc_analyze_4b_4s_simd(SBCDSPContext *s, s 110 libavcodec/sbcdsp.c s->sbc_analyze_4(x + 12, out, ff_sbcdsp_analysis_consts_fixed4_simd_odd); s 112 libavcodec/sbcdsp.c s->sbc_analyze_4(x + 8, out, ff_sbcdsp_analysis_consts_fixed4_simd_even); s 114 libavcodec/sbcdsp.c s->sbc_analyze_4(x + 4, out, ff_sbcdsp_analysis_consts_fixed4_simd_odd); s 116 libavcodec/sbcdsp.c s->sbc_analyze_4(x + 0, out, ff_sbcdsp_analysis_consts_fixed4_simd_even); s 119 libavcodec/sbcdsp.c static inline void sbc_analyze_4b_8s_simd(SBCDSPContext *s, s 123 libavcodec/sbcdsp.c s->sbc_analyze_8(x + 24, out, ff_sbcdsp_analysis_consts_fixed8_simd_odd); s 125 libavcodec/sbcdsp.c s->sbc_analyze_8(x + 16, out, ff_sbcdsp_analysis_consts_fixed8_simd_even); s 127 libavcodec/sbcdsp.c s->sbc_analyze_8(x + 8, out, ff_sbcdsp_analysis_consts_fixed8_simd_odd); s 129 libavcodec/sbcdsp.c s->sbc_analyze_8(x + 0, out, ff_sbcdsp_analysis_consts_fixed8_simd_even); s 132 libavcodec/sbcdsp.c static inline void sbc_analyze_1b_8s_simd_even(SBCDSPContext *s, s 136 libavcodec/sbcdsp.c static inline void sbc_analyze_1b_8s_simd_odd(SBCDSPContext *s, s 140 libavcodec/sbcdsp.c s->sbc_analyze_8(x, out, ff_sbcdsp_analysis_consts_fixed8_simd_odd); s 141 libavcodec/sbcdsp.c s->sbc_analyze_8s = sbc_analyze_1b_8s_simd_even; s 144 libavcodec/sbcdsp.c static inline void sbc_analyze_1b_8s_simd_even(SBCDSPContext *s, s 148 libavcodec/sbcdsp.c s->sbc_analyze_8(x, out, ff_sbcdsp_analysis_consts_fixed8_simd_even); s 149 libavcodec/sbcdsp.c s->sbc_analyze_8s = sbc_analyze_1b_8s_simd_odd; s 364 libavcodec/sbcdsp.c av_cold void ff_sbcdsp_init(SBCDSPContext *s) s 367 libavcodec/sbcdsp.c s->sbc_analyze_4 = sbc_analyze_4_simd; s 368 libavcodec/sbcdsp.c s->sbc_analyze_8 = sbc_analyze_8_simd; s 369 libavcodec/sbcdsp.c s->sbc_analyze_4s = sbc_analyze_4b_4s_simd; s 370 libavcodec/sbcdsp.c if (s->increment == 1) s 371 libavcodec/sbcdsp.c s->sbc_analyze_8s = sbc_analyze_1b_8s_simd_odd; s 373 libavcodec/sbcdsp.c s->sbc_analyze_8s = sbc_analyze_4b_8s_simd; s 376 libavcodec/sbcdsp.c s->sbc_enc_process_input_4s = sbc_enc_process_input_4s; s 377 libavcodec/sbcdsp.c s->sbc_enc_process_input_8s = sbc_enc_process_input_8s; s 380 libavcodec/sbcdsp.c s->sbc_calc_scalefactors = sbc_calc_scalefactors; s 381 libavcodec/sbcdsp.c s->sbc_calc_scalefactors_j = sbc_calc_scalefactors_j; s 384 libavcodec/sbcdsp.c ff_sbcdsp_init_arm(s); s 386 libavcodec/sbcdsp.c ff_sbcdsp_init_x86(s); s 52 libavcodec/sbcdsp.h void (*sbc_analyze_4s)(SBCDSPContext *s, s 56 libavcodec/sbcdsp.h void (*sbc_analyze_8s)(SBCDSPContext *s, s 81 libavcodec/sbcdsp.h void ff_sbcdsp_init(SBCDSPContext *s); s 83 libavcodec/sbcdsp.h void ff_sbcdsp_init_arm(SBCDSPContext *s); s 84 libavcodec/sbcdsp.h void ff_sbcdsp_init_x86(SBCDSPContext *s); s 49 libavcodec/sbcenc.c static int sbc_analyze_audio(SBCDSPContext *s, struct sbc_frame *frame) s 57 libavcodec/sbcenc.c x = &s->X[ch][s->position - 4 * s 58 libavcodec/sbcenc.c s->increment + frame->blocks * 4]; s 60 libavcodec/sbcenc.c blk += s->increment) { s 61 libavcodec/sbcenc.c s->sbc_analyze_4s( s 62 libavcodec/sbcenc.c s, x, s 66 libavcodec/sbcenc.c x -= 4 * s->increment; s 73 libavcodec/sbcenc.c x = &s->X[ch][s->position - 8 * s 74 libavcodec/sbcenc.c s->increment + frame->blocks * 8]; s 76 libavcodec/sbcenc.c blk += s->increment) { s 77 libavcodec/sbcenc.c s->sbc_analyze_8s( s 78 libavcodec/sbcenc.c s, x, s 82 libavcodec/sbcenc.c x -= 8 * s->increment; s 49 libavcodec/sbrdsp.h void AAC_RENAME(ff_sbrdsp_init)(SBRDSPContext *s); s 50 libavcodec/sbrdsp.h void ff_sbrdsp_init_arm(SBRDSPContext *s); s 51 libavcodec/sbrdsp.h void ff_sbrdsp_init_aarch64(SBRDSPContext *s); s 52 libavcodec/sbrdsp.h void ff_sbrdsp_init_x86(SBRDSPContext *s); s 53 libavcodec/sbrdsp.h void ff_sbrdsp_init_mips(SBRDSPContext *s); s 76 libavcodec/sbrdsp_template.c av_cold void AAC_RENAME(ff_sbrdsp_init)(SBRDSPContext *s) s 78 libavcodec/sbrdsp_template.c s->sum64x5 = sbr_sum64x5_c; s 79 libavcodec/sbrdsp_template.c s->sum_square = sbr_sum_square_c; s 80 libavcodec/sbrdsp_template.c s->neg_odd_64 = sbr_neg_odd_64_c; s 81 libavcodec/sbrdsp_template.c s->qmf_pre_shuffle = sbr_qmf_pre_shuffle_c; s 82 libavcodec/sbrdsp_template.c s->qmf_post_shuffle = sbr_qmf_post_shuffle_c; s 83 libavcodec/sbrdsp_template.c s->qmf_deint_neg = sbr_qmf_deint_neg_c; s 84 libavcodec/sbrdsp_template.c s->qmf_deint_bfly = sbr_qmf_deint_bfly_c; s 85 libavcodec/sbrdsp_template.c s->autocorrelate = sbr_autocorrelate_c; s 86 libavcodec/sbrdsp_template.c s->hf_gen = sbr_hf_gen_c; s 87 libavcodec/sbrdsp_template.c s->hf_g_filt = sbr_hf_g_filt_c; s 89 libavcodec/sbrdsp_template.c s->hf_apply_noise[0] = sbr_hf_apply_noise_0; s 90 libavcodec/sbrdsp_template.c s->hf_apply_noise[1] = sbr_hf_apply_noise_1; s 91 libavcodec/sbrdsp_template.c s->hf_apply_noise[2] = sbr_hf_apply_noise_2; s 92 libavcodec/sbrdsp_template.c s->hf_apply_noise[3] = sbr_hf_apply_noise_3; s 96 libavcodec/sbrdsp_template.c ff_sbrdsp_init_arm(s); s 98 libavcodec/sbrdsp_template.c ff_sbrdsp_init_aarch64(s); s 100 libavcodec/sbrdsp_template.c ff_sbrdsp_init_x86(s); s 102 libavcodec/sbrdsp_template.c ff_sbrdsp_init_mips(s); s 45 libavcodec/scpr.c static void reinit_tables(SCPRContext *s) s 51 libavcodec/scpr.c if (s->pixel_model[comp][j].total_freq != 256) { s 53 libavcodec/scpr.c s->pixel_model[comp][j].freq[i] = 1; s 55 libavcodec/scpr.c s->pixel_model[comp][j].lookup[i] = 16; s 56 libavcodec/scpr.c s->pixel_model[comp][j].total_freq = 256; s 62 libavcodec/scpr.c uint32_t *p = s->run_model[j]; s 69 libavcodec/scpr.c uint32_t *op = s->op_model[j]; s 76 libavcodec/scpr.c s->range_model[i] = 1; s 77 libavcodec/scpr.c s->count_model[i] = 1; s 79 libavcodec/scpr.c s->range_model[256] = 256; s 80 libavcodec/scpr.c s->count_model[256] = 256; s 83 libavcodec/scpr.c s->fill_model[i] = 1; s 85 libavcodec/scpr.c s->fill_model[5] = 5; s 89 libavcodec/scpr.c s->sxy_model[j][i] = 1; s 91 libavcodec/scpr.c s->sxy_model[j][16] = 16; s 95 libavcodec/scpr.c s->mv_model[0][i] = 1; s 96 libavcodec/scpr.c s->mv_model[1][i] = 1; s 98 libavcodec/scpr.c s->mv_model[0][512] = 512; s 99 libavcodec/scpr.c s->mv_model[1][512] = 512; s 163 libavcodec/scpr.c static int decode_value(SCPRContext *s, uint32_t *cnt, uint32_t maxc, uint32_t step, uint32_t *rval) s 165 libavcodec/scpr.c GetByteContext *gb = &s->gb; s 166 libavcodec/scpr.c RangeCoder *rc = &s->rc; s 172 libavcodec/scpr.c if ((ret = s->get_freq(rc, totfr, &value)) < 0) s 187 libavcodec/scpr.c if ((ret = s->decode(gb, rc, cumfr, cnt_c, totfr)) < 0) s 207 libavcodec/scpr.c static int decode_unit(SCPRContext *s, PixelModel *pixel, uint32_t step, uint32_t *rval) s 209 libavcodec/scpr.c GetByteContext *gb = &s->gb; s 210 libavcodec/scpr.c RangeCoder *rc = &s->rc; s 215 libavcodec/scpr.c if ((ret = s->get_freq(rc, totfr, &value)) < 0) s 241 libavcodec/scpr.c if ((ret = s->decode(gb, rc, cumfr, cnt_c, totfr)) < 0) s 264 libavcodec/scpr.c *rval = c & s->cbits; s 269 libavcodec/scpr.c static int decode_units(SCPRContext *s, uint32_t *r, uint32_t *g, uint32_t *b, s 272 libavcodec/scpr.c const int cxshift = s->cxshift; s 275 libavcodec/scpr.c ret = decode_unit(s, &s->pixel_model[0][*cx + *cx1], 400, r); s 281 libavcodec/scpr.c ret = decode_unit(s, &s->pixel_model[1][*cx + *cx1], 400, g); s 287 libavcodec/scpr.c ret = decode_unit(s, &s->pixel_model[2][*cx + *cx1], 400, b); s 299 libavcodec/scpr.c SCPRContext *s = avctx->priv_data; s 300 libavcodec/scpr.c GetByteContext *gb = &s->gb; s 306 libavcodec/scpr.c reinit_tables(s); s 308 libavcodec/scpr.c init_rangecoder(&s->rc, gb); s 311 libavcodec/scpr.c ret = decode_units(s, &r, &g, &b, &cx, &cx1); s 315 libavcodec/scpr.c ret = decode_value(s, s->run_model[0], 256, 400, &run); s 341 libavcodec/scpr.c ret = decode_value(s, s->op_model[ptype], 6, 1000, &ptype); s 345 libavcodec/scpr.c ret = decode_units(s, &r, &g, &b, &cx, &cx1); s 353 libavcodec/scpr.c ret = decode_value(s, s->run_model[ptype], 256, 400, &run); s 373 libavcodec/scpr.c SCPRContext *s = avctx->priv_data; s 374 libavcodec/scpr.c GetByteContext *gb = &s->gb; s 381 libavcodec/scpr.c init_rangecoder(&s->rc, gb); s 383 libavcodec/scpr.c ret = decode_value(s, s->range_model, 256, 1, &min); s 384 libavcodec/scpr.c ret |= decode_value(s, s->range_model, 256, 1, &temp); s 389 libavcodec/scpr.c ret = decode_value(s, s->range_model, 256, 1, &max); s 390 libavcodec/scpr.c ret |= decode_value(s, s->range_model, 256, 1, &temp); s 395 libavcodec/scpr.c if (min > max || min >= s->nbcount) s 398 libavcodec/scpr.c memset(s->blocks, 0, sizeof(*s->blocks) * s->nbcount); s 403 libavcodec/scpr.c ret = decode_value(s, s->fill_model, 5, 10, &fill); s 404 libavcodec/scpr.c ret |= decode_value(s, s->count_model, 256, 20, &count); s 410 libavcodec/scpr.c while (min < s->nbcount && count-- > 0) { s 411 libavcodec/scpr.c s->blocks[min++] = fill; s 415 libavcodec/scpr.c ret = av_frame_copy(s->current_frame, s->last_frame); s 419 libavcodec/scpr.c for (y = 0; y < s->nby; y++) { s 420 libavcodec/scpr.c for (x = 0; x < s->nbx; x++) { s 423 libavcodec/scpr.c if (s->blocks[y * s->nbx + x] == 0) s 426 libavcodec/scpr.c if (((s->blocks[y * s->nbx + x] - 1) & 1) > 0) { s 427 libavcodec/scpr.c ret = decode_value(s, s->sxy_model[0], 16, 100, &sx1); s 428 libavcodec/scpr.c ret |= decode_value(s, s->sxy_model[1], 16, 100, &sy1); s 429 libavcodec/scpr.c ret |= decode_value(s, s->sxy_model[2], 16, 100, &sx2); s 430 libavcodec/scpr.c ret |= decode_value(s, s->sxy_model[3], 16, 100, &sy2); s 437 libavcodec/scpr.c if (((s->blocks[y * s->nbx + x] - 1) & 2) > 0) { s 441 libavcodec/scpr.c ret = decode_value(s, s->mv_model[0], 512, 100, &mvx); s 442 libavcodec/scpr.c ret |= decode_value(s, s->mv_model[1], 512, 100, &mvy); s 463 libavcodec/scpr.c ret = decode_value(s, s->op_model[ptype], 6, 1000, &ptype); s 467 libavcodec/scpr.c ret = decode_units(s, &r, &g, &b, &cx, &cx1); s 475 libavcodec/scpr.c ret = decode_value(s, s->run_model[ptype], 256, 400, &run); s 497 libavcodec/scpr.c SCPRContext *s = avctx->priv_data; s 498 libavcodec/scpr.c GetByteContext *gb = &s->gb; s 507 libavcodec/scpr.c if ((ret = ff_reget_buffer(avctx, s->current_frame, 0)) < 0) s 515 libavcodec/scpr.c s->version = 1; s 516 libavcodec/scpr.c s->get_freq = get_freq0; s 517 libavcodec/scpr.c s->decode = decode0; s 519 libavcodec/scpr.c ret = decompress_i(avctx, (uint32_t *)s->current_frame->data[0], s 520 libavcodec/scpr.c s->current_frame->linesize[0] / 4); s 522 libavcodec/scpr.c s->version = 2; s 523 libavcodec/scpr.c s->get_freq = get_freq; s 524 libavcodec/scpr.c s->decode = decode; s 526 libavcodec/scpr.c ret = decompress_i(avctx, (uint32_t *)s->current_frame->data[0], s 527 libavcodec/scpr.c s->current_frame->linesize[0] / 4); s 530 libavcodec/scpr.c s->version = 3; s 531 libavcodec/scpr.c ret = decompress_i3(avctx, (uint32_t *)s->current_frame->data[0], s 532 libavcodec/scpr.c s->current_frame->linesize[0] / 4); s 534 libavcodec/scpr.c uint32_t clr, *dst = (uint32_t *)s->current_frame->data[0]; s 556 libavcodec/scpr.c dst += s->current_frame->linesize[0] / 4; s 561 libavcodec/scpr.c if (s->version == 1 || s->version == 2) s 562 libavcodec/scpr.c ret = decompress_p(avctx, (uint32_t *)s->current_frame->data[0], s 563 libavcodec/scpr.c s->current_frame->linesize[0] / 4, s 564 libavcodec/scpr.c (uint32_t *)s->last_frame->data[0], s 565 libavcodec/scpr.c s->last_frame->linesize[0] / 4); s 567 libavcodec/scpr.c ret = decompress_p3(avctx, (uint32_t *)s->current_frame->data[0], s 568 libavcodec/scpr.c s->current_frame->linesize[0] / 4, s 569 libavcodec/scpr.c (uint32_t *)s->last_frame->data[0], s 570 libavcodec/scpr.c s->last_frame->linesize[0] / 4); s 584 libavcodec/scpr.c ret = av_frame_ref(data, s->current_frame); s 591 libavcodec/scpr.c ret = av_frame_copy(frame, s->current_frame); s 616 libavcodec/scpr.c FFSWAP(AVFrame *, s->current_frame, s->last_frame); s 628 libavcodec/scpr.c SCPRContext *s = avctx->priv_data; s 639 libavcodec/scpr.c s->get_freq = get_freq0; s 640 libavcodec/scpr.c s->decode = decode0; s 642 libavcodec/scpr.c s->cxshift = avctx->bits_per_coded_sample == 16 ? 0 : 2; s 643 libavcodec/scpr.c s->cbits = avctx->bits_per_coded_sample == 16 ? 0x1F : 0xFF; s 644 libavcodec/scpr.c s->nbx = (avctx->width + 15) / 16; s 645 libavcodec/scpr.c s->nby = (avctx->height + 15) / 16; s 646 libavcodec/scpr.c s->nbcount = s->nbx * s->nby; s 647 libavcodec/scpr.c s->blocks = av_malloc_array(s->nbcount, sizeof(*s->blocks)); s 648 libavcodec/scpr.c if (!s->blocks) s 651 libavcodec/scpr.c s->last_frame = av_frame_alloc(); s 652 libavcodec/scpr.c s->current_frame = av_frame_alloc(); s 653 libavcodec/scpr.c if (!s->last_frame || !s->current_frame) s 661 libavcodec/scpr.c SCPRContext *s = avctx->priv_data; s 663 libavcodec/scpr.c av_freep(&s->blocks); s 664 libavcodec/scpr.c av_frame_free(&s->last_frame); s 665 libavcodec/scpr.c av_frame_free(&s->current_frame); s 53 libavcodec/scpr3.c static void reinit_tables3(SCPRContext * s) s 57 libavcodec/scpr3.c PixelModel3 *m = &s->pixel_model3[i][j]; s 63 libavcodec/scpr3.c renew_table3(256, &s->run_model3[i].cntsum, s 64 libavcodec/scpr3.c s->run_model3[i].freqs[0], s->run_model3[i].freqs[1], s 65 libavcodec/scpr3.c s->run_model3[i].cnts, s->run_model3[i].dectab); s 68 libavcodec/scpr3.c renew_table3(256, &s->range_model3.cntsum, s 69 libavcodec/scpr3.c s->range_model3.freqs[0], s->range_model3.freqs[1], s 70 libavcodec/scpr3.c s->range_model3.cnts, s->range_model3.dectab); s 72 libavcodec/scpr3.c renew_table3(5, &s->fill_model3.cntsum, s 73 libavcodec/scpr3.c s->fill_model3.freqs[0], s->fill_model3.freqs[1], s 74 libavcodec/scpr3.c s->fill_model3.cnts, s->fill_model3.dectab); s 76 libavcodec/scpr3.c renew_table3(256, &s->count_model3.cntsum, s 77 libavcodec/scpr3.c s->count_model3.freqs[0], s->count_model3.freqs[1], s 78 libavcodec/scpr3.c s->count_model3.cnts, s->count_model3.dectab); s 81 libavcodec/scpr3.c renew_table3(16, &s->sxy_model3[i].cntsum, s 82 libavcodec/scpr3.c s->sxy_model3[i].freqs[0], s->sxy_model3[i].freqs[1], s 83 libavcodec/scpr3.c s->sxy_model3[i].cnts, s->sxy_model3[i].dectab); s 87 libavcodec/scpr3.c renew_table3(512, &s->mv_model3[i].cntsum, s 88 libavcodec/scpr3.c s->mv_model3[i].freqs[0], s->mv_model3[i].freqs[1], s 89 libavcodec/scpr3.c s->mv_model3[i].cnts, s->mv_model3[i].dectab); s 93 libavcodec/scpr3.c renew_table3(6, &s->op_model3[i].cntsum, s 94 libavcodec/scpr3.c s->op_model3[i].freqs[0], s->op_model3[i].freqs[1], s 95 libavcodec/scpr3.c s->op_model3[i].cnts, s->op_model3[i].dectab); s 748 libavcodec/scpr3.c static int decode_value3(SCPRContext *s, uint32_t max, uint32_t *cntsum, s 753 libavcodec/scpr3.c GetByteContext *gb = &s->gb; s 754 libavcodec/scpr3.c RangeCoder *rc = &s->rc; s 839 libavcodec/scpr3.c static int decode_unit3(SCPRContext *s, PixelModel3 *m, uint32_t code, uint32_t *value) s 841 libavcodec/scpr3.c GetByteContext *gb = &s->gb; s 842 libavcodec/scpr3.c RangeCoder *rc = &s->rc; s 851 libavcodec/scpr3.c *value = bytestream2_get_byte(&s->gb); s 858 libavcodec/scpr3.c *value = bytestream2_get_byte(&s->gb); s 863 libavcodec/scpr3.c *value = bytestream2_get_byte(&s->gb); s 868 libavcodec/scpr3.c *value = bytestream2_get_byte(&s->gb); s 897 libavcodec/scpr3.c return decode_value3(s, 255, &m->cntsum, s 908 libavcodec/scpr3.c static int decode_units3(SCPRContext * s, uint32_t *red, s 912 libavcodec/scpr3.c RangeCoder *rc = &s->rc; s 915 libavcodec/scpr3.c ret = decode_unit3(s, &s->pixel_model3[0][*cx + *cx1], rc->code & 0xFFF, red); s 922 libavcodec/scpr3.c ret = decode_unit3(s, &s->pixel_model3[1][*cx + *cx1], rc->code & 0xFFF, green); s 929 libavcodec/scpr3.c ret = decode_unit3(s, &s->pixel_model3[2][*cx + *cx1], rc->code & 0xFFF, blue); s 947 libavcodec/scpr3.c SCPRContext *s = avctx->priv_data; s 948 libavcodec/scpr3.c GetByteContext *gb = &s->gb; s 949 libavcodec/scpr3.c RangeCoder *rc = &s->rc; s 957 libavcodec/scpr3.c reinit_tables3(s); s 960 libavcodec/scpr3.c ret = decode_units3(s, &r, &g, &b, &cx, &cx1); s 963 libavcodec/scpr3.c ret = decode_value3(s, 255, &s->run_model3[0].cntsum, s 964 libavcodec/scpr3.c s->run_model3[0].freqs[0], s 965 libavcodec/scpr3.c s->run_model3[0].freqs[1], s 966 libavcodec/scpr3.c s->run_model3[0].cnts, s 967 libavcodec/scpr3.c s->run_model3[0].dectab, &run); s 993 libavcodec/scpr3.c ret = decode_value3(s, 5, &s->op_model3[ptype].cntsum, s 994 libavcodec/scpr3.c s->op_model3[ptype].freqs[0], s 995 libavcodec/scpr3.c s->op_model3[ptype].freqs[1], s 996 libavcodec/scpr3.c s->op_model3[ptype].cnts, s 997 libavcodec/scpr3.c s->op_model3[ptype].dectab, &ptype); s 1001 libavcodec/scpr3.c ret = decode_units3(s, &r, &g, &b, &cx, &cx1); s 1008 libavcodec/scpr3.c ret = decode_value3(s, 255, &s->run_model3[ptype].cntsum, s 1009 libavcodec/scpr3.c s->run_model3[ptype].freqs[0], s 1010 libavcodec/scpr3.c s->run_model3[ptype].freqs[1], s 1011 libavcodec/scpr3.c s->run_model3[ptype].cnts, s 1012 libavcodec/scpr3.c s->run_model3[ptype].dectab, &run); s 1032 libavcodec/scpr3.c SCPRContext *s = avctx->priv_data; s 1033 libavcodec/scpr3.c GetByteContext *gb = &s->gb; s 1040 libavcodec/scpr3.c init_rangecoder3(&s->rc, gb); s 1042 libavcodec/scpr3.c ret = decode_value3(s, 255, &s->range_model3.cntsum, s 1043 libavcodec/scpr3.c s->range_model3.freqs[0], s 1044 libavcodec/scpr3.c s->range_model3.freqs[1], s 1045 libavcodec/scpr3.c s->range_model3.cnts, s 1046 libavcodec/scpr3.c s->range_model3.dectab, &min); s 1047 libavcodec/scpr3.c ret |= decode_value3(s, 255, &s->range_model3.cntsum, s 1048 libavcodec/scpr3.c s->range_model3.freqs[0], s 1049 libavcodec/scpr3.c s->range_model3.freqs[1], s 1050 libavcodec/scpr3.c s->range_model3.cnts, s 1051 libavcodec/scpr3.c s->range_model3.dectab, &temp); s 1056 libavcodec/scpr3.c ret |= decode_value3(s, 255, &s->range_model3.cntsum, s 1057 libavcodec/scpr3.c s->range_model3.freqs[0], s 1058 libavcodec/scpr3.c s->range_model3.freqs[1], s 1059 libavcodec/scpr3.c s->range_model3.cnts, s 1060 libavcodec/scpr3.c s->range_model3.dectab, &max); s 1061 libavcodec/scpr3.c ret |= decode_value3(s, 255, &s->range_model3.cntsum, s 1062 libavcodec/scpr3.c s->range_model3.freqs[0], s 1063 libavcodec/scpr3.c s->range_model3.freqs[1], s 1064 libavcodec/scpr3.c s->range_model3.cnts, s 1065 libavcodec/scpr3.c s->range_model3.dectab, &temp); s 1070 libavcodec/scpr3.c if (min > max || min >= s->nbcount) s 1073 libavcodec/scpr3.c memset(s->blocks, 0, sizeof(*s->blocks) * s->nbcount); s 1078 libavcodec/scpr3.c ret = decode_value3(s, 4, &s->fill_model3.cntsum, s 1079 libavcodec/scpr3.c s->fill_model3.freqs[0], s 1080 libavcodec/scpr3.c s->fill_model3.freqs[1], s 1081 libavcodec/scpr3.c s->fill_model3.cnts, s 1082 libavcodec/scpr3.c s->fill_model3.dectab, &fill); s 1083 libavcodec/scpr3.c ret |= decode_value3(s, 255, &s->count_model3.cntsum, s 1084 libavcodec/scpr3.c s->count_model3.freqs[0], s 1085 libavcodec/scpr3.c s->count_model3.freqs[1], s 1086 libavcodec/scpr3.c s->count_model3.cnts, s 1087 libavcodec/scpr3.c s->count_model3.dectab, &count); s 1093 libavcodec/scpr3.c while (min < s->nbcount && count-- > 0) { s 1094 libavcodec/scpr3.c s->blocks[min++] = fill; s 1098 libavcodec/scpr3.c ret = av_frame_copy(s->current_frame, s->last_frame); s 1102 libavcodec/scpr3.c for (y = 0; y < s->nby; y++) { s 1103 libavcodec/scpr3.c for (x = 0; x < s->nbx; x++) { s 1106 libavcodec/scpr3.c if (s->blocks[y * s->nbx + x] == 0) s 1109 libavcodec/scpr3.c if (((s->blocks[y * s->nbx + x] + 1) & 1) > 0) { s 1110 libavcodec/scpr3.c ret = decode_value3(s, 15, &s->sxy_model3[0].cntsum, s 1111 libavcodec/scpr3.c s->sxy_model3[0].freqs[0], s 1112 libavcodec/scpr3.c s->sxy_model3[0].freqs[1], s 1113 libavcodec/scpr3.c s->sxy_model3[0].cnts, s 1114 libavcodec/scpr3.c s->sxy_model3[0].dectab, &sx1); s 1115 libavcodec/scpr3.c ret |= decode_value3(s, 15, &s->sxy_model3[1].cntsum, s 1116 libavcodec/scpr3.c s->sxy_model3[1].freqs[0], s 1117 libavcodec/scpr3.c s->sxy_model3[1].freqs[1], s 1118 libavcodec/scpr3.c s->sxy_model3[1].cnts, s 1119 libavcodec/scpr3.c s->sxy_model3[1].dectab, &sy1); s 1120 libavcodec/scpr3.c ret |= decode_value3(s, 15, &s->sxy_model3[2].cntsum, s 1121 libavcodec/scpr3.c s->sxy_model3[2].freqs[0], s 1122 libavcodec/scpr3.c s->sxy_model3[2].freqs[1], s 1123 libavcodec/scpr3.c s->sxy_model3[2].cnts, s 1124 libavcodec/scpr3.c s->sxy_model3[2].dectab, &sx2); s 1125 libavcodec/scpr3.c ret |= decode_value3(s, 15, &s->sxy_model3[3].cntsum, s 1126 libavcodec/scpr3.c s->sxy_model3[3].freqs[0], s 1127 libavcodec/scpr3.c s->sxy_model3[3].freqs[1], s 1128 libavcodec/scpr3.c s->sxy_model3[3].cnts, s 1129 libavcodec/scpr3.c s->sxy_model3[3].dectab, &sy2); s 1136 libavcodec/scpr3.c if (((s->blocks[y * s->nbx + x] + 3) & 2) > 0) { s 1140 libavcodec/scpr3.c a = s->rc.code & 0xFFF; s 1149 libavcodec/scpr3.c code = a + ((s->rc.code >> 1) & 0xFFFFF800) - b; s 1152 libavcodec/scpr3.c s->rc.code = code; s 1154 libavcodec/scpr3.c sync_code3(gb, &s->rc); s 1157 libavcodec/scpr3.c ret = decode_value3(s, 511, &s->mv_model3[0].cntsum, s 1158 libavcodec/scpr3.c s->mv_model3[0].freqs[0], s 1159 libavcodec/scpr3.c s->mv_model3[0].freqs[1], s 1160 libavcodec/scpr3.c s->mv_model3[0].cnts, s 1161 libavcodec/scpr3.c s->mv_model3[0].dectab, &mvx); s 1162 libavcodec/scpr3.c ret |= decode_value3(s, 511, &s->mv_model3[1].cntsum, s 1163 libavcodec/scpr3.c s->mv_model3[1].freqs[0], s 1164 libavcodec/scpr3.c s->mv_model3[1].freqs[1], s 1165 libavcodec/scpr3.c s->mv_model3[1].cnts, s 1166 libavcodec/scpr3.c s->mv_model3[1].dectab, &mvy); s 1188 libavcodec/scpr3.c ret = decode_value3(s, 5, &s->op_model3[ptype].cntsum, s 1189 libavcodec/scpr3.c s->op_model3[ptype].freqs[0], s 1190 libavcodec/scpr3.c s->op_model3[ptype].freqs[1], s 1191 libavcodec/scpr3.c s->op_model3[ptype].cnts, s 1192 libavcodec/scpr3.c s->op_model3[ptype].dectab, &ptype); s 1196 libavcodec/scpr3.c ret = decode_units3(s, &r, &g, &b, &cx, &cx1); s 1204 libavcodec/scpr3.c ret = decode_value3(s, 255, &s->run_model3[ptype].cntsum, s 1205 libavcodec/scpr3.c s->run_model3[ptype].freqs[0], s 1206 libavcodec/scpr3.c s->run_model3[ptype].freqs[1], s 1207 libavcodec/scpr3.c s->run_model3[ptype].cnts, s 1208 libavcodec/scpr3.c s->run_model3[ptype].dectab, &run); s 47 libavcodec/sgidec.c static int expand_rle_row8(SgiState *s, uint8_t *out_buf, s 55 libavcodec/sgidec.c if (bytestream2_get_bytes_left(&s->g) < 1) s 57 libavcodec/sgidec.c pixel = bytestream2_get_byteu(&s->g); s 64 libavcodec/sgidec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid pixel count.\n"); s 70 libavcodec/sgidec.c *out_buf = bytestream2_get_byte(&s->g); s 74 libavcodec/sgidec.c pixel = bytestream2_get_byte(&s->g); s 85 libavcodec/sgidec.c static int expand_rle_row16(SgiState *s, uint16_t *out_buf, s 94 libavcodec/sgidec.c if (bytestream2_get_bytes_left(&s->g) < 2) s 96 libavcodec/sgidec.c pixel = bytestream2_get_be16u(&s->g); s 102 libavcodec/sgidec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid pixel count.\n"); s 108 libavcodec/sgidec.c pixel = bytestream2_get_ne16(&s->g); s 113 libavcodec/sgidec.c pixel = bytestream2_get_ne16(&s->g); s 131 libavcodec/sgidec.c static int read_rle_sgi(uint8_t *out_buf, SgiState *s) s 134 libavcodec/sgidec.c unsigned int len = s->height * s->depth * 4; s 135 libavcodec/sgidec.c GetByteContext g_table = s->g; s 141 libavcodec/sgidec.c if (len * 2 > bytestream2_get_bytes_left(&s->g)) { s 145 libavcodec/sgidec.c for (z = 0; z < s->depth; z++) { s 147 libavcodec/sgidec.c for (y = 0; y < s->height; y++) { s 148 libavcodec/sgidec.c linesize = s->width * s->depth; s 149 libavcodec/sgidec.c dest_row -= s->linesize; s 151 libavcodec/sgidec.c bytestream2_seek(&s->g, start_offset, SEEK_SET); s 152 libavcodec/sgidec.c if (s->bytes_per_channel == 1) s 153 libavcodec/sgidec.c ret = expand_rle_row8(s, dest_row + z, linesize, s->depth); s 155 libavcodec/sgidec.c ret = expand_rle_row16(s, (uint16_t *)dest_row + z, linesize, s->depth); s 156 libavcodec/sgidec.c if (ret != s->width) s 169 libavcodec/sgidec.c static int read_uncompressed_sgi(unsigned char *out_buf, SgiState *s) s 172 libavcodec/sgidec.c unsigned int offset = s->height * s->width * s->bytes_per_channel; s 177 libavcodec/sgidec.c if (offset * s->depth > bytestream2_get_bytes_left(&s->g)) s 181 libavcodec/sgidec.c for (z = 0; z < s->depth; z++) { s 182 libavcodec/sgidec.c gp[z] = s->g; s 186 libavcodec/sgidec.c for (y = s->height - 1; y >= 0; y--) { s 187 libavcodec/sgidec.c out_end = out_buf + (y * s->linesize); s 188 libavcodec/sgidec.c if (s->bytes_per_channel == 1) { s 189 libavcodec/sgidec.c for (x = s->width; x > 0; x--) s 190 libavcodec/sgidec.c for (z = 0; z < s->depth; z++) s 194 libavcodec/sgidec.c for (x = s->width; x > 0; x--) s 195 libavcodec/sgidec.c for (z = 0; z < s->depth; z++) s 206 libavcodec/sgidec.c SgiState *s = avctx->priv_data; s 212 libavcodec/sgidec.c bytestream2_init(&s->g, avpkt->data, avpkt->size); s 213 libavcodec/sgidec.c if (bytestream2_get_bytes_left(&s->g) < SGI_HEADER_SIZE) { s 219 libavcodec/sgidec.c if (bytestream2_get_be16u(&s->g) != SGI_MAGIC) { s 224 libavcodec/sgidec.c rle = bytestream2_get_byteu(&s->g); s 225 libavcodec/sgidec.c s->bytes_per_channel = bytestream2_get_byteu(&s->g); s 226 libavcodec/sgidec.c dimension = bytestream2_get_be16u(&s->g); s 227 libavcodec/sgidec.c s->width = bytestream2_get_be16u(&s->g); s 228 libavcodec/sgidec.c s->height = bytestream2_get_be16u(&s->g); s 229 libavcodec/sgidec.c s->depth = bytestream2_get_be16u(&s->g); s 231 libavcodec/sgidec.c if (s->bytes_per_channel != 1 && s->bytes_per_channel != 2) { s 242 libavcodec/sgidec.c if (s->depth == SGI_GRAYSCALE) { s 243 libavcodec/sgidec.c avctx->pix_fmt = s->bytes_per_channel == 2 ? AV_PIX_FMT_GRAY16BE : AV_PIX_FMT_GRAY8; s 244 libavcodec/sgidec.c } else if (s->depth == SGI_RGB) { s 245 libavcodec/sgidec.c avctx->pix_fmt = s->bytes_per_channel == 2 ? AV_PIX_FMT_RGB48BE : AV_PIX_FMT_RGB24; s 246 libavcodec/sgidec.c } else if (s->depth == SGI_RGBA) { s 247 libavcodec/sgidec.c avctx->pix_fmt = s->bytes_per_channel == 2 ? AV_PIX_FMT_RGBA64BE : AV_PIX_FMT_RGBA; s 253 libavcodec/sgidec.c ret = ff_set_dimensions(avctx, s->width, s->height); s 264 libavcodec/sgidec.c out_end = out_buf + p->linesize[0] * s->height; s 266 libavcodec/sgidec.c s->linesize = p->linesize[0]; s 269 libavcodec/sgidec.c bytestream2_seek(&s->g, SGI_HEADER_SIZE, SEEK_SET); s 271 libavcodec/sgidec.c ret = read_rle_sgi(out_end, s); s 273 libavcodec/sgidec.c ret = read_uncompressed_sgi(out_buf, s); s 284 libavcodec/sgidec.c SgiState *s = avctx->priv_data; s 286 libavcodec/sgidec.c s->avctx = avctx; s 95 libavcodec/sgienc.c SgiContext *s = avctx->priv_data; s 113 libavcodec/sgienc.c s->rle = 0; s 166 libavcodec/sgienc.c if (!s->rle) s 178 libavcodec/sgienc.c bytestream2_put_byte(&pbc, s->rle); /* RLE 1 - VERBATIM 0 */ s 200 libavcodec/sgienc.c if (s->rle) { s 42 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 65 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 66 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 67 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 68 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 86 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 108 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 109 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 110 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 111 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 148 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 149 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 150 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 151 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 174 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 195 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 196 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 197 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 213 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 233 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 234 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 235 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 267 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 268 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 269 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 289 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 311 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 312 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 313 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 314 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 331 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 352 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 353 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 354 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 355 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 390 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 391 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 392 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 393 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 414 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 439 libavcodec/sheervideo.c a1 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 440 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 441 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 442 libavcodec/sheervideo.c a2 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 443 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 444 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 464 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 488 libavcodec/sheervideo.c a1 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 489 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 490 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 491 libavcodec/sheervideo.c a2 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 492 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 493 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 536 libavcodec/sheervideo.c a1 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 537 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 538 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 539 libavcodec/sheervideo.c a2 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 540 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 541 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 566 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 591 libavcodec/sheervideo.c a1 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 592 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 593 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 594 libavcodec/sheervideo.c a2 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 595 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 596 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 616 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 640 libavcodec/sheervideo.c a1 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 641 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 642 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 643 libavcodec/sheervideo.c a2 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 644 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 645 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 688 libavcodec/sheervideo.c a1 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 689 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 690 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 691 libavcodec/sheervideo.c a2 = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 692 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 693 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 718 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 739 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 740 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 741 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 742 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 777 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 778 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 779 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 780 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 801 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 822 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 823 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 824 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 825 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 855 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 856 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 857 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 858 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 875 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 896 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 897 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 898 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 899 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 934 libavcodec/sheervideo.c y1 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 935 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 936 libavcodec/sheervideo.c y2 = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 937 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 958 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 973 libavcodec/sheervideo.c int pred[4] = { s->alt ? 125 : -146, -128, -128, -128 }; s 978 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 979 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 980 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1008 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1009 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1010 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1026 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1041 libavcodec/sheervideo.c int pred[4] = { s->alt ? 125 : -146, -128, -128, -128 }; s 1046 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1047 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1048 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1080 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1081 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1082 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1102 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1119 libavcodec/sheervideo.c int pred[4] = { 125, s->alt ? 125 : -146, -128, -128 }; s 1124 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1125 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1126 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1127 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1159 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1160 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1161 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1162 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1180 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1197 libavcodec/sheervideo.c int pred[4] = { 125, s->alt ? 125 : -146, -128, -128 }; s 1202 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1203 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1204 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1205 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1242 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1243 libavcodec/sheervideo.c y = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1244 libavcodec/sheervideo.c u = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1245 libavcodec/sheervideo.c v = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1268 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1291 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1292 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1293 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1294 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1312 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1334 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1335 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1336 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1337 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1374 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1375 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1376 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1377 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1400 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1421 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1422 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1423 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1439 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1459 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1460 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1461 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1493 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1494 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1495 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1515 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1533 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1534 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1535 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1536 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1564 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1565 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1566 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1567 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1581 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1599 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1600 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1601 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1602 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1635 libavcodec/sheervideo.c a = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1636 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1637 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1638 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1657 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1674 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1675 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1676 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1701 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1702 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1703 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1716 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1733 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1734 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1735 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1764 libavcodec/sheervideo.c r = get_vlc2(gb, s->vlc[0].table, s->vlc[0].bits, 2); s 1765 libavcodec/sheervideo.c g = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1766 libavcodec/sheervideo.c b = get_vlc2(gb, s->vlc[1].table, s->vlc[1].bits, 2); s 1808 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 1822 libavcodec/sheervideo.c s->alt = 0; s 1828 libavcodec/sheervideo.c s->decode_frame = decode_rgb; s 1829 libavcodec/sheervideo.c if (s->format != format) { s 1830 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_r_rgb, 256); s 1831 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_g_rgb, 256); s 1836 libavcodec/sheervideo.c s->decode_frame = decode_rgbi; s 1837 libavcodec/sheervideo.c if (s->format != format) { s 1838 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_r_rgbi, 256); s 1839 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_g_rgbi, 256); s 1844 libavcodec/sheervideo.c s->decode_frame = decode_argx; s 1845 libavcodec/sheervideo.c if (s->format != format) { s 1846 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_r_rgbx, 1024); s 1847 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_g_rgbx, 1024); s 1852 libavcodec/sheervideo.c s->decode_frame = decode_argxi; s 1853 libavcodec/sheervideo.c if (s->format != format) { s 1854 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_r_rgbxi, 1024); s 1855 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_g_rgbxi, 1024); s 1860 libavcodec/sheervideo.c s->decode_frame = decode_rgbx; s 1861 libavcodec/sheervideo.c if (s->format != format) { s 1862 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_r_rgbx, 1024); s 1863 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_g_rgbx, 1024); s 1868 libavcodec/sheervideo.c s->decode_frame = decode_rgbxi; s 1869 libavcodec/sheervideo.c if (s->format != format) { s 1870 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_r_rgbxi, 1024); s 1871 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_g_rgbxi, 1024); s 1876 libavcodec/sheervideo.c s->decode_frame = decode_argb; s 1877 libavcodec/sheervideo.c if (s->format != format) { s 1878 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_r_rgb, 256); s 1879 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_g_rgb, 256); s 1884 libavcodec/sheervideo.c s->decode_frame = decode_argbi; s 1885 libavcodec/sheervideo.c if (s->format != format) { s 1886 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_r_rgbi, 256); s 1887 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_g_rgbi, 256); s 1891 libavcodec/sheervideo.c s->alt = 1; s 1894 libavcodec/sheervideo.c s->decode_frame = decode_aybr; s 1895 libavcodec/sheervideo.c if (s->format != format) { s 1896 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_ybr, 256); s 1897 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_ybr, 256); s 1901 libavcodec/sheervideo.c s->alt = 1; s 1904 libavcodec/sheervideo.c s->decode_frame = decode_aybri; s 1905 libavcodec/sheervideo.c if (s->format != format) { s 1906 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_ybri, 256); s 1907 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_ybri, 256); s 1911 libavcodec/sheervideo.c s->alt = 1; s 1914 libavcodec/sheervideo.c s->decode_frame = decode_ybr; s 1915 libavcodec/sheervideo.c if (s->format != format) { s 1916 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_ybr, 256); s 1917 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_ybr, 256); s 1921 libavcodec/sheervideo.c s->alt = 1; s 1924 libavcodec/sheervideo.c s->decode_frame = decode_ybri; s 1925 libavcodec/sheervideo.c if (s->format != format) { s 1926 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_ybri, 256); s 1927 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_ybri, 256); s 1932 libavcodec/sheervideo.c s->decode_frame = decode_ybr10; s 1933 libavcodec/sheervideo.c if (s->format != format) { s 1934 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_ybr10, 1024); s 1935 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_ybr10, 1024); s 1940 libavcodec/sheervideo.c s->decode_frame = decode_ybr10i; s 1941 libavcodec/sheervideo.c if (s->format != format) { s 1942 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_ybr10i, 1024); s 1943 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_ybr10i, 1024); s 1948 libavcodec/sheervideo.c s->decode_frame = decode_ca4p; s 1949 libavcodec/sheervideo.c if (s->format != format) { s 1950 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_ybr10, 1024); s 1951 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_ybr10, 1024); s 1956 libavcodec/sheervideo.c s->decode_frame = decode_ca4i; s 1957 libavcodec/sheervideo.c if (s->format != format) { s 1958 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_ybr10i, 1024); s 1959 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_ybr10i, 1024); s 1964 libavcodec/sheervideo.c s->decode_frame = decode_byry; s 1965 libavcodec/sheervideo.c if (s->format != format) { s 1966 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_byry, 256); s 1967 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_byry, 256); s 1972 libavcodec/sheervideo.c s->decode_frame = decode_byryi; s 1973 libavcodec/sheervideo.c if (s->format != format) { s 1974 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_byryi, 256); s 1975 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_byryi, 256); s 1980 libavcodec/sheervideo.c s->decode_frame = decode_ybyr; s 1981 libavcodec/sheervideo.c if (s->format != format) { s 1982 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_ybyr, 256); s 1983 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_ybyr, 256); s 1988 libavcodec/sheervideo.c s->decode_frame = decode_c82p; s 1989 libavcodec/sheervideo.c if (s->format != format) { s 1990 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_byry, 256); s 1991 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_byry, 256); s 1996 libavcodec/sheervideo.c s->decode_frame = decode_c82i; s 1997 libavcodec/sheervideo.c if (s->format != format) { s 1998 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_byryi, 256); s 1999 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_byryi, 256); s 2004 libavcodec/sheervideo.c s->decode_frame = decode_yry10; s 2005 libavcodec/sheervideo.c if (s->format != format) { s 2006 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_yry10, 1024); s 2007 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_yry10, 1024); s 2012 libavcodec/sheervideo.c s->decode_frame = decode_yry10i; s 2013 libavcodec/sheervideo.c if (s->format != format) { s 2014 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_yry10i, 1024); s 2015 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_yry10i, 1024); s 2020 libavcodec/sheervideo.c s->decode_frame = decode_ca2p; s 2021 libavcodec/sheervideo.c if (s->format != format) { s 2022 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_yry10, 1024); s 2023 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_yry10, 1024); s 2028 libavcodec/sheervideo.c s->decode_frame = decode_ca2i; s 2029 libavcodec/sheervideo.c if (s->format != format) { s 2030 libavcodec/sheervideo.c ret = build_vlc(&s->vlc[0], l_y_yry10i, 1024); s 2031 libavcodec/sheervideo.c ret |= build_vlc(&s->vlc[1], l_u_yry10i, 1024); s 2044 libavcodec/sheervideo.c if (s->format != format) { s 2047 libavcodec/sheervideo.c s->format = format; s 2059 libavcodec/sheervideo.c s->decode_frame(avctx, p, &gb); s 2068 libavcodec/sheervideo.c SheerVideoContext *s = avctx->priv_data; s 2070 libavcodec/sheervideo.c ff_free_vlc(&s->vlc[0]); s 2071 libavcodec/sheervideo.c ff_free_vlc(&s->vlc[1]); s 119 libavcodec/shorten.c ShortenContext *s = avctx->priv_data; s 120 libavcodec/shorten.c s->avctx = avctx; s 122 libavcodec/shorten.c ff_bswapdsp_init(&s->bdsp); s 127 libavcodec/shorten.c static int allocate_buffers(ShortenContext *s) s 131 libavcodec/shorten.c for (chan = 0; chan < s->channels; chan++) { s 132 libavcodec/shorten.c if (FFMAX(1, s->nmean) >= UINT_MAX / sizeof(int32_t)) { s 133 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "nmean too large\n"); s 136 libavcodec/shorten.c if (s->blocksize + (uint64_t)s->nwrap >= UINT_MAX / sizeof(int32_t)) { s 137 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, s 142 libavcodec/shorten.c if ((err = av_reallocp_array(&s->offset[chan], s 144 libavcodec/shorten.c FFMAX(1, s->nmean))) < 0) s 147 libavcodec/shorten.c if ((err = av_reallocp_array(&s->decoded_base[chan], (s->blocksize + s->nwrap), s 148 libavcodec/shorten.c sizeof(s->decoded_base[0][0]))) < 0) s 150 libavcodec/shorten.c for (i = 0; i < s->nwrap; i++) s 151 libavcodec/shorten.c s->decoded_base[chan][i] = 0; s 152 libavcodec/shorten.c s->decoded[chan] = s->decoded_base[chan] + s->nwrap; s 155 libavcodec/shorten.c if ((err = av_reallocp_array(&s->coeffs, s->nwrap, sizeof(*s->coeffs))) < 0) s 161 libavcodec/shorten.c static inline unsigned int get_uint(ShortenContext *s, int k) s 163 libavcodec/shorten.c if (s->version != 0) { s 164 libavcodec/shorten.c k = get_ur_golomb_shorten(&s->gb, ULONGSIZE); s 168 libavcodec/shorten.c return get_ur_golomb_shorten(&s->gb, k); s 171 libavcodec/shorten.c static void fix_bitshift(ShortenContext *s, int32_t *buffer) s 175 libavcodec/shorten.c if (s->bitshift == 32) { s 176 libavcodec/shorten.c for (i = 0; i < s->blocksize; i++) s 178 libavcodec/shorten.c } else if (s->bitshift != 0) { s 179 libavcodec/shorten.c for (i = 0; i < s->blocksize; i++) s 180 libavcodec/shorten.c buffer[i] *= 1U << s->bitshift; s 184 libavcodec/shorten.c static int init_offset(ShortenContext *s) s 188 libavcodec/shorten.c int nblock = FFMAX(1, s->nmean); s 190 libavcodec/shorten.c switch (s->internal_ftype) { s 192 libavcodec/shorten.c s->avctx->sample_fmt = AV_SAMPLE_FMT_U8P; s 197 libavcodec/shorten.c s->avctx->sample_fmt = AV_SAMPLE_FMT_S16P; s 200 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "unknown audio type\n"); s 204 libavcodec/shorten.c for (chan = 0; chan < s->channels; chan++) s 206 libavcodec/shorten.c s->offset[chan][i] = mean; s 213 libavcodec/shorten.c ShortenContext *s = avctx->priv_data; s 254 libavcodec/shorten.c s->swap = tag == MKTAG('A', 'I', 'F', 'C'); s 350 libavcodec/shorten.c static int decode_subframe_lpc(ShortenContext *s, int command, int channel, s 358 libavcodec/shorten.c pred_order = get_ur_golomb_shorten(&s->gb, LPCQSIZE); s 359 libavcodec/shorten.c if ((unsigned)pred_order > s->nwrap) { s 360 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "invalid pred_order %d\n", s 366 libavcodec/shorten.c s->coeffs[i] = get_sr_golomb_shorten(&s->gb, LPCQUANT); s 367 libavcodec/shorten.c coeffs = s->coeffs; s 374 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "invalid pred_order %d\n", s 385 libavcodec/shorten.c s->decoded[channel][i] -= (unsigned)coffset; s 388 libavcodec/shorten.c init_sum = pred_order ? (command == FN_QLPC ? s->lpcqoffset : 0) : coffset; s 389 libavcodec/shorten.c for (i = 0; i < s->blocksize; i++) { s 392 libavcodec/shorten.c sum += coeffs[j] * (unsigned)s->decoded[channel][i - j - 1]; s 393 libavcodec/shorten.c s->decoded[channel][i] = get_sr_golomb_shorten(&s->gb, residual_size) + s 399 libavcodec/shorten.c for (i = 0; i < s->blocksize; i++) s 400 libavcodec/shorten.c s->decoded[channel][i] += (unsigned)coffset; s 405 libavcodec/shorten.c static int read_header(ShortenContext *s) s 410 libavcodec/shorten.c if (get_bits_long(&s->gb, 32) != AV_RB32("ajkg")) { s 411 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "missing shorten magic 'ajkg'\n"); s 415 libavcodec/shorten.c s->lpcqoffset = 0; s 416 libavcodec/shorten.c s->blocksize = DEFAULT_BLOCK_SIZE; s 417 libavcodec/shorten.c s->nmean = -1; s 418 libavcodec/shorten.c s->version = get_bits(&s->gb, 8); s 419 libavcodec/shorten.c s->internal_ftype = get_uint(s, TYPESIZE); s 421 libavcodec/shorten.c s->channels = get_uint(s, CHANSIZE); s 422 libavcodec/shorten.c if (!s->channels) { s 423 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "No channels reported\n"); s 426 libavcodec/shorten.c if (s->channels > MAX_CHANNELS) { s 427 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "too many channels: %d\n", s->channels); s 428 libavcodec/shorten.c s->channels = 0; s 431 libavcodec/shorten.c s->avctx->channels = s->channels; s 434 libavcodec/shorten.c if (s->version > 0) { s 438 libavcodec/shorten.c blocksize = get_uint(s, av_log2(DEFAULT_BLOCK_SIZE)); s 440 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, s 445 libavcodec/shorten.c s->blocksize = blocksize; s 447 libavcodec/shorten.c maxnlpc = get_uint(s, LPCQSIZE); s 449 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "maxnlpc is: %d\n", maxnlpc); s 452 libavcodec/shorten.c s->nmean = get_uint(s, 0); s 453 libavcodec/shorten.c if (s->nmean > 32768U) { s 454 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "nmean is: %d\n", s->nmean); s 458 libavcodec/shorten.c skip_bytes = get_uint(s, NSKIPSIZE); s 459 libavcodec/shorten.c if ((unsigned)skip_bytes > FFMAX(get_bits_left(&s->gb), 0)/8) { s 460 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "invalid skip_bytes: %d\n", skip_bytes); s 465 libavcodec/shorten.c skip_bits(&s->gb, 8); s 467 libavcodec/shorten.c s->nwrap = FFMAX(NWRAP, maxnlpc); s 469 libavcodec/shorten.c if (s->version > 1) s 470 libavcodec/shorten.c s->lpcqoffset = V2LPCQOFFSET; s 472 libavcodec/shorten.c if (s->avctx->extradata_size > 0) s 475 libavcodec/shorten.c if (get_ur_golomb_shorten(&s->gb, FNSIZE) != FN_VERBATIM) { s 476 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, s 481 libavcodec/shorten.c s->header_size = get_ur_golomb_shorten(&s->gb, VERBATIM_CKSIZE_SIZE); s 482 libavcodec/shorten.c if (s->header_size >= OUT_BUFFER_SIZE || s 483 libavcodec/shorten.c s->header_size < CANONICAL_HEADER_SIZE) { s 484 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "header is wrong size: %d\n", s 485 libavcodec/shorten.c s->header_size); s 489 libavcodec/shorten.c for (i = 0; i < s->header_size; i++) s 490 libavcodec/shorten.c s->header[i] = (char)get_ur_golomb_shorten(&s->gb, VERBATIM_BYTE_SIZE); s 492 libavcodec/shorten.c if (AV_RL32(s->header) == MKTAG('R','I','F','F')) { s 493 libavcodec/shorten.c if ((ret = decode_wave_header(s->avctx, s->header, s->header_size)) < 0) s 495 libavcodec/shorten.c } else if (AV_RL32(s->header) == MKTAG('F','O','R','M')) { s 496 libavcodec/shorten.c if ((ret = decode_aiff_header(s->avctx, s->header, s->header_size)) < 0) s 499 libavcodec/shorten.c avpriv_report_missing_feature(s->avctx, "unsupported bit packing %" s 500 libavcodec/shorten.c PRIX32, AV_RL32(s->header)); s 506 libavcodec/shorten.c if ((ret = allocate_buffers(s)) < 0) s 509 libavcodec/shorten.c if ((ret = init_offset(s)) < 0) s 512 libavcodec/shorten.c s->cur_chan = 0; s 513 libavcodec/shorten.c s->bitshift = 0; s 515 libavcodec/shorten.c s->got_header = 1; s 526 libavcodec/shorten.c ShortenContext *s = avctx->priv_data; s 531 libavcodec/shorten.c if (s->max_framesize == 0) { s 533 libavcodec/shorten.c s->max_framesize = 8192; // should hopefully be enough for the first header s 534 libavcodec/shorten.c tmp_ptr = av_fast_realloc(s->bitstream, &s->allocated_bitstream_size, s 535 libavcodec/shorten.c s->max_framesize + AV_INPUT_BUFFER_PADDING_SIZE); s 537 libavcodec/shorten.c s->max_framesize = 0; s 541 libavcodec/shorten.c memset(tmp_ptr, 0, s->allocated_bitstream_size); s 542 libavcodec/shorten.c s->bitstream = tmp_ptr; s 546 libavcodec/shorten.c buf_size = FFMIN(buf_size, s->max_framesize - s->bitstream_size); s 549 libavcodec/shorten.c if (s->bitstream_index + s->bitstream_size + buf_size + AV_INPUT_BUFFER_PADDING_SIZE > s 550 libavcodec/shorten.c s->allocated_bitstream_size) { s 551 libavcodec/shorten.c memmove(s->bitstream, &s->bitstream[s->bitstream_index], s 552 libavcodec/shorten.c s->bitstream_size); s 553 libavcodec/shorten.c s->bitstream_index = 0; s 556 libavcodec/shorten.c memcpy(&s->bitstream[s->bitstream_index + s->bitstream_size], buf, s 558 libavcodec/shorten.c buf = &s->bitstream[s->bitstream_index]; s 559 libavcodec/shorten.c buf_size += s->bitstream_size; s 560 libavcodec/shorten.c s->bitstream_size = buf_size; s 564 libavcodec/shorten.c if (buf_size < s->max_framesize && avpkt->data) { s 569 libavcodec/shorten.c if ((ret = init_get_bits8(&s->gb, buf, buf_size)) < 0) s 571 libavcodec/shorten.c skip_bits(&s->gb, s->bitindex); s 574 libavcodec/shorten.c if (!s->got_header) { s 576 libavcodec/shorten.c if ((ret = read_header(s)) < 0) s 583 libavcodec/shorten.c max_framesize = FFMAX(s->max_framesize, s->blocksize * s->channels * 8); s 584 libavcodec/shorten.c tmp_ptr = av_fast_realloc(s->bitstream, &s->allocated_bitstream_size, s 590 libavcodec/shorten.c s->bitstream = tmp_ptr; s 591 libavcodec/shorten.c s->max_framesize = max_framesize; s 598 libavcodec/shorten.c if (s->got_quit_command) { s 603 libavcodec/shorten.c s->cur_chan = 0; s 604 libavcodec/shorten.c while (s->cur_chan < s->channels) { s 608 libavcodec/shorten.c if (get_bits_left(&s->gb) < 3 + FNSIZE) { s 613 libavcodec/shorten.c cmd = get_ur_golomb_shorten(&s->gb, FNSIZE); s 625 libavcodec/shorten.c len = get_ur_golomb_shorten(&s->gb, VERBATIM_CKSIZE_SIZE); s 626 libavcodec/shorten.c if (len < 0 || len > get_bits_left(&s->gb)) { s 632 libavcodec/shorten.c get_ur_golomb_shorten(&s->gb, VERBATIM_BYTE_SIZE); s 635 libavcodec/shorten.c unsigned bitshift = get_ur_golomb_shorten(&s->gb, BITSHIFTSIZE); s 641 libavcodec/shorten.c s->bitshift = bitshift; s 645 libavcodec/shorten.c unsigned blocksize = get_uint(s, av_log2(s->blocksize)); s 646 libavcodec/shorten.c if (blocksize > s->blocksize) { s 656 libavcodec/shorten.c s->blocksize = blocksize; s 660 libavcodec/shorten.c s->got_quit_command = 1; s 668 libavcodec/shorten.c int channel = s->cur_chan; s 673 libavcodec/shorten.c residual_size = get_ur_golomb_shorten(&s->gb, ENERGYSIZE); s 676 libavcodec/shorten.c if (s->version == 0) s 685 libavcodec/shorten.c if (s->nmean == 0) s 686 libavcodec/shorten.c coffset = s->offset[channel][0]; s 688 libavcodec/shorten.c int32_t sum = (s->version < 2) ? 0 : s->nmean / 2; s 689 libavcodec/shorten.c for (i = 0; i < s->nmean; i++) s 690 libavcodec/shorten.c sum += (unsigned)s->offset[channel][i]; s 691 libavcodec/shorten.c coffset = sum / s->nmean; s 692 libavcodec/shorten.c if (s->version >= 2) s 693 libavcodec/shorten.c coffset = s->bitshift == 0 ? coffset : coffset >> s->bitshift - 1 >> 1; s 698 libavcodec/shorten.c for (i = 0; i < s->blocksize; i++) s 699 libavcodec/shorten.c s->decoded[channel][i] = 0; s 701 libavcodec/shorten.c if ((ret = decode_subframe_lpc(s, cmd, channel, s 707 libavcodec/shorten.c if (s->nmean > 0) { s 708 libavcodec/shorten.c int64_t sum = (s->version < 2) ? 0 : s->blocksize / 2; s 709 libavcodec/shorten.c for (i = 0; i < s->blocksize; i++) s 710 libavcodec/shorten.c sum += s->decoded[channel][i]; s 712 libavcodec/shorten.c for (i = 1; i < s->nmean; i++) s 713 libavcodec/shorten.c s->offset[channel][i - 1] = s->offset[channel][i]; s 715 libavcodec/shorten.c if (s->version < 2) s 716 libavcodec/shorten.c s->offset[channel][s->nmean - 1] = sum / s->blocksize; s 718 libavcodec/shorten.c s->offset[channel][s->nmean - 1] = s->bitshift == 32 ? 0 : (sum / s->blocksize) * (1LL << s->bitshift); s 722 libavcodec/shorten.c for (i = -s->nwrap; i < 0; i++) s 723 libavcodec/shorten.c s->decoded[channel][i] = s->decoded[channel][i + s->blocksize]; s 727 libavcodec/shorten.c fix_bitshift(s, s->decoded[channel]); s 730 libavcodec/shorten.c s->cur_chan++; s 731 libavcodec/shorten.c if (s->cur_chan == s->channels) { s 737 libavcodec/shorten.c frame->nb_samples = s->blocksize; s 741 libavcodec/shorten.c for (chan = 0; chan < s->channels; chan++) { s 744 libavcodec/shorten.c for (i = 0; i < s->blocksize; i++) { s 745 libavcodec/shorten.c switch (s->internal_ftype) { s 747 libavcodec/shorten.c *samples_u8++ = av_clip_uint8(s->decoded[chan][i]); s 751 libavcodec/shorten.c *samples_s16++ = av_clip_int16(s->decoded[chan][i]); s 755 libavcodec/shorten.c if (s->swap && s->internal_ftype != TYPE_U8) s 756 libavcodec/shorten.c s->bdsp.bswap16_buf(((uint16_t **)frame->extended_data)[chan], s 758 libavcodec/shorten.c s->blocksize); s 766 libavcodec/shorten.c if (s->cur_chan < s->channels) s 770 libavcodec/shorten.c s->bitindex = get_bits_count(&s->gb) - 8 * (get_bits_count(&s->gb) / 8); s 771 libavcodec/shorten.c i = get_bits_count(&s->gb) / 8; s 773 libavcodec/shorten.c av_log(s->avctx, AV_LOG_ERROR, "overread: %d\n", i - buf_size); s 774 libavcodec/shorten.c s->bitstream_size = 0; s 775 libavcodec/shorten.c s->bitstream_index = 0; s 778 libavcodec/shorten.c if (s->bitstream_size) { s 779 libavcodec/shorten.c s->bitstream_index += i; s 780 libavcodec/shorten.c s->bitstream_size -= i; s 788 libavcodec/shorten.c ShortenContext *s = avctx->priv_data; s 791 libavcodec/shorten.c for (i = 0; i < s->channels; i++) { s 792 libavcodec/shorten.c s->decoded[i] = NULL; s 793 libavcodec/shorten.c av_freep(&s->decoded_base[i]); s 794 libavcodec/shorten.c av_freep(&s->offset[i]); s 796 libavcodec/shorten.c av_freep(&s->bitstream); s 797 libavcodec/shorten.c av_freep(&s->coeffs); s 104 libavcodec/sipr16k.c float s; s 135 libavcodec/sipr16k.c for (i = 0, s = 0; i < 30; i++, s += 1.0/30) s 136 libavcodec/sipr16k.c out_data[i] = tmpbuf[i] + s * (synth[i] - tmpbuf[i]); s 53 libavcodec/sipr_parser.c SiprParserContext *s = s1->priv_data; s 54 libavcodec/sipr_parser.c ParseContext *pc = &s->pc; s 389 libavcodec/siren.c SirenContext *s = avctx->priv_data; s 392 libavcodec/siren.c s->imdct_in = s->imdct_buf[0]; s 393 libavcodec/siren.c s->imdct_out = s->imdct_buf[1]; s 394 libavcodec/siren.c s->imdct_prev = s->imdct_buf[2]; s 395 libavcodec/siren.c s->window = s->imdct_buf[3]; s 401 libavcodec/siren.c s->rate_control_possibilities = 16; s 402 libavcodec/siren.c s->esf_adjustment = 7; s 403 libavcodec/siren.c s->number_of_regions = 14; s 404 libavcodec/siren.c s->scale_factor = 22; s 405 libavcodec/siren.c s->region_size = 20; s 406 libavcodec/siren.c s->dw1 = s->dw2 = s->dw3 = s->dw4 = 1; s 411 libavcodec/siren.c s->standard_deviation[i] = sqrtf(region_power); s 416 libavcodec/siren.c s->window[i] = sinf(angle); s 419 libavcodec/siren.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 420 libavcodec/siren.c if (!s->fdsp) s 423 libavcodec/siren.c return av_tx_init(&s->tx_ctx, &s->tx_fn, AV_TX_FLOAT_MDCT, 1, FRAME_SIZE, &scale, 0); s 426 libavcodec/siren.c static int decode_envelope(SirenContext *s, GetBitContext *gb, s 432 libavcodec/siren.c decoder_standard_deviation[0] = s->standard_deviation[absolute_region_power_index[0] + 24]; s 442 libavcodec/siren.c decoder_standard_deviation[i] = s->standard_deviation[absolute_region_power_index[i] + 24]; s 543 libavcodec/siren.c static int get_dw(SirenContext *s) s 545 libavcodec/siren.c int ret = s->dw1 + s->dw4; s 550 libavcodec/siren.c s->dw1 = s->dw2; s 551 libavcodec/siren.c s->dw2 = s->dw3; s 552 libavcodec/siren.c s->dw3 = s->dw4; s 553 libavcodec/siren.c s->dw4 = ret; s 558 libavcodec/siren.c static int decode_vector(SirenContext *s, int number_of_regions, s 562 libavcodec/siren.c GetBitContext *gb = &s->gb; s 577 libavcodec/siren.c coefs_ptr = coefs + (region * s->region_size); s 626 libavcodec/siren.c coefs_ptr = coefs + (region * s->region_size); s 630 libavcodec/siren.c for (j = 0; j < s->region_size; j++) { s 639 libavcodec/siren.c for (j = 0; j < s->region_size; j++) { s 651 libavcodec/siren.c coefs_ptr = coefs + (region * s->region_size); s 654 libavcodec/siren.c dw1 = get_dw(s); s 655 libavcodec/siren.c dw2 = get_dw(s); s 677 libavcodec/siren.c SirenContext *s = avctx->priv_data; s 678 libavcodec/siren.c GetBitContext *gb = &s->gb; s 680 libavcodec/siren.c int ret, number_of_valid_coefs = 20 * s->number_of_regions; s 686 libavcodec/siren.c decode_envelope(s, gb, s->number_of_regions, s 687 libavcodec/siren.c s->decoder_standard_deviation, s 688 libavcodec/siren.c s->absolute_region_power_index, s->esf_adjustment); s 692 libavcodec/siren.c ret = categorize_regions(s->number_of_regions, get_bits_left(gb), s 693 libavcodec/siren.c s->absolute_region_power_index, s->power_categories, s 694 libavcodec/siren.c s->category_balance); s 699 libavcodec/siren.c s->power_categories[s->category_balance[i]]++; s 701 libavcodec/siren.c ret = decode_vector(s, s->number_of_regions, get_bits_left(gb), s 702 libavcodec/siren.c s->decoder_standard_deviation, s->power_categories, s 703 libavcodec/siren.c s->imdct_in, s->scale_factor); s 712 libavcodec/siren.c rate_control + 1 < s->rate_control_possibilities) { s 716 libavcodec/siren.c for (int i = 0; i < s->number_of_regions; i++) { s 717 libavcodec/siren.c if (s->absolute_region_power_index[i] > 33 || s 718 libavcodec/siren.c s->absolute_region_power_index[i] < -31) s 723 libavcodec/siren.c memcpy(s->imdct_in, s->backup_frame, number_of_valid_coefs * sizeof(float)); s 724 libavcodec/siren.c memset(s->backup_frame, 0, number_of_valid_coefs * sizeof(float)); s 726 libavcodec/siren.c memcpy(s->backup_frame, s->imdct_in, number_of_valid_coefs * sizeof(float)); s 734 libavcodec/siren.c s->imdct_in[i] *= -1; s 736 libavcodec/siren.c s->tx_fn(s->tx_ctx, s->imdct_out, s->imdct_in, sizeof(float)); s 737 libavcodec/siren.c s->fdsp->vector_fmul_window((float *)frame->data[0], s 738 libavcodec/siren.c s->imdct_prev + (FRAME_SIZE >> 1), s 739 libavcodec/siren.c s->imdct_out, s->window, s 741 libavcodec/siren.c FFSWAP(float *, s->imdct_out, s->imdct_prev); s 750 libavcodec/siren.c SirenContext *s = avctx->priv_data; s 752 libavcodec/siren.c memset(s->backup_frame, 0, sizeof(s->backup_frame)); s 753 libavcodec/siren.c memset(s->imdct_prev, 0, FRAME_SIZE * sizeof(*s->imdct_prev)); s 754 libavcodec/siren.c memset(s->imdct_out, 0, FRAME_SIZE * sizeof(*s->imdct_out)); s 759 libavcodec/siren.c SirenContext *s = avctx->priv_data; s 761 libavcodec/siren.c av_freep(&s->fdsp); s 762 libavcodec/siren.c av_tx_uninit(&s->tx_ctx); s 62 libavcodec/smc.c (opcode & 0x10) ? (1 + bytestream2_get_byte(&s->gb)) : 1 + (opcode & 0x0F); s 75 libavcodec/smc.c av_log(s->avctx, AV_LOG_INFO, "warning: block counter just went negative (this should not happen)\n"); \ s 80 libavcodec/smc.c static void smc_decode_stream(SmcContext *s) s 82 libavcodec/smc.c int width = s->avctx->width; s 83 libavcodec/smc.c int height = s->avctx->height; s 84 libavcodec/smc.c int stride = s->frame->linesize[0]; s 87 libavcodec/smc.c int buf_size = bytestream2_size(&s->gb); s 95 libavcodec/smc.c unsigned char * const pixels = s->frame->data[0]; s 97 libavcodec/smc.c int image_size = height * s->frame->linesize[0]; s 115 libavcodec/smc.c memcpy(s->frame->data[1], s->pal, AVPALETTE_SIZE); s 117 libavcodec/smc.c bytestream2_skip(&s->gb, 1); s 118 libavcodec/smc.c chunk_size = bytestream2_get_be24(&s->gb); s 120 libavcodec/smc.c av_log(s->avctx, AV_LOG_INFO, "warning: MOV chunk size != encoded chunk size (%d != %d); using MOV chunk size\n", s 124 libavcodec/smc.c total_blocks = ((s->avctx->width + 3) / 4) * ((s->avctx->height + 3) / 4); s 131 libavcodec/smc.c av_log(s->avctx, AV_LOG_INFO, "SMC decoder just went out of bounds (row ptr = %d, height = %d)\n", s 135 libavcodec/smc.c if (bytestream2_get_bytes_left(&s->gb) < 1) { s 136 libavcodec/smc.c av_log(s->avctx, AV_LOG_ERROR, "input too small\n"); s 140 libavcodec/smc.c opcode = bytestream2_get_byte(&s->gb); s 158 libavcodec/smc.c av_log(s->avctx, AV_LOG_INFO, "encountered repeat block opcode (%02X) but no blocks rendered yet\n", s 166 libavcodec/smc.c (row_ptr - s->avctx->width * 4) + s->avctx->width - 4; s 192 libavcodec/smc.c av_log(s->avctx, AV_LOG_INFO, "encountered repeat block opcode (%02X) but not enough blocks rendered yet\n", s 199 libavcodec/smc.c prev_block_ptr1 = (row_ptr - s->avctx->width * 4) + s 200 libavcodec/smc.c s->avctx->width - 4 * 2; s 202 libavcodec/smc.c prev_block_ptr1 = (row_ptr - s->avctx->width * 4) + row_inc; s 207 libavcodec/smc.c prev_block_ptr2 = (row_ptr - s->avctx->width * 4) + row_inc; s 235 libavcodec/smc.c pixel = bytestream2_get_byte(&s->gb); s 259 libavcodec/smc.c pixel = bytestream2_get_byte(&s->gb); s 261 libavcodec/smc.c s->color_pairs[color_table_index] = pixel; s 270 libavcodec/smc.c color_table_index = CPAIR * bytestream2_get_byte(&s->gb); s 273 libavcodec/smc.c color_flags = bytestream2_get_be16(&s->gb); s 283 libavcodec/smc.c pixels[block_ptr++] = s->color_pairs[pixel]; s 301 libavcodec/smc.c pixel = bytestream2_get_byte(&s->gb); s 303 libavcodec/smc.c s->color_quads[color_table_index] = pixel; s 312 libavcodec/smc.c color_table_index = CQUAD * bytestream2_get_byte(&s->gb); s 315 libavcodec/smc.c color_flags = bytestream2_get_be32(&s->gb); s 324 libavcodec/smc.c pixels[block_ptr++] = s->color_quads[pixel]; s 342 libavcodec/smc.c pixel = bytestream2_get_byte(&s->gb); s 344 libavcodec/smc.c s->color_octets[color_table_index] = pixel; s 353 libavcodec/smc.c color_table_index = COCTET * bytestream2_get_byte(&s->gb); s 363 libavcodec/smc.c int val1 = bytestream2_get_be16(&s->gb); s 364 libavcodec/smc.c int val2 = bytestream2_get_be16(&s->gb); s 365 libavcodec/smc.c int val3 = bytestream2_get_be16(&s->gb); s 384 libavcodec/smc.c pixels[block_ptr++] = s->color_octets[pixel]; s 400 libavcodec/smc.c pixels[block_ptr++] = bytestream2_get_byte(&s->gb); s 409 libavcodec/smc.c avpriv_request_sample(s->avctx, "0xF0 opcode"); s 419 libavcodec/smc.c SmcContext *s = avctx->priv_data; s 421 libavcodec/smc.c s->avctx = avctx; s 424 libavcodec/smc.c s->frame = av_frame_alloc(); s 425 libavcodec/smc.c if (!s->frame) s 437 libavcodec/smc.c SmcContext *s = avctx->priv_data; s 441 libavcodec/smc.c int total_blocks = ((s->avctx->width + 3) / 4) * ((s->avctx->height + 3) / 4); s 446 libavcodec/smc.c bytestream2_init(&s->gb, buf, buf_size); s 448 libavcodec/smc.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 452 libavcodec/smc.c s->frame->palette_has_changed = 1; s 453 libavcodec/smc.c memcpy(s->pal, pal, AVPALETTE_SIZE); s 458 libavcodec/smc.c smc_decode_stream(s); s 461 libavcodec/smc.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 470 libavcodec/smc.c SmcContext *s = avctx->priv_data; s 472 libavcodec/smc.c av_frame_free(&s->frame); s 80 libavcodec/smvjpegdec.c SMVJpegDecodeContext *s = avctx->priv_data; s 81 libavcodec/smvjpegdec.c MJpegDecodeContext *jpg = &s->jpg; s 85 libavcodec/smvjpegdec.c av_frame_free(&s->picture[0]); s 86 libavcodec/smvjpegdec.c av_frame_free(&s->picture[1]); s 87 libavcodec/smvjpegdec.c ret = avcodec_close(s->avctx); s 88 libavcodec/smvjpegdec.c av_freep(&s->avctx); s 94 libavcodec/smvjpegdec.c SMVJpegDecodeContext *s = avctx->priv_data; s 99 libavcodec/smvjpegdec.c s->frames_per_jpeg = 0; s 101 libavcodec/smvjpegdec.c s->picture[0] = av_frame_alloc(); s 102 libavcodec/smvjpegdec.c if (!s->picture[0]) s 105 libavcodec/smvjpegdec.c s->picture[1] = av_frame_alloc(); s 106 libavcodec/smvjpegdec.c if (!s->picture[1]) { s 107 libavcodec/smvjpegdec.c av_frame_free(&s->picture[0]); s 111 libavcodec/smvjpegdec.c s->jpg.picture_ptr = s->picture[0]; s 114 libavcodec/smvjpegdec.c s->frames_per_jpeg = AV_RL32(avctx->extradata); s 116 libavcodec/smvjpegdec.c if (s->frames_per_jpeg <= 0) { s 128 libavcodec/smvjpegdec.c s->avctx = avcodec_alloc_context3(codec); s 131 libavcodec/smvjpegdec.c s->avctx->refcounted_frames = 1; s 132 libavcodec/smvjpegdec.c s->avctx->flags = avctx->flags; s 133 libavcodec/smvjpegdec.c s->avctx->idct_algo = avctx->idct_algo; s 134 libavcodec/smvjpegdec.c if ((r = ff_codec_open2_recursive(s->avctx, codec, &thread_opt)) < 0) { s 149 libavcodec/smvjpegdec.c SMVJpegDecodeContext *s = avctx->priv_data; s 150 libavcodec/smvjpegdec.c AVFrame* mjpeg_data = s->picture[0]; s 153 libavcodec/smvjpegdec.c cur_frame = avpkt->pts % s->frames_per_jpeg; s 157 libavcodec/smvjpegdec.c cur_frame += s->frames_per_jpeg; s 162 libavcodec/smvjpegdec.c ret = avcodec_decode_video2(s->avctx, mjpeg_data, &s->mjpeg_data_size, avpkt); s 164 libavcodec/smvjpegdec.c s->mjpeg_data_size = 0; s 167 libavcodec/smvjpegdec.c } else if (!s->mjpeg_data_size) s 170 libavcodec/smvjpegdec.c desc = av_pix_fmt_desc_get(s->avctx->pix_fmt); s 173 libavcodec/smvjpegdec.c if (mjpeg_data->height % (s->frames_per_jpeg << desc->log2_chroma_h)) { s 179 libavcodec/smvjpegdec.c *data_size = s->mjpeg_data_size; s 181 libavcodec/smvjpegdec.c avctx->pix_fmt = s->avctx->pix_fmt; s 185 libavcodec/smvjpegdec.c ret = ff_set_dimensions(avctx, mjpeg_data->width, mjpeg_data->height / s->frames_per_jpeg); s 187 libavcodec/smvjpegdec.c av_log(s, AV_LOG_ERROR, "Failed to set dimensions\n"); s 192 libavcodec/smvjpegdec.c s->picture[1]->extended_data = NULL; s 193 libavcodec/smvjpegdec.c s->picture[1]->width = avctx->width; s 194 libavcodec/smvjpegdec.c s->picture[1]->height = avctx->height; s 195 libavcodec/smvjpegdec.c s->picture[1]->format = avctx->pix_fmt; s 196 libavcodec/smvjpegdec.c smv_img_pnt(s->picture[1]->data, mjpeg_data->data, mjpeg_data->linesize, s 199 libavcodec/smvjpegdec.c s->picture[1]->linesize[i] = mjpeg_data->linesize[i]; s 201 libavcodec/smvjpegdec.c ret = av_frame_ref(data, s->picture[1]); s 159 libavcodec/snappy.c uint8_t s = bytestream2_get_byte(gb); s 160 libavcodec/snappy.c int val = s >> 2; s 162 libavcodec/snappy.c switch (s & 0x03) { s 69 libavcodec/snow.c int ff_snow_get_buffer(SnowContext *s, AVFrame *frame) s 72 libavcodec/snow.c int edges_needed = av_codec_is_encoder(s->avctx->codec); s 74 libavcodec/snow.c frame->width = s->avctx->width ; s 75 libavcodec/snow.c frame->height = s->avctx->height; s 80 libavcodec/snow.c if ((ret = ff_get_buffer(s->avctx, frame, AV_GET_BUFFER_FLAG_REF)) < 0) s 84 libavcodec/snow.c int offset = (EDGE_WIDTH >> (i ? s->chroma_v_shift : 0)) * s 86 libavcodec/snow.c (EDGE_WIDTH >> (i ? s->chroma_h_shift : 0)); s 89 libavcodec/snow.c frame->width = s->avctx->width; s 90 libavcodec/snow.c frame->height = s->avctx->height; s 96 libavcodec/snow.c void ff_snow_reset_contexts(SnowContext *s){ //FIXME better initial contexts s 102 libavcodec/snow.c memset(s->plane[plane_index].band[level][orientation].state, MID_STATE, sizeof(s->plane[plane_index].band[level][orientation].state)); s 106 libavcodec/snow.c memset(s->header_state, MID_STATE, sizeof(s->header_state)); s 107 libavcodec/snow.c memset(s->block_state, MID_STATE, sizeof(s->block_state)); s 110 libavcodec/snow.c int ff_snow_alloc_blocks(SnowContext *s){ s 111 libavcodec/snow.c int w= AV_CEIL_RSHIFT(s->avctx->width, LOG2_MB_SIZE); s 112 libavcodec/snow.c int h= AV_CEIL_RSHIFT(s->avctx->height, LOG2_MB_SIZE); s 114 libavcodec/snow.c s->b_width = w; s 115 libavcodec/snow.c s->b_height= h; s 117 libavcodec/snow.c av_free(s->block); s 118 libavcodec/snow.c s->block= av_mallocz_array(w * h, sizeof(BlockNode) << (s->block_max_depth*2)); s 119 libavcodec/snow.c if (!s->block) s 327 libavcodec/snow.c void ff_snow_pred_block(SnowContext *s, uint8_t *dst, uint8_t *tmp, ptrdiff_t stride, int sx, int sy, int b_w, int b_h, const BlockNode *block, int plane_index, int w, int h){ s 367 libavcodec/snow.c uint8_t *src= s->last_picture[block->ref]->data[plane_index]; s 368 libavcodec/snow.c const int scale= plane_index ? (2*s->mv_scale)>>s->chroma_h_shift : 2*s->mv_scale; s 379 libavcodec/snow.c s->vdsp.emulated_edge_mc(tmp + MB_SIZE, src, s 386 libavcodec/snow.c av_assert2(s->chroma_h_shift == s->chroma_v_shift); // only one mv_scale s 394 libavcodec/snow.c || !s->plane[plane_index].fast_mc ) s 395 libavcodec/snow.c mc_block(&s->plane[plane_index], dst, src, stride, b_w, b_h, dx, dy); s 399 libavcodec/snow.c s->h264qpel.put_h264_qpel_pixels_tab[0][dy+(dx>>2)](dst + y*stride, src + 3 + (y+3)*stride,stride); s 400 libavcodec/snow.c s->h264qpel.put_h264_qpel_pixels_tab[0][dy+(dx>>2)](dst + 16 + y*stride, src + 19 + (y+3)*stride,stride); s 403 libavcodec/snow.c s->h264qpel.put_h264_qpel_pixels_tab[tab_index ][dy+(dx>>2)](dst,src + 3 + 3*stride,stride); s 405 libavcodec/snow.c s->h264qpel.put_h264_qpel_pixels_tab[tab_index+1][dy+(dx>>2)](dst ,src + 3 + 3*stride,stride); s 406 libavcodec/snow.c s->h264qpel.put_h264_qpel_pixels_tab[tab_index+1][dy+(dx>>2)](dst+b_h,src + 3 + b_h + 3*stride,stride); s 409 libavcodec/snow.c s->h264qpel.put_h264_qpel_pixels_tab[tab_index ][dy+(dx>>2)](dst ,src + 3 + 3*stride ,stride); s 410 libavcodec/snow.c s->h264qpel.put_h264_qpel_pixels_tab[tab_index ][dy+(dx>>2)](dst+b_w*stride,src + 3 + 3*stride+b_w*stride,stride); s 431 libavcodec/snow.c SnowContext *s = avctx->priv_data; s 435 libavcodec/snow.c s->avctx= avctx; s 436 libavcodec/snow.c s->max_ref_frames=1; //just make sure it's not an invalid value in case of no initial keyframe s 437 libavcodec/snow.c s->spatial_decomposition_count = 1; s 439 libavcodec/snow.c ff_me_cmp_init(&s->mecc, avctx); s 440 libavcodec/snow.c ff_hpeldsp_init(&s->hdsp, avctx->flags); s 441 libavcodec/snow.c ff_videodsp_init(&s->vdsp, 8); s 442 libavcodec/snow.c ff_dwt_init(&s->dwt); s 443 libavcodec/snow.c ff_h264qpel_init(&s->h264qpel, 8); s 446 libavcodec/snow.c s->qdsp.put_qpel_pixels_tab [0][dy+dx/4]=\ s 447 libavcodec/snow.c s->qdsp.put_no_rnd_qpel_pixels_tab[0][dy+dx/4]=\ s 448 libavcodec/snow.c s->h264qpel.put_h264_qpel_pixels_tab[0][dy+dx/4];\ s 449 libavcodec/snow.c s->qdsp.put_qpel_pixels_tab [1][dy+dx/4]=\ s 450 libavcodec/snow.c s->qdsp.put_no_rnd_qpel_pixels_tab[1][dy+dx/4]=\ s 451 libavcodec/snow.c s->h264qpel.put_h264_qpel_pixels_tab[1][dy+dx/4]; s 471 libavcodec/snow.c s->hdsp.put_pixels_tab [0][dy/4+dx/8]=\ s 472 libavcodec/snow.c s->hdsp.put_no_rnd_pixels_tab[0][dy/4+dx/8]=\ s 474 libavcodec/snow.c s->hdsp.put_pixels_tab [1][dy/4+dx/8]=\ s 475 libavcodec/snow.c s->hdsp.put_no_rnd_pixels_tab[1][dy/4+dx/8]=\ s 487 libavcodec/snow.c width= s->avctx->width; s 488 libavcodec/snow.c height= s->avctx->height; s 490 libavcodec/snow.c FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->spatial_idwt_buffer, width, height * sizeof(IDWTELEM), fail); s 491 libavcodec/snow.c FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->spatial_dwt_buffer, width, height * sizeof(DWTELEM), fail); //FIXME this does not belong here s 492 libavcodec/snow.c FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->temp_dwt_buffer, width, sizeof(DWTELEM), fail); s 493 libavcodec/snow.c FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->temp_idwt_buffer, width, sizeof(IDWTELEM), fail); s 494 libavcodec/snow.c FF_ALLOC_ARRAY_OR_GOTO(avctx, s->run_buffer, ((width + 1) >> 1), ((height + 1) >> 1) * sizeof(*s->run_buffer), fail); s 499 libavcodec/snow.c s->last_picture[i] = av_frame_alloc(); s 500 libavcodec/snow.c if (!s->last_picture[i]) s 504 libavcodec/snow.c s->mconly_picture = av_frame_alloc(); s 505 libavcodec/snow.c s->current_picture = av_frame_alloc(); s 506 libavcodec/snow.c if (!s->mconly_picture || !s->current_picture) s 515 libavcodec/snow.c SnowContext *s = avctx->priv_data; s 519 libavcodec/snow.c if(!s->scratchbuf) { s 520 libavcodec/snow.c if ((ret = ff_get_buffer(s->avctx, s->mconly_picture, s 523 libavcodec/snow.c FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->scratchbuf, FFMAX(s->mconly_picture->linesize[0], 2*avctx->width+256), 7*MB_SIZE, fail); s 524 libavcodec/snow.c emu_buf_size = FFMAX(s->mconly_picture->linesize[0], 2*avctx->width+256) * (2 * MB_SIZE + HTAPS_MAX - 1); s 525 libavcodec/snow.c FF_ALLOC_OR_GOTO(avctx, s->emu_edge_buffer, emu_buf_size, fail); s 528 libavcodec/snow.c if(s->mconly_picture->format != avctx->pix_fmt) { s 533 libavcodec/snow.c for(plane_index=0; plane_index < s->nb_planes; plane_index++){ s 534 libavcodec/snow.c int w= s->avctx->width; s 535 libavcodec/snow.c int h= s->avctx->height; s 538 libavcodec/snow.c w = AV_CEIL_RSHIFT(w, s->chroma_h_shift); s 539 libavcodec/snow.c h = AV_CEIL_RSHIFT(h, s->chroma_v_shift); s 541 libavcodec/snow.c s->plane[plane_index].width = w; s 542 libavcodec/snow.c s->plane[plane_index].height= h; s 544 libavcodec/snow.c for(level=s->spatial_decomposition_count-1; level>=0; level--){ s 546 libavcodec/snow.c SubBand *b= &s->plane[plane_index].band[level][orientation]; s 548 libavcodec/snow.c b->buf= s->spatial_dwt_buffer; s 550 libavcodec/snow.c b->stride= s->plane[plane_index].width << (s->spatial_decomposition_count - level); s 554 libavcodec/snow.c b->stride_line = 1 << (s->spatial_decomposition_count - level); s 566 libavcodec/snow.c b->ibuf= s->spatial_idwt_buffer + (b->buf - s->spatial_dwt_buffer); s 569 libavcodec/snow.c b->parent= &s->plane[plane_index].band[level-1][orientation]; s 588 libavcodec/snow.c static int halfpel_interpol(SnowContext *s, uint8_t *halfpel[4][4], AVFrame *frame){ s 591 libavcodec/snow.c for(p=0; p < s->nb_planes; p++){ s 593 libavcodec/snow.c int w= is_chroma ? AV_CEIL_RSHIFT(s->avctx->width, s->chroma_h_shift) : s->avctx->width; s 594 libavcodec/snow.c int h= is_chroma ? AV_CEIL_RSHIFT(s->avctx->height, s->chroma_v_shift) : s->avctx->height; s 642 libavcodec/snow.c SnowContext *s = avctx->priv_data; s 645 libavcodec/snow.c if(s->last_picture[s->max_ref_frames-1]->data[0]){ s 646 libavcodec/snow.c av_frame_unref(s->last_picture[s->max_ref_frames-1]); s 648 libavcodec/snow.c if(s->halfpel_plane[s->max_ref_frames-1][1+i/3][i%3]) { s 649 libavcodec/snow.c av_free(s->halfpel_plane[s->max_ref_frames-1][1+i/3][i%3] - EDGE_WIDTH*(1+s->current_picture->linesize[i%3])); s 650 libavcodec/snow.c s->halfpel_plane[s->max_ref_frames-1][1+i/3][i%3] = NULL; s 655 libavcodec/snow.c int ff_snow_frame_start(SnowContext *s){ s 659 libavcodec/snow.c ff_snow_release_buffer(s->avctx); s 661 libavcodec/snow.c tmp= s->last_picture[s->max_ref_frames-1]; s 662 libavcodec/snow.c for(i=s->max_ref_frames-1; i>0; i--) s 663 libavcodec/snow.c s->last_picture[i] = s->last_picture[i-1]; s 664 libavcodec/snow.c memmove(s->halfpel_plane+1, s->halfpel_plane, (s->max_ref_frames-1)*sizeof(void*)*4*4); s 665 libavcodec/snow.c if(USE_HALFPEL_PLANE && s->current_picture->data[0]) { s 666 libavcodec/snow.c if((ret = halfpel_interpol(s, s->halfpel_plane[0], s->current_picture)) < 0) s 669 libavcodec/snow.c s->last_picture[0] = s->current_picture; s 670 libavcodec/snow.c s->current_picture = tmp; s 672 libavcodec/snow.c if(s->keyframe){ s 673 libavcodec/snow.c s->ref_frames= 0; s 676 libavcodec/snow.c for(i=0; i<s->max_ref_frames && s->last_picture[i]->data[0]; i++) s 677 libavcodec/snow.c if(i && s->last_picture[i-1]->key_frame) s 679 libavcodec/snow.c s->ref_frames= i; s 680 libavcodec/snow.c if(s->ref_frames==0){ s 681 libavcodec/snow.c av_log(s->avctx,AV_LOG_ERROR, "No reference frames\n"); s 685 libavcodec/snow.c if ((ret = ff_snow_get_buffer(s, s->current_picture)) < 0) s 688 libavcodec/snow.c s->current_picture->key_frame= s->keyframe; s 693 libavcodec/snow.c av_cold void ff_snow_common_end(SnowContext *s) s 697 libavcodec/snow.c av_freep(&s->spatial_dwt_buffer); s 698 libavcodec/snow.c av_freep(&s->temp_dwt_buffer); s 699 libavcodec/snow.c av_freep(&s->spatial_idwt_buffer); s 700 libavcodec/snow.c av_freep(&s->temp_idwt_buffer); s 701 libavcodec/snow.c av_freep(&s->run_buffer); s 703 libavcodec/snow.c s->m.me.temp= NULL; s 704 libavcodec/snow.c av_freep(&s->m.me.scratchpad); s 705 libavcodec/snow.c av_freep(&s->m.me.map); s 706 libavcodec/snow.c av_freep(&s->m.me.score_map); s 707 libavcodec/snow.c av_freep(&s->m.sc.obmc_scratchpad); s 709 libavcodec/snow.c av_freep(&s->block); s 710 libavcodec/snow.c av_freep(&s->scratchbuf); s 711 libavcodec/snow.c av_freep(&s->emu_edge_buffer); s 714 libavcodec/snow.c av_freep(&s->ref_mvs[i]); s 715 libavcodec/snow.c av_freep(&s->ref_scores[i]); s 716 libavcodec/snow.c if(s->last_picture[i] && s->last_picture[i]->data[0]) { s 717 libavcodec/snow.c av_assert0(s->last_picture[i]->data[0] != s->current_picture->data[0]); s 719 libavcodec/snow.c av_frame_free(&s->last_picture[i]); s 725 libavcodec/snow.c SubBand *b= &s->plane[plane_index].band[level][orientation]; s 731 libavcodec/snow.c av_frame_free(&s->mconly_picture); s 732 libavcodec/snow.c av_frame_free(&s->current_picture); s 242 libavcodec/snow.h void ff_snow_common_end(SnowContext *s); s 244 libavcodec/snow.h void ff_snow_reset_contexts(SnowContext *s); s 245 libavcodec/snow.h int ff_snow_alloc_blocks(SnowContext *s); s 246 libavcodec/snow.h int ff_snow_frame_start(SnowContext *s); s 247 libavcodec/snow.h void ff_snow_pred_block(SnowContext *s, uint8_t *dst, uint8_t *tmp, ptrdiff_t stride, s 250 libavcodec/snow.h int ff_snow_get_buffer(SnowContext *s, AVFrame *frame); s 254 libavcodec/snow.h static inline void pred_mv(SnowContext *s, int *mx, int *my, int ref, s 256 libavcodec/snow.h if(s->ref_frames == 1){ s 280 libavcodec/snow.h static av_always_inline void add_yblock(SnowContext *s, int sliced, slice_buffer *sb, IDWTELEM *dst, uint8_t *dst8, const uint8_t *obmc, int src_x, int src_y, int b_w, int b_h, int w, int h, int dst_stride, int src_stride, int obmc_stride, int b_x, int b_y, int add, int offset_dst, int plane_index){ s 281 libavcodec/snow.h const int b_width = s->b_width << s->block_max_depth; s 282 libavcodec/snow.h const int b_height= s->b_height << s->block_max_depth; s 284 libavcodec/snow.h BlockNode *lt= &s->block[b_x + b_y*b_stride]; s 292 libavcodec/snow.h uint8_t *tmp = s->scratchbuf; s 342 libavcodec/snow.h ff_snow_pred_block(s, block[0], tmp, src_stride, src_x, src_y, b_w, b_h, lt, plane_index, w, h); s 349 libavcodec/snow.h ff_snow_pred_block(s, block[1], tmp, src_stride, src_x, src_y, b_w, b_h, rt, plane_index, w, h); s 359 libavcodec/snow.h ff_snow_pred_block(s, block[2], tmp, src_stride, src_x, src_y, b_w, b_h, lb, plane_index, w, h); s 370 libavcodec/snow.h ff_snow_pred_block(s, block[3], tmp, src_stride, src_x, src_y, b_w, b_h, rb, plane_index, w, h); s 373 libavcodec/snow.h s->dwt.inner_add_yblock(obmc, obmc_stride, block, b_w, b_h, src_x,src_y, src_stride, sb, add, dst8); s 404 libavcodec/snow.h static av_always_inline void predict_slice(SnowContext *s, IDWTELEM *buf, int plane_index, int add, int mb_y){ s 405 libavcodec/snow.h Plane *p= &s->plane[plane_index]; s 406 libavcodec/snow.h const int mb_w= s->b_width << s->block_max_depth; s 407 libavcodec/snow.h const int mb_h= s->b_height << s->block_max_depth; s 409 libavcodec/snow.h int block_size = MB_SIZE >> s->block_max_depth; s 410 libavcodec/snow.h int block_w = plane_index ? block_size>>s->chroma_h_shift : block_size; s 411 libavcodec/snow.h int block_h = plane_index ? block_size>>s->chroma_v_shift : block_size; s 412 libavcodec/snow.h const uint8_t *obmc = plane_index ? ff_obmc_tab[s->block_max_depth+s->chroma_h_shift] : ff_obmc_tab[s->block_max_depth]; s 413 libavcodec/snow.h const int obmc_stride= plane_index ? (2*block_size)>>s->chroma_h_shift : 2*block_size; s 414 libavcodec/snow.h int ref_stride= s->current_picture->linesize[plane_index]; s 415 libavcodec/snow.h uint8_t *dst8= s->current_picture->data[plane_index]; s 418 libavcodec/snow.h av_assert2(s->chroma_h_shift == s->chroma_v_shift); // obmc params assume squares s 419 libavcodec/snow.h if(s->keyframe || (s->avctx->debug&512)){ s 444 libavcodec/snow.h add_yblock(s, 0, NULL, buf, dst8, obmc, s 455 libavcodec/snow.h static av_always_inline void predict_plane(SnowContext *s, IDWTELEM *buf, int plane_index, int add){ s 456 libavcodec/snow.h const int mb_h= s->b_height << s->block_max_depth; s 459 libavcodec/snow.h predict_slice(s, buf, plane_index, add, mb_y); s 462 libavcodec/snow.h static inline void set_blocks(SnowContext *s, int level, int x, int y, int l, int cb, int cr, int mx, int my, int ref, int type){ s 463 libavcodec/snow.h const int w= s->b_width << s->block_max_depth; s 464 libavcodec/snow.h const int rem_depth= s->block_max_depth - level; s 482 libavcodec/snow.h s->block[index + i + j*w]= block; s 488 libavcodec/snow.h SnowContext *s = c->avctx->priv_data; s 491 libavcodec/snow.h ((y*c->uvstride + x)>>s->chroma_h_shift), s 492 libavcodec/snow.h ((y*c->uvstride + x)>>s->chroma_h_shift), s 603 libavcodec/snow.h static inline void unpack_coeffs(SnowContext *s, SubBand *b, SubBand * parent, int orientation){ s 615 libavcodec/snow.h runs= get_symbol2(&s->c, b->state[30], 0); s 616 libavcodec/snow.h if(runs-- > 0) run= get_symbol2(&s->c, b->state[1], 3); s 651 libavcodec/snow.h v=get_rac(&s->c, &b->state[0][context]); s 653 libavcodec/snow.h v= 2*(get_symbol2(&s->c, b->state[context + 2], context-4) + 1); s 654 libavcodec/snow.h v+=get_rac(&s->c, &b->state[0][16 + 1 + 3 + ff_quant3bA[l&0xFF] + 3*ff_quant3bA[t&0xFF]]); s 656 libavcodec/snow.h av_log(s->avctx, AV_LOG_ERROR, "Coefficient damaged\n"); s 664 libavcodec/snow.h if(runs-- > 0) run= get_symbol2(&s->c, b->state[1], 3); s 666 libavcodec/snow.h v= 2*(get_symbol2(&s->c, b->state[0 + 2], 0-4) + 1); s 667 libavcodec/snow.h v+=get_rac(&s->c, &b->state[0][16 + 1 + 3]); s 669 libavcodec/snow.h av_log(s->avctx, AV_LOG_ERROR, "Coefficient damaged\n"); s 746 libavcodec/snow_dwt.c int s, i, j; s 792 libavcodec/snow_dwt.c s = 0; s 805 libavcodec/snow_dwt.c s += FFABS(v); s 808 libavcodec/snow_dwt.c av_assert1(s >= 0); s 809 libavcodec/snow_dwt.c return s >> 9; s 35 libavcodec/snowdec.c static av_always_inline void predict_slice_buffered(SnowContext *s, slice_buffer * sb, IDWTELEM * old_buffer, int plane_index, int add, int mb_y){ s 36 libavcodec/snowdec.c Plane *p= &s->plane[plane_index]; s 37 libavcodec/snowdec.c const int mb_w= s->b_width << s->block_max_depth; s 38 libavcodec/snowdec.c const int mb_h= s->b_height << s->block_max_depth; s 40 libavcodec/snowdec.c int block_size = MB_SIZE >> s->block_max_depth; s 41 libavcodec/snowdec.c int block_w = plane_index ? block_size>>s->chroma_h_shift : block_size; s 42 libavcodec/snowdec.c int block_h = plane_index ? block_size>>s->chroma_v_shift : block_size; s 43 libavcodec/snowdec.c const uint8_t *obmc = plane_index ? ff_obmc_tab[s->block_max_depth+s->chroma_h_shift] : ff_obmc_tab[s->block_max_depth]; s 44 libavcodec/snowdec.c int obmc_stride= plane_index ? (2*block_size)>>s->chroma_h_shift : 2*block_size; s 45 libavcodec/snowdec.c int ref_stride= s->current_picture->linesize[plane_index]; s 46 libavcodec/snowdec.c uint8_t *dst8= s->current_picture->data[plane_index]; s 50 libavcodec/snowdec.c if(s->keyframe || (s->avctx->debug&512)){ s 81 libavcodec/snowdec.c add_yblock(s, 1, sb, old_buffer, dst8, obmc, s 91 libavcodec/snowdec.c if(s->avmv && mb_y < mb_h && plane_index == 0) s 93 libavcodec/snowdec.c AVMotionVector *avmv = s->avmv + s->avmv_index; s 94 libavcodec/snowdec.c const int b_width = s->b_width << s->block_max_depth; s 96 libavcodec/snowdec.c BlockNode *bn= &s->block[mb_x + mb_y*b_stride]; s 101 libavcodec/snowdec.c s->avmv_index++; s 108 libavcodec/snowdec.c avmv->motion_x = bn->mx * s->mv_scale; s 109 libavcodec/snowdec.c avmv->motion_y = bn->my * s->mv_scale; s 117 libavcodec/snowdec.c static inline void decode_subband_slice_buffered(SnowContext *s, SubBand *b, slice_buffer * sb, int start_y, int h, int save_state[1]){ s 120 libavcodec/snowdec.c const int qlog= av_clip(s->qlog + (int64_t)b->qlog, 0, QROOT*16); s 122 libavcodec/snowdec.c int qadd= (s->qbias*qmul)>>QBIAS_SHIFT; s 125 libavcodec/snowdec.c if(b->ibuf == s->spatial_idwt_buffer || s->qlog == LOSSLESS_QLOG){ s 158 libavcodec/snowdec.c static int decode_q_branch(SnowContext *s, int level, int x, int y){ s 159 libavcodec/snowdec.c const int w= s->b_width << s->block_max_depth; s 160 libavcodec/snowdec.c const int rem_depth= s->block_max_depth - level; s 163 libavcodec/snowdec.c const BlockNode *left = x ? &s->block[index-1] : &null_block; s 164 libavcodec/snowdec.c const BlockNode *top = y ? &s->block[index-w] : &null_block; s 165 libavcodec/snowdec.c const BlockNode *tl = y && x ? &s->block[index-w-1] : left; s 166 libavcodec/snowdec.c const BlockNode *tr = y && trx<w && ((x&1)==0 || level==0) ? &s->block[index-w+(1<<rem_depth)] : tl; //FIXME use lt s 170 libavcodec/snowdec.c if(s->keyframe){ s 171 libavcodec/snowdec.c set_blocks(s, level, x, y, null_block.color[0], null_block.color[1], null_block.color[2], null_block.mx, null_block.my, null_block.ref, BLOCK_INTRA); s 175 libavcodec/snowdec.c if(level==s->block_max_depth || get_rac(&s->c, &s->block_state[4 + s_context])){ s 185 libavcodec/snowdec.c type= get_rac(&s->c, &s->block_state[1 + left->type + top->type]) ? BLOCK_INTRA : 0; s 188 libavcodec/snowdec.c pred_mv(s, &mx, &my, 0, left, top, tr); s 189 libavcodec/snowdec.c ld = get_symbol(&s->c, &s->block_state[32], 1); s 194 libavcodec/snowdec.c if (s->nb_planes > 2) { s 195 libavcodec/snowdec.c cbd = get_symbol(&s->c, &s->block_state[64], 1); s 196 libavcodec/snowdec.c crd = get_symbol(&s->c, &s->block_state[96], 1); s 204 libavcodec/snowdec.c if(s->ref_frames > 1) s 205 libavcodec/snowdec.c ref= get_symbol(&s->c, &s->block_state[128 + 1024 + 32*ref_context], 0); s 206 libavcodec/snowdec.c if (ref >= s->ref_frames) { s 207 libavcodec/snowdec.c av_log(s->avctx, AV_LOG_ERROR, "Invalid ref\n"); s 210 libavcodec/snowdec.c pred_mv(s, &mx, &my, ref, left, top, tr); s 211 libavcodec/snowdec.c mx+= (unsigned)get_symbol(&s->c, &s->block_state[128 + 32*(mx_context + 16*!!ref)], 1); s 212 libavcodec/snowdec.c my+= (unsigned)get_symbol(&s->c, &s->block_state[128 + 32*(my_context + 16*!!ref)], 1); s 214 libavcodec/snowdec.c set_blocks(s, level, x, y, l, cb, cr, mx, my, ref, type); s 216 libavcodec/snowdec.c if ((res = decode_q_branch(s, level+1, 2*x+0, 2*y+0)) < 0 || s 217 libavcodec/snowdec.c (res = decode_q_branch(s, level+1, 2*x+1, 2*y+0)) < 0 || s 218 libavcodec/snowdec.c (res = decode_q_branch(s, level+1, 2*x+0, 2*y+1)) < 0 || s 219 libavcodec/snowdec.c (res = decode_q_branch(s, level+1, 2*x+1, 2*y+1)) < 0) s 225 libavcodec/snowdec.c static void dequantize_slice_buffered(SnowContext *s, slice_buffer * sb, SubBand *b, IDWTELEM *src, int stride, int start_y, int end_y){ s 227 libavcodec/snowdec.c const int qlog= av_clip(s->qlog + (int64_t)b->qlog, 0, QROOT*16); s 229 libavcodec/snowdec.c const int qadd= (s->qbias*qmul)>>QBIAS_SHIFT; s 232 libavcodec/snowdec.c if(s->qlog == LOSSLESS_QLOG) return; s 248 libavcodec/snowdec.c static void correlate_slice_buffered(SnowContext *s, slice_buffer * sb, SubBand *b, IDWTELEM *src, int stride, int inverse, int use_median, int start_y, int end_y){ s 278 libavcodec/snowdec.c static void decode_qlogs(SnowContext *s){ s 281 libavcodec/snowdec.c for(plane_index=0; plane_index < s->nb_planes; plane_index++){ s 282 libavcodec/snowdec.c for(level=0; level<s->spatial_decomposition_count; level++){ s 285 libavcodec/snowdec.c if (plane_index==2) q= s->plane[1].band[level][orientation].qlog; s 286 libavcodec/snowdec.c else if(orientation==2) q= s->plane[plane_index].band[level][1].qlog; s 287 libavcodec/snowdec.c else q= get_symbol(&s->c, s->header_state, 1); s 288 libavcodec/snowdec.c s->plane[plane_index].band[level][orientation].qlog= q; s 295 libavcodec/snowdec.c tmp= get_symbol(&s->c, s->header_state, 0);\ s 297 libavcodec/snowdec.c av_log(s->avctx, AV_LOG_ERROR, "Error " #dst " is %d\n", tmp);\ s 302 libavcodec/snowdec.c static int decode_header(SnowContext *s){ s 308 libavcodec/snowdec.c s->keyframe= get_rac(&s->c, kstate); s 309 libavcodec/snowdec.c if(s->keyframe || s->always_reset){ s 310 libavcodec/snowdec.c ff_snow_reset_contexts(s); s 311 libavcodec/snowdec.c s->spatial_decomposition_type= s 312 libavcodec/snowdec.c s->qlog= s 313 libavcodec/snowdec.c s->qbias= s 314 libavcodec/snowdec.c s->mv_scale= s 315 libavcodec/snowdec.c s->block_max_depth= 0; s 317 libavcodec/snowdec.c if(s->keyframe){ s 318 libavcodec/snowdec.c GET_S(s->version, tmp <= 0U) s 319 libavcodec/snowdec.c s->always_reset= get_rac(&s->c, s->header_state); s 320 libavcodec/snowdec.c s->temporal_decomposition_type= get_symbol(&s->c, s->header_state, 0); s 321 libavcodec/snowdec.c s->temporal_decomposition_count= get_symbol(&s->c, s->header_state, 0); s 322 libavcodec/snowdec.c GET_S(s->spatial_decomposition_count, 0 < tmp && tmp <= MAX_DECOMPOSITIONS) s 323 libavcodec/snowdec.c s->colorspace_type= get_symbol(&s->c, s->header_state, 0); s 324 libavcodec/snowdec.c if (s->colorspace_type == 1) { s 325 libavcodec/snowdec.c s->avctx->pix_fmt= AV_PIX_FMT_GRAY8; s 326 libavcodec/snowdec.c s->nb_planes = 1; s 327 libavcodec/snowdec.c } else if(s->colorspace_type == 0) { s 328 libavcodec/snowdec.c s->chroma_h_shift= get_symbol(&s->c, s->header_state, 0); s 329 libavcodec/snowdec.c s->chroma_v_shift= get_symbol(&s->c, s->header_state, 0); s 331 libavcodec/snowdec.c if(s->chroma_h_shift == 1 && s->chroma_v_shift==1){ s 332 libavcodec/snowdec.c s->avctx->pix_fmt= AV_PIX_FMT_YUV420P; s 333 libavcodec/snowdec.c }else if(s->chroma_h_shift == 0 && s->chroma_v_shift==0){ s 334 libavcodec/snowdec.c s->avctx->pix_fmt= AV_PIX_FMT_YUV444P; s 335 libavcodec/snowdec.c }else if(s->chroma_h_shift == 2 && s->chroma_v_shift==2){ s 336 libavcodec/snowdec.c s->avctx->pix_fmt= AV_PIX_FMT_YUV410P; s 338 libavcodec/snowdec.c av_log(s, AV_LOG_ERROR, "unsupported color subsample mode %d %d\n", s->chroma_h_shift, s->chroma_v_shift); s 339 libavcodec/snowdec.c s->chroma_h_shift = s->chroma_v_shift = 1; s 340 libavcodec/snowdec.c s->avctx->pix_fmt= AV_PIX_FMT_YUV420P; s 343 libavcodec/snowdec.c s->nb_planes = 3; s 345 libavcodec/snowdec.c av_log(s, AV_LOG_ERROR, "unsupported color space\n"); s 346 libavcodec/snowdec.c s->chroma_h_shift = s->chroma_v_shift = 1; s 347 libavcodec/snowdec.c s->avctx->pix_fmt= AV_PIX_FMT_YUV420P; s 352 libavcodec/snowdec.c s->spatial_scalability= get_rac(&s->c, s->header_state); s 354 libavcodec/snowdec.c GET_S(s->max_ref_frames, tmp < (unsigned)MAX_REF_FRAMES) s 355 libavcodec/snowdec.c s->max_ref_frames++; s 357 libavcodec/snowdec.c decode_qlogs(s); s 360 libavcodec/snowdec.c if(!s->keyframe){ s 361 libavcodec/snowdec.c if(get_rac(&s->c, s->header_state)){ s 362 libavcodec/snowdec.c for(plane_index=0; plane_index<FFMIN(s->nb_planes, 2); plane_index++){ s 364 libavcodec/snowdec.c Plane *p= &s->plane[plane_index]; s 365 libavcodec/snowdec.c p->diag_mc= get_rac(&s->c, s->header_state); s 366 libavcodec/snowdec.c htaps= get_symbol(&s->c, s->header_state, 0); s 372 libavcodec/snowdec.c p->hcoeff[i]= get_symbol(&s->c, s->header_state, 0) * (1-2*(i&1)); s 377 libavcodec/snowdec.c s->plane[2].diag_mc= s->plane[1].diag_mc; s 378 libavcodec/snowdec.c s->plane[2].htaps = s->plane[1].htaps; s 379 libavcodec/snowdec.c memcpy(s->plane[2].hcoeff, s->plane[1].hcoeff, sizeof(s->plane[1].hcoeff)); s 381 libavcodec/snowdec.c if(get_rac(&s->c, s->header_state)){ s 382 libavcodec/snowdec.c GET_S(s->spatial_decomposition_count, 0 < tmp && tmp <= MAX_DECOMPOSITIONS) s 383 libavcodec/snowdec.c decode_qlogs(s); s 387 libavcodec/snowdec.c s->spatial_decomposition_type+= (unsigned)get_symbol(&s->c, s->header_state, 1); s 388 libavcodec/snowdec.c if(s->spatial_decomposition_type > 1U){ s 389 libavcodec/snowdec.c av_log(s->avctx, AV_LOG_ERROR, "spatial_decomposition_type %d not supported\n", s->spatial_decomposition_type); s 392 libavcodec/snowdec.c if(FFMIN(s->avctx-> width>>s->chroma_h_shift, s 393 libavcodec/snowdec.c s->avctx->height>>s->chroma_v_shift) >> (s->spatial_decomposition_count-1) <= 1){ s 394 libavcodec/snowdec.c av_log(s->avctx, AV_LOG_ERROR, "spatial_decomposition_count %d too large for size\n", s->spatial_decomposition_count); s 397 libavcodec/snowdec.c if (s->avctx->width > 65536-4) { s 398 libavcodec/snowdec.c av_log(s->avctx, AV_LOG_ERROR, "Width %d is too large\n", s->avctx->width); s 403 libavcodec/snowdec.c s->qlog += (unsigned)get_symbol(&s->c, s->header_state, 1); s 404 libavcodec/snowdec.c s->mv_scale += (unsigned)get_symbol(&s->c, s->header_state, 1); s 405 libavcodec/snowdec.c s->qbias += (unsigned)get_symbol(&s->c, s->header_state, 1); s 406 libavcodec/snowdec.c s->block_max_depth+= (unsigned)get_symbol(&s->c, s->header_state, 1); s 407 libavcodec/snowdec.c if(s->block_max_depth > 1 || s->block_max_depth < 0 || s->mv_scale > 256U){ s 408 libavcodec/snowdec.c av_log(s->avctx, AV_LOG_ERROR, "block_max_depth= %d is too large\n", s->block_max_depth); s 409 libavcodec/snowdec.c s->block_max_depth= 0; s 410 libavcodec/snowdec.c s->mv_scale = 0; s 413 libavcodec/snowdec.c if (FFABS(s->qbias) > 127) { s 414 libavcodec/snowdec.c av_log(s->avctx, AV_LOG_ERROR, "qbias %d is too large\n", s->qbias); s 415 libavcodec/snowdec.c s->qbias = 0; s 433 libavcodec/snowdec.c static int decode_blocks(SnowContext *s){ s 435 libavcodec/snowdec.c int w= s->b_width; s 436 libavcodec/snowdec.c int h= s->b_height; s 441 libavcodec/snowdec.c if (s->c.bytestream >= s->c.bytestream_end) s 443 libavcodec/snowdec.c if ((res = decode_q_branch(s, 0, x, y)) < 0) s 455 libavcodec/snowdec.c SnowContext *s = avctx->priv_data; s 456 libavcodec/snowdec.c RangeCoder * const c= &s->c; s 465 libavcodec/snowdec.c s->current_picture->pict_type= AV_PICTURE_TYPE_I; //FIXME I vs. P s 466 libavcodec/snowdec.c if ((res = decode_header(s)) < 0) s 472 libavcodec/snowdec.c ff_slice_buffer_destroy(&s->sb); s 473 libavcodec/snowdec.c if ((res = ff_slice_buffer_init(&s->sb, s->plane[0].height, s 474 libavcodec/snowdec.c (MB_SIZE >> s->block_max_depth) + s 475 libavcodec/snowdec.c s->spatial_decomposition_count * 11 + 1, s 476 libavcodec/snowdec.c s->plane[0].width, s 477 libavcodec/snowdec.c s->spatial_idwt_buffer)) < 0) s 480 libavcodec/snowdec.c for(plane_index=0; plane_index < s->nb_planes; plane_index++){ s 481 libavcodec/snowdec.c Plane *p= &s->plane[plane_index]; s 487 libavcodec/snowdec.c ff_snow_alloc_blocks(s); s 489 libavcodec/snowdec.c if((res = ff_snow_frame_start(s)) < 0) s 492 libavcodec/snowdec.c s->current_picture->pict_type = s->keyframe ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; s 499 libavcodec/snowdec.c s->keyframe, s->qlog, s->qbias, s->mv_scale, s 500 libavcodec/snowdec.c s->spatial_decomposition_type, s 501 libavcodec/snowdec.c s->spatial_decomposition_count s 504 libavcodec/snowdec.c av_assert0(!s->avmv); s 505 libavcodec/snowdec.c if (s->avctx->export_side_data & AV_CODEC_EXPORT_DATA_MVS) { s 506 libavcodec/snowdec.c s->avmv = av_malloc_array(s->b_width * s->b_height, sizeof(AVMotionVector) << (s->block_max_depth*2)); s 508 libavcodec/snowdec.c s->avmv_index = 0; s 510 libavcodec/snowdec.c if ((res = decode_blocks(s)) < 0) s 513 libavcodec/snowdec.c for(plane_index=0; plane_index < s->nb_planes; plane_index++){ s 514 libavcodec/snowdec.c Plane *p= &s->plane[plane_index]; s 520 libavcodec/snowdec.c if(s->avctx->debug&2048){ s 521 libavcodec/snowdec.c memset(s->spatial_dwt_buffer, 0, sizeof(DWTELEM)*w*h); s 522 libavcodec/snowdec.c predict_plane(s, s->spatial_idwt_buffer, plane_index, 1); s 526 libavcodec/snowdec.c int v= s->current_picture->data[plane_index][y*s->current_picture->linesize[plane_index] + x]; s 527 libavcodec/snowdec.c s->mconly_picture->data[plane_index][y*s->mconly_picture->linesize[plane_index] + x]= v; s 532 libavcodec/snowdec.c for(level=0; level<s->spatial_decomposition_count; level++){ s 535 libavcodec/snowdec.c unpack_coeffs(s, b, b->parent, orientation); s 540 libavcodec/snowdec.c const int mb_h= s->b_height << s->block_max_depth; s 541 libavcodec/snowdec.c const int block_size = MB_SIZE >> s->block_max_depth; s 542 libavcodec/snowdec.c const int block_h = plane_index ? block_size>>s->chroma_v_shift : block_size; s 549 libavcodec/snowdec.c ff_spatial_idwt_buffered_init(cs, &s->sb, w, h, 1, s->spatial_decomposition_type, s->spatial_decomposition_count); s 555 libavcodec/snowdec.c if (!(s->keyframe || s->avctx->debug&512)){ s 560 libavcodec/snowdec.c for(level=0; level<s->spatial_decomposition_count; level++){ s 568 libavcodec/snowdec.c start_y = (mb_y ? ((block_h * our_mb_start) >> (s->spatial_decomposition_count - level)) + s->spatial_decomposition_count - level + extra: 0); s 569 libavcodec/snowdec.c end_y = (((block_h * our_mb_end) >> (s->spatial_decomposition_count - level)) + s->spatial_decomposition_count - level + extra); s 570 libavcodec/snowdec.c if (!(s->keyframe || s->avctx->debug&512)){ s 571 libavcodec/snowdec.c start_y = FFMAX(0, start_y - (block_h >> (1+s->spatial_decomposition_count - level))); s 572 libavcodec/snowdec.c end_y = FFMAX(0, end_y - (block_h >> (1+s->spatial_decomposition_count - level))); s 582 libavcodec/snowdec.c decode_subband_slice_buffered(s, correlate_band, &s->sb, correlate_start_y, correlate_end_y, decode_state[0][0]); s 583 libavcodec/snowdec.c correlate_slice_buffered(s, &s->sb, correlate_band, correlate_band->ibuf, correlate_band->stride, 1, 0, correlate_start_y, correlate_end_y); s 584 libavcodec/snowdec.c dequantize_slice_buffered(s, &s->sb, correlate_band, correlate_band->ibuf, correlate_band->stride, start_y, end_y); s 587 libavcodec/snowdec.c decode_subband_slice_buffered(s, b, &s->sb, start_y, end_y, decode_state[level][orientation]); s 593 libavcodec/snowdec.c ff_spatial_idwt_buffered_slice(&s->dwt, cs, &s->sb, s->temp_idwt_buffer, w, h, 1, s->spatial_decomposition_type, s->spatial_decomposition_count, yd); s 596 libavcodec/snowdec.c if(s->qlog == LOSSLESS_QLOG){ s 598 libavcodec/snowdec.c IDWTELEM * line = slice_buffer_get_line(&s->sb, yq); s 605 libavcodec/snowdec.c predict_slice_buffered(s, &s->sb, s->spatial_idwt_buffer, plane_index, 1, mb_y); s 610 libavcodec/snowdec.c ff_slice_buffer_release(&s->sb, y++); s 613 libavcodec/snowdec.c ff_slice_buffer_flush(&s->sb); s 622 libavcodec/snowdec.c if(!(s->avctx->debug&2048)) s 623 libavcodec/snowdec.c res = av_frame_ref(picture, s->current_picture); s 625 libavcodec/snowdec.c res = av_frame_ref(picture, s->mconly_picture); s 626 libavcodec/snowdec.c if (res >= 0 && s->avmv_index) { s 629 libavcodec/snowdec.c sd = av_frame_new_side_data(picture, AV_FRAME_DATA_MOTION_VECTORS, s->avmv_index * sizeof(AVMotionVector)); s 632 libavcodec/snowdec.c memcpy(sd->data, s->avmv, s->avmv_index * sizeof(AVMotionVector)); s 635 libavcodec/snowdec.c av_freep(&s->avmv); s 643 libavcodec/snowdec.c if(bytes_read ==0) av_log(s->avctx, AV_LOG_ERROR, "error at end of frame\n"); //FIXME s 650 libavcodec/snowdec.c SnowContext *s = avctx->priv_data; s 652 libavcodec/snowdec.c ff_slice_buffer_destroy(&s->sb); s 654 libavcodec/snowdec.c ff_snow_common_end(s); s 40 libavcodec/snowenc.c SnowContext *s = avctx->priv_data; s 47 libavcodec/snowenc.c s->pred = avctx->prediction_method; s 51 libavcodec/snowenc.c if(s->pred == DWT_97 s 58 libavcodec/snowenc.c s->spatial_decomposition_type= s->pred; //FIXME add decorrelator type r transform_type s 60 libavcodec/snowenc.c s->mv_scale = (avctx->flags & AV_CODEC_FLAG_QPEL) ? 2 : 4; s 61 libavcodec/snowenc.c s->block_max_depth= (avctx->flags & AV_CODEC_FLAG_4MV ) ? 1 : 0; s 64 libavcodec/snowenc.c s->plane[plane_index].diag_mc= 1; s 65 libavcodec/snowenc.c s->plane[plane_index].htaps= 6; s 66 libavcodec/snowenc.c s->plane[plane_index].hcoeff[0]= 40; s 67 libavcodec/snowenc.c s->plane[plane_index].hcoeff[1]= -10; s 68 libavcodec/snowenc.c s->plane[plane_index].hcoeff[2]= 2; s 69 libavcodec/snowenc.c s->plane[plane_index].fast_mc= 1; s 75 libavcodec/snowenc.c ff_mpegvideoencdsp_init(&s->mpvencdsp, avctx); s 77 libavcodec/snowenc.c ff_snow_alloc_blocks(s); s 79 libavcodec/snowenc.c s->version=0; s 81 libavcodec/snowenc.c s->m.avctx = avctx; s 82 libavcodec/snowenc.c s->m.bit_rate= avctx->bit_rate; s 83 libavcodec/snowenc.c s->m.lmin = avctx->mb_lmin; s 84 libavcodec/snowenc.c s->m.lmax = avctx->mb_lmax; s 85 libavcodec/snowenc.c s->m.mb_num = (avctx->width * avctx->height + 255) / 256; // For ratecontrol s 87 libavcodec/snowenc.c s->m.me.temp = s 88 libavcodec/snowenc.c s->m.me.scratchpad= av_mallocz_array((avctx->width+64), 2*16*2*sizeof(uint8_t)); s 89 libavcodec/snowenc.c s->m.me.map = av_mallocz(ME_MAP_SIZE*sizeof(uint32_t)); s 90 libavcodec/snowenc.c s->m.me.score_map = av_mallocz(ME_MAP_SIZE*sizeof(uint32_t)); s 91 libavcodec/snowenc.c s->m.sc.obmc_scratchpad= av_mallocz(MB_SIZE*MB_SIZE*12*sizeof(uint32_t)); s 92 libavcodec/snowenc.c if (!s->m.me.scratchpad || !s->m.me.map || !s->m.me.score_map || !s->m.sc.obmc_scratchpad) s 95 libavcodec/snowenc.c ff_h263_encode_init(&s->m); //mv_penalty s 97 libavcodec/snowenc.c s->max_ref_frames = av_clip(avctx->refs, 1, MAX_REF_FRAMES); s 107 libavcodec/snowenc.c ret = ff_rate_control_init(&s->m); s 111 libavcodec/snowenc.c s->pass1_rc= !(avctx->flags & (AV_CODEC_FLAG_QSCALE|AV_CODEC_FLAG_PASS2)); s 119 libavcodec/snowenc.c s->nb_planes = 3; s 120 libavcodec/snowenc.c s->colorspace_type= 0; s 123 libavcodec/snowenc.c s->nb_planes = 1; s 124 libavcodec/snowenc.c s->colorspace_type = 1; s 134 libavcodec/snowenc.c ret = av_pix_fmt_get_chroma_sub_sample(avctx->pix_fmt, &s->chroma_h_shift, s 135 libavcodec/snowenc.c &s->chroma_v_shift); s 141 libavcodec/snowenc.c ff_set_cmp(&s->mecc, s->mecc.me_cmp, s->avctx->me_cmp); s 142 libavcodec/snowenc.c ff_set_cmp(&s->mecc, s->mecc.me_sub_cmp, s->avctx->me_sub_cmp); s 144 libavcodec/snowenc.c s->input_picture = av_frame_alloc(); s 145 libavcodec/snowenc.c if (!s->input_picture) s 148 libavcodec/snowenc.c if ((ret = ff_snow_get_buffer(s, s->input_picture)) < 0) s 151 libavcodec/snowenc.c if(s->motion_est == FF_ME_ITER){ s 152 libavcodec/snowenc.c int size= s->b_width * s->b_height << 2*s->block_max_depth; s 153 libavcodec/snowenc.c for(i=0; i<s->max_ref_frames; i++){ s 154 libavcodec/snowenc.c s->ref_mvs[i]= av_mallocz_array(size, sizeof(int16_t[2])); s 155 libavcodec/snowenc.c s->ref_scores[i]= av_mallocz_array(size, sizeof(uint32_t)); s 156 libavcodec/snowenc.c if (!s->ref_mvs[i] || !s->ref_scores[i]) s 167 libavcodec/snowenc.c int s, i, j; s 169 libavcodec/snowenc.c s = 0; s 172 libavcodec/snowenc.c s += pix[0]; s 177 libavcodec/snowenc.c return s; s 183 libavcodec/snowenc.c int s, i, j; s 186 libavcodec/snowenc.c s = 0; s 189 libavcodec/snowenc.c s += sq[pix[0]]; s 194 libavcodec/snowenc.c return s; s 229 libavcodec/snowenc.c static int encode_q_branch(SnowContext *s, int level, int x, int y){ s 232 libavcodec/snowenc.c uint8_t p_state[sizeof(s->block_state)]; s 233 libavcodec/snowenc.c uint8_t i_state[sizeof(s->block_state)]; s 235 libavcodec/snowenc.c uint8_t *pbbak= s->c.bytestream; s 236 libavcodec/snowenc.c uint8_t *pbbak_start= s->c.bytestream_start; s 238 libavcodec/snowenc.c const int w= s->b_width << s->block_max_depth; s 239 libavcodec/snowenc.c const int h= s->b_height << s->block_max_depth; s 240 libavcodec/snowenc.c const int rem_depth= s->block_max_depth - level; s 245 libavcodec/snowenc.c const BlockNode *left = x ? &s->block[index-1] : &null_block; s 246 libavcodec/snowenc.c const BlockNode *top = y ? &s->block[index-w] : &null_block; s 247 libavcodec/snowenc.c const BlockNode *right = trx<w ? &s->block[index+1] : &null_block; s 248 libavcodec/snowenc.c const BlockNode *bottom= try<h ? &s->block[index+w] : &null_block; s 249 libavcodec/snowenc.c const BlockNode *tl = y && x ? &s->block[index-w-1] : left; s 250 libavcodec/snowenc.c const BlockNode *tr = y && trx<w && ((x&1)==0 || level==0) ? &s->block[index-w+(1<<rem_depth)] : tl; //FIXME use lt s 257 libavcodec/snowenc.c const int stride= s->current_picture->linesize[0]; s 258 libavcodec/snowenc.c const int uvstride= s->current_picture->linesize[1]; s 259 libavcodec/snowenc.c uint8_t *current_data[3]= { s->input_picture->data[0] + (x + y* stride)*block_w, s 260 libavcodec/snowenc.c s->input_picture->data[1] + ((x*block_w)>>s->chroma_h_shift) + ((y*uvstride*block_w)>>s->chroma_v_shift), s 261 libavcodec/snowenc.c s->input_picture->data[2] + ((x*block_w)>>s->chroma_h_shift) + ((y*uvstride*block_w)>>s->chroma_v_shift)}; s 264 libavcodec/snowenc.c int qpel= !!(s->avctx->flags & AV_CODEC_FLAG_QPEL); //unused s 266 libavcodec/snowenc.c MotionEstContext *c= &s->m.me; s 273 libavcodec/snowenc.c av_assert0(sizeof(s->block_state) >= 256); s 274 libavcodec/snowenc.c if(s->keyframe){ s 275 libavcodec/snowenc.c set_blocks(s, level, x, y, pl, pcb, pcr, 0, 0, 0, BLOCK_INTRA); s 288 libavcodec/snowenc.c last_mv[0][0]= s->block[index].mx; s 289 libavcodec/snowenc.c last_mv[0][1]= s->block[index].my; s 295 libavcodec/snowenc.c s->m.mb_stride=2; s 296 libavcodec/snowenc.c s->m.mb_x= s 297 libavcodec/snowenc.c s->m.mb_y= 0; s 303 libavcodec/snowenc.c c->penalty_factor = get_penalty_factor(s->lambda, s->lambda2, c->avctx->me_cmp); s 304 libavcodec/snowenc.c c->sub_penalty_factor= get_penalty_factor(s->lambda, s->lambda2, c->avctx->me_sub_cmp); s 305 libavcodec/snowenc.c c->mb_penalty_factor = get_penalty_factor(s->lambda, s->lambda2, c->avctx->mb_cmp); s 306 libavcodec/snowenc.c c->current_mv_penalty= c->mv_penalty[s->m.f_code=1] + MAX_DMV; s 310 libavcodec/snowenc.c c->xmax = - (x+1)*block_w + (w<<(LOG2_MB_SIZE - s->block_max_depth)) + 16-3; s 311 libavcodec/snowenc.c c->ymax = - (y+1)*block_w + (h<<(LOG2_MB_SIZE - s->block_max_depth)) + 16-3; s 334 libavcodec/snowenc.c for(ref=0; ref<s->ref_frames; ref++){ s 335 libavcodec/snowenc.c init_ref(c, current_data, s->last_picture[ref]->data, NULL, block_w*x, block_w*y, 0); s 337 libavcodec/snowenc.c ref_score= ff_epzs_motion_search(&s->m, &ref_mx, &ref_my, P, 0, /*ref_index*/ 0, last_mv, s 345 libavcodec/snowenc.c ref_score= c->sub_motion_search(&s->m, &ref_mx, &ref_my, ref_score, 0, 0, level-LOG2_MB_SIZE+4, block_w); s 346 libavcodec/snowenc.c ref_score= ff_get_mb_score(&s->m, ref_mx, ref_my, 0, 0, level-LOG2_MB_SIZE+4, block_w, 0); s 348 libavcodec/snowenc.c if(s->ref_mvs[ref]){ s 349 libavcodec/snowenc.c s->ref_mvs[ref][index][0]= ref_mx; s 350 libavcodec/snowenc.c s->ref_mvs[ref][index][1]= ref_my; s 351 libavcodec/snowenc.c s->ref_scores[ref][index]= ref_score; s 363 libavcodec/snowenc.c base_bits= get_rac_count(&s->c) - 8*(s->c.bytestream - s->c.bytestream_start); s 364 libavcodec/snowenc.c pc= s->c; s 367 libavcodec/snowenc.c memcpy(p_state, s->block_state, sizeof(s->block_state)); s 369 libavcodec/snowenc.c if(level!=s->block_max_depth) s 372 libavcodec/snowenc.c if(s->ref_frames > 1) s 374 libavcodec/snowenc.c pred_mv(s, &pmx, &pmy, best_ref, left, top, tr); s 378 libavcodec/snowenc.c score += (s->lambda2*(get_rac_count(&pc)-base_bits))>>FF_LAMBDA_SHIFT; s 385 libavcodec/snowenc.c if (s->nb_planes > 2) { s 386 libavcodec/snowenc.c block_s= block_w*block_w>>(s->chroma_h_shift + s->chroma_v_shift); s 387 libavcodec/snowenc.c sum = pix_sum(current_data[1], uvstride, block_w>>s->chroma_h_shift, block_w>>s->chroma_v_shift); s 390 libavcodec/snowenc.c sum = pix_sum(current_data[2], uvstride, block_w>>s->chroma_h_shift, block_w>>s->chroma_v_shift); s 396 libavcodec/snowenc.c ic= s->c; s 399 libavcodec/snowenc.c memcpy(i_state, s->block_state, sizeof(s->block_state)); s 400 libavcodec/snowenc.c if(level!=s->block_max_depth) s 404 libavcodec/snowenc.c if (s->nb_planes > 2) { s 409 libavcodec/snowenc.c iscore += (s->lambda2*(get_rac_count(&ic)-base_bits))>>FF_LAMBDA_SHIFT; s 411 libavcodec/snowenc.c av_assert1(iscore < 255*255*256 + s->lambda2*10); s 422 libavcodec/snowenc.c c->scene_change_score+= s->m.qscale; s 425 libavcodec/snowenc.c if(level!=s->block_max_depth){ s 426 libavcodec/snowenc.c put_rac(&s->c, &s->block_state[4 + s_context], 0); s 427 libavcodec/snowenc.c score2 = encode_q_branch(s, level+1, 2*x+0, 2*y+0); s 428 libavcodec/snowenc.c score2+= encode_q_branch(s, level+1, 2*x+1, 2*y+0); s 429 libavcodec/snowenc.c score2+= encode_q_branch(s, level+1, 2*x+0, 2*y+1); s 430 libavcodec/snowenc.c score2+= encode_q_branch(s, level+1, 2*x+1, 2*y+1); s 431 libavcodec/snowenc.c score2+= s->lambda2>>FF_LAMBDA_SHIFT; //FIXME exact split overhead s 438 libavcodec/snowenc.c pred_mv(s, &pmx, &pmy, 0, left, top, tr); s 440 libavcodec/snowenc.c s->c= ic; s 441 libavcodec/snowenc.c s->c.bytestream_start= pbbak_start; s 442 libavcodec/snowenc.c s->c.bytestream= pbbak + i_len; s 443 libavcodec/snowenc.c set_blocks(s, level, x, y, l, cb, cr, pmx, pmy, 0, BLOCK_INTRA); s 444 libavcodec/snowenc.c memcpy(s->block_state, i_state, sizeof(s->block_state)); s 448 libavcodec/snowenc.c s->c= pc; s 449 libavcodec/snowenc.c s->c.bytestream_start= pbbak_start; s 450 libavcodec/snowenc.c s->c.bytestream= pbbak + p_len; s 451 libavcodec/snowenc.c set_blocks(s, level, x, y, pl, pcb, pcr, mx, my, best_ref, 0); s 452 libavcodec/snowenc.c memcpy(s->block_state, p_state, sizeof(s->block_state)); s 457 libavcodec/snowenc.c static void encode_q_branch2(SnowContext *s, int level, int x, int y){ s 458 libavcodec/snowenc.c const int w= s->b_width << s->block_max_depth; s 459 libavcodec/snowenc.c const int rem_depth= s->block_max_depth - level; s 462 libavcodec/snowenc.c BlockNode *b= &s->block[index]; s 463 libavcodec/snowenc.c const BlockNode *left = x ? &s->block[index-1] : &null_block; s 464 libavcodec/snowenc.c const BlockNode *top = y ? &s->block[index-w] : &null_block; s 465 libavcodec/snowenc.c const BlockNode *tl = y && x ? &s->block[index-w-1] : left; s 466 libavcodec/snowenc.c const BlockNode *tr = y && trx<w && ((x&1)==0 || level==0) ? &s->block[index-w+(1<<rem_depth)] : tl; //FIXME use lt s 476 libavcodec/snowenc.c if(s->keyframe){ s 477 libavcodec/snowenc.c set_blocks(s, level, x, y, pl, pcb, pcr, 0, 0, 0, BLOCK_INTRA); s 481 libavcodec/snowenc.c if(level!=s->block_max_depth){ s 483 libavcodec/snowenc.c put_rac(&s->c, &s->block_state[4 + s_context], 1); s 485 libavcodec/snowenc.c put_rac(&s->c, &s->block_state[4 + s_context], 0); s 486 libavcodec/snowenc.c encode_q_branch2(s, level+1, 2*x+0, 2*y+0); s 487 libavcodec/snowenc.c encode_q_branch2(s, level+1, 2*x+1, 2*y+0); s 488 libavcodec/snowenc.c encode_q_branch2(s, level+1, 2*x+0, 2*y+1); s 489 libavcodec/snowenc.c encode_q_branch2(s, level+1, 2*x+1, 2*y+1); s 494 libavcodec/snowenc.c pred_mv(s, &pmx, &pmy, 0, left, top, tr); s 495 libavcodec/snowenc.c put_rac(&s->c, &s->block_state[1 + (left->type&1) + (top->type&1)], 1); s 496 libavcodec/snowenc.c put_symbol(&s->c, &s->block_state[32], b->color[0]-pl , 1); s 497 libavcodec/snowenc.c if (s->nb_planes > 2) { s 498 libavcodec/snowenc.c put_symbol(&s->c, &s->block_state[64], b->color[1]-pcb, 1); s 499 libavcodec/snowenc.c put_symbol(&s->c, &s->block_state[96], b->color[2]-pcr, 1); s 501 libavcodec/snowenc.c set_blocks(s, level, x, y, b->color[0], b->color[1], b->color[2], pmx, pmy, 0, BLOCK_INTRA); s 503 libavcodec/snowenc.c pred_mv(s, &pmx, &pmy, b->ref, left, top, tr); s 504 libavcodec/snowenc.c put_rac(&s->c, &s->block_state[1 + (left->type&1) + (top->type&1)], 0); s 505 libavcodec/snowenc.c if(s->ref_frames > 1) s 506 libavcodec/snowenc.c put_symbol(&s->c, &s->block_state[128 + 1024 + 32*ref_context], b->ref, 0); s 507 libavcodec/snowenc.c put_symbol(&s->c, &s->block_state[128 + 32*mx_context], b->mx - pmx, 1); s 508 libavcodec/snowenc.c put_symbol(&s->c, &s->block_state[128 + 32*my_context], b->my - pmy, 1); s 509 libavcodec/snowenc.c set_blocks(s, level, x, y, pl, pcb, pcr, b->mx, b->my, b->ref, 0); s 513 libavcodec/snowenc.c static int get_dc(SnowContext *s, int mb_x, int mb_y, int plane_index){ s 515 libavcodec/snowenc.c Plane *p= &s->plane[plane_index]; s 516 libavcodec/snowenc.c const int block_size = MB_SIZE >> s->block_max_depth; s 517 libavcodec/snowenc.c const int block_w = plane_index ? block_size>>s->chroma_h_shift : block_size; s 518 libavcodec/snowenc.c const int block_h = plane_index ? block_size>>s->chroma_v_shift : block_size; s 519 libavcodec/snowenc.c const uint8_t *obmc = plane_index ? ff_obmc_tab[s->block_max_depth+s->chroma_h_shift] : ff_obmc_tab[s->block_max_depth]; s 520 libavcodec/snowenc.c const int obmc_stride= plane_index ? (2*block_size)>>s->chroma_h_shift : 2*block_size; s 521 libavcodec/snowenc.c const int ref_stride= s->current_picture->linesize[plane_index]; s 522 libavcodec/snowenc.c uint8_t *src= s-> input_picture->data[plane_index]; s 523 libavcodec/snowenc.c IDWTELEM *dst= (IDWTELEM*)s->m.sc.obmc_scratchpad + plane_index*block_size*block_size*4; //FIXME change to unsigned s 524 libavcodec/snowenc.c const int b_stride = s->b_width << s->block_max_depth; s 528 libavcodec/snowenc.c BlockNode *b= &s->block[index]; s 533 libavcodec/snowenc.c av_assert2(s->chroma_h_shift == s->chroma_v_shift); //obmc stuff above s 545 libavcodec/snowenc.c add_yblock(s, 0, NULL, dst + (i&1)*block_w + (i>>1)*obmc_stride*block_h, NULL, obmc, s 571 libavcodec/snowenc.c static inline int get_block_bits(SnowContext *s, int x, int y, int w){ s 572 libavcodec/snowenc.c const int b_stride = s->b_width << s->block_max_depth; s 573 libavcodec/snowenc.c const int b_height = s->b_height<< s->block_max_depth; s 575 libavcodec/snowenc.c const BlockNode *b = &s->block[index]; s 576 libavcodec/snowenc.c const BlockNode *left = x ? &s->block[index-1] : &null_block; s 577 libavcodec/snowenc.c const BlockNode *top = y ? &s->block[index-b_stride] : &null_block; s 578 libavcodec/snowenc.c const BlockNode *tl = y && x ? &s->block[index-b_stride-1] : left; s 579 libavcodec/snowenc.c const BlockNode *tr = y && x+w<b_stride ? &s->block[index-b_stride+w] : tl; s 600 libavcodec/snowenc.c pred_mv(s, &dmx, &dmy, b->ref, left, top, tr); s 609 libavcodec/snowenc.c static int get_block_rd(SnowContext *s, int mb_x, int mb_y, int plane_index, uint8_t (*obmc_edged)[MB_SIZE * 2]){ s 610 libavcodec/snowenc.c Plane *p= &s->plane[plane_index]; s 611 libavcodec/snowenc.c const int block_size = MB_SIZE >> s->block_max_depth; s 612 libavcodec/snowenc.c const int block_w = plane_index ? block_size>>s->chroma_h_shift : block_size; s 613 libavcodec/snowenc.c const int block_h = plane_index ? block_size>>s->chroma_v_shift : block_size; s 614 libavcodec/snowenc.c const int obmc_stride= plane_index ? (2*block_size)>>s->chroma_h_shift : 2*block_size; s 615 libavcodec/snowenc.c const int ref_stride= s->current_picture->linesize[plane_index]; s 616 libavcodec/snowenc.c uint8_t *dst= s->current_picture->data[plane_index]; s 617 libavcodec/snowenc.c uint8_t *src= s-> input_picture->data[plane_index]; s 618 libavcodec/snowenc.c IDWTELEM *pred= (IDWTELEM*)s->m.sc.obmc_scratchpad + plane_index*block_size*block_size*4; s 619 libavcodec/snowenc.c uint8_t *cur = s->scratchbuf; s 620 libavcodec/snowenc.c uint8_t *tmp = s->emu_edge_buffer; s 621 libavcodec/snowenc.c const int b_stride = s->b_width << s->block_max_depth; s 622 libavcodec/snowenc.c const int b_height = s->b_height<< s->block_max_depth; s 627 libavcodec/snowenc.c const int penalty_factor= get_penalty_factor(s->lambda, s->lambda2, s->avctx->me_cmp); s 636 libavcodec/snowenc.c av_assert2(s->chroma_h_shift == s->chroma_v_shift); //obmc and square assumtions below chckinhg only block_w s 638 libavcodec/snowenc.c ff_snow_pred_block(s, cur, tmp, ref_stride, sx, sy, block_w*2, block_h*2, &s->block[mb_x + mb_y*b_stride], plane_index, w, h); s 680 libavcodec/snowenc.c if(s->avctx->me_cmp == FF_CMP_W97) s 681 libavcodec/snowenc.c distortion = ff_w97_32_c(&s->m, src + sx + sy*ref_stride, dst + sx + sy*ref_stride, ref_stride, 32); s 682 libavcodec/snowenc.c else if(s->avctx->me_cmp == FF_CMP_W53) s 683 libavcodec/snowenc.c distortion = ff_w53_32_c(&s->m, src + sx + sy*ref_stride, dst + sx + sy*ref_stride, ref_stride, 32); s 688 libavcodec/snowenc.c distortion += s->mecc.me_cmp[0](&s->m, src + off, dst + off, ref_stride, 16); s 693 libavcodec/snowenc.c distortion = s->mecc.me_cmp[0](&s->m, src + sx + sy*ref_stride, dst + sx + sy*ref_stride, ref_stride, block_w*2); s 702 libavcodec/snowenc.c rate += get_block_bits(s, mb_x + (i&1) - (i>>1), mb_y + (i>>1), 1); s 705 libavcodec/snowenc.c rate += get_block_bits(s, mb_x + 1, mb_y + 1, 1); s 710 libavcodec/snowenc.c static int get_4block_rd(SnowContext *s, int mb_x, int mb_y, int plane_index){ s 712 libavcodec/snowenc.c Plane *p= &s->plane[plane_index]; s 713 libavcodec/snowenc.c const int block_size = MB_SIZE >> s->block_max_depth; s 714 libavcodec/snowenc.c const int block_w = plane_index ? block_size>>s->chroma_h_shift : block_size; s 715 libavcodec/snowenc.c const int block_h = plane_index ? block_size>>s->chroma_v_shift : block_size; s 716 libavcodec/snowenc.c const uint8_t *obmc = plane_index ? ff_obmc_tab[s->block_max_depth+s->chroma_h_shift] : ff_obmc_tab[s->block_max_depth]; s 717 libavcodec/snowenc.c const int obmc_stride= plane_index ? (2*block_size)>>s->chroma_h_shift : 2*block_size; s 718 libavcodec/snowenc.c const int ref_stride= s->current_picture->linesize[plane_index]; s 719 libavcodec/snowenc.c uint8_t *dst= s->current_picture->data[plane_index]; s 720 libavcodec/snowenc.c uint8_t *src= s-> input_picture->data[plane_index]; s 724 libavcodec/snowenc.c const int b_stride = s->b_width << s->block_max_depth; s 729 libavcodec/snowenc.c const int penalty_factor= get_penalty_factor(s->lambda, s->lambda2, s->avctx->me_cmp); s 731 libavcodec/snowenc.c av_assert2(s->chroma_h_shift == s->chroma_v_shift); //obmc and square assumtions below s 739 libavcodec/snowenc.c add_yblock(s, 0, NULL, zero_dst, dst, obmc, s 757 libavcodec/snowenc.c distortion += s->mecc.me_cmp[block_w==8](&s->m, src + x + y*ref_stride, dst + x + y*ref_stride, ref_stride, block_h); s 761 libavcodec/snowenc.c BlockNode *b= &s->block[mb_x+mb_y*b_stride]; s 770 libavcodec/snowenc.c rate = get_block_bits(s, mb_x, mb_y, 2); s 773 libavcodec/snowenc.c rate += get_block_bits(s, mb_x + dxy[i][0], mb_y + dxy[i][1], 1); s 779 libavcodec/snowenc.c static int encode_subband_c0run(SnowContext *s, SubBand *b, const IDWTELEM *src, const IDWTELEM *parent, int stride, int orientation){ s 786 libavcodec/snowenc.c int *runs = s->run_buffer; s 833 libavcodec/snowenc.c put_symbol2(&s->c, b->state[30], max_index, 0); s 835 libavcodec/snowenc.c put_symbol2(&s->c, b->state[1], run, 3); s 838 libavcodec/snowenc.c if(s->c.bytestream_end - s->c.bytestream < w*40){ s 839 libavcodec/snowenc.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 872 libavcodec/snowenc.c put_rac(&s->c, &b->state[0][context], !!v); s 878 libavcodec/snowenc.c put_symbol2(&s->c, b->state[1], run, 3); s 890 libavcodec/snowenc.c put_symbol2(&s->c, b->state[context + 2], FFABS(v)-1, context-4); s 891 libavcodec/snowenc.c put_rac(&s->c, &b->state[0][16 + 1 + 3 + ff_quant3bA[l2&0xFF] + 3*ff_quant3bA[t2&0xFF]], v<0); s 899 libavcodec/snowenc.c static int encode_subband(SnowContext *s, SubBand *b, const IDWTELEM *src, const IDWTELEM *parent, int stride, int orientation){ s 902 libavcodec/snowenc.c return encode_subband_c0run(s, b, src, parent, stride, orientation); s 906 libavcodec/snowenc.c static av_always_inline int check_block(SnowContext *s, int mb_x, int mb_y, int p[3], int intra, uint8_t (*obmc_edged)[MB_SIZE * 2], int *best_rd){ s 907 libavcodec/snowenc.c const int b_stride= s->b_width << s->block_max_depth; s 908 libavcodec/snowenc.c BlockNode *block= &s->block[mb_x + mb_y * b_stride]; s 923 libavcodec/snowenc.c value= s->me_cache_generation + (p[0]>>10) + (p[1]<<6) + (block->ref<<12); s 924 libavcodec/snowenc.c if(s->me_cache[index] == value) s 926 libavcodec/snowenc.c s->me_cache[index]= value; s 933 libavcodec/snowenc.c rd= get_block_rd(s, mb_x, mb_y, 0, obmc_edged) + s->intra_penalty * !!intra; s 947 libavcodec/snowenc.c static av_always_inline int check_block_inter(SnowContext *s, int mb_x, int mb_y, int p0, int p1, uint8_t (*obmc_edged)[MB_SIZE * 2], int *best_rd){ s 949 libavcodec/snowenc.c return check_block(s, mb_x, mb_y, p, 0, obmc_edged, best_rd); s 952 libavcodec/snowenc.c static av_always_inline int check_4block_inter(SnowContext *s, int mb_x, int mb_y, int p0, int p1, int ref, int *best_rd){ s 953 libavcodec/snowenc.c const int b_stride= s->b_width << s->block_max_depth; s 954 libavcodec/snowenc.c BlockNode *block= &s->block[mb_x + mb_y * b_stride]; s 972 libavcodec/snowenc.c value= s->me_cache_generation + (p0>>10) + (p1<<6) + (block->ref<<12); s 973 libavcodec/snowenc.c if(s->me_cache[index] == value) s 975 libavcodec/snowenc.c s->me_cache[index]= value; s 983 libavcodec/snowenc.c rd= get_4block_rd(s, mb_x, mb_y, 0); s 998 libavcodec/snowenc.c static void iterative_me(SnowContext *s){ s 1000 libavcodec/snowenc.c const int b_width = s->b_width << s->block_max_depth; s 1001 libavcodec/snowenc.c const int b_height= s->b_height << s->block_max_depth; s 1006 libavcodec/snowenc.c RangeCoder r = s->c; s 1007 libavcodec/snowenc.c uint8_t state[sizeof(s->block_state)]; s 1008 libavcodec/snowenc.c memcpy(state, s->block_state, sizeof(s->block_state)); s 1009 libavcodec/snowenc.c for(mb_y= 0; mb_y<s->b_height; mb_y++) s 1010 libavcodec/snowenc.c for(mb_x= 0; mb_x<s->b_width; mb_x++) s 1011 libavcodec/snowenc.c encode_q_branch(s, 0, mb_x, mb_y); s 1012 libavcodec/snowenc.c s->c = r; s 1013 libavcodec/snowenc.c memcpy(s->block_state, state, sizeof(s->block_state)); s 1025 libavcodec/snowenc.c BlockNode *block= &s->block[index]; s 1026 libavcodec/snowenc.c BlockNode *tb = mb_y ? &s->block[index-b_stride ] : NULL; s 1027 libavcodec/snowenc.c BlockNode *lb = mb_x ? &s->block[index -1] : NULL; s 1028 libavcodec/snowenc.c BlockNode *rb = mb_x+1<b_width ? &s->block[index +1] : NULL; s 1029 libavcodec/snowenc.c BlockNode *bb = mb_y+1<b_height ? &s->block[index+b_stride ] : NULL; s 1030 libavcodec/snowenc.c BlockNode *tlb= mb_x && mb_y ? &s->block[index-b_stride-1] : NULL; s 1031 libavcodec/snowenc.c BlockNode *trb= mb_x+1<b_width && mb_y ? &s->block[index-b_stride+1] : NULL; s 1032 libavcodec/snowenc.c BlockNode *blb= mb_x && mb_y+1<b_height ? &s->block[index+b_stride-1] : NULL; s 1033 libavcodec/snowenc.c BlockNode *brb= mb_x+1<b_width && mb_y+1<b_height ? &s->block[index+b_stride+1] : NULL; s 1034 libavcodec/snowenc.c const int b_w= (MB_SIZE >> s->block_max_depth); s 1043 libavcodec/snowenc.c if(!s->me_cache_generation) s 1044 libavcodec/snowenc.c memset(s->me_cache, 0, sizeof(s->me_cache)); s 1045 libavcodec/snowenc.c s->me_cache_generation += 1<<22; s 1051 libavcodec/snowenc.c memcpy(obmc_edged[y], ff_obmc_tab[s->block_max_depth] + y * b_w * 2, b_w * 2); s 1074 libavcodec/snowenc.c uint8_t *src= s-> input_picture->data[0]; s 1075 libavcodec/snowenc.c uint8_t *dst= s->current_picture->data[0]; s 1076 libavcodec/snowenc.c const int stride= s->current_picture->linesize[0]; s 1077 libavcodec/snowenc.c const int block_w= MB_SIZE >> s->block_max_depth; s 1078 libavcodec/snowenc.c const int block_h= MB_SIZE >> s->block_max_depth; s 1081 libavcodec/snowenc.c const int w= s->plane[0].width; s 1082 libavcodec/snowenc.c const int h= s->plane[0].height; s 1100 libavcodec/snowenc.c for(i=0; i < s->nb_planes; i++) s 1101 libavcodec/snowenc.c color[i]= get_dc(s, mb_x, mb_y, i); s 1106 libavcodec/snowenc.c check_block(s, mb_x, mb_y, color0, 1, obmc_edged, &best_rd); s 1108 libavcodec/snowenc.c check_block_inter(s, mb_x, mb_y, block->mx, block->my, obmc_edged, &best_rd); s 1112 libavcodec/snowenc.c for(ref=0; ref < s->ref_frames; ref++){ s 1113 libavcodec/snowenc.c int16_t (*mvr)[2]= &s->ref_mvs[ref][index]; s 1114 libavcodec/snowenc.c if(s->ref_scores[ref][index] > s->ref_scores[ref_b.ref][index]*3/2) //FIXME tune threshold s 1119 libavcodec/snowenc.c check_block_inter(s, mb_x, mb_y, mvr[0][0], mvr[0][1], obmc_edged, &best_rd); s 1120 libavcodec/snowenc.c check_block_inter(s, mb_x, mb_y, 0, 0, obmc_edged, &best_rd); s 1122 libavcodec/snowenc.c check_block_inter(s, mb_x, mb_y, mvr[-b_stride][0], mvr[-b_stride][1], obmc_edged, &best_rd); s 1124 libavcodec/snowenc.c check_block_inter(s, mb_x, mb_y, mvr[-1][0], mvr[-1][1], obmc_edged, &best_rd); s 1126 libavcodec/snowenc.c check_block_inter(s, mb_x, mb_y, mvr[1][0], mvr[1][1], obmc_edged, &best_rd); s 1128 libavcodec/snowenc.c check_block_inter(s, mb_x, mb_y, mvr[b_stride][0], mvr[b_stride][1], obmc_edged, &best_rd); s 1135 libavcodec/snowenc.c int dia_size = s->iterative_dia_size ? s->iterative_dia_size : FFMAX(s->avctx->dia_size, 1); s 1139 libavcodec/snowenc.c dia_change |= check_block_inter(s, mb_x, mb_y, newx+4*(i-j), newy+(4*j), obmc_edged, &best_rd); s 1140 libavcodec/snowenc.c dia_change |= check_block_inter(s, mb_x, mb_y, newx-4*(i-j), newy-(4*j), obmc_edged, &best_rd); s 1141 libavcodec/snowenc.c dia_change |= check_block_inter(s, mb_x, mb_y, newx-(4*j), newy+4*(i-j), obmc_edged, &best_rd); s 1142 libavcodec/snowenc.c dia_change |= check_block_inter(s, mb_x, mb_y, newx+(4*j), newy-4*(i-j), obmc_edged, &best_rd); s 1151 libavcodec/snowenc.c dia_change |= check_block_inter(s, mb_x, mb_y, block->mx+square[i][0], block->my+square[i][1], obmc_edged, &best_rd); s 1164 libavcodec/snowenc.c check_block(s, mb_x, mb_y, color, 1, obmc_edged, &best_rd); s 1179 libavcodec/snowenc.c av_log(s->avctx, AV_LOG_DEBUG, "pass:%d changed:%d\n", pass, change); s 1184 libavcodec/snowenc.c if(s->block_max_depth == 1){ s 1193 libavcodec/snowenc.c b[0]= &s->block[index]; s 1202 libavcodec/snowenc.c if(!s->me_cache_generation) s 1203 libavcodec/snowenc.c memset(s->me_cache, 0, sizeof(s->me_cache)); s 1204 libavcodec/snowenc.c s->me_cache_generation += 1<<22; s 1206 libavcodec/snowenc.c init_rd= best_rd= get_4block_rd(s, mb_x, mb_y, 0); s 1209 libavcodec/snowenc.c check_4block_inter(s, mb_x, mb_y, s 1215 libavcodec/snowenc.c check_4block_inter(s, mb_x, mb_y, b[i]->mx, b[i]->my, b[i]->ref, &best_rd); s 1221 libavcodec/snowenc.c av_log(s->avctx, AV_LOG_ERROR, "pass:4mv changed:%d\n", change*4); s 1225 libavcodec/snowenc.c static void encode_blocks(SnowContext *s, int search){ s 1227 libavcodec/snowenc.c int w= s->b_width; s 1228 libavcodec/snowenc.c int h= s->b_height; s 1230 libavcodec/snowenc.c if(s->motion_est == FF_ME_ITER && !s->keyframe && search) s 1231 libavcodec/snowenc.c iterative_me(s); s 1234 libavcodec/snowenc.c if(s->c.bytestream_end - s->c.bytestream < w*MB_SIZE*MB_SIZE*3){ //FIXME nicer limit s 1235 libavcodec/snowenc.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 1239 libavcodec/snowenc.c if(s->motion_est == FF_ME_ITER || !search) s 1240 libavcodec/snowenc.c encode_q_branch2(s, 0, x, y); s 1242 libavcodec/snowenc.c encode_q_branch (s, 0, x, y); s 1247 libavcodec/snowenc.c static void quantize(SnowContext *s, SubBand *b, IDWTELEM *dst, DWTELEM *src, int stride, int bias){ s 1250 libavcodec/snowenc.c const int qlog= av_clip(s->qlog + b->qlog, 0, QROOT*16); s 1254 libavcodec/snowenc.c if(s->qlog == LOSSLESS_QLOG){ s 1308 libavcodec/snowenc.c static void dequantize(SnowContext *s, SubBand *b, IDWTELEM *src, int stride){ s 1311 libavcodec/snowenc.c const int qlog= av_clip(s->qlog + b->qlog, 0, QROOT*16); s 1313 libavcodec/snowenc.c const int qadd= (s->qbias*qmul)>>QBIAS_SHIFT; s 1316 libavcodec/snowenc.c if(s->qlog == LOSSLESS_QLOG) return; s 1330 libavcodec/snowenc.c static void decorrelate(SnowContext *s, SubBand *b, IDWTELEM *src, int stride, int inverse, int use_median){ s 1354 libavcodec/snowenc.c static void correlate(SnowContext *s, SubBand *b, IDWTELEM *src, int stride, int inverse, int use_median){ s 1378 libavcodec/snowenc.c static void encode_qlogs(SnowContext *s){ s 1381 libavcodec/snowenc.c for(plane_index=0; plane_index<FFMIN(s->nb_planes, 2); plane_index++){ s 1382 libavcodec/snowenc.c for(level=0; level<s->spatial_decomposition_count; level++){ s 1385 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->plane[plane_index].band[level][orientation].qlog, 1); s 1391 libavcodec/snowenc.c static void encode_header(SnowContext *s){ s 1397 libavcodec/snowenc.c put_rac(&s->c, kstate, s->keyframe); s 1398 libavcodec/snowenc.c if(s->keyframe || s->always_reset){ s 1399 libavcodec/snowenc.c ff_snow_reset_contexts(s); s 1400 libavcodec/snowenc.c s->last_spatial_decomposition_type= s 1401 libavcodec/snowenc.c s->last_qlog= s 1402 libavcodec/snowenc.c s->last_qbias= s 1403 libavcodec/snowenc.c s->last_mv_scale= s 1404 libavcodec/snowenc.c s->last_block_max_depth= 0; s 1406 libavcodec/snowenc.c Plane *p= &s->plane[plane_index]; s 1412 libavcodec/snowenc.c if(s->keyframe){ s 1413 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->version, 0); s 1414 libavcodec/snowenc.c put_rac(&s->c, s->header_state, s->always_reset); s 1415 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->temporal_decomposition_type, 0); s 1416 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->temporal_decomposition_count, 0); s 1417 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->spatial_decomposition_count, 0); s 1418 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->colorspace_type, 0); s 1419 libavcodec/snowenc.c if (s->nb_planes > 2) { s 1420 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->chroma_h_shift, 0); s 1421 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->chroma_v_shift, 0); s 1423 libavcodec/snowenc.c put_rac(&s->c, s->header_state, s->spatial_scalability); s 1425 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->max_ref_frames-1, 0); s 1427 libavcodec/snowenc.c encode_qlogs(s); s 1430 libavcodec/snowenc.c if(!s->keyframe){ s 1432 libavcodec/snowenc.c for(plane_index=0; plane_index<FFMIN(s->nb_planes, 2); plane_index++){ s 1433 libavcodec/snowenc.c Plane *p= &s->plane[plane_index]; s 1438 libavcodec/snowenc.c put_rac(&s->c, s->header_state, update_mc); s 1440 libavcodec/snowenc.c for(plane_index=0; plane_index<FFMIN(s->nb_planes, 2); plane_index++){ s 1441 libavcodec/snowenc.c Plane *p= &s->plane[plane_index]; s 1442 libavcodec/snowenc.c put_rac(&s->c, s->header_state, p->diag_mc); s 1443 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, p->htaps/2-1, 0); s 1445 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, FFABS(p->hcoeff[i]), 0); s 1448 libavcodec/snowenc.c if(s->last_spatial_decomposition_count != s->spatial_decomposition_count){ s 1449 libavcodec/snowenc.c put_rac(&s->c, s->header_state, 1); s 1450 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->spatial_decomposition_count, 0); s 1451 libavcodec/snowenc.c encode_qlogs(s); s 1453 libavcodec/snowenc.c put_rac(&s->c, s->header_state, 0); s 1456 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->spatial_decomposition_type - s->last_spatial_decomposition_type, 1); s 1457 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->qlog - s->last_qlog , 1); s 1458 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->mv_scale - s->last_mv_scale, 1); s 1459 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->qbias - s->last_qbias , 1); s 1460 libavcodec/snowenc.c put_symbol(&s->c, s->header_state, s->block_max_depth - s->last_block_max_depth, 1); s 1464 libavcodec/snowenc.c static void update_last_header_values(SnowContext *s){ s 1467 libavcodec/snowenc.c if(!s->keyframe){ s 1469 libavcodec/snowenc.c Plane *p= &s->plane[plane_index]; s 1476 libavcodec/snowenc.c s->last_spatial_decomposition_type = s->spatial_decomposition_type; s 1477 libavcodec/snowenc.c s->last_qlog = s->qlog; s 1478 libavcodec/snowenc.c s->last_qbias = s->qbias; s 1479 libavcodec/snowenc.c s->last_mv_scale = s->mv_scale; s 1480 libavcodec/snowenc.c s->last_block_max_depth = s->block_max_depth; s 1481 libavcodec/snowenc.c s->last_spatial_decomposition_count = s->spatial_decomposition_count; s 1489 libavcodec/snowenc.c static int ratecontrol_1pass(SnowContext *s, AVFrame *pict) s 1497 libavcodec/snowenc.c for(level=0; level<s->spatial_decomposition_count; level++){ s 1499 libavcodec/snowenc.c SubBand *b= &s->plane[0].band[level][orientation]; s 1513 libavcodec/snowenc.c decorrelate(s, b, buf, stride, 1, 0); s 1525 libavcodec/snowenc.c s->m.current_picture.mb_var_sum= coef_sum; s 1526 libavcodec/snowenc.c s->m.current_picture.mc_mb_var_sum= 0; s 1528 libavcodec/snowenc.c s->m.current_picture.mc_mb_var_sum= coef_sum; s 1529 libavcodec/snowenc.c s->m.current_picture.mb_var_sum= 0; s 1532 libavcodec/snowenc.c pict->quality= ff_rate_estimate_qscale(&s->m, 1); s 1535 libavcodec/snowenc.c s->lambda= pict->quality * 3/2; s 1536 libavcodec/snowenc.c delta_qlog= qscale2qlog(pict->quality) - s->qlog; s 1537 libavcodec/snowenc.c s->qlog+= delta_qlog; s 1541 libavcodec/snowenc.c static void calculate_visual_weight(SnowContext *s, Plane *p){ s 1546 libavcodec/snowenc.c for(level=0; level<s->spatial_decomposition_count; level++){ s 1552 libavcodec/snowenc.c memset(s->spatial_idwt_buffer, 0, sizeof(*s->spatial_idwt_buffer)*width*height); s 1554 libavcodec/snowenc.c ff_spatial_idwt(s->spatial_idwt_buffer, s->temp_idwt_buffer, width, height, width, s->spatial_decomposition_type, s->spatial_decomposition_count); s 1557 libavcodec/snowenc.c int64_t d= s->spatial_idwt_buffer[x + y*width]*16; s 1570 libavcodec/snowenc.c SnowContext *s = avctx->priv_data; s 1571 libavcodec/snowenc.c RangeCoder * const c= &s->c; s 1573 libavcodec/snowenc.c const int width= s->avctx->width; s 1574 libavcodec/snowenc.c const int height= s->avctx->height; s 1576 libavcodec/snowenc.c uint8_t rc_header_bak[sizeof(s->header_state)]; s 1577 libavcodec/snowenc.c uint8_t rc_block_bak[sizeof(s->block_state)]; s 1579 libavcodec/snowenc.c if ((ret = ff_alloc_packet2(avctx, pkt, s->b_width*s->b_height*MB_SIZE*MB_SIZE*3 + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) s 1585 libavcodec/snowenc.c for(i=0; i < s->nb_planes; i++){ s 1586 libavcodec/snowenc.c int hshift= i ? s->chroma_h_shift : 0; s 1587 libavcodec/snowenc.c int vshift= i ? s->chroma_v_shift : 0; s 1589 libavcodec/snowenc.c memcpy(&s->input_picture->data[i][y * s->input_picture->linesize[i]], s 1592 libavcodec/snowenc.c s->mpvencdsp.draw_edges(s->input_picture->data[i], s->input_picture->linesize[i], s 1599 libavcodec/snowenc.c pic = s->input_picture; s 1603 libavcodec/snowenc.c s->m.picture_number= avctx->frame_number; s 1605 libavcodec/snowenc.c s->m.pict_type = pic->pict_type = s->m.rc_context.entry[avctx->frame_number].new_pict_type; s 1606 libavcodec/snowenc.c s->keyframe = pic->pict_type == AV_PICTURE_TYPE_I; s 1608 libavcodec/snowenc.c pic->quality = ff_rate_estimate_qscale(&s->m, 0); s 1613 libavcodec/snowenc.c s->keyframe= avctx->gop_size==0 || avctx->frame_number % avctx->gop_size == 0; s 1614 libavcodec/snowenc.c s->m.pict_type = pic->pict_type = s->keyframe ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; s 1617 libavcodec/snowenc.c if(s->pass1_rc && avctx->frame_number == 0) s 1620 libavcodec/snowenc.c s->qlog = qscale2qlog(pic->quality); s 1621 libavcodec/snowenc.c s->lambda = pic->quality * 3/2; s 1623 libavcodec/snowenc.c if (s->qlog < 0 || (!pic->quality && (avctx->flags & AV_CODEC_FLAG_QSCALE))) { s 1624 libavcodec/snowenc.c s->qlog= LOSSLESS_QLOG; s 1625 libavcodec/snowenc.c s->lambda = 0; s 1634 libavcodec/snowenc.c if (s->current_picture->data[0]) { s 1635 libavcodec/snowenc.c int w = s->avctx->width; s 1636 libavcodec/snowenc.c int h = s->avctx->height; s 1639 libavcodec/snowenc.c ret = av_frame_make_writable(s->current_picture); s 1644 libavcodec/snowenc.c s->mpvencdsp.draw_edges(s->current_picture->data[0], s 1645 libavcodec/snowenc.c s->current_picture->linesize[0], w , h , s 1647 libavcodec/snowenc.c if (s->current_picture->data[2]) { s 1648 libavcodec/snowenc.c s->mpvencdsp.draw_edges(s->current_picture->data[1], s 1649 libavcodec/snowenc.c s->current_picture->linesize[1], w>>s->chroma_h_shift, h>>s->chroma_v_shift, s 1650 libavcodec/snowenc.c EDGE_WIDTH>>s->chroma_h_shift, EDGE_WIDTH>>s->chroma_v_shift, EDGE_TOP | EDGE_BOTTOM); s 1651 libavcodec/snowenc.c s->mpvencdsp.draw_edges(s->current_picture->data[2], s 1652 libavcodec/snowenc.c s->current_picture->linesize[2], w>>s->chroma_h_shift, h>>s->chroma_v_shift, s 1653 libavcodec/snowenc.c EDGE_WIDTH>>s->chroma_h_shift, EDGE_WIDTH>>s->chroma_v_shift, EDGE_TOP | EDGE_BOTTOM); s 1658 libavcodec/snowenc.c ff_snow_frame_start(s); s 1661 libavcodec/snowenc.c ret = av_frame_ref(avctx->coded_frame, s->current_picture); s 1667 libavcodec/snowenc.c s->m.current_picture_ptr= &s->m.current_picture; s 1668 libavcodec/snowenc.c s->m.current_picture.f = s->current_picture; s 1669 libavcodec/snowenc.c s->m.current_picture.f->pts = pict->pts; s 1673 libavcodec/snowenc.c int stride= s->current_picture->linesize[0]; s 1675 libavcodec/snowenc.c av_assert0(s->current_picture->data[0]); s 1676 libavcodec/snowenc.c av_assert0(s->last_picture[0]->data[0]); s 1678 libavcodec/snowenc.c s->m.avctx= s->avctx; s 1679 libavcodec/snowenc.c s->m. last_picture.f = s->last_picture[0]; s 1680 libavcodec/snowenc.c s->m. new_picture.f = s->input_picture; s 1681 libavcodec/snowenc.c s->m. last_picture_ptr= &s->m. last_picture; s 1682 libavcodec/snowenc.c s->m.linesize = stride; s 1683 libavcodec/snowenc.c s->m.uvlinesize= s->current_picture->linesize[1]; s 1684 libavcodec/snowenc.c s->m.width = width; s 1685 libavcodec/snowenc.c s->m.height= height; s 1686 libavcodec/snowenc.c s->m.mb_width = block_width; s 1687 libavcodec/snowenc.c s->m.mb_height= block_height; s 1688 libavcodec/snowenc.c s->m.mb_stride= s->m.mb_width+1; s 1689 libavcodec/snowenc.c s->m.b8_stride= 2*s->m.mb_width+1; s 1690 libavcodec/snowenc.c s->m.f_code=1; s 1691 libavcodec/snowenc.c s->m.pict_type = pic->pict_type; s 1692 libavcodec/snowenc.c s->m.motion_est= s->motion_est; s 1693 libavcodec/snowenc.c s->m.me.scene_change_score=0; s 1694 libavcodec/snowenc.c s->m.me.dia_size = avctx->dia_size; s 1695 libavcodec/snowenc.c s->m.quarter_sample= (s->avctx->flags & AV_CODEC_FLAG_QPEL)!=0; s 1696 libavcodec/snowenc.c s->m.out_format= FMT_H263; s 1697 libavcodec/snowenc.c s->m.unrestricted_mv= 1; s 1699 libavcodec/snowenc.c s->m.lambda = s->lambda; s 1700 libavcodec/snowenc.c s->m.qscale= (s->m.lambda*139 + FF_LAMBDA_SCALE*64) >> (FF_LAMBDA_SHIFT + 7); s 1701 libavcodec/snowenc.c s->lambda2= s->m.lambda2= (s->m.lambda*s->m.lambda + FF_LAMBDA_SCALE/2) >> FF_LAMBDA_SHIFT; s 1703 libavcodec/snowenc.c s->m.mecc= s->mecc; //move s 1704 libavcodec/snowenc.c s->m.qdsp= s->qdsp; //move s 1705 libavcodec/snowenc.c s->m.hdsp = s->hdsp; s 1706 libavcodec/snowenc.c ff_init_me(&s->m); s 1707 libavcodec/snowenc.c s->hdsp = s->m.hdsp; s 1708 libavcodec/snowenc.c s->mecc= s->m.mecc; s 1711 libavcodec/snowenc.c if(s->pass1_rc){ s 1712 libavcodec/snowenc.c memcpy(rc_header_bak, s->header_state, sizeof(s->header_state)); s 1713 libavcodec/snowenc.c memcpy(rc_block_bak, s->block_state, sizeof(s->block_state)); s 1718 libavcodec/snowenc.c s->spatial_decomposition_count= 5; s 1720 libavcodec/snowenc.c while( !(width >>(s->chroma_h_shift + s->spatial_decomposition_count)) s 1721 libavcodec/snowenc.c || !(height>>(s->chroma_v_shift + s->spatial_decomposition_count))) s 1722 libavcodec/snowenc.c s->spatial_decomposition_count--; s 1724 libavcodec/snowenc.c if (s->spatial_decomposition_count <= 0) { s 1729 libavcodec/snowenc.c s->m.pict_type = pic->pict_type; s 1730 libavcodec/snowenc.c s->qbias = pic->pict_type == AV_PICTURE_TYPE_P ? 2 : 0; s 1734 libavcodec/snowenc.c if(s->last_spatial_decomposition_count != s->spatial_decomposition_count){ s 1735 libavcodec/snowenc.c for(plane_index=0; plane_index < s->nb_planes; plane_index++){ s 1736 libavcodec/snowenc.c calculate_visual_weight(s, &s->plane[plane_index]); s 1740 libavcodec/snowenc.c encode_header(s); s 1741 libavcodec/snowenc.c s->m.misc_bits = 8*(s->c.bytestream - s->c.bytestream_start); s 1742 libavcodec/snowenc.c encode_blocks(s, 1); s 1743 libavcodec/snowenc.c s->m.mv_bits = 8*(s->c.bytestream - s->c.bytestream_start) - s->m.misc_bits; s 1745 libavcodec/snowenc.c for(plane_index=0; plane_index < s->nb_planes; plane_index++){ s 1746 libavcodec/snowenc.c Plane *p= &s->plane[plane_index]; s 1752 libavcodec/snowenc.c if (!s->memc_only) { s 1757 libavcodec/snowenc.c s->spatial_idwt_buffer[y*w + x]= pict->data[plane_index][y*pict->linesize[plane_index] + x]<<FRAC_BITS; s 1760 libavcodec/snowenc.c predict_plane(s, s->spatial_idwt_buffer, plane_index, 0); s 1764 libavcodec/snowenc.c if(s->avctx->scenechange_threshold) s 1765 libavcodec/snowenc.c s->scenechange_threshold = s->avctx->scenechange_threshold; s 1772 libavcodec/snowenc.c && s->m.me.scene_change_score > s->scenechange_threshold){ s 1776 libavcodec/snowenc.c s->keyframe=1; s 1777 libavcodec/snowenc.c s->current_picture->key_frame=1; s 1781 libavcodec/snowenc.c if(s->qlog == LOSSLESS_QLOG){ s 1784 libavcodec/snowenc.c s->spatial_dwt_buffer[y*w + x]= (s->spatial_idwt_buffer[y*w + x] + (1<<(FRAC_BITS-1))-1)>>FRAC_BITS; s 1790 libavcodec/snowenc.c s->spatial_dwt_buffer[y*w + x]= s->spatial_idwt_buffer[y*w + x] * (1 << ENCODER_EXTRA_BITS); s 1795 libavcodec/snowenc.c ff_spatial_dwt(s->spatial_dwt_buffer, s->temp_dwt_buffer, w, h, w, s->spatial_decomposition_type, s->spatial_decomposition_count); s 1797 libavcodec/snowenc.c if(s->pass1_rc && plane_index==0){ s 1798 libavcodec/snowenc.c int delta_qlog = ratecontrol_1pass(s, pic); s 1804 libavcodec/snowenc.c memcpy(s->header_state, rc_header_bak, sizeof(s->header_state)); s 1805 libavcodec/snowenc.c memcpy(s->block_state, rc_block_bak, sizeof(s->block_state)); s 1806 libavcodec/snowenc.c encode_header(s); s 1807 libavcodec/snowenc.c encode_blocks(s, 0); s 1811 libavcodec/snowenc.c for(level=0; level<s->spatial_decomposition_count; level++){ s 1815 libavcodec/snowenc.c quantize(s, b, b->ibuf, b->buf, b->stride, s->qbias); s 1817 libavcodec/snowenc.c decorrelate(s, b, b->ibuf, b->stride, pic->pict_type == AV_PICTURE_TYPE_P, 0); s 1818 libavcodec/snowenc.c if (!s->no_bitstream) s 1819 libavcodec/snowenc.c encode_subband(s, b, b->ibuf, b->parent ? b->parent->ibuf : NULL, b->stride, orientation); s 1822 libavcodec/snowenc.c correlate(s, b, b->ibuf, b->stride, 1, 0); s 1826 libavcodec/snowenc.c for(level=0; level<s->spatial_decomposition_count; level++){ s 1830 libavcodec/snowenc.c dequantize(s, b, b->ibuf, b->stride); s 1834 libavcodec/snowenc.c ff_spatial_idwt(s->spatial_idwt_buffer, s->temp_idwt_buffer, w, h, w, s->spatial_decomposition_type, s->spatial_decomposition_count); s 1835 libavcodec/snowenc.c if(s->qlog == LOSSLESS_QLOG){ s 1838 libavcodec/snowenc.c s->spatial_idwt_buffer[y*w + x]<<=FRAC_BITS; s 1842 libavcodec/snowenc.c predict_plane(s, s->spatial_idwt_buffer, plane_index, 1); s 1848 libavcodec/snowenc.c s->current_picture->data[plane_index][y*s->current_picture->linesize[plane_index] + x]= s 1853 libavcodec/snowenc.c memset(s->spatial_idwt_buffer, 0, sizeof(IDWTELEM)*w*h); s 1854 libavcodec/snowenc.c predict_plane(s, s->spatial_idwt_buffer, plane_index, 1); s 1857 libavcodec/snowenc.c if(s->avctx->flags&AV_CODEC_FLAG_PSNR){ s 1863 libavcodec/snowenc.c int d= s->current_picture->data[plane_index][y*s->current_picture->linesize[plane_index] + x] - pict->data[plane_index][y*pict->linesize[plane_index] + x]; s 1867 libavcodec/snowenc.c s->avctx->error[plane_index] += error; s 1868 libavcodec/snowenc.c s->encoding_error[plane_index] = error; s 1874 libavcodec/snowenc.c update_last_header_values(s); s 1878 libavcodec/snowenc.c s->current_picture->coded_picture_number = avctx->frame_number; s 1879 libavcodec/snowenc.c s->current_picture->pict_type = pic->pict_type; s 1880 libavcodec/snowenc.c s->current_picture->quality = pic->quality; s 1881 libavcodec/snowenc.c s->m.frame_bits = 8*(s->c.bytestream - s->c.bytestream_start); s 1882 libavcodec/snowenc.c s->m.p_tex_bits = s->m.frame_bits - s->m.misc_bits - s->m.mv_bits; s 1883 libavcodec/snowenc.c s->m.current_picture.f->display_picture_number = s 1884 libavcodec/snowenc.c s->m.current_picture.f->coded_picture_number = avctx->frame_number; s 1885 libavcodec/snowenc.c s->m.current_picture.f->quality = pic->quality; s 1886 libavcodec/snowenc.c s->m.total_bits += 8*(s->c.bytestream - s->c.bytestream_start); s 1887 libavcodec/snowenc.c if(s->pass1_rc) s 1888 libavcodec/snowenc.c if (ff_rate_estimate_qscale(&s->m, 0) < 0) s 1891 libavcodec/snowenc.c ff_write_pass1_stats(&s->m); s 1892 libavcodec/snowenc.c s->m.last_pict_type = s->m.pict_type; s 1895 libavcodec/snowenc.c avctx->frame_bits = s->m.frame_bits; s 1896 libavcodec/snowenc.c avctx->mv_bits = s->m.mv_bits; s 1897 libavcodec/snowenc.c avctx->misc_bits = s->m.misc_bits; s 1898 libavcodec/snowenc.c avctx->p_tex_bits = s->m.p_tex_bits; s 1904 libavcodec/snowenc.c ff_side_data_set_encoder_stats(pkt, s->current_picture->quality, s 1905 libavcodec/snowenc.c s->encoding_error, s 1906 libavcodec/snowenc.c (s->avctx->flags&AV_CODEC_FLAG_PSNR) ? 4 : 0, s 1907 libavcodec/snowenc.c s->current_picture->pict_type); s 1911 libavcodec/snowenc.c memcpy(s->current_picture->error, s->encoding_error, sizeof(s->encoding_error)); s 1916 libavcodec/snowenc.c if (s->current_picture->key_frame) s 1925 libavcodec/snowenc.c SnowContext *s = avctx->priv_data; s 1927 libavcodec/snowenc.c ff_snow_common_end(s); s 1928 libavcodec/snowenc.c ff_rate_control_uninit(&s->m); s 1929 libavcodec/snowenc.c av_frame_free(&s->input_picture); s 598 libavcodec/sonic.c SonicContext *s = avctx->priv_data; s 602 libavcodec/sonic.c s->version = 2; s 611 libavcodec/sonic.c s->decorrelation = MID_SIDE; s 613 libavcodec/sonic.c s->decorrelation = 3; s 617 libavcodec/sonic.c s->lossless = 1; s 618 libavcodec/sonic.c s->num_taps = 32; s 619 libavcodec/sonic.c s->downsampling = 1; s 620 libavcodec/sonic.c s->quantization = 0.0; s 624 libavcodec/sonic.c s->num_taps = 128; s 625 libavcodec/sonic.c s->downsampling = 2; s 626 libavcodec/sonic.c s->quantization = 1.0; s 630 libavcodec/sonic.c if (s->num_taps < 32 || s->num_taps > 1024 || s->num_taps % 32) { s 636 libavcodec/sonic.c s->tap_quant = av_calloc(s->num_taps, sizeof(*s->tap_quant)); s 637 libavcodec/sonic.c if (!s->tap_quant) s 640 libavcodec/sonic.c for (i = 0; i < s->num_taps; i++) s 641 libavcodec/sonic.c s->tap_quant[i] = ff_sqrt(i+1); s 643 libavcodec/sonic.c s->channels = avctx->channels; s 644 libavcodec/sonic.c s->samplerate = avctx->sample_rate; s 646 libavcodec/sonic.c s->block_align = 2048LL*s->samplerate/(44100*s->downsampling); s 647 libavcodec/sonic.c s->frame_size = s->channels*s->block_align*s->downsampling; s 649 libavcodec/sonic.c s->tail_size = s->num_taps*s->channels; s 650 libavcodec/sonic.c s->tail = av_calloc(s->tail_size, sizeof(*s->tail)); s 651 libavcodec/sonic.c if (!s->tail) s 654 libavcodec/sonic.c s->predictor_k = av_calloc(s->num_taps, sizeof(*s->predictor_k) ); s 655 libavcodec/sonic.c if (!s->predictor_k) s 658 libavcodec/sonic.c for (i = 0; i < s->channels; i++) s 660 libavcodec/sonic.c s->coded_samples[i] = av_calloc(s->block_align, sizeof(**s->coded_samples)); s 661 libavcodec/sonic.c if (!s->coded_samples[i]) s 665 libavcodec/sonic.c s->int_samples = av_calloc(s->frame_size, sizeof(*s->int_samples)); s 667 libavcodec/sonic.c s->window_size = ((2*s->tail_size)+s->frame_size); s 668 libavcodec/sonic.c s->window = av_calloc(s->window_size, sizeof(*s->window)); s 669 libavcodec/sonic.c if (!s->window || !s->int_samples) s 677 libavcodec/sonic.c put_bits(&pb, 2, s->version); // version s 678 libavcodec/sonic.c if (s->version >= 1) s 680 libavcodec/sonic.c if (s->version >= 2) { s 681 libavcodec/sonic.c put_bits(&pb, 8, s->version); s 682 libavcodec/sonic.c put_bits(&pb, 8, s->minor_version); s 684 libavcodec/sonic.c put_bits(&pb, 2, s->channels); s 685 libavcodec/sonic.c put_bits(&pb, 4, code_samplerate(s->samplerate)); s 687 libavcodec/sonic.c put_bits(&pb, 1, s->lossless); s 688 libavcodec/sonic.c if (!s->lossless) s 690 libavcodec/sonic.c put_bits(&pb, 2, s->decorrelation); s 691 libavcodec/sonic.c put_bits(&pb, 2, s->downsampling); s 692 libavcodec/sonic.c put_bits(&pb, 5, (s->num_taps >> 5)-1); // 32..1024 s 699 libavcodec/sonic.c s->version, s->minor_version, s->lossless, s->decorrelation, s->num_taps, s->block_align, s->frame_size, s->downsampling); s 701 libavcodec/sonic.c avctx->frame_size = s->block_align*s->downsampling; s 708 libavcodec/sonic.c SonicContext *s = avctx->priv_data; s 711 libavcodec/sonic.c for (i = 0; i < s->channels; i++) s 712 libavcodec/sonic.c av_freep(&s->coded_samples[i]); s 714 libavcodec/sonic.c av_freep(&s->predictor_k); s 715 libavcodec/sonic.c av_freep(&s->tail); s 716 libavcodec/sonic.c av_freep(&s->tap_quant); s 717 libavcodec/sonic.c av_freep(&s->window); s 718 libavcodec/sonic.c av_freep(&s->int_samples); s 726 libavcodec/sonic.c SonicContext *s = avctx->priv_data; s 733 libavcodec/sonic.c if ((ret = ff_alloc_packet2(avctx, avpkt, s->frame_size * 5 + 1000, 0)) < 0) s 741 libavcodec/sonic.c for (i = 0; i < s->frame_size; i++) s 742 libavcodec/sonic.c s->int_samples[i] = samples[i]; s 744 libavcodec/sonic.c if (!s->lossless) s 745 libavcodec/sonic.c for (i = 0; i < s->frame_size; i++) s 746 libavcodec/sonic.c s->int_samples[i] = s->int_samples[i] << SAMPLE_SHIFT; s 748 libavcodec/sonic.c switch(s->decorrelation) s 751 libavcodec/sonic.c for (i = 0; i < s->frame_size; i += s->channels) s 753 libavcodec/sonic.c s->int_samples[i] += s->int_samples[i+1]; s 754 libavcodec/sonic.c s->int_samples[i+1] -= shift(s->int_samples[i], 1); s 758 libavcodec/sonic.c for (i = 0; i < s->frame_size; i += s->channels) s 759 libavcodec/sonic.c s->int_samples[i+1] -= s->int_samples[i]; s 762 libavcodec/sonic.c for (i = 0; i < s->frame_size; i += s->channels) s 763 libavcodec/sonic.c s->int_samples[i] -= s->int_samples[i+1]; s 767 libavcodec/sonic.c memset(s->window, 0, 4* s->window_size); s 769 libavcodec/sonic.c for (i = 0; i < s->tail_size; i++) s 770 libavcodec/sonic.c s->window[x++] = s->tail[i]; s 772 libavcodec/sonic.c for (i = 0; i < s->frame_size; i++) s 773 libavcodec/sonic.c s->window[x++] = s->int_samples[i]; s 775 libavcodec/sonic.c for (i = 0; i < s->tail_size; i++) s 776 libavcodec/sonic.c s->window[x++] = 0; s 778 libavcodec/sonic.c for (i = 0; i < s->tail_size; i++) s 779 libavcodec/sonic.c s->tail[i] = s->int_samples[s->frame_size - s->tail_size + i]; s 782 libavcodec/sonic.c ret = modified_levinson_durbin(s->window, s->window_size, s 783 libavcodec/sonic.c s->predictor_k, s->num_taps, s->channels, s->tap_quant); s 787 libavcodec/sonic.c if ((ret = intlist_write(&c, state, s->predictor_k, s->num_taps, 0)) < 0) s 790 libavcodec/sonic.c for (ch = 0; ch < s->channels; ch++) s 792 libavcodec/sonic.c x = s->tail_size+ch; s 793 libavcodec/sonic.c for (i = 0; i < s->block_align; i++) s 796 libavcodec/sonic.c for (j = 0; j < s->downsampling; j++, x += s->channels) s 797 libavcodec/sonic.c sum += s->window[x]; s 798 libavcodec/sonic.c s->coded_samples[ch][i] = sum; s 803 libavcodec/sonic.c if (!s->lossless) s 806 libavcodec/sonic.c for (ch = 0; ch < s->channels; ch++) s 808 libavcodec/sonic.c for (i = 0; i < s->block_align; i++) s 810 libavcodec/sonic.c double sample = s->coded_samples[ch][i]; s 816 libavcodec/sonic.c energy2 = sqrt(energy2/(s->channels*s->block_align)); s 817 libavcodec/sonic.c energy1 = M_SQRT2*energy1/(s->channels*s->block_align); s 825 libavcodec/sonic.c quant = (int)(BASE_QUANT*s->quantization*energy2/SAMPLE_FACTOR); s 836 libavcodec/sonic.c for (ch = 0; ch < s->channels; ch++) s 838 libavcodec/sonic.c if (!s->lossless) s 839 libavcodec/sonic.c for (i = 0; i < s->block_align; i++) s 840 libavcodec/sonic.c s->coded_samples[ch][i] = ROUNDED_DIV(s->coded_samples[ch][i], quant); s 842 libavcodec/sonic.c if ((ret = intlist_write(&c, state, s->coded_samples[ch], s->block_align, 1)) < 0) s 861 libavcodec/sonic.c SonicContext *s = avctx->priv_data; s 866 libavcodec/sonic.c s->channels = avctx->channels; s 867 libavcodec/sonic.c s->samplerate = avctx->sample_rate; s 879 libavcodec/sonic.c s->version = get_bits(&gb, 2); s 880 libavcodec/sonic.c if (s->version >= 2) { s 881 libavcodec/sonic.c s->version = get_bits(&gb, 8); s 882 libavcodec/sonic.c s->minor_version = get_bits(&gb, 8); s 884 libavcodec/sonic.c if (s->version != 2) s 890 libavcodec/sonic.c if (s->version >= 1) s 893 libavcodec/sonic.c s->channels = get_bits(&gb, 2); s 899 libavcodec/sonic.c s->samplerate = samplerate_table[sample_rate_index]; s 901 libavcodec/sonic.c s->channels, s->samplerate); s 904 libavcodec/sonic.c if (s->channels > MAX_CHANNELS || s->channels < 1) s 909 libavcodec/sonic.c avctx->channels = s->channels; s 911 libavcodec/sonic.c s->lossless = get_bits1(&gb); s 912 libavcodec/sonic.c if (!s->lossless) s 914 libavcodec/sonic.c s->decorrelation = get_bits(&gb, 2); s 915 libavcodec/sonic.c if (s->decorrelation != 3 && s->channels != 2) { s 916 libavcodec/sonic.c av_log(avctx, AV_LOG_ERROR, "invalid decorrelation %d\n", s->decorrelation); s 920 libavcodec/sonic.c s->downsampling = get_bits(&gb, 2); s 921 libavcodec/sonic.c if (!s->downsampling) { s 926 libavcodec/sonic.c s->num_taps = (get_bits(&gb, 5)+1)<<5; s 930 libavcodec/sonic.c s->block_align = 2048LL*s->samplerate/(44100*s->downsampling); s 931 libavcodec/sonic.c s->frame_size = s->channels*s->block_align*s->downsampling; s 934 libavcodec/sonic.c if (s->num_taps * s->channels > s->frame_size) { s 937 libavcodec/sonic.c s->num_taps, s->channels, s->frame_size); s 942 libavcodec/sonic.c s->version, s->minor_version, s->lossless, s->decorrelation, s->num_taps, s->block_align, s->frame_size, s->downsampling); s 945 libavcodec/sonic.c s->tap_quant = av_calloc(s->num_taps, sizeof(*s->tap_quant)); s 946 libavcodec/sonic.c if (!s->tap_quant) s 949 libavcodec/sonic.c for (i = 0; i < s->num_taps; i++) s 950 libavcodec/sonic.c s->tap_quant[i] = ff_sqrt(i+1); s 952 libavcodec/sonic.c s->predictor_k = av_calloc(s->num_taps, sizeof(*s->predictor_k)); s 954 libavcodec/sonic.c for (i = 0; i < s->channels; i++) s 956 libavcodec/sonic.c s->predictor_state[i] = av_calloc(s->num_taps, sizeof(**s->predictor_state)); s 957 libavcodec/sonic.c if (!s->predictor_state[i]) s 961 libavcodec/sonic.c for (i = 0; i < s->channels; i++) s 963 libavcodec/sonic.c s->coded_samples[i] = av_calloc(s->block_align, sizeof(**s->coded_samples)); s 964 libavcodec/sonic.c if (!s->coded_samples[i]) s 967 libavcodec/sonic.c s->int_samples = av_calloc(s->frame_size, sizeof(*s->int_samples)); s 968 libavcodec/sonic.c if (!s->int_samples) s 977 libavcodec/sonic.c SonicContext *s = avctx->priv_data; s 980 libavcodec/sonic.c av_freep(&s->int_samples); s 981 libavcodec/sonic.c av_freep(&s->tap_quant); s 982 libavcodec/sonic.c av_freep(&s->predictor_k); s 984 libavcodec/sonic.c for (i = 0; i < s->channels; i++) s 986 libavcodec/sonic.c av_freep(&s->predictor_state[i]); s 987 libavcodec/sonic.c av_freep(&s->coded_samples[i]); s 999 libavcodec/sonic.c SonicContext *s = avctx->priv_data; s 1008 libavcodec/sonic.c frame->nb_samples = s->frame_size / avctx->channels; s 1019 libavcodec/sonic.c intlist_read(&c, state, s->predictor_k, s->num_taps, 0); s 1022 libavcodec/sonic.c for (i = 0; i < s->num_taps; i++) s 1023 libavcodec/sonic.c s->predictor_k[i] *= s->tap_quant[i]; s 1025 libavcodec/sonic.c if (s->lossless) s 1032 libavcodec/sonic.c for (ch = 0; ch < s->channels; ch++) s 1036 libavcodec/sonic.c predictor_init_state(s->predictor_k, s->predictor_state[ch], s->num_taps); s 1038 libavcodec/sonic.c intlist_read(&c, state, s->coded_samples[ch], s->block_align, 1); s 1040 libavcodec/sonic.c for (i = 0; i < s->block_align; i++) s 1042 libavcodec/sonic.c for (j = 0; j < s->downsampling - 1; j++) s 1044 libavcodec/sonic.c s->int_samples[x] = predictor_calc_error(s->predictor_k, s->predictor_state[ch], s->num_taps, 0); s 1045 libavcodec/sonic.c x += s->channels; s 1048 libavcodec/sonic.c s->int_samples[x] = predictor_calc_error(s->predictor_k, s->predictor_state[ch], s->num_taps, s->coded_samples[ch][i] * (unsigned)quant); s 1049 libavcodec/sonic.c x += s->channels; s 1052 libavcodec/sonic.c for (i = 0; i < s->num_taps; i++) s 1053 libavcodec/sonic.c s->predictor_state[ch][i] = s->int_samples[s->frame_size - s->channels + ch - i*s->channels]; s 1056 libavcodec/sonic.c switch(s->decorrelation) s 1059 libavcodec/sonic.c for (i = 0; i < s->frame_size; i += s->channels) s 1061 libavcodec/sonic.c s->int_samples[i+1] += shift(s->int_samples[i], 1); s 1062 libavcodec/sonic.c s->int_samples[i] -= s->int_samples[i+1]; s 1066 libavcodec/sonic.c for (i = 0; i < s->frame_size; i += s->channels) s 1067 libavcodec/sonic.c s->int_samples[i+1] += s->int_samples[i]; s 1070 libavcodec/sonic.c for (i = 0; i < s->frame_size; i += s->channels) s 1071 libavcodec/sonic.c s->int_samples[i] += s->int_samples[i+1]; s 1075 libavcodec/sonic.c if (!s->lossless) s 1076 libavcodec/sonic.c for (i = 0; i < s->frame_size; i++) s 1077 libavcodec/sonic.c s->int_samples[i] = shift(s->int_samples[i], SAMPLE_SHIFT); s 1080 libavcodec/sonic.c for (i = 0; i < s->frame_size; i++) s 1081 libavcodec/sonic.c samples[i] = av_clip_int16(s->int_samples[i]); s 183 libavcodec/speedhq.c static inline int decode_alpha_block(const SHQContext *s, GetBitContext *gb, uint8_t last_alpha[16], uint8_t *dest, int linesize) s 223 libavcodec/speedhq.c static inline int decode_dct_block(const SHQContext *s, GetBitContext *gb, int last_dc[4], int component, uint8_t *dest, int linesize) s 225 libavcodec/speedhq.c const int *quant_matrix = s->quant_matrix; s 226 libavcodec/speedhq.c const uint8_t *scantable = s->intra_scantable.permutated; s 230 libavcodec/speedhq.c s->bdsp.clear_block(block); s 275 libavcodec/speedhq.c s->idsp.idct_put(dest, linesize, block); s 280 libavcodec/speedhq.c static int decode_speedhq_field(const SHQContext *s, const uint8_t *buf, int buf_size, AVFrame *frame, int field_number, int start, int end, int line_stride) s 288 libavcodec/speedhq.c if (s->alpha_type != SHQ_NO_ALPHA) s 326 libavcodec/speedhq.c if (s->subsampling == SHQ_SUBSAMPLING_420) { s 333 libavcodec/speedhq.c if (s->alpha_type != SHQ_NO_ALPHA) { s 339 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 0, dest_y, linesize_y)) < 0) s 341 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 0, dest_y + 8, linesize_y)) < 0) s 343 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 0, dest_y + 8 * linesize_y, linesize_y)) < 0) s 345 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 0, dest_y + 8 * linesize_y + 8, linesize_y)) < 0) s 352 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 1, dest_cb, linesize_cb)) < 0) s 354 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 2, dest_cr, linesize_cr)) < 0) s 357 libavcodec/speedhq.c if (s->subsampling != SHQ_SUBSAMPLING_420) { s 359 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 1, dest_cb + 8 * linesize_cb, linesize_cb)) < 0) s 361 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 2, dest_cr + 8 * linesize_cr, linesize_cr)) < 0) s 364 libavcodec/speedhq.c if (s->subsampling == SHQ_SUBSAMPLING_444) { s 366 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 1, dest_cb + 8, linesize_cb)) < 0) s 368 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 2, dest_cr + 8, linesize_cr)) < 0) s 370 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 1, dest_cb + 8 * linesize_cb + 8, linesize_cb)) < 0) s 372 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 2, dest_cr + 8 * linesize_cr + 8, linesize_cr)) < 0) s 383 libavcodec/speedhq.c if (s->alpha_type == SHQ_RLE_ALPHA) { s 385 libavcodec/speedhq.c if ((ret = decode_alpha_block(s, &gb, last_alpha, dest_a, linesize_a)) < 0) s 387 libavcodec/speedhq.c if ((ret = decode_alpha_block(s, &gb, last_alpha, dest_a + 8 * linesize_a, linesize_a)) < 0) s 390 libavcodec/speedhq.c } else if (s->alpha_type == SHQ_DCT_ALPHA) { s 392 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 3, dest_a, linesize_a)) < 0) s 394 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 3, dest_a + 8, linesize_a)) < 0) s 396 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 3, dest_a + 8 * linesize_a, linesize_a)) < 0) s 398 libavcodec/speedhq.c if ((ret = decode_dct_block(s, &gb, last_dc, 3, dest_a + 8 * linesize_a + 8, linesize_a)) < 0) s 419 libavcodec/speedhq.c SHQContext * const s = avctx->priv_data; s 435 libavcodec/speedhq.c compute_quant_matrix(s->quant_matrix, 100 - quality); s 460 libavcodec/speedhq.c if ((ret = decode_speedhq_field(s, buf, buf_size, frame, 0, 4, buf_size, 1)) < 0) s 463 libavcodec/speedhq.c if ((ret = decode_speedhq_field(s, buf, buf_size, frame, 0, 4, second_field_offset, 2)) < 0) s 465 libavcodec/speedhq.c if ((ret = decode_speedhq_field(s, buf, buf_size, frame, 1, second_field_offset, buf_size, 2)) < 0) s 610 libavcodec/speedhq.c SHQContext * const s = avctx->priv_data; s 612 libavcodec/speedhq.c s->avctx = avctx; s 618 libavcodec/speedhq.c ff_blockdsp_init(&s->bdsp, avctx); s 619 libavcodec/speedhq.c ff_idctdsp_init(&s->idsp, avctx); s 620 libavcodec/speedhq.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, ff_zigzag_direct); s 624 libavcodec/speedhq.c s->subsampling = SHQ_SUBSAMPLING_420; s 625 libavcodec/speedhq.c s->alpha_type = SHQ_NO_ALPHA; s 629 libavcodec/speedhq.c s->subsampling = SHQ_SUBSAMPLING_420; s 630 libavcodec/speedhq.c s->alpha_type = SHQ_RLE_ALPHA; s 634 libavcodec/speedhq.c s->subsampling = SHQ_SUBSAMPLING_422; s 635 libavcodec/speedhq.c s->alpha_type = SHQ_NO_ALPHA; s 639 libavcodec/speedhq.c s->subsampling = SHQ_SUBSAMPLING_422; s 640 libavcodec/speedhq.c s->alpha_type = SHQ_RLE_ALPHA; s 644 libavcodec/speedhq.c s->subsampling = SHQ_SUBSAMPLING_444; s 645 libavcodec/speedhq.c s->alpha_type = SHQ_NO_ALPHA; s 649 libavcodec/speedhq.c s->subsampling = SHQ_SUBSAMPLING_444; s 650 libavcodec/speedhq.c s->alpha_type = SHQ_RLE_ALPHA; s 654 libavcodec/speedhq.c s->subsampling = SHQ_SUBSAMPLING_422; s 655 libavcodec/speedhq.c s->alpha_type = SHQ_DCT_ALPHA; s 659 libavcodec/speedhq.c s->subsampling = SHQ_SUBSAMPLING_444; s 660 libavcodec/speedhq.c s->alpha_type = SHQ_DCT_ALPHA; s 63 libavcodec/srtdec.c FFASSDecoderContext *s = avctx->priv_data; s 79 libavcodec/srtdec.c ret = ff_ass_add_rect(sub, buffer.str, s->readorder++, 0, NULL, NULL); s 45 libavcodec/srtenc.c static void srt_print(SRTContext *s, const char *str, ...) s 49 libavcodec/srtenc.c av_vbprintf(&s->buffer, str, vargs); s 53 libavcodec/srtenc.c static int srt_stack_push(SRTContext *s, const char c) s 55 libavcodec/srtenc.c if (s->stack_ptr >= SRT_STACK_SIZE) s 57 libavcodec/srtenc.c s->stack[s->stack_ptr++] = c; s 61 libavcodec/srtenc.c static char srt_stack_pop(SRTContext *s) s 63 libavcodec/srtenc.c if (s->stack_ptr <= 0) s 65 libavcodec/srtenc.c return s->stack[--s->stack_ptr]; s 68 libavcodec/srtenc.c static int srt_stack_find(SRTContext *s, const char c) s 71 libavcodec/srtenc.c for (i = s->stack_ptr-1; i >= 0; i--) s 72 libavcodec/srtenc.c if (s->stack[i] == c) s 77 libavcodec/srtenc.c static void srt_close_tag(SRTContext *s, char tag) s 79 libavcodec/srtenc.c srt_print(s, "</%c%s>", tag, tag == 'f' ? "ont" : ""); s 82 libavcodec/srtenc.c static void srt_stack_push_pop(SRTContext *s, const char c, int close) s 85 libavcodec/srtenc.c int i = c ? srt_stack_find(s, c) : 0; s 88 libavcodec/srtenc.c while (s->stack_ptr != i) s 89 libavcodec/srtenc.c srt_close_tag(s, srt_stack_pop(s)); s 90 libavcodec/srtenc.c } else if (srt_stack_push(s, c) < 0) s 91 libavcodec/srtenc.c av_log(s->avctx, AV_LOG_ERROR, "tag stack overflow\n"); s 94 libavcodec/srtenc.c static void srt_style_apply(SRTContext *s, const char *style) s 96 libavcodec/srtenc.c ASSStyle *st = ff_ass_style_get(s->ass_ctx, style); s 102 libavcodec/srtenc.c srt_print(s, "<font"); s 104 libavcodec/srtenc.c srt_print(s, " face=\"%s\"", st->font_name); s 106 libavcodec/srtenc.c srt_print(s, " size=\"%d\"", st->font_size); s 108 libavcodec/srtenc.c srt_print(s, " color=\"#%06x\"", s 110 libavcodec/srtenc.c srt_print(s, ">"); s 111 libavcodec/srtenc.c srt_stack_push(s, 'f'); s 114 libavcodec/srtenc.c srt_print(s, "<b>"); s 115 libavcodec/srtenc.c srt_stack_push(s, 'b'); s 118 libavcodec/srtenc.c srt_print(s, "<i>"); s 119 libavcodec/srtenc.c srt_stack_push(s, 'i'); s 122 libavcodec/srtenc.c srt_print(s, "<u>"); s 123 libavcodec/srtenc.c srt_stack_push(s, 'u'); s 126 libavcodec/srtenc.c srt_print(s, "{\\an%d}", st->alignment); s 127 libavcodec/srtenc.c s->alignment_applied = 1; s 135 libavcodec/srtenc.c SRTContext *s = avctx->priv_data; s 136 libavcodec/srtenc.c s->avctx = avctx; s 137 libavcodec/srtenc.c s->ass_ctx = ff_ass_split(avctx->subtitle_header); s 138 libavcodec/srtenc.c av_bprint_init(&s->buffer, 0, AV_BPRINT_SIZE_UNLIMITED); s 139 libavcodec/srtenc.c return s->ass_ctx ? 0 : AVERROR_INVALIDDATA; s 144 libavcodec/srtenc.c SRTContext *s = priv; s 145 libavcodec/srtenc.c av_bprint_append_data(&s->buffer, text, len); s 186 libavcodec/srtenc.c SRTContext *s = priv; s 187 libavcodec/srtenc.c if (!s->alignment_applied && alignment >= 0) { s 188 libavcodec/srtenc.c srt_print(s, "{\\an%d}", alignment); s 189 libavcodec/srtenc.c s->alignment_applied = 1; s 233 libavcodec/srtenc.c SRTContext *s = avctx->priv_data; s 237 libavcodec/srtenc.c av_bprint_clear(&s->buffer); s 250 libavcodec/srtenc.c dialog = ff_ass_split_dialog(s->ass_ctx, ass, 0, &num); s 252 libavcodec/srtenc.c s->alignment_applied = 0; s 254 libavcodec/srtenc.c srt_style_apply(s, dialog->style); s 255 libavcodec/srtenc.c ff_ass_split_override_codes(cb, s, dialog->text); s 259 libavcodec/srtenc.c dialog = ff_ass_split_dialog2(s->ass_ctx, ass); s 262 libavcodec/srtenc.c s->alignment_applied = 0; s 264 libavcodec/srtenc.c srt_style_apply(s, dialog->style); s 265 libavcodec/srtenc.c ff_ass_split_override_codes(cb, s, dialog->text); s 272 libavcodec/srtenc.c if (!av_bprint_is_complete(&s->buffer)) s 274 libavcodec/srtenc.c if (!s->buffer.len) s 277 libavcodec/srtenc.c if (s->buffer.len > bufsize) { s 281 libavcodec/srtenc.c memcpy(buf, s->buffer.str, s->buffer.len); s 283 libavcodec/srtenc.c return s->buffer.len; s 300 libavcodec/srtenc.c SRTContext *s = avctx->priv_data; s 301 libavcodec/srtenc.c ff_ass_split_free(s->ass_ctx); s 302 libavcodec/srtenc.c av_bprint_finalize(&s->buffer, NULL); s 55 libavcodec/subviewerdec.c FFASSDecoderContext *s = avctx->priv_data; s 60 libavcodec/subviewerdec.c ret = ff_ass_add_rect(sub, buf.str, s->readorder++, 0, NULL, NULL); s 43 libavcodec/sunrastenc.c SUNRASTContext *s = avctx->priv_data; s 45 libavcodec/sunrastenc.c bytestream2_put_be32u(&s->p, RAS_MAGIC); s 46 libavcodec/sunrastenc.c bytestream2_put_be32u(&s->p, avctx->width); s 47 libavcodec/sunrastenc.c bytestream2_put_be32u(&s->p, avctx->height); s 48 libavcodec/sunrastenc.c bytestream2_put_be32u(&s->p, s->depth); s 49 libavcodec/sunrastenc.c bytestream2_put_be32u(&s->p, s->length); s 50 libavcodec/sunrastenc.c bytestream2_put_be32u(&s->p, s->type); s 51 libavcodec/sunrastenc.c bytestream2_put_be32u(&s->p, s->maptype); s 52 libavcodec/sunrastenc.c bytestream2_put_be32u(&s->p, s->maplength); s 60 libavcodec/sunrastenc.c SUNRASTContext *s = avctx->priv_data; s 64 libavcodec/sunrastenc.c if (s->maplength) { // palettized s 66 libavcodec/sunrastenc.c int len = s->maplength / 3; s 68 libavcodec/sunrastenc.c pb_r = s->p; s 69 libavcodec/sunrastenc.c bytestream2_skip_p(&s->p, len); s 70 libavcodec/sunrastenc.c pb_g = s->p; s 71 libavcodec/sunrastenc.c bytestream2_skip_p(&s->p, len); s 78 libavcodec/sunrastenc.c bytestream2_put_byteu(&s->p, pixel & 0xFF); s 82 libavcodec/sunrastenc.c len = (s->depth * avctx->width + 7) >> 3; s 86 libavcodec/sunrastenc.c if (s->type == RT_BYTE_ENCODED) { s 117 libavcodec/sunrastenc.c bytestream2_put_byteu(&s->p, RLE_TRIGGER); s 118 libavcodec/sunrastenc.c bytestream2_put_byteu(&s->p, run - 1); s 120 libavcodec/sunrastenc.c bytestream2_put_byteu(&s->p, value); s 122 libavcodec/sunrastenc.c bytestream2_put_byteu(&s->p, value); s 124 libavcodec/sunrastenc.c bytestream2_put_be16u(&s->p, (value << 8) | value); s 128 libavcodec/sunrastenc.c s->length = bytestream2_tell_p(&s->p) - 32 - s->maplength; s 131 libavcodec/sunrastenc.c bytestream2_put_buffer(&s->p, ptr, len); s 133 libavcodec/sunrastenc.c bytestream2_put_byteu(&s->p, 0); s 141 libavcodec/sunrastenc.c SUNRASTContext *s = avctx->priv_data; s 147 libavcodec/sunrastenc.c s->type = RT_BYTE_ENCODED; s 150 libavcodec/sunrastenc.c s->type = RT_STANDARD; s 157 libavcodec/sunrastenc.c if (s->type != RT_BYTE_ENCODED && s->type != RT_STANDARD) s 160 libavcodec/sunrastenc.c s->type++; s 162 libavcodec/sunrastenc.c s->maptype = RMT_NONE; s 163 libavcodec/sunrastenc.c s->maplength = 0; s 167 libavcodec/sunrastenc.c s->depth = 1; s 170 libavcodec/sunrastenc.c s->maptype = RMT_EQUAL_RGB; s 171 libavcodec/sunrastenc.c s->maplength = 3 * 256; s 174 libavcodec/sunrastenc.c s->depth = 8; s 177 libavcodec/sunrastenc.c s->depth = 24; s 182 libavcodec/sunrastenc.c s->length = avctx->height * (FFALIGN(avctx->width * s->depth, 16) >> 3); s 183 libavcodec/sunrastenc.c s->size = 32 + s->maplength + s->length * s->type; s 191 libavcodec/sunrastenc.c SUNRASTContext *s = avctx->priv_data; s 194 libavcodec/sunrastenc.c if ((ret = ff_alloc_packet2(avctx, avpkt, s->size, 0)) < 0) s 197 libavcodec/sunrastenc.c bytestream2_init_writer(&s->p, avpkt->data, avpkt->size); s 203 libavcodec/sunrastenc.c if (s->type == RT_BYTE_ENCODED) s 204 libavcodec/sunrastenc.c AV_WB32(&avpkt->data[16], s->length); s 208 libavcodec/sunrastenc.c avpkt->size = bytestream2_tell_p(&s->p); s 522 libavcodec/svq1dec.c SVQ1Context *s = avctx->priv_data; s 523 libavcodec/svq1dec.c GetBitContext *bitbuf = &s->gb; s 525 libavcodec/svq1dec.c int width = s->width; s 526 libavcodec/svq1dec.c int height = s->height; s 531 libavcodec/svq1dec.c s->nonref = 0; s 537 libavcodec/svq1dec.c s->nonref = 1; s 548 libavcodec/svq1dec.c if (s->frame_code == 0x50 || s->frame_code == 0x60) { s 557 libavcodec/svq1dec.c if ((s->frame_code ^ 0x10) >= 0x50) { s 608 libavcodec/svq1dec.c s->width = width; s 609 libavcodec/svq1dec.c s->height = height; s 618 libavcodec/svq1dec.c SVQ1Context *s = avctx->priv_data; s 626 libavcodec/svq1dec.c ret = init_get_bits8(&s->gb, buf, buf_size); s 631 libavcodec/svq1dec.c s->frame_code = get_bits(&s->gb, 22); s 633 libavcodec/svq1dec.c if ((s->frame_code & ~0x70) || !(s->frame_code & 0x60)) s 637 libavcodec/svq1dec.c if (s->frame_code != 0x20) { s 645 libavcodec/svq1dec.c av_fast_padded_malloc(&s->pkt_swapped, s 646 libavcodec/svq1dec.c &s->pkt_swapped_allocated, s 648 libavcodec/svq1dec.c if (!s->pkt_swapped) s 651 libavcodec/svq1dec.c memcpy(s->pkt_swapped, buf, buf_size); s 652 libavcodec/svq1dec.c buf = s->pkt_swapped; s 653 libavcodec/svq1dec.c init_get_bits(&s->gb, buf, buf_size * 8); s 654 libavcodec/svq1dec.c skip_bits(&s->gb, 22); s 656 libavcodec/svq1dec.c src = (uint32_t *)(s->pkt_swapped + 4); s 668 libavcodec/svq1dec.c result = ff_set_dimensions(avctx, s->width, s->height); s 672 libavcodec/svq1dec.c if ((avctx->skip_frame >= AVDISCARD_NONREF && s->nonref) || s 678 libavcodec/svq1dec.c result = ff_get_buffer(avctx, cur, s->nonref ? 0 : AV_GET_BUFFER_FLAG_REF); s 682 libavcodec/svq1dec.c pmv = av_malloc((FFALIGN(s->width, 16) / 8 + 3) * sizeof(*pmv)); s 690 libavcodec/svq1dec.c width = FFALIGN(s->width, 16); s 691 libavcodec/svq1dec.c height = FFALIGN(s->height, 16); s 695 libavcodec/svq1dec.c width = FFALIGN(s->width / 4, 16); s 696 libavcodec/svq1dec.c height = FFALIGN(s->height / 4, 16); s 705 libavcodec/svq1dec.c result = svq1_decode_block_intra(&s->gb, ¤t[x], s 718 libavcodec/svq1dec.c uint8_t *previous = s->prev->data[i]; s 720 libavcodec/svq1dec.c s->prev->width != s->width || s->prev->height != s->height) { s 730 libavcodec/svq1dec.c result = svq1_decode_delta_block(avctx, &s->hdsp, s 731 libavcodec/svq1dec.c &s->gb, ¤t[x], s 750 libavcodec/svq1dec.c if (!s->nonref) { s 751 libavcodec/svq1dec.c av_frame_unref(s->prev); s 752 libavcodec/svq1dec.c result = av_frame_ref(s->prev, cur); s 767 libavcodec/svq1dec.c SVQ1Context *s = avctx->priv_data; s 771 libavcodec/svq1dec.c s->prev = av_frame_alloc(); s 772 libavcodec/svq1dec.c if (!s->prev) s 775 libavcodec/svq1dec.c s->width = avctx->width + 3 & ~3; s 776 libavcodec/svq1dec.c s->height = avctx->height + 3 & ~3; s 779 libavcodec/svq1dec.c ff_hpeldsp_init(&s->hdsp, avctx->flags); s 822 libavcodec/svq1dec.c SVQ1Context *s = avctx->priv_data; s 824 libavcodec/svq1dec.c av_frame_free(&s->prev); s 825 libavcodec/svq1dec.c av_freep(&s->pkt_swapped); s 826 libavcodec/svq1dec.c s->pkt_swapped_allocated = 0; s 833 libavcodec/svq1dec.c SVQ1Context *s = avctx->priv_data; s 835 libavcodec/svq1dec.c av_frame_unref(s->prev); s 43 libavcodec/svq1enc.c static void svq1_write_header(SVQ1EncContext *s, int frame_type) s 48 libavcodec/svq1enc.c put_bits(&s->pb, 22, 0x20); s 51 libavcodec/svq1enc.c put_bits(&s->pb, 8, 0x00); s 54 libavcodec/svq1enc.c put_bits(&s->pb, 2, frame_type - 1); s 60 libavcodec/svq1enc.c put_bits(&s->pb, 5, 2); /* 2 needed by quicktime decoder */ s 64 libavcodec/svq1enc.c s->frame_width, s->frame_height); s 65 libavcodec/svq1enc.c put_bits(&s->pb, 3, i); s 68 libavcodec/svq1enc.c put_bits(&s->pb, 12, s->frame_width); s 69 libavcodec/svq1enc.c put_bits(&s->pb, 12, s->frame_height); s 74 libavcodec/svq1enc.c put_bits(&s->pb, 2, 0); s 90 libavcodec/svq1enc.c static int encode_block(SVQ1EncContext *s, uint8_t *src, uint8_t *ref, s 100 libavcodec/svq1enc.c int16_t (*block)[256] = s->encoded_block_levels[level]; s 154 libavcodec/svq1enc.c sqr = s->ssd_int8_vs_int16(vector, block[stage], size); s 192 libavcodec/svq1enc.c backup[i] = s->reorder_pb[i]; s 193 libavcodec/svq1enc.c score += encode_block(s, src, ref, decoded, stride, level - 1, s 195 libavcodec/svq1enc.c score += encode_block(s, src + offset, ref + offset, decoded + offset, s 204 libavcodec/svq1enc.c s->reorder_pb[i] = backup[i]; s 208 libavcodec/svq1enc.c put_bits(&s->reorder_pb[level], 1, split); s 217 libavcodec/svq1enc.c put_bits(&s->reorder_pb[level], s 220 libavcodec/svq1enc.c put_bits(&s->reorder_pb[level], mean_vlc[best_mean][1], s 225 libavcodec/svq1enc.c put_bits(&s->reorder_pb[level], 4, best_vector[i]); s 238 libavcodec/svq1enc.c static void init_block_index(MpegEncContext *s){ s 239 libavcodec/svq1enc.c s->block_index[0]= s->b8_stride*(s->mb_y*2 ) + s->mb_x*2; s 240 libavcodec/svq1enc.c s->block_index[1]= s->b8_stride*(s->mb_y*2 ) + 1 + s->mb_x*2; s 241 libavcodec/svq1enc.c s->block_index[2]= s->b8_stride*(s->mb_y*2 + 1) + s->mb_x*2; s 242 libavcodec/svq1enc.c s->block_index[3]= s->b8_stride*(s->mb_y*2 + 1) + 1 + s->mb_x*2; s 243 libavcodec/svq1enc.c s->block_index[4]= s->mb_stride*(s->mb_y + 1) + s->b8_stride*s->mb_height*2 + s->mb_x; s 244 libavcodec/svq1enc.c s->block_index[5]= s->mb_stride*(s->mb_y + s->mb_height + 2) + s->b8_stride*s->mb_height*2 + s->mb_x; s 247 libavcodec/svq1enc.c static int svq1_encode_plane(SVQ1EncContext *s, int plane, s 258 libavcodec/svq1enc.c uint8_t *src = s->scratchbuf + stride * 32; s 259 libavcodec/svq1enc.c const int lambda = (s->quality * s->quality) >> s 270 libavcodec/svq1enc.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 271 libavcodec/svq1enc.c s->m.avctx = s->avctx; s 272 libavcodec/svq1enc.c s->m.current_picture_ptr = &s->m.current_picture; s 273 libavcodec/svq1enc.c s->m.last_picture_ptr = &s->m.last_picture; s 274 libavcodec/svq1enc.c s->m.last_picture.f->data[0] = ref_plane; s 275 libavcodec/svq1enc.c s->m.linesize = s 276 libavcodec/svq1enc.c s->m.last_picture.f->linesize[0] = s 277 libavcodec/svq1enc.c s->m.new_picture.f->linesize[0] = s 278 libavcodec/svq1enc.c s->m.current_picture.f->linesize[0] = stride; s 279 libavcodec/svq1enc.c s->m.width = width; s 280 libavcodec/svq1enc.c s->m.height = height; s 281 libavcodec/svq1enc.c s->m.mb_width = block_width; s 282 libavcodec/svq1enc.c s->m.mb_height = block_height; s 283 libavcodec/svq1enc.c s->m.mb_stride = s->m.mb_width + 1; s 284 libavcodec/svq1enc.c s->m.b8_stride = 2 * s->m.mb_width + 1; s 285 libavcodec/svq1enc.c s->m.f_code = 1; s 286 libavcodec/svq1enc.c s->m.pict_type = s->pict_type; s 287 libavcodec/svq1enc.c s->m.motion_est = s->motion_est; s 288 libavcodec/svq1enc.c s->m.me.scene_change_score = 0; s 291 libavcodec/svq1enc.c s->m.lambda = s->quality; s 292 libavcodec/svq1enc.c s->m.qscale = s->m.lambda * 139 + s 295 libavcodec/svq1enc.c s->m.lambda2 = s->m.lambda * s->m.lambda + s 299 libavcodec/svq1enc.c if (!s->motion_val8[plane]) { s 300 libavcodec/svq1enc.c s->motion_val8[plane] = av_mallocz((s->m.b8_stride * s 303 libavcodec/svq1enc.c s->motion_val16[plane] = av_mallocz((s->m.mb_stride * s 306 libavcodec/svq1enc.c if (!s->motion_val8[plane] || !s->motion_val16[plane]) s 310 libavcodec/svq1enc.c s->m.mb_type = s->mb_type; s 313 libavcodec/svq1enc.c s->m.current_picture.mb_mean = (uint8_t *)s->dummy; s 314 libavcodec/svq1enc.c s->m.current_picture.mb_var = (uint16_t *)s->dummy; s 315 libavcodec/svq1enc.c s->m.current_picture.mc_mb_var = (uint16_t *)s->dummy; s 316 libavcodec/svq1enc.c s->m.current_picture.mb_type = s->dummy; s 318 libavcodec/svq1enc.c s->m.current_picture.motion_val[0] = s->motion_val8[plane] + 2; s 319 libavcodec/svq1enc.c s->m.p_mv_table = s->motion_val16[plane] + s 320 libavcodec/svq1enc.c s->m.mb_stride + 1; s 321 libavcodec/svq1enc.c s->m.mecc = s->mecc; // move s 322 libavcodec/svq1enc.c ff_init_me(&s->m); s 324 libavcodec/svq1enc.c s->m.me.dia_size = s->avctx->dia_size; s 325 libavcodec/svq1enc.c s->m.first_slice_line = 1; s 327 libavcodec/svq1enc.c s->m.new_picture.f->data[0] = src - y * 16 * stride; // ugly s 328 libavcodec/svq1enc.c s->m.mb_y = y; s 341 libavcodec/svq1enc.c s->m.mb_x = x; s 342 libavcodec/svq1enc.c init_block_index(&s->m); s 344 libavcodec/svq1enc.c ff_estimate_p_frame_motion(&s->m, x, y); s 346 libavcodec/svq1enc.c s->m.first_slice_line = 0; s 349 libavcodec/svq1enc.c ff_fix_long_p_mvs(&s->m, CANDIDATE_MB_TYPE_INTRA); s 350 libavcodec/svq1enc.c ff_fix_long_mvs(&s->m, NULL, 0, s->m.p_mv_table, s->m.f_code, s 354 libavcodec/svq1enc.c s->m.first_slice_line = 1; s 365 libavcodec/svq1enc.c s->m.mb_y = y; s 373 libavcodec/svq1enc.c uint8_t *temp = s->scratchbuf; s 375 libavcodec/svq1enc.c if (s->pb.buf_end - s->pb.buf - s 376 libavcodec/svq1enc.c (put_bits_count(&s->pb) >> 3) < 3000) { // FIXME: check size s 377 libavcodec/svq1enc.c av_log(s->avctx, AV_LOG_ERROR, "encoded frame too large\n"); s 381 libavcodec/svq1enc.c s->m.mb_x = x; s 382 libavcodec/svq1enc.c init_block_index(&s->m); s 384 libavcodec/svq1enc.c if (s->pict_type == AV_PICTURE_TYPE_I || s 385 libavcodec/svq1enc.c (s->m.mb_type[x + y * s->m.mb_stride] & s 388 libavcodec/svq1enc.c init_put_bits(&s->reorder_pb[i], reorder_buffer[0][i], s 390 libavcodec/svq1enc.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 392 libavcodec/svq1enc.c put_bits(&s->reorder_pb[5], vlc[1], vlc[0]); s 395 libavcodec/svq1enc.c score[0] += encode_block(s, src + 16 * x, NULL, temp, stride, s 398 libavcodec/svq1enc.c count[0][i] = put_bits_count(&s->reorder_pb[i]); s 399 libavcodec/svq1enc.c flush_put_bits(&s->reorder_pb[i]); s 406 libavcodec/svq1enc.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 411 libavcodec/svq1enc.c motion_ptr = ff_h263_pred_motion(&s->m, 0, 0, &pred_x, &pred_y); s 412 libavcodec/svq1enc.c if (s->m.mb_type[x + y * s->m.mb_stride] & s 415 libavcodec/svq1enc.c init_put_bits(&s->reorder_pb[i], reorder_buffer[1][i], s 418 libavcodec/svq1enc.c put_bits(&s->reorder_pb[5], vlc[1], vlc[0]); s 420 libavcodec/svq1enc.c s->m.pb = s->reorder_pb[5]; s 427 libavcodec/svq1enc.c ff_h263_encode_motion(&s->m.pb, mx - pred_x, 1); s 428 libavcodec/svq1enc.c ff_h263_encode_motion(&s->m.pb, my - pred_y, 1); s 429 libavcodec/svq1enc.c s->reorder_pb[5] = s->m.pb; s 430 libavcodec/svq1enc.c score[1] += lambda * put_bits_count(&s->reorder_pb[5]); s 434 libavcodec/svq1enc.c s->hdsp.put_pixels_tab[0][dxy](temp + 16*stride, s 439 libavcodec/svq1enc.c score[1] += encode_block(s, src + 16 * x, temp + 16*stride, s 444 libavcodec/svq1enc.c score[2] = s->mecc.sse[0](NULL, src + 16 * x, ref, s 449 libavcodec/svq1enc.c s->hdsp.put_pixels_tab[0][0](decoded, ref, stride, 16); s 450 libavcodec/svq1enc.c put_bits(&s->pb, vlc[1], vlc[0]); s 456 libavcodec/svq1enc.c count[1][i] = put_bits_count(&s->reorder_pb[i]); s 457 libavcodec/svq1enc.c flush_put_bits(&s->reorder_pb[i]); s 464 libavcodec/svq1enc.c motion_ptr[0 + 2 * s->m.b8_stride] = s 465 libavcodec/svq1enc.c motion_ptr[1 + 2 * s->m.b8_stride] = s 466 libavcodec/svq1enc.c motion_ptr[2 + 2 * s->m.b8_stride] = s 467 libavcodec/svq1enc.c motion_ptr[3 + 2 * s->m.b8_stride] = 0; s 471 libavcodec/svq1enc.c s->rd_total += score[best]; s 475 libavcodec/svq1enc.c avpriv_copy_bits(&s->pb, reorder_buffer[best][i], s 478 libavcodec/svq1enc.c s->hdsp.put_pixels_tab[0][0](decoded, temp, stride, 16); s 480 libavcodec/svq1enc.c s->m.first_slice_line = 0; s 487 libavcodec/svq1enc.c SVQ1EncContext *const s = avctx->priv_data; s 491 libavcodec/svq1enc.c s->rd_total / (double)(avctx->width * avctx->height * s 494 libavcodec/svq1enc.c s->m.mb_type = NULL; s 495 libavcodec/svq1enc.c ff_mpv_common_end(&s->m); s 497 libavcodec/svq1enc.c av_freep(&s->m.me.scratchpad); s 498 libavcodec/svq1enc.c av_freep(&s->m.me.map); s 499 libavcodec/svq1enc.c av_freep(&s->m.me.score_map); s 500 libavcodec/svq1enc.c av_freep(&s->mb_type); s 501 libavcodec/svq1enc.c av_freep(&s->dummy); s 502 libavcodec/svq1enc.c av_freep(&s->scratchbuf); s 505 libavcodec/svq1enc.c av_freep(&s->motion_val8[i]); s 506 libavcodec/svq1enc.c av_freep(&s->motion_val16[i]); s 509 libavcodec/svq1enc.c av_frame_free(&s->current_picture); s 510 libavcodec/svq1enc.c av_frame_free(&s->last_picture); s 517 libavcodec/svq1enc.c SVQ1EncContext *const s = avctx->priv_data; s 525 libavcodec/svq1enc.c ff_hpeldsp_init(&s->hdsp, avctx->flags); s 526 libavcodec/svq1enc.c ff_me_cmp_init(&s->mecc, avctx); s 527 libavcodec/svq1enc.c ff_mpegvideoencdsp_init(&s->m.mpvencdsp, avctx); s 529 libavcodec/svq1enc.c s->current_picture = av_frame_alloc(); s 530 libavcodec/svq1enc.c s->last_picture = av_frame_alloc(); s 531 libavcodec/svq1enc.c if (!s->current_picture || !s->last_picture) { s 536 libavcodec/svq1enc.c s->frame_width = avctx->width; s 537 libavcodec/svq1enc.c s->frame_height = avctx->height; s 539 libavcodec/svq1enc.c s->y_block_width = (s->frame_width + 15) / 16; s 540 libavcodec/svq1enc.c s->y_block_height = (s->frame_height + 15) / 16; s 542 libavcodec/svq1enc.c s->c_block_width = (s->frame_width / 4 + 15) / 16; s 543 libavcodec/svq1enc.c s->c_block_height = (s->frame_height / 4 + 15) / 16; s 545 libavcodec/svq1enc.c s->avctx = avctx; s 546 libavcodec/svq1enc.c s->m.avctx = avctx; s 548 libavcodec/svq1enc.c if ((ret = ff_mpv_common_init(&s->m)) < 0) { s 553 libavcodec/svq1enc.c s->m.picture_structure = PICT_FRAME; s 554 libavcodec/svq1enc.c s->m.me.temp = s 555 libavcodec/svq1enc.c s->m.me.scratchpad = av_mallocz((avctx->width + 64) * s 557 libavcodec/svq1enc.c s->m.me.map = av_mallocz(ME_MAP_SIZE * sizeof(uint32_t)); s 558 libavcodec/svq1enc.c s->m.me.score_map = av_mallocz(ME_MAP_SIZE * sizeof(uint32_t)); s 559 libavcodec/svq1enc.c s->mb_type = av_mallocz((s->y_block_width + 1) * s 560 libavcodec/svq1enc.c s->y_block_height * sizeof(int16_t)); s 561 libavcodec/svq1enc.c s->dummy = av_mallocz((s->y_block_width + 1) * s 562 libavcodec/svq1enc.c s->y_block_height * sizeof(int32_t)); s 563 libavcodec/svq1enc.c s->ssd_int8_vs_int16 = ssd_int8_vs_int16_c; s 565 libavcodec/svq1enc.c if (!s->m.me.temp || !s->m.me.scratchpad || !s->m.me.map || s 566 libavcodec/svq1enc.c !s->m.me.score_map || !s->mb_type || !s->dummy) { s 572 libavcodec/svq1enc.c ff_svq1enc_init_ppc(s); s 574 libavcodec/svq1enc.c ff_svq1enc_init_x86(s); s 576 libavcodec/svq1enc.c ff_h263_encode_init(&s->m); // mv_penalty s 584 libavcodec/svq1enc.c SVQ1EncContext *const s = avctx->priv_data; s 587 libavcodec/svq1enc.c if ((ret = ff_alloc_packet2(avctx, pkt, s->y_block_width * s->y_block_height * s 596 libavcodec/svq1enc.c if (!s->current_picture->data[0]) { s 597 libavcodec/svq1enc.c if ((ret = ff_get_buffer(avctx, s->current_picture, 0)) < 0) { s 601 libavcodec/svq1enc.c if (!s->last_picture->data[0]) { s 602 libavcodec/svq1enc.c ret = ff_get_buffer(avctx, s->last_picture, 0); s 606 libavcodec/svq1enc.c if (!s->scratchbuf) { s 607 libavcodec/svq1enc.c s->scratchbuf = av_malloc_array(s->current_picture->linesize[0], 16 * 3); s 608 libavcodec/svq1enc.c if (!s->scratchbuf) s 612 libavcodec/svq1enc.c FFSWAP(AVFrame*, s->current_picture, s->last_picture); s 614 libavcodec/svq1enc.c init_put_bits(&s->pb, pkt->data, pkt->size); s 617 libavcodec/svq1enc.c s->pict_type = AV_PICTURE_TYPE_P; s 619 libavcodec/svq1enc.c s->pict_type = AV_PICTURE_TYPE_I; s 620 libavcodec/svq1enc.c s->quality = pict->quality; s 624 libavcodec/svq1enc.c avctx->coded_frame->pict_type = s->pict_type; s 625 libavcodec/svq1enc.c avctx->coded_frame->key_frame = s->pict_type == AV_PICTURE_TYPE_I; s 629 libavcodec/svq1enc.c ff_side_data_set_encoder_stats(pkt, pict->quality, NULL, 0, s->pict_type); s 631 libavcodec/svq1enc.c svq1_write_header(s, s->pict_type); s 633 libavcodec/svq1enc.c int ret = svq1_encode_plane(s, i, s 635 libavcodec/svq1enc.c s->last_picture->data[i], s 636 libavcodec/svq1enc.c s->current_picture->data[i], s 637 libavcodec/svq1enc.c s->frame_width / (i ? 4 : 1), s 638 libavcodec/svq1enc.c s->frame_height / (i ? 4 : 1), s 640 libavcodec/svq1enc.c s->current_picture->linesize[i]); s 645 libavcodec/svq1enc.c av_freep(&s->motion_val8[j]); s 646 libavcodec/svq1enc.c av_freep(&s->motion_val16[j]); s 648 libavcodec/svq1enc.c av_freep(&s->scratchbuf); s 654 libavcodec/svq1enc.c while (put_bits_count(&s->pb) & 31) s 655 libavcodec/svq1enc.c put_bits(&s->pb, 1, 0); s 657 libavcodec/svq1enc.c flush_put_bits(&s->pb); s 659 libavcodec/svq1enc.c pkt->size = put_bits_count(&s->pb) / 8; s 660 libavcodec/svq1enc.c if (s->pict_type == AV_PICTURE_TYPE_I) s 361 libavcodec/svq3.c svq3_fetch_diagonal_mv(const SVQ3Context *s, const int16_t **C, s 364 libavcodec/svq3.c const int topright_ref = s->ref_cache[list][i - 8 + part_width]; s 367 libavcodec/svq3.c *C = s->mv_cache[list][i - 8 + part_width]; s 370 libavcodec/svq3.c *C = s->mv_cache[list][i - 8 - 1]; s 371 libavcodec/svq3.c return s->ref_cache[list][i - 8 - 1]; s 382 libavcodec/svq3.c static av_always_inline void svq3_pred_motion(const SVQ3Context *s, int n, s 387 libavcodec/svq3.c const int top_ref = s->ref_cache[list][index8 - 8]; s 388 libavcodec/svq3.c const int left_ref = s->ref_cache[list][index8 - 1]; s 389 libavcodec/svq3.c const int16_t *const A = s->mv_cache[list][index8 - 1]; s 390 libavcodec/svq3.c const int16_t *const B = s->mv_cache[list][index8 - 8]; s 402 libavcodec/svq3.c diagonal_ref = svq3_fetch_diagonal_mv(s, &C, index8, list, part_width); s 431 libavcodec/svq3.c static inline void svq3_mc_dir_part(SVQ3Context *s, s 436 libavcodec/svq3.c const SVQ3Frame *pic = (dir == 0) ? s->last_pic : s->next_pic; s 440 libavcodec/svq3.c int linesize = s->cur_pic->f->linesize[0]; s 441 libavcodec/svq3.c int uvlinesize = s->cur_pic->f->linesize[1]; s 446 libavcodec/svq3.c if (mx < 0 || mx >= s->h_edge_pos - width - 1 || s 447 libavcodec/svq3.c my < 0 || my >= s->v_edge_pos - height - 1) { s 449 libavcodec/svq3.c mx = av_clip(mx, -16, s->h_edge_pos - width + 15); s 450 libavcodec/svq3.c my = av_clip(my, -16, s->v_edge_pos - height + 15); s 454 libavcodec/svq3.c dest = s->cur_pic->f->data[0] + x + y * linesize; s 458 libavcodec/svq3.c s->vdsp.emulated_edge_mc(s->edge_emu_buffer, src, s 461 libavcodec/svq3.c mx, my, s->h_edge_pos, s->v_edge_pos); s 462 libavcodec/svq3.c src = s->edge_emu_buffer; s 465 libavcodec/svq3.c (avg ? s->tdsp.avg_tpel_pixels_tab s 466 libavcodec/svq3.c : s->tdsp.put_tpel_pixels_tab)[dxy](dest, src, linesize, s 469 libavcodec/svq3.c (avg ? s->hdsp.avg_pixels_tab s 470 libavcodec/svq3.c : s->hdsp.put_pixels_tab)[blocksize][dxy](dest, src, linesize, s 473 libavcodec/svq3.c if (!(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 481 libavcodec/svq3.c dest = s->cur_pic->f->data[i] + (x >> 1) + (y >> 1) * uvlinesize; s 485 libavcodec/svq3.c s->vdsp.emulated_edge_mc(s->edge_emu_buffer, src, s 488 libavcodec/svq3.c mx, my, (s->h_edge_pos >> 1), s 489 libavcodec/svq3.c s->v_edge_pos >> 1); s 490 libavcodec/svq3.c src = s->edge_emu_buffer; s 493 libavcodec/svq3.c (avg ? s->tdsp.avg_tpel_pixels_tab s 494 libavcodec/svq3.c : s->tdsp.put_tpel_pixels_tab)[dxy](dest, src, s 498 libavcodec/svq3.c (avg ? s->hdsp.avg_pixels_tab s 499 libavcodec/svq3.c : s->hdsp.put_pixels_tab)[blocksize][dxy](dest, src, s 506 libavcodec/svq3.c static inline int svq3_mc_dir(SVQ3Context *s, int size, int mode, s 513 libavcodec/svq3.c const int h_edge_pos = 6 * (s->h_edge_pos - part_width) - extra_width; s 514 libavcodec/svq3.c const int v_edge_pos = 6 * (s->v_edge_pos - part_height) - extra_width; s 518 libavcodec/svq3.c const int b_xy = (4 * s->mb_x + (j >> 2)) + s 519 libavcodec/svq3.c (4 * s->mb_y + (i >> 2)) * s->b_stride; s 521 libavcodec/svq3.c x = 16 * s->mb_x + j; s 522 libavcodec/svq3.c y = 16 * s->mb_y + i; s 527 libavcodec/svq3.c svq3_pred_motion(s, k, part_width >> 2, dir, 1, &mx, &my); s 529 libavcodec/svq3.c mx = s->next_pic->motion_val[0][b_xy][0] * 2; s 530 libavcodec/svq3.c my = s->next_pic->motion_val[0][b_xy][1] * 2; s 533 libavcodec/svq3.c mx = mx * s->frame_num_offset / s 534 libavcodec/svq3.c s->prev_frame_num_offset + 1 >> 1; s 535 libavcodec/svq3.c my = my * s->frame_num_offset / s 536 libavcodec/svq3.c s->prev_frame_num_offset + 1 >> 1; s 538 libavcodec/svq3.c mx = mx * (s->frame_num_offset - s->prev_frame_num_offset) / s 539 libavcodec/svq3.c s->prev_frame_num_offset + 1 >> 1; s 540 libavcodec/svq3.c my = my * (s->frame_num_offset - s->prev_frame_num_offset) / s 541 libavcodec/svq3.c s->prev_frame_num_offset + 1 >> 1; s 553 libavcodec/svq3.c dy = get_interleaved_se_golomb(&s->gb_slice); s 554 libavcodec/svq3.c dx = get_interleaved_se_golomb(&s->gb_slice); s 557 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, "invalid MV vlc\n"); s 571 libavcodec/svq3.c svq3_mc_dir_part(s, x, y, part_width, part_height, s 580 libavcodec/svq3.c svq3_mc_dir_part(s, x, y, part_width, part_height, s 588 libavcodec/svq3.c svq3_mc_dir_part(s, x, y, part_width, part_height, s 599 libavcodec/svq3.c AV_WN32A(s->mv_cache[dir][scan8[k] + 1 * 8], mv); s 602 libavcodec/svq3.c AV_WN32A(s->mv_cache[dir][scan8[k] + 1 + 1 * 8], mv); s 605 libavcodec/svq3.c AV_WN32A(s->mv_cache[dir][scan8[k] + 1], mv); s 607 libavcodec/svq3.c AV_WN32A(s->mv_cache[dir][scan8[k]], mv); s 611 libavcodec/svq3.c fill_rectangle(s->cur_pic->motion_val[dir][b_xy], s 612 libavcodec/svq3.c part_width >> 2, part_height >> 2, s->b_stride, s 619 libavcodec/svq3.c static av_always_inline void hl_decode_mb_idct_luma(SVQ3Context *s, s 626 libavcodec/svq3.c if (s->non_zero_count_cache[scan8[i]] || s->mb[i * 16]) { s 628 libavcodec/svq3.c svq3_add_idct_c(ptr, s->mb + i * 16, linesize, s 629 libavcodec/svq3.c s->qscale, IS_INTRA(mb_type) ? 1 : 0); s 634 libavcodec/svq3.c static av_always_inline void hl_decode_mb_predict_luma(SVQ3Context *s, s 641 libavcodec/svq3.c int qscale = s->qscale; s 646 libavcodec/svq3.c const int dir = s->intra4x4_pred_mode_cache[scan8[i]]; s 651 libavcodec/svq3.c const int topright_avail = (s->topright_samples_available << i) & 0x8000; s 652 libavcodec/svq3.c av_assert2(s->mb_y || linesize <= block_offset[i]); s 661 libavcodec/svq3.c s->hpc.pred4x4[dir](ptr, topright, linesize); s 662 libavcodec/svq3.c nnz = s->non_zero_count_cache[scan8[i]]; s 664 libavcodec/svq3.c svq3_add_idct_c(ptr, s->mb + i * 16, linesize, qscale, 0); s 668 libavcodec/svq3.c s->hpc.pred16x16[s->intra16x16_pred_mode](dest_y, linesize); s 669 libavcodec/svq3.c svq3_luma_dc_dequant_idct_c(s->mb, s->mb_luma_dc[0], qscale); s 673 libavcodec/svq3.c static void hl_decode_mb(SVQ3Context *s) s 675 libavcodec/svq3.c const int mb_x = s->mb_x; s 676 libavcodec/svq3.c const int mb_y = s->mb_y; s 677 libavcodec/svq3.c const int mb_xy = s->mb_xy; s 678 libavcodec/svq3.c const int mb_type = s->cur_pic->mb_type[mb_xy]; s 682 libavcodec/svq3.c const int *block_offset = &s->block_offset[0]; s 685 libavcodec/svq3.c linesize = s->cur_pic->f->linesize[0]; s 686 libavcodec/svq3.c uvlinesize = s->cur_pic->f->linesize[1]; s 688 libavcodec/svq3.c dest_y = s->cur_pic->f->data[0] + (mb_x + mb_y * linesize) * 16; s 689 libavcodec/svq3.c dest_cb = s->cur_pic->f->data[1] + mb_x * 8 + mb_y * uvlinesize * block_h; s 690 libavcodec/svq3.c dest_cr = s->cur_pic->f->data[2] + mb_x * 8 + mb_y * uvlinesize * block_h; s 692 libavcodec/svq3.c s->vdsp.prefetch(dest_y + (s->mb_x & 3) * 4 * linesize + 64, linesize, 4); s 693 libavcodec/svq3.c s->vdsp.prefetch(dest_cb + (s->mb_x & 7) * uvlinesize + 64, dest_cr - dest_cb, 2); s 696 libavcodec/svq3.c s->hpc.pred8x8[s->chroma_pred_mode](dest_cb, uvlinesize); s 697 libavcodec/svq3.c s->hpc.pred8x8[s->chroma_pred_mode](dest_cr, uvlinesize); s 699 libavcodec/svq3.c hl_decode_mb_predict_luma(s, mb_type, block_offset, linesize, dest_y); s 702 libavcodec/svq3.c hl_decode_mb_idct_luma(s, mb_type, block_offset, linesize, dest_y); s 704 libavcodec/svq3.c if (s->cbp & 0x30) { s 706 libavcodec/svq3.c s->h264dsp.h264_chroma_dc_dequant_idct(s->mb + 16 * 16 * 1, s 707 libavcodec/svq3.c s->dequant4_coeff[4][0]); s 708 libavcodec/svq3.c s->h264dsp.h264_chroma_dc_dequant_idct(s->mb + 16 * 16 * 2, s 709 libavcodec/svq3.c s->dequant4_coeff[4][0]); s 712 libavcodec/svq3.c if (s->non_zero_count_cache[scan8[i]] || s->mb[i * 16]) { s 714 libavcodec/svq3.c svq3_add_idct_c(ptr, s->mb + i * 16, s 715 libavcodec/svq3.c uvlinesize, ff_h264_chroma_qp[0][s->qscale + 12] - 12, 2); s 721 libavcodec/svq3.c static int svq3_decode_mb(SVQ3Context *s, unsigned int mb_type) s 727 libavcodec/svq3.c const int mb_xy = s->mb_xy; s 728 libavcodec/svq3.c const int b_xy = 4 * s->mb_x + 4 * s->mb_y * s->b_stride; s 730 libavcodec/svq3.c s->top_samples_available = (s->mb_y == 0) ? 0x33FF : 0xFFFF; s 731 libavcodec/svq3.c s->left_samples_available = (s->mb_x == 0) ? 0x5F5F : 0xFFFF; s 732 libavcodec/svq3.c s->topright_samples_available = 0xFFFF; s 735 libavcodec/svq3.c if (s->pict_type == AV_PICTURE_TYPE_P || s 736 libavcodec/svq3.c s->next_pic->mb_type[mb_xy] == -1) { s 737 libavcodec/svq3.c svq3_mc_dir_part(s, 16 * s->mb_x, 16 * s->mb_y, 16, 16, s 740 libavcodec/svq3.c if (s->pict_type == AV_PICTURE_TYPE_B) s 741 libavcodec/svq3.c svq3_mc_dir_part(s, 16 * s->mb_x, 16 * s->mb_y, 16, 16, s 746 libavcodec/svq3.c mb_type = FFMIN(s->next_pic->mb_type[mb_xy], 6); s 747 libavcodec/svq3.c if (svq3_mc_dir(s, mb_type, PREDICT_MODE, 0, 0) < 0) s 749 libavcodec/svq3.c if (svq3_mc_dir(s, mb_type, PREDICT_MODE, 1, 1) < 0) s 755 libavcodec/svq3.c if (s->thirdpel_flag && s->halfpel_flag == !get_bits1(&s->gb_slice)) s 757 libavcodec/svq3.c else if (s->halfpel_flag && s 758 libavcodec/svq3.c s->thirdpel_flag == !get_bits1(&s->gb_slice)) s 773 libavcodec/svq3.c if (s->mb_x > 0 && s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - 1] + 6] != -1) { s 775 libavcodec/svq3.c AV_COPY32(s->mv_cache[m][scan8[0] - 1 + i * 8], s 776 libavcodec/svq3.c s->cur_pic->motion_val[m][b_xy - 1 + i * s->b_stride]); s 779 libavcodec/svq3.c AV_ZERO32(s->mv_cache[m][scan8[0] - 1 + i * 8]); s 781 libavcodec/svq3.c if (s->mb_y > 0) { s 782 libavcodec/svq3.c memcpy(s->mv_cache[m][scan8[0] - 1 * 8], s 783 libavcodec/svq3.c s->cur_pic->motion_val[m][b_xy - s->b_stride], s 785 libavcodec/svq3.c memset(&s->ref_cache[m][scan8[0] - 1 * 8], s 786 libavcodec/svq3.c (s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - s->mb_stride]] == -1) ? PART_NOT_AVAILABLE : 1, 4); s 788 libavcodec/svq3.c if (s->mb_x < s->mb_width - 1) { s 789 libavcodec/svq3.c AV_COPY32(s->mv_cache[m][scan8[0] + 4 - 1 * 8], s 790 libavcodec/svq3.c s->cur_pic->motion_val[m][b_xy - s->b_stride + 4]); s 791 libavcodec/svq3.c s->ref_cache[m][scan8[0] + 4 - 1 * 8] = s 792 libavcodec/svq3.c (s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - s->mb_stride + 1] + 6] == -1 || s 793 libavcodec/svq3.c s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - s->mb_stride]] == -1) ? PART_NOT_AVAILABLE : 1; s 795 libavcodec/svq3.c s->ref_cache[m][scan8[0] + 4 - 1 * 8] = PART_NOT_AVAILABLE; s 796 libavcodec/svq3.c if (s->mb_x > 0) { s 797 libavcodec/svq3.c AV_COPY32(s->mv_cache[m][scan8[0] - 1 - 1 * 8], s 798 libavcodec/svq3.c s->cur_pic->motion_val[m][b_xy - s->b_stride - 1]); s 799 libavcodec/svq3.c s->ref_cache[m][scan8[0] - 1 - 1 * 8] = s 800 libavcodec/svq3.c (s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - s->mb_stride - 1] + 3] == -1) ? PART_NOT_AVAILABLE : 1; s 802 libavcodec/svq3.c s->ref_cache[m][scan8[0] - 1 - 1 * 8] = PART_NOT_AVAILABLE; s 804 libavcodec/svq3.c memset(&s->ref_cache[m][scan8[0] - 1 * 8 - 1], s 807 libavcodec/svq3.c if (s->pict_type != AV_PICTURE_TYPE_B) s 812 libavcodec/svq3.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 813 libavcodec/svq3.c if (svq3_mc_dir(s, mb_type - 1, mode, 0, 0) < 0) s 817 libavcodec/svq3.c if (svq3_mc_dir(s, 0, mode, 0, 0) < 0) s 821 libavcodec/svq3.c memset(s->cur_pic->motion_val[0][b_xy + i * s->b_stride], s 825 libavcodec/svq3.c if (svq3_mc_dir(s, 0, mode, 1, mb_type == 3) < 0) s 829 libavcodec/svq3.c memset(s->cur_pic->motion_val[1][b_xy + i * s->b_stride], s 836 libavcodec/svq3.c int8_t *i4x4 = s->intra4x4_pred_mode + s->mb2br_xy[s->mb_xy]; s 837 libavcodec/svq3.c int8_t *i4x4_cache = s->intra4x4_pred_mode_cache; s 839 libavcodec/svq3.c memset(s->intra4x4_pred_mode_cache, -1, 8 * 5 * sizeof(int8_t)); s 842 libavcodec/svq3.c if (s->mb_x > 0) { s 844 libavcodec/svq3.c s->intra4x4_pred_mode_cache[scan8[0] - 1 + i * 8] = s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - 1] + 6 - i]; s 845 libavcodec/svq3.c if (s->intra4x4_pred_mode_cache[scan8[0] - 1] == -1) s 846 libavcodec/svq3.c s->left_samples_available = 0x5F5F; s 848 libavcodec/svq3.c if (s->mb_y > 0) { s 849 libavcodec/svq3.c s->intra4x4_pred_mode_cache[4 + 8 * 0] = s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - s->mb_stride] + 0]; s 850 libavcodec/svq3.c s->intra4x4_pred_mode_cache[5 + 8 * 0] = s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - s->mb_stride] + 1]; s 851 libavcodec/svq3.c s->intra4x4_pred_mode_cache[6 + 8 * 0] = s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - s->mb_stride] + 2]; s 852 libavcodec/svq3.c s->intra4x4_pred_mode_cache[7 + 8 * 0] = s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - s->mb_stride] + 3]; s 854 libavcodec/svq3.c if (s->intra4x4_pred_mode_cache[4 + 8 * 0] == -1) s 855 libavcodec/svq3.c s->top_samples_available = 0x33FF; s 860 libavcodec/svq3.c vlc = get_interleaved_ue_golomb(&s->gb_slice); s 863 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, s 868 libavcodec/svq3.c left = &s->intra4x4_pred_mode_cache[scan8[i] - 1]; s 869 libavcodec/svq3.c top = &s->intra4x4_pred_mode_cache[scan8[i] - 8]; s 875 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, "weird prediction\n"); s 881 libavcodec/svq3.c memset(&s->intra4x4_pred_mode_cache[scan8[0] + 8 * i], DC_PRED, 4); s 890 libavcodec/svq3.c ff_h264_check_intra4x4_pred_mode(s->intra4x4_pred_mode_cache, s 891 libavcodec/svq3.c s->avctx, s->top_samples_available, s 892 libavcodec/svq3.c s->left_samples_available); s 894 libavcodec/svq3.c s->top_samples_available = (s->mb_y == 0) ? 0x33FF : 0xFFFF; s 895 libavcodec/svq3.c s->left_samples_available = (s->mb_x == 0) ? 0x5F5F : 0xFFFF; s 898 libavcodec/svq3.c memset(&s->intra4x4_pred_mode_cache[scan8[0] + 8 * i], DC_128_PRED, 4); s 900 libavcodec/svq3.c s->top_samples_available = 0x33FF; s 901 libavcodec/svq3.c s->left_samples_available = 0x5F5F; s 909 libavcodec/svq3.c if ((s->intra16x16_pred_mode = ff_h264_check_intra_pred_mode(s->avctx, s->top_samples_available, s 910 libavcodec/svq3.c s->left_samples_available, dir, 0)) < 0) { s 911 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, "ff_h264_check_intra_pred_mode < 0\n"); s 912 libavcodec/svq3.c return s->intra16x16_pred_mode; s 919 libavcodec/svq3.c if (!IS_INTER(mb_type) && s->pict_type != AV_PICTURE_TYPE_I) { s 921 libavcodec/svq3.c memset(s->cur_pic->motion_val[0][b_xy + i * s->b_stride], s 923 libavcodec/svq3.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 925 libavcodec/svq3.c memset(s->cur_pic->motion_val[1][b_xy + i * s->b_stride], s 930 libavcodec/svq3.c memset(s->intra4x4_pred_mode + s->mb2br_xy[mb_xy], DC_PRED, 8); s 932 libavcodec/svq3.c if (!IS_SKIP(mb_type) || s->pict_type == AV_PICTURE_TYPE_B) { s 933 libavcodec/svq3.c memset(s->non_zero_count_cache + 8, 0, 14 * 8 * sizeof(uint8_t)); s 937 libavcodec/svq3.c (!IS_SKIP(mb_type) || s->pict_type == AV_PICTURE_TYPE_B)) { s 938 libavcodec/svq3.c if ((vlc = get_interleaved_ue_golomb(&s->gb_slice)) >= 48U){ s 939 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, "cbp_vlc=%"PRIu32"\n", vlc); s 947 libavcodec/svq3.c (s->pict_type != AV_PICTURE_TYPE_I && s->adaptive_quant && cbp)) { s 948 libavcodec/svq3.c s->qscale += get_interleaved_se_golomb(&s->gb_slice); s 950 libavcodec/svq3.c if (s->qscale > 31u) { s 951 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, "qscale:%d\n", s->qscale); s 956 libavcodec/svq3.c AV_ZERO128(s->mb_luma_dc[0] + 0); s 957 libavcodec/svq3.c AV_ZERO128(s->mb_luma_dc[0] + 8); s 958 libavcodec/svq3.c if (svq3_decode_block(&s->gb_slice, s->mb_luma_dc[0], 0, 1)) { s 959 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, s 967 libavcodec/svq3.c const int type = ((s->qscale < 24 && IS_INTRA4x4(mb_type)) ? 2 : 1); s 975 libavcodec/svq3.c s->non_zero_count_cache[scan8[k]] = 1; s 977 libavcodec/svq3.c if (svq3_decode_block(&s->gb_slice, &s->mb[16 * k], index, type)) { s 978 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, s 987 libavcodec/svq3.c if (svq3_decode_block(&s->gb_slice, &s->mb[16 * 16 * i], 0, 3)) { s 988 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, s 997 libavcodec/svq3.c s->non_zero_count_cache[scan8[k]] = 1; s 999 libavcodec/svq3.c if (svq3_decode_block(&s->gb_slice, &s->mb[16 * k], 1, 1)) { s 1000 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, s 1010 libavcodec/svq3.c s->cbp = cbp; s 1011 libavcodec/svq3.c s->cur_pic->mb_type[mb_xy] = mb_type; s 1014 libavcodec/svq3.c s->chroma_pred_mode = ff_h264_check_intra_pred_mode(s->avctx, s->top_samples_available, s 1015 libavcodec/svq3.c s->left_samples_available, DC_PRED8x8, 1); s 1022 libavcodec/svq3.c SVQ3Context *s = avctx->priv_data; s 1023 libavcodec/svq3.c const int mb_xy = s->mb_xy; s 1027 libavcodec/svq3.c header = get_bits(&s->gb, 8); s 1037 libavcodec/svq3.c slice_length = show_bits(&s->gb, 8 * length); s 1041 libavcodec/svq3.c skip_bits(&s->gb, 8); s 1043 libavcodec/svq3.c av_fast_malloc(&s->slice_buf, &s->slice_size, slice_bytes + AV_INPUT_BUFFER_PADDING_SIZE); s 1044 libavcodec/svq3.c if (!s->slice_buf) s 1047 libavcodec/svq3.c if (slice_bytes * 8LL > get_bits_left(&s->gb)) { s 1051 libavcodec/svq3.c memcpy(s->slice_buf, s->gb.buffer + s->gb.index / 8, slice_bytes); s 1053 libavcodec/svq3.c if (s->watermark_key) { s 1054 libavcodec/svq3.c uint32_t header = AV_RL32(&s->slice_buf[1]); s 1055 libavcodec/svq3.c AV_WL32(&s->slice_buf[1], header ^ s->watermark_key); s 1057 libavcodec/svq3.c init_get_bits(&s->gb_slice, s->slice_buf, slice_bits); s 1060 libavcodec/svq3.c memmove(s->slice_buf, &s->slice_buf[slice_length], length - 1); s 1062 libavcodec/svq3.c skip_bits_long(&s->gb, slice_bytes * 8); s 1065 libavcodec/svq3.c if ((slice_id = get_interleaved_ue_golomb(&s->gb_slice)) >= 3) { s 1066 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, "illegal slice type %u \n", slice_id); s 1070 libavcodec/svq3.c s->slice_type = ff_h264_golomb_to_pict_type[slice_id]; s 1073 libavcodec/svq3.c i = (s->mb_num < 64) ? 6 : (1 + av_log2(s->mb_num - 1)); s 1074 libavcodec/svq3.c get_bits(&s->gb_slice, i); s 1075 libavcodec/svq3.c } else if (get_bits1(&s->gb_slice)) { s 1076 libavcodec/svq3.c avpriv_report_missing_feature(s->avctx, "Media key encryption"); s 1080 libavcodec/svq3.c s->slice_num = get_bits(&s->gb_slice, 8); s 1081 libavcodec/svq3.c s->qscale = get_bits(&s->gb_slice, 5); s 1082 libavcodec/svq3.c s->adaptive_quant = get_bits1(&s->gb_slice); s 1085 libavcodec/svq3.c skip_bits1(&s->gb_slice); s 1087 libavcodec/svq3.c if (s->has_watermark) s 1088 libavcodec/svq3.c skip_bits1(&s->gb_slice); s 1090 libavcodec/svq3.c skip_bits1(&s->gb_slice); s 1091 libavcodec/svq3.c skip_bits(&s->gb_slice, 2); s 1093 libavcodec/svq3.c if (skip_1stop_8data_bits(&s->gb_slice) < 0) s 1097 libavcodec/svq3.c if (s->mb_x > 0) { s 1098 libavcodec/svq3.c memset(s->intra4x4_pred_mode + s->mb2br_xy[mb_xy - 1] + 3, s 1100 libavcodec/svq3.c memset(s->intra4x4_pred_mode + s->mb2br_xy[mb_xy - s->mb_x], s 1101 libavcodec/svq3.c -1, 8 * sizeof(int8_t) * s->mb_x); s 1103 libavcodec/svq3.c if (s->mb_y > 0) { s 1104 libavcodec/svq3.c memset(s->intra4x4_pred_mode + s->mb2br_xy[mb_xy - s->mb_stride], s 1105 libavcodec/svq3.c -1, 8 * sizeof(int8_t) * (s->mb_width - s->mb_x)); s 1107 libavcodec/svq3.c if (s->mb_x > 0) s 1108 libavcodec/svq3.c s->intra4x4_pred_mode[s->mb2br_xy[mb_xy - s->mb_stride - 1] + 3] = -1; s 1114 libavcodec/svq3.c static void init_dequant4_coeff_table(SVQ3Context *s) s 1123 libavcodec/svq3.c s->dequant4_coeff[q][(x >> 2) | ((x << 2) & 0xF)] = s 1130 libavcodec/svq3.c SVQ3Context *s = avctx->priv_data; s 1138 libavcodec/svq3.c s->cur_pic = av_mallocz(sizeof(*s->cur_pic)); s 1139 libavcodec/svq3.c s->last_pic = av_mallocz(sizeof(*s->last_pic)); s 1140 libavcodec/svq3.c s->next_pic = av_mallocz(sizeof(*s->next_pic)); s 1141 libavcodec/svq3.c if (!s->next_pic || !s->last_pic || !s->cur_pic) { s 1146 libavcodec/svq3.c s->cur_pic->f = av_frame_alloc(); s 1147 libavcodec/svq3.c s->last_pic->f = av_frame_alloc(); s 1148 libavcodec/svq3.c s->next_pic->f = av_frame_alloc(); s 1149 libavcodec/svq3.c if (!s->cur_pic->f || !s->last_pic->f || !s->next_pic->f) s 1152 libavcodec/svq3.c ff_h264dsp_init(&s->h264dsp, 8, 1); s 1153 libavcodec/svq3.c ff_h264_pred_init(&s->hpc, AV_CODEC_ID_SVQ3, 8, 1); s 1154 libavcodec/svq3.c ff_videodsp_init(&s->vdsp, 8); s 1159 libavcodec/svq3.c ff_hpeldsp_init(&s->hdsp, avctx->flags); s 1160 libavcodec/svq3.c ff_tpeldsp_init(&s->tdsp); s 1165 libavcodec/svq3.c s->avctx = avctx; s 1166 libavcodec/svq3.c s->halfpel_flag = 1; s 1167 libavcodec/svq3.c s->thirdpel_flag = 1; s 1168 libavcodec/svq3.c s->has_watermark = 0; s 1237 libavcodec/svq3.c s->halfpel_flag = get_bits1(&gb); s 1238 libavcodec/svq3.c s->thirdpel_flag = get_bits1(&gb); s 1246 libavcodec/svq3.c s->low_delay = get_bits1(&gb); s 1259 libavcodec/svq3.c s->has_watermark = get_bits1(&gb); s 1260 libavcodec/svq3.c avctx->has_b_frames = !s->low_delay; s 1261 libavcodec/svq3.c if (s->has_watermark) { s 1298 libavcodec/svq3.c s->watermark_key = av_bswap16(av_crc(av_crc_get_table(AV_CRC_16_CCITT), 0, buf, buf_len)); s 1300 libavcodec/svq3.c s->watermark_key = s->watermark_key << 16 | s->watermark_key; s 1302 libavcodec/svq3.c "watermark key %#"PRIx32"\n", s->watermark_key); s 1313 libavcodec/svq3.c s->mb_width = (avctx->width + 15) / 16; s 1314 libavcodec/svq3.c s->mb_height = (avctx->height + 15) / 16; s 1315 libavcodec/svq3.c s->mb_stride = s->mb_width + 1; s 1316 libavcodec/svq3.c s->mb_num = s->mb_width * s->mb_height; s 1317 libavcodec/svq3.c s->b_stride = 4 * s->mb_width; s 1318 libavcodec/svq3.c s->h_edge_pos = s->mb_width * 16; s 1319 libavcodec/svq3.c s->v_edge_pos = s->mb_height * 16; s 1321 libavcodec/svq3.c s->intra4x4_pred_mode = av_mallocz(s->mb_stride * 2 * 8); s 1322 libavcodec/svq3.c if (!s->intra4x4_pred_mode) s 1325 libavcodec/svq3.c s->mb2br_xy = av_mallocz(s->mb_stride * (s->mb_height + 1) * s 1326 libavcodec/svq3.c sizeof(*s->mb2br_xy)); s 1327 libavcodec/svq3.c if (!s->mb2br_xy) s 1330 libavcodec/svq3.c for (y = 0; y < s->mb_height; y++) s 1331 libavcodec/svq3.c for (x = 0; x < s->mb_width; x++) { s 1332 libavcodec/svq3.c const int mb_xy = x + y * s->mb_stride; s 1334 libavcodec/svq3.c s->mb2br_xy[mb_xy] = 8 * (mb_xy % (2 * s->mb_stride)); s 1337 libavcodec/svq3.c init_dequant4_coeff_table(s); s 1359 libavcodec/svq3.c SVQ3Context *s = avctx->priv_data; s 1360 libavcodec/svq3.c const int big_mb_num = s->mb_stride * (s->mb_height + 1) + 1; s 1361 libavcodec/svq3.c const int mb_array_size = s->mb_stride * s->mb_height; s 1362 libavcodec/svq3.c const int b4_stride = s->mb_width * 4 + 1; s 1363 libavcodec/svq3.c const int b4_array_size = b4_stride * s->mb_height * 4; s 1369 libavcodec/svq3.c pic->mb_type_buf = av_buffer_allocz((big_mb_num + s->mb_stride) * sizeof(uint32_t)); s 1372 libavcodec/svq3.c pic->mb_type = (uint32_t*)pic->mb_type_buf->data + 2 * s->mb_stride + 1; s 1388 libavcodec/svq3.c (s->pict_type != AV_PICTURE_TYPE_B) ? s 1393 libavcodec/svq3.c if (!s->edge_emu_buffer) { s 1394 libavcodec/svq3.c s->edge_emu_buffer = av_mallocz_array(pic->f->linesize[0], 17); s 1395 libavcodec/svq3.c if (!s->edge_emu_buffer) s 1408 libavcodec/svq3.c SVQ3Context *s = avctx->priv_data; s 1416 libavcodec/svq3.c if (s->next_pic->f->data[0] && !s->low_delay && !s->last_frame_output) { s 1417 libavcodec/svq3.c ret = av_frame_ref(data, s->next_pic->f); s 1420 libavcodec/svq3.c s->last_frame_output = 1; s 1426 libavcodec/svq3.c s->mb_x = s->mb_y = s->mb_xy = 0; s 1428 libavcodec/svq3.c if (s->watermark_key) { s 1429 libavcodec/svq3.c av_fast_padded_malloc(&s->buf, &s->buf_size, buf_size); s 1430 libavcodec/svq3.c if (!s->buf) s 1432 libavcodec/svq3.c memcpy(s->buf, avpkt->data, buf_size); s 1433 libavcodec/svq3.c buf = s->buf; s 1438 libavcodec/svq3.c ret = init_get_bits(&s->gb, buf, 8 * buf_size); s 1445 libavcodec/svq3.c s->pict_type = s->slice_type; s 1447 libavcodec/svq3.c if (s->pict_type != AV_PICTURE_TYPE_B) s 1448 libavcodec/svq3.c FFSWAP(SVQ3Frame*, s->next_pic, s->last_pic); s 1450 libavcodec/svq3.c av_frame_unref(s->cur_pic->f); s 1453 libavcodec/svq3.c s->cur_pic->f->pict_type = s->pict_type; s 1454 libavcodec/svq3.c s->cur_pic->f->key_frame = (s->pict_type == AV_PICTURE_TYPE_I); s 1456 libavcodec/svq3.c ret = get_buffer(avctx, s->cur_pic); s 1461 libavcodec/svq3.c s->block_offset[i] = (4 * ((scan8[i] - scan8[0]) & 7)) + 4 * s->cur_pic->f->linesize[0] * ((scan8[i] - scan8[0]) >> 3); s 1462 libavcodec/svq3.c s->block_offset[48 + i] = (4 * ((scan8[i] - scan8[0]) & 7)) + 8 * s->cur_pic->f->linesize[0] * ((scan8[i] - scan8[0]) >> 3); s 1465 libavcodec/svq3.c s->block_offset[16 + i] = s 1466 libavcodec/svq3.c s->block_offset[32 + i] = (4 * ((scan8[i] - scan8[0]) & 7)) + 4 * s->cur_pic->f->linesize[1] * ((scan8[i] - scan8[0]) >> 3); s 1467 libavcodec/svq3.c s->block_offset[48 + 16 + i] = s 1468 libavcodec/svq3.c s->block_offset[48 + 32 + i] = (4 * ((scan8[i] - scan8[0]) & 7)) + 8 * s->cur_pic->f->linesize[1] * ((scan8[i] - scan8[0]) >> 3); s 1471 libavcodec/svq3.c if (s->pict_type != AV_PICTURE_TYPE_I) { s 1472 libavcodec/svq3.c if (!s->last_pic->f->data[0]) { s 1474 libavcodec/svq3.c av_frame_unref(s->last_pic->f); s 1475 libavcodec/svq3.c ret = get_buffer(avctx, s->last_pic); s 1478 libavcodec/svq3.c memset(s->last_pic->f->data[0], 0, avctx->height * s->last_pic->f->linesize[0]); s 1479 libavcodec/svq3.c memset(s->last_pic->f->data[1], 0x80, (avctx->height / 2) * s 1480 libavcodec/svq3.c s->last_pic->f->linesize[1]); s 1481 libavcodec/svq3.c memset(s->last_pic->f->data[2], 0x80, (avctx->height / 2) * s 1482 libavcodec/svq3.c s->last_pic->f->linesize[2]); s 1485 libavcodec/svq3.c if (s->pict_type == AV_PICTURE_TYPE_B && !s->next_pic->f->data[0]) { s 1487 libavcodec/svq3.c av_frame_unref(s->next_pic->f); s 1488 libavcodec/svq3.c ret = get_buffer(avctx, s->next_pic); s 1491 libavcodec/svq3.c memset(s->next_pic->f->data[0], 0, avctx->height * s->next_pic->f->linesize[0]); s 1492 libavcodec/svq3.c memset(s->next_pic->f->data[1], 0x80, (avctx->height / 2) * s 1493 libavcodec/svq3.c s->next_pic->f->linesize[1]); s 1494 libavcodec/svq3.c memset(s->next_pic->f->data[2], 0x80, (avctx->height / 2) * s 1495 libavcodec/svq3.c s->next_pic->f->linesize[2]); s 1500 libavcodec/svq3.c av_log(s->avctx, AV_LOG_DEBUG, s 1502 libavcodec/svq3.c av_get_picture_type_char(s->pict_type), s 1503 libavcodec/svq3.c s->halfpel_flag, s->thirdpel_flag, s 1504 libavcodec/svq3.c s->adaptive_quant, s->qscale, s->slice_num); s 1506 libavcodec/svq3.c if (avctx->skip_frame >= AVDISCARD_NONREF && s->pict_type == AV_PICTURE_TYPE_B || s 1507 libavcodec/svq3.c avctx->skip_frame >= AVDISCARD_NONKEY && s->pict_type != AV_PICTURE_TYPE_I || s 1511 libavcodec/svq3.c if (s->next_p_frame_damaged) { s 1512 libavcodec/svq3.c if (s->pict_type == AV_PICTURE_TYPE_B) s 1515 libavcodec/svq3.c s->next_p_frame_damaged = 0; s 1518 libavcodec/svq3.c if (s->pict_type == AV_PICTURE_TYPE_B) { s 1519 libavcodec/svq3.c s->frame_num_offset = s->slice_num - s->prev_frame_num; s 1521 libavcodec/svq3.c if (s->frame_num_offset < 0) s 1522 libavcodec/svq3.c s->frame_num_offset += 256; s 1523 libavcodec/svq3.c if (s->frame_num_offset == 0 || s 1524 libavcodec/svq3.c s->frame_num_offset >= s->prev_frame_num_offset) { s 1525 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, "error in B-frame picture id\n"); s 1529 libavcodec/svq3.c s->prev_frame_num = s->frame_num; s 1530 libavcodec/svq3.c s->frame_num = s->slice_num; s 1531 libavcodec/svq3.c s->prev_frame_num_offset = s->frame_num - s->prev_frame_num; s 1533 libavcodec/svq3.c if (s->prev_frame_num_offset < 0) s 1534 libavcodec/svq3.c s->prev_frame_num_offset += 256; s 1542 libavcodec/svq3.c s->ref_cache[m][scan8[0] + 8 * i + j] = 1; s 1544 libavcodec/svq3.c s->ref_cache[m][scan8[0] + 8 * i + j] = PART_NOT_AVAILABLE; s 1548 libavcodec/svq3.c for (s->mb_y = 0; s->mb_y < s->mb_height; s->mb_y++) { s 1549 libavcodec/svq3.c for (s->mb_x = 0; s->mb_x < s->mb_width; s->mb_x++) { s 1551 libavcodec/svq3.c s->mb_xy = s->mb_x + s->mb_y * s->mb_stride; s 1553 libavcodec/svq3.c if ((get_bits_left(&s->gb_slice)) <= 7) { s 1554 libavcodec/svq3.c if (((get_bits_count(&s->gb_slice) & 7) == 0 || s 1555 libavcodec/svq3.c show_bits(&s->gb_slice, get_bits_left(&s->gb_slice) & 7) == 0)) { s 1560 libavcodec/svq3.c if (s->slice_type != s->pict_type) { s 1566 libavcodec/svq3.c mb_type = get_interleaved_ue_golomb(&s->gb_slice); s 1568 libavcodec/svq3.c if (s->pict_type == AV_PICTURE_TYPE_I) s 1570 libavcodec/svq3.c else if (s->pict_type == AV_PICTURE_TYPE_B && mb_type >= 4) s 1572 libavcodec/svq3.c if (mb_type > 33 || svq3_decode_mb(s, mb_type)) { s 1573 libavcodec/svq3.c av_log(s->avctx, AV_LOG_ERROR, s 1574 libavcodec/svq3.c "error while decoding MB %d %d\n", s->mb_x, s->mb_y); s 1578 libavcodec/svq3.c if (mb_type != 0 || s->cbp) s 1579 libavcodec/svq3.c hl_decode_mb(s); s 1581 libavcodec/svq3.c if (s->pict_type != AV_PICTURE_TYPE_B && !s->low_delay) s 1582 libavcodec/svq3.c s->cur_pic->mb_type[s->mb_x + s->mb_y * s->mb_stride] = s 1583 libavcodec/svq3.c (s->pict_type == AV_PICTURE_TYPE_P && mb_type < 8) ? (mb_type - 1) : -1; s 1586 libavcodec/svq3.c ff_draw_horiz_band(avctx, s->cur_pic->f, s 1587 libavcodec/svq3.c s->last_pic->f->data[0] ? s->last_pic->f : NULL, s 1588 libavcodec/svq3.c 16 * s->mb_y, 16, PICT_FRAME, 0, s 1589 libavcodec/svq3.c s->low_delay); s 1592 libavcodec/svq3.c left = buf_size*8 - get_bits_count(&s->gb_slice); s 1594 libavcodec/svq3.c if (s->mb_y != s->mb_height || s->mb_x != s->mb_width) { s 1595 libavcodec/svq3.c av_log(avctx, AV_LOG_INFO, "frame num %d incomplete pic x %d y %d left %d\n", avctx->frame_number, s->mb_y, s->mb_x, left); s 1604 libavcodec/svq3.c if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) s 1605 libavcodec/svq3.c ret = av_frame_ref(data, s->cur_pic->f); s 1606 libavcodec/svq3.c else if (s->last_pic->f->data[0]) s 1607 libavcodec/svq3.c ret = av_frame_ref(data, s->last_pic->f); s 1612 libavcodec/svq3.c if (s->last_pic->f->data[0] || s->low_delay) s 1615 libavcodec/svq3.c if (s->pict_type != AV_PICTURE_TYPE_B) { s 1616 libavcodec/svq3.c FFSWAP(SVQ3Frame*, s->cur_pic, s->next_pic); s 1618 libavcodec/svq3.c av_frame_unref(s->cur_pic->f); s 1626 libavcodec/svq3.c SVQ3Context *s = avctx->priv_data; s 1628 libavcodec/svq3.c free_picture(avctx, s->cur_pic); s 1629 libavcodec/svq3.c free_picture(avctx, s->next_pic); s 1630 libavcodec/svq3.c free_picture(avctx, s->last_pic); s 1631 libavcodec/svq3.c av_frame_free(&s->cur_pic->f); s 1632 libavcodec/svq3.c av_frame_free(&s->next_pic->f); s 1633 libavcodec/svq3.c av_frame_free(&s->last_pic->f); s 1634 libavcodec/svq3.c av_freep(&s->cur_pic); s 1635 libavcodec/svq3.c av_freep(&s->next_pic); s 1636 libavcodec/svq3.c av_freep(&s->last_pic); s 1637 libavcodec/svq3.c av_freep(&s->slice_buf); s 1638 libavcodec/svq3.c av_freep(&s->intra4x4_pred_mode); s 1639 libavcodec/svq3.c av_freep(&s->edge_emu_buffer); s 1640 libavcodec/svq3.c av_freep(&s->mb2br_xy); s 1643 libavcodec/svq3.c av_freep(&s->buf); s 1644 libavcodec/svq3.c s->buf_size = 0; s 31 libavcodec/tableprint_vlc.h #define av_malloc(s) NULL s 48 libavcodec/tableprint_vlc.h static void write_VLC_TYPE_array(const VLC_TYPE *p, int s) { s 49 libavcodec/tableprint_vlc.h REPLACE_DEFINE(VLC_TYPE)(p, s); s 93 libavcodec/tak.c void ff_tak_parse_streaminfo(TAKStreamInfo *s, GetBitContext *gb) s 98 libavcodec/tak.c s->codec = get_bits(gb, TAK_ENCODER_CODEC_BITS); s 102 libavcodec/tak.c s->samples = get_bits64(gb, TAK_SIZE_SAMPLES_NUM_BITS); s 104 libavcodec/tak.c s->data_type = get_bits(gb, TAK_FORMAT_DATA_TYPE_BITS); s 105 libavcodec/tak.c s->sample_rate = get_bits(gb, TAK_FORMAT_SAMPLE_RATE_BITS) + s 107 libavcodec/tak.c s->bps = get_bits(gb, TAK_FORMAT_BPS_BITS) + s 109 libavcodec/tak.c s->channels = get_bits(gb, TAK_FORMAT_CHANNEL_BITS) + s 115 libavcodec/tak.c for (i = 0; i < s->channels; i++) { s 124 libavcodec/tak.c s->ch_layout = channel_mask; s 125 libavcodec/tak.c s->frame_samples = tak_get_nb_samples(s->sample_rate, frame_type); s 128 libavcodec/tak.c int avpriv_tak_parse_streaminfo(TAKStreamInfo *s, const uint8_t *buf, int size) s 136 libavcodec/tak.c ff_tak_parse_streaminfo(s, &gb); s 151 libavcodec/tak.h int avpriv_tak_parse_streaminfo(TAKStreamInfo *s, const uint8_t *buf, int size); s 153 libavcodec/tak.h void ff_tak_parse_streaminfo(TAKStreamInfo *s, GetBitContext *gb); s 165 libavcodec/tak.h TAKStreamInfo *s, int log_level_offset); s 37 libavcodec/tak_parser.c static int tak_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 41 libavcodec/tak_parser.c TAKParseContext *t = s->priv_data; s 52 libavcodec/tak_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 57 libavcodec/tak_parser.c s->duration = t->ti.last_frame_samples ? t->ti.last_frame_samples s 89 libavcodec/tak_parser.c s->duration = t->ti.last_frame_samples ? s 92 libavcodec/tak_parser.c s->key_frame = !!(t->ti.flags & TAK_FRAME_FLAG_HAS_INFO); s 167 libavcodec/takdec.c TAKDecContext *s = avctx->priv_data; s 179 libavcodec/takdec.c s->uval = FFALIGN(avctx->sample_rate + 511LL >> 9, 4) << shift; s 180 libavcodec/takdec.c s->subframe_scale = FFALIGN(avctx->sample_rate + 511LL >> 9, 4) << 1; s 185 libavcodec/takdec.c TAKDecContext *s = avctx->priv_data; s 187 libavcodec/takdec.c ff_audiodsp_init(&s->adsp); s 188 libavcodec/takdec.c ff_takdsp_init(&s->tdsp); s 190 libavcodec/takdec.c s->avctx = avctx; s 254 libavcodec/takdec.c static int decode_segment(TAKDecContext *s, int8_t mode, int32_t *decoded, int len) s 257 libavcodec/takdec.c GetBitContext *gb = &s->gb; s 298 libavcodec/takdec.c static int decode_residues(TAKDecContext *s, int32_t *decoded, int length) s 300 libavcodec/takdec.c GetBitContext *gb = &s->gb; s 303 libavcodec/takdec.c if (length > s->nb_samples) s 309 libavcodec/takdec.c wlength = length / s->uval; s 311 libavcodec/takdec.c rval = length - (wlength * s->uval); s 313 libavcodec/takdec.c if (rval < s->uval / 2) s 314 libavcodec/takdec.c rval += s->uval; s 321 libavcodec/takdec.c s->coding_mode[0] = mode = get_bits(gb, 6); s 345 libavcodec/takdec.c s->coding_mode[i] = mode; s 352 libavcodec/takdec.c mode = s->coding_mode[i]; s 357 libavcodec/takdec.c len += s->uval; s 362 libavcodec/takdec.c } while (s->coding_mode[i] == mode); s 364 libavcodec/takdec.c if ((ret = decode_segment(s, mode, decoded, len)) < 0) s 370 libavcodec/takdec.c if ((ret = decode_segment(s, mode, decoded, length)) < 0) s 385 libavcodec/takdec.c static int decode_subframe(TAKDecContext *s, int32_t *decoded, s 388 libavcodec/takdec.c GetBitContext *gb = &s->gb; s 394 libavcodec/takdec.c return decode_residues(s, decoded, subframe_size); s 417 libavcodec/takdec.c if ((ret = decode_residues(s, decoded, filter_order)) < 0) s 434 libavcodec/takdec.c s->predictors[0] = get_sbits(gb, 10); s 435 libavcodec/takdec.c s->predictors[1] = get_sbits(gb, 10); s 436 libavcodec/takdec.c s->predictors[2] = get_sbits(gb, size) * (1 << (10 - size)); s 437 libavcodec/takdec.c s->predictors[3] = get_sbits(gb, size) * (1 << (10 - size)); s 444 libavcodec/takdec.c s->predictors[i] = get_sbits(gb, x) * (1 << (10 - size)); s 448 libavcodec/takdec.c tfilter[0] = s->predictors[0] * 64; s 454 libavcodec/takdec.c x = *p1 + ((int32_t)(s->predictors[i] * *p2 + 256) >> 9); s 455 libavcodec/takdec.c *p2 += (int32_t)(s->predictors[i] * *p1 + 256) >> 9; s 460 libavcodec/takdec.c tfilter[i] = s->predictors[i] * 64; s 466 libavcodec/takdec.c s->filter[j] = x - ((tfilter[i] + y) >> (15 - filter_quant)); s 467 libavcodec/takdec.c s->filter[i] = x - ((tfilter[j] + y) >> (15 - filter_quant)); s 470 libavcodec/takdec.c if ((ret = decode_residues(s, &decoded[filter_order], s 475 libavcodec/takdec.c s->residues[i] = *decoded++ >> dshift; s 477 libavcodec/takdec.c y = FF_ARRAY_ELEMS(s->residues) - filter_order; s 486 libavcodec/takdec.c v += (unsigned)s->adsp.scalarproduct_int16(&s->residues[i], s->filter, s 489 libavcodec/takdec.c v += s->residues[i + j + 3] * (unsigned)s->filter[j + 3] + s 490 libavcodec/takdec.c s->residues[i + j + 2] * (unsigned)s->filter[j + 2] + s 491 libavcodec/takdec.c s->residues[i + j + 1] * (unsigned)s->filter[j + 1] + s 492 libavcodec/takdec.c s->residues[i + j ] * (unsigned)s->filter[j ]; s 496 libavcodec/takdec.c s->residues[filter_order + i] = v >> dshift; s 501 libavcodec/takdec.c memcpy(s->residues, &s->residues[y], 2 * filter_order); s 509 libavcodec/takdec.c static int decode_channel(TAKDecContext *s, int chan) s 511 libavcodec/takdec.c AVCodecContext *avctx = s->avctx; s 512 libavcodec/takdec.c GetBitContext *gb = &s->gb; s 513 libavcodec/takdec.c int32_t *decoded = s->decoded[chan]; s 514 libavcodec/takdec.c int left = s->nb_samples - 1; s 517 libavcodec/takdec.c s->sample_shift[chan] = get_bits_esc4(gb); s 518 libavcodec/takdec.c if (s->sample_shift[chan] >= avctx->bits_per_raw_sample) s 521 libavcodec/takdec.c *decoded++ = get_sbits(gb, avctx->bits_per_raw_sample - s->sample_shift[chan]); s 522 libavcodec/takdec.c s->lpc_mode[chan] = get_bits(gb, 2); s 523 libavcodec/takdec.c s->nb_subframes = get_bits(gb, 3) + 1; s 525 libavcodec/takdec.c if (s->nb_subframes > 1) { s 526 libavcodec/takdec.c if (get_bits_left(gb) < (s->nb_subframes - 1) * 6) s 529 libavcodec/takdec.c for (; i < s->nb_subframes - 1; i++) { s 532 libavcodec/takdec.c s->subframe_len[i] = (v - prev) * s->subframe_scale; s 533 libavcodec/takdec.c if (s->subframe_len[i] <= 0) s 536 libavcodec/takdec.c left -= s->subframe_len[i]; s 543 libavcodec/takdec.c s->subframe_len[i] = left; s 546 libavcodec/takdec.c for (i = 0; i < s->nb_subframes; i++) { s 547 libavcodec/takdec.c if ((ret = decode_subframe(s, decoded, s->subframe_len[i], prev)) < 0) s 549 libavcodec/takdec.c decoded += s->subframe_len[i]; s 550 libavcodec/takdec.c prev = s->subframe_len[i]; s 556 libavcodec/takdec.c static int decorrelate(TAKDecContext *s, int c1, int c2, int length) s 558 libavcodec/takdec.c GetBitContext *gb = &s->gb; s 559 libavcodec/takdec.c int32_t *p1 = s->decoded[c1] + (s->dmode > 5); s 560 libavcodec/takdec.c int32_t *p2 = s->decoded[c2] + (s->dmode > 5); s 566 libavcodec/takdec.c length += s->dmode < 6; s 568 libavcodec/takdec.c switch (s->dmode) { s 570 libavcodec/takdec.c s->tdsp.decorrelate_ls(p1, p2, length); s 573 libavcodec/takdec.c s->tdsp.decorrelate_sr(p1, p2, length); s 576 libavcodec/takdec.c s->tdsp.decorrelate_sm(p1, p2, length); s 584 libavcodec/takdec.c s->tdsp.decorrelate_sf(p1, p2, length, dshift, dfactor); s 603 libavcodec/takdec.c s->filter[i] = get_sbits(gb, code_size); s 629 libavcodec/takdec.c s->residues[i] = *p2++ >> dshift; s 632 libavcodec/takdec.c x = FF_ARRAY_ELEMS(s->residues) - filter_order; s 637 libavcodec/takdec.c s->residues[filter_order + i] = *p2++ >> dshift; s 643 libavcodec/takdec.c v += s->adsp.scalarproduct_int16(&s->residues[i], s->filter, s 646 libavcodec/takdec.c v += s->residues[i + 7] * s->filter[7] + s 647 libavcodec/takdec.c s->residues[i + 6] * s->filter[6] + s 648 libavcodec/takdec.c s->residues[i + 5] * s->filter[5] + s 649 libavcodec/takdec.c s->residues[i + 4] * s->filter[4] + s 650 libavcodec/takdec.c s->residues[i + 3] * s->filter[3] + s 651 libavcodec/takdec.c s->residues[i + 2] * s->filter[2] + s 652 libavcodec/takdec.c s->residues[i + 1] * s->filter[1] + s 653 libavcodec/takdec.c s->residues[i ] * s->filter[0]; s 660 libavcodec/takdec.c memmove(s->residues, &s->residues[tmp], 2 * filter_order); s 668 libavcodec/takdec.c if (s->dmode > 0 && s->dmode < 6) { s 679 libavcodec/takdec.c TAKDecContext *s = avctx->priv_data; s 682 libavcodec/takdec.c GetBitContext *gb = &s->gb; s 691 libavcodec/takdec.c if ((ret = ff_tak_decode_frame_header(avctx, gb, &s->ti, 0)) < 0) s 703 libavcodec/takdec.c if (s->ti.codec != TAK_CODEC_MONO_STEREO && s 704 libavcodec/takdec.c s->ti.codec != TAK_CODEC_MULTICHANNEL) { s 705 libavcodec/takdec.c avpriv_report_missing_feature(avctx, "TAK codec type %d", s->ti.codec); s 708 libavcodec/takdec.c if (s->ti.data_type) { s 710 libavcodec/takdec.c "unsupported data type: %d\n", s->ti.data_type); s 713 libavcodec/takdec.c if (s->ti.codec == TAK_CODEC_MONO_STEREO && s->ti.channels > 2) { s 715 libavcodec/takdec.c "invalid number of channels: %d\n", s->ti.channels); s 718 libavcodec/takdec.c if (s->ti.channels > 6) { s 720 libavcodec/takdec.c "unsupported number of channels: %d\n", s->ti.channels); s 724 libavcodec/takdec.c if (s->ti.frame_samples <= 0) { s 729 libavcodec/takdec.c avctx->bits_per_raw_sample = s->ti.bps; s 732 libavcodec/takdec.c if (s->ti.sample_rate != avctx->sample_rate) { s 733 libavcodec/takdec.c avctx->sample_rate = s->ti.sample_rate; s 736 libavcodec/takdec.c if (s->ti.ch_layout) s 737 libavcodec/takdec.c avctx->channel_layout = s->ti.ch_layout; s 738 libavcodec/takdec.c avctx->channels = s->ti.channels; s 740 libavcodec/takdec.c s->nb_samples = s->ti.last_frame_samples ? s->ti.last_frame_samples s 741 libavcodec/takdec.c : s->ti.frame_samples; s 743 libavcodec/takdec.c frame->nb_samples = s->nb_samples; s 750 libavcodec/takdec.c s->nb_samples, s 754 libavcodec/takdec.c av_fast_malloc(&s->decode_buffer, &s->decode_buffer_size, buf_size); s 755 libavcodec/takdec.c if (!s->decode_buffer) s 757 libavcodec/takdec.c ret = av_samples_fill_arrays((uint8_t **)s->decoded, NULL, s 758 libavcodec/takdec.c s->decode_buffer, avctx->channels, s 759 libavcodec/takdec.c s->nb_samples, AV_SAMPLE_FMT_S32P, 0); s 764 libavcodec/takdec.c s->decoded[chan] = (int32_t *)frame->extended_data[chan]; s 767 libavcodec/takdec.c if (s->nb_samples < 16) { s 769 libavcodec/takdec.c int32_t *decoded = s->decoded[chan]; s 770 libavcodec/takdec.c for (i = 0; i < s->nb_samples; i++) s 774 libavcodec/takdec.c if (s->ti.codec == TAK_CODEC_MONO_STEREO) { s 776 libavcodec/takdec.c if (ret = decode_channel(s, chan)) s 780 libavcodec/takdec.c s->nb_subframes = get_bits(gb, 1) + 1; s 781 libavcodec/takdec.c if (s->nb_subframes > 1) { s 782 libavcodec/takdec.c s->subframe_len[1] = get_bits(gb, 6); s 785 libavcodec/takdec.c s->dmode = get_bits(gb, 3); s 786 libavcodec/takdec.c if (ret = decorrelate(s, 0, 1, s->nb_samples - 1)) s 789 libavcodec/takdec.c } else if (s->ti.codec == TAK_CODEC_MULTICHANNEL) { s 806 libavcodec/takdec.c s->mcdparams[i].present = get_bits1(gb); s 807 libavcodec/takdec.c if (s->mcdparams[i].present) { s 808 libavcodec/takdec.c s->mcdparams[i].index = get_bits(gb, 2); s 809 libavcodec/takdec.c s->mcdparams[i].chan2 = get_bits(gb, 4); s 810 libavcodec/takdec.c if (s->mcdparams[i].chan2 >= avctx->channels) { s 813 libavcodec/takdec.c s->mcdparams[i].chan2, avctx->channels); s 816 libavcodec/takdec.c if (s->mcdparams[i].index == 1) { s 817 libavcodec/takdec.c if ((nbit == s->mcdparams[i].chan2) || s 818 libavcodec/takdec.c (ch_mask & 1 << s->mcdparams[i].chan2)) s 821 libavcodec/takdec.c ch_mask |= 1 << s->mcdparams[i].chan2; s 822 libavcodec/takdec.c } else if (!(ch_mask & 1 << s->mcdparams[i].chan2)) { s 826 libavcodec/takdec.c s->mcdparams[i].chan1 = nbit; s 833 libavcodec/takdec.c s->mcdparams[i].present = 0; s 834 libavcodec/takdec.c s->mcdparams[i].chan1 = i; s 839 libavcodec/takdec.c if (s->mcdparams[i].present && s->mcdparams[i].index == 1) s 840 libavcodec/takdec.c if (ret = decode_channel(s, s->mcdparams[i].chan2)) s 843 libavcodec/takdec.c if (ret = decode_channel(s, s->mcdparams[i].chan1)) s 846 libavcodec/takdec.c if (s->mcdparams[i].present) { s 847 libavcodec/takdec.c s->dmode = mc_dmodes[s->mcdparams[i].index]; s 848 libavcodec/takdec.c if (ret = decorrelate(s, s 849 libavcodec/takdec.c s->mcdparams[i].chan2, s 850 libavcodec/takdec.c s->mcdparams[i].chan1, s 851 libavcodec/takdec.c s->nb_samples - 1)) s 858 libavcodec/takdec.c int32_t *decoded = s->decoded[chan]; s 860 libavcodec/takdec.c if (s->lpc_mode[chan]) s 861 libavcodec/takdec.c decode_lpc(decoded, s->lpc_mode[chan], s->nb_samples); s 863 libavcodec/takdec.c if (s->sample_shift[chan] > 0) s 864 libavcodec/takdec.c for (i = 0; i < s->nb_samples; i++) s 865 libavcodec/takdec.c decoded[i] *= 1U << s->sample_shift[chan]; s 890 libavcodec/takdec.c int32_t *decoded = s->decoded[chan]; s 891 libavcodec/takdec.c for (i = 0; i < s->nb_samples; i++) s 898 libavcodec/takdec.c int32_t *decoded = s->decoded[chan]; s 899 libavcodec/takdec.c for (i = 0; i < s->nb_samples; i++) s 906 libavcodec/takdec.c for (i = 0; i < s->nb_samples; i++) s 933 libavcodec/takdec.c TAKDecContext *s = avctx->priv_data; s 935 libavcodec/takdec.c av_freep(&s->decode_buffer); s 50 libavcodec/targa.c static int targa_decode_rle(AVCodecContext *avctx, TargaContext *s, s 62 libavcodec/targa.c if (bytestream2_get_bytes_left(&s->gb) <= 0) { s 67 libavcodec/targa.c type = bytestream2_get_byteu(&s->gb); s 73 libavcodec/targa.c bytestream2_get_buffer(&s->gb, dst, n * depth); s 84 libavcodec/targa.c bytestream2_get_buffer(&s->gb, tmp, depth); s 113 libavcodec/targa.c TargaContext * const s = avctx->priv_data; s 121 libavcodec/targa.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 124 libavcodec/targa.c idlen = bytestream2_get_byte(&s->gb); s 125 libavcodec/targa.c pal = bytestream2_get_byte(&s->gb); s 126 libavcodec/targa.c compr = bytestream2_get_byte(&s->gb); s 127 libavcodec/targa.c first_clr = bytestream2_get_le16(&s->gb); s 128 libavcodec/targa.c colors = bytestream2_get_le16(&s->gb); s 129 libavcodec/targa.c csize = bytestream2_get_byte(&s->gb); s 130 libavcodec/targa.c bytestream2_skip(&s->gb, 4); /* 2: x, 2: y */ s 131 libavcodec/targa.c w = bytestream2_get_le16(&s->gb); s 132 libavcodec/targa.c h = bytestream2_get_le16(&s->gb); s 133 libavcodec/targa.c bpp = bytestream2_get_byte(&s->gb); s 135 libavcodec/targa.c flags = bytestream2_get_byte(&s->gb); s 143 libavcodec/targa.c if (bytestream2_get_bytes_left(&s->gb) < idlen + 2*colors) { s 150 libavcodec/targa.c bytestream2_skip(&s->gb, idlen); s 208 libavcodec/targa.c bytestream2_skip(&s->gb, pal_size); s 213 libavcodec/targa.c if (bytestream2_get_bytes_left(&s->gb) < pal_size) { s 221 libavcodec/targa.c *pal++ = bytestream2_get_le32u(&s->gb); s 226 libavcodec/targa.c *pal++ = (0xffU<<24) | bytestream2_get_le24u(&s->gb); s 231 libavcodec/targa.c uint32_t v = bytestream2_get_le16u(&s->gb); s 249 libavcodec/targa.c int res = targa_decode_rle(avctx, s, dst, w, h, stride, bpp, interleave); s 255 libavcodec/targa.c if (bytestream2_get_bytes_left(&s->gb) < img_size * h) { s 264 libavcodec/targa.c bytestream2_get_buffer(&s->gb, line, img_size); s 88 libavcodec/targaenc.c TargaContext *s = avctx->priv_data; s 158 libavcodec/targaenc.c s->rle = 0; s 163 libavcodec/targaenc.c if (s->rle) s 299 libavcodec/tests/dct.c double s, sum, v; s 308 libavcodec/tests/dct.c s = (i == 0) ? sqrt(1.0 / 8.0) : sqrt(1.0 / 4.0); s 309 libavcodec/tests/dct.c c8[i][j] = s * cos(M_PI * i * (j + 0.5) / 8.0); s 317 libavcodec/tests/dct.c s = (i == 0) ? sqrt(1.0 / 4.0) : sqrt(1.0 / 2.0); s 318 libavcodec/tests/dct.c c4[i][j] = s * cos(M_PI * i * (j + 0.5) / 4.0); s 325 libavcodec/tests/dct.c s = 0.5 * sqrt(2.0); s 329 libavcodec/tests/dct.c (block[8 * (2 * i) + j] + block[8 * (2 * i + 1) + j]) * s; s 331 libavcodec/tests/dct.c (block[8 * (2 * i) + j] - block[8 * (2 * i + 1) + j]) * s; s 114 libavcodec/tests/fft.c double s, c; s 118 libavcodec/tests/fft.c s = -exptab[k - n2].im; s 121 libavcodec/tests/fft.c s = exptab[k].im; s 123 libavcodec/tests/fft.c CMAC(tmp_re, tmp_im, c, s, q->re, q->im); s 154 libavcodec/tests/fft.c double s = 0; s 157 libavcodec/tests/fft.c s += input[i] * cos(a); s 159 libavcodec/tests/fft.c output[k] = REF_SCALE(s, nbits - 1); s 172 libavcodec/tests/fft.c double s = 0.5 * input[0]; s 175 libavcodec/tests/fft.c s += input[k] * cos(a); s 177 libavcodec/tests/fft.c output[i] = 2 * s / n; s 187 libavcodec/tests/fft.c double s = 0; s 190 libavcodec/tests/fft.c s += input[i] * cos(a); s 192 libavcodec/tests/fft.c output[k] = s; s 223 libavcodec/tests/fft.c static inline void fft_init(FFTContext **s, int nbits, int inverse) s 226 libavcodec/tests/fft.c *s = av_fft_init(nbits, inverse); s 228 libavcodec/tests/fft.c ff_fft_init(*s, nbits, inverse); s 232 libavcodec/tests/fft.c static inline void mdct_init(FFTContext **s, int nbits, int inverse, double scale) s 235 libavcodec/tests/fft.c *s = av_mdct_init(nbits, inverse, scale); s 237 libavcodec/tests/fft.c ff_mdct_init(*s, nbits, inverse, scale); s 241 libavcodec/tests/fft.c static inline void mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input) s 244 libavcodec/tests/fft.c av_mdct_calc(s, output, input); s 246 libavcodec/tests/fft.c s->mdct_calc(s, output, input); s 250 libavcodec/tests/fft.c static inline void imdct_calc(struct FFTContext *s, FFTSample *output, const FFTSample *input) s 253 libavcodec/tests/fft.c av_imdct_calc(s, output, input); s 255 libavcodec/tests/fft.c s->imdct_calc(s, output, input); s 259 libavcodec/tests/fft.c static inline void fft_permute(FFTContext *s, FFTComplex *z) s 262 libavcodec/tests/fft.c av_fft_permute(s, z); s 264 libavcodec/tests/fft.c s->fft_permute(s, z); s 268 libavcodec/tests/fft.c static inline void fft_calc(FFTContext *s, FFTComplex *z) s 271 libavcodec/tests/fft.c av_fft_calc(s, z); s 273 libavcodec/tests/fft.c s->fft_calc(s, z); s 277 libavcodec/tests/fft.c static inline void mdct_end(FFTContext *s) s 280 libavcodec/tests/fft.c av_mdct_end(s); s 282 libavcodec/tests/fft.c ff_mdct_end(s); s 286 libavcodec/tests/fft.c static inline void fft_end(FFTContext *s) s 289 libavcodec/tests/fft.c av_fft_end(s); s 291 libavcodec/tests/fft.c ff_fft_end(s); s 381 libavcodec/tests/fft.c FFTContext *m, *s; s 393 libavcodec/tests/fft.c s = av_mallocz(sizeof(*s)); s 471 libavcodec/tests/fft.c fft_init(&s, fft_nbits, do_inverse); s 529 libavcodec/tests/fft.c fft_permute(s, tab); s 530 libavcodec/tests/fft.c fft_calc(s, tab); s 606 libavcodec/tests/fft.c fft_calc(s, tab); s 639 libavcodec/tests/fft.c fft_end(s); s 663 libavcodec/tests/fft.c av_free(s); s 52 libavcodec/tests/golomb.c int j, s = show_bits(&gb, 25); s 57 libavcodec/tests/golomb.c i, j, s); s 70 libavcodec/tests/golomb.c int j, s = show_bits_long(&gb, 32); s 75 libavcodec/tests/golomb.c "bits: %8x\n", EXTEND(i), j, s); s 88 libavcodec/tests/golomb.c int j, s = show_bits_long(&gb, 32); s 93 libavcodec/tests/golomb.c "bits: %8x\n", EXTEND_L(i), j, s); s 105 libavcodec/tests/golomb.c int j, s = show_bits(&gb, 25); s 110 libavcodec/tests/golomb.c i - COUNT / 2, j, s); s 31 libavcodec/tests/jpeg2000dwt.c DWTContext s1={{{0}}}, *s= &s1; s 34 libavcodec/tests/jpeg2000dwt.c ret = ff_jpeg2000_dwt_init(s, border, decomp_levels, type); s 39 libavcodec/tests/jpeg2000dwt.c ret = ff_dwt_encode(s, array); s 44 libavcodec/tests/jpeg2000dwt.c ret = ff_dwt_decode(s, array); s 58 libavcodec/tests/jpeg2000dwt.c ff_dwt_destroy(s); s 70 libavcodec/tests/jpeg2000dwt.c DWTContext s1={{{0}}}, *s= &s1; s 73 libavcodec/tests/jpeg2000dwt.c ret = ff_jpeg2000_dwt_init(s, border, decomp_levels, FF_DWT97); s 78 libavcodec/tests/jpeg2000dwt.c ret = ff_dwt_encode(s, array); s 83 libavcodec/tests/jpeg2000dwt.c ret = ff_dwt_decode(s, array); s 97 libavcodec/tests/jpeg2000dwt.c ff_dwt_destroy(s); s 28 libavcodec/tests/mathops.c unsigned s = u*u; s 29 libavcodec/tests/mathops.c unsigned root = ff_sqrt(s); s 30 libavcodec/tests/mathops.c unsigned root_m1 = ff_sqrt(s-1); s 31 libavcodec/tests/mathops.c if (s && root != u) { s 32 libavcodec/tests/mathops.c fprintf(stderr, "ff_sqrt failed at %u with %u\n", s, root); s 36 libavcodec/tests/mathops.c fprintf(stderr, "ff_sqrt failed at %u with %u\n", s, root); s 34 libavcodec/tests/snowenc.c SnowContext s; s 37 libavcodec/tests/snowenc.c s.spatial_decomposition_count=6; s 38 libavcodec/tests/snowenc.c s.spatial_decomposition_type=1; s 40 libavcodec/tests/snowenc.c s.temp_dwt_buffer = av_mallocz_array(width, sizeof(DWTELEM)); s 41 libavcodec/tests/snowenc.c s.temp_idwt_buffer = av_mallocz_array(width, sizeof(IDWTELEM)); s 43 libavcodec/tests/snowenc.c if (!s.temp_dwt_buffer || !s.temp_idwt_buffer) { s 54 libavcodec/tests/snowenc.c ff_spatial_dwt(buffer[0], s.temp_dwt_buffer, width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); s 55 libavcodec/tests/snowenc.c ff_spatial_idwt((IDWTELEM*)buffer[0], s.temp_idwt_buffer, width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); s 61 libavcodec/tests/snowenc.c s.spatial_decomposition_type=0; s 65 libavcodec/tests/snowenc.c ff_spatial_dwt(buffer[0], s.temp_dwt_buffer, width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); s 66 libavcodec/tests/snowenc.c ff_spatial_idwt((IDWTELEM*)buffer[0], s.temp_idwt_buffer, width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); s 77 libavcodec/tests/snowenc.c s.spatial_decomposition_count=3; s 78 libavcodec/tests/snowenc.c s.spatial_decomposition_type=0; s 79 libavcodec/tests/snowenc.c for(level=0; level<s.spatial_decomposition_count; level++){ s 81 libavcodec/tests/snowenc.c int w= width >> (s.spatial_decomposition_count-level); s 82 libavcodec/tests/snowenc.c int h= height >> (s.spatial_decomposition_count-level); s 83 libavcodec/tests/snowenc.c int stride= width << (s.spatial_decomposition_count-level); s 92 libavcodec/tests/snowenc.c ff_spatial_idwt((IDWTELEM*)buffer[0], s.temp_idwt_buffer, width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); s 108 libavcodec/tests/snowenc.c for(level=0; level<s.spatial_decomposition_count; level++){ s 118 libavcodec/tests/snowenc.c int w= width >> (s.spatial_decomposition_count-level); s 120 libavcodec/tests/snowenc.c int stride= width << (s.spatial_decomposition_count-level); s 134 libavcodec/tests/snowenc.c ff_spatial_dwt(buffer[0], s.temp_dwt_buffer, width, height, width, s.spatial_decomposition_type, s.spatial_decomposition_count); s 355 libavcodec/texturedsp.c int s = scaled ? (b >> 3) + 1 : 1; s 357 libavcodec/texturedsp.c int co = (r - 128) / s; s 358 libavcodec/texturedsp.c int cg = (g - 128) / s; s 134 libavcodec/thread.h int ff_thread_init(AVCodecContext *s); s 138 libavcodec/thread.h void ff_thread_free(AVCodecContext *s); s 116 libavcodec/tiff.c static void tiff_set_type(TiffContext *s, enum TiffType tiff_type) { s 117 libavcodec/tiff.c if (s->tiff_type < tiff_type) // Prioritize higher-valued entries s 118 libavcodec/tiff.c s->tiff_type = tiff_type; s 121 libavcodec/tiff.c static void free_geotags(TiffContext *const s) s 124 libavcodec/tiff.c for (i = 0; i < s->geotag_count; i++) { s 125 libavcodec/tiff.c if (s->geotags[i].val) s 126 libavcodec/tiff.c av_freep(&s->geotags[i].val); s 128 libavcodec/tiff.c av_freep(&s->geotags); s 129 libavcodec/tiff.c s->geotag_count = 0; s 266 libavcodec/tiff.c const char *name, const char *sep, TiffContext *s, AVFrame *frame) s 269 libavcodec/tiff.c case TIFF_DOUBLE: return ff_tadd_doubles_metadata(count, name, sep, &s->gb, s->le, &frame->metadata); s 270 libavcodec/tiff.c case TIFF_SHORT : return ff_tadd_shorts_metadata(count, name, sep, &s->gb, s->le, 0, &frame->metadata); s 271 libavcodec/tiff.c case TIFF_STRING: return ff_tadd_string_metadata(count, name, &s->gb, s->le, &frame->metadata); s 276 libavcodec/tiff.c static void av_always_inline dng_blit(TiffContext *s, uint8_t *dst, int dst_stride, s 280 libavcodec/tiff.c static void av_always_inline horizontal_fill(TiffContext *s, s 316 libavcodec/tiff.c int is_dng = (s->tiff_type == TIFF_TYPE_DNG || s->tiff_type == TIFF_TYPE_CINEMADNG); s 321 libavcodec/tiff.c for (int i = 0; i < s->width; i++) { s 335 libavcodec/tiff.c static int deinvert_buffer(TiffContext *s, const uint8_t *src, int size) s 339 libavcodec/tiff.c av_fast_padded_malloc(&s->deinvert_buf, &s->deinvert_buf_size, size); s 340 libavcodec/tiff.c if (!s->deinvert_buf) s 343 libavcodec/tiff.c s->deinvert_buf[i] = ff_reverse[src[i]]; s 348 libavcodec/tiff.c static void unpack_gray(TiffContext *s, AVFrame *p, s 356 libavcodec/tiff.c for (int i = 0; i < s->width; i++) { s 361 libavcodec/tiff.c static void unpack_yuv(TiffContext *s, AVFrame *p, s 365 libavcodec/tiff.c int w = (s->width - 1) / s->subsampling[0] + 1; s 366 libavcodec/tiff.c uint8_t *pu = &p->data[1][lnum / s->subsampling[1] * p->linesize[1]]; s 367 libavcodec/tiff.c uint8_t *pv = &p->data[2][lnum / s->subsampling[1] * p->linesize[2]]; s 368 libavcodec/tiff.c if (s->width % s->subsampling[0] || s->height % s->subsampling[1]) { s 370 libavcodec/tiff.c for (j = 0; j < s->subsampling[1]; j++) s 371 libavcodec/tiff.c for (k = 0; k < s->subsampling[0]; k++) s 372 libavcodec/tiff.c p->data[0][FFMIN(lnum + j, s->height-1) * p->linesize[0] + s 373 libavcodec/tiff.c FFMIN(i * s->subsampling[0] + k, s->width-1)] = *src++; s 379 libavcodec/tiff.c for (j = 0; j < s->subsampling[1]; j++) s 380 libavcodec/tiff.c for (k = 0; k < s->subsampling[0]; k++) s 382 libavcodec/tiff.c i * s->subsampling[0] + k] = *src++; s 411 libavcodec/tiff.c static int tiff_unpack_zlib(TiffContext *s, AVFrame *p, uint8_t *dst, int stride, s 422 libavcodec/tiff.c if (s->fill_order) { s 423 libavcodec/tiff.c if ((ret = deinvert_buffer(s, src, size)) < 0) { s 427 libavcodec/tiff.c src = s->deinvert_buf; s 431 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 439 libavcodec/tiff.c if (s->bpp < 8 && s->avctx->pix_fmt == AV_PIX_FMT_PAL8) { s 440 libavcodec/tiff.c horizontal_fill(s, s->bpp, dst, 1, src, 0, width, 0); s 445 libavcodec/tiff.c unpack_yuv(s, p, dst, strip_start + line); s 446 libavcodec/tiff.c line += s->subsampling[1] - 1; s 478 libavcodec/tiff.c static int tiff_unpack_lzma(TiffContext *s, AVFrame *p, uint8_t *dst, int stride, s 487 libavcodec/tiff.c if (s->fill_order) { s 488 libavcodec/tiff.c if ((ret = deinvert_buffer(s, src, size)) < 0) { s 492 libavcodec/tiff.c src = s->deinvert_buf; s 496 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 504 libavcodec/tiff.c if (s->bpp < 8 && s->avctx->pix_fmt == AV_PIX_FMT_PAL8) { s 505 libavcodec/tiff.c horizontal_fill(s, s->bpp, dst, 1, src, 0, width, 0); s 510 libavcodec/tiff.c unpack_yuv(s, p, dst, strip_start + line); s 511 libavcodec/tiff.c line += s->subsampling[1] - 1; s 521 libavcodec/tiff.c static int tiff_unpack_fax(TiffContext *s, uint8_t *dst, int stride, s 528 libavcodec/tiff.c av_fast_padded_malloc(&s->fax_buffer, &s->fax_buffer_size, size); s 529 libavcodec/tiff.c src2 = s->fax_buffer; s 532 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 537 libavcodec/tiff.c if (!s->fill_order) { s 544 libavcodec/tiff.c ret = ff_ccitt_unpack(s->avctx, src2, size, dst, lines, stride, s 545 libavcodec/tiff.c s->compr, s->fax_opts); s 546 libavcodec/tiff.c if (s->bpp < 8 && s->avctx->pix_fmt == AV_PIX_FMT_PAL8) s 548 libavcodec/tiff.c horizontal_fill(s, s->bpp, dst, 1, dst, 0, width, 0); s 556 libavcodec/tiff.c static int tiff_unpack_strip(TiffContext *s, AVFrame *p, uint8_t *dst, int stride, s 562 libavcodec/tiff.c int width = ((s->width * s->bpp) + 7) >> 3; s 569 libavcodec/tiff.c if (s->planar) s 570 libavcodec/tiff.c width /= s->bppcount; s 576 libavcodec/tiff.c int bytes_per_row = (((s->width - 1) / s->subsampling[0] + 1) * s->bpp * s 577 libavcodec/tiff.c s->subsampling[0] * s->subsampling[1] + 7) >> 3; s 578 libavcodec/tiff.c av_fast_padded_malloc(&s->yuv_line, &s->yuv_line_size, bytes_per_row); s 579 libavcodec/tiff.c if (s->yuv_line == NULL) { s 580 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Not enough memory\n"); s 583 libavcodec/tiff.c dst = s->yuv_line; s 586 libavcodec/tiff.c width = (s->width - 1) / s->subsampling[0] + 1; s 587 libavcodec/tiff.c width = width * s->subsampling[0] * s->subsampling[1] + 2*width; s 589 libavcodec/tiff.c av_assert0(s->bpp == 24); s 591 libavcodec/tiff.c if (s->is_bayer) { s 592 libavcodec/tiff.c av_assert0(width == (s->bpp * s->width + 7) >> 3); s 595 libavcodec/tiff.c av_fast_padded_malloc(&s->yuv_line, &s->yuv_line_size, width); s 596 libavcodec/tiff.c if (s->yuv_line == NULL) { s 597 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Not enough memory\n"); s 600 libavcodec/tiff.c dst = s->yuv_line; s 604 libavcodec/tiff.c if (s->compr == TIFF_DEFLATE || s->compr == TIFF_ADOBE_DEFLATE) { s 606 libavcodec/tiff.c return tiff_unpack_zlib(s, p, dst, stride, src, size, width, lines, s 609 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 615 libavcodec/tiff.c if (s->compr == TIFF_LZMA) { s 617 libavcodec/tiff.c return tiff_unpack_lzma(s, p, dst, stride, src, size, width, lines, s 620 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 625 libavcodec/tiff.c if (s->compr == TIFF_LZW) { s 626 libavcodec/tiff.c if (s->fill_order) { s 627 libavcodec/tiff.c if ((ret = deinvert_buffer(s, src, size)) < 0) s 629 libavcodec/tiff.c ssrc = src = s->deinvert_buf; s 632 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Old style LZW is unsupported\n"); s 634 libavcodec/tiff.c if ((ret = ff_lzw_decode_init(s->lzw, 8, src, size, FF_LZW_TIFF)) < 0) { s 635 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Error initializing LZW decoder\n"); s 639 libavcodec/tiff.c pixels = ff_lzw_decode(s->lzw, dst, width); s 641 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Decoded only %i bytes of %i\n", s 645 libavcodec/tiff.c if (s->bpp < 8 && s->avctx->pix_fmt == AV_PIX_FMT_PAL8) s 646 libavcodec/tiff.c horizontal_fill(s, s->bpp, dst, 1, dst, 0, width, 0); s 648 libavcodec/tiff.c unpack_yuv(s, p, dst, strip_start + line); s 649 libavcodec/tiff.c line += s->subsampling[1] - 1; s 651 libavcodec/tiff.c unpack_gray(s, p, dst, strip_start + line, width, s->bpp); s 657 libavcodec/tiff.c if (s->compr == TIFF_CCITT_RLE || s 658 libavcodec/tiff.c s->compr == TIFF_G3 || s 659 libavcodec/tiff.c s->compr == TIFF_G4) { s 663 libavcodec/tiff.c return tiff_unpack_fax(s, dst, stride, src, size, width, lines); s 666 libavcodec/tiff.c bytestream2_init(&s->gb, src, size); s 667 libavcodec/tiff.c bytestream2_init_writer(&pb, dst, is_yuv ? s->yuv_line_size : (stride * lines)); s 669 libavcodec/tiff.c is_dng = (s->tiff_type == TIFF_TYPE_DNG || s->tiff_type == TIFF_TYPE_CINEMADNG); s 672 libavcodec/tiff.c if (s->compr == TIFF_NEWJPEG && is_dng) { s 673 libavcodec/tiff.c if (s->strips > 1) { s 674 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "More than one DNG JPEG strips unsupported\n"); s 677 libavcodec/tiff.c if ((ret = dng_decode_strip(s->avctx, p)) < 0) s 687 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Source data overread\n"); s 691 libavcodec/tiff.c if (bytestream2_get_bytes_left(&s->gb) == 0 || bytestream2_get_eof(&pb)) s 694 libavcodec/tiff.c switch (s->compr) { s 699 libavcodec/tiff.c if (!s->fill_order) { s 700 libavcodec/tiff.c horizontal_fill(s, s->bpp * (s->avctx->pix_fmt == AV_PIX_FMT_PAL8 || s->is_bayer), s 712 libavcodec/tiff.c is_u16 = (s->bpp > 8); s 716 libavcodec/tiff.c elements = width / pixel_size_bytes * pixel_size_bits / s->bpp * s->bppcount; // need to account for [1, 16] bpp s 718 libavcodec/tiff.c dng_blit(s, s 734 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Read went out of bounds\n"); s 737 libavcodec/tiff.c code = s->fill_order ? (int8_t) ff_reverse[*src++]: (int8_t) *src++; s 742 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 746 libavcodec/tiff.c horizontal_fill(s, s->bpp * (s->avctx->pix_fmt == AV_PIX_FMT_PAL8), s 753 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 758 libavcodec/tiff.c horizontal_fill(s, s->bpp * (s->avctx->pix_fmt == AV_PIX_FMT_PAL8), s 763 libavcodec/tiff.c if (s->fill_order) { s 771 libavcodec/tiff.c unpack_yuv(s, p, dst, strip_start + line); s 772 libavcodec/tiff.c line += s->subsampling[1] - 1; s 774 libavcodec/tiff.c unpack_gray(s, p, dst, strip_start + line, width, s->bpp); s 812 libavcodec/tiff.c static void dng_blit(TiffContext *s, uint8_t *dst, int dst_stride, s 819 libavcodec/tiff.c scale_factor = 1.0f / (s->white_level - s->black_level); s 833 libavcodec/tiff.c *dst_u16++ = dng_process_color16(*src_u16++, s->dng_lut, s->black_level, scale_factor); s 841 libavcodec/tiff.c *dst_u16++ = dng_process_color16(*src_u16++, s->dng_lut, s->black_level, scale_factor); s 855 libavcodec/tiff.c *dst_u16++ = dng_process_color16(*src_u16++, s->dng_lut, s->black_level, scale_factor); s 866 libavcodec/tiff.c *dst_u8++ = dng_process_color8(*src_u8++, s->dng_lut, s->black_level, scale_factor); s 878 libavcodec/tiff.c TiffContext *s = avctx->priv_data; s 885 libavcodec/tiff.c if (tile_byte_count < 0 || tile_byte_count > bytestream2_get_bytes_left(&s->gb)) s 890 libavcodec/tiff.c jpkt.data = (uint8_t*)s->gb.buffer; s 893 libavcodec/tiff.c if (s->is_bayer) { s 894 libavcodec/tiff.c MJpegDecodeContext *mjpegdecctx = s->avctx_mjpeg->priv_data; s 900 libavcodec/tiff.c ret = avcodec_send_packet(s->avctx_mjpeg, &jpkt); s 906 libavcodec/tiff.c ret = avcodec_receive_frame(s->avctx_mjpeg, s->jpgframe); s 917 libavcodec/tiff.c is_u16 = (s->bpp > 8); s 922 libavcodec/tiff.c if (s->avctx_mjpeg->width == w * 2 && s 923 libavcodec/tiff.c s->avctx_mjpeg->height == h / 2 && s 924 libavcodec/tiff.c s->avctx_mjpeg->pix_fmt == AV_PIX_FMT_GRAY16LE) { s 926 libavcodec/tiff.c } else if (s->avctx_mjpeg->width == w && s 927 libavcodec/tiff.c s->avctx_mjpeg->height == h && s 928 libavcodec/tiff.c s->avctx_mjpeg->pix_fmt == (is_u16 ? AV_PIX_FMT_GRAY16 : AV_PIX_FMT_GRAY8) s 937 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "DNGs with bpp <= 8 and 1 component are unsupported\n"); s 938 libavcodec/tiff.c av_frame_unref(s->jpgframe); s 944 libavcodec/tiff.c src_data = s->jpgframe->data[0]; s 946 libavcodec/tiff.c dng_blit(s, s 950 libavcodec/tiff.c s->jpgframe->linesize[0] / pixel_size, s 956 libavcodec/tiff.c av_frame_unref(s->jpgframe); s 963 libavcodec/tiff.c TiffContext *s = avctx->priv_data; s 974 libavcodec/tiff.c s->jpgframe->width = s->tile_width; s 975 libavcodec/tiff.c s->jpgframe->height = s->tile_length; s 977 libavcodec/tiff.c s->avctx_mjpeg->width = s->tile_width; s 978 libavcodec/tiff.c s->avctx_mjpeg->height = s->tile_length; s 980 libavcodec/tiff.c has_width_leftover = (s->width % s->tile_width != 0); s 981 libavcodec/tiff.c has_height_leftover = (s->height % s->tile_length != 0); s 984 libavcodec/tiff.c tile_count_x = (s->width + s->tile_width - 1) / s->tile_width; s 985 libavcodec/tiff.c tile_count_y = (s->height + s->tile_length - 1) / s->tile_length; s 988 libavcodec/tiff.c for (tile_idx = 0; tile_idx < s->tile_count; tile_idx++) { s 993 libavcodec/tiff.c tile_width = s->width % s->tile_width; s 995 libavcodec/tiff.c tile_width = s->tile_width; s 998 libavcodec/tiff.c tile_length = s->height % s->tile_length; s 1000 libavcodec/tiff.c tile_length = s->tile_length; s 1003 libavcodec/tiff.c tile_offset_offset = s->tile_offsets_offset + tile_idx * sizeof(int); s 1004 libavcodec/tiff.c bytestream2_seek(&s->gb, tile_offset_offset, SEEK_SET); s 1005 libavcodec/tiff.c tile_offset = ff_tget_long(&s->gb, s->le); s 1008 libavcodec/tiff.c tile_byte_count_offset = s->tile_byte_counts_offset + tile_idx * sizeof(int); s 1009 libavcodec/tiff.c bytestream2_seek(&s->gb, tile_byte_count_offset, SEEK_SET); s 1010 libavcodec/tiff.c tile_byte_count = ff_tget_long(&s->gb, s->le); s 1013 libavcodec/tiff.c bytestream2_seek(&s->gb, tile_offset, SEEK_SET); s 1038 libavcodec/tiff.c TiffContext *s = avctx->priv_data; s 1040 libavcodec/tiff.c s->jpgframe->width = s->width; s 1041 libavcodec/tiff.c s->jpgframe->height = s->height; s 1043 libavcodec/tiff.c s->avctx_mjpeg->width = s->width; s 1044 libavcodec/tiff.c s->avctx_mjpeg->height = s->height; s 1046 libavcodec/tiff.c return dng_decode_jpeg(avctx, frame, s->stripsize, 0, 0, s->width, s->height); s 1049 libavcodec/tiff.c static int init_image(TiffContext *s, ThreadFrame *frame) s 1055 libavcodec/tiff.c if (s->bpp >= 100 || s->bppcount >= 10) { s 1056 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1058 libavcodec/tiff.c s->bpp, s->bppcount); s 1062 libavcodec/tiff.c switch (s->planar * 1000 + s->bpp * 10 + s->bppcount + s->is_bayer * 10000) { s 1064 libavcodec/tiff.c if (!s->palette_is_set) { s 1065 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_MONOBLACK; s 1070 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_PAL8; s 1071 libavcodec/tiff.c if (!s->palette_is_set) { s 1076 libavcodec/tiff.c s->avctx->pix_fmt = s->palette_is_set ? AV_PIX_FMT_PAL8 : AV_PIX_FMT_GRAY8; s 1079 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_GRAY12; s 1082 libavcodec/tiff.c switch (AV_RL32(s->pattern)) { s 1084 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_BAYER_RGGB8; s 1087 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_BAYER_BGGR8; s 1090 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_BAYER_GBRG8; s 1093 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_BAYER_GRBG8; s 1096 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported Bayer pattern: 0x%X\n", s 1097 libavcodec/tiff.c AV_RL32(s->pattern)); s 1105 libavcodec/tiff.c switch (AV_RL32(s->pattern)) { s 1107 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_BAYER_RGGB16; s 1110 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_BAYER_BGGR16; s 1113 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_BAYER_GBRG16; s 1116 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_BAYER_GRBG16; s 1119 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported Bayer pattern: 0x%X\n", s 1120 libavcodec/tiff.c AV_RL32(s->pattern)); s 1125 libavcodec/tiff.c if (s->photometric == TIFF_PHOTOMETRIC_YCBCR) { s 1126 libavcodec/tiff.c if (s->subsampling[0] == 1 && s->subsampling[1] == 1) { s 1127 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_YUV444P; s 1128 libavcodec/tiff.c } else if (s->subsampling[0] == 2 && s->subsampling[1] == 1) { s 1129 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_YUV422P; s 1130 libavcodec/tiff.c } else if (s->subsampling[0] == 4 && s->subsampling[1] == 1) { s 1131 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_YUV411P; s 1132 libavcodec/tiff.c } else if (s->subsampling[0] == 1 && s->subsampling[1] == 2) { s 1133 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_YUV440P; s 1134 libavcodec/tiff.c } else if (s->subsampling[0] == 2 && s->subsampling[1] == 2) { s 1135 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_YUV420P; s 1136 libavcodec/tiff.c } else if (s->subsampling[0] == 4 && s->subsampling[1] == 4) { s 1137 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_YUV410P; s 1139 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported YCbCr subsampling\n"); s 1143 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_RGB24; s 1146 libavcodec/tiff.c s->avctx->pix_fmt = s->le ? AV_PIX_FMT_GRAY16LE : AV_PIX_FMT_GRAY16BE; s 1149 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_YA8; s 1152 libavcodec/tiff.c s->avctx->pix_fmt = s->le ? AV_PIX_FMT_YA16LE : AV_PIX_FMT_YA16BE; s 1155 libavcodec/tiff.c s->avctx->pix_fmt = s->photometric == TIFF_PHOTOMETRIC_SEPARATED ? AV_PIX_FMT_RGB0 : AV_PIX_FMT_RGBA; s 1158 libavcodec/tiff.c if (s->photometric == TIFF_PHOTOMETRIC_SEPARATED) s 1159 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_RGBA; s 1161 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1167 libavcodec/tiff.c s->avctx->pix_fmt = s->le ? AV_PIX_FMT_RGB48LE : AV_PIX_FMT_RGB48BE; s 1170 libavcodec/tiff.c s->avctx->pix_fmt = s->le ? AV_PIX_FMT_RGBA64LE : AV_PIX_FMT_RGBA64BE; s 1173 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_GBRP; s 1176 libavcodec/tiff.c s->avctx->pix_fmt = AV_PIX_FMT_GBRAP; s 1179 libavcodec/tiff.c s->avctx->pix_fmt = s->le ? AV_PIX_FMT_GBRP16LE : AV_PIX_FMT_GBRP16BE; s 1182 libavcodec/tiff.c s->avctx->pix_fmt = s->le ? AV_PIX_FMT_GBRAP16LE : AV_PIX_FMT_GBRAP16BE; s 1185 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1187 libavcodec/tiff.c s->bpp, s->bppcount); s 1191 libavcodec/tiff.c if (s->photometric == TIFF_PHOTOMETRIC_YCBCR) { s 1192 libavcodec/tiff.c const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(s->avctx->pix_fmt); s 1196 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported YCbCr variant\n"); s 1201 libavcodec/tiff.c if (s->width != s->avctx->width || s->height != s->avctx->height) { s 1202 libavcodec/tiff.c ret = ff_set_dimensions(s->avctx, s->width, s->height); s 1206 libavcodec/tiff.c if ((ret = ff_thread_get_buffer(s->avctx, frame, 0)) < 0) s 1208 libavcodec/tiff.c if (s->avctx->pix_fmt == AV_PIX_FMT_PAL8) { s 1210 libavcodec/tiff.c memcpy(frame->f->data[1], s->palette, sizeof(s->palette)); s 1215 libavcodec/tiff.c for (i = 0; i < 1<<s->bpp; i++) s 1216 libavcodec/tiff.c pal[i] = 0xFFU << 24 | i * 255 / ((1<<s->bpp) - 1) * 0x010101; s 1222 libavcodec/tiff.c static void set_sar(TiffContext *s, unsigned tag, unsigned num, unsigned den) s 1225 libavcodec/tiff.c s->res[offset++] = num; s 1226 libavcodec/tiff.c s->res[offset] = den; s 1227 libavcodec/tiff.c if (s->res[0] && s->res[1] && s->res[2] && s->res[3]) { s 1228 libavcodec/tiff.c uint64_t num = s->res[2] * (uint64_t)s->res[1]; s 1229 libavcodec/tiff.c uint64_t den = s->res[0] * (uint64_t)s->res[3]; s 1234 libavcodec/tiff.c av_reduce(&s->avctx->sample_aspect_ratio.num, &s->avctx->sample_aspect_ratio.den, s 1236 libavcodec/tiff.c if (!s->avctx->sample_aspect_ratio.den) s 1237 libavcodec/tiff.c s->avctx->sample_aspect_ratio = (AVRational) {0, 1}; s 1241 libavcodec/tiff.c static int tiff_decode_tag(TiffContext *s, AVFrame *frame) s 1251 libavcodec/tiff.c ret = ff_tread_tag(&s->gb, s->le, &tag, &type, &count, &start); s 1256 libavcodec/tiff.c off = bytestream2_tell(&s->gb); s 1262 libavcodec/tiff.c value = ff_tget(&s->gb, type, s->le); s 1265 libavcodec/tiff.c value = ff_tget(&s->gb, TIFF_LONG, s->le); s 1266 libavcodec/tiff.c value2 = ff_tget(&s->gb, TIFF_LONG, s->le); s 1268 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Invalid denominator in rational\n"); s 1284 libavcodec/tiff.c s->is_thumbnail = (value != 0); s 1287 libavcodec/tiff.c s->width = value; s 1290 libavcodec/tiff.c s->height = value; s 1294 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1299 libavcodec/tiff.c s->bppcount = count; s 1301 libavcodec/tiff.c s->bpp = value; s 1307 libavcodec/tiff.c s->bpp = 0; s 1308 libavcodec/tiff.c if (bytestream2_get_bytes_left(&s->gb) < type_sizes[type] * count) s 1311 libavcodec/tiff.c s->bpp += ff_tget(&s->gb, type, s->le); s 1314 libavcodec/tiff.c s->bpp = -1; s 1320 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1325 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1329 libavcodec/tiff.c if (s->bppcount == 1) s 1330 libavcodec/tiff.c s->bpp *= value; s 1331 libavcodec/tiff.c s->bppcount = value; s 1334 libavcodec/tiff.c s->compr = value; s 1335 libavcodec/tiff.c av_log(s->avctx, AV_LOG_DEBUG, "compression: %d\n", s->compr); s 1336 libavcodec/tiff.c s->predictor = 0; s 1337 libavcodec/tiff.c switch (s->compr) { s 1345 libavcodec/tiff.c s->fax_opts = 0; s 1352 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Deflate: ZLib not compiled in\n"); s 1357 libavcodec/tiff.c s->is_jpeg = 1; s 1363 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "LZMA not compiled in\n"); s 1367 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Unknown compression method %i\n", s 1368 libavcodec/tiff.c s->compr); s 1374 libavcodec/tiff.c value = s->height; s 1375 libavcodec/tiff.c s->rps = FFMIN(value, s->height); s 1380 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1384 libavcodec/tiff.c s->strippos = 0; s 1385 libavcodec/tiff.c s->stripoff = value; s 1387 libavcodec/tiff.c s->strippos = off; s 1388 libavcodec/tiff.c s->strips = count; s 1389 libavcodec/tiff.c if (s->strips == 1) s 1390 libavcodec/tiff.c s->rps = s->height; s 1391 libavcodec/tiff.c s->sot = type; s 1396 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1400 libavcodec/tiff.c s->stripsizesoff = 0; s 1401 libavcodec/tiff.c s->stripsize = value; s 1402 libavcodec/tiff.c s->strips = 1; s 1404 libavcodec/tiff.c s->stripsizesoff = off; s 1406 libavcodec/tiff.c s->strips = count; s 1407 libavcodec/tiff.c s->sstype = type; s 1411 libavcodec/tiff.c set_sar(s, tag, value, value2); s 1414 libavcodec/tiff.c s->tile_offsets_offset = off; s 1415 libavcodec/tiff.c s->tile_count = count; s 1416 libavcodec/tiff.c s->is_tiled = 1; s 1419 libavcodec/tiff.c s->tile_byte_counts_offset = off; s 1422 libavcodec/tiff.c s->tile_length = value; s 1425 libavcodec/tiff.c s->tile_width = value; s 1428 libavcodec/tiff.c s->predictor = value; s 1432 libavcodec/tiff.c s->sub_ifd = value; s 1434 libavcodec/tiff.c s->sub_ifd = ff_tget(&s->gb, TIFF_LONG, s->le); /** Only get the first SubIFD */ s 1437 libavcodec/tiff.c for (int i = 0; i < FFMIN(count, 1 << s->bpp); i++) s 1438 libavcodec/tiff.c s->dng_lut[i] = ff_tget(&s->gb, type, s->le); s 1443 libavcodec/tiff.c value = ff_tget(&s->gb, TIFF_LONG, s->le); s 1444 libavcodec/tiff.c value2 = ff_tget(&s->gb, TIFF_LONG, s->le); s 1446 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Invalid black level denominator\n"); s 1450 libavcodec/tiff.c s->black_level = value / value2; s 1452 libavcodec/tiff.c s->black_level = ff_tget(&s->gb, type, s->le); s 1453 libavcodec/tiff.c av_log(s->avctx, AV_LOG_WARNING, "Assuming black level pattern values are identical\n"); s 1455 libavcodec/tiff.c s->black_level = value / value2; s 1459 libavcodec/tiff.c s->white_level = value; s 1462 libavcodec/tiff.c if (count != 2 || (ff_tget(&s->gb, type, s->le) != 2 && s 1463 libavcodec/tiff.c ff_tget(&s->gb, type, s->le) != 2)) { s 1464 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "CFA Pattern dimensions are not 2x2\n"); s 1469 libavcodec/tiff.c s->is_bayer = 1; s 1470 libavcodec/tiff.c s->pattern[0] = ff_tget(&s->gb, type, s->le); s 1471 libavcodec/tiff.c s->pattern[1] = ff_tget(&s->gb, type, s->le); s 1472 libavcodec/tiff.c s->pattern[2] = ff_tget(&s->gb, type, s->le); s 1473 libavcodec/tiff.c s->pattern[3] = ff_tget(&s->gb, type, s->le); s 1485 libavcodec/tiff.c s->photometric = value; s 1493 libavcodec/tiff.c avpriv_report_missing_feature(s->avctx, s 1498 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "PhotometricInterpretation %u is " s 1505 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1509 libavcodec/tiff.c s->fill_order = value - 1; s 1515 libavcodec/tiff.c bytestream2_get_bytes_left(&s->gb) < count / 3 * off * 3) s 1518 libavcodec/tiff.c pal_gb[0] = pal_gb[1] = pal_gb[2] = s->gb; s 1524 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "palette shift %d is out of range\n", off); s 1530 libavcodec/tiff.c p |= (ff_tget(&pal_gb[0], type, s->le) >> off) << 16; s 1531 libavcodec/tiff.c p |= (ff_tget(&pal_gb[1], type, s->le) >> off) << 8; s 1532 libavcodec/tiff.c p |= ff_tget(&pal_gb[2], type, s->le) >> off; s 1533 libavcodec/tiff.c s->palette[i] = p; s 1535 libavcodec/tiff.c s->palette_is_set = 1; s 1539 libavcodec/tiff.c s->planar = value == 2; s 1543 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "subsample count invalid\n"); s 1547 libavcodec/tiff.c s->subsampling[i] = ff_tget(&s->gb, type, s->le); s 1548 libavcodec/tiff.c if (s->subsampling[i] <= 0) { s 1549 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "subsampling %d is invalid\n", s->subsampling[i]); s 1550 libavcodec/tiff.c s->subsampling[i] = 1; s 1556 libavcodec/tiff.c if (s->compr == TIFF_G3) s 1557 libavcodec/tiff.c s->fax_opts = value; s 1560 libavcodec/tiff.c if (s->compr == TIFF_G4) s 1561 libavcodec/tiff.c s->fax_opts = value; s 1564 libavcodec/tiff.c if ((ret = add_metadata(count, type, name, sep, s, frame)) < 0) {\ s 1565 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Error allocating temporary buffer\n");\ s 1578 libavcodec/tiff.c if (s->geotag_count) { s 1579 libavcodec/tiff.c avpriv_request_sample(s->avctx, "Multiple geo key directories\n"); s 1584 libavcodec/tiff.c s->geotag_count = ff_tget_short(&s->gb, s->le); s 1585 libavcodec/tiff.c if (s->geotag_count > count / 4 - 1) { s 1586 libavcodec/tiff.c s->geotag_count = count / 4 - 1; s 1587 libavcodec/tiff.c av_log(s->avctx, AV_LOG_WARNING, "GeoTIFF key directory buffer shorter than specified\n"); s 1589 libavcodec/tiff.c if ( bytestream2_get_bytes_left(&s->gb) < s->geotag_count * sizeof(int16_t) * 4 s 1590 libavcodec/tiff.c || s->geotag_count == 0) { s 1591 libavcodec/tiff.c s->geotag_count = 0; s 1594 libavcodec/tiff.c s->geotags = av_mallocz_array(s->geotag_count, sizeof(TiffGeoTag)); s 1595 libavcodec/tiff.c if (!s->geotags) { s 1596 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Error allocating temporary buffer\n"); s 1597 libavcodec/tiff.c s->geotag_count = 0; s 1600 libavcodec/tiff.c for (i = 0; i < s->geotag_count; i++) { s 1601 libavcodec/tiff.c s->geotags[i].key = ff_tget_short(&s->gb, s->le); s 1602 libavcodec/tiff.c s->geotags[i].type = ff_tget_short(&s->gb, s->le); s 1603 libavcodec/tiff.c s->geotags[i].count = ff_tget_short(&s->gb, s->le); s 1605 libavcodec/tiff.c if (!s->geotags[i].type) s 1606 libavcodec/tiff.c s->geotags[i].val = get_geokey_val(s->geotags[i].key, ff_tget_short(&s->gb, s->le)); s 1608 libavcodec/tiff.c s->geotags[i].offset = ff_tget_short(&s->gb, s->le); s 1614 libavcodec/tiff.c if (bytestream2_get_bytes_left(&s->gb) < count * sizeof(int64_t)) s 1618 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Error allocating temporary buffer\n"); s 1622 libavcodec/tiff.c dp[i] = ff_tget_double(&s->gb, s->le); s 1623 libavcodec/tiff.c for (i = 0; i < s->geotag_count; i++) { s 1624 libavcodec/tiff.c if (s->geotags[i].type == TIFF_GEO_DOUBLE_PARAMS) { s 1625 libavcodec/tiff.c if (s->geotags[i].count == 0 s 1626 libavcodec/tiff.c || s->geotags[i].offset + s->geotags[i].count > count) { s 1627 libavcodec/tiff.c av_log(s->avctx, AV_LOG_WARNING, "Invalid GeoTIFF key %d\n", s->geotags[i].key); s 1628 libavcodec/tiff.c } else if (s->geotags[i].val) { s 1629 libavcodec/tiff.c av_log(s->avctx, AV_LOG_WARNING, "Duplicate GeoTIFF key %d\n", s->geotags[i].key); s 1631 libavcodec/tiff.c char *ap = doubles2str(&dp[s->geotags[i].offset], s->geotags[i].count, ", "); s 1633 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Error allocating temporary buffer\n"); s 1637 libavcodec/tiff.c s->geotags[i].val = ap; s 1644 libavcodec/tiff.c pos = bytestream2_tell(&s->gb); s 1645 libavcodec/tiff.c for (i = 0; i < s->geotag_count; i++) { s 1646 libavcodec/tiff.c if (s->geotags[i].type == TIFF_GEO_ASCII_PARAMS) { s 1647 libavcodec/tiff.c if (s->geotags[i].count == 0 s 1648 libavcodec/tiff.c || s->geotags[i].offset + s->geotags[i].count > count) { s 1649 libavcodec/tiff.c av_log(s->avctx, AV_LOG_WARNING, "Invalid GeoTIFF key %d\n", s->geotags[i].key); s 1653 libavcodec/tiff.c bytestream2_seek(&s->gb, pos + s->geotags[i].offset, SEEK_SET); s 1654 libavcodec/tiff.c if (bytestream2_get_bytes_left(&s->gb) < s->geotags[i].count) s 1656 libavcodec/tiff.c if (s->geotags[i].val) s 1658 libavcodec/tiff.c ap = av_malloc(s->geotags[i].count); s 1660 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "Error allocating temporary buffer\n"); s 1663 libavcodec/tiff.c bytestream2_get_bufferu(&s->gb, ap, s->geotags[i].count); s 1664 libavcodec/tiff.c ap[s->geotags[i].count - 1] = '\0'; //replace the "|" delimiter with a 0 byte s 1665 libavcodec/tiff.c s->geotags[i].val = ap; s 1674 libavcodec/tiff.c gb_temp = s->gb; s 1716 libavcodec/tiff.c bytestream2_seek(&s->gb, -count * sizeof(uint16_t), SEEK_CUR); s 1718 libavcodec/tiff.c s->cur_page = ff_tget(&s->gb, TIFF_SHORT, s->le); s 1720 libavcodec/tiff.c bytestream2_seek(&s->gb, count * sizeof(uint16_t) - sizeof(uint16_t), SEEK_CUR); s 1728 libavcodec/tiff.c ver[0] = ff_tget(&s->gb, type, s->le); s 1729 libavcodec/tiff.c ver[1] = ff_tget(&s->gb, type, s->le); s 1730 libavcodec/tiff.c ver[2] = ff_tget(&s->gb, type, s->le); s 1731 libavcodec/tiff.c ver[3] = ff_tget(&s->gb, type, s->le); s 1733 libavcodec/tiff.c av_log(s->avctx, AV_LOG_DEBUG, "DNG file, version %u.%u.%u.%u\n", s 1736 libavcodec/tiff.c tiff_set_type(s, TIFF_TYPE_DNG); s 1744 libavcodec/tiff.c tiff_set_type(s, TIFF_TYPE_CINEMADNG); s 1747 libavcodec/tiff.c if (s->avctx->err_recognition & AV_EF_EXPLODE) { s 1748 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1755 libavcodec/tiff.c if (s->bpp > 64U) { s 1756 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, s 1758 libavcodec/tiff.c s->bpp, count); s 1759 libavcodec/tiff.c s->bpp = 0; s 1762 libavcodec/tiff.c bytestream2_seek(&s->gb, start, SEEK_SET); s 1769 libavcodec/tiff.c TiffContext *const s = avctx->priv_data; s 1783 libavcodec/tiff.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 1786 libavcodec/tiff.c if ((ret = ff_tdecode_header(&s->gb, &le, &off))) { s 1793 libavcodec/tiff.c s->le = le; s 1796 libavcodec/tiff.c s->tiff_type = TIFF_TYPE_TIFF; s 1798 libavcodec/tiff.c s->is_thumbnail = 0; s 1799 libavcodec/tiff.c s->bppcount = s->bpp = 1; s 1800 libavcodec/tiff.c s->photometric = TIFF_PHOTOMETRIC_NONE; s 1801 libavcodec/tiff.c s->compr = TIFF_RAW; s 1802 libavcodec/tiff.c s->fill_order = 0; s 1803 libavcodec/tiff.c s->white_level = 0; s 1804 libavcodec/tiff.c s->is_bayer = 0; s 1805 libavcodec/tiff.c s->is_tiled = 0; s 1806 libavcodec/tiff.c s->is_jpeg = 0; s 1807 libavcodec/tiff.c s->cur_page = 0; s 1810 libavcodec/tiff.c s->dng_lut[i] = i; s 1812 libavcodec/tiff.c free_geotags(s); s 1815 libavcodec/tiff.c s->stripsizesoff = s->strippos = 0; s 1817 libavcodec/tiff.c bytestream2_seek(&s->gb, off, SEEK_SET); s 1818 libavcodec/tiff.c entries = ff_tget_short(&s->gb, le); s 1819 libavcodec/tiff.c if (bytestream2_get_bytes_left(&s->gb) < entries * 12) s 1822 libavcodec/tiff.c if ((ret = tiff_decode_tag(s, p)) < 0) s 1826 libavcodec/tiff.c if (s->get_thumbnail && !s->is_thumbnail) { s 1832 libavcodec/tiff.c retry_for_subifd = s->sub_ifd && (s->get_subimage || (!s->get_thumbnail && s->is_thumbnail)); s 1834 libavcodec/tiff.c retry_for_page = s->get_page && s->cur_page + 1 < s->get_page; // get_page is 1-indexed s 1839 libavcodec/tiff.c off = ff_tget_long(&s->gb, le); s 1842 libavcodec/tiff.c off = s->sub_ifd; s 1851 libavcodec/tiff.c avpriv_request_sample(s->avctx, "non increasing IFD offset\n"); s 1858 libavcodec/tiff.c s->sub_ifd = 0; s 1864 libavcodec/tiff.c is_dng = (s->tiff_type == TIFF_TYPE_DNG || s->tiff_type == TIFF_TYPE_CINEMADNG); s 1866 libavcodec/tiff.c for (i = 0; i<s->geotag_count; i++) { s 1867 libavcodec/tiff.c const char *keyname = get_geokey_name(s->geotags[i].key); s 1869 libavcodec/tiff.c av_log(avctx, AV_LOG_WARNING, "Unknown or unsupported GeoTIFF key %d\n", s->geotags[i].key); s 1872 libavcodec/tiff.c if (get_geokey_type(s->geotags[i].key) != s->geotags[i].type) { s 1873 libavcodec/tiff.c av_log(avctx, AV_LOG_WARNING, "Type of GeoTIFF key %d is wrong\n", s->geotags[i].key); s 1876 libavcodec/tiff.c ret = av_dict_set(&p->metadata, keyname, s->geotags[i].val, 0); s 1886 libavcodec/tiff.c if (s->white_level == 0) s 1887 libavcodec/tiff.c s->white_level = (1 << s->bpp) - 1; /* Default value as per the spec */ s 1889 libavcodec/tiff.c if (s->white_level <= s->black_level) { s 1891 libavcodec/tiff.c s->black_level, s->white_level); s 1895 libavcodec/tiff.c if (s->bpp % s->bppcount) s 1897 libavcodec/tiff.c bps = s->bpp / s->bppcount; s 1900 libavcodec/tiff.c if (s->planar) s 1904 libavcodec/tiff.c if (!s->is_tiled && !s->strippos && !s->stripoff) { s 1909 libavcodec/tiff.c has_tile_bits = s->is_tiled || s->tile_byte_counts_offset || s->tile_offsets_offset || s->tile_width || s->tile_length || s->tile_count; s 1910 libavcodec/tiff.c has_strip_bits = s->strippos || s->strips || s->stripoff || s->rps || s->sot || s->sstype || s->stripsize || s->stripsizesoff; s 1918 libavcodec/tiff.c if ((ret = init_image(s, &frame)) < 0) s 1921 libavcodec/tiff.c if (!s->is_tiled) { s 1922 libavcodec/tiff.c if (s->strips == 1 && !s->stripsize) { s 1924 libavcodec/tiff.c s->stripsize = avpkt->size - s->stripoff; s 1927 libavcodec/tiff.c if (s->stripsizesoff) { s 1928 libavcodec/tiff.c if (s->stripsizesoff >= (unsigned)avpkt->size) s 1930 libavcodec/tiff.c bytestream2_init(&stripsizes, avpkt->data + s->stripsizesoff, s 1931 libavcodec/tiff.c avpkt->size - s->stripsizesoff); s 1933 libavcodec/tiff.c if (s->strippos) { s 1934 libavcodec/tiff.c if (s->strippos >= (unsigned)avpkt->size) s 1936 libavcodec/tiff.c bytestream2_init(&stripdata, avpkt->data + s->strippos, s 1937 libavcodec/tiff.c avpkt->size - s->strippos); s 1940 libavcodec/tiff.c if (s->rps <= 0 || s->rps % s->subsampling[1]) { s 1941 libavcodec/tiff.c av_log(avctx, AV_LOG_ERROR, "rps %d invalid\n", s->rps); s 1946 libavcodec/tiff.c if (s->photometric == TIFF_PHOTOMETRIC_LINEAR_RAW || s 1947 libavcodec/tiff.c s->photometric == TIFF_PHOTOMETRIC_CFA) { s 1949 libavcodec/tiff.c } else if (s->photometric == TIFF_PHOTOMETRIC_BLACK_IS_ZERO) { s 1955 libavcodec/tiff.c if (is_dng && s->is_tiled) { s 1956 libavcodec/tiff.c if (!s->is_jpeg) { s 1959 libavcodec/tiff.c } else if (!s->is_bayer) { s 1971 libavcodec/tiff.c planes = s->planar ? s->bppcount : 1; s 1978 libavcodec/tiff.c if (s->photometric == TIFF_PHOTOMETRIC_SEPARATED && s 1979 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_RGBA) { s 1982 libavcodec/tiff.c dst = av_malloc(stride * s->height); s 1986 libavcodec/tiff.c for (i = 0; i < s->height; i += s->rps) { s 1988 libavcodec/tiff.c dst += s->rps * stride; s 1989 libavcodec/tiff.c if (s->stripsizesoff) s 1990 libavcodec/tiff.c ssize = ff_tget(&stripsizes, s->sstype, le); s 1992 libavcodec/tiff.c ssize = s->stripsize; s 1994 libavcodec/tiff.c if (s->strippos) s 1995 libavcodec/tiff.c soff = ff_tget(&stripdata, s->sot, le); s 1997 libavcodec/tiff.c soff = s->stripoff; s 2005 libavcodec/tiff.c if ((ret = tiff_unpack_strip(s, p, dst, stride, avpkt->data + soff, ssize, i, s 2006 libavcodec/tiff.c FFMIN(s->rps, s->height - i))) < 0) { s 2014 libavcodec/tiff.c decoded_height = FFMIN(i, s->height); s 2016 libavcodec/tiff.c if (s->predictor == 2) { s 2017 libavcodec/tiff.c if (s->photometric == TIFF_PHOTOMETRIC_YCBCR) { s 2018 libavcodec/tiff.c av_log(s->avctx, AV_LOG_ERROR, "predictor == 2 with YUV is unsupported"); s 2022 libavcodec/tiff.c soff = s->bpp >> 3; s 2023 libavcodec/tiff.c if (s->planar) s 2024 libavcodec/tiff.c soff = FFMAX(soff / s->bppcount, 1); s 2025 libavcodec/tiff.c ssize = s->width * soff; s 2026 libavcodec/tiff.c if (s->avctx->pix_fmt == AV_PIX_FMT_RGB48LE || s 2027 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_RGBA64LE || s 2028 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_GRAY16LE || s 2029 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_YA16LE || s 2030 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_GBRP16LE || s 2031 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_GBRAP16LE) { s 2037 libavcodec/tiff.c } else if (s->avctx->pix_fmt == AV_PIX_FMT_RGB48BE || s 2038 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_RGBA64BE || s 2039 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_GRAY16BE || s 2040 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_YA16BE || s 2041 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_GBRP16BE || s 2042 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_GBRAP16BE) { s 2057 libavcodec/tiff.c if (s->photometric == TIFF_PHOTOMETRIC_WHITE_IS_ZERO) { s 2058 libavcodec/tiff.c int c = (s->avctx->pix_fmt == AV_PIX_FMT_PAL8 ? (1<<s->bpp) - 1 : 255); s 2060 libavcodec/tiff.c for (i = 0; i < s->height; i++) { s 2067 libavcodec/tiff.c if (s->photometric == TIFF_PHOTOMETRIC_SEPARATED && s 2068 libavcodec/tiff.c (s->avctx->pix_fmt == AV_PIX_FMT_RGB0 || s->avctx->pix_fmt == AV_PIX_FMT_RGBA)) { s 2069 libavcodec/tiff.c int x = s->avctx->pix_fmt == AV_PIX_FMT_RGB0 ? 4 : 5; s 2072 libavcodec/tiff.c for (i = 0; i < s->height; i++) { s 2073 libavcodec/tiff.c for (j = 0; j < s->width; j++) { s 2081 libavcodec/tiff.c dst[4 * j + 3] = s->avctx->pix_fmt == AV_PIX_FMT_RGBA ? src[x * j + 4] : 255; s 2087 libavcodec/tiff.c } else if (s->photometric == TIFF_PHOTOMETRIC_SEPARATED && s 2088 libavcodec/tiff.c s->avctx->pix_fmt == AV_PIX_FMT_RGBA64BE) { s 2090 libavcodec/tiff.c for (i = 0; i < s->height; i++) { s 2091 libavcodec/tiff.c for (j = 0; j < s->width; j++) { s 2106 libavcodec/tiff.c if (s->planar && s->bppcount > 2) { s 2113 libavcodec/tiff.c if (s->is_bayer && s->white_level && s->bpp == 16 && !is_dng) { s 2115 libavcodec/tiff.c for (i = 0; i < s->height; i++) { s 2116 libavcodec/tiff.c for (j = 0; j < s->width; j++) s 2117 libavcodec/tiff.c dst[j] = FFMIN((dst[j] / (float)s->white_level) * 65535, 65535); s 2129 libavcodec/tiff.c TiffContext *s = avctx->priv_data; s 2133 libavcodec/tiff.c s->width = 0; s 2134 libavcodec/tiff.c s->height = 0; s 2135 libavcodec/tiff.c s->subsampling[0] = s 2136 libavcodec/tiff.c s->subsampling[1] = 1; s 2137 libavcodec/tiff.c s->avctx = avctx; s 2138 libavcodec/tiff.c ff_lzw_decode_open(&s->lzw); s 2139 libavcodec/tiff.c if (!s->lzw) s 2144 libavcodec/tiff.c s->jpgframe = av_frame_alloc(); s 2145 libavcodec/tiff.c if (!s->jpgframe) s 2152 libavcodec/tiff.c s->avctx_mjpeg = avcodec_alloc_context3(codec); s 2153 libavcodec/tiff.c if (!s->avctx_mjpeg) s 2155 libavcodec/tiff.c s->avctx_mjpeg->flags = avctx->flags; s 2156 libavcodec/tiff.c s->avctx_mjpeg->flags2 = avctx->flags2; s 2157 libavcodec/tiff.c s->avctx_mjpeg->dct_algo = avctx->dct_algo; s 2158 libavcodec/tiff.c s->avctx_mjpeg->idct_algo = avctx->idct_algo; s 2159 libavcodec/tiff.c ret = ff_codec_open2_recursive(s->avctx_mjpeg, codec, NULL); s 2169 libavcodec/tiff.c TiffContext *const s = avctx->priv_data; s 2171 libavcodec/tiff.c free_geotags(s); s 2173 libavcodec/tiff.c ff_lzw_decode_close(&s->lzw); s 2174 libavcodec/tiff.c av_freep(&s->deinvert_buf); s 2175 libavcodec/tiff.c s->deinvert_buf_size = 0; s 2176 libavcodec/tiff.c av_freep(&s->yuv_line); s 2177 libavcodec/tiff.c s->yuv_line_size = 0; s 2178 libavcodec/tiff.c av_freep(&s->fax_buffer); s 2179 libavcodec/tiff.c s->fax_buffer_size = 0; s 2180 libavcodec/tiff.c av_frame_free(&s->jpgframe); s 2181 libavcodec/tiff.c avcodec_free_context(&s->avctx_mjpeg); s 87 libavcodec/tiffenc.c static inline int check_size(TiffEncoderContext *s, uint64_t need) s 89 libavcodec/tiffenc.c if (s->buf_size < *s->buf - s->buf_start + need) { s 90 libavcodec/tiffenc.c *s->buf = s->buf_start + s->buf_size + 1; s 91 libavcodec/tiffenc.c av_log(s->avctx, AV_LOG_ERROR, "Buffer is too small\n"); s 126 libavcodec/tiffenc.c static int add_entry(TiffEncoderContext *s, enum TiffTags tag, s 129 libavcodec/tiffenc.c uint8_t *entries_ptr = s->entries + 12 * s->num_entries; s 131 libavcodec/tiffenc.c av_assert0(s->num_entries < TIFF_MAX_ENTRY); s 140 libavcodec/tiffenc.c bytestream_put_le32(&entries_ptr, *s->buf - s->buf_start); s 141 libavcodec/tiffenc.c if (check_size(s, count * (int64_t)type_sizes2[type])) s 143 libavcodec/tiffenc.c tnput(s->buf, count, ptr_val, type, 0); s 146 libavcodec/tiffenc.c s->num_entries++; s 150 libavcodec/tiffenc.c static int add_entry1(TiffEncoderContext *s, s 155 libavcodec/tiffenc.c return add_entry(s, tag, type, 1, s 170 libavcodec/tiffenc.c static int encode_strip(TiffEncoderContext *s, const int8_t *src, s 178 libavcodec/tiffenc.c unsigned long zlen = s->buf_size - (*s->buf - s->buf_start); s 180 libavcodec/tiffenc.c av_log(s->avctx, AV_LOG_ERROR, "Compressing failed\n"); s 187 libavcodec/tiffenc.c if (check_size(s, n)) s 192 libavcodec/tiffenc.c return ff_rle_encode(dst, s->buf_size - (*s->buf - s->buf_start), s 195 libavcodec/tiffenc.c return ff_lzw_encode(s->lzws, src, n); s 197 libavcodec/tiffenc.c av_log(s->avctx, AV_LOG_ERROR, "Unsupported compression method: %d\n", s 203 libavcodec/tiffenc.c static void pack_yuv(TiffEncoderContext *s, const AVFrame *p, s 207 libavcodec/tiffenc.c int w = (s->width - 1) / s->subsampling[0] + 1; s 208 libavcodec/tiffenc.c uint8_t *pu = &p->data[1][lnum / s->subsampling[1] * p->linesize[1]]; s 209 libavcodec/tiffenc.c uint8_t *pv = &p->data[2][lnum / s->subsampling[1] * p->linesize[2]]; s 210 libavcodec/tiffenc.c if (s->width % s->subsampling[0] || s->height % s->subsampling[1]) { s 212 libavcodec/tiffenc.c for (j = 0; j < s->subsampling[1]; j++) s 213 libavcodec/tiffenc.c for (k = 0; k < s->subsampling[0]; k++) s 214 libavcodec/tiffenc.c *dst++ = p->data[0][FFMIN(lnum + j, s->height-1) * p->linesize[0] + s 215 libavcodec/tiffenc.c FFMIN(i * s->subsampling[0] + k, s->width-1)]; s 221 libavcodec/tiffenc.c for (j = 0; j < s->subsampling[1]; j++) s 222 libavcodec/tiffenc.c for (k = 0; k < s->subsampling[0]; k++) s 224 libavcodec/tiffenc.c i * s->subsampling[0] + k]; s 231 libavcodec/tiffenc.c #define ADD_ENTRY(s, tag, type, count, ptr_val) \ s 233 libavcodec/tiffenc.c ret = add_entry(s, tag, type, count, ptr_val); \ s 238 libavcodec/tiffenc.c #define ADD_ENTRY1(s, tag, type, val) \ s 240 libavcodec/tiffenc.c ret = add_entry1(s, tag, type, val); \ s 249 libavcodec/tiffenc.c TiffEncoderContext *s = avctx->priv_data; s 256 libavcodec/tiffenc.c uint32_t res[2] = { s->dpi, 1 }; // image resolution (72/1) s 263 libavcodec/tiffenc.c s->width = avctx->width; s 264 libavcodec/tiffenc.c s->height = avctx->height; s 265 libavcodec/tiffenc.c s->subsampling[0] = 1; s 266 libavcodec/tiffenc.c s->subsampling[1] = 1; s 272 libavcodec/tiffenc.c s->bpp = av_get_bits_per_pixel(desc); s 273 libavcodec/tiffenc.c s->bpp_tab_size = desc->nb_components; s 281 libavcodec/tiffenc.c s->photometric_interpretation = TIFF_PHOTOMETRIC_RGB; s 290 libavcodec/tiffenc.c s->photometric_interpretation = TIFF_PHOTOMETRIC_BLACK_IS_ZERO; s 293 libavcodec/tiffenc.c s->photometric_interpretation = TIFF_PHOTOMETRIC_PALETTE; s 296 libavcodec/tiffenc.c s->photometric_interpretation = TIFF_PHOTOMETRIC_WHITE_IS_ZERO; s 305 libavcodec/tiffenc.c s->photometric_interpretation = TIFF_PHOTOMETRIC_YCBCR; s 306 libavcodec/tiffenc.c s->subsampling[0] = 1 << shift_h; s 307 libavcodec/tiffenc.c s->subsampling[1] = 1 << shift_v; s 311 libavcodec/tiffenc.c av_log(s->avctx, AV_LOG_ERROR, s 316 libavcodec/tiffenc.c for (i = 0; i < s->bpp_tab_size; i++) s 319 libavcodec/tiffenc.c if (s->compr == TIFF_DEFLATE || s 320 libavcodec/tiffenc.c s->compr == TIFF_ADOBE_DEFLATE || s 321 libavcodec/tiffenc.c s->compr == TIFF_LZW) s 323 libavcodec/tiffenc.c s->rps = s->height; s 326 libavcodec/tiffenc.c s->rps = FFMAX(8192 / (((s->width * s->bpp) >> 3) + 1), 1); s 328 libavcodec/tiffenc.c s->rps = ((s->rps - 1) / s->subsampling[1] + 1) * s->subsampling[1]; s 330 libavcodec/tiffenc.c strips = (s->height - 1) / s->rps + 1; s 332 libavcodec/tiffenc.c bytes_per_row = (((s->width - 1) / s->subsampling[0] + 1) * s->bpp * s 333 libavcodec/tiffenc.c s->subsampling[0] * s->subsampling[1] + 7) >> 3; s 340 libavcodec/tiffenc.c s->buf_start = pkt->data; s 341 libavcodec/tiffenc.c s->buf = &ptr; s 342 libavcodec/tiffenc.c s->buf_size = pkt->size; s 344 libavcodec/tiffenc.c if (check_size(s, 8)) { s 356 libavcodec/tiffenc.c if (strips > INT_MAX / FFMAX(sizeof(s->strip_sizes[0]), sizeof(s->strip_offsets[0]))) { s 360 libavcodec/tiffenc.c av_fast_padded_mallocz(&s->strip_sizes , &s->strip_sizes_size , sizeof(s->strip_sizes [0]) * strips); s 361 libavcodec/tiffenc.c av_fast_padded_mallocz(&s->strip_offsets, &s->strip_offsets_size, sizeof(s->strip_offsets[0]) * strips); s 363 libavcodec/tiffenc.c if (!s->strip_sizes || !s->strip_offsets) { s 369 libavcodec/tiffenc.c av_fast_padded_malloc(&s->yuv_line, &s->yuv_line_size, bytes_per_row); s 370 libavcodec/tiffenc.c if (s->yuv_line == NULL) { s 371 libavcodec/tiffenc.c av_log(s->avctx, AV_LOG_ERROR, "Not enough memory\n"); s 378 libavcodec/tiffenc.c if (s->compr == TIFF_DEFLATE || s->compr == TIFF_ADOBE_DEFLATE) { s 383 libavcodec/tiffenc.c zlen = bytes_per_row * s->rps; s 389 libavcodec/tiffenc.c s->strip_offsets[0] = ptr - pkt->data; s 391 libavcodec/tiffenc.c for (j = 0; j < s->rps; j++) { s 393 libavcodec/tiffenc.c pack_yuv(s, p, s->yuv_line, j); s 394 libavcodec/tiffenc.c memcpy(zbuf + zn, s->yuv_line, bytes_per_row); s 395 libavcodec/tiffenc.c j += s->subsampling[1] - 1; s 401 libavcodec/tiffenc.c ret = encode_strip(s, zbuf, ptr, zn, s->compr); s 404 libavcodec/tiffenc.c av_log(s->avctx, AV_LOG_ERROR, "Encode strip failed\n"); s 408 libavcodec/tiffenc.c s->strip_sizes[0] = ptr - pkt->data - s->strip_offsets[0]; s 412 libavcodec/tiffenc.c if (s->compr == TIFF_LZW) { s 413 libavcodec/tiffenc.c s->lzws = av_malloc(ff_lzw_encode_state_size); s 414 libavcodec/tiffenc.c if (!s->lzws) { s 419 libavcodec/tiffenc.c for (i = 0; i < s->height; i++) { s 420 libavcodec/tiffenc.c if (s->strip_sizes[i / s->rps] == 0) { s 421 libavcodec/tiffenc.c if (s->compr == TIFF_LZW) { s 422 libavcodec/tiffenc.c ff_lzw_encode_init(s->lzws, ptr, s 423 libavcodec/tiffenc.c s->buf_size - (*s->buf - s->buf_start), s 426 libavcodec/tiffenc.c s->strip_offsets[i / s->rps] = ptr - pkt->data; s 429 libavcodec/tiffenc.c pack_yuv(s, p, s->yuv_line, i); s 430 libavcodec/tiffenc.c ret = encode_strip(s, s->yuv_line, ptr, bytes_per_row, s->compr); s 431 libavcodec/tiffenc.c i += s->subsampling[1] - 1; s 433 libavcodec/tiffenc.c ret = encode_strip(s, p->data[0] + i * p->linesize[0], s 434 libavcodec/tiffenc.c ptr, bytes_per_row, s->compr); s 436 libavcodec/tiffenc.c av_log(s->avctx, AV_LOG_ERROR, "Encode strip failed\n"); s 439 libavcodec/tiffenc.c s->strip_sizes[i / s->rps] += ret; s 441 libavcodec/tiffenc.c if (s->compr == TIFF_LZW && s 442 libavcodec/tiffenc.c (i == s->height - 1 || i % s->rps == s->rps - 1)) { s 443 libavcodec/tiffenc.c ret = ff_lzw_encode_flush(s->lzws, flush_put_bits); s 444 libavcodec/tiffenc.c s->strip_sizes[(i / s->rps)] += ret; s 448 libavcodec/tiffenc.c if (s->compr == TIFF_LZW) s 449 libavcodec/tiffenc.c av_freep(&s->lzws); s 452 libavcodec/tiffenc.c s->num_entries = 0; s 454 libavcodec/tiffenc.c ADD_ENTRY1(s, TIFF_SUBFILE, TIFF_LONG, 0); s 455 libavcodec/tiffenc.c ADD_ENTRY1(s, TIFF_WIDTH, TIFF_LONG, s->width); s 456 libavcodec/tiffenc.c ADD_ENTRY1(s, TIFF_HEIGHT, TIFF_LONG, s->height); s 458 libavcodec/tiffenc.c if (s->bpp_tab_size) s 459 libavcodec/tiffenc.c ADD_ENTRY(s, TIFF_BPP, TIFF_SHORT, s->bpp_tab_size, bpp_tab); s 461 libavcodec/tiffenc.c ADD_ENTRY1(s, TIFF_COMPR, TIFF_SHORT, s->compr); s 462 libavcodec/tiffenc.c ADD_ENTRY1(s, TIFF_PHOTOMETRIC, TIFF_SHORT, s->photometric_interpretation); s 463 libavcodec/tiffenc.c ADD_ENTRY(s, TIFF_STRIP_OFFS, TIFF_LONG, strips, s->strip_offsets); s 465 libavcodec/tiffenc.c if (s->bpp_tab_size) s 466 libavcodec/tiffenc.c ADD_ENTRY1(s, TIFF_SAMPLES_PER_PIXEL, TIFF_SHORT, s->bpp_tab_size); s 468 libavcodec/tiffenc.c ADD_ENTRY1(s, TIFF_ROWSPERSTRIP, TIFF_LONG, s->rps); s 469 libavcodec/tiffenc.c ADD_ENTRY(s, TIFF_STRIP_SIZE, TIFF_LONG, strips, s->strip_sizes); s 470 libavcodec/tiffenc.c ADD_ENTRY(s, TIFF_XRES, TIFF_RATIONAL, 1, res); s 473 libavcodec/tiffenc.c AVRational y = av_mul_q(av_make_q(s->dpi, 1), s 478 libavcodec/tiffenc.c ADD_ENTRY(s, TIFF_YRES, TIFF_RATIONAL, 1, res); s 479 libavcodec/tiffenc.c ADD_ENTRY1(s, TIFF_RES_UNIT, TIFF_SHORT, 2); s 482 libavcodec/tiffenc.c ADD_ENTRY(s, TIFF_SOFTWARE_NAME, TIFF_STRING, s 493 libavcodec/tiffenc.c ADD_ENTRY(s, TIFF_PAL, TIFF_SHORT, 256 * 3, pal); s 496 libavcodec/tiffenc.c ADD_ENTRY1(s,TIFF_EXTRASAMPLES, TIFF_SHORT, 2); s 500 libavcodec/tiffenc.c ADD_ENTRY(s, TIFF_YCBCR_SUBSAMPLING, TIFF_SHORT, 2, s->subsampling); s 502 libavcodec/tiffenc.c ADD_ENTRY1(s, TIFF_YCBCR_POSITIONING, TIFF_SHORT, 2); s 503 libavcodec/tiffenc.c ADD_ENTRY(s, TIFF_REFERENCE_BW, TIFF_RATIONAL, 6, refbw); s 508 libavcodec/tiffenc.c if (check_size(s, 6 + s->num_entries * 12)) { s 512 libavcodec/tiffenc.c bytestream_put_le16(&ptr, s->num_entries); // write tag count s 513 libavcodec/tiffenc.c bytestream_put_buffer(&ptr, s->entries, s->num_entries * 12); s 526 libavcodec/tiffenc.c TiffEncoderContext *s = avctx->priv_data; s 529 libavcodec/tiffenc.c if (s->compr == TIFF_DEFLATE) { s 542 libavcodec/tiffenc.c s->avctx = avctx; s 549 libavcodec/tiffenc.c TiffEncoderContext *s = avctx->priv_data; s 551 libavcodec/tiffenc.c av_freep(&s->strip_sizes); s 552 libavcodec/tiffenc.c av_freep(&s->strip_offsets); s 553 libavcodec/tiffenc.c av_freep(&s->yuv_line); s 39 libavcodec/truehd_core_bsf.c TrueHDCoreContext *s = ctx->priv_data; s 68 libavcodec/truehd_core_bsf.c if ((ret = ff_mlp_read_major_sync(ctx, &s->hdr, &gbc)) < 0) s 73 libavcodec/truehd_core_bsf.c if (s->hdr.num_substreams > MAX_SUBSTREAMS) { s 78 libavcodec/truehd_core_bsf.c for (i = 0; i < s->hdr.num_substreams; i++) { s 107 libavcodec/truehd_core_bsf.c header[16] = (header[16] & 0x0c) | (FFMIN(s->hdr.num_substreams, 3) << 4); s 125 libavcodec/truehd_core_bsf.c for (i = 0; i < FFMIN(s->hdr.num_substreams, 3); i++) { s 168 libavcodec/truehd_core_bsf.c TrueHDCoreContext *s = ctx->priv_data; s 169 libavcodec/truehd_core_bsf.c memset(&s->hdr, 0, sizeof(s->hdr)); s 148 libavcodec/truemotion1.c static void select_delta_tables(TrueMotion1Context *s, int delta_table_index) s 155 libavcodec/truemotion1.c memcpy(s->ydt, ydts[delta_table_index], 8 * sizeof(int16_t)); s 156 libavcodec/truemotion1.c memcpy(s->cdt, cdts[delta_table_index], 8 * sizeof(int16_t)); s 157 libavcodec/truemotion1.c memcpy(s->fat_ydt, fat_ydts[delta_table_index], 8 * sizeof(int16_t)); s 158 libavcodec/truemotion1.c memcpy(s->fat_cdt, fat_cdts[delta_table_index], 8 * sizeof(int16_t)); s 166 libavcodec/truemotion1.c s->ydt[i] &= 0xFFFE; s 167 libavcodec/truemotion1.c s->ydt[i] /= 2; s 239 libavcodec/truemotion1.c static void gen_vector_table15(TrueMotion1Context *s, const uint8_t *sel_vector_table) s 250 libavcodec/truemotion1.c s->y_predictor_table[i+j] = 0xfffffffe & s 251 libavcodec/truemotion1.c make_ydt15_entry(delta_pair >> 4, delta_pair & 0xf, s->ydt); s 252 libavcodec/truemotion1.c s->c_predictor_table[i+j] = 0xfffffffe & s 253 libavcodec/truemotion1.c make_cdt15_entry(delta_pair >> 4, delta_pair & 0xf, s->cdt); s 255 libavcodec/truemotion1.c s->y_predictor_table[i+(j-1)] |= 1; s 256 libavcodec/truemotion1.c s->c_predictor_table[i+(j-1)] |= 1; s 260 libavcodec/truemotion1.c static void gen_vector_table16(TrueMotion1Context *s, const uint8_t *sel_vector_table) s 271 libavcodec/truemotion1.c s->y_predictor_table[i+j] = 0xfffffffe & s 272 libavcodec/truemotion1.c make_ydt16_entry(delta_pair >> 4, delta_pair & 0xf, s->ydt); s 273 libavcodec/truemotion1.c s->c_predictor_table[i+j] = 0xfffffffe & s 274 libavcodec/truemotion1.c make_cdt16_entry(delta_pair >> 4, delta_pair & 0xf, s->cdt); s 276 libavcodec/truemotion1.c s->y_predictor_table[i+(j-1)] |= 1; s 277 libavcodec/truemotion1.c s->c_predictor_table[i+(j-1)] |= 1; s 281 libavcodec/truemotion1.c static void gen_vector_table24(TrueMotion1Context *s, const uint8_t *sel_vector_table) s 292 libavcodec/truemotion1.c s->y_predictor_table[i+j] = 0xfffffffe & s 293 libavcodec/truemotion1.c make_ydt24_entry(delta_pair >> 4, delta_pair & 0xf, s->ydt); s 294 libavcodec/truemotion1.c s->c_predictor_table[i+j] = 0xfffffffe & s 295 libavcodec/truemotion1.c make_cdt24_entry(delta_pair >> 4, delta_pair & 0xf, s->cdt); s 296 libavcodec/truemotion1.c s->fat_y_predictor_table[i+j] = 0xfffffffe & s 297 libavcodec/truemotion1.c make_ydt24_entry(delta_pair >> 4, delta_pair & 0xf, s->fat_ydt); s 298 libavcodec/truemotion1.c s->fat_c_predictor_table[i+j] = 0xfffffffe & s 299 libavcodec/truemotion1.c make_cdt24_entry(delta_pair >> 4, delta_pair & 0xf, s->fat_cdt); s 301 libavcodec/truemotion1.c s->y_predictor_table[i+(j-1)] |= 1; s 302 libavcodec/truemotion1.c s->c_predictor_table[i+(j-1)] |= 1; s 303 libavcodec/truemotion1.c s->fat_y_predictor_table[i+(j-1)] |= 1; s 304 libavcodec/truemotion1.c s->fat_c_predictor_table[i+(j-1)] |= 1; s 310 libavcodec/truemotion1.c static int truemotion1_decode_header(TrueMotion1Context *s) s 319 libavcodec/truemotion1.c header.header_size = ((s->buf[0] >> 5) | (s->buf[0] << 3)) & 0x7f; s 320 libavcodec/truemotion1.c if (s->buf[0] < 0x10) s 322 libavcodec/truemotion1.c av_log(s->avctx, AV_LOG_ERROR, "invalid header size (%d)\n", s->buf[0]); s 326 libavcodec/truemotion1.c if (header.header_size + 1 > s->size) { s 327 libavcodec/truemotion1.c av_log(s->avctx, AV_LOG_ERROR, "Input packet too small.\n"); s 333 libavcodec/truemotion1.c header_buffer[i - 1] = s->buf[i] ^ s->buf[i + 1]; s 351 libavcodec/truemotion1.c av_log(s->avctx, AV_LOG_ERROR, "invalid header type (%d)\n", header.header_type); s 354 libavcodec/truemotion1.c s->flags = header.flags; s 355 libavcodec/truemotion1.c if (!(s->flags & FLAG_INTERFRAME)) s 356 libavcodec/truemotion1.c s->flags |= FLAG_KEYFRAME; s 358 libavcodec/truemotion1.c s->flags = FLAG_KEYFRAME; s 360 libavcodec/truemotion1.c s->flags = FLAG_KEYFRAME; s 362 libavcodec/truemotion1.c if (s->flags & FLAG_SPRITE) { s 363 libavcodec/truemotion1.c avpriv_request_sample(s->avctx, "Frame with sprite"); s 367 libavcodec/truemotion1.c s->w = header.xsize; s 368 libavcodec/truemotion1.c s->h = header.ysize; s 370 libavcodec/truemotion1.c if ((s->w < 213) && (s->h >= 176)) s 372 libavcodec/truemotion1.c s->flags |= FLAG_INTERPOLATED; s 373 libavcodec/truemotion1.c avpriv_request_sample(s->avctx, "Interpolated frame"); s 379 libavcodec/truemotion1.c av_log(s->avctx, AV_LOG_ERROR, "invalid compression type (%d)\n", header.compression); s 383 libavcodec/truemotion1.c if ((header.deltaset != s->last_deltaset) || s 384 libavcodec/truemotion1.c (header.vectable != s->last_vectable)) s 385 libavcodec/truemotion1.c select_delta_tables(s, header.deltaset); s 393 libavcodec/truemotion1.c av_log(s->avctx, AV_LOG_ERROR, "invalid vector table id (%d)\n", header.vectable); s 404 libavcodec/truemotion1.c s->w >>= width_shift; s 405 libavcodec/truemotion1.c if (s->w & 1) { s 406 libavcodec/truemotion1.c avpriv_request_sample(s->avctx, "Frame with odd width"); s 410 libavcodec/truemotion1.c if (s->w != s->avctx->width || s->h != s->avctx->height || s 411 libavcodec/truemotion1.c new_pix_fmt != s->avctx->pix_fmt) { s 412 libavcodec/truemotion1.c av_frame_unref(s->frame); s 413 libavcodec/truemotion1.c s->avctx->sample_aspect_ratio = (AVRational){ 1 << width_shift, 1 }; s 414 libavcodec/truemotion1.c s->avctx->pix_fmt = new_pix_fmt; s 416 libavcodec/truemotion1.c if ((ret = ff_set_dimensions(s->avctx, s->w, s->h)) < 0) s 419 libavcodec/truemotion1.c ff_set_sar(s->avctx, s->avctx->sample_aspect_ratio); s 421 libavcodec/truemotion1.c av_fast_malloc(&s->vert_pred, &s->vert_pred_size, s->avctx->width * sizeof(unsigned int)); s 422 libavcodec/truemotion1.c if (!s->vert_pred) s 429 libavcodec/truemotion1.c s->mb_change_bits_row_size = ((s->avctx->width >> (2 - width_shift)) + 7) >> 3; s 431 libavcodec/truemotion1.c if ((header.deltaset != s->last_deltaset) || (header.vectable != s->last_vectable)) s 434 libavcodec/truemotion1.c gen_vector_table24(s, sel_vector_table); s 436 libavcodec/truemotion1.c if (s->avctx->pix_fmt == AV_PIX_FMT_RGB555) s 437 libavcodec/truemotion1.c gen_vector_table15(s, sel_vector_table); s 439 libavcodec/truemotion1.c gen_vector_table16(s, sel_vector_table); s 443 libavcodec/truemotion1.c s->mb_change_bits = s->buf + header.header_size; s 444 libavcodec/truemotion1.c if (s->flags & FLAG_KEYFRAME) { s 446 libavcodec/truemotion1.c s->index_stream = s->mb_change_bits; s 447 libavcodec/truemotion1.c if (s->avctx->width * s->avctx->height / 2048 + header.header_size > s->size) s 451 libavcodec/truemotion1.c s->index_stream = s->mb_change_bits + s 452 libavcodec/truemotion1.c (s->mb_change_bits_row_size * (s->avctx->height >> 2)); s 454 libavcodec/truemotion1.c s->index_stream_size = s->size - (s->index_stream - s->buf); s 456 libavcodec/truemotion1.c s->last_deltaset = header.deltaset; s 457 libavcodec/truemotion1.c s->last_vectable = header.vectable; s 458 libavcodec/truemotion1.c s->compression = header.compression; s 459 libavcodec/truemotion1.c s->block_width = compression_types[header.compression].block_width; s 460 libavcodec/truemotion1.c s->block_height = compression_types[header.compression].block_height; s 461 libavcodec/truemotion1.c s->block_type = compression_types[header.compression].block_type; s 463 libavcodec/truemotion1.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 464 libavcodec/truemotion1.c av_log(s->avctx, AV_LOG_INFO, "tables: %d / %d c:%d %dx%d t:%d %s%s%s%s\n", s 465 libavcodec/truemotion1.c s->last_deltaset, s->last_vectable, s->compression, s->block_width, s 466 libavcodec/truemotion1.c s->block_height, s->block_type, s 467 libavcodec/truemotion1.c s->flags & FLAG_KEYFRAME ? " KEY" : "", s 468 libavcodec/truemotion1.c s->flags & FLAG_INTERFRAME ? " INTER" : "", s 469 libavcodec/truemotion1.c s->flags & FLAG_SPRITE ? " SPRITE" : "", s 470 libavcodec/truemotion1.c s->flags & FLAG_INTERPOLATED ? " INTERPOL" : ""); s 477 libavcodec/truemotion1.c TrueMotion1Context *s = avctx->priv_data; s 479 libavcodec/truemotion1.c s->avctx = avctx; s 487 libavcodec/truemotion1.c s->frame = av_frame_alloc(); s 488 libavcodec/truemotion1.c if (!s->frame) s 493 libavcodec/truemotion1.c av_fast_malloc(&s->vert_pred, &s->vert_pred_size, s->avctx->width * sizeof(unsigned int)); s 494 libavcodec/truemotion1.c if (!s->vert_pred) { s 495 libavcodec/truemotion1.c av_frame_free(&s->frame); s 530 libavcodec/truemotion1.c if (index_stream_index >= s->index_stream_size) { \ s 531 libavcodec/truemotion1.c av_log(s->avctx, AV_LOG_INFO, " help! truemotion1 decoder went out of bounds\n"); \ s 534 libavcodec/truemotion1.c index = s->index_stream[index_stream_index++] * 4; \ s 540 libavcodec/truemotion1.c av_log(s->avctx, AV_LOG_ERROR, "Invalid index value.\n"); \ s 547 libavcodec/truemotion1.c predictor_pair = s->c_predictor_table[index]; \ s 553 libavcodec/truemotion1.c predictor_pair = s->c_predictor_table[index]; \ s 564 libavcodec/truemotion1.c predictor_pair = s->c_predictor_table[index]; \ s 570 libavcodec/truemotion1.c predictor_pair = s->fat_c_predictor_table[index]; \ s 582 libavcodec/truemotion1.c predictor_pair = s->y_predictor_table[index]; \ s 588 libavcodec/truemotion1.c predictor_pair = s->y_predictor_table[index]; \ s 599 libavcodec/truemotion1.c predictor_pair = s->y_predictor_table[index]; \ s 605 libavcodec/truemotion1.c predictor_pair = s->fat_y_predictor_table[index]; \ s 619 libavcodec/truemotion1.c static void truemotion1_decode_16bit(TrueMotion1Context *s) s 627 libavcodec/truemotion1.c unsigned char *current_line = s->frame->data[0]; s 628 libavcodec/truemotion1.c int keyframe = s->flags & FLAG_KEYFRAME; s 631 libavcodec/truemotion1.c const unsigned char *mb_change_bits = s->mb_change_bits; s 641 libavcodec/truemotion1.c memset(s->vert_pred, 0, s->avctx->width * sizeof(unsigned int)); s 645 libavcodec/truemotion1.c for (y = 0; y < s->avctx->height; y++) { s 650 libavcodec/truemotion1.c vert_pred = s->vert_pred; s 655 libavcodec/truemotion1.c pixels_left = s->avctx->width; s 665 libavcodec/truemotion1.c if (s->block_width == 2) { s 693 libavcodec/truemotion1.c if (s->block_type == BLOCK_2x2) { s 700 libavcodec/truemotion1.c } else if (s->block_type == BLOCK_4x2) { s 740 libavcodec/truemotion1.c mb_change_bits += s->mb_change_bits_row_size; s 742 libavcodec/truemotion1.c current_line += s->frame->linesize[0]; s 746 libavcodec/truemotion1.c static void truemotion1_decode_24bit(TrueMotion1Context *s) s 754 libavcodec/truemotion1.c unsigned char *current_line = s->frame->data[0]; s 755 libavcodec/truemotion1.c int keyframe = s->flags & FLAG_KEYFRAME; s 758 libavcodec/truemotion1.c const unsigned char *mb_change_bits = s->mb_change_bits; s 768 libavcodec/truemotion1.c memset(s->vert_pred, 0, s->avctx->width * sizeof(unsigned int)); s 772 libavcodec/truemotion1.c for (y = 0; y < s->avctx->height; y++) { s 777 libavcodec/truemotion1.c vert_pred = s->vert_pred; s 781 libavcodec/truemotion1.c pixels_left = s->avctx->width; s 791 libavcodec/truemotion1.c if (s->block_width == 2) { s 819 libavcodec/truemotion1.c if (s->block_type == BLOCK_2x2) { s 826 libavcodec/truemotion1.c } else if (s->block_type == BLOCK_4x2) { s 866 libavcodec/truemotion1.c mb_change_bits += s->mb_change_bits_row_size; s 868 libavcodec/truemotion1.c current_line += s->frame->linesize[0]; s 879 libavcodec/truemotion1.c TrueMotion1Context *s = avctx->priv_data; s 881 libavcodec/truemotion1.c s->buf = buf; s 882 libavcodec/truemotion1.c s->size = buf_size; s 884 libavcodec/truemotion1.c if ((ret = truemotion1_decode_header(s)) < 0) s 887 libavcodec/truemotion1.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 890 libavcodec/truemotion1.c if (compression_types[s->compression].algorithm == ALGO_RGB24H) { s 891 libavcodec/truemotion1.c truemotion1_decode_24bit(s); s 892 libavcodec/truemotion1.c } else if (compression_types[s->compression].algorithm != ALGO_NOP) { s 893 libavcodec/truemotion1.c truemotion1_decode_16bit(s); s 896 libavcodec/truemotion1.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 907 libavcodec/truemotion1.c TrueMotion1Context *s = avctx->priv_data; s 909 libavcodec/truemotion1.c av_frame_free(&s->frame); s 910 libavcodec/truemotion1.c av_freep(&s->vert_pred); s 61 libavcodec/truemotion2rt.c TrueMotion2RTContext *s = avctx->priv_data; s 89 libavcodec/truemotion2rt.c s->delta_size = header_buffer[1]; s 90 libavcodec/truemotion2rt.c s->hscale = 1 + !!header_buffer[3]; s 91 libavcodec/truemotion2rt.c if (s->delta_size < 2 || s->delta_size > 4) s 108 libavcodec/truemotion2rt.c TrueMotion2RTContext *s = avctx->priv_data; s 110 libavcodec/truemotion2rt.c GetBitContext *gb = &s->gb; s 119 libavcodec/truemotion2rt.c if ((avctx->width + s->hscale - 1)/ s->hscale * avctx->height * s->delta_size > avpkt->size * 8LL * 4) s 131 libavcodec/truemotion2rt.c delta_mode = s->delta_size - 2; s 135 libavcodec/truemotion2rt.c for (x = 0; x < avctx->width; x += s->hscale) { s 136 libavcodec/truemotion2rt.c diff += delta_tabs[delta_mode][get_bits(gb, s->delta_size)]; s 142 libavcodec/truemotion2rt.c if (s->hscale > 1) { s 145 libavcodec/truemotion2rt.c for (x = 1; x < avctx->width; x += s->hscale) s 161 libavcodec/truemotion2rt.c for (x = 0; x < avctx->width >> 2; x += s->hscale) { s 162 libavcodec/truemotion2rt.c diff += delta_tabs[delta_mode][get_bits(gb, s->delta_size)]; s 168 libavcodec/truemotion2rt.c if (s->hscale > 1) { s 171 libavcodec/truemotion2rt.c for (x = 1; x < avctx->width >> 2; x += s->hscale) s 187 libavcodec/truemotion2rt.c for (x = 0; x < avctx->width >> 2; x += s->hscale) { s 188 libavcodec/truemotion2rt.c diff += delta_tabs[delta_mode][get_bits(gb, s->delta_size)]; s 194 libavcodec/truemotion2rt.c if (s->hscale > 1) { s 197 libavcodec/truemotion2rt.c for (x = 1; x < avctx->width >> 2; x += s->hscale) s 75 libavcodec/tta.c static int tta_check_crc(TTAContext *s, const uint8_t *buf, int buf_size) s 80 libavcodec/tta.c crc = av_crc(s->crc_table, 0xFFFFFFFFU, buf, buf_size); s 82 libavcodec/tta.c av_log(s->avctx, AV_LOG_ERROR, "CRC error\n"); s 106 libavcodec/tta.c TTAContext *s = avctx->priv_data; s 108 libavcodec/tta.c if (s->bps < 3) { s 109 libavcodec/tta.c s->decode_buffer = av_mallocz_array(sizeof(int32_t)*s->frame_length, s->channels); s 110 libavcodec/tta.c if (!s->decode_buffer) s 113 libavcodec/tta.c s->decode_buffer = NULL; s 114 libavcodec/tta.c s->ch_ctx = av_malloc_array(avctx->channels, sizeof(*s->ch_ctx)); s 115 libavcodec/tta.c if (!s->ch_ctx) { s 116 libavcodec/tta.c av_freep(&s->decode_buffer); s 125 libavcodec/tta.c TTAContext *s = avctx->priv_data; s 130 libavcodec/tta.c s->avctx = avctx; s 136 libavcodec/tta.c s->crc_table = av_crc_get_table(AV_CRC_32_IEEE_LE); s 145 libavcodec/tta.c s->format = get_bits(&gb, 16); s 146 libavcodec/tta.c if (s->format > 2) { s 150 libavcodec/tta.c if (s->format == FORMAT_ENCRYPTED) { s 151 libavcodec/tta.c if (!s->pass) { s 155 libavcodec/tta.c AV_WL64(s->crc_pass, tta_check_crc64(s->pass)); s 157 libavcodec/tta.c avctx->channels = s->channels = get_bits(&gb, 16); s 158 libavcodec/tta.c if (s->channels > 1 && s->channels < 9) s 159 libavcodec/tta.c avctx->channel_layout = tta_channel_layouts[s->channels-2]; s 161 libavcodec/tta.c s->bps = (avctx->bits_per_raw_sample + 7) / 8; s 163 libavcodec/tta.c s->data_length = get_bits_long(&gb, 32); s 166 libavcodec/tta.c if (s->channels == 0 || s->channels > 16) { s 174 libavcodec/tta.c switch(s->bps) { s 193 libavcodec/tta.c s->frame_length = 256 * avctx->sample_rate / 245; s 195 libavcodec/tta.c s->last_frame_length = s->data_length % s->frame_length; s 196 libavcodec/tta.c total_frames = s->data_length / s->frame_length + s 197 libavcodec/tta.c (s->last_frame_length ? 1 : 0); s 200 libavcodec/tta.c s->format, avctx->channels, avctx->bits_per_coded_sample, avctx->sample_rate, s 203 libavcodec/tta.c s->data_length, s->frame_length, s->last_frame_length, total_frames); s 205 libavcodec/tta.c if(s->frame_length >= UINT_MAX / (s->channels * sizeof(int32_t))){ s 214 libavcodec/tta.c ff_ttadsp_init(&s->dsp); s 226 libavcodec/tta.c TTAContext *s = avctx->priv_data; s 229 libavcodec/tta.c int cur_chan = 0, framelen = s->frame_length; s 234 libavcodec/tta.c (tta_check_crc(s, buf, buf_size - 4) && avctx->err_recognition & AV_EF_EXPLODE)) s 247 libavcodec/tta.c if (s->bps == 3) s 248 libavcodec/tta.c s->decode_buffer = (int32_t *)frame->data[0]; s 251 libavcodec/tta.c for (i = 0; i < s->channels; i++) { s 252 libavcodec/tta.c TTAFilter *filter = &s->ch_ctx[i].filter; s 253 libavcodec/tta.c s->ch_ctx[i].predictor = 0; s 254 libavcodec/tta.c ff_tta_filter_init(filter, ff_tta_filter_configs[s->bps-1]); s 255 libavcodec/tta.c if (s->format == FORMAT_ENCRYPTED) { s 258 libavcodec/tta.c filter->qm[i] = sign_extend(s->crc_pass[i], 8); s 260 libavcodec/tta.c ff_tta_rice_init(&s->ch_ctx[i].rice, 10, 10); s 264 libavcodec/tta.c for (p = s->decode_buffer; (int32_t*)p < s->decode_buffer + (framelen * s->channels); p++) { s 265 libavcodec/tta.c int32_t *predictor = &s->ch_ctx[cur_chan].predictor; s 266 libavcodec/tta.c TTAFilter *filter = &s->ch_ctx[cur_chan].filter; s 267 libavcodec/tta.c TTARice *rice = &s->ch_ctx[cur_chan].rice; s 317 libavcodec/tta.c s->dsp.filter_process(filter->qm, filter->dx, filter->dl, &filter->error, p, s 322 libavcodec/tta.c switch (s->bps) { s 331 libavcodec/tta.c if (cur_chan < (s->channels-1)) s 335 libavcodec/tta.c if (s->channels > 1) { s 337 libavcodec/tta.c for (*p += *r / 2; r > (int32_t*)p - s->channels; r--) s 343 libavcodec/tta.c if (i == s->last_frame_length && get_bits_left(&gb) / 8 == 4) { s 344 libavcodec/tta.c frame->nb_samples = framelen = s->last_frame_length; s 358 libavcodec/tta.c switch (s->bps) { s 361 libavcodec/tta.c for (p = s->decode_buffer; (int32_t*)p < s->decode_buffer + (framelen * s->channels); p++) s 367 libavcodec/tta.c for (p = s->decode_buffer; (int32_t*)p < s->decode_buffer + (framelen * s->channels); p++) s 374 libavcodec/tta.c for (i = 0; i < framelen * s->channels; i++) s 377 libavcodec/tta.c s->decode_buffer = NULL; s 387 libavcodec/tta.c if (s->bps == 3) s 388 libavcodec/tta.c s->decode_buffer = NULL; s 393 libavcodec/tta.c TTAContext *s = avctx->priv_data; s 395 libavcodec/tta.c if (s->bps < 3) s 396 libavcodec/tta.c av_freep(&s->decode_buffer); s 397 libavcodec/tta.c s->decode_buffer = NULL; s 398 libavcodec/tta.c av_freep(&s->ch_ctx); s 38 libavcodec/ttaenc.c TTAEncContext *s = avctx->priv_data; s 40 libavcodec/ttaenc.c s->crc_table = av_crc_get_table(AV_CRC_32_IEEE_LE); s 55 libavcodec/ttaenc.c s->bps = avctx->bits_per_raw_sample >> 3; s 58 libavcodec/ttaenc.c s->ch_ctx = av_malloc_array(avctx->channels, sizeof(*s->ch_ctx)); s 59 libavcodec/ttaenc.c if (!s->ch_ctx) s 62 libavcodec/ttaenc.c ff_ttaencdsp_init(&s->dsp); s 88 libavcodec/ttaenc.c TTAEncContext *s = avctx->priv_data; s 91 libavcodec/ttaenc.c int64_t pkt_size = frame->nb_samples * 2LL * avctx->channels * s->bps; s 101 libavcodec/ttaenc.c s->ch_ctx[i].predictor = 0; s 102 libavcodec/ttaenc.c ff_tta_filter_init(&s->ch_ctx[i].filter, ff_tta_filter_configs[s->bps - 1]); s 103 libavcodec/ttaenc.c ff_tta_rice_init(&s->ch_ctx[i].rice, 10, 10); s 107 libavcodec/ttaenc.c TTAChannel *c = &s->ch_ctx[cur_chan]; s 124 libavcodec/ttaenc.c switch (s->bps) { s 131 libavcodec/ttaenc.c s->dsp.filter_process(filter->qm, filter->dx, filter->dl, &filter->error, &value, s 186 libavcodec/ttaenc.c put_bits32(&pb, av_crc(s->crc_table, UINT32_MAX, avpkt->data, out_bytes) ^ UINT32_MAX); s 198 libavcodec/ttaenc.c TTAEncContext *s = avctx->priv_data; s 199 libavcodec/ttaenc.c av_freep(&s->ch_ctx); s 47 libavcodec/ulti.c UltimotionDecodeContext *s = avctx->priv_data; s 49 libavcodec/ulti.c s->avctx = avctx; s 50 libavcodec/ulti.c s->width = avctx->width; s 51 libavcodec/ulti.c s->height = avctx->height; s 52 libavcodec/ulti.c s->blocks = (s->width / 8) * (s->height / 8); s 53 libavcodec/ulti.c if (s->blocks == 0) s 56 libavcodec/ulti.c s->ulti_codebook = ulti_codebook; s 58 libavcodec/ulti.c s->frame = av_frame_alloc(); s 59 libavcodec/ulti.c if (!s->frame) s 67 libavcodec/ulti.c UltimotionDecodeContext *s = avctx->priv_data; s 69 libavcodec/ulti.c av_frame_free(&s->frame); s 222 libavcodec/ulti.c UltimotionDecodeContext *s=avctx->priv_data; s 233 libavcodec/ulti.c if ((ret = ff_reget_buffer(avctx, s->frame, 0)) < 0) s 236 libavcodec/ulti.c bytestream2_init(&s->gb, buf, buf_size); s 240 libavcodec/ulti.c if(blocks >= s->blocks || y >= s->height) s 243 libavcodec/ulti.c if (bytestream2_get_bytes_left(&s->gb) < 1) s 245 libavcodec/ulti.c idx = bytestream2_get_byteu(&s->gb); s 249 libavcodec/ulti.c modifier = bytestream2_get_byte(&s->gb); s 263 libavcodec/ulti.c skip = bytestream2_get_byte(&s->gb); s 264 libavcodec/ulti.c if ((blocks + skip) >= s->blocks) s 268 libavcodec/ulti.c while(x >= s->width) { s 269 libavcodec/ulti.c x -= s->width; s 290 libavcodec/ulti.c chroma = bytestream2_get_byte(&s->gb); s 298 libavcodec/ulti.c chroma = bytestream2_get_byte(&s->gb); s 304 libavcodec/ulti.c tmp = bytestream2_get_byte(&s->gb); s 324 libavcodec/ulti.c tmp = bytestream2_get_be24(&s->gb); s 332 libavcodec/ulti.c tmp = bytestream2_get_be16(&s->gb); s 337 libavcodec/ulti.c Y[0] = s->ulti_codebook[tmp]; s 338 libavcodec/ulti.c Y[1] = s->ulti_codebook[tmp + 1]; s 339 libavcodec/ulti.c Y[2] = s->ulti_codebook[tmp + 2]; s 340 libavcodec/ulti.c Y[3] = s->ulti_codebook[tmp + 3]; s 348 libavcodec/ulti.c if (bytestream2_get_bytes_left(&s->gb) < 12) s 350 libavcodec/ulti.c tmp = bytestream2_get_be24u(&s->gb); s 356 libavcodec/ulti.c tmp = bytestream2_get_be24u(&s->gb); s 362 libavcodec/ulti.c tmp = bytestream2_get_be24u(&s->gb); s 368 libavcodec/ulti.c tmp = bytestream2_get_be24u(&s->gb); s 374 libavcodec/ulti.c ulti_convert_yuv(s->frame, tx, ty, Luma, chroma); s 376 libavcodec/ulti.c if (bytestream2_get_bytes_left(&s->gb) < 4) s 378 libavcodec/ulti.c tmp = bytestream2_get_byteu(&s->gb); s 381 libavcodec/ulti.c tmp = (tmp << 8) + bytestream2_get_byteu(&s->gb); s 384 libavcodec/ulti.c Y[2] = bytestream2_get_byteu(&s->gb) & 0x3F; s 385 libavcodec/ulti.c Y[3] = bytestream2_get_byteu(&s->gb) & 0x3F; s 386 libavcodec/ulti.c ulti_grad(s->frame, tx, ty, Y, chroma, angle); //draw block s 389 libavcodec/ulti.c int f1 = bytestream2_get_byteu(&s->gb); s 390 libavcodec/ulti.c Y[0] = bytestream2_get_byteu(&s->gb) & 0x3F; s 391 libavcodec/ulti.c Y[1] = bytestream2_get_byteu(&s->gb) & 0x3F; s 392 libavcodec/ulti.c ulti_pattern(s->frame, tx, ty, f0, f1, Y[0], Y[1], chroma); s 398 libavcodec/ulti.c ulti_grad(s->frame, tx, ty, Y, chroma, angle); // draw block s 402 libavcodec/ulti.c if(x >= s->width) { s 410 libavcodec/ulti.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 104 libavcodec/utils.c int ff_set_dimensions(AVCodecContext *s, int width, int height) s 106 libavcodec/utils.c int ret = av_image_check_size2(width, height, s->max_pixels, AV_PIX_FMT_NONE, 0, s); s 111 libavcodec/utils.c s->coded_width = width; s 112 libavcodec/utils.c s->coded_height = height; s 113 libavcodec/utils.c s->width = AV_CEIL_RSHIFT(width, s->lowres); s 114 libavcodec/utils.c s->height = AV_CEIL_RSHIFT(height, s->lowres); s 154 libavcodec/utils.c void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, s 160 libavcodec/utils.c AVPixFmtDescriptor const *desc = av_pix_fmt_desc_get(s->pix_fmt); s 167 libavcodec/utils.c switch (s->pix_fmt) { s 267 libavcodec/utils.c if (s->codec_id == AV_CODEC_ID_SVQ1) { s 273 libavcodec/utils.c if (s->codec_id == AV_CODEC_ID_RPZA) { s 277 libavcodec/utils.c if (s->codec_id == AV_CODEC_ID_INTERPLAY_VIDEO) { s 285 libavcodec/utils.c if (s->codec_id == AV_CODEC_ID_SMC || s 286 libavcodec/utils.c s->codec_id == AV_CODEC_ID_CINEPAK) { s 290 libavcodec/utils.c if (s->codec_id == AV_CODEC_ID_JV || s 291 libavcodec/utils.c s->codec_id == AV_CODEC_ID_INTERPLAY_VIDEO) { s 297 libavcodec/utils.c if ((s->codec_id == AV_CODEC_ID_MSZH) || s 298 libavcodec/utils.c (s->codec_id == AV_CODEC_ID_ZLIB)) { s 304 libavcodec/utils.c if (s->codec_id == AV_CODEC_ID_CINEPAK) { s 313 libavcodec/utils.c if (s->codec_id == AV_CODEC_ID_IFF_ILBM) { s 319 libavcodec/utils.c if (s->codec_id == AV_CODEC_ID_H264 || s->lowres || s 320 libavcodec/utils.c s->codec_id == AV_CODEC_ID_VP5 || s->codec_id == AV_CODEC_ID_VP6 || s 321 libavcodec/utils.c s->codec_id == AV_CODEC_ID_VP6F || s->codec_id == AV_CODEC_ID_VP6A s 338 libavcodec/utils.c void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height) s 340 libavcodec/utils.c const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(s->pix_fmt); s 345 libavcodec/utils.c avcodec_align_dimensions2(s, width, height, linesize_align); s 1775 libavcodec/utils.c int ff_thread_init(AVCodecContext *s) s 1782 libavcodec/utils.c unsigned int av_xiphlacing(unsigned char *s, unsigned int v) s 1787 libavcodec/utils.c *s++ = 0xff; s 1791 libavcodec/utils.c *s = v; s 1917 libavcodec/utils.c int avcodec_is_open(AVCodecContext *s) s 1919 libavcodec/utils.c return !!s->internal; s 38 libavcodec/v210_template.c V210EncContext *s = avctx->priv_data; s 46 libavcodec/v210_template.c const int sample_size = 6 * s->RENAME(sample_factor); s 52 libavcodec/v210_template.c s->RENAME(pack_line)(y, u, v, dst, w); s 57 libavcodec/v210_template.c dst += sample_w * 16 * s->RENAME(sample_factor); s 60 libavcodec/v210dec.c av_cold void ff_v210dec_init(V210DecContext *s) s 62 libavcodec/v210dec.c s->unpack_frame = v210_planar_unpack_c; s 64 libavcodec/v210dec.c ff_v210_x86_init(s); s 69 libavcodec/v210dec.c V210DecContext *s = avctx->priv_data; s 74 libavcodec/v210dec.c s->thread_count = av_clip(avctx->thread_count, 1, avctx->height/4); s 75 libavcodec/v210dec.c s->aligned_input = 0; s 76 libavcodec/v210dec.c ff_v210dec_init(s); s 83 libavcodec/v210dec.c V210DecContext *s = avctx->priv_data; s 88 libavcodec/v210dec.c int slice_start = (avctx->height * jobnr) / s->thread_count; s 89 libavcodec/v210dec.c int slice_end = (avctx->height * (jobnr+1)) / s->thread_count; s 101 libavcodec/v210dec.c s->unpack_frame(src, y, u, v, w); s 143 libavcodec/v210dec.c V210DecContext *s = avctx->priv_data; s 150 libavcodec/v210dec.c if (s->custom_stride ) s 151 libavcodec/v210dec.c stride = s->custom_stride; s 160 libavcodec/v210dec.c if (!s->stride_warning_shown) s 162 libavcodec/v210dec.c s->stride_warning_shown = 1; s 176 libavcodec/v210dec.c if (aligned_input != s->aligned_input) { s 177 libavcodec/v210dec.c s->aligned_input = aligned_input; s 178 libavcodec/v210dec.c ff_v210dec_init(s); s 189 libavcodec/v210dec.c avctx->execute2(avctx, v210_decode_slice, &td, NULL, s->thread_count); s 35 libavcodec/v210dec.h void ff_v210dec_init(V210DecContext *s); s 36 libavcodec/v210dec.h void ff_v210_x86_init(V210DecContext *s); s 84 libavcodec/v210enc.c av_cold void ff_v210enc_init(V210EncContext *s) s 86 libavcodec/v210enc.c s->pack_line_8 = v210_planar_pack_8_c; s 87 libavcodec/v210enc.c s->pack_line_10 = v210_planar_pack_10_c; s 88 libavcodec/v210enc.c s->sample_factor_8 = 2; s 89 libavcodec/v210enc.c s->sample_factor_10 = 1; s 92 libavcodec/v210enc.c ff_v210enc_init_x86(s); s 97 libavcodec/v210enc.c V210EncContext *s = avctx->priv_data; s 110 libavcodec/v210enc.c ff_v210enc_init(s); s 35 libavcodec/v210enc.h void ff_v210enc_init(V210EncContext *s); s 37 libavcodec/v210enc.h void ff_v210enc_init_x86(V210EncContext *s); s 54 libavcodec/v4l2_buffers.c V4L2m2mContext *s = buf_to_m2mctx(avbuf); s 56 libavcodec/v4l2_buffers.c if (s->avctx->pkt_timebase.num) s 57 libavcodec/v4l2_buffers.c return s->avctx->pkt_timebase; s 58 libavcodec/v4l2_buffers.c return s->avctx->time_base; s 216 libavcodec/v4l2_buffers.c V4L2m2mContext *s = buf_to_m2mctx(avbuf); s 219 libavcodec/v4l2_buffers.c atomic_fetch_sub_explicit(&s->refcount, 1, memory_order_acq_rel); s 221 libavcodec/v4l2_buffers.c if (s->reinit) { s 222 libavcodec/v4l2_buffers.c if (!atomic_load(&s->refcount)) s 223 libavcodec/v4l2_buffers.c sem_post(&s->refsync); s 225 libavcodec/v4l2_buffers.c if (s->draining && V4L2_TYPE_IS_OUTPUT(avbuf->context->type)) { s 239 libavcodec/v4l2_buffers.c V4L2m2mContext *s = buf_to_m2mctx(in); s 244 libavcodec/v4l2_buffers.c in->context_ref = av_buffer_ref(s->self_ref); s 252 libavcodec/v4l2_buffers.c atomic_fetch_add_explicit(&s->refcount, 1, memory_order_relaxed); s 113 libavcodec/v4l2_context.c V4L2m2mContext *s = ctx_to_m2mctx(ctx); s 117 libavcodec/v4l2_context.c if (s->avctx && av_codec_is_decoder(s->avctx->codec)) s 163 libavcodec/v4l2_context.c V4L2m2mContext *s = ctx_to_m2mctx(ctx); s 164 libavcodec/v4l2_context.c struct v4l2_format cap_fmt = s->capture.format; s 165 libavcodec/v4l2_context.c struct v4l2_format out_fmt = s->output.format; s 169 libavcodec/v4l2_context.c ret = ioctl(s->fd, VIDIOC_DQEVENT, &evt); s 183 libavcodec/v4l2_context.c ret = ioctl(s->fd, VIDIOC_G_FMT, &out_fmt); s 185 libavcodec/v4l2_context.c av_log(logger(ctx), AV_LOG_ERROR, "%s VIDIOC_G_FMT\n", s->output.name); s 189 libavcodec/v4l2_context.c ret = ioctl(s->fd, VIDIOC_G_FMT, &cap_fmt); s 191 libavcodec/v4l2_context.c av_log(logger(ctx), AV_LOG_ERROR, "%s VIDIOC_G_FMT\n", s->capture.name); s 195 libavcodec/v4l2_context.c full_reinit = v4l2_resolution_changed(&s->output, &out_fmt); s 197 libavcodec/v4l2_context.c s->output.height = v4l2_get_height(&out_fmt); s 198 libavcodec/v4l2_context.c s->output.width = v4l2_get_width(&out_fmt); s 199 libavcodec/v4l2_context.c s->output.sample_aspect_ratio = v4l2_get_sar(&s->output); s 202 libavcodec/v4l2_context.c reinit = v4l2_resolution_changed(&s->capture, &cap_fmt); s 204 libavcodec/v4l2_context.c s->capture.height = v4l2_get_height(&cap_fmt); s 205 libavcodec/v4l2_context.c s->capture.width = v4l2_get_width(&cap_fmt); s 206 libavcodec/v4l2_context.c s->capture.sample_aspect_ratio = v4l2_get_sar(&s->capture); s 210 libavcodec/v4l2_context.c s->reinit = 1; s 213 libavcodec/v4l2_context.c ret = ff_v4l2_m2m_codec_full_reinit(s); s 222 libavcodec/v4l2_context.c if (s->avctx) s 223 libavcodec/v4l2_context.c ret = ff_set_dimensions(s->avctx, s->capture.width, s->capture.height); s 227 libavcodec/v4l2_context.c ret = ff_v4l2_m2m_codec_reinit(s); s 588 libavcodec/v4l2_context.c V4L2m2mContext *s = ctx_to_m2mctx(ctx); s 596 libavcodec/v4l2_context.c s->draining= 1; s 613 libavcodec/v4l2_context.c V4L2m2mContext *s = ctx_to_m2mctx(ctx); s 621 libavcodec/v4l2_context.c s->draining = 1; s 724 libavcodec/v4l2_context.c V4L2m2mContext *s = ctx_to_m2mctx(ctx); s 733 libavcodec/v4l2_context.c ret = ioctl(s->fd, VIDIOC_G_FMT, &ctx->format); s 741 libavcodec/v4l2_context.c ret = ioctl(s->fd, VIDIOC_REQBUFS, &req); s 63 libavcodec/v4l2_m2m.c static int v4l2_prepare_contexts(V4L2m2mContext *s, int probe) s 66 libavcodec/v4l2_m2m.c void *log_ctx = s->avctx; s 69 libavcodec/v4l2_m2m.c s->capture.done = s->output.done = 0; s 70 libavcodec/v4l2_m2m.c s->capture.name = "capture"; s 71 libavcodec/v4l2_m2m.c s->output.name = "output"; s 72 libavcodec/v4l2_m2m.c atomic_init(&s->refcount, 0); s 73 libavcodec/v4l2_m2m.c sem_init(&s->refsync, 0, 0); s 76 libavcodec/v4l2_m2m.c ret = ioctl(s->fd, VIDIOC_QUERYCAP, &cap); s 86 libavcodec/v4l2_m2m.c s->capture.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; s 87 libavcodec/v4l2_m2m.c s->output.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; s 92 libavcodec/v4l2_m2m.c s->capture.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; s 93 libavcodec/v4l2_m2m.c s->output.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; s 100 libavcodec/v4l2_m2m.c static int v4l2_probe_driver(V4L2m2mContext *s) s 102 libavcodec/v4l2_m2m.c void *log_ctx = s->avctx; s 105 libavcodec/v4l2_m2m.c s->fd = open(s->devname, O_RDWR | O_NONBLOCK, 0); s 106 libavcodec/v4l2_m2m.c if (s->fd < 0) s 109 libavcodec/v4l2_m2m.c ret = v4l2_prepare_contexts(s, 1); s 113 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_get_format(&s->output, 1); s 119 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_get_format(&s->capture, 1); s 126 libavcodec/v4l2_m2m.c if (close(s->fd) < 0) { s 128 libavcodec/v4l2_m2m.c av_log(log_ctx, AV_LOG_ERROR, "failure closing %s (%s)\n", s->devname, av_err2str(AVERROR(errno))); s 131 libavcodec/v4l2_m2m.c s->fd = -1; s 136 libavcodec/v4l2_m2m.c static int v4l2_configure_contexts(V4L2m2mContext *s) s 138 libavcodec/v4l2_m2m.c void *log_ctx = s->avctx; s 142 libavcodec/v4l2_m2m.c s->fd = open(s->devname, O_RDWR | O_NONBLOCK, 0); s 143 libavcodec/v4l2_m2m.c if (s->fd < 0) s 146 libavcodec/v4l2_m2m.c ret = v4l2_prepare_contexts(s, 0); s 150 libavcodec/v4l2_m2m.c ofmt = s->output.format; s 151 libavcodec/v4l2_m2m.c cfmt = s->capture.format; s 160 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_format(&s->output); s 166 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_format(&s->capture); s 172 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_init(&s->output); s 179 libavcodec/v4l2_m2m.c if (s->avctx && !av_codec_is_decoder(s->avctx->codec)) { s 180 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_init(&s->capture); s 190 libavcodec/v4l2_m2m.c if (close(s->fd) < 0) { s 193 libavcodec/v4l2_m2m.c s->devname, av_err2str(AVERROR(errno))); s 195 libavcodec/v4l2_m2m.c s->fd = -1; s 205 libavcodec/v4l2_m2m.c int ff_v4l2_m2m_codec_reinit(V4L2m2mContext *s) s 207 libavcodec/v4l2_m2m.c void *log_ctx = s->avctx; s 213 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_status(&s->capture, VIDIOC_STREAMOFF); s 222 libavcodec/v4l2_m2m.c if (atomic_load(&s->refcount)) s 223 libavcodec/v4l2_m2m.c while(sem_wait(&s->refsync) == -1 && errno == EINTR); s 225 libavcodec/v4l2_m2m.c ff_v4l2_context_release(&s->capture); s 228 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_get_format(&s->capture, 0); s 235 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_format(&s->capture); s 242 libavcodec/v4l2_m2m.c s->draining = 0; s 243 libavcodec/v4l2_m2m.c s->reinit = 0; s 248 libavcodec/v4l2_m2m.c int ff_v4l2_m2m_codec_full_reinit(V4L2m2mContext *s) s 250 libavcodec/v4l2_m2m.c void *log_ctx = s->avctx; s 253 libavcodec/v4l2_m2m.c av_log(log_ctx, AV_LOG_DEBUG, "%s full reinit\n", s->devname); s 256 libavcodec/v4l2_m2m.c if (atomic_load(&s->refcount)) s 257 libavcodec/v4l2_m2m.c while(sem_wait(&s->refsync) == -1 && errno == EINTR); s 259 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_status(&s->output, VIDIOC_STREAMOFF); s 265 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_status(&s->capture, VIDIOC_STREAMOFF); s 272 libavcodec/v4l2_m2m.c ff_v4l2_context_release(&s->output); s 273 libavcodec/v4l2_m2m.c ff_v4l2_context_release(&s->capture); s 276 libavcodec/v4l2_m2m.c s->draining = 0; s 277 libavcodec/v4l2_m2m.c s->reinit = 0; s 279 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_get_format(&s->output, 0); s 285 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_get_format(&s->capture, 0); s 291 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_format(&s->output); s 297 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_format(&s->capture); s 303 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_init(&s->output); s 310 libavcodec/v4l2_m2m.c if (s->avctx && !av_codec_is_decoder(s->avctx->codec)) { s 311 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_init(&s->capture); s 326 libavcodec/v4l2_m2m.c V4L2m2mContext *s = (V4L2m2mContext*)context; s 328 libavcodec/v4l2_m2m.c ff_v4l2_context_release(&s->capture); s 329 libavcodec/v4l2_m2m.c sem_destroy(&s->refsync); s 331 libavcodec/v4l2_m2m.c close(s->fd); s 333 libavcodec/v4l2_m2m.c av_free(s); s 338 libavcodec/v4l2_m2m.c V4L2m2mContext *s = priv->context; s 341 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_status(&s->output, VIDIOC_STREAMOFF); s 343 libavcodec/v4l2_m2m.c av_log(s->avctx, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->output.name); s 345 libavcodec/v4l2_m2m.c ret = ff_v4l2_context_set_status(&s->capture, VIDIOC_STREAMOFF); s 347 libavcodec/v4l2_m2m.c av_log(s->avctx, AV_LOG_ERROR, "VIDIOC_STREAMOFF %s\n", s->capture.name); s 349 libavcodec/v4l2_m2m.c ff_v4l2_context_release(&s->output); s 351 libavcodec/v4l2_m2m.c s->self_ref = NULL; s 363 libavcodec/v4l2_m2m.c V4L2m2mContext *s = priv->context; s 374 libavcodec/v4l2_m2m.c snprintf(s->devname, sizeof(s->devname), "/dev/%s", entry->d_name); s 375 libavcodec/v4l2_m2m.c av_log(s->avctx, AV_LOG_DEBUG, "probing device %s\n", s->devname); s 376 libavcodec/v4l2_m2m.c ret = v4l2_probe_driver(s); s 384 libavcodec/v4l2_m2m.c av_log(s->avctx, AV_LOG_ERROR, "Could not find a valid device\n"); s 385 libavcodec/v4l2_m2m.c memset(s->devname, 0, sizeof(s->devname)); s 390 libavcodec/v4l2_m2m.c av_log(s->avctx, AV_LOG_INFO, "Using device %s\n", s->devname); s 392 libavcodec/v4l2_m2m.c return v4l2_configure_contexts(s); s 395 libavcodec/v4l2_m2m.c int ff_v4l2_m2m_create_context(V4L2m2mPriv *priv, V4L2m2mContext **s) s 397 libavcodec/v4l2_m2m.c *s = av_mallocz(sizeof(V4L2m2mContext)); s 398 libavcodec/v4l2_m2m.c if (!*s) s 401 libavcodec/v4l2_m2m.c priv->context_ref = av_buffer_create((uint8_t *) *s, sizeof(V4L2m2mContext), s 404 libavcodec/v4l2_m2m.c av_freep(s); s 409 libavcodec/v4l2_m2m.c priv->context = *s; s 410 libavcodec/v4l2_m2m.c (*s)->priv = priv; s 86 libavcodec/v4l2_m2m.h int ff_v4l2_m2m_create_context(V4L2m2mPriv *priv, V4L2m2mContext **s); s 39 libavcodec/v4l2_m2m_dec.c V4L2m2mContext *s = ((V4L2m2mPriv*)avctx->priv_data)->context; s 40 libavcodec/v4l2_m2m_dec.c V4L2Context *const capture = &s->capture; s 41 libavcodec/v4l2_m2m_dec.c V4L2Context *const output = &s->output; s 59 libavcodec/v4l2_m2m_dec.c ret = ioctl(s->fd, VIDIOC_G_FMT, &capture->format); s 73 libavcodec/v4l2_m2m_dec.c ret = ioctl(s->fd, VIDIOC_S_SELECTION, &selection); s 75 libavcodec/v4l2_m2m_dec.c ret = ioctl(s->fd, VIDIOC_G_SELECTION, &selection); s 105 libavcodec/v4l2_m2m_dec.c static int v4l2_prepare_decoder(V4L2m2mContext *s) s 108 libavcodec/v4l2_m2m_dec.c V4L2Context *output = &s->output; s 116 libavcodec/v4l2_m2m_dec.c ret = ioctl(s->fd, VIDIOC_SUBSCRIBE_EVENT, &sub); s 119 libavcodec/v4l2_m2m_dec.c av_log(s->avctx, AV_LOG_ERROR, s 128 libavcodec/v4l2_m2m_dec.c ret = ioctl(s->fd, VIDIOC_SUBSCRIBE_EVENT, &sub); s 130 libavcodec/v4l2_m2m_dec.c av_log(s->avctx, AV_LOG_WARNING, s 138 libavcodec/v4l2_m2m_dec.c V4L2m2mContext *s = ((V4L2m2mPriv*)avctx->priv_data)->context; s 139 libavcodec/v4l2_m2m_dec.c V4L2Context *const capture = &s->capture; s 140 libavcodec/v4l2_m2m_dec.c V4L2Context *const output = &s->output; s 144 libavcodec/v4l2_m2m_dec.c if (s->buf_pkt.size) { s 145 libavcodec/v4l2_m2m_dec.c avpkt = s->buf_pkt; s 146 libavcodec/v4l2_m2m_dec.c memset(&s->buf_pkt, 0, sizeof(AVPacket)); s 153 libavcodec/v4l2_m2m_dec.c if (s->draining) s 161 libavcodec/v4l2_m2m_dec.c s->buf_pkt = avpkt; s 179 libavcodec/v4l2_m2m_dec.c if (!s->buf_pkt.size) s 187 libavcodec/v4l2_m2m_dec.c V4L2m2mContext *s; s 191 libavcodec/v4l2_m2m_dec.c ret = ff_v4l2_m2m_create_context(priv, &s); s 195 libavcodec/v4l2_m2m_dec.c capture = &s->capture; s 196 libavcodec/v4l2_m2m_dec.c output = &s->output; s 211 libavcodec/v4l2_m2m_dec.c s->avctx = avctx; s 215 libavcodec/v4l2_m2m_dec.c s->self_ref = NULL; s 221 libavcodec/v4l2_m2m_dec.c return v4l2_prepare_decoder(s); s 227 libavcodec/v4l2_m2m_dec.c V4L2m2mContext *s = priv->context; s 228 libavcodec/v4l2_m2m_dec.c av_packet_unref(&s->buf_pkt); s 40 libavcodec/v4l2_m2m_enc.c static inline void v4l2_set_timeperframe(V4L2m2mContext *s, unsigned int num, unsigned int den) s 44 libavcodec/v4l2_m2m_enc.c parm.type = V4L2_TYPE_IS_MULTIPLANAR(s->output.type) ? V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE : V4L2_BUF_TYPE_VIDEO_OUTPUT; s 48 libavcodec/v4l2_m2m_enc.c if (ioctl(s->fd, VIDIOC_S_PARM, &parm) < 0) s 49 libavcodec/v4l2_m2m_enc.c av_log(s->avctx, AV_LOG_WARNING, "Failed to set timeperframe"); s 52 libavcodec/v4l2_m2m_enc.c static inline void v4l2_set_ext_ctrl(V4L2m2mContext *s, unsigned int id, signed int value, const char *name, int log_warning) s 66 libavcodec/v4l2_m2m_enc.c if (ioctl(s->fd, VIDIOC_S_EXT_CTRLS, &ctrls) < 0) s 67 libavcodec/v4l2_m2m_enc.c av_log(s->avctx, log_warning || errno != EINVAL ? AV_LOG_WARNING : AV_LOG_DEBUG, s 70 libavcodec/v4l2_m2m_enc.c av_log(s->avctx, AV_LOG_DEBUG, "Encoder: %s = %d\n", name, value); s 73 libavcodec/v4l2_m2m_enc.c static inline int v4l2_get_ext_ctrl(V4L2m2mContext *s, unsigned int id, signed int *value, const char *name, int log_warning) s 87 libavcodec/v4l2_m2m_enc.c ret = ioctl(s->fd, VIDIOC_G_EXT_CTRLS, &ctrls); s 89 libavcodec/v4l2_m2m_enc.c av_log(s->avctx, log_warning || errno != EINVAL ? AV_LOG_WARNING : AV_LOG_DEBUG, s 147 libavcodec/v4l2_m2m_enc.c static int v4l2_check_b_frame_support(V4L2m2mContext *s) s 149 libavcodec/v4l2_m2m_enc.c if (s->avctx->max_b_frames) s 150 libavcodec/v4l2_m2m_enc.c av_log(s->avctx, AV_LOG_WARNING, "Encoder does not support b-frames yet\n"); s 152 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, MPEG_CID(B_FRAMES), 0, "number of B-frames", 0); s 153 libavcodec/v4l2_m2m_enc.c v4l2_get_ext_ctrl(s, MPEG_CID(B_FRAMES), &s->avctx->max_b_frames, "number of B-frames", 0); s 154 libavcodec/v4l2_m2m_enc.c if (s->avctx->max_b_frames == 0) s 157 libavcodec/v4l2_m2m_enc.c avpriv_report_missing_feature(s->avctx, "DTS/PTS calculation for V4L2 encoding"); s 162 libavcodec/v4l2_m2m_enc.c static inline void v4l2_subscribe_eos_event(V4L2m2mContext *s) s 168 libavcodec/v4l2_m2m_enc.c if (ioctl(s->fd, VIDIOC_SUBSCRIBE_EVENT, &sub) < 0) s 169 libavcodec/v4l2_m2m_enc.c av_log(s->avctx, AV_LOG_WARNING, s 173 libavcodec/v4l2_m2m_enc.c static int v4l2_prepare_encoder(V4L2m2mContext *s) s 175 libavcodec/v4l2_m2m_enc.c AVCodecContext *avctx = s->avctx; s 182 libavcodec/v4l2_m2m_enc.c v4l2_subscribe_eos_event(s); s 184 libavcodec/v4l2_m2m_enc.c ret = v4l2_check_b_frame_support(s); s 192 libavcodec/v4l2_m2m_enc.c v4l2_set_timeperframe(s, avctx->framerate.den, avctx->framerate.num); s 195 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, MPEG_CID(HEADER_MODE), MPEG_VIDEO(HEADER_MODE_SEPARATE), "header mode", 0); s 196 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, MPEG_CID(BITRATE) , avctx->bit_rate, "bit rate", 1); s 197 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, MPEG_CID(FRAME_RC_ENABLE), 1, "frame level rate control", 0); s 198 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, MPEG_CID(GOP_SIZE), avctx->gop_size,"gop size", 1); s 213 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, MPEG_CID(H264_PROFILE), val, "h264 profile", 1); s 226 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, MPEG_CID(MPEG4_PROFILE), val, "mpeg4 profile", 1); s 231 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, MPEG_CID(MPEG4_QPEL), 1, "qpel", 1); s 265 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, qmin_cid, qmin, "minimum video quantizer scale", s 267 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, qmax_cid, qmax, "maximum video quantizer scale", s 275 libavcodec/v4l2_m2m_enc.c V4L2m2mContext *s = ((V4L2m2mPriv*)avctx->priv_data)->context; s 276 libavcodec/v4l2_m2m_enc.c V4L2Context *const output = &s->output; s 280 libavcodec/v4l2_m2m_enc.c v4l2_set_ext_ctrl(s, MPEG_CID(FORCE_KEY_FRAME), 0, "force key frame", 1); s 288 libavcodec/v4l2_m2m_enc.c V4L2m2mContext *s = ((V4L2m2mPriv*)avctx->priv_data)->context; s 289 libavcodec/v4l2_m2m_enc.c V4L2Context *const capture = &s->capture; s 290 libavcodec/v4l2_m2m_enc.c V4L2Context *const output = &s->output; s 293 libavcodec/v4l2_m2m_enc.c if (s->draining) s 319 libavcodec/v4l2_m2m_enc.c V4L2m2mContext *s; s 325 libavcodec/v4l2_m2m_enc.c ret = ff_v4l2_m2m_create_context(priv, &s); s 329 libavcodec/v4l2_m2m_enc.c capture = &s->capture; s 330 libavcodec/v4l2_m2m_enc.c output = &s->output; s 344 libavcodec/v4l2_m2m_enc.c s->avctx = avctx; s 363 libavcodec/v4l2_m2m_enc.c return v4l2_prepare_encoder(s); s 30 libavcodec/vaapi_mjpeg.c const MJpegDecodeContext *s = avctx->priv_data; s 31 libavcodec/vaapi_mjpeg.c VAAPIDecodePicture *pic = s->hwaccel_picture_private; s 35 libavcodec/vaapi_mjpeg.c pic->output_surface = ff_vaapi_get_surface_id(s->picture_ptr); s 41 libavcodec/vaapi_mjpeg.c .num_components = s->nb_components, s 44 libavcodec/vaapi_mjpeg.c for (i = 0; i < s->nb_components; i++) { s 45 libavcodec/vaapi_mjpeg.c pp.components[i].component_id = s->component_id[i]; s 46 libavcodec/vaapi_mjpeg.c pp.components[i].h_sampling_factor = s->h_count[i]; s 47 libavcodec/vaapi_mjpeg.c pp.components[i].v_sampling_factor = s->v_count[i]; s 48 libavcodec/vaapi_mjpeg.c pp.components[i].quantiser_table_selector = s->quant_index[i]; s 66 libavcodec/vaapi_mjpeg.c const MJpegDecodeContext *s = avctx->priv_data; s 67 libavcodec/vaapi_mjpeg.c VAAPIDecodePicture *pic = s->hwaccel_picture_private; s 76 libavcodec/vaapi_mjpeg.c const MJpegDecodeContext *s = avctx->priv_data; s 77 libavcodec/vaapi_mjpeg.c VAAPIDecodePicture *pic = s->hwaccel_picture_private; s 87 libavcodec/vaapi_mjpeg.c huff.huffman_table[i].num_dc_codes[j] = s->raw_huffman_lengths[0][i][j]; s 89 libavcodec/vaapi_mjpeg.c huff.huffman_table[i].dc_values[j] = s->raw_huffman_values[0][i][j]; s 91 libavcodec/vaapi_mjpeg.c huff.huffman_table[i].num_ac_codes[j] = s->raw_huffman_lengths[1][i][j]; s 93 libavcodec/vaapi_mjpeg.c huff.huffman_table[i].ac_values[j] = s->raw_huffman_values[1][i][j]; s 106 libavcodec/vaapi_mjpeg.c quant.quantiser_table[i][j] = s->quant_matrixes[i][j]; s 123 libavcodec/vaapi_mjpeg.c .restart_interval = s->restart_interval, s 124 libavcodec/vaapi_mjpeg.c .num_mcus = s->mb_width * s->mb_height, s 127 libavcodec/vaapi_mjpeg.c sp.num_components = s->nb_components; s 128 libavcodec/vaapi_mjpeg.c for (i = 0; i < s->nb_components; i++) { s 129 libavcodec/vaapi_mjpeg.c sp.components[i].component_selector = s->component_id[s->comp_index[i]]; s 130 libavcodec/vaapi_mjpeg.c sp.components[i].dc_table_selector = s->dc_index[i]; s 131 libavcodec/vaapi_mjpeg.c sp.components[i].ac_table_selector = s->ac_index[i]; s 30 libavcodec/vaapi_mpeg2.c static inline int mpeg2_get_f_code(const MpegEncContext *s) s 32 libavcodec/vaapi_mpeg2.c return (s->mpeg_f_code[0][0] << 12) | (s->mpeg_f_code[0][1] << 8) | s 33 libavcodec/vaapi_mpeg2.c (s->mpeg_f_code[1][0] << 4) | s->mpeg_f_code[1][1]; s 37 libavcodec/vaapi_mpeg2.c static inline int mpeg2_get_is_frame_start(const MpegEncContext *s) s 39 libavcodec/vaapi_mpeg2.c return s->first_field || s->picture_structure == PICT_FRAME; s 44 libavcodec/vaapi_mpeg2.c const MpegEncContext *s = avctx->priv_data; s 45 libavcodec/vaapi_mpeg2.c VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private; s 50 libavcodec/vaapi_mpeg2.c pic->output_surface = ff_vaapi_get_surface_id(s->current_picture_ptr->f); s 53 libavcodec/vaapi_mpeg2.c .horizontal_size = s->width, s 54 libavcodec/vaapi_mpeg2.c .vertical_size = s->height, s 57 libavcodec/vaapi_mpeg2.c .picture_coding_type = s->pict_type, s 58 libavcodec/vaapi_mpeg2.c .f_code = mpeg2_get_f_code(s), s 60 libavcodec/vaapi_mpeg2.c .intra_dc_precision = s->intra_dc_precision, s 61 libavcodec/vaapi_mpeg2.c .picture_structure = s->picture_structure, s 62 libavcodec/vaapi_mpeg2.c .top_field_first = s->top_field_first, s 63 libavcodec/vaapi_mpeg2.c .frame_pred_frame_dct = s->frame_pred_frame_dct, s 64 libavcodec/vaapi_mpeg2.c .concealment_motion_vectors = s->concealment_motion_vectors, s 65 libavcodec/vaapi_mpeg2.c .q_scale_type = s->q_scale_type, s 66 libavcodec/vaapi_mpeg2.c .intra_vlc_format = s->intra_vlc_format, s 67 libavcodec/vaapi_mpeg2.c .alternate_scan = s->alternate_scan, s 68 libavcodec/vaapi_mpeg2.c .repeat_first_field = s->repeat_first_field, s 69 libavcodec/vaapi_mpeg2.c .progressive_frame = s->progressive_frame, s 70 libavcodec/vaapi_mpeg2.c .is_first_field = mpeg2_get_is_frame_start(s), s 74 libavcodec/vaapi_mpeg2.c switch (s->pict_type) { s 76 libavcodec/vaapi_mpeg2.c pic_param.backward_reference_picture = ff_vaapi_get_surface_id(s->next_picture.f); s 79 libavcodec/vaapi_mpeg2.c pic_param.forward_reference_picture = ff_vaapi_get_surface_id(s->last_picture.f); s 95 libavcodec/vaapi_mpeg2.c int n = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 96 libavcodec/vaapi_mpeg2.c iq_matrix.intra_quantiser_matrix[i] = s->intra_matrix[n]; s 97 libavcodec/vaapi_mpeg2.c iq_matrix.non_intra_quantiser_matrix[i] = s->inter_matrix[n]; s 98 libavcodec/vaapi_mpeg2.c iq_matrix.chroma_intra_quantiser_matrix[i] = s->chroma_intra_matrix[n]; s 99 libavcodec/vaapi_mpeg2.c iq_matrix.chroma_non_intra_quantiser_matrix[i] = s->chroma_inter_matrix[n]; s 117 libavcodec/vaapi_mpeg2.c MpegEncContext *s = avctx->priv_data; s 118 libavcodec/vaapi_mpeg2.c VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private; s 125 libavcodec/vaapi_mpeg2.c ff_mpeg_draw_horiz_band(s, 0, s->avctx->height); s 133 libavcodec/vaapi_mpeg2.c const MpegEncContext *s = avctx->priv_data; s 134 libavcodec/vaapi_mpeg2.c VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private; s 158 libavcodec/vaapi_mpeg2.c .slice_horizontal_position = s->mb_x, s 159 libavcodec/vaapi_mpeg2.c .slice_vertical_position = s->mb_y >> (s->picture_structure != PICT_FRAME), s 31 libavcodec/vaapi_mpeg4.c static int mpeg4_get_intra_dc_vlc_thr(Mpeg4DecContext *s) s 33 libavcodec/vaapi_mpeg4.c switch (s->intra_dc_threshold) { s 49 libavcodec/vaapi_mpeg4.c MpegEncContext *s = &ctx->m; s 50 libavcodec/vaapi_mpeg4.c VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private; s 54 libavcodec/vaapi_mpeg4.c pic->output_surface = ff_vaapi_get_surface_id(s->current_picture_ptr->f); s 57 libavcodec/vaapi_mpeg4.c .vop_width = s->width, s 58 libavcodec/vaapi_mpeg4.c .vop_height = s->height, s 64 libavcodec/vaapi_mpeg4.c .interlaced = !s->progressive_sequence, s 67 libavcodec/vaapi_mpeg4.c .sprite_warping_accuracy = s->sprite_warping_accuracy, s 68 libavcodec/vaapi_mpeg4.c .quant_type = s->mpeg_quant, s 69 libavcodec/vaapi_mpeg4.c .quarter_sample = s->quarter_sample, s 70 libavcodec/vaapi_mpeg4.c .data_partitioned = s->data_partitioning, s 75 libavcodec/vaapi_mpeg4.c .quant_precision = s->quant_precision, s 77 libavcodec/vaapi_mpeg4.c .vop_coding_type = s->pict_type - AV_PICTURE_TYPE_I, s 79 libavcodec/vaapi_mpeg4.c s->pict_type == AV_PICTURE_TYPE_B ? s->next_picture.f->pict_type - AV_PICTURE_TYPE_I : 0, s 80 libavcodec/vaapi_mpeg4.c .vop_rounding_type = s->no_rounding, s 82 libavcodec/vaapi_mpeg4.c .top_field_first = s->top_field_first, s 83 libavcodec/vaapi_mpeg4.c .alternate_vertical_scan_flag = s->alternate_scan, s 85 libavcodec/vaapi_mpeg4.c .vop_fcode_forward = s->f_code, s 86 libavcodec/vaapi_mpeg4.c .vop_fcode_backward = s->b_code, s 88 libavcodec/vaapi_mpeg4.c .num_macroblocks_in_gob = s->mb_width * H263_GOB_HEIGHT(s->height), s 90 libavcodec/vaapi_mpeg4.c (s->mb_width * s->mb_height) / (s->mb_width * H263_GOB_HEIGHT(s->height)), s 91 libavcodec/vaapi_mpeg4.c .TRB = s->pb_time, s 92 libavcodec/vaapi_mpeg4.c .TRD = s->pp_time, s 100 libavcodec/vaapi_mpeg4.c if (s->pict_type == AV_PICTURE_TYPE_B) s 101 libavcodec/vaapi_mpeg4.c pic_param.backward_reference_picture = ff_vaapi_get_surface_id(s->next_picture.f); s 102 libavcodec/vaapi_mpeg4.c if (s->pict_type != AV_PICTURE_TYPE_I) s 103 libavcodec/vaapi_mpeg4.c pic_param.forward_reference_picture = ff_vaapi_get_surface_id(s->last_picture.f); s 119 libavcodec/vaapi_mpeg4.c int n = s->idsp.idct_permutation[ff_zigzag_direct[i]]; s 120 libavcodec/vaapi_mpeg4.c iq_matrix.intra_quant_mat[i] = s->intra_matrix[n]; s 121 libavcodec/vaapi_mpeg4.c iq_matrix.non_intra_quant_mat[i] = s->inter_matrix[n]; s 139 libavcodec/vaapi_mpeg4.c MpegEncContext *s = avctx->priv_data; s 140 libavcodec/vaapi_mpeg4.c VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private; s 147 libavcodec/vaapi_mpeg4.c ff_mpeg_draw_horiz_band(s, 0, s->avctx->height); s 155 libavcodec/vaapi_mpeg4.c MpegEncContext *s = avctx->priv_data; s 156 libavcodec/vaapi_mpeg4.c VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private; s 164 libavcodec/vaapi_mpeg4.c .macroblock_offset = get_bits_count(&s->gb) % 8, s 166 libavcodec/vaapi_mpeg4.c .quant_scale = s->qscale, s 48 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) && s 60 libavcodec/vaapi_vc1.c ((v->s.pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) || s 61 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_B && !v->bi_type)); s 70 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_B && !v->bi_type); s 79 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_I || s 80 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_B && v->bi_type)); s 89 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_I || s 90 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_B && v->bi_type)) && s 101 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_I || s 102 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_B && v->bi_type)); s 111 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_B && !v->bi_type); s 117 libavcodec/vaapi_vc1.c const MpegEncContext *s = &v->s; s 118 libavcodec/vaapi_vc1.c switch (s->pict_type) { s 129 libavcodec/vaapi_vc1.c const MpegEncContext *s = &v->s; s 130 libavcodec/vaapi_vc1.c switch (s->pict_type) { s 142 libavcodec/vaapi_vc1.c ((v->s.pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) || s 143 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_B && !v->bi_type))) s 152 libavcodec/vaapi_vc1.c (v->s.pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) && s 160 libavcodec/vaapi_vc1.c if ((v->s.pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) && s 173 libavcodec/vaapi_vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) { s 189 libavcodec/vaapi_vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) { s 205 libavcodec/vaapi_vc1.c if ((v->s.pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) && s 215 libavcodec/vaapi_vc1.c if ((v->s.pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) && s 253 libavcodec/vaapi_vc1.c const MpegEncContext *s = &v->s; s 254 libavcodec/vaapi_vc1.c VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private; s 258 libavcodec/vaapi_vc1.c pic->output_surface = ff_vaapi_get_surface_id(s->current_picture_ptr->f); s 274 libavcodec/vaapi_vc1.c .max_b_frames = s->avctx->max_b_frames, s 277 libavcodec/vaapi_vc1.c .coded_width = s->avctx->coded_width, s 278 libavcodec/vaapi_vc1.c .coded_height = s->avctx->coded_height, s 283 libavcodec/vaapi_vc1.c .loopfilter = s->loop_filter, s 341 libavcodec/vaapi_vc1.c .mv_table = (v->fcm == PROGRESSIVE ? s->mv_table_index : v->imvtab), s 369 libavcodec/vaapi_vc1.c .intra_transform_dc_table = v->s.dc_table_index, s 373 libavcodec/vaapi_vc1.c switch (s->pict_type) { s 375 libavcodec/vaapi_vc1.c pic_param.backward_reference_picture = ff_vaapi_get_surface_id(s->next_picture.f); s 378 libavcodec/vaapi_vc1.c pic_param.forward_reference_picture = ff_vaapi_get_surface_id(s->last_picture.f); s 392 libavcodec/vaapi_vc1.c size_t size = (s->mb_width * s->mb_height + 1) / 2; s 400 libavcodec/vaapi_vc1.c switch (s->pict_type) { s 403 libavcodec/vaapi_vc1.c ff_bp[1] = pic_param.bitplane_present.flags.bp_skip_mb ? s->mbskip_table : NULL; s 409 libavcodec/vaapi_vc1.c ff_bp[1] = pic_param.bitplane_present.flags.bp_skip_mb ? s->mbskip_table : NULL; s 427 libavcodec/vaapi_vc1.c for (y = 0; y < s->mb_height; y++) s 428 libavcodec/vaapi_vc1.c for (x = 0; x < s->mb_width; x++, n++) s 429 libavcodec/vaapi_vc1.c vc1_pack_bitplanes(bitplane, n, ff_bp, x, y, s->mb_stride); s 450 libavcodec/vaapi_vc1.c MpegEncContext *s = &v->s; s 451 libavcodec/vaapi_vc1.c VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private; s 458 libavcodec/vaapi_vc1.c ff_mpeg_draw_horiz_band(s, 0, s->avctx->height); s 467 libavcodec/vaapi_vc1.c const MpegEncContext *s = &v->s; s 468 libavcodec/vaapi_vc1.c VAAPIDecodePicture *pic = s->current_picture_ptr->hwaccel_picture_private; s 488 libavcodec/vaapi_vc1.c .macroblock_offset = get_bits_count(&s->gb), s 489 libavcodec/vaapi_vc1.c .slice_vertical_position = s->mb_y % mb_height, s 38 libavcodec/vaapi_vp8.c const VP8Context *s = avctx->priv_data; s 39 libavcodec/vaapi_vp8.c VAAPIDecodePicture *pic = s->framep[VP56_FRAME_CURRENT]->hwaccel_picture_private; s 45 libavcodec/vaapi_vp8.c pic->output_surface = vaapi_vp8_surface_id(s->framep[VP56_FRAME_CURRENT]); s 51 libavcodec/vaapi_vp8.c .last_ref_frame = vaapi_vp8_surface_id(s->framep[VP56_FRAME_PREVIOUS]), s 52 libavcodec/vaapi_vp8.c .golden_ref_frame = vaapi_vp8_surface_id(s->framep[VP56_FRAME_GOLDEN]), s 53 libavcodec/vaapi_vp8.c .alt_ref_frame = vaapi_vp8_surface_id(s->framep[VP56_FRAME_GOLDEN2]), s 57 libavcodec/vaapi_vp8.c .key_frame = !s->keyframe, s 58 libavcodec/vaapi_vp8.c .version = s->profile, s 60 libavcodec/vaapi_vp8.c .segmentation_enabled = s->segmentation.enabled, s 61 libavcodec/vaapi_vp8.c .update_mb_segmentation_map = s->segmentation.update_map, s 62 libavcodec/vaapi_vp8.c .update_segment_feature_data = s->segmentation.update_feature_data, s 64 libavcodec/vaapi_vp8.c .filter_type = s->filter.simple, s 65 libavcodec/vaapi_vp8.c .sharpness_level = s->filter.sharpness, s 67 libavcodec/vaapi_vp8.c .loop_filter_adj_enable = s->lf_delta.enabled, s 68 libavcodec/vaapi_vp8.c .mode_ref_lf_delta_update = s->lf_delta.update, s 70 libavcodec/vaapi_vp8.c .sign_bias_golden = s->sign_bias[VP56_FRAME_GOLDEN], s 71 libavcodec/vaapi_vp8.c .sign_bias_alternate = s->sign_bias[VP56_FRAME_GOLDEN2], s 73 libavcodec/vaapi_vp8.c .mb_no_coeff_skip = s->mbskip_enabled, s 74 libavcodec/vaapi_vp8.c .loop_filter_disable = s->filter.level == 0, s 77 libavcodec/vaapi_vp8.c .prob_skip_false = s->prob->mbskip, s 78 libavcodec/vaapi_vp8.c .prob_intra = s->prob->intra, s 79 libavcodec/vaapi_vp8.c .prob_last = s->prob->last, s 80 libavcodec/vaapi_vp8.c .prob_gf = s->prob->golden, s 84 libavcodec/vaapi_vp8.c pp.mb_segment_tree_probs[i] = s->prob->segmentid[i]; s 87 libavcodec/vaapi_vp8.c if (s->segmentation.enabled) { s 88 libavcodec/vaapi_vp8.c pp.loop_filter_level[i] = s->segmentation.filter_level[i]; s 89 libavcodec/vaapi_vp8.c if (!s->segmentation.absolute_vals) s 90 libavcodec/vaapi_vp8.c pp.loop_filter_level[i] += s->filter.level; s 92 libavcodec/vaapi_vp8.c pp.loop_filter_level[i] = s->filter.level; s 98 libavcodec/vaapi_vp8.c pp.loop_filter_deltas_ref_frame[i] = s->lf_delta.ref[i]; s 99 libavcodec/vaapi_vp8.c pp.loop_filter_deltas_mode[i] = s->lf_delta.mode[i + 4]; s 102 libavcodec/vaapi_vp8.c if (s->keyframe) { s 113 libavcodec/vaapi_vp8.c pp.y_mode_probs[i] = s->prob->pred16x16[i]; s 115 libavcodec/vaapi_vp8.c pp.uv_mode_probs[i] = s->prob->pred8x8c[i]; s 119 libavcodec/vaapi_vp8.c pp.mv_probs[i][j] = s->prob->mvc[i][j]; s 121 libavcodec/vaapi_vp8.c pp.bool_coder_ctx.range = s->coder_state_at_header_end.range; s 122 libavcodec/vaapi_vp8.c pp.bool_coder_ctx.value = s->coder_state_at_header_end.value; s 123 libavcodec/vaapi_vp8.c pp.bool_coder_ctx.count = s->coder_state_at_header_end.bit_count; s 140 libavcodec/vaapi_vp8.c s->prob->token[i][coeff_pos][k], 11); s 152 libavcodec/vaapi_vp8.c int base_qi = s->segmentation.base_quant[i]; s 153 libavcodec/vaapi_vp8.c if (!s->segmentation.absolute_vals) s 154 libavcodec/vaapi_vp8.c base_qi += s->quant.yac_qi; s 157 libavcodec/vaapi_vp8.c quant.quantization_index[i][1] = av_clip_uintp2(base_qi + s->quant.ydc_delta, 7); s 158 libavcodec/vaapi_vp8.c quant.quantization_index[i][2] = av_clip_uintp2(base_qi + s->quant.y2dc_delta, 7); s 159 libavcodec/vaapi_vp8.c quant.quantization_index[i][3] = av_clip_uintp2(base_qi + s->quant.y2ac_delta, 7); s 160 libavcodec/vaapi_vp8.c quant.quantization_index[i][4] = av_clip_uintp2(base_qi + s->quant.uvdc_delta, 7); s 161 libavcodec/vaapi_vp8.c quant.quantization_index[i][5] = av_clip_uintp2(base_qi + s->quant.uvac_delta, 7); s 179 libavcodec/vaapi_vp8.c const VP8Context *s = avctx->priv_data; s 180 libavcodec/vaapi_vp8.c VAAPIDecodePicture *pic = s->framep[VP56_FRAME_CURRENT]->hwaccel_picture_private; s 189 libavcodec/vaapi_vp8.c const VP8Context *s = avctx->priv_data; s 190 libavcodec/vaapi_vp8.c VAAPIDecodePicture *pic = s->framep[VP56_FRAME_CURRENT]->hwaccel_picture_private; s 194 libavcodec/vaapi_vp8.c unsigned int header_size = 3 + 7 * s->keyframe; s 203 libavcodec/vaapi_vp8.c .macroblock_offset = (8 * (s->coder_state_at_header_end.input - data) - s 204 libavcodec/vaapi_vp8.c s->coder_state_at_header_end.bit_count - 8), s 205 libavcodec/vaapi_vp8.c .num_of_partitions = s->num_coeff_partitions + 1, s 208 libavcodec/vaapi_vp8.c sp.partition_size[0] = s->header_partition_size - ((sp.macroblock_offset + 7) / 8); s 210 libavcodec/vaapi_vp8.c sp.partition_size[i+1] = s->coeff_partition_size[i]; s 99 libavcodec/vc1.c GetBitContext *gb = &v->s.gb; s 105 libavcodec/vc1.c width = v->s.mb_width; s 106 libavcodec/vc1.c height = v->s.mb_height >> v->field_mode; s 107 libavcodec/vc1.c stride = v->s.mb_stride; s 153 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "invalid NORM-6 VLC\n"); s 166 libavcodec/vc1.c decode_colskip(data, 1, height, stride, &v->s.gb); s 173 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "invalid NORM-6 VLC\n"); s 187 libavcodec/vc1.c decode_colskip(data, x, height, stride, &v->s.gb); s 189 libavcodec/vc1.c decode_rowskip(data + x, width - x, 1, stride, &v->s.gb); s 193 libavcodec/vc1.c decode_rowskip(data, width, height, stride, &v->s.gb); s 196 libavcodec/vc1.c decode_colskip(data, width, height, stride, &v->s.gb); s 232 libavcodec/vc1.c GetBitContext *gb = &v->s.gb; s 305 libavcodec/vc1.c v->s.loop_filter = get_bits1(gb); //common s 306 libavcodec/vc1.c if (v->s.loop_filter == 1 && v->profile == PROFILE_SIMPLE) { s 310 libavcodec/vc1.c if (v->s.avctx->skip_loop_filter >= AVDISCARD_ALL) s 311 libavcodec/vc1.c v->s.loop_filter = 0; s 358 libavcodec/vc1.c v->s.max_b_frames = avctx->max_b_frames = get_bits(gb, 3); //common s 366 libavcodec/vc1.c int ret = ff_set_dimensions(v->s.avctx, w, h); s 391 libavcodec/vc1.c v->s.loop_filter, v->multires, v->fastuvmc, v->extended_mv, s 402 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_ERROR, "Reserved LEVEL %i\n",v->level); s 406 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_ERROR, s 425 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, s 430 libavcodec/vc1.c v->s.loop_filter, v->chromaformat, v->broadcast, v->interlace, s 435 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_ERROR, "Progressive Segmented Frame mode: not supported (yet)\n"); s 438 libavcodec/vc1.c v->s.max_b_frames = v->s.avctx->max_b_frames = 7; s 441 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "Display extended info:\n"); s 444 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "Display dimensions: %ix%i\n", w, h); s 448 libavcodec/vc1.c v->s.avctx->sample_aspect_ratio = ff_vc1_pixel_aspect[ar]; s 452 libavcodec/vc1.c v->s.avctx->sample_aspect_ratio = (AVRational){w, h}; s 454 libavcodec/vc1.c if (v->s.avctx->width > v->max_coded_width || s 455 libavcodec/vc1.c v->s.avctx->height > v->max_coded_height) { s 456 libavcodec/vc1.c avpriv_request_sample(v->s.avctx, "Huge resolution"); s 458 libavcodec/vc1.c av_reduce(&v->s.avctx->sample_aspect_ratio.num, s 459 libavcodec/vc1.c &v->s.avctx->sample_aspect_ratio.den, s 460 libavcodec/vc1.c v->s.avctx->height * w, s 461 libavcodec/vc1.c v->s.avctx->width * h, s 464 libavcodec/vc1.c ff_set_sar(v->s.avctx, v->s.avctx->sample_aspect_ratio); s 465 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "Aspect: %i:%i\n", s 466 libavcodec/vc1.c v->s.avctx->sample_aspect_ratio.num, s 467 libavcodec/vc1.c v->s.avctx->sample_aspect_ratio.den); s 471 libavcodec/vc1.c v->s.avctx->framerate.den = 32; s 472 libavcodec/vc1.c v->s.avctx->framerate.num = get_bits(gb, 16) + 1; s 478 libavcodec/vc1.c v->s.avctx->framerate.den = ff_vc1_fps_dr[dr - 1]; s 479 libavcodec/vc1.c v->s.avctx->framerate.num = ff_vc1_fps_nr[nr - 1] * 1000; s 483 libavcodec/vc1.c v->s.avctx->ticks_per_frame = 2; s 519 libavcodec/vc1.c v->s.loop_filter = get_bits1(gb); s 520 libavcodec/vc1.c if (v->s.avctx->skip_loop_filter >= AVDISCARD_ALL) s 521 libavcodec/vc1.c v->s.loop_filter = 0; s 562 libavcodec/vc1.c v->broken_link, v->closed_entry, v->panscanflag, v->refdist_flag, v->s.loop_filter, s 594 libavcodec/vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_BI || v->s.pict_type == AV_PICTURE_TYPE_B) { \ s 618 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_ERROR, "bfraction invalid\n"); s 634 libavcodec/vc1.c if (!v->s.avctx->codec) s 636 libavcodec/vc1.c if (v->s.avctx->codec_id == AV_CODEC_ID_MSS2) s 646 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_P; s 648 libavcodec/vc1.c if (v->s.avctx->max_b_frames && !get_bits1(gb)) { s 649 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_B; s 651 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_I; s 655 libavcodec/vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_B) { s 659 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_BI; s 662 libavcodec/vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_I || v->s.pict_type == AV_PICTURE_TYPE_BI) s 669 libavcodec/vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_I || v->s.pict_type == AV_PICTURE_TYPE_BI) s 671 libavcodec/vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_P) s 708 libavcodec/vc1.c if (v->multires && v->s.pict_type != AV_PICTURE_TYPE_B) s 711 libavcodec/vc1.c if (v->res_x8 && (v->s.pict_type == AV_PICTURE_TYPE_I || v->s.pict_type == AV_PICTURE_TYPE_BI)) { s 715 libavcodec/vc1.c ff_dlog(v->s.avctx, "%c Frame: QP=[%i]%i (+%i/2) %i\n", s 716 libavcodec/vc1.c (v->s.pict_type == AV_PICTURE_TYPE_P) ? 'P' : ((v->s.pict_type == AV_PICTURE_TYPE_I) ? 'I' : 'B'), s 722 libavcodec/vc1.c switch (v->s.pict_type) { s 737 libavcodec/vc1.c v->qs_last = v->s.quarter_sample; s 739 libavcodec/vc1.c v->s.quarter_sample = (v->mv_mode2 != MV_PMODE_1MV_HPEL && s 741 libavcodec/vc1.c v->s.mspel = (v->mv_mode2 != MV_PMODE_1MV_HPEL_BILIN); s 743 libavcodec/vc1.c v->s.quarter_sample = (v->mv_mode != MV_PMODE_1MV_HPEL && s 745 libavcodec/vc1.c v->s.mspel = (v->mv_mode != MV_PMODE_1MV_HPEL_BILIN); s 754 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB MV Type plane encoding: " s 758 libavcodec/vc1.c memset(v->mv_type_mb_plane, 0, v->s.mb_stride * v->s.mb_height); s 760 libavcodec/vc1.c status = bitplane_decoding(v->s.mbskip_table, &v->skip_is_raw, v); s 763 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB Skip plane encoding: " s 767 libavcodec/vc1.c v->s.mv_table_index = get_bits(gb, 2); //but using ff_vc1_ tables s 772 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "VOP DQuant info\n"); s 791 libavcodec/vc1.c v->qs_last = v->s.quarter_sample; s 792 libavcodec/vc1.c v->s.quarter_sample = (v->mv_mode == MV_PMODE_1MV); s 793 libavcodec/vc1.c v->s.mspel = v->s.quarter_sample; s 798 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB Direct Type plane encoding: " s 800 libavcodec/vc1.c status = bitplane_decoding(v->s.mbskip_table, &v->skip_is_raw, v); s 803 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB Skip plane encoding: " s 806 libavcodec/vc1.c v->s.mv_table_index = get_bits(gb, 2); s 811 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "VOP DQuant info\n"); s 831 libavcodec/vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_I || v->s.pict_type == AV_PICTURE_TYPE_BI) { s 835 libavcodec/vc1.c v->s.dc_table_index = get_bits1(gb); s 838 libavcodec/vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_BI) { s 839 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_B; s 857 libavcodec/vc1.c v->s.pict_type = (v->fptype & 1) ? AV_PICTURE_TYPE_BI : AV_PICTURE_TYPE_B; s 859 libavcodec/vc1.c v->s.pict_type = (v->fptype & 1) ? AV_PICTURE_TYPE_P : AV_PICTURE_TYPE_I; s 860 libavcodec/vc1.c v->s.current_picture_ptr->f->pict_type = v->s.pict_type; s 880 libavcodec/vc1.c av_assert0( v->s.mb_height == v->s.height + 15 >> 4 s 881 libavcodec/vc1.c || v->s.mb_height == FFALIGN(v->s.height + 15 >> 4, 2)); s 883 libavcodec/vc1.c v->s.mb_height = FFALIGN(v->s.height + 15 >> 4, 2); s 886 libavcodec/vc1.c v->s.pict_type = (v->fptype & 2) ? AV_PICTURE_TYPE_BI : AV_PICTURE_TYPE_B; s 888 libavcodec/vc1.c v->s.pict_type = (v->fptype & 2) ? AV_PICTURE_TYPE_P : AV_PICTURE_TYPE_I; s 890 libavcodec/vc1.c v->s.mb_height = v->s.height + 15 >> 4; s 893 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_P; s 896 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_B; s 899 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_I; s 902 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_BI; s 905 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_P; // skipped pic s 923 libavcodec/vc1.c avpriv_report_missing_feature(v->s.avctx, "Pan-scan"); s 937 libavcodec/vc1.c else if ((v->s.pict_type != AV_PICTURE_TYPE_B) && (v->s.pict_type != AV_PICTURE_TYPE_BI)) { s 944 libavcodec/vc1.c if ((v->s.pict_type == AV_PICTURE_TYPE_B) || (v->s.pict_type == AV_PICTURE_TYPE_BI)) { s 957 libavcodec/vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_B) { s 961 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_BI; /* XXX: should not happen here */ s 1005 libavcodec/vc1.c switch (v->s.pict_type) { s 1012 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "FIELDTX plane encoding: " s 1019 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "ACPRED plane encoding: " s 1028 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "CONDOVER plane encoding: " s 1060 libavcodec/vc1.c status = bitplane_decoding(v->s.mbskip_table, &v->skip_is_raw, v); s 1063 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "SKIPMB plane encoding: " s 1131 libavcodec/vc1.c v->qs_last = v->s.quarter_sample; s 1133 libavcodec/vc1.c v->s.quarter_sample = (v->mv_mode2 != MV_PMODE_1MV_HPEL && s 1135 libavcodec/vc1.c v->s.mspel = (v->mv_mode2 != MV_PMODE_1MV_HPEL_BILIN); s 1137 libavcodec/vc1.c v->s.quarter_sample = (v->mv_mode != MV_PMODE_1MV_HPEL && s 1139 libavcodec/vc1.c v->s.mspel = (v->mv_mode != MV_PMODE_1MV_HPEL_BILIN); s 1149 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB MV Type plane encoding: " s 1153 libavcodec/vc1.c memset(v->mv_type_mb_plane, 0, v->s.mb_stride * v->s.mb_height); s 1155 libavcodec/vc1.c status = bitplane_decoding(v->s.mbskip_table, &v->skip_is_raw, v); s 1158 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB Skip plane encoding: " s 1162 libavcodec/vc1.c v->s.mv_table_index = get_bits(gb, 2); //but using ff_vc1_ tables s 1166 libavcodec/vc1.c v->qs_last = v->s.quarter_sample; s 1167 libavcodec/vc1.c v->s.quarter_sample = 1; s 1168 libavcodec/vc1.c v->s.mspel = 1; s 1188 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "VOP DQuant info\n"); s 1224 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "B Fields\n"); s 1230 libavcodec/vc1.c v->qs_last = v->s.quarter_sample; s 1231 libavcodec/vc1.c v->s.quarter_sample = (v->mv_mode == MV_PMODE_1MV || v->mv_mode == MV_PMODE_MIXED_MV); s 1232 libavcodec/vc1.c v->s.mspel = (v->mv_mode != MV_PMODE_1MV_HPEL_BILIN); s 1236 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB Forward Type plane encoding: " s 1256 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_WARNING, "Intensity compensation set for B picture\n"); s 1260 libavcodec/vc1.c v->qs_last = v->s.quarter_sample; s 1261 libavcodec/vc1.c v->s.quarter_sample = 1; s 1262 libavcodec/vc1.c v->s.mspel = 1; s 1266 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB Direct Type plane encoding: " s 1268 libavcodec/vc1.c status = bitplane_decoding(v->s.mbskip_table, &v->skip_is_raw, v); s 1271 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB Skip plane encoding: " s 1286 libavcodec/vc1.c v->qs_last = v->s.quarter_sample; s 1287 libavcodec/vc1.c v->s.quarter_sample = (v->mv_mode == MV_PMODE_1MV); s 1288 libavcodec/vc1.c v->s.mspel = v->s.quarter_sample; s 1292 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB Direct Type plane encoding: " s 1294 libavcodec/vc1.c status = bitplane_decoding(v->s.mbskip_table, &v->skip_is_raw, v); s 1297 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "MB Skip plane encoding: " s 1299 libavcodec/vc1.c v->s.mv_table_index = get_bits(gb, 2); s 1305 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "VOP DQuant info\n"); s 1325 libavcodec/vc1.c if (v->s.pict_type == AV_PICTURE_TYPE_I || v->s.pict_type == AV_PICTURE_TYPE_BI) { s 1328 libavcodec/vc1.c else if (v->fcm != PROGRESSIVE && !v->s.quarter_sample) { s 1334 libavcodec/vc1.c v->s.dc_table_index = get_bits1(gb); s 1335 libavcodec/vc1.c if ((v->s.pict_type == AV_PICTURE_TYPE_I || v->s.pict_type == AV_PICTURE_TYPE_BI) s 1337 libavcodec/vc1.c av_log(v->s.avctx, AV_LOG_DEBUG, "VOP DQuant info\n"); s 1341 libavcodec/vc1.c v->bi_type = (v->s.pict_type == AV_PICTURE_TYPE_BI); s 1343 libavcodec/vc1.c v->s.pict_type = AV_PICTURE_TYPE_B; s 174 libavcodec/vc1.h MpegEncContext s; s 61 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 62 libavcodec/vc1_block.c ff_init_block_index(s); s 64 libavcodec/vc1_block.c s->dest[0] += s->current_picture_ptr->f->linesize[0]; s 65 libavcodec/vc1_block.c s->dest[1] += s->current_picture_ptr->f->linesize[1]; s 66 libavcodec/vc1_block.c s->dest[2] += s->current_picture_ptr->f->linesize[2]; s 74 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 76 libavcodec/vc1_block.c int block_count = CONFIG_GRAY && (s->avctx->flags & AV_CODEC_FLAG_GRAY) ? 4 : 6; s 85 libavcodec/vc1_block.c if (!s->first_slice_line && v->fcm != ILACE_FRAME) { s 86 libavcodec/vc1_block.c if (s->mb_x) { s 88 libavcodec/vc1_block.c if (i > 3 ? v->mb_type[0][s->block_index[i] - s->block_wrap[i] - 1] : s 89 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i] - 2 * s->block_wrap[i] - 2]) { s 90 libavcodec/vc1_block.c dest = s->dest[0] + ((i & 2) - 4) * 4 * s->linesize + ((i & 1) - 2) * 8; s 92 libavcodec/vc1_block.c s->idsp.put_signed_pixels_clamped(v->block[v->topleft_blk_idx][block_map[i]], s 93 libavcodec/vc1_block.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, s 94 libavcodec/vc1_block.c i > 3 ? s->uvlinesize : s->linesize); s 96 libavcodec/vc1_block.c s->idsp.put_pixels_clamped(v->block[v->topleft_blk_idx][block_map[i]], s 97 libavcodec/vc1_block.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, s 98 libavcodec/vc1_block.c i > 3 ? s->uvlinesize : s->linesize); s 102 libavcodec/vc1_block.c if (s->mb_x == v->end_mb_x - 1) { s 104 libavcodec/vc1_block.c if (i > 3 ? v->mb_type[0][s->block_index[i] - s->block_wrap[i]] : s 105 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i] - 2 * s->block_wrap[i]]) { s 106 libavcodec/vc1_block.c dest = s->dest[0] + ((i & 2) - 4) * 4 * s->linesize + (i & 1) * 8; s 108 libavcodec/vc1_block.c s->idsp.put_signed_pixels_clamped(v->block[v->top_blk_idx][block_map[i]], s 109 libavcodec/vc1_block.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, s 110 libavcodec/vc1_block.c i > 3 ? s->uvlinesize : s->linesize); s 112 libavcodec/vc1_block.c s->idsp.put_pixels_clamped(v->block[v->top_blk_idx][block_map[i]], s 113 libavcodec/vc1_block.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, s 114 libavcodec/vc1_block.c i > 3 ? s->uvlinesize : s->linesize); s 119 libavcodec/vc1_block.c if (s->mb_y == s->end_mb_y - 1 || v->fcm == ILACE_FRAME) { s 120 libavcodec/vc1_block.c if (s->mb_x) { s 122 libavcodec/vc1_block.c fieldtx = v->fieldtx_plane[s->mb_y * s->mb_stride + s->mb_x - 1]; s 124 libavcodec/vc1_block.c if (i > 3 ? v->mb_type[0][s->block_index[i] - 1] : s 125 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i] - 2]) { s 127 libavcodec/vc1_block.c dest = s->dest[0] + ((i & 2) >> 1) * s->linesize + ((i & 1) - 2) * 8; s 129 libavcodec/vc1_block.c dest = s->dest[0] + (i & 2) * 4 * s->linesize + ((i & 1) - 2) * 8; s 131 libavcodec/vc1_block.c s->idsp.put_signed_pixels_clamped(v->block[v->left_blk_idx][block_map[i]], s 132 libavcodec/vc1_block.c i > 3 ? s->dest[i - 3] - 8 : dest, s 133 libavcodec/vc1_block.c i > 3 ? s->uvlinesize : s->linesize << fieldtx); s 135 libavcodec/vc1_block.c s->idsp.put_pixels_clamped(v->block[v->left_blk_idx][block_map[i]], s 136 libavcodec/vc1_block.c i > 3 ? s->dest[i - 3] - 8 : dest, s 137 libavcodec/vc1_block.c i > 3 ? s->uvlinesize : s->linesize << fieldtx); s 141 libavcodec/vc1_block.c if (s->mb_x == v->end_mb_x - 1) { s 143 libavcodec/vc1_block.c fieldtx = v->fieldtx_plane[s->mb_y * s->mb_stride + s->mb_x]; s 145 libavcodec/vc1_block.c if (v->mb_type[0][s->block_index[i]]) { s 147 libavcodec/vc1_block.c dest = s->dest[0] + ((i & 2) >> 1) * s->linesize + (i & 1) * 8; s 149 libavcodec/vc1_block.c dest = s->dest[0] + (i & 2) * 4 * s->linesize + (i & 1) * 8; s 151 libavcodec/vc1_block.c s->idsp.put_signed_pixels_clamped(v->block[v->cur_blk_idx][block_map[i]], s 152 libavcodec/vc1_block.c i > 3 ? s->dest[i - 3] : dest, s 153 libavcodec/vc1_block.c i > 3 ? s->uvlinesize : s->linesize << fieldtx); s 155 libavcodec/vc1_block.c s->idsp.put_pixels_clamped(v->block[v->cur_blk_idx][block_map[i]], s 156 libavcodec/vc1_block.c i > 3 ? s->dest[i - 3] : dest, s 157 libavcodec/vc1_block.c i > 3 ? s->uvlinesize : s->linesize << fieldtx); s 201 libavcodec/vc1_block.c if ((edges&1) && !s->mb_x) \ s 203 libavcodec/vc1_block.c if ((edges&2) && !s->mb_y) \ s 205 libavcodec/vc1_block.c if ((edges&4) && s->mb_x == (s->mb_width - 1)) \ s 208 libavcodec/vc1_block.c s->mb_y == ((s->mb_height >> v->field_mode) - 1)) \ s 211 libavcodec/vc1_block.c av_log(v->s.avctx, AV_LOG_ERROR, \ s 225 libavcodec/vc1_block.c index = 1 + get_vlc2(gb, ff_vc1_mv_diff_vlc[s->mv_table_index].table, \ s 232 libavcodec/vc1_block.c s->mb_intra = 0; \ s 236 libavcodec/vc1_block.c _dmv_x = get_bits(gb, v->k_x - 1 + s->quarter_sample); \ s 237 libavcodec/vc1_block.c _dmv_y = get_bits(gb, v->k_y - 1 + s->quarter_sample); \ s 241 libavcodec/vc1_block.c s->mb_intra = 1; \ s 245 libavcodec/vc1_block.c val = size_table[index1] - (!s->quarter_sample && index1 == 5); \ s 254 libavcodec/vc1_block.c val = size_table[index1] - (!s->quarter_sample && index1 == 5); \ s 267 libavcodec/vc1_block.c GetBitContext *gb = &v->s.gb; s 339 libavcodec/vc1_block.c static inline int vc1_i_pred_dc(MpegEncContext *s, int overlap, int pq, int n, s 352 libavcodec/vc1_block.c if (n < 4) scale = s->y_dc_scale; s 353 libavcodec/vc1_block.c else scale = s->c_dc_scale; s 355 libavcodec/vc1_block.c wrap = s->block_wrap[n]; s 356 libavcodec/vc1_block.c dc_val = s->dc_val[0] + s->block_index[n]; s 367 libavcodec/vc1_block.c if (s->first_slice_line && (n != 2 && n != 3)) s 369 libavcodec/vc1_block.c if (s->mb_x == 0 && (n != 1 && n != 3)) s 373 libavcodec/vc1_block.c if (s->first_slice_line && (n != 2 && n != 3)) s 375 libavcodec/vc1_block.c if (s->mb_x == 0 && (n != 1 && n != 3)) s 404 libavcodec/vc1_block.c static inline int ff_vc1_pred_dc(MpegEncContext *s, int overlap, int pq, int n, s 410 libavcodec/vc1_block.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 415 libavcodec/vc1_block.c q1 = FFABS(s->current_picture.qscale_table[mb_pos]); s 416 libavcodec/vc1_block.c dqscale_index = s->y_dc_scale_table[q1] - 1; s 420 libavcodec/vc1_block.c wrap = s->block_wrap[n]; s 421 libavcodec/vc1_block.c dc_val = s->dc_val[0] + s->block_index[n]; s 431 libavcodec/vc1_block.c q2 = FFABS(s->current_picture.qscale_table[mb_pos - 1]); s 433 libavcodec/vc1_block.c c = (int)((unsigned)c * s->y_dc_scale_table[q2] * ff_vc1_dqscale[dqscale_index] + 0x20000) >> 18; s 436 libavcodec/vc1_block.c q2 = FFABS(s->current_picture.qscale_table[mb_pos - s->mb_stride]); s 438 libavcodec/vc1_block.c a = (int)((unsigned)a * s->y_dc_scale_table[q2] * ff_vc1_dqscale[dqscale_index] + 0x20000) >> 18; s 445 libavcodec/vc1_block.c off -= s->mb_stride; s 446 libavcodec/vc1_block.c q2 = FFABS(s->current_picture.qscale_table[off]); s 448 libavcodec/vc1_block.c b = (int)((unsigned)b * s->y_dc_scale_table[q2] * ff_vc1_dqscale[dqscale_index] + 0x20000) >> 18; s 475 libavcodec/vc1_block.c static inline int vc1_coded_block_pred(MpegEncContext * s, int n, s 480 libavcodec/vc1_block.c xy = s->block_index[n]; s 481 libavcodec/vc1_block.c wrap = s->b8_stride; s 486 libavcodec/vc1_block.c a = s->coded_block[xy - 1 ]; s 487 libavcodec/vc1_block.c b = s->coded_block[xy - 1 - wrap]; s 488 libavcodec/vc1_block.c c = s->coded_block[xy - wrap]; s 497 libavcodec/vc1_block.c *coded_block_ptr = &s->coded_block[xy]; s 514 libavcodec/vc1_block.c GetBitContext *gb = &v->s.gb; s 548 libavcodec/vc1_block.c if (v->s.esc3_level_length == 0) { s 550 libavcodec/vc1_block.c v->s.esc3_level_length = get_bits(gb, 3); s 551 libavcodec/vc1_block.c if (!v->s.esc3_level_length) s 552 libavcodec/vc1_block.c v->s.esc3_level_length = get_bits(gb, 2) + 8; s 554 libavcodec/vc1_block.c v->s.esc3_level_length = get_unary(gb, 1, 6) + 2; s 556 libavcodec/vc1_block.c v->s.esc3_run_length = 3 + get_bits(gb, 2); s 558 libavcodec/vc1_block.c run = get_bits(gb, v->s.esc3_run_length); s 560 libavcodec/vc1_block.c level = get_bits(gb, v->s.esc3_level_length); s 581 libavcodec/vc1_block.c GetBitContext *gb = &v->s.gb; s 582 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 591 libavcodec/vc1_block.c dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); s 593 libavcodec/vc1_block.c dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); s 596 libavcodec/vc1_block.c av_log(s->avctx, AV_LOG_ERROR, "Illegal DC VLC\n"); s 612 libavcodec/vc1_block.c dcdiff += vc1_i_pred_dc(&v->s, v->overlap, v->pq, n, &dc_val, &dc_pred_dir); s 617 libavcodec/vc1_block.c scale = s->y_dc_scale; s 619 libavcodec/vc1_block.c scale = s->c_dc_scale; s 622 libavcodec/vc1_block.c ac_val = s->ac_val[0][s->block_index[n]]; s 627 libavcodec/vc1_block.c ac_val -= 16 * s->block_wrap[n]; s 639 libavcodec/vc1_block.c if (v->s.ac_pred) { s 658 libavcodec/vc1_block.c if (s->ac_pred) { s 689 libavcodec/vc1_block.c if (s->ac_pred) { s 706 libavcodec/vc1_block.c if (s->ac_pred) i = 63; s 707 libavcodec/vc1_block.c s->block_last_index[n] = i; s 723 libavcodec/vc1_block.c GetBitContext *gb = &v->s.gb; s 724 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 731 libavcodec/vc1_block.c int use_pred = s->ac_pred; s 734 libavcodec/vc1_block.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 739 libavcodec/vc1_block.c dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); s 741 libavcodec/vc1_block.c dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); s 744 libavcodec/vc1_block.c av_log(s->avctx, AV_LOG_ERROR, "Illegal DC VLC\n"); s 760 libavcodec/vc1_block.c dcdiff += ff_vc1_pred_dc(&v->s, v->overlap, quant, n, v->a_avail, v->c_avail, &dc_val, &dc_pred_dir); s 765 libavcodec/vc1_block.c scale = s->y_dc_scale; s 767 libavcodec/vc1_block.c scale = s->c_dc_scale; s 776 libavcodec/vc1_block.c ac_val = s->ac_val[0][s->block_index[n]]; s 781 libavcodec/vc1_block.c ac_val -= 16 * s->block_wrap[n]; s 783 libavcodec/vc1_block.c q1 = s->current_picture.qscale_table[mb_pos]; s 790 libavcodec/vc1_block.c q2 = s->current_picture.qscale_table[mb_pos - 1]; s 794 libavcodec/vc1_block.c else if (a_avail && mb_pos >= s->mb_stride) s 795 libavcodec/vc1_block.c q2 = s->current_picture.qscale_table[mb_pos - s->mb_stride]; s 806 libavcodec/vc1_block.c if (v->s.ac_pred) { s 902 libavcodec/vc1_block.c s->block_last_index[n] = i; s 918 libavcodec/vc1_block.c GetBitContext *gb = &v->s.gb; s 919 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 925 libavcodec/vc1_block.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 927 libavcodec/vc1_block.c int use_pred = s->ac_pred; s 932 libavcodec/vc1_block.c s->bdsp.clear_block(block); s 938 libavcodec/vc1_block.c s->y_dc_scale = s->y_dc_scale_table[quant]; s 939 libavcodec/vc1_block.c s->c_dc_scale = s->c_dc_scale_table[quant]; s 943 libavcodec/vc1_block.c dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_luma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); s 945 libavcodec/vc1_block.c dcdiff = get_vlc2(&s->gb, ff_msmp4_dc_chroma_vlc[s->dc_table_index].table, DC_VLC_BITS, 3); s 948 libavcodec/vc1_block.c av_log(s->avctx, AV_LOG_ERROR, "Illegal DC VLC\n"); s 964 libavcodec/vc1_block.c dcdiff += ff_vc1_pred_dc(&v->s, v->overlap, quant, n, a_avail, c_avail, &dc_val, &dc_pred_dir); s 970 libavcodec/vc1_block.c block[0] = dcdiff * s->y_dc_scale; s 972 libavcodec/vc1_block.c block[0] = dcdiff * s->c_dc_scale; s 982 libavcodec/vc1_block.c ac_val = s->ac_val[0][s->block_index[n]]; s 990 libavcodec/vc1_block.c ac_val -= 16 * s->block_wrap[n]; s 992 libavcodec/vc1_block.c q1 = s->current_picture.qscale_table[mb_pos]; s 994 libavcodec/vc1_block.c q2 = s->current_picture.qscale_table[mb_pos - 1]; s 995 libavcodec/vc1_block.c if (!dc_pred_dir && a_avail && mb_pos >= s->mb_stride) s 996 libavcodec/vc1_block.c q2 = s->current_picture.qscale_table[mb_pos - s->mb_stride]; s 1119 libavcodec/vc1_block.c s->block_last_index[n] = i; s 1131 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 1132 libavcodec/vc1_block.c GetBitContext *gb = &s->gb; s 1140 libavcodec/vc1_block.c s->bdsp.clear_block(block); s 1195 libavcodec/vc1_block.c s->idsp.add_pixels_clamped(block, dst, linesize); s 1300 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 1301 libavcodec/vc1_block.c GetBitContext *gb = &s->gb; s 1303 libavcodec/vc1_block.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 1326 libavcodec/vc1_block.c skipped = v->s.mbskip_table[mb_pos]; s 1332 libavcodec/vc1_block.c if (s->mb_intra) { s 1333 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[0]][0] = 0; s 1334 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[0]][1] = 0; s 1336 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos] = s->mb_intra ? MB_TYPE_INTRA : MB_TYPE_16x16; s 1340 libavcodec/vc1_block.c if (s->mb_intra && !mb_has_coeffs) { s 1342 libavcodec/vc1_block.c s->ac_pred = get_bits1(gb); s 1345 libavcodec/vc1_block.c if (s->mb_intra) s 1346 libavcodec/vc1_block.c s->ac_pred = get_bits1(gb); s 1347 libavcodec/vc1_block.c cbp = get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 1353 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 1355 libavcodec/vc1_block.c if (!v->ttmbf && !s->mb_intra && mb_has_coeffs) s 1358 libavcodec/vc1_block.c if (!s->mb_intra) ff_vc1_mc_1mv(v, 0); s 1361 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1364 libavcodec/vc1_block.c off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); s 1365 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = s->mb_intra; s 1366 libavcodec/vc1_block.c if (s->mb_intra) { s 1369 libavcodec/vc1_block.c if (i == 2 || i == 3 || !s->first_slice_line) s 1370 libavcodec/vc1_block.c v->a_avail = v->mb_type[0][s->block_index[i] - s->block_wrap[i]]; s 1371 libavcodec/vc1_block.c if (i == 1 || i == 3 || s->mb_x) s 1372 libavcodec/vc1_block.c v->c_avail = v->mb_type[0][s->block_index[i] - 1]; s 1376 libavcodec/vc1_block.c if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 1386 libavcodec/vc1_block.c s->dest[dst_idx] + off, (i & 4) ? s->uvlinesize : s->linesize, s 1387 libavcodec/vc1_block.c CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), &block_tt); s 1397 libavcodec/vc1_block.c s->mb_intra = 0; s 1399 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 0; s 1400 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1402 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos] = MB_TYPE_SKIP; s 1403 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = 0; s 1412 libavcodec/vc1_block.c cbp = get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 1415 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1416 libavcodec/vc1_block.c s->mb_intra = 0; s 1419 libavcodec/vc1_block.c s->mb_intra = 0; s 1425 libavcodec/vc1_block.c if (!s->mb_intra) s 1427 libavcodec/vc1_block.c intra_count += s->mb_intra; s 1428 libavcodec/vc1_block.c is_intra[i] = s->mb_intra; s 1437 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = is_intra[i]; s 1446 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 1452 libavcodec/vc1_block.c if (((!s->first_slice_line || (i == 2 || i == 3)) && v->mb_type[0][s->block_index[i] - s->block_wrap[i]]) s 1453 libavcodec/vc1_block.c || ((s->mb_x || (i == 1 || i == 3)) && v->mb_type[0][s->block_index[i] - 1])) { s 1459 libavcodec/vc1_block.c s->ac_pred = get_bits1(gb); s 1461 libavcodec/vc1_block.c s->ac_pred = 0; s 1467 libavcodec/vc1_block.c off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); s 1468 libavcodec/vc1_block.c s->mb_intra = is_intra[i]; s 1472 libavcodec/vc1_block.c if (i == 2 || i == 3 || !s->first_slice_line) s 1473 libavcodec/vc1_block.c v->a_avail = v->mb_type[0][s->block_index[i] - s->block_wrap[i]]; s 1474 libavcodec/vc1_block.c if (i == 1 || i == 3 || s->mb_x) s 1475 libavcodec/vc1_block.c v->c_avail = v->mb_type[0][s->block_index[i] - 1]; s 1479 libavcodec/vc1_block.c if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 1489 libavcodec/vc1_block.c first_block, s->dest[dst_idx] + off, s 1490 libavcodec/vc1_block.c (i & 4) ? s->uvlinesize : s->linesize, s 1491 libavcodec/vc1_block.c CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), s 1502 libavcodec/vc1_block.c s->mb_intra = 0; s 1503 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = 0; s 1505 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 0; s 1506 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1513 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = 0; s 1521 libavcodec/vc1_block.c v->cbp[s->mb_x] = block_cbp; s 1522 libavcodec/vc1_block.c v->ttblk[s->mb_x] = block_tt; s 1523 libavcodec/vc1_block.c v->is_intra[s->mb_x] = block_intra; s 1532 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 1533 libavcodec/vc1_block.c GetBitContext *gb = &s->gb; s 1535 libavcodec/vc1_block.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 1555 libavcodec/vc1_block.c skipped = v->s.mbskip_table[mb_pos]; s 1565 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 0; s 1566 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 0; s 1567 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 0; s 1568 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 0; s 1572 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 1; s 1573 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 1; s 1574 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 1; s 1575 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 1; s 1579 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 1; s 1580 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 1; s 1581 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 1; s 1582 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 1; s 1585 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 0; s 1586 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 0; s 1587 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 0; s 1588 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 0; s 1593 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[i]][0] = 0; s 1594 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[i]][1] = 0; s 1596 libavcodec/vc1_block.c v->is_intra[s->mb_x] = 0x3f; // Set the bitfield to all 1. s 1597 libavcodec/vc1_block.c s->mb_intra = 1; s 1598 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos] = MB_TYPE_INTRA; s 1602 libavcodec/vc1_block.c cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 1603 libavcodec/vc1_block.c v->s.ac_pred = v->acpred_plane[mb_pos] = get_bits1(gb); s 1605 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 1607 libavcodec/vc1_block.c s->y_dc_scale = s->y_dc_scale_table[FFABS(mquant)]; s 1608 libavcodec/vc1_block.c s->c_dc_scale = s->c_dc_scale_table[FFABS(mquant)]; s 1612 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 1; s 1613 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1616 libavcodec/vc1_block.c if (i == 2 || i == 3 || !s->first_slice_line) s 1617 libavcodec/vc1_block.c v->a_avail = v->mb_type[0][s->block_index[i] - s->block_wrap[i]]; s 1618 libavcodec/vc1_block.c if (i == 1 || i == 3 || s->mb_x) s 1619 libavcodec/vc1_block.c v->c_avail = v->mb_type[0][s->block_index[i] - 1]; s 1623 libavcodec/vc1_block.c if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 1627 libavcodec/vc1_block.c off = (fieldtx) ? ((i & 1) * 8) + ((i & 2) >> 1) * s->linesize : (i & 1) * 8 + 4 * (i & 2) * s->linesize; s 1636 libavcodec/vc1_block.c cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 1645 libavcodec/vc1_block.c s->mb_intra = v->is_intra[s->mb_x] = 0; s 1647 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 0; s 1689 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 1693 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1697 libavcodec/vc1_block.c off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); s 1699 libavcodec/vc1_block.c off = (i & 4) ? 0 : ((i & 1) * 8 + ((i > 1) * s->linesize)); s 1702 libavcodec/vc1_block.c first_block, s->dest[dst_idx] + off, s 1703 libavcodec/vc1_block.c (i & 4) ? s->uvlinesize : (s->linesize << fieldtx), s 1704 libavcodec/vc1_block.c CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), &block_tt); s 1715 libavcodec/vc1_block.c s->mb_intra = v->is_intra[s->mb_x] = 0; s 1717 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 0; s 1718 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1720 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos] = MB_TYPE_SKIP; s 1721 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = 0; s 1722 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 0; s 1723 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 0; s 1724 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 0; s 1725 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 0; s 1734 libavcodec/vc1_block.c v->cbp[s->mb_x] = block_cbp; s 1735 libavcodec/vc1_block.c v->ttblk[s->mb_x] = block_tt; s 1742 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 1743 libavcodec/vc1_block.c GetBitContext *gb = &s->gb; s 1745 libavcodec/vc1_block.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 1763 libavcodec/vc1_block.c v->is_intra[s->mb_x] = 0x3f; // Set the bitfield to all 1. s 1764 libavcodec/vc1_block.c s->mb_intra = 1; s 1765 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][0] = 0; s 1766 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][1] = 0; s 1767 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos + v->mb_off] = MB_TYPE_INTRA; s 1769 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 1771 libavcodec/vc1_block.c s->y_dc_scale = s->y_dc_scale_table[FFABS(mquant)]; s 1772 libavcodec/vc1_block.c s->c_dc_scale = s->c_dc_scale_table[FFABS(mquant)]; s 1773 libavcodec/vc1_block.c v->s.ac_pred = v->acpred_plane[mb_pos] = get_bits1(gb); s 1776 libavcodec/vc1_block.c cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_ICBPCY_VLC_BITS, 2); s 1780 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 1; s 1781 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1784 libavcodec/vc1_block.c if (i == 2 || i == 3 || !s->first_slice_line) s 1785 libavcodec/vc1_block.c v->a_avail = v->mb_type[0][s->block_index[i] - s->block_wrap[i]]; s 1786 libavcodec/vc1_block.c if (i == 1 || i == 3 || s->mb_x) s 1787 libavcodec/vc1_block.c v->c_avail = v->mb_type[0][s->block_index[i] - 1]; s 1791 libavcodec/vc1_block.c if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 1794 libavcodec/vc1_block.c off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); s 1798 libavcodec/vc1_block.c s->mb_intra = v->is_intra[s->mb_x] = 0; s 1799 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos + v->mb_off] = MB_TYPE_16x16; s 1801 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 0; s 1823 libavcodec/vc1_block.c cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 1827 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 1833 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1836 libavcodec/vc1_block.c off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize; s 1839 libavcodec/vc1_block.c first_block, s->dest[dst_idx] + off, s 1840 libavcodec/vc1_block.c (i & 4) ? s->uvlinesize : s->linesize, s 1841 libavcodec/vc1_block.c CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), s 1856 libavcodec/vc1_block.c v->cbp[s->mb_x] = block_cbp; s 1857 libavcodec/vc1_block.c v->ttblk[s->mb_x] = block_tt; s 1866 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 1867 libavcodec/vc1_block.c GetBitContext *gb = &s->gb; s 1869 libavcodec/vc1_block.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 1883 libavcodec/vc1_block.c s->mb_intra = 0; s 1892 libavcodec/vc1_block.c skipped = v->s.mbskip_table[mb_pos]; s 1896 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 0; s 1897 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1899 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = 0; s 1907 libavcodec/vc1_block.c if (skipped || !s->mb_intra) { s 1923 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = s->mb_intra; s 1933 libavcodec/vc1_block.c cbp = get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 1935 libavcodec/vc1_block.c s->mb_intra = 0; s 1936 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 1943 libavcodec/vc1_block.c if (!mb_has_coeffs && !s->mb_intra) { s 1949 libavcodec/vc1_block.c if (s->mb_intra && !mb_has_coeffs) { s 1951 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 1952 libavcodec/vc1_block.c s->ac_pred = get_bits1(gb); s 1966 libavcodec/vc1_block.c if (!s->mb_intra) { s 1969 libavcodec/vc1_block.c if (s->mb_intra) s 1970 libavcodec/vc1_block.c s->ac_pred = get_bits1(gb); s 1971 libavcodec/vc1_block.c cbp = get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 1973 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 1974 libavcodec/vc1_block.c if (!v->ttmbf && !s->mb_intra && mb_has_coeffs) s 1980 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 1983 libavcodec/vc1_block.c off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); s 1984 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = s->mb_intra; s 1985 libavcodec/vc1_block.c if (s->mb_intra) { s 1988 libavcodec/vc1_block.c if (i == 2 || i == 3 || !s->first_slice_line) s 1989 libavcodec/vc1_block.c v->a_avail = v->mb_type[0][s->block_index[i] - s->block_wrap[i]]; s 1990 libavcodec/vc1_block.c if (i == 1 || i == 3 || s->mb_x) s 1991 libavcodec/vc1_block.c v->c_avail = v->mb_type[0][s->block_index[i] - 1]; s 1993 libavcodec/vc1_block.c vc1_decode_intra_block(v, s->block[i], i, val, mquant, s 1995 libavcodec/vc1_block.c if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 1997 libavcodec/vc1_block.c v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); s 2000 libavcodec/vc1_block.c s->block[i][j] *= 2; s 2001 libavcodec/vc1_block.c s->idsp.put_signed_pixels_clamped(s->block[i], s 2002 libavcodec/vc1_block.c s->dest[dst_idx] + off, s 2003 libavcodec/vc1_block.c i & 4 ? s->uvlinesize s 2004 libavcodec/vc1_block.c : s->linesize); s 2006 libavcodec/vc1_block.c int pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, s 2007 libavcodec/vc1_block.c first_block, s->dest[dst_idx] + off, s 2008 libavcodec/vc1_block.c (i & 4) ? s->uvlinesize : s->linesize, s 2009 libavcodec/vc1_block.c CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), NULL); s 2024 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 2025 libavcodec/vc1_block.c GetBitContext *gb = &s->gb; s 2027 libavcodec/vc1_block.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 2042 libavcodec/vc1_block.c s->mb_intra = 0; s 2046 libavcodec/vc1_block.c v->is_intra[s->mb_x] = 0x3f; // Set the bitfield to all 1. s 2047 libavcodec/vc1_block.c s->mb_intra = 1; s 2048 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[0]][0] = 0; s 2049 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[0]][1] = 0; s 2050 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos + v->mb_off] = MB_TYPE_INTRA; s 2052 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 2054 libavcodec/vc1_block.c s->y_dc_scale = s->y_dc_scale_table[FFABS(mquant)]; s 2055 libavcodec/vc1_block.c s->c_dc_scale = s->c_dc_scale_table[FFABS(mquant)]; s 2056 libavcodec/vc1_block.c v->s.ac_pred = v->acpred_plane[mb_pos] = get_bits1(gb); s 2059 libavcodec/vc1_block.c cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_ICBPCY_VLC_BITS, 2); s 2063 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 1; s 2064 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 2067 libavcodec/vc1_block.c if (i == 2 || i == 3 || !s->first_slice_line) s 2068 libavcodec/vc1_block.c v->a_avail = v->mb_type[0][s->block_index[i] - s->block_wrap[i]]; s 2069 libavcodec/vc1_block.c if (i == 1 || i == 3 || s->mb_x) s 2070 libavcodec/vc1_block.c v->c_avail = v->mb_type[0][s->block_index[i] - 1]; s 2072 libavcodec/vc1_block.c vc1_decode_intra_block(v, s->block[i], i, val, mquant, s 2074 libavcodec/vc1_block.c if (CONFIG_GRAY && (i > 3) && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 2076 libavcodec/vc1_block.c v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); s 2079 libavcodec/vc1_block.c s->block[i][j] <<= 1; s 2080 libavcodec/vc1_block.c off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); s 2081 libavcodec/vc1_block.c s->idsp.put_signed_pixels_clamped(s->block[i], s 2082 libavcodec/vc1_block.c s->dest[dst_idx] + off, s 2083 libavcodec/vc1_block.c (i & 4) ? s->uvlinesize s 2084 libavcodec/vc1_block.c : s->linesize); s 2087 libavcodec/vc1_block.c s->mb_intra = v->is_intra[s->mb_x] = 0; s 2088 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos + v->mb_off] = MB_TYPE_16x16; s 2090 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 0; s 2125 libavcodec/vc1_block.c if (!s->next_picture_ptr->field_picture) { s 2126 libavcodec/vc1_block.c av_log(s->avctx, AV_LOG_ERROR, "Mixed field/frame direct mode not supported\n"); s 2153 libavcodec/vc1_block.c cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 2157 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 2163 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 2166 libavcodec/vc1_block.c off = (i & 4) ? 0 : (i & 1) * 8 + (i & 2) * 4 * s->linesize; s 2168 libavcodec/vc1_block.c pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, s 2169 libavcodec/vc1_block.c first_block, s->dest[dst_idx] + off, s 2170 libavcodec/vc1_block.c (i & 4) ? s->uvlinesize : s->linesize, s 2171 libavcodec/vc1_block.c CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), &block_tt); s 2181 libavcodec/vc1_block.c v->cbp[s->mb_x] = block_cbp; s 2182 libavcodec/vc1_block.c v->ttblk[s->mb_x] = block_tt; s 2191 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 2192 libavcodec/vc1_block.c GetBitContext *gb = &s->gb; s 2194 libavcodec/vc1_block.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 2212 libavcodec/vc1_block.c s->mb_intra = 0; s 2216 libavcodec/vc1_block.c skipped = v->s.mbskip_table[mb_pos]; s 2222 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 1; s 2223 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 1; s 2224 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 1; s 2225 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 1; s 2227 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 0; s 2228 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 0; s 2229 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 0; s 2230 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 0; s 2236 libavcodec/vc1_block.c s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0] = 0; s 2237 libavcodec/vc1_block.c s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1] = 0; s 2238 libavcodec/vc1_block.c s->mv[1][i][0] = s->current_picture.motion_val[1][s->block_index[i]][0] = 0; s 2239 libavcodec/vc1_block.c s->mv[1][i][1] = s->current_picture.motion_val[1][s->block_index[i]][1] = 0; s 2241 libavcodec/vc1_block.c v->is_intra[s->mb_x] = 0x3f; // Set the bitfield to all 1. s 2242 libavcodec/vc1_block.c s->mb_intra = 1; s 2243 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos] = MB_TYPE_INTRA; s 2247 libavcodec/vc1_block.c cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 2248 libavcodec/vc1_block.c v->s.ac_pred = v->acpred_plane[mb_pos] = get_bits1(gb); s 2250 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 2252 libavcodec/vc1_block.c s->y_dc_scale = s->y_dc_scale_table[FFABS(mquant)]; s 2253 libavcodec/vc1_block.c s->c_dc_scale = s->c_dc_scale_table[FFABS(mquant)]; s 2257 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 1; s 2258 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 2261 libavcodec/vc1_block.c if (i == 2 || i == 3 || !s->first_slice_line) s 2262 libavcodec/vc1_block.c v->a_avail = v->mb_type[0][s->block_index[i] - s->block_wrap[i]]; s 2263 libavcodec/vc1_block.c if (i == 1 || i == 3 || s->mb_x) s 2264 libavcodec/vc1_block.c v->c_avail = v->mb_type[0][s->block_index[i] - 1]; s 2266 libavcodec/vc1_block.c vc1_decode_intra_block(v, s->block[i], i, val, mquant, s 2268 libavcodec/vc1_block.c if (CONFIG_GRAY && i > 3 && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 2270 libavcodec/vc1_block.c v->vc1dsp.vc1_inv_trans_8x8(s->block[i]); s 2272 libavcodec/vc1_block.c stride_y = s->linesize << fieldtx; s 2273 libavcodec/vc1_block.c off = (fieldtx) ? ((i & 1) * 8) + ((i & 2) >> 1) * s->linesize : (i & 1) * 8 + 4 * (i & 2) * s->linesize; s 2275 libavcodec/vc1_block.c stride_y = s->uvlinesize; s 2278 libavcodec/vc1_block.c s->idsp.put_signed_pixels_clamped(s->block[i], s 2279 libavcodec/vc1_block.c s->dest[dst_idx] + off, s 2283 libavcodec/vc1_block.c s->mb_intra = v->is_intra[s->mb_x] = 0; s 2291 libavcodec/vc1_block.c if (s->next_picture_ptr->field_picture) s 2292 libavcodec/vc1_block.c av_log(s->avctx, AV_LOG_WARNING, "Mixed frame/field direct mode not supported\n"); s 2293 libavcodec/vc1_block.c s->mv[0][0][0] = s->current_picture.motion_val[0][s->block_index[0]][0] = scale_mv(s->next_picture.motion_val[1][s->block_index[0]][0], v->bfraction, 0, s->quarter_sample); s 2294 libavcodec/vc1_block.c s->mv[0][0][1] = s->current_picture.motion_val[0][s->block_index[0]][1] = scale_mv(s->next_picture.motion_val[1][s->block_index[0]][1], v->bfraction, 0, s->quarter_sample); s 2295 libavcodec/vc1_block.c s->mv[1][0][0] = s->current_picture.motion_val[1][s->block_index[0]][0] = scale_mv(s->next_picture.motion_val[1][s->block_index[0]][0], v->bfraction, 1, s->quarter_sample); s 2296 libavcodec/vc1_block.c s->mv[1][0][1] = s->current_picture.motion_val[1][s->block_index[0]][1] = scale_mv(s->next_picture.motion_val[1][s->block_index[0]][1], v->bfraction, 1, s->quarter_sample); s 2299 libavcodec/vc1_block.c s->mv[0][2][0] = s->current_picture.motion_val[0][s->block_index[2]][0] = scale_mv(s->next_picture.motion_val[1][s->block_index[2]][0], v->bfraction, 0, s->quarter_sample); s 2300 libavcodec/vc1_block.c s->mv[0][2][1] = s->current_picture.motion_val[0][s->block_index[2]][1] = scale_mv(s->next_picture.motion_val[1][s->block_index[2]][1], v->bfraction, 0, s->quarter_sample); s 2301 libavcodec/vc1_block.c s->mv[1][2][0] = s->current_picture.motion_val[1][s->block_index[2]][0] = scale_mv(s->next_picture.motion_val[1][s->block_index[2]][0], v->bfraction, 1, s->quarter_sample); s 2302 libavcodec/vc1_block.c s->mv[1][2][1] = s->current_picture.motion_val[1][s->block_index[2]][1] = scale_mv(s->next_picture.motion_val[1][s->block_index[2]][1], v->bfraction, 1, s->quarter_sample); s 2305 libavcodec/vc1_block.c s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0] = s->mv[0][i-1][0]; s 2306 libavcodec/vc1_block.c s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1] = s->mv[0][i-1][1]; s 2307 libavcodec/vc1_block.c s->mv[1][i][0] = s->current_picture.motion_val[1][s->block_index[i]][0] = s->mv[1][i-1][0]; s 2308 libavcodec/vc1_block.c s->mv[1][i][1] = s->current_picture.motion_val[1][s->block_index[i]][1] = s->mv[1][i-1][1]; s 2312 libavcodec/vc1_block.c s->mv[0][i][0] = s->current_picture.motion_val[0][s->block_index[i]][0] = s->mv[0][0][0]; s 2313 libavcodec/vc1_block.c s->mv[0][i][1] = s->current_picture.motion_val[0][s->block_index[i]][1] = s->mv[0][0][1]; s 2314 libavcodec/vc1_block.c s->mv[1][i][0] = s->current_picture.motion_val[1][s->block_index[i]][0] = s->mv[1][0][0]; s 2315 libavcodec/vc1_block.c s->mv[1][i][1] = s->current_picture.motion_val[1][s->block_index[i]][1] = s->mv[1][0][1]; s 2321 libavcodec/vc1_block.c if (skipped || !s->mb_intra) { s 2342 libavcodec/vc1_block.c cbp = 1 + get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC1_CBPCY_P_VLC_BITS, 2); s 2352 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 0; s 2417 libavcodec/vc1_block.c s->mv[dir][i+2][0] = s->mv[dir][i][0] = s->current_picture.motion_val[dir][s->block_index[i+2]][0] = s->current_picture.motion_val[dir][s->block_index[i]][0]; s 2418 libavcodec/vc1_block.c s->mv[dir][i+2][1] = s->mv[dir][i][1] = s->current_picture.motion_val[dir][s->block_index[i+2]][1] = s->current_picture.motion_val[dir][s->block_index[i]][1]; s 2419 libavcodec/vc1_block.c s->mv[dir2][i+2][0] = s->mv[dir2][i][0] = s->current_picture.motion_val[dir2][s->block_index[i]][0] = s->current_picture.motion_val[dir2][s->block_index[i+2]][0]; s 2420 libavcodec/vc1_block.c s->mv[dir2][i+2][1] = s->mv[dir2][i][1] = s->current_picture.motion_val[dir2][s->block_index[i]][1] = s->current_picture.motion_val[dir2][s->block_index[i+2]][1]; s 2441 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 1; s 2442 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 1; s 2443 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 1; s 2444 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 1; s 2447 libavcodec/vc1_block.c s->mv[!dir][i+2][0] = s->mv[!dir][i][0] = s->current_picture.motion_val[!dir][s->block_index[i+2]][0] = s->current_picture.motion_val[!dir][s->block_index[i]][0]; s 2448 libavcodec/vc1_block.c s->mv[!dir][i+2][1] = s->mv[!dir][i][1] = s->current_picture.motion_val[!dir][s->block_index[i+2]][1] = s->current_picture.motion_val[!dir][s->block_index[i]][1]; s 2455 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 2459 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 2463 libavcodec/vc1_block.c off = (i & 4) ? 0 : ((i & 1) * 8 + (i & 2) * 4 * s->linesize); s 2465 libavcodec/vc1_block.c off = (i & 4) ? 0 : ((i & 1) * 8 + ((i > 1) * s->linesize)); s 2467 libavcodec/vc1_block.c pat = vc1_decode_p_block(v, s->block[i], i, mquant, ttmb, s 2468 libavcodec/vc1_block.c first_block, s->dest[dst_idx] + off, s 2469 libavcodec/vc1_block.c (i & 4) ? s->uvlinesize : (s->linesize << fieldtx), s 2470 libavcodec/vc1_block.c CONFIG_GRAY && (i & 4) && (s->avctx->flags & AV_CODEC_FLAG_GRAY), &block_tt); s 2483 libavcodec/vc1_block.c v->mb_type[0][s->block_index[i]] = 0; s 2484 libavcodec/vc1_block.c s->dc_val[0][s->block_index[i]] = 0; s 2486 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos] = MB_TYPE_SKIP; s 2487 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = 0; s 2488 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 0; s 2489 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 0; s 2490 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 0; s 2491 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 0; s 2505 libavcodec/vc1_block.c s->mv[dir][i+2][0] = s->mv[dir][i][0] = s->current_picture.motion_val[dir][s->block_index[i+2]][0] = s->current_picture.motion_val[dir][s->block_index[i]][0]; s 2506 libavcodec/vc1_block.c s->mv[dir][i+2][1] = s->mv[dir][i][1] = s->current_picture.motion_val[dir][s->block_index[i+2]][1] = s->current_picture.motion_val[dir][s->block_index[i]][1]; s 2507 libavcodec/vc1_block.c s->mv[dir2][i+2][0] = s->mv[dir2][i][0] = s->current_picture.motion_val[dir2][s->block_index[i]][0] = s->current_picture.motion_val[dir2][s->block_index[i+2]][0]; s 2508 libavcodec/vc1_block.c s->mv[dir2][i+2][1] = s->mv[dir2][i][1] = s->current_picture.motion_val[dir2][s->block_index[i]][1] = s->current_picture.motion_val[dir2][s->block_index[i+2]][1]; s 2511 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[0]] = 1; s 2512 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[1]] = 1; s 2513 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[2]] = 1; s 2514 libavcodec/vc1_block.c v->blk_mv_type[s->block_index[3]] = 1; s 2517 libavcodec/vc1_block.c s->mv[!dir][i+2][0] = s->mv[!dir][i][0] = s->current_picture.motion_val[!dir][s->block_index[i+2]][0] = s->current_picture.motion_val[!dir][s->block_index[i]][0]; s 2518 libavcodec/vc1_block.c s->mv[!dir][i+2][1] = s->mv[!dir][i][1] = s->current_picture.motion_val[!dir][s->block_index[i+2]][1] = s->current_picture.motion_val[!dir][s->block_index[i]][1]; s 2531 libavcodec/vc1_block.c v->cbp[s->mb_x] = block_cbp; s 2532 libavcodec/vc1_block.c v->ttblk[s->mb_x] = block_tt; s 2542 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 2573 libavcodec/vc1_block.c s->y_dc_scale = s->y_dc_scale_table[v->pq]; s 2574 libavcodec/vc1_block.c s->c_dc_scale = s->c_dc_scale_table[v->pq]; s 2577 libavcodec/vc1_block.c s->mb_x = s->mb_y = 0; s 2578 libavcodec/vc1_block.c s->mb_intra = 1; s 2579 libavcodec/vc1_block.c s->first_slice_line = 1; s 2580 libavcodec/vc1_block.c for (s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) { s 2581 libavcodec/vc1_block.c s->mb_x = 0; s 2583 libavcodec/vc1_block.c for (; s->mb_x < v->end_mb_x; s->mb_x++) { s 2584 libavcodec/vc1_block.c ff_update_block_index(s); s 2585 libavcodec/vc1_block.c s->bdsp.clear_blocks(v->block[v->cur_blk_idx][0]); s 2586 libavcodec/vc1_block.c mb_pos = s->mb_x + s->mb_y * s->mb_width; s 2587 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos] = MB_TYPE_INTRA; s 2588 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = v->pq; s 2590 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[i]][0] = 0; s 2591 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[i]][1] = 0; s 2595 libavcodec/vc1_block.c cbp = get_vlc2(&v->s.gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); s 2596 libavcodec/vc1_block.c v->s.ac_pred = get_bits1(&v->s.gb); s 2599 libavcodec/vc1_block.c v->mb_type[0][s->block_index[k]] = 1; s 2604 libavcodec/vc1_block.c int pred = vc1_coded_block_pred(&v->s, k, &coded_val); s 2612 libavcodec/vc1_block.c if (CONFIG_GRAY && k > 3 && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 2632 libavcodec/vc1_block.c if (v->s.loop_filter) s 2635 libavcodec/vc1_block.c if (get_bits_left(&s->gb) < 0) { s 2636 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, 0, s->mb_x, s->mb_y, ER_MB_ERROR); s 2637 libavcodec/vc1_block.c av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n", s 2638 libavcodec/vc1_block.c get_bits_count(&s->gb), s->gb.size_in_bits); s 2647 libavcodec/vc1_block.c if (!v->s.loop_filter) s 2648 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, s->mb_y * 16, 16); s 2649 libavcodec/vc1_block.c else if (s->mb_y) s 2650 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, (s->mb_y - 1) * 16, 16); s 2652 libavcodec/vc1_block.c s->first_slice_line = 0; s 2654 libavcodec/vc1_block.c if (v->s.loop_filter) s 2655 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, (s->end_mb_y - 1) * 16, 16); s 2659 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, 0, s->mb_width - 1, s->mb_height - 1, ER_MB_END); s 2667 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 2673 libavcodec/vc1_block.c GetBitContext *gb = &s->gb; s 2704 libavcodec/vc1_block.c s->mb_x = s->mb_y = 0; s 2705 libavcodec/vc1_block.c s->mb_intra = 1; s 2706 libavcodec/vc1_block.c s->first_slice_line = 1; s 2707 libavcodec/vc1_block.c s->mb_y = s->start_mb_y; s 2708 libavcodec/vc1_block.c if (s->start_mb_y) { s 2709 libavcodec/vc1_block.c s->mb_x = 0; s 2711 libavcodec/vc1_block.c memset(&s->coded_block[s->block_index[0] - s->b8_stride], 0, s 2712 libavcodec/vc1_block.c (1 + s->b8_stride) * sizeof(*s->coded_block)); s 2714 libavcodec/vc1_block.c for (; s->mb_y < s->end_mb_y; s->mb_y++) { s 2715 libavcodec/vc1_block.c s->mb_x = 0; s 2717 libavcodec/vc1_block.c for (;s->mb_x < s->mb_width; s->mb_x++) { s 2719 libavcodec/vc1_block.c ff_update_block_index(s); s 2720 libavcodec/vc1_block.c s->bdsp.clear_blocks(v->block[v->cur_blk_idx][0]); s 2721 libavcodec/vc1_block.c mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 2722 libavcodec/vc1_block.c s->current_picture.mb_type[mb_pos + v->mb_off] = MB_TYPE_INTRA; s 2724 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[i] + v->blocks_off][0] = 0; s 2725 libavcodec/vc1_block.c s->current_picture.motion_val[1][s->block_index[i] + v->blocks_off][1] = 0; s 2730 libavcodec/vc1_block.c v->fieldtx_plane[mb_pos] = get_bits1(&v->s.gb); s 2731 libavcodec/vc1_block.c if (get_bits_left(&v->s.gb) <= 1) { s 2732 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); s 2736 libavcodec/vc1_block.c cbp = get_vlc2(&v->s.gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); s 2738 libavcodec/vc1_block.c v->s.ac_pred = get_bits1(&v->s.gb); s 2740 libavcodec/vc1_block.c v->s.ac_pred = v->acpred_plane[mb_pos]; s 2743 libavcodec/vc1_block.c v->over_flags_plane[mb_pos] = get_bits1(&v->s.gb); s 2747 libavcodec/vc1_block.c s->current_picture.qscale_table[mb_pos] = mquant; s 2749 libavcodec/vc1_block.c s->y_dc_scale = s->y_dc_scale_table[FFABS(mquant)]; s 2750 libavcodec/vc1_block.c s->c_dc_scale = s->c_dc_scale_table[FFABS(mquant)]; s 2753 libavcodec/vc1_block.c v->mb_type[0][s->block_index[k]] = 1; s 2758 libavcodec/vc1_block.c int pred = vc1_coded_block_pred(&v->s, k, &coded_val); s 2764 libavcodec/vc1_block.c v->a_avail = !s->first_slice_line || (k == 2 || k == 3); s 2765 libavcodec/vc1_block.c v->c_avail = !!s->mb_x || (k == 1 || k == 3); s 2770 libavcodec/vc1_block.c if (CONFIG_GRAY && k > 3 && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 2778 libavcodec/vc1_block.c if (v->s.loop_filter) s 2781 libavcodec/vc1_block.c if (get_bits_left(&s->gb) < 0) { s 2783 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); s 2784 libavcodec/vc1_block.c av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n", s 2785 libavcodec/vc1_block.c get_bits_count(&s->gb), s->gb.size_in_bits); s 2793 libavcodec/vc1_block.c if (!v->s.loop_filter) s 2794 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, s->mb_y * 16, 16); s 2795 libavcodec/vc1_block.c else if (s->mb_y) s 2796 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, (s->mb_y-1) * 16, 16); s 2797 libavcodec/vc1_block.c s->first_slice_line = 0; s 2800 libavcodec/vc1_block.c if (v->s.loop_filter) s 2801 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, (s->end_mb_y - 1) * 16, 16); s 2802 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y << v->field_mode, s->mb_width - 1, s 2803 libavcodec/vc1_block.c (s->end_mb_y << v->field_mode) - 1, ER_MB_END); s 2809 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 2837 libavcodec/vc1_block.c apply_loop_filter = s->loop_filter && !(s->avctx->skip_loop_filter >= AVDISCARD_NONKEY); s 2838 libavcodec/vc1_block.c s->first_slice_line = 1; s 2839 libavcodec/vc1_block.c memset(v->cbp_base, 0, sizeof(v->cbp_base[0]) * 3 * s->mb_stride); s 2840 libavcodec/vc1_block.c for (s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) { s 2841 libavcodec/vc1_block.c s->mb_x = 0; s 2843 libavcodec/vc1_block.c for (; s->mb_x < s->mb_width; s->mb_x++) { s 2844 libavcodec/vc1_block.c ff_update_block_index(s); s 2847 libavcodec/vc1_block.c if (get_bits_left(&v->s.gb) <= 1) { s 2848 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); s 2865 libavcodec/vc1_block.c if (get_bits_left(&s->gb) < 0 || get_bits_count(&s->gb) < 0) { s 2867 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); s 2868 libavcodec/vc1_block.c av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i at %ix%i\n", s 2869 libavcodec/vc1_block.c get_bits_count(&s->gb), s->gb.size_in_bits, s->mb_x, s->mb_y); s 2878 libavcodec/vc1_block.c v->cbp - s->mb_stride, s 2879 libavcodec/vc1_block.c sizeof(v->cbp_base[0]) * 2 * s->mb_stride); s 2881 libavcodec/vc1_block.c v->ttblk - s->mb_stride, s 2882 libavcodec/vc1_block.c sizeof(v->ttblk_base[0]) * 2 * s->mb_stride); s 2884 libavcodec/vc1_block.c v->is_intra - s->mb_stride, s 2885 libavcodec/vc1_block.c sizeof(v->is_intra_base[0]) * 2 * s->mb_stride); s 2887 libavcodec/vc1_block.c v->luma_mv - s->mb_stride, s 2888 libavcodec/vc1_block.c sizeof(v->luma_mv_base[0]) * 2 * s->mb_stride); s 2889 libavcodec/vc1_block.c if (s->mb_y != s->start_mb_y) s 2890 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, (s->mb_y - 1) * 16, 16); s 2891 libavcodec/vc1_block.c s->first_slice_line = 0; s 2893 libavcodec/vc1_block.c if (s->end_mb_y >= s->start_mb_y) s 2894 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, (s->end_mb_y - 1) * 16, 16); s 2895 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y << v->field_mode, s->mb_width - 1, s 2896 libavcodec/vc1_block.c (s->end_mb_y << v->field_mode) - 1, ER_MB_END); s 2901 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 2928 libavcodec/vc1_block.c s->first_slice_line = 1; s 2929 libavcodec/vc1_block.c for (s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) { s 2930 libavcodec/vc1_block.c s->mb_x = 0; s 2932 libavcodec/vc1_block.c for (; s->mb_x < s->mb_width; s->mb_x++) { s 2933 libavcodec/vc1_block.c ff_update_block_index(s); s 2936 libavcodec/vc1_block.c if (get_bits_left(&v->s.gb) <= 1) { s 2937 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); s 2943 libavcodec/vc1_block.c if (v->s.loop_filter) s 2947 libavcodec/vc1_block.c if (v->s.loop_filter) s 2951 libavcodec/vc1_block.c if (v->s.loop_filter) s 2954 libavcodec/vc1_block.c if (get_bits_left(&s->gb) < 0 || get_bits_count(&s->gb) < 0) { s 2956 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); s 2957 libavcodec/vc1_block.c av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i at %ix%i\n", s 2958 libavcodec/vc1_block.c get_bits_count(&s->gb), s->gb.size_in_bits, s->mb_x, s->mb_y); s 2963 libavcodec/vc1_block.c v->cbp - s->mb_stride, s 2964 libavcodec/vc1_block.c sizeof(v->cbp_base[0]) * 2 * s->mb_stride); s 2966 libavcodec/vc1_block.c v->ttblk - s->mb_stride, s 2967 libavcodec/vc1_block.c sizeof(v->ttblk_base[0]) * 2 * s->mb_stride); s 2969 libavcodec/vc1_block.c v->is_intra - s->mb_stride, s 2970 libavcodec/vc1_block.c sizeof(v->is_intra_base[0]) * 2 * s->mb_stride); s 2971 libavcodec/vc1_block.c if (!v->s.loop_filter) s 2972 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, s->mb_y * 16, 16); s 2973 libavcodec/vc1_block.c else if (s->mb_y) s 2974 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, (s->mb_y - 1) * 16, 16); s 2975 libavcodec/vc1_block.c s->first_slice_line = 0; s 2977 libavcodec/vc1_block.c if (v->s.loop_filter) s 2978 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, (s->end_mb_y - 1) * 16, 16); s 2979 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y << v->field_mode, s->mb_width - 1, s 2980 libavcodec/vc1_block.c (s->end_mb_y << v->field_mode) - 1, ER_MB_END); s 2985 libavcodec/vc1_block.c MpegEncContext *s = &v->s; s 2987 libavcodec/vc1_block.c if (!v->s.last_picture.f->data[0]) s 2990 libavcodec/vc1_block.c ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_width - 1, s->end_mb_y - 1, ER_MB_END); s 2991 libavcodec/vc1_block.c s->first_slice_line = 1; s 2992 libavcodec/vc1_block.c for (s->mb_y = s->start_mb_y; s->mb_y < s->end_mb_y; s->mb_y++) { s 2993 libavcodec/vc1_block.c s->mb_x = 0; s 2995 libavcodec/vc1_block.c ff_update_block_index(s); s 2996 libavcodec/vc1_block.c memcpy(s->dest[0], s->last_picture.f->data[0] + s->mb_y * 16 * s->linesize, s->linesize * 16); s 2997 libavcodec/vc1_block.c memcpy(s->dest[1], s->last_picture.f->data[1] + s->mb_y * 8 * s->uvlinesize, s->uvlinesize * 8); s 2998 libavcodec/vc1_block.c memcpy(s->dest[2], s->last_picture.f->data[2] + s->mb_y * 8 * s->uvlinesize, s->uvlinesize * 8); s 2999 libavcodec/vc1_block.c ff_mpeg_draw_horiz_band(s, s->mb_y * 16, 16); s 3000 libavcodec/vc1_block.c s->first_slice_line = 0; s 3002 libavcodec/vc1_block.c s->pict_type = AV_PICTURE_TYPE_P; s 3008 libavcodec/vc1_block.c v->s.esc3_level_length = 0; s 3010 libavcodec/vc1_block.c ff_intrax8_decode_picture(&v->x8, &v->s.current_picture, s 3011 libavcodec/vc1_block.c &v->s.gb, &v->s.mb_x, &v->s.mb_y, s 3013 libavcodec/vc1_block.c v->s.loop_filter, v->s.low_delay); s 3015 libavcodec/vc1_block.c ff_er_add_slice(&v->s.er, 0, 0, s 3016 libavcodec/vc1_block.c (v->s.mb_x >> 1) - 1, (v->s.mb_y >> 1) - 1, s 3023 libavcodec/vc1_block.c switch (v->s.pict_type) { s 107 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 109 libavcodec/vc1_loopfilter.c int block_count = CONFIG_GRAY && (s->avctx->flags & AV_CODEC_FLAG_GRAY) ? 4 : 6; s 110 libavcodec/vc1_loopfilter.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 127 libavcodec/vc1_loopfilter.c if (s->mb_x == 0 && (i & 5) != 1) s 135 libavcodec/vc1_loopfilter.c s->mb_x ? left_blk : cur_blk, cur_blk, s 136 libavcodec/vc1_loopfilter.c v->fcm == ILACE_FRAME && s->mb_x && v->fieldtx_plane[mb_pos - 1], s 143 libavcodec/vc1_loopfilter.c if (s->first_slice_line && !(i & 2)) s 146 libavcodec/vc1_loopfilter.c if (s->mb_x && s 150 libavcodec/vc1_loopfilter.c ((i & 2) || v->over_flags_plane[mb_pos - 1 - s->mb_stride])))))) s 151 libavcodec/vc1_loopfilter.c vc1_v_overlap_filter(v, s->first_slice_line ? left_blk : topleft_blk, left_blk, i); s 152 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1 && s 156 libavcodec/vc1_loopfilter.c ((i & 2) || v->over_flags_plane[mb_pos - s->mb_stride])))))) s 157 libavcodec/vc1_loopfilter.c vc1_v_overlap_filter(v, s->first_slice_line ? cur_blk : top_blk, cur_blk, i); s 163 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 165 libavcodec/vc1_loopfilter.c int block_count = CONFIG_GRAY && (s->avctx->flags & AV_CODEC_FLAG_GRAY) ? 4 : 6; s 166 libavcodec/vc1_loopfilter.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 175 libavcodec/vc1_loopfilter.c if (s->mb_x == 0 && (i & 5) != 1) s 178 libavcodec/vc1_loopfilter.c if (v->mb_type[0][s->block_index[i]] && v->mb_type[0][s->block_index[i] - 1]) s 180 libavcodec/vc1_loopfilter.c s->mb_x ? left_blk : cur_blk, cur_blk, s 181 libavcodec/vc1_loopfilter.c v->fcm == ILACE_FRAME && s->mb_x && v->fieldtx_plane[mb_pos - 1], s 188 libavcodec/vc1_loopfilter.c if (s->first_slice_line && !(i & 2)) s 191 libavcodec/vc1_loopfilter.c if (s->mb_x && v->mb_type[0][s->block_index[i] - 2 + (i > 3)] && s 192 libavcodec/vc1_loopfilter.c v->mb_type[0][s->block_index[i] - s->block_wrap[i] - 2 + (i > 3)]) s 193 libavcodec/vc1_loopfilter.c vc1_v_overlap_filter(v, s->first_slice_line ? left_blk : topleft_blk, left_blk, i); s 194 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) s 195 libavcodec/vc1_loopfilter.c if (v->mb_type[0][s->block_index[i]] && s 196 libavcodec/vc1_loopfilter.c v->mb_type[0][s->block_index[i] - s->block_wrap[i]]) s 197 libavcodec/vc1_loopfilter.c vc1_v_overlap_filter(v, s->first_slice_line ? cur_blk : top_blk, cur_blk, i); s 209 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 220 libavcodec/vc1_loopfilter.c dst = dest + (block_num & 2) * 4 * s->linesize + (block_num & 1) * 8; s 224 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_h_loop_filter4(dst, 2 * s->uvlinesize, pq); s 225 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_h_loop_filter4(dst + s->uvlinesize, 2 * s->uvlinesize, pq); s 227 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_h_loop_filter8(dst, 2 * s->linesize, pq); s 228 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_h_loop_filter8(dst + s->linesize, 2 * s->linesize, pq); s 232 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_h_loop_filter8(dst, s->uvlinesize, pq); s 234 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_h_loop_filter16(dst, s->linesize, pq); s 242 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 253 libavcodec/vc1_loopfilter.c dst = dest + (block_num & 2) * 4 * s->linesize + (block_num & 1) * 8; s 257 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_v_loop_filter8(dst, 2 * s->uvlinesize, pq); s 258 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_v_loop_filter8(dst + s->uvlinesize, 2 * s->uvlinesize, pq); s 260 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_v_loop_filter16(dst, 2 * s->linesize, pq); s 261 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_v_loop_filter16(dst + s->linesize, 2 * s->linesize, pq); s 265 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_v_loop_filter8(dst, s->uvlinesize, pq); s 267 libavcodec/vc1_loopfilter.c v->vc1dsp.vc1_v_loop_filter16(dst, s->linesize, pq); s 273 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 274 libavcodec/vc1_loopfilter.c int block_count = CONFIG_GRAY && (s->avctx->flags & AV_CODEC_FLAG_GRAY) ? 4 : 6; s 275 libavcodec/vc1_loopfilter.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 288 libavcodec/vc1_loopfilter.c if (!s->first_slice_line) { s 289 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize - 16; s 290 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y + 1 ? TOP_EDGE : 0; s 291 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 292 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - s->mb_stride - 1]; s 294 libavcodec/vc1_loopfilter.c vc1_i_v_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, flags, fieldtx, i); s 296 libavcodec/vc1_loopfilter.c if (s->mb_x == v->end_mb_x - 1) { s 298 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - s->mb_stride]; s 300 libavcodec/vc1_loopfilter.c vc1_i_v_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, flags, fieldtx, i); s 303 libavcodec/vc1_loopfilter.c if (s->mb_y == s->end_mb_y - 1) { s 304 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16; s 305 libavcodec/vc1_loopfilter.c flags = s->first_slice_line ? TOP_EDGE | BOTTOM_EDGE : BOTTOM_EDGE; s 306 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 309 libavcodec/vc1_loopfilter.c vc1_i_v_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 : dest, flags, fieldtx, i); s 311 libavcodec/vc1_loopfilter.c if (s->mb_x == v->end_mb_x - 1) { s 315 libavcodec/vc1_loopfilter.c vc1_i_v_loop_filter(v, i > 3 ? s->dest[i - 3] : dest, flags, fieldtx, i); s 319 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 2) { s 320 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32 * s->linesize - 16; s 321 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 322 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 324 libavcodec/vc1_loopfilter.c vc1_i_h_loop_filter(v, i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize - 8 : dest, flags, i); s 326 libavcodec/vc1_loopfilter.c if (s->mb_x == v->end_mb_x - 1) { s 328 libavcodec/vc1_loopfilter.c flags = s->mb_x == 0 ? LEFT_EDGE | RIGHT_EDGE : RIGHT_EDGE; s 330 libavcodec/vc1_loopfilter.c vc1_i_h_loop_filter(v, i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize : dest, flags, i); s 333 libavcodec/vc1_loopfilter.c if (s->mb_y == s->end_mb_y - 1) { s 334 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 1) { s 335 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize - 16; s 336 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 337 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 339 libavcodec/vc1_loopfilter.c vc1_i_h_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, flags, i); s 341 libavcodec/vc1_loopfilter.c if (s->mb_x == v->end_mb_x - 1) { s 342 libavcodec/vc1_loopfilter.c flags = s->mb_x == 0 ? LEFT_EDGE | RIGHT_EDGE : RIGHT_EDGE; s 345 libavcodec/vc1_loopfilter.c vc1_i_h_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, flags, i); s 348 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16; s 349 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 350 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 352 libavcodec/vc1_loopfilter.c vc1_i_h_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 : dest, flags, i); s 354 libavcodec/vc1_loopfilter.c if (s->mb_x == v->end_mb_x - 1) { s 356 libavcodec/vc1_loopfilter.c flags = s->mb_x == 0 ? LEFT_EDGE | RIGHT_EDGE : RIGHT_EDGE; s 358 libavcodec/vc1_loopfilter.c vc1_i_h_loop_filter(v, i > 3 ? s->dest[i - 3] : dest, flags, i); s 367 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 372 libavcodec/vc1_loopfilter.c int idx, linesize = block_num > 3 ? s->uvlinesize : s->linesize; s 378 libavcodec/vc1_loopfilter.c dst = dest + (block_num & 2) * 4 * s->linesize + (block_num & 1) * 8; s 420 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 425 libavcodec/vc1_loopfilter.c int idx, linesize = block_num > 3 ? s->uvlinesize : s->linesize; s 431 libavcodec/vc1_loopfilter.c dst = dest + (block_num & 2) * 4 * s->linesize + (block_num & 1) * 8; s 437 libavcodec/vc1_loopfilter.c bottom_is_intra = is_intra[s->mb_stride] & (1 << block_num); s 438 libavcodec/vc1_loopfilter.c bottom_cbp = cbp[s->mb_stride] >> (block_num * 4); s 443 libavcodec/vc1_loopfilter.c bottom_is_intra = is_intra[s->mb_stride] & (1 << block_num - 2); s 444 libavcodec/vc1_loopfilter.c bottom_cbp = cbp[s->mb_stride] >> ((block_num - 2) * 4); s 448 libavcodec/vc1_loopfilter.c mv[0][0] != mv[block_num > 3 ? s->mb_stride : s->b8_stride][0] || s 449 libavcodec/vc1_loopfilter.c mv[0][1] != mv[block_num > 3 ? s->mb_stride : s->b8_stride][1] || s 450 libavcodec/vc1_loopfilter.c (v->fcm == ILACE_FIELD && mv_f[0] != mv_f[block_num > 3 ? s->mb_stride : s->b8_stride])) s 472 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 473 libavcodec/vc1_loopfilter.c int block_count = CONFIG_GRAY && (s->avctx->flags & AV_CODEC_FLAG_GRAY) ? 4 : 6; s 489 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 2) { s 490 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 491 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32 * s->linesize - 16; s 492 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - 2 * s->mb_stride - 1]; s 493 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - 2 * s->mb_stride - 1]; s 494 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - 2 * s->mb_stride - 1]; s 495 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2 * s->mb_stride - 1]; s 496 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y + 2 ? TOP_EDGE : 0; s 499 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize - 8 : dest, s 503 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 4 * s->b8_stride - 2 + v->blocks_off], s 504 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - 2 * s->mb_stride - 1 + v->mb_off] : s 505 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 4 * s->b8_stride - 2 + v->blocks_off], s 510 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 511 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32 * s->linesize; s 512 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - 2 * s->mb_stride]; s 513 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - 2 * s->mb_stride]; s 514 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - 2 * s->mb_stride]; s 515 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2 * s->mb_stride]; s 516 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y + 2 ? TOP_EDGE : 0; s 519 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize : dest, s 523 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 4 * s->b8_stride + v->blocks_off], s 524 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - 2 * s->mb_stride + v->mb_off] : s 525 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 4 * s->b8_stride + v->blocks_off], s 531 libavcodec/vc1_loopfilter.c if (s->mb_y == s->end_mb_y - 1) { s 532 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 533 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 1) { s 534 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize - 16; s 535 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - s->mb_stride - 1]; s 536 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - s->mb_stride - 1]; s 537 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - s->mb_stride - 1]; s 538 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride - 1]; s 539 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y + 1 ? TOP_EDGE : 0; s 542 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, s 546 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 2 * s->b8_stride - 2 + v->blocks_off], s 547 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - s->mb_stride - 1 + v->mb_off] : s 548 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 2 * s->b8_stride - 2 + v->blocks_off], s 553 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16; s 554 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - 1]; s 555 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - 1]; s 556 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - 1]; s 557 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 1]; s 558 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y ? TOP_EDGE | BOTTOM_EDGE : BOTTOM_EDGE; s 561 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 : dest, s 565 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 2 + v->blocks_off], s 566 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - 1 + v->mb_off] : s 567 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 2 + v->blocks_off], s 572 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 573 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 1) { s 574 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize; s 575 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - s->mb_stride]; s 576 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - s->mb_stride]; s 577 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - s->mb_stride]; s 578 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride]; s 579 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y + 1 ? TOP_EDGE : 0; s 582 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, s 586 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 2 * s->b8_stride + v->blocks_off], s 587 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - s->mb_stride + v->mb_off] : s 588 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 2 * s->b8_stride + v->blocks_off], s 593 libavcodec/vc1_loopfilter.c dest = s->dest[0]; s 594 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x]; s 595 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x]; s 596 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x]; s 597 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x]; s 598 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y ? TOP_EDGE | BOTTOM_EDGE : BOTTOM_EDGE; s 601 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] : dest, s 605 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] + v->blocks_off], s 606 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] + v->mb_off] : s 607 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] + v->blocks_off], s 614 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 2) { s 615 libavcodec/vc1_loopfilter.c if (s->mb_x >= 2) { s 616 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32 * s->linesize - 32; s 617 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - 2 * s->mb_stride - 2]; s 618 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - 2 * s->mb_stride - 2]; s 619 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - 2 * s->mb_stride - 2]; s 620 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2 * s->mb_stride - 2]; s 621 libavcodec/vc1_loopfilter.c flags = s->mb_x == 2 ? LEFT_EDGE : 0; s 624 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize - 16 : dest, s 628 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 4 * s->b8_stride - 4 + v->blocks_off], s 629 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - 2 * s->mb_stride - 2 + v->mb_off] : s 630 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 4 * s->b8_stride - 4 + v->blocks_off], s 635 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 636 libavcodec/vc1_loopfilter.c if (s->mb_x >= 1) { s 637 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32 * s->linesize - 16; s 638 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - 2 * s->mb_stride - 1]; s 639 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - 2 * s->mb_stride - 1]; s 640 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - 2 * s->mb_stride - 1]; s 641 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2 * s->mb_stride - 1]; s 642 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 645 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize - 8 : dest, s 649 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 4 * s->b8_stride - 2 + v->blocks_off], s 650 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - 2 * s->mb_stride - 1 + v->mb_off] : s 651 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 4 * s->b8_stride - 2 + v->blocks_off], s 656 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32 * s->linesize; s 657 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - 2 * s->mb_stride]; s 658 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - 2 * s->mb_stride]; s 659 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - 2 * s->mb_stride]; s 660 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2 * s->mb_stride]; s 661 libavcodec/vc1_loopfilter.c flags = s->mb_x ? RIGHT_EDGE : LEFT_EDGE | RIGHT_EDGE; s 664 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize : dest, s 668 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 4 * s->b8_stride + v->blocks_off], s 669 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - 2 * s->mb_stride + v->mb_off] : s 670 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 4 * s->b8_stride + v->blocks_off], s 676 libavcodec/vc1_loopfilter.c if (s->mb_y == s->end_mb_y - 1) { s 677 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 1) { s 678 libavcodec/vc1_loopfilter.c if (s->mb_x >= 2) { s 679 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize - 32; s 680 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - s->mb_stride - 2]; s 681 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - s->mb_stride - 2]; s 682 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - s->mb_stride - 2]; s 683 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride - 2]; s 684 libavcodec/vc1_loopfilter.c flags = s->mb_x == 2 ? LEFT_EDGE : 0; s 687 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 16 : dest, s 691 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 2 * s->b8_stride - 4 + v->blocks_off], s 692 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - s->mb_stride - 2 + v->mb_off] : s 693 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 2 * s->b8_stride - 4 + v->blocks_off], s 698 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 699 libavcodec/vc1_loopfilter.c if (s->mb_x >= 1) { s 700 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize - 16; s 701 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - s->mb_stride - 1]; s 702 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - s->mb_stride - 1]; s 703 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - s->mb_stride - 1]; s 704 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride - 1]; s 705 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 708 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, s 712 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 2 * s->b8_stride - 2 + v->blocks_off], s 713 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - s->mb_stride - 1 + v->mb_off] : s 714 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 2 * s->b8_stride - 2 + v->blocks_off], s 719 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize; s 720 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - s->mb_stride]; s 721 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - s->mb_stride]; s 722 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - s->mb_stride]; s 723 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride]; s 724 libavcodec/vc1_loopfilter.c flags = s->mb_x ? RIGHT_EDGE : LEFT_EDGE | RIGHT_EDGE; s 727 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, s 731 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 2 * s->b8_stride + v->blocks_off], s 732 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - s->mb_stride + v->mb_off] : s 733 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 2 * s->b8_stride + v->blocks_off], s 739 libavcodec/vc1_loopfilter.c if (s->mb_x >= 2) { s 740 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32; s 741 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - 2]; s 742 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - 2]; s 743 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - 2]; s 744 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2]; s 745 libavcodec/vc1_loopfilter.c flags = s->mb_x == 2 ? LEFT_EDGE : 0; s 748 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 : dest, s 752 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 4 + v->blocks_off], s 753 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - 2 + v->mb_off] : s 754 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 4 + v->blocks_off], s 759 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 760 libavcodec/vc1_loopfilter.c if (s->mb_x >= 1) { s 761 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16; s 762 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - 1]; s 763 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x - 1]; s 764 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x - 1]; s 765 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 1]; s 766 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 769 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 : dest, s 773 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] - 2 + v->blocks_off], s 774 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] - 1 + v->mb_off] : s 775 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] - 2 + v->blocks_off], s 780 libavcodec/vc1_loopfilter.c dest = s->dest[0]; s 781 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x]; s 782 libavcodec/vc1_loopfilter.c is_intra = &v->is_intra[s->mb_x]; s 783 libavcodec/vc1_loopfilter.c uvmv = &v->luma_mv[s->mb_x]; s 784 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x]; s 785 libavcodec/vc1_loopfilter.c flags = s->mb_x ? RIGHT_EDGE : LEFT_EDGE | RIGHT_EDGE; s 788 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] : dest, s 792 libavcodec/vc1_loopfilter.c &s->current_picture.motion_val[0][s->block_index[i] + v->blocks_off], s 793 libavcodec/vc1_loopfilter.c i > 3 ? &v->mv_f[0][s->block_index[i] + v->mb_off] : s 794 libavcodec/vc1_loopfilter.c &v->mv_f[0][s->block_index[i] + v->blocks_off], s 805 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 808 libavcodec/vc1_loopfilter.c int linesize = block_num > 3 ? s->uvlinesize : s->linesize; s 814 libavcodec/vc1_loopfilter.c dst = dest + (block_num & 2) * 4 * s->linesize + (block_num & 1) * 8; s 855 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 858 libavcodec/vc1_loopfilter.c int linesize = block_num > 3 ? s->uvlinesize : s->linesize; s 864 libavcodec/vc1_loopfilter.c dst = dest + (block_num & 2) * 4 * s->linesize + (block_num & 1) * 8; s 911 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 912 libavcodec/vc1_loopfilter.c int block_count = CONFIG_GRAY && (s->avctx->flags & AV_CODEC_FLAG_GRAY) ? 4 : 6; s 913 libavcodec/vc1_loopfilter.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 928 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 929 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 1) { s 930 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize - 16; s 931 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride - 1]; s 932 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y + 1 ? TOP_EDGE : 0; s 933 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - s->mb_stride - 1]; s 936 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, s 943 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 944 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 1) { s 945 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize; s 946 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride]; s 947 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y + 1 ? TOP_EDGE : 0; s 948 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - s->mb_stride]; s 951 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, s 958 libavcodec/vc1_loopfilter.c if (s->mb_y == s->end_mb_y - 1) { s 959 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 960 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16; s 961 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 1]; s 962 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y ? TOP_EDGE | BOTTOM_EDGE : BOTTOM_EDGE; s 966 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 : dest, s 972 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 973 libavcodec/vc1_loopfilter.c dest = s->dest[0]; s 974 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x]; s 975 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y ? TOP_EDGE | BOTTOM_EDGE : BOTTOM_EDGE; s 979 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] : dest, s 987 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 2) { s 988 libavcodec/vc1_loopfilter.c if (s->mb_x >= 2) { s 989 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32 * s->linesize - 32; s 990 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2 * s->mb_stride - 2]; s 991 libavcodec/vc1_loopfilter.c flags = s->mb_x == 2 ? LEFT_EDGE : 0; s 992 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - 2 * s->mb_stride - 2]; s 995 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize - 16 : dest, s 1001 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 1002 libavcodec/vc1_loopfilter.c if (s->mb_x >= 1) { s 1003 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32 * s->linesize - 16; s 1004 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2 * s->mb_stride - 1]; s 1005 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 1006 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - 2 * s->mb_stride - 1]; s 1009 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize - 8 : dest, s 1015 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32 * s->linesize; s 1016 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2 * s->mb_stride]; s 1017 libavcodec/vc1_loopfilter.c flags = s->mb_x ? RIGHT_EDGE : LEFT_EDGE | RIGHT_EDGE; s 1018 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - 2 * s->mb_stride]; s 1021 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 * s->uvlinesize : dest, s 1028 libavcodec/vc1_loopfilter.c if (s->mb_y == s->end_mb_y - 1) { s 1029 libavcodec/vc1_loopfilter.c if (s->mb_y >= s->start_mb_y + 1) { s 1030 libavcodec/vc1_loopfilter.c if (s->mb_x >= 2) { s 1031 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize - 32; s 1032 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride - 2]; s 1033 libavcodec/vc1_loopfilter.c flags = s->mb_x == 2 ? LEFT_EDGE : 0; s 1034 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - s->mb_stride - 2]; s 1037 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 16 : dest, s 1043 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 1044 libavcodec/vc1_loopfilter.c if (s->mb_x >= 1) { s 1045 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize - 16; s 1046 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride - 1]; s 1047 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 1048 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - s->mb_stride - 1]; s 1051 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, s 1057 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize; s 1058 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride]; s 1059 libavcodec/vc1_loopfilter.c flags = s->mb_x ? RIGHT_EDGE : LEFT_EDGE | RIGHT_EDGE; s 1060 libavcodec/vc1_loopfilter.c fieldtx = v->fieldtx_plane[mb_pos - s->mb_stride]; s 1063 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, s 1070 libavcodec/vc1_loopfilter.c if (s->mb_x >= 2) { s 1071 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 32; s 1072 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 2]; s 1073 libavcodec/vc1_loopfilter.c flags = s->mb_x == 2 ? LEFT_EDGE : 0; s 1077 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 16 : dest, s 1083 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 1084 libavcodec/vc1_loopfilter.c if (s->mb_x >= 1) { s 1085 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16; s 1086 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 1]; s 1087 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 1091 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] - 8 : dest, s 1097 libavcodec/vc1_loopfilter.c dest = s->dest[0]; s 1098 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x]; s 1099 libavcodec/vc1_loopfilter.c flags = s->mb_x ? RIGHT_EDGE : LEFT_EDGE | RIGHT_EDGE; s 1103 libavcodec/vc1_loopfilter.c i > 3 ? s->dest[i - 3] : dest, s 1115 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 1120 libavcodec/vc1_loopfilter.c int idx, linesize = block_num > 3 ? s->uvlinesize : s->linesize; s 1125 libavcodec/vc1_loopfilter.c dst = dest + (block_num & 2) * 4 * s->linesize + (block_num & 1) * 8; s 1147 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 1152 libavcodec/vc1_loopfilter.c int idx, linesize = block_num > 3 ? s->uvlinesize : s->linesize; s 1157 libavcodec/vc1_loopfilter.c dst = dest + (block_num & 2) * 4 * s->linesize + (block_num & 1) * 8; s 1174 libavcodec/vc1_loopfilter.c MpegEncContext *s = &v->s; s 1175 libavcodec/vc1_loopfilter.c int block_count = CONFIG_GRAY && (s->avctx->flags & AV_CODEC_FLAG_GRAY) ? 4 : 6; s 1188 libavcodec/vc1_loopfilter.c if (!s->first_slice_line) { s 1189 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize; s 1190 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - s->mb_stride]; s 1191 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride]; s 1192 libavcodec/vc1_loopfilter.c flags = s->mb_y == s->start_mb_y + 1 ? TOP_EDGE : 0; s 1194 libavcodec/vc1_loopfilter.c vc1_b_v_intfi_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, cbp, ttblk, flags, i); s 1196 libavcodec/vc1_loopfilter.c if (s->mb_y == s->end_mb_y - 1) { s 1197 libavcodec/vc1_loopfilter.c dest = s->dest[0]; s 1198 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x]; s 1199 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x]; s 1200 libavcodec/vc1_loopfilter.c flags = s->first_slice_line ? TOP_EDGE | BOTTOM_EDGE : BOTTOM_EDGE; s 1202 libavcodec/vc1_loopfilter.c vc1_b_v_intfi_loop_filter(v, i > 3 ? s->dest[i - 3] : dest, cbp, ttblk, flags, i); s 1205 libavcodec/vc1_loopfilter.c if (!s->first_slice_line) { s 1206 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16 * s->linesize - 16; s 1207 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - s->mb_stride - 1]; s 1208 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - s->mb_stride - 1]; s 1209 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 1210 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 1212 libavcodec/vc1_loopfilter.c vc1_b_h_intfi_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, cbp, ttblk, flags, i); s 1214 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 1218 libavcodec/vc1_loopfilter.c flags = s->mb_x == 0 ? LEFT_EDGE | RIGHT_EDGE : RIGHT_EDGE; s 1220 libavcodec/vc1_loopfilter.c vc1_b_h_intfi_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, cbp, ttblk, flags, i); s 1223 libavcodec/vc1_loopfilter.c if (s->mb_y == s->end_mb_y - 1) { s 1224 libavcodec/vc1_loopfilter.c dest = s->dest[0] - 16; s 1225 libavcodec/vc1_loopfilter.c cbp = &v->cbp[s->mb_x - 1]; s 1226 libavcodec/vc1_loopfilter.c ttblk = &v->ttblk[s->mb_x - 1]; s 1227 libavcodec/vc1_loopfilter.c if (s->mb_x) { s 1228 libavcodec/vc1_loopfilter.c flags = s->mb_x == 1 ? LEFT_EDGE : 0; s 1230 libavcodec/vc1_loopfilter.c vc1_b_h_intfi_loop_filter(v, i > 3 ? s->dest[i - 3] - 8 : dest, cbp, ttblk, flags, i); s 1232 libavcodec/vc1_loopfilter.c if (s->mb_x == s->mb_width - 1) { s 1236 libavcodec/vc1_loopfilter.c flags = s->mb_x == 0 ? LEFT_EDGE | RIGHT_EDGE : RIGHT_EDGE; s 1238 libavcodec/vc1_loopfilter.c vc1_b_h_intfi_loop_filter(v, i > 3 ? s->dest[i - 3] : dest, cbp, ttblk, flags, i); s 110 libavcodec/vc1_mc.c MpegEncContext *s = &v->s; s 111 libavcodec/vc1_mc.c int idx = v->mv_f[dir][s->block_index[0] + v->blocks_off] | s 112 libavcodec/vc1_mc.c (v->mv_f[dir][s->block_index[1] + v->blocks_off] << 1) | s 113 libavcodec/vc1_mc.c (v->mv_f[dir][s->block_index[2] + v->blocks_off] << 2) | s 114 libavcodec/vc1_mc.c (v->mv_f[dir][s->block_index[3] + v->blocks_off] << 3); s 121 libavcodec/vc1_mc.c *tx = median4(s->mv[dir][0][0], s->mv[dir][1][0], s->mv[dir][2][0], s->mv[dir][3][0]); s 122 libavcodec/vc1_mc.c *ty = median4(s->mv[dir][0][1], s->mv[dir][1][1], s->mv[dir][2][1], s->mv[dir][3][1]); s 125 libavcodec/vc1_mc.c *tx = mid_pred(s->mv[dir][idx < 2][0], s->mv[dir][1 + (idx < 4)][0], s->mv[dir][2 + (idx < 8)][0]); s 126 libavcodec/vc1_mc.c *ty = mid_pred(s->mv[dir][idx < 2][1], s->mv[dir][1 + (idx < 4)][1], s->mv[dir][2 + (idx < 8)][1]); s 129 libavcodec/vc1_mc.c *tx = mid_pred(s->mv[dir][idx > 0xd][0], s->mv[dir][1 + (idx > 0xb)][0], s->mv[dir][2 + (idx > 0x7)][0]); s 130 libavcodec/vc1_mc.c *ty = mid_pred(s->mv[dir][idx > 0xd][1], s->mv[dir][1 + (idx > 0xb)][1], s->mv[dir][2 + (idx > 0x7)][1]); s 133 libavcodec/vc1_mc.c *tx = (s->mv[dir][index2[idx] >> 4][0] + s->mv[dir][index2[idx] & 0xf][0]) / 2; s 134 libavcodec/vc1_mc.c *ty = (s->mv[dir][index2[idx] >> 4][1] + s->mv[dir][index2[idx] & 0xf][1]) / 2; s 142 libavcodec/vc1_mc.c MpegEncContext *s = &v->s; s 143 libavcodec/vc1_mc.c int idx = !v->mb_type[0][s->block_index[0]] | s 144 libavcodec/vc1_mc.c (!v->mb_type[0][s->block_index[1]] << 1) | s 145 libavcodec/vc1_mc.c (!v->mb_type[0][s->block_index[2]] << 2) | s 146 libavcodec/vc1_mc.c (!v->mb_type[0][s->block_index[3]] << 3); s 152 libavcodec/vc1_mc.c *tx = median4(s->mv[dir][0][0], s->mv[dir][1][0], s->mv[dir][2][0], s->mv[dir][3][0]); s 153 libavcodec/vc1_mc.c *ty = median4(s->mv[dir][0][1], s->mv[dir][1][1], s->mv[dir][2][1], s->mv[dir][3][1]); s 156 libavcodec/vc1_mc.c *tx = mid_pred(s->mv[dir][idx > 0xd][0], s->mv[dir][1 + (idx > 0xb)][0], s->mv[dir][2 + (idx > 0x7)][0]); s 157 libavcodec/vc1_mc.c *ty = mid_pred(s->mv[dir][idx > 0xd][1], s->mv[dir][1 + (idx > 0xb)][1], s->mv[dir][2 + (idx > 0x7)][1]); s 160 libavcodec/vc1_mc.c *tx = (s->mv[dir][index2[idx] >> 4][0] + s->mv[dir][index2[idx] & 0xf][0]) / 2; s 161 libavcodec/vc1_mc.c *ty = (s->mv[dir][index2[idx] >> 4][1] + s->mv[dir][index2[idx] & 0xf][1]) / 2; s 174 libavcodec/vc1_mc.c MpegEncContext *s = &v->s; s 178 libavcodec/vc1_mc.c int v_edge_pos = s->v_edge_pos >> v->field_mode; s 187 libavcodec/vc1_mc.c !v->s.last_picture.f->data[0]) s 190 libavcodec/vc1_mc.c linesize = s->current_picture_ptr->f->linesize[0]; s 191 libavcodec/vc1_mc.c uvlinesize = s->current_picture_ptr->f->linesize[1]; s 193 libavcodec/vc1_mc.c mx = s->mv[dir][0][0]; s 194 libavcodec/vc1_mc.c my = s->mv[dir][0][1]; s 197 libavcodec/vc1_mc.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 199 libavcodec/vc1_mc.c s->current_picture.motion_val[1][s->block_index[i] + v->blocks_off][0] = mx; s 200 libavcodec/vc1_mc.c s->current_picture.motion_val[1][s->block_index[i] + v->blocks_off][1] = my; s 206 libavcodec/vc1_mc.c v->luma_mv[s->mb_x][0] = uvmx; s 207 libavcodec/vc1_mc.c v->luma_mv[s->mb_x][1] = uvmy; s 222 libavcodec/vc1_mc.c srcY = s->current_picture.f->data[0]; s 223 libavcodec/vc1_mc.c srcU = s->current_picture.f->data[1]; s 224 libavcodec/vc1_mc.c srcV = s->current_picture.f->data[2]; s 230 libavcodec/vc1_mc.c srcY = s->last_picture.f->data[0]; s 231 libavcodec/vc1_mc.c srcU = s->last_picture.f->data[1]; s 232 libavcodec/vc1_mc.c srcV = s->last_picture.f->data[2]; s 236 libavcodec/vc1_mc.c interlace = s->last_picture.f->interlaced_frame; s 239 libavcodec/vc1_mc.c srcY = s->next_picture.f->data[0]; s 240 libavcodec/vc1_mc.c srcU = s->next_picture.f->data[1]; s 241 libavcodec/vc1_mc.c srcV = s->next_picture.f->data[2]; s 245 libavcodec/vc1_mc.c interlace = s->next_picture.f->interlaced_frame; s 249 libavcodec/vc1_mc.c av_log(v->s.avctx, AV_LOG_ERROR, "Referenced frame missing.\n"); s 253 libavcodec/vc1_mc.c src_x = s->mb_x * 16 + (mx >> 2); s 254 libavcodec/vc1_mc.c src_y = s->mb_y * 16 + (my >> 2); s 255 libavcodec/vc1_mc.c uvsrc_x = s->mb_x * 8 + (uvmx >> 2); s 256 libavcodec/vc1_mc.c uvsrc_y = s->mb_y * 8 + (uvmy >> 2); s 259 libavcodec/vc1_mc.c src_x = av_clip( src_x, -16, s->mb_width * 16); s 260 libavcodec/vc1_mc.c src_y = av_clip( src_y, -16, s->mb_height * 16); s 261 libavcodec/vc1_mc.c uvsrc_x = av_clip(uvsrc_x, -8, s->mb_width * 8); s 262 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8, s->mb_height * 8); s 264 libavcodec/vc1_mc.c src_x = av_clip( src_x, -17, s->avctx->coded_width); s 265 libavcodec/vc1_mc.c uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); s 267 libavcodec/vc1_mc.c src_y = av_clip(src_y, -18 + (src_y & 1), s->avctx->coded_height + (src_y & 1)); s 268 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8 + (uvsrc_y & 1), (s->avctx->coded_height >> 1) + (uvsrc_y & 1)); s 270 libavcodec/vc1_mc.c src_y = av_clip(src_y, -18, s->avctx->coded_height + 1); s 271 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); s 275 libavcodec/vc1_mc.c srcY += src_y * s->linesize + src_x; s 276 libavcodec/vc1_mc.c srcU += uvsrc_y * s->uvlinesize + uvsrc_x; s 277 libavcodec/vc1_mc.c srcV += uvsrc_y * s->uvlinesize + uvsrc_x; s 286 libavcodec/vc1_mc.c if (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY) { s 287 libavcodec/vc1_mc.c srcU = s->sc.edge_emu_buffer + 18 * s->linesize; s 288 libavcodec/vc1_mc.c srcV = s->sc.edge_emu_buffer + 18 * s->linesize; s 292 libavcodec/vc1_mc.c || s->h_edge_pos < 22 || v_edge_pos < 22 s 293 libavcodec/vc1_mc.c || (unsigned)(src_x - s->mspel) > s->h_edge_pos - (mx&3) - 16 - s->mspel * 3 s 295 libavcodec/vc1_mc.c uint8_t *ubuf = s->sc.edge_emu_buffer + 19 * s->linesize; s 296 libavcodec/vc1_mc.c uint8_t *vbuf = ubuf + 9 * s->uvlinesize; s 297 libavcodec/vc1_mc.c const int k = 17 + s->mspel * 2; s 299 libavcodec/vc1_mc.c srcY -= s->mspel * (1 + s->linesize); s 301 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 307 libavcodec/vc1_mc.c src_x - s->mspel, s 308 libavcodec/vc1_mc.c src_y - s->mspel >> !v->field_mode, s 309 libavcodec/vc1_mc.c s->h_edge_pos, s 310 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 312 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + linesize, s 318 libavcodec/vc1_mc.c src_x - s->mspel, s 319 libavcodec/vc1_mc.c src_y - s->mspel + 1 >> 1, s 320 libavcodec/vc1_mc.c s->h_edge_pos, s 321 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 323 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 329 libavcodec/vc1_mc.c src_x - s->mspel, s 330 libavcodec/vc1_mc.c v->field_mode ? 2 * (src_y - s->mspel) + v->ref_field_type[dir] : s 331 libavcodec/vc1_mc.c src_y - s->mspel, s 332 libavcodec/vc1_mc.c s->h_edge_pos, s 333 libavcodec/vc1_mc.c s->v_edge_pos); s 334 libavcodec/vc1_mc.c srcY = s->sc.edge_emu_buffer; s 336 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(ubuf, s 344 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 345 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 346 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(vbuf, s 354 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 355 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 357 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(ubuf + uvlinesize, s 365 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 366 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 367 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(vbuf + uvlinesize, s 375 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 376 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 379 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(ubuf, s 387 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 388 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 389 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(vbuf, s 397 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 398 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 404 libavcodec/vc1_mc.c vc1_scale_luma(srcY, k, s->linesize); s 405 libavcodec/vc1_mc.c vc1_scale_chroma(srcU, srcV, 9, s->uvlinesize); s 410 libavcodec/vc1_mc.c luty[v->field_mode ? v->ref_field_type[dir] : ((0 + src_y - s->mspel) & 1)], s 411 libavcodec/vc1_mc.c luty[v->field_mode ? v->ref_field_type[dir] : ((1 + src_y - s->mspel) & 1)], s 412 libavcodec/vc1_mc.c k, s->linesize); s 416 libavcodec/vc1_mc.c 9, s->uvlinesize); s 418 libavcodec/vc1_mc.c srcY += s->mspel * (1 + s->linesize); s 421 libavcodec/vc1_mc.c if (s->mspel) { s 423 libavcodec/vc1_mc.c v->vc1dsp.put_vc1_mspel_pixels_tab[0][dxy](s->dest[0], srcY, s->linesize, v->rnd); s 427 libavcodec/vc1_mc.c s->hdsp.put_pixels_tab[0][dxy](s->dest[0], srcY, s->linesize, 16); s 429 libavcodec/vc1_mc.c s->hdsp.put_no_rnd_pixels_tab[0][dxy](s->dest[0], srcY, s->linesize, 16); s 432 libavcodec/vc1_mc.c if (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY) s 438 libavcodec/vc1_mc.c h264chroma->put_h264_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); s 439 libavcodec/vc1_mc.c h264chroma->put_h264_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); s 441 libavcodec/vc1_mc.c v->vc1dsp.put_no_rnd_vc1_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); s 442 libavcodec/vc1_mc.c v->vc1dsp.put_no_rnd_vc1_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); s 445 libavcodec/vc1_mc.c v->mv_f[dir][s->block_index[4] + v->mb_off] = v->cur_field_type != v->ref_field_type[dir]; s 446 libavcodec/vc1_mc.c v->mv_f[dir][s->block_index[5] + v->mb_off] = v->cur_field_type != v->ref_field_type[dir]; s 454 libavcodec/vc1_mc.c MpegEncContext *s = &v->s; s 458 libavcodec/vc1_mc.c int fieldmv = (v->fcm == ILACE_FRAME) ? v->blk_mv_type[s->block_index[n]] : 0; s 459 libavcodec/vc1_mc.c int v_edge_pos = s->v_edge_pos >> v->field_mode; s 467 libavcodec/vc1_mc.c !v->s.last_picture.f->data[0]) s 470 libavcodec/vc1_mc.c linesize = s->current_picture_ptr->f->linesize[0]; s 472 libavcodec/vc1_mc.c mx = s->mv[dir][n][0]; s 473 libavcodec/vc1_mc.c my = s->mv[dir][n][1]; s 477 libavcodec/vc1_mc.c srcY = s->current_picture.f->data[0]; s 482 libavcodec/vc1_mc.c srcY = s->last_picture.f->data[0]; s 485 libavcodec/vc1_mc.c interlace = s->last_picture.f->interlaced_frame; s 488 libavcodec/vc1_mc.c srcY = s->next_picture.f->data[0]; s 491 libavcodec/vc1_mc.c interlace = s->next_picture.f->interlaced_frame; s 495 libavcodec/vc1_mc.c av_log(v->s.avctx, AV_LOG_ERROR, "Referenced frame missing.\n"); s 504 libavcodec/vc1_mc.c if (s->pict_type == AV_PICTURE_TYPE_P && n == 3 && v->field_mode) { s 506 libavcodec/vc1_mc.c &s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][0], s 507 libavcodec/vc1_mc.c &s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][1]); s 510 libavcodec/vc1_mc.c v->mv_f[1][s->block_index[k] + v->blocks_off] = f; s 515 libavcodec/vc1_mc.c int width = s->avctx->coded_width; s 516 libavcodec/vc1_mc.c int height = s->avctx->coded_height >> 1; s 517 libavcodec/vc1_mc.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 518 libavcodec/vc1_mc.c s->current_picture.motion_val[1][s->block_index[n] + v->blocks_off][0] = mx; s 519 libavcodec/vc1_mc.c s->current_picture.motion_val[1][s->block_index[n] + v->blocks_off][1] = my; s 521 libavcodec/vc1_mc.c qx = (s->mb_x * 16) + (mx >> 2); s 522 libavcodec/vc1_mc.c qy = (s->mb_y * 8) + (my >> 3); s 535 libavcodec/vc1_mc.c off = ((n > 1) ? s->linesize : 0) + (n & 1) * 8; s 537 libavcodec/vc1_mc.c off = s->linesize * 4 * (n & 2) + (n & 1) * 8; s 539 libavcodec/vc1_mc.c src_x = s->mb_x * 16 + (n & 1) * 8 + (mx >> 2); s 541 libavcodec/vc1_mc.c src_y = s->mb_y * 16 + (n & 2) * 4 + (my >> 2); s 543 libavcodec/vc1_mc.c src_y = s->mb_y * 16 + ((n > 1) ? 1 : 0) + (my >> 2); s 546 libavcodec/vc1_mc.c src_x = av_clip(src_x, -16, s->mb_width * 16); s 547 libavcodec/vc1_mc.c src_y = av_clip(src_y, -16, s->mb_height * 16); s 549 libavcodec/vc1_mc.c src_x = av_clip(src_x, -17, s->avctx->coded_width); s 551 libavcodec/vc1_mc.c src_y = av_clip(src_y, -18 + (src_y & 1), s->avctx->coded_height + (src_y & 1)); s 553 libavcodec/vc1_mc.c src_y = av_clip(src_y, -18, s->avctx->coded_height + 1); s 556 libavcodec/vc1_mc.c srcY += src_y * s->linesize + src_x; s 561 libavcodec/vc1_mc.c || s->h_edge_pos < 13 || v_edge_pos < 23 s 562 libavcodec/vc1_mc.c || (unsigned)(src_x - s->mspel) > s->h_edge_pos - (mx & 3) - 8 - s->mspel * 2 s 563 libavcodec/vc1_mc.c || (unsigned)(src_y - (s->mspel << fieldmv)) > v_edge_pos - (my & 3) - ((8 + s->mspel * 2) << fieldmv)) { s 564 libavcodec/vc1_mc.c const int k = 9 + s->mspel * 2; s 566 libavcodec/vc1_mc.c srcY -= s->mspel * (1 + (s->linesize << fieldmv)); s 569 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 575 libavcodec/vc1_mc.c src_x - s->mspel, s 576 libavcodec/vc1_mc.c src_y - (s->mspel << fieldmv) >> !v->field_mode, s 577 libavcodec/vc1_mc.c s->h_edge_pos, s 578 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 580 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + linesize, s 586 libavcodec/vc1_mc.c src_x - s->mspel, s 587 libavcodec/vc1_mc.c src_y - s->mspel + 1 >> 1, s 588 libavcodec/vc1_mc.c s->h_edge_pos, s 589 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 591 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 597 libavcodec/vc1_mc.c src_x - s->mspel, s 598 libavcodec/vc1_mc.c v->field_mode ? 2 * (src_y - s->mspel) + v->ref_field_type[dir] : s 599 libavcodec/vc1_mc.c src_y - (s->mspel << fieldmv), s 600 libavcodec/vc1_mc.c s->h_edge_pos, s 601 libavcodec/vc1_mc.c s->v_edge_pos); s 602 libavcodec/vc1_mc.c srcY = s->sc.edge_emu_buffer; s 605 libavcodec/vc1_mc.c vc1_scale_luma(srcY, k, s->linesize << fieldmv); s 610 libavcodec/vc1_mc.c luty[v->field_mode ? v->ref_field_type[dir] : (((0<<fieldmv)+src_y - (s->mspel << fieldmv)) & 1)], s 611 libavcodec/vc1_mc.c luty[v->field_mode ? v->ref_field_type[dir] : (((1<<fieldmv)+src_y - (s->mspel << fieldmv)) & 1)], s 612 libavcodec/vc1_mc.c k, s->linesize << fieldmv); s 614 libavcodec/vc1_mc.c srcY += s->mspel * (1 + (s->linesize << fieldmv)); s 617 libavcodec/vc1_mc.c if (s->mspel) { s 620 libavcodec/vc1_mc.c v->vc1dsp.avg_vc1_mspel_pixels_tab[1][dxy](s->dest[0] + off, srcY, s->linesize << fieldmv, v->rnd); s 622 libavcodec/vc1_mc.c v->vc1dsp.put_vc1_mspel_pixels_tab[1][dxy](s->dest[0] + off, srcY, s->linesize << fieldmv, v->rnd); s 626 libavcodec/vc1_mc.c s->hdsp.put_pixels_tab[1][dxy](s->dest[0] + off, srcY, s->linesize, 8); s 628 libavcodec/vc1_mc.c s->hdsp.put_no_rnd_pixels_tab[1][dxy](s->dest[0] + off, srcY, s->linesize, 8); s 636 libavcodec/vc1_mc.c MpegEncContext *s = &v->s; s 642 libavcodec/vc1_mc.c int v_edge_pos = s->v_edge_pos >> v->field_mode; s 648 libavcodec/vc1_mc.c if (!v->field_mode && !v->s.last_picture.f->data[0]) s 650 libavcodec/vc1_mc.c if (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY) s 657 libavcodec/vc1_mc.c s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][0] = 0; s 658 libavcodec/vc1_mc.c s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][1] = 0; s 659 libavcodec/vc1_mc.c v->luma_mv[s->mb_x][0] = v->luma_mv[s->mb_x][1] = 0; s 667 libavcodec/vc1_mc.c if (v->field_mode && chroma_ref_type == 1 && v->cur_field_type == 1 && !v->s.last_picture.f->data[0]) s 669 libavcodec/vc1_mc.c s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][0] = tx; s 670 libavcodec/vc1_mc.c s->current_picture.motion_val[1][s->block_index[0] + v->blocks_off][1] = ty; s 672 libavcodec/vc1_mc.c uvlinesize = s->current_picture_ptr->f->linesize[1]; s 677 libavcodec/vc1_mc.c v->luma_mv[s->mb_x][0] = uvmx; s 678 libavcodec/vc1_mc.c v->luma_mv[s->mb_x][1] = uvmy; s 688 libavcodec/vc1_mc.c uvsrc_x = s->mb_x * 8 + (uvmx >> 2); s 689 libavcodec/vc1_mc.c uvsrc_y = s->mb_y * 8 + (uvmy >> 2); s 692 libavcodec/vc1_mc.c uvsrc_x = av_clip(uvsrc_x, -8, s->mb_width * 8); s 693 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8, s->mb_height * 8); s 695 libavcodec/vc1_mc.c uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); s 696 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); s 701 libavcodec/vc1_mc.c srcU = s->current_picture.f->data[1]; s 702 libavcodec/vc1_mc.c srcV = s->current_picture.f->data[2]; s 707 libavcodec/vc1_mc.c srcU = s->last_picture.f->data[1]; s 708 libavcodec/vc1_mc.c srcV = s->last_picture.f->data[2]; s 711 libavcodec/vc1_mc.c interlace = s->last_picture.f->interlaced_frame; s 714 libavcodec/vc1_mc.c srcU = s->next_picture.f->data[1]; s 715 libavcodec/vc1_mc.c srcV = s->next_picture.f->data[2]; s 718 libavcodec/vc1_mc.c interlace = s->next_picture.f->interlaced_frame; s 722 libavcodec/vc1_mc.c av_log(v->s.avctx, AV_LOG_ERROR, "Referenced frame missing.\n"); s 726 libavcodec/vc1_mc.c srcU += uvsrc_y * s->uvlinesize + uvsrc_x; s 727 libavcodec/vc1_mc.c srcV += uvsrc_y * s->uvlinesize + uvsrc_x; s 737 libavcodec/vc1_mc.c || s->h_edge_pos < 18 || v_edge_pos < 18 s 738 libavcodec/vc1_mc.c || (unsigned)uvsrc_x > (s->h_edge_pos >> 1) - 9 s 741 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 749 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 750 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 751 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + 16, s 759 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 760 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 762 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + uvlinesize, s 770 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 771 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 772 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + 16 + uvlinesize, s 780 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 781 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 784 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 792 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 793 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 794 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + 16, s 802 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 803 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 805 libavcodec/vc1_mc.c srcU = s->sc.edge_emu_buffer; s 806 libavcodec/vc1_mc.c srcV = s->sc.edge_emu_buffer + 16; s 810 libavcodec/vc1_mc.c vc1_scale_chroma(srcU, srcV, 9, s->uvlinesize); s 817 libavcodec/vc1_mc.c 9, s->uvlinesize); s 825 libavcodec/vc1_mc.c h264chroma->put_h264_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); s 826 libavcodec/vc1_mc.c h264chroma->put_h264_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); s 828 libavcodec/vc1_mc.c v->vc1dsp.put_no_rnd_vc1_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); s 829 libavcodec/vc1_mc.c v->vc1dsp.put_no_rnd_vc1_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); s 832 libavcodec/vc1_mc.c v->mv_f[dir][s->block_index[4] + v->mb_off] = v->cur_field_type != chroma_ref_type; s 833 libavcodec/vc1_mc.c v->mv_f[dir][s->block_index[5] + v->mb_off] = v->cur_field_type != chroma_ref_type; s 841 libavcodec/vc1_mc.c MpegEncContext *s = &v->s; s 847 libavcodec/vc1_mc.c int fieldmv = v->blk_mv_type[s->block_index[0]]; s 850 libavcodec/vc1_mc.c int v_edge_pos = s->v_edge_pos >> 1; s 856 libavcodec/vc1_mc.c if (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY) s 859 libavcodec/vc1_mc.c uvlinesize = s->current_picture_ptr->f->linesize[1]; s 863 libavcodec/vc1_mc.c tx = s->mv[d][i][0]; s 865 libavcodec/vc1_mc.c ty = s->mv[d][i][1]; s 873 libavcodec/vc1_mc.c off = (i & 1) * 4 + ((i & 2) ? v_dist * s->uvlinesize : 0); s 874 libavcodec/vc1_mc.c uvsrc_x = s->mb_x * 8 + (i & 1) * 4 + (uvmx_field[i] >> 2); s 875 libavcodec/vc1_mc.c uvsrc_y = s->mb_y * 8 + ((i & 2) ? v_dist : 0) + (uvmy_field[i] >> 2); s 877 libavcodec/vc1_mc.c uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); s 879 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8 + (uvsrc_y & 1), (s->avctx->coded_height >> 1) + (uvsrc_y & 1)); s 881 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); s 883 libavcodec/vc1_mc.c srcU = s->next_picture.f->data[1]; s 884 libavcodec/vc1_mc.c srcV = s->next_picture.f->data[2]; s 887 libavcodec/vc1_mc.c interlace = s->next_picture.f->interlaced_frame; s 889 libavcodec/vc1_mc.c srcU = s->last_picture.f->data[1]; s 890 libavcodec/vc1_mc.c srcV = s->last_picture.f->data[2]; s 893 libavcodec/vc1_mc.c interlace = s->last_picture.f->interlaced_frame; s 897 libavcodec/vc1_mc.c srcU += uvsrc_y * s->uvlinesize + uvsrc_x; s 898 libavcodec/vc1_mc.c srcV += uvsrc_y * s->uvlinesize + uvsrc_x; s 903 libavcodec/vc1_mc.c || s->h_edge_pos < 10 || v_edge_pos < (5 << fieldmv) s 904 libavcodec/vc1_mc.c || (unsigned)uvsrc_x > (s->h_edge_pos >> 1) - 5 s 907 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 915 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 916 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 917 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + 16, s 925 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 926 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 928 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + uvlinesize, s 936 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 937 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 938 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + 16 + uvlinesize, s 946 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 947 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 950 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 958 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 959 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 960 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + 16, s 968 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 969 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 971 libavcodec/vc1_mc.c srcU = s->sc.edge_emu_buffer; s 972 libavcodec/vc1_mc.c srcV = s->sc.edge_emu_buffer + 16; s 979 libavcodec/vc1_mc.c 5, s->uvlinesize << fieldmv); s 984 libavcodec/vc1_mc.c h264chroma->avg_h264_chroma_pixels_tab[1](s->dest[1] + off, srcU, s->uvlinesize << fieldmv, 4, uvmx_field[i], uvmy_field[i]); s 985 libavcodec/vc1_mc.c h264chroma->avg_h264_chroma_pixels_tab[1](s->dest[2] + off, srcV, s->uvlinesize << fieldmv, 4, uvmx_field[i], uvmy_field[i]); s 987 libavcodec/vc1_mc.c v->vc1dsp.avg_no_rnd_vc1_chroma_pixels_tab[1](s->dest[1] + off, srcU, s->uvlinesize << fieldmv, 4, uvmx_field[i], uvmy_field[i]); s 988 libavcodec/vc1_mc.c v->vc1dsp.avg_no_rnd_vc1_chroma_pixels_tab[1](s->dest[2] + off, srcV, s->uvlinesize << fieldmv, 4, uvmx_field[i], uvmy_field[i]); s 992 libavcodec/vc1_mc.c h264chroma->put_h264_chroma_pixels_tab[1](s->dest[1] + off, srcU, s->uvlinesize << fieldmv, 4, uvmx_field[i], uvmy_field[i]); s 993 libavcodec/vc1_mc.c h264chroma->put_h264_chroma_pixels_tab[1](s->dest[2] + off, srcV, s->uvlinesize << fieldmv, 4, uvmx_field[i], uvmy_field[i]); s 995 libavcodec/vc1_mc.c v->vc1dsp.put_no_rnd_vc1_chroma_pixels_tab[1](s->dest[1] + off, srcU, s->uvlinesize << fieldmv, 4, uvmx_field[i], uvmy_field[i]); s 996 libavcodec/vc1_mc.c v->vc1dsp.put_no_rnd_vc1_chroma_pixels_tab[1](s->dest[2] + off, srcV, s->uvlinesize << fieldmv, 4, uvmx_field[i], uvmy_field[i]); s 1006 libavcodec/vc1_mc.c MpegEncContext *s = &v->s; s 1010 libavcodec/vc1_mc.c int v_edge_pos = s->v_edge_pos >> v->field_mode; s 1015 libavcodec/vc1_mc.c if (!v->field_mode && !v->s.next_picture.f->data[0]) s 1018 libavcodec/vc1_mc.c linesize = s->current_picture_ptr->f->linesize[0]; s 1019 libavcodec/vc1_mc.c uvlinesize = s->current_picture_ptr->f->linesize[1]; s 1021 libavcodec/vc1_mc.c mx = s->mv[1][0][0]; s 1022 libavcodec/vc1_mc.c my = s->mv[1][0][1]; s 1033 libavcodec/vc1_mc.c srcY = s->next_picture.f->data[0]; s 1034 libavcodec/vc1_mc.c srcU = s->next_picture.f->data[1]; s 1035 libavcodec/vc1_mc.c srcV = s->next_picture.f->data[2]; s 1037 libavcodec/vc1_mc.c interlace = s->next_picture.f->interlaced_frame; s 1039 libavcodec/vc1_mc.c src_x = s->mb_x * 16 + (mx >> 2); s 1040 libavcodec/vc1_mc.c src_y = s->mb_y * 16 + (my >> 2); s 1041 libavcodec/vc1_mc.c uvsrc_x = s->mb_x * 8 + (uvmx >> 2); s 1042 libavcodec/vc1_mc.c uvsrc_y = s->mb_y * 8 + (uvmy >> 2); s 1045 libavcodec/vc1_mc.c src_x = av_clip( src_x, -16, s->mb_width * 16); s 1046 libavcodec/vc1_mc.c src_y = av_clip( src_y, -16, s->mb_height * 16); s 1047 libavcodec/vc1_mc.c uvsrc_x = av_clip(uvsrc_x, -8, s->mb_width * 8); s 1048 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8, s->mb_height * 8); s 1050 libavcodec/vc1_mc.c src_x = av_clip( src_x, -17, s->avctx->coded_width); s 1051 libavcodec/vc1_mc.c uvsrc_x = av_clip(uvsrc_x, -8, s->avctx->coded_width >> 1); s 1053 libavcodec/vc1_mc.c src_y = av_clip(src_y, -18 + (src_y & 1), s->avctx->coded_height + (src_y & 1)); s 1054 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8 + (uvsrc_y & 1), (s->avctx->coded_height >> 1) + (uvsrc_y & 1)); s 1056 libavcodec/vc1_mc.c src_y = av_clip(src_y, -18, s->avctx->coded_height + 1); s 1057 libavcodec/vc1_mc.c uvsrc_y = av_clip(uvsrc_y, -8, s->avctx->coded_height >> 1); s 1061 libavcodec/vc1_mc.c srcY += src_y * s->linesize + src_x; s 1062 libavcodec/vc1_mc.c srcU += uvsrc_y * s->uvlinesize + uvsrc_x; s 1063 libavcodec/vc1_mc.c srcV += uvsrc_y * s->uvlinesize + uvsrc_x; s 1072 libavcodec/vc1_mc.c if (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY) { s 1073 libavcodec/vc1_mc.c srcU = s->sc.edge_emu_buffer + 18 * s->linesize; s 1074 libavcodec/vc1_mc.c srcV = s->sc.edge_emu_buffer + 18 * s->linesize; s 1077 libavcodec/vc1_mc.c if (v->rangeredfrm || s->h_edge_pos < 22 || v_edge_pos < 22 || use_ic s 1078 libavcodec/vc1_mc.c || (unsigned)(src_x - 1) > s->h_edge_pos - (mx & 3) - 16 - 3 s 1080 libavcodec/vc1_mc.c uint8_t *ubuf = s->sc.edge_emu_buffer + 19 * s->linesize; s 1081 libavcodec/vc1_mc.c uint8_t *vbuf = ubuf + 9 * s->uvlinesize; s 1082 libavcodec/vc1_mc.c const int k = 17 + s->mspel * 2; s 1084 libavcodec/vc1_mc.c srcY -= s->mspel * (1 + s->linesize); s 1086 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 1092 libavcodec/vc1_mc.c src_x - s->mspel, s 1093 libavcodec/vc1_mc.c src_y - s->mspel >> !v->field_mode, s 1094 libavcodec/vc1_mc.c s->h_edge_pos, s 1095 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 1097 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer + linesize, s 1103 libavcodec/vc1_mc.c src_x - s->mspel, s 1104 libavcodec/vc1_mc.c src_y - s->mspel + 1 >> 1, s 1105 libavcodec/vc1_mc.c s->h_edge_pos, s 1106 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 1108 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, s 1114 libavcodec/vc1_mc.c src_x - s->mspel, s 1115 libavcodec/vc1_mc.c v->field_mode ? 2 * (src_y - s->mspel) + v->ref_field_type[1] : s 1116 libavcodec/vc1_mc.c src_y - s->mspel, s 1117 libavcodec/vc1_mc.c s->h_edge_pos, s 1118 libavcodec/vc1_mc.c s->v_edge_pos); s 1119 libavcodec/vc1_mc.c srcY = s->sc.edge_emu_buffer; s 1121 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(ubuf, s 1129 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 1130 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 1131 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(vbuf, s 1139 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 1140 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 1142 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(ubuf + uvlinesize, s 1150 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 1151 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 1152 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(vbuf + uvlinesize, s 1160 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 1161 libavcodec/vc1_mc.c s->v_edge_pos >> 2); s 1164 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(ubuf, s 1172 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 1173 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 1174 libavcodec/vc1_mc.c s->vdsp.emulated_edge_mc(vbuf, s 1182 libavcodec/vc1_mc.c s->h_edge_pos >> 1, s 1183 libavcodec/vc1_mc.c s->v_edge_pos >> 1); s 1189 libavcodec/vc1_mc.c vc1_scale_luma(srcY, k, s->linesize); s 1190 libavcodec/vc1_mc.c vc1_scale_chroma(srcU, srcV, 9, s->uvlinesize); s 1197 libavcodec/vc1_mc.c luty[v->field_mode ? v->ref_field_type[1] : ((0+src_y - s->mspel) & 1)], s 1198 libavcodec/vc1_mc.c luty[v->field_mode ? v->ref_field_type[1] : ((1+src_y - s->mspel) & 1)], s 1199 libavcodec/vc1_mc.c k, s->linesize); s 1203 libavcodec/vc1_mc.c 9, s->uvlinesize); s 1205 libavcodec/vc1_mc.c srcY += s->mspel * (1 + s->linesize); s 1208 libavcodec/vc1_mc.c if (s->mspel) { s 1210 libavcodec/vc1_mc.c v->vc1dsp.avg_vc1_mspel_pixels_tab[0][dxy](s->dest[0], srcY, s->linesize, v->rnd); s 1215 libavcodec/vc1_mc.c s->hdsp.avg_pixels_tab[0][dxy](s->dest[0], srcY, s->linesize, 16); s 1217 libavcodec/vc1_mc.c s->hdsp.avg_no_rnd_pixels_tab[dxy](s->dest[0], srcY, s->linesize, 16); s 1220 libavcodec/vc1_mc.c if (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY) s 1226 libavcodec/vc1_mc.c h264chroma->avg_h264_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); s 1227 libavcodec/vc1_mc.c h264chroma->avg_h264_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); s 1229 libavcodec/vc1_mc.c v->vc1dsp.avg_no_rnd_vc1_chroma_pixels_tab[0](s->dest[1], srcU, s->uvlinesize, 8, uvmx, uvmy); s 1230 libavcodec/vc1_mc.c v->vc1dsp.avg_no_rnd_vc1_chroma_pixels_tab[0](s->dest[2], srcV, s->uvlinesize, 8, uvmx, uvmy); s 61 libavcodec/vc1_parser.c static void vc1_extract_header(AVCodecParserContext *s, AVCodecContext *avctx, s 65 libavcodec/vc1_parser.c VC1ParseContext *vpc = s->priv_data; s 68 libavcodec/vc1_parser.c vpc->v.s.avctx = avctx; s 88 libavcodec/vc1_parser.c if (vpc->v.s.pict_type == AV_PICTURE_TYPE_BI) s 89 libavcodec/vc1_parser.c s->pict_type = AV_PICTURE_TYPE_B; s 91 libavcodec/vc1_parser.c s->pict_type = vpc->v.s.pict_type; s 95 libavcodec/vc1_parser.c s->repeat_pict = 1; s 100 libavcodec/vc1_parser.c s->repeat_pict = 2; s 103 libavcodec/vc1_parser.c s->repeat_pict = vpc->v.rptfrm * 2 + 1; s 106 libavcodec/vc1_parser.c s->repeat_pict = 0; s 110 libavcodec/vc1_parser.c s->field_order = vpc->v.tff ? AV_FIELD_TT : AV_FIELD_BB; s 112 libavcodec/vc1_parser.c s->field_order = AV_FIELD_PROGRESSIVE; s 118 libavcodec/vc1_parser.c s->format = vpc->v.chromaformat == 1 ? AV_PIX_FMT_YUV420P s 121 libavcodec/vc1_parser.c s->width = avctx->width; s 122 libavcodec/vc1_parser.c s->height = avctx->height; s 123 libavcodec/vc1_parser.c s->coded_width = FFALIGN(avctx->coded_width, 16); s 124 libavcodec/vc1_parser.c s->coded_height = FFALIGN(avctx->coded_height, 16); s 128 libavcodec/vc1_parser.c static int vc1_parse(AVCodecParserContext *s, s 136 libavcodec/vc1_parser.c VC1ParseContext *vpc = s->priv_data; s 148 libavcodec/vc1_parser.c vc1_extract_header(s, avctx, unesc_buffer, unesc_index); s 175 libavcodec/vc1_parser.c if ((s->flags & PARSER_FLAG_COMPLETE_FRAMES) && s 182 libavcodec/vc1_parser.c vc1_extract_header(s, avctx, unesc_buffer, unesc_index); s 210 libavcodec/vc1_parser.c vc1_extract_header(s, avctx, unesc_buffer, unesc_index); s 215 libavcodec/vc1_parser.c if (!(s->flags & PARSER_FLAG_COMPLETE_FRAMES)) { s 232 libavcodec/vc1_parser.c if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { s 277 libavcodec/vc1_parser.c static av_cold int vc1_parse_init(AVCodecParserContext *s) s 279 libavcodec/vc1_parser.c VC1ParseContext *vpc = s->priv_data; s 280 libavcodec/vc1_parser.c vpc->v.s.slice_context_count = 1; s 43 libavcodec/vc1_pred.c if (v->s.pict_type != AV_PICTURE_TYPE_B) s 76 libavcodec/vc1_pred.c if (v->s.pict_type != AV_PICTURE_TYPE_B) s 168 libavcodec/vc1_pred.c int hpel = 1 - v->s.quarter_sample; s 171 libavcodec/vc1_pred.c if (v->s.pict_type != AV_PICTURE_TYPE_B || v->second_field || !dir) { s 189 libavcodec/vc1_pred.c int hpel = 1 - v->s.quarter_sample; s 192 libavcodec/vc1_pred.c if (v->s.pict_type == AV_PICTURE_TYPE_B && !v->second_field && dir == 1) { s 199 libavcodec/vc1_pred.c if (v->s.pict_type != AV_PICTURE_TYPE_B) s 216 libavcodec/vc1_pred.c MpegEncContext *s = &v->s; s 235 libavcodec/vc1_pred.c if (!s->quarter_sample) { s 240 libavcodec/vc1_pred.c wrap = s->b8_stride; s 241 libavcodec/vc1_pred.c xy = s->block_index[n]; s 243 libavcodec/vc1_pred.c if (s->mb_intra) { s 244 libavcodec/vc1_pred.c s->mv[0][n][0] = s->current_picture.motion_val[0][xy + v->blocks_off][0] = 0; s 245 libavcodec/vc1_pred.c s->mv[0][n][1] = s->current_picture.motion_val[0][xy + v->blocks_off][1] = 0; s 246 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + v->blocks_off][0] = 0; s 247 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + v->blocks_off][1] = 0; s 249 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + 1 + v->blocks_off][0] = 0; s 250 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + 1 + v->blocks_off][1] = 0; s 251 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + wrap + v->blocks_off][0] = 0; s 252 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + wrap + v->blocks_off][1] = 0; s 253 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + wrap + 1 + v->blocks_off][0] = 0; s 254 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + wrap + 1 + v->blocks_off][1] = 0; s 255 libavcodec/vc1_pred.c v->luma_mv[s->mb_x][0] = v->luma_mv[s->mb_x][1] = 0; s 256 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + 1 + v->blocks_off][0] = 0; s 257 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + 1 + v->blocks_off][1] = 0; s 258 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + wrap + v->blocks_off][0] = 0; s 259 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + wrap + v->blocks_off][1] = 0; s 260 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + wrap + 1 + v->blocks_off][0] = 0; s 261 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + wrap + 1 + v->blocks_off][1] = 0; s 266 libavcodec/vc1_pred.c a_valid = !s->first_slice_line || (n == 2 || n == 3); s 268 libavcodec/vc1_pred.c c_valid = s->mb_x || (n == 1 || n == 3); s 271 libavcodec/vc1_pred.c off = (s->mb_x == (s->mb_width - 1)) ? -2 : 2; s 273 libavcodec/vc1_pred.c off = (s->mb_x == (s->mb_width - 1)) ? -1 : 2; s 274 libavcodec/vc1_pred.c b_valid = b_valid && s->mb_width > 1; s 280 libavcodec/vc1_pred.c off = s->mb_x ? -1 : 1; s 282 libavcodec/vc1_pred.c off = s->mb_x ? -1 : 2 * s->mb_width - wrap - 1; s 285 libavcodec/vc1_pred.c off = (s->mb_x == (s->mb_width - 1)) ? -1 : 1; s 293 libavcodec/vc1_pred.c if (v->field_mode && s->mb_width == 1) s 304 libavcodec/vc1_pred.c A = s->current_picture.motion_val[dir][xy - wrap + v->blocks_off]; s 315 libavcodec/vc1_pred.c B = s->current_picture.motion_val[dir][xy - wrap + off + v->blocks_off]; s 326 libavcodec/vc1_pred.c C = s->current_picture.motion_val[dir][xy - 1 + v->blocks_off]; s 405 libavcodec/vc1_pred.c qx = (s->mb_x << 6) + ((n == 1 || n == 3) ? 32 : 0); s 406 libavcodec/vc1_pred.c qy = (s->mb_y << 6) + ((n == 2 || n == 3) ? 32 : 0); s 407 libavcodec/vc1_pred.c X = (s->mb_width << 6) - 4; s 408 libavcodec/vc1_pred.c Y = (s->mb_height << 6) - 4; s 415 libavcodec/vc1_pred.c if (!v->field_mode || s->pict_type != AV_PICTURE_TYPE_B) { s 424 libavcodec/vc1_pred.c if (get_bits1(&s->gb)) { // read HYBRIDPRED bit s 437 libavcodec/vc1_pred.c if (get_bits1(&s->gb)) { s 454 libavcodec/vc1_pred.c s->mv[dir][n][0] = s->current_picture.motion_val[dir][xy + v->blocks_off][0] = ((px + dmv_x + r_x) & ((r_x << 1) - 1)) - r_x; s 455 libavcodec/vc1_pred.c s->mv[dir][n][1] = s->current_picture.motion_val[dir][xy + v->blocks_off][1] = ((py + dmv_y + r_y - y_bias) & ((r_y << 1) - 1)) - r_y + y_bias; s 457 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + 1 + v->blocks_off][0] = s->current_picture.motion_val[dir][xy + v->blocks_off][0]; s 458 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + 1 + v->blocks_off][1] = s->current_picture.motion_val[dir][xy + v->blocks_off][1]; s 459 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + wrap + v->blocks_off][0] = s->current_picture.motion_val[dir][xy + v->blocks_off][0]; s 460 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + wrap + v->blocks_off][1] = s->current_picture.motion_val[dir][xy + v->blocks_off][1]; s 461 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + wrap + 1 + v->blocks_off][0] = s->current_picture.motion_val[dir][xy + v->blocks_off][0]; s 462 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + wrap + 1 + v->blocks_off][1] = s->current_picture.motion_val[dir][xy + v->blocks_off][1]; s 473 libavcodec/vc1_pred.c MpegEncContext *s = &v->s; s 482 libavcodec/vc1_pred.c wrap = s->b8_stride; s 483 libavcodec/vc1_pred.c xy = s->block_index[n]; s 485 libavcodec/vc1_pred.c if (s->mb_intra) { s 486 libavcodec/vc1_pred.c s->mv[0][n][0] = s->current_picture.motion_val[0][xy][0] = 0; s 487 libavcodec/vc1_pred.c s->mv[0][n][1] = s->current_picture.motion_val[0][xy][1] = 0; s 488 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy][0] = 0; s 489 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy][1] = 0; s 491 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + 1][0] = 0; s 492 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + 1][1] = 0; s 493 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + wrap][0] = 0; s 494 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + wrap][1] = 0; s 495 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + wrap + 1][0] = 0; s 496 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy + wrap + 1][1] = 0; s 497 libavcodec/vc1_pred.c v->luma_mv[s->mb_x][0] = v->luma_mv[s->mb_x][1] = 0; s 498 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + 1][0] = 0; s 499 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + 1][1] = 0; s 500 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + wrap][0] = 0; s 501 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + wrap][1] = 0; s 502 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + wrap + 1][0] = 0; s 503 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy + wrap + 1][1] = 0; s 510 libavcodec/vc1_pred.c if (s->mb_x || (n == 1) || (n == 3)) { s 513 libavcodec/vc1_pred.c A[0] = s->current_picture.motion_val[dir][xy - 1][0]; s 514 libavcodec/vc1_pred.c A[1] = s->current_picture.motion_val[dir][xy - 1][1]; s 517 libavcodec/vc1_pred.c A[0] = (s->current_picture.motion_val[dir][xy - 1][0] s 518 libavcodec/vc1_pred.c + s->current_picture.motion_val[dir][xy - 1 + off * wrap][0] + 1) >> 1; s 519 libavcodec/vc1_pred.c A[1] = (s->current_picture.motion_val[dir][xy - 1][1] s 520 libavcodec/vc1_pred.c + s->current_picture.motion_val[dir][xy - 1 + off * wrap][1] + 1) >> 1; s 523 libavcodec/vc1_pred.c if (!(n & 1) && v->is_intra[s->mb_x - 1]) { s 532 libavcodec/vc1_pred.c if (!s->first_slice_line) { s 533 libavcodec/vc1_pred.c if (!v->is_intra[s->mb_x - s->mb_stride]) { s 536 libavcodec/vc1_pred.c pos_b = s->block_index[n_adj] - 2 * wrap; s 540 libavcodec/vc1_pred.c B[0] = s->current_picture.motion_val[dir][s->block_index[n_adj] - 2 * wrap][0]; s 541 libavcodec/vc1_pred.c B[1] = s->current_picture.motion_val[dir][s->block_index[n_adj] - 2 * wrap][1]; s 543 libavcodec/vc1_pred.c B[0] = (B[0] + s->current_picture.motion_val[dir][s->block_index[n_adj ^ 2] - 2 * wrap][0] + 1) >> 1; s 544 libavcodec/vc1_pred.c B[1] = (B[1] + s->current_picture.motion_val[dir][s->block_index[n_adj ^ 2] - 2 * wrap][1] + 1) >> 1; s 547 libavcodec/vc1_pred.c if (s->mb_width > 1) { s 548 libavcodec/vc1_pred.c if (!v->is_intra[s->mb_x - s->mb_stride + 1]) { s 551 libavcodec/vc1_pred.c pos_c = s->block_index[2] - 2 * wrap + 2; s 555 libavcodec/vc1_pred.c C[0] = s->current_picture.motion_val[dir][s->block_index[n_adj] - 2 * wrap + 2][0]; s 556 libavcodec/vc1_pred.c C[1] = s->current_picture.motion_val[dir][s->block_index[n_adj] - 2 * wrap + 2][1]; s 558 libavcodec/vc1_pred.c C[0] = (1 + C[0] + (s->current_picture.motion_val[dir][s->block_index[n_adj ^ 2] - 2 * wrap + 2][0])) >> 1; s 559 libavcodec/vc1_pred.c C[1] = (1 + C[1] + (s->current_picture.motion_val[dir][s->block_index[n_adj ^ 2] - 2 * wrap + 2][1])) >> 1; s 561 libavcodec/vc1_pred.c if (s->mb_x == s->mb_width - 1) { s 562 libavcodec/vc1_pred.c if (!v->is_intra[s->mb_x - s->mb_stride - 1]) { s 565 libavcodec/vc1_pred.c pos_c = s->block_index[3] - 2 * wrap - 2; s 569 libavcodec/vc1_pred.c C[0] = s->current_picture.motion_val[dir][s->block_index[n_adj] - 2 * wrap - 2][0]; s 570 libavcodec/vc1_pred.c C[1] = s->current_picture.motion_val[dir][s->block_index[n_adj] - 2 * wrap - 2][1]; s 572 libavcodec/vc1_pred.c C[0] = (1 + C[0] + s->current_picture.motion_val[dir][s->block_index[1] - 2 * wrap - 2][0]) >> 1; s 573 libavcodec/vc1_pred.c C[1] = (1 + C[1] + s->current_picture.motion_val[dir][s->block_index[1] - 2 * wrap - 2][1]) >> 1; s 582 libavcodec/vc1_pred.c pos_b = s->block_index[1]; s 584 libavcodec/vc1_pred.c B[0] = s->current_picture.motion_val[dir][pos_b][0]; s 585 libavcodec/vc1_pred.c B[1] = s->current_picture.motion_val[dir][pos_b][1]; s 586 libavcodec/vc1_pred.c pos_c = s->block_index[0]; s 588 libavcodec/vc1_pred.c C[0] = s->current_picture.motion_val[dir][pos_c][0]; s 589 libavcodec/vc1_pred.c C[1] = s->current_picture.motion_val[dir][pos_c][1]; s 594 libavcodec/vc1_pred.c if (!s->mb_x && !(n == 1 || n == 3)) { s 598 libavcodec/vc1_pred.c if ((s->first_slice_line && v->blk_mv_type[xy]) || (s->first_slice_line && !(n & 2))) { s 602 libavcodec/vc1_pred.c if (s->mb_width == 1) { s 674 libavcodec/vc1_pred.c s->mv[dir][n][0] = s->current_picture.motion_val[dir][xy][0] = ((px + dmv_x + r_x) & ((r_x << 1) - 1)) - r_x; s 675 libavcodec/vc1_pred.c s->mv[dir][n][1] = s->current_picture.motion_val[dir][xy][1] = ((py + dmv_y + r_y) & ((r_y << 1) - 1)) - r_y; s 677 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + 1 ][0] = s->current_picture.motion_val[dir][xy][0]; s 678 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + 1 ][1] = s->current_picture.motion_val[dir][xy][1]; s 679 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + wrap ][0] = s->current_picture.motion_val[dir][xy][0]; s 680 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + wrap ][1] = s->current_picture.motion_val[dir][xy][1]; s 681 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + wrap + 1][0] = s->current_picture.motion_val[dir][xy][0]; s 682 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + wrap + 1][1] = s->current_picture.motion_val[dir][xy][1]; s 684 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + 1][0] = s->current_picture.motion_val[dir][xy][0]; s 685 libavcodec/vc1_pred.c s->current_picture.motion_val[dir][xy + 1][1] = s->current_picture.motion_val[dir][xy][1]; s 686 libavcodec/vc1_pred.c s->mv[dir][n + 1][0] = s->mv[dir][n][0]; s 687 libavcodec/vc1_pred.c s->mv[dir][n + 1][1] = s->mv[dir][n][1]; s 694 libavcodec/vc1_pred.c MpegEncContext *s = &v->s; s 707 libavcodec/vc1_pred.c if (!s->quarter_sample) { s 714 libavcodec/vc1_pred.c wrap = s->b8_stride; s 715 libavcodec/vc1_pred.c xy = s->block_index[0]; s 717 libavcodec/vc1_pred.c if (s->mb_intra) { s 718 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy][0] = s 719 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy][1] = s 720 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy][0] = s 721 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy][1] = 0; s 724 libavcodec/vc1_pred.c if (direct && s->next_picture_ptr->field_picture) s 725 libavcodec/vc1_pred.c av_log(s->avctx, AV_LOG_WARNING, "Mixed frame/field direct mode not supported\n"); s 727 libavcodec/vc1_pred.c s->mv[0][0][0] = scale_mv(s->next_picture.motion_val[1][xy][0], v->bfraction, 0, s->quarter_sample); s 728 libavcodec/vc1_pred.c s->mv[0][0][1] = scale_mv(s->next_picture.motion_val[1][xy][1], v->bfraction, 0, s->quarter_sample); s 729 libavcodec/vc1_pred.c s->mv[1][0][0] = scale_mv(s->next_picture.motion_val[1][xy][0], v->bfraction, 1, s->quarter_sample); s 730 libavcodec/vc1_pred.c s->mv[1][0][1] = scale_mv(s->next_picture.motion_val[1][xy][1], v->bfraction, 1, s->quarter_sample); s 733 libavcodec/vc1_pred.c s->mv[0][0][0] = av_clip(s->mv[0][0][0], -60 - (s->mb_x << 6), (s->mb_width << 6) - 4 - (s->mb_x << 6)); s 734 libavcodec/vc1_pred.c s->mv[0][0][1] = av_clip(s->mv[0][0][1], -60 - (s->mb_y << 6), (s->mb_height << 6) - 4 - (s->mb_y << 6)); s 735 libavcodec/vc1_pred.c s->mv[1][0][0] = av_clip(s->mv[1][0][0], -60 - (s->mb_x << 6), (s->mb_width << 6) - 4 - (s->mb_x << 6)); s 736 libavcodec/vc1_pred.c s->mv[1][0][1] = av_clip(s->mv[1][0][1], -60 - (s->mb_y << 6), (s->mb_height << 6) - 4 - (s->mb_y << 6)); s 738 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy][0] = s->mv[0][0][0]; s 739 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy][1] = s->mv[0][0][1]; s 740 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy][0] = s->mv[1][0][0]; s 741 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy][1] = s->mv[1][0][1]; s 746 libavcodec/vc1_pred.c C = s->current_picture.motion_val[0][xy - 2]; s 747 libavcodec/vc1_pred.c A = s->current_picture.motion_val[0][xy - wrap * 2]; s 748 libavcodec/vc1_pred.c off = (s->mb_x == (s->mb_width - 1)) ? -2 : 2; s 749 libavcodec/vc1_pred.c B = s->current_picture.motion_val[0][xy - wrap * 2 + off]; s 751 libavcodec/vc1_pred.c if (!s->mb_x) C[0] = C[1] = 0; s 752 libavcodec/vc1_pred.c if (!s->first_slice_line) { // predictor A is not out of bounds s 753 libavcodec/vc1_pred.c if (s->mb_width == 1) { s 760 libavcodec/vc1_pred.c } else if (s->mb_x) { // predictor C is not out of bounds s 771 libavcodec/vc1_pred.c qx = (s->mb_x << sh); s 772 libavcodec/vc1_pred.c qy = (s->mb_y << sh); s 773 libavcodec/vc1_pred.c X = (s->mb_width << sh) - 4; s 774 libavcodec/vc1_pred.c Y = (s->mb_height << sh) - 4; s 781 libavcodec/vc1_pred.c if (0 && !s->first_slice_line && s->mb_x) { s 787 libavcodec/vc1_pred.c if (get_bits1(&s->gb)) { s 800 libavcodec/vc1_pred.c if (get_bits1(&s->gb)) { s 811 libavcodec/vc1_pred.c s->mv[0][0][0] = ((px + dmv_x[0] + r_x) & ((r_x << 1) - 1)) - r_x; s 812 libavcodec/vc1_pred.c s->mv[0][0][1] = ((py + dmv_y[0] + r_y) & ((r_y << 1) - 1)) - r_y; s 815 libavcodec/vc1_pred.c C = s->current_picture.motion_val[1][xy - 2]; s 816 libavcodec/vc1_pred.c A = s->current_picture.motion_val[1][xy - wrap * 2]; s 817 libavcodec/vc1_pred.c off = (s->mb_x == (s->mb_width - 1)) ? -2 : 2; s 818 libavcodec/vc1_pred.c B = s->current_picture.motion_val[1][xy - wrap * 2 + off]; s 820 libavcodec/vc1_pred.c if (!s->mb_x) s 822 libavcodec/vc1_pred.c if (!s->first_slice_line) { // predictor A is not out of bounds s 823 libavcodec/vc1_pred.c if (s->mb_width == 1) { s 830 libavcodec/vc1_pred.c } else if (s->mb_x) { // predictor C is not out of bounds s 841 libavcodec/vc1_pred.c qx = (s->mb_x << sh); s 842 libavcodec/vc1_pred.c qy = (s->mb_y << sh); s 843 libavcodec/vc1_pred.c X = (s->mb_width << sh) - 4; s 844 libavcodec/vc1_pred.c Y = (s->mb_height << sh) - 4; s 851 libavcodec/vc1_pred.c if (0 && !s->first_slice_line && s->mb_x) { s 857 libavcodec/vc1_pred.c if (get_bits1(&s->gb)) { s 870 libavcodec/vc1_pred.c if (get_bits1(&s->gb)) { s 882 libavcodec/vc1_pred.c s->mv[1][0][0] = ((px + dmv_x[1] + r_x) & ((r_x << 1) - 1)) - r_x; s 883 libavcodec/vc1_pred.c s->mv[1][0][1] = ((py + dmv_y[1] + r_y) & ((r_y << 1) - 1)) - r_y; s 885 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy][0] = s->mv[0][0][0]; s 886 libavcodec/vc1_pred.c s->current_picture.motion_val[0][xy][1] = s->mv[0][0][1]; s 887 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy][0] = s->mv[1][0][0]; s 888 libavcodec/vc1_pred.c s->current_picture.motion_val[1][xy][1] = s->mv[1][0][1]; s 895 libavcodec/vc1_pred.c MpegEncContext *s = &v->s; s 896 libavcodec/vc1_pred.c int mb_pos = s->mb_x + s->mb_y * s->mb_stride; s 900 libavcodec/vc1_pred.c if (s->next_picture.mb_type[mb_pos + v->mb_off] != MB_TYPE_INTRA) { s 901 libavcodec/vc1_pred.c s->mv[0][0][0] = scale_mv(s->next_picture.motion_val[1][s->block_index[0] + v->blocks_off][0], s 902 libavcodec/vc1_pred.c v->bfraction, 0, s->quarter_sample); s 903 libavcodec/vc1_pred.c s->mv[0][0][1] = scale_mv(s->next_picture.motion_val[1][s->block_index[0] + v->blocks_off][1], s 904 libavcodec/vc1_pred.c v->bfraction, 0, s->quarter_sample); s 905 libavcodec/vc1_pred.c s->mv[1][0][0] = scale_mv(s->next_picture.motion_val[1][s->block_index[0] + v->blocks_off][0], s 906 libavcodec/vc1_pred.c v->bfraction, 1, s->quarter_sample); s 907 libavcodec/vc1_pred.c s->mv[1][0][1] = scale_mv(s->next_picture.motion_val[1][s->block_index[0] + v->blocks_off][1], s 908 libavcodec/vc1_pred.c v->bfraction, 1, s->quarter_sample); s 910 libavcodec/vc1_pred.c total_opp = v->mv_f_next[0][s->block_index[0] + v->blocks_off] s 911 libavcodec/vc1_pred.c + v->mv_f_next[0][s->block_index[1] + v->blocks_off] s 912 libavcodec/vc1_pred.c + v->mv_f_next[0][s->block_index[2] + v->blocks_off] s 913 libavcodec/vc1_pred.c + v->mv_f_next[0][s->block_index[3] + v->blocks_off]; s 916 libavcodec/vc1_pred.c s->mv[0][0][0] = s->mv[0][0][1] = 0; s 917 libavcodec/vc1_pred.c s->mv[1][0][0] = s->mv[1][0][1] = 0; s 922 libavcodec/vc1_pred.c s->current_picture.motion_val[0][s->block_index[k] + v->blocks_off][0] = s->mv[0][0][0]; s 923 libavcodec/vc1_pred.c s->current_picture.motion_val[0][s->block_index[k] + v->blocks_off][1] = s->mv[0][0][1]; s 924 libavcodec/vc1_pred.c s->current_picture.motion_val[1][s->block_index[k] + v->blocks_off][0] = s->mv[1][0][0]; s 925 libavcodec/vc1_pred.c s->current_picture.motion_val[1][s->block_index[k] + v->blocks_off][1] = s->mv[1][0][1]; s 926 libavcodec/vc1_pred.c v->mv_f[0][s->block_index[k] + v->blocks_off] = f; s 927 libavcodec/vc1_pred.c v->mv_f[1][s->block_index[k] + v->blocks_off] = f; s 106 libavcodec/vc1dec.c AVCodecContext *avctx = v->s.avctx; s 182 libavcodec/vc1dec.c MpegEncContext *s = &v->s; s 195 libavcodec/vc1dec.c for (plane = 0; plane < (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY ? 1 : 3); plane++) { s 203 libavcodec/vc1dec.c uint8_t *iplane = s->current_picture.f->data[plane]; s 204 libavcodec/vc1dec.c int iline = s->current_picture.f->linesize[plane]; s 210 libavcodec/vc1dec.c iplane = s->last_picture.f->data[plane]; s 211 libavcodec/vc1dec.c iline = s->last_picture.f->linesize[plane]; s 275 libavcodec/vc1dec.c MpegEncContext *s = &v->s; s 276 libavcodec/vc1dec.c AVCodecContext *avctx = s->avctx; s 285 libavcodec/vc1dec.c if (!s->current_picture.f || !s->current_picture.f->data[0]) { s 290 libavcodec/vc1dec.c if (v->two_sprites && (!s->last_picture_ptr || !s->last_picture.f->data[0])) { s 307 libavcodec/vc1dec.c MpegEncContext *s = &v->s; s 308 libavcodec/vc1dec.c AVFrame *f = s->current_picture.f; s 316 libavcodec/vc1dec.c for (plane = 0; plane < (CONFIG_GRAY && s->avctx->flags & AV_CODEC_FLAG_GRAY ? 1 : 3); plane++) s 326 libavcodec/vc1dec.c MpegEncContext *s = &v->s; s 328 libavcodec/vc1dec.c int mb_height = FFALIGN(s->mb_height, 2); s 331 libavcodec/vc1dec.c v->mv_type_mb_plane = av_malloc (s->mb_stride * mb_height); s 332 libavcodec/vc1dec.c v->direct_mb_plane = av_malloc (s->mb_stride * mb_height); s 333 libavcodec/vc1dec.c v->forward_mb_plane = av_malloc (s->mb_stride * mb_height); s 334 libavcodec/vc1dec.c v->fieldtx_plane = av_mallocz(s->mb_stride * mb_height); s 335 libavcodec/vc1dec.c v->acpred_plane = av_malloc (s->mb_stride * mb_height); s 336 libavcodec/vc1dec.c v->over_flags_plane = av_malloc (s->mb_stride * mb_height); s 341 libavcodec/vc1dec.c v->n_allocated_blks = s->mb_width + 2; s 343 libavcodec/vc1dec.c v->cbp_base = av_malloc(sizeof(v->cbp_base[0]) * 3 * s->mb_stride); s 346 libavcodec/vc1dec.c v->cbp = v->cbp_base + 2 * s->mb_stride; s 347 libavcodec/vc1dec.c v->ttblk_base = av_malloc(sizeof(v->ttblk_base[0]) * 3 * s->mb_stride); s 350 libavcodec/vc1dec.c v->ttblk = v->ttblk_base + 2 * s->mb_stride; s 351 libavcodec/vc1dec.c v->is_intra_base = av_mallocz(sizeof(v->is_intra_base[0]) * 3 * s->mb_stride); s 354 libavcodec/vc1dec.c v->is_intra = v->is_intra_base + 2 * s->mb_stride; s 355 libavcodec/vc1dec.c v->luma_mv_base = av_mallocz(sizeof(v->luma_mv_base[0]) * 3 * s->mb_stride); s 358 libavcodec/vc1dec.c v->luma_mv = v->luma_mv_base + 2 * s->mb_stride; s 361 libavcodec/vc1dec.c v->mb_type_base = av_malloc(s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); s 364 libavcodec/vc1dec.c v->mb_type[0] = v->mb_type_base + s->b8_stride + 1; s 365 libavcodec/vc1dec.c v->mb_type[1] = v->mb_type_base + s->b8_stride * (mb_height * 2 + 1) + s->mb_stride + 1; s 366 libavcodec/vc1dec.c v->mb_type[2] = v->mb_type[1] + s->mb_stride * (mb_height + 1); s 369 libavcodec/vc1dec.c v->blk_mv_type_base = av_mallocz( s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); s 372 libavcodec/vc1dec.c v->blk_mv_type = v->blk_mv_type_base + s->b8_stride + 1; s 373 libavcodec/vc1dec.c v->mv_f_base = av_mallocz(2 * (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2)); s 376 libavcodec/vc1dec.c v->mv_f[0] = v->mv_f_base + s->b8_stride + 1; s 377 libavcodec/vc1dec.c v->mv_f[1] = v->mv_f[0] + (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); s 378 libavcodec/vc1dec.c v->mv_f_next_base = av_mallocz(2 * (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2)); s 381 libavcodec/vc1dec.c v->mv_f_next[0] = v->mv_f_next_base + s->b8_stride + 1; s 382 libavcodec/vc1dec.c v->mv_f_next[1] = v->mv_f_next[0] + (s->b8_stride * (mb_height * 2 + 1) + s->mb_stride * (mb_height + 1) * 2); s 384 libavcodec/vc1dec.c if (s->avctx->codec_id == AV_CODEC_ID_WMV3IMAGE || s->avctx->codec_id == AV_CODEC_ID_VC1IMAGE) { s 390 libavcodec/vc1dec.c ret = ff_intrax8_common_init(s->avctx, &v->x8, &s->idsp, s 391 libavcodec/vc1dec.c s->block, s->block_last_index, s 392 libavcodec/vc1dec.c s->mb_width, s->mb_height); s 399 libavcodec/vc1dec.c ff_vc1_decode_end(s->avctx); s 425 libavcodec/vc1dec.c MpegEncContext *s = &v->s; s 435 libavcodec/vc1dec.c v->s.avctx = avctx; s 538 libavcodec/vc1dec.c ff_blockdsp_init(&s->bdsp, avctx); s 540 libavcodec/vc1dec.c ff_qpeldsp_init(&s->qdsp); s 557 libavcodec/vc1dec.c s->mb_width = (avctx->coded_width + 15) >> 4; s 558 libavcodec/vc1dec.c s->mb_height = (avctx->coded_height + 15) >> 4; s 610 libavcodec/vc1dec.c ff_mpv_common_end(&v->s); s 640 libavcodec/vc1dec.c MpegEncContext *s = &v->s; s 655 libavcodec/vc1dec.c if(s->avctx->flags & AV_CODEC_FLAG_LOW_DELAY) s 656 libavcodec/vc1dec.c s->low_delay = 1; s 661 libavcodec/vc1dec.c if (s->low_delay == 0 && s->next_picture_ptr) { s 662 libavcodec/vc1dec.c if ((ret = av_frame_ref(pict, s->next_picture_ptr->f)) < 0) s 664 libavcodec/vc1dec.c s->next_picture_ptr = NULL; s 722 libavcodec/vc1dec.c init_get_bits(&s->gb, buf2, buf_size2 * 8); s 723 libavcodec/vc1dec.c ff_vc1_decode_entry_point(avctx, v, &s->gb); s 776 libavcodec/vc1dec.c slices[n_slices].mby_start = s->mb_height + 1 >> 1; s 786 libavcodec/vc1dec.c init_get_bits(&s->gb, buf2, buf_size2*8); s 788 libavcodec/vc1dec.c init_get_bits(&s->gb, buf, buf_size*8); s 791 libavcodec/vc1dec.c v->new_sprite = !get_bits1(&s->gb); s 792 libavcodec/vc1dec.c v->two_sprites = get_bits1(&s->gb); s 808 libavcodec/vc1dec.c if (s->context_initialized && s 809 libavcodec/vc1dec.c (s->width != avctx->coded_width || s 810 libavcodec/vc1dec.c s->height != avctx->coded_height)) { s 814 libavcodec/vc1dec.c if (!s->context_initialized) { s 818 libavcodec/vc1dec.c ff_mpv_common_end(s); s 822 libavcodec/vc1dec.c s->low_delay = !avctx->has_b_frames || v->res_sprite; s 829 libavcodec/vc1dec.c s->h_edge_pos = avctx->coded_width; s 830 libavcodec/vc1dec.c s->v_edge_pos = avctx->coded_height; s 838 libavcodec/vc1dec.c if ((ret = ff_vc1_parse_frame_header(v, &s->gb)) < 0) { s 842 libavcodec/vc1dec.c if ((ret = ff_vc1_parse_frame_header_adv(v, &s->gb)) < 0) { s 849 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_DEBUG, "pict_type: %c\n", av_get_picture_type_char(s->pict_type)); s 852 libavcodec/vc1dec.c && s->pict_type != AV_PICTURE_TYPE_I) { s 853 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "Sprite decoder: expected I-frame\n"); s 859 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "Sprite decoder: expected Frames not Fields\n"); s 863 libavcodec/vc1dec.c if ((s->mb_height >> v->field_mode) == 0) { s 864 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "image too short\n"); s 870 libavcodec/vc1dec.c s->current_picture.f->pict_type = s->pict_type; s 871 libavcodec/vc1dec.c s->current_picture.f->key_frame = s->pict_type == AV_PICTURE_TYPE_I; s 874 libavcodec/vc1dec.c if (!s->last_picture_ptr && (s->pict_type == AV_PICTURE_TYPE_B || s->droppable)) { s 875 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_DEBUG, "Skipping B frame without reference frames\n"); s 878 libavcodec/vc1dec.c if ((avctx->skip_frame >= AVDISCARD_NONREF && s->pict_type == AV_PICTURE_TYPE_B) || s 879 libavcodec/vc1dec.c (avctx->skip_frame >= AVDISCARD_NONKEY && s->pict_type != AV_PICTURE_TYPE_I) || s 884 libavcodec/vc1dec.c if (s->next_p_frame_damaged) { s 885 libavcodec/vc1dec.c if (s->pict_type == AV_PICTURE_TYPE_B) s 888 libavcodec/vc1dec.c s->next_p_frame_damaged = 0; s 891 libavcodec/vc1dec.c if ((ret = ff_mpv_frame_start(s, avctx)) < 0) { s 895 libavcodec/vc1dec.c v->s.current_picture_ptr->field_picture = v->field_mode; s 896 libavcodec/vc1dec.c v->s.current_picture_ptr->f->interlaced_frame = (v->fcm != PROGRESSIVE); s 897 libavcodec/vc1dec.c v->s.current_picture_ptr->f->top_field_first = v->tff; s 900 libavcodec/vc1dec.c s->current_picture_ptr->f->repeat_pict = 0; s 905 libavcodec/vc1dec.c s->current_picture_ptr->f->repeat_pict = 1; s 908 libavcodec/vc1dec.c s->current_picture_ptr->f->repeat_pict = v->rptfrm * 2; s 911 libavcodec/vc1dec.c s->me.qpel_put = s->qdsp.put_qpel_pixels_tab; s 912 libavcodec/vc1dec.c s->me.qpel_avg = s->qdsp.avg_qpel_pixels_tab; s 915 libavcodec/vc1dec.c s->mb_y = 0; s 918 libavcodec/vc1dec.c s->picture_structure = PICT_BOTTOM_FIELD - v->tff; s 931 libavcodec/vc1dec.c s->gb = slices[i].gb; s 932 libavcodec/vc1dec.c s->mb_y = slices[i].mby_start; s 934 libavcodec/vc1dec.c v->pic_header_flag = get_bits1(&s->gb); s 936 libavcodec/vc1dec.c if (ff_vc1_parse_frame_header_adv(v, &s->gb) < 0) { s 937 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "Slice header damaged\n"); s 954 libavcodec/vc1dec.c s->gb = slices[n_slices1 + 1].gb; s 955 libavcodec/vc1dec.c s->mb_y = slices[n_slices1 + 1].mby_start; s 956 libavcodec/vc1dec.c s->picture_structure = PICT_TOP_FIELD + v->tff; s 959 libavcodec/vc1dec.c if (ff_vc1_parse_frame_header_adv(v, &s->gb) < 0) { s 964 libavcodec/vc1dec.c v->s.current_picture_ptr->f->pict_type = v->s.pict_type; s 978 libavcodec/vc1dec.c s->gb = slices[i].gb; s 979 libavcodec/vc1dec.c s->mb_y = slices[i].mby_start; s 981 libavcodec/vc1dec.c v->pic_header_flag = get_bits1(&s->gb); s 983 libavcodec/vc1dec.c if (ff_vc1_parse_frame_header_adv(v, &s->gb) < 0) { s 984 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "Slice header damaged\n"); s 1000 libavcodec/vc1dec.c s->picture_structure = PICT_FRAME; s 1015 libavcodec/vc1dec.c s->gb = slices[i].gb; s 1016 libavcodec/vc1dec.c s->mb_y = slices[i].mby_start; s 1018 libavcodec/vc1dec.c v->pic_header_flag = get_bits1(&s->gb); s 1020 libavcodec/vc1dec.c if (ff_vc1_parse_frame_header_adv(v, &s->gb) < 0) { s 1021 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "Slice header damaged\n"); s 1039 libavcodec/vc1dec.c ff_mpeg_er_frame_start(s); s 1041 libavcodec/vc1dec.c v->end_mb_x = s->mb_width; s 1043 libavcodec/vc1dec.c s->current_picture.f->linesize[0] <<= 1; s 1044 libavcodec/vc1dec.c s->current_picture.f->linesize[1] <<= 1; s 1045 libavcodec/vc1dec.c s->current_picture.f->linesize[2] <<= 1; s 1046 libavcodec/vc1dec.c s->linesize <<= 1; s 1047 libavcodec/vc1dec.c s->uvlinesize <<= 1; s 1049 libavcodec/vc1dec.c mb_height = s->mb_height >> v->field_mode; s 1056 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "Slice %d starts beyond " s 1062 libavcodec/vc1dec.c av_assert0((s->mb_height & 1) == 0); s 1063 libavcodec/vc1dec.c v->blocks_off = s->b8_stride * (s->mb_height&~1); s 1064 libavcodec/vc1dec.c v->mb_off = s->mb_stride * s->mb_height >> 1; s 1073 libavcodec/vc1dec.c if ((header_ret = ff_vc1_parse_frame_header_adv(v, &s->gb)) < 0) { s 1074 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "Field header damaged\n"); s 1080 libavcodec/vc1dec.c } else if (get_bits1(&s->gb)) { s 1082 libavcodec/vc1dec.c if ((header_ret = ff_vc1_parse_frame_header_adv(v, &s->gb)) < 0) { s 1083 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "Slice header damaged\n"); s 1093 libavcodec/vc1dec.c s->start_mb_y = (i == 0) ? 0 : FFMAX(0, slices[i-1].mby_start % mb_height); s 1095 libavcodec/vc1dec.c s->end_mb_y = (i == n_slices ) ? mb_height : FFMIN(mb_height, slices[i].mby_start % mb_height); s 1098 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "first field slice count too large\n"); s 1101 libavcodec/vc1dec.c s->end_mb_y = (i == n_slices1 + 1) ? mb_height : FFMIN(mb_height, slices[i].mby_start % mb_height); s 1103 libavcodec/vc1dec.c if (s->end_mb_y <= s->start_mb_y) { s 1104 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "end mb y %d %d invalid\n", s->end_mb_y, s->start_mb_y); s 1107 libavcodec/vc1dec.c if (((s->pict_type == AV_PICTURE_TYPE_P && !v->p_frame_skipped) || s 1108 libavcodec/vc1dec.c (s->pict_type == AV_PICTURE_TYPE_B && !v->bi_type)) && s 1110 libavcodec/vc1dec.c av_log(v->s.avctx, AV_LOG_ERROR, "missing cbpcy_vlc\n"); s 1115 libavcodec/vc1dec.c s->gb = slices[i].gb; s 1120 libavcodec/vc1dec.c s->current_picture.f->linesize[0] >>= 1; s 1121 libavcodec/vc1dec.c s->current_picture.f->linesize[1] >>= 1; s 1122 libavcodec/vc1dec.c s->current_picture.f->linesize[2] >>= 1; s 1123 libavcodec/vc1dec.c s->linesize >>= 1; s 1124 libavcodec/vc1dec.c s->uvlinesize >>= 1; s 1125 libavcodec/vc1dec.c if (v->s.pict_type != AV_PICTURE_TYPE_BI && v->s.pict_type != AV_PICTURE_TYPE_B) { s 1130 libavcodec/vc1dec.c ff_dlog(s->avctx, "Consumed %i/%i bits\n", s 1131 libavcodec/vc1dec.c get_bits_count(&s->gb), s->gb.size_in_bits); s 1134 libavcodec/vc1dec.c if(s->er.error_occurred && s->pict_type == AV_PICTURE_TYPE_B) { s 1139 libavcodec/vc1dec.c ff_er_frame_end(&s->er); s 1142 libavcodec/vc1dec.c ff_mpv_frame_end(s); s 1151 libavcodec/vc1dec.c if ((ret = vc1_decode_sprites(v, &s->gb)) < 0) s 1158 libavcodec/vc1dec.c if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) { s 1159 libavcodec/vc1dec.c if ((ret = av_frame_ref(pict, s->current_picture_ptr->f)) < 0) s 1161 libavcodec/vc1dec.c ff_print_debug_info(s, s->current_picture_ptr, pict); s 1163 libavcodec/vc1dec.c } else if (s->last_picture_ptr) { s 1164 libavcodec/vc1dec.c if ((ret = av_frame_ref(pict, s->last_picture_ptr->f)) < 0) s 1166 libavcodec/vc1dec.c ff_print_debug_info(s, s->last_picture_ptr, pict); s 33 libavcodec/vc2enc.c #define SSIZE_ROUND(b) (FFALIGN((b), s->size_scaler) + 4 + s->prefix_bytes) s 228 libavcodec/vc2enc.c static void encode_parse_info(VC2EncContext *s, enum DiracParseCodes pcode) s 232 libavcodec/vc2enc.c avpriv_align_put_bits(&s->pb); s 234 libavcodec/vc2enc.c cur_pos = put_bits_count(&s->pb) >> 3; s 237 libavcodec/vc2enc.c avpriv_put_string(&s->pb, "BBCD", 0); s 240 libavcodec/vc2enc.c put_bits(&s->pb, 8, pcode); s 243 libavcodec/vc2enc.c dist = cur_pos - s->next_parse_offset; s 244 libavcodec/vc2enc.c AV_WB32(s->pb.buf + s->next_parse_offset + 5, dist); s 245 libavcodec/vc2enc.c s->next_parse_offset = cur_pos; s 246 libavcodec/vc2enc.c put_bits32(&s->pb, pcode == DIRAC_PCODE_END_SEQ ? 13 : 0); s 249 libavcodec/vc2enc.c put_bits32(&s->pb, s->last_parse_code == DIRAC_PCODE_END_SEQ ? 13 : dist); s 251 libavcodec/vc2enc.c s->last_parse_code = pcode; s 260 libavcodec/vc2enc.c static void encode_parse_params(VC2EncContext *s) s 262 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->ver.major); /* VC-2 demands this to be 2 */ s 263 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->ver.minor); /* ^^ and this to be 0 */ s 264 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->profile); /* 3 to signal HQ profile */ s 265 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->level); /* 3 - 1080/720, 6 - 4K */ s 269 libavcodec/vc2enc.c static void encode_frame_size(VC2EncContext *s) s 271 libavcodec/vc2enc.c put_bits(&s->pb, 1, !s->strict_compliance); s 272 libavcodec/vc2enc.c if (!s->strict_compliance) { s 273 libavcodec/vc2enc.c AVCodecContext *avctx = s->avctx; s 274 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, avctx->width); s 275 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, avctx->height); s 280 libavcodec/vc2enc.c static void encode_sample_fmt(VC2EncContext *s) s 282 libavcodec/vc2enc.c put_bits(&s->pb, 1, !s->strict_compliance); s 283 libavcodec/vc2enc.c if (!s->strict_compliance) { s 285 libavcodec/vc2enc.c if (s->chroma_x_shift == 1 && s->chroma_y_shift == 0) s 287 libavcodec/vc2enc.c else if (s->chroma_x_shift == 1 && s->chroma_y_shift == 1) s 291 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, idx); s 296 libavcodec/vc2enc.c static void encode_scan_format(VC2EncContext *s) s 298 libavcodec/vc2enc.c put_bits(&s->pb, 1, !s->strict_compliance); s 299 libavcodec/vc2enc.c if (!s->strict_compliance) s 300 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->interlaced); s 304 libavcodec/vc2enc.c static void encode_frame_rate(VC2EncContext *s) s 306 libavcodec/vc2enc.c put_bits(&s->pb, 1, !s->strict_compliance); s 307 libavcodec/vc2enc.c if (!s->strict_compliance) { s 308 libavcodec/vc2enc.c AVCodecContext *avctx = s->avctx; s 309 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, 0); s 310 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, avctx->time_base.den); s 311 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, avctx->time_base.num); s 316 libavcodec/vc2enc.c static void encode_aspect_ratio(VC2EncContext *s) s 318 libavcodec/vc2enc.c put_bits(&s->pb, 1, !s->strict_compliance); s 319 libavcodec/vc2enc.c if (!s->strict_compliance) { s 320 libavcodec/vc2enc.c AVCodecContext *avctx = s->avctx; s 321 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, 0); s 322 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, avctx->sample_aspect_ratio.num); s 323 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, avctx->sample_aspect_ratio.den); s 328 libavcodec/vc2enc.c static void encode_clean_area(VC2EncContext *s) s 330 libavcodec/vc2enc.c put_bits(&s->pb, 1, 0); s 334 libavcodec/vc2enc.c static void encode_signal_range(VC2EncContext *s) s 336 libavcodec/vc2enc.c put_bits(&s->pb, 1, !s->strict_compliance); s 337 libavcodec/vc2enc.c if (!s->strict_compliance) s 338 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->bpp_idx); s 342 libavcodec/vc2enc.c static void encode_color_spec(VC2EncContext *s) s 344 libavcodec/vc2enc.c AVCodecContext *avctx = s->avctx; s 345 libavcodec/vc2enc.c put_bits(&s->pb, 1, !s->strict_compliance); s 346 libavcodec/vc2enc.c if (!s->strict_compliance) { s 348 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, 0); s 351 libavcodec/vc2enc.c put_bits(&s->pb, 1, 1); s 360 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, val); s 363 libavcodec/vc2enc.c put_bits(&s->pb, 1, 1); s 372 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, val); s 375 libavcodec/vc2enc.c put_bits(&s->pb, 1, 1); s 382 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, val); s 387 libavcodec/vc2enc.c static void encode_source_params(VC2EncContext *s) s 389 libavcodec/vc2enc.c encode_frame_size(s); s 390 libavcodec/vc2enc.c encode_sample_fmt(s); s 391 libavcodec/vc2enc.c encode_scan_format(s); s 392 libavcodec/vc2enc.c encode_frame_rate(s); s 393 libavcodec/vc2enc.c encode_aspect_ratio(s); s 394 libavcodec/vc2enc.c encode_clean_area(s); s 395 libavcodec/vc2enc.c encode_signal_range(s); s 396 libavcodec/vc2enc.c encode_color_spec(s); s 400 libavcodec/vc2enc.c static void encode_seq_header(VC2EncContext *s) s 402 libavcodec/vc2enc.c avpriv_align_put_bits(&s->pb); s 403 libavcodec/vc2enc.c encode_parse_params(s); s 404 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->base_vf); s 405 libavcodec/vc2enc.c encode_source_params(s); s 406 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->interlaced); /* Frames or fields coding */ s 410 libavcodec/vc2enc.c static void encode_picture_header(VC2EncContext *s) s 412 libavcodec/vc2enc.c avpriv_align_put_bits(&s->pb); s 413 libavcodec/vc2enc.c put_bits32(&s->pb, s->picture_number++); s 417 libavcodec/vc2enc.c static void encode_slice_params(VC2EncContext *s) s 419 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->num_x); s 420 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->num_y); s 421 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->prefix_bytes); s 422 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->size_scaler); s 442 libavcodec/vc2enc.c static void init_quant_matrix(VC2EncContext *s) s 446 libavcodec/vc2enc.c if (s->wavelet_depth <= 4 && s->quant_matrix == VC2_QM_DEF) { s 447 libavcodec/vc2enc.c s->custom_quant_matrix = 0; s 448 libavcodec/vc2enc.c for (level = 0; level < s->wavelet_depth; level++) { s 449 libavcodec/vc2enc.c s->quant[level][0] = ff_dirac_default_qmat[s->wavelet_idx][level][0]; s 450 libavcodec/vc2enc.c s->quant[level][1] = ff_dirac_default_qmat[s->wavelet_idx][level][1]; s 451 libavcodec/vc2enc.c s->quant[level][2] = ff_dirac_default_qmat[s->wavelet_idx][level][2]; s 452 libavcodec/vc2enc.c s->quant[level][3] = ff_dirac_default_qmat[s->wavelet_idx][level][3]; s 457 libavcodec/vc2enc.c s->custom_quant_matrix = 1; s 459 libavcodec/vc2enc.c if (s->quant_matrix == VC2_QM_DEF) { s 460 libavcodec/vc2enc.c for (level = 0; level < s->wavelet_depth; level++) { s 463 libavcodec/vc2enc.c s->quant[level][orientation] = ff_dirac_default_qmat[s->wavelet_idx][level][orientation]; s 465 libavcodec/vc2enc.c s->quant[level][orientation] = vc2_qm_col_tab[level][orientation]; s 468 libavcodec/vc2enc.c } else if (s->quant_matrix == VC2_QM_COL) { s 469 libavcodec/vc2enc.c for (level = 0; level < s->wavelet_depth; level++) { s 471 libavcodec/vc2enc.c s->quant[level][orientation] = vc2_qm_col_tab[level][orientation]; s 475 libavcodec/vc2enc.c for (level = 0; level < s->wavelet_depth; level++) { s 477 libavcodec/vc2enc.c s->quant[level][orientation] = vc2_qm_flat_tab[level][orientation]; s 484 libavcodec/vc2enc.c static void encode_quant_matrix(VC2EncContext *s) s 487 libavcodec/vc2enc.c put_bits(&s->pb, 1, s->custom_quant_matrix); s 488 libavcodec/vc2enc.c if (s->custom_quant_matrix) { s 489 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->quant[0][0]); s 490 libavcodec/vc2enc.c for (level = 0; level < s->wavelet_depth; level++) { s 491 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->quant[level][1]); s 492 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->quant[level][2]); s 493 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->quant[level][3]); s 499 libavcodec/vc2enc.c static void encode_transform_params(VC2EncContext *s) s 501 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->wavelet_idx); s 502 libavcodec/vc2enc.c put_vc2_ue_uint(&s->pb, s->wavelet_depth); s 504 libavcodec/vc2enc.c encode_slice_params(s); s 505 libavcodec/vc2enc.c encode_quant_matrix(s); s 509 libavcodec/vc2enc.c static void encode_wavelet_transform(VC2EncContext *s) s 511 libavcodec/vc2enc.c encode_transform_params(s); s 512 libavcodec/vc2enc.c avpriv_align_put_bits(&s->pb); s 516 libavcodec/vc2enc.c static void encode_picture_start(VC2EncContext *s) s 518 libavcodec/vc2enc.c avpriv_align_put_bits(&s->pb); s 519 libavcodec/vc2enc.c encode_picture_header(s); s 520 libavcodec/vc2enc.c avpriv_align_put_bits(&s->pb); s 521 libavcodec/vc2enc.c encode_wavelet_transform(s); s 527 libavcodec/vc2enc.c static void encode_subband(VC2EncContext *s, PutBitContext *pb, int sx, int sy, s 532 libavcodec/vc2enc.c const int left = b->width * (sx+0) / s->num_x; s 533 libavcodec/vc2enc.c const int right = b->width * (sx+1) / s->num_x; s 534 libavcodec/vc2enc.c const int top = b->height * (sy+0) / s->num_y; s 535 libavcodec/vc2enc.c const int bottom = b->height * (sy+1) / s->num_y; s 538 libavcodec/vc2enc.c const uint64_t q_m = ((uint64_t)(s->qmagic_lut[quant][0])) << 2; s 539 libavcodec/vc2enc.c const uint64_t q_a = s->qmagic_lut[quant][1]; s 558 libavcodec/vc2enc.c VC2EncContext *s = slice->ctx; s 563 libavcodec/vc2enc.c bits += 8*s->prefix_bytes; s 566 libavcodec/vc2enc.c for (level = 0; level < s->wavelet_depth; level++) s 568 libavcodec/vc2enc.c quants[level][orientation] = FFMAX(quant_idx - s->quant[level][orientation], 0); s 574 libavcodec/vc2enc.c for (level = 0; level < s->wavelet_depth; level++) { s 576 libavcodec/vc2enc.c SubBand *b = &s->plane[p].band[level][orientation]; s 579 libavcodec/vc2enc.c const uint64_t q_m = ((uint64_t)s->qmagic_lut[q_idx][0]) << 2; s 580 libavcodec/vc2enc.c const uint64_t q_a = s->qmagic_lut[q_idx][1]; s 583 libavcodec/vc2enc.c const int left = b->width * slice->x / s->num_x; s 584 libavcodec/vc2enc.c const int right = b->width *(slice->x+1) / s->num_x; s 585 libavcodec/vc2enc.c const int top = b->height * slice->y / s->num_y; s 586 libavcodec/vc2enc.c const int bottom = b->height *(slice->y+1) / s->num_y; s 602 libavcodec/vc2enc.c pad_s = FFALIGN(bytes_len, s->size_scaler)/s->size_scaler; s 603 libavcodec/vc2enc.c pad_c = (pad_s*s->size_scaler) - bytes_len; s 618 libavcodec/vc2enc.c VC2EncContext *s = slice_dat->ctx; s 626 libavcodec/vc2enc.c quant = av_clip(quant + signed_step, 0, s->q_ceil-1); s 633 libavcodec/vc2enc.c step = av_clip(step/2, 1, (s->q_ceil-1)/2); s 638 libavcodec/vc2enc.c slice_dat->quant_idx = av_clip(quant, 0, s->q_ceil-1); s 643 libavcodec/vc2enc.c static int calc_slice_sizes(VC2EncContext *s) s 648 libavcodec/vc2enc.c int slice_redist_range = FFMIN(SLICE_REDIST_TOTAL, s->num_x*s->num_y); s 649 libavcodec/vc2enc.c SliceArgs *enc_args = s->slice_args; s 652 libavcodec/vc2enc.c init_quant_matrix(s); s 654 libavcodec/vc2enc.c for (slice_y = 0; slice_y < s->num_y; slice_y++) { s 655 libavcodec/vc2enc.c for (slice_x = 0; slice_x < s->num_x; slice_x++) { s 656 libavcodec/vc2enc.c SliceArgs *args = &enc_args[s->num_x*slice_y + slice_x]; s 657 libavcodec/vc2enc.c args->ctx = s; s 660 libavcodec/vc2enc.c args->bits_ceil = s->slice_max_bytes << 3; s 661 libavcodec/vc2enc.c args->bits_floor = s->slice_min_bytes << 3; s 662 libavcodec/vc2enc.c memset(args->cache, 0, s->q_ceil*sizeof(*args->cache)); s 667 libavcodec/vc2enc.c s->avctx->execute(s->avctx, rate_control, enc_args, NULL, s->num_x*s->num_y, s 670 libavcodec/vc2enc.c for (i = 0; i < s->num_x*s->num_y; i++) { s 682 libavcodec/vc2enc.c bytes_left = s->frame_max_bytes - bytes_left; s 711 libavcodec/vc2enc.c for (i = 0; i < s->num_x*s->num_y; i++) { s 714 libavcodec/vc2enc.c s->q_avg = (s->q_avg + args->quant_idx)/2; s 724 libavcodec/vc2enc.c VC2EncContext *s = slice_dat->ctx; s 734 libavcodec/vc2enc.c memset(put_bits_ptr(pb), 0, s->prefix_bytes); s 735 libavcodec/vc2enc.c skip_put_bytes(pb, s->prefix_bytes); s 740 libavcodec/vc2enc.c for (level = 0; level < s->wavelet_depth; level++) s 742 libavcodec/vc2enc.c quants[level][orientation] = FFMAX(quant_idx - s->quant[level][orientation], 0); s 749 libavcodec/vc2enc.c for (level = 0; level < s->wavelet_depth; level++) { s 751 libavcodec/vc2enc.c encode_subband(s, pb, slice_x, slice_y, s 752 libavcodec/vc2enc.c &s->plane[p].band[level][orientation], s 760 libavcodec/vc2enc.c pad_s = FFALIGN((bytes_len + len_diff), s->size_scaler)/s->size_scaler; s 761 libavcodec/vc2enc.c pad_c = (pad_s*s->size_scaler) - bytes_len; s 763 libavcodec/vc2enc.c pad_s = FFALIGN(bytes_len, s->size_scaler)/s->size_scaler; s 764 libavcodec/vc2enc.c pad_c = (pad_s*s->size_scaler) - bytes_len; s 777 libavcodec/vc2enc.c static int encode_slices(VC2EncContext *s) s 781 libavcodec/vc2enc.c SliceArgs *enc_args = s->slice_args; s 783 libavcodec/vc2enc.c avpriv_align_put_bits(&s->pb); s 784 libavcodec/vc2enc.c flush_put_bits(&s->pb); s 785 libavcodec/vc2enc.c buf = put_bits_ptr(&s->pb); s 787 libavcodec/vc2enc.c for (slice_y = 0; slice_y < s->num_y; slice_y++) { s 788 libavcodec/vc2enc.c for (slice_x = 0; slice_x < s->num_x; slice_x++) { s 789 libavcodec/vc2enc.c SliceArgs *args = &enc_args[s->num_x*slice_y + slice_x]; s 790 libavcodec/vc2enc.c init_put_bits(&args->pb, buf + skip, args->bytes+s->prefix_bytes); s 795 libavcodec/vc2enc.c s->avctx->execute(s->avctx, encode_hq_slice, enc_args, NULL, s->num_x*s->num_y, s 798 libavcodec/vc2enc.c skip_put_bytes(&s->pb, skip); s 841 libavcodec/vc2enc.c VC2EncContext *s = transform_dat->ctx; s 848 libavcodec/vc2enc.c const int idx = s->wavelet_idx; s 849 libavcodec/vc2enc.c const int skip = 1 + s->interlaced; s 852 libavcodec/vc2enc.c ptrdiff_t pix_stride = linesize >> (s->bpp - 1); s 864 libavcodec/vc2enc.c if (s->bpp == 1) { s 868 libavcodec/vc2enc.c buf[x] = pix[x] - s->diff_offset; s 878 libavcodec/vc2enc.c buf[x] = pix[x] - s->diff_offset; s 888 libavcodec/vc2enc.c for (level = s->wavelet_depth-1; level >= 0; level--) { s 897 libavcodec/vc2enc.c static int encode_frame(VC2EncContext *s, AVPacket *avpkt, const AVFrame *frame, s 905 libavcodec/vc2enc.c s->transform_args[i].ctx = s; s 906 libavcodec/vc2enc.c s->transform_args[i].field = field; s 907 libavcodec/vc2enc.c s->transform_args[i].plane = &s->plane[i]; s 908 libavcodec/vc2enc.c s->transform_args[i].idata = frame->data[i]; s 909 libavcodec/vc2enc.c s->transform_args[i].istride = frame->linesize[i]; s 911 libavcodec/vc2enc.c s->avctx->execute(s->avctx, dwt_plane, s->transform_args, NULL, 3, s 915 libavcodec/vc2enc.c max_frame_bytes = header_size + calc_slice_sizes(s); s 918 libavcodec/vc2enc.c ret = ff_alloc_packet2(s->avctx, avpkt, s 919 libavcodec/vc2enc.c max_frame_bytes << s->interlaced, s 920 libavcodec/vc2enc.c max_frame_bytes << s->interlaced); s 922 libavcodec/vc2enc.c av_log(s->avctx, AV_LOG_ERROR, "Error getting output packet.\n"); s 925 libavcodec/vc2enc.c init_put_bits(&s->pb, avpkt->data, avpkt->size); s 929 libavcodec/vc2enc.c encode_parse_info(s, DIRAC_PCODE_SEQ_HEADER); s 930 libavcodec/vc2enc.c encode_seq_header(s); s 934 libavcodec/vc2enc.c encode_parse_info(s, DIRAC_PCODE_AUX); s 935 libavcodec/vc2enc.c avpriv_put_string(&s->pb, aux_data, 1); s 939 libavcodec/vc2enc.c encode_parse_info(s, DIRAC_PCODE_PICTURE_HQ); s 940 libavcodec/vc2enc.c encode_picture_start(s); s 943 libavcodec/vc2enc.c encode_slices(s); s 946 libavcodec/vc2enc.c encode_parse_info(s, DIRAC_PCODE_END_SEQ); s 956 libavcodec/vc2enc.c VC2EncContext *s = avctx->priv_data; s 961 libavcodec/vc2enc.c int64_t r_bitrate = avctx->bit_rate >> (s->interlaced); s 963 libavcodec/vc2enc.c s->avctx = avctx; s 964 libavcodec/vc2enc.c s->size_scaler = 2; s 965 libavcodec/vc2enc.c s->prefix_bytes = 0; s 966 libavcodec/vc2enc.c s->last_parse_code = 0; s 967 libavcodec/vc2enc.c s->next_parse_offset = 0; s 970 libavcodec/vc2enc.c s->frame_max_bytes = (av_rescale(r_bitrate, s->avctx->time_base.num, s 971 libavcodec/vc2enc.c s->avctx->time_base.den) >> 3) - header_size; s 972 libavcodec/vc2enc.c s->slice_max_bytes = slice_ceil = av_rescale(s->frame_max_bytes, 1, s->num_x*s->num_y); s 976 libavcodec/vc2enc.c int r_size = SSIZE_ROUND(s->slice_max_bytes); s 978 libavcodec/vc2enc.c s->slice_max_bytes -= r_size - slice_ceil; s 979 libavcodec/vc2enc.c r_size = SSIZE_ROUND(s->slice_max_bytes); s 981 libavcodec/vc2enc.c sig_size = r_size/s->size_scaler; /* Signalled slize size */ s 982 libavcodec/vc2enc.c s->size_scaler <<= 1; s 985 libavcodec/vc2enc.c s->slice_min_bytes = s->slice_max_bytes - s->slice_max_bytes*(s->tolerance/100.0f); s 987 libavcodec/vc2enc.c ret = encode_frame(s, avpkt, frame, aux_data, header_size, s->interlaced); s 990 libavcodec/vc2enc.c if (s->interlaced) { s 991 libavcodec/vc2enc.c ret = encode_frame(s, avpkt, frame, aux_data, header_size, 2); s 996 libavcodec/vc2enc.c flush_put_bits(&s->pb); s 997 libavcodec/vc2enc.c avpkt->size = put_bits_count(&s->pb) >> 3; s 1007 libavcodec/vc2enc.c VC2EncContext *s = avctx->priv_data; s 1009 libavcodec/vc2enc.c av_log(avctx, AV_LOG_INFO, "Qavg: %i\n", s->q_avg); s 1012 libavcodec/vc2enc.c ff_vc2enc_free_transforms(&s->transform_args[i].t); s 1013 libavcodec/vc2enc.c av_freep(&s->plane[i].coef_buf); s 1016 libavcodec/vc2enc.c av_freep(&s->slice_args); s 1028 libavcodec/vc2enc.c VC2EncContext *s = avctx->priv_data; s 1030 libavcodec/vc2enc.c s->picture_number = 0; s 1033 libavcodec/vc2enc.c s->q_ceil = DIRAC_MAX_QUANT_INDEX; s 1035 libavcodec/vc2enc.c s->ver.major = 2; s 1036 libavcodec/vc2enc.c s->ver.minor = 0; s 1037 libavcodec/vc2enc.c s->profile = 3; s 1038 libavcodec/vc2enc.c s->level = 3; s 1040 libavcodec/vc2enc.c s->base_vf = -1; s 1041 libavcodec/vc2enc.c s->strict_compliance = 1; s 1043 libavcodec/vc2enc.c s->q_avg = 0; s 1044 libavcodec/vc2enc.c s->slice_max_bytes = 0; s 1045 libavcodec/vc2enc.c s->slice_min_bytes = 0; s 1048 libavcodec/vc2enc.c s->interlaced = !((avctx->field_order == AV_FIELD_UNKNOWN) || s 1063 libavcodec/vc2enc.c if (s->interlaced != fmt->interlaced) s 1065 libavcodec/vc2enc.c s->base_vf = i; s 1066 libavcodec/vc2enc.c s->level = base_video_fmts[i].level; s 1070 libavcodec/vc2enc.c if (s->interlaced) s 1073 libavcodec/vc2enc.c if ((s->slice_width & (s->slice_width - 1)) || s 1074 libavcodec/vc2enc.c (s->slice_height & (s->slice_height - 1))) { s 1079 libavcodec/vc2enc.c if ((s->slice_width > avctx->width) || s 1080 libavcodec/vc2enc.c (s->slice_height > avctx->height)) { s 1085 libavcodec/vc2enc.c if (s->base_vf <= 0) { s 1087 libavcodec/vc2enc.c s->strict_compliance = s->base_vf = 0; s 1096 libavcodec/vc2enc.c s->base_vf, base_video_fmts[s->base_vf].name); s 1100 libavcodec/vc2enc.c ret = av_pix_fmt_get_chroma_sub_sample(avctx->pix_fmt, &s->chroma_x_shift, &s->chroma_y_shift); s 1106 libavcodec/vc2enc.c s->bpp = 1; s 1107 libavcodec/vc2enc.c s->bpp_idx = 1; s 1108 libavcodec/vc2enc.c s->diff_offset = 128; s 1111 libavcodec/vc2enc.c s->bpp = 1; s 1112 libavcodec/vc2enc.c s->bpp_idx = 2; s 1113 libavcodec/vc2enc.c s->diff_offset = 128; s 1115 libavcodec/vc2enc.c s->bpp = 2; s 1116 libavcodec/vc2enc.c s->bpp_idx = 3; s 1117 libavcodec/vc2enc.c s->diff_offset = 512; s 1119 libavcodec/vc2enc.c s->bpp = 2; s 1120 libavcodec/vc2enc.c s->bpp_idx = 4; s 1121 libavcodec/vc2enc.c s->diff_offset = 2048; s 1127 libavcodec/vc2enc.c p = &s->plane[i]; s 1128 libavcodec/vc2enc.c p->width = avctx->width >> (i ? s->chroma_x_shift : 0); s 1129 libavcodec/vc2enc.c p->height = avctx->height >> (i ? s->chroma_y_shift : 0); s 1130 libavcodec/vc2enc.c if (s->interlaced) s 1132 libavcodec/vc2enc.c p->dwt_width = w = FFALIGN(p->width, (1 << s->wavelet_depth)); s 1133 libavcodec/vc2enc.c p->dwt_height = h = FFALIGN(p->height, (1 << s->wavelet_depth)); s 1138 libavcodec/vc2enc.c for (level = s->wavelet_depth-1; level >= 0; level--) { s 1152 libavcodec/vc2enc.c if (ff_vc2enc_init_transforms(&s->transform_args[i].t, s 1153 libavcodec/vc2enc.c s->plane[i].coef_stride, s 1154 libavcodec/vc2enc.c s->plane[i].dwt_height, s 1155 libavcodec/vc2enc.c s->slice_width, s->slice_height)) s 1160 libavcodec/vc2enc.c s->num_x = s->plane[0].dwt_width/s->slice_width; s 1161 libavcodec/vc2enc.c s->num_y = s->plane[0].dwt_height/s->slice_height; s 1163 libavcodec/vc2enc.c s->slice_args = av_calloc(s->num_x*s->num_y, sizeof(SliceArgs)); s 1164 libavcodec/vc2enc.c if (!s->slice_args) s 1173 libavcodec/vc2enc.c s->qmagic_lut[i][0] = 0xFFFFFFFF; s 1174 libavcodec/vc2enc.c s->qmagic_lut[i][1] = 0xFFFFFFFF; s 1176 libavcodec/vc2enc.c s->qmagic_lut[i][0] = t + 1; s 1177 libavcodec/vc2enc.c s->qmagic_lut[i][1] = 0; s 1179 libavcodec/vc2enc.c s->qmagic_lut[i][0] = t; s 1180 libavcodec/vc2enc.c s->qmagic_lut[i][1] = t; s 216 libavcodec/vc2enc_dwt.c const int s) s 226 libavcodec/vc2enc_dwt.c synthl[y*synth_width + x + 1] = (datal[y*stride + x + 1] << s) - s 227 libavcodec/vc2enc_dwt.c (datal[y*stride + x] << s); s 228 libavcodec/vc2enc_dwt.c synthl[y*synth_width + x] = (datal[y*stride + x + 0] << s) + s 258 libavcodec/vc2enc_dwt.c av_cold int ff_vc2enc_init_transforms(VC2TransformContext *s, int p_stride, s 261 libavcodec/vc2enc_dwt.c s->vc2_subband_dwt[VC2_TRANSFORM_9_7] = vc2_subband_dwt_97; s 262 libavcodec/vc2enc_dwt.c s->vc2_subband_dwt[VC2_TRANSFORM_5_3] = vc2_subband_dwt_53; s 263 libavcodec/vc2enc_dwt.c s->vc2_subband_dwt[VC2_TRANSFORM_HAAR] = vc2_subband_dwt_haar; s 264 libavcodec/vc2enc_dwt.c s->vc2_subband_dwt[VC2_TRANSFORM_HAAR_S] = vc2_subband_dwt_haar_shift; s 267 libavcodec/vc2enc_dwt.c s->buffer = av_calloc((p_stride + slice_w)*(p_height + slice_h), sizeof(dwtcoef)); s 268 libavcodec/vc2enc_dwt.c if (!s->buffer) s 271 libavcodec/vc2enc_dwt.c s->padding = (slice_h >> 1)*p_stride + (slice_w >> 1); s 272 libavcodec/vc2enc_dwt.c s->buffer += s->padding; s 277 libavcodec/vc2enc_dwt.c av_cold void ff_vc2enc_free_transforms(VC2TransformContext *s) s 279 libavcodec/vc2enc_dwt.c av_free(s->buffer - s->padding); s 280 libavcodec/vc2enc_dwt.c s->buffer = NULL; s 363 libavcodec/vdpau.c MpegEncContext *s = avctx->priv_data; s 364 libavcodec/vdpau.c Picture *pic = s->current_picture_ptr; s 372 libavcodec/vdpau.c ff_mpeg_draw_horiz_band(s, 0, s->avctx->height); s 35 libavcodec/vdpau_mpeg12.c MpegEncContext * const s = avctx->priv_data; s 36 libavcodec/vdpau_mpeg12.c Picture *pic = s->current_picture_ptr; s 46 libavcodec/vdpau_mpeg12.c switch (s->pict_type) { s 48 libavcodec/vdpau_mpeg12.c ref = ff_vdpau_get_surface_id(s->next_picture.f); s 53 libavcodec/vdpau_mpeg12.c ref = ff_vdpau_get_surface_id(s->last_picture.f); s 58 libavcodec/vdpau_mpeg12.c info->picture_structure = s->picture_structure; s 59 libavcodec/vdpau_mpeg12.c info->picture_coding_type = s->pict_type; s 60 libavcodec/vdpau_mpeg12.c info->intra_dc_precision = s->intra_dc_precision; s 61 libavcodec/vdpau_mpeg12.c info->frame_pred_frame_dct = s->frame_pred_frame_dct; s 62 libavcodec/vdpau_mpeg12.c info->concealment_motion_vectors = s->concealment_motion_vectors; s 63 libavcodec/vdpau_mpeg12.c info->intra_vlc_format = s->intra_vlc_format; s 64 libavcodec/vdpau_mpeg12.c info->alternate_scan = s->alternate_scan; s 65 libavcodec/vdpau_mpeg12.c info->q_scale_type = s->q_scale_type; s 66 libavcodec/vdpau_mpeg12.c info->top_field_first = s->top_field_first; s 68 libavcodec/vdpau_mpeg12.c info->full_pel_forward_vector = s->full_pel[0]; s 69 libavcodec/vdpau_mpeg12.c info->full_pel_backward_vector = s->full_pel[1]; s 71 libavcodec/vdpau_mpeg12.c info->f_code[0][0] = s->mpeg_f_code[0][0]; s 72 libavcodec/vdpau_mpeg12.c info->f_code[0][1] = s->mpeg_f_code[0][1]; s 73 libavcodec/vdpau_mpeg12.c info->f_code[1][0] = s->mpeg_f_code[1][0]; s 74 libavcodec/vdpau_mpeg12.c info->f_code[1][1] = s->mpeg_f_code[1][1]; s 76 libavcodec/vdpau_mpeg12.c info->intra_quantizer_matrix[i] = s->intra_matrix[i]; s 77 libavcodec/vdpau_mpeg12.c info->non_intra_quantizer_matrix[i] = s->inter_matrix[i]; s 86 libavcodec/vdpau_mpeg12.c MpegEncContext * const s = avctx->priv_data; s 87 libavcodec/vdpau_mpeg12.c Picture *pic = s->current_picture_ptr; s 36 libavcodec/vdpau_mpeg4.c MpegEncContext * const s = &ctx->m; s 37 libavcodec/vdpau_mpeg4.c Picture *pic = s->current_picture_ptr; s 48 libavcodec/vdpau_mpeg4.c switch (s->pict_type) { s 50 libavcodec/vdpau_mpeg4.c ref = ff_vdpau_get_surface_id(s->next_picture.f); s 56 libavcodec/vdpau_mpeg4.c ref = ff_vdpau_get_surface_id(s->last_picture.f); s 61 libavcodec/vdpau_mpeg4.c info->trd[0] = s->pp_time; s 62 libavcodec/vdpau_mpeg4.c info->trb[0] = s->pb_time; s 63 libavcodec/vdpau_mpeg4.c info->trd[1] = s->pp_field_time >> 1; s 64 libavcodec/vdpau_mpeg4.c info->trb[1] = s->pb_field_time >> 1; s 65 libavcodec/vdpau_mpeg4.c info->vop_time_increment_resolution = s->avctx->framerate.num; s 66 libavcodec/vdpau_mpeg4.c info->vop_fcode_forward = s->f_code; s 67 libavcodec/vdpau_mpeg4.c info->vop_fcode_backward = s->b_code; s 69 libavcodec/vdpau_mpeg4.c info->interlaced = !s->progressive_sequence; s 70 libavcodec/vdpau_mpeg4.c info->quant_type = s->mpeg_quant; s 71 libavcodec/vdpau_mpeg4.c info->quarter_sample = s->quarter_sample; s 73 libavcodec/vdpau_mpeg4.c info->rounding_control = s->no_rounding; s 74 libavcodec/vdpau_mpeg4.c info->alternate_vertical_scan_flag = s->alternate_scan; s 75 libavcodec/vdpau_mpeg4.c info->top_field_first = s->top_field_first; s 77 libavcodec/vdpau_mpeg4.c info->intra_quantizer_matrix[i] = s->intra_matrix[i]; s 78 libavcodec/vdpau_mpeg4.c info->non_intra_quantizer_matrix[i] = s->inter_matrix[i]; s 36 libavcodec/vdpau_vc1.c MpegEncContext * const s = &v->s; s 37 libavcodec/vdpau_vc1.c Picture *pic = s->current_picture_ptr; s 46 libavcodec/vdpau_vc1.c switch (s->pict_type) { s 48 libavcodec/vdpau_vc1.c if (s->next_picture_ptr) { s 49 libavcodec/vdpau_vc1.c ref = ff_vdpau_get_surface_id(s->next_picture.f); s 55 libavcodec/vdpau_vc1.c if (s->last_picture_ptr) { s 56 libavcodec/vdpau_vc1.c ref = ff_vdpau_get_surface_id(s->last_picture.f); s 66 libavcodec/vdpau_vc1.c info->picture_type = s->pict_type - 1 + s->pict_type / 3; s 83 libavcodec/vdpau_vc1.c info->loopfilter = v->s.loop_filter; s 93 libavcodec/vdpau_vc1.c info->maxbframes = v->s.max_b_frames; s 104 libavcodec/vdpau_vc1.c MpegEncContext * const s = &v->s; s 105 libavcodec/vdpau_vc1.c Picture *pic = s->current_picture_ptr; s 36 libavcodec/vdpau_vp9.c VP9Context *s = avctx->priv_data; s 37 libavcodec/vdpau_vp9.c VP9SharedContext *h = &(s->s); s 207 libavcodec/videotoolbox.c COUNT_SIZE_PS(S, s) s 324 libavcodec/videotoolbox.c APPEND_PS(S, s) s 518 libavcodec/videotoolbox.c int s; s 553 libavcodec/videotoolbox.c s = bytestream2_size_p(&pb); s 555 libavcodec/videotoolbox.c data = CFDataCreate(kCFAllocatorDefault, rw_extradata, s); s 1001 libavcodec/videotoolbox.c MpegEncContext *s = avctx->priv_data; s 1002 libavcodec/videotoolbox.c AVFrame *frame = s->current_picture_ptr->f; s 73 libavcodec/vmdaudio.c VmdAudioContext *s = avctx->priv_data; s 93 libavcodec/vmdaudio.c s->out_bps = av_get_bytes_per_sample(avctx->sample_fmt); s 95 libavcodec/vmdaudio.c s->chunk_size = avctx->block_align + avctx->channels * (s->out_bps == 2); s 141 libavcodec/vmdaudio.c VmdAudioContext *s = avctx->priv_data; s 179 libavcodec/vmdaudio.c audio_chunks = buf_size / s->chunk_size; s 182 libavcodec/vmdaudio.c buf_size = audio_chunks * s->chunk_size; s 200 libavcodec/vmdaudio.c if (s->out_bps == 2) { s 213 libavcodec/vmdaudio.c while (buf_end - buf >= s->chunk_size) { s 214 libavcodec/vmdaudio.c if (s->out_bps == 2) { s 215 libavcodec/vmdaudio.c decode_audio_s16(output_samples_s16, buf, s->chunk_size, s 219 libavcodec/vmdaudio.c memcpy(output_samples_u8, buf, s->chunk_size); s 222 libavcodec/vmdaudio.c buf += s->chunk_size; s 183 libavcodec/vmdvideo.c static int vmd_decode(VmdVideoContext *s, AVFrame *frame) s 200 libavcodec/vmdvideo.c frame_x = AV_RL16(&s->buf[6]); s 201 libavcodec/vmdvideo.c frame_y = AV_RL16(&s->buf[8]); s 202 libavcodec/vmdvideo.c frame_width = AV_RL16(&s->buf[10]) - frame_x + 1; s 203 libavcodec/vmdvideo.c frame_height = AV_RL16(&s->buf[12]) - frame_y + 1; s 205 libavcodec/vmdvideo.c if ((frame_width == s->avctx->width && frame_height == s->avctx->height) && s 208 libavcodec/vmdvideo.c s->x_off = frame_x; s 209 libavcodec/vmdvideo.c s->y_off = frame_y; s 211 libavcodec/vmdvideo.c frame_x -= s->x_off; s 212 libavcodec/vmdvideo.c frame_y -= s->y_off; s 215 libavcodec/vmdvideo.c frame_x >= s->avctx->width || s 216 libavcodec/vmdvideo.c frame_width > s->avctx->width || s 217 libavcodec/vmdvideo.c frame_x + frame_width > s->avctx->width) { s 218 libavcodec/vmdvideo.c av_log(s->avctx, AV_LOG_ERROR, s 224 libavcodec/vmdvideo.c frame_y >= s->avctx->height || s 225 libavcodec/vmdvideo.c frame_height > s->avctx->height || s 226 libavcodec/vmdvideo.c frame_y + frame_height > s->avctx->height) { s 227 libavcodec/vmdvideo.c av_log(s->avctx, AV_LOG_ERROR, s 235 libavcodec/vmdvideo.c if (s->prev_frame->data[0] && s 236 libavcodec/vmdvideo.c (frame_x || frame_y || (frame_width != s->avctx->width) || s 237 libavcodec/vmdvideo.c (frame_height != s->avctx->height))) { s 239 libavcodec/vmdvideo.c memcpy(frame->data[0], s->prev_frame->data[0], s 240 libavcodec/vmdvideo.c s->avctx->height * frame->linesize[0]); s 244 libavcodec/vmdvideo.c bytestream2_init(&gb, s->buf + 16, s->size - 16); s 245 libavcodec/vmdvideo.c if (s->buf[15] & 0x02) { s 247 libavcodec/vmdvideo.c palette32 = (unsigned int *)s->palette; s 257 libavcodec/vmdvideo.c av_log(s->avctx, AV_LOG_ERROR, "Incomplete palette\n"); s 262 libavcodec/vmdvideo.c if (!s->size) s 271 libavcodec/vmdvideo.c if (!s->unpack_buffer_size) { s 272 libavcodec/vmdvideo.c av_log(s->avctx, AV_LOG_ERROR, s 277 libavcodec/vmdvideo.c s->unpack_buffer, s->unpack_buffer_size); s 281 libavcodec/vmdvideo.c bytestream2_init(&gb, s->unpack_buffer, size); s 285 libavcodec/vmdvideo.c pp = &s->prev_frame->data[0][frame_y * s->prev_frame->linesize[0] + frame_x]; s 301 libavcodec/vmdvideo.c if (ofs + len + 1 > frame_width || !s->prev_frame->data[0]) s 308 libavcodec/vmdvideo.c av_log(s->avctx, AV_LOG_ERROR, s 314 libavcodec/vmdvideo.c pp += s->prev_frame->linesize[0]; s 322 libavcodec/vmdvideo.c pp += s->prev_frame->linesize[0]; s 350 libavcodec/vmdvideo.c if (ofs + len + 1 > frame_width || !s->prev_frame->data[0]) s 357 libavcodec/vmdvideo.c av_log(s->avctx, AV_LOG_ERROR, s 363 libavcodec/vmdvideo.c pp += s->prev_frame->linesize[0]; s 372 libavcodec/vmdvideo.c VmdVideoContext *s = avctx->priv_data; s 374 libavcodec/vmdvideo.c av_frame_free(&s->prev_frame); s 375 libavcodec/vmdvideo.c av_freep(&s->unpack_buffer); s 376 libavcodec/vmdvideo.c s->unpack_buffer_size = 0; s 383 libavcodec/vmdvideo.c VmdVideoContext *s = avctx->priv_data; s 391 libavcodec/vmdvideo.c s->avctx = avctx; s 395 libavcodec/vmdvideo.c if (s->avctx->extradata_size != VMD_HEADER_SIZE) { s 396 libavcodec/vmdvideo.c av_log(s->avctx, AV_LOG_ERROR, "expected extradata size of %d\n", s 402 libavcodec/vmdvideo.c s->unpack_buffer_size = AV_RL32(&vmd_header[800]); s 403 libavcodec/vmdvideo.c if (s->unpack_buffer_size) { s 404 libavcodec/vmdvideo.c s->unpack_buffer = av_malloc(s->unpack_buffer_size); s 405 libavcodec/vmdvideo.c if (!s->unpack_buffer) s 411 libavcodec/vmdvideo.c palette32 = (unsigned int *)s->palette; s 420 libavcodec/vmdvideo.c s->prev_frame = av_frame_alloc(); s 421 libavcodec/vmdvideo.c if (!s->prev_frame) { s 435 libavcodec/vmdvideo.c VmdVideoContext *s = avctx->priv_data; s 439 libavcodec/vmdvideo.c s->buf = buf; s 440 libavcodec/vmdvideo.c s->size = buf_size; s 448 libavcodec/vmdvideo.c if ((ret = vmd_decode(s, frame)) < 0) s 452 libavcodec/vmdvideo.c memcpy(frame->data[1], s->palette, PALETTE_COUNT * 4); s 455 libavcodec/vmdvideo.c av_frame_unref(s->prev_frame); s 456 libavcodec/vmdvideo.c if ((ret = av_frame_ref(s->prev_frame, frame)) < 0) s 41 libavcodec/vorbis_parser.c static int parse_id_header(AVVorbisParseContext *s, s 46 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Id header is too short\n"); s 52 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Wrong packet type in Id header\n"); s 58 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Invalid packet signature in Id header\n"); s 63 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Invalid framing bit in Id header\n"); s 67 libavcodec/vorbis_parser.c s->blocksize[0] = 1 << (buf[28] & 0xF); s 68 libavcodec/vorbis_parser.c s->blocksize[1] = 1 << (buf[28] >> 4); s 73 libavcodec/vorbis_parser.c static int parse_setup_header(AVVorbisParseContext *s, s 83 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Setup header is too short\n"); s 89 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Wrong packet type in Setup header\n"); s 95 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Invalid packet signature in Setup header\n"); s 101 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Out of memory\n"); s 116 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Invalid Setup header\n"); s 143 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Invalid Setup header\n"); s 152 libavcodec/vorbis_parser.c avpriv_request_sample(s, s 160 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Unsupported mode count: %d\n", s 165 libavcodec/vorbis_parser.c s->mode_count = mode_count = last_mode_count; s 168 libavcodec/vorbis_parser.c s->mode_mask = ((1 << (av_log2(mode_count - 1) + 1)) - 1) << 1; s 170 libavcodec/vorbis_parser.c s->prev_mask = (s->mode_mask | 0x1) + 1; s 176 libavcodec/vorbis_parser.c s->mode_blocksize[i] = get_bits1(&gb); s 184 libavcodec/vorbis_parser.c static int vorbis_parse_init(AVVorbisParseContext *s, s 191 libavcodec/vorbis_parser.c s->class = &vorbis_parser_class; s 192 libavcodec/vorbis_parser.c s->extradata_parsed = 1; s 197 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Extradata corrupt.\n"); s 201 libavcodec/vorbis_parser.c if ((ret = parse_id_header(s, header_start[0], header_len[0])) < 0) s 204 libavcodec/vorbis_parser.c if ((ret = parse_setup_header(s, header_start[2], header_len[2])) < 0) s 207 libavcodec/vorbis_parser.c s->valid_extradata = 1; s 208 libavcodec/vorbis_parser.c s->previous_blocksize = s->blocksize[s->mode_blocksize[0]]; s 213 libavcodec/vorbis_parser.c int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf, s 218 libavcodec/vorbis_parser.c if (s->valid_extradata && buf_size > 0) { s 220 libavcodec/vorbis_parser.c int previous_blocksize = s->previous_blocksize; s 241 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Invalid packet\n"); s 244 libavcodec/vorbis_parser.c if (s->mode_count == 1) s 247 libavcodec/vorbis_parser.c mode = (buf[0] & s->mode_mask) >> 1; s 248 libavcodec/vorbis_parser.c if (mode >= s->mode_count) { s 249 libavcodec/vorbis_parser.c av_log(s, AV_LOG_ERROR, "Invalid mode in packet\n"); s 252 libavcodec/vorbis_parser.c if(s->mode_blocksize[mode]){ s 253 libavcodec/vorbis_parser.c int flag = !!(buf[0] & s->prev_mask); s 254 libavcodec/vorbis_parser.c previous_blocksize = s->blocksize[flag]; s 256 libavcodec/vorbis_parser.c current_blocksize = s->blocksize[s->mode_blocksize[mode]]; s 258 libavcodec/vorbis_parser.c s->previous_blocksize = current_blocksize; s 264 libavcodec/vorbis_parser.c int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf, s 267 libavcodec/vorbis_parser.c return av_vorbis_parse_frame_flags(s, buf, buf_size, NULL); s 270 libavcodec/vorbis_parser.c void av_vorbis_parse_reset(AVVorbisParseContext *s) s 272 libavcodec/vorbis_parser.c if (s->valid_extradata) s 273 libavcodec/vorbis_parser.c s->previous_blocksize = s->blocksize[0]; s 276 libavcodec/vorbis_parser.c void av_vorbis_parse_free(AVVorbisParseContext **s) s 278 libavcodec/vorbis_parser.c av_freep(s); s 284 libavcodec/vorbis_parser.c AVVorbisParseContext *s = av_mallocz(sizeof(*s)); s 287 libavcodec/vorbis_parser.c if (!s) s 290 libavcodec/vorbis_parser.c ret = vorbis_parse_init(s, extradata, extradata_size); s 292 libavcodec/vorbis_parser.c av_vorbis_parse_free(&s); s 296 libavcodec/vorbis_parser.c return s; s 309 libavcodec/vorbis_parser.c VorbisParseContext *s = s1->priv_data; s 312 libavcodec/vorbis_parser.c if (!s->vp && avctx->extradata && avctx->extradata_size) { s 313 libavcodec/vorbis_parser.c s->vp = av_vorbis_parse_init(avctx->extradata, avctx->extradata_size); s 315 libavcodec/vorbis_parser.c if (!s->vp) s 318 libavcodec/vorbis_parser.c if ((duration = av_vorbis_parse_frame(s->vp, buf, buf_size)) >= 0) s 331 libavcodec/vorbis_parser.c VorbisParseContext *s = ctx->priv_data; s 332 libavcodec/vorbis_parser.c av_vorbis_parse_free(&s->vp); s 42 libavcodec/vorbis_parser.h void av_vorbis_parse_free(AVVorbisParseContext **s); s 59 libavcodec/vorbis_parser.h int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf, s 69 libavcodec/vorbis_parser.h int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf, s 72 libavcodec/vorbis_parser.h void av_vorbis_parse_reset(AVVorbisParseContext *s); s 920 libavcodec/vorbisenc.c int s = rc->begin + p * psize; s 921 libavcodec/vorbisenc.c for (k = s; k < s + psize; k += 2) { s 967 libavcodec/vorbisenc.c int s = rc->begin + p * psize, a1, b1; s 968 libavcodec/vorbisenc.c a1 = (s % real_ch) * samples; s 969 libavcodec/vorbisenc.c b1 = s / real_ch; s 970 libavcodec/vorbisenc.c s = real_ch * samples; s 976 libavcodec/vorbisenc.c if ((a2 += samples) == s) { s 986 libavcodec/vorbisenc.c if ((a1 += samples) == s) { s 308 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 310 libavcodec/vp3.c av_freep(&s->superblock_coding); s 311 libavcodec/vp3.c av_freep(&s->all_fragments); s 312 libavcodec/vp3.c av_freep(&s->nkf_coded_fragment_list); s 313 libavcodec/vp3.c av_freep(&s->kf_coded_fragment_list); s 314 libavcodec/vp3.c av_freep(&s->dct_tokens_base); s 315 libavcodec/vp3.c av_freep(&s->superblock_fragments); s 316 libavcodec/vp3.c av_freep(&s->macroblock_coding); s 317 libavcodec/vp3.c av_freep(&s->dc_pred_row); s 318 libavcodec/vp3.c av_freep(&s->motion_val[0]); s 319 libavcodec/vp3.c av_freep(&s->motion_val[1]); s 324 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 326 libavcodec/vp3.c if (s->golden_frame.f) s 327 libavcodec/vp3.c ff_thread_release_buffer(avctx, &s->golden_frame); s 328 libavcodec/vp3.c if (s->last_frame.f) s 329 libavcodec/vp3.c ff_thread_release_buffer(avctx, &s->last_frame); s 330 libavcodec/vp3.c if (s->current_frame.f) s 331 libavcodec/vp3.c ff_thread_release_buffer(avctx, &s->current_frame); s 336 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 340 libavcodec/vp3.c av_freep(&s->edge_emu_buffer); s 342 libavcodec/vp3.c s->theora_tables = 0; s 346 libavcodec/vp3.c av_frame_free(&s->current_frame.f); s 347 libavcodec/vp3.c av_frame_free(&s->last_frame.f); s 348 libavcodec/vp3.c av_frame_free(&s->golden_frame.f); s 351 libavcodec/vp3.c ff_free_vlc(&s->dc_vlc[i]); s 352 libavcodec/vp3.c ff_free_vlc(&s->ac_vlc_1[i]); s 353 libavcodec/vp3.c ff_free_vlc(&s->ac_vlc_2[i]); s 354 libavcodec/vp3.c ff_free_vlc(&s->ac_vlc_3[i]); s 355 libavcodec/vp3.c ff_free_vlc(&s->ac_vlc_4[i]); s 358 libavcodec/vp3.c ff_free_vlc(&s->superblock_run_length_vlc); s 359 libavcodec/vp3.c ff_free_vlc(&s->fragment_run_length_vlc); s 360 libavcodec/vp3.c ff_free_vlc(&s->mode_code_vlc); s 361 libavcodec/vp3.c ff_free_vlc(&s->motion_vector_vlc); s 365 libavcodec/vp3.c ff_free_vlc(&s->vp4_mv_vlc[j][i]); s 368 libavcodec/vp3.c ff_free_vlc(&s->block_pattern_vlc[i]); s 379 libavcodec/vp3.c static int init_block_mapping(Vp3DecodeContext *s) s 385 libavcodec/vp3.c int sb_width = plane ? s->c_superblock_width s 386 libavcodec/vp3.c : s->y_superblock_width; s 387 libavcodec/vp3.c int sb_height = plane ? s->c_superblock_height s 388 libavcodec/vp3.c : s->y_superblock_height; s 389 libavcodec/vp3.c int frag_width = s->fragment_width[!!plane]; s 390 libavcodec/vp3.c int frag_height = s->fragment_height[!!plane]; s 399 libavcodec/vp3.c s->superblock_fragments[j++] = s->fragment_start[plane] + s 402 libavcodec/vp3.c s->superblock_fragments[j++] = -1; s 413 libavcodec/vp3.c static void init_dequantizer(Vp3DecodeContext *s, int qpi) s 415 libavcodec/vp3.c int ac_scale_factor = s->coded_ac_scale_factor[s->qps[qpi]]; s 420 libavcodec/vp3.c int dc_scale_factor = s->coded_dc_scale_factor[!!plane][s->qps[qpi]]; s 422 libavcodec/vp3.c for (qri = 0; qri < s->qr_count[inter][plane]; qri++) { s 423 libavcodec/vp3.c sum += s->qr_size[inter][plane][qri]; s 424 libavcodec/vp3.c if (s->qps[qpi] <= sum) s 427 libavcodec/vp3.c qistart = sum - s->qr_size[inter][plane][qri]; s 428 libavcodec/vp3.c bmi = s->qr_base[inter][plane][qri]; s 429 libavcodec/vp3.c bmj = s->qr_base[inter][plane][qri + 1]; s 431 libavcodec/vp3.c int coeff = (2 * (sum - s->qps[qpi]) * s->base_matrix[bmi][i] - s 432 libavcodec/vp3.c 2 * (qistart - s->qps[qpi]) * s->base_matrix[bmj][i] + s 433 libavcodec/vp3.c s->qr_size[inter][plane][qri]) / s 434 libavcodec/vp3.c (2 * s->qr_size[inter][plane][qri]); s 439 libavcodec/vp3.c s->qmat[qpi][inter][plane][s->idct_permutation[i]] = s 440 libavcodec/vp3.c (i == 0 || s->version < 2) ? av_clip((qscale * coeff) / 100 * 4, qmin, 4096) s 445 libavcodec/vp3.c s->qmat[qpi][inter][plane][0] = s->qmat[0][inter][plane][0]; s 456 libavcodec/vp3.c static void init_loop_filter(Vp3DecodeContext *s) s 458 libavcodec/vp3.c ff_vp3dsp_set_bounding_values(s->bounding_values_array, s->filter_limit_values[s->qps[0]]); s 465 libavcodec/vp3.c static int unpack_superblocks(Vp3DecodeContext *s, GetBitContext *gb) s 468 libavcodec/vp3.c 0, s->u_superblock_start, s->v_superblock_start s 480 libavcodec/vp3.c if (s->keyframe) { s 481 libavcodec/vp3.c memset(s->superblock_coding, SB_FULLY_CODED, s->superblock_count); s 487 libavcodec/vp3.c while (current_superblock < s->superblock_count && get_bits_left(gb) > 0) { s 488 libavcodec/vp3.c if (s->theora && current_run == MAXIMUM_LONG_BIT_RUN) s 493 libavcodec/vp3.c current_run = get_vlc2(gb, s->superblock_run_length_vlc.table, s 498 libavcodec/vp3.c if (current_run > s->superblock_count - current_superblock) { s 499 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, s 504 libavcodec/vp3.c memset(s->superblock_coding + current_superblock, bit, current_run); s 513 libavcodec/vp3.c if (num_partial_superblocks < s->superblock_count) { s 520 libavcodec/vp3.c while (superblocks_decoded < s->superblock_count - num_partial_superblocks && s 522 libavcodec/vp3.c if (s->theora && current_run == MAXIMUM_LONG_BIT_RUN) s 527 libavcodec/vp3.c current_run = get_vlc2(gb, s->superblock_run_length_vlc.table, s 533 libavcodec/vp3.c if (current_superblock >= s->superblock_count) { s 534 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, s 540 libavcodec/vp3.c if (s->superblock_coding[current_superblock] == SB_NOT_CODED) { s 541 libavcodec/vp3.c s->superblock_coding[current_superblock] = 2 * bit; s 562 libavcodec/vp3.c s->total_num_coded_frags = 0; s 563 libavcodec/vp3.c memset(s->macroblock_coding, MODE_COPY, s->macroblock_count); s 565 libavcodec/vp3.c s->coded_fragment_list[0] = s->keyframe ? s->kf_coded_fragment_list s 566 libavcodec/vp3.c : s->nkf_coded_fragment_list; s 570 libavcodec/vp3.c int sb_end = sb_start + (plane ? s->c_superblock_count s 571 libavcodec/vp3.c : s->y_superblock_count); s 574 libavcodec/vp3.c if (s->keyframe) { s 575 libavcodec/vp3.c if (s->num_kf_coded_fragment[plane] == -1) { s 580 libavcodec/vp3.c current_fragment = s->superblock_fragments[i * 16 + j]; s 582 libavcodec/vp3.c s->coded_fragment_list[plane][num_coded_frags++] = s 587 libavcodec/vp3.c s->num_kf_coded_fragment[plane] = num_coded_frags; s 589 libavcodec/vp3.c num_coded_frags = s->num_kf_coded_fragment[plane]; s 598 libavcodec/vp3.c current_fragment = s->superblock_fragments[i * 16 + j]; s 600 libavcodec/vp3.c int coded = s->superblock_coding[i]; s 607 libavcodec/vp3.c current_run = get_vlc2(gb, s->fragment_run_length_vlc.table, 5, 2); s 615 libavcodec/vp3.c s->all_fragments[current_fragment].coding_method = s 617 libavcodec/vp3.c s->coded_fragment_list[plane][num_coded_frags++] = s 621 libavcodec/vp3.c s->all_fragments[current_fragment].coding_method = s 630 libavcodec/vp3.c s->total_num_coded_frags += num_coded_frags; s 632 libavcodec/vp3.c s->num_coded_frags[plane][i] = num_coded_frags; s 634 libavcodec/vp3.c s->coded_fragment_list[plane + 1] = s->coded_fragment_list[plane] + s 648 libavcodec/vp3.c static int vp4_get_mb_count(Vp3DecodeContext *s, GetBitContext *gb) s 655 libavcodec/vp3.c if (v > s->yuv_macroblock_count) { s 656 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "Invalid run length\n"); s 684 libavcodec/vp3.c static int vp4_get_block_pattern(Vp3DecodeContext *s, GetBitContext *gb, int *next_block_pattern_table) s 686 libavcodec/vp3.c int v = get_vlc2(gb, s->block_pattern_vlc[*next_block_pattern_table].table, 3, 2); s 688 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "Invalid block pattern\n"); s 696 libavcodec/vp3.c static int vp4_unpack_macroblocks(Vp3DecodeContext *s, GetBitContext *gb) s 702 libavcodec/vp3.c memset(s->macroblock_coding, MODE_COPY, s->macroblock_count); s 704 libavcodec/vp3.c if (s->keyframe) s 709 libavcodec/vp3.c for (i = 0; i < s->yuv_macroblock_count; i += current_run) { s 712 libavcodec/vp3.c current_run = vp4_get_mb_count(s, gb); s 713 libavcodec/vp3.c if (current_run > s->yuv_macroblock_count - i) s 715 libavcodec/vp3.c memset(s->superblock_coding + i, 2 * bit, current_run); s 724 libavcodec/vp3.c current_run = vp4_get_mb_count(s, gb); s 725 libavcodec/vp3.c for (i = 0; i < s->yuv_macroblock_count; i++) { s 726 libavcodec/vp3.c if (!s->superblock_coding[i]) { s 729 libavcodec/vp3.c current_run = vp4_get_mb_count(s, gb); s 731 libavcodec/vp3.c s->superblock_coding[i] = bit; s 743 libavcodec/vp3.c int sb_width = plane ? s->c_superblock_width : s->y_superblock_width; s 744 libavcodec/vp3.c int sb_height = plane ? s->c_superblock_height : s->y_superblock_height; s 745 libavcodec/vp3.c int mb_width = plane ? s->c_macroblock_width : s->macroblock_width; s 746 libavcodec/vp3.c int mb_height = plane ? s->c_macroblock_height : s->macroblock_height; s 747 libavcodec/vp3.c int fragment_width = s->fragment_width[!!plane]; s 748 libavcodec/vp3.c int fragment_height = s->fragment_height[!!plane]; s 760 libavcodec/vp3.c mb_coded = s->superblock_coding[i++]; s 765 libavcodec/vp3.c pattern = vp4_get_block_pattern(s, gb, &next_block_pattern_table); s 772 libavcodec/vp3.c fragment = s->fragment_start[plane] + BLOCK_Y * fragment_width + BLOCK_X; s 776 libavcodec/vp3.c s->all_fragments[fragment].coding_method = coded ? MODE_INTER_NO_MV : MODE_COPY; s 790 libavcodec/vp3.c static int unpack_modes(Vp3DecodeContext *s, GetBitContext *gb) s 801 libavcodec/vp3.c if (s->keyframe) { s 802 libavcodec/vp3.c for (i = 0; i < s->fragment_count; i++) s 803 libavcodec/vp3.c s->all_fragments[i].coding_method = MODE_INTRA; s 820 libavcodec/vp3.c for (sb_y = 0; sb_y < s->y_superblock_height; sb_y++) { s 821 libavcodec/vp3.c for (sb_x = 0; sb_x < s->y_superblock_width; sb_x++) { s 828 libavcodec/vp3.c current_macroblock = mb_y * s->macroblock_width + mb_x; s 830 libavcodec/vp3.c if (mb_x >= s->macroblock_width || s 831 libavcodec/vp3.c mb_y >= s->macroblock_height) s 839 libavcodec/vp3.c s->fragment_width[0] + BLOCK_X; s 840 libavcodec/vp3.c if (s->all_fragments[current_fragment].coding_method != MODE_COPY) s 844 libavcodec/vp3.c s->macroblock_coding[current_macroblock] = MODE_INTER_NO_MV; s 852 libavcodec/vp3.c coding_mode = alphabet[get_vlc2(gb, s->mode_code_vlc.table, 3, 3)]; s 854 libavcodec/vp3.c s->macroblock_coding[current_macroblock] = coding_mode; s 856 libavcodec/vp3.c frag = s->all_fragments + BLOCK_Y * s->fragment_width[0] + BLOCK_X; s 862 libavcodec/vp3.c if (frag[s->fragment_start[1]].coding_method != MODE_COPY) \ s 863 libavcodec/vp3.c frag[s->fragment_start[1]].coding_method = coding_mode; \ s 864 libavcodec/vp3.c if (frag[s->fragment_start[2]].coding_method != MODE_COPY) \ s 865 libavcodec/vp3.c frag[s->fragment_start[2]].coding_method = coding_mode; s 867 libavcodec/vp3.c if (s->chroma_y_shift) { s 868 libavcodec/vp3.c frag = s->all_fragments + mb_y * s 869 libavcodec/vp3.c s->fragment_width[1] + mb_x; s 871 libavcodec/vp3.c } else if (s->chroma_x_shift) { s 872 libavcodec/vp3.c frag = s->all_fragments + s 873 libavcodec/vp3.c 2 * mb_y * s->fragment_width[1] + mb_x; s 876 libavcodec/vp3.c frag += s->fragment_width[1]; s 880 libavcodec/vp3.c frag = s->all_fragments + s 881 libavcodec/vp3.c BLOCK_Y * s->fragment_width[1] + BLOCK_X; s 893 libavcodec/vp3.c static int vp4_get_mv(Vp3DecodeContext *s, GetBitContext *gb, int axis, int last_motion) s 895 libavcodec/vp3.c int v = get_vlc2(gb, s->vp4_mv_vlc[axis][vp4_mv_table_selector[FFABS(last_motion)]].table, 6, 2) - 31; s 903 libavcodec/vp3.c static int unpack_vectors(Vp3DecodeContext *s, GetBitContext *gb) s 919 libavcodec/vp3.c if (s->keyframe) s 923 libavcodec/vp3.c coding_mode = s->version < 2 ? get_bits1(gb) : 2; s 927 libavcodec/vp3.c for (sb_y = 0; sb_y < s->y_superblock_height; sb_y++) { s 928 libavcodec/vp3.c for (sb_x = 0; sb_x < s->y_superblock_width; sb_x++) { s 935 libavcodec/vp3.c current_macroblock = mb_y * s->macroblock_width + mb_x; s 937 libavcodec/vp3.c if (mb_x >= s->macroblock_width || s 938 libavcodec/vp3.c mb_y >= s->macroblock_height || s 939 libavcodec/vp3.c s->macroblock_coding[current_macroblock] == MODE_COPY) s 942 libavcodec/vp3.c switch (s->macroblock_coding[current_macroblock]) { s 945 libavcodec/vp3.c last_gold_motion_x = motion_x[0] = vp4_get_mv(s, gb, 0, last_gold_motion_x); s 946 libavcodec/vp3.c last_gold_motion_y = motion_y[0] = vp4_get_mv(s, gb, 1, last_gold_motion_y); s 952 libavcodec/vp3.c motion_x[0] = motion_vector_table[get_vlc2(gb, s->motion_vector_vlc.table, 6, 2)]; s 953 libavcodec/vp3.c motion_y[0] = motion_vector_table[get_vlc2(gb, s->motion_vector_vlc.table, 6, 2)]; s 958 libavcodec/vp3.c motion_x[0] = vp4_get_mv(s, gb, 0, last_motion_x); s 959 libavcodec/vp3.c motion_y[0] = vp4_get_mv(s, gb, 1, last_motion_y); s 963 libavcodec/vp3.c if (s->macroblock_coding[current_macroblock] == MODE_INTER_PLUS_MV) { s 979 libavcodec/vp3.c current_fragment = BLOCK_Y * s->fragment_width[0] + BLOCK_X; s 980 libavcodec/vp3.c if (s->all_fragments[current_fragment].coding_method != MODE_COPY) { s 982 libavcodec/vp3.c motion_x[k] = motion_vector_table[get_vlc2(gb, s->motion_vector_vlc.table, 6, 2)]; s 983 libavcodec/vp3.c motion_y[k] = motion_vector_table[get_vlc2(gb, s->motion_vector_vlc.table, 6, 2)]; s 988 libavcodec/vp3.c motion_x[k] = vp4_get_mv(s, gb, 0, prior_last_motion_x); s 989 libavcodec/vp3.c motion_y[k] = vp4_get_mv(s, gb, 1, prior_last_motion_y); s 1034 libavcodec/vp3.c BLOCK_Y * s->fragment_width[0] + BLOCK_X; s 1035 libavcodec/vp3.c if (s->macroblock_coding[current_macroblock] == MODE_INTER_FOURMV) { s 1036 libavcodec/vp3.c s->motion_val[0][current_fragment][0] = motion_x[k]; s 1037 libavcodec/vp3.c s->motion_val[0][current_fragment][1] = motion_y[k]; s 1039 libavcodec/vp3.c s->motion_val[0][current_fragment][0] = motion_x[0]; s 1040 libavcodec/vp3.c s->motion_val[0][current_fragment][1] = motion_y[0]; s 1044 libavcodec/vp3.c if (s->chroma_y_shift) { s 1045 libavcodec/vp3.c if (s->macroblock_coding[current_macroblock] == MODE_INTER_FOURMV) { s 1051 libavcodec/vp3.c if (s->version <= 2) { s 1055 libavcodec/vp3.c frag = mb_y * s->fragment_width[1] + mb_x; s 1056 libavcodec/vp3.c s->motion_val[1][frag][0] = motion_x[0]; s 1057 libavcodec/vp3.c s->motion_val[1][frag][1] = motion_y[0]; s 1058 libavcodec/vp3.c } else if (s->chroma_x_shift) { s 1059 libavcodec/vp3.c if (s->macroblock_coding[current_macroblock] == MODE_INTER_FOURMV) { s 1068 libavcodec/vp3.c if (s->version <= 2) { s 1072 libavcodec/vp3.c frag = 2 * mb_y * s->fragment_width[1] + mb_x; s 1074 libavcodec/vp3.c s->motion_val[1][frag][0] = motion_x[k]; s 1075 libavcodec/vp3.c s->motion_val[1][frag][1] = motion_y[k]; s 1076 libavcodec/vp3.c frag += s->fragment_width[1]; s 1080 libavcodec/vp3.c frag = BLOCK_Y * s->fragment_width[1] + BLOCK_X; s 1081 libavcodec/vp3.c if (s->macroblock_coding[current_macroblock] == MODE_INTER_FOURMV) { s 1082 libavcodec/vp3.c s->motion_val[1][frag][0] = motion_x[k]; s 1083 libavcodec/vp3.c s->motion_val[1][frag][1] = motion_y[k]; s 1085 libavcodec/vp3.c s->motion_val[1][frag][0] = motion_x[0]; s 1086 libavcodec/vp3.c s->motion_val[1][frag][1] = motion_y[0]; s 1097 libavcodec/vp3.c static int unpack_block_qpis(Vp3DecodeContext *s, GetBitContext *gb) s 1100 libavcodec/vp3.c int num_blocks = s->total_num_coded_frags; s 1102 libavcodec/vp3.c for (qpi = 0; qpi < s->nqps - 1 && num_blocks > 0; qpi++) { s 1114 libavcodec/vp3.c run_length = get_vlc2(gb, s->superblock_run_length_vlc.table, 6, 2) + 1; s 1123 libavcodec/vp3.c if (i >= s->total_num_coded_frags) s 1126 libavcodec/vp3.c if (s->all_fragments[s->coded_fragment_list[0][i]].qpi == qpi) { s 1127 libavcodec/vp3.c s->all_fragments[s->coded_fragment_list[0][i]].qpi += bit; s 1175 libavcodec/vp3.c static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb, s 1186 libavcodec/vp3.c int num_coeffs = s->num_coded_frags[plane][coeff_index]; s 1187 libavcodec/vp3.c int16_t *dct_tokens = s->dct_tokens[plane][coeff_index]; s 1190 libavcodec/vp3.c int *coded_fragment_list = s->coded_fragment_list[plane]; s 1191 libavcodec/vp3.c Vp3Fragment *all_fragments = s->all_fragments; s 1195 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, s 1253 libavcodec/vp3.c av_log(s->avctx, AV_LOG_DEBUG, s 1262 libavcodec/vp3.c s->num_coded_frags[plane][i]--; s 1265 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "Invalid token %d\n", token); s 1270 libavcodec/vp3.c if (blocks_ended > s->num_coded_frags[plane][coeff_index]) s 1271 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "More blocks ended than coded!\n"); s 1277 libavcodec/vp3.c s->num_coded_frags[plane][i] -= blocks_ended; s 1281 libavcodec/vp3.c s->dct_tokens[plane + 1][coeff_index] = dct_tokens + j; s 1283 libavcodec/vp3.c s->dct_tokens[0][coeff_index + 1] = dct_tokens + j; s 1288 libavcodec/vp3.c static void reverse_dc_prediction(Vp3DecodeContext *s, s 1296 libavcodec/vp3.c static int unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb) s 1307 libavcodec/vp3.c s->dct_tokens[0][0] = s->dct_tokens_base; s 1317 libavcodec/vp3.c residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_y_table], 0, s 1325 libavcodec/vp3.c reverse_dc_prediction(s, 0, s->fragment_width[0], s->fragment_height[0]); s 1328 libavcodec/vp3.c residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_c_table], 0, s 1332 libavcodec/vp3.c residual_eob_run = unpack_vlcs(s, gb, &s->dc_vlc[dc_c_table], 0, s 1338 libavcodec/vp3.c if (!(s->avctx->flags & AV_CODEC_FLAG_GRAY)) { s 1339 libavcodec/vp3.c reverse_dc_prediction(s, s->fragment_start[1], s 1340 libavcodec/vp3.c s->fragment_width[1], s->fragment_height[1]); s 1341 libavcodec/vp3.c reverse_dc_prediction(s, s->fragment_start[2], s 1342 libavcodec/vp3.c s->fragment_width[1], s->fragment_height[1]); s 1353 libavcodec/vp3.c y_tables[i] = &s->ac_vlc_1[ac_y_table]; s 1354 libavcodec/vp3.c c_tables[i] = &s->ac_vlc_1[ac_c_table]; s 1357 libavcodec/vp3.c y_tables[i] = &s->ac_vlc_2[ac_y_table]; s 1358 libavcodec/vp3.c c_tables[i] = &s->ac_vlc_2[ac_c_table]; s 1361 libavcodec/vp3.c y_tables[i] = &s->ac_vlc_3[ac_y_table]; s 1362 libavcodec/vp3.c c_tables[i] = &s->ac_vlc_3[ac_c_table]; s 1365 libavcodec/vp3.c y_tables[i] = &s->ac_vlc_4[ac_y_table]; s 1366 libavcodec/vp3.c c_tables[i] = &s->ac_vlc_4[ac_c_table]; s 1371 libavcodec/vp3.c residual_eob_run = unpack_vlcs(s, gb, y_tables[i], i, s 1376 libavcodec/vp3.c residual_eob_run = unpack_vlcs(s, gb, c_tables[i], i, s 1380 libavcodec/vp3.c residual_eob_run = unpack_vlcs(s, gb, c_tables[i], i, s 1396 libavcodec/vp3.c static int vp4_unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb, s 1415 libavcodec/vp3.c *s->dct_tokens[plane][coeff_i]++ = TOKEN_EOB(0); s 1423 libavcodec/vp3.c av_log(s->avctx, AV_LOG_DEBUG, s 1428 libavcodec/vp3.c *s->dct_tokens[plane][coeff_i]++ = TOKEN_ZERO_RUN(coeff, zero_run); s 1432 libavcodec/vp3.c s->all_fragments[fragment].dc = coeff; s 1434 libavcodec/vp3.c *s->dct_tokens[plane][coeff_i]++ = TOKEN_COEFF(coeff); s 1440 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "Invalid token %d\n", token); s 1444 libavcodec/vp3.c *s->dct_tokens[plane][coeff_i]++ = TOKEN_EOB(0); s 1455 libavcodec/vp3.c static void vp4_dc_pred_before(const Vp3DecodeContext *s, VP4Predictor dc_pred[6][6], int sb_x) s 1460 libavcodec/vp3.c dc_pred[0][i + 1] = s->dc_pred_row[sb_x * 4 + i]; s 1467 libavcodec/vp3.c static void vp4_dc_pred_after(Vp3DecodeContext *s, VP4Predictor dc_pred[6][6], int sb_x) s 1472 libavcodec/vp3.c s->dc_pred_row[sb_x * 4 + i] = dc_pred[4][i + 1]; s 1479 libavcodec/vp3.c static int vp4_dc_pred(const Vp3DecodeContext *s, const VP4Predictor * dc_pred, const int * last_dc, int type, int plane) s 1508 libavcodec/vp3.c static void vp4_set_tokens_base(Vp3DecodeContext *s) s 1511 libavcodec/vp3.c int16_t *base = s->dct_tokens_base; s 1514 libavcodec/vp3.c s->dct_tokens[plane][i] = base; s 1515 libavcodec/vp3.c base += s->fragment_width[!!plane] * s->fragment_height[!!plane]; s 1520 libavcodec/vp3.c static int vp4_unpack_dct_coeffs(Vp3DecodeContext *s, GetBitContext *gb) s 1545 libavcodec/vp3.c tables[0][0] = &s->dc_vlc[dc_y_table]; s 1546 libavcodec/vp3.c tables[1][0] = &s->dc_vlc[dc_c_table]; s 1548 libavcodec/vp3.c tables[0][i] = &s->ac_vlc_1[ac_y_table]; s 1549 libavcodec/vp3.c tables[1][i] = &s->ac_vlc_1[ac_c_table]; s 1552 libavcodec/vp3.c tables[0][i] = &s->ac_vlc_2[ac_y_table]; s 1553 libavcodec/vp3.c tables[1][i] = &s->ac_vlc_2[ac_c_table]; s 1556 libavcodec/vp3.c tables[0][i] = &s->ac_vlc_3[ac_y_table]; s 1557 libavcodec/vp3.c tables[1][i] = &s->ac_vlc_3[ac_c_table]; s 1560 libavcodec/vp3.c tables[0][i] = &s->ac_vlc_4[ac_y_table]; s 1561 libavcodec/vp3.c tables[1][i] = &s->ac_vlc_4[ac_c_table]; s 1564 libavcodec/vp3.c vp4_set_tokens_base(s); s 1568 libavcodec/vp3.c for (plane = 0; plane < ((s->avctx->flags & AV_CODEC_FLAG_GRAY) ? 1 : 3); plane++) { s 1572 libavcodec/vp3.c for (i = 0; i < s->fragment_width[!!plane]; i++) s 1573 libavcodec/vp3.c vp4_dc_predictor_reset(&s->dc_pred_row[i]); s 1579 libavcodec/vp3.c for (sb_y = 0; sb_y * 4 < s->fragment_height[!!plane]; sb_y++) { s 1580 libavcodec/vp3.c for (sb_x = 0; sb_x *4 < s->fragment_width[!!plane]; sb_x++) { s 1581 libavcodec/vp3.c vp4_dc_pred_before(s, dc_pred, sb_x); s 1590 libavcodec/vp3.c if (x >= s->fragment_width[!!plane] || y >= s->fragment_height[!!plane]) s 1593 libavcodec/vp3.c fragment = s->fragment_start[plane] + y * s->fragment_width[!!plane] + x; s 1595 libavcodec/vp3.c if (s->all_fragments[fragment].coding_method == MODE_COPY) s 1598 libavcodec/vp3.c if (vp4_unpack_vlcs(s, gb, tables[!!plane], plane, eob_tracker, fragment) < 0) s 1601 libavcodec/vp3.c dc_block_type = vp4_pred_block_type_map[s->all_fragments[fragment].coding_method]; s 1603 libavcodec/vp3.c s->all_fragments[fragment].dc += s 1604 libavcodec/vp3.c vp4_dc_pred(s, this_dc_pred, last_dc, dc_block_type, plane); s 1607 libavcodec/vp3.c this_dc_pred->dc = last_dc[dc_block_type] = s->all_fragments[fragment].dc; s 1609 libavcodec/vp3.c vp4_dc_pred_after(s, dc_pred, sb_x); s 1614 libavcodec/vp3.c vp4_set_tokens_base(s); s 1626 libavcodec/vp3.c (compatible_frame[s->all_fragments[x].coding_method] == current_frame_type) s 1627 libavcodec/vp3.c #define DC_COEFF(u) s->all_fragments[u].dc s 1629 libavcodec/vp3.c static void reverse_dc_prediction(Vp3DecodeContext *s, s 1714 libavcodec/vp3.c if (s->all_fragments[i].coding_method != MODE_COPY) { s 1716 libavcodec/vp3.c compatible_frame[s->all_fragments[i].coding_method]; s 1779 libavcodec/vp3.c static void apply_loop_filter(Vp3DecodeContext *s, int plane, s 1783 libavcodec/vp3.c int *bounding_values = s->bounding_values_array + 127; s 1785 libavcodec/vp3.c int width = s->fragment_width[!!plane]; s 1786 libavcodec/vp3.c int height = s->fragment_height[!!plane]; s 1787 libavcodec/vp3.c int fragment = s->fragment_start[plane] + ystart * width; s 1788 libavcodec/vp3.c ptrdiff_t stride = s->current_frame.f->linesize[plane]; s 1789 libavcodec/vp3.c uint8_t *plane_data = s->current_frame.f->data[plane]; s 1790 libavcodec/vp3.c if (!s->flipped_image) s 1792 libavcodec/vp3.c plane_data += s->data_offset[plane] + 8 * ystart * stride; s 1800 libavcodec/vp3.c if (s->all_fragments[fragment].coding_method != MODE_COPY) { s 1803 libavcodec/vp3.c s->vp3dsp.h_loop_filter( s 1810 libavcodec/vp3.c s->vp3dsp.v_loop_filter( s 1819 libavcodec/vp3.c (s->all_fragments[fragment + 1].coding_method == MODE_COPY)) { s 1820 libavcodec/vp3.c s->vp3dsp.h_loop_filter( s 1829 libavcodec/vp3.c (s->all_fragments[fragment + width].coding_method == MODE_COPY)) { s 1830 libavcodec/vp3.c s->vp3dsp.v_loop_filter( s 1846 libavcodec/vp3.c static inline int vp3_dequant(Vp3DecodeContext *s, Vp3Fragment *frag, s 1849 libavcodec/vp3.c int16_t *dequantizer = s->qmat[frag->qpi][inter][plane]; s 1850 libavcodec/vp3.c uint8_t *perm = s->idct_scantable; s 1854 libavcodec/vp3.c int token = *s->dct_tokens[plane][i]; s 1858 libavcodec/vp3.c s->dct_tokens[plane][i]++; s 1860 libavcodec/vp3.c *s->dct_tokens[plane][i] = token & ~3; s 1863 libavcodec/vp3.c s->dct_tokens[plane][i]++; s 1866 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "Coefficient index overflow\n"); s 1874 libavcodec/vp3.c s->dct_tokens[plane][i++]++; s 1884 libavcodec/vp3.c block[0] = frag->dc * s->qmat[0][inter][plane][0]; s 1891 libavcodec/vp3.c static void vp3_draw_horiz_band(Vp3DecodeContext *s, int y) s 1896 libavcodec/vp3.c if (HAVE_THREADS && s->avctx->active_thread_type & FF_THREAD_FRAME) { s 1897 libavcodec/vp3.c int y_flipped = s->flipped_image ? s->height - y : y; s 1902 libavcodec/vp3.c ff_thread_report_progress(&s->current_frame, s 1903 libavcodec/vp3.c y_flipped == s->height ? INT_MAX s 1908 libavcodec/vp3.c if (!s->avctx->draw_horiz_band) s 1911 libavcodec/vp3.c h = y - s->last_slice_end; s 1912 libavcodec/vp3.c s->last_slice_end = y; s 1915 libavcodec/vp3.c if (!s->flipped_image) s 1916 libavcodec/vp3.c y = s->height - y - h; s 1918 libavcodec/vp3.c cy = y >> s->chroma_y_shift; s 1919 libavcodec/vp3.c offset[0] = s->current_frame.f->linesize[0] * y; s 1920 libavcodec/vp3.c offset[1] = s->current_frame.f->linesize[1] * cy; s 1921 libavcodec/vp3.c offset[2] = s->current_frame.f->linesize[2] * cy; s 1926 libavcodec/vp3.c s->avctx->draw_horiz_band(s->avctx, s->current_frame.f, offset, y, 3, h); s 1933 libavcodec/vp3.c static void await_reference_row(Vp3DecodeContext *s, Vp3Fragment *fragment, s 1942 libavcodec/vp3.c ref_frame = &s->golden_frame; s 1944 libavcodec/vp3.c ref_frame = &s->last_frame; s 1956 libavcodec/vp3.c static int vp4_mc_loop_filter(Vp3DecodeContext *s, int plane, int motion_x, int motion_y, int bx, int by, s 1961 libavcodec/vp3.c int *bounding_values = s->bounding_values_array + 127; s 1970 libavcodec/vp3.c int plane_width = s->width >> (plane && s->chroma_x_shift); s 1971 libavcodec/vp3.c int plane_height = s->height >> (plane && s->chroma_y_shift); s 2005 libavcodec/vp3.c s->vdsp.emulated_edge_mc(loop, motion_source - stride - 1, s 2025 libavcodec/vp3.c s->vdsp.emulated_edge_mc(loop, motion_source - stride - 1, s 2033 libavcodec/vp3.c s->vp3dsp.name##_unaligned(ptr, stride, bounding_values); \ s 2035 libavcodec/vp3.c s->vp3dsp.name(ptr, stride, bounding_values); s 2055 libavcodec/vp3.c static void render_slice(Vp3DecodeContext *s, int slice) s 2058 libavcodec/vp3.c int16_t *block = s->block; s 2064 libavcodec/vp3.c if (slice >= s->c_superblock_height) s 2068 libavcodec/vp3.c uint8_t *output_plane = s->current_frame.f->data[plane] + s 2069 libavcodec/vp3.c s->data_offset[plane]; s 2070 libavcodec/vp3.c uint8_t *last_plane = s->last_frame.f->data[plane] + s 2071 libavcodec/vp3.c s->data_offset[plane]; s 2072 libavcodec/vp3.c uint8_t *golden_plane = s->golden_frame.f->data[plane] + s 2073 libavcodec/vp3.c s->data_offset[plane]; s 2074 libavcodec/vp3.c ptrdiff_t stride = s->current_frame.f->linesize[plane]; s 2075 libavcodec/vp3.c int plane_width = s->width >> (plane && s->chroma_x_shift); s 2076 libavcodec/vp3.c int plane_height = s->height >> (plane && s->chroma_y_shift); s 2077 libavcodec/vp3.c int8_t(*motion_val)[2] = s->motion_val[!!plane]; s 2079 libavcodec/vp3.c int sb_x, sb_y = slice << (!plane && s->chroma_y_shift); s 2080 libavcodec/vp3.c int slice_height = sb_y + 1 + (!plane && s->chroma_y_shift); s 2081 libavcodec/vp3.c int slice_width = plane ? s->c_superblock_width s 2082 libavcodec/vp3.c : s->y_superblock_width; s 2084 libavcodec/vp3.c int fragment_width = s->fragment_width[!!plane]; s 2085 libavcodec/vp3.c int fragment_height = s->fragment_height[!!plane]; s 2086 libavcodec/vp3.c int fragment_start = s->fragment_start[plane]; s 2089 libavcodec/vp3.c (s->avctx->active_thread_type & FF_THREAD_FRAME); s 2091 libavcodec/vp3.c if (!s->flipped_image) s 2093 libavcodec/vp3.c if (CONFIG_GRAY && plane && (s->avctx->flags & AV_CODEC_FLAG_GRAY)) s 2115 libavcodec/vp3.c s->all_fragments[i].coding_method != MODE_INTRA) s 2116 libavcodec/vp3.c await_reference_row(s, &s->all_fragments[i], s 2118 libavcodec/vp3.c (16 * y) >> s->chroma_y_shift); s 2121 libavcodec/vp3.c if (s->all_fragments[i].coding_method != MODE_COPY) { s 2122 libavcodec/vp3.c if ((s->all_fragments[i].coding_method == MODE_USING_GOLDEN) || s 2123 libavcodec/vp3.c (s->all_fragments[i].coding_method == MODE_GOLDEN_MV)) s 2133 libavcodec/vp3.c if ((s->all_fragments[i].coding_method > MODE_INTRA) && s 2134 libavcodec/vp3.c (s->all_fragments[i].coding_method != MODE_USING_GOLDEN)) { s 2140 libavcodec/vp3.c if (plane && s->version >= 2) { s 2156 libavcodec/vp3.c if (s->version >= 2) { s 2157 libavcodec/vp3.c uint8_t *temp = s->edge_emu_buffer; s 2160 libavcodec/vp3.c if (vp4_mc_loop_filter(s, plane, motion_val[fragment][0], motion_val[fragment][1], x, y, motion_source, stride, src_x, src_y, temp)) { s 2171 libavcodec/vp3.c uint8_t *temp = s->edge_emu_buffer; s 2175 libavcodec/vp3.c s->vdsp.emulated_edge_mc(temp, motion_source, s 2186 libavcodec/vp3.c if (s->all_fragments[i].coding_method != MODE_INTRA) { s 2192 libavcodec/vp3.c s->hdsp.put_no_rnd_pixels_tab[1][motion_halfpel_index]( s 2199 libavcodec/vp3.c s->vp3dsp.put_no_rnd_pixels_l2(output_plane + first_pixel, s 2208 libavcodec/vp3.c if (s->all_fragments[i].coding_method == MODE_INTRA) { s 2209 libavcodec/vp3.c vp3_dequant(s, s->all_fragments + i, s 2211 libavcodec/vp3.c s->vp3dsp.idct_put(output_plane + first_pixel, s 2215 libavcodec/vp3.c if (vp3_dequant(s, s->all_fragments + i, s 2217 libavcodec/vp3.c s->vp3dsp.idct_add(output_plane + first_pixel, s 2221 libavcodec/vp3.c s->vp3dsp.idct_dc_add(output_plane + first_pixel, s 2227 libavcodec/vp3.c s->hdsp.put_pixels_tab[1][0]( s 2236 libavcodec/vp3.c if (s->version < 2 && !s->skip_loop_filter) s 2237 libavcodec/vp3.c apply_loop_filter(s, plane, 4 * sb_y - !!sb_y, s 2250 libavcodec/vp3.c vp3_draw_horiz_band(s, FFMIN((32 << s->chroma_y_shift) * (slice + 1) - 16, s 2251 libavcodec/vp3.c s->height - 16)); s 2257 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 2262 libavcodec/vp3.c y_fragment_count = s->fragment_width[0] * s->fragment_height[0]; s 2263 libavcodec/vp3.c c_fragment_count = s->fragment_width[1] * s->fragment_height[1]; s 2266 libavcodec/vp3.c s->superblock_coding = av_mallocz(FFMAX(s->superblock_count, s->yuv_macroblock_count)); s 2267 libavcodec/vp3.c s->all_fragments = av_mallocz_array(s->fragment_count, sizeof(Vp3Fragment)); s 2269 libavcodec/vp3.c s-> kf_coded_fragment_list = av_mallocz_array(s->fragment_count, sizeof(int)); s 2270 libavcodec/vp3.c s->nkf_coded_fragment_list = av_mallocz_array(s->fragment_count, sizeof(int)); s 2271 libavcodec/vp3.c memset(s-> num_kf_coded_fragment, -1, sizeof(s-> num_kf_coded_fragment)); s 2273 libavcodec/vp3.c s->dct_tokens_base = av_mallocz_array(s->fragment_count, s 2274 libavcodec/vp3.c 64 * sizeof(*s->dct_tokens_base)); s 2275 libavcodec/vp3.c s->motion_val[0] = av_mallocz_array(y_fragment_count, sizeof(*s->motion_val[0])); s 2276 libavcodec/vp3.c s->motion_val[1] = av_mallocz_array(c_fragment_count, sizeof(*s->motion_val[1])); s 2279 libavcodec/vp3.c s->superblock_fragments = av_mallocz_array(s->superblock_count, 16 * sizeof(int)); s 2280 libavcodec/vp3.c s->macroblock_coding = av_mallocz(s->macroblock_count + 1); s 2282 libavcodec/vp3.c s->dc_pred_row = av_malloc_array(s->y_superblock_width * 4, sizeof(*s->dc_pred_row)); s 2284 libavcodec/vp3.c if (!s->superblock_coding || !s->all_fragments || s 2285 libavcodec/vp3.c !s->dct_tokens_base || !s->kf_coded_fragment_list || s 2286 libavcodec/vp3.c !s->nkf_coded_fragment_list || s 2287 libavcodec/vp3.c !s->superblock_fragments || !s->macroblock_coding || s 2288 libavcodec/vp3.c !s->dc_pred_row || s 2289 libavcodec/vp3.c !s->motion_val[0] || !s->motion_val[1]) { s 2294 libavcodec/vp3.c init_block_mapping(s); s 2299 libavcodec/vp3.c static av_cold int init_frames(Vp3DecodeContext *s) s 2301 libavcodec/vp3.c s->current_frame.f = av_frame_alloc(); s 2302 libavcodec/vp3.c s->last_frame.f = av_frame_alloc(); s 2303 libavcodec/vp3.c s->golden_frame.f = av_frame_alloc(); s 2305 libavcodec/vp3.c if (!s->current_frame.f || !s->last_frame.f || !s->golden_frame.f) { s 2306 libavcodec/vp3.c av_frame_free(&s->current_frame.f); s 2307 libavcodec/vp3.c av_frame_free(&s->last_frame.f); s 2308 libavcodec/vp3.c av_frame_free(&s->golden_frame.f); s 2317 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 2326 libavcodec/vp3.c ret = init_frames(s); s 2331 libavcodec/vp3.c s->version = 3; s 2333 libavcodec/vp3.c s->version = 0; s 2335 libavcodec/vp3.c s->version = 1; s 2337 libavcodec/vp3.c s->avctx = avctx; s 2338 libavcodec/vp3.c s->width = FFALIGN(avctx->coded_width, 16); s 2339 libavcodec/vp3.c s->height = FFALIGN(avctx->coded_height, 16); s 2343 libavcodec/vp3.c ff_hpeldsp_init(&s->hdsp, avctx->flags | AV_CODEC_FLAG_BITEXACT); s 2344 libavcodec/vp3.c ff_videodsp_init(&s->vdsp, 8); s 2345 libavcodec/vp3.c ff_vp3dsp_init(&s->vp3dsp, avctx->flags); s 2349 libavcodec/vp3.c s->idct_permutation[i] = TRANSPOSE(i); s 2350 libavcodec/vp3.c s->idct_scantable[i] = TRANSPOSE(ff_zigzag_direct[i]); s 2357 libavcodec/vp3.c s->qps[i] = -1; s 2359 libavcodec/vp3.c ret = av_pix_fmt_get_chroma_sub_sample(avctx->pix_fmt, &s->chroma_x_shift, &s->chroma_y_shift); s 2363 libavcodec/vp3.c s->y_superblock_width = (s->width + 31) / 32; s 2364 libavcodec/vp3.c s->y_superblock_height = (s->height + 31) / 32; s 2365 libavcodec/vp3.c s->y_superblock_count = s->y_superblock_width * s->y_superblock_height; s 2368 libavcodec/vp3.c c_width = s->width >> s->chroma_x_shift; s 2369 libavcodec/vp3.c c_height = s->height >> s->chroma_y_shift; s 2370 libavcodec/vp3.c s->c_superblock_width = (c_width + 31) / 32; s 2371 libavcodec/vp3.c s->c_superblock_height = (c_height + 31) / 32; s 2372 libavcodec/vp3.c s->c_superblock_count = s->c_superblock_width * s->c_superblock_height; s 2374 libavcodec/vp3.c s->superblock_count = s->y_superblock_count + (s->c_superblock_count * 2); s 2375 libavcodec/vp3.c s->u_superblock_start = s->y_superblock_count; s 2376 libavcodec/vp3.c s->v_superblock_start = s->u_superblock_start + s->c_superblock_count; s 2378 libavcodec/vp3.c s->macroblock_width = (s->width + 15) / 16; s 2379 libavcodec/vp3.c s->macroblock_height = (s->height + 15) / 16; s 2380 libavcodec/vp3.c s->macroblock_count = s->macroblock_width * s->macroblock_height; s 2381 libavcodec/vp3.c s->c_macroblock_width = (c_width + 15) / 16; s 2382 libavcodec/vp3.c s->c_macroblock_height = (c_height + 15) / 16; s 2383 libavcodec/vp3.c s->c_macroblock_count = s->c_macroblock_width * s->c_macroblock_height; s 2384 libavcodec/vp3.c s->yuv_macroblock_count = s->macroblock_count + 2 * s->c_macroblock_count; s 2386 libavcodec/vp3.c s->fragment_width[0] = s->width / FRAGMENT_PIXELS; s 2387 libavcodec/vp3.c s->fragment_height[0] = s->height / FRAGMENT_PIXELS; s 2388 libavcodec/vp3.c s->fragment_width[1] = s->fragment_width[0] >> s->chroma_x_shift; s 2389 libavcodec/vp3.c s->fragment_height[1] = s->fragment_height[0] >> s->chroma_y_shift; s 2392 libavcodec/vp3.c y_fragment_count = s->fragment_width[0] * s->fragment_height[0]; s 2393 libavcodec/vp3.c c_fragment_count = s->fragment_width[1] * s->fragment_height[1]; s 2394 libavcodec/vp3.c s->fragment_count = y_fragment_count + 2 * c_fragment_count; s 2395 libavcodec/vp3.c s->fragment_start[1] = y_fragment_count; s 2396 libavcodec/vp3.c s->fragment_start[2] = y_fragment_count + c_fragment_count; s 2398 libavcodec/vp3.c if (!s->theora_tables) { s 2400 libavcodec/vp3.c s->coded_dc_scale_factor[0][i] = s->version < 2 ? vp31_dc_scale_factor[i] : vp4_y_dc_scale_factor[i]; s 2401 libavcodec/vp3.c s->coded_dc_scale_factor[1][i] = s->version < 2 ? vp31_dc_scale_factor[i] : vp4_uv_dc_scale_factor[i]; s 2402 libavcodec/vp3.c s->coded_ac_scale_factor[i] = s->version < 2 ? vp31_ac_scale_factor[i] : vp4_ac_scale_factor[i]; s 2403 libavcodec/vp3.c s->base_matrix[0][i] = s->version < 2 ? vp31_intra_y_dequant[i] : vp4_generic_dequant[i]; s 2404 libavcodec/vp3.c s->base_matrix[1][i] = s->version < 2 ? vp31_intra_c_dequant[i] : vp4_generic_dequant[i]; s 2405 libavcodec/vp3.c s->base_matrix[2][i] = s->version < 2 ? vp31_inter_dequant[i] : vp4_generic_dequant[i]; s 2406 libavcodec/vp3.c s->filter_limit_values[i] = s->version < 2 ? vp31_filter_limit_values[i] : vp4_filter_limit_values[i]; s 2411 libavcodec/vp3.c s->qr_count[inter][plane] = 1; s 2412 libavcodec/vp3.c s->qr_size[inter][plane][0] = 63; s 2413 libavcodec/vp3.c s->qr_base[inter][plane][0] = s 2414 libavcodec/vp3.c s->qr_base[inter][plane][1] = 2 * inter + (!!plane) * !inter; s 2419 libavcodec/vp3.c if (s->version < 2) { s 2422 libavcodec/vp3.c init_vlc(&s->dc_vlc[i], 11, 32, s 2427 libavcodec/vp3.c init_vlc(&s->ac_vlc_1[i], 11, 32, s 2432 libavcodec/vp3.c init_vlc(&s->ac_vlc_2[i], 11, 32, s 2437 libavcodec/vp3.c init_vlc(&s->ac_vlc_3[i], 11, 32, s 2442 libavcodec/vp3.c init_vlc(&s->ac_vlc_4[i], 11, 32, s 2450 libavcodec/vp3.c init_vlc(&s->dc_vlc[i], 11, 32, s 2455 libavcodec/vp3.c init_vlc(&s->ac_vlc_1[i], 11, 32, s 2460 libavcodec/vp3.c init_vlc(&s->ac_vlc_2[i], 11, 32, s 2465 libavcodec/vp3.c init_vlc(&s->ac_vlc_3[i], 11, 32, s 2470 libavcodec/vp3.c init_vlc(&s->ac_vlc_4[i], 11, 32, s 2479 libavcodec/vp3.c if (init_vlc(&s->dc_vlc[i], 11, 32, s 2480 libavcodec/vp3.c &s->huffman_table[i][0][1], 8, 4, s 2481 libavcodec/vp3.c &s->huffman_table[i][0][0], 8, 4, 0) < 0) s 2485 libavcodec/vp3.c if (init_vlc(&s->ac_vlc_1[i], 11, 32, s 2486 libavcodec/vp3.c &s->huffman_table[i + 16][0][1], 8, 4, s 2487 libavcodec/vp3.c &s->huffman_table[i + 16][0][0], 8, 4, 0) < 0) s 2491 libavcodec/vp3.c if (init_vlc(&s->ac_vlc_2[i], 11, 32, s 2492 libavcodec/vp3.c &s->huffman_table[i + 16 * 2][0][1], 8, 4, s 2493 libavcodec/vp3.c &s->huffman_table[i + 16 * 2][0][0], 8, 4, 0) < 0) s 2497 libavcodec/vp3.c if (init_vlc(&s->ac_vlc_3[i], 11, 32, s 2498 libavcodec/vp3.c &s->huffman_table[i + 16 * 3][0][1], 8, 4, s 2499 libavcodec/vp3.c &s->huffman_table[i + 16 * 3][0][0], 8, 4, 0) < 0) s 2503 libavcodec/vp3.c if (init_vlc(&s->ac_vlc_4[i], 11, 32, s 2504 libavcodec/vp3.c &s->huffman_table[i + 16 * 4][0][1], 8, 4, s 2505 libavcodec/vp3.c &s->huffman_table[i + 16 * 4][0][0], 8, 4, 0) < 0) s 2510 libavcodec/vp3.c init_vlc(&s->superblock_run_length_vlc, 6, 34, s 2514 libavcodec/vp3.c init_vlc(&s->fragment_run_length_vlc, 5, 30, s 2518 libavcodec/vp3.c init_vlc(&s->mode_code_vlc, 3, 8, s 2522 libavcodec/vp3.c init_vlc(&s->motion_vector_vlc, 6, 63, s 2529 libavcodec/vp3.c init_vlc(&s->vp4_mv_vlc[j][i], 6, 63, s 2535 libavcodec/vp3.c init_vlc(&s->block_pattern_vlc[i], 3, 14, s 2550 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 2554 libavcodec/vp3.c ff_thread_release_buffer(avctx, &s->last_frame); s 2555 libavcodec/vp3.c ret = ff_thread_ref_frame(&s->last_frame, &s->current_frame); s 2559 libavcodec/vp3.c if (s->keyframe) { s 2560 libavcodec/vp3.c ff_thread_release_buffer(avctx, &s->golden_frame); s 2561 libavcodec/vp3.c ret = ff_thread_ref_frame(&s->golden_frame, &s->current_frame); s 2565 libavcodec/vp3.c ff_thread_release_buffer(avctx, &s->current_frame); s 2570 libavcodec/vp3.c static int ref_frame(Vp3DecodeContext *s, ThreadFrame *dst, ThreadFrame *src) s 2572 libavcodec/vp3.c ff_thread_release_buffer(s->avctx, dst); s 2590 libavcodec/vp3.c Vp3DecodeContext *s = dst->priv_data, *s1 = src->priv_data; s 2594 libavcodec/vp3.c s->width != s1->width || s->height != s1->height) { s 2595 libavcodec/vp3.c if (s != s1) s 2596 libavcodec/vp3.c ref_frames(s, s1); s 2600 libavcodec/vp3.c if (s != s1) { s 2602 libavcodec/vp3.c if ((err = ref_frames(s, s1)) < 0) s 2605 libavcodec/vp3.c s->keyframe = s1->keyframe; s 2609 libavcodec/vp3.c if (s->qps[i] != s1->qps[1]) { s 2611 libavcodec/vp3.c memcpy(&s->qmat[i], &s1->qmat[i], sizeof(s->qmat[i])); s 2615 libavcodec/vp3.c if (s->qps[0] != s1->qps[0]) s 2616 libavcodec/vp3.c memcpy(&s->bounding_values_array, &s1->bounding_values_array, s 2617 libavcodec/vp3.c sizeof(s->bounding_values_array)); s 2620 libavcodec/vp3.c memcpy(s->qps, s1->qps, sizeof(s->qps)); s 2621 libavcodec/vp3.c memcpy(s->last_qps, s1->last_qps, sizeof(s->last_qps)); s 2622 libavcodec/vp3.c s->nqps = s1->nqps; s 2637 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 2645 libavcodec/vp3.c if (s->theora && get_bits1(&gb)) { s 2649 libavcodec/vp3.c if (s->avctx->active_thread_type&FF_THREAD_FRAME) { s 2682 libavcodec/vp3.c s->keyframe = !get_bits1(&gb); s 2683 libavcodec/vp3.c if (!s->all_fragments) { s 2687 libavcodec/vp3.c if (!s->theora) s 2690 libavcodec/vp3.c s->last_qps[i] = s->qps[i]; s 2692 libavcodec/vp3.c s->nqps = 0; s 2694 libavcodec/vp3.c s->qps[s->nqps++] = get_bits(&gb, 6); s 2695 libavcodec/vp3.c } while (s->theora >= 0x030200 && s->nqps < 3 && get_bits1(&gb)); s 2696 libavcodec/vp3.c for (i = s->nqps; i < 3; i++) s 2697 libavcodec/vp3.c s->qps[i] = -1; s 2699 libavcodec/vp3.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 2700 libavcodec/vp3.c av_log(s->avctx, AV_LOG_INFO, " VP3 %sframe #%d: Q index = %d\n", s 2701 libavcodec/vp3.c s->keyframe ? "key" : "", avctx->frame_number + 1, s->qps[0]); s 2703 libavcodec/vp3.c s->skip_loop_filter = !s->filter_limit_values[s->qps[0]] || s 2704 libavcodec/vp3.c avctx->skip_loop_filter >= (s->keyframe ? AVDISCARD_ALL s 2707 libavcodec/vp3.c if (s->qps[0] != s->last_qps[0]) s 2708 libavcodec/vp3.c init_loop_filter(s); s 2710 libavcodec/vp3.c for (i = 0; i < s->nqps; i++) s 2713 libavcodec/vp3.c if (s->qps[i] != s->last_qps[i] || s->qps[0] != s->last_qps[0]) s 2714 libavcodec/vp3.c init_dequantizer(s, i); s 2716 libavcodec/vp3.c if (avctx->skip_frame >= AVDISCARD_NONKEY && !s->keyframe) s 2719 libavcodec/vp3.c s->current_frame.f->pict_type = s->keyframe ? AV_PICTURE_TYPE_I s 2721 libavcodec/vp3.c s->current_frame.f->key_frame = s->keyframe; s 2722 libavcodec/vp3.c if ((ret = ff_thread_get_buffer(avctx, &s->current_frame, AV_GET_BUFFER_FLAG_REF)) < 0) s 2725 libavcodec/vp3.c if (!s->edge_emu_buffer) s 2726 libavcodec/vp3.c s->edge_emu_buffer = av_malloc(9 * FFABS(s->current_frame.f->linesize[0])); s 2728 libavcodec/vp3.c if (s->keyframe) { s 2729 libavcodec/vp3.c if (!s->theora) { s 2732 libavcodec/vp3.c if (s->version) { s 2733 libavcodec/vp3.c s->version = get_bits(&gb, 5); s 2735 libavcodec/vp3.c av_log(s->avctx, AV_LOG_DEBUG, s 2736 libavcodec/vp3.c "VP version: %d\n", s->version); s 2739 libavcodec/vp3.c if (s->version || s->theora) { s 2741 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, s 2746 libavcodec/vp3.c if (s->version >= 2) { s 2752 libavcodec/vp3.c if (mb_height != s->macroblock_height || s 2753 libavcodec/vp3.c mb_width != s->macroblock_width) s 2754 libavcodec/vp3.c avpriv_request_sample(s->avctx, "macroblock dimension mismatch"); s 2761 libavcodec/vp3.c avpriv_request_sample(s->avctx, "unexpected macroblock dimension multipler/divider"); s 2764 libavcodec/vp3.c avpriv_request_sample(s->avctx, "unknown bits"); s 2769 libavcodec/vp3.c if (!s->golden_frame.f->data[0]) { s 2770 libavcodec/vp3.c av_log(s->avctx, AV_LOG_WARNING, s 2773 libavcodec/vp3.c s->golden_frame.f->pict_type = AV_PICTURE_TYPE_I; s 2774 libavcodec/vp3.c if ((ret = ff_thread_get_buffer(avctx, &s->golden_frame, s 2777 libavcodec/vp3.c ff_thread_release_buffer(avctx, &s->last_frame); s 2778 libavcodec/vp3.c if ((ret = ff_thread_ref_frame(&s->last_frame, s 2779 libavcodec/vp3.c &s->golden_frame)) < 0) s 2781 libavcodec/vp3.c ff_thread_report_progress(&s->last_frame, INT_MAX, 0); s 2785 libavcodec/vp3.c memset(s->all_fragments, 0, s->fragment_count * sizeof(Vp3Fragment)); s 2788 libavcodec/vp3.c if (s->version < 2) { s 2789 libavcodec/vp3.c if ((ret = unpack_superblocks(s, &gb)) < 0) { s 2790 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "error in unpack_superblocks\n"); s 2795 libavcodec/vp3.c if ((ret = vp4_unpack_macroblocks(s, &gb)) < 0) { s 2796 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "error in vp4_unpack_macroblocks\n"); s 2801 libavcodec/vp3.c if ((ret = unpack_modes(s, &gb)) < 0) { s 2802 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "error in unpack_modes\n"); s 2805 libavcodec/vp3.c if (ret = unpack_vectors(s, &gb)) { s 2806 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "error in unpack_vectors\n"); s 2809 libavcodec/vp3.c if ((ret = unpack_block_qpis(s, &gb)) < 0) { s 2810 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "error in unpack_block_qpis\n"); s 2814 libavcodec/vp3.c if (s->version < 2) { s 2815 libavcodec/vp3.c if ((ret = unpack_dct_coeffs(s, &gb)) < 0) { s 2816 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "error in unpack_dct_coeffs\n"); s 2821 libavcodec/vp3.c if ((ret = vp4_unpack_dct_coeffs(s, &gb)) < 0) { s 2822 libavcodec/vp3.c av_log(s->avctx, AV_LOG_ERROR, "error in vp4_unpack_dct_coeffs\n"); s 2829 libavcodec/vp3.c int height = s->height >> (i && s->chroma_y_shift); s 2830 libavcodec/vp3.c if (s->flipped_image) s 2831 libavcodec/vp3.c s->data_offset[i] = 0; s 2833 libavcodec/vp3.c s->data_offset[i] = (height - 1) * s->current_frame.f->linesize[i]; s 2836 libavcodec/vp3.c s->last_slice_end = 0; s 2837 libavcodec/vp3.c for (i = 0; i < s->c_superblock_height; i++) s 2838 libavcodec/vp3.c render_slice(s, i); s 2841 libavcodec/vp3.c if (s->version < 2) s 2843 libavcodec/vp3.c int row = (s->height >> (3 + (i && s->chroma_y_shift))) - 1; s 2844 libavcodec/vp3.c apply_loop_filter(s, i, row, row + 1); s 2846 libavcodec/vp3.c vp3_draw_horiz_band(s, s->height); s 2849 libavcodec/vp3.c if ((ret = av_frame_ref(data, s->current_frame.f)) < 0) s 2852 libavcodec/vp3.c frame->crop_left = s->offset_x; s 2853 libavcodec/vp3.c frame->crop_right = avctx->coded_width - avctx->width - s->offset_x; s 2854 libavcodec/vp3.c frame->crop_top = s->offset_y; s 2855 libavcodec/vp3.c frame->crop_bottom = avctx->coded_height - avctx->height - s->offset_y; s 2859 libavcodec/vp3.c if (!HAVE_THREADS || !(s->avctx->active_thread_type & FF_THREAD_FRAME)) { s 2868 libavcodec/vp3.c ff_thread_report_progress(&s->current_frame, INT_MAX, 0); s 2870 libavcodec/vp3.c if (!HAVE_THREADS || !(s->avctx->active_thread_type & FF_THREAD_FRAME)) s 2871 libavcodec/vp3.c av_frame_unref(s->current_frame.f); s 2878 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 2882 libavcodec/vp3.c if (s->entries >= 32) { /* overflow */ s 2888 libavcodec/vp3.c s->hti, s->hbits, token, s->entries, s->huff_code_size); s 2889 libavcodec/vp3.c s->huffman_table[s->hti][token][0] = s->hbits; s 2890 libavcodec/vp3.c s->huffman_table[s->hti][token][1] = s->huff_code_size; s 2891 libavcodec/vp3.c s->entries++; s 2893 libavcodec/vp3.c if (s->huff_code_size >= 32) { /* overflow */ s 2897 libavcodec/vp3.c s->huff_code_size++; s 2898 libavcodec/vp3.c s->hbits <<= 1; s 2901 libavcodec/vp3.c s->hbits |= 1; s 2904 libavcodec/vp3.c s->hbits >>= 1; s 2905 libavcodec/vp3.c s->huff_code_size--; s 2917 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 2923 libavcodec/vp3.c s->theora_header = 0; s 2924 libavcodec/vp3.c s->theora = get_bits(gb, 24); s 2925 libavcodec/vp3.c av_log(avctx, AV_LOG_DEBUG, "Theora bitstream version %X\n", s->theora); s 2926 libavcodec/vp3.c if (!s->theora) { s 2927 libavcodec/vp3.c s->theora = 1; s 2928 libavcodec/vp3.c avpriv_request_sample(s->avctx, "theora 0"); s 2933 libavcodec/vp3.c if (s->theora < 0x030200) { s 2934 libavcodec/vp3.c s->flipped_image = 1; s 2940 libavcodec/vp3.c s->width = get_bits(gb, 16) << 4; s 2942 libavcodec/vp3.c s->height = get_bits(gb, 16) << 4; s 2944 libavcodec/vp3.c if (s->theora >= 0x030200) { s 2954 libavcodec/vp3.c visible_width + offset_x > s->width || s 2955 libavcodec/vp3.c visible_height + offset_y > s->height) { s 2959 libavcodec/vp3.c s->width, s->height); s 2983 libavcodec/vp3.c if (s->theora < 0x030200) s 2990 libavcodec/vp3.c if (s->theora >= 0x030200) { s 3001 libavcodec/vp3.c ret = ff_set_dimensions(avctx, s->width, s->height); s 3009 libavcodec/vp3.c s->offset_x = offset_x; s 3010 libavcodec/vp3.c s->offset_y = s->height - visible_height - offset_y; s 3023 libavcodec/vp3.c s->theora_header = 1; s 3029 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 3032 libavcodec/vp3.c if (!s->theora_header) s 3035 libavcodec/vp3.c if (s->theora >= 0x030200) { s 3040 libavcodec/vp3.c s->filter_limit_values[i] = get_bits(gb, n); s 3043 libavcodec/vp3.c if (s->theora >= 0x030200) s 3049 libavcodec/vp3.c s->coded_ac_scale_factor[i] = get_bits(gb, n); s 3051 libavcodec/vp3.c if (s->theora >= 0x030200) s 3057 libavcodec/vp3.c s->coded_dc_scale_factor[0][i] = s 3058 libavcodec/vp3.c s->coded_dc_scale_factor[1][i] = get_bits(gb, n); s 3060 libavcodec/vp3.c if (s->theora >= 0x030200) s 3072 libavcodec/vp3.c s->base_matrix[n][i] = get_bits(gb, 8); s 3088 libavcodec/vp3.c s->qr_count[inter][plane] = s->qr_count[qtj][plj]; s 3089 libavcodec/vp3.c memcpy(s->qr_size[inter][plane], s->qr_size[qtj][plj], s 3090 libavcodec/vp3.c sizeof(s->qr_size[0][0])); s 3091 libavcodec/vp3.c memcpy(s->qr_base[inter][plane], s->qr_base[qtj][plj], s 3092 libavcodec/vp3.c sizeof(s->qr_base[0][0])); s 3104 libavcodec/vp3.c s->qr_base[inter][plane][qri] = i; s 3108 libavcodec/vp3.c s->qr_size[inter][plane][qri++] = i; s 3116 libavcodec/vp3.c s->qr_count[inter][plane] = qri; s 3122 libavcodec/vp3.c for (s->hti = 0; s->hti < 80; s->hti++) { s 3123 libavcodec/vp3.c s->entries = 0; s 3124 libavcodec/vp3.c s->huff_code_size = 1; s 3126 libavcodec/vp3.c s->hbits = 0; s 3129 libavcodec/vp3.c s->hbits = 1; s 3135 libavcodec/vp3.c s->theora_tables = 1; s 3142 libavcodec/vp3.c Vp3DecodeContext *s = avctx->priv_data; s 3152 libavcodec/vp3.c s->theora = 1; s 3204 libavcodec/vp3.c if (s->theora < 0x030200) s 23 libavcodec/vp3_parser.c static int parse(AVCodecParserContext *s, s 29 libavcodec/vp3_parser.c s->pict_type = (buf[0] & 0x40) ? AV_PICTURE_TYPE_P : AV_PICTURE_TYPE_I; s 31 libavcodec/vp3_parser.c s->pict_type = (buf[0] & 0x80) ? AV_PICTURE_TYPE_P : AV_PICTURE_TYPE_I; s 37 libavcodec/vp5.c static int vp5_parse_header(VP56Context *s, const uint8_t *buf, int buf_size) s 39 libavcodec/vp5.c VP56RangeCoder *c = &s->c; s 43 libavcodec/vp5.c ret = ff_vp56_init_range_decoder(&s->c, buf, buf_size); s 46 libavcodec/vp5.c s->frames[VP56_FRAME_CURRENT]->key_frame = !vp56_rac_get(c); s 48 libavcodec/vp5.c ff_vp56_init_dequant(s, vp56_rac_gets(c, 6)); s 49 libavcodec/vp5.c if (s->frames[VP56_FRAME_CURRENT]->key_frame) s 58 libavcodec/vp5.c avpriv_report_missing_feature(s->avctx, "Interlacing"); s 64 libavcodec/vp5.c av_log(s->avctx, AV_LOG_ERROR, "Invalid size %dx%d\n", s 74 libavcodec/vp5.c if (!s->macroblocks || /* first frame */ s 75 libavcodec/vp5.c 16*cols != s->avctx->coded_width || s 76 libavcodec/vp5.c 16*rows != s->avctx->coded_height) { s 77 libavcodec/vp5.c int ret = ff_set_dimensions(s->avctx, 16 * cols, 16 * rows); s 82 libavcodec/vp5.c } else if (!s->macroblocks) s 87 libavcodec/vp5.c static void vp5_parse_vector_adjustment(VP56Context *s, VP56mv *vect) s 89 libavcodec/vp5.c VP56RangeCoder *c = &s->c; s 90 libavcodec/vp5.c VP56Model *model = s->modelp; s 111 libavcodec/vp5.c static void vp5_parse_vector_models(VP56Context *s) s 113 libavcodec/vp5.c VP56RangeCoder *c = &s->c; s 114 libavcodec/vp5.c VP56Model *model = s->modelp; s 134 libavcodec/vp5.c static int vp5_parse_coeff_models(VP56Context *s) s 136 libavcodec/vp5.c VP56RangeCoder *c = &s->c; s 137 libavcodec/vp5.c VP56Model *model = s->modelp; s 150 libavcodec/vp5.c } else if (s->frames[VP56_FRAME_CURRENT]->key_frame) { s 161 libavcodec/vp5.c } else if (s->frames[VP56_FRAME_CURRENT]->key_frame) { s 181 libavcodec/vp5.c static int vp5_parse_coeff(VP56Context *s) s 183 libavcodec/vp5.c VP56RangeCoder *c = &s->c; s 184 libavcodec/vp5.c VP56Model *model = s->modelp; s 185 libavcodec/vp5.c uint8_t *permute = s->idct_scantable; s 192 libavcodec/vp5.c av_log(s->avctx, AV_LOG_ERROR, "End of AC stream reached in vp5_parse_coeff\n"); s 201 libavcodec/vp5.c ctx = 6*s->coeff_ctx[ff_vp56_b6to4[b]][0] s 202 libavcodec/vp5.c + s->above_blocks[s->above_block_idx[b]].not_null_dc; s 211 libavcodec/vp5.c s->coeff_ctx[ff_vp56_b6to4[b]][coeff_idx] = 4; s 220 libavcodec/vp5.c s->coeff_ctx[ff_vp56_b6to4[b]][coeff_idx] = 3; s 223 libavcodec/vp5.c s->coeff_ctx[ff_vp56_b6to4[b]][coeff_idx] = 2; s 230 libavcodec/vp5.c s->coeff_ctx[ff_vp56_b6to4[b]][coeff_idx] = 1; s 236 libavcodec/vp5.c coeff *= s->dequant_ac; s 237 libavcodec/vp5.c s->block_coeff[b][permute[coeff_idx]] = coeff; s 242 libavcodec/vp5.c s->coeff_ctx[ff_vp56_b6to4[b]][coeff_idx] = 0; s 249 libavcodec/vp5.c ctx = s->coeff_ctx[ff_vp56_b6to4[b]][coeff_idx]; s 254 libavcodec/vp5.c ctx_last = FFMIN(s->coeff_ctx_last[ff_vp56_b6to4[b]], 24); s 255 libavcodec/vp5.c s->coeff_ctx_last[ff_vp56_b6to4[b]] = coeff_idx; s 258 libavcodec/vp5.c s->coeff_ctx[ff_vp56_b6to4[b]][i] = 5; s 259 libavcodec/vp5.c s->above_blocks[s->above_block_idx[b]].not_null_dc = s->coeff_ctx[ff_vp56_b6to4[b]][0]; s 260 libavcodec/vp5.c s->idct_selector[b] = 63; s 265 libavcodec/vp5.c static void vp5_default_models_init(VP56Context *s) s 267 libavcodec/vp5.c VP56Model *model = s->modelp; s 282 libavcodec/vp5.c VP56Context *s = avctx->priv_data; s 287 libavcodec/vp5.c ff_vp5dsp_init(&s->vp56dsp); s 288 libavcodec/vp5.c s->vp56_coord_div = vp5_coord_div; s 289 libavcodec/vp5.c s->parse_vector_adjustment = vp5_parse_vector_adjustment; s 290 libavcodec/vp5.c s->parse_coeff = vp5_parse_coeff; s 291 libavcodec/vp5.c s->default_models_init = vp5_default_models_init; s 292 libavcodec/vp5.c s->parse_vector_models = vp5_parse_vector_models; s 293 libavcodec/vp5.c s->parse_coeff_models = vp5_parse_coeff_models; s 294 libavcodec/vp5.c s->parse_header = vp5_parse_header; s 34 libavcodec/vp56.c void ff_vp56_init_dequant(VP56Context *s, int quantizer) s 36 libavcodec/vp56.c if (s->quantizer != quantizer) s 37 libavcodec/vp56.c ff_vp3dsp_set_bounding_values(s->bounding_values_array, ff_vp56_filter_threshold[quantizer]); s 38 libavcodec/vp56.c s->quantizer = quantizer; s 39 libavcodec/vp56.c s->dequant_dc = ff_vp56_dc_dequant[quantizer] << 2; s 40 libavcodec/vp56.c s->dequant_ac = ff_vp56_ac_dequant[quantizer] << 2; s 43 libavcodec/vp56.c static int vp56_get_vectors_predictors(VP56Context *s, int row, int col, s 54 libavcodec/vp56.c if (mvp.x < 0 || mvp.x >= s->mb_width || s 55 libavcodec/vp56.c mvp.y < 0 || mvp.y >= s->mb_height) s 57 libavcodec/vp56.c offset = mvp.x + s->mb_width*mvp.y; s 59 libavcodec/vp56.c if (ff_vp56_reference_frame[s->macroblocks[offset].type] != ref_frame) s 61 libavcodec/vp56.c if ((s->macroblocks[offset].mv.x == vect[0].x && s 62 libavcodec/vp56.c s->macroblocks[offset].mv.y == vect[0].y) || s 63 libavcodec/vp56.c (s->macroblocks[offset].mv.x == 0 && s 64 libavcodec/vp56.c s->macroblocks[offset].mv.y == 0)) s 67 libavcodec/vp56.c vect[nb_pred++] = s->macroblocks[offset].mv; s 72 libavcodec/vp56.c s->vector_candidate_pos = pos; s 75 libavcodec/vp56.c s->vector_candidate[0] = vect[0]; s 76 libavcodec/vp56.c s->vector_candidate[1] = vect[1]; s 81 libavcodec/vp56.c static void vp56_parse_mb_type_models(VP56Context *s) s 83 libavcodec/vp56.c VP56RangeCoder *c = &s->c; s 84 libavcodec/vp56.c VP56Model *model = s->modelp; s 152 libavcodec/vp56.c static VP56mb vp56_parse_mb_type(VP56Context *s, s 155 libavcodec/vp56.c uint8_t *mb_type_model = s->modelp->mb_type[ctx][prev_type]; s 156 libavcodec/vp56.c VP56RangeCoder *c = &s->c; s 164 libavcodec/vp56.c static void vp56_decode_4mv(VP56Context *s, int row, int col) s 172 libavcodec/vp56.c type[b] = vp56_rac_gets(&s->c, 2); s 181 libavcodec/vp56.c s->mv[b] = (VP56mv) {0,0}; s 184 libavcodec/vp56.c s->parse_vector_adjustment(s, &s->mv[b]); s 187 libavcodec/vp56.c s->mv[b] = s->vector_candidate[0]; s 190 libavcodec/vp56.c s->mv[b] = s->vector_candidate[1]; s 193 libavcodec/vp56.c mv.x += s->mv[b].x; s 194 libavcodec/vp56.c mv.y += s->mv[b].y; s 198 libavcodec/vp56.c s->macroblocks[row * s->mb_width + col].mv = s->mv[3]; s 201 libavcodec/vp56.c s->mv[4].x = s->mv[5].x = RSHIFT(mv.x,2); s 202 libavcodec/vp56.c s->mv[4].y = s->mv[5].y = RSHIFT(mv.y,2); s 205 libavcodec/vp56.c static VP56mb vp56_decode_mv(VP56Context *s, int row, int col) s 210 libavcodec/vp56.c ctx = vp56_get_vectors_predictors(s, row, col, VP56_FRAME_PREVIOUS); s 211 libavcodec/vp56.c s->mb_type = vp56_parse_mb_type(s, s->mb_type, ctx); s 212 libavcodec/vp56.c s->macroblocks[row * s->mb_width + col].type = s->mb_type; s 214 libavcodec/vp56.c switch (s->mb_type) { s 216 libavcodec/vp56.c mv = &s->vector_candidate[0]; s 220 libavcodec/vp56.c mv = &s->vector_candidate[1]; s 224 libavcodec/vp56.c vp56_get_vectors_predictors(s, row, col, VP56_FRAME_GOLDEN); s 225 libavcodec/vp56.c mv = &s->vector_candidate[0]; s 229 libavcodec/vp56.c vp56_get_vectors_predictors(s, row, col, VP56_FRAME_GOLDEN); s 230 libavcodec/vp56.c mv = &s->vector_candidate[1]; s 234 libavcodec/vp56.c s->parse_vector_adjustment(s, &vect); s 239 libavcodec/vp56.c vp56_get_vectors_predictors(s, row, col, VP56_FRAME_GOLDEN); s 240 libavcodec/vp56.c s->parse_vector_adjustment(s, &vect); s 245 libavcodec/vp56.c vp56_decode_4mv(s, row, col); s 246 libavcodec/vp56.c return s->mb_type; s 253 libavcodec/vp56.c s->macroblocks[row*s->mb_width + col].mv = *mv; s 257 libavcodec/vp56.c s->mv[b] = *mv; s 259 libavcodec/vp56.c return s->mb_type; s 262 libavcodec/vp56.c static VP56mb vp56_conceal_mv(VP56Context *s, int row, int col) s 267 libavcodec/vp56.c s->mb_type = VP56_MB_INTER_NOVEC_PF; s 268 libavcodec/vp56.c s->macroblocks[row * s->mb_width + col].type = s->mb_type; s 272 libavcodec/vp56.c s->macroblocks[row*s->mb_width + col].mv = *mv; s 276 libavcodec/vp56.c s->mv[b] = *mv; s 278 libavcodec/vp56.c return s->mb_type; s 281 libavcodec/vp56.c static void vp56_add_predictors_dc(VP56Context *s, VP56Frame ref_frame) s 283 libavcodec/vp56.c int idx = s->idct_scantable[0]; s 287 libavcodec/vp56.c VP56RefDc *ab = &s->above_blocks[s->above_block_idx[b]]; s 288 libavcodec/vp56.c VP56RefDc *lb = &s->left_block[ff_vp56_b6to4[b]]; s 301 libavcodec/vp56.c if (s->avctx->codec->id == AV_CODEC_ID_VP5) s 308 libavcodec/vp56.c dc = s->prev_dc[ff_vp56_b2p[b]][ref_frame]; s 312 libavcodec/vp56.c s->block_coeff[b][idx] += dc; s 313 libavcodec/vp56.c s->prev_dc[ff_vp56_b2p[b]][ref_frame] = s->block_coeff[b][idx]; s 314 libavcodec/vp56.c ab->dc_coeff = s->block_coeff[b][idx]; s 316 libavcodec/vp56.c lb->dc_coeff = s->block_coeff[b][idx]; s 318 libavcodec/vp56.c s->block_coeff[b][idx] *= s->dequant_dc; s 322 libavcodec/vp56.c static void vp56_deblock_filter(VP56Context *s, uint8_t *yuv, s 325 libavcodec/vp56.c if (s->avctx->codec->id == AV_CODEC_ID_VP5) { s 326 libavcodec/vp56.c int t = ff_vp56_filter_threshold[s->quantizer]; s 327 libavcodec/vp56.c if (dx) s->vp56dsp.edge_filter_hor(yuv + 10-dx , stride, t); s 328 libavcodec/vp56.c if (dy) s->vp56dsp.edge_filter_ver(yuv + stride*(10-dy), stride, t); s 330 libavcodec/vp56.c int * bounding_values = s->bounding_values_array + 127; s 338 libavcodec/vp56.c static void vp56_mc(VP56Context *s, int b, int plane, uint8_t *src, s 341 libavcodec/vp56.c uint8_t *dst = s->frames[VP56_FRAME_CURRENT]->data[plane] + s->block_offset[b]; s 345 libavcodec/vp56.c int mask = s->vp56_coord_div[b] - 1; s 346 libavcodec/vp56.c int deblock_filtering = s->deblock_filtering; s 350 libavcodec/vp56.c if (s->avctx->skip_loop_filter >= AVDISCARD_ALL || s 351 libavcodec/vp56.c (s->avctx->skip_loop_filter >= AVDISCARD_NONKEY s 352 libavcodec/vp56.c && !s->frames[VP56_FRAME_CURRENT]->key_frame)) s 355 libavcodec/vp56.c dx = s->mv[b].x / s->vp56_coord_div[b]; s 356 libavcodec/vp56.c dy = s->mv[b].y / s->vp56_coord_div[b]; s 365 libavcodec/vp56.c if (x<0 || x+12>=s->plane_width[plane] || s 366 libavcodec/vp56.c y<0 || y+12>=s->plane_height[plane]) { s 367 libavcodec/vp56.c s->vdsp.emulated_edge_mc(s->edge_emu_buffer, s 368 libavcodec/vp56.c src + s->block_offset[b] + (dy-2)*stride + (dx-2), s 371 libavcodec/vp56.c s->plane_width[plane], s 372 libavcodec/vp56.c s->plane_height[plane]); s 373 libavcodec/vp56.c src_block = s->edge_emu_buffer; s 378 libavcodec/vp56.c s->hdsp.put_pixels_tab[0][0](s->edge_emu_buffer, s 379 libavcodec/vp56.c src + s->block_offset[b] + (dy-2)*stride + (dx-2), s 381 libavcodec/vp56.c src_block = s->edge_emu_buffer; s 385 libavcodec/vp56.c src_offset = s->block_offset[b] + dy*stride + dx; s 389 libavcodec/vp56.c vp56_deblock_filter(s, src_block, stride, dx&7, dy&7); s 391 libavcodec/vp56.c if (s->mv[b].x & mask) s 392 libavcodec/vp56.c overlap_offset += (s->mv[b].x > 0) ? 1 : -1; s 393 libavcodec/vp56.c if (s->mv[b].y & mask) s 394 libavcodec/vp56.c overlap_offset += (s->mv[b].y > 0) ? stride : -stride; s 397 libavcodec/vp56.c if (s->filter) s 398 libavcodec/vp56.c s->filter(s, dst, src_block, src_offset, src_offset+overlap_offset, s 399 libavcodec/vp56.c stride, s->mv[b], mask, s->filter_selection, b<4); s 401 libavcodec/vp56.c s->vp3dsp.put_no_rnd_pixels_l2(dst, src_block+src_offset, s 405 libavcodec/vp56.c s->hdsp.put_pixels_tab[1][0](dst, src_block+src_offset, stride, 8); s 409 libavcodec/vp56.c static void vp56_idct_put(VP56Context *s, uint8_t * dest, ptrdiff_t stride, int16_t *block, int selector) s 412 libavcodec/vp56.c s->vp3dsp.idct_put(dest, stride, block); s 417 libavcodec/vp56.c static void vp56_idct_add(VP56Context *s, uint8_t * dest, ptrdiff_t stride, int16_t *block, int selector) s 420 libavcodec/vp56.c s->vp3dsp.idct_add(dest, stride, block); s 424 libavcodec/vp56.c s->vp3dsp.idct_dc_add(dest, stride, block); s 427 libavcodec/vp56.c static av_always_inline void vp56_render_mb(VP56Context *s, int row, int col, int is_alpha, VP56mb mb_type) s 433 libavcodec/vp56.c vp56_add_predictors_dc(s, ref_frame); s 435 libavcodec/vp56.c frame_current = s->frames[VP56_FRAME_CURRENT]; s 436 libavcodec/vp56.c frame_ref = s->frames[ref_frame]; s 447 libavcodec/vp56.c vp56_idct_put(s, frame_current->data[plane] + s->block_offset[b], s 448 libavcodec/vp56.c s->stride[plane], s->block_coeff[b], s->idct_selector[b]); s 456 libavcodec/vp56.c off = s->block_offset[b]; s 457 libavcodec/vp56.c s->hdsp.put_pixels_tab[1][0](frame_current->data[plane] + off, s 459 libavcodec/vp56.c s->stride[plane], 8); s 460 libavcodec/vp56.c vp56_idct_add(s, frame_current->data[plane] + off, s 461 libavcodec/vp56.c s->stride[plane], s->block_coeff[b], s->idct_selector[b]); s 476 libavcodec/vp56.c vp56_mc(s, b, plane, frame_ref->data[plane], s->stride[plane], s 478 libavcodec/vp56.c vp56_idct_add(s, frame_current->data[plane] + s->block_offset[b], s 479 libavcodec/vp56.c s->stride[plane], s->block_coeff[b], s->idct_selector[b]); s 485 libavcodec/vp56.c s->block_coeff[4][0] = 0; s 486 libavcodec/vp56.c s->block_coeff[5][0] = 0; s 490 libavcodec/vp56.c static int vp56_decode_mb(VP56Context *s, int row, int col, int is_alpha) s 495 libavcodec/vp56.c if (s->frames[VP56_FRAME_CURRENT]->key_frame) s 498 libavcodec/vp56.c mb_type = vp56_decode_mv(s, row, col); s 500 libavcodec/vp56.c ret = s->parse_coeff(s); s 504 libavcodec/vp56.c vp56_render_mb(s, row, col, is_alpha, mb_type); s 509 libavcodec/vp56.c static int vp56_conceal_mb(VP56Context *s, int row, int col, int is_alpha) s 513 libavcodec/vp56.c if (s->frames[VP56_FRAME_CURRENT]->key_frame) s 516 libavcodec/vp56.c mb_type = vp56_conceal_mv(s, row, col); s 518 libavcodec/vp56.c vp56_render_mb(s, row, col, is_alpha, mb_type); s 523 libavcodec/vp56.c static int vp56_size_changed(VP56Context *s) s 525 libavcodec/vp56.c AVCodecContext *avctx = s->avctx; s 526 libavcodec/vp56.c int stride = s->frames[VP56_FRAME_CURRENT]->linesize[0]; s 529 libavcodec/vp56.c s->plane_width[0] = s->plane_width[3] = avctx->coded_width; s 530 libavcodec/vp56.c s->plane_width[1] = s->plane_width[2] = avctx->coded_width/2; s 531 libavcodec/vp56.c s->plane_height[0] = s->plane_height[3] = avctx->coded_height; s 532 libavcodec/vp56.c s->plane_height[1] = s->plane_height[2] = avctx->coded_height/2; s 534 libavcodec/vp56.c s->have_undamaged_frame = 0; s 537 libavcodec/vp56.c s->stride[i] = s->flip * s->frames[VP56_FRAME_CURRENT]->linesize[i]; s 539 libavcodec/vp56.c s->mb_width = (avctx->coded_width +15) / 16; s 540 libavcodec/vp56.c s->mb_height = (avctx->coded_height+15) / 16; s 542 libavcodec/vp56.c if (s->mb_width > 1000 || s->mb_height > 1000) { s 548 libavcodec/vp56.c av_reallocp_array(&s->above_blocks, 4*s->mb_width+6, s 549 libavcodec/vp56.c sizeof(*s->above_blocks)); s 550 libavcodec/vp56.c av_reallocp_array(&s->macroblocks, s->mb_width*s->mb_height, s 551 libavcodec/vp56.c sizeof(*s->macroblocks)); s 552 libavcodec/vp56.c av_free(s->edge_emu_buffer_alloc); s 553 libavcodec/vp56.c s->edge_emu_buffer_alloc = av_malloc(16*stride); s 554 libavcodec/vp56.c s->edge_emu_buffer = s->edge_emu_buffer_alloc; s 555 libavcodec/vp56.c if (!s->above_blocks || !s->macroblocks || !s->edge_emu_buffer_alloc) s 557 libavcodec/vp56.c if (s->flip < 0) s 558 libavcodec/vp56.c s->edge_emu_buffer += 15 * stride; s 560 libavcodec/vp56.c if (s->alpha_context) s 561 libavcodec/vp56.c return vp56_size_changed(s->alpha_context); s 572 libavcodec/vp56.c VP56Context *s = avctx->priv_data; s 573 libavcodec/vp56.c AVFrame *const p = s->frames[VP56_FRAME_CURRENT]; s 579 libavcodec/vp56.c if (s->has_alpha) { s 588 libavcodec/vp56.c res = s->parse_header(s, buf, alpha_offset); s 594 libavcodec/vp56.c av_frame_unref(s->frames[i]); s 595 libavcodec/vp56.c if (s->alpha_context) s 596 libavcodec/vp56.c av_frame_unref(s->alpha_context->frames[i]); s 608 libavcodec/vp56.c av_frame_unref(s->alpha_context->frames[VP56_FRAME_CURRENT]); s 609 libavcodec/vp56.c if ((ret = av_frame_ref(s->alpha_context->frames[VP56_FRAME_CURRENT], p)) < 0) { s 618 libavcodec/vp56.c if (vp56_size_changed(s)) { s 632 libavcodec/vp56.c res = s->alpha_context->parse_header(s->alpha_context, buf, remaining_buf_size); s 646 libavcodec/vp56.c s->discard_frame = 0; s 649 libavcodec/vp56.c if (s->discard_frame) s 664 libavcodec/vp56.c VP56Context *s = is_alpha ? s0->alpha_context : s0; s 665 libavcodec/vp56.c AVFrame *const p = s->frames[VP56_FRAME_CURRENT]; s 674 libavcodec/vp56.c s->default_models_init(s); s 675 libavcodec/vp56.c for (block=0; block<s->mb_height*s->mb_width; block++) s 676 libavcodec/vp56.c s->macroblocks[block].type = VP56_MB_INTRA; s 679 libavcodec/vp56.c vp56_parse_mb_type_models(s); s 680 libavcodec/vp56.c s->parse_vector_models(s); s 681 libavcodec/vp56.c s->mb_type = VP56_MB_INTER_NOVEC_PF; s 684 libavcodec/vp56.c if (s->parse_coeff_models(s)) s 687 libavcodec/vp56.c memset(s->prev_dc, 0, sizeof(s->prev_dc)); s 688 libavcodec/vp56.c s->prev_dc[1][VP56_FRAME_CURRENT] = 128; s 689 libavcodec/vp56.c s->prev_dc[2][VP56_FRAME_CURRENT] = 128; s 691 libavcodec/vp56.c for (block=0; block < 4*s->mb_width+6; block++) { s 692 libavcodec/vp56.c s->above_blocks[block].ref_frame = VP56_FRAME_NONE; s 693 libavcodec/vp56.c s->above_blocks[block].dc_coeff = 0; s 694 libavcodec/vp56.c s->above_blocks[block].not_null_dc = 0; s 696 libavcodec/vp56.c s->above_blocks[2*s->mb_width + 2].ref_frame = VP56_FRAME_CURRENT; s 697 libavcodec/vp56.c s->above_blocks[3*s->mb_width + 4].ref_frame = VP56_FRAME_CURRENT; s 702 libavcodec/vp56.c if (s->flip < 0) s 706 libavcodec/vp56.c for (mb_row=0; mb_row<s->mb_height; mb_row++) { s 707 libavcodec/vp56.c if (s->flip < 0) s 708 libavcodec/vp56.c mb_row_flip = s->mb_height - mb_row - 1; s 713 libavcodec/vp56.c s->left_block[block].ref_frame = VP56_FRAME_NONE; s 714 libavcodec/vp56.c s->left_block[block].dc_coeff = 0; s 715 libavcodec/vp56.c s->left_block[block].not_null_dc = 0; s 717 libavcodec/vp56.c memset(s->coeff_ctx, 0, sizeof(s->coeff_ctx)); s 718 libavcodec/vp56.c memset(s->coeff_ctx_last, 24, sizeof(s->coeff_ctx_last)); s 720 libavcodec/vp56.c s->above_block_idx[0] = 1; s 721 libavcodec/vp56.c s->above_block_idx[1] = 2; s 722 libavcodec/vp56.c s->above_block_idx[2] = 1; s 723 libavcodec/vp56.c s->above_block_idx[3] = 2; s 724 libavcodec/vp56.c s->above_block_idx[4] = 2*s->mb_width + 2 + 1; s 725 libavcodec/vp56.c s->above_block_idx[5] = 3*s->mb_width + 4 + 1; s 727 libavcodec/vp56.c s->block_offset[s->frbi] = (mb_row_flip*16 + mb_offset) * stride_y; s 728 libavcodec/vp56.c s->block_offset[s->srbi] = s->block_offset[s->frbi] + 8*stride_y; s 729 libavcodec/vp56.c s->block_offset[1] = s->block_offset[0] + 8; s 730 libavcodec/vp56.c s->block_offset[3] = s->block_offset[2] + 8; s 731 libavcodec/vp56.c s->block_offset[4] = (mb_row_flip*8 + mb_offset) * stride_uv; s 732 libavcodec/vp56.c s->block_offset[5] = s->block_offset[4]; s 734 libavcodec/vp56.c for (mb_col=0; mb_col<s->mb_width; mb_col++) { s 736 libavcodec/vp56.c int ret = vp56_decode_mb(s, mb_row, mb_col, is_alpha); s 739 libavcodec/vp56.c if (!s->have_undamaged_frame || !avctx->error_concealment) { s 740 libavcodec/vp56.c s->discard_frame = 1; s 746 libavcodec/vp56.c vp56_conceal_mb(s, mb_row, mb_col, is_alpha); s 749 libavcodec/vp56.c s->above_block_idx[y] += 2; s 750 libavcodec/vp56.c s->block_offset[y] += 16; s 754 libavcodec/vp56.c s->above_block_idx[uv] += 1; s 755 libavcodec/vp56.c s->block_offset[uv] += 8; s 761 libavcodec/vp56.c s->have_undamaged_frame = 1; s 764 libavcodec/vp56.c if (p->key_frame || s->golden_frame) { s 765 libavcodec/vp56.c av_frame_unref(s->frames[VP56_FRAME_GOLDEN]); s 766 libavcodec/vp56.c if ((res = av_frame_ref(s->frames[VP56_FRAME_GOLDEN], p)) < 0) s 770 libavcodec/vp56.c av_frame_unref(s->frames[VP56_FRAME_PREVIOUS]); s 771 libavcodec/vp56.c FFSWAP(AVFrame *, s->frames[VP56_FRAME_CURRENT], s 772 libavcodec/vp56.c s->frames[VP56_FRAME_PREVIOUS]); s 778 libavcodec/vp56.c VP56Context *s = avctx->priv_data; s 779 libavcodec/vp56.c return ff_vp56_init_context(avctx, s, flip, has_alpha); s 782 libavcodec/vp56.c av_cold int ff_vp56_init_context(AVCodecContext *avctx, VP56Context *s, s 787 libavcodec/vp56.c s->avctx = avctx; s 791 libavcodec/vp56.c ff_h264chroma_init(&s->h264chroma, 8); s 792 libavcodec/vp56.c ff_hpeldsp_init(&s->hdsp, avctx->flags); s 793 libavcodec/vp56.c ff_videodsp_init(&s->vdsp, 8); s 794 libavcodec/vp56.c ff_vp3dsp_init(&s->vp3dsp, avctx->flags); s 797 libavcodec/vp56.c s->idct_scantable[i] = TRANSPOSE(ff_zigzag_direct[i]); s 801 libavcodec/vp56.c for (i = 0; i < FF_ARRAY_ELEMS(s->frames); i++) { s 802 libavcodec/vp56.c s->frames[i] = av_frame_alloc(); s 803 libavcodec/vp56.c if (!s->frames[i]) { s 808 libavcodec/vp56.c s->edge_emu_buffer_alloc = NULL; s 810 libavcodec/vp56.c s->above_blocks = NULL; s 811 libavcodec/vp56.c s->macroblocks = NULL; s 812 libavcodec/vp56.c s->quantizer = -1; s 813 libavcodec/vp56.c s->deblock_filtering = 1; s 814 libavcodec/vp56.c s->golden_frame = 0; s 816 libavcodec/vp56.c s->filter = NULL; s 818 libavcodec/vp56.c s->has_alpha = has_alpha; s 820 libavcodec/vp56.c s->modelp = &s->model; s 823 libavcodec/vp56.c s->flip = -1; s 824 libavcodec/vp56.c s->frbi = 2; s 825 libavcodec/vp56.c s->srbi = 0; s 827 libavcodec/vp56.c s->flip = 1; s 828 libavcodec/vp56.c s->frbi = 0; s 829 libavcodec/vp56.c s->srbi = 2; s 837 libavcodec/vp56.c VP56Context *s = avctx->priv_data; s 838 libavcodec/vp56.c return ff_vp56_free_context(s); s 841 libavcodec/vp56.c av_cold int ff_vp56_free_context(VP56Context *s) s 845 libavcodec/vp56.c av_freep(&s->above_blocks); s 846 libavcodec/vp56.c av_freep(&s->macroblocks); s 847 libavcodec/vp56.c av_freep(&s->edge_emu_buffer_alloc); s 849 libavcodec/vp56.c for (i = 0; i < FF_ARRAY_ELEMS(s->frames); i++) s 850 libavcodec/vp56.c av_frame_free(&s->frames[i]); s 73 libavcodec/vp56.h typedef void (*VP56ParseVectorAdjustment)(VP56Context *s, s 75 libavcodec/vp56.h typedef void (*VP56Filter)(VP56Context *s, uint8_t *dst, uint8_t *src, s 78 libavcodec/vp56.h typedef int (*VP56ParseCoeff)(VP56Context *s); s 79 libavcodec/vp56.h typedef void (*VP56DefaultModelsInit)(VP56Context *s); s 80 libavcodec/vp56.h typedef void (*VP56ParseVectorModels)(VP56Context *s); s 81 libavcodec/vp56.h typedef int (*VP56ParseCoeffModels)(VP56Context *s); s 82 libavcodec/vp56.h typedef int (*VP56ParseHeader)(VP56Context *s, const uint8_t *buf, s 218 libavcodec/vp56.h int ff_vp56_init_context(AVCodecContext *avctx, VP56Context *s, s 221 libavcodec/vp56.h int ff_vp56_free_context(VP56Context *s); s 222 libavcodec/vp56.h void ff_vp56_init_dequant(VP56Context *s, int quantizer); s 67 libavcodec/vp56dsp.c av_cold void ff_vp5dsp_init(VP56DSPContext *s) s 69 libavcodec/vp56dsp.c s->edge_filter_hor = vp5_edge_filter_hor; s 70 libavcodec/vp56dsp.c s->edge_filter_ver = vp5_edge_filter_ver; s 75 libavcodec/vp56dsp.c av_cold void ff_vp6dsp_init(VP56DSPContext *s) s 77 libavcodec/vp56dsp.c s->vp6_filter_diag4 = ff_vp6_filter_diag4_c; s 80 libavcodec/vp56dsp.c ff_vp6dsp_init_arm(s); s 82 libavcodec/vp56dsp.c ff_vp6dsp_init_x86(s); s 38 libavcodec/vp56dsp.h void ff_vp5dsp_init(VP56DSPContext *s); s 39 libavcodec/vp56dsp.h void ff_vp6dsp_init(VP56DSPContext *s); s 41 libavcodec/vp56dsp.h void ff_vp6dsp_init_arm(VP56DSPContext *s); s 42 libavcodec/vp56dsp.h void ff_vp6dsp_init_x86(VP56DSPContext *s); s 43 libavcodec/vp6.c static int vp6_parse_coeff(VP56Context *s); s 44 libavcodec/vp6.c static int vp6_parse_coeff_huffman(VP56Context *s); s 46 libavcodec/vp6.c static int vp6_parse_header(VP56Context *s, const uint8_t *buf, int buf_size) s 48 libavcodec/vp6.c VP56RangeCoder *c = &s->c; s 58 libavcodec/vp6.c s->frames[VP56_FRAME_CURRENT]->key_frame = !(buf[0] & 0x80); s 59 libavcodec/vp6.c ff_vp56_init_dequant(s, (buf[0] >> 1) & 0x3F); s 61 libavcodec/vp6.c if (s->frames[VP56_FRAME_CURRENT]->key_frame) { s 65 libavcodec/vp6.c s->filter_header = buf[1] & 0x06; s 67 libavcodec/vp6.c avpriv_report_missing_feature(s->avctx, "Interlacing"); s 70 libavcodec/vp6.c if (separated_coeff || !s->filter_header) { s 81 libavcodec/vp6.c av_log(s->avctx, AV_LOG_ERROR, "Invalid size %dx%d\n", cols << 4, rows << 4); s 85 libavcodec/vp6.c if (!s->macroblocks || /* first frame */ s 86 libavcodec/vp6.c 16*cols != s->avctx->coded_width || s 87 libavcodec/vp6.c 16*rows != s->avctx->coded_height) { s 88 libavcodec/vp6.c if (s->avctx->extradata_size == 0 && s 89 libavcodec/vp6.c FFALIGN(s->avctx->width, 16) == 16 * cols && s 90 libavcodec/vp6.c FFALIGN(s->avctx->height, 16) == 16 * rows) { s 94 libavcodec/vp6.c s->avctx->coded_width = 16 * cols; s 95 libavcodec/vp6.c s->avctx->coded_height = 16 * rows; s 97 libavcodec/vp6.c ret = ff_set_dimensions(s->avctx, 16 * cols, 16 * rows); s 101 libavcodec/vp6.c if (s->avctx->extradata_size == 1) { s 102 libavcodec/vp6.c s->avctx->width -= s->avctx->extradata[0] >> 4; s 103 libavcodec/vp6.c s->avctx->height -= s->avctx->extradata[0] & 0x0F; s 114 libavcodec/vp6.c parse_filter_info = s->filter_header; s 117 libavcodec/vp6.c s->sub_version = sub_version; s 118 libavcodec/vp6.c s->golden_frame = 0; s 120 libavcodec/vp6.c if (!s->sub_version || !s->avctx->coded_width || !s->avctx->coded_height) s 123 libavcodec/vp6.c if (separated_coeff || !s->filter_header) { s 132 libavcodec/vp6.c s->golden_frame = vp56_rac_get(c); s 133 libavcodec/vp6.c if (s->filter_header) { s 134 libavcodec/vp6.c s->deblock_filtering = vp56_rac_get(c); s 135 libavcodec/vp6.c if (s->deblock_filtering) s 137 libavcodec/vp6.c if (s->sub_version > 7) s 144 libavcodec/vp6.c s->filter_mode = 2; s 145 libavcodec/vp6.c s->sample_variance_threshold = vp56_rac_gets(c, 5) << vrt_shift; s 146 libavcodec/vp6.c s->max_vector_length = 2 << vp56_rac_gets(c, 3); s 148 libavcodec/vp6.c s->filter_mode = 1; s 150 libavcodec/vp6.c s->filter_mode = 0; s 152 libavcodec/vp6.c if (s->sub_version > 7) s 153 libavcodec/vp6.c s->filter_selection = vp56_rac_gets(c, 4); s 155 libavcodec/vp6.c s->filter_selection = 16; s 158 libavcodec/vp6.c s->use_huffman = vp56_rac_get(c); s 160 libavcodec/vp6.c s->parse_coeff = vp6_parse_coeff; s 168 libavcodec/vp6.c if (s->use_huffman) { s 169 libavcodec/vp6.c s->parse_coeff = vp6_parse_coeff_huffman; s 170 libavcodec/vp6.c init_get_bits(&s->gb, buf, buf_size<<3); s 172 libavcodec/vp6.c ret = ff_vp56_init_range_decoder(&s->cc, buf, buf_size); s 175 libavcodec/vp6.c s->ccp = &s->cc; s 178 libavcodec/vp6.c s->ccp = &s->c; s 184 libavcodec/vp6.c ff_set_dimensions(s->avctx, 0, 0); s 188 libavcodec/vp6.c static void vp6_coeff_order_table_init(VP56Context *s) s 192 libavcodec/vp6.c s->modelp->coeff_index_to_pos[0] = 0; s 195 libavcodec/vp6.c if (s->modelp->coeff_reorder[pos] == i) s 196 libavcodec/vp6.c s->modelp->coeff_index_to_pos[idx++] = pos; s 201 libavcodec/vp6.c int v = s->modelp->coeff_index_to_pos[i]; s 205 libavcodec/vp6.c if (s->sub_version > 6) s 207 libavcodec/vp6.c s->modelp->coeff_index_to_idct_selector[idx] = max; s 211 libavcodec/vp6.c static void vp6_default_models_init(VP56Context *s) s 213 libavcodec/vp6.c VP56Model *model = s->modelp; s 226 libavcodec/vp6.c vp6_coeff_order_table_init(s); s 229 libavcodec/vp6.c static void vp6_parse_vector_models(VP56Context *s) s 231 libavcodec/vp6.c VP56RangeCoder *c = &s->c; s 232 libavcodec/vp6.c VP56Model *model = s->modelp; s 260 libavcodec/vp6.c static int vp6_build_huff_tree(VP56Context *s, uint8_t coeff_model[], s 277 libavcodec/vp6.c return ff_huff_build_tree(s->avctx, vlc, size, FF_HUFFMAN_BITS, s 282 libavcodec/vp6.c static int vp6_parse_coeff_models(VP56Context *s) s 284 libavcodec/vp6.c VP56RangeCoder *c = &s->c; s 285 libavcodec/vp6.c VP56Model *model = s->modelp; s 298 libavcodec/vp6.c } else if (s->frames[VP56_FRAME_CURRENT]->key_frame) { s 306 libavcodec/vp6.c vp6_coeff_order_table_init(s); s 321 libavcodec/vp6.c } else if (s->frames[VP56_FRAME_CURRENT]->key_frame) { s 325 libavcodec/vp6.c if (s->use_huffman) { s 327 libavcodec/vp6.c if (vp6_build_huff_tree(s, model->coeff_dccv[pt], s 328 libavcodec/vp6.c vp6_huff_coeff_map, 12, &s->dccv_vlc[pt])) s 330 libavcodec/vp6.c if (vp6_build_huff_tree(s, model->coeff_runv[pt], s 331 libavcodec/vp6.c vp6_huff_run_map, 9, &s->runv_vlc[pt])) s 335 libavcodec/vp6.c if (vp6_build_huff_tree(s, model->coeff_ract[pt][ct][cg], s 337 libavcodec/vp6.c &s->ract_vlc[pt][ct][cg])) s 340 libavcodec/vp6.c memset(s->nb_null, 0, sizeof(s->nb_null)); s 351 libavcodec/vp6.c static void vp6_parse_vector_adjustment(VP56Context *s, VP56mv *vect) s 353 libavcodec/vp6.c VP56RangeCoder *c = &s->c; s 354 libavcodec/vp6.c VP56Model *model = s->modelp; s 358 libavcodec/vp6.c if (s->vector_candidate_pos < 2) s 359 libavcodec/vp6.c *vect = s->vector_candidate[0]; s 393 libavcodec/vp6.c static unsigned vp6_get_nb_null(VP56Context *s) s 395 libavcodec/vp6.c unsigned val = get_bits(&s->gb, 2); s 397 libavcodec/vp6.c val += get_bits(&s->gb, 2); s 399 libavcodec/vp6.c val = get_bits1(&s->gb) << 2; s 400 libavcodec/vp6.c val = 6+val + get_bits(&s->gb, 2+val); s 405 libavcodec/vp6.c static int vp6_parse_coeff_huffman(VP56Context *s) s 407 libavcodec/vp6.c VP56Model *model = s->modelp; s 408 libavcodec/vp6.c uint8_t *permute = s->idct_scantable; s 417 libavcodec/vp6.c vlc_coeff = &s->dccv_vlc[pt]; s 421 libavcodec/vp6.c if (coeff_idx<2 && s->nb_null[coeff_idx][pt]) { s 422 libavcodec/vp6.c s->nb_null[coeff_idx][pt]--; s 426 libavcodec/vp6.c if (get_bits_left(&s->gb) <= 0) s 428 libavcodec/vp6.c coeff = get_vlc2(&s->gb, vlc_coeff->table, FF_HUFFMAN_BITS, 3); s 432 libavcodec/vp6.c run += get_vlc2(&s->gb, s->runv_vlc[pt].table, FF_HUFFMAN_BITS, 3); s 434 libavcodec/vp6.c run += get_bits(&s->gb, 6); s 436 libavcodec/vp6.c s->nb_null[0][pt] = vp6_get_nb_null(s); s 440 libavcodec/vp6.c s->nb_null[1][pt] = vp6_get_nb_null(s); s 445 libavcodec/vp6.c coeff2 += get_bits(&s->gb, coeff <= 9 ? coeff - 4 : 11); s 447 libavcodec/vp6.c sign = get_bits1(&s->gb); s 450 libavcodec/vp6.c coeff2 *= s->dequant_ac; s 452 libavcodec/vp6.c s->block_coeff[b][permute[idx]] = coeff2; s 459 libavcodec/vp6.c vlc_coeff = &s->ract_vlc[pt][ct][cg]; s 461 libavcodec/vp6.c s->idct_selector[b] = model->coeff_index_to_idct_selector[FFMIN(coeff_idx, 63)]; s 466 libavcodec/vp6.c static int vp6_parse_coeff(VP56Context *s) s 468 libavcodec/vp6.c VP56RangeCoder *c = s->ccp; s 469 libavcodec/vp6.c VP56Model *model = s->modelp; s 470 libavcodec/vp6.c uint8_t *permute = s->idct_scantable; s 477 libavcodec/vp6.c av_log(s->avctx, AV_LOG_ERROR, "End of AC stream reached in vp6_parse_coeff\n"); s 487 libavcodec/vp6.c ctx = s->left_block[ff_vp56_b6to4[b]].not_null_dc s 488 libavcodec/vp6.c + s->above_blocks[s->above_block_idx[b]].not_null_dc; s 516 libavcodec/vp6.c coeff *= s->dequant_ac; s 518 libavcodec/vp6.c s->block_coeff[b][permute[idx]] = coeff; s 541 libavcodec/vp6.c s->left_block[ff_vp56_b6to4[b]].not_null_dc = s 542 libavcodec/vp6.c s->above_blocks[s->above_block_idx[b]].not_null_dc = !!s->block_coeff[b][0]; s 543 libavcodec/vp6.c s->idct_selector[b] = model->coeff_index_to_idct_selector[FFMIN(coeff_idx, 63)]; s 580 libavcodec/vp6.c static void vp6_filter_diag2(VP56Context *s, uint8_t *dst, uint8_t *src, s 583 libavcodec/vp6.c uint8_t *tmp = s->edge_emu_buffer+16; s 584 libavcodec/vp6.c s->h264chroma.put_h264_chroma_pixels_tab[0](tmp, src, stride, 9, h_weight, 0); s 585 libavcodec/vp6.c s->h264chroma.put_h264_chroma_pixels_tab[0](dst, tmp, stride, 8, 0, v_weight); s 588 libavcodec/vp6.c static void vp6_filter(VP56Context *s, uint8_t *dst, uint8_t *src, s 599 libavcodec/vp6.c filter4 = s->filter_mode; s 601 libavcodec/vp6.c if (s->max_vector_length && s 602 libavcodec/vp6.c (FFABS(mv.x) > s->max_vector_length || s 603 libavcodec/vp6.c FFABS(mv.y) > s->max_vector_length)) { s 605 libavcodec/vp6.c } else if (s->sample_variance_threshold s 607 libavcodec/vp6.c < s->sample_variance_threshold)) { s 613 libavcodec/vp6.c if ((y8 && (offset2-offset1)*s->flip<0) || (!y8 && offset1 > offset2)) { s 625 libavcodec/vp6.c s->vp56dsp.vp6_filter_diag4(dst, src+offset1+((mv.x^mv.y)>>31), stride, s 631 libavcodec/vp6.c s->h264chroma.put_h264_chroma_pixels_tab[0](dst, src + offset1, stride, 8, x8, y8); s 633 libavcodec/vp6.c vp6_filter_diag2(s, dst, src+offset1 + ((mv.x^mv.y)>>31), stride, x8, y8); s 638 libavcodec/vp6.c static av_cold void vp6_decode_init_context(VP56Context *s); s 642 libavcodec/vp6.c VP56Context *s = avctx->priv_data; s 648 libavcodec/vp6.c ff_vp6dsp_init(&s->vp56dsp); s 650 libavcodec/vp6.c vp6_decode_init_context(s); s 652 libavcodec/vp6.c if (s->has_alpha) { s 653 libavcodec/vp6.c s->alpha_context = av_mallocz(sizeof(VP56Context)); s 654 libavcodec/vp6.c ff_vp56_init_context(avctx, s->alpha_context, s 655 libavcodec/vp6.c s->flip == -1, s->has_alpha); s 656 libavcodec/vp6.c ff_vp6dsp_init(&s->alpha_context->vp56dsp); s 657 libavcodec/vp6.c vp6_decode_init_context(s->alpha_context); s 663 libavcodec/vp6.c static av_cold void vp6_decode_init_context(VP56Context *s) s 665 libavcodec/vp6.c s->deblock_filtering = 0; s 666 libavcodec/vp6.c s->vp56_coord_div = vp6_coord_div; s 667 libavcodec/vp6.c s->parse_vector_adjustment = vp6_parse_vector_adjustment; s 668 libavcodec/vp6.c s->filter = vp6_filter; s 669 libavcodec/vp6.c s->default_models_init = vp6_default_models_init; s 670 libavcodec/vp6.c s->parse_vector_models = vp6_parse_vector_models; s 671 libavcodec/vp6.c s->parse_coeff_models = vp6_parse_coeff_models; s 672 libavcodec/vp6.c s->parse_header = vp6_parse_header; s 675 libavcodec/vp6.c static av_cold void vp6_decode_free_context(VP56Context *s); s 679 libavcodec/vp6.c VP56Context *s = avctx->priv_data; s 682 libavcodec/vp6.c vp6_decode_free_context(s); s 684 libavcodec/vp6.c if (s->alpha_context) { s 685 libavcodec/vp6.c ff_vp56_free_context(s->alpha_context); s 686 libavcodec/vp6.c vp6_decode_free_context(s->alpha_context); s 687 libavcodec/vp6.c av_freep(&s->alpha_context); s 693 libavcodec/vp6.c static av_cold void vp6_decode_free_context(VP56Context *s) s 698 libavcodec/vp6.c ff_free_vlc(&s->dccv_vlc[pt]); s 699 libavcodec/vp6.c ff_free_vlc(&s->runv_vlc[pt]); s 702 libavcodec/vp6.c ff_free_vlc(&s->ract_vlc[pt][ct][cg]); s 50 libavcodec/vp8.c static void free_buffers(VP8Context *s) s 53 libavcodec/vp8.c if (s->thread_data) s 56 libavcodec/vp8.c pthread_cond_destroy(&s->thread_data[i].cond); s 57 libavcodec/vp8.c pthread_mutex_destroy(&s->thread_data[i].lock); s 59 libavcodec/vp8.c av_freep(&s->thread_data[i].filter_strength); s 61 libavcodec/vp8.c av_freep(&s->thread_data); s 62 libavcodec/vp8.c av_freep(&s->macroblocks_base); s 63 libavcodec/vp8.c av_freep(&s->intra4x4_pred_mode_top); s 64 libavcodec/vp8.c av_freep(&s->top_nnz); s 65 libavcodec/vp8.c av_freep(&s->top_border); s 67 libavcodec/vp8.c s->macroblocks = NULL; s 70 libavcodec/vp8.c static int vp8_alloc_frame(VP8Context *s, VP8Frame *f, int ref) s 73 libavcodec/vp8.c if ((ret = ff_thread_get_buffer(s->avctx, &f->tf, s 76 libavcodec/vp8.c if (!(f->seg_map = av_buffer_allocz(s->mb_width * s->mb_height))) s 78 libavcodec/vp8.c if (s->avctx->hwaccel) { s 79 libavcodec/vp8.c const AVHWAccel *hwaccel = s->avctx->hwaccel; s 91 libavcodec/vp8.c ff_thread_release_buffer(s->avctx, &f->tf); s 95 libavcodec/vp8.c static void vp8_release_frame(VP8Context *s, VP8Frame *f) s 100 libavcodec/vp8.c ff_thread_release_buffer(s->avctx, &f->tf); s 104 libavcodec/vp8.c static int vp8_ref_frame(VP8Context *s, VP8Frame *dst, VP8Frame *src) s 108 libavcodec/vp8.c vp8_release_frame(s, dst); s 114 libavcodec/vp8.c vp8_release_frame(s, dst); s 130 libavcodec/vp8.c VP8Context *s = avctx->priv_data; s 133 libavcodec/vp8.c for (i = 0; i < FF_ARRAY_ELEMS(s->frames); i++) s 134 libavcodec/vp8.c vp8_release_frame(s, &s->frames[i]); s 135 libavcodec/vp8.c memset(s->framep, 0, sizeof(s->framep)); s 138 libavcodec/vp8.c free_buffers(s); s 146 libavcodec/vp8.c static VP8Frame *vp8_find_free_buffer(VP8Context *s) s 153 libavcodec/vp8.c if (&s->frames[i] != s->framep[VP56_FRAME_CURRENT] && s 154 libavcodec/vp8.c &s->frames[i] != s->framep[VP56_FRAME_PREVIOUS] && s 155 libavcodec/vp8.c &s->frames[i] != s->framep[VP56_FRAME_GOLDEN] && s 156 libavcodec/vp8.c &s->frames[i] != s->framep[VP56_FRAME_GOLDEN2]) { s 157 libavcodec/vp8.c frame = &s->frames[i]; s 161 libavcodec/vp8.c av_log(s->avctx, AV_LOG_FATAL, "Ran out of free frames!\n"); s 165 libavcodec/vp8.c vp8_release_frame(s, frame); s 170 libavcodec/vp8.c static enum AVPixelFormat get_pixel_format(VP8Context *s) s 183 libavcodec/vp8.c return ff_get_format(s->avctx, pix_fmts); s 187 libavcodec/vp8.c int update_dimensions(VP8Context *s, int width, int height, int is_vp7) s 189 libavcodec/vp8.c AVCodecContext *avctx = s->avctx; s 192 libavcodec/vp8.c if (width != s->avctx->width || ((width+15)/16 != s->mb_width || (height+15)/16 != s->mb_height) && s->macroblocks_base || s 193 libavcodec/vp8.c height != s->avctx->height) { s 194 libavcodec/vp8.c vp8_decode_flush_impl(s->avctx, 1); s 196 libavcodec/vp8.c ret = ff_set_dimensions(s->avctx, width, height); s 201 libavcodec/vp8.c if (!s->actually_webp && !is_vp7) { s 202 libavcodec/vp8.c s->pix_fmt = get_pixel_format(s); s 203 libavcodec/vp8.c if (s->pix_fmt < 0) s 205 libavcodec/vp8.c avctx->pix_fmt = s->pix_fmt; s 208 libavcodec/vp8.c s->mb_width = (s->avctx->coded_width + 15) / 16; s 209 libavcodec/vp8.c s->mb_height = (s->avctx->coded_height + 15) / 16; s 211 libavcodec/vp8.c s->mb_layout = is_vp7 || avctx->active_thread_type == FF_THREAD_SLICE && s 213 libavcodec/vp8.c if (!s->mb_layout) { // Frame threading and one thread s 214 libavcodec/vp8.c s->macroblocks_base = av_mallocz((s->mb_width + s->mb_height * 2 + 1) * s 215 libavcodec/vp8.c sizeof(*s->macroblocks)); s 216 libavcodec/vp8.c s->intra4x4_pred_mode_top = av_mallocz(s->mb_width * 4); s 218 libavcodec/vp8.c s->macroblocks_base = av_mallocz((s->mb_width + 2) * (s->mb_height + 2) * s 219 libavcodec/vp8.c sizeof(*s->macroblocks)); s 220 libavcodec/vp8.c s->top_nnz = av_mallocz(s->mb_width * sizeof(*s->top_nnz)); s 221 libavcodec/vp8.c s->top_border = av_mallocz((s->mb_width + 1) * sizeof(*s->top_border)); s 222 libavcodec/vp8.c s->thread_data = av_mallocz(MAX_THREADS * sizeof(VP8ThreadData)); s 224 libavcodec/vp8.c if (!s->macroblocks_base || !s->top_nnz || !s->top_border || s 225 libavcodec/vp8.c !s->thread_data || (!s->intra4x4_pred_mode_top && !s->mb_layout)) { s 226 libavcodec/vp8.c free_buffers(s); s 231 libavcodec/vp8.c s->thread_data[i].filter_strength = s 232 libavcodec/vp8.c av_mallocz(s->mb_width * sizeof(*s->thread_data[0].filter_strength)); s 233 libavcodec/vp8.c if (!s->thread_data[i].filter_strength) { s 234 libavcodec/vp8.c free_buffers(s); s 238 libavcodec/vp8.c pthread_mutex_init(&s->thread_data[i].lock, NULL); s 239 libavcodec/vp8.c pthread_cond_init(&s->thread_data[i].cond, NULL); s 243 libavcodec/vp8.c s->macroblocks = s->macroblocks_base + 1; s 248 libavcodec/vp8.c static int vp7_update_dimensions(VP8Context *s, int width, int height) s 250 libavcodec/vp8.c return update_dimensions(s, width, height, IS_VP7); s 253 libavcodec/vp8.c static int vp8_update_dimensions(VP8Context *s, int width, int height) s 255 libavcodec/vp8.c return update_dimensions(s, width, height, IS_VP8); s 259 libavcodec/vp8.c static void parse_segment_info(VP8Context *s) s 261 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 264 libavcodec/vp8.c s->segmentation.update_map = vp8_rac_get(c); s 265 libavcodec/vp8.c s->segmentation.update_feature_data = vp8_rac_get(c); s 267 libavcodec/vp8.c if (s->segmentation.update_feature_data) { s 268 libavcodec/vp8.c s->segmentation.absolute_vals = vp8_rac_get(c); s 271 libavcodec/vp8.c s->segmentation.base_quant[i] = vp8_rac_get_sint(c, 7); s 274 libavcodec/vp8.c s->segmentation.filter_level[i] = vp8_rac_get_sint(c, 6); s 276 libavcodec/vp8.c if (s->segmentation.update_map) s 278 libavcodec/vp8.c s->prob->segmentid[i] = vp8_rac_get(c) ? vp8_rac_get_uint(c, 8) : 255; s 281 libavcodec/vp8.c static void update_lf_deltas(VP8Context *s) s 283 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 288 libavcodec/vp8.c s->lf_delta.ref[i] = vp8_rac_get_uint(c, 6); s 291 libavcodec/vp8.c s->lf_delta.ref[i] = -s->lf_delta.ref[i]; s 297 libavcodec/vp8.c s->lf_delta.mode[i] = vp8_rac_get_uint(c, 6); s 300 libavcodec/vp8.c s->lf_delta.mode[i] = -s->lf_delta.mode[i]; s 305 libavcodec/vp8.c static int setup_partitions(VP8Context *s, const uint8_t *buf, int buf_size) s 311 libavcodec/vp8.c s->num_coeff_partitions = 1 << vp8_rac_get_uint(&s->c, 2); s 313 libavcodec/vp8.c buf += 3 * (s->num_coeff_partitions - 1); s 314 libavcodec/vp8.c buf_size -= 3 * (s->num_coeff_partitions - 1); s 318 libavcodec/vp8.c for (i = 0; i < s->num_coeff_partitions - 1; i++) { s 322 libavcodec/vp8.c s->coeff_partition_size[i] = size; s 324 libavcodec/vp8.c ret = ff_vp56_init_range_decoder(&s->coeff_partition[i], buf, size); s 331 libavcodec/vp8.c s->coeff_partition_size[i] = buf_size; s 332 libavcodec/vp8.c ff_vp56_init_range_decoder(&s->coeff_partition[i], buf, buf_size); s 337 libavcodec/vp8.c static void vp7_get_quants(VP8Context *s) s 339 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 348 libavcodec/vp8.c s->qmat[0].luma_qmul[0] = vp7_ydc_qlookup[ydc_qi]; s 349 libavcodec/vp8.c s->qmat[0].luma_qmul[1] = vp7_yac_qlookup[yac_qi]; s 350 libavcodec/vp8.c s->qmat[0].luma_dc_qmul[0] = vp7_y2dc_qlookup[y2dc_qi]; s 351 libavcodec/vp8.c s->qmat[0].luma_dc_qmul[1] = vp7_y2ac_qlookup[y2ac_qi]; s 352 libavcodec/vp8.c s->qmat[0].chroma_qmul[0] = FFMIN(vp7_ydc_qlookup[uvdc_qi], 132); s 353 libavcodec/vp8.c s->qmat[0].chroma_qmul[1] = vp7_yac_qlookup[uvac_qi]; s 356 libavcodec/vp8.c static void vp8_get_quants(VP8Context *s) s 358 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 361 libavcodec/vp8.c s->quant.yac_qi = vp8_rac_get_uint(c, 7); s 362 libavcodec/vp8.c s->quant.ydc_delta = vp8_rac_get_sint(c, 4); s 363 libavcodec/vp8.c s->quant.y2dc_delta = vp8_rac_get_sint(c, 4); s 364 libavcodec/vp8.c s->quant.y2ac_delta = vp8_rac_get_sint(c, 4); s 365 libavcodec/vp8.c s->quant.uvdc_delta = vp8_rac_get_sint(c, 4); s 366 libavcodec/vp8.c s->quant.uvac_delta = vp8_rac_get_sint(c, 4); s 369 libavcodec/vp8.c if (s->segmentation.enabled) { s 370 libavcodec/vp8.c base_qi = s->segmentation.base_quant[i]; s 371 libavcodec/vp8.c if (!s->segmentation.absolute_vals) s 372 libavcodec/vp8.c base_qi += s->quant.yac_qi; s 374 libavcodec/vp8.c base_qi = s->quant.yac_qi; s 376 libavcodec/vp8.c s->qmat[i].luma_qmul[0] = vp8_dc_qlookup[av_clip_uintp2(base_qi + s->quant.ydc_delta, 7)]; s 377 libavcodec/vp8.c s->qmat[i].luma_qmul[1] = vp8_ac_qlookup[av_clip_uintp2(base_qi, 7)]; s 378 libavcodec/vp8.c s->qmat[i].luma_dc_qmul[0] = vp8_dc_qlookup[av_clip_uintp2(base_qi + s->quant.y2dc_delta, 7)] * 2; s 380 libavcodec/vp8.c s->qmat[i].luma_dc_qmul[1] = vp8_ac_qlookup[av_clip_uintp2(base_qi + s->quant.y2ac_delta, 7)] * 101581 >> 16; s 381 libavcodec/vp8.c s->qmat[i].chroma_qmul[0] = vp8_dc_qlookup[av_clip_uintp2(base_qi + s->quant.uvdc_delta, 7)]; s 382 libavcodec/vp8.c s->qmat[i].chroma_qmul[1] = vp8_ac_qlookup[av_clip_uintp2(base_qi + s->quant.uvac_delta, 7)]; s 384 libavcodec/vp8.c s->qmat[i].luma_dc_qmul[1] = FFMAX(s->qmat[i].luma_dc_qmul[1], 8); s 385 libavcodec/vp8.c s->qmat[i].chroma_qmul[0] = FFMIN(s->qmat[i].chroma_qmul[0], 132); s 402 libavcodec/vp8.c static VP56Frame ref_to_update(VP8Context *s, int update, VP56Frame ref) s 404 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 418 libavcodec/vp8.c static void vp78_reset_probability_tables(VP8Context *s) s 423 libavcodec/vp8.c memcpy(s->prob->token[i][j], vp8_token_default_probs[i][vp8_coeff_band[j]], s 424 libavcodec/vp8.c sizeof(s->prob->token[i][j])); s 427 libavcodec/vp8.c static void vp78_update_probability_tables(VP8Context *s) s 429 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 439 libavcodec/vp8.c s->prob->token[i][vp8_coeff_band_indexes[j][m]][k][l] = prob; s 446 libavcodec/vp8.c static void vp78_update_pred16x16_pred8x8_mvc_probabilities(VP8Context *s, s 449 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 454 libavcodec/vp8.c s->prob->pred16x16[i] = vp8_rac_get_uint(c, 8); s 457 libavcodec/vp8.c s->prob->pred8x8c[i] = vp8_rac_get_uint(c, 8); s 463 libavcodec/vp8.c s->prob->mvc[i][j] = vp8_rac_get_nn(c); s 466 libavcodec/vp8.c static void update_refs(VP8Context *s) s 468 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 473 libavcodec/vp8.c s->update_golden = ref_to_update(s, update_golden, VP56_FRAME_GOLDEN); s 474 libavcodec/vp8.c s->update_altref = ref_to_update(s, update_altref, VP56_FRAME_GOLDEN2); s 504 libavcodec/vp8.c static int vp7_fade_frame(VP8Context *s, int alpha, int beta) s 508 libavcodec/vp8.c if (!s->keyframe && (alpha || beta)) { s 509 libavcodec/vp8.c int width = s->mb_width * 16; s 510 libavcodec/vp8.c int height = s->mb_height * 16; s 513 libavcodec/vp8.c if (!s->framep[VP56_FRAME_PREVIOUS] || s 514 libavcodec/vp8.c !s->framep[VP56_FRAME_GOLDEN]) { s 515 libavcodec/vp8.c av_log(s->avctx, AV_LOG_WARNING, "Discarding interframe without a prior keyframe!\n"); s 520 libavcodec/vp8.c src = s->framep[VP56_FRAME_PREVIOUS]->tf.f; s 523 libavcodec/vp8.c if (s->framep[VP56_FRAME_GOLDEN] == s->framep[VP56_FRAME_PREVIOUS]) { s 524 libavcodec/vp8.c s->framep[VP56_FRAME_PREVIOUS] = vp8_find_free_buffer(s); s 525 libavcodec/vp8.c if ((ret = vp8_alloc_frame(s, s->framep[VP56_FRAME_PREVIOUS], 1)) < 0) s 528 libavcodec/vp8.c dst = s->framep[VP56_FRAME_PREVIOUS]->tf.f; s 541 libavcodec/vp8.c static int vp7_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_size) s 543 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 545 libavcodec/vp8.c int width = s->avctx->width; s 546 libavcodec/vp8.c int height = s->avctx->height; s 554 libavcodec/vp8.c s->profile = (buf[0] >> 1) & 7; s 555 libavcodec/vp8.c if (s->profile > 1) { s 556 libavcodec/vp8.c avpriv_request_sample(s->avctx, "Unknown profile %d", s->profile); s 560 libavcodec/vp8.c s->keyframe = !(buf[0] & 1); s 561 libavcodec/vp8.c s->invisible = 0; s 564 libavcodec/vp8.c if (buf_size < 4 - s->profile + part1_size) { s 565 libavcodec/vp8.c av_log(s->avctx, AV_LOG_ERROR, "Buffer size %d is too small, needed : %d\n", buf_size, 4 - s->profile + part1_size); s 569 libavcodec/vp8.c buf += 4 - s->profile; s 570 libavcodec/vp8.c buf_size -= 4 - s->profile; s 572 libavcodec/vp8.c memcpy(s->put_pixels_tab, s->vp8dsp.put_vp8_epel_pixels_tab, sizeof(s->put_pixels_tab)); s 581 libavcodec/vp8.c if (s->keyframe) { s 587 libavcodec/vp8.c avpriv_request_sample(s->avctx, "Upscaling"); s 589 libavcodec/vp8.c s->update_golden = s->update_altref = VP56_FRAME_CURRENT; s 590 libavcodec/vp8.c vp78_reset_probability_tables(s); s 591 libavcodec/vp8.c memcpy(s->prob->pred16x16, vp8_pred16x16_prob_inter, s 592 libavcodec/vp8.c sizeof(s->prob->pred16x16)); s 593 libavcodec/vp8.c memcpy(s->prob->pred8x8c, vp8_pred8x8c_prob_inter, s 594 libavcodec/vp8.c sizeof(s->prob->pred8x8c)); s 596 libavcodec/vp8.c memcpy(s->prob->mvc[i], vp7_mv_default_prob[i], s 598 libavcodec/vp8.c memset(&s->segmentation, 0, sizeof(s->segmentation)); s 599 libavcodec/vp8.c memset(&s->lf_delta, 0, sizeof(s->lf_delta)); s 600 libavcodec/vp8.c memcpy(s->prob[0].scan, ff_zigzag_scan, sizeof(s->prob[0].scan)); s 603 libavcodec/vp8.c if (s->keyframe || s->profile > 0) s 604 libavcodec/vp8.c memset(s->inter_dc_pred, 0 , sizeof(s->inter_dc_pred)); s 608 libavcodec/vp8.c s->feature_enabled[i] = vp8_rac_get(c); s 609 libavcodec/vp8.c if (s->feature_enabled[i]) { s 610 libavcodec/vp8.c s->feature_present_prob[i] = vp8_rac_get_uint(c, 8); s 613 libavcodec/vp8.c s->feature_index_prob[i][j] = s 616 libavcodec/vp8.c if (vp7_feature_value_size[s->profile][i]) s 618 libavcodec/vp8.c s->feature_value[i][j] = s 619 libavcodec/vp8.c vp8_rac_get(c) ? vp8_rac_get_uint(c, vp7_feature_value_size[s->profile][i]) : 0; s 623 libavcodec/vp8.c s->segmentation.enabled = 0; s 624 libavcodec/vp8.c s->segmentation.update_map = 0; s 625 libavcodec/vp8.c s->lf_delta.enabled = 0; s 627 libavcodec/vp8.c s->num_coeff_partitions = 1; s 628 libavcodec/vp8.c ret = ff_vp56_init_range_decoder(&s->coeff_partition[0], buf, buf_size); s 632 libavcodec/vp8.c if (!s->macroblocks_base || /* first frame */ s 633 libavcodec/vp8.c width != s->avctx->width || height != s->avctx->height || s 634 libavcodec/vp8.c (width + 15) / 16 != s->mb_width || (height + 15) / 16 != s->mb_height) { s 635 libavcodec/vp8.c if ((ret = vp7_update_dimensions(s, width, height)) < 0) s 640 libavcodec/vp8.c vp7_get_quants(s); s 643 libavcodec/vp8.c if (!s->keyframe) { s 644 libavcodec/vp8.c s->update_golden = vp8_rac_get(c) ? VP56_FRAME_CURRENT : VP56_FRAME_NONE; s 645 libavcodec/vp8.c s->sign_bias[VP56_FRAME_GOLDEN] = 0; s 648 libavcodec/vp8.c s->update_last = 1; s 649 libavcodec/vp8.c s->update_probabilities = 1; s 650 libavcodec/vp8.c s->fade_present = 1; s 652 libavcodec/vp8.c if (s->profile > 0) { s 653 libavcodec/vp8.c s->update_probabilities = vp8_rac_get(c); s 654 libavcodec/vp8.c if (!s->update_probabilities) s 655 libavcodec/vp8.c s->prob[1] = s->prob[0]; s 657 libavcodec/vp8.c if (!s->keyframe) s 658 libavcodec/vp8.c s->fade_present = vp8_rac_get(c); s 664 libavcodec/vp8.c if (s->fade_present && vp8_rac_get(c)) { s 670 libavcodec/vp8.c if (!s->profile) s 671 libavcodec/vp8.c s->filter.simple = vp8_rac_get(c); s 676 libavcodec/vp8.c s->prob[0].scan[i] = ff_zigzag_scan[vp8_rac_get_uint(c, 4)]; s 679 libavcodec/vp8.c if (s->profile > 0) s 680 libavcodec/vp8.c s->filter.simple = vp8_rac_get(c); s 681 libavcodec/vp8.c s->filter.level = vp8_rac_get_uint(c, 6); s 682 libavcodec/vp8.c s->filter.sharpness = vp8_rac_get_uint(c, 3); s 685 libavcodec/vp8.c vp78_update_probability_tables(s); s 687 libavcodec/vp8.c s->mbskip_enabled = 0; s 690 libavcodec/vp8.c if (!s->keyframe) { s 691 libavcodec/vp8.c s->prob->intra = vp8_rac_get_uint(c, 8); s 692 libavcodec/vp8.c s->prob->last = vp8_rac_get_uint(c, 8); s 693 libavcodec/vp8.c vp78_update_pred16x16_pred8x8_mvc_probabilities(s, VP7_MVC_SIZE); s 699 libavcodec/vp8.c if ((ret = vp7_fade_frame(s, alpha, beta)) < 0) s 705 libavcodec/vp8.c static int vp8_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_size) s 707 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 709 libavcodec/vp8.c int width = s->avctx->width; s 710 libavcodec/vp8.c int height = s->avctx->height; s 713 libavcodec/vp8.c av_log(s->avctx, AV_LOG_ERROR, "Insufficent data (%d) for header\n", buf_size); s 717 libavcodec/vp8.c s->keyframe = !(buf[0] & 1); s 718 libavcodec/vp8.c s->profile = (buf[0]>>1) & 7; s 719 libavcodec/vp8.c s->invisible = !(buf[0] & 0x10); s 724 libavcodec/vp8.c s->header_partition_size = header_size; s 726 libavcodec/vp8.c if (s->profile > 3) s 727 libavcodec/vp8.c av_log(s->avctx, AV_LOG_WARNING, "Unknown profile %d\n", s->profile); s 729 libavcodec/vp8.c if (!s->profile) s 730 libavcodec/vp8.c memcpy(s->put_pixels_tab, s->vp8dsp.put_vp8_epel_pixels_tab, s 731 libavcodec/vp8.c sizeof(s->put_pixels_tab)); s 733 libavcodec/vp8.c memcpy(s->put_pixels_tab, s->vp8dsp.put_vp8_bilinear_pixels_tab, s 734 libavcodec/vp8.c sizeof(s->put_pixels_tab)); s 736 libavcodec/vp8.c if (header_size > buf_size - 7 * s->keyframe) { s 737 libavcodec/vp8.c av_log(s->avctx, AV_LOG_ERROR, "Header size larger than data provided\n"); s 741 libavcodec/vp8.c if (s->keyframe) { s 743 libavcodec/vp8.c av_log(s->avctx, AV_LOG_ERROR, s 755 libavcodec/vp8.c avpriv_request_sample(s->avctx, "Upscaling"); s 757 libavcodec/vp8.c s->update_golden = s->update_altref = VP56_FRAME_CURRENT; s 758 libavcodec/vp8.c vp78_reset_probability_tables(s); s 759 libavcodec/vp8.c memcpy(s->prob->pred16x16, vp8_pred16x16_prob_inter, s 760 libavcodec/vp8.c sizeof(s->prob->pred16x16)); s 761 libavcodec/vp8.c memcpy(s->prob->pred8x8c, vp8_pred8x8c_prob_inter, s 762 libavcodec/vp8.c sizeof(s->prob->pred8x8c)); s 763 libavcodec/vp8.c memcpy(s->prob->mvc, vp8_mv_default_prob, s 764 libavcodec/vp8.c sizeof(s->prob->mvc)); s 765 libavcodec/vp8.c memset(&s->segmentation, 0, sizeof(s->segmentation)); s 766 libavcodec/vp8.c memset(&s->lf_delta, 0, sizeof(s->lf_delta)); s 775 libavcodec/vp8.c if (s->keyframe) { s 776 libavcodec/vp8.c s->colorspace = vp8_rac_get(c); s 777 libavcodec/vp8.c if (s->colorspace) s 778 libavcodec/vp8.c av_log(s->avctx, AV_LOG_WARNING, "Unspecified colorspace\n"); s 779 libavcodec/vp8.c s->fullrange = vp8_rac_get(c); s 782 libavcodec/vp8.c if ((s->segmentation.enabled = vp8_rac_get(c))) s 783 libavcodec/vp8.c parse_segment_info(s); s 785 libavcodec/vp8.c s->segmentation.update_map = 0; // FIXME: move this to some init function? s 787 libavcodec/vp8.c s->filter.simple = vp8_rac_get(c); s 788 libavcodec/vp8.c s->filter.level = vp8_rac_get_uint(c, 6); s 789 libavcodec/vp8.c s->filter.sharpness = vp8_rac_get_uint(c, 3); s 791 libavcodec/vp8.c if ((s->lf_delta.enabled = vp8_rac_get(c))) { s 792 libavcodec/vp8.c s->lf_delta.update = vp8_rac_get(c); s 793 libavcodec/vp8.c if (s->lf_delta.update) s 794 libavcodec/vp8.c update_lf_deltas(s); s 797 libavcodec/vp8.c if (setup_partitions(s, buf, buf_size)) { s 798 libavcodec/vp8.c av_log(s->avctx, AV_LOG_ERROR, "Invalid partitions\n"); s 802 libavcodec/vp8.c if (!s->macroblocks_base || /* first frame */ s 803 libavcodec/vp8.c width != s->avctx->width || height != s->avctx->height || s 804 libavcodec/vp8.c (width+15)/16 != s->mb_width || (height+15)/16 != s->mb_height) s 805 libavcodec/vp8.c if ((ret = vp8_update_dimensions(s, width, height)) < 0) s 808 libavcodec/vp8.c vp8_get_quants(s); s 810 libavcodec/vp8.c if (!s->keyframe) { s 811 libavcodec/vp8.c update_refs(s); s 812 libavcodec/vp8.c s->sign_bias[VP56_FRAME_GOLDEN] = vp8_rac_get(c); s 813 libavcodec/vp8.c s->sign_bias[VP56_FRAME_GOLDEN2 /* altref */] = vp8_rac_get(c); s 818 libavcodec/vp8.c if (!(s->update_probabilities = vp8_rac_get(c))) s 819 libavcodec/vp8.c s->prob[1] = s->prob[0]; s 821 libavcodec/vp8.c s->update_last = s->keyframe || vp8_rac_get(c); s 823 libavcodec/vp8.c vp78_update_probability_tables(s); s 825 libavcodec/vp8.c if ((s->mbskip_enabled = vp8_rac_get(c))) s 826 libavcodec/vp8.c s->prob->mbskip = vp8_rac_get_uint(c, 8); s 828 libavcodec/vp8.c if (!s->keyframe) { s 829 libavcodec/vp8.c s->prob->intra = vp8_rac_get_uint(c, 8); s 830 libavcodec/vp8.c s->prob->last = vp8_rac_get_uint(c, 8); s 831 libavcodec/vp8.c s->prob->golden = vp8_rac_get_uint(c, 8); s 832 libavcodec/vp8.c vp78_update_pred16x16_pred8x8_mvc_probabilities(s, VP8_MVC_SIZE); s 836 libavcodec/vp8.c s->c.code_word = vp56_rac_renorm(&s->c); s 837 libavcodec/vp8.c s->coder_state_at_header_end.input = s->c.buffer - (-s->c.bits / 8); s 838 libavcodec/vp8.c s->coder_state_at_header_end.range = s->c.high; s 839 libavcodec/vp8.c s->coder_state_at_header_end.value = s->c.code_word >> 16; s 840 libavcodec/vp8.c s->coder_state_at_header_end.bit_count = -s->c.bits % 8; s 846 libavcodec/vp8.c void clamp_mv(VP8mvbounds *s, VP56mv *dst, const VP56mv *src) s 848 libavcodec/vp8.c dst->x = av_clip(src->x, av_clip(s->mv_min.x, INT16_MIN, INT16_MAX), s 849 libavcodec/vp8.c av_clip(s->mv_max.x, INT16_MIN, INT16_MAX)); s 850 libavcodec/vp8.c dst->y = av_clip(src->y, av_clip(s->mv_min.y, INT16_MIN, INT16_MAX), s 851 libavcodec/vp8.c av_clip(s->mv_max.y, INT16_MIN, INT16_MAX)); s 913 libavcodec/vp8.c int decode_splitmvs(VP8Context *s, VP56RangeCoder *c, VP8Macroblock *mb, s 929 libavcodec/vp8.c top_mb = &mb[-s->mb_width - 1]; s 967 libavcodec/vp8.c read_mv_component(c, s->prob->mvc[0], is_vp7); s 969 libavcodec/vp8.c read_mv_component(c, s->prob->mvc[1], is_vp7); s 1014 libavcodec/vp8.c void vp7_decode_mvs(VP8Context *s, VP8Macroblock *mb, s 1023 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 1034 libavcodec/vp8.c if (vp7_calculate_mb_offset(mb_x, mb_y, s->mb_width, pred->xoffset, s 1035 libavcodec/vp8.c pred->yoffset, !s->profile, &edge_x, &edge_y)) { s 1036 libavcodec/vp8.c VP8Macroblock *edge = mb_edge[i] = (s->mb_layout == 1) s 1037 libavcodec/vp8.c ? s->macroblocks_base + 1 + edge_x + s 1038 libavcodec/vp8.c (s->mb_width + 1) * (edge_y + 1) s 1039 libavcodec/vp8.c : s->macroblocks + edge_x + s 1040 libavcodec/vp8.c (s->mb_height - edge_y - 1) * 2; s 1083 libavcodec/vp8.c mb->mv = mb->bmv[decode_splitmvs(s, c, mb, layout, IS_VP7) - 1]; s 1085 libavcodec/vp8.c mb->mv.y += vp7_read_mv_component(c, s->prob->mvc[0]); s 1086 libavcodec/vp8.c mb->mv.x += vp7_read_mv_component(c, s->prob->mvc[1]); s 1105 libavcodec/vp8.c void vp8_decode_mvs(VP8Context *s, VP8mvbounds *mv_bounds, VP8Macroblock *mb, s 1114 libavcodec/vp8.c int cur_sign_bias = s->sign_bias[mb->ref_frame]; s 1115 libavcodec/vp8.c int8_t *sign_bias = s->sign_bias; s 1118 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 1124 libavcodec/vp8.c mb_edge[0] = mb - s->mb_width - 1; s 1125 libavcodec/vp8.c mb_edge[2] = mb - s->mb_width - 2; s 1183 libavcodec/vp8.c mb->mv = mb->bmv[decode_splitmvs(s, c, mb, layout, IS_VP8) - 1]; s 1185 libavcodec/vp8.c mb->mv.y += vp8_read_mv_component(c, s->prob->mvc[0]); s 1186 libavcodec/vp8.c mb->mv.x += vp8_read_mv_component(c, s->prob->mvc[1]); s 1205 libavcodec/vp8.c void decode_intra4x4_modes(VP8Context *s, VP56RangeCoder *c, VP8Macroblock *mb, s 1211 libavcodec/vp8.c VP8Macroblock *mb_top = mb - s->mb_width - 1; s 1217 libavcodec/vp8.c uint8_t *const left = s->intra4x4_pred_mode_left; s 1221 libavcodec/vp8.c top = s->intra4x4_pred_mode_top + 4 * mb_x; s 1240 libavcodec/vp8.c void decode_mb_mode(VP8Context *s, VP8mvbounds *mv_bounds, s 1244 libavcodec/vp8.c VP56RangeCoder *c = &s->c; s 1253 libavcodec/vp8.c if (s->feature_enabled[i]) { s 1254 libavcodec/vp8.c if (vp56_rac_get_prob_branchy(c, s->feature_present_prob[i])) { s 1256 libavcodec/vp8.c s->feature_index_prob[i]); s 1257 libavcodec/vp8.c av_log(s->avctx, AV_LOG_WARNING, s 1259 libavcodec/vp8.c vp7_feature_name[i], s->feature_value[i][index]); s 1263 libavcodec/vp8.c } else if (s->segmentation.update_map) { s 1264 libavcodec/vp8.c int bit = vp56_rac_get_prob(c, s->prob->segmentid[0]); s 1265 libavcodec/vp8.c *segment = vp56_rac_get_prob(c, s->prob->segmentid[1+bit]) + 2*bit; s 1266 libavcodec/vp8.c } else if (s->segmentation.enabled) s 1270 libavcodec/vp8.c mb->skip = s->mbskip_enabled ? vp56_rac_get_prob(c, s->prob->mbskip) : 0; s 1272 libavcodec/vp8.c if (s->keyframe) { s 1277 libavcodec/vp8.c decode_intra4x4_modes(s, c, mb, mb_x, 1, layout); s 1281 libavcodec/vp8.c if (s->mb_layout) s 1284 libavcodec/vp8.c AV_WN32A(s->intra4x4_pred_mode_top + 4 * mb_x, modes); s 1285 libavcodec/vp8.c AV_WN32A(s->intra4x4_pred_mode_left, modes); s 1291 libavcodec/vp8.c } else if (vp56_rac_get_prob_branchy(c, s->prob->intra)) { s 1293 libavcodec/vp8.c if (vp56_rac_get_prob_branchy(c, s->prob->last)) s 1295 libavcodec/vp8.c (!is_vp7 && vp56_rac_get_prob(c, s->prob->golden)) ? VP56_FRAME_GOLDEN2 /* altref */ s 1299 libavcodec/vp8.c s->ref_count[mb->ref_frame - 1]++; s 1303 libavcodec/vp8.c vp7_decode_mvs(s, mb, mb_x, mb_y, layout); s 1305 libavcodec/vp8.c vp8_decode_mvs(s, mv_bounds, mb, mb_x, mb_y, layout); s 1308 libavcodec/vp8.c mb->mode = vp8_rac_get_tree(c, vp8_pred16x16_tree_inter, s->prob->pred16x16); s 1311 libavcodec/vp8.c decode_intra4x4_modes(s, c, mb, mb_x, 0, layout); s 1314 libavcodec/vp8.c s->prob->pred8x8c); s 1466 libavcodec/vp8.c void decode_mb_coeffs(VP8Context *s, VP8ThreadData *td, VP56RangeCoder *c, s 1479 libavcodec/vp8.c nnz = decode_block_coeffs(c, td->block_dc, s->prob->token[1], 0, s 1480 libavcodec/vp8.c nnz_pred, s->qmat[segment].luma_dc_qmul, s 1486 libavcodec/vp8.c s->inter_dc_pred[mb->ref_frame - 1]); s 1493 libavcodec/vp8.c s->vp8dsp.vp8_luma_dc_wht_dc(td->block, td->block_dc); s 1495 libavcodec/vp8.c s->vp8dsp.vp8_luma_dc_wht(td->block, td->block_dc); s 1506 libavcodec/vp8.c s->prob->token[luma_ctx], s 1508 libavcodec/vp8.c s->qmat[segment].luma_qmul, s 1509 libavcodec/vp8.c s->prob[0].scan, is_vp7); s 1525 libavcodec/vp8.c s->prob->token[2], 0, nnz_pred, s 1526 libavcodec/vp8.c s->qmat[segment].chroma_qmul, s 1527 libavcodec/vp8.c s->prob[0].scan, is_vp7); s 1667 libavcodec/vp8.c void intra_predict(VP8Context *s, VP8ThreadData *td, uint8_t *dst[3], s 1675 libavcodec/vp8.c if (mb_y && (s->deblock_filter || !mb_y) && td->thread_nr == 0) s 1676 libavcodec/vp8.c xchg_mb_border(s->top_border[mb_x + 1], dst[0], dst[1], dst[2], s 1677 libavcodec/vp8.c s->linesize, s->uvlinesize, mb_x, mb_y, s->mb_width, s 1678 libavcodec/vp8.c s->filter.simple, 1); s 1682 libavcodec/vp8.c s->hpc.pred16x16[mode](dst[0], s->linesize); s 1692 libavcodec/vp8.c uint8_t *tr_right = ptr - s->linesize + 16; s 1696 libavcodec/vp8.c if (mb_y && mb_x == s->mb_width - 1) { s 1705 libavcodec/vp8.c uint8_t *topright = ptr + 4 - s->linesize; s 1708 libavcodec/vp8.c ptrdiff_t linesize = s->linesize; s 1726 libavcodec/vp8.c AV_COPY32(copy_dst + 4, ptr + 4 * x - s->linesize); s 1730 libavcodec/vp8.c copy_dst[3] = ptr[4 * x - s->linesize - 1]; s 1740 libavcodec/vp8.c copy_dst[19] = ptr[4 * x + s->linesize - 1]; s 1741 libavcodec/vp8.c copy_dst[27] = ptr[4 * x + s->linesize * 2 - 1]; s 1742 libavcodec/vp8.c copy_dst[35] = ptr[4 * x + s->linesize * 3 - 1]; s 1745 libavcodec/vp8.c s->hpc.pred4x4[mode](dst, topright, linesize); s 1748 libavcodec/vp8.c AV_COPY32(ptr + 4 * x + s->linesize, copy_dst + 20); s 1749 libavcodec/vp8.c AV_COPY32(ptr + 4 * x + s->linesize * 2, copy_dst + 28); s 1750 libavcodec/vp8.c AV_COPY32(ptr + 4 * x + s->linesize * 3, copy_dst + 36); s 1756 libavcodec/vp8.c s->vp8dsp.vp8_idct_dc_add(ptr + 4 * x, s 1757 libavcodec/vp8.c td->block[y][x], s->linesize); s 1759 libavcodec/vp8.c s->vp8dsp.vp8_idct_add(ptr + 4 * x, s 1760 libavcodec/vp8.c td->block[y][x], s->linesize); s 1765 libavcodec/vp8.c ptr += 4 * s->linesize; s 1772 libavcodec/vp8.c s->hpc.pred8x8[mode](dst[1], s->uvlinesize); s 1773 libavcodec/vp8.c s->hpc.pred8x8[mode](dst[2], s->uvlinesize); s 1775 libavcodec/vp8.c if (mb_y && (s->deblock_filter || !mb_y) && td->thread_nr == 0) s 1776 libavcodec/vp8.c xchg_mb_border(s->top_border[mb_x + 1], dst[0], dst[1], dst[2], s 1777 libavcodec/vp8.c s->linesize, s->uvlinesize, mb_x, mb_y, s->mb_width, s 1778 libavcodec/vp8.c s->filter.simple, 0); s 1805 libavcodec/vp8.c void vp8_mc_luma(VP8Context *s, VP8ThreadData *td, uint8_t *dst, s 1827 libavcodec/vp8.c s->vdsp.emulated_edge_mc(td->edge_emu_buffer, s 1863 libavcodec/vp8.c void vp8_mc_chroma(VP8Context *s, VP8ThreadData *td, uint8_t *dst1, s 1884 libavcodec/vp8.c s->vdsp.emulated_edge_mc(td->edge_emu_buffer, s 1893 libavcodec/vp8.c s->vdsp.emulated_edge_mc(td->edge_emu_buffer, s 1913 libavcodec/vp8.c void vp8_mc_part(VP8Context *s, VP8ThreadData *td, uint8_t *dst[3], s 1921 libavcodec/vp8.c vp8_mc_luma(s, td, dst[0] + by_off * s->linesize + bx_off, s 1923 libavcodec/vp8.c block_w, block_h, width, height, s->linesize, s 1924 libavcodec/vp8.c s->put_pixels_tab[block_w == 8]); s 1927 libavcodec/vp8.c if (s->profile == 3) { s 1941 libavcodec/vp8.c vp8_mc_chroma(s, td, dst[1] + by_off * s->uvlinesize + bx_off, s 1942 libavcodec/vp8.c dst[2] + by_off * s->uvlinesize + bx_off, ref_frame, s 1944 libavcodec/vp8.c block_w, block_h, width, height, s->uvlinesize, s 1945 libavcodec/vp8.c s->put_pixels_tab[1 + (block_w == 4)]); s 1951 libavcodec/vp8.c void prefetch_motion(VP8Context *s, VP8Macroblock *mb, int mb_x, int mb_y, s 1955 libavcodec/vp8.c if (s->ref_count[ref - 1] > (mb_xy >> 5)) { s 1959 libavcodec/vp8.c uint8_t **src = s->framep[ref]->tf.f->data; s 1960 libavcodec/vp8.c int off = mx + (my + (mb_x & 3) * 4) * s->linesize + 64; s 1964 libavcodec/vp8.c s->vdsp.prefetch(src[0] + off, s->linesize, 4); s 1965 libavcodec/vp8.c off = (mx >> 1) + ((my >> 1) + (mb_x & 7)) * s->uvlinesize + 64; s 1966 libavcodec/vp8.c s->vdsp.prefetch(src[1] + off, src[2] - src[1], 2); s 1974 libavcodec/vp8.c void inter_predict(VP8Context *s, VP8ThreadData *td, uint8_t *dst[3], s 1978 libavcodec/vp8.c int width = 16 * s->mb_width, height = 16 * s->mb_height; s 1979 libavcodec/vp8.c ThreadFrame *ref = &s->framep[mb->ref_frame]->tf; s 1984 libavcodec/vp8.c vp8_mc_part(s, td, dst, ref, x_off, y_off, s 1994 libavcodec/vp8.c vp8_mc_luma(s, td, dst[0] + 4 * y * s->linesize + x * 4, s 1997 libavcodec/vp8.c width, height, s->linesize, s 1998 libavcodec/vp8.c s->put_pixels_tab[2]); s 2019 libavcodec/vp8.c if (s->profile == 3) { s 2023 libavcodec/vp8.c vp8_mc_chroma(s, td, dst[1] + 4 * y * s->uvlinesize + x * 4, s 2024 libavcodec/vp8.c dst[2] + 4 * y * s->uvlinesize + x * 4, ref, s 2026 libavcodec/vp8.c width, height, s->uvlinesize, s 2027 libavcodec/vp8.c s->put_pixels_tab[2]); s 2033 libavcodec/vp8.c vp8_mc_part(s, td, dst, ref, x_off, y_off, s 2035 libavcodec/vp8.c vp8_mc_part(s, td, dst, ref, x_off, y_off, s 2039 libavcodec/vp8.c vp8_mc_part(s, td, dst, ref, x_off, y_off, s 2041 libavcodec/vp8.c vp8_mc_part(s, td, dst, ref, x_off, y_off, s 2045 libavcodec/vp8.c vp8_mc_part(s, td, dst, ref, x_off, y_off, s 2047 libavcodec/vp8.c vp8_mc_part(s, td, dst, ref, x_off, y_off, s 2049 libavcodec/vp8.c vp8_mc_part(s, td, dst, ref, x_off, y_off, s 2051 libavcodec/vp8.c vp8_mc_part(s, td, dst, ref, x_off, y_off, s 2058 libavcodec/vp8.c void idct_mb(VP8Context *s, VP8ThreadData *td, uint8_t *dst[3], VP8Macroblock *mb) s 2070 libavcodec/vp8.c s->vp8dsp.vp8_idct_dc_add(y_dst + 4 * x, s 2072 libavcodec/vp8.c s->linesize); s 2074 libavcodec/vp8.c s->vp8dsp.vp8_idct_add(y_dst + 4 * x, s 2076 libavcodec/vp8.c s->linesize); s 2082 libavcodec/vp8.c s->vp8dsp.vp8_idct_dc_add4y(y_dst, td->block[y], s->linesize); s 2085 libavcodec/vp8.c y_dst += 4 * s->linesize; s 2097 libavcodec/vp8.c s->vp8dsp.vp8_idct_dc_add(ch_dst + 4 * x, s 2099 libavcodec/vp8.c s->uvlinesize); s 2101 libavcodec/vp8.c s->vp8dsp.vp8_idct_add(ch_dst + 4 * x, s 2103 libavcodec/vp8.c s->uvlinesize); s 2108 libavcodec/vp8.c ch_dst += 4 * s->uvlinesize; s 2111 libavcodec/vp8.c s->vp8dsp.vp8_idct_dc_add4uv(ch_dst, td->block[4 + ch], s->uvlinesize); s 2120 libavcodec/vp8.c void filter_level_for_mb(VP8Context *s, VP8Macroblock *mb, s 2125 libavcodec/vp8.c if (s->segmentation.enabled) { s 2126 libavcodec/vp8.c filter_level = s->segmentation.filter_level[mb->segment]; s 2127 libavcodec/vp8.c if (!s->segmentation.absolute_vals) s 2128 libavcodec/vp8.c filter_level += s->filter.level; s 2130 libavcodec/vp8.c filter_level = s->filter.level; s 2132 libavcodec/vp8.c if (s->lf_delta.enabled) { s 2133 libavcodec/vp8.c filter_level += s->lf_delta.ref[mb->ref_frame]; s 2134 libavcodec/vp8.c filter_level += s->lf_delta.mode[mb->mode]; s 2140 libavcodec/vp8.c if (s->filter.sharpness) { s 2141 libavcodec/vp8.c interior_limit >>= (s->filter.sharpness + 3) >> 2; s 2142 libavcodec/vp8.c interior_limit = FFMIN(interior_limit, 9 - s->filter.sharpness); s 2153 libavcodec/vp8.c void filter_mb(VP8Context *s, uint8_t *dst[3], VP8FilterStrength *f, s 2160 libavcodec/vp8.c ptrdiff_t linesize = s->linesize; s 2161 libavcodec/vp8.c ptrdiff_t uvlinesize = s->uvlinesize; s 2186 libavcodec/vp8.c hev_thresh = hev_thresh_lut[s->keyframe][filter_level]; s 2189 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter16y(dst[0], linesize, s 2191 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter8uv(dst[1], dst[2], uvlinesize, s 2197 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] + 4, linesize, \ s 2200 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] + 8, linesize, \ s 2203 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter16y_inner(dst[0] + 12, linesize, \ s 2206 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter8uv_inner(dst[1] + 4, dst[2] + 4, \ s 2214 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter16y(dst[0], linesize, s 2216 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter8uv(dst[1], dst[2], uvlinesize, s 2221 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter16y_inner(dst[0] + 4 * linesize, s 2224 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter16y_inner(dst[0] + 8 * linesize, s 2227 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter16y_inner(dst[0] + 12 * linesize, s 2230 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter8uv_inner(dst[1] + 4 * uvlinesize, s 2240 libavcodec/vp8.c void filter_mb_simple(VP8Context *s, uint8_t *dst, VP8FilterStrength *f, s 2247 libavcodec/vp8.c ptrdiff_t linesize = s->linesize; s 2256 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter_simple(dst, linesize, mbedge_lim); s 2258 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter_simple(dst + 4, linesize, bedge_lim); s 2259 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter_simple(dst + 8, linesize, bedge_lim); s 2260 libavcodec/vp8.c s->vp8dsp.vp8_h_loop_filter_simple(dst + 12, linesize, bedge_lim); s 2264 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter_simple(dst, linesize, mbedge_lim); s 2266 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter_simple(dst + 4 * linesize, linesize, bedge_lim); s 2267 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter_simple(dst + 8 * linesize, linesize, bedge_lim); s 2268 libavcodec/vp8.c s->vp8dsp.vp8_v_loop_filter_simple(dst + 12 * linesize, linesize, bedge_lim); s 2277 libavcodec/vp8.c VP8Context *s = avctx->priv_data; s 2280 libavcodec/vp8.c s->mv_bounds.mv_min.y = -MARGIN; s 2281 libavcodec/vp8.c s->mv_bounds.mv_max.y = ((s->mb_height - 1) << 6) + MARGIN; s 2282 libavcodec/vp8.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 2283 libavcodec/vp8.c VP8Macroblock *mb = s->macroblocks_base + s 2284 libavcodec/vp8.c ((s->mb_width + 1) * (mb_y + 1) + 1); s 2285 libavcodec/vp8.c int mb_xy = mb_y * s->mb_width; s 2287 libavcodec/vp8.c AV_WN32A(s->intra4x4_pred_mode_left, DC_PRED * 0x01010101); s 2289 libavcodec/vp8.c s->mv_bounds.mv_min.x = -MARGIN; s 2290 libavcodec/vp8.c s->mv_bounds.mv_max.x = ((s->mb_width - 1) << 6) + MARGIN; s 2292 libavcodec/vp8.c if (vpX_rac_is_end(&s->c)) { s 2295 libavcodec/vp8.c for (mb_x = 0; mb_x < s->mb_width; mb_x++, mb_xy++, mb++) { s 2297 libavcodec/vp8.c AV_WN32A((mb - s->mb_width - 1)->intra4x4_pred_mode_top, s 2299 libavcodec/vp8.c decode_mb_mode(s, &s->mv_bounds, mb, mb_x, mb_y, curframe->seg_map->data + mb_xy, s 2302 libavcodec/vp8.c s->mv_bounds.mv_min.x -= 64; s 2303 libavcodec/vp8.c s->mv_bounds.mv_max.x -= 64; s 2305 libavcodec/vp8.c s->mv_bounds.mv_min.y -= 64; s 2306 libavcodec/vp8.c s->mv_bounds.mv_max.y -= 64; s 2364 libavcodec/vp8.c VP8Context *s = avctx->priv_data; s 2365 libavcodec/vp8.c VP8ThreadData *prev_td, *next_td, *td = &s->thread_data[threadnr]; s 2367 libavcodec/vp8.c int mb_x, mb_xy = mb_y * s->mb_width; s 2368 libavcodec/vp8.c int num_jobs = s->num_jobs; s 2369 libavcodec/vp8.c VP8Frame *curframe = s->curframe, *prev_frame = s->prev_frame; s 2370 libavcodec/vp8.c VP56RangeCoder *c = &s->coeff_partition[mb_y & (s->num_coeff_partitions - 1)]; s 2373 libavcodec/vp8.c curframe->tf.f->data[0] + 16 * mb_y * s->linesize, s 2374 libavcodec/vp8.c curframe->tf.f->data[1] + 8 * mb_y * s->uvlinesize, s 2375 libavcodec/vp8.c curframe->tf.f->data[2] + 8 * mb_y * s->uvlinesize s 2384 libavcodec/vp8.c prev_td = &s->thread_data[(jobnr + num_jobs - 1) % num_jobs]; s 2385 libavcodec/vp8.c if (mb_y == s->mb_height - 1) s 2388 libavcodec/vp8.c next_td = &s->thread_data[(jobnr + 1) % num_jobs]; s 2389 libavcodec/vp8.c if (s->mb_layout == 1) s 2390 libavcodec/vp8.c mb = s->macroblocks_base + ((s->mb_width + 1) * (mb_y + 1) + 1); s 2394 libavcodec/vp8.c if (prev_frame && s->segmentation.enabled && s 2395 libavcodec/vp8.c !s->segmentation.update_map) s 2397 libavcodec/vp8.c mb = s->macroblocks + (s->mb_height - mb_y - 1) * 2; s 2399 libavcodec/vp8.c AV_WN32A(s->intra4x4_pred_mode_left, DC_PRED * 0x01010101); s 2406 libavcodec/vp8.c td->mv_bounds.mv_max.x = ((s->mb_width - 1) << 6) + MARGIN; s 2408 libavcodec/vp8.c for (mb_x = 0; mb_x < s->mb_width; mb_x++, mb_xy++, mb++) { s 2419 libavcodec/vp8.c mb_x + (is_vp7 ? 2 : 1) + s->mb_width + 3, s 2424 libavcodec/vp8.c s->vdsp.prefetch(dst[0] + (mb_x & 3) * 4 * s->linesize + 64, s 2425 libavcodec/vp8.c s->linesize, 4); s 2426 libavcodec/vp8.c s->vdsp.prefetch(dst[1] + (mb_x & 7) * s->uvlinesize + 64, s 2429 libavcodec/vp8.c if (!s->mb_layout) s 2430 libavcodec/vp8.c decode_mb_mode(s, &td->mv_bounds, mb, mb_x, mb_y, curframe->seg_map->data + mb_xy, s 2434 libavcodec/vp8.c prefetch_motion(s, mb, mb_x, mb_y, mb_xy, VP56_FRAME_PREVIOUS); s 2437 libavcodec/vp8.c decode_mb_coeffs(s, td, c, mb, s->top_nnz[mb_x], td->left_nnz, is_vp7); s 2440 libavcodec/vp8.c intra_predict(s, td, dst, mb, mb_x, mb_y, is_vp7); s 2442 libavcodec/vp8.c inter_predict(s, td, dst, mb, mb_x, mb_y); s 2444 libavcodec/vp8.c prefetch_motion(s, mb, mb_x, mb_y, mb_xy, VP56_FRAME_GOLDEN); s 2447 libavcodec/vp8.c idct_mb(s, td, dst, mb); s 2450 libavcodec/vp8.c AV_WN64(s->top_nnz[mb_x], 0); // array of 9, so unaligned s 2456 libavcodec/vp8.c s->top_nnz[mb_x][8] = 0; s 2460 libavcodec/vp8.c if (s->deblock_filter) s 2461 libavcodec/vp8.c filter_level_for_mb(s, mb, &td->filter_strength[mb_x], is_vp7); s 2463 libavcodec/vp8.c if (s->deblock_filter && num_jobs != 1 && threadnr == num_jobs - 1) { s 2464 libavcodec/vp8.c if (s->filter.simple) s 2465 libavcodec/vp8.c backup_mb_border(s->top_border[mb_x + 1], dst[0], s 2466 libavcodec/vp8.c NULL, NULL, s->linesize, 0, 1); s 2468 libavcodec/vp8.c backup_mb_border(s->top_border[mb_x + 1], dst[0], s 2469 libavcodec/vp8.c dst[1], dst[2], s->linesize, s->uvlinesize, 0); s 2472 libavcodec/vp8.c prefetch_motion(s, mb, mb_x, mb_y, mb_xy, VP56_FRAME_GOLDEN2); s 2480 libavcodec/vp8.c if (mb_x == s->mb_width + 1) { s 2481 libavcodec/vp8.c update_pos(td, mb_y, s->mb_width + 3); s 2504 libavcodec/vp8.c VP8Context *s = avctx->priv_data; s 2505 libavcodec/vp8.c VP8ThreadData *td = &s->thread_data[threadnr]; s 2506 libavcodec/vp8.c int mb_x, mb_y = atomic_load(&td->thread_mb_pos) >> 16, num_jobs = s->num_jobs; s 2507 libavcodec/vp8.c AVFrame *curframe = s->curframe->tf.f; s 2511 libavcodec/vp8.c curframe->data[0] + 16 * mb_y * s->linesize, s 2512 libavcodec/vp8.c curframe->data[1] + 8 * mb_y * s->uvlinesize, s 2513 libavcodec/vp8.c curframe->data[2] + 8 * mb_y * s->uvlinesize s 2516 libavcodec/vp8.c if (s->mb_layout == 1) s 2517 libavcodec/vp8.c mb = s->macroblocks_base + ((s->mb_width + 1) * (mb_y + 1) + 1); s 2519 libavcodec/vp8.c mb = s->macroblocks + (s->mb_height - mb_y - 1) * 2; s 2524 libavcodec/vp8.c prev_td = &s->thread_data[(jobnr + num_jobs - 1) % num_jobs]; s 2525 libavcodec/vp8.c if (mb_y == s->mb_height - 1) s 2528 libavcodec/vp8.c next_td = &s->thread_data[(jobnr + 1) % num_jobs]; s 2530 libavcodec/vp8.c for (mb_x = 0; mb_x < s->mb_width; mb_x++, mb++) { s 2534 libavcodec/vp8.c (mb_x + 1) + (s->mb_width + 3), mb_y - 1); s 2536 libavcodec/vp8.c if (next_td != &s->thread_data[0]) s 2540 libavcodec/vp8.c if (s->filter.simple) s 2541 libavcodec/vp8.c backup_mb_border(s->top_border[mb_x + 1], dst[0], s 2542 libavcodec/vp8.c NULL, NULL, s->linesize, 0, 1); s 2544 libavcodec/vp8.c backup_mb_border(s->top_border[mb_x + 1], dst[0], s 2545 libavcodec/vp8.c dst[1], dst[2], s->linesize, s->uvlinesize, 0); s 2548 libavcodec/vp8.c if (s->filter.simple) s 2549 libavcodec/vp8.c filter_mb_simple(s, dst[0], f, mb_x, mb_y); s 2551 libavcodec/vp8.c filter_mb(s, dst, f, mb_x, mb_y, is_vp7); s 2556 libavcodec/vp8.c update_pos(td, mb_y, (s->mb_width + 3) + mb_x); s 2576 libavcodec/vp8.c VP8Context *s = avctx->priv_data; s 2577 libavcodec/vp8.c VP8ThreadData *td = &s->thread_data[jobnr]; s 2579 libavcodec/vp8.c VP8Frame *curframe = s->curframe; s 2580 libavcodec/vp8.c int mb_y, num_jobs = s->num_jobs; s 2585 libavcodec/vp8.c td->mv_bounds.mv_max.y = ((s->mb_height - 1) << 6) + MARGIN - 64 * threadnr; s 2586 libavcodec/vp8.c for (mb_y = jobnr; mb_y < s->mb_height; mb_y += num_jobs) { s 2588 libavcodec/vp8.c ret = s->decode_mb_row_no_filter(avctx, tdata, jobnr, threadnr); s 2590 libavcodec/vp8.c update_pos(td, s->mb_height, INT_MAX & 0xFFFF); s 2593 libavcodec/vp8.c if (s->deblock_filter) s 2594 libavcodec/vp8.c s->filter_mb_row(avctx, tdata, jobnr, threadnr); s 2623 libavcodec/vp8.c VP8Context *s = avctx->priv_data; s 2629 libavcodec/vp8.c ret = vp7_decode_frame_header(s, avpkt->data, avpkt->size); s 2631 libavcodec/vp8.c ret = vp8_decode_frame_header(s, avpkt->data, avpkt->size); s 2636 libavcodec/vp8.c if (s->actually_webp) { s 2638 libavcodec/vp8.c } else if (!is_vp7 && s->pix_fmt == AV_PIX_FMT_NONE) { s 2639 libavcodec/vp8.c s->pix_fmt = get_pixel_format(s); s 2640 libavcodec/vp8.c if (s->pix_fmt < 0) { s 2644 libavcodec/vp8.c avctx->pix_fmt = s->pix_fmt; s 2647 libavcodec/vp8.c prev_frame = s->framep[VP56_FRAME_CURRENT]; s 2649 libavcodec/vp8.c referenced = s->update_last || s->update_golden == VP56_FRAME_CURRENT || s 2650 libavcodec/vp8.c s->update_altref == VP56_FRAME_CURRENT; s 2653 libavcodec/vp8.c : !s->keyframe ? AVDISCARD_NONKEY s 2657 libavcodec/vp8.c s->invisible = 1; s 2658 libavcodec/vp8.c memcpy(&s->next_framep[0], &s->framep[0], sizeof(s->framep[0]) * 4); s 2661 libavcodec/vp8.c s->deblock_filter = s->filter.level && avctx->skip_loop_filter < skip_thresh; s 2665 libavcodec/vp8.c if (s->frames[i].tf.f->buf[0] && s 2666 libavcodec/vp8.c &s->frames[i] != prev_frame && s 2667 libavcodec/vp8.c &s->frames[i] != s->framep[VP56_FRAME_PREVIOUS] && s 2668 libavcodec/vp8.c &s->frames[i] != s->framep[VP56_FRAME_GOLDEN] && s 2669 libavcodec/vp8.c &s->frames[i] != s->framep[VP56_FRAME_GOLDEN2]) s 2670 libavcodec/vp8.c vp8_release_frame(s, &s->frames[i]); s 2672 libavcodec/vp8.c curframe = s->framep[VP56_FRAME_CURRENT] = vp8_find_free_buffer(s); s 2674 libavcodec/vp8.c if (!s->colorspace) s 2676 libavcodec/vp8.c if (s->fullrange) s 2685 libavcodec/vp8.c if (!s->keyframe && (!s->framep[VP56_FRAME_PREVIOUS] || s 2686 libavcodec/vp8.c !s->framep[VP56_FRAME_GOLDEN] || s 2687 libavcodec/vp8.c !s->framep[VP56_FRAME_GOLDEN2])) { s 2694 libavcodec/vp8.c curframe->tf.f->key_frame = s->keyframe; s 2695 libavcodec/vp8.c curframe->tf.f->pict_type = s->keyframe ? AV_PICTURE_TYPE_I s 2697 libavcodec/vp8.c if ((ret = vp8_alloc_frame(s, curframe, referenced)) < 0) s 2701 libavcodec/vp8.c if (s->update_altref != VP56_FRAME_NONE) s 2702 libavcodec/vp8.c s->next_framep[VP56_FRAME_GOLDEN2] = s->framep[s->update_altref]; s 2704 libavcodec/vp8.c s->next_framep[VP56_FRAME_GOLDEN2] = s->framep[VP56_FRAME_GOLDEN2]; s 2706 libavcodec/vp8.c if (s->update_golden != VP56_FRAME_NONE) s 2707 libavcodec/vp8.c s->next_framep[VP56_FRAME_GOLDEN] = s->framep[s->update_golden]; s 2709 libavcodec/vp8.c s->next_framep[VP56_FRAME_GOLDEN] = s->framep[VP56_FRAME_GOLDEN]; s 2711 libavcodec/vp8.c if (s->update_last) s 2712 libavcodec/vp8.c s->next_framep[VP56_FRAME_PREVIOUS] = curframe; s 2714 libavcodec/vp8.c s->next_framep[VP56_FRAME_PREVIOUS] = s->framep[VP56_FRAME_PREVIOUS]; s 2716 libavcodec/vp8.c s->next_framep[VP56_FRAME_CURRENT] = curframe; s 2735 libavcodec/vp8.c s->linesize = curframe->tf.f->linesize[0]; s 2736 libavcodec/vp8.c s->uvlinesize = curframe->tf.f->linesize[1]; s 2738 libavcodec/vp8.c memset(s->top_nnz, 0, s->mb_width * sizeof(*s->top_nnz)); s 2741 libavcodec/vp8.c if (!s->mb_layout) s 2742 libavcodec/vp8.c memset(s->macroblocks + s->mb_height * 2 - 1, 0, s 2743 libavcodec/vp8.c (s->mb_width + 1) * sizeof(*s->macroblocks)); s 2744 libavcodec/vp8.c if (!s->mb_layout && s->keyframe) s 2745 libavcodec/vp8.c memset(s->intra4x4_pred_mode_top, DC_PRED, s->mb_width * 4); s 2747 libavcodec/vp8.c memset(s->ref_count, 0, sizeof(s->ref_count)); s 2749 libavcodec/vp8.c if (s->mb_layout == 1) { s 2752 libavcodec/vp8.c if (prev_frame && s->segmentation.enabled && s 2753 libavcodec/vp8.c !s->segmentation.update_map) s 2766 libavcodec/vp8.c num_jobs = FFMIN(s->num_coeff_partitions, avctx->thread_count); s 2767 libavcodec/vp8.c s->num_jobs = num_jobs; s 2768 libavcodec/vp8.c s->curframe = curframe; s 2769 libavcodec/vp8.c s->prev_frame = prev_frame; s 2770 libavcodec/vp8.c s->mv_bounds.mv_min.y = -MARGIN; s 2771 libavcodec/vp8.c s->mv_bounds.mv_max.y = ((s->mb_height - 1) << 6) + MARGIN; s 2773 libavcodec/vp8.c VP8ThreadData *td = &s->thread_data[i]; s 2778 libavcodec/vp8.c avctx->execute2(avctx, vp7_decode_mb_row_sliced, s->thread_data, NULL, s 2781 libavcodec/vp8.c avctx->execute2(avctx, vp8_decode_mb_row_sliced, s->thread_data, NULL, s 2786 libavcodec/vp8.c memcpy(&s->framep[0], &s->next_framep[0], sizeof(s->framep[0]) * 4); s 2791 libavcodec/vp8.c if (!s->update_probabilities) s 2792 libavcodec/vp8.c s->prob[0] = s->prob[1]; s 2794 libavcodec/vp8.c if (!s->invisible) { s 2802 libavcodec/vp8.c memcpy(&s->next_framep[0], &s->framep[0], sizeof(s->framep[0]) * 4); s 2822 libavcodec/vp8.c VP8Context *s = avctx->priv_data; s 2825 libavcodec/vp8.c if (!s) s 2829 libavcodec/vp8.c for (i = 0; i < FF_ARRAY_ELEMS(s->frames); i++) s 2830 libavcodec/vp8.c av_frame_free(&s->frames[i].tf.f); s 2835 libavcodec/vp8.c static av_cold int vp8_init_frames(VP8Context *s) s 2838 libavcodec/vp8.c for (i = 0; i < FF_ARRAY_ELEMS(s->frames); i++) { s 2839 libavcodec/vp8.c s->frames[i].tf.f = av_frame_alloc(); s 2840 libavcodec/vp8.c if (!s->frames[i].tf.f) s 2849 libavcodec/vp8.c VP8Context *s = avctx->priv_data; s 2852 libavcodec/vp8.c s->avctx = avctx; s 2853 libavcodec/vp8.c s->vp7 = avctx->codec->id == AV_CODEC_ID_VP7; s 2854 libavcodec/vp8.c s->pix_fmt = AV_PIX_FMT_NONE; s 2857 libavcodec/vp8.c ff_videodsp_init(&s->vdsp, 8); s 2859 libavcodec/vp8.c ff_vp78dsp_init(&s->vp8dsp); s 2861 libavcodec/vp8.c ff_h264_pred_init(&s->hpc, AV_CODEC_ID_VP7, 8, 1); s 2862 libavcodec/vp8.c ff_vp7dsp_init(&s->vp8dsp); s 2863 libavcodec/vp8.c s->decode_mb_row_no_filter = vp7_decode_mb_row_no_filter; s 2864 libavcodec/vp8.c s->filter_mb_row = vp7_filter_mb_row; s 2866 libavcodec/vp8.c ff_h264_pred_init(&s->hpc, AV_CODEC_ID_VP8, 8, 1); s 2867 libavcodec/vp8.c ff_vp8dsp_init(&s->vp8dsp); s 2868 libavcodec/vp8.c s->decode_mb_row_no_filter = vp8_decode_mb_row_no_filter; s 2869 libavcodec/vp8.c s->filter_mb_row = vp8_filter_mb_row; s 2873 libavcodec/vp8.c memcpy(s->prob[0].scan, ff_zigzag_scan, sizeof(s->prob[0].scan)); s 2875 libavcodec/vp8.c if ((ret = vp8_init_frames(s)) < 0) { s 2897 libavcodec/vp8.c #define REBASE(pic) ((pic) ? (pic) - &s_src->frames[0] + &s->frames[0] : NULL) s 2902 libavcodec/vp8.c VP8Context *s = dst->priv_data, *s_src = src->priv_data; s 2905 libavcodec/vp8.c if (s->macroblocks_base && s 2906 libavcodec/vp8.c (s_src->mb_width != s->mb_width || s_src->mb_height != s->mb_height)) { s 2907 libavcodec/vp8.c free_buffers(s); s 2908 libavcodec/vp8.c s->mb_width = s_src->mb_width; s 2909 libavcodec/vp8.c s->mb_height = s_src->mb_height; s 2912 libavcodec/vp8.c s->pix_fmt = s_src->pix_fmt; s 2913 libavcodec/vp8.c s->prob[0] = s_src->prob[!s_src->update_probabilities]; s 2914 libavcodec/vp8.c s->segmentation = s_src->segmentation; s 2915 libavcodec/vp8.c s->lf_delta = s_src->lf_delta; s 2916 libavcodec/vp8.c memcpy(s->sign_bias, s_src->sign_bias, sizeof(s->sign_bias)); s 2920 libavcodec/vp8.c int ret = vp8_ref_frame(s, &s->frames[i], &s_src->frames[i]); s 2926 libavcodec/vp8.c s->framep[0] = REBASE(s_src->next_framep[0]); s 2927 libavcodec/vp8.c s->framep[1] = REBASE(s_src->next_framep[1]); s 2928 libavcodec/vp8.c s->framep[2] = REBASE(s_src->next_framep[2]); s 2929 libavcodec/vp8.c s->framep[3] = REBASE(s_src->next_framep[3]); s 23 libavcodec/vp8_parser.c static int parse(AVCodecParserContext *s, s 45 libavcodec/vp8_parser.c s->key_frame = frame_type == 0; s 46 libavcodec/vp8_parser.c s->pict_type = frame_type ? AV_PICTURE_TYPE_P : AV_PICTURE_TYPE_I; s 47 libavcodec/vp8_parser.c s->format = AV_PIX_FMT_YUV420P; s 48 libavcodec/vp8_parser.c s->field_order = AV_FIELD_PROGRESSIVE; s 49 libavcodec/vp8_parser.c s->picture_structure = AV_PICTURE_STRUCTURE_FRAME; s 67 libavcodec/vp8_parser.c s->width = width; s 68 libavcodec/vp8_parser.c s->height = height; s 69 libavcodec/vp8_parser.c s->coded_width = FFALIGN(width, 16); s 70 libavcodec/vp8_parser.c s->coded_height = FFALIGN(height, 16); s 43 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 46 libavcodec/vp9.c pthread_mutex_destroy(&s->progress_mutex); s 47 libavcodec/vp9.c pthread_cond_destroy(&s->progress_cond); s 48 libavcodec/vp9.c av_freep(&s->entries); s 53 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 57 libavcodec/vp9.c if (s->entries) s 58 libavcodec/vp9.c av_freep(&s->entries); s 60 libavcodec/vp9.c s->entries = av_malloc_array(n, sizeof(atomic_int)); s 62 libavcodec/vp9.c if (!s->entries) { s 63 libavcodec/vp9.c av_freep(&s->entries); s 68 libavcodec/vp9.c atomic_init(&s->entries[i], 0); s 70 libavcodec/vp9.c pthread_mutex_init(&s->progress_mutex, NULL); s 71 libavcodec/vp9.c pthread_cond_init(&s->progress_cond, NULL); s 76 libavcodec/vp9.c static void vp9_report_tile_progress(VP9Context *s, int field, int n) { s 77 libavcodec/vp9.c pthread_mutex_lock(&s->progress_mutex); s 78 libavcodec/vp9.c atomic_fetch_add_explicit(&s->entries[field], n, memory_order_release); s 79 libavcodec/vp9.c pthread_cond_signal(&s->progress_cond); s 80 libavcodec/vp9.c pthread_mutex_unlock(&s->progress_mutex); s 83 libavcodec/vp9.c static void vp9_await_tile_progress(VP9Context *s, int field, int n) { s 84 libavcodec/vp9.c if (atomic_load_explicit(&s->entries[field], memory_order_acquire) >= n) s 87 libavcodec/vp9.c pthread_mutex_lock(&s->progress_mutex); s 88 libavcodec/vp9.c while (atomic_load_explicit(&s->entries[field], memory_order_relaxed) != n) s 89 libavcodec/vp9.c pthread_cond_wait(&s->progress_cond, &s->progress_mutex); s 90 libavcodec/vp9.c pthread_mutex_unlock(&s->progress_mutex); s 115 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 122 libavcodec/vp9.c sz = 64 * s->sb_cols * s->sb_rows; s 123 libavcodec/vp9.c if (sz != s->frame_extradata_pool_size) { s 124 libavcodec/vp9.c av_buffer_pool_uninit(&s->frame_extradata_pool); s 125 libavcodec/vp9.c s->frame_extradata_pool = av_buffer_pool_init(sz * (1 + sizeof(VP9mvrefPair)), NULL); s 126 libavcodec/vp9.c if (!s->frame_extradata_pool) { s 127 libavcodec/vp9.c s->frame_extradata_pool_size = 0; s 130 libavcodec/vp9.c s->frame_extradata_pool_size = sz; s 132 libavcodec/vp9.c f->extradata = av_buffer_pool_get(s->frame_extradata_pool); s 197 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 199 libavcodec/vp9.c int bytesperpixel = s->bytesperpixel, ret, cols, rows; s 204 libavcodec/vp9.c if (!(s->pix_fmt == s->gf_fmt && w == s->w && h == s->h)) { s 208 libavcodec/vp9.c switch (s->pix_fmt) { s 238 libavcodec/vp9.c *fmtp++ = s->pix_fmt; s 246 libavcodec/vp9.c s->gf_fmt = s->pix_fmt; s 247 libavcodec/vp9.c s->w = w; s 248 libavcodec/vp9.c s->h = h; s 254 libavcodec/vp9.c if (s->intra_pred_data[0] && cols == s->cols && rows == s->rows && s->pix_fmt == s->last_fmt) s 257 libavcodec/vp9.c s->last_fmt = s->pix_fmt; s 258 libavcodec/vp9.c s->sb_cols = (w + 63) >> 6; s 259 libavcodec/vp9.c s->sb_rows = (h + 63) >> 6; s 260 libavcodec/vp9.c s->cols = (w + 7) >> 3; s 261 libavcodec/vp9.c s->rows = (h + 7) >> 3; s 262 libavcodec/vp9.c lflvl_len = avctx->active_thread_type == FF_THREAD_SLICE ? s->sb_rows : 1; s 264 libavcodec/vp9.c #define assign(var, type, n) var = (type) p; p += s->sb_cols * (n) * sizeof(*var) s 265 libavcodec/vp9.c av_freep(&s->intra_pred_data[0]); s 268 libavcodec/vp9.c p = av_malloc(s->sb_cols * (128 + 192 * bytesperpixel + s 269 libavcodec/vp9.c lflvl_len * sizeof(*s->lflvl) + 16 * sizeof(*s->above_mv_ctx))); s 272 libavcodec/vp9.c assign(s->intra_pred_data[0], uint8_t *, 64 * bytesperpixel); s 273 libavcodec/vp9.c assign(s->intra_pred_data[1], uint8_t *, 64 * bytesperpixel); s 274 libavcodec/vp9.c assign(s->intra_pred_data[2], uint8_t *, 64 * bytesperpixel); s 275 libavcodec/vp9.c assign(s->above_y_nnz_ctx, uint8_t *, 16); s 276 libavcodec/vp9.c assign(s->above_mode_ctx, uint8_t *, 16); s 277 libavcodec/vp9.c assign(s->above_mv_ctx, VP56mv(*)[2], 16); s 278 libavcodec/vp9.c assign(s->above_uv_nnz_ctx[0], uint8_t *, 16); s 279 libavcodec/vp9.c assign(s->above_uv_nnz_ctx[1], uint8_t *, 16); s 280 libavcodec/vp9.c assign(s->above_partition_ctx, uint8_t *, 8); s 281 libavcodec/vp9.c assign(s->above_skip_ctx, uint8_t *, 8); s 282 libavcodec/vp9.c assign(s->above_txfm_ctx, uint8_t *, 8); s 283 libavcodec/vp9.c assign(s->above_segpred_ctx, uint8_t *, 8); s 284 libavcodec/vp9.c assign(s->above_intra_ctx, uint8_t *, 8); s 285 libavcodec/vp9.c assign(s->above_comp_ctx, uint8_t *, 8); s 286 libavcodec/vp9.c assign(s->above_ref_ctx, uint8_t *, 8); s 287 libavcodec/vp9.c assign(s->above_filter_ctx, uint8_t *, 8); s 288 libavcodec/vp9.c assign(s->lflvl, VP9Filter *, lflvl_len); s 291 libavcodec/vp9.c if (s->td) { s 292 libavcodec/vp9.c for (i = 0; i < s->active_tile_cols; i++) s 293 libavcodec/vp9.c vp9_tile_data_free(&s->td[i]); s 296 libavcodec/vp9.c if (s->s.h.bpp != s->last_bpp) { s 297 libavcodec/vp9.c ff_vp9dsp_init(&s->dsp, s->s.h.bpp, avctx->flags & AV_CODEC_FLAG_BITEXACT); s 298 libavcodec/vp9.c ff_videodsp_init(&s->vdsp, s->s.h.bpp); s 299 libavcodec/vp9.c s->last_bpp = s->s.h.bpp; s 308 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 309 libavcodec/vp9.c int chroma_blocks, chroma_eobs, bytesperpixel = s->bytesperpixel; s 310 libavcodec/vp9.c VP9TileData *td = &s->td[0]; s 312 libavcodec/vp9.c if (td->b_base && td->block_base && s->block_alloc_using_2pass == s->s.frames[CUR_FRAME].uses_2pass) s 316 libavcodec/vp9.c chroma_blocks = 64 * 64 >> (s->ss_h + s->ss_v); s 317 libavcodec/vp9.c chroma_eobs = 16 * 16 >> (s->ss_h + s->ss_v); s 318 libavcodec/vp9.c if (s->s.frames[CUR_FRAME].uses_2pass) { s 319 libavcodec/vp9.c int sbs = s->sb_cols * s->sb_rows; s 321 libavcodec/vp9.c td->b_base = av_malloc_array(s->cols * s->rows, sizeof(VP9Block)); s 333 libavcodec/vp9.c td->block_structure = av_malloc_array(s->cols * s->rows, sizeof(*td->block_structure)); s 338 libavcodec/vp9.c for (i = 1; i < s->active_tile_cols; i++) s 339 libavcodec/vp9.c vp9_tile_data_free(&s->td[i]); s 341 libavcodec/vp9.c for (i = 0; i < s->active_tile_cols; i++) { s 342 libavcodec/vp9.c s->td[i].b_base = av_malloc(sizeof(VP9Block)); s 343 libavcodec/vp9.c s->td[i].block_base = av_mallocz((64 * 64 + 2 * chroma_blocks) * bytesperpixel * sizeof(int16_t) + s 345 libavcodec/vp9.c if (!s->td[i].b_base || !s->td[i].block_base) s 347 libavcodec/vp9.c s->td[i].uvblock_base[0] = s->td[i].block_base + 64 * 64 * bytesperpixel; s 348 libavcodec/vp9.c s->td[i].uvblock_base[1] = s->td[i].uvblock_base[0] + chroma_blocks * bytesperpixel; s 349 libavcodec/vp9.c s->td[i].eob_base = (uint8_t *) (s->td[i].uvblock_base[1] + chroma_blocks * bytesperpixel); s 350 libavcodec/vp9.c s->td[i].uveob_base[0] = s->td[i].eob_base + 16 * 16; s 351 libavcodec/vp9.c s->td[i].uveob_base[1] = s->td[i].uveob_base[0] + chroma_eobs; s 354 libavcodec/vp9.c s->td[i].block_structure = av_malloc_array(s->cols * s->rows, sizeof(*td->block_structure)); s 355 libavcodec/vp9.c if (!s->td[i].block_structure) s 360 libavcodec/vp9.c s->block_alloc_using_2pass = s->s.frames[CUR_FRAME].uses_2pass; s 446 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 447 libavcodec/vp9.c int bits = avctx->profile <= 1 ? 0 : 1 + get_bits1(&s->gb); // 0:8, 1:10, 2:12 s 449 libavcodec/vp9.c s->bpp_index = bits; s 450 libavcodec/vp9.c s->s.h.bpp = 8 + bits * 2; s 451 libavcodec/vp9.c s->bytesperpixel = (7 + s->s.h.bpp) >> 3; s 452 libavcodec/vp9.c avctx->colorspace = colorspaces[get_bits(&s->gb, 3)]; s 457 libavcodec/vp9.c s->ss_h = s->ss_v = 0; s 459 libavcodec/vp9.c s->pix_fmt = pix_fmt_rgb[bits]; s 461 libavcodec/vp9.c if (get_bits1(&s->gb)) { s 479 libavcodec/vp9.c avctx->color_range = get_bits1(&s->gb) ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG; s 481 libavcodec/vp9.c s->ss_h = get_bits1(&s->gb); s 482 libavcodec/vp9.c s->ss_v = get_bits1(&s->gb); s 483 libavcodec/vp9.c s->pix_fmt = pix_fmt_for_ss[bits][s->ss_v][s->ss_h]; s 484 libavcodec/vp9.c if (s->pix_fmt == AV_PIX_FMT_YUV420P) { s 488 libavcodec/vp9.c } else if (get_bits1(&s->gb)) { s 494 libavcodec/vp9.c s->ss_h = s->ss_v = 1; s 495 libavcodec/vp9.c s->pix_fmt = pix_fmt_for_ss[bits][1][1]; s 505 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 511 libavcodec/vp9.c if ((ret = init_get_bits8(&s->gb, data, size)) < 0) { s 515 libavcodec/vp9.c if (get_bits(&s->gb, 2) != 0x2) { // frame marker s 519 libavcodec/vp9.c avctx->profile = get_bits1(&s->gb); s 520 libavcodec/vp9.c avctx->profile |= get_bits1(&s->gb) << 1; s 521 libavcodec/vp9.c if (avctx->profile == 3) avctx->profile += get_bits1(&s->gb); s 526 libavcodec/vp9.c s->s.h.profile = avctx->profile; s 527 libavcodec/vp9.c if (get_bits1(&s->gb)) { s 528 libavcodec/vp9.c *ref = get_bits(&s->gb, 3); s 532 libavcodec/vp9.c s->last_keyframe = s->s.h.keyframe; s 533 libavcodec/vp9.c s->s.h.keyframe = !get_bits1(&s->gb); s 535 libavcodec/vp9.c last_invisible = s->s.h.invisible; s 536 libavcodec/vp9.c s->s.h.invisible = !get_bits1(&s->gb); s 537 libavcodec/vp9.c s->s.h.errorres = get_bits1(&s->gb); s 538 libavcodec/vp9.c s->s.h.use_last_frame_mvs = !s->s.h.errorres && !last_invisible; s 540 libavcodec/vp9.c if (s->s.h.keyframe) { s 541 libavcodec/vp9.c if (get_bits(&s->gb, 24) != VP9_SYNCCODE) { // synccode s 548 libavcodec/vp9.c s->s.h.refreshrefmask = 0xff; s 549 libavcodec/vp9.c w = get_bits(&s->gb, 16) + 1; s 550 libavcodec/vp9.c h = get_bits(&s->gb, 16) + 1; s 551 libavcodec/vp9.c if (get_bits1(&s->gb)) // display size s 552 libavcodec/vp9.c skip_bits(&s->gb, 32); s 554 libavcodec/vp9.c s->s.h.intraonly = s->s.h.invisible ? get_bits1(&s->gb) : 0; s 555 libavcodec/vp9.c s->s.h.resetctx = s->s.h.errorres ? 0 : get_bits(&s->gb, 2); s 556 libavcodec/vp9.c if (s->s.h.intraonly) { s 557 libavcodec/vp9.c if (get_bits(&s->gb, 24) != VP9_SYNCCODE) { // synccode s 565 libavcodec/vp9.c s->ss_h = s->ss_v = 1; s 566 libavcodec/vp9.c s->s.h.bpp = 8; s 567 libavcodec/vp9.c s->bpp_index = 0; s 568 libavcodec/vp9.c s->bytesperpixel = 1; s 569 libavcodec/vp9.c s->pix_fmt = AV_PIX_FMT_YUV420P; s 573 libavcodec/vp9.c s->s.h.refreshrefmask = get_bits(&s->gb, 8); s 574 libavcodec/vp9.c w = get_bits(&s->gb, 16) + 1; s 575 libavcodec/vp9.c h = get_bits(&s->gb, 16) + 1; s 576 libavcodec/vp9.c if (get_bits1(&s->gb)) // display size s 577 libavcodec/vp9.c skip_bits(&s->gb, 32); s 579 libavcodec/vp9.c s->s.h.refreshrefmask = get_bits(&s->gb, 8); s 580 libavcodec/vp9.c s->s.h.refidx[0] = get_bits(&s->gb, 3); s 581 libavcodec/vp9.c s->s.h.signbias[0] = get_bits1(&s->gb) && !s->s.h.errorres; s 582 libavcodec/vp9.c s->s.h.refidx[1] = get_bits(&s->gb, 3); s 583 libavcodec/vp9.c s->s.h.signbias[1] = get_bits1(&s->gb) && !s->s.h.errorres; s 584 libavcodec/vp9.c s->s.h.refidx[2] = get_bits(&s->gb, 3); s 585 libavcodec/vp9.c s->s.h.signbias[2] = get_bits1(&s->gb) && !s->s.h.errorres; s 586 libavcodec/vp9.c if (!s->s.refs[s->s.h.refidx[0]].f->buf[0] || s 587 libavcodec/vp9.c !s->s.refs[s->s.h.refidx[1]].f->buf[0] || s 588 libavcodec/vp9.c !s->s.refs[s->s.h.refidx[2]].f->buf[0]) { s 592 libavcodec/vp9.c if (get_bits1(&s->gb)) { s 593 libavcodec/vp9.c w = s->s.refs[s->s.h.refidx[0]].f->width; s 594 libavcodec/vp9.c h = s->s.refs[s->s.h.refidx[0]].f->height; s 595 libavcodec/vp9.c } else if (get_bits1(&s->gb)) { s 596 libavcodec/vp9.c w = s->s.refs[s->s.h.refidx[1]].f->width; s 597 libavcodec/vp9.c h = s->s.refs[s->s.h.refidx[1]].f->height; s 598 libavcodec/vp9.c } else if (get_bits1(&s->gb)) { s 599 libavcodec/vp9.c w = s->s.refs[s->s.h.refidx[2]].f->width; s 600 libavcodec/vp9.c h = s->s.refs[s->s.h.refidx[2]].f->height; s 602 libavcodec/vp9.c w = get_bits(&s->gb, 16) + 1; s 603 libavcodec/vp9.c h = get_bits(&s->gb, 16) + 1; s 608 libavcodec/vp9.c s->s.h.use_last_frame_mvs &= s->s.frames[CUR_FRAME].tf.f->width == w && s 609 libavcodec/vp9.c s->s.frames[CUR_FRAME].tf.f->height == h; s 610 libavcodec/vp9.c if (get_bits1(&s->gb)) // display size s 611 libavcodec/vp9.c skip_bits(&s->gb, 32); s 612 libavcodec/vp9.c s->s.h.highprecisionmvs = get_bits1(&s->gb); s 613 libavcodec/vp9.c s->s.h.filtermode = get_bits1(&s->gb) ? FILTER_SWITCHABLE : s 614 libavcodec/vp9.c get_bits(&s->gb, 2); s 615 libavcodec/vp9.c s->s.h.allowcompinter = s->s.h.signbias[0] != s->s.h.signbias[1] || s 616 libavcodec/vp9.c s->s.h.signbias[0] != s->s.h.signbias[2]; s 617 libavcodec/vp9.c if (s->s.h.allowcompinter) { s 618 libavcodec/vp9.c if (s->s.h.signbias[0] == s->s.h.signbias[1]) { s 619 libavcodec/vp9.c s->s.h.fixcompref = 2; s 620 libavcodec/vp9.c s->s.h.varcompref[0] = 0; s 621 libavcodec/vp9.c s->s.h.varcompref[1] = 1; s 622 libavcodec/vp9.c } else if (s->s.h.signbias[0] == s->s.h.signbias[2]) { s 623 libavcodec/vp9.c s->s.h.fixcompref = 1; s 624 libavcodec/vp9.c s->s.h.varcompref[0] = 0; s 625 libavcodec/vp9.c s->s.h.varcompref[1] = 2; s 627 libavcodec/vp9.c s->s.h.fixcompref = 0; s 628 libavcodec/vp9.c s->s.h.varcompref[0] = 1; s 629 libavcodec/vp9.c s->s.h.varcompref[1] = 2; s 634 libavcodec/vp9.c s->s.h.refreshctx = s->s.h.errorres ? 0 : get_bits1(&s->gb); s 635 libavcodec/vp9.c s->s.h.parallelmode = s->s.h.errorres ? 1 : get_bits1(&s->gb); s 636 libavcodec/vp9.c s->s.h.framectxid = c = get_bits(&s->gb, 2); s 637 libavcodec/vp9.c if (s->s.h.keyframe || s->s.h.intraonly) s 638 libavcodec/vp9.c s->s.h.framectxid = 0; // BUG: libvpx ignores this field in keyframes s 641 libavcodec/vp9.c if (s->s.h.keyframe || s->s.h.errorres || s->s.h.intraonly) { s 643 libavcodec/vp9.c s->s.h.lf_delta.ref[0] = 1; s 644 libavcodec/vp9.c s->s.h.lf_delta.ref[1] = 0; s 645 libavcodec/vp9.c s->s.h.lf_delta.ref[2] = -1; s 646 libavcodec/vp9.c s->s.h.lf_delta.ref[3] = -1; s 647 libavcodec/vp9.c s->s.h.lf_delta.mode[0] = 0; s 648 libavcodec/vp9.c s->s.h.lf_delta.mode[1] = 0; s 649 libavcodec/vp9.c memset(s->s.h.segmentation.feat, 0, sizeof(s->s.h.segmentation.feat)); s 651 libavcodec/vp9.c s->s.h.filter.level = get_bits(&s->gb, 6); s 652 libavcodec/vp9.c sharp = get_bits(&s->gb, 3); s 655 libavcodec/vp9.c if (s->s.h.filter.sharpness != sharp) { s 665 libavcodec/vp9.c s->filter_lut.lim_lut[i] = limit; s 666 libavcodec/vp9.c s->filter_lut.mblim_lut[i] = 2 * (i + 2) + limit; s 669 libavcodec/vp9.c s->s.h.filter.sharpness = sharp; s 670 libavcodec/vp9.c if ((s->s.h.lf_delta.enabled = get_bits1(&s->gb))) { s 671 libavcodec/vp9.c if ((s->s.h.lf_delta.updated = get_bits1(&s->gb))) { s 673 libavcodec/vp9.c if (get_bits1(&s->gb)) s 674 libavcodec/vp9.c s->s.h.lf_delta.ref[i] = get_sbits_inv(&s->gb, 6); s 676 libavcodec/vp9.c if (get_bits1(&s->gb)) s 677 libavcodec/vp9.c s->s.h.lf_delta.mode[i] = get_sbits_inv(&s->gb, 6); s 682 libavcodec/vp9.c s->s.h.yac_qi = get_bits(&s->gb, 8); s 683 libavcodec/vp9.c s->s.h.ydc_qdelta = get_bits1(&s->gb) ? get_sbits_inv(&s->gb, 4) : 0; s 684 libavcodec/vp9.c s->s.h.uvdc_qdelta = get_bits1(&s->gb) ? get_sbits_inv(&s->gb, 4) : 0; s 685 libavcodec/vp9.c s->s.h.uvac_qdelta = get_bits1(&s->gb) ? get_sbits_inv(&s->gb, 4) : 0; s 686 libavcodec/vp9.c s->s.h.lossless = s->s.h.yac_qi == 0 && s->s.h.ydc_qdelta == 0 && s 687 libavcodec/vp9.c s->s.h.uvdc_qdelta == 0 && s->s.h.uvac_qdelta == 0; s 688 libavcodec/vp9.c if (s->s.h.lossless) s 692 libavcodec/vp9.c if ((s->s.h.segmentation.enabled = get_bits1(&s->gb))) { s 693 libavcodec/vp9.c if ((s->s.h.segmentation.update_map = get_bits1(&s->gb))) { s 695 libavcodec/vp9.c s->s.h.segmentation.prob[i] = get_bits1(&s->gb) ? s 696 libavcodec/vp9.c get_bits(&s->gb, 8) : 255; s 697 libavcodec/vp9.c if ((s->s.h.segmentation.temporal = get_bits1(&s->gb))) s 699 libavcodec/vp9.c s->s.h.segmentation.pred_prob[i] = get_bits1(&s->gb) ? s 700 libavcodec/vp9.c get_bits(&s->gb, 8) : 255; s 703 libavcodec/vp9.c if (get_bits1(&s->gb)) { s 704 libavcodec/vp9.c s->s.h.segmentation.absolute_vals = get_bits1(&s->gb); s 706 libavcodec/vp9.c if ((s->s.h.segmentation.feat[i].q_enabled = get_bits1(&s->gb))) s 707 libavcodec/vp9.c s->s.h.segmentation.feat[i].q_val = get_sbits_inv(&s->gb, 8); s 708 libavcodec/vp9.c if ((s->s.h.segmentation.feat[i].lf_enabled = get_bits1(&s->gb))) s 709 libavcodec/vp9.c s->s.h.segmentation.feat[i].lf_val = get_sbits_inv(&s->gb, 6); s 710 libavcodec/vp9.c if ((s->s.h.segmentation.feat[i].ref_enabled = get_bits1(&s->gb))) s 711 libavcodec/vp9.c s->s.h.segmentation.feat[i].ref_val = get_bits(&s->gb, 2); s 712 libavcodec/vp9.c s->s.h.segmentation.feat[i].skip_enabled = get_bits1(&s->gb); s 718 libavcodec/vp9.c for (i = 0; i < (s->s.h.segmentation.enabled ? 8 : 1); i++) { s 721 libavcodec/vp9.c if (s->s.h.segmentation.enabled && s->s.h.segmentation.feat[i].q_enabled) { s 722 libavcodec/vp9.c if (s->s.h.segmentation.absolute_vals) s 723 libavcodec/vp9.c qyac = av_clip_uintp2(s->s.h.segmentation.feat[i].q_val, 8); s 725 libavcodec/vp9.c qyac = av_clip_uintp2(s->s.h.yac_qi + s->s.h.segmentation.feat[i].q_val, 8); s 727 libavcodec/vp9.c qyac = s->s.h.yac_qi; s 729 libavcodec/vp9.c qydc = av_clip_uintp2(qyac + s->s.h.ydc_qdelta, 8); s 730 libavcodec/vp9.c quvdc = av_clip_uintp2(qyac + s->s.h.uvdc_qdelta, 8); s 731 libavcodec/vp9.c quvac = av_clip_uintp2(qyac + s->s.h.uvac_qdelta, 8); s 734 libavcodec/vp9.c s->s.h.segmentation.feat[i].qmul[0][0] = ff_vp9_dc_qlookup[s->bpp_index][qydc]; s 735 libavcodec/vp9.c s->s.h.segmentation.feat[i].qmul[0][1] = ff_vp9_ac_qlookup[s->bpp_index][qyac]; s 736 libavcodec/vp9.c s->s.h.segmentation.feat[i].qmul[1][0] = ff_vp9_dc_qlookup[s->bpp_index][quvdc]; s 737 libavcodec/vp9.c s->s.h.segmentation.feat[i].qmul[1][1] = ff_vp9_ac_qlookup[s->bpp_index][quvac]; s 739 libavcodec/vp9.c sh = s->s.h.filter.level >= 32; s 740 libavcodec/vp9.c if (s->s.h.segmentation.enabled && s->s.h.segmentation.feat[i].lf_enabled) { s 741 libavcodec/vp9.c if (s->s.h.segmentation.absolute_vals) s 742 libavcodec/vp9.c lflvl = av_clip_uintp2(s->s.h.segmentation.feat[i].lf_val, 6); s 744 libavcodec/vp9.c lflvl = av_clip_uintp2(s->s.h.filter.level + s->s.h.segmentation.feat[i].lf_val, 6); s 746 libavcodec/vp9.c lflvl = s->s.h.filter.level; s 748 libavcodec/vp9.c if (s->s.h.lf_delta.enabled) { s 749 libavcodec/vp9.c s->s.h.segmentation.feat[i].lflvl[0][0] = s 750 libavcodec/vp9.c s->s.h.segmentation.feat[i].lflvl[0][1] = s 751 libavcodec/vp9.c av_clip_uintp2(lflvl + (s->s.h.lf_delta.ref[0] * (1 << sh)), 6); s 753 libavcodec/vp9.c s->s.h.segmentation.feat[i].lflvl[j][0] = s 754 libavcodec/vp9.c av_clip_uintp2(lflvl + ((s->s.h.lf_delta.ref[j] + s 755 libavcodec/vp9.c s->s.h.lf_delta.mode[0]) * (1 << sh)), 6); s 756 libavcodec/vp9.c s->s.h.segmentation.feat[i].lflvl[j][1] = s 757 libavcodec/vp9.c av_clip_uintp2(lflvl + ((s->s.h.lf_delta.ref[j] + s 758 libavcodec/vp9.c s->s.h.lf_delta.mode[1]) * (1 << sh)), 6); s 761 libavcodec/vp9.c memset(s->s.h.segmentation.feat[i].lflvl, lflvl, s 762 libavcodec/vp9.c sizeof(s->s.h.segmentation.feat[i].lflvl)); s 769 libavcodec/vp9.c w, h, s->pix_fmt); s 772 libavcodec/vp9.c for (s->s.h.tiling.log2_tile_cols = 0; s 773 libavcodec/vp9.c s->sb_cols > (64 << s->s.h.tiling.log2_tile_cols); s 774 libavcodec/vp9.c s->s.h.tiling.log2_tile_cols++) ; s 775 libavcodec/vp9.c for (max = 0; (s->sb_cols >> max) >= 4; max++) ; s 777 libavcodec/vp9.c while (max > s->s.h.tiling.log2_tile_cols) { s 778 libavcodec/vp9.c if (get_bits1(&s->gb)) s 779 libavcodec/vp9.c s->s.h.tiling.log2_tile_cols++; s 783 libavcodec/vp9.c s->s.h.tiling.log2_tile_rows = decode012(&s->gb); s 784 libavcodec/vp9.c s->s.h.tiling.tile_rows = 1 << s->s.h.tiling.log2_tile_rows; s 785 libavcodec/vp9.c if (s->s.h.tiling.tile_cols != (1 << s->s.h.tiling.log2_tile_cols)) { s 789 libavcodec/vp9.c if (s->td) { s 790 libavcodec/vp9.c for (i = 0; i < s->active_tile_cols; i++) s 791 libavcodec/vp9.c vp9_tile_data_free(&s->td[i]); s 792 libavcodec/vp9.c av_free(s->td); s 795 libavcodec/vp9.c s->s.h.tiling.tile_cols = 1 << s->s.h.tiling.log2_tile_cols; s 797 libavcodec/vp9.c s->active_tile_cols = avctx->active_thread_type == FF_THREAD_SLICE ? s 798 libavcodec/vp9.c s->s.h.tiling.tile_cols : 1; s 799 libavcodec/vp9.c vp9_alloc_entries(avctx, s->sb_rows); s 803 libavcodec/vp9.c n_range_coders = s->s.h.tiling.tile_cols; s 805 libavcodec/vp9.c s->td = av_mallocz_array(s->active_tile_cols, sizeof(VP9TileData) + s 807 libavcodec/vp9.c if (!s->td) s 809 libavcodec/vp9.c rc = (VP56RangeCoder *) &s->td[s->active_tile_cols]; s 810 libavcodec/vp9.c for (i = 0; i < s->active_tile_cols; i++) { s 811 libavcodec/vp9.c s->td[i].s = s; s 812 libavcodec/vp9.c s->td[i].c_b = rc; s 818 libavcodec/vp9.c if (!s->s.h.keyframe && !s->s.h.intraonly) { s 821 libavcodec/vp9.c AVFrame *ref = s->s.refs[s->s.h.refidx[i]].f; s 831 libavcodec/vp9.c s->mvscale[i][0] = s->mvscale[i][1] = 0; s 839 libavcodec/vp9.c s->mvscale[i][0] = s->mvscale[i][1] = REF_INVALID_SCALE; s 842 libavcodec/vp9.c s->mvscale[i][0] = (refw << 14) / w; s 843 libavcodec/vp9.c s->mvscale[i][1] = (refh << 14) / h; s 844 libavcodec/vp9.c s->mvstep[i][0] = 16 * s->mvscale[i][0] >> 14; s 845 libavcodec/vp9.c s->mvstep[i][1] = 16 * s->mvscale[i][1] >> 14; s 855 libavcodec/vp9.c if (s->s.h.keyframe || s->s.h.errorres || (s->s.h.intraonly && s->s.h.resetctx == 3)) { s 856 libavcodec/vp9.c s->prob_ctx[0].p = s->prob_ctx[1].p = s->prob_ctx[2].p = s 857 libavcodec/vp9.c s->prob_ctx[3].p = ff_vp9_default_probs; s 858 libavcodec/vp9.c memcpy(s->prob_ctx[0].coef, ff_vp9_default_coef_probs, s 860 libavcodec/vp9.c memcpy(s->prob_ctx[1].coef, ff_vp9_default_coef_probs, s 862 libavcodec/vp9.c memcpy(s->prob_ctx[2].coef, ff_vp9_default_coef_probs, s 864 libavcodec/vp9.c memcpy(s->prob_ctx[3].coef, ff_vp9_default_coef_probs, s 866 libavcodec/vp9.c } else if (s->s.h.intraonly && s->s.h.resetctx == 2) { s 867 libavcodec/vp9.c s->prob_ctx[c].p = ff_vp9_default_probs; s 868 libavcodec/vp9.c memcpy(s->prob_ctx[c].coef, ff_vp9_default_coef_probs, s 873 libavcodec/vp9.c s->s.h.compressed_header_size = size2 = get_bits(&s->gb, 16); s 874 libavcodec/vp9.c s->s.h.uncompressed_header_size = (get_bits_count(&s->gb) + 7) / 8; s 876 libavcodec/vp9.c data2 = align_get_bits(&s->gb); s 881 libavcodec/vp9.c ret = ff_vp56_init_range_decoder(&s->c, data2, size2); s 885 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 128)) { // marker bit s 890 libavcodec/vp9.c for (i = 0; i < s->active_tile_cols; i++) { s 891 libavcodec/vp9.c if (s->s.h.keyframe || s->s.h.intraonly) { s 892 libavcodec/vp9.c memset(s->td[i].counts.coef, 0, sizeof(s->td[0].counts.coef)); s 893 libavcodec/vp9.c memset(s->td[i].counts.eob, 0, sizeof(s->td[0].counts.eob)); s 895 libavcodec/vp9.c memset(&s->td[i].counts, 0, sizeof(s->td[0].counts)); s 897 libavcodec/vp9.c s->td[i].nb_block_structure = 0; s 903 libavcodec/vp9.c s->prob.p = s->prob_ctx[c].p; s 906 libavcodec/vp9.c if (s->s.h.lossless) { s 907 libavcodec/vp9.c s->s.h.txfmmode = TX_4X4; s 909 libavcodec/vp9.c s->s.h.txfmmode = vp8_rac_get_uint(&s->c, 2); s 910 libavcodec/vp9.c if (s->s.h.txfmmode == 3) s 911 libavcodec/vp9.c s->s.h.txfmmode += vp8_rac_get(&s->c); s 913 libavcodec/vp9.c if (s->s.h.txfmmode == TX_SWITCHABLE) { s 915 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 916 libavcodec/vp9.c s->prob.p.tx8p[i] = update_prob(&s->c, s->prob.p.tx8p[i]); s 919 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 920 libavcodec/vp9.c s->prob.p.tx16p[i][j] = s 921 libavcodec/vp9.c update_prob(&s->c, s->prob.p.tx16p[i][j]); s 924 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 925 libavcodec/vp9.c s->prob.p.tx32p[i][j] = s 926 libavcodec/vp9.c update_prob(&s->c, s->prob.p.tx32p[i][j]); s 932 libavcodec/vp9.c uint8_t (*ref)[2][6][6][3] = s->prob_ctx[c].coef[i]; s 933 libavcodec/vp9.c if (vp8_rac_get(&s->c)) { s 938 libavcodec/vp9.c uint8_t *p = s->prob.coef[i][j][k][l][m]; s 943 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 944 libavcodec/vp9.c p[n] = update_prob(&s->c, r[n]); s 955 libavcodec/vp9.c uint8_t *p = s->prob.coef[i][j][k][l][m]; s 963 libavcodec/vp9.c if (s->s.h.txfmmode == i) s 969 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 970 libavcodec/vp9.c s->prob.p.skip[i] = update_prob(&s->c, s->prob.p.skip[i]); s 971 libavcodec/vp9.c if (!s->s.h.keyframe && !s->s.h.intraonly) { s 974 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 975 libavcodec/vp9.c s->prob.p.mv_mode[i][j] = s 976 libavcodec/vp9.c update_prob(&s->c, s->prob.p.mv_mode[i][j]); s 978 libavcodec/vp9.c if (s->s.h.filtermode == FILTER_SWITCHABLE) s 981 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 982 libavcodec/vp9.c s->prob.p.filter[i][j] = s 983 libavcodec/vp9.c update_prob(&s->c, s->prob.p.filter[i][j]); s 986 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 987 libavcodec/vp9.c s->prob.p.intra[i] = update_prob(&s->c, s->prob.p.intra[i]); s 989 libavcodec/vp9.c if (s->s.h.allowcompinter) { s 990 libavcodec/vp9.c s->s.h.comppredmode = vp8_rac_get(&s->c); s 991 libavcodec/vp9.c if (s->s.h.comppredmode) s 992 libavcodec/vp9.c s->s.h.comppredmode += vp8_rac_get(&s->c); s 993 libavcodec/vp9.c if (s->s.h.comppredmode == PRED_SWITCHABLE) s 995 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 996 libavcodec/vp9.c s->prob.p.comp[i] = s 997 libavcodec/vp9.c update_prob(&s->c, s->prob.p.comp[i]); s 999 libavcodec/vp9.c s->s.h.comppredmode = PRED_SINGLEREF; s 1002 libavcodec/vp9.c if (s->s.h.comppredmode != PRED_COMPREF) { s 1004 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1005 libavcodec/vp9.c s->prob.p.single_ref[i][0] = s 1006 libavcodec/vp9.c update_prob(&s->c, s->prob.p.single_ref[i][0]); s 1007 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1008 libavcodec/vp9.c s->prob.p.single_ref[i][1] = s 1009 libavcodec/vp9.c update_prob(&s->c, s->prob.p.single_ref[i][1]); s 1013 libavcodec/vp9.c if (s->s.h.comppredmode != PRED_SINGLEREF) { s 1015 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1016 libavcodec/vp9.c s->prob.p.comp_ref[i] = s 1017 libavcodec/vp9.c update_prob(&s->c, s->prob.p.comp_ref[i]); s 1022 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1023 libavcodec/vp9.c s->prob.p.y_mode[i][j] = s 1024 libavcodec/vp9.c update_prob(&s->c, s->prob.p.y_mode[i][j]); s 1029 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1030 libavcodec/vp9.c s->prob.p.partition[3 - i][j][k] = s 1031 libavcodec/vp9.c update_prob(&s->c, s 1032 libavcodec/vp9.c s->prob.p.partition[3 - i][j][k]); s 1036 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1037 libavcodec/vp9.c s->prob.p.mv_joint[i] = (vp8_rac_get_uint(&s->c, 7) << 1) | 1; s 1040 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1041 libavcodec/vp9.c s->prob.p.mv_comp[i].sign = s 1042 libavcodec/vp9.c (vp8_rac_get_uint(&s->c, 7) << 1) | 1; s 1045 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1046 libavcodec/vp9.c s->prob.p.mv_comp[i].classes[j] = s 1047 libavcodec/vp9.c (vp8_rac_get_uint(&s->c, 7) << 1) | 1; s 1049 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1050 libavcodec/vp9.c s->prob.p.mv_comp[i].class0 = s 1051 libavcodec/vp9.c (vp8_rac_get_uint(&s->c, 7) << 1) | 1; s 1054 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1055 libavcodec/vp9.c s->prob.p.mv_comp[i].bits[j] = s 1056 libavcodec/vp9.c (vp8_rac_get_uint(&s->c, 7) << 1) | 1; s 1062 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1063 libavcodec/vp9.c s->prob.p.mv_comp[i].class0_fp[j][k] = s 1064 libavcodec/vp9.c (vp8_rac_get_uint(&s->c, 7) << 1) | 1; s 1067 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1068 libavcodec/vp9.c s->prob.p.mv_comp[i].fp[j] = s 1069 libavcodec/vp9.c (vp8_rac_get_uint(&s->c, 7) << 1) | 1; s 1072 libavcodec/vp9.c if (s->s.h.highprecisionmvs) { s 1074 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1075 libavcodec/vp9.c s->prob.p.mv_comp[i].class0_hp = s 1076 libavcodec/vp9.c (vp8_rac_get_uint(&s->c, 7) << 1) | 1; s 1078 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->c, 252)) s 1079 libavcodec/vp9.c s->prob.p.mv_comp[i].hp = s 1080 libavcodec/vp9.c (vp8_rac_get_uint(&s->c, 7) << 1) | 1; s 1091 libavcodec/vp9.c const VP9Context *s = td->s; s 1092 libavcodec/vp9.c int c = ((s->above_partition_ctx[col] >> (3 - bl)) & 1) | s 1094 libavcodec/vp9.c const uint8_t *p = s->s.h.keyframe || s->s.h.intraonly ? ff_vp9_default_kf_partition_probs[bl][c] : s 1095 libavcodec/vp9.c s->prob.p.partition[bl][c]; s 1098 libavcodec/vp9.c AVFrame *f = s->s.frames[CUR_FRAME].tf.f; s 1100 libavcodec/vp9.c int bytesperpixel = s->bytesperpixel; s 1105 libavcodec/vp9.c } else if (col + hbs < s->cols) { // FIXME why not <=? s 1106 libavcodec/vp9.c if (row + hbs < s->rows) { // FIXME why not <=? s 1115 libavcodec/vp9.c uvoff += hbs * 8 * uv_stride >> s->ss_v; s 1121 libavcodec/vp9.c uvoff += hbs * 8 * bytesperpixel >> s->ss_h; s 1128 libavcodec/vp9.c uvoff + (8 * hbs * bytesperpixel >> s->ss_h), bl + 1); s 1130 libavcodec/vp9.c uvoff += hbs * 8 * uv_stride >> s->ss_v; s 1134 libavcodec/vp9.c uvoff + (8 * hbs * bytesperpixel >> s->ss_h), bl + 1); s 1144 libavcodec/vp9.c uvoff + (8 * hbs * bytesperpixel >> s->ss_h), bl + 1); s 1149 libavcodec/vp9.c } else if (row + hbs < s->rows) { // FIXME why not <=? s 1154 libavcodec/vp9.c uvoff += hbs * 8 * uv_stride >> s->ss_v; s 1170 libavcodec/vp9.c const VP9Context *s = td->s; s 1173 libavcodec/vp9.c AVFrame *f = s->s.frames[CUR_FRAME].tf.f; s 1175 libavcodec/vp9.c int bytesperpixel = s->bytesperpixel; s 1182 libavcodec/vp9.c if (b->bp == PARTITION_H && row + hbs < s->rows) { s 1184 libavcodec/vp9.c uvoff += hbs * 8 * uv_stride >> s->ss_v; s 1186 libavcodec/vp9.c } else if (b->bp == PARTITION_V && col + hbs < s->cols) { s 1188 libavcodec/vp9.c uvoff += hbs * 8 * bytesperpixel >> s->ss_h; s 1193 libavcodec/vp9.c if (col + hbs < s->cols) { // FIXME why not <=? s 1194 libavcodec/vp9.c if (row + hbs < s->rows) { s 1196 libavcodec/vp9.c uvoff + (8 * hbs * bytesperpixel >> s->ss_h), bl + 1); s 1198 libavcodec/vp9.c uvoff += hbs * 8 * uv_stride >> s->ss_v; s 1202 libavcodec/vp9.c uvoff + (8 * hbs * bytesperpixel >> s->ss_h), bl + 1); s 1205 libavcodec/vp9.c uvoff += hbs * 8 * bytesperpixel >> s->ss_h; s 1208 libavcodec/vp9.c } else if (row + hbs < s->rows) { s 1210 libavcodec/vp9.c uvoff += hbs * 8 * uv_stride >> s->ss_v; s 1224 libavcodec/vp9.c static void free_buffers(VP9Context *s) s 1228 libavcodec/vp9.c av_freep(&s->intra_pred_data[0]); s 1229 libavcodec/vp9.c for (i = 0; i < s->active_tile_cols; i++) s 1230 libavcodec/vp9.c vp9_tile_data_free(&s->td[i]); s 1235 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 1239 libavcodec/vp9.c vp9_frame_unref(avctx, &s->s.frames[i]); s 1240 libavcodec/vp9.c av_frame_free(&s->s.frames[i].tf.f); s 1242 libavcodec/vp9.c av_buffer_pool_uninit(&s->frame_extradata_pool); s 1244 libavcodec/vp9.c ff_thread_release_buffer(avctx, &s->s.refs[i]); s 1245 libavcodec/vp9.c av_frame_free(&s->s.refs[i].f); s 1246 libavcodec/vp9.c ff_thread_release_buffer(avctx, &s->next_refs[i]); s 1247 libavcodec/vp9.c av_frame_free(&s->next_refs[i].f); s 1250 libavcodec/vp9.c free_buffers(s); s 1252 libavcodec/vp9.c av_freep(&s->td); s 1259 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 1260 libavcodec/vp9.c VP9TileData *td = &s->td[0]; s 1267 libavcodec/vp9.c f = s->s.frames[CUR_FRAME].tf.f; s 1270 libavcodec/vp9.c bytesperpixel = s->bytesperpixel; s 1273 libavcodec/vp9.c for (tile_row = 0; tile_row < s->s.h.tiling.tile_rows; tile_row++) { s 1275 libavcodec/vp9.c tile_row, s->s.h.tiling.log2_tile_rows, s->sb_rows); s 1277 libavcodec/vp9.c for (tile_col = 0; tile_col < s->s.h.tiling.tile_cols; tile_col++) { s 1280 libavcodec/vp9.c if (tile_col == s->s.h.tiling.tile_cols - 1 && s 1281 libavcodec/vp9.c tile_row == s->s.h.tiling.tile_rows - 1) { s 1289 libavcodec/vp9.c ff_thread_report_progress(&s->s.frames[CUR_FRAME].tf, INT_MAX, 0); s 1296 libavcodec/vp9.c ff_thread_report_progress(&s->s.frames[CUR_FRAME].tf, INT_MAX, 0); s 1304 libavcodec/vp9.c row += 8, yoff += ls_y * 64, uvoff += ls_uv * 64 >> s->ss_v) { s 1305 libavcodec/vp9.c VP9Filter *lflvl_ptr = s->lflvl; s 1308 libavcodec/vp9.c for (tile_col = 0; tile_col < s->s.h.tiling.tile_cols; tile_col++) { s 1310 libavcodec/vp9.c tile_col, s->s.h.tiling.log2_tile_cols, s->sb_cols); s 1312 libavcodec/vp9.c if (s->pass != 2) { s 1315 libavcodec/vp9.c if (s->s.h.keyframe || s->s.h.intraonly) { s 1330 libavcodec/vp9.c uvoff2 += 64 * bytesperpixel >> s->ss_h, lflvl_ptr++) { s 1333 libavcodec/vp9.c if (s->pass != 1) { s 1337 libavcodec/vp9.c if (s->pass == 2) { s 1350 libavcodec/vp9.c if (s->pass == 1) s 1355 libavcodec/vp9.c if (row + 8 < s->rows) { s 1356 libavcodec/vp9.c memcpy(s->intra_pred_data[0], s 1358 libavcodec/vp9.c 8 * s->cols * bytesperpixel); s 1359 libavcodec/vp9.c memcpy(s->intra_pred_data[1], s 1360 libavcodec/vp9.c f->data[1] + uvoff + ((64 >> s->ss_v) - 1) * ls_uv, s 1361 libavcodec/vp9.c 8 * s->cols * bytesperpixel >> s->ss_h); s 1362 libavcodec/vp9.c memcpy(s->intra_pred_data[2], s 1363 libavcodec/vp9.c f->data[2] + uvoff + ((64 >> s->ss_v) - 1) * ls_uv, s 1364 libavcodec/vp9.c 8 * s->cols * bytesperpixel >> s->ss_h); s 1368 libavcodec/vp9.c if (s->s.h.filter.level) { s 1371 libavcodec/vp9.c lflvl_ptr = s->lflvl; s 1372 libavcodec/vp9.c for (col = 0; col < s->cols; s 1374 libavcodec/vp9.c uvoff2 += 64 * bytesperpixel >> s->ss_h, lflvl_ptr++) { s 1383 libavcodec/vp9.c ff_thread_report_progress(&s->s.frames[CUR_FRAME].tf, row >> 3, 0); s 1394 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 1395 libavcodec/vp9.c VP9TileData *td = &s->td[jobnr]; s 1397 libavcodec/vp9.c int bytesperpixel = s->bytesperpixel, row, col, tile_row; s 1403 libavcodec/vp9.c f = s->s.frames[CUR_FRAME].tf.f; s 1408 libavcodec/vp9.c jobnr, s->s.h.tiling.log2_tile_cols, s->sb_cols); s 1410 libavcodec/vp9.c uvoff = (64 * bytesperpixel >> s->ss_h)*(tile_col_start >> 3); s 1412 libavcodec/vp9.c lflvl_ptr_base = s->lflvl+(tile_col_start >> 3); s 1414 libavcodec/vp9.c for (tile_row = 0; tile_row < s->s.h.tiling.tile_rows; tile_row++) { s 1416 libavcodec/vp9.c tile_row, s->s.h.tiling.log2_tile_rows, s->sb_rows); s 1420 libavcodec/vp9.c row += 8, yoff += ls_y * 64, uvoff += ls_uv * 64 >> s->ss_v) { s 1422 libavcodec/vp9.c VP9Filter *lflvl_ptr = lflvl_ptr_base+s->sb_cols*(row >> 3); s 1426 libavcodec/vp9.c if (s->s.h.keyframe || s->s.h.intraonly) { s 1438 libavcodec/vp9.c uvoff2 += 64 * bytesperpixel >> s->ss_h, lflvl_ptr++) { s 1449 libavcodec/vp9.c if (row + 8 < s->rows) { s 1450 libavcodec/vp9.c memcpy(s->intra_pred_data[0] + (tile_col_start * 8 * bytesperpixel), s 1453 libavcodec/vp9.c memcpy(s->intra_pred_data[1] + (tile_col_start * 8 * bytesperpixel >> s->ss_h), s 1454 libavcodec/vp9.c f->data[1] + uvoff + ((64 >> s->ss_v) - 1) * ls_uv, s 1455 libavcodec/vp9.c 8 * tile_cols_len * bytesperpixel >> s->ss_h); s 1456 libavcodec/vp9.c memcpy(s->intra_pred_data[2] + (tile_col_start * 8 * bytesperpixel >> s->ss_h), s 1457 libavcodec/vp9.c f->data[2] + uvoff + ((64 >> s->ss_v) - 1) * ls_uv, s 1458 libavcodec/vp9.c 8 * tile_cols_len * bytesperpixel >> s->ss_h); s 1461 libavcodec/vp9.c vp9_report_tile_progress(s, row >> 3, 1); s 1470 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 1473 libavcodec/vp9.c int bytesperpixel = s->bytesperpixel, col, i; s 1476 libavcodec/vp9.c f = s->s.frames[CUR_FRAME].tf.f; s 1480 libavcodec/vp9.c for (i = 0; i < s->sb_rows; i++) { s 1481 libavcodec/vp9.c vp9_await_tile_progress(s, i, s->s.h.tiling.tile_cols); s 1483 libavcodec/vp9.c if (s->s.h.filter.level) { s 1485 libavcodec/vp9.c uvoff = (ls_uv * 64 >> s->ss_v)*i; s 1486 libavcodec/vp9.c lflvl_ptr = s->lflvl+s->sb_cols*i; s 1487 libavcodec/vp9.c for (col = 0; col < s->cols; s 1489 libavcodec/vp9.c uvoff += 64 * bytesperpixel >> s->ss_h, lflvl_ptr++) { s 1499 libavcodec/vp9.c static int vp9_export_enc_params(VP9Context *s, VP9Frame *frame) s 1504 libavcodec/vp9.c if (s->s.h.segmentation.enabled) { s 1505 libavcodec/vp9.c for (tile = 0; tile < s->active_tile_cols; tile++) s 1506 libavcodec/vp9.c nb_blocks += s->td[tile].nb_block_structure; s 1514 libavcodec/vp9.c par->qp = s->s.h.yac_qi; s 1515 libavcodec/vp9.c par->delta_qp[0][0] = s->s.h.ydc_qdelta; s 1516 libavcodec/vp9.c par->delta_qp[1][0] = s->s.h.uvdc_qdelta; s 1517 libavcodec/vp9.c par->delta_qp[2][0] = s->s.h.uvdc_qdelta; s 1518 libavcodec/vp9.c par->delta_qp[1][1] = s->s.h.uvac_qdelta; s 1519 libavcodec/vp9.c par->delta_qp[2][1] = s->s.h.uvac_qdelta; s 1525 libavcodec/vp9.c for (tile = 0; tile < s->active_tile_cols; tile++) { s 1526 libavcodec/vp9.c VP9TileData *td = &s->td[tile]; s 1532 libavcodec/vp9.c uint8_t seg_id = frame->segmentation_map[row * 8 * s->sb_cols + col]; s 1539 libavcodec/vp9.c if (s->s.h.segmentation.feat[seg_id].q_enabled) { s 1540 libavcodec/vp9.c b->delta_qp = s->s.h.segmentation.feat[seg_id].q_val; s 1541 libavcodec/vp9.c if (s->s.h.segmentation.absolute_vals) s 1556 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 1558 libavcodec/vp9.c int retain_segmap_ref = s->s.frames[REF_FRAME_SEGMAP].segmentation_map && s 1559 libavcodec/vp9.c (!s->s.h.segmentation.enabled || !s->s.h.segmentation.update_map); s 1565 libavcodec/vp9.c if (!s->s.refs[ref].f->buf[0]) { s 1569 libavcodec/vp9.c if ((ret = av_frame_ref(frame, s->s.refs[ref].f)) < 0) s 1579 libavcodec/vp9.c if (s->next_refs[i].f->buf[0]) s 1580 libavcodec/vp9.c ff_thread_release_buffer(avctx, &s->next_refs[i]); s 1581 libavcodec/vp9.c if (s->s.refs[i].f->buf[0] && s 1582 libavcodec/vp9.c (ret = ff_thread_ref_frame(&s->next_refs[i], &s->s.refs[i])) < 0) s 1591 libavcodec/vp9.c if (!retain_segmap_ref || s->s.h.keyframe || s->s.h.intraonly) { s 1592 libavcodec/vp9.c if (s->s.frames[REF_FRAME_SEGMAP].tf.f->buf[0]) s 1593 libavcodec/vp9.c vp9_frame_unref(avctx, &s->s.frames[REF_FRAME_SEGMAP]); s 1594 libavcodec/vp9.c if (!s->s.h.keyframe && !s->s.h.intraonly && !s->s.h.errorres && s->s.frames[CUR_FRAME].tf.f->buf[0] && s 1595 libavcodec/vp9.c (ret = vp9_frame_ref(avctx, &s->s.frames[REF_FRAME_SEGMAP], &s->s.frames[CUR_FRAME])) < 0) s 1598 libavcodec/vp9.c if (s->s.frames[REF_FRAME_MVPAIR].tf.f->buf[0]) s 1599 libavcodec/vp9.c vp9_frame_unref(avctx, &s->s.frames[REF_FRAME_MVPAIR]); s 1600 libavcodec/vp9.c if (!s->s.h.intraonly && !s->s.h.keyframe && !s->s.h.errorres && s->s.frames[CUR_FRAME].tf.f->buf[0] && s 1601 libavcodec/vp9.c (ret = vp9_frame_ref(avctx, &s->s.frames[REF_FRAME_MVPAIR], &s->s.frames[CUR_FRAME])) < 0) s 1603 libavcodec/vp9.c if (s->s.frames[CUR_FRAME].tf.f->buf[0]) s 1604 libavcodec/vp9.c vp9_frame_unref(avctx, &s->s.frames[CUR_FRAME]); s 1605 libavcodec/vp9.c if ((ret = vp9_frame_alloc(avctx, &s->s.frames[CUR_FRAME])) < 0) s 1607 libavcodec/vp9.c f = s->s.frames[CUR_FRAME].tf.f; s 1608 libavcodec/vp9.c f->key_frame = s->s.h.keyframe; s 1609 libavcodec/vp9.c f->pict_type = (s->s.h.keyframe || s->s.h.intraonly) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; s 1611 libavcodec/vp9.c if (s->s.frames[REF_FRAME_SEGMAP].tf.f->buf[0] && s 1612 libavcodec/vp9.c (s->s.frames[REF_FRAME_MVPAIR].tf.f->width != s->s.frames[CUR_FRAME].tf.f->width || s 1613 libavcodec/vp9.c s->s.frames[REF_FRAME_MVPAIR].tf.f->height != s->s.frames[CUR_FRAME].tf.f->height)) { s 1614 libavcodec/vp9.c vp9_frame_unref(avctx, &s->s.frames[REF_FRAME_SEGMAP]); s 1619 libavcodec/vp9.c if (s->next_refs[i].f->buf[0]) s 1620 libavcodec/vp9.c ff_thread_release_buffer(avctx, &s->next_refs[i]); s 1621 libavcodec/vp9.c if (s->s.h.refreshrefmask & (1 << i)) { s 1622 libavcodec/vp9.c ret = ff_thread_ref_frame(&s->next_refs[i], &s->s.frames[CUR_FRAME].tf); s 1623 libavcodec/vp9.c } else if (s->s.refs[i].f->buf[0]) { s 1624 libavcodec/vp9.c ret = ff_thread_ref_frame(&s->next_refs[i], &s->s.refs[i]); s 1644 libavcodec/vp9.c memset(s->above_partition_ctx, 0, s->cols); s 1645 libavcodec/vp9.c memset(s->above_skip_ctx, 0, s->cols); s 1646 libavcodec/vp9.c if (s->s.h.keyframe || s->s.h.intraonly) { s 1647 libavcodec/vp9.c memset(s->above_mode_ctx, DC_PRED, s->cols * 2); s 1649 libavcodec/vp9.c memset(s->above_mode_ctx, NEARESTMV, s->cols); s 1651 libavcodec/vp9.c memset(s->above_y_nnz_ctx, 0, s->sb_cols * 16); s 1652 libavcodec/vp9.c memset(s->above_uv_nnz_ctx[0], 0, s->sb_cols * 16 >> s->ss_h); s 1653 libavcodec/vp9.c memset(s->above_uv_nnz_ctx[1], 0, s->sb_cols * 16 >> s->ss_h); s 1654 libavcodec/vp9.c memset(s->above_segpred_ctx, 0, s->cols); s 1655 libavcodec/vp9.c s->pass = s->s.frames[CUR_FRAME].uses_2pass = s 1656 libavcodec/vp9.c avctx->active_thread_type == FF_THREAD_FRAME && s->s.h.refreshctx && !s->s.h.parallelmode; s 1662 libavcodec/vp9.c if (s->s.h.refreshctx && s->s.h.parallelmode) { s 1670 libavcodec/vp9.c memcpy(s->prob_ctx[s->s.h.framectxid].coef[i][j][k][l][m], s 1671 libavcodec/vp9.c s->prob.coef[i][j][k][l][m], 3); s 1672 libavcodec/vp9.c if (s->s.h.txfmmode == i) s 1675 libavcodec/vp9.c s->prob_ctx[s->s.h.framectxid].p = s->prob.p; s 1677 libavcodec/vp9.c } else if (!s->s.h.refreshctx) { s 1683 libavcodec/vp9.c for (i = 0; i < s->sb_rows; i++) s 1684 libavcodec/vp9.c atomic_store(&s->entries[i], 0); s 1689 libavcodec/vp9.c for (i = 0; i < s->active_tile_cols; i++) { s 1690 libavcodec/vp9.c s->td[i].b = s->td[i].b_base; s 1691 libavcodec/vp9.c s->td[i].block = s->td[i].block_base; s 1692 libavcodec/vp9.c s->td[i].uvblock[0] = s->td[i].uvblock_base[0]; s 1693 libavcodec/vp9.c s->td[i].uvblock[1] = s->td[i].uvblock_base[1]; s 1694 libavcodec/vp9.c s->td[i].eob = s->td[i].eob_base; s 1695 libavcodec/vp9.c s->td[i].uveob[0] = s->td[i].uveob_base[0]; s 1696 libavcodec/vp9.c s->td[i].uveob[1] = s->td[i].uveob_base[1]; s 1697 libavcodec/vp9.c s->td[i].error_info = 0; s 1704 libavcodec/vp9.c av_assert1(!s->pass); s 1706 libavcodec/vp9.c for (tile_row = 0; tile_row < s->s.h.tiling.tile_rows; tile_row++) { s 1707 libavcodec/vp9.c for (tile_col = 0; tile_col < s->s.h.tiling.tile_cols; tile_col++) { s 1710 libavcodec/vp9.c if (tile_col == s->s.h.tiling.tile_cols - 1 && s 1711 libavcodec/vp9.c tile_row == s->s.h.tiling.tile_rows - 1) { s 1720 libavcodec/vp9.c ret = ff_vp56_init_range_decoder(&s->td[tile_col].c_b[tile_row], data, tile_size); s 1723 libavcodec/vp9.c if (vp56_rac_get_prob_branchy(&s->td[tile_col].c_b[tile_row], 128)) // marker bit s 1730 libavcodec/vp9.c ff_slice_thread_execute_with_mainfunc(avctx, decode_tiles_mt, loopfilter_proc, s->td, NULL, s->s.h.tiling.tile_cols); s 1736 libavcodec/vp9.c ff_thread_report_progress(&s->s.frames[CUR_FRAME].tf, INT_MAX, 0); s 1743 libavcodec/vp9.c for (i = 1; i < s->s.h.tiling.tile_cols; i++) s 1744 libavcodec/vp9.c for (j = 0; j < sizeof(s->td[i].counts) / sizeof(unsigned); j++) s 1745 libavcodec/vp9.c ((unsigned *)&s->td[0].counts)[j] += ((unsigned *)&s->td[i].counts)[j]; s 1747 libavcodec/vp9.c if (s->pass < 2 && s->s.h.refreshctx && !s->s.h.parallelmode) { s 1748 libavcodec/vp9.c ff_vp9_adapt_probs(s); s 1751 libavcodec/vp9.c } while (s->pass++ == 1); s 1752 libavcodec/vp9.c ff_thread_report_progress(&s->s.frames[CUR_FRAME].tf, INT_MAX, 0); s 1754 libavcodec/vp9.c if (s->td->error_info < 0) { s 1756 libavcodec/vp9.c s->td->error_info = 0; s 1760 libavcodec/vp9.c ret = vp9_export_enc_params(s, &s->s.frames[CUR_FRAME]); s 1768 libavcodec/vp9.c if (s->s.refs[i].f->buf[0]) s 1769 libavcodec/vp9.c ff_thread_release_buffer(avctx, &s->s.refs[i]); s 1770 libavcodec/vp9.c if (s->next_refs[i].f->buf[0] && s 1771 libavcodec/vp9.c (ret = ff_thread_ref_frame(&s->s.refs[i], &s->next_refs[i])) < 0) s 1775 libavcodec/vp9.c if (!s->s.h.invisible) { s 1776 libavcodec/vp9.c if ((ret = av_frame_ref(frame, s->s.frames[CUR_FRAME].tf.f)) < 0) s 1786 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 1790 libavcodec/vp9.c vp9_frame_unref(avctx, &s->s.frames[i]); s 1792 libavcodec/vp9.c ff_thread_release_buffer(avctx, &s->s.refs[i]); s 1797 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 1801 libavcodec/vp9.c s->s.frames[i].tf.f = av_frame_alloc(); s 1802 libavcodec/vp9.c if (!s->s.frames[i].tf.f) { s 1809 libavcodec/vp9.c s->s.refs[i].f = av_frame_alloc(); s 1810 libavcodec/vp9.c s->next_refs[i].f = av_frame_alloc(); s 1811 libavcodec/vp9.c if (!s->s.refs[i].f || !s->next_refs[i].f) { s 1823 libavcodec/vp9.c VP9Context *s = avctx->priv_data; s 1825 libavcodec/vp9.c s->last_bpp = 0; s 1826 libavcodec/vp9.c s->s.h.filter.sharpness = -1; s 1835 libavcodec/vp9.c VP9Context *s = dst->priv_data, *ssrc = src->priv_data; s 1838 libavcodec/vp9.c if (s->s.frames[i].tf.f->buf[0]) s 1839 libavcodec/vp9.c vp9_frame_unref(dst, &s->s.frames[i]); s 1840 libavcodec/vp9.c if (ssrc->s.frames[i].tf.f->buf[0]) { s 1841 libavcodec/vp9.c if ((ret = vp9_frame_ref(dst, &s->s.frames[i], &ssrc->s.frames[i])) < 0) s 1846 libavcodec/vp9.c if (s->s.refs[i].f->buf[0]) s 1847 libavcodec/vp9.c ff_thread_release_buffer(dst, &s->s.refs[i]); s 1849 libavcodec/vp9.c if ((ret = ff_thread_ref_frame(&s->s.refs[i], &ssrc->next_refs[i])) < 0) s 1854 libavcodec/vp9.c s->s.h.invisible = ssrc->s.h.invisible; s 1855 libavcodec/vp9.c s->s.h.keyframe = ssrc->s.h.keyframe; s 1856 libavcodec/vp9.c s->s.h.intraonly = ssrc->s.h.intraonly; s 1857 libavcodec/vp9.c s->ss_v = ssrc->ss_v; s 1858 libavcodec/vp9.c s->ss_h = ssrc->ss_h; s 1859 libavcodec/vp9.c s->s.h.segmentation.enabled = ssrc->s.h.segmentation.enabled; s 1860 libavcodec/vp9.c s->s.h.segmentation.update_map = ssrc->s.h.segmentation.update_map; s 1861 libavcodec/vp9.c s->s.h.segmentation.absolute_vals = ssrc->s.h.segmentation.absolute_vals; s 1862 libavcodec/vp9.c s->bytesperpixel = ssrc->bytesperpixel; s 1863 libavcodec/vp9.c s->gf_fmt = ssrc->gf_fmt; s 1864 libavcodec/vp9.c s->w = ssrc->w; s 1865 libavcodec/vp9.c s->h = ssrc->h; s 1866 libavcodec/vp9.c s->s.h.bpp = ssrc->s.h.bpp; s 1867 libavcodec/vp9.c s->bpp_index = ssrc->bpp_index; s 1868 libavcodec/vp9.c s->pix_fmt = ssrc->pix_fmt; s 1869 libavcodec/vp9.c memcpy(&s->prob_ctx, &ssrc->prob_ctx, sizeof(s->prob_ctx)); s 1870 libavcodec/vp9.c memcpy(&s->s.h.lf_delta, &ssrc->s.h.lf_delta, sizeof(s->s.h.lf_delta)); s 1871 libavcodec/vp9.c memcpy(&s->s.h.segmentation.feat, &ssrc->s.h.segmentation.feat, s 1872 libavcodec/vp9.c sizeof(s->s.h.segmentation.feat)); s 36 libavcodec/vp9_mc_template.c VP9Context *s = td->s; s 39 libavcodec/vp9_mc_template.c ThreadFrame *tref1 = &s->s.refs[s->s.h.refidx[b->ref[0]]], *tref2; s 46 libavcodec/vp9_mc_template.c tref2 = &s->s.refs[s->s.h.refidx[b->ref[1]]]; s 65 libavcodec/vp9_mc_template.c w1 = (w1 + s->ss_h) >> s->ss_h; s 66 libavcodec/vp9_mc_template.c if (s->ss_v) { s 69 libavcodec/vp9_mc_template.c mc_chroma_dir(td, mc[3 + s->ss_h][b->filter][0], s 73 libavcodec/vp9_mc_template.c row << 2, col << (3 - s->ss_h), s 74 libavcodec/vp9_mc_template.c &uvmv,,,,, 8 >> s->ss_h, 4, w1, h1, 0); s 76 libavcodec/vp9_mc_template.c mc_chroma_dir(td, mc[3 + s->ss_h][b->filter][0], s 80 libavcodec/vp9_mc_template.c row << 3, col << (3 - s->ss_h), s 81 libavcodec/vp9_mc_template.c &b->mv[0][0],,,,, 8 >> s->ss_h, 4, w1, h1, 0); s 85 libavcodec/vp9_mc_template.c if (s->ss_h == 0) { s 90 libavcodec/vp9_mc_template.c mc_chroma_dir(td, mc[3 + s->ss_h][b->filter][0], s 94 libavcodec/vp9_mc_template.c (row << 3) + 4, col << (3 - s->ss_h), s 95 libavcodec/vp9_mc_template.c &uvmv,,,,, 8 >> s->ss_h, 4, w1, h1, 0); s 106 libavcodec/vp9_mc_template.c w2 = (w2 + s->ss_h) >> s->ss_h; s 107 libavcodec/vp9_mc_template.c if (s->ss_v) { s 110 libavcodec/vp9_mc_template.c mc_chroma_dir(td, mc[3 + s->ss_h][b->filter][1], s 114 libavcodec/vp9_mc_template.c row << 2, col << (3 - s->ss_h), s 115 libavcodec/vp9_mc_template.c &uvmv,,,,, 8 >> s->ss_h, 4, w2, h2, 1); s 117 libavcodec/vp9_mc_template.c mc_chroma_dir(td, mc[3 + s->ss_h][b->filter][1], s 121 libavcodec/vp9_mc_template.c row << 3, col << (3 - s->ss_h), s 122 libavcodec/vp9_mc_template.c &b->mv[0][1],,,,, 8 >> s->ss_h, 4, w2, h2, 1); s 126 libavcodec/vp9_mc_template.c if (s->ss_h == 0) { s 131 libavcodec/vp9_mc_template.c mc_chroma_dir(td, mc[3 + s->ss_h][b->filter][1], s 135 libavcodec/vp9_mc_template.c (row << 3) + 4, col << (3 - s->ss_h), s 136 libavcodec/vp9_mc_template.c &uvmv,,,,, 8 >> s->ss_h, 4, w2, h2, 1); s 146 libavcodec/vp9_mc_template.c h1 = (h1 + s->ss_v) >> s->ss_v; s 147 libavcodec/vp9_mc_template.c if (s->ss_h) { s 154 libavcodec/vp9_mc_template.c row << (3 - s->ss_v), col << 2, s 155 libavcodec/vp9_mc_template.c &uvmv,,,,, 4, 8 >> s->ss_v, w1, h1, 0); s 161 libavcodec/vp9_mc_template.c row << (3 - s->ss_v), col << 3, s 162 libavcodec/vp9_mc_template.c &b->mv[0][0],,,,, 4, 8 >> s->ss_v, w1, h1, 0); s 168 libavcodec/vp9_mc_template.c row << (3 - s->ss_v), (col << 3) + 4, s 169 libavcodec/vp9_mc_template.c &b->mv[1][0],,,,, 4, 8 >> s->ss_v, w1, h1, 0); s 179 libavcodec/vp9_mc_template.c h2 = (h2 + s->ss_v) >> s->ss_v; s 180 libavcodec/vp9_mc_template.c if (s->ss_h) { s 187 libavcodec/vp9_mc_template.c row << (3 - s->ss_v), col << 2, s 188 libavcodec/vp9_mc_template.c &uvmv,,,,, 4, 8 >> s->ss_v, w2, h2, 1); s 194 libavcodec/vp9_mc_template.c row << (3 - s->ss_v), col << 3, s 195 libavcodec/vp9_mc_template.c &b->mv[0][1],,,,, 4, 8 >> s->ss_v, w2, h2, 1); s 201 libavcodec/vp9_mc_template.c row << (3 - s->ss_v), (col << 3) + 4, s 202 libavcodec/vp9_mc_template.c &b->mv[1][1],,,,, 4, 8 >> s->ss_v, w2, h2, 1); s 232 libavcodec/vp9_mc_template.c if (s->ss_v) { s 234 libavcodec/vp9_mc_template.c if (s->ss_h) { s 262 libavcodec/vp9_mc_template.c if (s->ss_h) { s 326 libavcodec/vp9_mc_template.c if (s->ss_v) { s 328 libavcodec/vp9_mc_template.c if (s->ss_h) { s 356 libavcodec/vp9_mc_template.c if (s->ss_h) { s 410 libavcodec/vp9_mc_template.c int uvbw = ff_vp9_bwh_tab[s->ss_h][b->bs][0] * 4; s 411 libavcodec/vp9_mc_template.c int uvbh = ff_vp9_bwh_tab[s->ss_v][b->bs][1] * 4; s 416 libavcodec/vp9_mc_template.c w1 = (w1 + s->ss_h) >> s->ss_h; s 417 libavcodec/vp9_mc_template.c h1 = (h1 + s->ss_v) >> s->ss_v; s 418 libavcodec/vp9_mc_template.c mc_chroma_dir(td, mc[bwl + s->ss_h][b->filter][0], s 422 libavcodec/vp9_mc_template.c row << (3 - s->ss_v), col << (3 - s->ss_h), s 429 libavcodec/vp9_mc_template.c w2 = (w2 + s->ss_h) >> s->ss_h; s 430 libavcodec/vp9_mc_template.c h2 = (h2 + s->ss_v) >> s->ss_v; s 431 libavcodec/vp9_mc_template.c mc_chroma_dir(td, mc[bwl + s->ss_h][b->filter][1], s 435 libavcodec/vp9_mc_template.c row << (3 - s->ss_v), col << (3 - s->ss_h), s 63 libavcodec/vp9_raw_reorder_bsf.c static void vp9_raw_reorder_clear_slot(VP9RawReorderContext *ctx, int s) s 65 libavcodec/vp9_raw_reorder_bsf.c if (ctx->slot[s]) { s 66 libavcodec/vp9_raw_reorder_bsf.c ctx->slot[s]->slots &= ~(1 << s); s 67 libavcodec/vp9_raw_reorder_bsf.c if (ctx->slot[s]->slots == 0) s 68 libavcodec/vp9_raw_reorder_bsf.c vp9_raw_reorder_frame_free(&ctx->slot[s]); s 70 libavcodec/vp9_raw_reorder_bsf.c ctx->slot[s] = NULL; s 178 libavcodec/vp9_raw_reorder_bsf.c int s, err; s 180 libavcodec/vp9_raw_reorder_bsf.c for (s = 0; s < FRAME_SLOTS; s++) { s 181 libavcodec/vp9_raw_reorder_bsf.c frame = ctx->slot[s]; s 237 libavcodec/vp9_raw_reorder_bsf.c s = ff_ctz(frame->slots); s 238 libavcodec/vp9_raw_reorder_bsf.c av_assert0(s < FRAME_SLOTS); s 242 libavcodec/vp9_raw_reorder_bsf.c frame->sequence, frame->pts, s); s 263 libavcodec/vp9_raw_reorder_bsf.c put_bits(&pb, 3, s); s 282 libavcodec/vp9_raw_reorder_bsf.c int err, s; s 334 libavcodec/vp9_raw_reorder_bsf.c for (s = 0; s < FRAME_SLOTS; s++) { s 335 libavcodec/vp9_raw_reorder_bsf.c if (!(frame->refresh_frame_flags & (1 << s))) s 337 libavcodec/vp9_raw_reorder_bsf.c if (ctx->slot[s] && ctx->slot[s]->needs_display && s 338 libavcodec/vp9_raw_reorder_bsf.c ctx->slot[s]->slots == (1 << s)) { s 343 libavcodec/vp9_raw_reorder_bsf.c err = vp9_raw_reorder_make_output(bsf, out, ctx->slot[s]); s 347 libavcodec/vp9_raw_reorder_bsf.c s, err); s 350 libavcodec/vp9_raw_reorder_bsf.c vp9_raw_reorder_clear_slot(ctx, s); s 355 libavcodec/vp9_raw_reorder_bsf.c vp9_raw_reorder_clear_slot(ctx, s); s 358 libavcodec/vp9_raw_reorder_bsf.c for (s = 0; s < FRAME_SLOTS; s++) { s 359 libavcodec/vp9_raw_reorder_bsf.c if (!(frame->refresh_frame_flags & (1 << s))) s 361 libavcodec/vp9_raw_reorder_bsf.c ctx->slot[s] = frame; s 392 libavcodec/vp9_raw_reorder_bsf.c for (int s = 0; s < FRAME_SLOTS; s++) s 393 libavcodec/vp9_raw_reorder_bsf.c vp9_raw_reorder_clear_slot(ctx, s); s 401 libavcodec/vp9_raw_reorder_bsf.c int s; s 403 libavcodec/vp9_raw_reorder_bsf.c for (s = 0; s < FRAME_SLOTS; s++) s 404 libavcodec/vp9_raw_reorder_bsf.c vp9_raw_reorder_clear_slot(ctx, s); s 104 libavcodec/vp9_superframe_bsf.c VP9BSFContext *s = ctx->priv_data; s 134 libavcodec/vp9_superframe_bsf.c if (uses_superframe_syntax && s->n_cache > 0) { s 139 libavcodec/vp9_superframe_bsf.c } else if ((!invisible || uses_superframe_syntax) && !s->n_cache) { s 142 libavcodec/vp9_superframe_bsf.c } else if (s->n_cache + 1 >= MAX_CACHE) { s 149 libavcodec/vp9_superframe_bsf.c av_packet_move_ref(s->cache[s->n_cache++], pkt); s 154 libavcodec/vp9_superframe_bsf.c av_assert0(s->n_cache > 0); s 157 libavcodec/vp9_superframe_bsf.c if ((res = merge_superframe(s->cache, s->n_cache, pkt)) < 0) s 160 libavcodec/vp9_superframe_bsf.c res = av_packet_copy_props(pkt, s->cache[s->n_cache - 1]); s 164 libavcodec/vp9_superframe_bsf.c for (n = 0; n < s->n_cache; n++) s 165 libavcodec/vp9_superframe_bsf.c av_packet_unref(s->cache[n]); s 166 libavcodec/vp9_superframe_bsf.c s->n_cache = 0; s 176 libavcodec/vp9_superframe_bsf.c VP9BSFContext *s = ctx->priv_data; s 181 libavcodec/vp9_superframe_bsf.c s->cache[n] = av_packet_alloc(); s 182 libavcodec/vp9_superframe_bsf.c if (!s->cache[n]) s 191 libavcodec/vp9_superframe_bsf.c VP9BSFContext *s = ctx->priv_data; s 195 libavcodec/vp9_superframe_bsf.c for (n = 0; n < s->n_cache; n++) s 196 libavcodec/vp9_superframe_bsf.c av_packet_unref(s->cache[n]); s 197 libavcodec/vp9_superframe_bsf.c s->n_cache = 0; s 202 libavcodec/vp9_superframe_bsf.c VP9BSFContext *s = ctx->priv_data; s 207 libavcodec/vp9_superframe_bsf.c av_packet_free(&s->cache[n]); s 43 libavcodec/vp9_superframe_split_bsf.c VP9SFSplitContext *s = ctx->priv_data; s 46 libavcodec/vp9_superframe_split_bsf.c int is_superframe = !!s->buffer_pkt->data; s 48 libavcodec/vp9_superframe_split_bsf.c if (!s->buffer_pkt->data) { s 49 libavcodec/vp9_superframe_split_bsf.c ret = ff_bsf_get_packet_ref(ctx, s->buffer_pkt); s 52 libavcodec/vp9_superframe_split_bsf.c in = s->buffer_pkt; s 79 libavcodec/vp9_superframe_split_bsf.c s->sizes[i] = frame_size; s 81 libavcodec/vp9_superframe_split_bsf.c s->nb_frames = nb_frames; s 82 libavcodec/vp9_superframe_split_bsf.c s->next_frame = 0; s 83 libavcodec/vp9_superframe_split_bsf.c s->next_frame_offset = 0; s 93 libavcodec/vp9_superframe_split_bsf.c ret = av_packet_ref(out, s->buffer_pkt); s 97 libavcodec/vp9_superframe_split_bsf.c out->data += s->next_frame_offset; s 98 libavcodec/vp9_superframe_split_bsf.c out->size = s->sizes[s->next_frame]; s 100 libavcodec/vp9_superframe_split_bsf.c s->next_frame_offset += out->size; s 101 libavcodec/vp9_superframe_split_bsf.c s->next_frame++; s 103 libavcodec/vp9_superframe_split_bsf.c if (s->next_frame >= s->nb_frames) s 104 libavcodec/vp9_superframe_split_bsf.c av_packet_unref(s->buffer_pkt); s 124 libavcodec/vp9_superframe_split_bsf.c av_packet_move_ref(out, s->buffer_pkt); s 131 libavcodec/vp9_superframe_split_bsf.c av_packet_unref(s->buffer_pkt); s 137 libavcodec/vp9_superframe_split_bsf.c VP9SFSplitContext *s = ctx->priv_data; s 139 libavcodec/vp9_superframe_split_bsf.c s->buffer_pkt = av_packet_alloc(); s 140 libavcodec/vp9_superframe_split_bsf.c if (!s->buffer_pkt) s 148 libavcodec/vp9_superframe_split_bsf.c VP9SFSplitContext *s = ctx->priv_data; s 149 libavcodec/vp9_superframe_split_bsf.c av_packet_unref(s->buffer_pkt); s 154 libavcodec/vp9_superframe_split_bsf.c VP9SFSplitContext *s = ctx->priv_data; s 155 libavcodec/vp9_superframe_split_bsf.c av_packet_free(&s->buffer_pkt); s 92 libavcodec/vp9block.c VP9Context *s = td->s; s 96 libavcodec/vp9block.c int bw4 = ff_vp9_bwh_tab[1][b->bs][0], w4 = FFMIN(s->cols - col, bw4); s 97 libavcodec/vp9block.c int bh4 = ff_vp9_bwh_tab[1][b->bs][1], h4 = FFMIN(s->rows - row, bh4), y; s 101 libavcodec/vp9block.c if (!s->s.h.segmentation.enabled) { s 103 libavcodec/vp9block.c } else if (s->s.h.keyframe || s->s.h.intraonly) { s 104 libavcodec/vp9block.c b->seg_id = !s->s.h.segmentation.update_map ? 0 : s 105 libavcodec/vp9block.c vp8_rac_get_tree(td->c, ff_vp9_segmentation_tree, s->s.h.segmentation.prob); s 106 libavcodec/vp9block.c } else if (!s->s.h.segmentation.update_map || s 107 libavcodec/vp9block.c (s->s.h.segmentation.temporal && s 109 libavcodec/vp9block.c s->s.h.segmentation.pred_prob[s->above_segpred_ctx[col] + s 111 libavcodec/vp9block.c if (!s->s.h.errorres && s->s.frames[REF_FRAME_SEGMAP].segmentation_map) { s 113 libavcodec/vp9block.c uint8_t *refsegmap = s->s.frames[REF_FRAME_SEGMAP].segmentation_map; s 115 libavcodec/vp9block.c if (!s->s.frames[REF_FRAME_SEGMAP].uses_2pass) s 116 libavcodec/vp9block.c ff_thread_await_progress(&s->s.frames[REF_FRAME_SEGMAP].tf, row >> 3, 0); s 118 libavcodec/vp9block.c int idx_base = (y + row) * 8 * s->sb_cols + col; s 128 libavcodec/vp9block.c memset(&s->above_segpred_ctx[col], 1, w4); s 132 libavcodec/vp9block.c s->s.h.segmentation.prob); s 134 libavcodec/vp9block.c memset(&s->above_segpred_ctx[col], 0, w4); s 137 libavcodec/vp9block.c if (s->s.h.segmentation.enabled && s 138 libavcodec/vp9block.c (s->s.h.segmentation.update_map || s->s.h.keyframe || s->s.h.intraonly)) { s 139 libavcodec/vp9block.c setctx_2d(&s->s.frames[CUR_FRAME].segmentation_map[row * 8 * s->sb_cols + col], s 140 libavcodec/vp9block.c bw4, bh4, 8 * s->sb_cols, b->seg_id); s 143 libavcodec/vp9block.c b->skip = s->s.h.segmentation.enabled && s 144 libavcodec/vp9block.c s->s.h.segmentation.feat[b->seg_id].skip_enabled; s 146 libavcodec/vp9block.c int c = td->left_skip_ctx[row7] + s->above_skip_ctx[col]; s 147 libavcodec/vp9block.c b->skip = vp56_rac_get_prob(td->c, s->prob.p.skip[c]); s 151 libavcodec/vp9block.c if (s->s.h.keyframe || s->s.h.intraonly) { s 153 libavcodec/vp9block.c } else if (s->s.h.segmentation.enabled && s->s.h.segmentation.feat[b->seg_id].ref_enabled) { s 154 libavcodec/vp9block.c b->intra = !s->s.h.segmentation.feat[b->seg_id].ref_val; s 159 libavcodec/vp9block.c c = s->above_intra_ctx[col] + td->left_intra_ctx[row7]; s 162 libavcodec/vp9block.c c = have_a ? 2 * s->above_intra_ctx[col] : s 165 libavcodec/vp9block.c bit = vp56_rac_get_prob(td->c, s->prob.p.intra[c]); s 170 libavcodec/vp9block.c if ((b->intra || !b->skip) && s->s.h.txfmmode == TX_SWITCHABLE) { s 174 libavcodec/vp9block.c c = (s->above_skip_ctx[col] ? max_tx : s 175 libavcodec/vp9block.c s->above_txfm_ctx[col]) + s 179 libavcodec/vp9block.c c = s->above_skip_ctx[col] ? 1 : s 180 libavcodec/vp9block.c (s->above_txfm_ctx[col] * 2 > max_tx); s 190 libavcodec/vp9block.c b->tx = vp56_rac_get_prob(td->c, s->prob.p.tx32p[c][0]); s 192 libavcodec/vp9block.c b->tx += vp56_rac_get_prob(td->c, s->prob.p.tx32p[c][1]); s 194 libavcodec/vp9block.c b->tx += vp56_rac_get_prob(td->c, s->prob.p.tx32p[c][2]); s 199 libavcodec/vp9block.c b->tx = vp56_rac_get_prob(td->c, s->prob.p.tx16p[c][0]); s 201 libavcodec/vp9block.c b->tx += vp56_rac_get_prob(td->c, s->prob.p.tx16p[c][1]); s 205 libavcodec/vp9block.c b->tx = vp56_rac_get_prob(td->c, s->prob.p.tx8p[c]); s 213 libavcodec/vp9block.c b->tx = FFMIN(max_tx, s->s.h.txfmmode); s 216 libavcodec/vp9block.c if (s->s.h.keyframe || s->s.h.intraonly) { s 217 libavcodec/vp9block.c uint8_t *a = &s->above_mode_ctx[col * 2]; s 274 libavcodec/vp9block.c s->prob.p.y_mode[0]); s 278 libavcodec/vp9block.c s->prob.p.y_mode[0]); s 285 libavcodec/vp9block.c s->prob.p.y_mode[0]); s 289 libavcodec/vp9block.c s->prob.p.y_mode[0]); s 305 libavcodec/vp9block.c s->prob.p.y_mode[sz]); s 312 libavcodec/vp9block.c s->prob.p.uv_mode[b->mode[3]]); s 332 libavcodec/vp9block.c if (s->s.h.segmentation.enabled && s->s.h.segmentation.feat[b->seg_id].ref_enabled) { s 333 libavcodec/vp9block.c av_assert2(s->s.h.segmentation.feat[b->seg_id].ref_val != 0); s 335 libavcodec/vp9block.c b->ref[0] = s->s.h.segmentation.feat[b->seg_id].ref_val - 1; s 338 libavcodec/vp9block.c if (s->s.h.comppredmode != PRED_SWITCHABLE) { s 339 libavcodec/vp9block.c b->comp = s->s.h.comppredmode == PRED_COMPREF; s 346 libavcodec/vp9block.c if (s->above_comp_ctx[col] && td->left_comp_ctx[row7]) { s 348 libavcodec/vp9block.c } else if (s->above_comp_ctx[col]) { s 350 libavcodec/vp9block.c td->left_ref_ctx[row7] == s->s.h.fixcompref); s 352 libavcodec/vp9block.c c = 2 + (s->above_intra_ctx[col] || s 353 libavcodec/vp9block.c s->above_ref_ctx[col] == s->s.h.fixcompref); s 355 libavcodec/vp9block.c c = (!s->above_intra_ctx[col] && s 356 libavcodec/vp9block.c s->above_ref_ctx[col] == s->s.h.fixcompref) ^ s 358 libavcodec/vp9block.c td->left_ref_ctx[row & 7] == s->s.h.fixcompref); s 361 libavcodec/vp9block.c c = s->above_comp_ctx[col] ? 3 : s 362 libavcodec/vp9block.c (!s->above_intra_ctx[col] && s->above_ref_ctx[col] == s->s.h.fixcompref); s 366 libavcodec/vp9block.c (!td->left_intra_ctx[row7] && td->left_ref_ctx[row7] == s->s.h.fixcompref); s 370 libavcodec/vp9block.c b->comp = vp56_rac_get_prob(td->c, s->prob.p.comp[c]); s 378 libavcodec/vp9block.c int fix_idx = s->s.h.signbias[s->s.h.fixcompref], var_idx = !fix_idx, c, bit; s 380 libavcodec/vp9block.c b->ref[fix_idx] = s->s.h.fixcompref; s 384 libavcodec/vp9block.c if (s->above_intra_ctx[col]) { s 388 libavcodec/vp9block.c c = 1 + 2 * (td->left_ref_ctx[row7] != s->s.h.varcompref[1]); s 391 libavcodec/vp9block.c c = 1 + 2 * (s->above_ref_ctx[col] != s->s.h.varcompref[1]); s 393 libavcodec/vp9block.c int refl = td->left_ref_ctx[row7], refa = s->above_ref_ctx[col]; s 395 libavcodec/vp9block.c if (refl == refa && refa == s->s.h.varcompref[1]) { s 397 libavcodec/vp9block.c } else if (!td->left_comp_ctx[row7] && !s->above_comp_ctx[col]) { s 398 libavcodec/vp9block.c if ((refa == s->s.h.fixcompref && refl == s->s.h.varcompref[0]) || s 399 libavcodec/vp9block.c (refl == s->s.h.fixcompref && refa == s->s.h.varcompref[0])) { s 405 libavcodec/vp9block.c if (refa == s->s.h.varcompref[1] && refl != s->s.h.varcompref[1]) { s 408 libavcodec/vp9block.c c = (refl == s->s.h.varcompref[1] && s 409 libavcodec/vp9block.c refa != s->s.h.varcompref[1]) ? 2 : 4; s 411 libavcodec/vp9block.c } else if (!s->above_comp_ctx[col]) { s 412 libavcodec/vp9block.c if (refl == s->s.h.varcompref[1] && refa != s->s.h.varcompref[1]) { s 415 libavcodec/vp9block.c c = (refa == s->s.h.varcompref[1] && s 416 libavcodec/vp9block.c refl != s->s.h.varcompref[1]) ? 2 : 4; s 423 libavcodec/vp9block.c if (s->above_intra_ctx[col]) { s 425 libavcodec/vp9block.c } else if (s->above_comp_ctx[col]) { s 426 libavcodec/vp9block.c c = 4 * (s->above_ref_ctx[col] != s->s.h.varcompref[1]); s 428 libavcodec/vp9block.c c = 3 * (s->above_ref_ctx[col] != s->s.h.varcompref[1]); s 435 libavcodec/vp9block.c c = 4 * (td->left_ref_ctx[row7] != s->s.h.varcompref[1]); s 437 libavcodec/vp9block.c c = 3 * (td->left_ref_ctx[row7] != s->s.h.varcompref[1]); s 442 libavcodec/vp9block.c bit = vp56_rac_get_prob(td->c, s->prob.p.comp_ref[c]); s 443 libavcodec/vp9block.c b->ref[var_idx] = s->s.h.varcompref[bit]; s 448 libavcodec/vp9block.c if (have_a && !s->above_intra_ctx[col]) { s 451 libavcodec/vp9block.c if (s->above_comp_ctx[col]) { s 452 libavcodec/vp9block.c c = 1 + (!s->s.h.fixcompref || !td->left_ref_ctx[row7] || s 453 libavcodec/vp9block.c !s->above_ref_ctx[col]); s 455 libavcodec/vp9block.c c = (3 * !s->above_ref_ctx[col]) + s 456 libavcodec/vp9block.c (!s->s.h.fixcompref || !td->left_ref_ctx[row7]); s 458 libavcodec/vp9block.c } else if (s->above_comp_ctx[col]) { s 460 libavcodec/vp9block.c (!s->s.h.fixcompref || !s->above_ref_ctx[col]); s 462 libavcodec/vp9block.c c = 2 * !td->left_ref_ctx[row7] + 2 * !s->above_ref_ctx[col]; s 464 libavcodec/vp9block.c } else if (s->above_intra_ctx[col]) { s 466 libavcodec/vp9block.c } else if (s->above_comp_ctx[col]) { s 467 libavcodec/vp9block.c c = 1 + (!s->s.h.fixcompref || !s->above_ref_ctx[col]); s 469 libavcodec/vp9block.c c = 4 * (!s->above_ref_ctx[col]); s 475 libavcodec/vp9block.c c = 1 + (!s->s.h.fixcompref || !td->left_ref_ctx[row7]); s 482 libavcodec/vp9block.c bit = vp56_rac_get_prob(td->c, s->prob.p.single_ref[c][0]); s 491 libavcodec/vp9block.c if (s->above_intra_ctx[col]) { s 493 libavcodec/vp9block.c } else if (s->above_comp_ctx[col]) { s 494 libavcodec/vp9block.c c = 1 + 2 * (s->s.h.fixcompref == 1 || s 495 libavcodec/vp9block.c s->above_ref_ctx[col] == 1); s 496 libavcodec/vp9block.c } else if (!s->above_ref_ctx[col]) { s 499 libavcodec/vp9block.c c = 4 * (s->above_ref_ctx[col] == 1); s 501 libavcodec/vp9block.c } else if (s->above_intra_ctx[col]) { s 505 libavcodec/vp9block.c c = 1 + 2 * (s->s.h.fixcompref == 1 || s 512 libavcodec/vp9block.c } else if (s->above_comp_ctx[col]) { s 514 libavcodec/vp9block.c if (td->left_ref_ctx[row7] == s->above_ref_ctx[col]) { s 515 libavcodec/vp9block.c c = 3 * (s->s.h.fixcompref == 1 || s 521 libavcodec/vp9block.c c = 1 + 2 * (s->s.h.fixcompref == 1 || s 522 libavcodec/vp9block.c s->above_ref_ctx[col] == 1); s 525 libavcodec/vp9block.c (s->s.h.fixcompref == 1 || s->above_ref_ctx[col] == 1); s 528 libavcodec/vp9block.c if (!s->above_ref_ctx[col]) { s 529 libavcodec/vp9block.c c = 1 + 2 * (s->s.h.fixcompref == 1 || s 532 libavcodec/vp9block.c c = 3 * (s->above_ref_ctx[col] == 1) + s 533 libavcodec/vp9block.c (s->s.h.fixcompref == 1 || td->left_ref_ctx[row7] == 1); s 535 libavcodec/vp9block.c } else if (!s->above_ref_ctx[col]) { s 542 libavcodec/vp9block.c c = 4 * (s->above_ref_ctx[col] == 1); s 545 libavcodec/vp9block.c 2 * (s->above_ref_ctx[col] == 1); s 548 libavcodec/vp9block.c if (s->above_intra_ctx[col] || s 549 libavcodec/vp9block.c (!s->above_comp_ctx[col] && !s->above_ref_ctx[col])) { s 551 libavcodec/vp9block.c } else if (s->above_comp_ctx[col]) { s 552 libavcodec/vp9block.c c = 3 * (s->s.h.fixcompref == 1 || s->above_ref_ctx[col] == 1); s 554 libavcodec/vp9block.c c = 4 * (s->above_ref_ctx[col] == 1); s 562 libavcodec/vp9block.c c = 3 * (s->s.h.fixcompref == 1 || td->left_ref_ctx[row7] == 1); s 569 libavcodec/vp9block.c bit = vp56_rac_get_prob(td->c, s->prob.p.single_ref[c][1]); s 577 libavcodec/vp9block.c if (s->s.h.segmentation.enabled && s->s.h.segmentation.feat[b->seg_id].skip_enabled) { s 589 libavcodec/vp9block.c int c = inter_mode_ctx_lut[s->above_mode_ctx[col + off[b->bs]]] s 593 libavcodec/vp9block.c s->prob.p.mv_mode[c]); s 601 libavcodec/vp9block.c if (s->s.h.filtermode == FILTER_SWITCHABLE) { s 604 libavcodec/vp9block.c if (have_a && s->above_mode_ctx[col] >= NEARESTMV) { s 606 libavcodec/vp9block.c c = s->above_filter_ctx[col] == td->left_filter_ctx[row7] ? s 609 libavcodec/vp9block.c c = s->above_filter_ctx[col]; s 618 libavcodec/vp9block.c s->prob.p.filter[c]); s 622 libavcodec/vp9block.c b->filter = s->s.h.filtermode; s 626 libavcodec/vp9block.c int c = inter_mode_ctx_lut[s->above_mode_ctx[col]][td->left_mode_ctx[row7]]; s 629 libavcodec/vp9block.c s->prob.p.mv_mode[c]); s 635 libavcodec/vp9block.c s->prob.p.mv_mode[c]); s 646 libavcodec/vp9block.c s->prob.p.mv_mode[c]); s 652 libavcodec/vp9block.c s->prob.p.mv_mode[c]); s 678 libavcodec/vp9block.c vref = b->ref[b->comp ? s->s.h.signbias[s->s.h.varcompref[0]] : 0]; s 724 libavcodec/vp9block.c if (!s->s.h.keyframe && !s->s.h.intraonly) { \ s 730 libavcodec/vp9block.c if (s->s.h.filtermode == FILTER_SWITCHABLE) { \ s 736 libavcodec/vp9block.c case 1: SET_CTXS(s, above, col, 1); break; s 737 libavcodec/vp9block.c case 2: SET_CTXS(s, above, col, 2); break; s 738 libavcodec/vp9block.c case 4: SET_CTXS(s, above, col, 4); break; s 739 libavcodec/vp9block.c case 8: SET_CTXS(s, above, col, 8); break; s 750 libavcodec/vp9block.c if (!s->s.h.keyframe && !s->s.h.intraonly) { s 758 libavcodec/vp9block.c AV_COPY32(&s->above_mv_ctx[col * 2 + 0][0], &b->mv[2][0]); s 759 libavcodec/vp9block.c AV_COPY32(&s->above_mv_ctx[col * 2 + 0][1], &b->mv[2][1]); s 760 libavcodec/vp9block.c AV_WN32A(&s->above_mv_ctx[col * 2 + 1][0], mv0); s 761 libavcodec/vp9block.c AV_WN32A(&s->above_mv_ctx[col * 2 + 1][1], mv1); s 766 libavcodec/vp9block.c AV_WN32A(&s->above_mv_ctx[col * 2 + n][0], mv0); s 767 libavcodec/vp9block.c AV_WN32A(&s->above_mv_ctx[col * 2 + n][1], mv1); s 778 libavcodec/vp9block.c int x, o = (row + y) * s->sb_cols * 8 + col; s 779 libavcodec/vp9block.c VP9mvrefPair *mv = &s->s.frames[CUR_FRAME].mv[o]; s 950 libavcodec/vp9block.c return decode_coeffs_b_generic(td->c, coef, n_coeffs, 0, 0, td->s->s.h.bpp, cnt, eob, p, s 960 libavcodec/vp9block.c return decode_coeffs_b_generic(td->c, coef, n_coeffs, 1, 0, td->s->s.h.bpp, cnt, eob, p, s 966 libavcodec/vp9block.c VP9Context *s = td->s; s 969 libavcodec/vp9block.c uint8_t (*p)[6][11] = s->prob.coef[b->tx][0 /* y */][!b->intra]; s 973 libavcodec/vp9block.c int end_x = FFMIN(2 * (s->cols - col), w4); s 974 libavcodec/vp9block.c int end_y = FFMIN(2 * (s->rows - row), h4); s 976 libavcodec/vp9block.c int16_t (*qmul)[2] = s->s.h.segmentation.feat[b->seg_id].qmul; s 977 libavcodec/vp9block.c int tx = 4 * s->s.h.lossless + b->tx; s 982 libavcodec/vp9block.c uint8_t *a = &s->above_y_nnz_ctx[col * 2]; s 1096 libavcodec/vp9block.c p = s->prob.coef[b->uvtx][1 /* uv */][!b->intra]; s 1099 libavcodec/vp9block.c w4 >>= s->ss_h; s 1100 libavcodec/vp9block.c end_x >>= s->ss_h; s 1101 libavcodec/vp9block.c h4 >>= s->ss_v; s 1102 libavcodec/vp9block.c end_y >>= s->ss_v; s 1104 libavcodec/vp9block.c a = &s->above_uv_nnz_ctx[pl][col << !s->ss_h]; s 1105 libavcodec/vp9block.c l = &td->left_uv_nnz_ctx[pl][(row & 7) << !s->ss_v]; s 1267 libavcodec/vp9block.c VP9Context *s = td->s; s 1270 libavcodec/vp9block.c int bytesperpixel = s->bytesperpixel; s 1273 libavcodec/vp9block.c AVFrame *f = s->s.frames[CUR_FRAME].tf.f; s 1282 libavcodec/vp9block.c td->max_mv.x = 128 + (s->cols - col - w4) * 64; s 1283 libavcodec/vp9block.c td->max_mv.y = 128 + (s->rows - row - h4) * 64; s 1285 libavcodec/vp9block.c if (s->pass < 2) { s 1290 libavcodec/vp9block.c b->uvtx = b->tx - ((s->ss_h && w4 * 2 == (1 << b->tx)) || s 1291 libavcodec/vp9block.c (s->ss_v && h4 * 2 == (1 << b->tx))); s 1311 libavcodec/vp9block.c memset(&s->above_skip_ctx[col], 1, w4); s 1328 libavcodec/vp9block.c if (s->ss_##dir2) { \ s 1338 libavcodec/vp9block.c case 1: SPLAT_ZERO_YUV(s->above, nnz_ctx, col, 1, h); break; s 1339 libavcodec/vp9block.c case 2: SPLAT_ZERO_YUV(s->above, nnz_ctx, col, 2, h); break; s 1340 libavcodec/vp9block.c case 4: SPLAT_ZERO_YUV(s->above, nnz_ctx, col, 4, h); break; s 1341 libavcodec/vp9block.c case 8: SPLAT_ZERO_YUV(s->above, nnz_ctx, col, 8, h); break; s 1351 libavcodec/vp9block.c if (s->pass == 1) { s 1352 libavcodec/vp9block.c s->td[0].b++; s 1353 libavcodec/vp9block.c s->td[0].block += w4 * h4 * 64 * bytesperpixel; s 1354 libavcodec/vp9block.c s->td[0].uvblock[0] += w4 * h4 * 64 * bytesperpixel >> (s->ss_h + s->ss_v); s 1355 libavcodec/vp9block.c s->td[0].uvblock[1] += w4 * h4 * 64 * bytesperpixel >> (s->ss_h + s->ss_v); s 1356 libavcodec/vp9block.c s->td[0].eob += 4 * w4 * h4; s 1357 libavcodec/vp9block.c s->td[0].uveob[0] += 4 * w4 * h4 >> (s->ss_h + s->ss_v); s 1358 libavcodec/vp9block.c s->td[0].uveob[1] += 4 * w4 * h4 >> (s->ss_h + s->ss_v); s 1368 libavcodec/vp9block.c (row + h4) > s->rows; s 1369 libavcodec/vp9block.c emu[1] = ((col + w4) * 8 >> s->ss_h) * bytesperpixel > f->linesize[1] || s 1370 libavcodec/vp9block.c (row + h4) > s->rows; s 1388 libavcodec/vp9block.c if (s->s.h.bpp > 8) { s 1394 libavcodec/vp9block.c if (s->s.h.bpp > 8) { s 1401 libavcodec/vp9block.c int w = FFMIN(s->cols - col, w4) * 8, h = FFMIN(s->rows - row, h4) * 8, n, o = 0; s 1408 libavcodec/vp9block.c s->dsp.mc[n][0][0][0][0](f->data[0] + yoff + o * bytesperpixel, f->linesize[0], s 1415 libavcodec/vp9block.c int w = FFMIN(s->cols - col, w4) * 8 >> s->ss_h; s 1416 libavcodec/vp9block.c int h = FFMIN(s->rows - row, h4) * 8 >> s->ss_v, n, o = 0; s 1418 libavcodec/vp9block.c for (n = s->ss_h; o < w; n++) { s 1423 libavcodec/vp9block.c s->dsp.mc[n][0][0][0][0](f->data[1] + uvoff + o * bytesperpixel, f->linesize[1], s 1425 libavcodec/vp9block.c s->dsp.mc[n][0][0][0][0](f->data[2] + uvoff + o * bytesperpixel, f->linesize[2], s 1433 libavcodec/vp9block.c if (s->s.h.filter.level && s 1434 libavcodec/vp9block.c (lvl = s->s.h.segmentation.feat[b->seg_id].lflvl[b->intra ? 0 : b->ref[0] + 1] s 1436 libavcodec/vp9block.c int x_end = FFMIN(s->cols - col, w4), y_end = FFMIN(s->rows - row, h4); s 1441 libavcodec/vp9block.c if (s->ss_h || s->ss_v) s 1442 libavcodec/vp9block.c mask_edges(lflvl->mask[1], s->ss_h, s->ss_v, row7, col7, x_end, y_end, s 1443 libavcodec/vp9block.c s->cols & 1 && col + w4 >= s->cols ? s->cols & 7 : 0, s 1444 libavcodec/vp9block.c s->rows & 1 && row + h4 >= s->rows ? s->rows & 7 : 0, s 1448 libavcodec/vp9block.c if (s->pass == 2) { s 1449 libavcodec/vp9block.c s->td[0].b++; s 1450 libavcodec/vp9block.c s->td[0].block += w4 * h4 * 64 * bytesperpixel; s 1451 libavcodec/vp9block.c s->td[0].uvblock[0] += w4 * h4 * 64 * bytesperpixel >> (s->ss_v + s->ss_h); s 1452 libavcodec/vp9block.c s->td[0].uvblock[1] += w4 * h4 * 64 * bytesperpixel >> (s->ss_v + s->ss_h); s 1453 libavcodec/vp9block.c s->td[0].eob += 4 * w4 * h4; s 1454 libavcodec/vp9block.c s->td[0].uveob[0] += 4 * w4 * h4 >> (s->ss_v + s->ss_h); s 1455 libavcodec/vp9block.c s->td[0].uveob[1] += 4 * w4 * h4 >> (s->ss_v + s->ss_h); s 94 libavcodec/vp9dec.h VP9SharedContext s; s 166 libavcodec/vp9dec.h VP9Context *s; s 240 libavcodec/vp9dec.h void ff_vp9_adapt_probs(VP9Context *s); s 26 libavcodec/vp9lpf.c static av_always_inline void filter_plane_cols(VP9Context *s, int col, int ss_h, int ss_v, s 30 libavcodec/vp9lpf.c int y, x, bytesperpixel = s->bytesperpixel; s 43 libavcodec/vp9lpf.c int E = s->filter_lut.mblim_lut[L], I = s->filter_lut.lim_lut[L]; s 48 libavcodec/vp9lpf.c s->dsp.loop_filter_16[0](ptr, ls, E, I, H); s 50 libavcodec/vp9lpf.c s->dsp.loop_filter_8[2][0](ptr, ls, E, I, H); s 55 libavcodec/vp9lpf.c E |= s->filter_lut.mblim_lut[L] << 8; s 56 libavcodec/vp9lpf.c I |= s->filter_lut.lim_lut[L] << 8; s 57 libavcodec/vp9lpf.c s->dsp.loop_filter_mix2[!!(hmask1[1] & x)] s 61 libavcodec/vp9lpf.c s->dsp.loop_filter_8[!!(hmask1[1] & x)] s 66 libavcodec/vp9lpf.c int E = s->filter_lut.mblim_lut[L], I = s->filter_lut.lim_lut[L]; s 68 libavcodec/vp9lpf.c s->dsp.loop_filter_8[!!(hmask2[1] & x)] s 78 libavcodec/vp9lpf.c int E = s->filter_lut.mblim_lut[L], I = s->filter_lut.lim_lut[L]; s 83 libavcodec/vp9lpf.c E |= s->filter_lut.mblim_lut[L] << 8; s 84 libavcodec/vp9lpf.c I |= s->filter_lut.lim_lut[L] << 8; s 85 libavcodec/vp9lpf.c s->dsp.loop_filter_mix2[0][0][0](ptr + 4 * bytesperpixel, ls, E, I, H); s 87 libavcodec/vp9lpf.c s->dsp.loop_filter_8[0][0](ptr + 4 * bytesperpixel, ls, E, I, H); s 91 libavcodec/vp9lpf.c int E = s->filter_lut.mblim_lut[L], I = s->filter_lut.lim_lut[L]; s 93 libavcodec/vp9lpf.c s->dsp.loop_filter_8[0][0](ptr + 8 * ls + 4 * bytesperpixel, ls, E, I, H); s 101 libavcodec/vp9lpf.c static av_always_inline void filter_plane_rows(VP9Context *s, int row, int ss_h, int ss_v, s 105 libavcodec/vp9lpf.c int y, x, bytesperpixel = s->bytesperpixel; s 118 libavcodec/vp9lpf.c int E = s->filter_lut.mblim_lut[L], I = s->filter_lut.lim_lut[L]; s 123 libavcodec/vp9lpf.c s->dsp.loop_filter_16[1](ptr, ls, E, I, H); s 125 libavcodec/vp9lpf.c s->dsp.loop_filter_8[2][1](ptr, ls, E, I, H); s 130 libavcodec/vp9lpf.c E |= s->filter_lut.mblim_lut[L] << 8; s 131 libavcodec/vp9lpf.c I |= s->filter_lut.lim_lut[L] << 8; s 132 libavcodec/vp9lpf.c s->dsp.loop_filter_mix2[!!(vmask[1] & x)] s 136 libavcodec/vp9lpf.c s->dsp.loop_filter_8[!!(vmask[1] & x)] s 141 libavcodec/vp9lpf.c int E = s->filter_lut.mblim_lut[L], I = s->filter_lut.lim_lut[L]; s 143 libavcodec/vp9lpf.c s->dsp.loop_filter_8[!!(vmask[1] & (x << (1 + ss_h)))] s 150 libavcodec/vp9lpf.c int E = s->filter_lut.mblim_lut[L], I = s->filter_lut.lim_lut[L]; s 155 libavcodec/vp9lpf.c E |= s->filter_lut.mblim_lut[L] << 8; s 156 libavcodec/vp9lpf.c I |= s->filter_lut.lim_lut[L] << 8; s 157 libavcodec/vp9lpf.c s->dsp.loop_filter_mix2[0][0][1](ptr + ls * 4, ls, E, I, H); s 159 libavcodec/vp9lpf.c s->dsp.loop_filter_8[0][1](ptr + ls * 4, ls, E, I, H); s 163 libavcodec/vp9lpf.c int E = s->filter_lut.mblim_lut[L], I = s->filter_lut.lim_lut[L]; s 165 libavcodec/vp9lpf.c s->dsp.loop_filter_8[0][1](ptr + ls * 4 + 8 * bytesperpixel, ls, E, I, H); s 181 libavcodec/vp9lpf.c VP9Context *s = avctx->priv_data; s 182 libavcodec/vp9lpf.c AVFrame *f = s->s.frames[CUR_FRAME].tf.f; s 185 libavcodec/vp9lpf.c uint8_t (*uv_masks)[8][4] = lflvl->mask[s->ss_h | s->ss_v]; s 194 libavcodec/vp9lpf.c filter_plane_cols(s, col, 0, 0, lflvl->level, lflvl->mask[0][0], dst, ls_y); s 195 libavcodec/vp9lpf.c filter_plane_rows(s, row, 0, 0, lflvl->level, lflvl->mask[0][1], dst, ls_y); s 199 libavcodec/vp9lpf.c filter_plane_cols(s, col, s->ss_h, s->ss_v, lflvl->level, uv_masks[0], dst, ls_uv); s 200 libavcodec/vp9lpf.c filter_plane_rows(s, row, s->ss_h, s->ss_v, lflvl->level, uv_masks[1], dst, ls_uv); s 68 libavcodec/vp9mvs.c VP9Context *s = td->s; s 140 libavcodec/vp9mvs.c VP9mvrefPair *mv = &s->s.frames[CUR_FRAME].mv[(row - 1) * s->sb_cols * 8 + col]; s 142 libavcodec/vp9mvs.c RETURN_MV(s->above_mv_ctx[2 * col + (sb & 1)][0]); s 144 libavcodec/vp9mvs.c RETURN_MV(s->above_mv_ctx[2 * col + (sb & 1)][1]); s 147 libavcodec/vp9mvs.c VP9mvrefPair *mv = &s->s.frames[CUR_FRAME].mv[row * s->sb_cols * 8 + col - 1]; s 162 libavcodec/vp9mvs.c if (c >= td->tile_col_start && c < s->cols && s 163 libavcodec/vp9mvs.c r >= 0 && r < s->rows) { s 164 libavcodec/vp9mvs.c VP9mvrefPair *mv = &s->s.frames[CUR_FRAME].mv[r * s->sb_cols * 8 + c]; s 174 libavcodec/vp9mvs.c if (s->s.h.use_last_frame_mvs) { s 175 libavcodec/vp9mvs.c VP9mvrefPair *mv = &s->s.frames[REF_FRAME_MVPAIR].mv[row * s->sb_cols * 8 + col]; s 177 libavcodec/vp9mvs.c if (!s->s.frames[REF_FRAME_MVPAIR].uses_2pass) s 178 libavcodec/vp9mvs.c ff_thread_await_progress(&s->s.frames[REF_FRAME_MVPAIR].tf, row >> 3, 0); s 199 libavcodec/vp9mvs.c if (c >= td->tile_col_start && c < s->cols && r >= 0 && r < s->rows) { s 200 libavcodec/vp9mvs.c VP9mvrefPair *mv = &s->s.frames[CUR_FRAME].mv[r * s->sb_cols * 8 + c]; s 204 libavcodec/vp9mvs.c s->s.h.signbias[mv->ref[0]] != s->s.h.signbias[ref]); s 209 libavcodec/vp9mvs.c RETURN_SCALE_MV(mv->mv[1], s->s.h.signbias[mv->ref[1]] != s->s.h.signbias[ref]); s 215 libavcodec/vp9mvs.c if (s->s.h.use_last_frame_mvs) { s 216 libavcodec/vp9mvs.c VP9mvrefPair *mv = &s->s.frames[REF_FRAME_MVPAIR].mv[row * s->sb_cols * 8 + col]; s 220 libavcodec/vp9mvs.c RETURN_SCALE_MV(mv->mv[0], s->s.h.signbias[mv->ref[0]] != s->s.h.signbias[ref]); s 225 libavcodec/vp9mvs.c RETURN_SCALE_MV(mv->mv[1], s->s.h.signbias[mv->ref[1]] != s->s.h.signbias[ref]); s 238 libavcodec/vp9mvs.c VP9Context *s = td->s; s 239 libavcodec/vp9mvs.c int bit, sign = vp56_rac_get_prob(td->c, s->prob.p.mv_comp[idx].sign); s 241 libavcodec/vp9mvs.c s->prob.p.mv_comp[idx].classes); s 249 libavcodec/vp9mvs.c bit = vp56_rac_get_prob(td->c, s->prob.p.mv_comp[idx].bits[m]); s 255 libavcodec/vp9mvs.c s->prob.p.mv_comp[idx].fp); s 259 libavcodec/vp9mvs.c bit = vp56_rac_get_prob(td->c, s->prob.p.mv_comp[idx].hp); s 270 libavcodec/vp9mvs.c n = vp56_rac_get_prob(td->c, s->prob.p.mv_comp[idx].class0); s 273 libavcodec/vp9mvs.c s->prob.p.mv_comp[idx].class0_fp[n]); s 277 libavcodec/vp9mvs.c bit = vp56_rac_get_prob(td->c, s->prob.p.mv_comp[idx].class0_hp); s 293 libavcodec/vp9mvs.c VP9Context *s = td->s; s 306 libavcodec/vp9mvs.c !(hp = s->s.h.highprecisionmvs && s 323 libavcodec/vp9mvs.c s->prob.p.mv_joint); s 337 libavcodec/vp9mvs.c !(hp = s->s.h.highprecisionmvs && s 354 libavcodec/vp9mvs.c s->prob.p.mv_joint); s 46 libavcodec/vp9prob.c void ff_vp9_adapt_probs(VP9Context *s) s 49 libavcodec/vp9prob.c ProbContext *p = &s->prob_ctx[s->s.h.framectxid].p; s 50 libavcodec/vp9prob.c int uf = (s->s.h.keyframe || s->s.h.intraonly || !s->last_keyframe) ? 112 : 128; s 58 libavcodec/vp9prob.c uint8_t *pp = s->prob_ctx[s->s.h.framectxid].coef[i][j][k][l][m]; s 59 libavcodec/vp9prob.c unsigned *e = s->td[0].counts.eob[i][j][k][l][m]; s 60 libavcodec/vp9prob.c unsigned *c = s->td[0].counts.coef[i][j][k][l][m]; s 70 libavcodec/vp9prob.c if (s->s.h.keyframe || s->s.h.intraonly) { s 71 libavcodec/vp9prob.c memcpy(p->skip, s->prob.p.skip, sizeof(p->skip)); s 72 libavcodec/vp9prob.c memcpy(p->tx32p, s->prob.p.tx32p, sizeof(p->tx32p)); s 73 libavcodec/vp9prob.c memcpy(p->tx16p, s->prob.p.tx16p, sizeof(p->tx16p)); s 74 libavcodec/vp9prob.c memcpy(p->tx8p, s->prob.p.tx8p, sizeof(p->tx8p)); s 80 libavcodec/vp9prob.c adapt_prob(&p->skip[i], s->td[0].counts.skip[i][0], s 81 libavcodec/vp9prob.c s->td[0].counts.skip[i][1], 20, 128); s 85 libavcodec/vp9prob.c adapt_prob(&p->intra[i], s->td[0].counts.intra[i][0], s 86 libavcodec/vp9prob.c s->td[0].counts.intra[i][1], 20, 128); s 89 libavcodec/vp9prob.c if (s->s.h.comppredmode == PRED_SWITCHABLE) { s 91 libavcodec/vp9prob.c adapt_prob(&p->comp[i], s->td[0].counts.comp[i][0], s 92 libavcodec/vp9prob.c s->td[0].counts.comp[i][1], 20, 128); s 96 libavcodec/vp9prob.c if (s->s.h.comppredmode != PRED_SINGLEREF) { s 98 libavcodec/vp9prob.c adapt_prob(&p->comp_ref[i], s->td[0].counts.comp_ref[i][0], s 99 libavcodec/vp9prob.c s->td[0].counts.comp_ref[i][1], 20, 128); s 102 libavcodec/vp9prob.c if (s->s.h.comppredmode != PRED_COMPREF) { s 105 libavcodec/vp9prob.c unsigned (*c)[2] = s->td[0].counts.single_ref[i]; s 116 libavcodec/vp9prob.c unsigned *c = s->td[0].counts.partition[i][j]; s 124 libavcodec/vp9prob.c if (s->s.h.txfmmode == TX_SWITCHABLE) { s 126 libavcodec/vp9prob.c unsigned *c16 = s->td[0].counts.tx16p[i], *c32 = s->td[0].counts.tx32p[i]; s 128 libavcodec/vp9prob.c adapt_prob(&p->tx8p[i], s->td[0].counts.tx8p[i][0], s 129 libavcodec/vp9prob.c s->td[0].counts.tx8p[i][1], 20, 128); s 139 libavcodec/vp9prob.c if (s->s.h.filtermode == FILTER_SWITCHABLE) { s 142 libavcodec/vp9prob.c unsigned *c = s->td[0].counts.filter[i]; s 152 libavcodec/vp9prob.c unsigned *c = s->td[0].counts.mv_mode[i]; s 162 libavcodec/vp9prob.c unsigned *c = s->td[0].counts.mv_joint; s 174 libavcodec/vp9prob.c adapt_prob(&p->mv_comp[i].sign, s->td[0].counts.mv_comp[i].sign[0], s 175 libavcodec/vp9prob.c s->td[0].counts.mv_comp[i].sign[1], 20, 128); s 178 libavcodec/vp9prob.c c = s->td[0].counts.mv_comp[i].classes; s 196 libavcodec/vp9prob.c adapt_prob(&p->mv_comp[i].class0, s->td[0].counts.mv_comp[i].class0[0], s 197 libavcodec/vp9prob.c s->td[0].counts.mv_comp[i].class0[1], 20, 128); s 199 libavcodec/vp9prob.c c2 = s->td[0].counts.mv_comp[i].bits; s 205 libavcodec/vp9prob.c c = s->td[0].counts.mv_comp[i].class0_fp[j]; s 211 libavcodec/vp9prob.c c = s->td[0].counts.mv_comp[i].fp; s 216 libavcodec/vp9prob.c if (s->s.h.highprecisionmvs) { s 218 libavcodec/vp9prob.c s->td[0].counts.mv_comp[i].class0_hp[0], s 219 libavcodec/vp9prob.c s->td[0].counts.mv_comp[i].class0_hp[1], 20, 128); s 220 libavcodec/vp9prob.c adapt_prob(&p->mv_comp[i].hp, s->td[0].counts.mv_comp[i].hp[0], s 221 libavcodec/vp9prob.c s->td[0].counts.mv_comp[i].hp[1], 20, 128); s 228 libavcodec/vp9prob.c unsigned *c = s->td[0].counts.y_mode[i], sum, s2; s 253 libavcodec/vp9prob.c unsigned *c = s->td[0].counts.uv_mode[i], sum, s2; s 39 libavcodec/vp9recon.c VP9Context *s = td->s; s 43 libavcodec/vp9recon.c int bpp = s->s.h.bpp; s 98 libavcodec/vp9recon.c int n_px_need = 4 << tx, n_px_have = (((s->cols - col) << !ss_h) - x) * 4; s 109 libavcodec/vp9recon.c s->intra_pred_data[p] + (col * (8 >> ss_h) + x * 4) * bytesperpixel : s 113 libavcodec/vp9recon.c s->intra_pred_data[p] + (col * (8 >> ss_h) + x * 4) * bytesperpixel : s 187 libavcodec/vp9recon.c int n_px_need = 4 << tx, i, n_px_have = (((s->rows - row) << !ss_v) - y) * 4; s 221 libavcodec/vp9recon.c VP9Context *s = td->s; s 226 libavcodec/vp9recon.c int end_x = FFMIN(2 * (s->cols - col), w4); s 227 libavcodec/vp9recon.c int end_y = FFMIN(2 * (s->rows - row), h4); s 228 libavcodec/vp9recon.c int tx = 4 * s->s.h.lossless + b->tx, uvtx = b->uvtx + 4 * s->s.h.lossless; s 230 libavcodec/vp9recon.c uint8_t *dst = td->dst[0], *dst_r = s->s.frames[CUR_FRAME].tf.f->data[0] + y_off; s 245 libavcodec/vp9recon.c s->s.frames[CUR_FRAME].tf.f->linesize[0], s 248 libavcodec/vp9recon.c s->dsp.intra_pred[b->tx][mode](ptr, td->y_stride, l, a); s 250 libavcodec/vp9recon.c s->dsp.itxfm_add[tx][txtp](ptr, td->y_stride, s 253 libavcodec/vp9recon.c dst_r += 4 * step1d * s->s.frames[CUR_FRAME].tf.f->linesize[0]; s 258 libavcodec/vp9recon.c w4 >>= s->ss_h; s 259 libavcodec/vp9recon.c end_x >>= s->ss_h; s 260 libavcodec/vp9recon.c end_y >>= s->ss_v; s 264 libavcodec/vp9recon.c dst_r = s->s.frames[CUR_FRAME].tf.f->data[1 + p] + uv_off; s 274 libavcodec/vp9recon.c s->s.frames[CUR_FRAME].tf.f->linesize[1], s 276 libavcodec/vp9recon.c b->uvtx, p + 1, s->ss_h, s->ss_v, bytesperpixel); s 277 libavcodec/vp9recon.c s->dsp.intra_pred[b->uvtx][mode](ptr, td->uv_stride, l, a); s 279 libavcodec/vp9recon.c s->dsp.itxfm_add[uvtx][DCT_DCT](ptr, td->uv_stride, s 282 libavcodec/vp9recon.c dst_r += 4 * uvstep1d * s->s.frames[CUR_FRAME].tf.f->linesize[1]; s 305 libavcodec/vp9recon.c VP9Context *s = td->s; s 323 libavcodec/vp9recon.c s->vdsp.emulated_edge_mc(td->edge_emu_buffer, s 343 libavcodec/vp9recon.c VP9Context *s = td->s; s 344 libavcodec/vp9recon.c int mx = mv->x * (1 << !s->ss_h), my = mv->y * (1 << !s->ss_v), th; s 355 libavcodec/vp9recon.c th = (y + bh + 4 * !!my + 7) >> (6 - s->ss_v); s 362 libavcodec/vp9recon.c s->vdsp.emulated_edge_mc(td->edge_emu_buffer, s 370 libavcodec/vp9recon.c s->vdsp.emulated_edge_mc(td->edge_emu_buffer, s 385 libavcodec/vp9recon.c mc_luma_unscaled(td, s->dsp.mc, dst, dst_ls, src, src_ls, tref, row, col, \ s 389 libavcodec/vp9recon.c mc_chroma_unscaled(td, s->dsp.mc, dstu, dstv, dst_ls, srcu, srcu_ls, srcv, srcv_ls, tref, \ s 416 libavcodec/vp9recon.c VP9Context *s = td->s; s 417 libavcodec/vp9recon.c if (s->s.frames[CUR_FRAME].tf.f->width == ref_frame->f->width && s 418 libavcodec/vp9recon.c s->s.frames[CUR_FRAME].tf.f->height == ref_frame->f->height) { s 428 libavcodec/vp9recon.c mv.x = av_clip(in_mv->x, -(x + pw - px + 4) * 8, (s->cols * 8 - x + px + 3) * 8); s 429 libavcodec/vp9recon.c mv.y = av_clip(in_mv->y, -(y + ph - py + 4) * 8, (s->rows * 8 - y + py + 3) * 8); s 452 libavcodec/vp9recon.c s->vdsp.emulated_edge_mc(td->edge_emu_buffer, s 476 libavcodec/vp9recon.c VP9Context *s = td->s; s 477 libavcodec/vp9recon.c if (s->s.frames[CUR_FRAME].tf.f->width == ref_frame->f->width && s 478 libavcodec/vp9recon.c s->s.frames[CUR_FRAME].tf.f->height == ref_frame->f->height) { s 488 libavcodec/vp9recon.c if (s->ss_h) { s 490 libavcodec/vp9recon.c mv.x = av_clip(in_mv->x, -(x + pw - px + 4) * 16, (s->cols * 4 - x + px + 3) * 16); s 493 libavcodec/vp9recon.c mv.x = av_clip(in_mv->x, -(x + pw - px + 4) * 8, (s->cols * 8 - x + px + 3) * 8); s 496 libavcodec/vp9recon.c if (s->ss_v) { s 498 libavcodec/vp9recon.c mv.y = av_clip(in_mv->y, -(y + ph - py + 4) * 16, (s->rows * 4 - y + py + 3) * 16); s 501 libavcodec/vp9recon.c mv.y = av_clip(in_mv->y, -(y + ph - py + 4) * 8, (s->rows * 8 - y + py + 3) * 8); s 516 libavcodec/vp9recon.c th = (y + refbh_m1 + 4 + 7) >> (6 - s->ss_v); s 522 libavcodec/vp9recon.c s->vdsp.emulated_edge_mc(td->edge_emu_buffer, s 530 libavcodec/vp9recon.c s->vdsp.emulated_edge_mc(td->edge_emu_buffer, s 546 libavcodec/vp9recon.c mc_luma_scaled(td, s->dsp.s##mc, s->dsp.mc, dst, dst_ls, src, src_ls, tref, row, col, \ s 548 libavcodec/vp9recon.c s->mvscale[b->ref[i]], s->mvstep[b->ref[i]]) s 551 libavcodec/vp9recon.c mc_chroma_scaled(td, s->dsp.s##mc, s->dsp.mc, dstu, dstv, dst_ls, srcu, srcu_ls, srcv, srcv_ls, tref, \ s 553 libavcodec/vp9recon.c s->mvscale[b->ref[i]], s->mvstep[b->ref[i]]) s 571 libavcodec/vp9recon.c VP9Context *s = td->s; s 575 libavcodec/vp9recon.c if (s->mvscale[b->ref[0]][0] == REF_INVALID_SCALE || s 576 libavcodec/vp9recon.c (b->comp && s->mvscale[b->ref[1]][0] == REF_INVALID_SCALE)) { s 577 libavcodec/vp9recon.c if (!s->td->error_info) { s 578 libavcodec/vp9recon.c s->td->error_info = AVERROR_INVALIDDATA; s 585 libavcodec/vp9recon.c if (s->mvscale[b->ref[0]][0] || (b->comp && s->mvscale[b->ref[1]][0])) { s 604 libavcodec/vp9recon.c int end_x = FFMIN(2 * (s->cols - col), w4); s 605 libavcodec/vp9recon.c int end_y = FFMIN(2 * (s->rows - row), h4); s 606 libavcodec/vp9recon.c int tx = 4 * s->s.h.lossless + b->tx, uvtx = b->uvtx + 4 * s->s.h.lossless; s 618 libavcodec/vp9recon.c s->dsp.itxfm_add[tx][DCT_DCT](ptr, td->y_stride, s 625 libavcodec/vp9recon.c end_x >>= s->ss_h; s 626 libavcodec/vp9recon.c end_y >>= s->ss_v; s 637 libavcodec/vp9recon.c s->dsp.itxfm_add[uvtx][DCT_DCT](ptr, td->uv_stride, s 123 libavcodec/vqavideo.c VqaContext *s = avctx->priv_data; s 126 libavcodec/vqavideo.c s->avctx = avctx; s 130 libavcodec/vqavideo.c if (s->avctx->extradata_size != VQA_HEADER_SIZE) { s 131 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "expected extradata size of %d\n", VQA_HEADER_SIZE); s 136 libavcodec/vqavideo.c s->vqa_version = s->avctx->extradata[0]; s 137 libavcodec/vqavideo.c switch (s->vqa_version) { s 142 libavcodec/vqavideo.c avpriv_report_missing_feature(avctx, "VQA Version %d", s->vqa_version); s 145 libavcodec/vqavideo.c avpriv_request_sample(avctx, "VQA Version %i", s->vqa_version); s 148 libavcodec/vqavideo.c s->width = AV_RL16(&s->avctx->extradata[6]); s 149 libavcodec/vqavideo.c s->height = AV_RL16(&s->avctx->extradata[8]); s 150 libavcodec/vqavideo.c if ((ret = ff_set_dimensions(avctx, s->width, s->height)) < 0) { s 151 libavcodec/vqavideo.c s->width= s->height= 0; s 154 libavcodec/vqavideo.c s->vector_width = s->avctx->extradata[10]; s 155 libavcodec/vqavideo.c s->vector_height = s->avctx->extradata[11]; s 156 libavcodec/vqavideo.c s->partial_count = s->partial_countdown = s->avctx->extradata[13]; s 159 libavcodec/vqavideo.c if ((s->vector_width != 4) || s 160 libavcodec/vqavideo.c ((s->vector_height != 2) && (s->vector_height != 4))) { s 165 libavcodec/vqavideo.c if (s->width % s->vector_width || s->height % s->vector_height) { s 171 libavcodec/vqavideo.c s->codebook_size = MAX_CODEBOOK_SIZE; s 172 libavcodec/vqavideo.c s->codebook = av_malloc(s->codebook_size); s 173 libavcodec/vqavideo.c if (!s->codebook) s 175 libavcodec/vqavideo.c s->next_codebook_buffer = av_malloc(s->codebook_size); s 176 libavcodec/vqavideo.c if (!s->next_codebook_buffer) s 180 libavcodec/vqavideo.c s->decode_buffer_size = (s->width / s->vector_width) * s 181 libavcodec/vqavideo.c (s->height / s->vector_height) * 2; s 182 libavcodec/vqavideo.c s->decode_buffer = av_mallocz(s->decode_buffer_size); s 183 libavcodec/vqavideo.c if (!s->decode_buffer) s 187 libavcodec/vqavideo.c if (s->vector_height == 4) { s 191 libavcodec/vqavideo.c s->codebook[codebook_index++] = i; s 196 libavcodec/vqavideo.c s->codebook[codebook_index++] = i; s 198 libavcodec/vqavideo.c s->next_codebook_buffer_index = 0; s 202 libavcodec/vqavideo.c av_freep(&s->codebook); s 203 libavcodec/vqavideo.c av_freep(&s->next_codebook_buffer); s 204 libavcodec/vqavideo.c av_freep(&s->decode_buffer); s 210 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "decode_format80 problem: next op would overflow dest_index\n"); \ s 211 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "current dest_index = %d, count = %d, dest_size = %d\n", \ s 218 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "decode_format80 problem: next op would overflow dest_index\n"); \ s 219 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "current src_pos = %d, count = %d, dest_size = %d\n", \ s 225 libavcodec/vqavideo.c static int decode_format80(VqaContext *s, int src_size, s 234 libavcodec/vqavideo.c if (src_size < 0 || src_size > bytestream2_get_bytes_left(&s->gb)) { s 235 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "Chunk size %d is out of range\n", s 240 libavcodec/vqavideo.c start = bytestream2_tell(&s->gb); s 241 libavcodec/vqavideo.c while (bytestream2_tell(&s->gb) - start < src_size) { s 242 libavcodec/vqavideo.c opcode = bytestream2_get_byte(&s->gb); s 243 libavcodec/vqavideo.c ff_tlog(s->avctx, "opcode %02X: ", opcode); s 250 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "decode_format80 problem: dest_index (%d) exceeded dest_size (%d)\n", s 257 libavcodec/vqavideo.c count = bytestream2_get_le16(&s->gb); s 258 libavcodec/vqavideo.c src_pos = bytestream2_get_le16(&s->gb); s 259 libavcodec/vqavideo.c ff_tlog(s->avctx, "(1) copy %X bytes from absolute pos %X\n", count, src_pos); s 268 libavcodec/vqavideo.c count = bytestream2_get_le16(&s->gb); s 269 libavcodec/vqavideo.c color = bytestream2_get_byte(&s->gb); s 270 libavcodec/vqavideo.c ff_tlog(s->avctx, "(2) set %X bytes to %02X\n", count, color); s 278 libavcodec/vqavideo.c src_pos = bytestream2_get_le16(&s->gb); s 279 libavcodec/vqavideo.c ff_tlog(s->avctx, "(3) copy %X bytes from absolute pos %X\n", count, src_pos); s 289 libavcodec/vqavideo.c ff_tlog(s->avctx, "(4) copy %X bytes from source to dest\n", count); s 291 libavcodec/vqavideo.c bytestream2_get_buffer(&s->gb, &dest[dest_index], count); s 297 libavcodec/vqavideo.c src_pos = bytestream2_get_byte(&s->gb) | ((opcode & 0x0F) << 8); s 298 libavcodec/vqavideo.c ff_tlog(s->avctx, "(5) copy %X bytes from relpos %X\n", count, src_pos); s 313 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "decode_format80 problem: decode finished with dest_index (%d) < dest_size (%d)\n", s 321 libavcodec/vqavideo.c static int vqa_decode_chunk(VqaContext *s, AVFrame *frame) s 347 libavcodec/vqavideo.c int hibytes = s->decode_buffer_size / 2; s 350 libavcodec/vqavideo.c while (bytestream2_get_bytes_left(&s->gb) >= 8) { s 352 libavcodec/vqavideo.c chunk_type = bytestream2_get_be32u(&s->gb); s 353 libavcodec/vqavideo.c index = bytestream2_tell(&s->gb); s 354 libavcodec/vqavideo.c chunk_size = bytestream2_get_be32u(&s->gb); s 387 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "Found unknown chunk type: %s (%08X)\n", s 393 libavcodec/vqavideo.c bytestream2_skip(&s->gb, chunk_size + byte_skip); s 400 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "problem: found both CPL0 and CPLZ chunks\n"); s 414 libavcodec/vqavideo.c bytestream2_seek(&s->gb, cpl0_chunk, SEEK_SET); s 415 libavcodec/vqavideo.c chunk_size = bytestream2_get_be32(&s->gb); s 417 libavcodec/vqavideo.c if (chunk_size / 3 > 256 || chunk_size > bytestream2_get_bytes_left(&s->gb)) { s 418 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "problem: found a palette chunk with %d colors\n", s 424 libavcodec/vqavideo.c r = bytestream2_get_byteu(&s->gb) * 4; s 425 libavcodec/vqavideo.c g = bytestream2_get_byteu(&s->gb) * 4; s 426 libavcodec/vqavideo.c b = bytestream2_get_byteu(&s->gb) * 4; s 427 libavcodec/vqavideo.c s->palette[i] = 0xFFU << 24 | r << 16 | g << 8 | b; s 428 libavcodec/vqavideo.c s->palette[i] |= s->palette[i] >> 6 & 0x30303; s 436 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "problem: found both CBF0 and CBFZ chunks\n"); s 443 libavcodec/vqavideo.c bytestream2_seek(&s->gb, cbfz_chunk, SEEK_SET); s 444 libavcodec/vqavideo.c chunk_size = bytestream2_get_be32(&s->gb); s 445 libavcodec/vqavideo.c if ((res = decode_format80(s, chunk_size, s->codebook, s 446 libavcodec/vqavideo.c s->codebook_size, 0)) < 0) s 453 libavcodec/vqavideo.c bytestream2_seek(&s->gb, cbf0_chunk, SEEK_SET); s 454 libavcodec/vqavideo.c chunk_size = bytestream2_get_be32(&s->gb); s 457 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "problem: CBF0 chunk too large (0x%X bytes)\n", s 462 libavcodec/vqavideo.c bytestream2_get_buffer(&s->gb, s->codebook, chunk_size); s 469 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "problem: no VPTZ chunk found\n"); s 473 libavcodec/vqavideo.c bytestream2_seek(&s->gb, vptz_chunk, SEEK_SET); s 474 libavcodec/vqavideo.c chunk_size = bytestream2_get_be32(&s->gb); s 475 libavcodec/vqavideo.c if ((res = decode_format80(s, chunk_size, s 476 libavcodec/vqavideo.c s->decode_buffer, s->decode_buffer_size, 1)) < 0) s 480 libavcodec/vqavideo.c if (s->vector_height == 4) s 484 libavcodec/vqavideo.c for (y = 0; y < s->height; y += s->vector_height) { s 485 libavcodec/vqavideo.c for (x = 0; x < s->width; x += 4, lobytes++, hibytes++) { s 490 libavcodec/vqavideo.c switch (s->vqa_version) { s 493 libavcodec/vqavideo.c lobyte = s->decode_buffer[lobytes * 2]; s 494 libavcodec/vqavideo.c hibyte = s->decode_buffer[(lobytes * 2) + 1]; s 497 libavcodec/vqavideo.c lines = s->vector_height; s 512 libavcodec/vqavideo.c lobyte = s->decode_buffer[lobytes]; s 513 libavcodec/vqavideo.c hibyte = s->decode_buffer[hibytes]; s 516 libavcodec/vqavideo.c lines = s->vector_height; s 526 libavcodec/vqavideo.c frame->data[0][pixel_ptr + 0] = s->codebook[vector_index++]; s 527 libavcodec/vqavideo.c frame->data[0][pixel_ptr + 1] = s->codebook[vector_index++]; s 528 libavcodec/vqavideo.c frame->data[0][pixel_ptr + 2] = s->codebook[vector_index++]; s 529 libavcodec/vqavideo.c frame->data[0][pixel_ptr + 3] = s->codebook[vector_index++]; s 538 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "problem: found both CBP0 and CBPZ chunks\n"); s 544 libavcodec/vqavideo.c bytestream2_seek(&s->gb, cbp0_chunk, SEEK_SET); s 545 libavcodec/vqavideo.c chunk_size = bytestream2_get_be32(&s->gb); s 547 libavcodec/vqavideo.c if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) { s 548 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "cbp0 chunk too large (%u bytes)\n", s 554 libavcodec/vqavideo.c bytestream2_get_buffer(&s->gb, &s->next_codebook_buffer[s->next_codebook_buffer_index], s 556 libavcodec/vqavideo.c s->next_codebook_buffer_index += chunk_size; s 558 libavcodec/vqavideo.c s->partial_countdown--; s 559 libavcodec/vqavideo.c if (s->partial_countdown <= 0) { s 562 libavcodec/vqavideo.c memcpy(s->codebook, s->next_codebook_buffer, s 563 libavcodec/vqavideo.c s->next_codebook_buffer_index); s 566 libavcodec/vqavideo.c s->next_codebook_buffer_index = 0; s 567 libavcodec/vqavideo.c s->partial_countdown = s->partial_count; s 573 libavcodec/vqavideo.c bytestream2_seek(&s->gb, cbpz_chunk, SEEK_SET); s 574 libavcodec/vqavideo.c chunk_size = bytestream2_get_be32(&s->gb); s 576 libavcodec/vqavideo.c if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) { s 577 libavcodec/vqavideo.c av_log(s->avctx, AV_LOG_ERROR, "cbpz chunk too large (%u bytes)\n", s 583 libavcodec/vqavideo.c bytestream2_get_buffer(&s->gb, &s->next_codebook_buffer[s->next_codebook_buffer_index], s 585 libavcodec/vqavideo.c s->next_codebook_buffer_index += chunk_size; s 587 libavcodec/vqavideo.c s->partial_countdown--; s 588 libavcodec/vqavideo.c if (s->partial_countdown <= 0) { s 589 libavcodec/vqavideo.c bytestream2_init(&s->gb, s->next_codebook_buffer, s->next_codebook_buffer_index); s 591 libavcodec/vqavideo.c if ((res = decode_format80(s, s->next_codebook_buffer_index, s 592 libavcodec/vqavideo.c s->codebook, s->codebook_size, 0)) < 0) s 596 libavcodec/vqavideo.c s->next_codebook_buffer_index = 0; s 597 libavcodec/vqavideo.c s->partial_countdown = s->partial_count; s 608 libavcodec/vqavideo.c VqaContext *s = avctx->priv_data; s 615 libavcodec/vqavideo.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 616 libavcodec/vqavideo.c if ((res = vqa_decode_chunk(s, frame)) < 0) s 620 libavcodec/vqavideo.c memcpy(frame->data[1], s->palette, PALETTE_COUNT * 4); s 631 libavcodec/vqavideo.c VqaContext *s = avctx->priv_data; s 633 libavcodec/vqavideo.c av_freep(&s->codebook); s 634 libavcodec/vqavideo.c av_freep(&s->next_codebook_buffer); s 635 libavcodec/vqavideo.c av_freep(&s->decode_buffer); s 303 libavcodec/wavpack.c static inline int wv_get_value_integer(WavpackFrameContext *s, uint32_t *crc, s 308 libavcodec/wavpack.c if (s->extra_bits) { s 309 libavcodec/wavpack.c S *= 1 << s->extra_bits; s 311 libavcodec/wavpack.c if (s->got_extra_bits && s 312 libavcodec/wavpack.c get_bits_left(&s->gb_extra_bits) >= s->extra_bits) { s 313 libavcodec/wavpack.c S |= get_bits_long(&s->gb_extra_bits, s->extra_bits); s 318 libavcodec/wavpack.c bit = (S & s->and) | s->or; s 319 libavcodec/wavpack.c bit = ((S + bit) << s->shift) - bit; s 321 libavcodec/wavpack.c if (s->hybrid) s 322 libavcodec/wavpack.c bit = av_clip(bit, s->hybrid_minclip, s->hybrid_maxclip); s 324 libavcodec/wavpack.c return bit << s->post_shift; s 327 libavcodec/wavpack.c static float wv_get_value_float(WavpackFrameContext *s, uint32_t *crc, int S) s 335 libavcodec/wavpack.c int exp = s->float_max_exp; s 337 libavcodec/wavpack.c if (s->got_extra_bits) { s 339 libavcodec/wavpack.c const int left_bits = get_bits_left(&s->gb_extra_bits); s 346 libavcodec/wavpack.c S *= 1U << s->float_shift; s 351 libavcodec/wavpack.c if (s->got_extra_bits && get_bits1(&s->gb_extra_bits)) s 352 libavcodec/wavpack.c S = get_bits(&s->gb_extra_bits, 23); s 358 libavcodec/wavpack.c exp = s->float_max_exp; s 365 libavcodec/wavpack.c if ((s->float_flag & WV_FLT_SHIFT_ONES) || s 366 libavcodec/wavpack.c (s->got_extra_bits && s 367 libavcodec/wavpack.c (s->float_flag & WV_FLT_SHIFT_SAME) && s 368 libavcodec/wavpack.c get_bits1(&s->gb_extra_bits))) { s 370 libavcodec/wavpack.c } else if (s->got_extra_bits && s 371 libavcodec/wavpack.c (s->float_flag & WV_FLT_SHIFT_SENT)) { s 372 libavcodec/wavpack.c S |= get_bits(&s->gb_extra_bits, shift); s 376 libavcodec/wavpack.c exp = s->float_max_exp; s 382 libavcodec/wavpack.c if (s->got_extra_bits && (s->float_flag & WV_FLT_ZERO_SENT)) { s 383 libavcodec/wavpack.c if (get_bits1(&s->gb_extra_bits)) { s 384 libavcodec/wavpack.c S = get_bits(&s->gb_extra_bits, 23); s 385 libavcodec/wavpack.c if (s->float_max_exp >= 25) s 386 libavcodec/wavpack.c exp = get_bits(&s->gb_extra_bits, 8); s 387 libavcodec/wavpack.c sign = get_bits1(&s->gb_extra_bits); s 389 libavcodec/wavpack.c if (s->float_flag & WV_FLT_ZERO_SIGN) s 390 libavcodec/wavpack.c sign = get_bits1(&s->gb_extra_bits); s 401 libavcodec/wavpack.c static inline int wv_check_crc(WavpackFrameContext *s, uint32_t crc, s 404 libavcodec/wavpack.c if (crc != s->CRC) { s 405 libavcodec/wavpack.c av_log(s->avctx, AV_LOG_ERROR, "CRC error\n"); s 408 libavcodec/wavpack.c if (s->got_extra_bits && crc_extra_bits != s->crc_extra_bits) { s 409 libavcodec/wavpack.c av_log(s->avctx, AV_LOG_ERROR, "Extra bits CRC error\n"); s 441 libavcodec/wavpack.c static int wv_unpack_dsd_high(WavpackFrameContext *s, uint8_t *dst_left, uint8_t *dst_right) s 445 libavcodec/wavpack.c int total_samples = s->samples, stereo = dst_r ? 1 : 0; s 450 libavcodec/wavpack.c if (bytestream2_get_bytes_left(&s->gbyte) < (stereo ? 20 : 13)) s 453 libavcodec/wavpack.c rate_i = bytestream2_get_byte(&s->gbyte); s 454 libavcodec/wavpack.c rate_s = bytestream2_get_byte(&s->gbyte); s 459 libavcodec/wavpack.c init_ptable(s->ptable, rate_i, rate_s); s 464 libavcodec/wavpack.c sp->fltr1 = bytestream2_get_byte(&s->gbyte) << (PRECISION - 8); s 465 libavcodec/wavpack.c sp->fltr2 = bytestream2_get_byte(&s->gbyte) << (PRECISION - 8); s 466 libavcodec/wavpack.c sp->fltr3 = bytestream2_get_byte(&s->gbyte) << (PRECISION - 8); s 467 libavcodec/wavpack.c sp->fltr4 = bytestream2_get_byte(&s->gbyte) << (PRECISION - 8); s 468 libavcodec/wavpack.c sp->fltr5 = bytestream2_get_byte(&s->gbyte) << (PRECISION - 8); s 470 libavcodec/wavpack.c sp->factor = bytestream2_get_byte(&s->gbyte) & 0xff; s 471 libavcodec/wavpack.c sp->factor |= (bytestream2_get_byte(&s->gbyte) << 8) & 0xff00; s 475 libavcodec/wavpack.c value = bytestream2_get_be32(&s->gbyte); s 488 libavcodec/wavpack.c int32_t *pp = s->ptable + ((sp[0].value >> (PRECISION - PRECISION_USE)) & PTABLE_MASK); s 501 libavcodec/wavpack.c while (DSD_BYTE_READY(high, low) && bytestream2_get_bytes_left(&s->gbyte)) { s 502 libavcodec/wavpack.c value = (value << 8) | bytestream2_get_byte(&s->gbyte); s 523 libavcodec/wavpack.c pp = s->ptable + ((sp[1].value >> (PRECISION - PRECISION_USE)) & PTABLE_MASK); s 536 libavcodec/wavpack.c while (DSD_BYTE_READY(high, low) && bytestream2_get_bytes_left(&s->gbyte)) { s 537 libavcodec/wavpack.c value = (value << 8) | bytestream2_get_byte(&s->gbyte); s 567 libavcodec/wavpack.c if (wv_check_crc(s, checksum, 0)) { s 568 libavcodec/wavpack.c if (s->avctx->err_recognition & AV_EF_CRCCHECK) s 571 libavcodec/wavpack.c memset(dst_left, 0x69, s->samples * 4); s 574 libavcodec/wavpack.c memset(dst_right, 0x69, s->samples * 4); s 580 libavcodec/wavpack.c static int wv_unpack_dsd_fast(WavpackFrameContext *s, uint8_t *dst_left, uint8_t *dst_right) s 585 libavcodec/wavpack.c int total_samples = s->samples; s 586 libavcodec/wavpack.c uint8_t *vlb = s->value_lookup_buffer; s 591 libavcodec/wavpack.c if (!bytestream2_get_bytes_left(&s->gbyte)) s 594 libavcodec/wavpack.c history_bits = bytestream2_get_byte(&s->gbyte); s 596 libavcodec/wavpack.c if (!bytestream2_get_bytes_left(&s->gbyte) || history_bits > MAX_HISTORY_BITS) s 600 libavcodec/wavpack.c max_probability = bytestream2_get_byte(&s->gbyte); s 603 libavcodec/wavpack.c uint8_t *outptr = (uint8_t *)s->probabilities; s 604 libavcodec/wavpack.c uint8_t *outend = outptr + sizeof(*s->probabilities) * history_bins; s 606 libavcodec/wavpack.c while (outptr < outend && bytestream2_get_bytes_left(&s->gbyte)) { s 607 libavcodec/wavpack.c int code = bytestream2_get_byte(&s->gbyte); s 623 libavcodec/wavpack.c (bytestream2_get_bytes_left(&s->gbyte) && bytestream2_get_byte(&s->gbyte))) s 625 libavcodec/wavpack.c } else if (bytestream2_get_bytes_left(&s->gbyte) > (int)sizeof(*s->probabilities) * history_bins) { s 626 libavcodec/wavpack.c bytestream2_get_buffer(&s->gbyte, (uint8_t *)s->probabilities, s 627 libavcodec/wavpack.c sizeof(*s->probabilities) * history_bins); s 636 libavcodec/wavpack.c s->summed_probabilities[p0][i] = sum_values += s->probabilities[p0][i]; s 644 libavcodec/wavpack.c s->value_lookup[p0] = vlb; s 647 libavcodec/wavpack.c int c = s->probabilities[p0][i]; s 655 libavcodec/wavpack.c if (bytestream2_get_bytes_left(&s->gbyte) < 4) s 660 libavcodec/wavpack.c value = bytestream2_get_be32(&s->gbyte); s 668 libavcodec/wavpack.c if (!s->summed_probabilities[p0][255]) s 671 libavcodec/wavpack.c mult = (high - low) / s->summed_probabilities[p0][255]; s 674 libavcodec/wavpack.c if (bytestream2_get_bytes_left(&s->gbyte) >= 4) s 675 libavcodec/wavpack.c value = bytestream2_get_be32(&s->gbyte); s 679 libavcodec/wavpack.c mult = high / s->summed_probabilities[p0][255]; s 687 libavcodec/wavpack.c if (index >= s->summed_probabilities[p0][255]) s 691 libavcodec/wavpack.c if ((*dst_l = code = s->value_lookup[p0][index])) s 692 libavcodec/wavpack.c low += s->summed_probabilities[p0][code-1] * mult; s 696 libavcodec/wavpack.c if ((code = s->value_lookup[p0][index])) s 697 libavcodec/wavpack.c low += s->summed_probabilities[p0][code-1] * mult; s 711 libavcodec/wavpack.c high = low + s->probabilities[p0][code] * mult - 1; s 721 libavcodec/wavpack.c while (DSD_BYTE_READY(high, low) && bytestream2_get_bytes_left(&s->gbyte)) { s 722 libavcodec/wavpack.c value = (value << 8) | bytestream2_get_byte(&s->gbyte); s 728 libavcodec/wavpack.c if (wv_check_crc(s, checksum, 0)) { s 729 libavcodec/wavpack.c if (s->avctx->err_recognition & AV_EF_CRCCHECK) s 732 libavcodec/wavpack.c memset(dst_left, 0x69, s->samples * 4); s 735 libavcodec/wavpack.c memset(dst_right, 0x69, s->samples * 4); s 741 libavcodec/wavpack.c static int wv_unpack_dsd_copy(WavpackFrameContext *s, uint8_t *dst_left, uint8_t *dst_right) s 744 libavcodec/wavpack.c int total_samples = s->samples; s 747 libavcodec/wavpack.c if (bytestream2_get_bytes_left(&s->gbyte) != total_samples * (dst_r ? 2 : 1)) s 751 libavcodec/wavpack.c checksum += (checksum << 1) + (*dst_l = bytestream2_get_byte(&s->gbyte)); s 755 libavcodec/wavpack.c checksum += (checksum << 1) + (*dst_r = bytestream2_get_byte(&s->gbyte)); s 760 libavcodec/wavpack.c if (wv_check_crc(s, checksum, 0)) { s 761 libavcodec/wavpack.c if (s->avctx->err_recognition & AV_EF_CRCCHECK) s 764 libavcodec/wavpack.c memset(dst_left, 0x69, s->samples * 4); s 767 libavcodec/wavpack.c memset(dst_right, 0x69, s->samples * 4); s 773 libavcodec/wavpack.c static inline int wv_unpack_stereo(WavpackFrameContext *s, GetBitContext *gb, s 789 libavcodec/wavpack.c s->one = s->zero = s->zeroes = 0; s 791 libavcodec/wavpack.c L = wv_get_value(s, gb, 0, &last); s 794 libavcodec/wavpack.c R = wv_get_value(s, gb, 1, &last); s 797 libavcodec/wavpack.c for (i = 0; i < s->terms; i++) { s 798 libavcodec/wavpack.c t = s->decorr[i].value; s 802 libavcodec/wavpack.c A = 2U * s->decorr[i].samplesA[0] - s->decorr[i].samplesA[1]; s 803 libavcodec/wavpack.c B = 2U * s->decorr[i].samplesB[0] - s->decorr[i].samplesB[1]; s 805 libavcodec/wavpack.c A = (int)(3U * s->decorr[i].samplesA[0] - s->decorr[i].samplesA[1]) >> 1; s 806 libavcodec/wavpack.c B = (int)(3U * s->decorr[i].samplesB[0] - s->decorr[i].samplesB[1]) >> 1; s 808 libavcodec/wavpack.c s->decorr[i].samplesA[1] = s->decorr[i].samplesA[0]; s 809 libavcodec/wavpack.c s->decorr[i].samplesB[1] = s->decorr[i].samplesB[0]; s 812 libavcodec/wavpack.c A = s->decorr[i].samplesA[pos]; s 813 libavcodec/wavpack.c B = s->decorr[i].samplesB[pos]; s 817 libavcodec/wavpack.c L2 = L + ((s->decorr[i].weightA * (int64_t)A + 512) >> 10); s 818 libavcodec/wavpack.c R2 = R + ((s->decorr[i].weightB * (int64_t)B + 512) >> 10); s 820 libavcodec/wavpack.c L2 = L + (unsigned)((int)(s->decorr[i].weightA * (unsigned)A + 512) >> 10); s 821 libavcodec/wavpack.c R2 = R + (unsigned)((int)(s->decorr[i].weightB * (unsigned)B + 512) >> 10); s 824 libavcodec/wavpack.c s->decorr[i].weightA -= ((((L ^ A) >> 30) & 2) - 1) * s->decorr[i].delta; s 826 libavcodec/wavpack.c s->decorr[i].weightB -= ((((R ^ B) >> 30) & 2) - 1) * s->decorr[i].delta; s 827 libavcodec/wavpack.c s->decorr[i].samplesA[j] = L = L2; s 828 libavcodec/wavpack.c s->decorr[i].samplesB[j] = R = R2; s 831 libavcodec/wavpack.c L2 = L + ((s->decorr[i].weightA * (int64_t)s->decorr[i].samplesA[0] + 512) >> 10); s 833 libavcodec/wavpack.c L2 = L + (unsigned)((int)(s->decorr[i].weightA * (unsigned)s->decorr[i].samplesA[0] + 512) >> 10); s 834 libavcodec/wavpack.c UPDATE_WEIGHT_CLIP(s->decorr[i].weightA, s->decorr[i].delta, s->decorr[i].samplesA[0], L); s 837 libavcodec/wavpack.c R2 = R + ((s->decorr[i].weightB * (int64_t)L2 + 512) >> 10); s 839 libavcodec/wavpack.c R2 = R + (unsigned)((int)(s->decorr[i].weightB * (unsigned)L2 + 512) >> 10); s 840 libavcodec/wavpack.c UPDATE_WEIGHT_CLIP(s->decorr[i].weightB, s->decorr[i].delta, L2, R); s 842 libavcodec/wavpack.c s->decorr[i].samplesA[0] = R; s 845 libavcodec/wavpack.c R2 = R + ((s->decorr[i].weightB * (int64_t)s->decorr[i].samplesB[0] + 512) >> 10); s 847 libavcodec/wavpack.c R2 = R + (unsigned)((int)(s->decorr[i].weightB * (unsigned)s->decorr[i].samplesB[0] + 512) >> 10); s 848 libavcodec/wavpack.c UPDATE_WEIGHT_CLIP(s->decorr[i].weightB, s->decorr[i].delta, s->decorr[i].samplesB[0], R); s 852 libavcodec/wavpack.c R2 = s->decorr[i].samplesA[0]; s 853 libavcodec/wavpack.c s->decorr[i].samplesA[0] = R; s 857 libavcodec/wavpack.c L2 = L + ((s->decorr[i].weightA * (int64_t)R2 + 512) >> 10); s 859 libavcodec/wavpack.c L2 = L + (unsigned)((int)(s->decorr[i].weightA * (unsigned)R2 + 512) >> 10); s 860 libavcodec/wavpack.c UPDATE_WEIGHT_CLIP(s->decorr[i].weightA, s->decorr[i].delta, R2, L); s 862 libavcodec/wavpack.c s->decorr[i].samplesB[0] = L; s 868 libavcodec/wavpack.c av_log(s->avctx, AV_LOG_ERROR, "sample %d %d too large\n", L, R); s 874 libavcodec/wavpack.c if (s->joint) s 879 libavcodec/wavpack.c *dstfl_l++ = wv_get_value_float(s, &crc_extra_bits, L); s 880 libavcodec/wavpack.c *dstfl_r++ = wv_get_value_float(s, &crc_extra_bits, R); s 882 libavcodec/wavpack.c *dst32_l++ = wv_get_value_integer(s, &crc_extra_bits, L); s 883 libavcodec/wavpack.c *dst32_r++ = wv_get_value_integer(s, &crc_extra_bits, R); s 885 libavcodec/wavpack.c *dst16_l++ = wv_get_value_integer(s, &crc_extra_bits, L); s 886 libavcodec/wavpack.c *dst16_r++ = wv_get_value_integer(s, &crc_extra_bits, R); s 889 libavcodec/wavpack.c } while (!last && count < s->samples); s 891 libavcodec/wavpack.c if (last && count < s->samples) { s 893 libavcodec/wavpack.c memset((uint8_t*)dst_l + count*size, 0, (s->samples-count)*size); s 894 libavcodec/wavpack.c memset((uint8_t*)dst_r + count*size, 0, (s->samples-count)*size); s 897 libavcodec/wavpack.c if ((s->avctx->err_recognition & AV_EF_CRCCHECK) && s 898 libavcodec/wavpack.c wv_check_crc(s, crc, crc_extra_bits)) s 904 libavcodec/wavpack.c static inline int wv_unpack_mono(WavpackFrameContext *s, GetBitContext *gb, s 917 libavcodec/wavpack.c s->one = s->zero = s->zeroes = 0; s 919 libavcodec/wavpack.c T = wv_get_value(s, gb, 0, &last); s 923 libavcodec/wavpack.c for (i = 0; i < s->terms; i++) { s 924 libavcodec/wavpack.c t = s->decorr[i].value; s 927 libavcodec/wavpack.c A = 2U * s->decorr[i].samplesA[0] - s->decorr[i].samplesA[1]; s 929 libavcodec/wavpack.c A = (int)(3U * s->decorr[i].samplesA[0] - s->decorr[i].samplesA[1]) >> 1; s 930 libavcodec/wavpack.c s->decorr[i].samplesA[1] = s->decorr[i].samplesA[0]; s 933 libavcodec/wavpack.c A = s->decorr[i].samplesA[pos]; s 937 libavcodec/wavpack.c S = T + ((s->decorr[i].weightA * (int64_t)A + 512) >> 10); s 939 libavcodec/wavpack.c S = T + (unsigned)((int)(s->decorr[i].weightA * (unsigned)A + 512) >> 10); s 941 libavcodec/wavpack.c s->decorr[i].weightA -= ((((T ^ A) >> 30) & 2) - 1) * s->decorr[i].delta; s 942 libavcodec/wavpack.c s->decorr[i].samplesA[j] = T = S; s 948 libavcodec/wavpack.c *dstfl++ = wv_get_value_float(s, &crc_extra_bits, S); s 950 libavcodec/wavpack.c *dst32++ = wv_get_value_integer(s, &crc_extra_bits, S); s 952 libavcodec/wavpack.c *dst16++ = wv_get_value_integer(s, &crc_extra_bits, S); s 955 libavcodec/wavpack.c } while (!last && count < s->samples); s 957 libavcodec/wavpack.c if (last && count < s->samples) { s 959 libavcodec/wavpack.c memset((uint8_t*)dst + count*size, 0, (s->samples-count)*size); s 962 libavcodec/wavpack.c if (s->avctx->err_recognition & AV_EF_CRCCHECK) { s 963 libavcodec/wavpack.c int ret = wv_check_crc(s, crc, crc_extra_bits); s 964 libavcodec/wavpack.c if (ret < 0 && s->avctx->err_recognition & AV_EF_EXPLODE) s 985 libavcodec/wavpack.c static int wv_dsd_reset(WavpackContext *s, int channels) s 989 libavcodec/wavpack.c s->dsdctx = NULL; s 990 libavcodec/wavpack.c s->dsd_channels = 0; s 991 libavcodec/wavpack.c av_buffer_unref(&s->dsd_ref); s 996 libavcodec/wavpack.c if (channels > INT_MAX / sizeof(*s->dsdctx)) s 999 libavcodec/wavpack.c s->dsd_ref = av_buffer_allocz(channels * sizeof(*s->dsdctx)); s 1000 libavcodec/wavpack.c if (!s->dsd_ref) s 1002 libavcodec/wavpack.c s->dsdctx = (DSDContext*)s->dsd_ref->data; s 1003 libavcodec/wavpack.c s->dsd_channels = channels; s 1006 libavcodec/wavpack.c memset(s->dsdctx[i].buf, 0x69, sizeof(s->dsdctx[i].buf)); s 1044 libavcodec/wavpack.c WavpackContext *s = avctx->priv_data; s 1046 libavcodec/wavpack.c s->avctx = avctx; s 1048 libavcodec/wavpack.c s->fdec_num = 0; s 1050 libavcodec/wavpack.c s->curr_frame.f = av_frame_alloc(); s 1051 libavcodec/wavpack.c s->prev_frame.f = av_frame_alloc(); s 1053 libavcodec/wavpack.c if (!s->curr_frame.f || !s->prev_frame.f) s 1063 libavcodec/wavpack.c WavpackContext *s = avctx->priv_data; s 1065 libavcodec/wavpack.c for (int i = 0; i < s->fdec_num; i++) s 1066 libavcodec/wavpack.c av_freep(&s->fdec[i]); s 1067 libavcodec/wavpack.c s->fdec_num = 0; s 1069 libavcodec/wavpack.c ff_thread_release_buffer(avctx, &s->curr_frame); s 1070 libavcodec/wavpack.c av_frame_free(&s->curr_frame.f); s 1072 libavcodec/wavpack.c ff_thread_release_buffer(avctx, &s->prev_frame); s 1073 libavcodec/wavpack.c av_frame_free(&s->prev_frame.f); s 1075 libavcodec/wavpack.c av_buffer_unref(&s->dsd_ref); s 1084 libavcodec/wavpack.c WavpackFrameContext *s; s 1102 libavcodec/wavpack.c s = wc->fdec[block_no]; s 1103 libavcodec/wavpack.c if (!s) { s 1109 libavcodec/wavpack.c memset(s->decorr, 0, MAX_TERMS * sizeof(Decorr)); s 1110 libavcodec/wavpack.c memset(s->ch, 0, sizeof(s->ch)); s 1111 libavcodec/wavpack.c s->extra_bits = 0; s 1112 libavcodec/wavpack.c s->and = s->or = s->shift = 0; s 1113 libavcodec/wavpack.c s->got_extra_bits = 0; s 1117 libavcodec/wavpack.c s->samples = bytestream2_get_le32(&gb); s 1118 libavcodec/wavpack.c if (s->samples != wc->samples) { s 1120 libavcodec/wavpack.c "a sequence: %d and %d\n", wc->samples, s->samples); s 1123 libavcodec/wavpack.c s->frame_flags = bytestream2_get_le32(&gb); s 1125 libavcodec/wavpack.c if (s->frame_flags & (WV_FLOAT_DATA | WV_DSD_DATA)) s 1127 libavcodec/wavpack.c else if ((s->frame_flags & 0x03) <= 1) s 1136 libavcodec/wavpack.c orig_bpp = ((s->frame_flags & 0x03) + 1) << 3; s 1137 libavcodec/wavpack.c multiblock = (s->frame_flags & WV_SINGLE_BLOCK) != WV_SINGLE_BLOCK; s 1139 libavcodec/wavpack.c s->stereo = !(s->frame_flags & WV_MONO); s 1140 libavcodec/wavpack.c s->stereo_in = (s->frame_flags & WV_FALSE_STEREO) ? 0 : s->stereo; s 1141 libavcodec/wavpack.c s->joint = s->frame_flags & WV_JOINT_STEREO; s 1142 libavcodec/wavpack.c s->hybrid = s->frame_flags & WV_HYBRID_MODE; s 1143 libavcodec/wavpack.c s->hybrid_bitrate = s->frame_flags & WV_HYBRID_BITRATE; s 1144 libavcodec/wavpack.c s->post_shift = bpp * 8 - orig_bpp + ((s->frame_flags >> 13) & 0x1f); s 1145 libavcodec/wavpack.c if (s->post_shift < 0 || s->post_shift > 31) { s 1148 libavcodec/wavpack.c s->hybrid_maxclip = ((1LL << (orig_bpp - 1)) - 1); s 1149 libavcodec/wavpack.c s->hybrid_minclip = ((-1UL << (orig_bpp - 1))); s 1150 libavcodec/wavpack.c s->CRC = bytestream2_get_le32(&gb); s 1176 libavcodec/wavpack.c s->terms = 0; s 1180 libavcodec/wavpack.c s->terms = size; s 1181 libavcodec/wavpack.c for (i = 0; i < s->terms; i++) { s 1183 libavcodec/wavpack.c s->decorr[s->terms - i - 1].value = (val & 0x1F) - 5; s 1184 libavcodec/wavpack.c s->decorr[s->terms - i - 1].delta = val >> 5; s 1193 libavcodec/wavpack.c weights = size >> s->stereo_in; s 1194 libavcodec/wavpack.c if (weights > MAX_TERMS || weights > s->terms) { s 1201 libavcodec/wavpack.c s->decorr[s->terms - i - 1].weightA = t * (1 << 3); s 1202 libavcodec/wavpack.c if (s->decorr[s->terms - i - 1].weightA > 0) s 1203 libavcodec/wavpack.c s->decorr[s->terms - i - 1].weightA += s 1204 libavcodec/wavpack.c (s->decorr[s->terms - i - 1].weightA + 64) >> 7; s 1205 libavcodec/wavpack.c if (s->stereo_in) { s 1207 libavcodec/wavpack.c s->decorr[s->terms - i - 1].weightB = t * (1 << 3); s 1208 libavcodec/wavpack.c if (s->decorr[s->terms - i - 1].weightB > 0) s 1209 libavcodec/wavpack.c s->decorr[s->terms - i - 1].weightB += s 1210 libavcodec/wavpack.c (s->decorr[s->terms - i - 1].weightB + 64) >> 7; s 1221 libavcodec/wavpack.c for (i = s->terms - 1; (i >= 0) && (t < size); i--) { s 1222 libavcodec/wavpack.c if (s->decorr[i].value > 8) { s 1223 libavcodec/wavpack.c s->decorr[i].samplesA[0] = s 1225 libavcodec/wavpack.c s->decorr[i].samplesA[1] = s 1228 libavcodec/wavpack.c if (s->stereo_in) { s 1229 libavcodec/wavpack.c s->decorr[i].samplesB[0] = s 1231 libavcodec/wavpack.c s->decorr[i].samplesB[1] = s 1236 libavcodec/wavpack.c } else if (s->decorr[i].value < 0) { s 1237 libavcodec/wavpack.c s->decorr[i].samplesA[0] = s 1239 libavcodec/wavpack.c s->decorr[i].samplesB[0] = s 1243 libavcodec/wavpack.c for (j = 0; j < s->decorr[i].value; j++) { s 1244 libavcodec/wavpack.c s->decorr[i].samplesA[j] = s 1246 libavcodec/wavpack.c if (s->stereo_in) { s 1247 libavcodec/wavpack.c s->decorr[i].samplesB[j] = s 1251 libavcodec/wavpack.c t += s->decorr[i].value * 2 * (s->stereo_in + 1); s 1257 libavcodec/wavpack.c if (size != 6 * (s->stereo_in + 1)) { s 1260 libavcodec/wavpack.c 6 * (s->stereo_in + 1), size); s 1264 libavcodec/wavpack.c for (j = 0; j <= s->stereo_in; j++) s 1266 libavcodec/wavpack.c s->ch[j].median[i] = wp_exp2(bytestream2_get_le16(&gb)); s 1271 libavcodec/wavpack.c if (s->hybrid_bitrate) { s 1272 libavcodec/wavpack.c for (i = 0; i <= s->stereo_in; i++) { s 1273 libavcodec/wavpack.c s->ch[i].slow_level = wp_exp2(bytestream2_get_le16(&gb)); s 1277 libavcodec/wavpack.c for (i = 0; i < (s->stereo_in + 1); i++) { s 1278 libavcodec/wavpack.c s->ch[i].bitrate_acc = bytestream2_get_le16(&gb) << 16; s 1282 libavcodec/wavpack.c for (i = 0; i < (s->stereo_in + 1); i++) { s 1283 libavcodec/wavpack.c s->ch[i].bitrate_delta = s 1287 libavcodec/wavpack.c for (i = 0; i < (s->stereo_in + 1); i++) s 1288 libavcodec/wavpack.c s->ch[i].bitrate_delta = 0; s 1307 libavcodec/wavpack.c s->extra_bits = val[0]; s 1309 libavcodec/wavpack.c s->shift = val[1]; s 1311 libavcodec/wavpack.c s->and = s->or = 1; s 1312 libavcodec/wavpack.c s->shift = val[2]; s 1314 libavcodec/wavpack.c s->and = 1; s 1315 libavcodec/wavpack.c s->shift = val[3]; s 1317 libavcodec/wavpack.c if (s->shift > 31) { s 1319 libavcodec/wavpack.c "Invalid INT32INFO, shift = %d (> 31)\n", s->shift); s 1320 libavcodec/wavpack.c s->and = s->or = s->shift = 0; s 1325 libavcodec/wavpack.c if (s->hybrid && bpp == 4 && s->post_shift < 8 && s->shift > 8) { s 1326 libavcodec/wavpack.c s->post_shift += 8; s 1327 libavcodec/wavpack.c s->shift -= 8; s 1328 libavcodec/wavpack.c s->hybrid_maxclip >>= 8; s 1329 libavcodec/wavpack.c s->hybrid_minclip >>= 8; s 1340 libavcodec/wavpack.c s->float_flag = bytestream2_get_byte(&gb); s 1341 libavcodec/wavpack.c s->float_shift = bytestream2_get_byte(&gb); s 1342 libavcodec/wavpack.c s->float_max_exp = bytestream2_get_byte(&gb); s 1343 libavcodec/wavpack.c if (s->float_shift > 31) { s 1345 libavcodec/wavpack.c "Invalid FLOATINFO, shift = %d (> 31)\n", s->float_shift); s 1346 libavcodec/wavpack.c s->float_shift = 0; s 1353 libavcodec/wavpack.c if ((ret = init_get_bits8(&s->gb, gb.buffer, size)) < 0) s 1375 libavcodec/wavpack.c bytestream2_init(&s->gbyte, gb.buffer, size-2); s 1386 libavcodec/wavpack.c if ((ret = init_get_bits8(&s->gb_extra_bits, gb.buffer, size)) < 0) s 1388 libavcodec/wavpack.c s->crc_extra_bits = get_bits_long(&s->gb_extra_bits, 32); s 1390 libavcodec/wavpack.c s->got_extra_bits = 1; s 1468 libavcodec/wavpack.c if (s->hybrid && !got_hybrid) { s 1476 libavcodec/wavpack.c if (s->got_extra_bits && sample_fmt != AV_SAMPLE_FMT_FLTP) { s 1477 libavcodec/wavpack.c const int size = get_bits_left(&s->gb_extra_bits); s 1478 libavcodec/wavpack.c const int wanted = s->samples * s->extra_bits << s->stereo_in; s 1481 libavcodec/wavpack.c s->got_extra_bits = 0; s 1501 libavcodec/wavpack.c int sr = (s->frame_flags >> 23) & 0xf; s 1521 libavcodec/wavpack.c new_channels = s->stereo ? 2 : 1; s 1522 libavcodec/wavpack.c new_chmask = s->stereo ? AV_CH_LAYOUT_STEREO : s 1554 libavcodec/wavpack.c wc->curr_frame.f->nb_samples = s->samples; s 1562 libavcodec/wavpack.c if (wc->ch_offset + s->stereo >= avctx->channels) { s 1568 libavcodec/wavpack.c if (s->stereo) s 1571 libavcodec/wavpack.c wc->ch_offset += 1 + s->stereo; s 1573 libavcodec/wavpack.c if (s->stereo_in) { s 1576 libavcodec/wavpack.c ret = wv_unpack_dsd_high(s, samples_l, samples_r); s 1578 libavcodec/wavpack.c ret = wv_unpack_dsd_fast(s, samples_l, samples_r); s 1580 libavcodec/wavpack.c ret = wv_unpack_dsd_copy(s, samples_l, samples_r); s 1583 libavcodec/wavpack.c ret = wv_unpack_stereo(s, &s->gb, samples_l, samples_r, avctx->sample_fmt); s 1590 libavcodec/wavpack.c ret = wv_unpack_dsd_high(s, samples_l, NULL); s 1592 libavcodec/wavpack.c ret = wv_unpack_dsd_fast(s, samples_l, NULL); s 1594 libavcodec/wavpack.c ret = wv_unpack_dsd_copy(s, samples_l, NULL); s 1597 libavcodec/wavpack.c ret = wv_unpack_mono(s, &s->gb, samples_l, avctx->sample_fmt); s 1602 libavcodec/wavpack.c if (s->stereo) s 1603 libavcodec/wavpack.c memcpy(samples_r, samples_l, bpp * s->samples); s 1611 libavcodec/wavpack.c WavpackContext *s = avctx->priv_data; s 1613 libavcodec/wavpack.c wv_dsd_reset(s, 0); s 1618 libavcodec/wavpack.c WavpackContext *s = avctx->priv_data; s 1621 libavcodec/wavpack.c ff_dsd2pcm_translate (&s->dsdctx [jobnr], s->samples, 0, s 1631 libavcodec/wavpack.c WavpackContext *s = avctx->priv_data; s 1639 libavcodec/wavpack.c s->frame = NULL; s 1640 libavcodec/wavpack.c s->block = 0; s 1641 libavcodec/wavpack.c s->ch_offset = 0; s 1644 libavcodec/wavpack.c s->samples = AV_RL32(buf + 20); s 1646 libavcodec/wavpack.c if (s->samples <= 0 || s->samples > WV_MAX_SAMPLES) { s 1648 libavcodec/wavpack.c s->samples); s 1652 libavcodec/wavpack.c s->modulation = (frame_flags & WV_DSD_DATA) ? MODULATION_DSD : MODULATION_PCM; s 1661 libavcodec/wavpack.c s->block, frame_size, buf_size); s 1665 libavcodec/wavpack.c if ((ret = wavpack_decode_block(avctx, s->block, buf, frame_size)) < 0) s 1667 libavcodec/wavpack.c s->block++; s 1672 libavcodec/wavpack.c if (s->ch_offset != avctx->channels) { s 1678 libavcodec/wavpack.c ff_thread_await_progress(&s->prev_frame, INT_MAX, 0); s 1679 libavcodec/wavpack.c ff_thread_release_buffer(avctx, &s->prev_frame); s 1681 libavcodec/wavpack.c if (s->modulation == MODULATION_DSD) s 1682 libavcodec/wavpack.c avctx->execute2(avctx, dsd_channel, s->frame, NULL, avctx->channels); s 1684 libavcodec/wavpack.c ff_thread_report_progress(&s->curr_frame, INT_MAX, 0); s 1686 libavcodec/wavpack.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 1694 libavcodec/wavpack.c if (s->frame) { s 1695 libavcodec/wavpack.c ff_thread_await_progress(&s->prev_frame, INT_MAX, 0); s 1696 libavcodec/wavpack.c ff_thread_release_buffer(avctx, &s->prev_frame); s 1697 libavcodec/wavpack.c ff_thread_report_progress(&s->curr_frame, INT_MAX, 0); s 34 libavcodec/wavpackenc.c int32_t s = (int32_t) ((source) ^ (result)) >> 31; \ s 35 libavcodec/wavpackenc.c weight = ((delta) ^ s) + ((weight) - s); \ s 127 libavcodec/wavpackenc.c WavPackEncodeContext *s = avctx->priv_data; s 129 libavcodec/wavpackenc.c s->avctx = avctx; s 157 libavcodec/wavpackenc.c s->decorr_filter = 3; s 158 libavcodec/wavpackenc.c s->num_passes = 9; s 160 libavcodec/wavpackenc.c s->num_branches = 4; s 161 libavcodec/wavpackenc.c s->extra_flags = EXTRA_TRY_DELTAS|EXTRA_ADJUST_DELTAS|EXTRA_SORT_FIRST|EXTRA_SORT_LAST|EXTRA_BRANCHES; s 163 libavcodec/wavpackenc.c s->num_branches = 3; s 164 libavcodec/wavpackenc.c s->extra_flags = EXTRA_TRY_DELTAS|EXTRA_ADJUST_DELTAS|EXTRA_SORT_FIRST|EXTRA_BRANCHES; s 166 libavcodec/wavpackenc.c s->num_branches = 2; s 167 libavcodec/wavpackenc.c s->extra_flags = EXTRA_TRY_DELTAS|EXTRA_ADJUST_DELTAS|EXTRA_SORT_FIRST|EXTRA_BRANCHES; s 169 libavcodec/wavpackenc.c s->num_branches = 1; s 170 libavcodec/wavpackenc.c s->extra_flags = EXTRA_TRY_DELTAS|EXTRA_ADJUST_DELTAS|EXTRA_SORT_FIRST|EXTRA_BRANCHES; s 172 libavcodec/wavpackenc.c s->num_branches = 1; s 173 libavcodec/wavpackenc.c s->extra_flags = EXTRA_TRY_DELTAS|EXTRA_ADJUST_DELTAS|EXTRA_BRANCHES; s 176 libavcodec/wavpackenc.c s->decorr_filter = 2; s 177 libavcodec/wavpackenc.c s->num_passes = 4; s 179 libavcodec/wavpackenc.c s->decorr_filter = 1; s 180 libavcodec/wavpackenc.c s->num_passes = 2; s 182 libavcodec/wavpackenc.c s->decorr_filter = 0; s 183 libavcodec/wavpackenc.c s->num_passes = 0; s 187 libavcodec/wavpackenc.c s->num_decorrs = decorr_filter_sizes[s->decorr_filter]; s 188 libavcodec/wavpackenc.c s->decorr_specs = decorr_filters[s->decorr_filter]; s 190 libavcodec/wavpackenc.c s->delta_decay = 2.0; s 223 libavcodec/wavpackenc.c static void process_float(WavPackEncodeContext *s, int32_t *sample) s 228 libavcodec/wavpackenc.c s->float_flags |= FLOAT_EXCEPTIONS; s 232 libavcodec/wavpackenc.c shift_count = s->max_exp - get_exponent(f); s 235 libavcodec/wavpackenc.c shift_count = s->max_exp ? s->max_exp - 1 : 0; s 246 libavcodec/wavpackenc.c s->false_zeros++; s 248 libavcodec/wavpackenc.c s->neg_zeros++; s 253 libavcodec/wavpackenc.c s->shifted_zeros++; s 255 libavcodec/wavpackenc.c s->shifted_ones++; s 257 libavcodec/wavpackenc.c s->shifted_both++; s 260 libavcodec/wavpackenc.c s->ordata |= value; s 264 libavcodec/wavpackenc.c static int scan_float(WavPackEncodeContext *s, s 271 libavcodec/wavpackenc.c s->shifted_ones = s->shifted_zeros = s->shifted_both = s->ordata = 0; s 272 libavcodec/wavpackenc.c s->float_shift = s->float_flags = 0; s 273 libavcodec/wavpackenc.c s->false_zeros = s->neg_zeros = 0; s 274 libavcodec/wavpackenc.c s->max_exp = 0; s 276 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) { s 281 libavcodec/wavpackenc.c if (get_exponent(f) > s->max_exp && get_exponent(f) < 255) s 282 libavcodec/wavpackenc.c s->max_exp = get_exponent(f); s 290 libavcodec/wavpackenc.c if (get_exponent(f) > s->max_exp && get_exponent(f) < 255) s 291 libavcodec/wavpackenc.c s->max_exp = get_exponent(f); s 296 libavcodec/wavpackenc.c if (get_exponent(f) > s->max_exp && get_exponent(f) < 255) s 297 libavcodec/wavpackenc.c s->max_exp = get_exponent(f); s 301 libavcodec/wavpackenc.c s->crc_x = crc; s 303 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) { s 305 libavcodec/wavpackenc.c process_float(s, &samples_l[i]); s 308 libavcodec/wavpackenc.c process_float(s, &samples_l[i]); s 309 libavcodec/wavpackenc.c process_float(s, &samples_r[i]); s 313 libavcodec/wavpackenc.c s->float_max_exp = s->max_exp; s 315 libavcodec/wavpackenc.c if (s->shifted_both) s 316 libavcodec/wavpackenc.c s->float_flags |= FLOAT_SHIFT_SENT; s 317 libavcodec/wavpackenc.c else if (s->shifted_ones && !s->shifted_zeros) s 318 libavcodec/wavpackenc.c s->float_flags |= FLOAT_SHIFT_ONES; s 319 libavcodec/wavpackenc.c else if (s->shifted_ones && s->shifted_zeros) s 320 libavcodec/wavpackenc.c s->float_flags |= FLOAT_SHIFT_SAME; s 321 libavcodec/wavpackenc.c else if (s->ordata && !(s->ordata & 1)) { s 323 libavcodec/wavpackenc.c s->float_shift++; s 324 libavcodec/wavpackenc.c s->ordata >>= 1; s 325 libavcodec/wavpackenc.c } while (!(s->ordata & 1)); s 327 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) s 328 libavcodec/wavpackenc.c shift_mono(samples_l, nb_samples, s->float_shift); s 330 libavcodec/wavpackenc.c shift_stereo(samples_l, samples_r, nb_samples, s->float_shift); s 333 libavcodec/wavpackenc.c s->flags &= ~MAG_MASK; s 335 libavcodec/wavpackenc.c while (s->ordata) { s 336 libavcodec/wavpackenc.c s->flags += 1 << MAG_LSB; s 337 libavcodec/wavpackenc.c s->ordata >>= 1; s 340 libavcodec/wavpackenc.c if (s->false_zeros || s->neg_zeros) s 341 libavcodec/wavpackenc.c s->float_flags |= FLOAT_ZEROS_SENT; s 343 libavcodec/wavpackenc.c if (s->neg_zeros) s 344 libavcodec/wavpackenc.c s->float_flags |= FLOAT_NEG_ZEROS; s 346 libavcodec/wavpackenc.c return s->float_flags & (FLOAT_EXCEPTIONS | FLOAT_ZEROS_SENT | s 350 libavcodec/wavpackenc.c static void scan_int23(WavPackEncodeContext *s, s 357 libavcodec/wavpackenc.c s->int32_sent_bits = s->int32_zeros = s->int32_ones = s->int32_dups = 0; s 359 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) { s 388 libavcodec/wavpackenc.c s->flags &= ~MAG_MASK; s 391 libavcodec/wavpackenc.c s->flags += 1 << MAG_LSB; s 395 libavcodec/wavpackenc.c if (!(s->flags & MAG_MASK)) s 400 libavcodec/wavpackenc.c s->flags -= 1 << MAG_LSB; s 401 libavcodec/wavpackenc.c s->int32_zeros++; s 407 libavcodec/wavpackenc.c s->flags -= 1 << MAG_LSB; s 408 libavcodec/wavpackenc.c s->int32_ones++; s 414 libavcodec/wavpackenc.c s->flags -= 1 << MAG_LSB; s 415 libavcodec/wavpackenc.c s->int32_dups++; s 422 libavcodec/wavpackenc.c s->flags |= WV_INT32_DATA; s 424 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) s 431 libavcodec/wavpackenc.c static int scan_int32(WavPackEncodeContext *s, s 439 libavcodec/wavpackenc.c s->int32_sent_bits = s->int32_zeros = s->int32_ones = s->int32_dups = 0; s 441 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) { s 467 libavcodec/wavpackenc.c s->crc_x = crc; s 468 libavcodec/wavpackenc.c s->flags &= ~MAG_MASK; s 471 libavcodec/wavpackenc.c s->flags += 1 << MAG_LSB; s 475 libavcodec/wavpackenc.c if (!((s->flags & MAG_MASK) >> MAG_LSB)) { s 476 libavcodec/wavpackenc.c s->flags &= ~WV_INT32_DATA; s 482 libavcodec/wavpackenc.c s->flags -= 1 << MAG_LSB; s 483 libavcodec/wavpackenc.c s->int32_zeros++; s 489 libavcodec/wavpackenc.c s->flags -= 1 << MAG_LSB; s 490 libavcodec/wavpackenc.c s->int32_ones++; s 496 libavcodec/wavpackenc.c s->flags -= 1 << MAG_LSB; s 497 libavcodec/wavpackenc.c s->int32_dups++; s 502 libavcodec/wavpackenc.c if (((s->flags & MAG_MASK) >> MAG_LSB) > 23) { s 503 libavcodec/wavpackenc.c s->int32_sent_bits = (uint8_t)(((s->flags & MAG_MASK) >> MAG_LSB) - 23); s 504 libavcodec/wavpackenc.c total_shift += s->int32_sent_bits; s 505 libavcodec/wavpackenc.c s->flags &= ~MAG_MASK; s 506 libavcodec/wavpackenc.c s->flags += 23 << MAG_LSB; s 510 libavcodec/wavpackenc.c s->flags |= WV_INT32_DATA; s 512 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) s 518 libavcodec/wavpackenc.c return s->int32_sent_bits; s 719 libavcodec/wavpackenc.c static void recurse_mono(WavPackEncodeContext *s, WavPackExtraInfo *info, s 722 libavcodec/wavpackenc.c int term, branches = s->num_branches - depth; s 730 libavcodec/wavpackenc.c samples = s->sampleptrs[depth][0]; s 731 libavcodec/wavpackenc.c outsamples = s->sampleptrs[depth + 1][0]; s 740 libavcodec/wavpackenc.c if (!s->extra_flags && (term > 4 && term < 17)) s 745 libavcodec/wavpackenc.c decorr_mono_buffer(samples, outsamples, s->block_samples, info->dps, depth); s 746 libavcodec/wavpackenc.c bits = log2mono(outsamples, s->block_samples, info->log_limit); s 750 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 751 libavcodec/wavpackenc.c memcpy(s->decorr_passes, info->dps, sizeof(info->dps[0]) * (depth + 1)); s 752 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][0], s 753 libavcodec/wavpackenc.c s->sampleptrs[depth + 1][0], s->block_samples * 4); s 776 libavcodec/wavpackenc.c decorr_mono_buffer(samples, outsamples, s->block_samples, info->dps, depth); s 778 libavcodec/wavpackenc.c recurse_mono(s, info, depth + 1, delta, local_best_bits); s 782 libavcodec/wavpackenc.c static void sort_mono(WavPackEncodeContext *s, WavPackExtraInfo *info) s 790 libavcodec/wavpackenc.c memcpy(info->dps, s->decorr_passes, sizeof(s->decorr_passes)); s 793 libavcodec/wavpackenc.c for (ri = 0; ri < info->nterms && s->decorr_passes[ri].value; ri++) { s 795 libavcodec/wavpackenc.c if (ri + 1 >= info->nterms || !s->decorr_passes[ri+1].value) s 798 libavcodec/wavpackenc.c if (s->decorr_passes[ri].value == s->decorr_passes[ri+1].value) { s 799 libavcodec/wavpackenc.c decorr_mono_buffer(s->sampleptrs[ri][0], s->sampleptrs[ri+1][0], s 800 libavcodec/wavpackenc.c s->block_samples, info->dps, ri); s 804 libavcodec/wavpackenc.c info->dps[ri ] = s->decorr_passes[ri+1]; s 805 libavcodec/wavpackenc.c info->dps[ri+1] = s->decorr_passes[ri ]; s 807 libavcodec/wavpackenc.c for (i = ri; i < info->nterms && s->decorr_passes[i].value; i++) s 808 libavcodec/wavpackenc.c decorr_mono_buffer(s->sampleptrs[i][0], s->sampleptrs[i+1][0], s 809 libavcodec/wavpackenc.c s->block_samples, info->dps, i); s 811 libavcodec/wavpackenc.c bits = log2mono(s->sampleptrs[i][0], s->block_samples, info->log_limit); s 815 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 816 libavcodec/wavpackenc.c memcpy(s->decorr_passes, info->dps, sizeof(info->dps[0]) * i); s 817 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][0], s->sampleptrs[i][0], s 818 libavcodec/wavpackenc.c s->block_samples * 4); s 820 libavcodec/wavpackenc.c info->dps[ri ] = s->decorr_passes[ri]; s 821 libavcodec/wavpackenc.c info->dps[ri+1] = s->decorr_passes[ri+1]; s 822 libavcodec/wavpackenc.c decorr_mono_buffer(s->sampleptrs[ri][0], s->sampleptrs[ri+1][0], s 823 libavcodec/wavpackenc.c s->block_samples, info->dps, ri); s 829 libavcodec/wavpackenc.c static void delta_mono(WavPackEncodeContext *s, WavPackExtraInfo *info) s 834 libavcodec/wavpackenc.c if (!s->decorr_passes[0].value) s 836 libavcodec/wavpackenc.c delta = s->decorr_passes[0].delta; s 841 libavcodec/wavpackenc.c for (i = 0; i < info->nterms && s->decorr_passes[i].value; i++) { s 842 libavcodec/wavpackenc.c info->dps[i].value = s->decorr_passes[i].value; s 844 libavcodec/wavpackenc.c decorr_mono_buffer(s->sampleptrs[i][0], s->sampleptrs[i+1][0], s 845 libavcodec/wavpackenc.c s->block_samples, info->dps, i); s 848 libavcodec/wavpackenc.c bits = log2mono(s->sampleptrs[i][0], s->block_samples, info->log_limit); s 854 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 855 libavcodec/wavpackenc.c memcpy(s->decorr_passes, info->dps, sizeof(info->dps[0]) * i); s 856 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][0], s->sampleptrs[i][0], s 857 libavcodec/wavpackenc.c s->block_samples * 4); s 863 libavcodec/wavpackenc.c for (i = 0; i < info->nterms && s->decorr_passes[i].value; i++) { s 864 libavcodec/wavpackenc.c info->dps[i].value = s->decorr_passes[i].value; s 866 libavcodec/wavpackenc.c decorr_mono_buffer(s->sampleptrs[i][0], s->sampleptrs[i+1][0], s 867 libavcodec/wavpackenc.c s->block_samples, info->dps, i); s 870 libavcodec/wavpackenc.c bits = log2mono(s->sampleptrs[i][0], s->block_samples, info->log_limit); s 875 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 876 libavcodec/wavpackenc.c memcpy(s->decorr_passes, info->dps, sizeof(info->dps[0]) * i); s 877 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][0], s->sampleptrs[i][0], s 878 libavcodec/wavpackenc.c s->block_samples * 4); s 882 libavcodec/wavpackenc.c static int allocate_buffers2(WavPackEncodeContext *s, int nterms) s 887 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->sampleptrs[i][0], &s->sampleptrs_size[i][0], s 888 libavcodec/wavpackenc.c s->block_samples * 4); s 889 libavcodec/wavpackenc.c if (!s->sampleptrs[i][0]) s 891 libavcodec/wavpackenc.c if (!(s->flags & WV_MONO_DATA)) { s 892 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->sampleptrs[i][1], &s->sampleptrs_size[i][1], s 893 libavcodec/wavpackenc.c s->block_samples * 4); s 894 libavcodec/wavpackenc.c if (!s->sampleptrs[i][1]) s 902 libavcodec/wavpackenc.c static int allocate_buffers(WavPackEncodeContext *s) s 907 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->best_buffer[0], &s->best_buffer_size[0], s 908 libavcodec/wavpackenc.c s->block_samples * 4); s 909 libavcodec/wavpackenc.c if (!s->best_buffer[0]) s 912 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->temp_buffer[i][0], &s->temp_buffer_size[i][0], s 913 libavcodec/wavpackenc.c s->block_samples * 4); s 914 libavcodec/wavpackenc.c if (!s->temp_buffer[i][0]) s 916 libavcodec/wavpackenc.c if (!(s->flags & WV_MONO_DATA)) { s 917 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->best_buffer[1], &s->best_buffer_size[1], s 918 libavcodec/wavpackenc.c s->block_samples * 4); s 919 libavcodec/wavpackenc.c if (!s->best_buffer[1]) s 922 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->temp_buffer[i][1], &s->temp_buffer_size[i][1], s 923 libavcodec/wavpackenc.c s->block_samples * 4); s 924 libavcodec/wavpackenc.c if (!s->temp_buffer[i][1]) s 932 libavcodec/wavpackenc.c static void analyze_mono(WavPackEncodeContext *s, int32_t *samples, int do_samples) s 937 libavcodec/wavpackenc.c info.log_limit = (((s->flags & MAG_MASK) >> MAG_LSB) + 4) * 256; s 940 libavcodec/wavpackenc.c info.nterms = s->num_terms; s 942 libavcodec/wavpackenc.c if (allocate_buffers2(s, s->num_terms)) s 945 libavcodec/wavpackenc.c memcpy(info.dps, s->decorr_passes, sizeof(info.dps)); s 946 libavcodec/wavpackenc.c memcpy(s->sampleptrs[0][0], samples, s->block_samples * 4); s 949 libavcodec/wavpackenc.c decorr_mono(s->sampleptrs[i][0], s->sampleptrs[i + 1][0], s 950 libavcodec/wavpackenc.c s->block_samples, info.dps + i, 1); s 952 libavcodec/wavpackenc.c info.best_bits = log2mono(s->sampleptrs[info.nterms][0], s->block_samples, 0) * 1; s 953 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info.nterms + 1][0], s->sampleptrs[i][0], s->block_samples * 4); s 955 libavcodec/wavpackenc.c if (s->extra_flags & EXTRA_BRANCHES) s 956 libavcodec/wavpackenc.c recurse_mono(s, &info, 0, (int) floor(s->delta_decay + 0.5), s 957 libavcodec/wavpackenc.c log2mono(s->sampleptrs[0][0], s->block_samples, 0)); s 959 libavcodec/wavpackenc.c if (s->extra_flags & EXTRA_SORT_FIRST) s 960 libavcodec/wavpackenc.c sort_mono(s, &info); s 962 libavcodec/wavpackenc.c if (s->extra_flags & EXTRA_TRY_DELTAS) { s 963 libavcodec/wavpackenc.c delta_mono(s, &info); s 965 libavcodec/wavpackenc.c if ((s->extra_flags & EXTRA_ADJUST_DELTAS) && s->decorr_passes[0].value) s 966 libavcodec/wavpackenc.c s->delta_decay = (float)((s->delta_decay * 2.0 + s->decorr_passes[0].delta) / 3.0); s 968 libavcodec/wavpackenc.c s->delta_decay = 2.0; s 971 libavcodec/wavpackenc.c if (s->extra_flags & EXTRA_SORT_LAST) s 972 libavcodec/wavpackenc.c sort_mono(s, &info); s 975 libavcodec/wavpackenc.c memcpy(samples, s->sampleptrs[info.nterms + 1][0], s->block_samples * 4); s 978 libavcodec/wavpackenc.c if (!s->decorr_passes[i].value) s 981 libavcodec/wavpackenc.c s->num_terms = i; s 984 libavcodec/wavpackenc.c static void scan_word(WavPackEncodeContext *s, WvChannel *c, s 1016 libavcodec/wavpackenc.c static int wv_mono(WavPackEncodeContext *s, int32_t *samples, s 1020 libavcodec/wavpackenc.c int nb_samples = s->block_samples; s 1030 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 1031 libavcodec/wavpackenc.c CLEAR(s->w); s 1032 libavcodec/wavpackenc.c s->num_terms = 0; s 1036 libavcodec/wavpackenc.c log_limit = (((s->flags & MAG_MASK) >> MAG_LSB) + 4) * 256; s 1039 libavcodec/wavpackenc.c if ((ret = allocate_buffers(s)) < 0) s 1042 libavcodec/wavpackenc.c if (no_history || s->num_passes >= 7) s 1043 libavcodec/wavpackenc.c s->best_decorr = s->mask_decorr = 0; s 1045 libavcodec/wavpackenc.c for (pi = 0; pi < s->num_passes;) { s 1050 libavcodec/wavpackenc.c c = s->best_decorr; s 1052 libavcodec/wavpackenc.c if (s->mask_decorr == 0) s 1055 libavcodec/wavpackenc.c c = (s->best_decorr & (s->mask_decorr - 1)) | s->mask_decorr; s 1057 libavcodec/wavpackenc.c if (c == s->best_decorr) { s 1058 libavcodec/wavpackenc.c s->mask_decorr = s->mask_decorr ? ((s->mask_decorr << 1) & (s->num_decorrs - 1)) : 1; s 1063 libavcodec/wavpackenc.c wpds = &s->decorr_specs[c]; s 1064 libavcodec/wavpackenc.c nterms = decorr_filter_nterms[s->decorr_filter]; s 1067 libavcodec/wavpackenc.c memcpy(s->temp_buffer[0][0], samples, buf_size); s 1078 libavcodec/wavpackenc.c decorr_mono(s->temp_buffer[j&1][0], s->temp_buffer[~j&1][0], s 1088 libavcodec/wavpackenc.c decorr_mono(s->temp_buffer[j&1][0], s->temp_buffer[~j&1][0], s 1092 libavcodec/wavpackenc.c size = log2mono(s->temp_buffer[j&1][0], nb_samples, log_limit); s 1099 libavcodec/wavpackenc.c memcpy(s->best_buffer[0], s->temp_buffer[j&1][0], buf_size); s 1100 libavcodec/wavpackenc.c memcpy(s->decorr_passes, save_decorr_passes, sizeof(struct Decorr) * MAX_TERMS); s 1101 libavcodec/wavpackenc.c s->num_terms = nterms; s 1102 libavcodec/wavpackenc.c s->best_decorr = c; s 1107 libavcodec/wavpackenc.c s->mask_decorr = s->mask_decorr ? ((s->mask_decorr << 1) & (s->num_decorrs - 1)) : 1; s 1110 libavcodec/wavpackenc.c if (s->extra_flags) s 1111 libavcodec/wavpackenc.c analyze_mono(s, samples, do_samples); s 1113 libavcodec/wavpackenc.c memcpy(samples, s->best_buffer[0], buf_size); s 1115 libavcodec/wavpackenc.c if (no_history || s->extra_flags) { s 1116 libavcodec/wavpackenc.c CLEAR(s->w); s 1117 libavcodec/wavpackenc.c scan_word(s, &s->w.c[0], s->best_buffer[0], nb_samples, -1); s 1547 libavcodec/wavpackenc.c static void sort_stereo(WavPackEncodeContext *s, WavPackExtraInfo *info) s 1555 libavcodec/wavpackenc.c memcpy(info->dps, s->decorr_passes, sizeof(s->decorr_passes)); s 1558 libavcodec/wavpackenc.c for (ri = 0; ri < info->nterms && s->decorr_passes[ri].value; ri++) { s 1560 libavcodec/wavpackenc.c if (ri + 1 >= info->nterms || !s->decorr_passes[ri+1].value) s 1563 libavcodec/wavpackenc.c if (s->decorr_passes[ri].value == s->decorr_passes[ri+1].value) { s 1565 libavcodec/wavpackenc.c s->sampleptrs[ri ][0], s->sampleptrs[ri ][1], s 1566 libavcodec/wavpackenc.c s->sampleptrs[ri+1][0], s->sampleptrs[ri+1][1], s 1567 libavcodec/wavpackenc.c s->block_samples, ri); s 1571 libavcodec/wavpackenc.c info->dps[ri ] = s->decorr_passes[ri+1]; s 1572 libavcodec/wavpackenc.c info->dps[ri+1] = s->decorr_passes[ri ]; s 1574 libavcodec/wavpackenc.c for (i = ri; i < info->nterms && s->decorr_passes[i].value; i++) s 1576 libavcodec/wavpackenc.c s->sampleptrs[i ][0], s->sampleptrs[i ][1], s 1577 libavcodec/wavpackenc.c s->sampleptrs[i+1][0], s->sampleptrs[i+1][1], s 1578 libavcodec/wavpackenc.c s->block_samples, i); s 1580 libavcodec/wavpackenc.c bits = log2stereo(s->sampleptrs[i][0], s->sampleptrs[i][1], s 1581 libavcodec/wavpackenc.c s->block_samples, info->log_limit); s 1586 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 1587 libavcodec/wavpackenc.c memcpy(s->decorr_passes, info->dps, sizeof(info->dps[0]) * i); s 1588 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][0], s 1589 libavcodec/wavpackenc.c s->sampleptrs[i][0], s->block_samples * 4); s 1590 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][1], s 1591 libavcodec/wavpackenc.c s->sampleptrs[i][1], s->block_samples * 4); s 1593 libavcodec/wavpackenc.c info->dps[ri ] = s->decorr_passes[ri ]; s 1594 libavcodec/wavpackenc.c info->dps[ri+1] = s->decorr_passes[ri+1]; s 1596 libavcodec/wavpackenc.c s->sampleptrs[ri ][0], s->sampleptrs[ri ][1], s 1597 libavcodec/wavpackenc.c s->sampleptrs[ri+1][0], s->sampleptrs[ri+1][1], s 1598 libavcodec/wavpackenc.c s->block_samples, ri); s 1604 libavcodec/wavpackenc.c static void delta_stereo(WavPackEncodeContext *s, WavPackExtraInfo *info) s 1609 libavcodec/wavpackenc.c if (!s->decorr_passes[0].value) s 1611 libavcodec/wavpackenc.c delta = s->decorr_passes[0].delta; s 1614 libavcodec/wavpackenc.c for (i = 0; i < info->nterms && s->decorr_passes[i].value; i++) { s 1615 libavcodec/wavpackenc.c info->dps[i].value = s->decorr_passes[i].value; s 1618 libavcodec/wavpackenc.c s->sampleptrs[i ][0], s->sampleptrs[i ][1], s 1619 libavcodec/wavpackenc.c s->sampleptrs[i+1][0], s->sampleptrs[i+1][1], s 1620 libavcodec/wavpackenc.c s->block_samples, i); s 1623 libavcodec/wavpackenc.c bits = log2stereo(s->sampleptrs[i][0], s->sampleptrs[i][1], s 1624 libavcodec/wavpackenc.c s->block_samples, info->log_limit); s 1629 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 1630 libavcodec/wavpackenc.c memcpy(s->decorr_passes, info->dps, sizeof(info->dps[0]) * i); s 1631 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][0], s->sampleptrs[i][0], s 1632 libavcodec/wavpackenc.c s->block_samples * 4); s 1633 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][1], s->sampleptrs[i][1], s 1634 libavcodec/wavpackenc.c s->block_samples * 4); s 1638 libavcodec/wavpackenc.c for (i = 0; i < info->nterms && s->decorr_passes[i].value; i++) { s 1639 libavcodec/wavpackenc.c info->dps[i].value = s->decorr_passes[i].value; s 1642 libavcodec/wavpackenc.c s->sampleptrs[i ][0], s->sampleptrs[i ][1], s 1643 libavcodec/wavpackenc.c s->sampleptrs[i+1][0], s->sampleptrs[i+1][1], s 1644 libavcodec/wavpackenc.c s->block_samples, i); s 1647 libavcodec/wavpackenc.c bits = log2stereo(s->sampleptrs[i][0], s->sampleptrs[i][1], s 1648 libavcodec/wavpackenc.c s->block_samples, info->log_limit); s 1652 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 1653 libavcodec/wavpackenc.c memcpy(s->decorr_passes, info->dps, sizeof(info->dps[0]) * i); s 1654 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][0], s 1655 libavcodec/wavpackenc.c s->sampleptrs[i][0], s->block_samples * 4); s 1656 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][1], s 1657 libavcodec/wavpackenc.c s->sampleptrs[i][1], s->block_samples * 4); s 1664 libavcodec/wavpackenc.c static void recurse_stereo(WavPackEncodeContext *s, WavPackExtraInfo *info, s 1667 libavcodec/wavpackenc.c int term, branches = s->num_branches - depth; s 1675 libavcodec/wavpackenc.c in_left = s->sampleptrs[depth ][0]; s 1676 libavcodec/wavpackenc.c in_right = s->sampleptrs[depth ][1]; s 1677 libavcodec/wavpackenc.c out_left = s->sampleptrs[depth + 1][0]; s 1678 libavcodec/wavpackenc.c out_right = s->sampleptrs[depth + 1][1]; s 1688 libavcodec/wavpackenc.c if (!(s->flags & WV_CROSS_DECORR)) s 1691 libavcodec/wavpackenc.c if (!s->extra_flags && (term > 4 && term < 17)) s 1697 libavcodec/wavpackenc.c s->block_samples, depth); s 1698 libavcodec/wavpackenc.c bits = log2stereo(out_left, out_right, s->block_samples, info->log_limit); s 1702 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 1703 libavcodec/wavpackenc.c memcpy(s->decorr_passes, info->dps, sizeof(info->dps[0]) * (depth + 1)); s 1704 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][0], s->sampleptrs[depth + 1][0], s 1705 libavcodec/wavpackenc.c s->block_samples * 4); s 1706 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info->nterms + 1][1], s->sampleptrs[depth + 1][1], s 1707 libavcodec/wavpackenc.c s->block_samples * 4); s 1731 libavcodec/wavpackenc.c s->block_samples, depth); s 1733 libavcodec/wavpackenc.c recurse_stereo(s, info, depth + 1, delta, local_best_bits); s 1737 libavcodec/wavpackenc.c static void analyze_stereo(WavPackEncodeContext *s, s 1744 libavcodec/wavpackenc.c info.gt16bit = ((s->flags & MAG_MASK) >> MAG_LSB) >= 16; s 1746 libavcodec/wavpackenc.c info.log_limit = (((s->flags & MAG_MASK) >> MAG_LSB) + 4) * 256; s 1749 libavcodec/wavpackenc.c info.nterms = s->num_terms; s 1751 libavcodec/wavpackenc.c if (allocate_buffers2(s, s->num_terms)) s 1754 libavcodec/wavpackenc.c memcpy(info.dps, s->decorr_passes, sizeof(info.dps)); s 1755 libavcodec/wavpackenc.c memcpy(s->sampleptrs[0][0], in_left, s->block_samples * 4); s 1756 libavcodec/wavpackenc.c memcpy(s->sampleptrs[0][1], in_right, s->block_samples * 4); s 1760 libavcodec/wavpackenc.c decorr_stereo(s->sampleptrs[i ][0], s->sampleptrs[i ][1], s 1761 libavcodec/wavpackenc.c s->sampleptrs[i + 1][0], s->sampleptrs[i + 1][1], s 1762 libavcodec/wavpackenc.c s->block_samples, info.dps + i, 1); s 1764 libavcodec/wavpackenc.c decorr_stereo_quick(s->sampleptrs[i ][0], s->sampleptrs[i ][1], s 1765 libavcodec/wavpackenc.c s->sampleptrs[i + 1][0], s->sampleptrs[i + 1][1], s 1766 libavcodec/wavpackenc.c s->block_samples, info.dps + i); s 1768 libavcodec/wavpackenc.c info.best_bits = log2stereo(s->sampleptrs[info.nterms][0], s->sampleptrs[info.nterms][1], s 1769 libavcodec/wavpackenc.c s->block_samples, 0); s 1771 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info.nterms + 1][0], s->sampleptrs[i][0], s->block_samples * 4); s 1772 libavcodec/wavpackenc.c memcpy(s->sampleptrs[info.nterms + 1][1], s->sampleptrs[i][1], s->block_samples * 4); s 1774 libavcodec/wavpackenc.c if (s->extra_flags & EXTRA_BRANCHES) s 1775 libavcodec/wavpackenc.c recurse_stereo(s, &info, 0, (int) floor(s->delta_decay + 0.5), s 1776 libavcodec/wavpackenc.c log2stereo(s->sampleptrs[0][0], s->sampleptrs[0][1], s 1777 libavcodec/wavpackenc.c s->block_samples, 0)); s 1779 libavcodec/wavpackenc.c if (s->extra_flags & EXTRA_SORT_FIRST) s 1780 libavcodec/wavpackenc.c sort_stereo(s, &info); s 1782 libavcodec/wavpackenc.c if (s->extra_flags & EXTRA_TRY_DELTAS) { s 1783 libavcodec/wavpackenc.c delta_stereo(s, &info); s 1785 libavcodec/wavpackenc.c if ((s->extra_flags & EXTRA_ADJUST_DELTAS) && s->decorr_passes[0].value) s 1786 libavcodec/wavpackenc.c s->delta_decay = (float)((s->delta_decay * 2.0 + s->decorr_passes[0].delta) / 3.0); s 1788 libavcodec/wavpackenc.c s->delta_decay = 2.0; s 1791 libavcodec/wavpackenc.c if (s->extra_flags & EXTRA_SORT_LAST) s 1792 libavcodec/wavpackenc.c sort_stereo(s, &info); s 1795 libavcodec/wavpackenc.c memcpy(in_left, s->sampleptrs[info.nterms + 1][0], s->block_samples * 4); s 1796 libavcodec/wavpackenc.c memcpy(in_right, s->sampleptrs[info.nterms + 1][1], s->block_samples * 4); s 1800 libavcodec/wavpackenc.c if (!s->decorr_passes[i].value) s 1803 libavcodec/wavpackenc.c s->num_terms = i; s 1806 libavcodec/wavpackenc.c static int wv_stereo(WavPackEncodeContext *s, s 1811 libavcodec/wavpackenc.c int nb_samples = s->block_samples, ret; s 1821 libavcodec/wavpackenc.c s->flags &= ~((uint32_t) WV_JOINT_STEREO); s 1822 libavcodec/wavpackenc.c CLEAR(s->decorr_passes); s 1823 libavcodec/wavpackenc.c CLEAR(s->w); s 1824 libavcodec/wavpackenc.c s->num_terms = 0; s 1828 libavcodec/wavpackenc.c log_limit = (((s->flags & MAG_MASK) >> MAG_LSB) + 4) * 256; s 1831 libavcodec/wavpackenc.c if (s->joint != -1) { s 1832 libavcodec/wavpackenc.c force_js = s->joint; s 1833 libavcodec/wavpackenc.c force_ts = !s->joint; s 1836 libavcodec/wavpackenc.c if ((ret = allocate_buffers(s)) < 0) s 1839 libavcodec/wavpackenc.c if (no_history || s->num_passes >= 7) s 1840 libavcodec/wavpackenc.c s->best_decorr = s->mask_decorr = 0; s 1842 libavcodec/wavpackenc.c for (pi = 0; pi < s->num_passes;) { s 1847 libavcodec/wavpackenc.c c = s->best_decorr; s 1849 libavcodec/wavpackenc.c if (s->mask_decorr == 0) s 1852 libavcodec/wavpackenc.c c = (s->best_decorr & (s->mask_decorr - 1)) | s->mask_decorr; s 1854 libavcodec/wavpackenc.c if (c == s->best_decorr) { s 1855 libavcodec/wavpackenc.c s->mask_decorr = s->mask_decorr ? ((s->mask_decorr << 1) & (s->num_decorrs - 1)) : 1; s 1860 libavcodec/wavpackenc.c wpds = &s->decorr_specs[c]; s 1861 libavcodec/wavpackenc.c nterms = decorr_filter_nterms[s->decorr_filter]; s 1866 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->js_left, &s->js_left_size, buf_size); s 1867 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->js_right, &s->js_right_size, buf_size); s 1868 libavcodec/wavpackenc.c memcpy(s->js_left, samples_l, buf_size); s 1869 libavcodec/wavpackenc.c memcpy(s->js_right, samples_r, buf_size); s 1872 libavcodec/wavpackenc.c s->js_right[i] += ((s->js_left[i] -= s->js_right[i]) >> 1); s 1876 libavcodec/wavpackenc.c memcpy(s->temp_buffer[0][0], s->js_left, buf_size); s 1877 libavcodec/wavpackenc.c memcpy(s->temp_buffer[0][1], s->js_right, buf_size); s 1879 libavcodec/wavpackenc.c memcpy(s->temp_buffer[0][0], samples_l, buf_size); s 1880 libavcodec/wavpackenc.c memcpy(s->temp_buffer[0][1], samples_r, buf_size); s 1890 libavcodec/wavpackenc.c if (temp_decorr_pass.value < 0 && !(s->flags & WV_CROSS_DECORR)) s 1893 libavcodec/wavpackenc.c decorr_stereo(s->temp_buffer[ j&1][0], s->temp_buffer[ j&1][1], s 1894 libavcodec/wavpackenc.c s->temp_buffer[~j&1][0], s->temp_buffer[~j&1][1], s 1906 libavcodec/wavpackenc.c if (((s->flags & MAG_MASK) >> MAG_LSB) >= 16) s 1907 libavcodec/wavpackenc.c decorr_stereo(s->temp_buffer[ j&1][0], s->temp_buffer[ j&1][1], s 1908 libavcodec/wavpackenc.c s->temp_buffer[~j&1][0], s->temp_buffer[~j&1][1], s 1911 libavcodec/wavpackenc.c decorr_stereo_quick(s->temp_buffer[ j&1][0], s->temp_buffer[ j&1][1], s 1912 libavcodec/wavpackenc.c s->temp_buffer[~j&1][0], s->temp_buffer[~j&1][1], s 1916 libavcodec/wavpackenc.c size = log2stereo(s->temp_buffer[j&1][0], s->temp_buffer[j&1][1], s 1924 libavcodec/wavpackenc.c memcpy(s->best_buffer[0], s->temp_buffer[j&1][0], buf_size); s 1925 libavcodec/wavpackenc.c memcpy(s->best_buffer[1], s->temp_buffer[j&1][1], buf_size); s 1926 libavcodec/wavpackenc.c memcpy(s->decorr_passes, save_decorr_passes, sizeof(struct Decorr) * MAX_TERMS); s 1927 libavcodec/wavpackenc.c s->num_terms = nterms; s 1928 libavcodec/wavpackenc.c s->best_decorr = c; s 1933 libavcodec/wavpackenc.c s->mask_decorr = s->mask_decorr ? ((s->mask_decorr << 1) & (s->num_decorrs - 1)) : 1; s 1936 libavcodec/wavpackenc.c if (force_js || (s->decorr_specs[s->best_decorr].joint_stereo && !force_ts)) s 1937 libavcodec/wavpackenc.c s->flags |= WV_JOINT_STEREO; s 1939 libavcodec/wavpackenc.c s->flags &= ~((uint32_t) WV_JOINT_STEREO); s 1941 libavcodec/wavpackenc.c if (s->extra_flags) { s 1942 libavcodec/wavpackenc.c if (s->flags & WV_JOINT_STEREO) { s 1943 libavcodec/wavpackenc.c analyze_stereo(s, s->js_left, s->js_right, do_samples); s 1946 libavcodec/wavpackenc.c memcpy(samples_l, s->js_left, buf_size); s 1947 libavcodec/wavpackenc.c memcpy(samples_r, s->js_right, buf_size); s 1950 libavcodec/wavpackenc.c analyze_stereo(s, samples_l, samples_r, do_samples); s 1952 libavcodec/wavpackenc.c memcpy(samples_l, s->best_buffer[0], buf_size); s 1953 libavcodec/wavpackenc.c memcpy(samples_r, s->best_buffer[1], buf_size); s 1956 libavcodec/wavpackenc.c if (s->extra_flags || no_history || s 1957 libavcodec/wavpackenc.c s->joint_stereo != s->decorr_specs[s->best_decorr].joint_stereo) { s 1958 libavcodec/wavpackenc.c s->joint_stereo = s->decorr_specs[s->best_decorr].joint_stereo; s 1959 libavcodec/wavpackenc.c CLEAR(s->w); s 1960 libavcodec/wavpackenc.c scan_word(s, &s->w.c[0], s->best_buffer[0], nb_samples, -1); s 1961 libavcodec/wavpackenc.c scan_word(s, &s->w.c[1], s->best_buffer[1], nb_samples, -1); s 1966 libavcodec/wavpackenc.c static void encode_flush(WavPackEncodeContext *s) s 1968 libavcodec/wavpackenc.c WavPackWords *w = &s->w; s 1969 libavcodec/wavpackenc.c PutBitContext *pb = &s->pb; s 2039 libavcodec/wavpackenc.c static void wavpack_encode_sample(WavPackEncodeContext *s, WvChannel *c, int32_t sample) s 2041 libavcodec/wavpackenc.c WavPackWords *w = &s->w; s 2045 libavcodec/wavpackenc.c if (s->w.c[0].median[0] < 2 && !s->w.holding_zero && s->w.c[1].median[0] < 2) { s 2048 libavcodec/wavpackenc.c encode_flush(s); s 2054 libavcodec/wavpackenc.c put_bits(&s->pb, 1, 0); s 2056 libavcodec/wavpackenc.c CLEAR(s->w.c[0].median); s 2057 libavcodec/wavpackenc.c CLEAR(s->w.c[1].median); s 2099 libavcodec/wavpackenc.c encode_flush(s); s 2129 libavcodec/wavpackenc.c encode_flush(s); s 2132 libavcodec/wavpackenc.c static void pack_int32(WavPackEncodeContext *s, s 2136 libavcodec/wavpackenc.c const int sent_bits = s->int32_sent_bits; s 2137 libavcodec/wavpackenc.c PutBitContext *pb = &s->pb; s 2140 libavcodec/wavpackenc.c pre_shift = s->int32_zeros + s->int32_ones + s->int32_dups; s 2145 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) { s 2157 libavcodec/wavpackenc.c static void pack_float_sample(WavPackEncodeContext *s, int32_t *sample) s 2159 libavcodec/wavpackenc.c const int max_exp = s->float_max_exp; s 2160 libavcodec/wavpackenc.c PutBitContext *pb = &s->pb; s 2187 libavcodec/wavpackenc.c if (s->float_flags & FLOAT_ZEROS_SENT) { s 2199 libavcodec/wavpackenc.c if (s->float_flags & FLOAT_NEG_ZEROS) s 2204 libavcodec/wavpackenc.c if (s->float_flags & FLOAT_SHIFT_SENT) { s 2206 libavcodec/wavpackenc.c } else if (s->float_flags & FLOAT_SHIFT_SAME) { s 2212 libavcodec/wavpackenc.c static void pack_float(WavPackEncodeContext *s, s 2218 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) { s 2220 libavcodec/wavpackenc.c pack_float_sample(s, &samples_l[i]); s 2223 libavcodec/wavpackenc.c pack_float_sample(s, &samples_l[i]); s 2224 libavcodec/wavpackenc.c pack_float_sample(s, &samples_r[i]); s 2343 libavcodec/wavpackenc.c const int32_t s = (source ^ result) >> 31; \ s 2344 libavcodec/wavpackenc.c if ((weight = (weight ^ s) + (2 - s)) > 1024) weight = 1024; \ s 2345 libavcodec/wavpackenc.c weight = (weight ^ s) - s; \ s 2466 libavcodec/wavpackenc.c static int wavpack_encode_block(WavPackEncodeContext *s, s 2471 libavcodec/wavpackenc.c int i, j, ret = 0, got_extra = 0, nb_samples = s->block_samples; s 2476 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) { s 2477 libavcodec/wavpackenc.c CLEAR(s->w); s 2479 libavcodec/wavpackenc.c if (!(s->flags & WV_MONO) && s->optimize_mono) { s 2491 libavcodec/wavpackenc.c s->flags &= ~(WV_JOINT_STEREO | WV_CROSS_DECORR); s 2492 libavcodec/wavpackenc.c s->flags |= WV_FALSE_STEREO; s 2494 libavcodec/wavpackenc.c if (!s->false_stereo) { s 2495 libavcodec/wavpackenc.c s->false_stereo = 1; s 2496 libavcodec/wavpackenc.c s->num_terms = 0; s 2497 libavcodec/wavpackenc.c CLEAR(s->w); s 2499 libavcodec/wavpackenc.c } else if (s->false_stereo) { s 2500 libavcodec/wavpackenc.c s->false_stereo = 0; s 2501 libavcodec/wavpackenc.c s->num_terms = 0; s 2502 libavcodec/wavpackenc.c CLEAR(s->w); s 2506 libavcodec/wavpackenc.c if (s->flags & SHIFT_MASK) { s 2507 libavcodec/wavpackenc.c int shift = (s->flags & SHIFT_MASK) >> SHIFT_LSB; s 2508 libavcodec/wavpackenc.c int mag = (s->flags & MAG_MASK) >> MAG_LSB; s 2510 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) s 2516 libavcodec/wavpackenc.c s->flags &= ~MAG_MASK; s 2518 libavcodec/wavpackenc.c s->flags -= (1 << MAG_LSB) * shift; s 2521 libavcodec/wavpackenc.c if ((s->flags & WV_FLOAT_DATA) || (s->flags & MAG_MASK) >> MAG_LSB >= 24) { s 2522 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->orig_l, &s->orig_l_size, sizeof(int32_t) * nb_samples); s 2523 libavcodec/wavpackenc.c memcpy(s->orig_l, samples_l, sizeof(int32_t) * nb_samples); s 2524 libavcodec/wavpackenc.c if (!(s->flags & WV_MONO_DATA)) { s 2525 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->orig_r, &s->orig_r_size, sizeof(int32_t) * nb_samples); s 2526 libavcodec/wavpackenc.c memcpy(s->orig_r, samples_r, sizeof(int32_t) * nb_samples); s 2529 libavcodec/wavpackenc.c if (s->flags & WV_FLOAT_DATA) s 2530 libavcodec/wavpackenc.c got_extra = scan_float(s, samples_l, samples_r, nb_samples); s 2532 libavcodec/wavpackenc.c got_extra = scan_int32(s, samples_l, samples_r, nb_samples); s 2533 libavcodec/wavpackenc.c s->num_terms = 0; s 2535 libavcodec/wavpackenc.c scan_int23(s, samples_l, samples_r, nb_samples); s 2536 libavcodec/wavpackenc.c if (s->shift != s->int32_zeros + s->int32_ones + s->int32_dups) { s 2537 libavcodec/wavpackenc.c s->shift = s->int32_zeros + s->int32_ones + s->int32_dups; s 2538 libavcodec/wavpackenc.c s->num_terms = 0; s 2542 libavcodec/wavpackenc.c if (!s->num_passes && !s->num_terms) { s 2543 libavcodec/wavpackenc.c s->num_passes = 1; s 2545 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) s 2546 libavcodec/wavpackenc.c ret = wv_mono(s, samples_l, 1, 0); s 2548 libavcodec/wavpackenc.c ret = wv_stereo(s, samples_l, samples_r, 1, 0); s 2550 libavcodec/wavpackenc.c s->num_passes = 0; s 2552 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) { s 2556 libavcodec/wavpackenc.c if (s->num_passes) s 2557 libavcodec/wavpackenc.c ret = wv_mono(s, samples_l, !s->num_terms, 1); s 2562 libavcodec/wavpackenc.c if (s->num_passes) s 2563 libavcodec/wavpackenc.c ret = wv_stereo(s, samples_l, samples_r, !s->num_terms, 1); s 2568 libavcodec/wavpackenc.c if (!s->ch_offset) s 2569 libavcodec/wavpackenc.c s->flags |= WV_INITIAL_BLOCK; s 2571 libavcodec/wavpackenc.c s->ch_offset += 1 + !(s->flags & WV_MONO); s 2573 libavcodec/wavpackenc.c if (s->ch_offset == s->avctx->channels) s 2574 libavcodec/wavpackenc.c s->flags |= WV_FINAL_BLOCK; s 2582 libavcodec/wavpackenc.c bytestream2_put_le32(&pb, s->sample_index); s 2584 libavcodec/wavpackenc.c bytestream2_put_le32(&pb, s->flags); s 2587 libavcodec/wavpackenc.c if (s->flags & WV_INITIAL_BLOCK && s 2588 libavcodec/wavpackenc.c s->avctx->channel_layout != AV_CH_LAYOUT_MONO && s 2589 libavcodec/wavpackenc.c s->avctx->channel_layout != AV_CH_LAYOUT_STEREO) { s 2591 libavcodec/wavpackenc.c bytestream2_put_byte(&pb, s->avctx->channels); s 2592 libavcodec/wavpackenc.c bytestream2_put_le32(&pb, s->avctx->channel_layout); s 2596 libavcodec/wavpackenc.c if ((s->flags & SRATE_MASK) == SRATE_MASK) { s 2598 libavcodec/wavpackenc.c bytestream2_put_le24(&pb, s->avctx->sample_rate); s 2602 libavcodec/wavpackenc.c put_metadata_block(&pb, WP_ID_DECTERMS, s->num_terms); s 2603 libavcodec/wavpackenc.c for (i = 0; i < s->num_terms; i++) { s 2604 libavcodec/wavpackenc.c struct Decorr *dpp = &s->decorr_passes[i]; s 2607 libavcodec/wavpackenc.c if (s->num_terms & 1) s 2619 libavcodec/wavpackenc.c for (i = s->num_terms - 1; i >= 0; --i) { s 2620 libavcodec/wavpackenc.c struct Decorr *dpp = &s->decorr_passes[i]; s 2623 libavcodec/wavpackenc.c (!(s->flags & WV_MONO_DATA) && store_weight(dpp->weightB))) s 2627 libavcodec/wavpackenc.c for (i = 0; i < s->num_terms; i++) { s 2628 libavcodec/wavpackenc.c struct Decorr *dpp = &s->decorr_passes[i]; s 2631 libavcodec/wavpackenc.c if (!(s->flags & WV_MONO_DATA)) s 2652 libavcodec/wavpackenc.c for (i = 0; i < s->num_terms; i++) { s 2653 libavcodec/wavpackenc.c struct Decorr *dpp = &s->decorr_passes[i]; s 2658 libavcodec/wavpackenc.c if (!(s->flags & WV_MONO_DATA)) { s 2668 libavcodec/wavpackenc.c if (!(s->flags & WV_MONO_DATA)) s 2682 libavcodec/wavpackenc.c temp = wp_log2(s->w.c[chan].median[i]); \ s 2684 libavcodec/wavpackenc.c s->w.c[chan].median[i] = wp_exp2(temp); \ s 2688 libavcodec/wavpackenc.c put_metadata_block(&pb, WP_ID_ENTROPY, 6 * (1 + (!(s->flags & WV_MONO_DATA)))); s 2690 libavcodec/wavpackenc.c if (!(s->flags & WV_MONO_DATA)) s 2693 libavcodec/wavpackenc.c if (s->flags & WV_FLOAT_DATA) { s 2695 libavcodec/wavpackenc.c bytestream2_put_byte(&pb, s->float_flags); s 2696 libavcodec/wavpackenc.c bytestream2_put_byte(&pb, s->float_shift); s 2697 libavcodec/wavpackenc.c bytestream2_put_byte(&pb, s->float_max_exp); s 2701 libavcodec/wavpackenc.c if (s->flags & WV_INT32_DATA) { s 2703 libavcodec/wavpackenc.c bytestream2_put_byte(&pb, s->int32_sent_bits); s 2704 libavcodec/wavpackenc.c bytestream2_put_byte(&pb, s->int32_zeros); s 2705 libavcodec/wavpackenc.c bytestream2_put_byte(&pb, s->int32_ones); s 2706 libavcodec/wavpackenc.c bytestream2_put_byte(&pb, s->int32_dups); s 2709 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA && !s->num_passes) { s 2713 libavcodec/wavpackenc.c for (tcount = s->num_terms, dpp = s->decorr_passes; tcount--; dpp++) { s 2737 libavcodec/wavpackenc.c for (tcount = s->num_terms, dpp = s->decorr_passes; tcount--; dpp++) s 2752 libavcodec/wavpackenc.c } else if (!s->num_passes) { s 2753 libavcodec/wavpackenc.c if (s->flags & WV_JOINT_STEREO) { s 2758 libavcodec/wavpackenc.c for (i = 0; i < s->num_terms; i++) { s 2759 libavcodec/wavpackenc.c struct Decorr *dpp = &s->decorr_passes[i]; s 2760 libavcodec/wavpackenc.c if (((s->flags & MAG_MASK) >> MAG_LSB) >= 16 || dpp->delta != 2) s 2768 libavcodec/wavpackenc.c init_put_bits(&s->pb, pb.buffer + 3, bytestream2_get_bytes_left_p(&pb)); s 2769 libavcodec/wavpackenc.c if (s->flags & WV_MONO_DATA) { s 2771 libavcodec/wavpackenc.c wavpack_encode_sample(s, &s->w.c[0], s->samples[0][i]); s 2774 libavcodec/wavpackenc.c wavpack_encode_sample(s, &s->w.c[0], s->samples[0][i]); s 2775 libavcodec/wavpackenc.c wavpack_encode_sample(s, &s->w.c[1], s->samples[1][i]); s 2778 libavcodec/wavpackenc.c encode_flush(s); s 2779 libavcodec/wavpackenc.c flush_put_bits(&s->pb); s 2780 libavcodec/wavpackenc.c data_size = put_bits_count(&s->pb) >> 3; s 2788 libavcodec/wavpackenc.c init_put_bits(&s->pb, pb.buffer + 7, bytestream2_get_bytes_left_p(&pb)); s 2789 libavcodec/wavpackenc.c if (s->flags & WV_FLOAT_DATA) s 2790 libavcodec/wavpackenc.c pack_float(s, s->orig_l, s->orig_r, nb_samples); s 2792 libavcodec/wavpackenc.c pack_int32(s, s->orig_l, s->orig_r, nb_samples); s 2793 libavcodec/wavpackenc.c flush_put_bits(&s->pb); s 2794 libavcodec/wavpackenc.c data_size = put_bits_count(&s->pb) >> 3; s 2796 libavcodec/wavpackenc.c bytestream2_put_le32(&pb, s->crc_x); s 2810 libavcodec/wavpackenc.c static void fill_buffer(WavPackEncodeContext *s, s 2822 libavcodec/wavpackenc.c switch (s->avctx->sample_fmt) { s 2830 libavcodec/wavpackenc.c if (s->avctx->bits_per_raw_sample <= 24) { s 2839 libavcodec/wavpackenc.c static void set_samplerate(WavPackEncodeContext *s) s 2844 libavcodec/wavpackenc.c if (wv_rates[i] == s->avctx->sample_rate) s 2848 libavcodec/wavpackenc.c s->flags = i << SRATE_LSB; s 2854 libavcodec/wavpackenc.c WavPackEncodeContext *s = avctx->priv_data; s 2858 libavcodec/wavpackenc.c s->block_samples = frame->nb_samples; s 2859 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->samples[0], &s->samples_size[0], s 2860 libavcodec/wavpackenc.c sizeof(int32_t) * s->block_samples); s 2861 libavcodec/wavpackenc.c if (!s->samples[0]) s 2864 libavcodec/wavpackenc.c av_fast_padded_malloc(&s->samples[1], &s->samples_size[1], s 2865 libavcodec/wavpackenc.c sizeof(int32_t) * s->block_samples); s 2866 libavcodec/wavpackenc.c if (!s->samples[1]) s 2870 libavcodec/wavpackenc.c buf_size = s->block_samples * avctx->channels * 8 s 2876 libavcodec/wavpackenc.c for (s->ch_offset = 0; s->ch_offset < avctx->channels;) { s 2877 libavcodec/wavpackenc.c set_samplerate(s); s 2879 libavcodec/wavpackenc.c switch (s->avctx->sample_fmt) { s 2880 libavcodec/wavpackenc.c case AV_SAMPLE_FMT_S16P: s->flags |= 1; break; s 2881 libavcodec/wavpackenc.c case AV_SAMPLE_FMT_S32P: s->flags |= 3 - (s->avctx->bits_per_raw_sample <= 24); break; s 2882 libavcodec/wavpackenc.c case AV_SAMPLE_FMT_FLTP: s->flags |= 3 | WV_FLOAT_DATA; s 2885 libavcodec/wavpackenc.c fill_buffer(s, frame->extended_data[s->ch_offset], s->samples[0], s->block_samples); s 2886 libavcodec/wavpackenc.c if (avctx->channels - s->ch_offset == 1) { s 2887 libavcodec/wavpackenc.c s->flags |= WV_MONO; s 2889 libavcodec/wavpackenc.c s->flags |= WV_CROSS_DECORR; s 2890 libavcodec/wavpackenc.c fill_buffer(s, frame->extended_data[s->ch_offset + 1], s->samples[1], s->block_samples); s 2893 libavcodec/wavpackenc.c s->flags += (1 << MAG_LSB) * ((s->flags & 3) * 8 + 7); s 2895 libavcodec/wavpackenc.c if ((ret = wavpack_encode_block(s, s->samples[0], s->samples[1], s 2902 libavcodec/wavpackenc.c s->sample_index += frame->nb_samples; s 2913 libavcodec/wavpackenc.c WavPackEncodeContext *s = avctx->priv_data; s 2917 libavcodec/wavpackenc.c av_freep(&s->sampleptrs[i][0]); s 2918 libavcodec/wavpackenc.c av_freep(&s->sampleptrs[i][1]); s 2919 libavcodec/wavpackenc.c s->sampleptrs_size[i][0] = s->sampleptrs_size[i][1] = 0; s 2923 libavcodec/wavpackenc.c av_freep(&s->samples[i]); s 2924 libavcodec/wavpackenc.c s->samples_size[i] = 0; s 2926 libavcodec/wavpackenc.c av_freep(&s->best_buffer[i]); s 2927 libavcodec/wavpackenc.c s->best_buffer_size[i] = 0; s 2929 libavcodec/wavpackenc.c av_freep(&s->temp_buffer[i][0]); s 2930 libavcodec/wavpackenc.c av_freep(&s->temp_buffer[i][1]); s 2931 libavcodec/wavpackenc.c s->temp_buffer_size[i][0] = s->temp_buffer_size[i][1] = 0; s 2934 libavcodec/wavpackenc.c av_freep(&s->js_left); s 2935 libavcodec/wavpackenc.c av_freep(&s->js_right); s 2936 libavcodec/wavpackenc.c s->js_left_size = s->js_right_size = 0; s 2938 libavcodec/wavpackenc.c av_freep(&s->orig_l); s 2939 libavcodec/wavpackenc.c av_freep(&s->orig_r); s 2940 libavcodec/wavpackenc.c s->orig_l_size = s->orig_r_size = 0; s 46 libavcodec/wcmv.c WCMVContext *s = avctx->priv_data; s 48 libavcodec/wcmv.c int skip, blocks, zret, ret, intra = 0, flags = 0, bpp = s->bpp; s 52 libavcodec/wcmv.c ret = inflateReset(&s->zstream); s 63 libavcodec/wcmv.c if ((ret = ff_reget_buffer(avctx, s->prev_frame, flags)) < 0) s 81 libavcodec/wcmv.c s->zstream.next_in = avpkt->data + skip; s 82 libavcodec/wcmv.c s->zstream.avail_in = size; s 83 libavcodec/wcmv.c s->zstream.next_out = s->block_data; s 84 libavcodec/wcmv.c s->zstream.avail_out = sizeof(s->block_data); s 86 libavcodec/wcmv.c zret = inflate(&s->zstream, Z_FINISH); s 93 libavcodec/wcmv.c ret = inflateReset(&s->zstream); s 100 libavcodec/wcmv.c bytestream2_init(&bgb, s->block_data, blocks * 8); s 122 libavcodec/wcmv.c s->zstream.next_in = avpkt->data + skip; s 123 libavcodec/wcmv.c s->zstream.avail_in = avpkt->size - skip; s 125 libavcodec/wcmv.c bytestream2_init(&gb, s->block_data, blocks * 8); s 151 libavcodec/wcmv.c s->zstream.next_in = avpkt->data + skip; s 152 libavcodec/wcmv.c s->zstream.avail_in = avpkt->size - skip; s 161 libavcodec/wcmv.c ptrdiff_t linesize[4] = { s->prev_frame->linesize[0], 0, 0, 0 }; s 162 libavcodec/wcmv.c av_image_fill_black(s->prev_frame->data, linesize, avctx->pix_fmt, 0, s 183 libavcodec/wcmv.c dst = s->prev_frame->data[0] + (avctx->height - y - 1) * s->prev_frame->linesize[0] + x * bpp; s 185 libavcodec/wcmv.c s->zstream.next_out = dst; s 186 libavcodec/wcmv.c s->zstream.avail_out = w * bpp; s 188 libavcodec/wcmv.c zret = inflate(&s->zstream, Z_SYNC_FLUSH); s 195 libavcodec/wcmv.c dst -= s->prev_frame->linesize[0]; s 199 libavcodec/wcmv.c s->prev_frame->key_frame = intra; s 200 libavcodec/wcmv.c s->prev_frame->pict_type = intra ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P; s 202 libavcodec/wcmv.c if ((ret = av_frame_ref(frame, s->prev_frame)) < 0) s 212 libavcodec/wcmv.c WCMVContext *s = avctx->priv_data; s 224 libavcodec/wcmv.c s->bpp = avctx->bits_per_coded_sample >> 3; s 226 libavcodec/wcmv.c s->zstream.zalloc = Z_NULL; s 227 libavcodec/wcmv.c s->zstream.zfree = Z_NULL; s 228 libavcodec/wcmv.c s->zstream.opaque = Z_NULL; s 229 libavcodec/wcmv.c zret = inflateInit(&s->zstream); s 235 libavcodec/wcmv.c s->prev_frame = av_frame_alloc(); s 236 libavcodec/wcmv.c if (!s->prev_frame) s 244 libavcodec/wcmv.c WCMVContext *s = avctx->priv_data; s 246 libavcodec/wcmv.c av_frame_free(&s->prev_frame); s 247 libavcodec/wcmv.c inflateEnd(&s->zstream); s 346 libavcodec/webp.c static void read_huffman_code_simple(WebPContext *s, HuffReader *hc) s 348 libavcodec/webp.c hc->nb_symbols = get_bits1(&s->gb) + 1; s 350 libavcodec/webp.c if (get_bits1(&s->gb)) s 351 libavcodec/webp.c hc->simple_symbols[0] = get_bits(&s->gb, 8); s 353 libavcodec/webp.c hc->simple_symbols[0] = get_bits1(&s->gb); s 356 libavcodec/webp.c hc->simple_symbols[1] = get_bits(&s->gb, 8); s 361 libavcodec/webp.c static int read_huffman_code_normal(WebPContext *s, HuffReader *hc, s 368 libavcodec/webp.c int num_codes = 4 + get_bits(&s->gb, 4); s 374 libavcodec/webp.c code_length_code_lengths[code_length_code_order[i]] = get_bits(&s->gb, 3); s 387 libavcodec/webp.c if (get_bits1(&s->gb)) { s 388 libavcodec/webp.c int bits = 2 + 2 * get_bits(&s->gb, 3); s 389 libavcodec/webp.c max_symbol = 2 + get_bits(&s->gb, bits); s 391 libavcodec/webp.c av_log(s->avctx, AV_LOG_ERROR, "max symbol %d > alphabet size %d\n", s 407 libavcodec/webp.c code_len = huff_reader_get_symbol(&code_len_hc, &s->gb); s 420 libavcodec/webp.c repeat = 3 + get_bits(&s->gb, 2); s 426 libavcodec/webp.c repeat = 3 + get_bits(&s->gb, 3); s 431 libavcodec/webp.c repeat = 11 + get_bits(&s->gb, 7); s 435 libavcodec/webp.c av_log(s->avctx, AV_LOG_ERROR, s 454 libavcodec/webp.c static int decode_entropy_coded_image(WebPContext *s, enum ImageRole role, s 458 libavcodec/webp.c block_bits = get_bits(&s->gb, 3) + 2; \ s 463 libavcodec/webp.c static int decode_entropy_image(WebPContext *s) s 468 libavcodec/webp.c width = s->width; s 469 libavcodec/webp.c if (s->reduced_width > 0) s 470 libavcodec/webp.c width = s->reduced_width; s 472 libavcodec/webp.c PARSE_BLOCK_SIZE(width, s->height); s 474 libavcodec/webp.c ret = decode_entropy_coded_image(s, IMAGE_ROLE_ENTROPY, blocks_w, blocks_h); s 478 libavcodec/webp.c img = &s->image[IMAGE_ROLE_ENTROPY]; s 492 libavcodec/webp.c s->nb_huffman_groups = max + 1; s 497 libavcodec/webp.c static int parse_transform_predictor(WebPContext *s) s 501 libavcodec/webp.c PARSE_BLOCK_SIZE(s->width, s->height); s 503 libavcodec/webp.c ret = decode_entropy_coded_image(s, IMAGE_ROLE_PREDICTOR, blocks_w, s 508 libavcodec/webp.c s->image[IMAGE_ROLE_PREDICTOR].size_reduction = block_bits; s 513 libavcodec/webp.c static int parse_transform_color(WebPContext *s) s 517 libavcodec/webp.c PARSE_BLOCK_SIZE(s->width, s->height); s 519 libavcodec/webp.c ret = decode_entropy_coded_image(s, IMAGE_ROLE_COLOR_TRANSFORM, blocks_w, s 524 libavcodec/webp.c s->image[IMAGE_ROLE_COLOR_TRANSFORM].size_reduction = block_bits; s 529 libavcodec/webp.c static int parse_transform_color_indexing(WebPContext *s) s 535 libavcodec/webp.c index_size = get_bits(&s->gb, 8) + 1; s 546 libavcodec/webp.c ret = decode_entropy_coded_image(s, IMAGE_ROLE_COLOR_INDEXING, s 551 libavcodec/webp.c img = &s->image[IMAGE_ROLE_COLOR_INDEXING]; s 554 libavcodec/webp.c s->reduced_width = (s->width + ((1 << width_bits) - 1)) >> width_bits; s 564 libavcodec/webp.c static HuffReader *get_huffman_group(WebPContext *s, ImageContext *img, s 567 libavcodec/webp.c ImageContext *gimg = &s->image[IMAGE_ROLE_ENTROPY]; s 587 libavcodec/webp.c static int decode_entropy_coded_image(WebPContext *s, enum ImageRole role, s 594 libavcodec/webp.c img = &s->image[role]; s 609 libavcodec/webp.c ret = ff_thread_get_buffer(s->avctx, &pt, 0); s 615 libavcodec/webp.c if (get_bits1(&s->gb)) { s 616 libavcodec/webp.c img->color_cache_bits = get_bits(&s->gb, 4); s 618 libavcodec/webp.c av_log(s->avctx, AV_LOG_ERROR, "invalid color cache bits: %d\n", s 631 libavcodec/webp.c if (role == IMAGE_ROLE_ARGB && get_bits1(&s->gb)) { s 632 libavcodec/webp.c ret = decode_entropy_image(s); s 635 libavcodec/webp.c img->nb_huffman_groups = s->nb_huffman_groups; s 650 libavcodec/webp.c if (get_bits1(&s->gb)) { s 651 libavcodec/webp.c read_huffman_code_simple(s, &hg[j]); s 653 libavcodec/webp.c ret = read_huffman_code_normal(s, &hg[j], alphabet_size); s 661 libavcodec/webp.c if (role == IMAGE_ROLE_ARGB && s->reduced_width > 0) s 662 libavcodec/webp.c width = s->reduced_width; s 668 libavcodec/webp.c hg = get_huffman_group(s, img, x, y); s 669 libavcodec/webp.c v = huff_reader_get_symbol(&hg[HUFF_IDX_GREEN], &s->gb); s 674 libavcodec/webp.c p[1] = huff_reader_get_symbol(&hg[HUFF_IDX_RED], &s->gb); s 675 libavcodec/webp.c p[3] = huff_reader_get_symbol(&hg[HUFF_IDX_BLUE], &s->gb); s 676 libavcodec/webp.c p[0] = huff_reader_get_symbol(&hg[HUFF_IDX_ALPHA], &s->gb); s 695 libavcodec/webp.c length = offset + get_bits(&s->gb, extra_bits) + 1; s 697 libavcodec/webp.c prefix_code = huff_reader_get_symbol(&hg[HUFF_IDX_DIST], &s->gb); s 699 libavcodec/webp.c av_log(s->avctx, AV_LOG_ERROR, s 708 libavcodec/webp.c distance = offset + get_bits(&s->gb, extra_bits) + 1; s 768 libavcodec/webp.c av_log(s->avctx, AV_LOG_ERROR, "color cache not found\n"); s 772 libavcodec/webp.c av_log(s->avctx, AV_LOG_ERROR, s 956 libavcodec/webp.c static int apply_predictor_transform(WebPContext *s) s 958 libavcodec/webp.c ImageContext *img = &s->image[IMAGE_ROLE_ARGB]; s 959 libavcodec/webp.c ImageContext *pimg = &s->image[IMAGE_ROLE_PREDICTOR]; s 977 libavcodec/webp.c av_log(s->avctx, AV_LOG_ERROR, s 993 libavcodec/webp.c static int apply_color_transform(WebPContext *s) s 999 libavcodec/webp.c img = &s->image[IMAGE_ROLE_ARGB]; s 1000 libavcodec/webp.c cimg = &s->image[IMAGE_ROLE_COLOR_TRANSFORM]; s 1017 libavcodec/webp.c static int apply_subtract_green_transform(WebPContext *s) s 1020 libavcodec/webp.c ImageContext *img = &s->image[IMAGE_ROLE_ARGB]; s 1032 libavcodec/webp.c static int apply_color_indexing_transform(WebPContext *s) s 1039 libavcodec/webp.c img = &s->image[IMAGE_ROLE_ARGB]; s 1040 libavcodec/webp.c pal = &s->image[IMAGE_ROLE_COLOR_INDEXING]; s 1105 libavcodec/webp.c WebPContext *s = avctx->priv_data; s 1106 libavcodec/webp.c if (s->width && s->width != w) { s 1108 libavcodec/webp.c s->width, w); s 1110 libavcodec/webp.c s->width = w; s 1111 libavcodec/webp.c if (s->height && s->height != h) { s 1113 libavcodec/webp.c s->height, h); s 1115 libavcodec/webp.c s->height = h; s 1122 libavcodec/webp.c WebPContext *s = avctx->priv_data; s 1126 libavcodec/webp.c s->lossless = 1; s 1130 libavcodec/webp.c ret = init_get_bits8(&s->gb, data_start, data_size); s 1135 libavcodec/webp.c if (get_bits(&s->gb, 8) != 0x2F) { s 1140 libavcodec/webp.c w = get_bits(&s->gb, 14) + 1; s 1141 libavcodec/webp.c h = get_bits(&s->gb, 14) + 1; s 1145 libavcodec/webp.c ret = ff_set_dimensions(avctx, s->width, s->height); s 1149 libavcodec/webp.c s->has_alpha = get_bits1(&s->gb); s 1151 libavcodec/webp.c if (get_bits(&s->gb, 3) != 0x0) { s 1156 libavcodec/webp.c if (!s->width || !s->height) s 1158 libavcodec/webp.c w = s->width; s 1159 libavcodec/webp.c h = s->height; s 1163 libavcodec/webp.c s->nb_transforms = 0; s 1164 libavcodec/webp.c s->reduced_width = 0; s 1166 libavcodec/webp.c while (get_bits1(&s->gb)) { s 1167 libavcodec/webp.c enum TransformType transform = get_bits(&s->gb, 2); s 1175 libavcodec/webp.c s->transforms[s->nb_transforms++] = transform; s 1178 libavcodec/webp.c ret = parse_transform_predictor(s); s 1181 libavcodec/webp.c ret = parse_transform_color(s); s 1184 libavcodec/webp.c ret = parse_transform_color_indexing(s); s 1192 libavcodec/webp.c s->image[IMAGE_ROLE_ARGB].frame = p; s 1194 libavcodec/webp.c s->image[IMAGE_ROLE_ARGB].is_alpha_primary = 1; s 1195 libavcodec/webp.c ret = decode_entropy_coded_image(s, IMAGE_ROLE_ARGB, w, h); s 1200 libavcodec/webp.c for (i = s->nb_transforms - 1; i >= 0; i--) { s 1201 libavcodec/webp.c switch (s->transforms[i]) { s 1203 libavcodec/webp.c ret = apply_predictor_transform(s); s 1206 libavcodec/webp.c ret = apply_color_transform(s); s 1209 libavcodec/webp.c ret = apply_subtract_green_transform(s); s 1212 libavcodec/webp.c ret = apply_color_indexing_transform(s); s 1226 libavcodec/webp.c image_ctx_free(&s->image[i]); s 1278 libavcodec/webp.c WebPContext *s = avctx->priv_data; s 1281 libavcodec/webp.c if (s->alpha_compression == ALPHA_COMPRESSION_NONE) { s 1285 libavcodec/webp.c for (y = 0; y < s->height; y++) s 1287 libavcodec/webp.c s->width); s 1288 libavcodec/webp.c } else if (s->alpha_compression == ALPHA_COMPRESSION_VP8L) { s 1292 libavcodec/webp.c s->alpha_frame = av_frame_alloc(); s 1293 libavcodec/webp.c if (!s->alpha_frame) s 1296 libavcodec/webp.c ret = vp8_lossless_decode_frame(avctx, s->alpha_frame, &alpha_got_frame, s 1299 libavcodec/webp.c av_frame_free(&s->alpha_frame); s 1303 libavcodec/webp.c av_frame_free(&s->alpha_frame); s 1308 libavcodec/webp.c for (y = 0; y < s->height; y++) { s 1309 libavcodec/webp.c ap = GET_PIXEL(s->alpha_frame, 0, y) + 2; s 1311 libavcodec/webp.c for (x = 0; x < s->width; x++) { s 1317 libavcodec/webp.c av_frame_free(&s->alpha_frame); s 1321 libavcodec/webp.c if (s->alpha_filter) s 1322 libavcodec/webp.c alpha_inverse_prediction(p, s->alpha_filter); s 1331 libavcodec/webp.c WebPContext *s = avctx->priv_data; s 1335 libavcodec/webp.c if (!s->initialized) { s 1337 libavcodec/webp.c s->initialized = 1; s 1338 libavcodec/webp.c s->v.actually_webp = 1; s 1340 libavcodec/webp.c avctx->pix_fmt = s->has_alpha ? AV_PIX_FMT_YUVA420P : AV_PIX_FMT_YUV420P; s 1341 libavcodec/webp.c s->lossless = 0; s 1361 libavcodec/webp.c if (s->has_alpha) { s 1362 libavcodec/webp.c ret = vp8_lossy_decode_alpha(avctx, p, s->alpha_data, s 1363 libavcodec/webp.c s->alpha_data_size); s 1374 libavcodec/webp.c WebPContext *s = avctx->priv_data; s 1380 libavcodec/webp.c s->avctx = avctx; s 1381 libavcodec/webp.c s->width = 0; s 1382 libavcodec/webp.c s->height = 0; s 1384 libavcodec/webp.c s->has_alpha = 0; s 1385 libavcodec/webp.c s->has_exif = 0; s 1386 libavcodec/webp.c s->has_iccp = 0; s 1444 libavcodec/webp.c if (s->width || s->height || *got_frame) { s 1450 libavcodec/webp.c s->width = bytestream2_get_le24(&gb) + 1; s 1451 libavcodec/webp.c s->height = bytestream2_get_le24(&gb) + 1; s 1452 libavcodec/webp.c ret = av_image_check_size(s->width, s->height, 0, avctx); s 1469 libavcodec/webp.c s->alpha_data = avpkt->data + bytestream2_tell(&gb); s 1470 libavcodec/webp.c s->alpha_data_size = chunk_size - 1; s 1471 libavcodec/webp.c bytestream2_skip(&gb, s->alpha_data_size); s 1480 libavcodec/webp.c s->has_alpha = 1; s 1481 libavcodec/webp.c s->alpha_compression = compression; s 1482 libavcodec/webp.c s->alpha_filter = filter_m; s 1492 libavcodec/webp.c if (s->has_exif) { s 1501 libavcodec/webp.c s->has_exif = 1; s 1526 libavcodec/webp.c if (s->has_iccp) { s 1536 libavcodec/webp.c s->has_iccp = 1; s 1571 libavcodec/webp.c WebPContext *s = avctx->priv_data; s 1573 libavcodec/webp.c if (s->initialized) s 37 libavcodec/webp_parser.c static int webp_parse(AVCodecParserContext *s, AVCodecContext *avctx, s 41 libavcodec/webp_parser.c WebPParseContext *ctx = s->priv_data; s 88 libavcodec/webvttdec.c FFASSDecoderContext *s = avctx->priv_data; s 93 libavcodec/webvttdec.c ret = ff_ass_add_rect(sub, buf.str, s->readorder++, 0, NULL, NULL); s 44 libavcodec/webvttenc.c static void webvtt_print(WebVTTContext *s, const char *str, ...) s 48 libavcodec/webvttenc.c av_vbprintf(&s->buffer, str, vargs); s 52 libavcodec/webvttenc.c static int webvtt_stack_push(WebVTTContext *s, const char c) s 54 libavcodec/webvttenc.c if (s->stack_ptr >= WEBVTT_STACK_SIZE) s 56 libavcodec/webvttenc.c s->stack[s->stack_ptr++] = c; s 60 libavcodec/webvttenc.c static char webvtt_stack_pop(WebVTTContext *s) s 62 libavcodec/webvttenc.c if (s->stack_ptr <= 0) s 64 libavcodec/webvttenc.c return s->stack[--s->stack_ptr]; s 67 libavcodec/webvttenc.c static int webvtt_stack_find(WebVTTContext *s, const char c) s 70 libavcodec/webvttenc.c for (i = s->stack_ptr-1; i >= 0; i--) s 71 libavcodec/webvttenc.c if (s->stack[i] == c) s 76 libavcodec/webvttenc.c static void webvtt_close_tag(WebVTTContext *s, char tag) s 78 libavcodec/webvttenc.c webvtt_print(s, "</%c>", tag); s 81 libavcodec/webvttenc.c static void webvtt_stack_push_pop(WebVTTContext *s, const char c, int close) s 84 libavcodec/webvttenc.c int i = c ? webvtt_stack_find(s, c) : 0; s 87 libavcodec/webvttenc.c while (s->stack_ptr != i) s 88 libavcodec/webvttenc.c webvtt_close_tag(s, webvtt_stack_pop(s)); s 89 libavcodec/webvttenc.c } else if (webvtt_stack_push(s, c) < 0) s 90 libavcodec/webvttenc.c av_log(s->avctx, AV_LOG_ERROR, "tag stack overflow\n"); s 93 libavcodec/webvttenc.c static void webvtt_style_apply(WebVTTContext *s, const char *style) s 95 libavcodec/webvttenc.c ASSStyle *st = ff_ass_style_get(s->ass_ctx, style); s 98 libavcodec/webvttenc.c webvtt_print(s, "<b>"); s 99 libavcodec/webvttenc.c webvtt_stack_push(s, 'b'); s 102 libavcodec/webvttenc.c webvtt_print(s, "<i>"); s 103 libavcodec/webvttenc.c webvtt_stack_push(s, 'i'); s 106 libavcodec/webvttenc.c webvtt_print(s, "<u>"); s 107 libavcodec/webvttenc.c webvtt_stack_push(s, 'u'); s 114 libavcodec/webvttenc.c WebVTTContext *s = priv; s 115 libavcodec/webvttenc.c av_bprint_append_data(&s->buffer, text, len); s 160 libavcodec/webvttenc.c WebVTTContext *s = avctx->priv_data; s 164 libavcodec/webvttenc.c av_bprint_clear(&s->buffer); s 177 libavcodec/webvttenc.c dialog = ff_ass_split_dialog(s->ass_ctx, ass, 0, &num); s 180 libavcodec/webvttenc.c webvtt_style_apply(s, dialog->style); s 181 libavcodec/webvttenc.c ff_ass_split_override_codes(&webvtt_callbacks, s, dialog->text); s 185 libavcodec/webvttenc.c dialog = ff_ass_split_dialog2(s->ass_ctx, ass); s 188 libavcodec/webvttenc.c webvtt_style_apply(s, dialog->style); s 189 libavcodec/webvttenc.c ff_ass_split_override_codes(&webvtt_callbacks, s, dialog->text); s 196 libavcodec/webvttenc.c if (!av_bprint_is_complete(&s->buffer)) s 198 libavcodec/webvttenc.c if (!s->buffer.len) s 201 libavcodec/webvttenc.c if (s->buffer.len > bufsize) { s 205 libavcodec/webvttenc.c memcpy(buf, s->buffer.str, s->buffer.len); s 207 libavcodec/webvttenc.c return s->buffer.len; s 212 libavcodec/webvttenc.c WebVTTContext *s = avctx->priv_data; s 213 libavcodec/webvttenc.c ff_ass_split_free(s->ass_ctx); s 214 libavcodec/webvttenc.c av_bprint_finalize(&s->buffer, NULL); s 220 libavcodec/webvttenc.c WebVTTContext *s = avctx->priv_data; s 221 libavcodec/webvttenc.c s->avctx = avctx; s 222 libavcodec/webvttenc.c s->ass_ctx = ff_ass_split(avctx->subtitle_header); s 223 libavcodec/webvttenc.c av_bprint_init(&s->buffer, 0, AV_BPRINT_SIZE_UNLIMITED); s 224 libavcodec/webvttenc.c return s->ass_ctx ? 0 : AVERROR_INVALIDDATA; s 83 libavcodec/wma.c WMACodecContext *s = avctx->priv_data; s 97 libavcodec/wma.c s->version = 1; s 99 libavcodec/wma.c s->version = 2; s 102 libavcodec/wma.c s->frame_len_bits = ff_wma_get_frame_len_bits(avctx->sample_rate, s 103 libavcodec/wma.c s->version, 0); s 104 libavcodec/wma.c s->next_block_len_bits = s->frame_len_bits; s 105 libavcodec/wma.c s->prev_block_len_bits = s->frame_len_bits; s 106 libavcodec/wma.c s->block_len_bits = s->frame_len_bits; s 108 libavcodec/wma.c s->frame_len = 1 << s->frame_len_bits; s 109 libavcodec/wma.c if (s->use_variable_block_len) { s 114 libavcodec/wma.c nb_max = s->frame_len_bits - BLOCK_MIN_BITS; s 117 libavcodec/wma.c s->nb_block_sizes = nb + 1; s 119 libavcodec/wma.c s->nb_block_sizes = 1; s 122 libavcodec/wma.c s->use_noise_coding = 1; s 127 libavcodec/wma.c if (s->version == 2) { s 142 libavcodec/wma.c s->byte_offset_bits = av_log2((int) (bps * s->frame_len / 8.0 + 0.5)) + 2; s 143 libavcodec/wma.c if (s->byte_offset_bits + 3 > MIN_CACHE_BITS) { s 144 libavcodec/wma.c av_log(avctx, AV_LOG_ERROR, "byte_offset_bits %d is too large\n", s->byte_offset_bits); s 155 libavcodec/wma.c s->use_noise_coding = 0; s 160 libavcodec/wma.c s->use_noise_coding = 0; s 176 libavcodec/wma.c s->use_noise_coding = 0; s 187 libavcodec/wma.c ff_dlog(s->avctx, "flags2=0x%x\n", flags2); s 188 libavcodec/wma.c ff_dlog(s->avctx, "version=%d channels=%d sample_rate=%d bitrate=%"PRId64" block_align=%d\n", s 189 libavcodec/wma.c s->version, avctx->channels, avctx->sample_rate, avctx->bit_rate, s 191 libavcodec/wma.c ff_dlog(s->avctx, "bps=%f bps1=%f high_freq=%f bitoffset=%d\n", s 192 libavcodec/wma.c bps, bps1, high_freq, s->byte_offset_bits); s 193 libavcodec/wma.c ff_dlog(s->avctx, "use_noise_coding=%d use_exp_vlc=%d nb_block_sizes=%d\n", s 194 libavcodec/wma.c s->use_noise_coding, s->use_exp_vlc, s->nb_block_sizes); s 201 libavcodec/wma.c if (s->version == 1) s 202 libavcodec/wma.c s->coefs_start = 3; s 204 libavcodec/wma.c s->coefs_start = 0; s 205 libavcodec/wma.c for (k = 0; k < s->nb_block_sizes; k++) { s 206 libavcodec/wma.c block_len = s->frame_len >> k; s 208 libavcodec/wma.c if (s->version == 1) { s 216 libavcodec/wma.c s->exponent_bands[0][i] = pos - lpos; s 223 libavcodec/wma.c s->exponent_sizes[0] = i; s 227 libavcodec/wma.c a = s->frame_len_bits - BLOCK_MIN_BITS - k; s 239 libavcodec/wma.c s->exponent_bands[k][i] = table[i]; s 240 libavcodec/wma.c s->exponent_sizes[k] = n; s 252 libavcodec/wma.c s->exponent_bands[k][j++] = pos - lpos; s 257 libavcodec/wma.c s->exponent_sizes[k] = j; s 262 libavcodec/wma.c s->coefs_end[k] = (s->frame_len - ((s->frame_len * 9) / 100)) >> k; s 264 libavcodec/wma.c s->high_band_start[k] = (int) ((block_len * 2 * high_freq) / s 266 libavcodec/wma.c n = s->exponent_sizes[k]; s 272 libavcodec/wma.c pos += s->exponent_bands[k][i]; s 274 libavcodec/wma.c if (start < s->high_band_start[k]) s 275 libavcodec/wma.c start = s->high_band_start[k]; s 276 libavcodec/wma.c if (end > s->coefs_end[k]) s 277 libavcodec/wma.c end = s->coefs_end[k]; s 279 libavcodec/wma.c s->exponent_high_bands[k][j++] = end - start; s 281 libavcodec/wma.c s->exponent_high_sizes[k] = j; s 288 libavcodec/wma.c for (i = 0; i < s->nb_block_sizes; i++) { s 289 libavcodec/wma.c ff_tlog(s->avctx, "%5d: n=%2d:", s 290 libavcodec/wma.c s->frame_len >> i, s 291 libavcodec/wma.c s->exponent_sizes[i]); s 292 libavcodec/wma.c for (j = 0; j < s->exponent_sizes[i]; j++) s 293 libavcodec/wma.c ff_tlog(s->avctx, " %d", s->exponent_bands[i][j]); s 294 libavcodec/wma.c ff_tlog(s->avctx, "\n"); s 300 libavcodec/wma.c for (i = 0; i < s->nb_block_sizes; i++) { s 301 libavcodec/wma.c ff_init_ff_sine_windows(s->frame_len_bits - i); s 302 libavcodec/wma.c s->windows[i] = ff_sine_windows[s->frame_len_bits - i]; s 305 libavcodec/wma.c s->reset_block_lengths = 1; s 307 libavcodec/wma.c if (s->use_noise_coding) { s 309 libavcodec/wma.c if (s->use_exp_vlc) s 310 libavcodec/wma.c s->noise_mult = 0.02; s 312 libavcodec/wma.c s->noise_mult = 0.04; s 316 libavcodec/wma.c s->noise_table[i] = 1.0 * s->noise_mult; s 322 libavcodec/wma.c norm = (1.0 / (float) (1LL << 31)) * sqrt(3) * s->noise_mult; s 325 libavcodec/wma.c s->noise_table[i] = (float) ((int) seed) * norm; s 331 libavcodec/wma.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 332 libavcodec/wma.c if (!s->fdsp) s 343 libavcodec/wma.c s->coef_vlcs[0] = &coef_vlcs[coef_vlc_table * 2]; s 344 libavcodec/wma.c s->coef_vlcs[1] = &coef_vlcs[coef_vlc_table * 2 + 1]; s 345 libavcodec/wma.c ret = init_coef_vlc(&s->coef_vlc[0], &s->run_table[0], &s->level_table[0], s 346 libavcodec/wma.c &s->int_table[0], s->coef_vlcs[0]); s 350 libavcodec/wma.c return init_coef_vlc(&s->coef_vlc[1], &s->run_table[1], &s->level_table[1], s 351 libavcodec/wma.c &s->int_table[1], s->coef_vlcs[1]); s 370 libavcodec/wma.c WMACodecContext *s = avctx->priv_data; s 373 libavcodec/wma.c for (i = 0; i < s->nb_block_sizes; i++) s 374 libavcodec/wma.c ff_mdct_end(&s->mdct_ctx[i]); s 376 libavcodec/wma.c if (s->use_exp_vlc) s 377 libavcodec/wma.c ff_free_vlc(&s->exp_vlc); s 378 libavcodec/wma.c if (s->use_noise_coding) s 379 libavcodec/wma.c ff_free_vlc(&s->hgain_vlc); s 381 libavcodec/wma.c ff_free_vlc(&s->coef_vlc[i]); s 382 libavcodec/wma.c av_freep(&s->run_table[i]); s 383 libavcodec/wma.c av_freep(&s->level_table[i]); s 384 libavcodec/wma.c av_freep(&s->int_table[i]); s 386 libavcodec/wma.c av_freep(&s->fdsp); s 49 libavcodec/wmadec.c static void wma_lsp_to_curve_init(WMACodecContext *s, int frame_len); s 52 libavcodec/wmadec.c static void dump_floats(WMACodecContext *s, const char *name, s 57 libavcodec/wmadec.c ff_tlog(s->avctx, "%s[%d]:\n", name, n); s 60 libavcodec/wmadec.c ff_tlog(s->avctx, "%4d: ", i); s 61 libavcodec/wmadec.c ff_tlog(s->avctx, " %8.*f", prec, tab[i]); s 63 libavcodec/wmadec.c ff_tlog(s->avctx, "\n"); s 66 libavcodec/wmadec.c ff_tlog(s->avctx, "\n"); s 72 libavcodec/wmadec.c WMACodecContext *s = avctx->priv_data; s 81 libavcodec/wmadec.c s->avctx = avctx; s 91 libavcodec/wmadec.c s->use_exp_vlc = flags2 & 0x0001; s 92 libavcodec/wmadec.c s->use_bit_reservoir = flags2 & 0x0002; s 93 libavcodec/wmadec.c s->use_variable_block_len = flags2 & 0x0004; s 96 libavcodec/wmadec.c if (AV_RL16(extradata+4)==0xd && s->use_variable_block_len){ s 98 libavcodec/wmadec.c s->use_variable_block_len= 0; // this fixes issue1503 s 103 libavcodec/wmadec.c s->max_exponent[i] = 1.0; s 109 libavcodec/wmadec.c for (i = 0; i < s->nb_block_sizes; i++) s 110 libavcodec/wmadec.c ff_mdct_init(&s->mdct_ctx[i], s->frame_len_bits - i + 1, 1, 1.0 / 32768.0); s 112 libavcodec/wmadec.c if (s->use_noise_coding) { s 113 libavcodec/wmadec.c init_vlc(&s->hgain_vlc, HGAINVLCBITS, sizeof(ff_wma_hgain_huffbits), s 118 libavcodec/wmadec.c if (s->use_exp_vlc) s 119 libavcodec/wmadec.c init_vlc(&s->exp_vlc, EXPVLCBITS, sizeof(ff_aac_scalefactor_bits), // FIXME move out of context s 123 libavcodec/wmadec.c wma_lsp_to_curve_init(s, s->frame_len); s 136 libavcodec/wmadec.c static inline float pow_m1_4(WMACodecContext *s, float x) s 150 libavcodec/wmadec.c a = s->lsp_pow_m_table1[m]; s 151 libavcodec/wmadec.c b = s->lsp_pow_m_table2[m]; s 152 libavcodec/wmadec.c return s->lsp_pow_e_table[e] * (a + b * t.f); s 155 libavcodec/wmadec.c static av_cold void wma_lsp_to_curve_init(WMACodecContext *s, int frame_len) s 162 libavcodec/wmadec.c s->lsp_cos_table[i] = 2.0f * cos(wdel * i); s 167 libavcodec/wmadec.c s->lsp_pow_e_table[i] = exp2f(e * -0.25); s 177 libavcodec/wmadec.c s->lsp_pow_m_table1[i] = 2 * a - b; s 178 libavcodec/wmadec.c s->lsp_pow_m_table2[i] = b - a; s 187 libavcodec/wmadec.c static void wma_lsp_to_curve(WMACodecContext *s, float *out, float *val_max_ptr, s 197 libavcodec/wmadec.c w = s->lsp_cos_table[i]; s 205 libavcodec/wmadec.c v = pow_m1_4(s, v); s 216 libavcodec/wmadec.c static void decode_exp_lsp(WMACodecContext *s, int ch) s 223 libavcodec/wmadec.c val = get_bits(&s->gb, 3); s 225 libavcodec/wmadec.c val = get_bits(&s->gb, 4); s 229 libavcodec/wmadec.c wma_lsp_to_curve(s, s->exponents[ch], &s->max_exponent[ch], s 230 libavcodec/wmadec.c s->block_len, lsp_coefs); s 318 libavcodec/wmadec.c static int decode_exp_vlc(WMACodecContext *s, int ch) s 327 libavcodec/wmadec.c ptr = s->exponent_bands[s->frame_len_bits - s->block_len_bits]; s 328 libavcodec/wmadec.c q = (uint32_t *) s->exponents[ch]; s 329 libavcodec/wmadec.c q_end = q + s->block_len; s 331 libavcodec/wmadec.c if (s->version == 1) { s 332 libavcodec/wmadec.c last_exp = get_bits(&s->gb, 5) + 10; s 347 libavcodec/wmadec.c code = get_vlc2(&s->gb, s->exp_vlc.table, EXPVLCBITS, EXPMAX); s 349 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, "Exponent vlc invalid\n"); s 355 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, "Exponent out of range: %d\n", s 371 libavcodec/wmadec.c s->max_exponent[ch] = max_scale; s 381 libavcodec/wmadec.c static void wma_window(WMACodecContext *s, float *out) s 383 libavcodec/wmadec.c float *in = s->output; s 387 libavcodec/wmadec.c if (s->block_len_bits <= s->prev_block_len_bits) { s 388 libavcodec/wmadec.c block_len = s->block_len; s 389 libavcodec/wmadec.c bsize = s->frame_len_bits - s->block_len_bits; s 391 libavcodec/wmadec.c s->fdsp->vector_fmul_add(out, in, s->windows[bsize], s 394 libavcodec/wmadec.c block_len = 1 << s->prev_block_len_bits; s 395 libavcodec/wmadec.c n = (s->block_len - block_len) / 2; s 396 libavcodec/wmadec.c bsize = s->frame_len_bits - s->prev_block_len_bits; s 398 libavcodec/wmadec.c s->fdsp->vector_fmul_add(out + n, in + n, s->windows[bsize], s 404 libavcodec/wmadec.c out += s->block_len; s 405 libavcodec/wmadec.c in += s->block_len; s 408 libavcodec/wmadec.c if (s->block_len_bits <= s->next_block_len_bits) { s 409 libavcodec/wmadec.c block_len = s->block_len; s 410 libavcodec/wmadec.c bsize = s->frame_len_bits - s->block_len_bits; s 412 libavcodec/wmadec.c s->fdsp->vector_fmul_reverse(out, in, s->windows[bsize], block_len); s 414 libavcodec/wmadec.c block_len = 1 << s->next_block_len_bits; s 415 libavcodec/wmadec.c n = (s->block_len - block_len) / 2; s 416 libavcodec/wmadec.c bsize = s->frame_len_bits - s->next_block_len_bits; s 420 libavcodec/wmadec.c s->fdsp->vector_fmul_reverse(out + n, in + n, s->windows[bsize], s 431 libavcodec/wmadec.c static int wma_decode_block(WMACodecContext *s) s 440 libavcodec/wmadec.c ff_tlog(s->avctx, "***decode_block: %d:%d\n", s 441 libavcodec/wmadec.c s->frame_count - 1, s->block_num); s 445 libavcodec/wmadec.c if (s->use_variable_block_len) { s 446 libavcodec/wmadec.c n = av_log2(s->nb_block_sizes - 1) + 1; s 448 libavcodec/wmadec.c if (s->reset_block_lengths) { s 449 libavcodec/wmadec.c s->reset_block_lengths = 0; s 450 libavcodec/wmadec.c v = get_bits(&s->gb, n); s 451 libavcodec/wmadec.c if (v >= s->nb_block_sizes) { s 452 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, s 454 libavcodec/wmadec.c s->frame_len_bits - v); s 457 libavcodec/wmadec.c s->prev_block_len_bits = s->frame_len_bits - v; s 458 libavcodec/wmadec.c v = get_bits(&s->gb, n); s 459 libavcodec/wmadec.c if (v >= s->nb_block_sizes) { s 460 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, s 462 libavcodec/wmadec.c s->frame_len_bits - v); s 465 libavcodec/wmadec.c s->block_len_bits = s->frame_len_bits - v; s 468 libavcodec/wmadec.c s->prev_block_len_bits = s->block_len_bits; s 469 libavcodec/wmadec.c s->block_len_bits = s->next_block_len_bits; s 471 libavcodec/wmadec.c v = get_bits(&s->gb, n); s 472 libavcodec/wmadec.c if (v >= s->nb_block_sizes) { s 473 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, s 475 libavcodec/wmadec.c s->frame_len_bits - v); s 478 libavcodec/wmadec.c s->next_block_len_bits = s->frame_len_bits - v; s 481 libavcodec/wmadec.c s->next_block_len_bits = s->frame_len_bits; s 482 libavcodec/wmadec.c s->prev_block_len_bits = s->frame_len_bits; s 483 libavcodec/wmadec.c s->block_len_bits = s->frame_len_bits; s 486 libavcodec/wmadec.c if (s->frame_len_bits - s->block_len_bits >= s->nb_block_sizes){ s 487 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, "block_len_bits not initialized to a valid value\n"); s 492 libavcodec/wmadec.c s->block_len = 1 << s->block_len_bits; s 493 libavcodec/wmadec.c if ((s->block_pos + s->block_len) > s->frame_len) { s 494 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, "frame_len overflow\n"); s 498 libavcodec/wmadec.c if (s->avctx->channels == 2) s 499 libavcodec/wmadec.c s->ms_stereo = get_bits1(&s->gb); s 501 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 502 libavcodec/wmadec.c a = get_bits1(&s->gb); s 503 libavcodec/wmadec.c s->channel_coded[ch] = a; s 507 libavcodec/wmadec.c bsize = s->frame_len_bits - s->block_len_bits; s 518 libavcodec/wmadec.c if (get_bits_left(&s->gb) < 7) { s 519 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, "total_gain overread\n"); s 522 libavcodec/wmadec.c a = get_bits(&s->gb, 7); s 531 libavcodec/wmadec.c n = s->coefs_end[bsize] - s->coefs_start; s 532 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) s 536 libavcodec/wmadec.c if (s->use_noise_coding) { s 537 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 538 libavcodec/wmadec.c if (s->channel_coded[ch]) { s 540 libavcodec/wmadec.c n = s->exponent_high_sizes[bsize]; s 542 libavcodec/wmadec.c a = get_bits1(&s->gb); s 543 libavcodec/wmadec.c s->high_band_coded[ch][i] = a; s 546 libavcodec/wmadec.c nb_coefs[ch] -= s->exponent_high_bands[bsize][i]; s 550 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 551 libavcodec/wmadec.c if (s->channel_coded[ch]) { s 554 libavcodec/wmadec.c n = s->exponent_high_sizes[bsize]; s 557 libavcodec/wmadec.c if (s->high_band_coded[ch][i]) { s 559 libavcodec/wmadec.c val = get_bits(&s->gb, 7) - 19; s 561 libavcodec/wmadec.c code = get_vlc2(&s->gb, s->hgain_vlc.table, s 564 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, s 570 libavcodec/wmadec.c s->high_band_values[ch][i] = val; s 578 libavcodec/wmadec.c if ((s->block_len_bits == s->frame_len_bits) || get_bits1(&s->gb)) { s 579 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 580 libavcodec/wmadec.c if (s->channel_coded[ch]) { s 581 libavcodec/wmadec.c if (s->use_exp_vlc) { s 582 libavcodec/wmadec.c if (decode_exp_vlc(s, ch) < 0) s 585 libavcodec/wmadec.c decode_exp_lsp(s, ch); s 587 libavcodec/wmadec.c s->exponents_bsize[ch] = bsize; s 588 libavcodec/wmadec.c s->exponents_initialized[ch] = 1; s 593 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 594 libavcodec/wmadec.c if (s->channel_coded[ch] && !s->exponents_initialized[ch]) s 599 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 600 libavcodec/wmadec.c if (s->channel_coded[ch]) { s 602 libavcodec/wmadec.c WMACoef *ptr = &s->coefs1[ch][0]; s 606 libavcodec/wmadec.c tindex = (ch == 1 && s->ms_stereo); s 607 libavcodec/wmadec.c memset(ptr, 0, s->block_len * sizeof(WMACoef)); s 608 libavcodec/wmadec.c ff_wma_run_level_decode(s->avctx, &s->gb, &s->coef_vlc[tindex], s 609 libavcodec/wmadec.c s->level_table[tindex], s->run_table[tindex], s 611 libavcodec/wmadec.c s->block_len, s->frame_len_bits, coef_nb_bits); s 613 libavcodec/wmadec.c if (s->version == 1 && s->avctx->channels >= 2) s 614 libavcodec/wmadec.c align_get_bits(&s->gb); s 619 libavcodec/wmadec.c int n4 = s->block_len / 2; s 621 libavcodec/wmadec.c if (s->version == 1) s 626 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 627 libavcodec/wmadec.c if (s->channel_coded[ch]) { s 633 libavcodec/wmadec.c coefs1 = s->coefs1[ch]; s 634 libavcodec/wmadec.c exponents = s->exponents[ch]; s 635 libavcodec/wmadec.c esize = s->exponents_bsize[ch]; s 636 libavcodec/wmadec.c mult = ff_exp10(total_gain * 0.05) / s->max_exponent[ch]; s 638 libavcodec/wmadec.c coefs = s->coefs[ch]; s 639 libavcodec/wmadec.c if (s->use_noise_coding) { s 642 libavcodec/wmadec.c for (i = 0; i < s->coefs_start; i++) { s 643 libavcodec/wmadec.c *coefs++ = s->noise_table[s->noise_index] * s 645 libavcodec/wmadec.c s->noise_index = (s->noise_index + 1) & s 649 libavcodec/wmadec.c n1 = s->exponent_high_sizes[bsize]; s 652 libavcodec/wmadec.c exponents = s->exponents[ch] + s 653 libavcodec/wmadec.c (s->high_band_start[bsize] << bsize >> esize); s 656 libavcodec/wmadec.c n = s->exponent_high_bands[s->frame_len_bits - s 657 libavcodec/wmadec.c s->block_len_bits][j]; s 658 libavcodec/wmadec.c if (s->high_band_coded[ch][j]) { s 667 libavcodec/wmadec.c ff_tlog(s->avctx, "%d: power=%f (%d)\n", j, exp_power[j], n); s 673 libavcodec/wmadec.c exponents = s->exponents[ch] + (s->coefs_start << bsize >> esize); s 676 libavcodec/wmadec.c n = s->high_band_start[bsize] - s->coefs_start; s 678 libavcodec/wmadec.c n = s->exponent_high_bands[s->frame_len_bits - s 679 libavcodec/wmadec.c s->block_len_bits][j]; s 680 libavcodec/wmadec.c if (j >= 0 && s->high_band_coded[ch][j]) { s 684 libavcodec/wmadec.c mult1 = mult1 * ff_exp10(s->high_band_values[ch][j] * 0.05); s 685 libavcodec/wmadec.c mult1 = mult1 / (s->max_exponent[ch] * s->noise_mult); s 688 libavcodec/wmadec.c noise = s->noise_table[s->noise_index]; s 689 libavcodec/wmadec.c s->noise_index = (s->noise_index + 1) & (NOISE_TAB_SIZE - 1); s 696 libavcodec/wmadec.c noise = s->noise_table[s->noise_index]; s 697 libavcodec/wmadec.c s->noise_index = (s->noise_index + 1) & (NOISE_TAB_SIZE - 1); s 706 libavcodec/wmadec.c n = s->block_len - s->coefs_end[bsize]; s 709 libavcodec/wmadec.c *coefs++ = s->noise_table[s->noise_index] * mult1; s 710 libavcodec/wmadec.c s->noise_index = (s->noise_index + 1) & (NOISE_TAB_SIZE - 1); s 714 libavcodec/wmadec.c for (i = 0; i < s->coefs_start; i++) s 719 libavcodec/wmadec.c n = s->block_len - s->coefs_end[bsize]; s 727 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 728 libavcodec/wmadec.c if (s->channel_coded[ch]) { s 729 libavcodec/wmadec.c dump_floats(s, "exponents", 3, s->exponents[ch], s->block_len); s 730 libavcodec/wmadec.c dump_floats(s, "coefs", 1, s->coefs[ch], s->block_len); s 735 libavcodec/wmadec.c if (s->ms_stereo && s->channel_coded[1]) { s 739 libavcodec/wmadec.c if (!s->channel_coded[0]) { s 740 libavcodec/wmadec.c ff_tlog(s->avctx, "rare ms-stereo case happened\n"); s 741 libavcodec/wmadec.c memset(s->coefs[0], 0, sizeof(float) * s->block_len); s 742 libavcodec/wmadec.c s->channel_coded[0] = 1; s 745 libavcodec/wmadec.c s->fdsp->butterflies_float(s->coefs[0], s->coefs[1], s->block_len); s 749 libavcodec/wmadec.c mdct = &s->mdct_ctx[bsize]; s 751 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 754 libavcodec/wmadec.c n4 = s->block_len / 2; s 755 libavcodec/wmadec.c if (s->channel_coded[ch]) s 756 libavcodec/wmadec.c mdct->imdct_calc(mdct, s->output, s->coefs[ch]); s 757 libavcodec/wmadec.c else if (!(s->ms_stereo && ch == 1)) s 758 libavcodec/wmadec.c memset(s->output, 0, sizeof(s->output)); s 761 libavcodec/wmadec.c index = (s->frame_len / 2) + s->block_pos - n4; s 762 libavcodec/wmadec.c wma_window(s, &s->frame_out[ch][index]); s 766 libavcodec/wmadec.c s->block_num++; s 767 libavcodec/wmadec.c s->block_pos += s->block_len; s 768 libavcodec/wmadec.c if (s->block_pos >= s->frame_len) s 775 libavcodec/wmadec.c static int wma_decode_frame(WMACodecContext *s, float **samples, s 781 libavcodec/wmadec.c ff_tlog(s->avctx, "***decode_frame: %d size=%d\n", s 782 libavcodec/wmadec.c s->frame_count++, s->frame_len); s 786 libavcodec/wmadec.c s->block_num = 0; s 787 libavcodec/wmadec.c s->block_pos = 0; s 789 libavcodec/wmadec.c ret = wma_decode_block(s); s 796 libavcodec/wmadec.c for (ch = 0; ch < s->avctx->channels; ch++) { s 798 libavcodec/wmadec.c memcpy(samples[ch] + samples_offset, s->frame_out[ch], s 799 libavcodec/wmadec.c s->frame_len * sizeof(*s->frame_out[ch])); s 801 libavcodec/wmadec.c memmove(&s->frame_out[ch][0], &s->frame_out[ch][s->frame_len], s 802 libavcodec/wmadec.c s->frame_len * sizeof(*s->frame_out[ch])); s 805 libavcodec/wmadec.c dump_floats(s, "samples", 6, samples[ch] + samples_offset, s 806 libavcodec/wmadec.c s->frame_len); s 819 libavcodec/wmadec.c WMACodecContext *s = avctx->priv_data; s 828 libavcodec/wmadec.c s->last_superframe_len = 0; s 840 libavcodec/wmadec.c init_get_bits(&s->gb, buf, buf_size * 8); s 842 libavcodec/wmadec.c if (s->use_bit_reservoir) { s 844 libavcodec/wmadec.c skip_bits(&s->gb, 4); /* super frame index */ s 845 libavcodec/wmadec.c nb_frames = get_bits(&s->gb, 4) - (s->last_superframe_len <= 0); s 847 libavcodec/wmadec.c int is_error = nb_frames < 0 || get_bits_left(&s->gb) <= 8; s 850 libavcodec/wmadec.c nb_frames, get_bits_left(&s->gb)); s 854 libavcodec/wmadec.c if ((s->last_superframe_len + buf_size - 1) > s 858 libavcodec/wmadec.c q = s->last_superframe + s->last_superframe_len; s 861 libavcodec/wmadec.c *q++ = get_bits (&s->gb, 8); s 866 libavcodec/wmadec.c s->last_superframe_len += 8*buf_size - 8; s 875 libavcodec/wmadec.c frame->nb_samples = nb_frames * s->frame_len; s 881 libavcodec/wmadec.c if (s->use_bit_reservoir) { s 882 libavcodec/wmadec.c bit_offset = get_bits(&s->gb, s->byte_offset_bits + 3); s 883 libavcodec/wmadec.c if (bit_offset > get_bits_left(&s->gb)) { s 886 libavcodec/wmadec.c bit_offset, get_bits_left(&s->gb), buf_size); s 890 libavcodec/wmadec.c if (s->last_superframe_len > 0) { s 892 libavcodec/wmadec.c if ((s->last_superframe_len + ((bit_offset + 7) >> 3)) > s 895 libavcodec/wmadec.c q = s->last_superframe + s->last_superframe_len; s 898 libavcodec/wmadec.c *q++ = get_bits(&s->gb, 8); s 902 libavcodec/wmadec.c *q++ = get_bits(&s->gb, len) << (8 - len); s 906 libavcodec/wmadec.c init_get_bits(&s->gb, s->last_superframe, s 907 libavcodec/wmadec.c s->last_superframe_len * 8 + bit_offset); s 909 libavcodec/wmadec.c if (s->last_bitoffset > 0) s 910 libavcodec/wmadec.c skip_bits(&s->gb, s->last_bitoffset); s 913 libavcodec/wmadec.c if (wma_decode_frame(s, samples, samples_offset) < 0) s 915 libavcodec/wmadec.c samples_offset += s->frame_len; s 920 libavcodec/wmadec.c pos = bit_offset + 4 + 4 + s->byte_offset_bits + 3; s 923 libavcodec/wmadec.c init_get_bits(&s->gb, buf + (pos >> 3), (buf_size - (pos >> 3)) * 8); s 926 libavcodec/wmadec.c skip_bits(&s->gb, len); s 928 libavcodec/wmadec.c s->reset_block_lengths = 1; s 930 libavcodec/wmadec.c if (wma_decode_frame(s, samples, samples_offset) < 0) s 932 libavcodec/wmadec.c samples_offset += s->frame_len; s 936 libavcodec/wmadec.c pos = get_bits_count(&s->gb) + s 937 libavcodec/wmadec.c ((bit_offset + 4 + 4 + s->byte_offset_bits + 3) & ~7); s 938 libavcodec/wmadec.c s->last_bitoffset = pos & 7; s 942 libavcodec/wmadec.c av_log(s->avctx, AV_LOG_ERROR, "len %d invalid\n", len); s 945 libavcodec/wmadec.c s->last_superframe_len = len; s 946 libavcodec/wmadec.c memcpy(s->last_superframe, buf + pos, len); s 949 libavcodec/wmadec.c if (wma_decode_frame(s, samples, samples_offset) < 0) s 951 libavcodec/wmadec.c samples_offset += s->frame_len; s 954 libavcodec/wmadec.c ff_dlog(s->avctx, "%d %d %d %d outbytes:%"PTRDIFF_SPECIFIER" eaten:%d\n", s 955 libavcodec/wmadec.c s->frame_len_bits, s->block_len_bits, s->frame_len, s->block_len, s 964 libavcodec/wmadec.c s->last_superframe_len = 0; s 970 libavcodec/wmadec.c WMACodecContext *s = avctx->priv_data; s 972 libavcodec/wmadec.c s->last_bitoffset = s 973 libavcodec/wmadec.c s->last_superframe_len = 0; s 33 libavcodec/wmaenc.c WMACodecContext *s = avctx->priv_data; s 38 libavcodec/wmaenc.c s->avctx = avctx; s 81 libavcodec/wmaenc.c s->use_exp_vlc = flags2 & 0x0001; s 82 libavcodec/wmaenc.c s->use_bit_reservoir = flags2 & 0x0002; s 83 libavcodec/wmaenc.c s->use_variable_block_len = flags2 & 0x0004; s 85 libavcodec/wmaenc.c s->ms_stereo = 1; s 91 libavcodec/wmaenc.c for (i = 0; i < s->nb_block_sizes; i++) s 92 libavcodec/wmaenc.c ff_mdct_init(&s->mdct_ctx[i], s->frame_len_bits - i + 1, 0, 1.0); s 94 libavcodec/wmaenc.c block_align = avctx->bit_rate * (int64_t) s->frame_len / s 98 libavcodec/wmaenc.c avctx->frame_size = avctx->initial_padding = s->frame_len; s 105 libavcodec/wmaenc.c WMACodecContext *s = avctx->priv_data; s 108 libavcodec/wmaenc.c int window_index = s->frame_len_bits - s->block_len_bits; s 109 libavcodec/wmaenc.c FFTContext *mdct = &s->mdct_ctx[window_index]; s 111 libavcodec/wmaenc.c const float *win = s->windows[window_index]; s 112 libavcodec/wmaenc.c int window_len = 1 << s->block_len_bits; s 116 libavcodec/wmaenc.c memcpy(s->output, s->frame_out[ch], window_len * sizeof(*s->output)); s 117 libavcodec/wmaenc.c s->fdsp->vector_fmul_scalar(s->frame_out[ch], audio[ch], n, len); s 118 libavcodec/wmaenc.c s->fdsp->vector_fmul_reverse(&s->output[window_len], s->frame_out[ch], s 120 libavcodec/wmaenc.c s->fdsp->vector_fmul(s->frame_out[ch], s->frame_out[ch], win, len); s 121 libavcodec/wmaenc.c mdct->mdct_calc(mdct, s->coefs[ch], s->output); s 122 libavcodec/wmaenc.c if (!isfinite(s->coefs[ch][0])) { s 132 libavcodec/wmaenc.c static void init_exp(WMACodecContext *s, int ch, const int *exp_param) s 138 libavcodec/wmaenc.c ptr = s->exponent_bands[s->frame_len_bits - s->block_len_bits]; s 139 libavcodec/wmaenc.c q = s->exponents[ch]; s 140 libavcodec/wmaenc.c q_end = q + s->block_len; s 151 libavcodec/wmaenc.c s->max_exponent[ch] = max_scale; s 154 libavcodec/wmaenc.c static void encode_exp_vlc(WMACodecContext *s, int ch, const int *exp_param) s 160 libavcodec/wmaenc.c ptr = s->exponent_bands[s->frame_len_bits - s->block_len_bits]; s 161 libavcodec/wmaenc.c q = s->exponents[ch]; s 162 libavcodec/wmaenc.c q_end = q + s->block_len; s 163 libavcodec/wmaenc.c if (s->version == 1) { s 166 libavcodec/wmaenc.c put_bits(&s->pb, 5, last_exp - 10); s 174 libavcodec/wmaenc.c put_bits(&s->pb, ff_aac_scalefactor_bits[code], s 182 libavcodec/wmaenc.c static int encode_block(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], s 197 libavcodec/wmaenc.c if (s->use_variable_block_len) { s 201 libavcodec/wmaenc.c s->next_block_len_bits = s->frame_len_bits; s 202 libavcodec/wmaenc.c s->prev_block_len_bits = s->frame_len_bits; s 203 libavcodec/wmaenc.c s->block_len_bits = s->frame_len_bits; s 206 libavcodec/wmaenc.c s->block_len = 1 << s->block_len_bits; s 208 libavcodec/wmaenc.c bsize = s->frame_len_bits - s->block_len_bits; s 211 libavcodec/wmaenc.c v = s->coefs_end[bsize] - s->coefs_start; s 212 libavcodec/wmaenc.c for (ch = 0; ch < s->avctx->channels; ch++) s 215 libavcodec/wmaenc.c int n4 = s->block_len / 2; s 217 libavcodec/wmaenc.c if (s->version == 1) s 221 libavcodec/wmaenc.c if (s->avctx->channels == 2) s 222 libavcodec/wmaenc.c put_bits(&s->pb, 1, !!s->ms_stereo); s 224 libavcodec/wmaenc.c for (ch = 0; ch < s->avctx->channels; ch++) { s 226 libavcodec/wmaenc.c s->channel_coded[ch] = 1; s 227 libavcodec/wmaenc.c if (s->channel_coded[ch]) s 228 libavcodec/wmaenc.c init_exp(s, ch, fixed_exp); s 231 libavcodec/wmaenc.c for (ch = 0; ch < s->avctx->channels; ch++) { s 232 libavcodec/wmaenc.c if (s->channel_coded[ch]) { s 237 libavcodec/wmaenc.c coefs1 = s->coefs1[ch]; s 238 libavcodec/wmaenc.c exponents = s->exponents[ch]; s 239 libavcodec/wmaenc.c mult = ff_exp10(total_gain * 0.05) / s->max_exponent[ch]; s 242 libavcodec/wmaenc.c if (s->use_noise_coding && 0) { s 245 libavcodec/wmaenc.c coefs += s->coefs_start; s 259 libavcodec/wmaenc.c for (ch = 0; ch < s->avctx->channels; ch++) { s 260 libavcodec/wmaenc.c int a = s->channel_coded[ch]; s 261 libavcodec/wmaenc.c put_bits(&s->pb, 1, a); s 269 libavcodec/wmaenc.c put_bits(&s->pb, 7, 127); s 270 libavcodec/wmaenc.c put_bits(&s->pb, 7, v); s 274 libavcodec/wmaenc.c if (s->use_noise_coding) { s 275 libavcodec/wmaenc.c for (ch = 0; ch < s->avctx->channels; ch++) { s 276 libavcodec/wmaenc.c if (s->channel_coded[ch]) { s 278 libavcodec/wmaenc.c n = s->exponent_high_sizes[bsize]; s 280 libavcodec/wmaenc.c put_bits(&s->pb, 1, s->high_band_coded[ch][i] = 0); s 282 libavcodec/wmaenc.c nb_coefs[ch] -= s->exponent_high_bands[bsize][i]; s 289 libavcodec/wmaenc.c if (s->block_len_bits != s->frame_len_bits) s 290 libavcodec/wmaenc.c put_bits(&s->pb, 1, parse_exponents); s 293 libavcodec/wmaenc.c for (ch = 0; ch < s->avctx->channels; ch++) { s 294 libavcodec/wmaenc.c if (s->channel_coded[ch]) { s 295 libavcodec/wmaenc.c if (s->use_exp_vlc) { s 296 libavcodec/wmaenc.c encode_exp_vlc(s, ch, fixed_exp); s 306 libavcodec/wmaenc.c for (ch = 0; ch < s->avctx->channels; ch++) { s 307 libavcodec/wmaenc.c if (s->channel_coded[ch]) { s 310 libavcodec/wmaenc.c tindex = (ch == 1 && s->ms_stereo); s 311 libavcodec/wmaenc.c ptr = &s->coefs1[ch][0]; s 320 libavcodec/wmaenc.c if (abs_level <= s->coef_vlcs[tindex]->max_level) s 321 libavcodec/wmaenc.c if (run < s->coef_vlcs[tindex]->levels[abs_level - 1]) s 322 libavcodec/wmaenc.c code = run + s->int_table[tindex][abs_level - 1]; s 324 libavcodec/wmaenc.c av_assert2(code < s->coef_vlcs[tindex]->n); s 325 libavcodec/wmaenc.c put_bits(&s->pb, s->coef_vlcs[tindex]->huffbits[code], s 326 libavcodec/wmaenc.c s->coef_vlcs[tindex]->huffcodes[code]); s 332 libavcodec/wmaenc.c put_bits(&s->pb, coef_nb_bits, abs_level); s 333 libavcodec/wmaenc.c put_bits(&s->pb, s->frame_len_bits, run); s 336 libavcodec/wmaenc.c put_bits(&s->pb, 1, level < 0); s 342 libavcodec/wmaenc.c put_bits(&s->pb, s->coef_vlcs[tindex]->huffbits[1], s 343 libavcodec/wmaenc.c s->coef_vlcs[tindex]->huffcodes[1]); s 345 libavcodec/wmaenc.c if (s->version == 1 && s->avctx->channels >= 2) s 346 libavcodec/wmaenc.c avpriv_align_put_bits(&s->pb); s 351 libavcodec/wmaenc.c static int encode_frame(WMACodecContext *s, float (*src_coefs)[BLOCK_MAX_SIZE], s 354 libavcodec/wmaenc.c init_put_bits(&s->pb, buf, buf_size); s 356 libavcodec/wmaenc.c if (s->use_bit_reservoir) s 358 libavcodec/wmaenc.c else if (encode_block(s, src_coefs, total_gain) < 0) s 361 libavcodec/wmaenc.c avpriv_align_put_bits(&s->pb); s 363 libavcodec/wmaenc.c return put_bits_count(&s->pb) / 8 - s->avctx->block_align; s 369 libavcodec/wmaenc.c WMACodecContext *s = avctx->priv_data; s 372 libavcodec/wmaenc.c s->block_len_bits = s->frame_len_bits; // required by non variable block len s 373 libavcodec/wmaenc.c s->block_len = 1 << s->block_len_bits; s 380 libavcodec/wmaenc.c if (s->ms_stereo) { s 384 libavcodec/wmaenc.c for (i = 0; i < s->block_len; i++) { s 385 libavcodec/wmaenc.c a = s->coefs[0][i] * 0.5; s 386 libavcodec/wmaenc.c b = s->coefs[1][i] * 0.5; s 387 libavcodec/wmaenc.c s->coefs[0][i] = a + b; s 388 libavcodec/wmaenc.c s->coefs[1][i] = a - b; s 397 libavcodec/wmaenc.c error = encode_frame(s, s->coefs, avpkt->data, avpkt->size, s 404 libavcodec/wmaenc.c error = encode_frame(s, s->coefs, avpkt->data, avpkt->size, total_gain++); s 410 libavcodec/wmaenc.c av_assert0((put_bits_count(&s->pb) & 7) == 0); s 411 libavcodec/wmaenc.c i= avctx->block_align - (put_bits_count(&s->pb)+7)/8; s 414 libavcodec/wmaenc.c put_bits(&s->pb, 8, 'N'); s 416 libavcodec/wmaenc.c flush_put_bits(&s->pb); s 417 libavcodec/wmaenc.c av_assert0(put_bits_ptr(&s->pb) - s->pb.buf == avctx->block_align); s 182 libavcodec/wmalosslessdec.c WmallDecodeCtx *s = avctx->priv_data; s 199 libavcodec/wmalosslessdec.c s->max_frame_size = MAX_FRAMESIZE * avctx->channels; s 200 libavcodec/wmalosslessdec.c s->frame_data = av_mallocz(s->max_frame_size + AV_INPUT_BUFFER_PADDING_SIZE); s 201 libavcodec/wmalosslessdec.c if (!s->frame_data) s 204 libavcodec/wmalosslessdec.c s->avctx = avctx; s 205 libavcodec/wmalosslessdec.c ff_llauddsp_init(&s->dsp); s 206 libavcodec/wmalosslessdec.c init_put_bits(&s->pb, s->frame_data, s->max_frame_size); s 209 libavcodec/wmalosslessdec.c s->decode_flags = AV_RL16(edata_ptr + 14); s 211 libavcodec/wmalosslessdec.c s->bits_per_sample = AV_RL16(edata_ptr); s 212 libavcodec/wmalosslessdec.c if (s->bits_per_sample == 16) s 214 libavcodec/wmalosslessdec.c else if (s->bits_per_sample == 24) { s 219 libavcodec/wmalosslessdec.c s->bits_per_sample); s 233 libavcodec/wmalosslessdec.c s->log2_frame_size = av_log2(avctx->block_align) + 4; s 236 libavcodec/wmalosslessdec.c s->skip_frame = 1; /* skip first frame */ s 237 libavcodec/wmalosslessdec.c s->packet_loss = 1; s 238 libavcodec/wmalosslessdec.c s->len_prefix = s->decode_flags & 0x40; s 241 libavcodec/wmalosslessdec.c s->samples_per_frame = 1 << ff_wma_get_frame_len_bits(avctx->sample_rate, s 242 libavcodec/wmalosslessdec.c 3, s->decode_flags); s 243 libavcodec/wmalosslessdec.c av_assert0(s->samples_per_frame <= WMALL_BLOCK_MAX_SIZE); s 247 libavcodec/wmalosslessdec.c s->channel[i].prev_block_len = s->samples_per_frame; s 250 libavcodec/wmalosslessdec.c log2_max_num_subframes = (s->decode_flags & 0x38) >> 3; s 251 libavcodec/wmalosslessdec.c s->max_num_subframes = 1 << log2_max_num_subframes; s 252 libavcodec/wmalosslessdec.c s->max_subframe_len_bit = 0; s 253 libavcodec/wmalosslessdec.c s->subframe_len_bits = av_log2(log2_max_num_subframes) + 1; s 255 libavcodec/wmalosslessdec.c s->min_samples_per_subframe = s->samples_per_frame / s->max_num_subframes; s 256 libavcodec/wmalosslessdec.c s->dynamic_range_compression = s->decode_flags & 0x80; s 257 libavcodec/wmalosslessdec.c s->bV3RTM = s->decode_flags & 0x100; s 259 libavcodec/wmalosslessdec.c if (s->max_num_subframes > MAX_SUBFRAMES) { s 261 libavcodec/wmalosslessdec.c s->max_num_subframes); s 265 libavcodec/wmalosslessdec.c s->num_channels = avctx->channels; s 268 libavcodec/wmalosslessdec.c s->lfe_channel = -1; s 274 libavcodec/wmalosslessdec.c ++s->lfe_channel; s 277 libavcodec/wmalosslessdec.c s->frame = av_frame_alloc(); s 278 libavcodec/wmalosslessdec.c if (!s->frame) s 291 libavcodec/wmalosslessdec.c static int decode_subframe_length(WmallDecodeCtx *s, int offset) s 296 libavcodec/wmalosslessdec.c if (offset == s->samples_per_frame - s->min_samples_per_subframe) s 297 libavcodec/wmalosslessdec.c return s->min_samples_per_subframe; s 299 libavcodec/wmalosslessdec.c len = av_log2(s->max_num_subframes - 1) + 1; s 300 libavcodec/wmalosslessdec.c frame_len_ratio = get_bits(&s->gb, len); s 301 libavcodec/wmalosslessdec.c subframe_len = s->min_samples_per_subframe * (frame_len_ratio + 1); s 304 libavcodec/wmalosslessdec.c if (subframe_len < s->min_samples_per_subframe || s 305 libavcodec/wmalosslessdec.c subframe_len > s->samples_per_frame) { s 306 libavcodec/wmalosslessdec.c av_log(s->avctx, AV_LOG_ERROR, "broken frame: subframe_len %i\n", s 333 libavcodec/wmalosslessdec.c static int decode_tilehdr(WmallDecodeCtx *s) s 337 libavcodec/wmalosslessdec.c int channels_for_cur_subframe = s->num_channels; /* number of channels that contain the current subframe */ s 343 libavcodec/wmalosslessdec.c for (c = 0; c < s->num_channels; c++) s 344 libavcodec/wmalosslessdec.c s->channel[c].num_subframes = 0; s 346 libavcodec/wmalosslessdec.c tile_aligned = get_bits1(&s->gb); s 347 libavcodec/wmalosslessdec.c if (s->max_num_subframes == 1 || tile_aligned) s 355 libavcodec/wmalosslessdec.c for (c = 0; c < s->num_channels; c++) { s 358 libavcodec/wmalosslessdec.c (min_channel_len == s->samples_per_frame - s->min_samples_per_subframe)) { s 361 libavcodec/wmalosslessdec.c contains_subframe[c] = get_bits1(&s->gb); s 369 libavcodec/wmalosslessdec.c av_log(s->avctx, AV_LOG_ERROR, s 375 libavcodec/wmalosslessdec.c if ((subframe_len = decode_subframe_length(s, min_channel_len)) <= 0) s 379 libavcodec/wmalosslessdec.c for (c = 0; c < s->num_channels; c++) { s 380 libavcodec/wmalosslessdec.c WmallChannelCtx *chan = &s->channel[c]; s 384 libavcodec/wmalosslessdec.c av_log(s->avctx, AV_LOG_ERROR, s 391 libavcodec/wmalosslessdec.c if (num_samples[c] > s->samples_per_frame) { s 392 libavcodec/wmalosslessdec.c av_log(s->avctx, AV_LOG_ERROR, "broken frame: " s 394 libavcodec/wmalosslessdec.c num_samples[c], s->samples_per_frame); s 405 libavcodec/wmalosslessdec.c } while (min_channel_len < s->samples_per_frame); s 407 libavcodec/wmalosslessdec.c for (c = 0; c < s->num_channels; c++) { s 409 libavcodec/wmalosslessdec.c for (i = 0; i < s->channel[c].num_subframes; i++) { s 410 libavcodec/wmalosslessdec.c s->channel[c].subframe_offsets[i] = offset; s 411 libavcodec/wmalosslessdec.c offset += s->channel[c].subframe_len[i]; s 418 libavcodec/wmalosslessdec.c static void decode_ac_filter(WmallDecodeCtx *s) s 421 libavcodec/wmalosslessdec.c s->acfilter_order = get_bits(&s->gb, 4) + 1; s 422 libavcodec/wmalosslessdec.c s->acfilter_scaling = get_bits(&s->gb, 4); s 424 libavcodec/wmalosslessdec.c for (i = 0; i < s->acfilter_order; i++) s 425 libavcodec/wmalosslessdec.c s->acfilter_coeffs[i] = get_bitsz(&s->gb, s->acfilter_scaling) + 1; s 428 libavcodec/wmalosslessdec.c static void decode_mclms(WmallDecodeCtx *s) s 430 libavcodec/wmalosslessdec.c s->mclms_order = (get_bits(&s->gb, 4) + 1) * 2; s 431 libavcodec/wmalosslessdec.c s->mclms_scaling = get_bits(&s->gb, 4); s 432 libavcodec/wmalosslessdec.c if (get_bits1(&s->gb)) { s 434 libavcodec/wmalosslessdec.c int cbits = av_log2(s->mclms_scaling + 1); s 435 libavcodec/wmalosslessdec.c if (1 << cbits < s->mclms_scaling + 1) s 438 libavcodec/wmalosslessdec.c send_coef_bits = get_bitsz(&s->gb, cbits) + 2; s 440 libavcodec/wmalosslessdec.c for (i = 0; i < s->mclms_order * s->num_channels * s->num_channels; i++) s 441 libavcodec/wmalosslessdec.c s->mclms_coeffs[i] = get_bits(&s->gb, send_coef_bits); s 443 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) { s 446 libavcodec/wmalosslessdec.c s->mclms_coeffs_cur[i * s->num_channels + c] = get_bits(&s->gb, send_coef_bits); s 451 libavcodec/wmalosslessdec.c static int decode_cdlms(WmallDecodeCtx *s) s 454 libavcodec/wmalosslessdec.c int cdlms_send_coef = get_bits1(&s->gb); s 456 libavcodec/wmalosslessdec.c for (c = 0; c < s->num_channels; c++) { s 457 libavcodec/wmalosslessdec.c s->cdlms_ttl[c] = get_bits(&s->gb, 3) + 1; s 458 libavcodec/wmalosslessdec.c for (i = 0; i < s->cdlms_ttl[c]; i++) { s 459 libavcodec/wmalosslessdec.c s->cdlms[c][i].order = (get_bits(&s->gb, 7) + 1) * 8; s 460 libavcodec/wmalosslessdec.c if (s->cdlms[c][i].order > MAX_ORDER) { s 461 libavcodec/wmalosslessdec.c av_log(s->avctx, AV_LOG_ERROR, s 463 libavcodec/wmalosslessdec.c c, i, s->cdlms[c][i].order, MAX_ORDER); s 464 libavcodec/wmalosslessdec.c s->cdlms[0][0].order = 0; s 467 libavcodec/wmalosslessdec.c if(s->cdlms[c][i].order & 8 && s->bits_per_sample == 16) { s 470 libavcodec/wmalosslessdec.c avpriv_request_sample(s->avctx, "CDLMS of order %d", s 471 libavcodec/wmalosslessdec.c s->cdlms[c][i].order); s 476 libavcodec/wmalosslessdec.c for (i = 0; i < s->cdlms_ttl[c]; i++) s 477 libavcodec/wmalosslessdec.c s->cdlms[c][i].scaling = get_bits(&s->gb, 4); s 480 libavcodec/wmalosslessdec.c for (i = 0; i < s->cdlms_ttl[c]; i++) { s 482 libavcodec/wmalosslessdec.c cbits = av_log2(s->cdlms[c][i].order); s 483 libavcodec/wmalosslessdec.c if ((1 << cbits) < s->cdlms[c][i].order) s 485 libavcodec/wmalosslessdec.c s->cdlms[c][i].coefsend = get_bits(&s->gb, cbits) + 1; s 487 libavcodec/wmalosslessdec.c cbits = av_log2(s->cdlms[c][i].scaling + 1); s 488 libavcodec/wmalosslessdec.c if ((1 << cbits) < s->cdlms[c][i].scaling + 1) s 491 libavcodec/wmalosslessdec.c s->cdlms[c][i].bitsend = get_bitsz(&s->gb, cbits) + 2; s 492 libavcodec/wmalosslessdec.c shift_l = 32 - s->cdlms[c][i].bitsend; s 493 libavcodec/wmalosslessdec.c shift_r = 32 - s->cdlms[c][i].scaling - 2; s 494 libavcodec/wmalosslessdec.c for (j = 0; j < s->cdlms[c][i].coefsend; j++) s 495 libavcodec/wmalosslessdec.c s->cdlms[c][i].coefs[j] = s 496 libavcodec/wmalosslessdec.c (get_bits(&s->gb, s->cdlms[c][i].bitsend) << shift_l) >> shift_r; s 500 libavcodec/wmalosslessdec.c for (i = 0; i < s->cdlms_ttl[c]; i++) s 501 libavcodec/wmalosslessdec.c memset(s->cdlms[c][i].coefs + s->cdlms[c][i].order, s 508 libavcodec/wmalosslessdec.c static int decode_channel_residues(WmallDecodeCtx *s, int ch, int tile_size) s 512 libavcodec/wmalosslessdec.c s->transient[ch] = get_bits1(&s->gb); s 513 libavcodec/wmalosslessdec.c if (s->transient[ch]) { s 514 libavcodec/wmalosslessdec.c s->transient_pos[ch] = get_bits(&s->gb, av_log2(tile_size)); s 515 libavcodec/wmalosslessdec.c if (s->transient_pos[ch]) s 516 libavcodec/wmalosslessdec.c s->transient[ch] = 0; s 517 libavcodec/wmalosslessdec.c s->channel[ch].transient_counter = s 518 libavcodec/wmalosslessdec.c FFMAX(s->channel[ch].transient_counter, s->samples_per_frame / 2); s 519 libavcodec/wmalosslessdec.c } else if (s->channel[ch].transient_counter) s 520 libavcodec/wmalosslessdec.c s->transient[ch] = 1; s 522 libavcodec/wmalosslessdec.c if (s->seekable_tile) { s 523 libavcodec/wmalosslessdec.c ave_mean = get_bits(&s->gb, s->bits_per_sample); s 524 libavcodec/wmalosslessdec.c s->ave_sum[ch] = ave_mean << (s->movave_scaling + 1); s 527 libavcodec/wmalosslessdec.c if (s->seekable_tile) { s 528 libavcodec/wmalosslessdec.c if (s->do_inter_ch_decorr) s 529 libavcodec/wmalosslessdec.c s->channel_residues[ch][0] = get_sbits_long(&s->gb, s->bits_per_sample + 1); s 531 libavcodec/wmalosslessdec.c s->channel_residues[ch][0] = get_sbits_long(&s->gb, s->bits_per_sample); s 537 libavcodec/wmalosslessdec.c while(get_bits1(&s->gb)) { s 539 libavcodec/wmalosslessdec.c if (get_bits_left(&s->gb) <= 0) s 543 libavcodec/wmalosslessdec.c quo += get_bits_long(&s->gb, get_bits(&s->gb, 5) + 1); s 545 libavcodec/wmalosslessdec.c ave_mean = (s->ave_sum[ch] + (1 << s->movave_scaling)) >> (s->movave_scaling + 1); s 550 libavcodec/wmalosslessdec.c rem = get_bits_long(&s->gb, rem_bits); s 554 libavcodec/wmalosslessdec.c s->ave_sum[ch] = residue + s->ave_sum[ch] - s 555 libavcodec/wmalosslessdec.c (s->ave_sum[ch] >> s->movave_scaling); s 558 libavcodec/wmalosslessdec.c s->channel_residues[ch][i] = residue; s 565 libavcodec/wmalosslessdec.c static void decode_lpc(WmallDecodeCtx *s) s 568 libavcodec/wmalosslessdec.c s->lpc_order = get_bits(&s->gb, 5) + 1; s 569 libavcodec/wmalosslessdec.c s->lpc_scaling = get_bits(&s->gb, 4); s 570 libavcodec/wmalosslessdec.c s->lpc_intbits = get_bits(&s->gb, 3) + 1; s 571 libavcodec/wmalosslessdec.c cbits = s->lpc_scaling + s->lpc_intbits; s 572 libavcodec/wmalosslessdec.c for (ch = 0; ch < s->num_channels; ch++) s 573 libavcodec/wmalosslessdec.c for (i = 0; i < s->lpc_order; i++) s 574 libavcodec/wmalosslessdec.c s->lpc_coefs[ch][i] = get_sbits(&s->gb, cbits); s 577 libavcodec/wmalosslessdec.c static void clear_codec_buffers(WmallDecodeCtx *s) s 581 libavcodec/wmalosslessdec.c memset(s->acfilter_coeffs, 0, sizeof(s->acfilter_coeffs)); s 582 libavcodec/wmalosslessdec.c memset(s->acfilter_prevvalues, 0, sizeof(s->acfilter_prevvalues)); s 583 libavcodec/wmalosslessdec.c memset(s->lpc_coefs, 0, sizeof(s->lpc_coefs)); s 585 libavcodec/wmalosslessdec.c memset(s->mclms_coeffs, 0, sizeof(s->mclms_coeffs)); s 586 libavcodec/wmalosslessdec.c memset(s->mclms_coeffs_cur, 0, sizeof(s->mclms_coeffs_cur)); s 587 libavcodec/wmalosslessdec.c memset(s->mclms_prevvalues, 0, sizeof(s->mclms_prevvalues)); s 588 libavcodec/wmalosslessdec.c memset(s->mclms_updates, 0, sizeof(s->mclms_updates)); s 590 libavcodec/wmalosslessdec.c for (ich = 0; ich < s->num_channels; ich++) { s 591 libavcodec/wmalosslessdec.c for (ilms = 0; ilms < s->cdlms_ttl[ich]; ilms++) { s 592 libavcodec/wmalosslessdec.c memset(s->cdlms[ich][ilms].coefs, 0, s 593 libavcodec/wmalosslessdec.c sizeof(s->cdlms[ich][ilms].coefs)); s 594 libavcodec/wmalosslessdec.c memset(s->cdlms[ich][ilms].lms_prevvalues, 0, s 595 libavcodec/wmalosslessdec.c sizeof(s->cdlms[ich][ilms].lms_prevvalues)); s 596 libavcodec/wmalosslessdec.c memset(s->cdlms[ich][ilms].lms_updates, 0, s 597 libavcodec/wmalosslessdec.c sizeof(s->cdlms[ich][ilms].lms_updates)); s 599 libavcodec/wmalosslessdec.c s->ave_sum[ich] = 0; s 606 libavcodec/wmalosslessdec.c static void reset_codec(WmallDecodeCtx *s) s 609 libavcodec/wmalosslessdec.c s->mclms_recent = s->mclms_order * s->num_channels; s 610 libavcodec/wmalosslessdec.c for (ich = 0; ich < s->num_channels; ich++) { s 611 libavcodec/wmalosslessdec.c for (ilms = 0; ilms < s->cdlms_ttl[ich]; ilms++) s 612 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].recent = s->cdlms[ich][ilms].order; s 615 libavcodec/wmalosslessdec.c s->channel[ich].transient_counter = s->samples_per_frame; s 616 libavcodec/wmalosslessdec.c s->transient[ich] = 1; s 617 libavcodec/wmalosslessdec.c s->transient_pos[ich] = 0; s 621 libavcodec/wmalosslessdec.c static void mclms_update(WmallDecodeCtx *s, int icoef, int *pred) s 624 libavcodec/wmalosslessdec.c int order = s->mclms_order; s 625 libavcodec/wmalosslessdec.c int num_channels = s->num_channels; s 626 libavcodec/wmalosslessdec.c int range = 1 << (s->bits_per_sample - 1); s 629 libavcodec/wmalosslessdec.c pred_error = s->channel_residues[ich][icoef] - (unsigned)pred[ich]; s 632 libavcodec/wmalosslessdec.c s->mclms_coeffs[i + ich * order * num_channels] += s 633 libavcodec/wmalosslessdec.c s->mclms_updates[s->mclms_recent + i]; s 635 libavcodec/wmalosslessdec.c s->mclms_coeffs_cur[ich * num_channels + j] += WMASIGN(s->channel_residues[j][icoef]); s 638 libavcodec/wmalosslessdec.c s->mclms_coeffs[i + ich * order * num_channels] -= s 639 libavcodec/wmalosslessdec.c s->mclms_updates[s->mclms_recent + i]; s 641 libavcodec/wmalosslessdec.c s->mclms_coeffs_cur[ich * num_channels + j] -= WMASIGN(s->channel_residues[j][icoef]); s 646 libavcodec/wmalosslessdec.c s->mclms_recent--; s 647 libavcodec/wmalosslessdec.c s->mclms_prevvalues[s->mclms_recent] = av_clip(s->channel_residues[ich][icoef], s 649 libavcodec/wmalosslessdec.c s->mclms_updates[s->mclms_recent] = WMASIGN(s->channel_residues[ich][icoef]); s 652 libavcodec/wmalosslessdec.c if (s->mclms_recent == 0) { s 653 libavcodec/wmalosslessdec.c memcpy(&s->mclms_prevvalues[order * num_channels], s 654 libavcodec/wmalosslessdec.c s->mclms_prevvalues, s 656 libavcodec/wmalosslessdec.c memcpy(&s->mclms_updates[order * num_channels], s 657 libavcodec/wmalosslessdec.c s->mclms_updates, s 659 libavcodec/wmalosslessdec.c s->mclms_recent = num_channels * order; s 663 libavcodec/wmalosslessdec.c static void mclms_predict(WmallDecodeCtx *s, int icoef, int *pred) s 666 libavcodec/wmalosslessdec.c int order = s->mclms_order; s 667 libavcodec/wmalosslessdec.c int num_channels = s->num_channels; s 671 libavcodec/wmalosslessdec.c if (!s->is_channel_coded[ich]) s 674 libavcodec/wmalosslessdec.c pred[ich] += (uint32_t)s->mclms_prevvalues[i + s->mclms_recent] * s 675 libavcodec/wmalosslessdec.c s->mclms_coeffs[i + order * num_channels * ich]; s 677 libavcodec/wmalosslessdec.c pred[ich] += (uint32_t)s->channel_residues[i][icoef] * s 678 libavcodec/wmalosslessdec.c s->mclms_coeffs_cur[i + num_channels * ich]; s 679 libavcodec/wmalosslessdec.c pred[ich] += (1U << s->mclms_scaling) >> 1; s 680 libavcodec/wmalosslessdec.c pred[ich] >>= s->mclms_scaling; s 681 libavcodec/wmalosslessdec.c s->channel_residues[ich][icoef] += (unsigned)pred[ich]; s 685 libavcodec/wmalosslessdec.c static void revert_mclms(WmallDecodeCtx *s, int tile_size) s 689 libavcodec/wmalosslessdec.c mclms_predict(s, icoef, pred); s 690 libavcodec/wmalosslessdec.c mclms_update(s, icoef, pred); s 694 libavcodec/wmalosslessdec.c static void use_high_update_speed(WmallDecodeCtx *s, int ich) s 697 libavcodec/wmalosslessdec.c for (ilms = s->cdlms_ttl[ich] - 1; ilms >= 0; ilms--) { s 698 libavcodec/wmalosslessdec.c recent = s->cdlms[ich][ilms].recent; s 699 libavcodec/wmalosslessdec.c if (s->update_speed[ich] == 16) s 701 libavcodec/wmalosslessdec.c if (s->bV3RTM) { s 702 libavcodec/wmalosslessdec.c for (icoef = 0; icoef < s->cdlms[ich][ilms].order; icoef++) s 703 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].lms_updates[icoef + recent] *= 2; s 705 libavcodec/wmalosslessdec.c for (icoef = 0; icoef < s->cdlms[ich][ilms].order; icoef++) s 706 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].lms_updates[icoef] *= 2; s 709 libavcodec/wmalosslessdec.c s->update_speed[ich] = 16; s 712 libavcodec/wmalosslessdec.c static void use_normal_update_speed(WmallDecodeCtx *s, int ich) s 715 libavcodec/wmalosslessdec.c for (ilms = s->cdlms_ttl[ich] - 1; ilms >= 0; ilms--) { s 716 libavcodec/wmalosslessdec.c recent = s->cdlms[ich][ilms].recent; s 717 libavcodec/wmalosslessdec.c if (s->update_speed[ich] == 8) s 719 libavcodec/wmalosslessdec.c if (s->bV3RTM) s 720 libavcodec/wmalosslessdec.c for (icoef = 0; icoef < s->cdlms[ich][ilms].order; icoef++) s 721 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].lms_updates[icoef + recent] /= 2; s 723 libavcodec/wmalosslessdec.c for (icoef = 0; icoef < s->cdlms[ich][ilms].order; icoef++) s 724 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].lms_updates[icoef] /= 2; s 726 libavcodec/wmalosslessdec.c s->update_speed[ich] = 8; s 730 libavcodec/wmalosslessdec.c static void lms_update ## bits (WmallDecodeCtx *s, int ich, int ilms, int input) \ s 732 libavcodec/wmalosslessdec.c int recent = s->cdlms[ich][ilms].recent; \ s 733 libavcodec/wmalosslessdec.c int range = 1 << s->bits_per_sample - 1; \ s 734 libavcodec/wmalosslessdec.c int order = s->cdlms[ich][ilms].order; \ s 735 libavcodec/wmalosslessdec.c int ##bits##_t *prev = (int##bits##_t *)s->cdlms[ich][ilms].lms_prevvalues; \ s 741 libavcodec/wmalosslessdec.c memcpy(s->cdlms[ich][ilms].lms_updates + order, \ s 742 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].lms_updates, \ s 743 libavcodec/wmalosslessdec.c sizeof(*s->cdlms[ich][ilms].lms_updates) * order); \ s 748 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].lms_updates[recent] = WMASIGN(input) * s->update_speed[ich]; \ s 750 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].lms_updates[recent + (order >> 4)] >>= 2; \ s 751 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].lms_updates[recent + (order >> 3)] >>= 1; \ s 752 libavcodec/wmalosslessdec.c s->cdlms[ich][ilms].recent = recent; \ s 753 libavcodec/wmalosslessdec.c memset(s->cdlms[ich][ilms].lms_updates + recent + order, 0, \ s 754 libavcodec/wmalosslessdec.c sizeof(s->cdlms[ich][ilms].lms_updates) - \ s 755 libavcodec/wmalosslessdec.c sizeof(*s->cdlms[ich][ilms].lms_updates)*(recent+order)); \ s 758 libavcodec/wmalosslessdec.c static void revert_cdlms ## bits (WmallDecodeCtx *s, int ch, \ s 764 libavcodec/wmalosslessdec.c num_lms = s->cdlms_ttl[ch]; \ s 767 libavcodec/wmalosslessdec.c int##bits##_t *prevvalues = (int##bits##_t *)s->cdlms[ch][ilms].lms_prevvalues; \ s 768 libavcodec/wmalosslessdec.c pred = (1 << s->cdlms[ch][ilms].scaling) >> 1; \ s 769 libavcodec/wmalosslessdec.c residue = s->channel_residues[ch][icoef]; \ s 770 libavcodec/wmalosslessdec.c pred += s->dsp.scalarproduct_and_madd_int## bits (s->cdlms[ch][ilms].coefs, \ s 771 libavcodec/wmalosslessdec.c prevvalues + s->cdlms[ch][ilms].recent, \ s 772 libavcodec/wmalosslessdec.c s->cdlms[ch][ilms].lms_updates + \ s 773 libavcodec/wmalosslessdec.c s->cdlms[ch][ilms].recent, \ s 774 libavcodec/wmalosslessdec.c FFALIGN(s->cdlms[ch][ilms].order, ROUND), \ s 776 libavcodec/wmalosslessdec.c input = residue + (unsigned)((int)pred >> s->cdlms[ch][ilms].scaling); \ s 777 libavcodec/wmalosslessdec.c lms_update ## bits(s, ch, ilms, input); \ s 778 libavcodec/wmalosslessdec.c s->channel_residues[ch][icoef] = input; \ s 787 libavcodec/wmalosslessdec.c static void revert_inter_ch_decorr(WmallDecodeCtx *s, int tile_size) s 789 libavcodec/wmalosslessdec.c if (s->num_channels != 2) s 791 libavcodec/wmalosslessdec.c else if (s->is_channel_coded[0] || s->is_channel_coded[1]) { s 794 libavcodec/wmalosslessdec.c s->channel_residues[0][icoef] -= (unsigned)(s->channel_residues[1][icoef] >> 1); s 795 libavcodec/wmalosslessdec.c s->channel_residues[1][icoef] += (unsigned) s->channel_residues[0][icoef]; s 800 libavcodec/wmalosslessdec.c static void revert_acfilter(WmallDecodeCtx *s, int tile_size) s 803 libavcodec/wmalosslessdec.c int16_t *filter_coeffs = s->acfilter_coeffs; s 804 libavcodec/wmalosslessdec.c int scaling = s->acfilter_scaling; s 805 libavcodec/wmalosslessdec.c int order = s->acfilter_order; s 807 libavcodec/wmalosslessdec.c for (ich = 0; ich < s->num_channels; ich++) { s 808 libavcodec/wmalosslessdec.c int *prevvalues = s->acfilter_prevvalues[ich]; s 815 libavcodec/wmalosslessdec.c pred += (uint32_t)s->channel_residues[ich][i - j - 1] * filter_coeffs[j]; s 818 libavcodec/wmalosslessdec.c s->channel_residues[ich][i] += (unsigned)pred; s 823 libavcodec/wmalosslessdec.c pred += (uint32_t)s->channel_residues[ich][i - j - 1] * filter_coeffs[j]; s 825 libavcodec/wmalosslessdec.c s->channel_residues[ich][i] += (unsigned)pred; s 831 libavcodec/wmalosslessdec.c prevvalues[j] = s->channel_residues[ich][tile_size - j - 1]; s 835 libavcodec/wmalosslessdec.c static int decode_subframe(WmallDecodeCtx *s) s 837 libavcodec/wmalosslessdec.c int offset = s->samples_per_frame; s 838 libavcodec/wmalosslessdec.c int subframe_len = s->samples_per_frame; s 839 libavcodec/wmalosslessdec.c int total_samples = s->samples_per_frame * s->num_channels; s 842 libavcodec/wmalosslessdec.c s->subframe_offset = get_bits_count(&s->gb); s 847 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) { s 848 libavcodec/wmalosslessdec.c if (offset > s->channel[i].decoded_samples) { s 849 libavcodec/wmalosslessdec.c offset = s->channel[i].decoded_samples; s 851 libavcodec/wmalosslessdec.c s->channel[i].subframe_len[s->channel[i].cur_subframe]; s 856 libavcodec/wmalosslessdec.c s->channels_for_cur_subframe = 0; s 857 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) { s 858 libavcodec/wmalosslessdec.c const int cur_subframe = s->channel[i].cur_subframe; s 860 libavcodec/wmalosslessdec.c total_samples -= s->channel[i].decoded_samples; s 863 libavcodec/wmalosslessdec.c if (offset == s->channel[i].decoded_samples && s 864 libavcodec/wmalosslessdec.c subframe_len == s->channel[i].subframe_len[cur_subframe]) { s 865 libavcodec/wmalosslessdec.c total_samples -= s->channel[i].subframe_len[cur_subframe]; s 866 libavcodec/wmalosslessdec.c s->channel[i].decoded_samples += s 867 libavcodec/wmalosslessdec.c s->channel[i].subframe_len[cur_subframe]; s 868 libavcodec/wmalosslessdec.c s->channel_indexes_for_cur_subframe[s->channels_for_cur_subframe] = i; s 869 libavcodec/wmalosslessdec.c ++s->channels_for_cur_subframe; s 876 libavcodec/wmalosslessdec.c s->parsed_all_subframes = 1; s 879 libavcodec/wmalosslessdec.c s->seekable_tile = get_bits1(&s->gb); s 880 libavcodec/wmalosslessdec.c if (s->seekable_tile) { s 881 libavcodec/wmalosslessdec.c clear_codec_buffers(s); s 883 libavcodec/wmalosslessdec.c s->do_arith_coding = get_bits1(&s->gb); s 884 libavcodec/wmalosslessdec.c if (s->do_arith_coding) { s 885 libavcodec/wmalosslessdec.c avpriv_request_sample(s->avctx, "Arithmetic coding"); s 888 libavcodec/wmalosslessdec.c s->do_ac_filter = get_bits1(&s->gb); s 889 libavcodec/wmalosslessdec.c s->do_inter_ch_decorr = get_bits1(&s->gb); s 890 libavcodec/wmalosslessdec.c s->do_mclms = get_bits1(&s->gb); s 892 libavcodec/wmalosslessdec.c if (s->do_ac_filter) s 893 libavcodec/wmalosslessdec.c decode_ac_filter(s); s 895 libavcodec/wmalosslessdec.c if (s->do_mclms) s 896 libavcodec/wmalosslessdec.c decode_mclms(s); s 898 libavcodec/wmalosslessdec.c if ((res = decode_cdlms(s)) < 0) s 900 libavcodec/wmalosslessdec.c s->movave_scaling = get_bits(&s->gb, 3); s 901 libavcodec/wmalosslessdec.c s->quant_stepsize = get_bits(&s->gb, 8) + 1; s 903 libavcodec/wmalosslessdec.c reset_codec(s); s 906 libavcodec/wmalosslessdec.c rawpcm_tile = get_bits1(&s->gb); s 908 libavcodec/wmalosslessdec.c if (!rawpcm_tile && !s->cdlms[0][0].order) { s 909 libavcodec/wmalosslessdec.c av_log(s->avctx, AV_LOG_DEBUG, s 911 libavcodec/wmalosslessdec.c av_frame_unref(s->frame); s 916 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) s 917 libavcodec/wmalosslessdec.c s->is_channel_coded[i] = 1; s 920 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) s 921 libavcodec/wmalosslessdec.c s->is_channel_coded[i] = get_bits1(&s->gb); s 923 libavcodec/wmalosslessdec.c if (s->bV3RTM) { s 925 libavcodec/wmalosslessdec.c s->do_lpc = get_bits1(&s->gb); s 926 libavcodec/wmalosslessdec.c if (s->do_lpc) { s 927 libavcodec/wmalosslessdec.c decode_lpc(s); s 928 libavcodec/wmalosslessdec.c avpriv_request_sample(s->avctx, "Expect wrong output since " s 932 libavcodec/wmalosslessdec.c s->do_lpc = 0; s 936 libavcodec/wmalosslessdec.c if (get_bits1(&s->gb)) s 937 libavcodec/wmalosslessdec.c padding_zeroes = get_bits(&s->gb, 5); s 942 libavcodec/wmalosslessdec.c int bits = s->bits_per_sample - padding_zeroes; s 944 libavcodec/wmalosslessdec.c av_log(s->avctx, AV_LOG_ERROR, s 948 libavcodec/wmalosslessdec.c ff_dlog(s->avctx, "RAWPCM %d bits per sample. " s 950 libavcodec/wmalosslessdec.c bits * s->num_channels * subframe_len, get_bits_count(&s->gb)); s 951 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) s 953 libavcodec/wmalosslessdec.c s->channel_residues[i][j] = get_sbits_long(&s->gb, bits); s 955 libavcodec/wmalosslessdec.c if (s->bits_per_sample < padding_zeroes) s 957 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) { s 958 libavcodec/wmalosslessdec.c if (s->is_channel_coded[i]) { s 959 libavcodec/wmalosslessdec.c decode_channel_residues(s, i, subframe_len); s 960 libavcodec/wmalosslessdec.c if (s->seekable_tile) s 961 libavcodec/wmalosslessdec.c use_high_update_speed(s, i); s 963 libavcodec/wmalosslessdec.c use_normal_update_speed(s, i); s 964 libavcodec/wmalosslessdec.c if (s->bits_per_sample > 16) s 965 libavcodec/wmalosslessdec.c revert_cdlms32(s, i, 0, subframe_len); s 967 libavcodec/wmalosslessdec.c revert_cdlms16(s, i, 0, subframe_len); s 969 libavcodec/wmalosslessdec.c memset(s->channel_residues[i], 0, sizeof(**s->channel_residues) * subframe_len); s 973 libavcodec/wmalosslessdec.c if (s->do_mclms) s 974 libavcodec/wmalosslessdec.c revert_mclms(s, subframe_len); s 975 libavcodec/wmalosslessdec.c if (s->do_inter_ch_decorr) s 976 libavcodec/wmalosslessdec.c revert_inter_ch_decorr(s, subframe_len); s 977 libavcodec/wmalosslessdec.c if (s->do_ac_filter) s 978 libavcodec/wmalosslessdec.c revert_acfilter(s, subframe_len); s 981 libavcodec/wmalosslessdec.c if (s->quant_stepsize != 1) s 982 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) s 984 libavcodec/wmalosslessdec.c s->channel_residues[i][j] *= (unsigned)s->quant_stepsize; s 988 libavcodec/wmalosslessdec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 989 libavcodec/wmalosslessdec.c int c = s->channel_indexes_for_cur_subframe[i]; s 990 libavcodec/wmalosslessdec.c int subframe_len = s->channel[c].subframe_len[s->channel[c].cur_subframe]; s 993 libavcodec/wmalosslessdec.c if (s->bits_per_sample == 16) { s 994 libavcodec/wmalosslessdec.c *s->samples_16[c]++ = (int16_t) s->channel_residues[c][j] * (1 << padding_zeroes); s 996 libavcodec/wmalosslessdec.c *s->samples_32[c]++ = s->channel_residues[c][j] * (256U << padding_zeroes); s 1002 libavcodec/wmalosslessdec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1003 libavcodec/wmalosslessdec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1004 libavcodec/wmalosslessdec.c if (s->channel[c].cur_subframe >= s->channel[c].num_subframes) { s 1005 libavcodec/wmalosslessdec.c av_log(s->avctx, AV_LOG_ERROR, "broken subframe\n"); s 1008 libavcodec/wmalosslessdec.c ++s->channel[c].cur_subframe; s 1019 libavcodec/wmalosslessdec.c static int decode_frame(WmallDecodeCtx *s) s 1021 libavcodec/wmalosslessdec.c GetBitContext* gb = &s->gb; s 1024 libavcodec/wmalosslessdec.c s->frame->nb_samples = s->samples_per_frame; s 1025 libavcodec/wmalosslessdec.c if ((ret = ff_get_buffer(s->avctx, s->frame, 0)) < 0) { s 1027 libavcodec/wmalosslessdec.c s->packet_loss = 1; s 1028 libavcodec/wmalosslessdec.c s->frame->nb_samples = 0; s 1031 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) { s 1032 libavcodec/wmalosslessdec.c s->samples_16[i] = (int16_t *)s->frame->extended_data[i]; s 1033 libavcodec/wmalosslessdec.c s->samples_32[i] = (int32_t *)s->frame->extended_data[i]; s 1037 libavcodec/wmalosslessdec.c if (s->len_prefix) s 1038 libavcodec/wmalosslessdec.c len = get_bits(gb, s->log2_frame_size); s 1041 libavcodec/wmalosslessdec.c if ((ret = decode_tilehdr(s))) { s 1042 libavcodec/wmalosslessdec.c s->packet_loss = 1; s 1043 libavcodec/wmalosslessdec.c av_frame_unref(s->frame); s 1048 libavcodec/wmalosslessdec.c if (s->dynamic_range_compression) s 1049 libavcodec/wmalosslessdec.c s->drc_gain = get_bits(gb, 8); s 1058 libavcodec/wmalosslessdec.c skip = get_bits(gb, av_log2(s->samples_per_frame * 2)); s 1059 libavcodec/wmalosslessdec.c ff_dlog(s->avctx, "start skip: %i\n", skip); s 1064 libavcodec/wmalosslessdec.c skip = get_bits(gb, av_log2(s->samples_per_frame * 2)); s 1065 libavcodec/wmalosslessdec.c ff_dlog(s->avctx, "end skip: %i\n", skip); s 1066 libavcodec/wmalosslessdec.c s->frame->nb_samples -= skip; s 1067 libavcodec/wmalosslessdec.c if (s->frame->nb_samples <= 0) s 1074 libavcodec/wmalosslessdec.c s->parsed_all_subframes = 0; s 1075 libavcodec/wmalosslessdec.c for (i = 0; i < s->num_channels; i++) { s 1076 libavcodec/wmalosslessdec.c s->channel[i].decoded_samples = 0; s 1077 libavcodec/wmalosslessdec.c s->channel[i].cur_subframe = 0; s 1081 libavcodec/wmalosslessdec.c while (!s->parsed_all_subframes) { s 1082 libavcodec/wmalosslessdec.c int decoded_samples = s->channel[0].decoded_samples; s 1083 libavcodec/wmalosslessdec.c if (decode_subframe(s) < 0) { s 1084 libavcodec/wmalosslessdec.c s->packet_loss = 1; s 1085 libavcodec/wmalosslessdec.c if (s->frame->nb_samples) s 1086 libavcodec/wmalosslessdec.c s->frame->nb_samples = decoded_samples; s 1091 libavcodec/wmalosslessdec.c ff_dlog(s->avctx, "Frame done\n"); s 1093 libavcodec/wmalosslessdec.c s->skip_frame = 0; s 1095 libavcodec/wmalosslessdec.c if (s->len_prefix) { s 1096 libavcodec/wmalosslessdec.c if (len != (get_bits_count(gb) - s->frame_offset) + 2) { s 1098 libavcodec/wmalosslessdec.c av_log(s->avctx, AV_LOG_ERROR, s 1100 libavcodec/wmalosslessdec.c s->frame_num, s 1101 libavcodec/wmalosslessdec.c len - (get_bits_count(gb) - s->frame_offset) - 1); s 1102 libavcodec/wmalosslessdec.c s->packet_loss = 1; s 1107 libavcodec/wmalosslessdec.c skip_bits_long(gb, len - (get_bits_count(gb) - s->frame_offset) - 1); s 1112 libavcodec/wmalosslessdec.c ++s->frame_num; s 1122 libavcodec/wmalosslessdec.c static int remaining_bits(WmallDecodeCtx *s, GetBitContext *gb) s 1124 libavcodec/wmalosslessdec.c return s->buf_bit_size - get_bits_count(gb); s 1134 libavcodec/wmalosslessdec.c static void save_bits(WmallDecodeCtx *s, GetBitContext* gb, int len, s 1145 libavcodec/wmalosslessdec.c s->frame_offset = get_bits_count(gb) & 7; s 1146 libavcodec/wmalosslessdec.c s->num_saved_bits = s->frame_offset; s 1147 libavcodec/wmalosslessdec.c init_put_bits(&s->pb, s->frame_data, s->max_frame_size); s 1150 libavcodec/wmalosslessdec.c buflen = (s->num_saved_bits + len + 8) >> 3; s 1152 libavcodec/wmalosslessdec.c if (len <= 0 || buflen > s->max_frame_size) { s 1153 libavcodec/wmalosslessdec.c avpriv_request_sample(s->avctx, "Too small input buffer"); s 1154 libavcodec/wmalosslessdec.c s->packet_loss = 1; s 1155 libavcodec/wmalosslessdec.c s->num_saved_bits = 0; s 1159 libavcodec/wmalosslessdec.c s->num_saved_bits += len; s 1161 libavcodec/wmalosslessdec.c avpriv_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), s 1162 libavcodec/wmalosslessdec.c s->num_saved_bits); s 1166 libavcodec/wmalosslessdec.c put_bits(&s->pb, align, get_bits(gb, align)); s 1168 libavcodec/wmalosslessdec.c avpriv_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), len); s 1172 libavcodec/wmalosslessdec.c tmp = s->pb; s 1175 libavcodec/wmalosslessdec.c init_get_bits(&s->gb, s->frame_data, s->num_saved_bits); s 1176 libavcodec/wmalosslessdec.c skip_bits(&s->gb, s->frame_offset); s 1182 libavcodec/wmalosslessdec.c WmallDecodeCtx *s = avctx->priv_data; s 1183 libavcodec/wmalosslessdec.c GetBitContext* gb = &s->pgb; s 1188 libavcodec/wmalosslessdec.c s->frame->nb_samples = 0; s 1190 libavcodec/wmalosslessdec.c if (!buf_size && s->num_saved_bits > get_bits_count(&s->gb)) { s 1191 libavcodec/wmalosslessdec.c s->packet_done = 0; s 1192 libavcodec/wmalosslessdec.c if (!decode_frame(s)) s 1193 libavcodec/wmalosslessdec.c s->num_saved_bits = 0; s 1194 libavcodec/wmalosslessdec.c } else if (s->packet_done || s->packet_loss) { s 1195 libavcodec/wmalosslessdec.c s->packet_done = 0; s 1200 libavcodec/wmalosslessdec.c s->next_packet_start = buf_size - FFMIN(avctx->block_align, buf_size); s 1202 libavcodec/wmalosslessdec.c s->buf_bit_size = buf_size << 3; s 1205 libavcodec/wmalosslessdec.c init_get_bits(gb, buf, s->buf_bit_size); s 1213 libavcodec/wmalosslessdec.c num_bits_prev_frame = get_bits(gb, s->log2_frame_size); s 1216 libavcodec/wmalosslessdec.c if (!s->packet_loss && s 1217 libavcodec/wmalosslessdec.c ((s->packet_sequence_number + 1) & 0xF) != packet_sequence_number) { s 1218 libavcodec/wmalosslessdec.c s->packet_loss = 1; s 1221 libavcodec/wmalosslessdec.c s->packet_sequence_number, packet_sequence_number); s 1223 libavcodec/wmalosslessdec.c s->packet_sequence_number = packet_sequence_number; s 1226 libavcodec/wmalosslessdec.c int remaining_packet_bits = s->buf_bit_size - get_bits_count(gb); s 1229 libavcodec/wmalosslessdec.c s->packet_done = 1; s 1234 libavcodec/wmalosslessdec.c save_bits(s, gb, num_bits_prev_frame, 1); s 1237 libavcodec/wmalosslessdec.c if (num_bits_prev_frame < remaining_packet_bits && !s->packet_loss) s 1238 libavcodec/wmalosslessdec.c decode_frame(s); s 1239 libavcodec/wmalosslessdec.c } else if (s->num_saved_bits - s->frame_offset) { s 1241 libavcodec/wmalosslessdec.c s->num_saved_bits - s->frame_offset); s 1244 libavcodec/wmalosslessdec.c if (s->packet_loss) { s 1247 libavcodec/wmalosslessdec.c s->num_saved_bits = 0; s 1248 libavcodec/wmalosslessdec.c s->packet_loss = 0; s 1249 libavcodec/wmalosslessdec.c init_put_bits(&s->pb, s->frame_data, s->max_frame_size); s 1255 libavcodec/wmalosslessdec.c s->buf_bit_size = (avpkt->size - s->next_packet_start) << 3; s 1256 libavcodec/wmalosslessdec.c init_get_bits(gb, avpkt->data, s->buf_bit_size); s 1257 libavcodec/wmalosslessdec.c skip_bits(gb, s->packet_offset); s 1259 libavcodec/wmalosslessdec.c if (s->len_prefix && remaining_bits(s, gb) > s->log2_frame_size && s 1260 libavcodec/wmalosslessdec.c (frame_size = show_bits(gb, s->log2_frame_size)) && s 1261 libavcodec/wmalosslessdec.c frame_size <= remaining_bits(s, gb)) { s 1262 libavcodec/wmalosslessdec.c save_bits(s, gb, frame_size, 0); s 1264 libavcodec/wmalosslessdec.c if (!s->packet_loss) s 1265 libavcodec/wmalosslessdec.c s->packet_done = !decode_frame(s); s 1266 libavcodec/wmalosslessdec.c } else if (!s->len_prefix s 1267 libavcodec/wmalosslessdec.c && s->num_saved_bits > get_bits_count(&s->gb)) { s 1274 libavcodec/wmalosslessdec.c s->packet_done = !decode_frame(s); s 1276 libavcodec/wmalosslessdec.c s->packet_done = 1; s 1280 libavcodec/wmalosslessdec.c if (remaining_bits(s, gb) < 0) { s 1281 libavcodec/wmalosslessdec.c av_log(avctx, AV_LOG_ERROR, "Overread %d\n", -remaining_bits(s, gb)); s 1282 libavcodec/wmalosslessdec.c s->packet_loss = 1; s 1285 libavcodec/wmalosslessdec.c if (s->packet_done && !s->packet_loss && s 1286 libavcodec/wmalosslessdec.c remaining_bits(s, gb) > 0) { s 1289 libavcodec/wmalosslessdec.c save_bits(s, gb, remaining_bits(s, gb), 0); s 1292 libavcodec/wmalosslessdec.c *got_frame_ptr = s->frame->nb_samples > 0; s 1293 libavcodec/wmalosslessdec.c av_frame_move_ref(data, s->frame); s 1295 libavcodec/wmalosslessdec.c s->packet_offset = get_bits_count(gb) & 7; s 1297 libavcodec/wmalosslessdec.c return (s->packet_loss) ? AVERROR_INVALIDDATA : buf_size ? get_bits_count(gb) >> 3 : 0; s 1302 libavcodec/wmalosslessdec.c WmallDecodeCtx *s = avctx->priv_data; s 1303 libavcodec/wmalosslessdec.c s->packet_loss = 1; s 1304 libavcodec/wmalosslessdec.c s->packet_done = 0; s 1305 libavcodec/wmalosslessdec.c s->num_saved_bits = 0; s 1306 libavcodec/wmalosslessdec.c s->frame_offset = 0; s 1307 libavcodec/wmalosslessdec.c s->next_packet_start = 0; s 1308 libavcodec/wmalosslessdec.c s->cdlms[0][0].order = 0; s 1309 libavcodec/wmalosslessdec.c s->frame->nb_samples = 0; s 1310 libavcodec/wmalosslessdec.c init_put_bits(&s->pb, s->frame_data, s->max_frame_size); s 1315 libavcodec/wmalosslessdec.c WmallDecodeCtx *s = avctx->priv_data; s 1317 libavcodec/wmalosslessdec.c av_frame_free(&s->frame); s 1318 libavcodec/wmalosslessdec.c av_freep(&s->frame_data); s 255 libavcodec/wmaprodec.c static av_cold void dump_context(WMAProDecodeCtx *s) s 257 libavcodec/wmaprodec.c #define PRINT(a, b) av_log(s->avctx, AV_LOG_DEBUG, " %s = %d\n", a, b); s 258 libavcodec/wmaprodec.c #define PRINT_HEX(a, b) av_log(s->avctx, AV_LOG_DEBUG, " %s = %"PRIx32"\n", a, b); s 260 libavcodec/wmaprodec.c PRINT("ed sample bit depth", s->bits_per_sample); s 261 libavcodec/wmaprodec.c PRINT_HEX("ed decode flags", s->decode_flags); s 262 libavcodec/wmaprodec.c PRINT("samples per frame", s->samples_per_frame); s 263 libavcodec/wmaprodec.c PRINT("log2 frame size", s->log2_frame_size); s 264 libavcodec/wmaprodec.c PRINT("max num subframes", s->max_num_subframes); s 265 libavcodec/wmaprodec.c PRINT("len prefix", s->len_prefix); s 266 libavcodec/wmaprodec.c PRINT("num channels", s->nb_channels); s 274 libavcodec/wmaprodec.c static av_cold int decode_end(WMAProDecodeCtx *s) s 278 libavcodec/wmaprodec.c av_freep(&s->fdsp); s 281 libavcodec/wmaprodec.c ff_mdct_end(&s->mdct_ctx[i]); s 288 libavcodec/wmaprodec.c WMAProDecodeCtx *s = avctx->priv_data; s 290 libavcodec/wmaprodec.c decode_end(s); s 315 libavcodec/wmaprodec.c static av_cold int decode_init(WMAProDecodeCtx *s, AVCodecContext *avctx, int num_stream) s 331 libavcodec/wmaprodec.c s->avctx = avctx; s 333 libavcodec/wmaprodec.c init_put_bits(&s->pb, s->frame_data, MAX_FRAMESIZE); s 344 libavcodec/wmaprodec.c s->decode_flags = 0x10d6; s 345 libavcodec/wmaprodec.c s->bits_per_sample = 16; s 348 libavcodec/wmaprodec.c s->nb_channels = 1; s 350 libavcodec/wmaprodec.c s->nb_channels = 2; s 352 libavcodec/wmaprodec.c s->decode_flags = 0x10d6; s 353 libavcodec/wmaprodec.c s->bits_per_sample = 16; s 355 libavcodec/wmaprodec.c s->nb_channels = edata_ptr[32 + ((edata_ptr[0]==3)?0:8) + 4*num_stream + 0]; /* nth stream config */ s 357 libavcodec/wmaprodec.c s->decode_flags = 0x10d6; s 358 libavcodec/wmaprodec.c s->bits_per_sample = 16; s 360 libavcodec/wmaprodec.c s->nb_channels = edata_ptr[8 + 20*num_stream + 17]; /* nth stream config */ s 362 libavcodec/wmaprodec.c s->decode_flags = AV_RL16(edata_ptr+14); s 364 libavcodec/wmaprodec.c s->bits_per_sample = AV_RL16(edata_ptr); s 365 libavcodec/wmaprodec.c s->nb_channels = avctx->channels; s 367 libavcodec/wmaprodec.c if (s->bits_per_sample > 32 || s->bits_per_sample < 1) { s 368 libavcodec/wmaprodec.c avpriv_request_sample(avctx, "bits per sample is %d", s->bits_per_sample); s 377 libavcodec/wmaprodec.c s->log2_frame_size = av_log2(avctx->block_align) + 4; s 378 libavcodec/wmaprodec.c if (s->log2_frame_size > 25) { s 385 libavcodec/wmaprodec.c s->skip_frame = 0; s 387 libavcodec/wmaprodec.c s->skip_frame = 1; /* skip first frame */ s 389 libavcodec/wmaprodec.c s->packet_loss = 1; s 390 libavcodec/wmaprodec.c s->len_prefix = (s->decode_flags & 0x40); s 394 libavcodec/wmaprodec.c bits = ff_wma_get_frame_len_bits(avctx->sample_rate, 3, s->decode_flags); s 399 libavcodec/wmaprodec.c s->samples_per_frame = 1 << bits; s 401 libavcodec/wmaprodec.c s->samples_per_frame = 512; s 405 libavcodec/wmaprodec.c log2_max_num_subframes = ((s->decode_flags & 0x38) >> 3); s 406 libavcodec/wmaprodec.c s->max_num_subframes = 1 << log2_max_num_subframes; s 407 libavcodec/wmaprodec.c if (s->max_num_subframes == 16 || s->max_num_subframes == 4) s 408 libavcodec/wmaprodec.c s->max_subframe_len_bit = 1; s 409 libavcodec/wmaprodec.c s->subframe_len_bits = av_log2(log2_max_num_subframes) + 1; s 412 libavcodec/wmaprodec.c s->min_samples_per_subframe = s->samples_per_frame / s->max_num_subframes; s 413 libavcodec/wmaprodec.c s->dynamic_range_compression = (s->decode_flags & 0x80); s 415 libavcodec/wmaprodec.c if (s->max_num_subframes > MAX_SUBFRAMES) { s 417 libavcodec/wmaprodec.c s->max_num_subframes); s 421 libavcodec/wmaprodec.c if (s->min_samples_per_subframe < WMAPRO_BLOCK_MIN_SIZE) { s 423 libavcodec/wmaprodec.c s->min_samples_per_subframe); s 427 libavcodec/wmaprodec.c if (s->avctx->sample_rate <= 0) { s 432 libavcodec/wmaprodec.c if (s->nb_channels <= 0) { s 434 libavcodec/wmaprodec.c s->nb_channels); s 436 libavcodec/wmaprodec.c } else if (avctx->codec_id != AV_CODEC_ID_WMAPRO && s->nb_channels > XMA_MAX_CHANNELS_STREAM) { s 438 libavcodec/wmaprodec.c s->nb_channels); s 440 libavcodec/wmaprodec.c } else if (s->nb_channels > WMAPRO_MAX_CHANNELS || s->nb_channels > avctx->channels) { s 447 libavcodec/wmaprodec.c for (i = 0; i < s->nb_channels; i++) s 448 libavcodec/wmaprodec.c s->channel[i].prev_block_len = s->samples_per_frame; s 451 libavcodec/wmaprodec.c s->lfe_channel = -1; s 457 libavcodec/wmaprodec.c ++s->lfe_channel; s 492 libavcodec/wmaprodec.c int subframe_len = s->samples_per_frame >> i; s 497 libavcodec/wmaprodec.c s->sfb_offsets[i][0] = 0; s 499 libavcodec/wmaprodec.c for (x = 0; x < MAX_BANDS-1 && s->sfb_offsets[i][band - 1] < subframe_len; x++) { s 502 libavcodec/wmaprodec.c if (offset > s->sfb_offsets[i][band - 1]) s 503 libavcodec/wmaprodec.c s->sfb_offsets[i][band++] = offset; s 508 libavcodec/wmaprodec.c s->sfb_offsets[i][band - 1] = subframe_len; s 509 libavcodec/wmaprodec.c s->num_sfb[i] = band - 1; s 510 libavcodec/wmaprodec.c if (s->num_sfb[i] <= 0) { s 524 libavcodec/wmaprodec.c for (b = 0; b < s->num_sfb[i]; b++) { s 526 libavcodec/wmaprodec.c int offset = ((s->sfb_offsets[i][b] s 527 libavcodec/wmaprodec.c + s->sfb_offsets[i][b + 1] - 1) << i) >> 1; s 530 libavcodec/wmaprodec.c while (s->sfb_offsets[x][v + 1] << x < offset) { s 534 libavcodec/wmaprodec.c s->sf_offsets[i][x][b] = v; s 539 libavcodec/wmaprodec.c s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); s 540 libavcodec/wmaprodec.c if (!s->fdsp) s 545 libavcodec/wmaprodec.c ff_mdct_init(&s->mdct_ctx[i], WMAPRO_BLOCK_MIN_BITS+1+i, 1, s 547 libavcodec/wmaprodec.c / (1ll << (s->bits_per_sample - 1))); s 553 libavcodec/wmaprodec.c s->windows[WMAPRO_BLOCK_SIZES - i - 1] = ff_sine_windows[win_idx]; s 558 libavcodec/wmaprodec.c int block_size = s->samples_per_frame >> i; s 559 libavcodec/wmaprodec.c int cutoff = (440*block_size + 3LL * (s->avctx->sample_rate >> 1) - 1) s 560 libavcodec/wmaprodec.c / s->avctx->sample_rate; s 561 libavcodec/wmaprodec.c s->subwoofer_cutoffs[i] = av_clip(cutoff, 4, block_size); s 569 libavcodec/wmaprodec.c dump_context(s); s 583 libavcodec/wmaprodec.c WMAProDecodeCtx *s = avctx->priv_data; s 585 libavcodec/wmaprodec.c return decode_init(s, avctx, 0); s 594 libavcodec/wmaprodec.c static int decode_subframe_length(WMAProDecodeCtx *s, int offset) s 600 libavcodec/wmaprodec.c if (offset == s->samples_per_frame - s->min_samples_per_subframe) s 601 libavcodec/wmaprodec.c return s->min_samples_per_subframe; s 603 libavcodec/wmaprodec.c if (get_bits_left(&s->gb) < 1) s 607 libavcodec/wmaprodec.c if (s->max_subframe_len_bit) { s 608 libavcodec/wmaprodec.c if (get_bits1(&s->gb)) s 609 libavcodec/wmaprodec.c frame_len_shift = 1 + get_bits(&s->gb, s->subframe_len_bits-1); s 611 libavcodec/wmaprodec.c frame_len_shift = get_bits(&s->gb, s->subframe_len_bits); s 613 libavcodec/wmaprodec.c subframe_len = s->samples_per_frame >> frame_len_shift; s 616 libavcodec/wmaprodec.c if (subframe_len < s->min_samples_per_subframe || s 617 libavcodec/wmaprodec.c subframe_len > s->samples_per_frame) { s 618 libavcodec/wmaprodec.c av_log(s->avctx, AV_LOG_ERROR, "broken frame: subframe_len %i\n", s 645 libavcodec/wmaprodec.c static int decode_tilehdr(WMAProDecodeCtx *s) s 649 libavcodec/wmaprodec.c int channels_for_cur_subframe = s->nb_channels; /**< number of channels that contain the current subframe */ s 661 libavcodec/wmaprodec.c for (c = 0; c < s->nb_channels; c++) s 662 libavcodec/wmaprodec.c s->channel[c].num_subframes = 0; s 664 libavcodec/wmaprodec.c if (s->max_num_subframes == 1 || get_bits1(&s->gb)) s 672 libavcodec/wmaprodec.c for (c = 0; c < s->nb_channels; c++) { s 675 libavcodec/wmaprodec.c (min_channel_len == s->samples_per_frame - s->min_samples_per_subframe)) s 678 libavcodec/wmaprodec.c contains_subframe[c] = get_bits1(&s->gb); s 684 libavcodec/wmaprodec.c if ((subframe_len = decode_subframe_length(s, min_channel_len)) <= 0) s 689 libavcodec/wmaprodec.c for (c = 0; c < s->nb_channels; c++) { s 690 libavcodec/wmaprodec.c WMAProChannelCtx* chan = &s->channel[c]; s 694 libavcodec/wmaprodec.c av_log(s->avctx, AV_LOG_ERROR, s 701 libavcodec/wmaprodec.c if (num_samples[c] > s->samples_per_frame) { s 702 libavcodec/wmaprodec.c av_log(s->avctx, AV_LOG_ERROR, "broken frame: " s 714 libavcodec/wmaprodec.c } while (min_channel_len < s->samples_per_frame); s 716 libavcodec/wmaprodec.c for (c = 0; c < s->nb_channels; c++) { s 719 libavcodec/wmaprodec.c for (i = 0; i < s->channel[c].num_subframes; i++) { s 720 libavcodec/wmaprodec.c ff_dlog(s->avctx, "frame[%"PRIu32"] channel[%i] subframe[%i]" s 721 libavcodec/wmaprodec.c " len %i\n", s->frame_num, c, i, s 722 libavcodec/wmaprodec.c s->channel[c].subframe_len[i]); s 723 libavcodec/wmaprodec.c s->channel[c].subframe_offset[i] = offset; s 724 libavcodec/wmaprodec.c offset += s->channel[c].subframe_len[i]; s 736 libavcodec/wmaprodec.c static void decode_decorrelation_matrix(WMAProDecodeCtx *s, s 742 libavcodec/wmaprodec.c memset(chgroup->decorrelation_matrix, 0, s->nb_channels * s 743 libavcodec/wmaprodec.c s->nb_channels * sizeof(*chgroup->decorrelation_matrix)); s 746 libavcodec/wmaprodec.c rotation_offset[i] = get_bits(&s->gb, 6); s 750 libavcodec/wmaprodec.c get_bits1(&s->gb) ? 1.0 : -1.0; s 786 libavcodec/wmaprodec.c static int decode_channel_transform(WMAProDecodeCtx* s) s 795 libavcodec/wmaprodec.c s->num_chgroups = 0; s 796 libavcodec/wmaprodec.c if (s->nb_channels > 1) { s 797 libavcodec/wmaprodec.c int remaining_channels = s->channels_for_cur_subframe; s 799 libavcodec/wmaprodec.c if (get_bits1(&s->gb)) { s 800 libavcodec/wmaprodec.c avpriv_request_sample(s->avctx, s 805 libavcodec/wmaprodec.c for (s->num_chgroups = 0; remaining_channels && s 806 libavcodec/wmaprodec.c s->num_chgroups < s->channels_for_cur_subframe; s->num_chgroups++) { s 807 libavcodec/wmaprodec.c WMAProChannelGrp* chgroup = &s->chgroup[s->num_chgroups]; s 814 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 815 libavcodec/wmaprodec.c int channel_idx = s->channel_indexes_for_cur_subframe[i]; s 816 libavcodec/wmaprodec.c if (!s->channel[channel_idx].grouped s 817 libavcodec/wmaprodec.c && get_bits1(&s->gb)) { s 819 libavcodec/wmaprodec.c s->channel[channel_idx].grouped = 1; s 820 libavcodec/wmaprodec.c *channel_data++ = s->channel[channel_idx].coeffs; s 825 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 826 libavcodec/wmaprodec.c int channel_idx = s->channel_indexes_for_cur_subframe[i]; s 827 libavcodec/wmaprodec.c if (!s->channel[channel_idx].grouped) s 828 libavcodec/wmaprodec.c *channel_data++ = s->channel[channel_idx].coeffs; s 829 libavcodec/wmaprodec.c s->channel[channel_idx].grouped = 1; s 835 libavcodec/wmaprodec.c if (get_bits1(&s->gb)) { s 836 libavcodec/wmaprodec.c if (get_bits1(&s->gb)) { s 837 libavcodec/wmaprodec.c avpriv_request_sample(s->avctx, s 843 libavcodec/wmaprodec.c if (s->nb_channels == 2) { s 857 libavcodec/wmaprodec.c if (get_bits1(&s->gb)) { s 859 libavcodec/wmaprodec.c if (get_bits1(&s->gb)) { s 860 libavcodec/wmaprodec.c decode_decorrelation_matrix(s, chgroup); s 864 libavcodec/wmaprodec.c avpriv_request_sample(s->avctx, s 878 libavcodec/wmaprodec.c if (!get_bits1(&s->gb)) { s 881 libavcodec/wmaprodec.c for (i = 0; i < s->num_bands; i++) { s 882 libavcodec/wmaprodec.c chgroup->transform_band[i] = get_bits1(&s->gb); s 885 libavcodec/wmaprodec.c memset(chgroup->transform_band, 1, s->num_bands); s 900 libavcodec/wmaprodec.c static int decode_coeffs(WMAProDecodeCtx *s, int c) s 913 libavcodec/wmaprodec.c WMAProChannelCtx* ci = &s->channel[c]; s 920 libavcodec/wmaprodec.c ff_dlog(s->avctx, "decode coefficients for channel %i\n", c); s 922 libavcodec/wmaprodec.c vlctable = get_bits1(&s->gb); s 935 libavcodec/wmaprodec.c while ((s->transmit_num_vec_coeffs || !rl_mode) && s 941 libavcodec/wmaprodec.c idx = get_vlc2(&s->gb, vec4_vlc.table, VLCBITS, VEC4MAXDEPTH); s 945 libavcodec/wmaprodec.c idx = get_vlc2(&s->gb, vec2_vlc.table, VLCBITS, VEC2MAXDEPTH); s 948 libavcodec/wmaprodec.c v0 = get_vlc2(&s->gb, vec1_vlc.table, VLCBITS, VEC1MAXDEPTH); s 950 libavcodec/wmaprodec.c v0 += ff_wma_get_large_val(&s->gb); s 951 libavcodec/wmaprodec.c v1 = get_vlc2(&s->gb, vec1_vlc.table, VLCBITS, VEC1MAXDEPTH); s 953 libavcodec/wmaprodec.c v1 += ff_wma_get_large_val(&s->gb); s 971 libavcodec/wmaprodec.c uint32_t sign = get_bits1(&s->gb) - 1; s 978 libavcodec/wmaprodec.c rl_mode |= (++num_zeros > s->subframe_len >> 8); s 985 libavcodec/wmaprodec.c if (cur_coeff < s->subframe_len) { s 987 libavcodec/wmaprodec.c sizeof(*ci->coeffs) * (s->subframe_len - cur_coeff)); s 988 libavcodec/wmaprodec.c if (ff_wma_run_level_decode(s->avctx, &s->gb, vlc, s 990 libavcodec/wmaprodec.c cur_coeff, s->subframe_len, s 991 libavcodec/wmaprodec.c s->subframe_len, s->esc_len, 0)) s 1003 libavcodec/wmaprodec.c static int decode_scale_factors(WMAProDecodeCtx* s) s 1011 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1012 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1015 libavcodec/wmaprodec.c s->channel[c].scale_factors = s->channel[c].saved_scale_factors[!s->channel[c].scale_factor_idx]; s 1016 libavcodec/wmaprodec.c sf_end = s->channel[c].scale_factors + s->num_bands; s 1023 libavcodec/wmaprodec.c if (s->channel[c].reuse_sf) { s 1024 libavcodec/wmaprodec.c const int8_t* sf_offsets = s->sf_offsets[s->table_idx][s->channel[c].table_idx]; s 1026 libavcodec/wmaprodec.c for (b = 0; b < s->num_bands; b++) s 1027 libavcodec/wmaprodec.c s->channel[c].scale_factors[b] = s 1028 libavcodec/wmaprodec.c s->channel[c].saved_scale_factors[s->channel[c].scale_factor_idx][*sf_offsets++]; s 1031 libavcodec/wmaprodec.c if (!s->channel[c].cur_subframe || get_bits1(&s->gb)) { s 1033 libavcodec/wmaprodec.c if (!s->channel[c].reuse_sf) { s 1036 libavcodec/wmaprodec.c s->channel[c].scale_factor_step = get_bits(&s->gb, 2) + 1; s 1037 libavcodec/wmaprodec.c val = 45 / s->channel[c].scale_factor_step; s 1038 libavcodec/wmaprodec.c for (sf = s->channel[c].scale_factors; sf < sf_end; sf++) { s 1039 libavcodec/wmaprodec.c val += get_vlc2(&s->gb, sf_vlc.table, SCALEVLCBITS, SCALEMAXDEPTH) - 60; s 1045 libavcodec/wmaprodec.c for (i = 0; i < s->num_bands; i++) { s 1051 libavcodec/wmaprodec.c idx = get_vlc2(&s->gb, sf_rl_vlc.table, VLCBITS, SCALERLMAXDEPTH); s 1054 libavcodec/wmaprodec.c uint32_t code = get_bits(&s->gb, 14); s 1063 libavcodec/wmaprodec.c sign = get_bits1(&s->gb)-1; s 1067 libavcodec/wmaprodec.c if (i >= s->num_bands) { s 1068 libavcodec/wmaprodec.c av_log(s->avctx, AV_LOG_ERROR, s 1072 libavcodec/wmaprodec.c s->channel[c].scale_factors[i] += (val ^ sign) - sign; s 1076 libavcodec/wmaprodec.c s->channel[c].scale_factor_idx = !s->channel[c].scale_factor_idx; s 1077 libavcodec/wmaprodec.c s->channel[c].table_idx = s->table_idx; s 1078 libavcodec/wmaprodec.c s->channel[c].reuse_sf = 1; s 1082 libavcodec/wmaprodec.c s->channel[c].max_scale_factor = s->channel[c].scale_factors[0]; s 1083 libavcodec/wmaprodec.c for (sf = s->channel[c].scale_factors + 1; sf < sf_end; sf++) { s 1084 libavcodec/wmaprodec.c s->channel[c].max_scale_factor = s 1085 libavcodec/wmaprodec.c FFMAX(s->channel[c].max_scale_factor, *sf); s 1096 libavcodec/wmaprodec.c static void inverse_channel_transform(WMAProDecodeCtx *s) s 1100 libavcodec/wmaprodec.c for (i = 0; i < s->num_chgroups; i++) { s 1101 libavcodec/wmaprodec.c if (s->chgroup[i].transform) { s 1103 libavcodec/wmaprodec.c const int num_channels = s->chgroup[i].num_channels; s 1104 libavcodec/wmaprodec.c float** ch_data = s->chgroup[i].channel_data; s 1106 libavcodec/wmaprodec.c const int8_t* tb = s->chgroup[i].transform_band; s 1110 libavcodec/wmaprodec.c for (sfb = s->cur_sfb_offsets; s 1111 libavcodec/wmaprodec.c sfb < s->cur_sfb_offsets + s->num_bands; sfb++) { s 1115 libavcodec/wmaprodec.c for (y = sfb[0]; y < FFMIN(sfb[1], s->subframe_len); y++) { s 1116 libavcodec/wmaprodec.c const float* mat = s->chgroup[i].decorrelation_matrix; s 1133 libavcodec/wmaprodec.c } else if (s->nb_channels == 2) { s 1134 libavcodec/wmaprodec.c int len = FFMIN(sfb[1], s->subframe_len) - sfb[0]; s 1135 libavcodec/wmaprodec.c s->fdsp->vector_fmul_scalar(ch_data[0] + sfb[0], s 1138 libavcodec/wmaprodec.c s->fdsp->vector_fmul_scalar(ch_data[1] + sfb[0], s 1151 libavcodec/wmaprodec.c static void wmapro_window(WMAProDecodeCtx *s) s 1154 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1155 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1157 libavcodec/wmaprodec.c int winlen = s->channel[c].prev_block_len; s 1158 libavcodec/wmaprodec.c float* start = s->channel[c].coeffs - (winlen >> 1); s 1160 libavcodec/wmaprodec.c if (s->subframe_len < winlen) { s 1161 libavcodec/wmaprodec.c start += (winlen - s->subframe_len) >> 1; s 1162 libavcodec/wmaprodec.c winlen = s->subframe_len; s 1165 libavcodec/wmaprodec.c window = s->windows[av_log2(winlen) - WMAPRO_BLOCK_MIN_BITS]; s 1169 libavcodec/wmaprodec.c s->fdsp->vector_fmul_window(start, start, start + winlen, s 1172 libavcodec/wmaprodec.c s->channel[c].prev_block_len = s->subframe_len; s 1181 libavcodec/wmaprodec.c static int decode_subframe(WMAProDecodeCtx *s) s 1183 libavcodec/wmaprodec.c int offset = s->samples_per_frame; s 1184 libavcodec/wmaprodec.c int subframe_len = s->samples_per_frame; s 1186 libavcodec/wmaprodec.c int total_samples = s->samples_per_frame * s->nb_channels; s 1190 libavcodec/wmaprodec.c s->subframe_offset = get_bits_count(&s->gb); s 1196 libavcodec/wmaprodec.c for (i = 0; i < s->nb_channels; i++) { s 1197 libavcodec/wmaprodec.c s->channel[i].grouped = 0; s 1198 libavcodec/wmaprodec.c if (offset > s->channel[i].decoded_samples) { s 1199 libavcodec/wmaprodec.c offset = s->channel[i].decoded_samples; s 1201 libavcodec/wmaprodec.c s->channel[i].subframe_len[s->channel[i].cur_subframe]; s 1205 libavcodec/wmaprodec.c ff_dlog(s->avctx, s 1209 libavcodec/wmaprodec.c s->channels_for_cur_subframe = 0; s 1210 libavcodec/wmaprodec.c for (i = 0; i < s->nb_channels; i++) { s 1211 libavcodec/wmaprodec.c const int cur_subframe = s->channel[i].cur_subframe; s 1213 libavcodec/wmaprodec.c total_samples -= s->channel[i].decoded_samples; s 1216 libavcodec/wmaprodec.c if (offset == s->channel[i].decoded_samples && s 1217 libavcodec/wmaprodec.c subframe_len == s->channel[i].subframe_len[cur_subframe]) { s 1218 libavcodec/wmaprodec.c total_samples -= s->channel[i].subframe_len[cur_subframe]; s 1219 libavcodec/wmaprodec.c s->channel[i].decoded_samples += s 1220 libavcodec/wmaprodec.c s->channel[i].subframe_len[cur_subframe]; s 1221 libavcodec/wmaprodec.c s->channel_indexes_for_cur_subframe[s->channels_for_cur_subframe] = i; s 1222 libavcodec/wmaprodec.c ++s->channels_for_cur_subframe; s 1229 libavcodec/wmaprodec.c s->parsed_all_subframes = 1; s 1232 libavcodec/wmaprodec.c ff_dlog(s->avctx, "subframe is part of %i channels\n", s 1233 libavcodec/wmaprodec.c s->channels_for_cur_subframe); s 1236 libavcodec/wmaprodec.c s->table_idx = av_log2(s->samples_per_frame/subframe_len); s 1237 libavcodec/wmaprodec.c s->num_bands = s->num_sfb[s->table_idx]; s 1238 libavcodec/wmaprodec.c s->cur_sfb_offsets = s->sfb_offsets[s->table_idx]; s 1239 libavcodec/wmaprodec.c cur_subwoofer_cutoff = s->subwoofer_cutoffs[s->table_idx]; s 1242 libavcodec/wmaprodec.c offset += s->samples_per_frame >> 1; s 1244 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1245 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1247 libavcodec/wmaprodec.c s->channel[c].coeffs = &s->channel[c].out[offset]; s 1250 libavcodec/wmaprodec.c s->subframe_len = subframe_len; s 1251 libavcodec/wmaprodec.c s->esc_len = av_log2(s->subframe_len - 1) + 1; s 1254 libavcodec/wmaprodec.c if (get_bits1(&s->gb)) { s 1256 libavcodec/wmaprodec.c if (!(num_fill_bits = get_bits(&s->gb, 2))) { s 1257 libavcodec/wmaprodec.c int len = get_bits(&s->gb, 4); s 1258 libavcodec/wmaprodec.c num_fill_bits = get_bitsz(&s->gb, len) + 1; s 1262 libavcodec/wmaprodec.c if (get_bits_count(&s->gb) + num_fill_bits > s->num_saved_bits) { s 1263 libavcodec/wmaprodec.c av_log(s->avctx, AV_LOG_ERROR, "invalid number of fill bits\n"); s 1267 libavcodec/wmaprodec.c skip_bits_long(&s->gb, num_fill_bits); s 1272 libavcodec/wmaprodec.c if (get_bits1(&s->gb)) { s 1273 libavcodec/wmaprodec.c avpriv_request_sample(s->avctx, "Reserved bit"); s 1278 libavcodec/wmaprodec.c if (decode_channel_transform(s) < 0) s 1282 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1283 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1284 libavcodec/wmaprodec.c if ((s->channel[c].transmit_coefs = get_bits1(&s->gb))) s 1288 libavcodec/wmaprodec.c av_assert0(s->subframe_len <= WMAPRO_BLOCK_MAX_SIZE); s 1291 libavcodec/wmaprodec.c int quant_step = 90 * s->bits_per_sample >> 4; s 1294 libavcodec/wmaprodec.c if ((s->transmit_num_vec_coeffs = get_bits1(&s->gb))) { s 1295 libavcodec/wmaprodec.c int num_bits = av_log2((s->subframe_len + 3)/4) + 1; s 1296 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1297 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1298 libavcodec/wmaprodec.c int num_vec_coeffs = get_bits(&s->gb, num_bits) << 2; s 1299 libavcodec/wmaprodec.c if (num_vec_coeffs > s->subframe_len) { s 1300 libavcodec/wmaprodec.c av_log(s->avctx, AV_LOG_ERROR, "num_vec_coeffs %d is too large\n", num_vec_coeffs); s 1303 libavcodec/wmaprodec.c av_assert0(num_vec_coeffs + offset <= FF_ARRAY_ELEMS(s->channel[c].out)); s 1304 libavcodec/wmaprodec.c s->channel[c].num_vec_coeffs = num_vec_coeffs; s 1307 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1308 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1309 libavcodec/wmaprodec.c s->channel[c].num_vec_coeffs = s->subframe_len; s 1313 libavcodec/wmaprodec.c step = get_sbits(&s->gb, 6); s 1318 libavcodec/wmaprodec.c while (get_bits_count(&s->gb) + 5 < s->num_saved_bits && s 1319 libavcodec/wmaprodec.c (step = get_bits(&s->gb, 5)) == 31) { s 1325 libavcodec/wmaprodec.c av_log(s->avctx, AV_LOG_DEBUG, "negative quant step\n"); s 1330 libavcodec/wmaprodec.c if (s->channels_for_cur_subframe == 1) { s 1331 libavcodec/wmaprodec.c s->channel[s->channel_indexes_for_cur_subframe[0]].quant_step = quant_step; s 1333 libavcodec/wmaprodec.c int modifier_len = get_bits(&s->gb, 3); s 1334 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1335 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1336 libavcodec/wmaprodec.c s->channel[c].quant_step = quant_step; s 1337 libavcodec/wmaprodec.c if (get_bits1(&s->gb)) { s 1339 libavcodec/wmaprodec.c s->channel[c].quant_step += get_bits(&s->gb, modifier_len) + 1; s 1341 libavcodec/wmaprodec.c ++s->channel[c].quant_step; s 1347 libavcodec/wmaprodec.c if (decode_scale_factors(s) < 0) s 1351 libavcodec/wmaprodec.c ff_dlog(s->avctx, "BITSTREAM: subframe header length was %i\n", s 1352 libavcodec/wmaprodec.c get_bits_count(&s->gb) - s->subframe_offset); s 1355 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1356 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1357 libavcodec/wmaprodec.c if (s->channel[c].transmit_coefs && s 1358 libavcodec/wmaprodec.c get_bits_count(&s->gb) < s->num_saved_bits) { s 1359 libavcodec/wmaprodec.c decode_coeffs(s, c); s 1361 libavcodec/wmaprodec.c memset(s->channel[c].coeffs, 0, s 1362 libavcodec/wmaprodec.c sizeof(*s->channel[c].coeffs) * subframe_len); s 1365 libavcodec/wmaprodec.c ff_dlog(s->avctx, "BITSTREAM: subframe length was %i\n", s 1366 libavcodec/wmaprodec.c get_bits_count(&s->gb) - s->subframe_offset); s 1369 libavcodec/wmaprodec.c FFTContext *mdct = &s->mdct_ctx[av_log2(subframe_len) - WMAPRO_BLOCK_MIN_BITS]; s 1371 libavcodec/wmaprodec.c inverse_channel_transform(s); s 1372 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1373 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1374 libavcodec/wmaprodec.c const int* sf = s->channel[c].scale_factors; s 1377 libavcodec/wmaprodec.c if (c == s->lfe_channel) s 1378 libavcodec/wmaprodec.c memset(&s->tmp[cur_subwoofer_cutoff], 0, sizeof(*s->tmp) * s 1382 libavcodec/wmaprodec.c for (b = 0; b < s->num_bands; b++) { s 1383 libavcodec/wmaprodec.c const int end = FFMIN(s->cur_sfb_offsets[b+1], s->subframe_len); s 1384 libavcodec/wmaprodec.c const int exp = s->channel[c].quant_step - s 1385 libavcodec/wmaprodec.c (s->channel[c].max_scale_factor - *sf++) * s 1386 libavcodec/wmaprodec.c s->channel[c].scale_factor_step; s 1388 libavcodec/wmaprodec.c int start = s->cur_sfb_offsets[b]; s 1389 libavcodec/wmaprodec.c s->fdsp->vector_fmul_scalar(s->tmp + start, s 1390 libavcodec/wmaprodec.c s->channel[c].coeffs + start, s 1395 libavcodec/wmaprodec.c mdct->imdct_half(mdct, s->channel[c].coeffs, s->tmp); s 1400 libavcodec/wmaprodec.c wmapro_window(s); s 1403 libavcodec/wmaprodec.c for (i = 0; i < s->channels_for_cur_subframe; i++) { s 1404 libavcodec/wmaprodec.c int c = s->channel_indexes_for_cur_subframe[i]; s 1405 libavcodec/wmaprodec.c if (s->channel[c].cur_subframe >= s->channel[c].num_subframes) { s 1406 libavcodec/wmaprodec.c av_log(s->avctx, AV_LOG_ERROR, "broken subframe\n"); s 1409 libavcodec/wmaprodec.c ++s->channel[c].cur_subframe; s 1421 libavcodec/wmaprodec.c static int decode_frame(WMAProDecodeCtx *s, AVFrame *frame, int *got_frame_ptr) s 1423 libavcodec/wmaprodec.c GetBitContext* gb = &s->gb; s 1429 libavcodec/wmaprodec.c if (s->len_prefix) s 1430 libavcodec/wmaprodec.c len = get_bits(gb, s->log2_frame_size); s 1432 libavcodec/wmaprodec.c ff_dlog(s->avctx, "decoding frame with length %x\n", len); s 1435 libavcodec/wmaprodec.c if (decode_tilehdr(s)) { s 1436 libavcodec/wmaprodec.c s->packet_loss = 1; s 1441 libavcodec/wmaprodec.c if (s->nb_channels > 1 && get_bits1(gb)) { s 1443 libavcodec/wmaprodec.c for (i = 0; i < s->nb_channels * s->nb_channels; i++) s 1449 libavcodec/wmaprodec.c if (s->dynamic_range_compression) { s 1450 libavcodec/wmaprodec.c s->drc_gain = get_bits(gb, 8); s 1451 libavcodec/wmaprodec.c ff_dlog(s->avctx, "drc_gain %i\n", s->drc_gain); s 1461 libavcodec/wmaprodec.c skip = get_bits(gb, av_log2(s->samples_per_frame * 2)); s 1462 libavcodec/wmaprodec.c ff_dlog(s->avctx, "start skip: %i\n", skip); s 1467 libavcodec/wmaprodec.c skip = get_bits(gb, av_log2(s->samples_per_frame * 2)); s 1468 libavcodec/wmaprodec.c ff_dlog(s->avctx, "end skip: %i\n", skip); s 1473 libavcodec/wmaprodec.c ff_dlog(s->avctx, "BITSTREAM: frame header length was %i\n", s 1474 libavcodec/wmaprodec.c get_bits_count(gb) - s->frame_offset); s 1477 libavcodec/wmaprodec.c s->parsed_all_subframes = 0; s 1478 libavcodec/wmaprodec.c for (i = 0; i < s->nb_channels; i++) { s 1479 libavcodec/wmaprodec.c s->channel[i].decoded_samples = 0; s 1480 libavcodec/wmaprodec.c s->channel[i].cur_subframe = 0; s 1481 libavcodec/wmaprodec.c s->channel[i].reuse_sf = 0; s 1485 libavcodec/wmaprodec.c while (!s->parsed_all_subframes) { s 1486 libavcodec/wmaprodec.c if (decode_subframe(s) < 0) { s 1487 libavcodec/wmaprodec.c s->packet_loss = 1; s 1493 libavcodec/wmaprodec.c for (i = 0; i < s->nb_channels; i++) s 1494 libavcodec/wmaprodec.c memcpy(frame->extended_data[i], s->channel[i].out, s 1495 libavcodec/wmaprodec.c s->samples_per_frame * sizeof(*s->channel[i].out)); s 1497 libavcodec/wmaprodec.c for (i = 0; i < s->nb_channels; i++) { s 1499 libavcodec/wmaprodec.c memcpy(&s->channel[i].out[0], s 1500 libavcodec/wmaprodec.c &s->channel[i].out[s->samples_per_frame], s 1501 libavcodec/wmaprodec.c s->samples_per_frame * sizeof(*s->channel[i].out) >> 1); s 1504 libavcodec/wmaprodec.c if (s->skip_frame) { s 1505 libavcodec/wmaprodec.c s->skip_frame = 0; s 1512 libavcodec/wmaprodec.c if (s->len_prefix) { s 1513 libavcodec/wmaprodec.c if (len != (get_bits_count(gb) - s->frame_offset) + 2) { s 1515 libavcodec/wmaprodec.c av_log(s->avctx, AV_LOG_ERROR, s 1517 libavcodec/wmaprodec.c s->frame_num, s 1518 libavcodec/wmaprodec.c len - (get_bits_count(gb) - s->frame_offset) - 1); s 1519 libavcodec/wmaprodec.c s->packet_loss = 1; s 1524 libavcodec/wmaprodec.c skip_bits_long(gb, len - (get_bits_count(gb) - s->frame_offset) - 1); s 1526 libavcodec/wmaprodec.c while (get_bits_count(gb) < s->num_saved_bits && get_bits1(gb) == 0) { s 1533 libavcodec/wmaprodec.c ++s->frame_num; s 1543 libavcodec/wmaprodec.c static int remaining_bits(WMAProDecodeCtx *s, GetBitContext *gb) s 1545 libavcodec/wmaprodec.c return s->buf_bit_size - get_bits_count(gb); s 1555 libavcodec/wmaprodec.c static void save_bits(WMAProDecodeCtx *s, GetBitContext* gb, int len, s 1565 libavcodec/wmaprodec.c s->frame_offset = get_bits_count(gb) & 7; s 1566 libavcodec/wmaprodec.c s->num_saved_bits = s->frame_offset; s 1567 libavcodec/wmaprodec.c init_put_bits(&s->pb, s->frame_data, MAX_FRAMESIZE); s 1568 libavcodec/wmaprodec.c buflen = (s->num_saved_bits + len + 7) >> 3; s 1570 libavcodec/wmaprodec.c buflen = (put_bits_count(&s->pb) + len + 7) >> 3; s 1573 libavcodec/wmaprodec.c avpriv_request_sample(s->avctx, "Too small input buffer"); s 1574 libavcodec/wmaprodec.c s->packet_loss = 1; s 1578 libavcodec/wmaprodec.c av_assert0(len <= put_bits_left(&s->pb)); s 1580 libavcodec/wmaprodec.c s->num_saved_bits += len; s 1582 libavcodec/wmaprodec.c avpriv_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), s 1583 libavcodec/wmaprodec.c s->num_saved_bits); s 1587 libavcodec/wmaprodec.c put_bits(&s->pb, align, get_bits(gb, align)); s 1589 libavcodec/wmaprodec.c avpriv_copy_bits(&s->pb, gb->buffer + (get_bits_count(gb) >> 3), len); s 1594 libavcodec/wmaprodec.c PutBitContext tmp = s->pb; s 1598 libavcodec/wmaprodec.c init_get_bits(&s->gb, s->frame_data, s->num_saved_bits); s 1599 libavcodec/wmaprodec.c skip_bits(&s->gb, s->frame_offset); s 1602 libavcodec/wmaprodec.c static int decode_packet(AVCodecContext *avctx, WMAProDecodeCtx *s, s 1605 libavcodec/wmaprodec.c GetBitContext* gb = &s->pgb; s 1619 libavcodec/wmaprodec.c s->packet_done = 0; s 1620 libavcodec/wmaprodec.c if (s->eof_done) s 1624 libavcodec/wmaprodec.c for (i = 0; i < s->nb_channels; i++) { s 1626 libavcodec/wmaprodec.c s->samples_per_frame * sizeof(*s->channel[i].out)); s 1628 libavcodec/wmaprodec.c memcpy(frame->extended_data[i], s->channel[i].out, s 1629 libavcodec/wmaprodec.c s->samples_per_frame * sizeof(*s->channel[i].out) >> 1); s 1635 libavcodec/wmaprodec.c s->eof_done = 1; s 1636 libavcodec/wmaprodec.c s->packet_done = 1; s 1640 libavcodec/wmaprodec.c else if (s->packet_done || s->packet_loss) { s 1641 libavcodec/wmaprodec.c s->packet_done = 0; s 1647 libavcodec/wmaprodec.c s->packet_loss = 1; s 1652 libavcodec/wmaprodec.c s->next_packet_start = buf_size - avctx->block_align; s 1655 libavcodec/wmaprodec.c s->next_packet_start = buf_size - FFMIN(buf_size, avctx->block_align); s 1658 libavcodec/wmaprodec.c s->buf_bit_size = buf_size << 3; s 1661 libavcodec/wmaprodec.c init_get_bits(gb, buf, s->buf_bit_size); s 1672 libavcodec/wmaprodec.c num_bits_prev_frame = get_bits(gb, s->log2_frame_size); s 1675 libavcodec/wmaprodec.c s->skip_packets = get_bits(gb, 8); s 1676 libavcodec/wmaprodec.c ff_dlog(avctx, "packet[%d]: skip packets %d\n", avctx->frame_number, s->skip_packets); s 1683 libavcodec/wmaprodec.c if (avctx->codec_id == AV_CODEC_ID_WMAPRO && !s->packet_loss && s 1684 libavcodec/wmaprodec.c ((s->packet_sequence_number + 1) & 0xF) != packet_sequence_number) { s 1685 libavcodec/wmaprodec.c s->packet_loss = 1; s 1688 libavcodec/wmaprodec.c s->packet_sequence_number, packet_sequence_number); s 1690 libavcodec/wmaprodec.c s->packet_sequence_number = packet_sequence_number; s 1693 libavcodec/wmaprodec.c int remaining_packet_bits = s->buf_bit_size - get_bits_count(gb); s 1696 libavcodec/wmaprodec.c s->packet_done = 1; s 1701 libavcodec/wmaprodec.c save_bits(s, gb, num_bits_prev_frame, 1); s 1703 libavcodec/wmaprodec.c s->num_saved_bits - s->frame_offset); s 1706 libavcodec/wmaprodec.c if (!s->packet_loss) s 1707 libavcodec/wmaprodec.c decode_frame(s, data, got_frame_ptr); s 1708 libavcodec/wmaprodec.c } else if (s->num_saved_bits - s->frame_offset) { s 1710 libavcodec/wmaprodec.c s->num_saved_bits - s->frame_offset); s 1713 libavcodec/wmaprodec.c if (s->packet_loss) { s 1717 libavcodec/wmaprodec.c s->num_saved_bits = 0; s 1718 libavcodec/wmaprodec.c s->packet_loss = 0; s 1722 libavcodec/wmaprodec.c s->buf_bit_size = (avpkt->size - s->next_packet_start) << 3; s 1723 libavcodec/wmaprodec.c init_get_bits(gb, avpkt->data, s->buf_bit_size); s 1724 libavcodec/wmaprodec.c skip_bits(gb, s->packet_offset); s 1725 libavcodec/wmaprodec.c if (s->len_prefix && remaining_bits(s, gb) > s->log2_frame_size && s 1726 libavcodec/wmaprodec.c (frame_size = show_bits(gb, s->log2_frame_size)) && s 1727 libavcodec/wmaprodec.c frame_size <= remaining_bits(s, gb)) { s 1728 libavcodec/wmaprodec.c save_bits(s, gb, frame_size, 0); s 1729 libavcodec/wmaprodec.c if (!s->packet_loss) s 1730 libavcodec/wmaprodec.c s->packet_done = !decode_frame(s, data, got_frame_ptr); s 1731 libavcodec/wmaprodec.c } else if (!s->len_prefix s 1732 libavcodec/wmaprodec.c && s->num_saved_bits > get_bits_count(&s->gb)) { s 1740 libavcodec/wmaprodec.c s->packet_done = !decode_frame(s, data, got_frame_ptr); s 1742 libavcodec/wmaprodec.c s->packet_done = 1; s 1746 libavcodec/wmaprodec.c if (remaining_bits(s, gb) < 0) { s 1747 libavcodec/wmaprodec.c av_log(avctx, AV_LOG_ERROR, "Overread %d\n", -remaining_bits(s, gb)); s 1748 libavcodec/wmaprodec.c s->packet_loss = 1; s 1751 libavcodec/wmaprodec.c if (s->packet_done && !s->packet_loss && s 1752 libavcodec/wmaprodec.c remaining_bits(s, gb) > 0) { s 1755 libavcodec/wmaprodec.c save_bits(s, gb, remaining_bits(s, gb), 0); s 1758 libavcodec/wmaprodec.c s->packet_offset = get_bits_count(gb) & 7; s 1759 libavcodec/wmaprodec.c if (s->packet_loss) s 1775 libavcodec/wmaprodec.c WMAProDecodeCtx *s = avctx->priv_data; s 1780 libavcodec/wmaprodec.c frame->nb_samples = s->samples_per_frame; s 1782 libavcodec/wmaprodec.c s->packet_loss = 1; s 1786 libavcodec/wmaprodec.c return decode_packet(avctx, s, data, got_frame_ptr, avpkt); s 1792 libavcodec/wmaprodec.c XMADecodeCtx *s = avctx->priv_data; s 1797 libavcodec/wmaprodec.c if (!s->frames[s->current_stream]->data[0]) { s 1798 libavcodec/wmaprodec.c s->frames[s->current_stream]->nb_samples = 512; s 1799 libavcodec/wmaprodec.c if ((ret = ff_get_buffer(avctx, s->frames[s->current_stream], 0)) < 0) { s 1804 libavcodec/wmaprodec.c ret = decode_packet(avctx, &s->xma[s->current_stream], s->frames[s->current_stream], s 1807 libavcodec/wmaprodec.c if (got_stream_frame_ptr && s->offset[s->current_stream] >= 64) { s 1814 libavcodec/wmaprodec.c int start_ch = s->start_channel[s->current_stream]; s 1815 libavcodec/wmaprodec.c memcpy(&s->samples[start_ch + 0][s->offset[s->current_stream] * 512], s 1816 libavcodec/wmaprodec.c s->frames[s->current_stream]->extended_data[0], 512 * 4); s 1817 libavcodec/wmaprodec.c if (s->xma[s->current_stream].nb_channels > 1) s 1818 libavcodec/wmaprodec.c memcpy(&s->samples[start_ch + 1][s->offset[s->current_stream] * 512], s 1819 libavcodec/wmaprodec.c s->frames[s->current_stream]->extended_data[1], 512 * 4); s 1820 libavcodec/wmaprodec.c s->offset[s->current_stream]++; s 1822 libavcodec/wmaprodec.c memset(s->offset, 0, sizeof(s->offset)); s 1823 libavcodec/wmaprodec.c s->current_stream = 0; s 1830 libavcodec/wmaprodec.c if (s->xma[s->current_stream].packet_done || s 1831 libavcodec/wmaprodec.c s->xma[s->current_stream].packet_loss) { s 1834 libavcodec/wmaprodec.c if (s->xma[s->current_stream].skip_packets != 0) { s 1837 libavcodec/wmaprodec.c min[0] = s->xma[0].skip_packets; s 1840 libavcodec/wmaprodec.c for (i = 1; i < s->num_streams; i++) { s 1841 libavcodec/wmaprodec.c if (s->xma[i].skip_packets < min[0]) { s 1842 libavcodec/wmaprodec.c min[0] = s->xma[i].skip_packets; s 1847 libavcodec/wmaprodec.c s->current_stream = min[1]; s 1851 libavcodec/wmaprodec.c for (i = 0; i < s->num_streams; i++) { s 1852 libavcodec/wmaprodec.c s->xma[i].skip_packets = FFMAX(0, s->xma[i].skip_packets - 1); s 1856 libavcodec/wmaprodec.c for (i = 0; i < s->num_streams; i++) { s 1857 libavcodec/wmaprodec.c offset = FFMIN(offset, s->offset[i]); s 1867 libavcodec/wmaprodec.c for (i = 0; i < s->num_streams; i++) { s 1868 libavcodec/wmaprodec.c int start_ch = s->start_channel[i]; s 1869 libavcodec/wmaprodec.c memcpy(frame->extended_data[start_ch + 0], s->samples[start_ch + 0], frame->nb_samples * 4); s 1870 libavcodec/wmaprodec.c if (s->xma[i].nb_channels > 1) s 1871 libavcodec/wmaprodec.c memcpy(frame->extended_data[start_ch + 1], s->samples[start_ch + 1], frame->nb_samples * 4); s 1873 libavcodec/wmaprodec.c s->offset[i] -= offset; s 1874 libavcodec/wmaprodec.c if (s->offset[i]) { s 1875 libavcodec/wmaprodec.c memmove(s->samples[start_ch + 0], s->samples[start_ch + 0] + frame->nb_samples, s->offset[i] * 4 * 512); s 1876 libavcodec/wmaprodec.c if (s->xma[i].nb_channels > 1) s 1877 libavcodec/wmaprodec.c memmove(s->samples[start_ch + 1], s->samples[start_ch + 1] + frame->nb_samples, s->offset[i] * 4 * 512); s 1890 libavcodec/wmaprodec.c XMADecodeCtx *s = avctx->priv_data; s 1898 libavcodec/wmaprodec.c s->num_streams = (avctx->channels + 1) / 2; s 1900 libavcodec/wmaprodec.c s->num_streams = avctx->extradata[1]; s 1901 libavcodec/wmaprodec.c if (avctx->extradata_size != (32 + ((avctx->extradata[0]==3)?0:8) + 4*s->num_streams)) { s 1903 libavcodec/wmaprodec.c s->num_streams = 0; s 1907 libavcodec/wmaprodec.c s->num_streams = avctx->extradata[4]; s 1908 libavcodec/wmaprodec.c if (avctx->extradata_size != (8 + 20*s->num_streams)) { s 1910 libavcodec/wmaprodec.c s->num_streams = 0; s 1919 libavcodec/wmaprodec.c if (avctx->channels > XMA_MAX_CHANNELS || s->num_streams > XMA_MAX_STREAMS || s 1920 libavcodec/wmaprodec.c s->num_streams <= 0 s 1922 libavcodec/wmaprodec.c avpriv_request_sample(avctx, "More than %d channels in %d streams", XMA_MAX_CHANNELS, s->num_streams); s 1923 libavcodec/wmaprodec.c s->num_streams = 0; s 1928 libavcodec/wmaprodec.c for (i = 0; i < s->num_streams; i++) { s 1929 libavcodec/wmaprodec.c ret = decode_init(&s->xma[i], avctx, i); s 1932 libavcodec/wmaprodec.c s->frames[i] = av_frame_alloc(); s 1933 libavcodec/wmaprodec.c if (!s->frames[i]) s 1936 libavcodec/wmaprodec.c s->start_channel[i] = start_channels; s 1937 libavcodec/wmaprodec.c start_channels += s->xma[i].nb_channels; s 1947 libavcodec/wmaprodec.c XMADecodeCtx *s = avctx->priv_data; s 1950 libavcodec/wmaprodec.c for (i = 0; i < s->num_streams; i++) { s 1951 libavcodec/wmaprodec.c decode_end(&s->xma[i]); s 1952 libavcodec/wmaprodec.c av_frame_free(&s->frames[i]); s 1954 libavcodec/wmaprodec.c s->num_streams = 0; s 1959 libavcodec/wmaprodec.c static void flush(WMAProDecodeCtx *s) s 1964 libavcodec/wmaprodec.c for (i = 0; i < s->nb_channels; i++) s 1965 libavcodec/wmaprodec.c memset(s->channel[i].out, 0, s->samples_per_frame * s 1966 libavcodec/wmaprodec.c sizeof(*s->channel[i].out)); s 1967 libavcodec/wmaprodec.c s->packet_loss = 1; s 1968 libavcodec/wmaprodec.c s->skip_packets = 0; s 1969 libavcodec/wmaprodec.c s->eof_done = 0; s 1979 libavcodec/wmaprodec.c WMAProDecodeCtx *s = avctx->priv_data; s 1981 libavcodec/wmaprodec.c flush(s); s 1986 libavcodec/wmaprodec.c XMADecodeCtx *s = avctx->priv_data; s 1989 libavcodec/wmaprodec.c for (i = 0; i < s->num_streams; i++) s 1990 libavcodec/wmaprodec.c flush(&s->xma[i]); s 1992 libavcodec/wmaprodec.c memset(s->offset, 0, sizeof(s->offset)); s 1993 libavcodec/wmaprodec.c s->current_stream = 0; s 338 libavcodec/wmavoice.c WMAVoiceContext *s = ctx->priv_data; s 341 libavcodec/wmavoice.c s->postfilter_agc = 0; s 342 libavcodec/wmavoice.c s->sframe_cache_size = 0; s 343 libavcodec/wmavoice.c s->skip_bits_next = 0; s 344 libavcodec/wmavoice.c for (n = 0; n < s->lsps; n++) s 345 libavcodec/wmavoice.c s->prev_lsps[n] = M_PI * (n + 1.0) / (s->lsps + 1.0); s 346 libavcodec/wmavoice.c memset(s->excitation_history, 0, s 347 libavcodec/wmavoice.c sizeof(*s->excitation_history) * MAX_SIGNAL_HISTORY); s 348 libavcodec/wmavoice.c memset(s->synth_history, 0, s 349 libavcodec/wmavoice.c sizeof(*s->synth_history) * MAX_LSPS); s 350 libavcodec/wmavoice.c memset(s->gain_pred_err, 0, s 351 libavcodec/wmavoice.c sizeof(s->gain_pred_err)); s 353 libavcodec/wmavoice.c if (s->do_apf) { s 354 libavcodec/wmavoice.c memset(&s->synth_filter_out_buf[MAX_LSPS_ALIGN16 - s->lsps], 0, s 355 libavcodec/wmavoice.c sizeof(*s->synth_filter_out_buf) * s->lsps); s 356 libavcodec/wmavoice.c memset(s->dcf_mem, 0, s 357 libavcodec/wmavoice.c sizeof(*s->dcf_mem) * 2); s 358 libavcodec/wmavoice.c memset(s->zero_exc_pf, 0, s 359 libavcodec/wmavoice.c sizeof(*s->zero_exc_pf) * s->history_nsamples); s 360 libavcodec/wmavoice.c memset(s->denoise_filter_cache, 0, sizeof(s->denoise_filter_cache)); s 371 libavcodec/wmavoice.c WMAVoiceContext *s = ctx->priv_data; s 395 libavcodec/wmavoice.c s->spillover_bitsize = 3 + av_ceil_log2(ctx->block_align); s 396 libavcodec/wmavoice.c s->do_apf = flags & 0x1; s 397 libavcodec/wmavoice.c if (s->do_apf) { s 398 libavcodec/wmavoice.c ff_rdft_init(&s->rdft, 7, DFT_R2C); s 399 libavcodec/wmavoice.c ff_rdft_init(&s->irdft, 7, IDFT_C2R); s 400 libavcodec/wmavoice.c ff_dct_init(&s->dct, 6, DCT_I); s 401 libavcodec/wmavoice.c ff_dct_init(&s->dst, 6, DST_I); s 403 libavcodec/wmavoice.c ff_sine_window_init(s->cos, 256); s 404 libavcodec/wmavoice.c memcpy(&s->sin[255], s->cos, 256 * sizeof(s->cos[0])); s 406 libavcodec/wmavoice.c s->sin[n] = -s->sin[510 - n]; s 407 libavcodec/wmavoice.c s->cos[510 - n] = s->cos[n]; s 410 libavcodec/wmavoice.c s->denoise_strength = (flags >> 2) & 0xF; s 411 libavcodec/wmavoice.c if (s->denoise_strength >= 12) { s 414 libavcodec/wmavoice.c s->denoise_strength); s 417 libavcodec/wmavoice.c s->denoise_tilt_corr = !!(flags & 0x40); s 418 libavcodec/wmavoice.c s->dc_level = (flags >> 7) & 0xF; s 419 libavcodec/wmavoice.c s->lsp_q_mode = !!(flags & 0x2000); s 420 libavcodec/wmavoice.c s->lsp_def_mode = !!(flags & 0x4000); s 423 libavcodec/wmavoice.c s->lsps = 16; s 425 libavcodec/wmavoice.c s->lsps = 10; s 427 libavcodec/wmavoice.c for (n = 0; n < s->lsps; n++) s 428 libavcodec/wmavoice.c s->prev_lsps[n] = M_PI * (n + 1.0) / (s->lsps + 1.0); s 430 libavcodec/wmavoice.c init_get_bits(&s->gb, ctx->extradata + 22, (ctx->extradata_size - 22) << 3); s 431 libavcodec/wmavoice.c if (decode_vbmtree(&s->gb, s->vbm_tree) < 0) { s 439 libavcodec/wmavoice.c s->min_pitch_val = ((ctx->sample_rate << 8) / 400 + 50) >> 8; s 440 libavcodec/wmavoice.c s->max_pitch_val = ((ctx->sample_rate << 8) * 37 / 2000 + 50) >> 8; s 441 libavcodec/wmavoice.c pitch_range = s->max_pitch_val - s->min_pitch_val; s 446 libavcodec/wmavoice.c s->pitch_nbits = av_ceil_log2(pitch_range); s 447 libavcodec/wmavoice.c s->last_pitch_val = 40; s 448 libavcodec/wmavoice.c s->last_acb_type = ACB_TYPE_NONE; s 449 libavcodec/wmavoice.c s->history_nsamples = s->max_pitch_val + 8; s 451 libavcodec/wmavoice.c if (s->min_pitch_val < 1 || s->history_nsamples > MAX_SIGNAL_HISTORY) { s 462 libavcodec/wmavoice.c s->block_conv_table[0] = s->min_pitch_val; s 463 libavcodec/wmavoice.c s->block_conv_table[1] = (pitch_range * 25) >> 6; s 464 libavcodec/wmavoice.c s->block_conv_table[2] = (pitch_range * 44) >> 6; s 465 libavcodec/wmavoice.c s->block_conv_table[3] = s->max_pitch_val - 1; s 466 libavcodec/wmavoice.c s->block_delta_pitch_hrange = (pitch_range >> 3) & ~0xF; s 467 libavcodec/wmavoice.c if (s->block_delta_pitch_hrange <= 0) { s 471 libavcodec/wmavoice.c s->block_delta_pitch_nbits = 1 + av_ceil_log2(s->block_delta_pitch_hrange); s 472 libavcodec/wmavoice.c s->block_pitch_range = s->block_conv_table[2] + s 473 libavcodec/wmavoice.c s->block_conv_table[3] + 1 + s 474 libavcodec/wmavoice.c 2 * (s->block_conv_table[1] - 2 * s->min_pitch_val); s 475 libavcodec/wmavoice.c s->block_pitch_nbits = av_ceil_log2(s->block_pitch_range); s 546 libavcodec/wmavoice.c static int kalman_smoothen(WMAVoiceContext *s, int pitch, s 551 libavcodec/wmavoice.c const float *ptr = &in[-FFMAX(s->min_pitch_val, pitch - 3)], s 552 libavcodec/wmavoice.c *end = &in[-FFMIN(s->max_pitch_val, pitch + 3)], s 605 libavcodec/wmavoice.c static void calc_input_response(WMAVoiceContext *s, float *lpcs, s 613 libavcodec/wmavoice.c s->rdft.rdft_calc(&s->rdft, lpcs); s 641 libavcodec/wmavoice.c pwr = wmavoice_denoise_power_table[s->denoise_strength][idx]; s 658 libavcodec/wmavoice.c s->dct.dct_calc(&s->dct, lpcs); s 659 libavcodec/wmavoice.c s->dst.dct_calc(&s->dst, lpcs); s 663 libavcodec/wmavoice.c coeffs[0] = coeffs[0] * s->cos[idx]; s 665 libavcodec/wmavoice.c last_coeff = coeffs[64] * s->cos[idx]; s 668 libavcodec/wmavoice.c coeffs[n * 2 + 1] = coeffs[n] * s->sin[idx]; s 669 libavcodec/wmavoice.c coeffs[n * 2] = coeffs[n] * s->cos[idx]; s 674 libavcodec/wmavoice.c coeffs[n * 2 + 1] = coeffs[n] * s->sin[idx]; s 675 libavcodec/wmavoice.c coeffs[n * 2] = coeffs[n] * s->cos[idx]; s 680 libavcodec/wmavoice.c s->irdft.rdft_calc(&s->irdft, coeffs); s 684 libavcodec/wmavoice.c if (s->denoise_tilt_corr) { s 724 libavcodec/wmavoice.c static void wiener_denoise(WMAVoiceContext *s, int fcb_type, s 731 libavcodec/wmavoice.c float *tilted_lpcs = s->tilted_lpcs_pf, s 732 libavcodec/wmavoice.c *coeffs = s->denoise_coeffs_pf, tilt_mem = 0; s 735 libavcodec/wmavoice.c memcpy(&tilted_lpcs[1], lpcs, sizeof(lpcs[0]) * s->lsps); s 736 libavcodec/wmavoice.c memset(&tilted_lpcs[s->lsps + 1], 0, s 737 libavcodec/wmavoice.c sizeof(tilted_lpcs[0]) * (128 - s->lsps - 1)); s 738 libavcodec/wmavoice.c ff_tilt_compensation(&tilt_mem, 0.7 * tilt_factor(lpcs, s->lsps), s 739 libavcodec/wmavoice.c tilted_lpcs, s->lsps + 2); s 746 libavcodec/wmavoice.c calc_input_response(s, tilted_lpcs, fcb_type, coeffs, remainder); s 751 libavcodec/wmavoice.c s->rdft.rdft_calc(&s->rdft, synth_pf); s 752 libavcodec/wmavoice.c s->rdft.rdft_calc(&s->rdft, coeffs); s 760 libavcodec/wmavoice.c s->irdft.rdft_calc(&s->irdft, synth_pf); s 764 libavcodec/wmavoice.c if (s->denoise_filter_cache_size) { s 765 libavcodec/wmavoice.c lim = FFMIN(s->denoise_filter_cache_size, size); s 767 libavcodec/wmavoice.c synth_pf[n] += s->denoise_filter_cache[n]; s 768 libavcodec/wmavoice.c s->denoise_filter_cache_size -= lim; s 769 libavcodec/wmavoice.c memmove(s->denoise_filter_cache, &s->denoise_filter_cache[size], s 770 libavcodec/wmavoice.c sizeof(s->denoise_filter_cache[0]) * s->denoise_filter_cache_size); s 775 libavcodec/wmavoice.c lim = FFMIN(remainder, s->denoise_filter_cache_size); s 777 libavcodec/wmavoice.c s->denoise_filter_cache[n] += synth_pf[size + n]; s 779 libavcodec/wmavoice.c memcpy(&s->denoise_filter_cache[lim], &synth_pf[size + lim], s 780 libavcodec/wmavoice.c sizeof(s->denoise_filter_cache[0]) * (remainder - lim)); s 781 libavcodec/wmavoice.c s->denoise_filter_cache_size = remainder; s 806 libavcodec/wmavoice.c static void postfilter(WMAVoiceContext *s, const float *synth, s 812 libavcodec/wmavoice.c *synth_pf = &s->synth_filter_out_buf[MAX_LSPS_ALIGN16], s 818 libavcodec/wmavoice.c ff_celp_lp_zero_synthesis_filterf(zero_exc_pf, lpcs, synth, size, s->lsps); s 821 libavcodec/wmavoice.c !kalman_smoothen(s, pitch, zero_exc_pf, synth_filter_in_buf, size)) s 826 libavcodec/wmavoice.c synth_filter_in, size, s->lsps); s 827 libavcodec/wmavoice.c memcpy(&synth_pf[-s->lsps], &synth_pf[size - s->lsps], s 828 libavcodec/wmavoice.c sizeof(synth_pf[0]) * s->lsps); s 830 libavcodec/wmavoice.c wiener_denoise(s, fcb_type, synth_pf, size, lpcs); s 833 libavcodec/wmavoice.c &s->postfilter_agc); s 835 libavcodec/wmavoice.c if (s->dc_level > 8) { s 842 libavcodec/wmavoice.c 0.93980580475, s->dcf_mem, size); s 1036 libavcodec/wmavoice.c static void aw_parse_coords(WMAVoiceContext *s, GetBitContext *gb, s 1052 libavcodec/wmavoice.c s->aw_idx_is_ext = 0; s 1054 libavcodec/wmavoice.c s->aw_idx_is_ext = 1; s 1060 libavcodec/wmavoice.c s->aw_pulse_range = FFMIN(pitch[0], pitch[1]) > 32 ? 24 : 16; s 1062 libavcodec/wmavoice.c s->aw_n_pulses[0] = (pitch[0] - 1 + MAX_FRAMESIZE / 2 - offset) / pitch[0]; s 1063 libavcodec/wmavoice.c s->aw_first_pulse_off[0] = offset - s->aw_pulse_range / 2; s 1064 libavcodec/wmavoice.c offset += s->aw_n_pulses[0] * pitch[0]; s 1065 libavcodec/wmavoice.c s->aw_n_pulses[1] = (pitch[1] - 1 + MAX_FRAMESIZE - offset) / pitch[1]; s 1066 libavcodec/wmavoice.c s->aw_first_pulse_off[1] = offset - (MAX_FRAMESIZE + s->aw_pulse_range) / 2; s 1072 libavcodec/wmavoice.c while (s->aw_first_pulse_off[1] - pitch[1] + s->aw_pulse_range > 0) s 1073 libavcodec/wmavoice.c s->aw_first_pulse_off[1] -= pitch[1]; s 1075 libavcodec/wmavoice.c while (s->aw_first_pulse_off[0] - pitch[0] + s->aw_pulse_range > 0) s 1076 libavcodec/wmavoice.c s->aw_first_pulse_off[0] -= pitch[0]; s 1088 libavcodec/wmavoice.c static int aw_pulse_set2(WMAVoiceContext *s, GetBitContext *gb, s 1100 libavcodec/wmavoice.c int pulse_off = s->aw_first_pulse_off[block_idx], s 1104 libavcodec/wmavoice.c if (s->aw_n_pulses[block_idx] > 0) s 1105 libavcodec/wmavoice.c while (pulse_off + s->aw_pulse_range < 1) s 1109 libavcodec/wmavoice.c if (s->aw_n_pulses[0] > 0) { s 1114 libavcodec/wmavoice.c if (s->aw_n_pulses[block_idx] > 0) s 1115 libavcodec/wmavoice.c pulse_off = s->aw_next_pulse_off_cache; s 1119 libavcodec/wmavoice.c pulse_start = s->aw_n_pulses[block_idx] > 0 ? pulse_off - range / 2 : 0; s 1127 libavcodec/wmavoice.c if (s->aw_n_pulses[block_idx] > 0) s 1129 libavcodec/wmavoice.c int excl_range = s->aw_pulse_range; // always 16 or 24 s 1142 libavcodec/wmavoice.c aidx = get_bits(gb, s->aw_n_pulses[0] > 0 ? 5 - 2 * block_idx : 4); s 1167 libavcodec/wmavoice.c s->aw_next_pulse_off_cache = n ? fcb->pitch_lag - n : 0; s 1178 libavcodec/wmavoice.c static void aw_pulse_set1(WMAVoiceContext *s, GetBitContext *gb, s 1181 libavcodec/wmavoice.c int val = get_bits(gb, 12 - 2 * (s->aw_idx_is_ext && !block_idx)); s 1184 libavcodec/wmavoice.c if (s->aw_n_pulses[block_idx] > 0) { s 1187 libavcodec/wmavoice.c if (s->aw_pulse_range == 24) { // 3 pulses, 1:sign + 3:index each s 1202 libavcodec/wmavoice.c s->aw_first_pulse_off[block_idx]; s 1275 libavcodec/wmavoice.c static void synth_block_hardcoded(WMAVoiceContext *s, GetBitContext *gb, s 1287 libavcodec/wmavoice.c r_idx = pRNG(s->frame_cntr, block_idx, size); s 1288 libavcodec/wmavoice.c gain = s->silence_gain; s 1295 libavcodec/wmavoice.c memset(s->gain_pred_err, 0, sizeof(s->gain_pred_err)); s 1306 libavcodec/wmavoice.c static void synth_block_fcb_acb(WMAVoiceContext *s, GetBitContext *gb, s 1330 libavcodec/wmavoice.c aw_pulse_set1(s, gb, block_idx, &fcb); s 1331 libavcodec/wmavoice.c if (aw_pulse_set2(s, gb, block_idx, &fcb)) { s 1335 libavcodec/wmavoice.c int r_idx = pRNG(s->frame_cntr, block_idx, size); s 1339 libavcodec/wmavoice.c wmavoice_std_codebook[r_idx + n] * s->silence_gain; s 1369 libavcodec/wmavoice.c fcb_gain = expf(avpriv_scalarproduct_float_c(s->gain_pred_err, s 1378 libavcodec/wmavoice.c memmove(&s->gain_pred_err[gain_weight], s->gain_pred_err, s 1379 libavcodec/wmavoice.c sizeof(*s->gain_pred_err) * (6 - gain_weight)); s 1381 libavcodec/wmavoice.c s->gain_pred_err[n] = pred_err; s 1389 libavcodec/wmavoice.c int pitch_sh16 = (s->last_pitch_val << 16) + s 1390 libavcodec/wmavoice.c s->pitch_diff_sh16 * abs_idx; s 1394 libavcodec/wmavoice.c if (s->pitch_diff_sh16) { s 1395 libavcodec/wmavoice.c if (s->pitch_diff_sh16 > 0) { s 1399 libavcodec/wmavoice.c len = av_clip((idx_sh16 - next_idx_sh16) / s->pitch_diff_sh16 / 8, s 1440 libavcodec/wmavoice.c static void synth_block(WMAVoiceContext *s, GetBitContext *gb, s 1453 libavcodec/wmavoice.c synth_block_hardcoded(s, gb, block_idx, size, frame_desc, excitation); s 1455 libavcodec/wmavoice.c synth_block_fcb_acb(s, gb, block_idx, size, block_pitch_sh2, s 1460 libavcodec/wmavoice.c for (n = 0; n < s->lsps; n++) // LSF -> LSP s 1462 libavcodec/wmavoice.c ff_acelp_lspd2lpc(i_lsps, lpcs, s->lsps >> 1); s 1465 libavcodec/wmavoice.c ff_celp_lp_synthesis_filterf(synth, lpcs, excitation, size, s->lsps); s 1487 libavcodec/wmavoice.c WMAVoiceContext *s = ctx->priv_data; s 1492 libavcodec/wmavoice.c int bd_idx = s->vbm_tree[get_vlc2(gb, frame_type_vlc.table, 6, 3)], block_nsamples; s 1510 libavcodec/wmavoice.c cur_pitch_val = s->min_pitch_val + get_bits(gb, s->pitch_nbits); s 1511 libavcodec/wmavoice.c cur_pitch_val = FFMIN(cur_pitch_val, s->max_pitch_val - 1); s 1512 libavcodec/wmavoice.c if (s->last_acb_type == ACB_TYPE_NONE || s 1513 libavcodec/wmavoice.c 20 * abs(cur_pitch_val - s->last_pitch_val) > s 1514 libavcodec/wmavoice.c (cur_pitch_val + s->last_pitch_val)) s 1515 libavcodec/wmavoice.c s->last_pitch_val = cur_pitch_val; s 1522 libavcodec/wmavoice.c MUL16((n_blocks_x2 - fac), s->last_pitch_val) + s 1527 libavcodec/wmavoice.c s->pitch_diff_sh16 = s 1528 libavcodec/wmavoice.c (cur_pitch_val - s->last_pitch_val) * (1 << 16) / MAX_FRAMESIZE; s 1534 libavcodec/wmavoice.c s->silence_gain = wmavoice_gain_silence[get_bits(gb, 8)]; s 1537 libavcodec/wmavoice.c aw_parse_coords(s, gb, pitch); s 1553 libavcodec/wmavoice.c t1 = (s->block_conv_table[1] - s->block_conv_table[0]) << 2, s 1554 libavcodec/wmavoice.c t2 = (s->block_conv_table[2] - s->block_conv_table[1]) << 1, s 1555 libavcodec/wmavoice.c t3 = s->block_conv_table[3] - s->block_conv_table[2] + 1; s 1558 libavcodec/wmavoice.c block_pitch = get_bits(gb, s->block_pitch_nbits); s 1560 libavcodec/wmavoice.c block_pitch = last_block_pitch - s->block_delta_pitch_hrange + s 1561 libavcodec/wmavoice.c get_bits(gb, s->block_delta_pitch_nbits); s 1564 libavcodec/wmavoice.c s->block_delta_pitch_hrange, s 1565 libavcodec/wmavoice.c s->block_pitch_range - s 1566 libavcodec/wmavoice.c s->block_delta_pitch_hrange); s 1570 libavcodec/wmavoice.c bl_pitch_sh2 = (s->block_conv_table[0] << 2) + block_pitch; s 1575 libavcodec/wmavoice.c (s->block_conv_table[1] << 2) + (block_pitch << 1); s 1580 libavcodec/wmavoice.c (s->block_conv_table[2] + block_pitch) << 2; s 1582 libavcodec/wmavoice.c bl_pitch_sh2 = s->block_conv_table[3] << 2; s 1599 libavcodec/wmavoice.c synth_block(s, gb, n, block_nsamples, bl_pitch_sh2, s 1607 libavcodec/wmavoice.c if (s->do_apf) { s 1611 libavcodec/wmavoice.c for (n = 0; n < s->lsps; n++) // LSF -> LSP s 1613 libavcodec/wmavoice.c ff_acelp_lspd2lpc(i_lsps, lpcs, s->lsps >> 1); s 1614 libavcodec/wmavoice.c postfilter(s, synth, samples, 80, lpcs, s 1615 libavcodec/wmavoice.c &s->zero_exc_pf[s->history_nsamples + MAX_FRAMESIZE * frame_idx], s 1618 libavcodec/wmavoice.c for (n = 0; n < s->lsps; n++) // LSF -> LSP s 1620 libavcodec/wmavoice.c ff_acelp_lspd2lpc(i_lsps, lpcs, s->lsps >> 1); s 1621 libavcodec/wmavoice.c postfilter(s, &synth[80], &samples[80], 80, lpcs, s 1622 libavcodec/wmavoice.c &s->zero_exc_pf[s->history_nsamples + MAX_FRAMESIZE * frame_idx + 80], s 1628 libavcodec/wmavoice.c s->frame_cntr++; s 1629 libavcodec/wmavoice.c if (s->frame_cntr >= 0xFFFF) s->frame_cntr -= 0xFFFF; // i.e. modulo (%) s 1630 libavcodec/wmavoice.c s->last_acb_type = frame_descs[bd_idx].acb_type; s 1633 libavcodec/wmavoice.c s->last_pitch_val = 0; s 1636 libavcodec/wmavoice.c s->last_pitch_val = cur_pitch_val; s 1639 libavcodec/wmavoice.c s->last_pitch_val = pitch[frame_descs[bd_idx].n_blocks - 1]; s 1707 libavcodec/wmavoice.c WMAVoiceContext *s = ctx->priv_data; s 1708 libavcodec/wmavoice.c GetBitContext *gb = &s->gb, s_gb; s 1711 libavcodec/wmavoice.c const double *mean_lsf = s->lsps == 16 ? s 1712 libavcodec/wmavoice.c wmavoice_mean_lsf16[s->lsp_def_mode] : wmavoice_mean_lsf10[s->lsp_def_mode]; s 1717 libavcodec/wmavoice.c memcpy(synth, s->synth_history, s 1718 libavcodec/wmavoice.c s->lsps * sizeof(*synth)); s 1719 libavcodec/wmavoice.c memcpy(excitation, s->excitation_history, s 1720 libavcodec/wmavoice.c s->history_nsamples * sizeof(*excitation)); s 1722 libavcodec/wmavoice.c if (s->sframe_cache_size > 0) { s 1724 libavcodec/wmavoice.c init_get_bits(gb, s->sframe_cache, s->sframe_cache_size); s 1725 libavcodec/wmavoice.c s->sframe_cache_size = 0; s 1748 libavcodec/wmavoice.c if (s->has_residual_lsps) { s 1751 libavcodec/wmavoice.c for (n = 0; n < s->lsps; n++) s 1752 libavcodec/wmavoice.c prev_lsps[n] = s->prev_lsps[n] - mean_lsf[n]; s 1754 libavcodec/wmavoice.c if (s->lsps == 10) { s 1755 libavcodec/wmavoice.c dequant_lsp10r(gb, lsps[2], prev_lsps, a1, a2, s->lsp_q_mode); s 1757 libavcodec/wmavoice.c dequant_lsp16r(gb, lsps[2], prev_lsps, a1, a2, s->lsp_q_mode); s 1759 libavcodec/wmavoice.c for (n = 0; n < s->lsps; n++) { s 1761 libavcodec/wmavoice.c lsps[1][n] = mean_lsf[n] + (a1[s->lsps + n] - a2[n * 2 + 1]); s 1765 libavcodec/wmavoice.c stabilize_lsps(lsps[n], s->lsps); s 1781 libavcodec/wmavoice.c if (!s->has_residual_lsps) { s 1784 libavcodec/wmavoice.c if (s->lsps == 10) { s 1789 libavcodec/wmavoice.c for (m = 0; m < s->lsps; m++) s 1791 libavcodec/wmavoice.c stabilize_lsps(lsps[n], s->lsps); s 1796 libavcodec/wmavoice.c lsps[n], n == 0 ? s->prev_lsps : lsps[n - 1], s 1797 libavcodec/wmavoice.c &excitation[s->history_nsamples + n * MAX_FRAMESIZE], s 1798 libavcodec/wmavoice.c &synth[s->lsps + n * MAX_FRAMESIZE]))) { s 1820 libavcodec/wmavoice.c memcpy(s->prev_lsps, lsps[2], s 1821 libavcodec/wmavoice.c s->lsps * sizeof(*s->prev_lsps)); s 1822 libavcodec/wmavoice.c memcpy(s->synth_history, &synth[MAX_SFRAMESIZE], s 1823 libavcodec/wmavoice.c s->lsps * sizeof(*synth)); s 1824 libavcodec/wmavoice.c memcpy(s->excitation_history, &excitation[MAX_SFRAMESIZE], s 1825 libavcodec/wmavoice.c s->history_nsamples * sizeof(*excitation)); s 1826 libavcodec/wmavoice.c if (s->do_apf) s 1827 libavcodec/wmavoice.c memmove(s->zero_exc_pf, &s->zero_exc_pf[MAX_SFRAMESIZE], s 1828 libavcodec/wmavoice.c s->history_nsamples * sizeof(*s->zero_exc_pf)); s 1840 libavcodec/wmavoice.c static int parse_packet_header(WMAVoiceContext *s) s 1842 libavcodec/wmavoice.c GetBitContext *gb = &s->gb; s 1846 libavcodec/wmavoice.c s->has_residual_lsps = get_bits1(gb); s 1848 libavcodec/wmavoice.c if (get_bits_left(gb) < 6 + s->spillover_bitsize) s 1855 libavcodec/wmavoice.c s->spillover_nbits = get_bits(gb, s->spillover_bitsize); s 1907 libavcodec/wmavoice.c WMAVoiceContext *s = ctx->priv_data; s 1908 libavcodec/wmavoice.c GetBitContext *gb = &s->gb; s 1917 libavcodec/wmavoice.c init_get_bits8(&s->gb, avpkt->data, size); s 1924 libavcodec/wmavoice.c s->spillover_nbits = 0; s 1925 libavcodec/wmavoice.c s->nb_superframes = 0; s 1927 libavcodec/wmavoice.c if ((res = parse_packet_header(s)) < 0) s 1929 libavcodec/wmavoice.c s->nb_superframes = res; s 1935 libavcodec/wmavoice.c if (s->sframe_cache_size > 0) { s 1937 libavcodec/wmavoice.c if (cnt + s->spillover_nbits > avpkt->size * 8) { s 1938 libavcodec/wmavoice.c s->spillover_nbits = avpkt->size * 8 - cnt; s 1940 libavcodec/wmavoice.c copy_bits(&s->pb, avpkt->data, size, gb, s->spillover_nbits); s 1941 libavcodec/wmavoice.c flush_put_bits(&s->pb); s 1942 libavcodec/wmavoice.c s->sframe_cache_size += s->spillover_nbits; s 1945 libavcodec/wmavoice.c cnt += s->spillover_nbits; s 1946 libavcodec/wmavoice.c s->skip_bits_next = cnt & 7; s 1950 libavcodec/wmavoice.c skip_bits_long (gb, s->spillover_nbits - cnt + s 1952 libavcodec/wmavoice.c } else if (s->spillover_nbits) { s 1953 libavcodec/wmavoice.c skip_bits_long(gb, s->spillover_nbits); // resync s 1955 libavcodec/wmavoice.c } else if (s->skip_bits_next) s 1956 libavcodec/wmavoice.c skip_bits(gb, s->skip_bits_next); s 1959 libavcodec/wmavoice.c s->sframe_cache_size = 0; s 1960 libavcodec/wmavoice.c s->skip_bits_next = 0; s 1962 libavcodec/wmavoice.c if (s->nb_superframes-- == 0) { s 1965 libavcodec/wmavoice.c } else if (s->nb_superframes > 0) { s 1970 libavcodec/wmavoice.c s->skip_bits_next = cnt & 7; s 1974 libavcodec/wmavoice.c } else if ((s->sframe_cache_size = pos) > 0) { s 1976 libavcodec/wmavoice.c init_put_bits(&s->pb, s->sframe_cache, SFRAME_CACHE_MAXSIZE); s 1977 libavcodec/wmavoice.c copy_bits(&s->pb, avpkt->data, size, gb, s->sframe_cache_size); s 1987 libavcodec/wmavoice.c WMAVoiceContext *s = ctx->priv_data; s 1989 libavcodec/wmavoice.c if (s->do_apf) { s 1990 libavcodec/wmavoice.c ff_rdft_end(&s->rdft); s 1991 libavcodec/wmavoice.c ff_rdft_end(&s->irdft); s 1992 libavcodec/wmavoice.c ff_dct_end(&s->dct); s 1993 libavcodec/wmavoice.c ff_dct_end(&s->dst); s 33 libavcodec/wmv2.c MpegEncContext *const s = &w->s; s 35 libavcodec/wmv2.c ff_blockdsp_init(&s->bdsp, s->avctx); s 37 libavcodec/wmv2.c s->idsp.perm_type = w->wdsp.idct_perm; s 38 libavcodec/wmv2.c ff_init_scantable_permutation(s->idsp.idct_permutation, s 40 libavcodec/wmv2.c ff_init_scantable(s->idsp.idct_permutation, &w->abt_scantable[0], s 42 libavcodec/wmv2.c ff_init_scantable(s->idsp.idct_permutation, &w->abt_scantable[1], s 44 libavcodec/wmv2.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_scantable, s 46 libavcodec/wmv2.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_h_scantable, s 48 libavcodec/wmv2.c ff_init_scantable(s->idsp.idct_permutation, &s->intra_v_scantable, s 50 libavcodec/wmv2.c ff_init_scantable(s->idsp.idct_permutation, &s->inter_scantable, s 52 libavcodec/wmv2.c s->idsp.idct_put = w->wdsp.idct_put; s 53 libavcodec/wmv2.c s->idsp.idct_add = w->wdsp.idct_add; s 54 libavcodec/wmv2.c s->idsp.idct = NULL; s 60 libavcodec/wmv2.c MpegEncContext *const s = &w->s; s 62 libavcodec/wmv2.c if (s->block_last_index[n] >= 0) { s 70 libavcodec/wmv2.c s->bdsp.clear_block(w->abt_block2[n]); s 75 libavcodec/wmv2.c s->bdsp.clear_block(w->abt_block2[n]); s 78 libavcodec/wmv2.c av_log(s->avctx, AV_LOG_ERROR, "internal error in WMV2 abt\n"); s 83 libavcodec/wmv2.c void ff_wmv2_add_mb(MpegEncContext *s, int16_t block1[6][64], s 86 libavcodec/wmv2.c Wmv2Context *const w = (Wmv2Context *) s; s 88 libavcodec/wmv2.c wmv2_add_block(w, block1[0], dest_y, s->linesize, 0); s 89 libavcodec/wmv2.c wmv2_add_block(w, block1[1], dest_y + 8, s->linesize, 1); s 90 libavcodec/wmv2.c wmv2_add_block(w, block1[2], dest_y + 8 * s->linesize, s->linesize, 2); s 91 libavcodec/wmv2.c wmv2_add_block(w, block1[3], dest_y + 8 + 8 * s->linesize, s->linesize, 3); s 93 libavcodec/wmv2.c if (s->avctx->flags & AV_CODEC_FLAG_GRAY) s 96 libavcodec/wmv2.c wmv2_add_block(w, block1[4], dest_cb, s->uvlinesize, 4); s 97 libavcodec/wmv2.c wmv2_add_block(w, block1[5], dest_cr, s->uvlinesize, 5); s 100 libavcodec/wmv2.c void ff_mspel_motion(MpegEncContext *s, uint8_t *dest_y, s 105 libavcodec/wmv2.c Wmv2Context *const w = (Wmv2Context *) s; s 113 libavcodec/wmv2.c src_x = s->mb_x * 16 + (motion_x >> 1); s 114 libavcodec/wmv2.c src_y = s->mb_y * 16 + (motion_y >> 1); s 117 libavcodec/wmv2.c v_edge_pos = s->v_edge_pos; s 118 libavcodec/wmv2.c src_x = av_clip(src_x, -16, s->width); s 119 libavcodec/wmv2.c src_y = av_clip(src_y, -16, s->height); s 121 libavcodec/wmv2.c if (src_x <= -16 || src_x >= s->width) s 123 libavcodec/wmv2.c if (src_y <= -16 || src_y >= s->height) s 126 libavcodec/wmv2.c linesize = s->linesize; s 127 libavcodec/wmv2.c uvlinesize = s->uvlinesize; s 130 libavcodec/wmv2.c if (src_x < 1 || src_y < 1 || src_x + 17 >= s->h_edge_pos || s 132 libavcodec/wmv2.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr - 1 - s->linesize, s 133 libavcodec/wmv2.c s->linesize, s->linesize, 19, 19, s 135 libavcodec/wmv2.c s->h_edge_pos, s->v_edge_pos); s 136 libavcodec/wmv2.c ptr = s->sc.edge_emu_buffer + 1 + s->linesize; s 145 libavcodec/wmv2.c if (s->avctx->flags & AV_CODEC_FLAG_GRAY) s 156 libavcodec/wmv2.c src_x = s->mb_x * 8 + mx; s 157 libavcodec/wmv2.c src_y = s->mb_y * 8 + my; s 158 libavcodec/wmv2.c src_x = av_clip(src_x, -8, s->width >> 1); s 159 libavcodec/wmv2.c if (src_x == (s->width >> 1)) s 161 libavcodec/wmv2.c src_y = av_clip(src_y, -8, s->height >> 1); s 162 libavcodec/wmv2.c if (src_y == (s->height >> 1)) s 167 libavcodec/wmv2.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 168 libavcodec/wmv2.c s->uvlinesize, s->uvlinesize, s 171 libavcodec/wmv2.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 172 libavcodec/wmv2.c ptr = s->sc.edge_emu_buffer; s 178 libavcodec/wmv2.c s->vdsp.emulated_edge_mc(s->sc.edge_emu_buffer, ptr, s 179 libavcodec/wmv2.c s->uvlinesize, s->uvlinesize, s 182 libavcodec/wmv2.c s->h_edge_pos >> 1, s->v_edge_pos >> 1); s 183 libavcodec/wmv2.c ptr = s->sc.edge_emu_buffer; s 36 libavcodec/wmv2.h MpegEncContext s; s 59 libavcodec/wmv2.h int ff_wmv2_decode_mb(MpegEncContext *s, int16_t block[6][64]); s 60 libavcodec/wmv2.h int ff_wmv2_encode_picture_header(MpegEncContext * s, int picture_number); s 61 libavcodec/wmv2.h void ff_wmv2_encode_mb(MpegEncContext * s, int16_t block[6][64], s 63 libavcodec/wmv2.h int ff_wmv2_decode_picture_header(MpegEncContext * s); s 64 libavcodec/wmv2.h int ff_wmv2_decode_secondary_picture_header(MpegEncContext * s); s 65 libavcodec/wmv2.h void ff_wmv2_add_mb(MpegEncContext *s, int16_t block[6][64], s 68 libavcodec/wmv2.h void ff_mspel_motion(MpegEncContext *s, s 74 libavcodec/wmv2.h static av_always_inline int wmv2_get_cbp_table_index(MpegEncContext *s, int cbp_index) s 82 libavcodec/wmv2.h return map[(s->qscale > 10) + (s->qscale > 20)][cbp_index]; s 37 libavcodec/wmv2dec.c MpegEncContext *const s = &w->s; s 38 libavcodec/wmv2dec.c uint32_t *const mb_type = s->current_picture_ptr->mb_type; s 40 libavcodec/wmv2dec.c w->skip_type = get_bits(&s->gb, 2); s 43 libavcodec/wmv2dec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) s 44 libavcodec/wmv2dec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) s 45 libavcodec/wmv2dec.c mb_type[mb_y * s->mb_stride + mb_x] = s 49 libavcodec/wmv2dec.c if (get_bits_left(&s->gb) < s->mb_height * s->mb_width) s 51 libavcodec/wmv2dec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) s 52 libavcodec/wmv2dec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) s 53 libavcodec/wmv2dec.c mb_type[mb_y * s->mb_stride + mb_x] = s 54 libavcodec/wmv2dec.c (get_bits1(&s->gb) ? MB_TYPE_SKIP : 0) | MB_TYPE_16x16 | MB_TYPE_L0; s 57 libavcodec/wmv2dec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) { s 58 libavcodec/wmv2dec.c if (get_bits_left(&s->gb) < 1) s 60 libavcodec/wmv2dec.c if (get_bits1(&s->gb)) { s 61 libavcodec/wmv2dec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) s 62 libavcodec/wmv2dec.c mb_type[mb_y * s->mb_stride + mb_x] = s 65 libavcodec/wmv2dec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) s 66 libavcodec/wmv2dec.c mb_type[mb_y * s->mb_stride + mb_x] = s 67 libavcodec/wmv2dec.c (get_bits1(&s->gb) ? MB_TYPE_SKIP : 0) | MB_TYPE_16x16 | MB_TYPE_L0; s 72 libavcodec/wmv2dec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) { s 73 libavcodec/wmv2dec.c if (get_bits_left(&s->gb) < 1) s 75 libavcodec/wmv2dec.c if (get_bits1(&s->gb)) { s 76 libavcodec/wmv2dec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) s 77 libavcodec/wmv2dec.c mb_type[mb_y * s->mb_stride + mb_x] = s 80 libavcodec/wmv2dec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) s 81 libavcodec/wmv2dec.c mb_type[mb_y * s->mb_stride + mb_x] = s 82 libavcodec/wmv2dec.c (get_bits1(&s->gb) ? MB_TYPE_SKIP : 0) | MB_TYPE_16x16 | MB_TYPE_L0; s 88 libavcodec/wmv2dec.c for (mb_y = 0; mb_y < s->mb_height; mb_y++) s 89 libavcodec/wmv2dec.c for (mb_x = 0; mb_x < s->mb_width; mb_x++) s 90 libavcodec/wmv2dec.c coded_mb_count += !IS_SKIP(mb_type[mb_y * s->mb_stride + mb_x]); s 92 libavcodec/wmv2dec.c if (coded_mb_count > get_bits_left(&s->gb)) s 100 libavcodec/wmv2dec.c MpegEncContext *const s = &w->s; s 105 libavcodec/wmv2dec.c if (s->avctx->extradata_size < 4) s 108 libavcodec/wmv2dec.c init_get_bits(&gb, s->avctx->extradata, 32); s 111 libavcodec/wmv2dec.c s->bit_rate = get_bits(&gb, 11) * 1024; s 113 libavcodec/wmv2dec.c s->loop_filter = get_bits1(&gb); s 123 libavcodec/wmv2dec.c s->slice_height = s->mb_height / code; s 125 libavcodec/wmv2dec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) s 126 libavcodec/wmv2dec.c av_log(s->avctx, AV_LOG_DEBUG, s 130 libavcodec/wmv2dec.c fps, s->bit_rate, w->mspel_bit, w->abt_flag, w->j_type_bit, s 131 libavcodec/wmv2dec.c w->top_left_mv_flag, w->per_mb_rl_bit, code, s->loop_filter, s 136 libavcodec/wmv2dec.c int ff_wmv2_decode_picture_header(MpegEncContext *s) s 138 libavcodec/wmv2dec.c Wmv2Context *const w = (Wmv2Context *) s; s 141 libavcodec/wmv2dec.c if (s->picture_number == 0) s 144 libavcodec/wmv2dec.c s->pict_type = get_bits1(&s->gb) + 1; s 145 libavcodec/wmv2dec.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 146 libavcodec/wmv2dec.c code = get_bits(&s->gb, 7); s 147 libavcodec/wmv2dec.c av_log(s->avctx, AV_LOG_DEBUG, "I7:%X/\n", code); s 149 libavcodec/wmv2dec.c s->chroma_qscale = s->qscale = get_bits(&s->gb, 5); s 150 libavcodec/wmv2dec.c if (s->qscale <= 0) s 153 libavcodec/wmv2dec.c if (s->pict_type != AV_PICTURE_TYPE_I && show_bits(&s->gb, 1)) { s 154 libavcodec/wmv2dec.c GetBitContext gb = s->gb; s 156 libavcodec/wmv2dec.c int run = skip_type == SKIP_TYPE_COL ? s->mb_width : s->mb_height; s 171 libavcodec/wmv2dec.c int ff_wmv2_decode_secondary_picture_header(MpegEncContext *s) s 173 libavcodec/wmv2dec.c Wmv2Context *const w = (Wmv2Context *) s; s 175 libavcodec/wmv2dec.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 177 libavcodec/wmv2dec.c w->j_type = get_bits1(&s->gb); s 183 libavcodec/wmv2dec.c s->per_mb_rl_table = get_bits1(&s->gb); s 185 libavcodec/wmv2dec.c s->per_mb_rl_table = 0; s 187 libavcodec/wmv2dec.c if (!s->per_mb_rl_table) { s 188 libavcodec/wmv2dec.c s->rl_chroma_table_index = decode012(&s->gb); s 189 libavcodec/wmv2dec.c s->rl_table_index = decode012(&s->gb); s 192 libavcodec/wmv2dec.c s->dc_table_index = get_bits1(&s->gb); s 199 libavcodec/wmv2dec.c if (get_bits_left(&s->gb) * 8LL < (s->width+15)/16 * ((s->height+15)/16)) s 202 libavcodec/wmv2dec.c s->inter_intra_pred = 0; s 203 libavcodec/wmv2dec.c s->no_rounding = 1; s 204 libavcodec/wmv2dec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) { s 205 libavcodec/wmv2dec.c av_log(s->avctx, AV_LOG_DEBUG, s 207 libavcodec/wmv2dec.c s->qscale, s->rl_chroma_table_index, s->rl_table_index, s 208 libavcodec/wmv2dec.c s->dc_table_index, s->per_mb_rl_table, w->j_type); s 218 libavcodec/wmv2dec.c cbp_index = decode012(&s->gb); s 219 libavcodec/wmv2dec.c w->cbp_table_index = wmv2_get_cbp_table_index(s, cbp_index); s 222 libavcodec/wmv2dec.c s->mspel = get_bits1(&s->gb); s 224 libavcodec/wmv2dec.c s->mspel = 0; // FIXME check s 227 libavcodec/wmv2dec.c w->per_mb_abt = get_bits1(&s->gb) ^ 1; s 229 libavcodec/wmv2dec.c w->abt_type = decode012(&s->gb); s 233 libavcodec/wmv2dec.c s->per_mb_rl_table = get_bits1(&s->gb); s 235 libavcodec/wmv2dec.c s->per_mb_rl_table = 0; s 237 libavcodec/wmv2dec.c if (!s->per_mb_rl_table) { s 238 libavcodec/wmv2dec.c s->rl_table_index = decode012(&s->gb); s 239 libavcodec/wmv2dec.c s->rl_chroma_table_index = s->rl_table_index; s 242 libavcodec/wmv2dec.c if (get_bits_left(&s->gb) < 2) s 245 libavcodec/wmv2dec.c s->dc_table_index = get_bits1(&s->gb); s 246 libavcodec/wmv2dec.c s->mv_table_index = get_bits1(&s->gb); s 248 libavcodec/wmv2dec.c s->inter_intra_pred = 0; // (s->width * s->height < 320 * 240 && s->bit_rate <= II_BITRATE); s 249 libavcodec/wmv2dec.c s->no_rounding ^= 1; s 251 libavcodec/wmv2dec.c if (s->avctx->debug & FF_DEBUG_PICT_INFO) { s 252 libavcodec/wmv2dec.c av_log(s->avctx, AV_LOG_DEBUG, s 255 libavcodec/wmv2dec.c s->rl_table_index, s->rl_chroma_table_index, s 256 libavcodec/wmv2dec.c s->dc_table_index, s->mv_table_index, s 257 libavcodec/wmv2dec.c s->per_mb_rl_table, s->qscale, s->mspel, s 259 libavcodec/wmv2dec.c s->inter_intra_pred); s 262 libavcodec/wmv2dec.c s->esc3_level_length = 0; s 263 libavcodec/wmv2dec.c s->esc3_run_length = 0; s 264 libavcodec/wmv2dec.c s->picture_number++; // FIXME ? s 267 libavcodec/wmv2dec.c ff_intrax8_decode_picture(&w->x8, &s->current_picture, s 268 libavcodec/wmv2dec.c &s->gb, &s->mb_x, &s->mb_y, s 269 libavcodec/wmv2dec.c 2 * s->qscale, (s->qscale - 1) | 1, s 270 libavcodec/wmv2dec.c s->loop_filter, s->low_delay); s 272 libavcodec/wmv2dec.c ff_er_add_slice(&w->s.er, 0, 0, s 273 libavcodec/wmv2dec.c (w->s.mb_x >> 1) - 1, (w->s.mb_y >> 1) - 1, s 283 libavcodec/wmv2dec.c MpegEncContext *const s = &w->s; s 286 libavcodec/wmv2dec.c ret = ff_msmpeg4_decode_motion(s, mx_ptr, my_ptr); s 291 libavcodec/wmv2dec.c if ((((*mx_ptr) | (*my_ptr)) & 1) && s->mspel) s 292 libavcodec/wmv2dec.c w->hshift = get_bits1(&s->gb); s 301 libavcodec/wmv2dec.c MpegEncContext *const s = &w->s; s 305 libavcodec/wmv2dec.c wrap = s->b8_stride; s 306 libavcodec/wmv2dec.c xy = s->block_index[0]; s 308 libavcodec/wmv2dec.c mot_val = s->current_picture.motion_val[0][xy]; s 310 libavcodec/wmv2dec.c A = s->current_picture.motion_val[0][xy - 1]; s 311 libavcodec/wmv2dec.c B = s->current_picture.motion_val[0][xy - wrap]; s 312 libavcodec/wmv2dec.c C = s->current_picture.motion_val[0][xy + 2 - wrap]; s 314 libavcodec/wmv2dec.c if (s->mb_x && !s->first_slice_line && !s->mspel && w->top_left_mv_flag) s 320 libavcodec/wmv2dec.c type = get_bits1(&s->gb); s 332 libavcodec/wmv2dec.c if (s->first_slice_line) { s 347 libavcodec/wmv2dec.c MpegEncContext *const s = &w->s; s 352 libavcodec/wmv2dec.c s->block_last_index[n] = -1; s 357 libavcodec/wmv2dec.c w->abt_type = decode012(&s->gb); s 365 libavcodec/wmv2dec.c sub_cbp = sub_cbp_table[decode012(&s->gb)]; s 368 libavcodec/wmv2dec.c if ((ret = ff_msmpeg4_decode_block(s, block, n, 1, scantable)) < 0) s 372 libavcodec/wmv2dec.c if ((ret = ff_msmpeg4_decode_block(s, w->abt_block2[n], n, 1, scantable)) < 0) s 375 libavcodec/wmv2dec.c s->block_last_index[n] = 63; s 379 libavcodec/wmv2dec.c return ff_msmpeg4_decode_block(s, block, n, 1, s 380 libavcodec/wmv2dec.c s->inter_scantable.permutated); s 384 libavcodec/wmv2dec.c int ff_wmv2_decode_mb(MpegEncContext *s, int16_t block[6][64]) s 386 libavcodec/wmv2dec.c Wmv2Context *const w = (Wmv2Context *) s; s 393 libavcodec/wmv2dec.c if (s->pict_type == AV_PICTURE_TYPE_P) { s 394 libavcodec/wmv2dec.c if (IS_SKIP(s->current_picture.mb_type[s->mb_y * s->mb_stride + s->mb_x])) { s 396 libavcodec/wmv2dec.c s->mb_intra = 0; s 398 libavcodec/wmv2dec.c s->block_last_index[i] = -1; s 399 libavcodec/wmv2dec.c s->mv_dir = MV_DIR_FORWARD; s 400 libavcodec/wmv2dec.c s->mv_type = MV_TYPE_16X16; s 401 libavcodec/wmv2dec.c s->mv[0][0][0] = 0; s 402 libavcodec/wmv2dec.c s->mv[0][0][1] = 0; s 403 libavcodec/wmv2dec.c s->mb_skipped = 1; s 407 libavcodec/wmv2dec.c if (get_bits_left(&s->gb) <= 0) s 410 libavcodec/wmv2dec.c code = get_vlc2(&s->gb, ff_mb_non_intra_vlc[w->cbp_table_index].table, s 414 libavcodec/wmv2dec.c s->mb_intra = (~code & 0x40) >> 6; s 418 libavcodec/wmv2dec.c s->mb_intra = 1; s 419 libavcodec/wmv2dec.c if (get_bits_left(&s->gb) <= 0) s 421 libavcodec/wmv2dec.c code = get_vlc2(&s->gb, ff_msmp4_mb_i_vlc.table, MB_INTRA_VLC_BITS, 2); s 423 libavcodec/wmv2dec.c av_log(s->avctx, AV_LOG_ERROR, s 424 libavcodec/wmv2dec.c "II-cbp illegal at %d %d\n", s->mb_x, s->mb_y); s 432 libavcodec/wmv2dec.c int pred = ff_msmpeg4_coded_block_pred(s, i, &coded_val); s 440 libavcodec/wmv2dec.c if (!s->mb_intra) { s 445 libavcodec/wmv2dec.c s->bdsp.clear_blocks(s->block[0]); s 446 libavcodec/wmv2dec.c if (s->per_mb_rl_table) { s 447 libavcodec/wmv2dec.c s->rl_table_index = decode012(&s->gb); s 448 libavcodec/wmv2dec.c s->rl_chroma_table_index = s->rl_table_index; s 452 libavcodec/wmv2dec.c w->per_block_abt = get_bits1(&s->gb); s 454 libavcodec/wmv2dec.c w->abt_type = decode012(&s->gb); s 462 libavcodec/wmv2dec.c s->mv_dir = MV_DIR_FORWARD; s 463 libavcodec/wmv2dec.c s->mv_type = MV_TYPE_16X16; s 464 libavcodec/wmv2dec.c s->mv[0][0][0] = mx; s 465 libavcodec/wmv2dec.c s->mv[0][0][1] = my; s 469 libavcodec/wmv2dec.c av_log(s->avctx, AV_LOG_ERROR, s 471 libavcodec/wmv2dec.c s->mb_x, s->mb_y, i); s 476 libavcodec/wmv2dec.c if (s->pict_type == AV_PICTURE_TYPE_P) s 477 libavcodec/wmv2dec.c ff_dlog(s->avctx, "%d%d ", s->inter_intra_pred, cbp); s 478 libavcodec/wmv2dec.c ff_dlog(s->avctx, "I at %d %d %d %06X\n", s->mb_x, s->mb_y, s 480 libavcodec/wmv2dec.c show_bits(&s->gb, 24)); s 481 libavcodec/wmv2dec.c s->ac_pred = get_bits1(&s->gb); s 482 libavcodec/wmv2dec.c if (s->inter_intra_pred) { s 483 libavcodec/wmv2dec.c s->h263_aic_dir = get_vlc2(&s->gb, ff_inter_intra_vlc.table, s 485 libavcodec/wmv2dec.c ff_dlog(s->avctx, "%d%d %d %d/", s 486 libavcodec/wmv2dec.c s->ac_pred, s->h263_aic_dir, s->mb_x, s->mb_y); s 488 libavcodec/wmv2dec.c if (s->per_mb_rl_table && cbp) { s 489 libavcodec/wmv2dec.c s->rl_table_index = decode012(&s->gb); s 490 libavcodec/wmv2dec.c s->rl_chroma_table_index = s->rl_table_index; s 493 libavcodec/wmv2dec.c s->bdsp.clear_blocks(s->block[0]); s 495 libavcodec/wmv2dec.c if ((ret = ff_msmpeg4_decode_block(s, block[i], i, (cbp >> (5 - i)) & 1, NULL)) < 0) { s 496 libavcodec/wmv2dec.c av_log(s->avctx, AV_LOG_ERROR, s 498 libavcodec/wmv2dec.c s->mb_x, s->mb_y, i); s 517 libavcodec/wmv2dec.c return ff_intrax8_common_init(avctx, &w->x8, &w->s.idsp, s 518 libavcodec/wmv2dec.c w->s.block, w->s.block_last_index, s 519 libavcodec/wmv2dec.c w->s.mb_width, w->s.mb_height); s 31 libavcodec/wmv2enc.c MpegEncContext *const s = &w->s; s 35 libavcodec/wmv2enc.c init_put_bits(&pb, s->avctx->extradata, s->avctx->extradata_size); s 37 libavcodec/wmv2enc.c put_bits(&pb, 5, s->avctx->time_base.den / s->avctx->time_base.num); // yes 29.97 -> 29 s 38 libavcodec/wmv2enc.c put_bits(&pb, 11, FFMIN(s->bit_rate / 1024, 2047)); s 41 libavcodec/wmv2enc.c put_bits(&pb, 1, s->loop_filter); s 50 libavcodec/wmv2enc.c s->slice_height = s->mb_height / code; s 74 libavcodec/wmv2enc.c int ff_wmv2_encode_picture_header(MpegEncContext *s, int picture_number) s 76 libavcodec/wmv2enc.c Wmv2Context *const w = (Wmv2Context *) s; s 78 libavcodec/wmv2enc.c put_bits(&s->pb, 1, s->pict_type - 1); s 79 libavcodec/wmv2enc.c if (s->pict_type == AV_PICTURE_TYPE_I) s 80 libavcodec/wmv2enc.c put_bits(&s->pb, 7, 0); s 81 libavcodec/wmv2enc.c put_bits(&s->pb, 5, s->qscale); s 83 libavcodec/wmv2enc.c s->dc_table_index = 1; s 84 libavcodec/wmv2enc.c s->mv_table_index = 1; /* only if P-frame */ s 85 libavcodec/wmv2enc.c s->per_mb_rl_table = 0; s 86 libavcodec/wmv2enc.c s->mspel = 0; s 91 libavcodec/wmv2enc.c av_assert0(s->flipflop_rounding); s 93 libavcodec/wmv2enc.c if (s->pict_type == AV_PICTURE_TYPE_I) { s 94 libavcodec/wmv2enc.c av_assert0(s->no_rounding == 1); s 96 libavcodec/wmv2enc.c put_bits(&s->pb, 1, w->j_type); s 99 libavcodec/wmv2enc.c put_bits(&s->pb, 1, s->per_mb_rl_table); s 101 libavcodec/wmv2enc.c if (!s->per_mb_rl_table) { s 102 libavcodec/wmv2enc.c ff_msmpeg4_code012(&s->pb, s->rl_chroma_table_index); s 103 libavcodec/wmv2enc.c ff_msmpeg4_code012(&s->pb, s->rl_table_index); s 106 libavcodec/wmv2enc.c put_bits(&s->pb, 1, s->dc_table_index); s 108 libavcodec/wmv2enc.c s->inter_intra_pred = 0; s 112 libavcodec/wmv2enc.c put_bits(&s->pb, 2, SKIP_TYPE_NONE); s 114 libavcodec/wmv2enc.c ff_msmpeg4_code012(&s->pb, cbp_index = 0); s 115 libavcodec/wmv2enc.c w->cbp_table_index = wmv2_get_cbp_table_index(s, cbp_index); s 118 libavcodec/wmv2enc.c put_bits(&s->pb, 1, s->mspel); s 121 libavcodec/wmv2enc.c put_bits(&s->pb, 1, w->per_mb_abt ^ 1); s 123 libavcodec/wmv2enc.c ff_msmpeg4_code012(&s->pb, w->abt_type); s 127 libavcodec/wmv2enc.c put_bits(&s->pb, 1, s->per_mb_rl_table); s 129 libavcodec/wmv2enc.c if (!s->per_mb_rl_table) { s 130 libavcodec/wmv2enc.c ff_msmpeg4_code012(&s->pb, s->rl_table_index); s 131 libavcodec/wmv2enc.c s->rl_chroma_table_index = s->rl_table_index; s 133 libavcodec/wmv2enc.c put_bits(&s->pb, 1, s->dc_table_index); s 134 libavcodec/wmv2enc.c put_bits(&s->pb, 1, s->mv_table_index); s 136 libavcodec/wmv2enc.c s->inter_intra_pred = 0; // (s->width * s->height < 320 * 240 && s->bit_rate <= II_BITRATE); s 138 libavcodec/wmv2enc.c s->esc3_level_length = 0; s 139 libavcodec/wmv2enc.c s->esc3_run_length = 0; s 147 libavcodec/wmv2enc.c void ff_wmv2_encode_mb(MpegEncContext *s, int16_t block[6][64], s 150 libavcodec/wmv2enc.c Wmv2Context *const w = (Wmv2Context *) s; s 155 libavcodec/wmv2enc.c ff_msmpeg4_handle_slices(s); s 157 libavcodec/wmv2enc.c if (!s->mb_intra) { s 161 libavcodec/wmv2enc.c if (s->block_last_index[i] >= 0) s 164 libavcodec/wmv2enc.c put_bits(&s->pb, s 168 libavcodec/wmv2enc.c s->misc_bits += get_bits_diff(s); s 170 libavcodec/wmv2enc.c ff_h263_pred_motion(s, 0, 0, &pred_x, &pred_y); s 171 libavcodec/wmv2enc.c ff_msmpeg4_encode_motion(s, motion_x - pred_x, s 173 libavcodec/wmv2enc.c s->mv_bits += get_bits_diff(s); s 180 libavcodec/wmv2enc.c val = (s->block_last_index[i] >= 1); s 184 libavcodec/wmv2enc.c pred = ff_msmpeg4_coded_block_pred(s, i, &coded_block); s 191 libavcodec/wmv2enc.c if (s->pict_type == AV_PICTURE_TYPE_I) s 192 libavcodec/wmv2enc.c put_bits(&s->pb, s 196 libavcodec/wmv2enc.c put_bits(&s->pb, s 199 libavcodec/wmv2enc.c put_bits(&s->pb, 1, 0); /* no AC prediction yet */ s 200 libavcodec/wmv2enc.c if (s->inter_intra_pred) { s 201 libavcodec/wmv2enc.c s->h263_aic_dir = 0; s 202 libavcodec/wmv2enc.c put_bits(&s->pb, s 203 libavcodec/wmv2enc.c ff_table_inter_intra[s->h263_aic_dir][1], s 204 libavcodec/wmv2enc.c ff_table_inter_intra[s->h263_aic_dir][0]); s 206 libavcodec/wmv2enc.c s->misc_bits += get_bits_diff(s); s 210 libavcodec/wmv2enc.c ff_msmpeg4_encode_block(s, block[i], i); s 211 libavcodec/wmv2enc.c if (s->mb_intra) s 212 libavcodec/wmv2enc.c s->i_tex_bits += get_bits_diff(s); s 214 libavcodec/wmv2enc.c s->p_tex_bits += get_bits_diff(s); s 34 libavcodec/x86/aacencdsp_init.c av_cold void ff_aac_dsp_init_x86(AACEncContext *s) s 39 libavcodec/x86/aacencdsp_init.c s->abs_pow34 = ff_abs_pow34_sse; s 42 libavcodec/x86/aacencdsp_init.c s->quant_bands = ff_aac_quantize_bands_sse2; s 52 libavcodec/x86/aacpsdsp_init.c av_cold void ff_psdsp_init_x86(PSDSPContext *s) s 57 libavcodec/x86/aacpsdsp_init.c s->add_squares = ff_ps_add_squares_sse; s 58 libavcodec/x86/aacpsdsp_init.c s->mul_pair_single = ff_ps_mul_pair_single_sse; s 59 libavcodec/x86/aacpsdsp_init.c s->hybrid_analysis_ileave = ff_ps_hybrid_analysis_ileave_sse; s 60 libavcodec/x86/aacpsdsp_init.c s->hybrid_synthesis_deint = ff_ps_hybrid_synthesis_deint_sse; s 61 libavcodec/x86/aacpsdsp_init.c s->hybrid_analysis = ff_ps_hybrid_analysis_sse; s 64 libavcodec/x86/aacpsdsp_init.c s->add_squares = ff_ps_add_squares_sse3; s 65 libavcodec/x86/aacpsdsp_init.c s->stereo_interpolate[0] = ff_ps_stereo_interpolate_sse3; s 66 libavcodec/x86/aacpsdsp_init.c s->stereo_interpolate[1] = ff_ps_stereo_interpolate_ipdopd_sse3; s 67 libavcodec/x86/aacpsdsp_init.c s->hybrid_analysis = ff_ps_hybrid_analysis_sse3; s 70 libavcodec/x86/aacpsdsp_init.c s->hybrid_synthesis_deint = ff_ps_hybrid_synthesis_deint_sse4; s 31 libavcodec/x86/celt_pvq_init.c av_cold void ff_celt_pvq_init_x86(CeltPVQ *s) s 36 libavcodec/x86/celt_pvq_init.c s->pvq_search = ff_pvq_search_approx_sse2; s 39 libavcodec/x86/celt_pvq_init.c s->pvq_search = ff_pvq_search_approx_sse4; s 42 libavcodec/x86/celt_pvq_init.c s->pvq_search = ff_pvq_search_exact_avx; s 36 libavcodec/x86/dcadsp_init.c av_cold void ff_dcadsp_init_x86(DCADSPContext *s) s 41 libavcodec/x86/dcadsp_init.c s->lfe_fir_float[0] = ff_lfe_fir0_float_sse; s 43 libavcodec/x86/dcadsp_init.c s->lfe_fir_float[0] = ff_lfe_fir0_float_sse2; s 45 libavcodec/x86/dcadsp_init.c s->lfe_fir_float[1] = ff_lfe_fir1_float_sse3; s 47 libavcodec/x86/dcadsp_init.c s->lfe_fir_float[0] = ff_lfe_fir0_float_avx; s 48 libavcodec/x86/dcadsp_init.c s->lfe_fir_float[1] = ff_lfe_fir1_float_avx; s 51 libavcodec/x86/dcadsp_init.c s->lfe_fir_float[0] = ff_lfe_fir0_float_fma3; s 29 libavcodec/x86/dct_init.c av_cold void ff_dct_init_x86(DCTContext *s) s 35 libavcodec/x86/dct_init.c s->dct32 = ff_dct32_float_sse; s 38 libavcodec/x86/dct_init.c s->dct32 = ff_dct32_float_sse2; s 40 libavcodec/x86/dct_init.c s->dct32 = ff_dct32_float_avx; s 289 libavcodec/x86/fdct.c #define S(s) AV_TOSTRING(s) //AV_STRINGIFY is too long s 24 libavcodec/x86/fft.h void ff_fft_permute_sse(FFTContext *s, FFTComplex *z); s 25 libavcodec/x86/fft.h void ff_fft_calc_avx(FFTContext *s, FFTComplex *z); s 26 libavcodec/x86/fft.h void ff_fft_calc_sse(FFTContext *s, FFTComplex *z); s 27 libavcodec/x86/fft.h void ff_fft_calc_3dnow(FFTContext *s, FFTComplex *z); s 28 libavcodec/x86/fft.h void ff_fft_calc_3dnowext(FFTContext *s, FFTComplex *z); s 30 libavcodec/x86/fft.h void ff_imdct_calc_3dnow(FFTContext *s, FFTSample *output, const FFTSample *input); s 31 libavcodec/x86/fft.h void ff_imdct_half_3dnow(FFTContext *s, FFTSample *output, const FFTSample *input); s 32 libavcodec/x86/fft.h void ff_imdct_calc_3dnowext(FFTContext *s, FFTSample *output, const FFTSample *input); s 33 libavcodec/x86/fft.h void ff_imdct_half_3dnowext(FFTContext *s, FFTSample *output, const FFTSample *input); s 34 libavcodec/x86/fft.h void ff_imdct_calc_sse(FFTContext *s, FFTSample *output, const FFTSample *input); s 35 libavcodec/x86/fft.h void ff_imdct_half_sse(FFTContext *s, FFTSample *output, const FFTSample *input); s 36 libavcodec/x86/fft.h void ff_imdct_half_avx(FFTContext *s, FFTSample *output, const FFTSample *input); s 27 libavcodec/x86/fft_init.c av_cold void ff_fft_init_x86(FFTContext *s) s 31 libavcodec/x86/fft_init.c if (s->nbits > 16) s 36 libavcodec/x86/fft_init.c s->imdct_calc = ff_imdct_calc_3dnow; s 37 libavcodec/x86/fft_init.c s->imdct_half = ff_imdct_half_3dnow; s 38 libavcodec/x86/fft_init.c s->fft_calc = ff_fft_calc_3dnow; s 42 libavcodec/x86/fft_init.c s->imdct_calc = ff_imdct_calc_3dnowext; s 43 libavcodec/x86/fft_init.c s->imdct_half = ff_imdct_half_3dnowext; s 44 libavcodec/x86/fft_init.c s->fft_calc = ff_fft_calc_3dnowext; s 49 libavcodec/x86/fft_init.c s->imdct_calc = ff_imdct_calc_sse; s 50 libavcodec/x86/fft_init.c s->imdct_half = ff_imdct_half_sse; s 51 libavcodec/x86/fft_init.c s->fft_permute = ff_fft_permute_sse; s 52 libavcodec/x86/fft_init.c s->fft_calc = ff_fft_calc_sse; s 53 libavcodec/x86/fft_init.c s->fft_permutation = FF_FFT_PERM_SWAP_LSBS; s 56 libavcodec/x86/fft_init.c if (EXTERNAL_AVX_FAST(cpu_flags) && s->nbits >= 5) { s 57 libavcodec/x86/fft_init.c s->imdct_half = ff_imdct_half_avx; s 58 libavcodec/x86/fft_init.c s->fft_calc = ff_fft_calc_avx; s 59 libavcodec/x86/fft_init.c s->fft_permutation = FF_FFT_PERM_AVX; s 115 libavcodec/x86/mathops.h static inline int32_t NEG_SSR32( int32_t a, int8_t s){ s 118 libavcodec/x86/mathops.h : "ic" ((uint8_t)(-s)) s 124 libavcodec/x86/mathops.h static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ s 127 libavcodec/x86/mathops.h : "ic" ((uint8_t)(-s)) s 33 libavcodec/x86/mdct15_init.c static void perm_twiddles(MDCT15Context *s) s 39 libavcodec/x86/mdct15_init.c s->exptab[60].re = s->exptab[60].im = s->exptab[19].re; s 40 libavcodec/x86/mdct15_init.c s->exptab[61].re = s->exptab[61].im = s->exptab[19].im; s 41 libavcodec/x86/mdct15_init.c s->exptab[62].re = s->exptab[62].im = s->exptab[20].re; s 42 libavcodec/x86/mdct15_init.c s->exptab[63].re = s->exptab[63].im = s->exptab[20].im; s 46 libavcodec/x86/mdct15_init.c tmp[6*k + 0] = s->exptab[k + 0]; s 47 libavcodec/x86/mdct15_init.c tmp[6*k + 2] = s->exptab[k + 5]; s 48 libavcodec/x86/mdct15_init.c tmp[6*k + 4] = s->exptab[k + 10]; s 50 libavcodec/x86/mdct15_init.c tmp[6*k + 1] = s->exptab[2 * (k + 0)]; s 51 libavcodec/x86/mdct15_init.c tmp[6*k + 3] = s->exptab[2 * (k + 5)]; s 52 libavcodec/x86/mdct15_init.c tmp[6*k + 5] = s->exptab[2 * k + 5 ]; s 66 libavcodec/x86/mdct15_init.c memcpy(s->exptab + 8*k, ac_exp, 8*sizeof(FFTComplex)); s 77 libavcodec/x86/mdct15_init.c memcpy(s->exptab + 8*6 + 4*k, dc_exp, 4*sizeof(FFTComplex)); s 81 libavcodec/x86/mdct15_init.c av_cold void ff_mdct15_init_x86(MDCT15Context *s) s 87 libavcodec/x86/mdct15_init.c s->postreindex = ff_mdct15_postreindex_sse3; s 90 libavcodec/x86/mdct15_init.c s->fft15 = ff_fft15_avx; s 95 libavcodec/x86/mdct15_init.c s->postreindex = ff_mdct15_postreindex_avx2; s 98 libavcodec/x86/mdct15_init.c perm_twiddles(s); s 82 libavcodec/x86/me_cmp_init.c int ff_hadamard8_diff_ ## cpu(MpegEncContext *s, uint8_t *src1, \ s 84 libavcodec/x86/me_cmp_init.c int ff_hadamard8_diff16_ ## cpu(MpegEncContext *s, uint8_t *src1, \ s 242 libavcodec/x86/mpegaudiodsp.c av_cold void ff_mpadsp_init_x86(MPADSPContext *s) s 262 libavcodec/x86/mpegaudiodsp.c s->apply_window_float = apply_window_mp3; s 270 libavcodec/x86/mpegaudiodsp.c s->imdct36_blocks_float = imdct36_blocks_sse; s 274 libavcodec/x86/mpegaudiodsp.c s->imdct36_blocks_float = imdct36_blocks_sse2; s 277 libavcodec/x86/mpegaudiodsp.c s->imdct36_blocks_float = imdct36_blocks_sse3; s 280 libavcodec/x86/mpegaudiodsp.c s->imdct36_blocks_float = imdct36_blocks_ssse3; s 285 libavcodec/x86/mpegaudiodsp.c s->imdct36_blocks_float = imdct36_blocks_avx; s 32 libavcodec/x86/mpegvideo.c static void dct_unquantize_h263_intra_mmx(MpegEncContext *s, s 39 libavcodec/x86/mpegvideo.c av_assert2(s->block_last_index[n]>=0 || s->h263_aic); s 41 libavcodec/x86/mpegvideo.c if (!s->h263_aic) { s 43 libavcodec/x86/mpegvideo.c level = block[0] * s->y_dc_scale; s 45 libavcodec/x86/mpegvideo.c level = block[0] * s->c_dc_scale; s 51 libavcodec/x86/mpegvideo.c if(s->ac_pred) s 54 libavcodec/x86/mpegvideo.c nCoeffs= s->intra_scantable.raster_end[ s->block_last_index[n] ]; s 107 libavcodec/x86/mpegvideo.c static void dct_unquantize_h263_inter_mmx(MpegEncContext *s, s 115 libavcodec/x86/mpegvideo.c av_assert2(s->block_last_index[n]>=0 || s->h263_aic); s 117 libavcodec/x86/mpegvideo.c nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ]; s 168 libavcodec/x86/mpegvideo.c static void dct_unquantize_mpeg1_intra_mmx(MpegEncContext *s, s 175 libavcodec/x86/mpegvideo.c av_assert2(s->block_last_index[n]>=0); s 177 libavcodec/x86/mpegvideo.c nCoeffs= s->intra_scantable.raster_end[ s->block_last_index[n] ]+1; s 180 libavcodec/x86/mpegvideo.c block0 = block[0] * s->y_dc_scale; s 182 libavcodec/x86/mpegvideo.c block0 = block[0] * s->c_dc_scale; s 184 libavcodec/x86/mpegvideo.c quant_matrix = s->intra_matrix; s 237 libavcodec/x86/mpegvideo.c static void dct_unquantize_mpeg1_inter_mmx(MpegEncContext *s, s 243 libavcodec/x86/mpegvideo.c av_assert2(s->block_last_index[n]>=0); s 245 libavcodec/x86/mpegvideo.c nCoeffs= s->intra_scantable.raster_end[ s->block_last_index[n] ]+1; s 247 libavcodec/x86/mpegvideo.c quant_matrix = s->inter_matrix; s 303 libavcodec/x86/mpegvideo.c static void dct_unquantize_mpeg2_intra_mmx(MpegEncContext *s, s 310 libavcodec/x86/mpegvideo.c av_assert2(s->block_last_index[n]>=0); s 312 libavcodec/x86/mpegvideo.c if (s->q_scale_type) qscale = ff_mpeg2_non_linear_qscale[qscale]; s 315 libavcodec/x86/mpegvideo.c if(s->alternate_scan) nCoeffs= 63; //FIXME s 316 libavcodec/x86/mpegvideo.c else nCoeffs= s->intra_scantable.raster_end[ s->block_last_index[n] ]; s 319 libavcodec/x86/mpegvideo.c block0 = block[0] * s->y_dc_scale; s 321 libavcodec/x86/mpegvideo.c block0 = block[0] * s->c_dc_scale; s 322 libavcodec/x86/mpegvideo.c quant_matrix = s->intra_matrix; s 372 libavcodec/x86/mpegvideo.c static void dct_unquantize_mpeg2_inter_mmx(MpegEncContext *s, s 378 libavcodec/x86/mpegvideo.c av_assert2(s->block_last_index[n]>=0); s 380 libavcodec/x86/mpegvideo.c if (s->q_scale_type) qscale = ff_mpeg2_non_linear_qscale[qscale]; s 383 libavcodec/x86/mpegvideo.c if(s->alternate_scan) nCoeffs= 63; //FIXME s 384 libavcodec/x86/mpegvideo.c else nCoeffs= s->intra_scantable.raster_end[ s->block_last_index[n] ]; s 386 libavcodec/x86/mpegvideo.c quant_matrix = s->inter_matrix; s 454 libavcodec/x86/mpegvideo.c av_cold void ff_mpv_common_init_x86(MpegEncContext *s) s 460 libavcodec/x86/mpegvideo.c s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_mmx; s 461 libavcodec/x86/mpegvideo.c s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_mmx; s 462 libavcodec/x86/mpegvideo.c s->dct_unquantize_mpeg1_intra = dct_unquantize_mpeg1_intra_mmx; s 463 libavcodec/x86/mpegvideo.c s->dct_unquantize_mpeg1_inter = dct_unquantize_mpeg1_inter_mmx; s 464 libavcodec/x86/mpegvideo.c if (!(s->avctx->flags & AV_CODEC_FLAG_BITEXACT)) s 465 libavcodec/x86/mpegvideo.c s->dct_unquantize_mpeg2_intra = dct_unquantize_mpeg2_intra_mmx; s 466 libavcodec/x86/mpegvideo.c s->dct_unquantize_mpeg2_inter = dct_unquantize_mpeg2_inter_mmx; s 99 libavcodec/x86/mpegvideoenc.c static void denoise_dct_mmx(MpegEncContext *s, int16_t *block){ s 100 libavcodec/x86/mpegvideoenc.c const int intra= s->mb_intra; s 101 libavcodec/x86/mpegvideoenc.c int *sum= s->dct_error_sum[intra]; s 102 libavcodec/x86/mpegvideoenc.c uint16_t *offset= s->dct_offset[intra]; s 104 libavcodec/x86/mpegvideoenc.c s->dct_count[intra]++; s 155 libavcodec/x86/mpegvideoenc.c static void denoise_dct_sse2(MpegEncContext *s, int16_t *block){ s 156 libavcodec/x86/mpegvideoenc.c const int intra= s->mb_intra; s 157 libavcodec/x86/mpegvideoenc.c int *sum= s->dct_error_sum[intra]; s 158 libavcodec/x86/mpegvideoenc.c uint16_t *offset= s->dct_offset[intra]; s 160 libavcodec/x86/mpegvideoenc.c s->dct_count[intra]++; s 213 libavcodec/x86/mpegvideoenc.c av_cold void ff_dct_encode_init_x86(MpegEncContext *s) s 215 libavcodec/x86/mpegvideoenc.c const int dct_algo = s->avctx->dct_algo; s 222 libavcodec/x86/mpegvideoenc.c s->dct_quantize = dct_quantize_mmx; s 224 libavcodec/x86/mpegvideoenc.c s->denoise_dct = denoise_dct_mmx; s 229 libavcodec/x86/mpegvideoenc.c s->dct_quantize = dct_quantize_mmxext; s 234 libavcodec/x86/mpegvideoenc.c s->dct_quantize = dct_quantize_sse2; s 236 libavcodec/x86/mpegvideoenc.c s->denoise_dct = denoise_dct_sse2; s 241 libavcodec/x86/mpegvideoenc.c s->dct_quantize = dct_quantize_ssse3; s 102 libavcodec/x86/mpegvideoenc_template.c static int RENAME(dct_quantize)(MpegEncContext *s, s 116 libavcodec/x86/mpegvideoenc_template.c if(s->dct_error_sum) s 117 libavcodec/x86/mpegvideoenc_template.c s->denoise_dct(s, block); s 119 libavcodec/x86/mpegvideoenc_template.c if (s->mb_intra) { s 122 libavcodec/x86/mpegvideoenc_template.c q = s->y_dc_scale; s 123 libavcodec/x86/mpegvideoenc_template.c bias = s->q_intra_matrix16[qscale][1]; s 124 libavcodec/x86/mpegvideoenc_template.c qmat = s->q_intra_matrix16[qscale][0]; s 126 libavcodec/x86/mpegvideoenc_template.c q = s->c_dc_scale; s 127 libavcodec/x86/mpegvideoenc_template.c bias = s->q_chroma_intra_matrix16[qscale][1]; s 128 libavcodec/x86/mpegvideoenc_template.c qmat = s->q_chroma_intra_matrix16[qscale][0]; s 131 libavcodec/x86/mpegvideoenc_template.c if (!s->h263_aic) { s 146 libavcodec/x86/mpegvideoenc_template.c bias = s->q_inter_matrix16[qscale][1]; s 147 libavcodec/x86/mpegvideoenc_template.c qmat = s->q_inter_matrix16[qscale][0]; s 150 libavcodec/x86/mpegvideoenc_template.c if((s->out_format == FMT_H263 || s->out_format == FMT_H261) && s->mpeg_quant==0){ s 231 libavcodec/x86/mpegvideoenc_template.c : "g" (s->max_qcoeff) s 234 libavcodec/x86/mpegvideoenc_template.c if(s->mb_intra) block[0]= level; s 237 libavcodec/x86/mpegvideoenc_template.c if (s->idsp.perm_type == FF_IDCT_PERM_SIMPLE) { s 281 libavcodec/x86/mpegvideoenc_template.c }else if(s->idsp.perm_type == FF_IDCT_PERM_LIBMPEG2){ s 325 libavcodec/x86/mpegvideoenc_template.c } else if (s->idsp.perm_type == FF_IDCT_PERM_NONE) { s 369 libavcodec/x86/mpegvideoenc_template.c } else if (s->idsp.perm_type == FF_IDCT_PERM_TRANSPOSE) { s 414 libavcodec/x86/mpegvideoenc_template.c av_log(s, AV_LOG_DEBUG, "s->idsp.perm_type: %d\n", s 415 libavcodec/x86/mpegvideoenc_template.c (int)s->idsp.perm_type); s 416 libavcodec/x86/mpegvideoenc_template.c av_assert0(s->idsp.perm_type == FF_IDCT_PERM_NONE || s 417 libavcodec/x86/mpegvideoenc_template.c s->idsp.perm_type == FF_IDCT_PERM_LIBMPEG2 || s 418 libavcodec/x86/mpegvideoenc_template.c s->idsp.perm_type == FF_IDCT_PERM_SIMPLE || s 419 libavcodec/x86/mpegvideoenc_template.c s->idsp.perm_type == FF_IDCT_PERM_TRANSPOSE); s 45 libavcodec/x86/mpegvideoencdsp_init.c #define PMULHRW(x, y, s, o) \ s 46 libavcodec/x86/mpegvideoencdsp_init.c "pmulhw " #s ", " #x " \n\t" \ s 47 libavcodec/x86/mpegvideoencdsp_init.c "pmulhw " #s ", " #y " \n\t" \ s 66 libavcodec/x86/mpegvideoencdsp_init.c #define PMULHRW(x, y, s, o) \ s 67 libavcodec/x86/mpegvideoencdsp_init.c "pmulhrw " #s ", " #x " \n\t" \ s 68 libavcodec/x86/mpegvideoencdsp_init.c "pmulhrw " #s ", " #y " \n\t" s 88 libavcodec/x86/mpegvideoencdsp_init.c #define PMULHRW(x, y, s, o) \ s 89 libavcodec/x86/mpegvideoencdsp_init.c "pmulhrsw " #s ", " #x " \n\t" \ s 90 libavcodec/x86/mpegvideoencdsp_init.c "pmulhrsw " #s ", " #y " \n\t" s 42 libavcodec/x86/sbcdsp_init.c av_cold void ff_sbcdsp_init_x86(SBCDSPContext *s) s 47 libavcodec/x86/sbcdsp_init.c s->sbc_analyze_4 = ff_sbc_analyze_4_mmx; s 48 libavcodec/x86/sbcdsp_init.c s->sbc_analyze_8 = ff_sbc_analyze_8_mmx; s 49 libavcodec/x86/sbcdsp_init.c s->sbc_calc_scalefactors = ff_sbc_calc_scalefactors_mmx; s 59 libavcodec/x86/sbrdsp_init.c av_cold void ff_sbrdsp_init_x86(SBRDSPContext *s) s 64 libavcodec/x86/sbrdsp_init.c s->neg_odd_64 = ff_sbr_neg_odd_64_sse; s 65 libavcodec/x86/sbrdsp_init.c s->sum_square = ff_sbr_sum_square_sse; s 66 libavcodec/x86/sbrdsp_init.c s->sum64x5 = ff_sbr_sum64x5_sse; s 67 libavcodec/x86/sbrdsp_init.c s->hf_g_filt = ff_sbr_hf_g_filt_sse; s 68 libavcodec/x86/sbrdsp_init.c s->hf_gen = ff_sbr_hf_gen_sse; s 69 libavcodec/x86/sbrdsp_init.c s->qmf_post_shuffle = ff_sbr_qmf_post_shuffle_sse; s 70 libavcodec/x86/sbrdsp_init.c s->qmf_deint_bfly = ff_sbr_qmf_deint_bfly_sse; s 71 libavcodec/x86/sbrdsp_init.c s->qmf_deint_neg = ff_sbr_qmf_deint_neg_sse; s 72 libavcodec/x86/sbrdsp_init.c s->autocorrelate = ff_sbr_autocorrelate_sse; s 76 libavcodec/x86/sbrdsp_init.c s->qmf_deint_bfly = ff_sbr_qmf_deint_bfly_sse2; s 77 libavcodec/x86/sbrdsp_init.c s->qmf_pre_shuffle = ff_sbr_qmf_pre_shuffle_sse2; s 78 libavcodec/x86/sbrdsp_init.c s->hf_apply_noise[0] = ff_sbr_hf_apply_noise_0_sse2; s 79 libavcodec/x86/sbrdsp_init.c s->hf_apply_noise[1] = ff_sbr_hf_apply_noise_1_sse2; s 80 libavcodec/x86/sbrdsp_init.c s->hf_apply_noise[2] = ff_sbr_hf_apply_noise_2_sse2; s 81 libavcodec/x86/sbrdsp_init.c s->hf_apply_noise[3] = ff_sbr_hf_apply_noise_3_sse2; s 85 libavcodec/x86/sbrdsp_init.c s->autocorrelate = ff_sbr_autocorrelate_sse3; s 54 libavcodec/x86/synth_filter_init.c av_cold void ff_synth_filter_init_x86(SynthFilterContext *s) s 61 libavcodec/x86/synth_filter_init.c s->synth_filter_float = synth_filter_sse; s 65 libavcodec/x86/synth_filter_init.c s->synth_filter_float = synth_filter_sse2; s 68 libavcodec/x86/synth_filter_init.c s->synth_filter_float = synth_filter_avx; s 71 libavcodec/x86/synth_filter_init.c s->synth_filter_float = synth_filter_fma3; s 30 libavcodec/x86/v210-init.c av_cold void ff_v210_x86_init(V210DecContext *s) s 35 libavcodec/x86/v210-init.c if (s->aligned_input) { s 37 libavcodec/x86/v210-init.c s->unpack_frame = ff_v210_planar_unpack_aligned_ssse3; s 40 libavcodec/x86/v210-init.c s->unpack_frame = ff_v210_planar_unpack_aligned_avx; s 43 libavcodec/x86/v210-init.c s->unpack_frame = ff_v210_planar_unpack_aligned_avx2; s 47 libavcodec/x86/v210-init.c s->unpack_frame = ff_v210_planar_unpack_unaligned_ssse3; s 50 libavcodec/x86/v210-init.c s->unpack_frame = ff_v210_planar_unpack_unaligned_avx; s 53 libavcodec/x86/v210-init.c s->unpack_frame = ff_v210_planar_unpack_unaligned_avx2; s 36 libavcodec/x86/v210enc_init.c av_cold void ff_v210enc_init_x86(V210EncContext *s) s 41 libavcodec/x86/v210enc_init.c s->pack_line_8 = ff_v210_planar_pack_8_ssse3; s 42 libavcodec/x86/v210enc_init.c s->pack_line_10 = ff_v210_planar_pack_10_ssse3; s 46 libavcodec/x86/v210enc_init.c s->pack_line_8 = ff_v210_planar_pack_8_avx; s 49 libavcodec/x86/v210enc_init.c s->sample_factor_8 = 2; s 50 libavcodec/x86/v210enc_init.c s->pack_line_8 = ff_v210_planar_pack_8_avx2; s 51 libavcodec/x86/v210enc_init.c s->sample_factor_10 = 2; s 52 libavcodec/x86/v210enc_init.c s->pack_line_10 = ff_v210_planar_pack_10_avx2; s 266 libavcodec/x86/vp8dsp_init.c ptrdiff_t s, \ s 270 libavcodec/x86/vp8dsp_init.c ptrdiff_t s, \ s 280 libavcodec/x86/vp8dsp_init.c ptrdiff_t s, \ s 284 libavcodec/x86/vp8dsp_init.c ptrdiff_t s, \ s 77 libavcodec/xan.c XanContext *s = avctx->priv_data; s 79 libavcodec/xan.c av_frame_free(&s->last_frame); s 81 libavcodec/xan.c av_freep(&s->buffer1); s 82 libavcodec/xan.c av_freep(&s->buffer2); s 83 libavcodec/xan.c av_freep(&s->palettes); s 90 libavcodec/xan.c XanContext *s = avctx->priv_data; s 92 libavcodec/xan.c s->avctx = avctx; s 93 libavcodec/xan.c s->frame_size = 0; s 97 libavcodec/xan.c s->buffer1_size = avctx->width * avctx->height; s 98 libavcodec/xan.c s->buffer1 = av_malloc(s->buffer1_size); s 99 libavcodec/xan.c if (!s->buffer1) s 101 libavcodec/xan.c s->buffer2_size = avctx->width * avctx->height; s 102 libavcodec/xan.c s->buffer2 = av_malloc(s->buffer2_size + 130); s 103 libavcodec/xan.c if (!s->buffer2) { s 104 libavcodec/xan.c av_freep(&s->buffer1); s 108 libavcodec/xan.c s->last_frame = av_frame_alloc(); s 109 libavcodec/xan.c if (!s->last_frame) { s 212 libavcodec/xan.c static inline void xan_wc3_output_pixel_run(XanContext *s, AVFrame *frame, s 219 libavcodec/xan.c int width = s->avctx->width; s 227 libavcodec/xan.c while (pixel_count && index < s->frame_size) { s 242 libavcodec/xan.c static inline void xan_wc3_copy_pixel_run(XanContext *s, AVFrame *frame, s 251 libavcodec/xan.c int width = s->avctx->width; s 254 libavcodec/xan.c if (y + motion_y < 0 || y + motion_y >= s->avctx->height || s 255 libavcodec/xan.c x + motion_x < 0 || x + motion_x >= s->avctx->width) s 259 libavcodec/xan.c prev_palette_plane = s->last_frame->data[0]; s 270 libavcodec/xan.c avpriv_request_sample(s->avctx, "Overlapping copy"); s 275 libavcodec/xan.c curframe_index < s->frame_size && s 276 libavcodec/xan.c prevframe_index < s->frame_size) { s 300 libavcodec/xan.c static int xan_wc3_decode_frame(XanContext *s, AVFrame *frame) s 303 libavcodec/xan.c int width = s->avctx->width; s 304 libavcodec/xan.c int height = s->avctx->height; s 312 libavcodec/xan.c uint8_t *opcode_buffer = s->buffer1; s 313 libavcodec/xan.c uint8_t *opcode_buffer_end = s->buffer1 + s->buffer1_size; s 314 libavcodec/xan.c int opcode_buffer_size = s->buffer1_size; s 315 libavcodec/xan.c const uint8_t *imagedata_buffer = s->buffer2; s 325 libavcodec/xan.c if (s->size < 8) s 328 libavcodec/xan.c huffman_offset = AV_RL16(&s->buf[0]); s 329 libavcodec/xan.c size_offset = AV_RL16(&s->buf[2]); s 330 libavcodec/xan.c vector_offset = AV_RL16(&s->buf[4]); s 331 libavcodec/xan.c imagedata_offset = AV_RL16(&s->buf[6]); s 333 libavcodec/xan.c if (huffman_offset >= s->size || s 334 libavcodec/xan.c size_offset >= s->size || s 335 libavcodec/xan.c vector_offset >= s->size || s 336 libavcodec/xan.c imagedata_offset >= s->size) s 339 libavcodec/xan.c huffman_segment = s->buf + huffman_offset; s 340 libavcodec/xan.c bytestream2_init(&size_segment, s->buf + size_offset, s->size - size_offset); s 341 libavcodec/xan.c bytestream2_init(&vector_segment, s->buf + vector_offset, s->size - vector_offset); s 342 libavcodec/xan.c imagedata_segment = s->buf + imagedata_offset; s 345 libavcodec/xan.c huffman_segment, s->size - huffman_offset)) < 0) s 350 libavcodec/xan.c xan_unpack(s->buffer2, s->buffer2_size, s 351 libavcodec/xan.c &imagedata_segment[1], s->size - imagedata_offset - 1); s 352 libavcodec/xan.c imagedata_size = s->buffer2_size; s 354 libavcodec/xan.c imagedata_size = s->size - imagedata_offset - 1; s 395 libavcodec/xan.c av_log(s->avctx, AV_LOG_ERROR, "size_segment overread\n"); s 404 libavcodec/xan.c av_log(s->avctx, AV_LOG_ERROR, "size_segment overread\n"); s 413 libavcodec/xan.c av_log(s->avctx, AV_LOG_ERROR, "size_segment overread\n"); s 427 libavcodec/xan.c xan_wc3_copy_pixel_run(s, frame, x, y, size, 0, 0); s 432 libavcodec/xan.c xan_wc3_output_pixel_run(s, frame, imagedata_buffer, x, y, size); s 439 libavcodec/xan.c av_log(s->avctx, AV_LOG_ERROR, "vector_segment overread\n"); s 448 libavcodec/xan.c xan_wc3_copy_pixel_run(s, frame, x, y, size, motion_x, motion_y); s 551 libavcodec/xan.c XanContext *s = avctx->priv_data; s 572 libavcodec/xan.c if (s->palettes_count >= PALETTES_MAX) s 574 libavcodec/xan.c tmpptr = av_realloc_array(s->palettes, s 575 libavcodec/xan.c s->palettes_count + 1, AVPALETTE_SIZE); s 578 libavcodec/xan.c s->palettes = tmpptr; s 579 libavcodec/xan.c tmpptr += s->palettes_count * AVPALETTE_COUNT; s 592 libavcodec/xan.c s->palettes_count++; s 598 libavcodec/xan.c if (new_pal < s->palettes_count) { s 599 libavcodec/xan.c s->cur_palette = new_pal; s 612 libavcodec/xan.c if (s->palettes_count <= 0) { s 613 libavcodec/xan.c av_log(s->avctx, AV_LOG_ERROR, "No palette found\n"); s 620 libavcodec/xan.c if (!s->frame_size) s 621 libavcodec/xan.c s->frame_size = frame->linesize[0] * s->avctx->height; s 624 libavcodec/xan.c s->palettes + s->cur_palette * AVPALETTE_COUNT, AVPALETTE_SIZE); s 626 libavcodec/xan.c s->buf = ctx.buffer; s 627 libavcodec/xan.c s->size = buf_size; s 629 libavcodec/xan.c if (xan_wc3_decode_frame(s, frame) < 0) s 632 libavcodec/xan.c av_frame_unref(s->last_frame); s 633 libavcodec/xan.c if ((ret = av_frame_ref(s->last_frame, frame)) < 0) s 34 libavcodec/xma_parser.c XMAParserContext *s = s1->priv_data; s 40 libavcodec/xma_parser.c if (s->skip_packets == 0) { s 42 libavcodec/xma_parser.c s->skip_packets = buf[packet * 2048 + 3] + 1; s 44 libavcodec/xma_parser.c s->skip_packets--; s 154 libavcodec/xvididct.c #define LOAD_BUTTERFLY(m1, m2, a, b, tmp, s) \ s 155 libavcodec/xvididct.c (m1) = (s)[(a)] + (s)[(b)]; \ s 156 libavcodec/xvididct.c (m2) = (s)[(a)] - (s)[(b)] s 28 libavcodec/xvmc_internal.h void ff_xvmc_init_block(MpegEncContext *s); s 29 libavcodec/xvmc_internal.h void ff_xvmc_pack_pblocks(MpegEncContext *s, int cbp); s 42 libavcodec/xxan.c XanContext *s = avctx->priv_data; s 44 libavcodec/xxan.c av_frame_free(&s->pic); s 46 libavcodec/xxan.c av_freep(&s->y_buffer); s 47 libavcodec/xxan.c av_freep(&s->scratch_buffer); s 54 libavcodec/xxan.c XanContext *s = avctx->priv_data; s 56 libavcodec/xxan.c s->avctx = avctx; s 69 libavcodec/xxan.c s->buffer_size = avctx->width * avctx->height; s 70 libavcodec/xxan.c s->y_buffer = av_malloc(s->buffer_size); s 71 libavcodec/xxan.c if (!s->y_buffer) s 73 libavcodec/xxan.c s->scratch_buffer = av_malloc(s->buffer_size + 130); s 74 libavcodec/xxan.c if (!s->scratch_buffer) { s 79 libavcodec/xxan.c s->pic = av_frame_alloc(); s 80 libavcodec/xxan.c if (!s->pic) { s 88 libavcodec/xxan.c static int xan_unpack_luma(XanContext *s, s 95 libavcodec/xxan.c GetByteContext tree = s->gb; s 98 libavcodec/xxan.c tree_size = bytestream2_get_byte(&s->gb); s 99 libavcodec/xxan.c eof = bytestream2_get_byte(&s->gb); s 101 libavcodec/xxan.c bytestream2_skip(&s->gb, tree_size * 2); s 104 libavcodec/xxan.c bits = bytestream2_get_byte(&s->gb); s 120 libavcodec/xxan.c if (bytestream2_get_bytes_left(&s->gb) <= 0) s 122 libavcodec/xxan.c bits = bytestream2_get_byteu(&s->gb); s 130 libavcodec/xxan.c static int xan_unpack(XanContext *s, s 139 libavcodec/xxan.c if (bytestream2_get_bytes_left(&s->gb) <= 0) s 142 libavcodec/xxan.c opcode = bytestream2_get_byteu(&s->gb); s 148 libavcodec/xxan.c back = ((opcode & 0x60) << 3) + bytestream2_get_byte(&s->gb) + 1; s 151 libavcodec/xxan.c size = bytestream2_peek_byte(&s->gb) >> 6; s 152 libavcodec/xxan.c back = (bytestream2_get_be16(&s->gb) & 0x3fff) + 1; s 156 libavcodec/xxan.c back = ((opcode & 0x10) << 12) + bytestream2_get_be16(&s->gb) + 1; s 157 libavcodec/xxan.c size2 = ((opcode & 0x0c) << 6) + bytestream2_get_byte(&s->gb) + 5; s 164 libavcodec/xxan.c bytestream2_get_buffer(&s->gb, dest, size); s 174 libavcodec/xxan.c bytestream2_get_buffer(&s->gb, dest, size); s 185 libavcodec/xxan.c XanContext *s = avctx->priv_data; s 195 libavcodec/xxan.c if (chroma_off + 4 >= bytestream2_get_bytes_left(&s->gb)) { s 199 libavcodec/xxan.c bytestream2_seek(&s->gb, chroma_off + 4, SEEK_SET); s 200 libavcodec/xxan.c mode = bytestream2_get_le16(&s->gb); s 201 libavcodec/xxan.c table = s->gb.buffer; s 202 libavcodec/xxan.c table_size = bytestream2_get_le16(&s->gb); s 206 libavcodec/xxan.c if (offset >= bytestream2_get_bytes_left(&s->gb)) { s 211 libavcodec/xxan.c bytestream2_skip(&s->gb, offset); s 212 libavcodec/xxan.c memset(s->scratch_buffer, 0, s->buffer_size); s 213 libavcodec/xxan.c dec_size = xan_unpack(s, s->scratch_buffer, s->buffer_size); s 219 libavcodec/xxan.c U = s->pic->data[1]; s 220 libavcodec/xxan.c V = s->pic->data[2]; s 221 libavcodec/xxan.c src = s->scratch_buffer; s 239 libavcodec/xxan.c U += s->pic->linesize[1]; s 240 libavcodec/xxan.c V += s->pic->linesize[2]; s 243 libavcodec/xxan.c memcpy(U, U - s->pic->linesize[1], avctx->width >> 1); s 244 libavcodec/xxan.c memcpy(V, V - s->pic->linesize[2], avctx->width >> 1); s 247 libavcodec/xxan.c uint8_t *U2 = U + s->pic->linesize[1]; s 248 libavcodec/xxan.c uint8_t *V2 = V + s->pic->linesize[2]; s 265 libavcodec/xxan.c U += s->pic->linesize[1] * 2; s 266 libavcodec/xxan.c V += s->pic->linesize[2] * 2; s 267 libavcodec/xxan.c U2 += s->pic->linesize[1] * 2; s 268 libavcodec/xxan.c V2 += s->pic->linesize[2] * 2; s 273 libavcodec/xxan.c memcpy(U, U - lines * s->pic->linesize[1], lines * s->pic->linesize[1]); s 274 libavcodec/xxan.c memcpy(V, V - lines * s->pic->linesize[2], lines * s->pic->linesize[2]); s 283 libavcodec/xxan.c XanContext *s = avctx->priv_data; s 284 libavcodec/xxan.c uint8_t *ybuf, *prev_buf, *src = s->scratch_buffer; s 290 libavcodec/xxan.c chroma_off = bytestream2_get_le32(&s->gb); s 291 libavcodec/xxan.c corr_off = bytestream2_get_le32(&s->gb); s 296 libavcodec/xxan.c if (corr_off >= bytestream2_size(&s->gb)) { s 300 libavcodec/xxan.c bytestream2_seek(&s->gb, 12, SEEK_SET); s 301 libavcodec/xxan.c ret = xan_unpack_luma(s, src, s->buffer_size >> 1); s 307 libavcodec/xxan.c ybuf = s->y_buffer; s 337 libavcodec/xxan.c bytestream2_seek(&s->gb, 8 + corr_off, SEEK_SET); s 338 libavcodec/xxan.c dec_size = xan_unpack(s, s->scratch_buffer, s->buffer_size / 2); s 342 libavcodec/xxan.c dec_size = FFMIN(dec_size, s->buffer_size/2 - 1); s 345 libavcodec/xxan.c s->y_buffer[i*2+1] = (s->y_buffer[i*2+1] + (s->scratch_buffer[i] << 1)) & 0x3F; s 348 libavcodec/xxan.c src = s->y_buffer; s 349 libavcodec/xxan.c ybuf = s->pic->data[0]; s 354 libavcodec/xxan.c ybuf += s->pic->linesize[0]; s 362 libavcodec/xxan.c XanContext *s = avctx->priv_data; s 363 libavcodec/xxan.c uint8_t *ybuf, *src = s->scratch_buffer; s 368 libavcodec/xxan.c if ((ret = xan_decode_chroma(avctx, bytestream2_get_le32(&s->gb))) != 0) s 371 libavcodec/xxan.c bytestream2_seek(&s->gb, 16, SEEK_SET); s 372 libavcodec/xxan.c ret = xan_unpack_luma(s, src, s 373 libavcodec/xxan.c s->buffer_size >> 1); s 379 libavcodec/xxan.c ybuf = s->y_buffer; s 393 libavcodec/xxan.c src = s->y_buffer; s 394 libavcodec/xxan.c ybuf = s->pic->data[0]; s 399 libavcodec/xxan.c ybuf += s->pic->linesize[0]; s 409 libavcodec/xxan.c XanContext *s = avctx->priv_data; s 413 libavcodec/xxan.c if ((ret = ff_reget_buffer(avctx, s->pic, 0)) < 0) s 416 libavcodec/xxan.c bytestream2_init(&s->gb, avpkt->data, avpkt->size); s 417 libavcodec/xxan.c ftype = bytestream2_get_le32(&s->gb); s 432 libavcodec/xxan.c if ((ret = av_frame_ref(data, s->pic)) < 0) s 49 libavcodec/ylc.c YLCContext *s = avctx->priv_data; s 52 libavcodec/ylc.c ff_bswapdsp_init(&s->bdsp); s 68 libavcodec/ylc.c int s; s 70 libavcodec/ylc.c s = nodes[node].sym; s 71 libavcodec/ylc.c if (s != -1) { s 74 libavcodec/ylc.c xlat[*pos] = s + (pl == 0); s 289 libavcodec/ylc.c YLCContext *s = avctx->priv_data; s 315 libavcodec/ylc.c av_fast_malloc(&s->table_bits, &s->table_bits_size, s 317 libavcodec/ylc.c if (!s->table_bits) s 320 libavcodec/ylc.c memcpy(s->table_bits, avpkt->data + toffset, boffset - toffset); s 321 libavcodec/ylc.c memset(s->table_bits + boffset - toffset, 0, AV_INPUT_BUFFER_PADDING_SIZE); s 322 libavcodec/ylc.c s->bdsp.bswap_buf((uint32_t *) s->table_bits, s 323 libavcodec/ylc.c (uint32_t *) s->table_bits, s 325 libavcodec/ylc.c if ((ret = init_get_bits8(&gb, s->table_bits, boffset - toffset)) < 0) s 332 libavcodec/ylc.c s->table[x] = val; s 335 libavcodec/ylc.c ret = build_vlc(avctx, &s->vlc[0], &s->table[0 ]); s 338 libavcodec/ylc.c ret = build_vlc(avctx, &s->vlc[1], &s->table[256]); s 341 libavcodec/ylc.c ret = build_vlc(avctx, &s->vlc[2], &s->table[512]); s 344 libavcodec/ylc.c ret = build_vlc(avctx, &s->vlc[3], &s->table[768]); s 348 libavcodec/ylc.c av_fast_malloc(&s->bitstream_bits, &s->bitstream_bits_size, s 350 libavcodec/ylc.c if (!s->bitstream_bits) s 353 libavcodec/ylc.c memcpy(s->bitstream_bits, avpkt->data + boffset, avpkt->size - boffset); s 354 libavcodec/ylc.c memset(s->bitstream_bits + avpkt->size - boffset, 0, AV_INPUT_BUFFER_PADDING_SIZE); s 355 libavcodec/ylc.c s->bdsp.bswap_buf((uint32_t *) s->bitstream_bits, s 356 libavcodec/ylc.c (uint32_t *) s->bitstream_bits, s 358 libavcodec/ylc.c if ((ret = init_get_bits8(&gb, s->bitstream_bits, avpkt->size - boffset)) < 0) s 374 libavcodec/ylc.c int val = get_vlc2(&gb, s->vlc[0].table, s->vlc[0].bits, 3); s 397 libavcodec/ylc.c y1 = get_vlc2(&gb, s->vlc[1].table, s->vlc[1].bits, 3); s 398 libavcodec/ylc.c u = get_vlc2(&gb, s->vlc[2].table, s->vlc[2].bits, 3); s 399 libavcodec/ylc.c y2 = get_vlc2(&gb, s->vlc[1].table, s->vlc[1].bits, 3); s 400 libavcodec/ylc.c v = get_vlc2(&gb, s->vlc[3].table, s->vlc[3].bits, 3); s 458 libavcodec/ylc.c YLCContext *s = avctx->priv_data; s 460 libavcodec/ylc.c ff_free_vlc(&s->vlc[0]); s 461 libavcodec/ylc.c ff_free_vlc(&s->vlc[1]); s 462 libavcodec/ylc.c ff_free_vlc(&s->vlc[2]); s 463 libavcodec/ylc.c ff_free_vlc(&s->vlc[3]); s 464 libavcodec/ylc.c av_freep(&s->table_bits); s 465 libavcodec/ylc.c s->table_bits_size = 0; s 466 libavcodec/ylc.c av_freep(&s->bitstream_bits); s 467 libavcodec/ylc.c s->bitstream_bits_size = 0; s 86 libavcodec/yop.c YopDecContext *s = avctx->priv_data; s 88 libavcodec/yop.c av_frame_free(&s->frame); s 95 libavcodec/yop.c YopDecContext *s = avctx->priv_data; s 96 libavcodec/yop.c s->avctx = avctx; s 111 libavcodec/yop.c s->num_pal_colors = avctx->extradata[0]; s 112 libavcodec/yop.c s->first_color[0] = avctx->extradata[1]; s 113 libavcodec/yop.c s->first_color[1] = avctx->extradata[2]; s 115 libavcodec/yop.c if (s->num_pal_colors + s->first_color[0] > 256 || s 116 libavcodec/yop.c s->num_pal_colors + s->first_color[1] > 256) { s 122 libavcodec/yop.c s->frame = av_frame_alloc(); s 123 libavcodec/yop.c if (!s->frame) s 134 libavcodec/yop.c static int yop_paint_block(YopDecContext *s, int linesize, int tag) s 136 libavcodec/yop.c if (s->src_end - s->srcptr < paint_lut[tag][3]) { s 137 libavcodec/yop.c av_log(s->avctx, AV_LOG_ERROR, "Packet too small.\n"); s 141 libavcodec/yop.c s->dstptr[0] = s->srcptr[0]; s 142 libavcodec/yop.c s->dstptr[1] = s->srcptr[paint_lut[tag][0]]; s 143 libavcodec/yop.c s->dstptr[linesize] = s->srcptr[paint_lut[tag][1]]; s 144 libavcodec/yop.c s->dstptr[linesize + 1] = s->srcptr[paint_lut[tag][2]]; s 147 libavcodec/yop.c s->srcptr += paint_lut[tag][3]; s 155 libavcodec/yop.c static int yop_copy_previous_block(YopDecContext *s, int linesize, int copy_tag) s 160 libavcodec/yop.c bufptr = s->dstptr + motion_vector[copy_tag][0] + s 162 libavcodec/yop.c if (bufptr < s->dstbuf) { s 163 libavcodec/yop.c av_log(s->avctx, AV_LOG_ERROR, "File probably corrupt\n"); s 167 libavcodec/yop.c s->dstptr[0] = bufptr[0]; s 168 libavcodec/yop.c s->dstptr[1] = bufptr[1]; s 169 libavcodec/yop.c s->dstptr[linesize] = bufptr[linesize]; s 170 libavcodec/yop.c s->dstptr[linesize + 1] = bufptr[linesize + 1]; s 179 libavcodec/yop.c static uint8_t yop_get_next_nibble(YopDecContext *s) s 183 libavcodec/yop.c if (s->low_nibble) { s 184 libavcodec/yop.c ret = *s->low_nibble & 0xf; s 185 libavcodec/yop.c s->low_nibble = NULL; s 187 libavcodec/yop.c s->low_nibble = s->srcptr++; s 188 libavcodec/yop.c ret = *s->low_nibble >> 4; s 196 libavcodec/yop.c YopDecContext *s = avctx->priv_data; s 197 libavcodec/yop.c AVFrame *frame = s->frame; s 202 libavcodec/yop.c if (avpkt->size < 4 + 3 * s->num_pal_colors) { s 213 libavcodec/yop.c s->dstbuf = frame->data[0]; s 214 libavcodec/yop.c s->dstptr = frame->data[0]; s 215 libavcodec/yop.c s->srcptr = avpkt->data + 4; s 216 libavcodec/yop.c s->src_end = avpkt->data + avpkt->size; s 217 libavcodec/yop.c s->low_nibble = NULL; s 224 libavcodec/yop.c firstcolor = s->first_color[is_odd_frame]; s 227 libavcodec/yop.c for (i = 0; i < s->num_pal_colors; i++, s->srcptr += 3) { s 228 libavcodec/yop.c palette[i + firstcolor] = (s->srcptr[0] << 18) | s 229 libavcodec/yop.c (s->srcptr[1] << 10) | s 230 libavcodec/yop.c (s->srcptr[2] << 2); s 239 libavcodec/yop.c if (s->srcptr - avpkt->data >= avpkt->size) { s 244 libavcodec/yop.c tag = yop_get_next_nibble(s); s 247 libavcodec/yop.c ret = yop_paint_block(s, frame->linesize[0], tag); s 251 libavcodec/yop.c tag = yop_get_next_nibble(s); s 252 libavcodec/yop.c ret = yop_copy_previous_block(s, frame->linesize[0], tag); s 256 libavcodec/yop.c s->dstptr += 2; s 258 libavcodec/yop.c s->dstptr += 2*frame->linesize[0] - x; s 261 libavcodec/yop.c if ((ret = av_frame_ref(data, s->frame)) < 0) s 121 libavdevice/alsa.c case FORMAT_I8: s->reorder_func = alsa_reorder_int8_out_ ##layout; break;\ s 122 libavdevice/alsa.c case FORMAT_I16: s->reorder_func = alsa_reorder_int16_out_ ##layout; break;\ s 123 libavdevice/alsa.c case FORMAT_I32: s->reorder_func = alsa_reorder_int32_out_ ##layout; break;\ s 124 libavdevice/alsa.c case FORMAT_F32: s->reorder_func = alsa_reorder_f32_out_ ##layout; break;\ s 127 libavdevice/alsa.c static av_cold int find_reorder_func(AlsaData *s, int codec_id, uint64_t layout, int out) s 164 libavdevice/alsa.c return s->reorder_func ? 0 : AVERROR(ENOSYS); s 171 libavdevice/alsa.c AlsaData *s = ctx->priv_data; s 190 libavdevice/alsa.c s->frame_size = av_get_bits_per_sample(*codec_id) / 8 * channels; s 263 libavdevice/alsa.c s->period_size = period_size; s 275 libavdevice/alsa.c if (find_reorder_func(s, *codec_id, layout, mode == SND_PCM_STREAM_PLAYBACK) < 0) { s 281 libavdevice/alsa.c if (s->reorder_func) { s 282 libavdevice/alsa.c s->reorder_buf_size = buffer_size; s 283 libavdevice/alsa.c s->reorder_buf = av_malloc_array(s->reorder_buf_size, s->frame_size); s 284 libavdevice/alsa.c if (!s->reorder_buf) s 289 libavdevice/alsa.c s->h = h; s 301 libavdevice/alsa.c AlsaData *s = s1->priv_data; s 303 libavdevice/alsa.c if (snd_pcm_stream(s->h) == SND_PCM_STREAM_PLAYBACK) { s 304 libavdevice/alsa.c snd_pcm_nonblock(s->h, 0); s 305 libavdevice/alsa.c snd_pcm_drain(s->h); s 307 libavdevice/alsa.c av_freep(&s->reorder_buf); s 309 libavdevice/alsa.c ff_timefilter_destroy(s->timefilter); s 310 libavdevice/alsa.c snd_pcm_close(s->h); s 316 libavdevice/alsa.c AlsaData *s = s1->priv_data; s 317 libavdevice/alsa.c snd_pcm_t *handle = s->h; s 335 libavdevice/alsa.c int ff_alsa_extend_reorder_buf(AlsaData *s, int min_size) s 337 libavdevice/alsa.c int size = s->reorder_buf_size; s 343 libavdevice/alsa.c r = av_realloc_array(s->reorder_buf, size, s->frame_size); s 346 libavdevice/alsa.c s->reorder_buf = r; s 347 libavdevice/alsa.c s->reorder_buf_size = size; s 78 libavdevice/alsa.h int ff_alsa_open(AVFormatContext *s, snd_pcm_stream_t mode, s 103 libavdevice/alsa.h int ff_alsa_extend_reorder_buf(AlsaData *s, int size); s 62 libavdevice/alsa_dec.c AlsaData *s = s1->priv_data; s 75 libavdevice/alsa_dec.c ret = ff_alsa_open(s1, SND_PCM_STREAM_CAPTURE, &s->sample_rate, s->channels, s 84 libavdevice/alsa_dec.c st->codecpar->sample_rate = s->sample_rate; s 85 libavdevice/alsa_dec.c st->codecpar->channels = s->channels; s 86 libavdevice/alsa_dec.c st->codecpar->frame_size = s->frame_size; s 89 libavdevice/alsa_dec.c s->timefilter = ff_timefilter_new(1000000.0 / s->sample_rate, s 90 libavdevice/alsa_dec.c s->period_size, 1.5E-6); s 91 libavdevice/alsa_dec.c if (!s->timefilter) s 97 libavdevice/alsa_dec.c snd_pcm_close(s->h); s 103 libavdevice/alsa_dec.c AlsaData *s = s1->priv_data; s 108 libavdevice/alsa_dec.c if (av_new_packet(pkt, s->period_size * s->frame_size) < 0) { s 112 libavdevice/alsa_dec.c while ((res = snd_pcm_readi(s->h, pkt->data, s->period_size)) < 0) { s 125 libavdevice/alsa_dec.c ff_timefilter_reset(s->timefilter); s 129 libavdevice/alsa_dec.c snd_pcm_delay(s->h, &delay); s 130 libavdevice/alsa_dec.c dts -= av_rescale(delay + res, 1000000, s->sample_rate); s 131 libavdevice/alsa_dec.c pkt->pts = ff_timefilter_update(s->timefilter, dts, s->last_period); s 132 libavdevice/alsa_dec.c s->last_period = res; s 134 libavdevice/alsa_dec.c pkt->size = res * s->frame_size; s 52 libavdevice/alsa_enc.c AlsaData *s = s1->priv_data; s 79 libavdevice/alsa_enc.c snd_pcm_close(s->h); s 85 libavdevice/alsa_enc.c AlsaData *s = s1->priv_data; s 90 libavdevice/alsa_enc.c size /= s->frame_size; s 92 libavdevice/alsa_enc.c s->timestamp = pkt->dts; s 93 libavdevice/alsa_enc.c s->timestamp += pkt->duration ? pkt->duration : size; s 95 libavdevice/alsa_enc.c if (s->reorder_func) { s 96 libavdevice/alsa_enc.c if (size > s->reorder_buf_size) s 97 libavdevice/alsa_enc.c if (ff_alsa_extend_reorder_buf(s, size)) s 99 libavdevice/alsa_enc.c s->reorder_func(buf, s->reorder_buf, size); s 100 libavdevice/alsa_enc.c buf = s->reorder_buf; s 102 libavdevice/alsa_enc.c while ((res = snd_pcm_writei(s->h, buf, size)) < 0) { s 122 libavdevice/alsa_enc.c AlsaData *s = s1->priv_data; s 131 libavdevice/alsa_enc.c pkt.size = (*frame)->nb_samples * s->frame_size; s 141 libavdevice/alsa_enc.c AlsaData *s = s1->priv_data; s 144 libavdevice/alsa_enc.c snd_pcm_delay(s->h, &delay); s 145 libavdevice/alsa_enc.c *dts = s->timestamp - delay; s 127 libavdevice/avdevice.c int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum AVAppToDevMessageType type, s 130 libavdevice/avdevice.c if (!s->oformat || !s->oformat->control_message) s 132 libavdevice/avdevice.c return s->oformat->control_message(s, type, data, data_size); s 135 libavdevice/avdevice.c int avdevice_dev_to_app_control_message(struct AVFormatContext *s, enum AVDevToAppMessageType type, s 138 libavdevice/avdevice.c if (!s->control_message_cb) s 140 libavdevice/avdevice.c return s->control_message_cb(s, type, data, data_size); s 143 libavdevice/avdevice.c int avdevice_capabilities_create(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s, s 147 libavdevice/avdevice.c av_assert0(s && caps); s 148 libavdevice/avdevice.c av_assert0(s->iformat || s->oformat); s 149 libavdevice/avdevice.c if ((s->oformat && !s->oformat->create_device_capabilities) || s 150 libavdevice/avdevice.c (s->iformat && !s->iformat->create_device_capabilities)) s 155 libavdevice/avdevice.c (*caps)->device_context = s; s 156 libavdevice/avdevice.c if (((ret = av_opt_set_dict(s->priv_data, device_options)) < 0)) s 158 libavdevice/avdevice.c if (s->iformat) { s 159 libavdevice/avdevice.c if ((ret = s->iformat->create_device_capabilities(s, *caps)) < 0) s 162 libavdevice/avdevice.c if ((ret = s->oformat->create_device_capabilities(s, *caps)) < 0) s 172 libavdevice/avdevice.c void avdevice_capabilities_free(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s) s 174 libavdevice/avdevice.c if (!s || !caps || !(*caps)) s 176 libavdevice/avdevice.c av_assert0(s->iformat || s->oformat); s 177 libavdevice/avdevice.c if (s->iformat) { s 178 libavdevice/avdevice.c if (s->iformat->free_device_capabilities) s 179 libavdevice/avdevice.c s->iformat->free_device_capabilities(s, *caps); s 181 libavdevice/avdevice.c if (s->oformat->free_device_capabilities) s 182 libavdevice/avdevice.c s->oformat->free_device_capabilities(s, *caps); s 187 libavdevice/avdevice.c int avdevice_list_devices(AVFormatContext *s, AVDeviceInfoList **device_list) s 190 libavdevice/avdevice.c av_assert0(s); s 192 libavdevice/avdevice.c av_assert0(s->oformat || s->iformat); s 193 libavdevice/avdevice.c if ((s->oformat && !s->oformat->get_device_list) || s 194 libavdevice/avdevice.c (s->iformat && !s->iformat->get_device_list)) { s 203 libavdevice/avdevice.c if (s->oformat) s 204 libavdevice/avdevice.c ret = s->oformat->get_device_list(s, *device_list); s 206 libavdevice/avdevice.c ret = s->iformat->get_device_list(s, *device_list); s 212 libavdevice/avdevice.c static int list_devices_for_context(AVFormatContext *s, AVDictionary *options, s 219 libavdevice/avdevice.c if ((ret = av_opt_set_dict2(s, &tmp, AV_OPT_SEARCH_CHILDREN)) < 0) s 221 libavdevice/avdevice.c ret = avdevice_list_devices(s, device_list); s 224 libavdevice/avdevice.c avformat_free_context(s); s 231 libavdevice/avdevice.c AVFormatContext *s = NULL; s 234 libavdevice/avdevice.c if ((ret = ff_alloc_input_device_context(&s, device, device_name)) < 0) s 236 libavdevice/avdevice.c return list_devices_for_context(s, device_options, device_list); s 242 libavdevice/avdevice.c AVFormatContext *s = NULL; s 245 libavdevice/avdevice.c if ((ret = avformat_alloc_output_context2(&s, device, device_name, NULL)) < 0) s 247 libavdevice/avdevice.c return list_devices_for_context(s, device_options, device_list); s 306 libavdevice/avdevice.h int avdevice_app_to_dev_control_message(struct AVFormatContext *s, s 320 libavdevice/avdevice.h int avdevice_dev_to_app_control_message(struct AVFormatContext *s, s 438 libavdevice/avdevice.h int avdevice_capabilities_create(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s, s 447 libavdevice/avdevice.h void avdevice_capabilities_free(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s); s 479 libavdevice/avdevice.h int avdevice_list_devices(struct AVFormatContext *s, AVDeviceInfoList **device_list); s 246 libavdevice/bktr.c VideoData *s = s1->priv_data; s 251 libavdevice/bktr.c bktr_getframe(s->per_frame); s 261 libavdevice/bktr.c VideoData *s = s1->priv_data; s 266 libavdevice/bktr.c if (!s->framerate) s 267 libavdevice/bktr.c switch (s->standard) { s 268 libavdevice/bktr.c case PAL: s->framerate = av_strdup("pal"); break; s 269 libavdevice/bktr.c case NTSC: s->framerate = av_strdup("ntsc"); break; s 270 libavdevice/bktr.c case SECAM: s->framerate = av_strdup("25"); break; s 276 libavdevice/bktr.c if ((ret = av_parse_video_rate(&framerate, s->framerate)) < 0) { s 277 libavdevice/bktr.c av_log(s1, AV_LOG_ERROR, "Could not parse framerate '%s'.\n", s->framerate); s 288 libavdevice/bktr.c s->per_frame = ((uint64_t)1000000 * framerate.den) / framerate.num; s 293 libavdevice/bktr.c st->codecpar->width = s->width; s 294 libavdevice/bktr.c st->codecpar->height = s->height; s 297 libavdevice/bktr.c if (bktr_init(s1->url, s->width, s->height, s->standard, s 298 libavdevice/bktr.c &s->video_fd, &s->tuner_fd, -1, 0.0) < 0) { s 312 libavdevice/bktr.c VideoData *s = s1->priv_data; s 316 libavdevice/bktr.c ioctl(s->video_fd, METEORCAPTUR, &c); s 317 libavdevice/bktr.c close(s->video_fd); s 320 libavdevice/bktr.c ioctl(s->tuner_fd, BT848_SAUDIO, &c); s 321 libavdevice/bktr.c close(s->tuner_fd); s 44 libavdevice/caca.c static int caca_write_trailer(AVFormatContext *s) s 46 libavdevice/caca.c CACAContext *c = s->priv_data; s 91 libavdevice/caca.c static int caca_write_header(AVFormatContext *s) s 93 libavdevice/caca.c CACAContext *c = s->priv_data; s 94 libavdevice/caca.c AVStream *st = s->streams[0]; s 98 libavdevice/caca.c c->ctx = s; s 113 libavdevice/caca.c av_log(s, AV_LOG_ERROR, s 122 libavdevice/caca.c if ( s->nb_streams > 1 s 125 libavdevice/caca.c av_log(s, AV_LOG_ERROR, "Only supports one rawvideo stream\n"); s 130 libavdevice/caca.c av_log(s, AV_LOG_ERROR, s 139 libavdevice/caca.c av_log(s, AV_LOG_ERROR, "Failed to create canvas\n"); s 149 libavdevice/caca.c av_log(s, AV_LOG_ERROR, "Failed to create dither\n"); s 156 libavdevice/caca.c av_log(s, AV_LOG_ERROR, "Failed to set value '%s' for option '%s'\n", \ s 170 libavdevice/caca.c av_log(s, AV_LOG_ERROR, "Failed to create display\n"); s 181 libavdevice/caca.c c->window_title = av_strdup(s->url); s 188 libavdevice/caca.c caca_write_trailer(s); s 192 libavdevice/caca.c static int caca_write_packet(AVFormatContext *s, AVPacket *pkt) s 194 libavdevice/caca.c CACAContext *c = s->priv_data; s 80 libavdevice/decklink_common.cpp static int decklink_get_attr_string(IDeckLink *dl, BMDDeckLinkAttributeID cfg_id, const char **s) s 85 libavdevice/decklink_common.cpp *s = NULL; s 91 libavdevice/decklink_common.cpp *s = DECKLINK_STRDUP(tmp); s 93 libavdevice/decklink_common.cpp if (!*s) s 47 libavdevice/decklink_common.h char *s = NULL; s 49 libavdevice/decklink_common.h s = (char *) av_malloc(l); s 50 libavdevice/decklink_common.h if (s) s 51 libavdevice/decklink_common.h WideCharToMultiByte(CP_UTF8, 0, w, -1, s, l, 0, 0); s 52 libavdevice/decklink_common.h return s; s 56 libavdevice/decklink_common.h #define DECKLINK_FREE(s) SysFreeString(s) s 60 libavdevice/decklink_common.h char s[256]; s 61 libavdevice/decklink_common.h CFStringGetCString(w, s, 255, kCFStringEncodingUTF8); s 62 libavdevice/decklink_common.h return av_strdup(s); s 66 libavdevice/decklink_common.h #define DECKLINK_FREE(s) CFRelease(s) s 71 libavdevice/decklink_common.h #define DECKLINK_FREE(s) free((void *) s) s 58 libavdevice/dshow.c dshow_read_close(AVFormatContext *s) s 60 libavdevice/dshow.c struct dshow_ctx *ctx = s->priv_data; s 134 libavdevice/dshow.c char *s = NULL; s 136 libavdevice/dshow.c s = av_malloc(l); s 137 libavdevice/dshow.c if (s) s 138 libavdevice/dshow.c WideCharToMultiByte(CP_UTF8, 0, w, -1, s, l, 0, 0); s 139 libavdevice/dshow.c return s; s 142 libavdevice/dshow.c static int shall_we_drop(AVFormatContext *s, int index, enum dshowDeviceType devtype) s 144 libavdevice/dshow.c struct dshow_ctx *ctx = s->priv_data; s 147 libavdevice/dshow.c unsigned int buffer_fullness = (ctx->curbufsize[index]*100)/s->max_picture_buffer; s 151 libavdevice/dshow.c av_log(s, AV_LOG_ERROR, s 153 libavdevice/dshow.c ctx->device_name[devtype], devtypename, buffer_fullness, s->max_picture_buffer); s 163 libavdevice/dshow.c AVFormatContext *s = priv_data; s 164 libavdevice/dshow.c struct dshow_ctx *ctx = s->priv_data; s 171 libavdevice/dshow.c if(shall_we_drop(s, index, devtype)) s 1262 libavdevice/dshow.c static int dshow_read_packet(AVFormatContext *s, AVPacket *pkt) s 1264 libavdevice/dshow.c struct dshow_ctx *ctx = s->priv_data; s 1281 libavdevice/dshow.c } else if (s->flags & AVFMT_FLAG_NONBLOCK) { s 66 libavdevice/dshow_common.c static void dump_bih(void *s, BITMAPINFOHEADER *bih) s 69 libavdevice/dshow_common.c dstruct(s, bih, biSize, "lu"); s 70 libavdevice/dshow_common.c dstruct(s, bih, biWidth, "ld"); s 71 libavdevice/dshow_common.c dstruct(s, bih, biHeight, "ld"); s 72 libavdevice/dshow_common.c dstruct(s, bih, biPlanes, "d"); s 73 libavdevice/dshow_common.c dstruct(s, bih, biBitCount, "d"); s 74 libavdevice/dshow_common.c dstruct(s, bih, biCompression, "lu"); s 77 libavdevice/dshow_common.c dstruct(s, bih, biSizeImage, "lu"); s 78 libavdevice/dshow_common.c dstruct(s, bih, biXPelsPerMeter, "lu"); s 79 libavdevice/dshow_common.c dstruct(s, bih, biYPelsPerMeter, "lu"); s 80 libavdevice/dshow_common.c dstruct(s, bih, biClrUsed, "lu"); s 81 libavdevice/dshow_common.c dstruct(s, bih, biClrImportant, "lu"); s 318 libavdevice/dshow_pin.c AVFormatContext *s; s 358 libavdevice/dshow_pin.c s = priv_data; s 359 libavdevice/dshow_pin.c ctx = s->priv_data; s 215 libavdevice/fbdev_dec.c static int fbdev_get_device_list(AVFormatContext *s, AVDeviceInfoList *device_list) s 187 libavdevice/fbdev_enc.c static int fbdev_get_device_list(AVFormatContext *s, AVDeviceInfoList *device_list) s 616 libavdevice/gdigrab.c struct gdigrab *s = s1->priv_data; s 618 libavdevice/gdigrab.c if (s->show_region) s 619 libavdevice/gdigrab.c gdigrab_region_wnd_destroy(s1, s); s 621 libavdevice/gdigrab.c if (s->source_hdc) s 622 libavdevice/gdigrab.c ReleaseDC(s->hwnd, s->source_hdc); s 623 libavdevice/gdigrab.c if (s->dest_hdc) s 624 libavdevice/gdigrab.c DeleteDC(s->dest_hdc); s 625 libavdevice/gdigrab.c if (s->hbmp) s 626 libavdevice/gdigrab.c DeleteObject(s->hbmp); s 627 libavdevice/gdigrab.c if (s->source_hdc) s 628 libavdevice/gdigrab.c DeleteDC(s->source_hdc); s 56 libavdevice/libcdio.c CDIOContext *s = ctx->priv_data; s 63 libavdevice/libcdio.c s->drive = cdio_cddap_identify(ctx->url, CDDA_MESSAGE_LOGIT, &err); s 64 libavdevice/libcdio.c if (!s->drive) { s 72 libavdevice/libcdio.c if ((ret = cdio_cddap_open(s->drive)) < 0 || !s->drive->opened) { s 77 libavdevice/libcdio.c cdio_cddap_verbose_set(s->drive, CDDA_MESSAGE_LOGIT, CDDA_MESSAGE_LOGIT); s 78 libavdevice/libcdio.c if (s->speed) s 79 libavdevice/libcdio.c cdio_cddap_speed_set(s->drive, s->speed); s 81 libavdevice/libcdio.c s->paranoia = cdio_paranoia_init(s->drive); s 82 libavdevice/libcdio.c if (!s->paranoia) { s 86 libavdevice/libcdio.c cdio_paranoia_modeset(s->paranoia, s->paranoia_mode); s 89 libavdevice/libcdio.c if (s->drive->bigendianp) s 95 libavdevice/libcdio.c if (s->drive->audio_last_sector != CDIO_INVALID_LSN && s 96 libavdevice/libcdio.c s->drive->audio_first_sector != CDIO_INVALID_LSN) s 97 libavdevice/libcdio.c st->duration = s->drive->audio_last_sector - s->drive->audio_first_sector; s 98 libavdevice/libcdio.c else if (s->drive->tracks) s 99 libavdevice/libcdio.c st->duration = s->drive->disc_toc[s->drive->tracks].dwStartSector; s 102 libavdevice/libcdio.c for (i = 0; i < s->drive->tracks; i++) { s 104 libavdevice/libcdio.c snprintf(title, sizeof(title), "track %02d", s->drive->disc_toc[i].bTrack); s 105 libavdevice/libcdio.c avpriv_new_chapter(ctx, i, st->time_base, s->drive->disc_toc[i].dwStartSector, s 106 libavdevice/libcdio.c s->drive->disc_toc[i+1].dwStartSector, title); s 109 libavdevice/libcdio.c s->last_sector = cdio_cddap_disc_lastsector(s->drive); s 116 libavdevice/libcdio.c CDIOContext *s = ctx->priv_data; s 121 libavdevice/libcdio.c if (ctx->streams[0]->cur_dts > s->last_sector) s 124 libavdevice/libcdio.c buf = cdio_paranoia_read(s->paranoia, NULL); s 128 libavdevice/libcdio.c if (err = cdio_cddap_errors(s->drive)) { s 133 libavdevice/libcdio.c if (err = cdio_cddap_messages(s->drive)) { s 147 libavdevice/libcdio.c CDIOContext *s = ctx->priv_data; s 148 libavdevice/libcdio.c cdio_paranoia_free(s->paranoia); s 149 libavdevice/libcdio.c cdio_cddap_close(s->drive); s 156 libavdevice/libcdio.c CDIOContext *s = ctx->priv_data; s 159 libavdevice/libcdio.c cdio_paranoia_seek(s->paranoia, timestamp, SEEK_SET); s 279 libavdevice/opengl_enc.c static av_cold int opengl_prepare_vertex(AVFormatContext *s); s 668 libavdevice/opengl_enc.c static void opengl_compute_display_area(AVFormatContext *s) s 671 libavdevice/opengl_enc.c OpenGLContext *opengl = s->priv_data; s 672 libavdevice/opengl_enc.c AVStream *st = s->streams[0]; s 862 libavdevice/opengl_enc.c static av_cold int opengl_prepare_vertex(AVFormatContext *s) s 864 libavdevice/opengl_enc.c OpenGLContext *opengl = s->priv_data; s 879 libavdevice/opengl_enc.c opengl_compute_display_area(s); s 43 libavdevice/oss.c OSSAudioData *s = s1->priv_data; s 58 libavdevice/oss.c s->flip_left = 1; s 68 libavdevice/oss.c s->frame_size = OSS_AUDIO_BLOCK_SIZE; s 105 libavdevice/oss.c s->codec_id = AV_CODEC_ID_PCM_S16LE; s 108 libavdevice/oss.c s->codec_id = AV_CODEC_ID_PCM_S16BE; s 118 libavdevice/oss.c tmp = (s->channels == 2); s 122 libavdevice/oss.c tmp = s->sample_rate; s 125 libavdevice/oss.c s->sample_rate = tmp; /* store real sample rate */ s 126 libavdevice/oss.c s->fd = audio_fd; s 135 libavdevice/oss.c int ff_oss_audio_close(OSSAudioData *s) s 137 libavdevice/oss.c close(s->fd); s 43 libavdevice/oss.h int ff_oss_audio_close(OSSAudioData *s); s 46 libavdevice/oss_dec.c OSSAudioData *s = s1->priv_data; s 62 libavdevice/oss_dec.c st->codecpar->codec_id = s->codec_id; s 63 libavdevice/oss_dec.c st->codecpar->sample_rate = s->sample_rate; s 64 libavdevice/oss_dec.c st->codecpar->channels = s->channels; s 72 libavdevice/oss_dec.c OSSAudioData *s = s1->priv_data; s 77 libavdevice/oss_dec.c if ((ret=av_new_packet(pkt, s->frame_size)) < 0) s 80 libavdevice/oss_dec.c ret = read(s->fd, pkt->data, pkt->size); s 92 libavdevice/oss_dec.c if (ioctl(s->fd, SNDCTL_DSP_GETISPACE, &abufi) == 0) { s 96 libavdevice/oss_dec.c cur_time -= (bdelay * 1000000LL) / (s->sample_rate * s->channels); s 101 libavdevice/oss_dec.c if (s->flip_left && s->channels == 2) { s 115 libavdevice/oss_dec.c OSSAudioData *s = s1->priv_data; s 117 libavdevice/oss_dec.c ff_oss_audio_close(s); s 42 libavdevice/oss_enc.c OSSAudioData *s = s1->priv_data; s 47 libavdevice/oss_enc.c s->sample_rate = st->codecpar->sample_rate; s 48 libavdevice/oss_enc.c s->channels = st->codecpar->channels; s 59 libavdevice/oss_enc.c OSSAudioData *s = s1->priv_data; s 65 libavdevice/oss_enc.c len = FFMIN(OSS_AUDIO_BLOCK_SIZE - s->buffer_ptr, size); s 66 libavdevice/oss_enc.c memcpy(s->buffer + s->buffer_ptr, buf, len); s 67 libavdevice/oss_enc.c s->buffer_ptr += len; s 68 libavdevice/oss_enc.c if (s->buffer_ptr >= OSS_AUDIO_BLOCK_SIZE) { s 70 libavdevice/oss_enc.c ret = write(s->fd, s->buffer, OSS_AUDIO_BLOCK_SIZE); s 76 libavdevice/oss_enc.c s->buffer_ptr = 0; s 86 libavdevice/oss_enc.c OSSAudioData *s = s1->priv_data; s 88 libavdevice/oss_enc.c ff_oss_audio_close(s); s 87 libavdevice/pulse_audio_dec.c static void stream_state_cb(pa_stream *s, void * userdata) { s 90 libavdevice/pulse_audio_dec.c switch (pa_stream_get_state(s)) { s 99 libavdevice/pulse_audio_dec.c static void stream_request_cb(pa_stream *s, size_t length, void *userdata) { s 105 libavdevice/pulse_audio_dec.c static void stream_latency_update_cb(pa_stream *s, void *userdata) { s 111 libavdevice/pulse_audio_dec.c static av_cold int pulse_close(AVFormatContext *s) s 113 libavdevice/pulse_audio_dec.c PulseData *pd = s->priv_data; s 138 libavdevice/pulse_audio_dec.c static av_cold int pulse_read_header(AVFormatContext *s) s 140 libavdevice/pulse_audio_dec.c PulseData *pd = s->priv_data; s 145 libavdevice/pulse_audio_dec.c s->audio_codec_id == AV_CODEC_ID_NONE ? DEFAULT_CODEC_ID : s->audio_codec_id; s 155 libavdevice/pulse_audio_dec.c st = avformat_new_stream(s, NULL); s 158 libavdevice/pulse_audio_dec.c av_log(s, AV_LOG_ERROR, "Cannot add stream\n"); s 164 libavdevice/pulse_audio_dec.c if (s->url[0] != '\0' && strcmp(s->url, "default")) s 165 libavdevice/pulse_audio_dec.c device = s->url; s 168 libavdevice/pulse_audio_dec.c pulse_close(s); s 173 libavdevice/pulse_audio_dec.c pulse_close(s); s 180 libavdevice/pulse_audio_dec.c pulse_close(s); s 258 libavdevice/pulse_audio_dec.c pulse_close(s); s 267 libavdevice/pulse_audio_dec.c pulse_close(s); s 271 libavdevice/pulse_audio_dec.c static int pulse_read_packet(AVFormatContext *s, AVPacket *pkt) s 273 libavdevice/pulse_audio_dec.c PulseData *pd = s->priv_data; s 312 libavdevice/pulse_audio_dec.c s->audio_codec_id == AV_CODEC_ID_NONE ? DEFAULT_CODEC_ID : s->audio_codec_id; s 326 libavdevice/pulse_audio_dec.c av_log(s, AV_LOG_WARNING, "pa_stream_get_latency() failed\n"); s 342 libavdevice/pulse_audio_dec.c PulseData *s = h->priv_data; s 343 libavdevice/pulse_audio_dec.c return ff_pulse_audio_get_devices(device_list, s->server, 0); s 57 libavdevice/pulse_audio_enc.c PulseData *s = userdata; s 59 libavdevice/pulse_audio_enc.c if (s->ctx != ctx) s 63 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_signal(s->mainloop, 0); s 66 libavdevice/pulse_audio_enc.c s->base_volume = dev->base_volume; s 68 libavdevice/pulse_audio_enc.c s->base_volume = PA_VOLUME_NORM; s 69 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_DEBUG, "base volume: %u\n", s->base_volume); s 76 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 78 libavdevice/pulse_audio_enc.c if (!(op = pa_context_get_sink_info_by_name(s->ctx, s->device, s 79 libavdevice/pulse_audio_enc.c pulse_audio_sink_device_cb, s))) { s 80 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "pa_context_get_sink_info_by_name failed.\n"); s 84 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_wait(s->mainloop); s 93 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 95 libavdevice/pulse_audio_enc.c if (s->ctx != ctx) s 101 libavdevice/pulse_audio_enc.c if (s->mute < 0 || (s->mute && !i->mute) || (!s->mute && i->mute)) { s 102 libavdevice/pulse_audio_enc.c s->mute = i->mute; s 103 libavdevice/pulse_audio_enc.c avdevice_dev_to_app_control_message(h, AV_DEV_TO_APP_MUTE_STATE_CHANGED, &s->mute, sizeof(s->mute)); s 106 libavdevice/pulse_audio_enc.c vol = pa_sw_volume_divide(vol, s->base_volume); s 107 libavdevice/pulse_audio_enc.c if (s->last_volume != vol) { s 110 libavdevice/pulse_audio_enc.c s->last_volume = vol; s 119 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 126 libavdevice/pulse_audio_enc.c if ((ret = ff_pulse_audio_connect_context(&ml, &ctx, s->server, "Update sink input information")) < 0) s 129 libavdevice/pulse_audio_enc.c if (!(op = pa_context_get_sink_input_info(ctx, pa_stream_get_index(s->stream), s 146 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "pa_context_get_sink_input_info failed.\n"); s 154 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 156 libavdevice/pulse_audio_enc.c if (s->ctx != ctx) s 169 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 172 libavdevice/pulse_audio_enc.c if (stream != s->stream) s 176 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_signal(s->mainloop, 0); s 193 libavdevice/pulse_audio_enc.c PulseData *s = userdata; s 195 libavdevice/pulse_audio_enc.c if (stream != s->stream) s 198 libavdevice/pulse_audio_enc.c switch (pa_stream_get_state(s->stream)) { s 202 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_signal(s->mainloop, 0); s 208 libavdevice/pulse_audio_enc.c static int pulse_stream_wait(PulseData *s) s 212 libavdevice/pulse_audio_enc.c while ((state = pa_stream_get_state(s->stream)) != PA_STREAM_READY) { s 215 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_wait(s->mainloop); s 222 libavdevice/pulse_audio_enc.c PulseData *s = userdata; s 224 libavdevice/pulse_audio_enc.c if (s->ctx != ctx) s 231 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_signal(s->mainloop, 0); s 237 libavdevice/pulse_audio_enc.c static int pulse_context_wait(PulseData *s) s 241 libavdevice/pulse_audio_enc.c while ((state = pa_context_get_state(s->ctx)) != PA_CONTEXT_READY) { s 244 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_wait(s->mainloop); s 251 libavdevice/pulse_audio_enc.c PulseData *s = userdata; s 253 libavdevice/pulse_audio_enc.c if (stream != s->stream) s 256 libavdevice/pulse_audio_enc.c s->last_result = success ? 0 : AVERROR_EXTERNAL; s 257 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_signal(s->mainloop, 0); s 260 libavdevice/pulse_audio_enc.c static int pulse_finish_stream_operation(PulseData *s, pa_operation *op, const char *name) s 263 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 264 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "%s failed.\n", name); s 267 libavdevice/pulse_audio_enc.c s->last_result = 2; s 268 libavdevice/pulse_audio_enc.c while (s->last_result == 2) s 269 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_wait(s->mainloop); s 271 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 272 libavdevice/pulse_audio_enc.c if (s->last_result != 0) s 273 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "%s failed.\n", name); s 274 libavdevice/pulse_audio_enc.c return s->last_result; s 277 libavdevice/pulse_audio_enc.c static int pulse_set_pause(PulseData *s, int pause) s 280 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 281 libavdevice/pulse_audio_enc.c op = pa_stream_cork(s->stream, pause, pulse_stream_result, s); s 282 libavdevice/pulse_audio_enc.c return pulse_finish_stream_operation(s, op, "pa_stream_cork"); s 285 libavdevice/pulse_audio_enc.c static int pulse_flash_stream(PulseData *s) s 288 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 289 libavdevice/pulse_audio_enc.c op = pa_stream_flush(s->stream, pulse_stream_result, s); s 290 libavdevice/pulse_audio_enc.c return pulse_finish_stream_operation(s, op, "pa_stream_flush"); s 295 libavdevice/pulse_audio_enc.c PulseData *s = userdata; s 297 libavdevice/pulse_audio_enc.c if (s->ctx != ctx) s 300 libavdevice/pulse_audio_enc.c s->last_result = success ? 0 : AVERROR_EXTERNAL; s 301 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_signal(s->mainloop, 0); s 304 libavdevice/pulse_audio_enc.c static int pulse_finish_context_operation(PulseData *s, pa_operation *op, const char *name) s 307 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 308 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "%s failed.\n", name); s 311 libavdevice/pulse_audio_enc.c s->last_result = 2; s 312 libavdevice/pulse_audio_enc.c while (s->last_result == 2) s 313 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_wait(s->mainloop); s 315 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 316 libavdevice/pulse_audio_enc.c if (s->last_result != 0) s 317 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "%s failed.\n", name); s 318 libavdevice/pulse_audio_enc.c return s->last_result; s 321 libavdevice/pulse_audio_enc.c static int pulse_set_mute(PulseData *s) s 324 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 325 libavdevice/pulse_audio_enc.c op = pa_context_set_sink_input_mute(s->ctx, pa_stream_get_index(s->stream), s 326 libavdevice/pulse_audio_enc.c s->mute, pulse_context_result, s); s 327 libavdevice/pulse_audio_enc.c return pulse_finish_context_operation(s, op, "pa_context_set_sink_input_mute"); s 330 libavdevice/pulse_audio_enc.c static int pulse_set_volume(PulseData *s, double volume) s 335 libavdevice/pulse_audio_enc.c const pa_sample_spec *ss = pa_stream_get_sample_spec(s->stream); s 337 libavdevice/pulse_audio_enc.c vol = pa_sw_volume_multiply(lrint(volume * PA_VOLUME_NORM), s->base_volume); s 340 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 341 libavdevice/pulse_audio_enc.c op = pa_context_set_sink_input_volume(s->ctx, pa_stream_get_index(s->stream), s 342 libavdevice/pulse_audio_enc.c &cvol, pulse_context_result, s); s 343 libavdevice/pulse_audio_enc.c return pulse_finish_context_operation(s, op, "pa_context_set_sink_input_volume"); s 346 libavdevice/pulse_audio_enc.c static int pulse_subscribe_events(PulseData *s) s 350 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 351 libavdevice/pulse_audio_enc.c op = pa_context_subscribe(s->ctx, PA_SUBSCRIPTION_MASK_SINK_INPUT, pulse_context_result, s); s 352 libavdevice/pulse_audio_enc.c return pulse_finish_context_operation(s, op, "pa_context_subscribe"); s 412 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 414 libavdevice/pulse_audio_enc.c if (s->mainloop) { s 415 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 416 libavdevice/pulse_audio_enc.c if (s->stream) { s 417 libavdevice/pulse_audio_enc.c pa_stream_disconnect(s->stream); s 418 libavdevice/pulse_audio_enc.c pa_stream_set_state_callback(s->stream, NULL, NULL); s 419 libavdevice/pulse_audio_enc.c pa_stream_set_write_callback(s->stream, NULL, NULL); s 420 libavdevice/pulse_audio_enc.c pa_stream_set_overflow_callback(s->stream, NULL, NULL); s 421 libavdevice/pulse_audio_enc.c pa_stream_set_underflow_callback(s->stream, NULL, NULL); s 422 libavdevice/pulse_audio_enc.c pa_stream_unref(s->stream); s 423 libavdevice/pulse_audio_enc.c s->stream = NULL; s 425 libavdevice/pulse_audio_enc.c if (s->ctx) { s 426 libavdevice/pulse_audio_enc.c pa_context_disconnect(s->ctx); s 427 libavdevice/pulse_audio_enc.c pa_context_set_state_callback(s->ctx, NULL, NULL); s 428 libavdevice/pulse_audio_enc.c pa_context_set_subscribe_callback(s->ctx, NULL, NULL); s 429 libavdevice/pulse_audio_enc.c pa_context_unref(s->ctx); s 430 libavdevice/pulse_audio_enc.c s->ctx = NULL; s 432 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 433 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_stop(s->mainloop); s 434 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_free(s->mainloop); s 435 libavdevice/pulse_audio_enc.c s->mainloop = NULL; s 443 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 450 libavdevice/pulse_audio_enc.c const char *stream_name = s->stream_name; s 456 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Only a single audio stream is supported.\n"); s 467 libavdevice/pulse_audio_enc.c s->nonblocking = (h->flags & AVFMT_FLAG_NONBLOCK); s 469 libavdevice/pulse_audio_enc.c if (s->buffer_duration) { s 470 libavdevice/pulse_audio_enc.c int64_t bytes = s->buffer_duration; s 474 libavdevice/pulse_audio_enc.c buffer_attributes.tlength = FFMAX(s->buffer_size, av_clip64(bytes, 0, UINT32_MAX - 1)); s 475 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_DEBUG, s 477 libavdevice/pulse_audio_enc.c s->buffer_duration, bytes); s 478 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_DEBUG, "Real buffer length is %u bytes\n", buffer_attributes.tlength); s 479 libavdevice/pulse_audio_enc.c } else if (s->buffer_size) s 480 libavdevice/pulse_audio_enc.c buffer_attributes.tlength = s->buffer_size; s 481 libavdevice/pulse_audio_enc.c if (s->prebuf) s 482 libavdevice/pulse_audio_enc.c buffer_attributes.prebuf = s->prebuf; s 483 libavdevice/pulse_audio_enc.c if (s->minreq) s 484 libavdevice/pulse_audio_enc.c buffer_attributes.minreq = s->minreq; s 490 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Invalid sample spec.\n"); s 503 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_WARNING, "Unknown channel. Using defaul channel map.\n"); s 510 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_WARNING, "Using PulseAudio's default channel map.\n"); s 512 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Invalid channel map.\n"); s 517 libavdevice/pulse_audio_enc.c s->mainloop = pa_threaded_mainloop_new(); s 518 libavdevice/pulse_audio_enc.c if (!s->mainloop) { s 519 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Cannot create threaded mainloop.\n"); s 522 libavdevice/pulse_audio_enc.c if ((ret = pa_threaded_mainloop_start(s->mainloop)) < 0) { s 523 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Cannot start threaded mainloop: %s.\n", pa_strerror(ret)); s 524 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_free(s->mainloop); s 525 libavdevice/pulse_audio_enc.c s->mainloop = NULL; s 529 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 531 libavdevice/pulse_audio_enc.c mainloop_api = pa_threaded_mainloop_get_api(s->mainloop); s 533 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Cannot get mainloop API.\n"); s 538 libavdevice/pulse_audio_enc.c s->ctx = pa_context_new(mainloop_api, s->name); s 539 libavdevice/pulse_audio_enc.c if (!s->ctx) { s 540 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Cannot create context.\n"); s 544 libavdevice/pulse_audio_enc.c pa_context_set_state_callback(s->ctx, pulse_context_state, s); s 545 libavdevice/pulse_audio_enc.c pa_context_set_subscribe_callback(s->ctx, pulse_event, h); s 547 libavdevice/pulse_audio_enc.c if ((ret = pa_context_connect(s->ctx, s->server, 0, NULL)) < 0) { s 548 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Cannot connect context: %s.\n", pa_strerror(ret)); s 553 libavdevice/pulse_audio_enc.c if ((ret = pulse_context_wait(s)) < 0) { s 554 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Context failed.\n"); s 558 libavdevice/pulse_audio_enc.c s->stream = pa_stream_new(s->ctx, stream_name, &sample_spec, s 562 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Updating sink info failed.\n"); s 566 libavdevice/pulse_audio_enc.c if (!s->stream) { s 567 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Cannot create stream.\n"); s 571 libavdevice/pulse_audio_enc.c pa_stream_set_state_callback(s->stream, pulse_stream_state, s); s 572 libavdevice/pulse_audio_enc.c pa_stream_set_write_callback(s->stream, pulse_stream_writable, h); s 573 libavdevice/pulse_audio_enc.c pa_stream_set_overflow_callback(s->stream, pulse_overflow, h); s 574 libavdevice/pulse_audio_enc.c pa_stream_set_underflow_callback(s->stream, pulse_underflow, h); s 576 libavdevice/pulse_audio_enc.c if ((ret = pa_stream_connect_playback(s->stream, s->device, &buffer_attributes, s 578 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "pa_stream_connect_playback failed: %s.\n", pa_strerror(ret)); s 583 libavdevice/pulse_audio_enc.c if ((ret = pulse_stream_wait(s)) < 0) { s 584 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Stream failed.\n"); s 589 libavdevice/pulse_audio_enc.c buffer_attributes = *pa_stream_get_buffer_attr(s->stream); s 590 libavdevice/pulse_audio_enc.c s->buffer_size = buffer_attributes.tlength; s 591 libavdevice/pulse_audio_enc.c s->prebuf = buffer_attributes.prebuf; s 592 libavdevice/pulse_audio_enc.c s->minreq = buffer_attributes.minreq; s 593 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_DEBUG, "Real buffer attributes: size: %d, prebuf: %d, minreq: %d\n", s 594 libavdevice/pulse_audio_enc.c s->buffer_size, s->prebuf, s->minreq); s 596 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 598 libavdevice/pulse_audio_enc.c if ((ret = pulse_subscribe_events(s)) < 0) { s 599 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Event subscription failed.\n"); s 601 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 606 libavdevice/pulse_audio_enc.c s->mute = -1; s 607 libavdevice/pulse_audio_enc.c s->last_volume = PA_VOLUME_INVALID; s 608 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 610 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "Updating sink input info failed.\n"); s 613 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 619 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 626 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 631 libavdevice/pulse_audio_enc.c return pulse_flash_stream(s); s 634 libavdevice/pulse_audio_enc.c s->timestamp = pkt->dts; s 637 libavdevice/pulse_audio_enc.c s->timestamp += pkt->duration; s 642 libavdevice/pulse_audio_enc.c s->timestamp += av_rescale_q(samples, r, st->time_base); s 645 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 646 libavdevice/pulse_audio_enc.c if (!PA_STREAM_IS_GOOD(pa_stream_get_state(s->stream))) { s 647 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "PulseAudio stream is in invalid state.\n"); s 650 libavdevice/pulse_audio_enc.c while (pa_stream_writable_size(s->stream) < s->minreq) { s 651 libavdevice/pulse_audio_enc.c if (s->nonblocking) { s 652 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 655 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_wait(s->mainloop); s 658 libavdevice/pulse_audio_enc.c if ((ret = pa_stream_write(s->stream, pkt->data, pkt->size, NULL, 0, PA_SEEK_RELATIVE)) < 0) { s 659 libavdevice/pulse_audio_enc.c av_log(s, AV_LOG_ERROR, "pa_stream_write failed: %s\n", pa_strerror(ret)); s 662 libavdevice/pulse_audio_enc.c if ((writable_size = pa_stream_writable_size(s->stream)) >= s->minreq) s 665 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 669 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 693 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 696 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 697 libavdevice/pulse_audio_enc.c pa_stream_get_latency(s->stream, &latency, &neg); s 698 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 702 libavdevice/pulse_audio_enc.c *dts = s->timestamp - (neg ? -latency : latency); s 707 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 708 libavdevice/pulse_audio_enc.c return ff_pulse_audio_get_devices(device_list, s->server, 1); s 714 libavdevice/pulse_audio_enc.c PulseData *s = h->priv_data; s 719 libavdevice/pulse_audio_enc.c return pulse_set_pause(s, 1); s 721 libavdevice/pulse_audio_enc.c return pulse_set_pause(s, 0); s 723 libavdevice/pulse_audio_enc.c return pulse_set_pause(s, !pa_stream_is_corked(s->stream)); s 725 libavdevice/pulse_audio_enc.c if (!s->mute) { s 726 libavdevice/pulse_audio_enc.c s->mute = 1; s 727 libavdevice/pulse_audio_enc.c return pulse_set_mute(s); s 731 libavdevice/pulse_audio_enc.c if (s->mute) { s 732 libavdevice/pulse_audio_enc.c s->mute = 0; s 733 libavdevice/pulse_audio_enc.c return pulse_set_mute(s); s 737 libavdevice/pulse_audio_enc.c s->mute = !s->mute; s 738 libavdevice/pulse_audio_enc.c return pulse_set_mute(s); s 740 libavdevice/pulse_audio_enc.c return pulse_set_volume(s, *(double *)data); s 742 libavdevice/pulse_audio_enc.c s->last_volume = PA_VOLUME_INVALID; s 743 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 745 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 748 libavdevice/pulse_audio_enc.c s->mute = -1; s 749 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_lock(s->mainloop); s 751 libavdevice/pulse_audio_enc.c pa_threaded_mainloop_unlock(s->mainloop); s 97 libavdevice/sdl2.c static void compute_texture_rect(AVFormatContext *s) s 100 libavdevice/sdl2.c SDLContext *sdl = s->priv_data; s 101 libavdevice/sdl2.c AVStream *st = s->streams[0]; s 137 libavdevice/sdl2.c static int sdl2_write_trailer(AVFormatContext *s) s 139 libavdevice/sdl2.c SDLContext *sdl = s->priv_data; s 159 libavdevice/sdl2.c static int sdl2_write_header(AVFormatContext *s) s 161 libavdevice/sdl2.c SDLContext *sdl = s->priv_data; s 162 libavdevice/sdl2.c AVStream *st = s->streams[0]; s 168 libavdevice/sdl2.c sdl->window_title = av_strdup(s->url); s 171 libavdevice/sdl2.c av_log(s, AV_LOG_WARNING, s 176 libavdevice/sdl2.c if ( s->nb_streams > 1 s 179 libavdevice/sdl2.c av_log(s, AV_LOG_ERROR, "Only supports one rawvideo stream\n"); s 191 libavdevice/sdl2.c av_log(s, AV_LOG_ERROR, s 205 libavdevice/sdl2.c av_log(s, AV_LOG_ERROR, "Unable to initialize SDL: %s\n", SDL_GetError()); s 210 libavdevice/sdl2.c compute_texture_rect(s); s 230 libavdevice/sdl2.c av_log(s, AV_LOG_VERBOSE, "w:%d h:%d fmt:%s -> w:%d h:%d\n", s 238 libavdevice/sdl2.c sdl2_write_trailer(s); s 242 libavdevice/sdl2.c static int sdl2_write_packet(AVFormatContext *s, AVPacket *pkt) s 245 libavdevice/sdl2.c SDLContext *sdl = s->priv_data; s 246 libavdevice/sdl2.c AVCodecParameters *codecpar = s->streams[0]->codecpar; s 272 libavdevice/sdl2.c compute_texture_rect(s); s 284 libavdevice/sdl2.c sdl2_write_trailer(s); s 31 libavdevice/sndio.c SndioData *s = addr; s 33 libavdevice/sndio.c s->hwpos += delta * s->channels * s->bps; s 39 libavdevice/sndio.c SndioData *s = s1->priv_data; s 56 libavdevice/sndio.c par.pchan = s->channels; s 58 libavdevice/sndio.c par.rchan = s->channels; s 59 libavdevice/sndio.c par.rate = s->sample_rate; s 63 libavdevice/sndio.c "channels: %d sample rate: %d\n", s->channels, s->sample_rate); s 68 libavdevice/sndio.c (is_output && (par.pchan != s->channels)) || s 69 libavdevice/sndio.c (!is_output && (par.rchan != s->channels)) || s 70 libavdevice/sndio.c (par.rate != s->sample_rate)) { s 72 libavdevice/sndio.c "channels: %d sample rate: %d\n", s->channels, s->sample_rate); s 76 libavdevice/sndio.c s->buffer_size = par.round * par.bps * s 80 libavdevice/sndio.c s->buffer = av_malloc(s->buffer_size); s 81 libavdevice/sndio.c if (!s->buffer) { s 87 libavdevice/sndio.c s->codec_id = par.le ? AV_CODEC_ID_PCM_S16LE : AV_CODEC_ID_PCM_S16BE; s 88 libavdevice/sndio.c s->channels = is_output ? par.pchan : par.rchan; s 89 libavdevice/sndio.c s->sample_rate = par.rate; s 90 libavdevice/sndio.c s->bps = par.bps; s 92 libavdevice/sndio.c sio_onmove(hdl, movecb, s); s 99 libavdevice/sndio.c s->hdl = hdl; s 104 libavdevice/sndio.c av_freep(&s->buffer); s 112 libavdevice/sndio.c int ff_sndio_close(SndioData *s) s 114 libavdevice/sndio.c av_freep(&s->buffer); s 116 libavdevice/sndio.c if (s->hdl) s 117 libavdevice/sndio.c sio_close(s->hdl); s 46 libavdevice/sndio.h int ff_sndio_close(SndioData *s); s 36 libavdevice/sndio_dec.c SndioData *s = s1->priv_data; s 50 libavdevice/sndio_dec.c st->codecpar->codec_id = s->codec_id; s 51 libavdevice/sndio_dec.c st->codecpar->sample_rate = s->sample_rate; s 52 libavdevice/sndio_dec.c st->codecpar->channels = s->channels; s 61 libavdevice/sndio_dec.c SndioData *s = s1->priv_data; s 65 libavdevice/sndio_dec.c if ((ret = av_new_packet(pkt, s->buffer_size)) < 0) s 68 libavdevice/sndio_dec.c ret = sio_read(s->hdl, pkt->data, pkt->size); s 69 libavdevice/sndio_dec.c if (ret == 0 || sio_eof(s->hdl)) { s 75 libavdevice/sndio_dec.c s->softpos += ret; s 80 libavdevice/sndio_dec.c bdelay = ret + s->hwpos - s->softpos; s 84 libavdevice/sndio_dec.c (s->bps * s->channels * s->sample_rate)); s 91 libavdevice/sndio_dec.c SndioData *s = s1->priv_data; s 93 libavdevice/sndio_dec.c ff_sndio_close(s); s 33 libavdevice/sndio_enc.c SndioData *s = s1->priv_data; s 38 libavdevice/sndio_enc.c s->sample_rate = st->codecpar->sample_rate; s 39 libavdevice/sndio_enc.c s->channels = st->codecpar->channels; s 48 libavdevice/sndio_enc.c SndioData *s = s1->priv_data; s 54 libavdevice/sndio_enc.c len = FFMIN(s->buffer_size - s->buffer_offset, size); s 55 libavdevice/sndio_enc.c memcpy(s->buffer + s->buffer_offset, buf, len); s 58 libavdevice/sndio_enc.c s->buffer_offset += len; s 59 libavdevice/sndio_enc.c if (s->buffer_offset >= s->buffer_size) { s 60 libavdevice/sndio_enc.c ret = sio_write(s->hdl, s->buffer, s->buffer_size); s 61 libavdevice/sndio_enc.c if (ret == 0 || sio_eof(s->hdl)) s 63 libavdevice/sndio_enc.c s->softpos += ret; s 64 libavdevice/sndio_enc.c s->buffer_offset = 0; s 73 libavdevice/sndio_enc.c SndioData *s = s1->priv_data; s 75 libavdevice/sndio_enc.c sio_write(s->hdl, s->buffer, s->buffer_offset); s 77 libavdevice/sndio_enc.c ff_sndio_close(s); s 25 libavdevice/utils.c AVFormatContext *s; s 31 libavdevice/utils.c if (!(s = avformat_alloc_context())) s 40 libavdevice/utils.c s->iformat = iformat; s 41 libavdevice/utils.c if (s->iformat->priv_data_size > 0) { s 42 libavdevice/utils.c s->priv_data = av_mallocz(s->iformat->priv_data_size); s 43 libavdevice/utils.c if (!s->priv_data) { s 47 libavdevice/utils.c if (s->iformat->priv_class) { s 48 libavdevice/utils.c *(const AVClass**)s->priv_data= s->iformat->priv_class; s 49 libavdevice/utils.c av_opt_set_defaults(s->priv_data); s 52 libavdevice/utils.c s->priv_data = NULL; s 54 libavdevice/utils.c *avctx = s; s 57 libavdevice/utils.c avformat_free_context(s); s 109 libavdevice/v4l2.c struct video_data *s; s 115 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 122 libavdevice/v4l2.c s->open_f = prefix ## open; \ s 123 libavdevice/v4l2.c s->close_f = prefix ## close; \ s 124 libavdevice/v4l2.c s->dup_f = prefix ## dup; \ s 125 libavdevice/v4l2.c s->ioctl_f = prefix ## ioctl; \ s 126 libavdevice/v4l2.c s->read_f = prefix ## read; \ s 127 libavdevice/v4l2.c s->mmap_f = prefix ## mmap; \ s 128 libavdevice/v4l2.c s->munmap_f = prefix ## munmap; \ s 131 libavdevice/v4l2.c if (s->use_libv4l2) { s 142 libavdevice/v4l2.c #define v4l2_open s->open_f s 143 libavdevice/v4l2.c #define v4l2_close s->close_f s 144 libavdevice/v4l2.c #define v4l2_dup s->dup_f s 145 libavdevice/v4l2.c #define v4l2_ioctl s->ioctl_f s 146 libavdevice/v4l2.c #define v4l2_read s->read_f s 147 libavdevice/v4l2.c #define v4l2_mmap s->mmap_f s 148 libavdevice/v4l2.c #define v4l2_munmap s->munmap_f s 195 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 206 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_S_FMT, &fmt) < 0) s 228 libavdevice/v4l2.c s->interlaced = 1; s 234 libavdevice/v4l2.c static int first_field(const struct video_data *s) s 239 libavdevice/v4l2.c res = v4l2_ioctl(s->fd, VIDIOC_G_STD, &std); s 251 libavdevice/v4l2.c const struct video_data *s = ctx->priv_data; s 254 libavdevice/v4l2.c while(!v4l2_ioctl(s->fd, VIDIOC_ENUM_FRAMESIZES, &vfse)) { s 277 libavdevice/v4l2.c const struct video_data *s = ctx->priv_data; s 280 libavdevice/v4l2.c while(!v4l2_ioctl(s->fd, VIDIOC_ENUM_FMT, &vfd)) { s 316 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 319 libavdevice/v4l2.c if (s->std_id == 0) s 323 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_ENUMSTD, &standard) < 0) { s 340 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 347 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_REQBUFS, &req) < 0) { s 357 libavdevice/v4l2.c s->buffers = req.count; s 358 libavdevice/v4l2.c s->buf_start = av_malloc_array(s->buffers, sizeof(void *)); s 359 libavdevice/v4l2.c if (!s->buf_start) { s 363 libavdevice/v4l2.c s->buf_len = av_malloc_array(s->buffers, sizeof(unsigned int)); s 364 libavdevice/v4l2.c if (!s->buf_len) { s 366 libavdevice/v4l2.c av_freep(&s->buf_start); s 376 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_QUERYBUF, &buf) < 0) { s 382 libavdevice/v4l2.c s->buf_len[i] = buf.length; s 383 libavdevice/v4l2.c if (s->frame_size > 0 && s->buf_len[i] < s->frame_size) { s 386 libavdevice/v4l2.c i, s->buf_len[i], s->frame_size); s 389 libavdevice/v4l2.c s->buf_start[i] = v4l2_mmap(NULL, buf.length, s 391 libavdevice/v4l2.c s->fd, buf.m.offset); s 393 libavdevice/v4l2.c if (s->buf_start[i] == MAP_FAILED) { s 403 libavdevice/v4l2.c static int enqueue_buffer(struct video_data *s, struct v4l2_buffer *buf) s 407 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_QBUF, buf) < 0) { s 411 libavdevice/v4l2.c atomic_fetch_add(&s->buffers_queued, 1); s 421 libavdevice/v4l2.c struct video_data *s = buf_descriptor->s; s 428 libavdevice/v4l2.c enqueue_buffer(s, &buf); s 440 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 444 libavdevice/v4l2.c if (s->ts_mode == V4L_TS_ABS && s 447 libavdevice/v4l2.c s->ts_mode = V4L_TS_CONVERT_READY; s 453 libavdevice/v4l2.c if (s->ts_mode == V4L_TS_MONO2ABS || s 459 libavdevice/v4l2.c s->timefilter = ff_timefilter_new(1, period, 1.0E-6); s 460 libavdevice/v4l2.c if (!s->timefilter) s 462 libavdevice/v4l2.c s->ts_mode = V4L_TS_CONVERT_READY; s 473 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 475 libavdevice/v4l2.c if (s->ts_mode) { s 481 libavdevice/v4l2.c if (s->timefilter) { s 484 libavdevice/v4l2.c ff_timefilter_update(s->timefilter, nowa, nowm - s->last_time_m); s 485 libavdevice/v4l2.c s->last_time_m = nowm; s 486 libavdevice/v4l2.c *ts = ff_timefilter_eval(s->timefilter, *ts - nowm); s 494 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 505 libavdevice/v4l2.c while ((res = v4l2_ioctl(s->fd, VIDIOC_DQBUF, &buf)) < 0 && (errno == EINTR)); s 518 libavdevice/v4l2.c if (buf.index >= s->buffers) { s 522 libavdevice/v4l2.c atomic_fetch_add(&s->buffers_queued, -1); s 524 libavdevice/v4l2.c av_assert0(atomic_load(&s->buffers_queued) >= 1); s 538 libavdevice/v4l2.c s->frame_size = buf.bytesused; s 540 libavdevice/v4l2.c if (s->frame_size > 0 && buf.bytesused != s->frame_size) { s 543 libavdevice/v4l2.c buf.bytesused, s->frame_size, buf.flags); s 549 libavdevice/v4l2.c if (atomic_load(&s->buffers_queued) == FFMAX(s->buffers / 8, 1)) { s 554 libavdevice/v4l2.c enqueue_buffer(s, &buf); s 557 libavdevice/v4l2.c memcpy(pkt->data, s->buf_start[buf.index], buf.bytesused); s 559 libavdevice/v4l2.c res = enqueue_buffer(s, &buf); s 567 libavdevice/v4l2.c pkt->data = s->buf_start[buf.index]; s 576 libavdevice/v4l2.c enqueue_buffer(s, &buf); s 581 libavdevice/v4l2.c buf_descriptor->s = s; s 587 libavdevice/v4l2.c enqueue_buffer(s, &buf); s 600 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 604 libavdevice/v4l2.c for (i = 0; i < s->buffers; i++) { s 611 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_QBUF, &buf) < 0) { s 618 libavdevice/v4l2.c atomic_store(&s->buffers_queued, s->buffers); s 621 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_STREAMON, &type) < 0) { s 631 libavdevice/v4l2.c static void mmap_close(struct video_data *s) s 640 libavdevice/v4l2.c v4l2_ioctl(s->fd, VIDIOC_STREAMOFF, &type); s 641 libavdevice/v4l2.c for (i = 0; i < s->buffers; i++) { s 642 libavdevice/v4l2.c v4l2_munmap(s->buf_start[i], s->buf_len[i]); s 644 libavdevice/v4l2.c av_freep(&s->buf_start); s 645 libavdevice/v4l2.c av_freep(&s->buf_len); s 650 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 657 libavdevice/v4l2.c if (s->framerate && s 658 libavdevice/v4l2.c (ret = av_parse_video_rate(&framerate_q, s->framerate)) < 0) { s 660 libavdevice/v4l2.c s->framerate); s 664 libavdevice/v4l2.c if (s->standard) { s 665 libavdevice/v4l2.c if (s->std_id) { s 667 libavdevice/v4l2.c av_log(ctx, AV_LOG_DEBUG, "Setting standard: %s\n", s->standard); s 671 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_ENUMSTD, &standard) < 0) { s 675 libavdevice/v4l2.c if (!av_strcasecmp(standard.name, s->standard)) s 679 libavdevice/v4l2.c av_log(ctx, AV_LOG_ERROR, "Unknown or unsupported standard '%s'\n", s->standard); s 683 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_S_STD, &standard.id) < 0) { s 695 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_G_STD, &s->std_id) == 0) { s 699 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_ENUMSTD, &standard) < 0) { s 712 libavdevice/v4l2.c if (standard.id == s->std_id) { s 724 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_G_PARM, &streamparm) < 0) { s 736 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_S_PARM, &streamparm) < 0) { s 828 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 843 libavdevice/v4l2.c if (s->use_libv4l2) s 847 libavdevice/v4l2.c s->fd = device_open(ctx, ctx->url); s 848 libavdevice/v4l2.c if (s->fd < 0) s 849 libavdevice/v4l2.c return s->fd; s 851 libavdevice/v4l2.c if (s->channel != -1) { s 853 libavdevice/v4l2.c av_log(ctx, AV_LOG_DEBUG, "Selecting input_channel: %d\n", s->channel); s 854 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_S_INPUT, &s->channel) < 0) { s 861 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_G_INPUT, &s->channel) < 0) { s 869 libavdevice/v4l2.c input.index = s->channel; s 870 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_ENUMINPUT, &input) < 0) { s 875 libavdevice/v4l2.c s->std_id = input.std; s 877 libavdevice/v4l2.c s->channel, input.name, (uint64_t)input.std); s 879 libavdevice/v4l2.c if (s->list_format) { s 880 libavdevice/v4l2.c list_formats(ctx, s->list_format); s 885 libavdevice/v4l2.c if (s->list_standard) { s 893 libavdevice/v4l2.c if (s->pixel_format) { s 894 libavdevice/v4l2.c const AVCodecDescriptor *desc = avcodec_descriptor_get_by_name(s->pixel_format); s 899 libavdevice/v4l2.c pix_fmt = av_get_pix_fmt(s->pixel_format); s 903 libavdevice/v4l2.c s->pixel_format); s 910 libavdevice/v4l2.c if (!s->width && !s->height) { s 915 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_G_FMT, &fmt) < 0) { s 922 libavdevice/v4l2.c s->width = fmt.fmt.pix.width; s 923 libavdevice/v4l2.c s->height = fmt.fmt.pix.height; s 925 libavdevice/v4l2.c "Setting frame size to %dx%d\n", s->width, s->height); s 928 libavdevice/v4l2.c res = device_try_init(ctx, pix_fmt, &s->width, &s->height, &desired_format, &codec_id); s 939 libavdevice/v4l2.c if ((res = av_image_check_size(s->width, s->height, 0, ctx)) < 0) s 942 libavdevice/v4l2.c s->pixelformat = desired_format; s 949 libavdevice/v4l2.c s->frame_size = av_image_get_buffer_size(st->codecpar->format, s 950 libavdevice/v4l2.c s->width, s->height, 1); s 956 libavdevice/v4l2.c s->top_field_first = first_field(s); s 970 libavdevice/v4l2.c st->codecpar->width = s->width; s 971 libavdevice/v4l2.c st->codecpar->height = s->height; s 973 libavdevice/v4l2.c st->codecpar->bit_rate = s->frame_size * av_q2d(st->avg_frame_rate) * 8; s 978 libavdevice/v4l2.c v4l2_close(s->fd); s 986 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 998 libavdevice/v4l2.c if (frame && s->interlaced) { s 1000 libavdevice/v4l2.c frame->top_field_first = s->top_field_first; s 1010 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 1012 libavdevice/v4l2.c if (atomic_load(&s->buffers_queued) != s->buffers) s 1016 libavdevice/v4l2.c mmap_close(s); s 1018 libavdevice/v4l2.c v4l2_close(s->fd); s 1032 libavdevice/v4l2.c struct video_data *s = ctx->priv_data; s 1055 libavdevice/v4l2.c if ((s->fd = device_open(ctx, device_name)) < 0) s 1058 libavdevice/v4l2.c if (v4l2_ioctl(s->fd, VIDIOC_QUERYCAP, &cap) < 0) { s 1080 libavdevice/v4l2.c v4l2_close(s->fd); s 1081 libavdevice/v4l2.c s->fd = -1; s 1090 libavdevice/v4l2.c if (s->fd >= 0) s 1091 libavdevice/v4l2.c v4l2_close(s->fd); s 1092 libavdevice/v4l2.c s->fd = -1; s 35 libavdevice/v4l2enc.c V4L2Context *s = s1->priv_data; s 42 libavdevice/v4l2enc.c s->fd = open(s1->url, flags); s 43 libavdevice/v4l2enc.c if (s->fd < 0) { s 70 libavdevice/v4l2enc.c if (ioctl(s->fd, VIDIOC_G_FMT, &fmt) < 0) { s 81 libavdevice/v4l2enc.c if (ioctl(s->fd, VIDIOC_S_FMT, &fmt) < 0) { s 92 libavdevice/v4l2enc.c const V4L2Context *s = s1->priv_data; s 93 libavdevice/v4l2enc.c if (write(s->fd, pkt->data, pkt->size) == -1) s 100 libavdevice/v4l2enc.c const V4L2Context *s = s1->priv_data; s 101 libavdevice/v4l2enc.c close(s->fd); s 97 libavdevice/vfwcap.c static void dump_captureparms(AVFormatContext *s, CAPTUREPARMS *cparms) s 99 libavdevice/vfwcap.c av_log(s, AV_LOG_DEBUG, "CAPTUREPARMS\n"); s 100 libavdevice/vfwcap.c dstruct(s, cparms, dwRequestMicroSecPerFrame, "lu"); s 101 libavdevice/vfwcap.c dstruct(s, cparms, fMakeUserHitOKToCapture, "d"); s 102 libavdevice/vfwcap.c dstruct(s, cparms, wPercentDropForError, "u"); s 103 libavdevice/vfwcap.c dstruct(s, cparms, fYield, "d"); s 104 libavdevice/vfwcap.c dstruct(s, cparms, dwIndexSize, "lu"); s 105 libavdevice/vfwcap.c dstruct(s, cparms, wChunkGranularity, "u"); s 106 libavdevice/vfwcap.c dstruct(s, cparms, fUsingDOSMemory, "d"); s 107 libavdevice/vfwcap.c dstruct(s, cparms, wNumVideoRequested, "u"); s 108 libavdevice/vfwcap.c dstruct(s, cparms, fCaptureAudio, "d"); s 109 libavdevice/vfwcap.c dstruct(s, cparms, wNumAudioRequested, "u"); s 110 libavdevice/vfwcap.c dstruct(s, cparms, vKeyAbort, "u"); s 111 libavdevice/vfwcap.c dstruct(s, cparms, fAbortLeftMouse, "d"); s 112 libavdevice/vfwcap.c dstruct(s, cparms, fAbortRightMouse, "d"); s 113 libavdevice/vfwcap.c dstruct(s, cparms, fLimitEnabled, "d"); s 114 libavdevice/vfwcap.c dstruct(s, cparms, wTimeLimit, "u"); s 115 libavdevice/vfwcap.c dstruct(s, cparms, fMCIControl, "d"); s 116 libavdevice/vfwcap.c dstruct(s, cparms, fStepMCIDevice, "d"); s 117 libavdevice/vfwcap.c dstruct(s, cparms, dwMCIStartTime, "lu"); s 118 libavdevice/vfwcap.c dstruct(s, cparms, dwMCIStopTime, "lu"); s 119 libavdevice/vfwcap.c dstruct(s, cparms, fStepCaptureAt2x, "d"); s 120 libavdevice/vfwcap.c dstruct(s, cparms, wStepCaptureAverageFrames, "u"); s 121 libavdevice/vfwcap.c dstruct(s, cparms, dwAudioBufferSize, "lu"); s 122 libavdevice/vfwcap.c dstruct(s, cparms, fDisableWriteCache, "d"); s 123 libavdevice/vfwcap.c dstruct(s, cparms, AVStreamMaster, "u"); s 126 libavdevice/vfwcap.c static void dump_videohdr(AVFormatContext *s, VIDEOHDR *vhdr) s 129 libavdevice/vfwcap.c av_log(s, AV_LOG_DEBUG, "VIDEOHDR\n"); s 130 libavdevice/vfwcap.c dstruct(s, vhdr, lpData, "p"); s 131 libavdevice/vfwcap.c dstruct(s, vhdr, dwBufferLength, "lu"); s 132 libavdevice/vfwcap.c dstruct(s, vhdr, dwBytesUsed, "lu"); s 133 libavdevice/vfwcap.c dstruct(s, vhdr, dwTimeCaptured, "lu"); s 134 libavdevice/vfwcap.c dstruct(s, vhdr, dwUser, "lu"); s 135 libavdevice/vfwcap.c dstruct(s, vhdr, dwFlags, "lu"); s 136 libavdevice/vfwcap.c dstruct(s, vhdr, dwReserved[0], "lu"); s 137 libavdevice/vfwcap.c dstruct(s, vhdr, dwReserved[1], "lu"); s 138 libavdevice/vfwcap.c dstruct(s, vhdr, dwReserved[2], "lu"); s 139 libavdevice/vfwcap.c dstruct(s, vhdr, dwReserved[3], "lu"); s 143 libavdevice/vfwcap.c static void dump_bih(AVFormatContext *s, BITMAPINFOHEADER *bih) s 145 libavdevice/vfwcap.c av_log(s, AV_LOG_DEBUG, "BITMAPINFOHEADER\n"); s 146 libavdevice/vfwcap.c dstruct(s, bih, biSize, "lu"); s 147 libavdevice/vfwcap.c dstruct(s, bih, biWidth, "ld"); s 148 libavdevice/vfwcap.c dstruct(s, bih, biHeight, "ld"); s 149 libavdevice/vfwcap.c dstruct(s, bih, biPlanes, "d"); s 150 libavdevice/vfwcap.c dstruct(s, bih, biBitCount, "d"); s 151 libavdevice/vfwcap.c dstruct(s, bih, biCompression, "lu"); s 152 libavdevice/vfwcap.c av_log(s, AV_LOG_DEBUG, " biCompression:\t\"%.4s\"\n", s 154 libavdevice/vfwcap.c dstruct(s, bih, biSizeImage, "lu"); s 155 libavdevice/vfwcap.c dstruct(s, bih, biXPelsPerMeter, "lu"); s 156 libavdevice/vfwcap.c dstruct(s, bih, biYPelsPerMeter, "lu"); s 157 libavdevice/vfwcap.c dstruct(s, bih, biClrUsed, "lu"); s 158 libavdevice/vfwcap.c dstruct(s, bih, biClrImportant, "lu"); s 161 libavdevice/vfwcap.c static int shall_we_drop(AVFormatContext *s) s 163 libavdevice/vfwcap.c struct vfw_ctx *ctx = s->priv_data; s 166 libavdevice/vfwcap.c unsigned int buffer_fullness = (ctx->curbufsize*100)/s->max_picture_buffer; s 169 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, s 179 libavdevice/vfwcap.c AVFormatContext *s; s 183 libavdevice/vfwcap.c s = (AVFormatContext *) GetWindowLongPtr(hwnd, GWLP_USERDATA); s 184 libavdevice/vfwcap.c ctx = s->priv_data; s 186 libavdevice/vfwcap.c dump_videohdr(s, vdhdr); s 188 libavdevice/vfwcap.c if(shall_we_drop(s)) s 219 libavdevice/vfwcap.c static int vfw_read_close(AVFormatContext *s) s 221 libavdevice/vfwcap.c struct vfw_ctx *ctx = s->priv_data; s 245 libavdevice/vfwcap.c static int vfw_read_header(AVFormatContext *s) s 247 libavdevice/vfwcap.c struct vfw_ctx *ctx = s->priv_data; s 259 libavdevice/vfwcap.c if (!strcmp(s->url, "list")) { s 267 libavdevice/vfwcap.c av_log(s, AV_LOG_INFO, "Driver %d\n", devnum); s 268 libavdevice/vfwcap.c av_log(s, AV_LOG_INFO, " %s\n", driver_name); s 269 libavdevice/vfwcap.c av_log(s, AV_LOG_INFO, " %s\n", driver_ver); s 277 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, "Could not create capture window.\n"); s 282 libavdevice/vfwcap.c devnum = atoi(s->url); s 286 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, "Could not connect to device.\n"); s 297 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, "Could not set video stream callback.\n"); s 301 libavdevice/vfwcap.c SetWindowLongPtr(ctx->hwnd, GWLP_USERDATA, (LONG_PTR) s); s 303 libavdevice/vfwcap.c st = avformat_new_stream(s, NULL); s 305 libavdevice/vfwcap.c vfw_read_close(s); s 315 libavdevice/vfwcap.c vfw_read_close(s); s 322 libavdevice/vfwcap.c dump_bih(s, &bi->bmiHeader); s 326 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, "Could not parse framerate '%s'.\n", ctx->framerate); s 334 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, "Couldn't parse video size.\n"); s 350 libavdevice/vfwcap.c dump_bih(s, &bi->bmiHeader); s 355 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, "Could not set Video Format.\n"); s 368 libavdevice/vfwcap.c dump_captureparms(s, &cparms); s 393 libavdevice/vfwcap.c avpriv_report_missing_feature(s, "This compression type"); s 394 libavdevice/vfwcap.c vfw_read_close(s); s 416 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, "Could not create Mutex.\n" ); s 421 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, "Could not create Event.\n" ); s 427 libavdevice/vfwcap.c av_log(s, AV_LOG_ERROR, "Could not start capture sequence.\n" ); s 435 libavdevice/vfwcap.c vfw_read_close(s); s 439 libavdevice/vfwcap.c static int vfw_read_packet(AVFormatContext *s, AVPacket *pkt) s 441 libavdevice/vfwcap.c struct vfw_ctx *ctx = s->priv_data; s 455 libavdevice/vfwcap.c if(s->flags & AVFMT_FLAG_NONBLOCK) { s 106 libavdevice/xcbgrab.c static int xcbgrab_reposition(AVFormatContext *s, s 110 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 152 libavdevice/xcbgrab.c static int xcbgrab_frame(AVFormatContext *s, AVPacket *pkt) s 154 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 168 libavdevice/xcbgrab.c av_log(s, AV_LOG_ERROR, s 198 libavdevice/xcbgrab.c static int64_t wait_frame(AVFormatContext *s, AVPacket *pkt) s 200 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 262 libavdevice/xcbgrab.c static int xcbgrab_frame_shm(AVFormatContext *s, AVPacket *pkt) s 264 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 274 libavdevice/xcbgrab.c av_log(s, AV_LOG_ERROR, "Could not get shared memory buffer.\n"); s 287 libavdevice/xcbgrab.c av_log(s, AV_LOG_ERROR, s 331 libavdevice/xcbgrab.c static void xcbgrab_draw_mouse(AVFormatContext *s, AVPacket *pkt, s 335 libavdevice/xcbgrab.c XCBGrabContext *gr = s->priv_data; s 400 libavdevice/xcbgrab.c static void xcbgrab_update_region(AVFormatContext *s) s 402 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 412 libavdevice/xcbgrab.c static int xcbgrab_read_packet(AVFormatContext *s, AVPacket *pkt) s 414 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 422 libavdevice/xcbgrab.c pts = wait_frame(s, pkt); s 432 libavdevice/xcbgrab.c xcbgrab_reposition(s, p, geo); s 435 libavdevice/xcbgrab.c xcbgrab_update_region(s); s 438 libavdevice/xcbgrab.c if (c->has_shm && xcbgrab_frame_shm(s, pkt) < 0) { s 439 libavdevice/xcbgrab.c av_log(s, AV_LOG_WARNING, "Continuing without shared memory.\n"); s 444 libavdevice/xcbgrab.c ret = xcbgrab_frame(s, pkt); s 450 libavdevice/xcbgrab.c xcbgrab_draw_mouse(s, pkt, p, geo); s 459 libavdevice/xcbgrab.c static av_cold int xcbgrab_read_close(AVFormatContext *s) s 461 libavdevice/xcbgrab.c XCBGrabContext *ctx = s->priv_data; s 489 libavdevice/xcbgrab.c static int pixfmt_from_pixmap_format(AVFormatContext *s, int depth, s 492 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 534 libavdevice/xcbgrab.c avpriv_report_missing_feature(s, "Mapping this pixmap format"); s 539 libavdevice/xcbgrab.c static int create_stream(AVFormatContext *s) s 541 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 542 libavdevice/xcbgrab.c AVStream *st = avformat_new_stream(s, NULL); s 569 libavdevice/xcbgrab.c av_log(s, AV_LOG_ERROR, s 584 libavdevice/xcbgrab.c ret = pixfmt_from_pixmap_format(s, geo->depth, &st->codecpar->format, &c->bpp); s 591 libavdevice/xcbgrab.c av_log(s, AV_LOG_ERROR, "Captured area is too large\n"); s 612 libavdevice/xcbgrab.c static void draw_rectangle(AVFormatContext *s) s 614 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 635 libavdevice/xcbgrab.c static void setup_window(AVFormatContext *s) s 637 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 668 libavdevice/xcbgrab.c draw_rectangle(s); s 671 libavdevice/xcbgrab.c static av_cold int xcbgrab_read_header(AVFormatContext *s) s 673 libavdevice/xcbgrab.c XCBGrabContext *c = s->priv_data; s 676 libavdevice/xcbgrab.c char *display_name = av_strdup(s->url); s 681 libavdevice/xcbgrab.c if (!sscanf(s->url, "%[^+]+%d,%d", display_name, &c->x, &c->y)) { s 683 libavdevice/xcbgrab.c sscanf(s->url, "+%d,%d", &c->x, &c->y); s 690 libavdevice/xcbgrab.c av_log(s, AV_LOG_ERROR, "Cannot open display %s, error %d.\n", s 691 libavdevice/xcbgrab.c s->url[0] ? s->url : "default", ret); s 699 libavdevice/xcbgrab.c av_log(s, AV_LOG_ERROR, "The screen %d does not exist.\n", s 701 libavdevice/xcbgrab.c xcbgrab_read_close(s); s 705 libavdevice/xcbgrab.c ret = create_stream(s); s 708 libavdevice/xcbgrab.c xcbgrab_read_close(s); s 719 libavdevice/xcbgrab.c av_log(s, AV_LOG_WARNING, s 723 libavdevice/xcbgrab.c avpriv_report_missing_feature(s, "%d bits per pixel screen", s 731 libavdevice/xcbgrab.c setup_window(s); s 88 libavdevice/xv.c static int xv_write_trailer(AVFormatContext *s) s 90 libavdevice/xv.c XVContext *xv = s->priv_data; s 103 libavdevice/xv.c static int xv_write_header(AVFormatContext *s) s 105 libavdevice/xv.c XVContext *xv = s->priv_data; s 112 libavdevice/xv.c AVCodecParameters *par = s->streams[0]->codecpar; s 114 libavdevice/xv.c if ( s->nb_streams > 1 s 117 libavdevice/xv.c av_log(s, AV_LOG_ERROR, "Only a single raw or wrapped avframe video stream is supported.\n"); s 122 libavdevice/xv.c av_log(s, AV_LOG_ERROR, s 131 libavdevice/xv.c av_log(s, AV_LOG_ERROR, "Could not open the X11 display '%s'\n", xv->display_name); s 154 libavdevice/xv.c if (!(xv->window_title = av_strdup(s->url))) { s 171 libavdevice/xv.c av_log(s, AV_LOG_ERROR, "No X-Video adaptors present\n"); s 190 libavdevice/xv.c av_log(s, AV_LOG_ERROR, s 222 libavdevice/xv.c xv_write_trailer(s); s 226 libavdevice/xv.c static void compute_display_area(AVFormatContext *s) s 228 libavdevice/xv.c XVContext *xv = s->priv_data; s 230 libavdevice/xv.c AVStream *st = s->streams[0]; s 256 libavdevice/xv.c static int xv_repaint(AVFormatContext *s) s 258 libavdevice/xv.c XVContext *xv = s->priv_data; s 266 libavdevice/xv.c compute_display_area(s); s 288 libavdevice/xv.c av_log(s, AV_LOG_ERROR, "Could not copy image to XV shared memory buffer\n"); s 294 libavdevice/xv.c static int write_picture(AVFormatContext *s, uint8_t *input_data[4], s 297 libavdevice/xv.c XVContext *xv = s->priv_data; s 319 libavdevice/xv.c return xv_repaint(s); s 322 libavdevice/xv.c static int xv_write_packet(AVFormatContext *s, AVPacket *pkt) s 324 libavdevice/xv.c AVCodecParameters *par = s->streams[0]->codecpar; s 328 libavdevice/xv.c return write_picture(s, frame->data, frame->linesize); s 335 libavdevice/xv.c return write_picture(s, data, linesize); s 339 libavdevice/xv.c static int xv_write_frame(AVFormatContext *s, int stream_index, AVFrame **frame, s 345 libavdevice/xv.c return write_picture(s, (*frame)->data, (*frame)->linesize); s 348 libavdevice/xv.c static int xv_control_message(AVFormatContext *s, int type, void *data, size_t data_size) s 352 libavdevice/xv.c return xv_repaint(s); s 75 libavfilter/af_acontrast.c static void filter_flt(void **d, const void **s, s 79 libavfilter/af_acontrast.c const float *src = s[0]; s 95 libavfilter/af_acontrast.c static void filter_dbl(void **d, const void **s, s 99 libavfilter/af_acontrast.c const double *src = s[0]; s 115 libavfilter/af_acontrast.c static void filter_fltp(void **d, const void **s, s 122 libavfilter/af_acontrast.c const float *src = s[c]; s 133 libavfilter/af_acontrast.c static void filter_dblp(void **d, const void **s, s 140 libavfilter/af_acontrast.c const double *src = s[c]; s 154 libavfilter/af_acontrast.c AudioContrastContext *s = ctx->priv; s 157 libavfilter/af_acontrast.c case AV_SAMPLE_FMT_FLT: s->filter = filter_flt; break; s 158 libavfilter/af_acontrast.c case AV_SAMPLE_FMT_DBL: s->filter = filter_dbl; break; s 159 libavfilter/af_acontrast.c case AV_SAMPLE_FMT_FLTP: s->filter = filter_fltp; break; s 160 libavfilter/af_acontrast.c case AV_SAMPLE_FMT_DBLP: s->filter = filter_dblp; break; s 170 libavfilter/af_acontrast.c AudioContrastContext *s = ctx->priv; s 184 libavfilter/af_acontrast.c s->filter((void **)out->extended_data, (const void **)in->extended_data, s 185 libavfilter/af_acontrast.c in->nb_samples, in->channels, s->contrast / 750); s 85 libavfilter/af_acrossover.c AudioCrossoverContext *s = ctx->priv; s 89 libavfilter/af_acrossover.c s->splits = av_calloc(MAX_SPLITS, sizeof(*s->splits)); s 90 libavfilter/af_acrossover.c if (!s->splits) s 93 libavfilter/af_acrossover.c p = s->splits_str; s 111 libavfilter/af_acrossover.c if (i > 0 && freq <= s->splits[i-1]) { s 116 libavfilter/af_acrossover.c s->splits[i] = freq; s 119 libavfilter/af_acrossover.c s->nb_splits = i; s 121 libavfilter/af_acrossover.c for (i = 0; i <= s->nb_splits; i++) { s 173 libavfilter/af_acrossover.c AudioCrossoverContext *s = ctx->priv; s 177 libavfilter/af_acrossover.c s->xover = av_calloc(inlink->channels, sizeof(*s->xover)); s 178 libavfilter/af_acrossover.c if (!s->xover) s 181 libavfilter/af_acrossover.c switch (s->order) { s 184 libavfilter/af_acrossover.c s->filter_count = 1; s 188 libavfilter/af_acrossover.c s->filter_count = 2; s 192 libavfilter/af_acrossover.c s->filter_count = 4; s 197 libavfilter/af_acrossover.c for (band = 0; band <= s->nb_splits; band++) { s 198 libavfilter/af_acrossover.c set_lp(&s->xover[ch].lp[band][0], s->splits[band], q, sample_rate); s 199 libavfilter/af_acrossover.c set_hp(&s->xover[ch].hp[band][0], s->splits[band], q, sample_rate); s 201 libavfilter/af_acrossover.c if (s->order > 1) { s 202 libavfilter/af_acrossover.c set_lp(&s->xover[ch].lp[band][1], s->splits[band], 1.34, sample_rate); s 203 libavfilter/af_acrossover.c set_hp(&s->xover[ch].hp[band][1], s->splits[band], 1.34, sample_rate); s 204 libavfilter/af_acrossover.c set_lp(&s->xover[ch].lp[band][2], s->splits[band], q, sample_rate); s 205 libavfilter/af_acrossover.c set_hp(&s->xover[ch].hp[band][2], s->splits[band], q, sample_rate); s 206 libavfilter/af_acrossover.c set_lp(&s->xover[ch].lp[band][3], s->splits[band], 1.34, sample_rate); s 207 libavfilter/af_acrossover.c set_hp(&s->xover[ch].hp[band][3], s->splits[band], 1.34, sample_rate); s 209 libavfilter/af_acrossover.c set_lp(&s->xover[ch].lp[band][1], s->splits[band], q, sample_rate); s 210 libavfilter/af_acrossover.c set_hp(&s->xover[ch].hp[band][1], s->splits[band], q, sample_rate); s 262 libavfilter/af_acrossover.c AudioCrossoverContext *s = ctx->priv; s 263 libavfilter/af_acrossover.c AVFrame *in = s->input_frame; s 264 libavfilter/af_acrossover.c AVFrame **frames = s->frames; s 271 libavfilter/af_acrossover.c CrossoverChannel *xover = &s->xover[ch]; s 281 libavfilter/af_acrossover.c for (f = 0; band + 1 < ctx->nb_outputs && f < s->filter_count; f++) { s 286 libavfilter/af_acrossover.c for (f = 0; band + 1 < ctx->nb_outputs && f < s->filter_count; f++) { s 304 libavfilter/af_acrossover.c AudioCrossoverContext *s = ctx->priv; s 305 libavfilter/af_acrossover.c AVFrame **frames = s->frames; s 322 libavfilter/af_acrossover.c s->input_frame = in; s 337 libavfilter/af_acrossover.c s->input_frame = NULL; s 344 libavfilter/af_acrossover.c AudioCrossoverContext *s = ctx->priv; s 347 libavfilter/af_acrossover.c av_freep(&s->splits); s 348 libavfilter/af_acrossover.c av_freep(&s->xover); s 92 libavfilter/af_acrusher.c static double samplereduction(ACrusherContext *s, SRContext *sr, double in) s 95 libavfilter/af_acrusher.c if (sr->samples >= s->round) { s 96 libavfilter/af_acrusher.c sr->target += s->samples; s 97 libavfilter/af_acrusher.c sr->real += s->round; s 98 libavfilter/af_acrusher.c if (sr->target + s->samples >= sr->real + 1) { s 108 libavfilter/af_acrusher.c static double add_dc(double s, double dc, double idc) s 110 libavfilter/af_acrusher.c return s > 0 ? s * dc : s * idc; s 113 libavfilter/af_acrusher.c static double remove_dc(double s, double dc, double idc) s 115 libavfilter/af_acrusher.c return s > 0 ? s * idc : s * dc; s 123 libavfilter/af_acrusher.c static double bitreduction(ACrusherContext *s, double in) s 125 libavfilter/af_acrusher.c const double sqr = s->sqr; s 126 libavfilter/af_acrusher.c const double coeff = s->coeff; s 127 libavfilter/af_acrusher.c const double aa = s->aa; s 128 libavfilter/af_acrusher.c const double aa1 = s->aa1; s 132 libavfilter/af_acrusher.c in = add_dc(in, s->dc, s->idc); s 151 libavfilter/af_acrusher.c switch (s->mode) { s 188 libavfilter/af_acrusher.c k += (in - k) * s->mix; s 191 libavfilter/af_acrusher.c k = remove_dc(k, s->dc, s->idc); s 219 libavfilter/af_acrusher.c ACrusherContext *s = ctx->priv; s 224 libavfilter/af_acrusher.c const double level_in = s->level_in; s 225 libavfilter/af_acrusher.c const double level_out = s->level_out; s 226 libavfilter/af_acrusher.c const double mix = s->mix; s 242 libavfilter/af_acrusher.c if (s->is_lfo) { s 243 libavfilter/af_acrusher.c s->samples = s->smin + s->sdiff * (lfo_get(&s->lfo) + 0.5); s 244 libavfilter/af_acrusher.c s->round = round(s->samples); s 250 libavfilter/af_acrusher.c sample = mix * samplereduction(s, &s->sr[c], sample) + src[c] * (1. - mix) * level_in; s 251 libavfilter/af_acrusher.c dst[c] = bitreduction(s, sample) * level_out; s 256 libavfilter/af_acrusher.c if (s->is_lfo) s 257 libavfilter/af_acrusher.c lfo_advance(&s->lfo, 1); s 298 libavfilter/af_acrusher.c ACrusherContext *s = ctx->priv; s 300 libavfilter/af_acrusher.c av_freep(&s->sr); s 306 libavfilter/af_acrusher.c ACrusherContext *s = ctx->priv; s 309 libavfilter/af_acrusher.c s->idc = 1. / s->dc; s 310 libavfilter/af_acrusher.c s->coeff = exp2(s->bits) - 1; s 311 libavfilter/af_acrusher.c s->sqr = sqrt(s->coeff / 2); s 312 libavfilter/af_acrusher.c s->aa1 = (1. - s->aa) / 2.; s 313 libavfilter/af_acrusher.c s->round = round(s->samples); s 314 libavfilter/af_acrusher.c rad = s->lforange / 2.; s 315 libavfilter/af_acrusher.c s->smin = FFMAX(s->samples - rad, 1.); s 316 libavfilter/af_acrusher.c sunder = s->samples - rad - s->smin; s 317 libavfilter/af_acrusher.c smax = FFMIN(s->samples + rad, 250.); s 318 libavfilter/af_acrusher.c sover = s->samples + rad - smax; s 320 libavfilter/af_acrusher.c s->smin -= sover; s 321 libavfilter/af_acrusher.c s->sdiff = smax - s->smin; s 323 libavfilter/af_acrusher.c s->lfo.freq = s->lforate; s 324 libavfilter/af_acrusher.c s->lfo.pwidth = 1.; s 325 libavfilter/af_acrusher.c s->lfo.srate = inlink->sample_rate; s 326 libavfilter/af_acrusher.c s->lfo.amount = .5; s 328 libavfilter/af_acrusher.c s->sr = av_calloc(inlink->channels, sizeof(*s->sr)); s 329 libavfilter/af_acrusher.c if (!s->sr) s 85 libavfilter/af_adeclick.c int (*detector)(struct AudioDeclickContext *s, DeclickChannel *c, s 140 libavfilter/af_adeclick.c AudioDeclickContext *s = ctx->priv; s 143 libavfilter/af_adeclick.c s->pts = AV_NOPTS_VALUE; s 144 libavfilter/af_adeclick.c s->window_size = inlink->sample_rate * s->w / 1000.; s 145 libavfilter/af_adeclick.c if (s->window_size < 100) s 147 libavfilter/af_adeclick.c s->ar_order = FFMAX(s->window_size * s->ar / 100., 1); s 148 libavfilter/af_adeclick.c s->nb_burst_samples = s->window_size * s->burst / 1000.; s 149 libavfilter/af_adeclick.c s->hop_size = s->window_size * (1. - (s->overlap / 100.)); s 150 libavfilter/af_adeclick.c if (s->hop_size < 1) s 153 libavfilter/af_adeclick.c s->window_func_lut = av_calloc(s->window_size, sizeof(*s->window_func_lut)); s 154 libavfilter/af_adeclick.c if (!s->window_func_lut) s 156 libavfilter/af_adeclick.c for (i = 0; i < s->window_size; i++) s 157 libavfilter/af_adeclick.c s->window_func_lut[i] = sin(M_PI * i / s->window_size) * s 158 libavfilter/af_adeclick.c (1. - (s->overlap / 100.)) * M_PI_2; s 160 libavfilter/af_adeclick.c av_frame_free(&s->in); s 161 libavfilter/af_adeclick.c av_frame_free(&s->out); s 162 libavfilter/af_adeclick.c av_frame_free(&s->buffer); s 163 libavfilter/af_adeclick.c av_frame_free(&s->is); s 164 libavfilter/af_adeclick.c s->enabled = ff_get_audio_buffer(inlink, s->window_size); s 165 libavfilter/af_adeclick.c s->in = ff_get_audio_buffer(inlink, s->window_size); s 166 libavfilter/af_adeclick.c s->out = ff_get_audio_buffer(inlink, s->window_size); s 167 libavfilter/af_adeclick.c s->buffer = ff_get_audio_buffer(inlink, s->window_size * 2); s 168 libavfilter/af_adeclick.c s->is = ff_get_audio_buffer(inlink, s->window_size); s 169 libavfilter/af_adeclick.c if (!s->in || !s->out || !s->buffer || !s->is || !s->enabled) s 172 libavfilter/af_adeclick.c s->efifo = av_audio_fifo_alloc(inlink->format, 1, s->window_size); s 173 libavfilter/af_adeclick.c if (!s->efifo) s 175 libavfilter/af_adeclick.c s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->window_size); s 176 libavfilter/af_adeclick.c if (!s->fifo) s 178 libavfilter/af_adeclick.c s->overlap_skip = s->method ? (s->window_size - s->hop_size) / 2 : 0; s 179 libavfilter/af_adeclick.c if (s->overlap_skip > 0) { s 180 libavfilter/af_adeclick.c av_audio_fifo_write(s->fifo, (void **)s->in->extended_data, s 181 libavfilter/af_adeclick.c s->overlap_skip); s 184 libavfilter/af_adeclick.c s->nb_channels = inlink->channels; s 185 libavfilter/af_adeclick.c s->chan = av_calloc(inlink->channels, sizeof(*s->chan)); s 186 libavfilter/af_adeclick.c if (!s->chan) s 190 libavfilter/af_adeclick.c DeclickChannel *c = &s->chan[i]; s 192 libavfilter/af_adeclick.c c->detection = av_calloc(s->window_size, sizeof(*c->detection)); s 193 libavfilter/af_adeclick.c c->auxiliary = av_calloc(s->ar_order + 1, sizeof(*c->auxiliary)); s 194 libavfilter/af_adeclick.c c->acoefficients = av_calloc(s->ar_order + 1, sizeof(*c->acoefficients)); s 195 libavfilter/af_adeclick.c c->acorrelation = av_calloc(s->ar_order + 1, sizeof(*c->acorrelation)); s 196 libavfilter/af_adeclick.c c->tmp = av_calloc(s->ar_order, sizeof(*c->tmp)); s 197 libavfilter/af_adeclick.c c->click = av_calloc(s->window_size, sizeof(*c->click)); s 198 libavfilter/af_adeclick.c c->index = av_calloc(s->window_size, sizeof(*c->index)); s 199 libavfilter/af_adeclick.c c->interpolated = av_calloc(s->window_size, sizeof(*c->interpolated)); s 401 libavfilter/af_adeclick.c static int detect_clips(AudioDeclickContext *s, DeclickChannel *c, s 407 libavfilter/af_adeclick.c const double threshold = s->threshold; s 412 libavfilter/af_adeclick.c av_fast_malloc(&c->histogram, &c->histogram_size, s->nb_hbins * sizeof(*c->histogram)); s 416 libavfilter/af_adeclick.c memset(histogram, 0, sizeof(*histogram) * s->nb_hbins); s 418 libavfilter/af_adeclick.c for (i = 0; i < s->window_size; i++) { s 419 libavfilter/af_adeclick.c const unsigned index = fmin(fabs(src[i]), 1) * (s->nb_hbins - 1); s 426 libavfilter/af_adeclick.c for (i = s->nb_hbins - 1; i > 1; i--) { s 429 libavfilter/af_adeclick.c max_amplitude = i / (double)s->nb_hbins; s 436 libavfilter/af_adeclick.c for (i = 0; i < s->window_size; i++) { s 441 libavfilter/af_adeclick.c memset(clip, 0, s->ar_order * sizeof(*clip)); s 442 libavfilter/af_adeclick.c memset(clip + (s->window_size - s->ar_order), 0, s->ar_order * sizeof(*clip)); s 444 libavfilter/af_adeclick.c for (i = s->ar_order; i < s->window_size - s->ar_order; i++) s 451 libavfilter/af_adeclick.c static int detect_clicks(AudioDeclickContext *s, DeclickChannel *c, s 457 libavfilter/af_adeclick.c const double threshold = s->threshold; s 460 libavfilter/af_adeclick.c memset(detection, 0, s->window_size * sizeof(*detection)); s 462 libavfilter/af_adeclick.c for (i = s->ar_order; i < s->window_size; i++) { s 463 libavfilter/af_adeclick.c for (j = 0; j <= s->ar_order; j++) { s 468 libavfilter/af_adeclick.c for (i = 0; i < s->window_size; i++) { s 473 libavfilter/af_adeclick.c for (i = 0; i < s->window_size; i++) { s 477 libavfilter/af_adeclick.c if (prev >= 0 && (i > prev + 1) && (i <= s->nb_burst_samples + prev)) s 483 libavfilter/af_adeclick.c memset(click, 0, s->ar_order * sizeof(*click)); s 484 libavfilter/af_adeclick.c memset(click + (s->window_size - s->ar_order), 0, s->ar_order * sizeof(*click)); s 486 libavfilter/af_adeclick.c for (i = s->ar_order; i < s->window_size - s->ar_order; i++) s 499 libavfilter/af_adeclick.c AudioDeclickContext *s = ctx->priv; s 502 libavfilter/af_adeclick.c const double *src = (const double *)s->in->extended_data[ch]; s 503 libavfilter/af_adeclick.c double *is = (double *)s->is->extended_data[ch]; s 504 libavfilter/af_adeclick.c double *dst = (double *)s->out->extended_data[ch]; s 506 libavfilter/af_adeclick.c double *buf = (double *)s->buffer->extended_data[ch]; s 507 libavfilter/af_adeclick.c const double *w = s->window_func_lut; s 508 libavfilter/af_adeclick.c DeclickChannel *c = &s->chan[ch]; s 512 libavfilter/af_adeclick.c sigmae = autoregression(src, s->ar_order, s->window_size, c->acoefficients, c->acorrelation, c->tmp); s 514 libavfilter/af_adeclick.c if (isfinite_array(c->acoefficients, s->ar_order + 1)) { s 519 libavfilter/af_adeclick.c nb_errors = s->detector(s, c, sigmae, c->detection, c->acoefficients, s 522 libavfilter/af_adeclick.c double *enabled = (double *)s->enabled->extended_data[0]; s 524 libavfilter/af_adeclick.c ret = interpolation(c, src, s->ar_order, c->acoefficients, index, s 529 libavfilter/af_adeclick.c av_audio_fifo_peek(s->efifo, (void**)s->enabled->extended_data, s->window_size); s 539 libavfilter/af_adeclick.c memcpy(dst, src, s->window_size * sizeof(*dst)); s 542 libavfilter/af_adeclick.c if (s->method == 0) { s 543 libavfilter/af_adeclick.c for (j = 0; j < s->window_size; j++) s 546 libavfilter/af_adeclick.c const int skip = s->overlap_skip; s 548 libavfilter/af_adeclick.c for (j = 0; j < s->hop_size; j++) s 551 libavfilter/af_adeclick.c for (j = 0; j < s->hop_size; j++) s 554 libavfilter/af_adeclick.c memmove(buf, buf + s->hop_size, (s->window_size * 2 - s->hop_size) * sizeof(*buf)); s 555 libavfilter/af_adeclick.c memmove(is, is + s->hop_size, (s->window_size - s->hop_size) * sizeof(*is)); s 556 libavfilter/af_adeclick.c memset(buf + s->window_size * 2 - s->hop_size, 0, s->hop_size * sizeof(*buf)); s 557 libavfilter/af_adeclick.c memset(is + s->window_size - s->hop_size, 0, s->hop_size * sizeof(*is)); s 566 libavfilter/af_adeclick.c AudioDeclickContext *s = ctx->priv; s 571 libavfilter/af_adeclick.c out = ff_get_audio_buffer(outlink, s->hop_size); s 575 libavfilter/af_adeclick.c ret = av_audio_fifo_peek(s->fifo, (void **)s->in->extended_data, s 576 libavfilter/af_adeclick.c s->window_size); s 585 libavfilter/af_adeclick.c for (ch = 0; ch < s->in->channels; ch++) { s 586 libavfilter/af_adeclick.c double *is = (double *)s->is->extended_data[ch]; s 588 libavfilter/af_adeclick.c for (j = 0; j < s->hop_size; j++) { s 594 libavfilter/af_adeclick.c av_audio_fifo_drain(s->fifo, s->hop_size); s 595 libavfilter/af_adeclick.c av_audio_fifo_drain(s->efifo, s->hop_size); s 597 libavfilter/af_adeclick.c if (s->samples_left > 0) s 598 libavfilter/af_adeclick.c out->nb_samples = FFMIN(s->hop_size, s->samples_left); s 600 libavfilter/af_adeclick.c out->pts = s->pts; s 601 libavfilter/af_adeclick.c s->pts += av_rescale_q(s->hop_size, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 603 libavfilter/af_adeclick.c s->detected_errors += detected_errors; s 604 libavfilter/af_adeclick.c s->nb_samples += out->nb_samples * inlink->channels; s 610 libavfilter/af_adeclick.c if (s->samples_left > 0) { s 611 libavfilter/af_adeclick.c s->samples_left -= s->hop_size; s 612 libavfilter/af_adeclick.c if (s->samples_left <= 0) s 613 libavfilter/af_adeclick.c av_audio_fifo_drain(s->fifo, av_audio_fifo_size(s->fifo)); s 626 libavfilter/af_adeclick.c AudioDeclickContext *s = ctx->priv; s 633 libavfilter/af_adeclick.c ret = ff_inlink_consume_samples(inlink, s->window_size, s->window_size, &in); s 637 libavfilter/af_adeclick.c double *e = (double *)s->enabled->extended_data[0]; s 639 libavfilter/af_adeclick.c if (s->pts == AV_NOPTS_VALUE) s 640 libavfilter/af_adeclick.c s->pts = in->pts; s 642 libavfilter/af_adeclick.c ret = av_audio_fifo_write(s->fifo, (void **)in->extended_data, s 647 libavfilter/af_adeclick.c av_audio_fifo_write(s->efifo, (void**)s->enabled->extended_data, in->nb_samples); s 653 libavfilter/af_adeclick.c if (av_audio_fifo_size(s->fifo) >= s->window_size || s 654 libavfilter/af_adeclick.c s->samples_left > 0) s 657 libavfilter/af_adeclick.c if (av_audio_fifo_size(s->fifo) >= s->window_size) { s 662 libavfilter/af_adeclick.c if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 664 libavfilter/af_adeclick.c s->eof = 1; s 665 libavfilter/af_adeclick.c s->samples_left = av_audio_fifo_size(s->fifo) - s->overlap_skip; s 671 libavfilter/af_adeclick.c if (s->eof && s->samples_left <= 0) { s 672 libavfilter/af_adeclick.c ff_outlink_set_status(outlink, AVERROR_EOF, s->pts); s 676 libavfilter/af_adeclick.c if (!s->eof) s 684 libavfilter/af_adeclick.c AudioDeclickContext *s = ctx->priv; s 686 libavfilter/af_adeclick.c s->is_declip = !strcmp(ctx->filter->name, "adeclip"); s 687 libavfilter/af_adeclick.c if (s->is_declip) { s 688 libavfilter/af_adeclick.c s->detector = detect_clips; s 690 libavfilter/af_adeclick.c s->detector = detect_clicks; s 698 libavfilter/af_adeclick.c AudioDeclickContext *s = ctx->priv; s 702 libavfilter/af_adeclick.c s->is_declip ? "clips" : "clicks", s->detected_errors, s 703 libavfilter/af_adeclick.c s->nb_samples, 100. * s->detected_errors / s->nb_samples); s 705 libavfilter/af_adeclick.c av_audio_fifo_free(s->fifo); s 706 libavfilter/af_adeclick.c av_audio_fifo_free(s->efifo); s 707 libavfilter/af_adeclick.c av_freep(&s->window_func_lut); s 708 libavfilter/af_adeclick.c av_frame_free(&s->enabled); s 709 libavfilter/af_adeclick.c av_frame_free(&s->in); s 710 libavfilter/af_adeclick.c av_frame_free(&s->out); s 711 libavfilter/af_adeclick.c av_frame_free(&s->buffer); s 712 libavfilter/af_adeclick.c av_frame_free(&s->is); s 714 libavfilter/af_adeclick.c if (s->chan) { s 715 libavfilter/af_adeclick.c for (i = 0; i < s->nb_channels; i++) { s 716 libavfilter/af_adeclick.c DeclickChannel *c = &s->chan[i]; s 736 libavfilter/af_adeclick.c av_freep(&s->chan); s 737 libavfilter/af_adeclick.c s->nb_channels = 0; s 133 libavfilter/af_adelay.c AudioDelayContext *s = ctx->priv; s 137 libavfilter/af_adelay.c s->chandelay = av_calloc(inlink->channels, sizeof(*s->chandelay)); s 138 libavfilter/af_adelay.c if (!s->chandelay) s 140 libavfilter/af_adelay.c s->nb_delays = inlink->channels; s 141 libavfilter/af_adelay.c s->block_align = av_get_bytes_per_sample(inlink->format); s 143 libavfilter/af_adelay.c p = s->delays; s 144 libavfilter/af_adelay.c for (i = 0; i < s->nb_delays; i++) { s 145 libavfilter/af_adelay.c ChanDelay *d = &s->chandelay[i]; s 171 libavfilter/af_adelay.c if (s->all && i) { s 172 libavfilter/af_adelay.c for (int j = i; j < s->nb_delays; j++) s 173 libavfilter/af_adelay.c s->chandelay[j].delay = s->chandelay[i-1].delay; s 176 libavfilter/af_adelay.c s->padding = s->chandelay[0].delay; s 177 libavfilter/af_adelay.c for (i = 1; i < s->nb_delays; i++) { s 178 libavfilter/af_adelay.c ChanDelay *d = &s->chandelay[i]; s 180 libavfilter/af_adelay.c s->padding = FFMIN(s->padding, d->delay); s 183 libavfilter/af_adelay.c if (s->padding) { s 184 libavfilter/af_adelay.c for (i = 0; i < s->nb_delays; i++) { s 185 libavfilter/af_adelay.c ChanDelay *d = &s->chandelay[i]; s 187 libavfilter/af_adelay.c d->delay -= s->padding; s 191 libavfilter/af_adelay.c for (i = 0; i < s->nb_delays; i++) { s 192 libavfilter/af_adelay.c ChanDelay *d = &s->chandelay[i]; s 197 libavfilter/af_adelay.c d->samples = av_malloc_array(d->delay, s->block_align); s 201 libavfilter/af_adelay.c s->max_delay = FFMAX(s->max_delay, d->delay); s 205 libavfilter/af_adelay.c case AV_SAMPLE_FMT_U8P : s->delay_channel = delay_channel_u8p ; break; s 206 libavfilter/af_adelay.c case AV_SAMPLE_FMT_S16P: s->delay_channel = delay_channel_s16p; break; s 207 libavfilter/af_adelay.c case AV_SAMPLE_FMT_S32P: s->delay_channel = delay_channel_s32p; break; s 208 libavfilter/af_adelay.c case AV_SAMPLE_FMT_FLTP: s->delay_channel = delay_channel_fltp; break; s 209 libavfilter/af_adelay.c case AV_SAMPLE_FMT_DBLP: s->delay_channel = delay_channel_dblp; break; s 218 libavfilter/af_adelay.c AudioDelayContext *s = ctx->priv; s 222 libavfilter/af_adelay.c if (ctx->is_disabled || !s->delays) s 232 libavfilter/af_adelay.c for (i = 0; i < s->nb_delays; i++) { s 233 libavfilter/af_adelay.c ChanDelay *d = &s->chandelay[i]; s 238 libavfilter/af_adelay.c memcpy(dst, src, frame->nb_samples * s->block_align); s 240 libavfilter/af_adelay.c s->delay_channel(d, frame->nb_samples, src, dst); s 243 libavfilter/af_adelay.c out_frame->pts = s->next_pts; s 244 libavfilter/af_adelay.c s->next_pts += av_rescale_q(frame->nb_samples, (AVRational){1, inlink->sample_rate}, inlink->time_base); s 253 libavfilter/af_adelay.c AudioDelayContext *s = ctx->priv; s 260 libavfilter/af_adelay.c if (s->padding) { s 261 libavfilter/af_adelay.c int nb_samples = FFMIN(s->padding, 2048); s 266 libavfilter/af_adelay.c s->padding -= nb_samples; s 273 libavfilter/af_adelay.c frame->pts = s->next_pts; s 274 libavfilter/af_adelay.c if (s->next_pts != AV_NOPTS_VALUE) s 275 libavfilter/af_adelay.c s->next_pts += av_rescale_q(nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 289 libavfilter/af_adelay.c s->eof = 1; s 292 libavfilter/af_adelay.c if (s->eof && s->max_delay) { s 293 libavfilter/af_adelay.c int nb_samples = FFMIN(s->max_delay, 2048); s 298 libavfilter/af_adelay.c s->max_delay -= nb_samples; s 305 libavfilter/af_adelay.c frame->pts = s->next_pts; s 309 libavfilter/af_adelay.c if (s->eof && s->max_delay == 0) { s 310 libavfilter/af_adelay.c ff_outlink_set_status(outlink, AVERROR_EOF, s->next_pts); s 314 libavfilter/af_adelay.c if (!s->eof) s 322 libavfilter/af_adelay.c AudioDelayContext *s = ctx->priv; s 324 libavfilter/af_adelay.c if (s->chandelay) { s 325 libavfilter/af_adelay.c for (int i = 0; i < s->nb_delays; i++) s 326 libavfilter/af_adelay.c av_freep(&s->chandelay[i].samples); s 328 libavfilter/af_adelay.c av_freep(&s->chandelay); s 66 libavfilter/af_aderivative.c static void aderivative_## name ##p(void **d, void **p, const void **s, \ s 72 libavfilter/af_aderivative.c const type *src = s[c]; \ s 91 libavfilter/af_aderivative.c static void aintegral_## name ##p(void **d, void **p, const void **s, \ s 97 libavfilter/af_aderivative.c const type *src = s[c]; \ s 116 libavfilter/af_aderivative.c ADerivativeContext *s = ctx->priv; s 119 libavfilter/af_aderivative.c case AV_SAMPLE_FMT_FLTP: s->filter = aderivative_fltp; break; s 120 libavfilter/af_aderivative.c case AV_SAMPLE_FMT_DBLP: s->filter = aderivative_dblp; break; s 121 libavfilter/af_aderivative.c case AV_SAMPLE_FMT_S32P: s->filter = aderivative_s32p; break; s 122 libavfilter/af_aderivative.c case AV_SAMPLE_FMT_S16P: s->filter = aderivative_s16p; break; s 129 libavfilter/af_aderivative.c case AV_SAMPLE_FMT_FLTP: s->filter = aintegral_fltp; break; s 130 libavfilter/af_aderivative.c case AV_SAMPLE_FMT_DBLP: s->filter = aintegral_dblp; break; s 139 libavfilter/af_aderivative.c ADerivativeContext *s = ctx->priv; s 149 libavfilter/af_aderivative.c if (!s->prev) { s 150 libavfilter/af_aderivative.c s->prev = ff_get_audio_buffer(inlink, 1); s 151 libavfilter/af_aderivative.c if (!s->prev) { s 157 libavfilter/af_aderivative.c s->filter((void **)out->extended_data, (void **)s->prev->extended_data, (const void **)in->extended_data, s 166 libavfilter/af_aderivative.c ADerivativeContext *s = ctx->priv; s 168 libavfilter/af_aderivative.c av_frame_free(&s->prev); s 91 libavfilter/af_aecho.c AudioEchoContext *s = ctx->priv; s 93 libavfilter/af_aecho.c av_freep(&s->delay); s 94 libavfilter/af_aecho.c av_freep(&s->decay); s 95 libavfilter/af_aecho.c av_freep(&s->samples); s 97 libavfilter/af_aecho.c if (s->delayptrs) s 98 libavfilter/af_aecho.c av_freep(&s->delayptrs[0]); s 99 libavfilter/af_aecho.c av_freep(&s->delayptrs); s 104 libavfilter/af_aecho.c AudioEchoContext *s = ctx->priv; s 107 libavfilter/af_aecho.c if (!s->delays || !s->decays) { s 112 libavfilter/af_aecho.c count_items(s->delays, &nb_delays); s 113 libavfilter/af_aecho.c count_items(s->decays, &nb_decays); s 115 libavfilter/af_aecho.c s->delay = av_realloc_f(s->delay, nb_delays, sizeof(*s->delay)); s 116 libavfilter/af_aecho.c s->decay = av_realloc_f(s->decay, nb_decays, sizeof(*s->decay)); s 117 libavfilter/af_aecho.c if (!s->delay || !s->decay) s 120 libavfilter/af_aecho.c fill_items(s->delays, &nb_delays, s->delay); s 121 libavfilter/af_aecho.c fill_items(s->decays, &nb_decays, s->decay); s 128 libavfilter/af_aecho.c s->nb_echoes = nb_delays; s 129 libavfilter/af_aecho.c if (!s->nb_echoes) { s 134 libavfilter/af_aecho.c s->samples = av_realloc_f(s->samples, nb_delays, sizeof(*s->samples)); s 135 libavfilter/af_aecho.c if (!s->samples) s 139 libavfilter/af_aecho.c if (s->delay[i] <= 0 || s->delay[i] > 90000) { s 140 libavfilter/af_aecho.c av_log(ctx, AV_LOG_ERROR, "delay[%d]: %f is out of allowed range: (0, 90000]\n", i, s->delay[i]); s 143 libavfilter/af_aecho.c if (s->decay[i] <= 0 || s->decay[i] > 1) { s 144 libavfilter/af_aecho.c av_log(ctx, AV_LOG_ERROR, "decay[%d]: %f is out of allowed range: (0, 1]\n", i, s->decay[i]); s 149 libavfilter/af_aecho.c s->next_pts = AV_NOPTS_VALUE; s 151 libavfilter/af_aecho.c av_log(ctx, AV_LOG_DEBUG, "nb_echoes:%d\n", s->nb_echoes); s 203 libavfilter/af_aecho.c const type *s = (type *)src[chan]; \ s 208 libavfilter/af_aecho.c for (i = 0; i < nb_samples; i++, s++, d++) { \ s 211 libavfilter/af_aecho.c in = *s; \ s 237 libavfilter/af_aecho.c AudioEchoContext *s = ctx->priv; s 241 libavfilter/af_aecho.c for (i = 0; i < s->nb_echoes; i++) { s 242 libavfilter/af_aecho.c s->samples[i] = s->delay[i] * outlink->sample_rate / 1000.0; s 243 libavfilter/af_aecho.c s->max_samples = FFMAX(s->max_samples, s->samples[i]); s 244 libavfilter/af_aecho.c volume += s->decay[i]; s 247 libavfilter/af_aecho.c if (s->max_samples <= 0) { s 251 libavfilter/af_aecho.c s->fade_out = s->max_samples; s 253 libavfilter/af_aecho.c if (volume * s->in_gain * s->out_gain > 1.0) s 255 libavfilter/af_aecho.c "out_gain %f can cause saturation of output\n", s->out_gain); s 258 libavfilter/af_aecho.c case AV_SAMPLE_FMT_DBLP: s->echo_samples = echo_samples_dblp; break; s 259 libavfilter/af_aecho.c case AV_SAMPLE_FMT_FLTP: s->echo_samples = echo_samples_fltp; break; s 260 libavfilter/af_aecho.c case AV_SAMPLE_FMT_S16P: s->echo_samples = echo_samples_s16p; break; s 261 libavfilter/af_aecho.c case AV_SAMPLE_FMT_S32P: s->echo_samples = echo_samples_s32p; break; s 265 libavfilter/af_aecho.c if (s->delayptrs) s 266 libavfilter/af_aecho.c av_freep(&s->delayptrs[0]); s 267 libavfilter/af_aecho.c av_freep(&s->delayptrs); s 269 libavfilter/af_aecho.c return av_samples_alloc_array_and_samples(&s->delayptrs, NULL, s 271 libavfilter/af_aecho.c s->max_samples, s 278 libavfilter/af_aecho.c AudioEchoContext *s = ctx->priv; s 292 libavfilter/af_aecho.c s->echo_samples(s, s->delayptrs, frame->extended_data, out_frame->extended_data, s 295 libavfilter/af_aecho.c s->next_pts = frame->pts + av_rescale_q(frame->nb_samples, (AVRational){1, inlink->sample_rate}, inlink->time_base); s 306 libavfilter/af_aecho.c AudioEchoContext *s = ctx->priv; s 307 libavfilter/af_aecho.c int nb_samples = FFMIN(s->fade_out, 2048); s 312 libavfilter/af_aecho.c s->fade_out -= nb_samples; s 319 libavfilter/af_aecho.c s->echo_samples(s, s->delayptrs, frame->extended_data, frame->extended_data, s 322 libavfilter/af_aecho.c frame->pts = s->next_pts; s 323 libavfilter/af_aecho.c if (s->next_pts != AV_NOPTS_VALUE) s 324 libavfilter/af_aecho.c s->next_pts += av_rescale_q(nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 333 libavfilter/af_aecho.c AudioEchoContext *s = ctx->priv; s 346 libavfilter/af_aecho.c if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 348 libavfilter/af_aecho.c s->eof = 1; s 351 libavfilter/af_aecho.c if (s->eof && s->fade_out <= 0) { s 352 libavfilter/af_aecho.c ff_outlink_set_status(outlink, AVERROR_EOF, s->next_pts); s 356 libavfilter/af_aecho.c if (!s->eof) s 88 libavfilter/af_aemphasis.c AudioEmphasisContext *s = ctx->priv; s 90 libavfilter/af_aemphasis.c const double level_out = s->level_out; s 91 libavfilter/af_aemphasis.c const double level_in = s->level_in; s 110 libavfilter/af_aemphasis.c dst[c] = level_out * biquad(&s->rc[c].r1, s->rc[c].use_brickw ? biquad(&s->rc[c].brickw, src[c] * level_in) : src[c] * level_in); s 206 libavfilter/af_aemphasis.c AudioEmphasisContext *s = ctx->priv; s 210 libavfilter/af_aemphasis.c s->rc = av_calloc(inlink->channels, sizeof(*s->rc)); s 211 libavfilter/af_aemphasis.c if (!s->rc) s 214 libavfilter/af_aemphasis.c switch (s->type) { s 272 libavfilter/af_aemphasis.c if (s->type == 7 || s->type == 8) { s 273 libavfilter/af_aemphasis.c double tau = (s->type == 7 ? 0.000050 : 0.000075); s 280 libavfilter/af_aemphasis.c if (s->type == 8) s 282 libavfilter/af_aemphasis.c if (s->type == 7) s 284 libavfilter/af_aemphasis.c if (s->mode == 0) s 285 libavfilter/af_aemphasis.c set_highshelf_rbj(&s->rc[0].r1, cfreq, q, 1. / gain, sr); s 287 libavfilter/af_aemphasis.c set_highshelf_rbj(&s->rc[0].r1, cfreq, q, gain, sr); s 288 libavfilter/af_aemphasis.c s->rc[0].use_brickw = 0; s 290 libavfilter/af_aemphasis.c s->rc[0].use_brickw = 1; s 291 libavfilter/af_aemphasis.c if (s->mode == 0) { // Reproduction s 319 libavfilter/af_aemphasis.c s->rc[0].r1.a0 = coeffs.a0 * gc; s 320 libavfilter/af_aemphasis.c s->rc[0].r1.a1 = coeffs.a1 * gc; s 321 libavfilter/af_aemphasis.c s->rc[0].r1.a2 = coeffs.a2 * gc; s 322 libavfilter/af_aemphasis.c s->rc[0].r1.b1 = coeffs.b1; s 323 libavfilter/af_aemphasis.c s->rc[0].r1.b2 = coeffs.b2; s 327 libavfilter/af_aemphasis.c set_lp_rbj(&s->rc[0].brickw, cutfreq, 0.707, sr, 1.); s 330 libavfilter/af_aemphasis.c memcpy(&s->rc[ch], &s->rc[0], sizeof(RIAACurve)); s 338 libavfilter/af_aemphasis.c AudioEmphasisContext *s = ctx->priv; s 339 libavfilter/af_aemphasis.c av_freep(&s->rc); s 175 libavfilter/af_afade.c const type *s = (type *)src[c]; \ s 177 libavfilter/af_afade.c d[i] = s[i] * gain; \ s 188 libavfilter/af_afade.c const type *s = (type *)src[0]; \ s 194 libavfilter/af_afade.c d[k] = s[k] * gain; \ s 211 libavfilter/af_afade.c AudioFadeContext *s = ctx->priv; s 214 libavfilter/af_afade.c case AV_SAMPLE_FMT_DBL: s->fade_samples = fade_samples_dbl; break; s 215 libavfilter/af_afade.c case AV_SAMPLE_FMT_DBLP: s->fade_samples = fade_samples_dblp; break; s 216 libavfilter/af_afade.c case AV_SAMPLE_FMT_FLT: s->fade_samples = fade_samples_flt; break; s 217 libavfilter/af_afade.c case AV_SAMPLE_FMT_FLTP: s->fade_samples = fade_samples_fltp; break; s 218 libavfilter/af_afade.c case AV_SAMPLE_FMT_S16: s->fade_samples = fade_samples_s16; break; s 219 libavfilter/af_afade.c case AV_SAMPLE_FMT_S16P: s->fade_samples = fade_samples_s16p; break; s 220 libavfilter/af_afade.c case AV_SAMPLE_FMT_S32: s->fade_samples = fade_samples_s32; break; s 221 libavfilter/af_afade.c case AV_SAMPLE_FMT_S32P: s->fade_samples = fade_samples_s32p; break; s 224 libavfilter/af_afade.c if (s->duration) s 225 libavfilter/af_afade.c s->nb_samples = av_rescale(s->duration, outlink->sample_rate, AV_TIME_BASE); s 226 libavfilter/af_afade.c if (s->start_time) s 227 libavfilter/af_afade.c s->start_sample = av_rescale(s->start_time, outlink->sample_rate, AV_TIME_BASE); s 274 libavfilter/af_afade.c AudioFadeContext *s = ctx->priv; s 276 libavfilter/af_afade.c if (INT64_MAX - s->nb_samples < s->start_sample) s 284 libavfilter/af_afade.c AudioFadeContext *s = inlink->dst->priv; s 290 libavfilter/af_afade.c if ((!s->type && (s->start_sample + s->nb_samples < cur_sample)) || s 291 libavfilter/af_afade.c ( s->type && (cur_sample + nb_samples < s->start_sample))) s 303 libavfilter/af_afade.c if ((!s->type && (cur_sample + nb_samples < s->start_sample)) || s 304 libavfilter/af_afade.c ( s->type && (s->start_sample + s->nb_samples < cur_sample))) { s 310 libavfilter/af_afade.c if (!s->type) s 311 libavfilter/af_afade.c start = cur_sample - s->start_sample; s 313 libavfilter/af_afade.c start = s->start_sample + s->nb_samples - cur_sample; s 315 libavfilter/af_afade.c s->fade_samples(out_buf->extended_data, buf->extended_data, s 317 libavfilter/af_afade.c s->type ? -1 : 1, start, s 318 libavfilter/af_afade.c s->nb_samples, s->curve); s 447 libavfilter/af_afade.c AudioFadeContext *s = ctx->priv; s 455 libavfilter/af_afade.c if (s->crossfade_is_over) { s 458 libavfilter/af_afade.c in->pts = s->pts; s 459 libavfilter/af_afade.c s->pts += av_rescale_q(in->nb_samples, s 475 libavfilter/af_afade.c if (ff_inlink_queued_samples(ctx->inputs[0]) > s->nb_samples) { s 476 libavfilter/af_afade.c nb_samples = ff_inlink_queued_samples(ctx->inputs[0]) - s->nb_samples; s 483 libavfilter/af_afade.c in->pts = s->pts; s 484 libavfilter/af_afade.c s->pts += av_rescale_q(in->nb_samples, s 487 libavfilter/af_afade.c } else if (ff_inlink_queued_samples(ctx->inputs[0]) >= s->nb_samples && s 488 libavfilter/af_afade.c ff_inlink_queued_samples(ctx->inputs[1]) >= s->nb_samples && s->cf0_eof) { s 489 libavfilter/af_afade.c if (s->overlap) { s 490 libavfilter/af_afade.c out = ff_get_audio_buffer(outlink, s->nb_samples); s 494 libavfilter/af_afade.c ret = ff_inlink_consume_samples(ctx->inputs[0], s->nb_samples, s->nb_samples, &cf[0]); s 500 libavfilter/af_afade.c ret = ff_inlink_consume_samples(ctx->inputs[1], s->nb_samples, s->nb_samples, &cf[1]); s 506 libavfilter/af_afade.c s->crossfade_samples(out->extended_data, cf[0]->extended_data, s 508 libavfilter/af_afade.c s->nb_samples, out->channels, s 509 libavfilter/af_afade.c s->curve, s->curve2); s 510 libavfilter/af_afade.c out->pts = s->pts; s 511 libavfilter/af_afade.c s->pts += av_rescale_q(s->nb_samples, s 513 libavfilter/af_afade.c s->crossfade_is_over = 1; s 518 libavfilter/af_afade.c out = ff_get_audio_buffer(outlink, s->nb_samples); s 522 libavfilter/af_afade.c ret = ff_inlink_consume_samples(ctx->inputs[0], s->nb_samples, s->nb_samples, &cf[0]); s 528 libavfilter/af_afade.c s->fade_samples(out->extended_data, cf[0]->extended_data, s->nb_samples, s 529 libavfilter/af_afade.c outlink->channels, -1, s->nb_samples - 1, s->nb_samples, s->curve); s 530 libavfilter/af_afade.c out->pts = s->pts; s 531 libavfilter/af_afade.c s->pts += av_rescale_q(s->nb_samples, s 538 libavfilter/af_afade.c out = ff_get_audio_buffer(outlink, s->nb_samples); s 542 libavfilter/af_afade.c ret = ff_inlink_consume_samples(ctx->inputs[1], s->nb_samples, s->nb_samples, &cf[1]); s 548 libavfilter/af_afade.c s->fade_samples(out->extended_data, cf[1]->extended_data, s->nb_samples, s 549 libavfilter/af_afade.c outlink->channels, 1, 0, s->nb_samples, s->curve2); s 550 libavfilter/af_afade.c out->pts = s->pts; s 551 libavfilter/af_afade.c s->pts += av_rescale_q(s->nb_samples, s 553 libavfilter/af_afade.c s->crossfade_is_over = 1; s 558 libavfilter/af_afade.c if (!s->cf0_eof && ff_outlink_get_status(ctx->inputs[0])) { s 559 libavfilter/af_afade.c s->cf0_eof = 1; s 565 libavfilter/af_afade.c if (!s->cf0_eof) s 578 libavfilter/af_afade.c AudioFadeContext *s = ctx->priv; s 594 libavfilter/af_afade.c case AV_SAMPLE_FMT_DBL: s->crossfade_samples = crossfade_samples_dbl; break; s 595 libavfilter/af_afade.c case AV_SAMPLE_FMT_DBLP: s->crossfade_samples = crossfade_samples_dblp; break; s 596 libavfilter/af_afade.c case AV_SAMPLE_FMT_FLT: s->crossfade_samples = crossfade_samples_flt; break; s 597 libavfilter/af_afade.c case AV_SAMPLE_FMT_FLTP: s->crossfade_samples = crossfade_samples_fltp; break; s 598 libavfilter/af_afade.c case AV_SAMPLE_FMT_S16: s->crossfade_samples = crossfade_samples_s16; break; s 599 libavfilter/af_afade.c case AV_SAMPLE_FMT_S16P: s->crossfade_samples = crossfade_samples_s16p; break; s 600 libavfilter/af_afade.c case AV_SAMPLE_FMT_S32: s->crossfade_samples = crossfade_samples_s32; break; s 601 libavfilter/af_afade.c case AV_SAMPLE_FMT_S32P: s->crossfade_samples = crossfade_samples_s32p; break; s 168 libavfilter/af_afftdn.c static int get_band_noise(AudioFFTDeNoiseContext *s, s 174 libavfilter/af_afftdn.c d1 = a / s->band_centre[band]; s 176 libavfilter/af_afftdn.c d2 = b / s->band_centre[band]; s 178 libavfilter/af_afftdn.c d3 = s->band_centre[band] / c; s 217 libavfilter/af_afftdn.c static int process_get_band_noise(AudioFFTDeNoiseContext *s, s 230 libavfilter/af_afftdn.c sum += s->matrix_b[i++] * dnch->band_noise[k]; s 231 libavfilter/af_afftdn.c s->vector_b[j] = sum; s 234 libavfilter/af_afftdn.c solve(s->matrix_a, s->vector_b, 5); s 235 libavfilter/af_afftdn.c f = (0.5 * s->sample_rate) / s->band_centre[14]; s 240 libavfilter/af_afftdn.c sum += product * s->vector_b[j]; s 247 libavfilter/af_afftdn.c static void calculate_sfm(AudioFFTDeNoiseContext *s, s 255 libavfilter/af_afftdn.c if (dnch->noisy_data[k] > s->sample_floor) { s 277 libavfilter/af_afftdn.c dnch->sfm_results[0] = s->auto_floor; s 292 libavfilter/af_afftdn.c static void process_frame(AudioFFTDeNoiseContext *s, DeNoiseChannel *dnch, s 310 libavfilter/af_afftdn.c for (int i = 1; i < s->fft_length2; i++) { s 312 libavfilter/af_afftdn.c if (d1 > s->sample_floor) s 326 libavfilter/af_afftdn.c if (d1 > s->sample_floor) s 327 libavfilter/af_afftdn.c n = s->fft_length2; s 329 libavfilter/af_afftdn.c dnch->noisy_data[s->fft_length2] = d1; s 330 libavfilter/af_afftdn.c d2 = d1 / dnch->abs_var[s->fft_length2]; s 331 libavfilter/af_afftdn.c d3 = RATIO * prior[s->fft_length2] + RRATIO * fmax(d2 - 1.0, 0.0); s 334 libavfilter/af_afftdn.c prior[s->fft_length2] = d2 * gain; s 335 libavfilter/af_afftdn.c dnch->clean_data[s->fft_length2] = d1 * gain; s 337 libavfilter/af_afftdn.c dnch->gain[s->fft_length2] = gain; s 338 libavfilter/af_afftdn.c if (n > s->fft_length2 - 2) { s 339 libavfilter/af_afftdn.c n = s->bin_count; s 340 libavfilter/af_afftdn.c i1 = s->noise_band_count; s 343 libavfilter/af_afftdn.c for (int i = 0; i <= s->noise_band_count; i++) { s 344 libavfilter/af_afftdn.c if (n > 1.1 * s->noise_band_edge[i]) { s 350 libavfilter/af_afftdn.c if (track_noise && (i1 > s->noise_band_count / 2)) { s 351 libavfilter/af_afftdn.c int j = FFMIN(n, s->noise_band_edge[i1]); s 355 libavfilter/af_afftdn.c int i = s->noise_band_edge[k]; s 356 libavfilter/af_afftdn.c calculate_sfm(s, dnch, i, j); s 386 libavfilter/af_afftdn.c if (s->track_residual) { s 387 libavfilter/af_afftdn.c if (s->last_noise_floor > s->last_residual_floor + 9) { s 390 libavfilter/af_afftdn.c } else if (s->last_noise_floor > s->last_residual_floor + 6) { s 393 libavfilter/af_afftdn.c } else if (s->last_noise_floor > s->last_residual_floor + 4) { s 396 libavfilter/af_afftdn.c } else if (s->last_noise_floor > s->last_residual_floor + 2) { s 399 libavfilter/af_afftdn.c } else if (s->last_noise_floor > s->last_residual_floor) { s 413 libavfilter/af_afftdn.c dnch->sfm_fail_flags[s->block_count & 0x1FF] = 1; s 418 libavfilter/af_afftdn.c for (int i = 0; i < s->number_of_bands; i++) { s 423 libavfilter/af_afftdn.c for (int i = 0; i < s->bin_count; i++) { s 424 libavfilter/af_afftdn.c dnch->band_excit[s->bin2band[i]] += dnch->clean_data[i]; s 427 libavfilter/af_afftdn.c for (int i = 0; i < s->number_of_bands; i++) { s 429 libavfilter/af_afftdn.c s->band_alpha[i] * dnch->band_excit[i] + s 430 libavfilter/af_afftdn.c s->band_beta[i] * prior_band_excit[i]); s 434 libavfilter/af_afftdn.c for (int j = 0, i = 0; j < s->number_of_bands; j++) { s 435 libavfilter/af_afftdn.c for (int k = 0; k < s->number_of_bands; k++) { s 440 libavfilter/af_afftdn.c for (int i = 0; i < s->bin_count; i++) s 441 libavfilter/af_afftdn.c dnch->amt[i] = dnch->band_amt[s->bin2band[i]]; s 449 libavfilter/af_afftdn.c dnch->gain[0] = limit_gain(dnch->gain[0], s->max_gain); s 451 libavfilter/af_afftdn.c if (dnch->amt[s->fft_length2] > dnch->abs_var[s->fft_length2]) { s 452 libavfilter/af_afftdn.c dnch->gain[s->fft_length2] = 1.0; s 453 libavfilter/af_afftdn.c } else if (dnch->amt[s->fft_length2] > dnch->min_abs_var[s->fft_length2]) { s 454 libavfilter/af_afftdn.c double limit = sqrt(dnch->abs_var[s->fft_length2] / dnch->amt[s->fft_length2]); s 455 libavfilter/af_afftdn.c dnch->gain[s->fft_length2] = limit_gain(dnch->gain[s->fft_length2], limit); s 457 libavfilter/af_afftdn.c dnch->gain[s->fft_length2] = limit_gain(dnch->gain[s->fft_length2], s->max_gain); s 460 libavfilter/af_afftdn.c for (int i = 1; i < s->fft_length2; i++) { s 467 libavfilter/af_afftdn.c dnch->gain[i] = limit_gain(dnch->gain[i], s->max_gain); s 474 libavfilter/af_afftdn.c gain = dnch->gain[s->fft_length2]; s 475 libavfilter/af_afftdn.c dnch->clean_data[s->fft_length2] = (gain * gain * dnch->noisy_data[s->fft_length2]); s 477 libavfilter/af_afftdn.c for (int i = 1; i < s->fft_length2; i++) { s 492 libavfilter/af_afftdn.c static int get_band_centre(AudioFFTDeNoiseContext *s, int band) s 495 libavfilter/af_afftdn.c return lrint(s->band_centre[0] / 1.5); s 497 libavfilter/af_afftdn.c return s->band_centre[band]; s 500 libavfilter/af_afftdn.c static int get_band_edge(AudioFFTDeNoiseContext *s, int band) s 505 libavfilter/af_afftdn.c i = lrint(s->band_centre[14] * 1.224745); s 507 libavfilter/af_afftdn.c i = lrint(s->band_centre[band] / 1.224745); s 510 libavfilter/af_afftdn.c return FFMIN(i, s->sample_rate / 2); s 513 libavfilter/af_afftdn.c static void set_band_parameters(AudioFFTDeNoiseContext *s, s 520 libavfilter/af_afftdn.c band_noise = process_get_band_noise(s, dnch, 0); s 521 libavfilter/af_afftdn.c for (int m = j; m <= s->fft_length2; m++) { s 526 libavfilter/af_afftdn.c j = s->bin_count; s 528 libavfilter/af_afftdn.c j = s->fft_length * get_band_centre(s, k) / s->sample_rate; s 531 libavfilter/af_afftdn.c band_noise = process_get_band_noise(s, dnch, k); s 538 libavfilter/af_afftdn.c dnch->rel_var[s->fft_length2] = exp(band_noise * C); s 541 libavfilter/af_afftdn.c dnch->noise_band_auto_var[i] = s->max_var * exp((process_get_band_noise(s, dnch, i) - 2.0) * C); s 543 libavfilter/af_afftdn.c for (i = 0; i <= s->fft_length2; i++) { s 544 libavfilter/af_afftdn.c dnch->abs_var[i] = fmax(s->max_var * dnch->rel_var[i], 1.0); s 545 libavfilter/af_afftdn.c dnch->min_abs_var[i] = s->gain_scale * dnch->abs_var[i]; s 549 libavfilter/af_afftdn.c static void read_custom_noise(AudioFFTDeNoiseContext *s, int ch) s 551 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 555 libavfilter/af_afftdn.c if (!s->band_noise_str) s 558 libavfilter/af_afftdn.c p = av_strdup(s->band_noise_str); s 570 libavfilter/af_afftdn.c av_log(s, AV_LOG_ERROR, "Custom band noise must be integer.\n"); s 581 libavfilter/af_afftdn.c static void set_parameters(AudioFFTDeNoiseContext *s) s 583 libavfilter/af_afftdn.c if (s->last_noise_floor != s->noise_floor) s 584 libavfilter/af_afftdn.c s->last_noise_floor = s->noise_floor; s 586 libavfilter/af_afftdn.c if (s->track_residual) s 587 libavfilter/af_afftdn.c s->last_noise_floor = fmaxf(s->last_noise_floor, s->residual_floor); s 589 libavfilter/af_afftdn.c s->max_var = s->floor * exp((100.0 + s->last_noise_floor) * C); s 591 libavfilter/af_afftdn.c if (s->track_residual) { s 592 libavfilter/af_afftdn.c s->last_residual_floor = s->residual_floor; s 593 libavfilter/af_afftdn.c s->last_noise_reduction = fmax(s->last_noise_floor - s->last_residual_floor, 0); s 594 libavfilter/af_afftdn.c s->max_gain = exp(s->last_noise_reduction * (0.5 * C)); s 595 libavfilter/af_afftdn.c } else if (s->noise_reduction != s->last_noise_reduction) { s 596 libavfilter/af_afftdn.c s->last_noise_reduction = s->noise_reduction; s 597 libavfilter/af_afftdn.c s->last_residual_floor = av_clipf(s->last_noise_floor - s->last_noise_reduction, -80, -20); s 598 libavfilter/af_afftdn.c s->max_gain = exp(s->last_noise_reduction * (0.5 * C)); s 601 libavfilter/af_afftdn.c s->gain_scale = 1.0 / (s->max_gain * s->max_gain); s 603 libavfilter/af_afftdn.c for (int ch = 0; ch < s->channels; ch++) { s 604 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 606 libavfilter/af_afftdn.c set_band_parameters(s, dnch); s 613 libavfilter/af_afftdn.c AudioFFTDeNoiseContext *s = ctx->priv; s 617 libavfilter/af_afftdn.c s->dnch = av_calloc(inlink->channels, sizeof(*s->dnch)); s 618 libavfilter/af_afftdn.c if (!s->dnch) s 621 libavfilter/af_afftdn.c s->pts = AV_NOPTS_VALUE; s 622 libavfilter/af_afftdn.c s->channels = inlink->channels; s 623 libavfilter/af_afftdn.c s->sample_rate = inlink->sample_rate; s 624 libavfilter/af_afftdn.c s->sample_advance = s->sample_rate / 80; s 625 libavfilter/af_afftdn.c s->window_length = 3 * s->sample_advance; s 626 libavfilter/af_afftdn.c s->fft_length2 = 1 << (32 - ff_clz(s->window_length)); s 627 libavfilter/af_afftdn.c s->fft_length = s->fft_length2 * 2; s 628 libavfilter/af_afftdn.c s->buffer_length = s->fft_length * 2; s 629 libavfilter/af_afftdn.c s->bin_count = s->fft_length2 + 1; s 631 libavfilter/af_afftdn.c s->band_centre[0] = 80; s 633 libavfilter/af_afftdn.c s->band_centre[i] = lrint(1.5 * s->band_centre[i - 1] + 5.0); s 634 libavfilter/af_afftdn.c if (s->band_centre[i] < 1000) { s 635 libavfilter/af_afftdn.c s->band_centre[i] = 10 * (s->band_centre[i] / 10); s 636 libavfilter/af_afftdn.c } else if (s->band_centre[i] < 5000) { s 637 libavfilter/af_afftdn.c s->band_centre[i] = 50 * ((s->band_centre[i] + 20) / 50); s 638 libavfilter/af_afftdn.c } else if (s->band_centre[i] < 15000) { s 639 libavfilter/af_afftdn.c s->band_centre[i] = 100 * ((s->band_centre[i] + 45) / 100); s 641 libavfilter/af_afftdn.c s->band_centre[i] = 1000 * ((s->band_centre[i] + 495) / 1000); s 647 libavfilter/af_afftdn.c s->matrix_a[j + k * 5] = 0.0; s 649 libavfilter/af_afftdn.c s->matrix_a[j + k * 5] += pow(m, j + k); s 653 libavfilter/af_afftdn.c factor(s->matrix_a, 5); s 658 libavfilter/af_afftdn.c s->matrix_b[i++] = pow(k, j); s 663 libavfilter/af_afftdn.c s->matrix_c[i++] = pow(j, k); s 665 libavfilter/af_afftdn.c s->window = av_calloc(s->window_length, sizeof(*s->window)); s 666 libavfilter/af_afftdn.c s->bin2band = av_calloc(s->bin_count, sizeof(*s->bin2band)); s 667 libavfilter/af_afftdn.c if (!s->window || !s->bin2band) s 670 libavfilter/af_afftdn.c sdiv = s->sample_rate / 17640.0; s 671 libavfilter/af_afftdn.c for (i = 0; i <= s->fft_length2; i++) s 672 libavfilter/af_afftdn.c s->bin2band[i] = lrint(sdiv * freq2bark((0.5 * i * s->sample_rate) / s->fft_length2)); s 674 libavfilter/af_afftdn.c s->number_of_bands = s->bin2band[s->fft_length2] + 1; s 676 libavfilter/af_afftdn.c s->band_alpha = av_calloc(s->number_of_bands, sizeof(*s->band_alpha)); s 677 libavfilter/af_afftdn.c s->band_beta = av_calloc(s->number_of_bands, sizeof(*s->band_beta)); s 678 libavfilter/af_afftdn.c if (!s->band_alpha || !s->band_beta) s 682 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 684 libavfilter/af_afftdn.c switch (s->noise_type) { s 691 libavfilter/af_afftdn.c dnch->band_noise[i] = get_band_noise(s, i, 50.0, 500.5, 2125.0) + FFMAX(i - 7, 0); s 695 libavfilter/af_afftdn.c dnch->band_noise[i] = get_band_noise(s, i, 1.0, 500.0, 1.0E10) + FFMAX(i - 12, -5); s 698 libavfilter/af_afftdn.c read_custom_noise(s, ch); s 718 libavfilter/af_afftdn.c dnch->amt = av_calloc(s->bin_count, sizeof(*dnch->amt)); s 719 libavfilter/af_afftdn.c dnch->band_amt = av_calloc(s->number_of_bands, sizeof(*dnch->band_amt)); s 720 libavfilter/af_afftdn.c dnch->band_excit = av_calloc(s->number_of_bands, sizeof(*dnch->band_excit)); s 721 libavfilter/af_afftdn.c dnch->gain = av_calloc(s->bin_count, sizeof(*dnch->gain)); s 722 libavfilter/af_afftdn.c dnch->prior = av_calloc(s->bin_count, sizeof(*dnch->prior)); s 723 libavfilter/af_afftdn.c dnch->prior_band_excit = av_calloc(s->number_of_bands, sizeof(*dnch->prior_band_excit)); s 724 libavfilter/af_afftdn.c dnch->clean_data = av_calloc(s->bin_count, sizeof(*dnch->clean_data)); s 725 libavfilter/af_afftdn.c dnch->noisy_data = av_calloc(s->bin_count, sizeof(*dnch->noisy_data)); s 726 libavfilter/af_afftdn.c dnch->out_samples = av_calloc(s->buffer_length, sizeof(*dnch->out_samples)); s 727 libavfilter/af_afftdn.c dnch->abs_var = av_calloc(s->bin_count, sizeof(*dnch->abs_var)); s 728 libavfilter/af_afftdn.c dnch->rel_var = av_calloc(s->bin_count, sizeof(*dnch->rel_var)); s 729 libavfilter/af_afftdn.c dnch->min_abs_var = av_calloc(s->bin_count, sizeof(*dnch->min_abs_var)); s 730 libavfilter/af_afftdn.c dnch->fft_data = av_calloc(s->fft_length2 + 1, sizeof(*dnch->fft_data)); s 731 libavfilter/af_afftdn.c dnch->fft = av_fft_init(av_log2(s->fft_length2), 0); s 732 libavfilter/af_afftdn.c dnch->ifft = av_fft_init(av_log2(s->fft_length2), 1); s 733 libavfilter/af_afftdn.c dnch->spread_function = av_calloc(s->number_of_bands * s->number_of_bands, s 756 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 765 libavfilter/af_afftdn.c for (m = 0; m < s->number_of_bands; m++) { s 766 libavfilter/af_afftdn.c for (n = 0; n < s->number_of_bands; n++) { s 777 libavfilter/af_afftdn.c for (m = 0; m < s->number_of_bands; m++) { s 782 libavfilter/af_afftdn.c for (m = 0; m <= s->fft_length2; m++) s 783 libavfilter/af_afftdn.c dnch->band_excit[s->bin2band[m]] += 1.0; s 786 libavfilter/af_afftdn.c for (m = 0; m < s->number_of_bands; m++) { s 787 libavfilter/af_afftdn.c for (n = 0; n < s->number_of_bands; n++) s 793 libavfilter/af_afftdn.c for (int i = 0; i < s->number_of_bands; i++) { s 802 libavfilter/af_afftdn.c for (int i = 0; i <= s->fft_length2; i++) s 804 libavfilter/af_afftdn.c for (int i = 0; i < s->buffer_length; i++) s 808 libavfilter/af_afftdn.c for (int i = 0; i < s->number_of_bands; i++) s 809 libavfilter/af_afftdn.c for (int k = 0; k < s->number_of_bands; k++) s 814 libavfilter/af_afftdn.c sar = s->sample_advance / s->sample_rate; s 815 libavfilter/af_afftdn.c for (int i = 0; i <= s->fft_length2; i++) { s 816 libavfilter/af_afftdn.c if ((i == s->fft_length2) || (s->bin2band[i] > j)) { s 817 libavfilter/af_afftdn.c double d6 = (i - 1) * s->sample_rate / s->fft_length; s 819 libavfilter/af_afftdn.c s->band_alpha[j] = exp(-sar / d7); s 820 libavfilter/af_afftdn.c s->band_beta[j] = 1.0 - s->band_alpha[j]; s 821 libavfilter/af_afftdn.c j = s->bin2band[i]; s 825 libavfilter/af_afftdn.c wscale = sqrt(16.0 / (9.0 * s->fft_length)); s 827 libavfilter/af_afftdn.c for (int i = 0; i < s->window_length; i++) { s 828 libavfilter/af_afftdn.c double d10 = sin(i * M_PI / s->window_length); s 830 libavfilter/af_afftdn.c s->window[i] = d10; s 834 libavfilter/af_afftdn.c s->window_weight = 0.5 * sum; s 835 libavfilter/af_afftdn.c s->floor = (1LL << 48) * exp(-23.025558369790467) * s->window_weight; s 836 libavfilter/af_afftdn.c s->sample_floor = s->floor * exp(4.144600506562284); s 837 libavfilter/af_afftdn.c s->auto_floor = s->floor * exp(6.907667510937141); s 839 libavfilter/af_afftdn.c set_parameters(s); s 841 libavfilter/af_afftdn.c s->noise_band_edge[0] = FFMIN(s->fft_length2, s->fft_length * get_band_edge(s, 0) / s->sample_rate); s 844 libavfilter/af_afftdn.c s->noise_band_edge[j] = FFMIN(s->fft_length2, s->fft_length * get_band_edge(s, j) / s->sample_rate); s 845 libavfilter/af_afftdn.c if (s->noise_band_edge[j] > lrint(1.1 * s->noise_band_edge[j - 1])) s 847 libavfilter/af_afftdn.c s->noise_band_edge[16] = i; s 849 libavfilter/af_afftdn.c s->noise_band_count = s->noise_band_edge[16]; s 851 libavfilter/af_afftdn.c s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->fft_length); s 852 libavfilter/af_afftdn.c if (!s->fifo) s 932 libavfilter/af_afftdn.c static void sample_noise_block(AudioFFTDeNoiseContext *s, s 940 libavfilter/af_afftdn.c for (int i = 0; i < s->window_length; i++) { s 941 libavfilter/af_afftdn.c dnch->fft_data[i].re = s->window[i] * src[i] * (1LL << 24); s 945 libavfilter/af_afftdn.c for (int i = s->window_length; i < s->fft_length2; i++) { s 953 libavfilter/af_afftdn.c preprocess(dnch->fft_data, s->fft_length); s 955 libavfilter/af_afftdn.c edge = s->noise_band_edge[0]; s 959 libavfilter/af_afftdn.c edgemax = fmin(s->fft_length2, s->noise_band_edge[15]); s 960 libavfilter/af_afftdn.c dnch->fft_data[s->fft_length2].re = dnch->fft_data[0].im; s 962 libavfilter/af_afftdn.c dnch->fft_data[s->fft_length2].im = 0.0; s 974 libavfilter/af_afftdn.c j = s->noise_band_edge[k]; s 987 libavfilter/af_afftdn.c mag2 = fmax(mag2, s->sample_floor); s 1000 libavfilter/af_afftdn.c static void finish_sample_noise(AudioFFTDeNoiseContext *s, s 1004 libavfilter/af_afftdn.c for (int i = 0; i < s->noise_band_count; i++) { s 1011 libavfilter/af_afftdn.c sample_noise[i] = (1.0 / C) * log(dnch->noise_band_var[i] / s->floor) - 100.0; s 1013 libavfilter/af_afftdn.c if (s->noise_band_count < 15) { s 1014 libavfilter/af_afftdn.c for (int i = s->noise_band_count; i < 15; i++) s 1019 libavfilter/af_afftdn.c static void set_noise_profile(AudioFFTDeNoiseContext *s, s 1038 libavfilter/af_afftdn.c sum += s->matrix_b[i++] * temp[n]; s 1039 libavfilter/af_afftdn.c s->vector_b[m] = sum; s 1041 libavfilter/af_afftdn.c solve(s->matrix_a, s->vector_b, 5); s 1046 libavfilter/af_afftdn.c sum += s->matrix_c[i++] * s->vector_b[n]; s 1068 libavfilter/af_afftdn.c av_log(s, AV_LOG_INFO, "bn="); s 1072 libavfilter/af_afftdn.c av_log(s, AV_LOG_INFO, "%d ", new_band_noise[m]); s 1074 libavfilter/af_afftdn.c av_log(s, AV_LOG_INFO, "\n"); s 1078 libavfilter/af_afftdn.c if (s->track_noise) s 1079 libavfilter/af_afftdn.c s->noise_floor = new_noise_floor; s 1088 libavfilter/af_afftdn.c AudioFFTDeNoiseContext *s = ctx->priv; s 1095 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 1099 libavfilter/af_afftdn.c if (s->track_noise) { s 1100 libavfilter/af_afftdn.c int i = s->block_count & 0x1FF; s 1109 libavfilter/af_afftdn.c for (int m = 0; m < s->window_length; m++) { s 1110 libavfilter/af_afftdn.c dnch->fft_data[m].re = s->window[m] * src[m] * (1LL << 24); s 1114 libavfilter/af_afftdn.c for (int m = s->window_length; m < s->fft_length2; m++) { s 1122 libavfilter/af_afftdn.c preprocess(dnch->fft_data, s->fft_length); s 1123 libavfilter/af_afftdn.c process_frame(s, dnch, dnch->fft_data, s 1126 libavfilter/af_afftdn.c s->track_noise); s 1127 libavfilter/af_afftdn.c postprocess(dnch->fft_data, s->fft_length); s 1132 libavfilter/af_afftdn.c for (int m = 0; m < s->window_length; m++) s 1133 libavfilter/af_afftdn.c dst[m] += s->window[m] * dnch->fft_data[m].re / (1LL << 24); s 1139 libavfilter/af_afftdn.c static void get_auto_noise_levels(AudioFFTDeNoiseContext *s, s 1143 libavfilter/af_afftdn.c if (s->noise_band_count > 0) { s 1144 libavfilter/af_afftdn.c for (int i = 0; i < s->noise_band_count; i++) { s 1145 libavfilter/af_afftdn.c levels[i] = (1.0 / C) * log(dnch->noise_band_auto_var[i] / s->floor) - 100.0; s 1147 libavfilter/af_afftdn.c if (s->noise_band_count < 15) { s 1148 libavfilter/af_afftdn.c for (int i = s->noise_band_count; i < 15; i++) s 1162 libavfilter/af_afftdn.c AudioFFTDeNoiseContext *s = ctx->priv; s 1167 libavfilter/af_afftdn.c in = ff_get_audio_buffer(outlink, s->window_length); s 1171 libavfilter/af_afftdn.c ret = av_audio_fifo_peek(s->fifo, (void **)in->extended_data, s->window_length); s 1175 libavfilter/af_afftdn.c if (s->track_noise) { s 1177 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 1180 libavfilter/af_afftdn.c get_auto_noise_levels(s, dnch, levels); s 1181 libavfilter/af_afftdn.c set_noise_profile(s, dnch, levels, 0); s 1184 libavfilter/af_afftdn.c if (s->noise_floor != s->last_noise_floor) s 1185 libavfilter/af_afftdn.c set_parameters(s); s 1188 libavfilter/af_afftdn.c if (s->sample_noise_start) { s 1190 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 1194 libavfilter/af_afftdn.c s->sample_noise_start = 0; s 1195 libavfilter/af_afftdn.c s->sample_noise = 1; s 1198 libavfilter/af_afftdn.c if (s->sample_noise) { s 1200 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 1202 libavfilter/af_afftdn.c sample_noise_block(s, dnch, in, ch); s 1206 libavfilter/af_afftdn.c if (s->sample_noise_end) { s 1208 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 1211 libavfilter/af_afftdn.c finish_sample_noise(s, dnch, sample_noise); s 1212 libavfilter/af_afftdn.c set_noise_profile(s, dnch, sample_noise, 1); s 1213 libavfilter/af_afftdn.c set_band_parameters(s, dnch); s 1215 libavfilter/af_afftdn.c s->sample_noise = 0; s 1216 libavfilter/af_afftdn.c s->sample_noise_end = 0; s 1219 libavfilter/af_afftdn.c s->block_count++; s 1224 libavfilter/af_afftdn.c out = ff_get_audio_buffer(outlink, s->sample_advance); s 1231 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 1236 libavfilter/af_afftdn.c switch (s->output_mode) { s 1238 libavfilter/af_afftdn.c for (int m = 0; m < s->sample_advance; m++) s 1242 libavfilter/af_afftdn.c for (int m = 0; m < s->sample_advance; m++) s 1246 libavfilter/af_afftdn.c for (int m = 0; m < s->sample_advance; m++) s 1254 libavfilter/af_afftdn.c memmove(src, src + s->sample_advance, (s->window_length - s->sample_advance) * sizeof(*src)); s 1255 libavfilter/af_afftdn.c memset(src + (s->window_length - s->sample_advance), 0, s->sample_advance * sizeof(*src)); s 1258 libavfilter/af_afftdn.c av_audio_fifo_drain(s->fifo, s->sample_advance); s 1260 libavfilter/af_afftdn.c out->pts = s->pts; s 1264 libavfilter/af_afftdn.c s->pts += av_rescale_q(s->sample_advance, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 1275 libavfilter/af_afftdn.c AudioFFTDeNoiseContext *s = ctx->priv; s 1286 libavfilter/af_afftdn.c if (s->pts == AV_NOPTS_VALUE) s 1287 libavfilter/af_afftdn.c s->pts = frame->pts; s 1289 libavfilter/af_afftdn.c ret = av_audio_fifo_write(s->fifo, (void **)frame->extended_data, frame->nb_samples); s 1295 libavfilter/af_afftdn.c if (av_audio_fifo_size(s->fifo) >= s->window_length) s 1300 libavfilter/af_afftdn.c av_audio_fifo_size(s->fifo) < s->window_length) { s 1310 libavfilter/af_afftdn.c AudioFFTDeNoiseContext *s = ctx->priv; s 1312 libavfilter/af_afftdn.c av_freep(&s->window); s 1313 libavfilter/af_afftdn.c av_freep(&s->bin2band); s 1314 libavfilter/af_afftdn.c av_freep(&s->band_alpha); s 1315 libavfilter/af_afftdn.c av_freep(&s->band_beta); s 1317 libavfilter/af_afftdn.c if (s->dnch) { s 1318 libavfilter/af_afftdn.c for (int ch = 0; ch < s->channels; ch++) { s 1319 libavfilter/af_afftdn.c DeNoiseChannel *dnch = &s->dnch[ch]; s 1339 libavfilter/af_afftdn.c av_freep(&s->dnch); s 1342 libavfilter/af_afftdn.c av_audio_fifo_free(s->fifo); s 1377 libavfilter/af_afftdn.c AudioFFTDeNoiseContext *s = ctx->priv; s 1384 libavfilter/af_afftdn.c s->sample_noise_start = 1; s 1385 libavfilter/af_afftdn.c s->sample_noise_end = 0; s 1388 libavfilter/af_afftdn.c s->sample_noise_start = 0; s 1389 libavfilter/af_afftdn.c s->sample_noise_end = 1; s 1399 libavfilter/af_afftdn.c set_parameters(s); s 97 libavfilter/af_afftfilt.c AFFTFiltContext *s = priv; s 100 libavfilter/af_afftfilt.c ich = av_clip(ch, 0, s->nb_exprs - 1); s 101 libavfilter/af_afftfilt.c ix = av_clip(x, 0, s->window_size / 2); s 103 libavfilter/af_afftfilt.c return s->fft_data[ich][ix].re; s 108 libavfilter/af_afftfilt.c AFFTFiltContext *s = priv; s 111 libavfilter/af_afftfilt.c ich = av_clip(ch, 0, s->nb_exprs - 1); s 112 libavfilter/af_afftfilt.c ix = av_clip(x, 0, s->window_size / 2); s 114 libavfilter/af_afftfilt.c return s->fft_data[ich][ix].im; s 126 libavfilter/af_afftfilt.c AFFTFiltContext *s = ctx->priv; s 133 libavfilter/af_afftfilt.c s->channels = inlink->channels; s 134 libavfilter/af_afftfilt.c s->pts = AV_NOPTS_VALUE; s 135 libavfilter/af_afftfilt.c s->fft_bits = av_log2(s->fft_size); s 136 libavfilter/af_afftfilt.c s->fft = av_fft_init(s->fft_bits, 0); s 137 libavfilter/af_afftfilt.c s->ifft = av_fft_init(s->fft_bits, 1); s 138 libavfilter/af_afftfilt.c if (!s->fft || !s->ifft) s 141 libavfilter/af_afftfilt.c s->window_size = 1 << s->fft_bits; s 143 libavfilter/af_afftfilt.c s->fft_data = av_calloc(inlink->channels, sizeof(*s->fft_data)); s 144 libavfilter/af_afftfilt.c if (!s->fft_data) s 147 libavfilter/af_afftfilt.c s->fft_temp = av_calloc(inlink->channels, sizeof(*s->fft_temp)); s 148 libavfilter/af_afftfilt.c if (!s->fft_temp) s 152 libavfilter/af_afftfilt.c s->fft_data[ch] = av_calloc(s->window_size, sizeof(**s->fft_data)); s 153 libavfilter/af_afftfilt.c if (!s->fft_data[ch]) s 158 libavfilter/af_afftfilt.c s->fft_temp[ch] = av_calloc(s->window_size, sizeof(**s->fft_temp)); s 159 libavfilter/af_afftfilt.c if (!s->fft_temp[ch]) s 163 libavfilter/af_afftfilt.c s->real = av_calloc(inlink->channels, sizeof(*s->real)); s 164 libavfilter/af_afftfilt.c if (!s->real) s 167 libavfilter/af_afftfilt.c s->imag = av_calloc(inlink->channels, sizeof(*s->imag)); s 168 libavfilter/af_afftfilt.c if (!s->imag) s 171 libavfilter/af_afftfilt.c args = av_strdup(s->real_str); s 178 libavfilter/af_afftfilt.c ret = av_expr_parse(&s->real[ch], arg ? arg : last_expr, var_names, s 184 libavfilter/af_afftfilt.c s->nb_exprs++; s 189 libavfilter/af_afftfilt.c args = av_strdup(s->img_str ? s->img_str : s->real_str); s 198 libavfilter/af_afftfilt.c ret = av_expr_parse(&s->imag[ch], arg ? arg : last_expr, var_names, s 208 libavfilter/af_afftfilt.c s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->window_size); s 209 libavfilter/af_afftfilt.c if (!s->fifo) s 212 libavfilter/af_afftfilt.c s->window_func_lut = av_realloc_f(s->window_func_lut, s->window_size, s 213 libavfilter/af_afftfilt.c sizeof(*s->window_func_lut)); s 214 libavfilter/af_afftfilt.c if (!s->window_func_lut) s 216 libavfilter/af_afftfilt.c generate_window_func(s->window_func_lut, s->window_size, s->win_func, &overlap); s 217 libavfilter/af_afftfilt.c if (s->overlap == 1) s 218 libavfilter/af_afftfilt.c s->overlap = overlap; s 220 libavfilter/af_afftfilt.c s->hop_size = s->window_size * (1 - s->overlap); s 221 libavfilter/af_afftfilt.c if (s->hop_size <= 0) s 224 libavfilter/af_afftfilt.c s->buffer = ff_get_audio_buffer(inlink, s->window_size * 2); s 225 libavfilter/af_afftfilt.c if (!s->buffer) s 238 libavfilter/af_afftfilt.c AFFTFiltContext *s = ctx->priv; s 239 libavfilter/af_afftfilt.c const int window_size = s->window_size; s 240 libavfilter/af_afftfilt.c const float f = 1. / (s->window_size / 2); s 251 libavfilter/af_afftfilt.c ret = av_audio_fifo_peek(s->fifo, (void **)in->extended_data, window_size); s 257 libavfilter/af_afftfilt.c FFTComplex *fft_data = s->fft_data[ch]; s 260 libavfilter/af_afftfilt.c fft_data[n].re = src[n] * s->window_func_lut[n]; s 270 libavfilter/af_afftfilt.c values[VAR_PTS] = s->pts; s 276 libavfilter/af_afftfilt.c FFTComplex *fft_data = s->fft_data[ch]; s 278 libavfilter/af_afftfilt.c av_fft_permute(s->fft, fft_data); s 279 libavfilter/af_afftfilt.c av_fft_calc(s->fft, fft_data); s 283 libavfilter/af_afftfilt.c FFTComplex *fft_data = s->fft_data[ch]; s 284 libavfilter/af_afftfilt.c FFTComplex *fft_temp = s->fft_temp[ch]; s 285 libavfilter/af_afftfilt.c float *buf = (float *)s->buffer->extended_data[ch]; s 296 libavfilter/af_afftfilt.c fr = av_expr_eval(s->real[ch], values, s); s 297 libavfilter/af_afftfilt.c fi = av_expr_eval(s->imag[ch], values, s); s 308 libavfilter/af_afftfilt.c av_fft_permute(s->ifft, fft_temp); s 309 libavfilter/af_afftfilt.c av_fft_calc(s->ifft, fft_temp); s 312 libavfilter/af_afftfilt.c buf[i] += s->fft_temp[ch][i].re * f; s 316 libavfilter/af_afftfilt.c out = ff_get_audio_buffer(outlink, s->hop_size); s 322 libavfilter/af_afftfilt.c out->pts = s->pts; s 323 libavfilter/af_afftfilt.c s->pts += av_rescale_q(s->hop_size, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 327 libavfilter/af_afftfilt.c float *buf = (float *)s->buffer->extended_data[ch]; s 329 libavfilter/af_afftfilt.c for (n = 0; n < s->hop_size; n++) s 330 libavfilter/af_afftfilt.c dst[n] = buf[n] * (1.f - s->overlap); s 331 libavfilter/af_afftfilt.c memmove(buf, buf + s->hop_size, window_size * 4); s 338 libavfilter/af_afftfilt.c av_audio_fifo_drain(s->fifo, s->hop_size); s 349 libavfilter/af_afftfilt.c AFFTFiltContext *s = ctx->priv; s 356 libavfilter/af_afftfilt.c if (!s->eof && av_audio_fifo_size(s->fifo) < s->window_size) { s 362 libavfilter/af_afftfilt.c ret = av_audio_fifo_write(s->fifo, (void **)in->extended_data, s 364 libavfilter/af_afftfilt.c if (ret >= 0 && s->pts == AV_NOPTS_VALUE) s 365 libavfilter/af_afftfilt.c s->pts = in->pts; s 373 libavfilter/af_afftfilt.c if ((av_audio_fifo_size(s->fifo) >= s->window_size) || s 374 libavfilter/af_afftfilt.c (av_audio_fifo_size(s->fifo) > 0 && s->eof)) { s 376 libavfilter/af_afftfilt.c if (av_audio_fifo_size(s->fifo) >= s->window_size) s 381 libavfilter/af_afftfilt.c if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 383 libavfilter/af_afftfilt.c s->eof = 1; s 384 libavfilter/af_afftfilt.c if (av_audio_fifo_size(s->fifo) >= 0) { s 391 libavfilter/af_afftfilt.c if (s->eof && av_audio_fifo_size(s->fifo) <= 0) { s 392 libavfilter/af_afftfilt.c ff_outlink_set_status(outlink, AVERROR_EOF, s->pts); s 396 libavfilter/af_afftfilt.c if (!s->eof) s 434 libavfilter/af_afftfilt.c AFFTFiltContext *s = ctx->priv; s 437 libavfilter/af_afftfilt.c av_fft_end(s->fft); s 438 libavfilter/af_afftfilt.c av_fft_end(s->ifft); s 440 libavfilter/af_afftfilt.c for (i = 0; i < s->channels; i++) { s 441 libavfilter/af_afftfilt.c if (s->fft_data) s 442 libavfilter/af_afftfilt.c av_freep(&s->fft_data[i]); s 443 libavfilter/af_afftfilt.c if (s->fft_temp) s 444 libavfilter/af_afftfilt.c av_freep(&s->fft_temp[i]); s 446 libavfilter/af_afftfilt.c av_freep(&s->fft_data); s 447 libavfilter/af_afftfilt.c av_freep(&s->fft_temp); s 449 libavfilter/af_afftfilt.c for (i = 0; i < s->nb_exprs; i++) { s 450 libavfilter/af_afftfilt.c av_expr_free(s->real[i]); s 451 libavfilter/af_afftfilt.c av_expr_free(s->imag[i]); s 454 libavfilter/af_afftfilt.c av_freep(&s->real); s 455 libavfilter/af_afftfilt.c av_freep(&s->imag); s 456 libavfilter/af_afftfilt.c av_frame_free(&s->buffer); s 457 libavfilter/af_afftfilt.c av_freep(&s->window_func_lut); s 459 libavfilter/af_afftfilt.c av_audio_fifo_free(s->fifo); s 69 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 70 libavfilter/af_afir.c const float *in = (const float *)s->in->extended_data[ch] + offset; s 72 libavfilter/af_afir.c const int nb_samples = FFMIN(s->min_part_size, out->nb_samples - offset); s 75 libavfilter/af_afir.c for (int segment = 0; segment < s->nb_segments; segment++) { s 76 libavfilter/af_afir.c AudioFIRSegment *seg = &s->seg[segment]; s 81 libavfilter/af_afir.c if (s->min_part_size >= 8) { s 82 libavfilter/af_afir.c s->fdsp->vector_fmul_scalar(src + seg->input_offset, in, s->dry_gain, FFALIGN(nb_samples, 4)); s 86 libavfilter/af_afir.c src[seg->input_offset + n] = in[n] * s->dry_gain; s 89 libavfilter/af_afir.c seg->output_offset[ch] += s->min_part_size; s 93 libavfilter/af_afir.c memmove(src, src + s->min_part_size, (seg->input_size - s->min_part_size) * sizeof(*src)); s 109 libavfilter/af_afir.c const FFTComplex *coeff = (const FFTComplex *)seg->coeff->extended_data[ch * !s->one2many] + coffset; s 120 libavfilter/af_afir.c memmove(src, src + s->min_part_size, (seg->input_size - s->min_part_size) * sizeof(*src)); s 143 libavfilter/af_afir.c const FFTComplex *coeff = (const FFTComplex *)seg->coeff->extended_data[ch * !s->one2many] + coffset; s 145 libavfilter/af_afir.c s->afirdsp.fcmul_add(sum, block, (const float *)coeff, seg->part_size); s 167 libavfilter/af_afir.c memmove(src, src + s->min_part_size, (seg->input_size - s->min_part_size) * sizeof(*src)); s 174 libavfilter/af_afir.c if (s->min_part_size >= 8) { s 175 libavfilter/af_afir.c s->fdsp->vector_fmul_scalar(ptr, ptr, s->wet_gain, FFALIGN(nb_samples, 4)); s 179 libavfilter/af_afir.c ptr[n] *= s->wet_gain; s 187 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 189 libavfilter/af_afir.c for (int offset = 0; offset < out->nb_samples; offset += s->min_part_size) { s 209 libavfilter/af_afir.c static int fir_frame(AudioFIRContext *s, AVFrame *in, AVFilterLink *outlink) s 220 libavfilter/af_afir.c if (s->pts == AV_NOPTS_VALUE) s 221 libavfilter/af_afir.c s->pts = in->pts; s 222 libavfilter/af_afir.c s->in = in; s 226 libavfilter/af_afir.c out->pts = s->pts; s 227 libavfilter/af_afir.c if (s->pts != AV_NOPTS_VALUE) s 228 libavfilter/af_afir.c s->pts += av_rescale_q(out->nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 231 libavfilter/af_afir.c s->in = NULL; s 287 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 294 libavfilter/af_afir.c memset(out->data[0], 0, s->h * out->linesize[0]); s 296 libavfilter/af_afir.c phase = av_malloc_array(s->w, sizeof(*phase)); s 297 libavfilter/af_afir.c mag = av_malloc_array(s->w, sizeof(*mag)); s 298 libavfilter/af_afir.c delay = av_malloc_array(s->w, sizeof(*delay)); s 302 libavfilter/af_afir.c channel = av_clip(s->ir_channel, 0, s->ir[s->selir]->channels - 1); s 303 libavfilter/af_afir.c for (i = 0; i < s->w; i++) { s 304 libavfilter/af_afir.c const float *src = (const float *)s->ir[s->selir]->extended_data[channel]; s 305 libavfilter/af_afir.c double w = i * M_PI / (s->w - 1); s 308 libavfilter/af_afir.c for (x = 0; x < s->nb_taps; x++) { s 325 libavfilter/af_afir.c for (i = 0; i < s->w; i++) { s 326 libavfilter/af_afir.c int ymag = mag[i] / max * (s->h - 1); s 327 libavfilter/af_afir.c int ydelay = (delay[i] - min_delay) / (max_delay - min_delay) * (s->h - 1); s 328 libavfilter/af_afir.c int yphase = (0.5 * (1. + phase[i] / M_PI)) * (s->h - 1); s 330 libavfilter/af_afir.c ymag = s->h - 1 - av_clip(ymag, 0, s->h - 1); s 331 libavfilter/af_afir.c yphase = s->h - 1 - av_clip(yphase, 0, s->h - 1); s 332 libavfilter/af_afir.c ydelay = s->h - 1 - av_clip(ydelay, 0, s->h - 1); s 350 libavfilter/af_afir.c if (s->w > 400 && s->h > 100) { s 377 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 389 libavfilter/af_afir.c seg->input_size = offset + s->min_part_size; s 407 libavfilter/af_afir.c seg->coeff = ff_get_audio_buffer(ctx->inputs[1 + s->selir], seg->nb_partitions * seg->coeff_size * 2); s 418 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 421 libavfilter/af_afir.c for (int ch = 0; ch < s->nb_channels; ch++) { s 428 libavfilter/af_afir.c for (int ch = 0; ch < s->nb_channels; ch++) { s 448 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 452 libavfilter/af_afir.c if (!s->nb_taps) { s 456 libavfilter/af_afir.c s->nb_taps = ff_inlink_queued_samples(ctx->inputs[1 + s->selir]); s 457 libavfilter/af_afir.c if (s->nb_taps <= 0) s 460 libavfilter/af_afir.c if (s->minp > s->maxp) { s 461 libavfilter/af_afir.c s->maxp = s->minp; s 464 libavfilter/af_afir.c left = s->nb_taps; s 465 libavfilter/af_afir.c part_size = 1 << av_log2(s->minp); s 466 libavfilter/af_afir.c max_part_size = 1 << av_log2(s->maxp); s 468 libavfilter/af_afir.c s->min_part_size = part_size; s 474 libavfilter/af_afir.c s->nb_segments = i + 1; s 475 libavfilter/af_afir.c ret = init_segment(ctx, &s->seg[i], offset, nb_partitions, part_size); s 485 libavfilter/af_afir.c if (!s->ir[s->selir]) { s 486 libavfilter/af_afir.c ret = ff_inlink_consume_samples(ctx->inputs[1 + s->selir], s->nb_taps, s->nb_taps, &s->ir[s->selir]); s 493 libavfilter/af_afir.c if (s->response) s 494 libavfilter/af_afir.c draw_response(ctx, s->video); s 496 libavfilter/af_afir.c s->gain = 1; s 497 libavfilter/af_afir.c cur_nb_taps = s->ir[s->selir]->nb_samples; s 499 libavfilter/af_afir.c switch (s->gtype) { s 504 libavfilter/af_afir.c for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { s 505 libavfilter/af_afir.c float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; s 510 libavfilter/af_afir.c s->gain = ctx->inputs[1 + s->selir]->channels / power; s 513 libavfilter/af_afir.c for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { s 514 libavfilter/af_afir.c float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; s 519 libavfilter/af_afir.c s->gain = ctx->inputs[1 + s->selir]->channels / power; s 522 libavfilter/af_afir.c for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { s 523 libavfilter/af_afir.c float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; s 528 libavfilter/af_afir.c s->gain = sqrtf(ch / power); s 534 libavfilter/af_afir.c s->gain = FFMIN(s->gain * s->ir_gain, 1.f); s 535 libavfilter/af_afir.c av_log(ctx, AV_LOG_DEBUG, "power %f, gain %f\n", power, s->gain); s 536 libavfilter/af_afir.c for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { s 537 libavfilter/af_afir.c float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; s 539 libavfilter/af_afir.c s->fdsp->vector_fmul_scalar(time, time, s->gain, FFALIGN(cur_nb_taps, 4)); s 543 libavfilter/af_afir.c av_log(ctx, AV_LOG_DEBUG, "nb_segments: %d\n", s->nb_segments); s 545 libavfilter/af_afir.c for (ch = 0; ch < ctx->inputs[1 + s->selir]->channels; ch++) { s 546 libavfilter/af_afir.c float *time = (float *)s->ir[s->selir]->extended_data[!s->one2many * ch]; s 549 libavfilter/af_afir.c for (i = FFMAX(1, s->length * s->nb_taps); i < s->nb_taps; i++) s 554 libavfilter/af_afir.c for (int segment = 0; segment < s->nb_segments; segment++) { s 555 libavfilter/af_afir.c AudioFIRSegment *seg = &s->seg[segment]; s 564 libavfilter/af_afir.c const int remaining = s->nb_taps - toffset; s 602 libavfilter/af_afir.c s->have_coeffs = 1; s 610 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 614 libavfilter/af_afir.c max_nb_taps = s->max_ir_len * ctx->outputs[0]->sample_rate; s 625 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 632 libavfilter/af_afir.c if (s->response) s 634 libavfilter/af_afir.c if (!s->eof_coeffs[s->selir]) { s 637 libavfilter/af_afir.c ret = check_ir(ctx->inputs[1 + s->selir], ir); s 641 libavfilter/af_afir.c if (ff_outlink_get_status(ctx->inputs[1 + s->selir]) == AVERROR_EOF) s 642 libavfilter/af_afir.c s->eof_coeffs[s->selir] = 1; s 644 libavfilter/af_afir.c if (!s->eof_coeffs[s->selir]) { s 646 libavfilter/af_afir.c ff_inlink_request_frame(ctx->inputs[1 + s->selir]); s 647 libavfilter/af_afir.c else if (s->response && ff_outlink_frame_wanted(ctx->outputs[1])) s 648 libavfilter/af_afir.c ff_inlink_request_frame(ctx->inputs[1 + s->selir]); s 653 libavfilter/af_afir.c if (!s->have_coeffs && s->eof_coeffs[s->selir]) { s 660 libavfilter/af_afir.c wanted = FFMAX(s->min_part_size, (available / s->min_part_size) * s->min_part_size); s 663 libavfilter/af_afir.c ret = fir_frame(s, in, outlink); s 668 libavfilter/af_afir.c if (s->response && s->have_coeffs) { s 669 libavfilter/af_afir.c int64_t old_pts = s->video->pts; s 670 libavfilter/af_afir.c int64_t new_pts = av_rescale_q(s->pts, ctx->inputs[0]->time_base, ctx->outputs[1]->time_base); s 674 libavfilter/af_afir.c s->video->pts = new_pts; s 675 libavfilter/af_afir.c clone = av_frame_clone(s->video); s 682 libavfilter/af_afir.c if (ff_inlink_queued_samples(ctx->inputs[0]) >= s->min_part_size) { s 690 libavfilter/af_afir.c if (s->response) s 702 libavfilter/af_afir.c if (s->response && s 714 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 727 libavfilter/af_afir.c if (s->response) { s 738 libavfilter/af_afir.c if (s->ir_format) { s 770 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 772 libavfilter/af_afir.c s->one2many = ctx->inputs[1 + s->selir]->channels == 1; s 778 libavfilter/af_afir.c s->nb_channels = outlink->channels; s 779 libavfilter/af_afir.c s->nb_coef_channels = ctx->inputs[1 + s->selir]->channels; s 780 libavfilter/af_afir.c s->pts = AV_NOPTS_VALUE; s 787 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 789 libavfilter/af_afir.c for (int i = 0; i < s->nb_segments; i++) { s 790 libavfilter/af_afir.c uninit_segment(ctx, &s->seg[i]); s 793 libavfilter/af_afir.c av_freep(&s->fdsp); s 795 libavfilter/af_afir.c for (int i = 0; i < s->nb_irs; i++) { s 796 libavfilter/af_afir.c av_frame_free(&s->ir[i]); s 804 libavfilter/af_afir.c av_frame_free(&s->video); s 810 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 813 libavfilter/af_afir.c outlink->w = s->w; s 814 libavfilter/af_afir.c outlink->h = s->h; s 815 libavfilter/af_afir.c outlink->frame_rate = s->frame_rate; s 818 libavfilter/af_afir.c av_frame_free(&s->video); s 819 libavfilter/af_afir.c s->video = ff_get_video_buffer(outlink, outlink->w, outlink->h); s 820 libavfilter/af_afir.c if (!s->video) s 836 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 854 libavfilter/af_afir.c for (int n = 0; n < s->nb_irs; n++) { s 885 libavfilter/af_afir.c if (s->response) { s 901 libavfilter/af_afir.c s->fdsp = avpriv_float_dsp_alloc(0); s 902 libavfilter/af_afir.c if (!s->fdsp) s 905 libavfilter/af_afir.c ff_afir_init(&s->afirdsp); s 917 libavfilter/af_afir.c AudioFIRContext *s = ctx->priv; s 918 libavfilter/af_afir.c int prev_ir = s->selir; s 924 libavfilter/af_afir.c s->selir = FFMIN(s->nb_irs - 1, s->selir); s 926 libavfilter/af_afir.c if (prev_ir != s->selir) { s 927 libavfilter/af_afir.c s->have_coeffs = 0; s 103 libavfilter/af_afir.h void ff_afir_init(AudioFIRDSPContext *s); s 104 libavfilter/af_afir.h void ff_afir_init_x86(AudioFIRDSPContext *s); s 102 libavfilter/af_aformat.c AFormatContext *s = ctx->priv; s 104 libavfilter/af_aformat.c PARSE_FORMATS(s->formats_str, enum AVSampleFormat, s->formats, s 106 libavfilter/af_aformat.c PARSE_FORMATS(s->sample_rates_str, int, s->sample_rates, ff_add_format, ff_formats_unref, s 108 libavfilter/af_aformat.c PARSE_FORMATS(s->channel_layouts_str, uint64_t, s->channel_layouts, s 117 libavfilter/af_aformat.c AFormatContext *s = ctx->priv; s 120 libavfilter/af_aformat.c ret = ff_set_common_formats(ctx, s->formats ? s->formats : s 124 libavfilter/af_aformat.c ret = ff_set_common_samplerates(ctx, s->sample_rates ? s->sample_rates : s 128 libavfilter/af_aformat.c return ff_set_common_channel_layouts(ctx, s->channel_layouts ? s->channel_layouts : s 93 libavfilter/af_agate.c AudioGateContext *s = ctx->priv; s 94 libavfilter/af_agate.c double lin_threshold = s->threshold; s 95 libavfilter/af_agate.c double lin_knee_sqrt = sqrt(s->knee); s 97 libavfilter/af_agate.c if (s->detection) s 100 libavfilter/af_agate.c s->attack_coeff = FFMIN(1., 1. / (s->attack * inlink->sample_rate / 4000.)); s 101 libavfilter/af_agate.c s->release_coeff = FFMIN(1., 1. / (s->release * inlink->sample_rate / 4000.)); s 102 libavfilter/af_agate.c s->lin_knee_stop = lin_threshold * lin_knee_sqrt; s 103 libavfilter/af_agate.c s->lin_knee_start = lin_threshold / lin_knee_sqrt; s 104 libavfilter/af_agate.c s->thres = log(lin_threshold); s 105 libavfilter/af_agate.c s->knee_start = log(s->lin_knee_start); s 106 libavfilter/af_agate.c s->knee_stop = log(s->lin_knee_stop); s 141 libavfilter/af_agate.c static void gate(AudioGateContext *s, s 146 libavfilter/af_agate.c const double makeup = s->makeup; s 147 libavfilter/af_agate.c const double attack_coeff = s->attack_coeff; s 148 libavfilter/af_agate.c const double release_coeff = s->release_coeff; s 155 libavfilter/af_agate.c if (s->link == 1) { s 165 libavfilter/af_agate.c if (s->detection) s 168 libavfilter/af_agate.c s->lin_slope += (abs_sample - s->lin_slope) * (abs_sample > s->lin_slope ? attack_coeff : release_coeff); s 170 libavfilter/af_agate.c if (s->mode) s 171 libavfilter/af_agate.c detected = s->lin_slope > s->lin_knee_start; s 173 libavfilter/af_agate.c detected = s->lin_slope < s->lin_knee_stop; s 175 libavfilter/af_agate.c if (s->lin_slope > 0.0 && detected) s 176 libavfilter/af_agate.c gain = output_gain(s->lin_slope, s->ratio, s->thres, s 177 libavfilter/af_agate.c s->knee, s->knee_start, s->knee_stop, s 178 libavfilter/af_agate.c s->range, s->mode); s 221 libavfilter/af_agate.c AudioGateContext *s = ctx->priv; s 237 libavfilter/af_agate.c gate(s, src, dst, src, in->nb_samples, s 238 libavfilter/af_agate.c s->level_in, s->level_in, inlink, inlink); s 282 libavfilter/af_agate.c AudioGateContext *s = ctx->priv; s 289 libavfilter/af_agate.c av_audio_fifo_write(s->fifo[0], (void **)in[0]->extended_data, s 296 libavfilter/af_agate.c av_audio_fifo_write(s->fifo[1], (void **)in[1]->extended_data, s 303 libavfilter/af_agate.c nb_samples = FFMIN(av_audio_fifo_size(s->fifo[0]), av_audio_fifo_size(s->fifo[1])); s 316 libavfilter/af_agate.c av_audio_fifo_read(s->fifo[i], (void **)in[i]->data, nb_samples); s 320 libavfilter/af_agate.c out->pts = s->pts; s 321 libavfilter/af_agate.c s->pts += av_rescale_q(nb_samples, (AVRational){1, ctx->outputs[0]->sample_rate}, ctx->outputs[0]->time_base); s 323 libavfilter/af_agate.c gate(s, (double *)in[0]->data[0], dst, s 325 libavfilter/af_agate.c s->level_in, s->level_sc, s 338 libavfilter/af_agate.c if (!av_audio_fifo_size(s->fifo[0])) s 340 libavfilter/af_agate.c if (!av_audio_fifo_size(s->fifo[1])) s 384 libavfilter/af_agate.c AudioGateContext *s = ctx->priv; s 399 libavfilter/af_agate.c s->fifo[0] = av_audio_fifo_alloc(ctx->inputs[0]->format, ctx->inputs[0]->channels, 1024); s 400 libavfilter/af_agate.c s->fifo[1] = av_audio_fifo_alloc(ctx->inputs[1]->format, ctx->inputs[1]->channels, 1024); s 401 libavfilter/af_agate.c if (!s->fifo[0] || !s->fifo[1]) s 412 libavfilter/af_agate.c AudioGateContext *s = ctx->priv; s 414 libavfilter/af_agate.c av_audio_fifo_free(s->fifo[0]); s 415 libavfilter/af_agate.c av_audio_fifo_free(s->fifo[1]); s 81 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 94 libavfilter/af_aiir.c if (s->response) { s 109 libavfilter/af_aiir.c sample_fmts[0] = s->sample_format; s 126 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; \ s 127 libavfilter/af_aiir.c const double ig = s->dry_gain; \ s 128 libavfilter/af_aiir.c const double og = s->wet_gain; \ s 129 libavfilter/af_aiir.c const double mix = s->mix; \ s 133 libavfilter/af_aiir.c double *oc = (double *)s->iir[ch].cache[0]; \ s 134 libavfilter/af_aiir.c double *ic = (double *)s->iir[ch].cache[1]; \ s 135 libavfilter/af_aiir.c const int nb_a = s->iir[ch].nb_ab[0]; \ s 136 libavfilter/af_aiir.c const int nb_b = s->iir[ch].nb_ab[1]; \ s 137 libavfilter/af_aiir.c const double *a = s->iir[ch].ab[0]; \ s 138 libavfilter/af_aiir.c const double *b = s->iir[ch].ab[1]; \ s 139 libavfilter/af_aiir.c const double g = s->iir[ch].g; \ s 140 libavfilter/af_aiir.c int *clippings = &s->iir[ch].clippings; \ s 182 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; \ s 183 libavfilter/af_aiir.c const double ig = s->dry_gain; \ s 184 libavfilter/af_aiir.c const double og = s->wet_gain; \ s 185 libavfilter/af_aiir.c const double mix = s->mix; \ s 190 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; \ s 258 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 275 libavfilter/af_aiir.c if (sscanf(arg, "%lf", &s->iir[i].g) != 1) { s 343 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 351 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[i]; s 365 libavfilter/af_aiir.c iir->ab[ab] = av_calloc(iir->nb_ab[ab] * (!!s->format + 1), sizeof(double)); s 371 libavfilter/af_aiir.c if (s->format) { s 372 libavfilter/af_aiir.c ret = read_zp_coefficients(ctx, arg, iir->nb_ab[ab], iir->ab[ab], format[s->format]); s 423 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 424 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; s 427 libavfilter/af_aiir.c if (!s->normalize) s 451 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 455 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; s 499 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 503 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; s 622 libavfilter/af_aiir.c if (s->normalize && s 661 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 665 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; s 688 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 692 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; s 721 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 725 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; s 748 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 752 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; s 868 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 875 libavfilter/af_aiir.c memset(out->data[0], 0, s->h * out->linesize[0]); s 877 libavfilter/af_aiir.c phase = av_malloc_array(s->w, sizeof(*phase)); s 878 libavfilter/af_aiir.c temp = av_malloc_array(s->w, sizeof(*temp)); s 879 libavfilter/af_aiir.c mag = av_malloc_array(s->w, sizeof(*mag)); s 880 libavfilter/af_aiir.c delay = av_malloc_array(s->w, sizeof(*delay)); s 884 libavfilter/af_aiir.c ch = av_clip(s->ir_channel, 0, s->channels - 1); s 885 libavfilter/af_aiir.c for (i = 0; i < s->w; i++) { s 886 libavfilter/af_aiir.c const double *b = s->iir[ch].ab[0]; s 887 libavfilter/af_aiir.c const double *a = s->iir[ch].ab[1]; s 888 libavfilter/af_aiir.c const int nb_b = s->iir[ch].nb_ab[0]; s 889 libavfilter/af_aiir.c const int nb_a = s->iir[ch].nb_ab[1]; s 890 libavfilter/af_aiir.c double w = i * M_PI / (s->w - 1); s 893 libavfilter/af_aiir.c get_response(ch, s->format, w, b, a, nb_b, nb_a, &m, &p); s 895 libavfilter/af_aiir.c mag[i] = s->iir[ch].g * m; s 902 libavfilter/af_aiir.c for (i = 0; i < s->w - 1; i++) { s 909 libavfilter/af_aiir.c for (i = 1; i < s->w; i++) { s 916 libavfilter/af_aiir.c for (i = 0; i < s->w - 1; i++) { s 917 libavfilter/af_aiir.c double div = s->w / (double)sample_rate; s 925 libavfilter/af_aiir.c for (i = 0; i < s->w; i++) { s 926 libavfilter/af_aiir.c int ymag = mag[i] / max * (s->h - 1); s 927 libavfilter/af_aiir.c int ydelay = (delay[i] - min_delay) / (max_delay - min_delay) * (s->h - 1); s 928 libavfilter/af_aiir.c int yphase = (phase[i] - min_phase) / (max_phase - min_phase) * (s->h - 1); s 930 libavfilter/af_aiir.c ymag = s->h - 1 - av_clip(ymag, 0, s->h - 1); s 931 libavfilter/af_aiir.c yphase = s->h - 1 - av_clip(yphase, 0, s->h - 1); s 932 libavfilter/af_aiir.c ydelay = s->h - 1 - av_clip(ydelay, 0, s->h - 1); s 950 libavfilter/af_aiir.c if (s->w > 400 && s->h > 100) { s 986 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 990 libavfilter/af_aiir.c s->channels = inlink->channels; s 991 libavfilter/af_aiir.c s->iir = av_calloc(s->channels, sizeof(*s->iir)); s 992 libavfilter/af_aiir.c if (!s->iir) s 995 libavfilter/af_aiir.c ret = read_gains(ctx, s->g_str, inlink->channels); s 999 libavfilter/af_aiir.c ret = read_channels(ctx, inlink->channels, s->a_str, 0); s 1003 libavfilter/af_aiir.c ret = read_channels(ctx, inlink->channels, s->b_str, 1); s 1007 libavfilter/af_aiir.c if (s->format == 2) { s 1009 libavfilter/af_aiir.c } else if (s->format == 3) { s 1011 libavfilter/af_aiir.c } else if (s->format == 4) { s 1014 libavfilter/af_aiir.c if (s->format > 0) { s 1018 libavfilter/af_aiir.c av_frame_free(&s->video); s 1019 libavfilter/af_aiir.c if (s->response) { s 1020 libavfilter/af_aiir.c s->video = ff_get_video_buffer(ctx->outputs[1], s->w, s->h); s 1021 libavfilter/af_aiir.c if (!s->video) s 1024 libavfilter/af_aiir.c draw_response(ctx, s->video, inlink->sample_rate); s 1027 libavfilter/af_aiir.c if (s->format == 0) s 1030 libavfilter/af_aiir.c if (s->format > 0 && s->process == 0) { s 1036 libavfilter/af_aiir.c } else if (s->format == 0 && s->process == 1) { s 1039 libavfilter/af_aiir.c } else if (s->format > 0 && s->process == 1) { s 1048 libavfilter/af_aiir.c for (ch = 0; s->format == 0 && ch < inlink->channels; ch++) { s 1049 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; s 1064 libavfilter/af_aiir.c case AV_SAMPLE_FMT_DBLP: s->iir_channel = s->process == 1 ? iir_ch_serial_dblp : iir_ch_dblp; break; s 1065 libavfilter/af_aiir.c case AV_SAMPLE_FMT_FLTP: s->iir_channel = s->process == 1 ? iir_ch_serial_fltp : iir_ch_fltp; break; s 1066 libavfilter/af_aiir.c case AV_SAMPLE_FMT_S32P: s->iir_channel = s->process == 1 ? iir_ch_serial_s32p : iir_ch_s32p; break; s 1067 libavfilter/af_aiir.c case AV_SAMPLE_FMT_S16P: s->iir_channel = s->process == 1 ? iir_ch_serial_s16p : iir_ch_s16p; break; s 1076 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 1095 libavfilter/af_aiir.c ctx->internal->execute(ctx, s->iir_channel, &td, NULL, outlink->channels); s 1098 libavfilter/af_aiir.c if (s->iir[ch].clippings > 0) s 1100 libavfilter/af_aiir.c ch, s->iir[ch].clippings); s 1101 libavfilter/af_aiir.c s->iir[ch].clippings = 0; s 1107 libavfilter/af_aiir.c if (s->response) { s 1109 libavfilter/af_aiir.c int64_t old_pts = s->video->pts; s 1115 libavfilter/af_aiir.c s->video->pts = new_pts; s 1116 libavfilter/af_aiir.c clone = av_frame_clone(s->video); s 1131 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 1134 libavfilter/af_aiir.c outlink->w = s->w; s 1135 libavfilter/af_aiir.c outlink->h = s->h; s 1136 libavfilter/af_aiir.c outlink->frame_rate = s->rate; s 1144 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 1148 libavfilter/af_aiir.c if (!s->a_str || !s->b_str || !s->g_str) { s 1153 libavfilter/af_aiir.c switch (s->precision) { s 1154 libavfilter/af_aiir.c case 0: s->sample_format = AV_SAMPLE_FMT_DBLP; break; s 1155 libavfilter/af_aiir.c case 1: s->sample_format = AV_SAMPLE_FMT_FLTP; break; s 1156 libavfilter/af_aiir.c case 2: s->sample_format = AV_SAMPLE_FMT_S32P; break; s 1157 libavfilter/af_aiir.c case 3: s->sample_format = AV_SAMPLE_FMT_S16P; break; s 1174 libavfilter/af_aiir.c if (s->response) { s 1193 libavfilter/af_aiir.c AudioIIRContext *s = ctx->priv; s 1196 libavfilter/af_aiir.c if (s->iir) { s 1197 libavfilter/af_aiir.c for (ch = 0; ch < s->channels; ch++) { s 1198 libavfilter/af_aiir.c IIRChannel *iir = &s->iir[ch]; s 1206 libavfilter/af_aiir.c av_freep(&s->iir); s 1209 libavfilter/af_aiir.c if (s->response) s 1211 libavfilter/af_aiir.c av_frame_free(&s->video); s 85 libavfilter/af_alimiter.c AudioLimiterContext *s = ctx->priv; s 87 libavfilter/af_alimiter.c s->attack /= 1000.; s 88 libavfilter/af_alimiter.c s->release /= 1000.; s 89 libavfilter/af_alimiter.c s->att = 1.; s 90 libavfilter/af_alimiter.c s->asc_pos = -1; s 91 libavfilter/af_alimiter.c s->asc_coeff = pow(0.5, s->asc_coeff - 0.5) * 2 * -1; s 96 libavfilter/af_alimiter.c static double get_rdelta(AudioLimiterContext *s, double release, int sample_rate, s 101 libavfilter/af_alimiter.c if (asc && s->auto_release && s->asc_c > 0) { s 102 libavfilter/af_alimiter.c double a_att = limit / (s->asc_coeff * s->asc) * (double)s->asc_c; s 118 libavfilter/af_alimiter.c AudioLimiterContext *s = ctx->priv; s 122 libavfilter/af_alimiter.c const int buffer_size = s->buffer_size; s 123 libavfilter/af_alimiter.c double *dst, *buffer = s->buffer; s 124 libavfilter/af_alimiter.c const double release = s->release; s 125 libavfilter/af_alimiter.c const double limit = s->limit; s 126 libavfilter/af_alimiter.c double *nextdelta = s->nextdelta; s 127 libavfilter/af_alimiter.c double level = s->auto_level ? 1 / limit : 1; s 128 libavfilter/af_alimiter.c const double level_out = s->level_out; s 129 libavfilter/af_alimiter.c const double level_in = s->level_in; s 130 libavfilter/af_alimiter.c int *nextpos = s->nextpos; s 153 libavfilter/af_alimiter.c buffer[s->pos + c] = sample; s 157 libavfilter/af_alimiter.c if (s->auto_release && peak > limit) { s 158 libavfilter/af_alimiter.c s->asc += peak; s 159 libavfilter/af_alimiter.c s->asc_c++; s 164 libavfilter/af_alimiter.c double rdelta = get_rdelta(s, release, inlink->sample_rate, s 166 libavfilter/af_alimiter.c double delta = (limit / peak - s->att) / buffer_size * channels; s 169 libavfilter/af_alimiter.c if (delta < s->delta) { s 170 libavfilter/af_alimiter.c s->delta = delta; s 171 libavfilter/af_alimiter.c nextpos[0] = s->pos; s 174 libavfilter/af_alimiter.c s->nextlen = 1; s 175 libavfilter/af_alimiter.c s->nextiter= 0; s 177 libavfilter/af_alimiter.c for (i = s->nextiter; i < s->nextiter + s->nextlen; i++) { s 183 libavfilter/af_alimiter.c pdelta = (limit / peak - limit / ppeak) / (((buffer_size - nextpos[j] + s->pos) % buffer_size) / channels); s 191 libavfilter/af_alimiter.c s->nextlen = i - s->nextiter + 1; s 192 libavfilter/af_alimiter.c nextpos[(s->nextiter + s->nextlen) % buffer_size] = s->pos; s 193 libavfilter/af_alimiter.c nextdelta[(s->nextiter + s->nextlen) % buffer_size] = rdelta; s 194 libavfilter/af_alimiter.c nextpos[(s->nextiter + s->nextlen + 1) % buffer_size] = -1; s 195 libavfilter/af_alimiter.c s->nextlen++; s 200 libavfilter/af_alimiter.c buf = &s->buffer[(s->pos + channels) % buffer_size]; s 208 libavfilter/af_alimiter.c if (s->pos == s->asc_pos && !s->asc_changed) s 209 libavfilter/af_alimiter.c s->asc_pos = -1; s 211 libavfilter/af_alimiter.c if (s->auto_release && s->asc_pos == -1 && peak > limit) { s 212 libavfilter/af_alimiter.c s->asc -= peak; s 213 libavfilter/af_alimiter.c s->asc_c--; s 216 libavfilter/af_alimiter.c s->att += s->delta; s 219 libavfilter/af_alimiter.c dst[c] = buf[c] * s->att; s 221 libavfilter/af_alimiter.c if ((s->pos + channels) % buffer_size == nextpos[s->nextiter]) { s 222 libavfilter/af_alimiter.c if (s->auto_release) { s 223 libavfilter/af_alimiter.c s->delta = get_rdelta(s, release, inlink->sample_rate, s 224 libavfilter/af_alimiter.c peak, limit, s->att, 1); s 225 libavfilter/af_alimiter.c if (s->nextlen > 1) { s 226 libavfilter/af_alimiter.c int pnextpos = nextpos[(s->nextiter + 1) % buffer_size]; s 230 libavfilter/af_alimiter.c double pdelta = (limit / ppeak - s->att) / s 232 libavfilter/af_alimiter.c ((s->pos + channels) % buffer_size)) % s 234 libavfilter/af_alimiter.c if (pdelta < s->delta) s 235 libavfilter/af_alimiter.c s->delta = pdelta; s 238 libavfilter/af_alimiter.c s->delta = nextdelta[s->nextiter]; s 239 libavfilter/af_alimiter.c s->att = limit / peak; s 242 libavfilter/af_alimiter.c s->nextlen -= 1; s 243 libavfilter/af_alimiter.c nextpos[s->nextiter] = -1; s 244 libavfilter/af_alimiter.c s->nextiter = (s->nextiter + 1) % buffer_size; s 247 libavfilter/af_alimiter.c if (s->att > 1.) { s 248 libavfilter/af_alimiter.c s->att = 1.; s 249 libavfilter/af_alimiter.c s->delta = 0.; s 250 libavfilter/af_alimiter.c s->nextiter = 0; s 251 libavfilter/af_alimiter.c s->nextlen = 0; s 255 libavfilter/af_alimiter.c if (s->att <= 0.) { s 256 libavfilter/af_alimiter.c s->att = 0.0000000000001; s 257 libavfilter/af_alimiter.c s->delta = (1.0 - s->att) / (inlink->sample_rate * release); s 260 libavfilter/af_alimiter.c if (s->att != 1. && (1. - s->att) < 0.0000000000001) s 261 libavfilter/af_alimiter.c s->att = 1.; s 263 libavfilter/af_alimiter.c if (s->delta != 0. && fabs(s->delta) < 0.00000000000001) s 264 libavfilter/af_alimiter.c s->delta = 0.; s 269 libavfilter/af_alimiter.c s->pos = (s->pos + channels) % buffer_size; s 313 libavfilter/af_alimiter.c AudioLimiterContext *s = ctx->priv; s 320 libavfilter/af_alimiter.c s->buffer = av_calloc(obuffer_size, sizeof(*s->buffer)); s 321 libavfilter/af_alimiter.c s->nextdelta = av_calloc(obuffer_size, sizeof(*s->nextdelta)); s 322 libavfilter/af_alimiter.c s->nextpos = av_malloc_array(obuffer_size, sizeof(*s->nextpos)); s 323 libavfilter/af_alimiter.c if (!s->buffer || !s->nextdelta || !s->nextpos) s 326 libavfilter/af_alimiter.c memset(s->nextpos, -1, obuffer_size * sizeof(*s->nextpos)); s 327 libavfilter/af_alimiter.c s->buffer_size = inlink->sample_rate * s->attack * inlink->channels; s 328 libavfilter/af_alimiter.c s->buffer_size -= s->buffer_size % inlink->channels; s 330 libavfilter/af_alimiter.c if (s->buffer_size <= 0) { s 340 libavfilter/af_alimiter.c AudioLimiterContext *s = ctx->priv; s 342 libavfilter/af_alimiter.c av_freep(&s->buffer); s 343 libavfilter/af_alimiter.c av_freep(&s->nextdelta); s 344 libavfilter/af_alimiter.c av_freep(&s->nextpos); s 60 libavfilter/af_amerge.c AMergeContext *s = ctx->priv; s 63 libavfilter/af_amerge.c for (i = 0; i < s->nb_inputs; i++) { s 67 libavfilter/af_amerge.c av_freep(&s->in); s 72 libavfilter/af_amerge.c AMergeContext *s = ctx->priv; s 78 libavfilter/af_amerge.c for (i = 0; i < s->nb_inputs; i++) { s 91 libavfilter/af_amerge.c s->in[i].nb_ch = FF_LAYOUT2COUNT(inlayout[i]); s 92 libavfilter/af_amerge.c if (s->in[i].nb_ch) { s 95 libavfilter/af_amerge.c s->in[i].nb_ch = av_get_channel_layout_nb_channels(inlayout[i]); s 100 libavfilter/af_amerge.c nb_ch += s->in[i].nb_ch; s 111 libavfilter/af_amerge.c s->route[i] = i; s 119 libavfilter/af_amerge.c route[0] = s->route; s 120 libavfilter/af_amerge.c for (i = 1; i < s->nb_inputs; i++) s 121 libavfilter/af_amerge.c route[i] = route[i - 1] + s->in[i - 1].nb_ch; s 123 libavfilter/af_amerge.c for (i = 0; i < s->nb_inputs; i++) s 130 libavfilter/af_amerge.c for (i = 0; i < s->nb_inputs; i++) { s 149 libavfilter/af_amerge.c AMergeContext *s = ctx->priv; s 153 libavfilter/af_amerge.c for (i = 1; i < s->nb_inputs; i++) { s 162 libavfilter/af_amerge.c s->bps = av_get_bytes_per_sample(ctx->outputs[0]->format); s 167 libavfilter/af_amerge.c for (i = 0; i < s->nb_inputs; i++) { s 224 libavfilter/af_amerge.c AMergeContext *s = ctx->priv; s 241 libavfilter/af_amerge.c free_frames(s->nb_inputs, inbuf); s 255 libavfilter/af_amerge.c switch (s->bps) { s 257 libavfilter/af_amerge.c copy_samples(s->nb_inputs, s->in, s->route, ins, &outs, nb_samples, 1); s 260 libavfilter/af_amerge.c copy_samples(s->nb_inputs, s->in, s->route, ins, &outs, nb_samples, 2); s 263 libavfilter/af_amerge.c copy_samples(s->nb_inputs, s->in, s->route, ins, &outs, nb_samples, 4); s 266 libavfilter/af_amerge.c copy_samples(s->nb_inputs, s->in, s->route, ins, &outs, nb_samples, s->bps); s 273 libavfilter/af_amerge.c free_frames(s->nb_inputs, inbuf); s 314 libavfilter/af_amerge.c AMergeContext *s = ctx->priv; s 317 libavfilter/af_amerge.c s->in = av_calloc(s->nb_inputs, sizeof(*s->in)); s 318 libavfilter/af_amerge.c if (!s->in) s 320 libavfilter/af_amerge.c for (i = 0; i < s->nb_inputs; i++) { s 210 libavfilter/af_amix.c static void calculate_scales(MixContext *s, int nb_samples) s 215 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) s 216 libavfilter/af_amix.c if (s->input_state[i] & INPUT_ON) s 217 libavfilter/af_amix.c weight_sum += FFABS(s->weights[i]); s 219 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) { s 220 libavfilter/af_amix.c if (s->input_state[i] & INPUT_ON) { s 221 libavfilter/af_amix.c if (s->scale_norm[i] > weight_sum / FFABS(s->weights[i])) { s 222 libavfilter/af_amix.c s->scale_norm[i] -= ((s->weight_sum / FFABS(s->weights[i])) / s->nb_inputs) * s 223 libavfilter/af_amix.c nb_samples / (s->dropout_transition * s->sample_rate); s 224 libavfilter/af_amix.c s->scale_norm[i] = FFMAX(s->scale_norm[i], weight_sum / FFABS(s->weights[i])); s 229 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) { s 230 libavfilter/af_amix.c if (s->input_state[i] & INPUT_ON) s 231 libavfilter/af_amix.c s->input_scale[i] = 1.0f / s->scale_norm[i] * FFSIGN(s->weights[i]); s 233 libavfilter/af_amix.c s->input_scale[i] = 0.0f; s 240 libavfilter/af_amix.c MixContext *s = ctx->priv; s 244 libavfilter/af_amix.c s->planar = av_sample_fmt_is_planar(outlink->format); s 245 libavfilter/af_amix.c s->sample_rate = outlink->sample_rate; s 247 libavfilter/af_amix.c s->next_pts = AV_NOPTS_VALUE; s 249 libavfilter/af_amix.c s->frame_list = av_mallocz(sizeof(*s->frame_list)); s 250 libavfilter/af_amix.c if (!s->frame_list) s 253 libavfilter/af_amix.c s->fifos = av_mallocz_array(s->nb_inputs, sizeof(*s->fifos)); s 254 libavfilter/af_amix.c if (!s->fifos) s 257 libavfilter/af_amix.c s->nb_channels = outlink->channels; s 258 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) { s 259 libavfilter/af_amix.c s->fifos[i] = av_audio_fifo_alloc(outlink->format, s->nb_channels, 1024); s 260 libavfilter/af_amix.c if (!s->fifos[i]) s 264 libavfilter/af_amix.c s->input_state = av_malloc(s->nb_inputs); s 265 libavfilter/af_amix.c if (!s->input_state) s 267 libavfilter/af_amix.c memset(s->input_state, INPUT_ON, s->nb_inputs); s 268 libavfilter/af_amix.c s->active_inputs = s->nb_inputs; s 270 libavfilter/af_amix.c s->input_scale = av_mallocz_array(s->nb_inputs, sizeof(*s->input_scale)); s 271 libavfilter/af_amix.c s->scale_norm = av_mallocz_array(s->nb_inputs, sizeof(*s->scale_norm)); s 272 libavfilter/af_amix.c if (!s->input_scale || !s->scale_norm) s 274 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) s 275 libavfilter/af_amix.c s->scale_norm[i] = s->weight_sum / FFABS(s->weights[i]); s 276 libavfilter/af_amix.c calculate_scales(s, 0); s 281 libavfilter/af_amix.c "inputs:%d fmt:%s srate:%d cl:%s\n", s->nb_inputs, s 293 libavfilter/af_amix.c MixContext *s = ctx->priv; s 297 libavfilter/af_amix.c if (s->input_state[0] & INPUT_ON) { s 299 libavfilter/af_amix.c nb_samples = frame_list_next_frame_size(s->frame_list); s 300 libavfilter/af_amix.c for (i = 1; i < s->nb_inputs; i++) { s 301 libavfilter/af_amix.c if (s->input_state[i] & INPUT_ON) { s 302 libavfilter/af_amix.c ns = av_audio_fifo_size(s->fifos[i]); s 304 libavfilter/af_amix.c if (!(s->input_state[i] & INPUT_EOF)) s 315 libavfilter/af_amix.c for (i = 1; i < s->nb_inputs; i++) { s 316 libavfilter/af_amix.c if (s->input_state[i] & INPUT_ON) { s 317 libavfilter/af_amix.c ns = av_audio_fifo_size(s->fifos[i]); s 322 libavfilter/af_amix.c ff_outlink_set_status(outlink, AVERROR_EOF, s->next_pts); s 327 libavfilter/af_amix.c s->next_pts = frame_list_next_pts(s->frame_list); s 328 libavfilter/af_amix.c frame_list_remove_samples(s->frame_list, nb_samples); s 330 libavfilter/af_amix.c calculate_scales(s, nb_samples); s 345 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) { s 346 libavfilter/af_amix.c if (s->input_state[i] & INPUT_ON) { s 349 libavfilter/af_amix.c av_audio_fifo_read(s->fifos[i], (void **)in_buf->extended_data, s 352 libavfilter/af_amix.c planes = s->planar ? s->nb_channels : 1; s 353 libavfilter/af_amix.c plane_size = nb_samples * (s->planar ? 1 : s->nb_channels); s 359 libavfilter/af_amix.c s->fdsp->vector_fmac_scalar((float *)out_buf->extended_data[p], s 361 libavfilter/af_amix.c s->input_scale[i], plane_size); s 365 libavfilter/af_amix.c s->fdsp->vector_dmac_scalar((double *)out_buf->extended_data[p], s 367 libavfilter/af_amix.c s->input_scale[i], plane_size); s 374 libavfilter/af_amix.c out_buf->pts = s->next_pts; s 375 libavfilter/af_amix.c if (s->next_pts != AV_NOPTS_VALUE) s 376 libavfilter/af_amix.c s->next_pts += nb_samples; s 386 libavfilter/af_amix.c MixContext *s = ctx->priv; s 389 libavfilter/af_amix.c av_assert0(s->nb_inputs > 1); s 391 libavfilter/af_amix.c for (i = 1; i < s->nb_inputs; i++) { s 392 libavfilter/af_amix.c if (!(s->input_state[i] & INPUT_ON) || s 393 libavfilter/af_amix.c (s->input_state[i] & INPUT_EOF)) s 395 libavfilter/af_amix.c if (av_audio_fifo_size(s->fifos[i]) >= min_samples) s 408 libavfilter/af_amix.c static int calc_active_inputs(MixContext *s) s 412 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) s 413 libavfilter/af_amix.c active_inputs += !!(s->input_state[i] & INPUT_ON); s 414 libavfilter/af_amix.c s->active_inputs = active_inputs; s 417 libavfilter/af_amix.c (s->duration_mode == DURATION_FIRST && !(s->input_state[0] & INPUT_ON)) || s 418 libavfilter/af_amix.c (s->duration_mode == DURATION_SHORTEST && active_inputs != s->nb_inputs)) s 426 libavfilter/af_amix.c MixContext *s = ctx->priv; s 432 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) { s 439 libavfilter/af_amix.c ret = frame_list_add_frame(s->frame_list, buf->nb_samples, pts); s 446 libavfilter/af_amix.c ret = av_audio_fifo_write(s->fifos[i], (void **)buf->extended_data, s 461 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) { s 468 libavfilter/af_amix.c s->input_state[i] = 0; s 469 libavfilter/af_amix.c if (s->nb_inputs == 1) { s 474 libavfilter/af_amix.c s->input_state[i] |= INPUT_EOF; s 475 libavfilter/af_amix.c if (av_audio_fifo_size(s->fifos[i]) == 0) { s 476 libavfilter/af_amix.c s->input_state[i] = 0; s 483 libavfilter/af_amix.c if (calc_active_inputs(s)) { s 484 libavfilter/af_amix.c ff_outlink_set_status(outlink, AVERROR_EOF, s->next_pts); s 491 libavfilter/af_amix.c if (!(s->input_state[0] & INPUT_ON)) s 494 libavfilter/af_amix.c if (s->frame_list->nb_frames == 0) { s 498 libavfilter/af_amix.c av_assert0(s->frame_list->nb_frames > 0); s 500 libavfilter/af_amix.c wanted_samples = frame_list_next_frame_size(s->frame_list); s 510 libavfilter/af_amix.c MixContext *s = ctx->priv; s 515 libavfilter/af_amix.c s->weight_sum = 0.f; s 516 libavfilter/af_amix.c p = s->weights_str; s 517 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) { s 519 libavfilter/af_amix.c s->weights[i] = last_weight; s 520 libavfilter/af_amix.c s->weight_sum += FFABS(last_weight); s 529 libavfilter/af_amix.c for (; i < s->nb_inputs; i++) { s 530 libavfilter/af_amix.c s->weights[i] = last_weight; s 531 libavfilter/af_amix.c s->weight_sum += FFABS(last_weight); s 537 libavfilter/af_amix.c MixContext *s = ctx->priv; s 540 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) { s 554 libavfilter/af_amix.c s->fdsp = avpriv_float_dsp_alloc(0); s 555 libavfilter/af_amix.c if (!s->fdsp) s 558 libavfilter/af_amix.c s->weights = av_mallocz_array(s->nb_inputs, sizeof(*s->weights)); s 559 libavfilter/af_amix.c if (!s->weights) s 570 libavfilter/af_amix.c MixContext *s = ctx->priv; s 572 libavfilter/af_amix.c if (s->fifos) { s 573 libavfilter/af_amix.c for (i = 0; i < s->nb_inputs; i++) s 574 libavfilter/af_amix.c av_audio_fifo_free(s->fifos[i]); s 575 libavfilter/af_amix.c av_freep(&s->fifos); s 577 libavfilter/af_amix.c frame_list_clear(s->frame_list); s 578 libavfilter/af_amix.c av_freep(&s->frame_list); s 579 libavfilter/af_amix.c av_freep(&s->input_state); s 580 libavfilter/af_amix.c av_freep(&s->input_scale); s 581 libavfilter/af_amix.c av_freep(&s->scale_norm); s 582 libavfilter/af_amix.c av_freep(&s->weights); s 583 libavfilter/af_amix.c av_freep(&s->fdsp); s 620 libavfilter/af_amix.c MixContext *s = ctx->priv; s 628 libavfilter/af_amix.c for (int i = 0; i < s->nb_inputs; i++) s 629 libavfilter/af_amix.c s->scale_norm[i] = s->weight_sum / FFABS(s->weights[i]); s 630 libavfilter/af_amix.c calculate_scales(s, 0); s 77 libavfilter/af_amultiply.c AudioMultiplyContext *s = ctx->priv; s 87 libavfilter/af_amultiply.c if (s->frames[i]) s 91 libavfilter/af_amultiply.c ret = ff_inlink_consume_samples(ctx->inputs[i], nb_samples, nb_samples, &s->frames[i]); s 97 libavfilter/af_amultiply.c if (s->frames[0] && s->frames[1]) { s 102 libavfilter/af_amultiply.c plane_samples = FFALIGN(s->frames[0]->nb_samples, s->samples_align); s 104 libavfilter/af_amultiply.c plane_samples = FFALIGN(s->frames[0]->nb_samples * s->channels, s->samples_align); s 106 libavfilter/af_amultiply.c out = ff_get_audio_buffer(ctx->outputs[0], s->frames[0]->nb_samples); s 110 libavfilter/af_amultiply.c out->pts = s->frames[0]->pts; s 113 libavfilter/af_amultiply.c for (i = 0; i < s->planes; i++) { s 114 libavfilter/af_amultiply.c s->fdsp->vector_fmul((float *)out->extended_data[i], s 115 libavfilter/af_amultiply.c (const float *)s->frames[0]->extended_data[i], s 116 libavfilter/af_amultiply.c (const float *)s->frames[1]->extended_data[i], s 120 libavfilter/af_amultiply.c for (i = 0; i < s->planes; i++) { s 121 libavfilter/af_amultiply.c s->fdsp->vector_dmul((double *)out->extended_data[i], s 122 libavfilter/af_amultiply.c (const double *)s->frames[0]->extended_data[i], s 123 libavfilter/af_amultiply.c (const double *)s->frames[1]->extended_data[i], s 129 libavfilter/af_amultiply.c av_frame_free(&s->frames[0]); s 130 libavfilter/af_amultiply.c av_frame_free(&s->frames[1]); s 160 libavfilter/af_amultiply.c AudioMultiplyContext *s = ctx->priv; s 163 libavfilter/af_amultiply.c s->channels = inlink->channels; s 164 libavfilter/af_amultiply.c s->planes = av_sample_fmt_is_planar(inlink->format) ? inlink->channels : 1; s 165 libavfilter/af_amultiply.c s->samples_align = 16; s 172 libavfilter/af_amultiply.c AudioMultiplyContext *s = ctx->priv; s 174 libavfilter/af_amultiply.c s->fdsp = avpriv_float_dsp_alloc(0); s 175 libavfilter/af_amultiply.c if (!s->fdsp) s 183 libavfilter/af_amultiply.c AudioMultiplyContext *s = ctx->priv; s 184 libavfilter/af_amultiply.c av_freep(&s->fdsp); s 96 libavfilter/af_anequalizer.c AudioNEqualizerContext *s = ctx->priv; s 100 libavfilter/af_anequalizer.c colors = av_strdup(s->colors); s 104 libavfilter/af_anequalizer.c memset(out->data[0], 0, s->h * out->linesize[0]); s 115 libavfilter/af_anequalizer.c for (f = 0; f < s->w; f++) { s 122 libavfilter/af_anequalizer.c w = M_PI * (s->fscale ? pow(s->w - 1, f / s->w) : f) / (s->w - 1); s 128 libavfilter/af_anequalizer.c for (n = 0; n < s->nb_filters; n++) { s 129 libavfilter/af_anequalizer.c if (s->filters[n].channel != ch || s 130 libavfilter/af_anequalizer.c s->filters[n].ignore) s 134 libavfilter/af_anequalizer.c FoSection *S = &s->filters[n].section[i]; s 148 libavfilter/af_anequalizer.c v = av_clip((1. + -20 * log10(Hmag) / s->mag) * s->h / 2, 0, s->h - 1); s 170 libavfilter/af_anequalizer.c AudioNEqualizerContext *s = ctx->priv; s 174 libavfilter/af_anequalizer.c outlink->w = s->w; s 175 libavfilter/af_anequalizer.c outlink->h = s->h; s 177 libavfilter/af_anequalizer.c av_frame_free(&s->video); s 178 libavfilter/af_anequalizer.c s->video = out = ff_get_video_buffer(outlink, outlink->w, outlink->h); s 190 libavfilter/af_anequalizer.c AudioNEqualizerContext *s = ctx->priv; s 202 libavfilter/af_anequalizer.c if (s->draw_curves) { s 220 libavfilter/af_anequalizer.c if (s->draw_curves) { s 235 libavfilter/af_anequalizer.c AudioNEqualizerContext *s = ctx->priv; s 245 libavfilter/af_anequalizer.c if (s->draw_curves) { s 272 libavfilter/af_anequalizer.c AudioNEqualizerContext *s = ctx->priv; s 276 libavfilter/af_anequalizer.c av_frame_free(&s->video); s 277 libavfilter/af_anequalizer.c av_freep(&s->filters); s 278 libavfilter/af_anequalizer.c s->nb_filters = 0; s 279 libavfilter/af_anequalizer.c s->nb_allocated = 0; s 566 libavfilter/af_anequalizer.c static int add_filter(AudioNEqualizerContext *s, AVFilterLink *inlink) s 568 libavfilter/af_anequalizer.c equalizer(&s->filters[s->nb_filters], inlink->sample_rate); s 569 libavfilter/af_anequalizer.c if (s->nb_filters >= s->nb_allocated - 1) { s 572 libavfilter/af_anequalizer.c filters = av_calloc(s->nb_allocated, 2 * sizeof(*s->filters)); s 575 libavfilter/af_anequalizer.c memcpy(filters, s->filters, sizeof(*s->filters) * s->nb_allocated); s 576 libavfilter/af_anequalizer.c av_free(s->filters); s 577 libavfilter/af_anequalizer.c s->filters = filters; s 578 libavfilter/af_anequalizer.c s->nb_allocated *= 2; s 580 libavfilter/af_anequalizer.c s->nb_filters++; s 588 libavfilter/af_anequalizer.c AudioNEqualizerContext *s = ctx->priv; s 589 libavfilter/af_anequalizer.c char *args = av_strdup(s->args); s 596 libavfilter/af_anequalizer.c s->nb_allocated = 32 * inlink->channels; s 597 libavfilter/af_anequalizer.c s->filters = av_calloc(inlink->channels, 32 * sizeof(*s->filters)); s 598 libavfilter/af_anequalizer.c if (!s->filters) { s 599 libavfilter/af_anequalizer.c s->nb_allocated = 0; s 605 libavfilter/af_anequalizer.c char *arg = av_strtok(s->nb_filters == 0 ? args : NULL, "|", &saveptr); s 610 libavfilter/af_anequalizer.c s->filters[s->nb_filters].type = 0; s 611 libavfilter/af_anequalizer.c if (sscanf(arg, "c%d f=%lf w=%lf g=%lf t=%d", &s->filters[s->nb_filters].channel, s 612 libavfilter/af_anequalizer.c &s->filters[s->nb_filters].freq, s 613 libavfilter/af_anequalizer.c &s->filters[s->nb_filters].width, s 614 libavfilter/af_anequalizer.c &s->filters[s->nb_filters].gain, s 615 libavfilter/af_anequalizer.c &s->filters[s->nb_filters].type) != 5 && s 616 libavfilter/af_anequalizer.c sscanf(arg, "c%d f=%lf w=%lf g=%lf", &s->filters[s->nb_filters].channel, s 617 libavfilter/af_anequalizer.c &s->filters[s->nb_filters].freq, s 618 libavfilter/af_anequalizer.c &s->filters[s->nb_filters].width, s 619 libavfilter/af_anequalizer.c &s->filters[s->nb_filters].gain) != 4 ) { s 624 libavfilter/af_anequalizer.c if (s->filters[s->nb_filters].freq < 0 || s 625 libavfilter/af_anequalizer.c s->filters[s->nb_filters].freq > inlink->sample_rate / 2.0) s 626 libavfilter/af_anequalizer.c s->filters[s->nb_filters].ignore = 1; s 628 libavfilter/af_anequalizer.c if (s->filters[s->nb_filters].channel < 0 || s 629 libavfilter/af_anequalizer.c s->filters[s->nb_filters].channel >= inlink->channels) s 630 libavfilter/af_anequalizer.c s->filters[s->nb_filters].ignore = 1; s 632 libavfilter/af_anequalizer.c s->filters[s->nb_filters].type = av_clip(s->filters[s->nb_filters].type, 0, NB_TYPES - 1); s 633 libavfilter/af_anequalizer.c ret = add_filter(s, inlink); s 646 libavfilter/af_anequalizer.c AudioNEqualizerContext *s = ctx->priv; s 657 libavfilter/af_anequalizer.c if (filter < 0 || filter >= s->nb_filters) s 663 libavfilter/af_anequalizer.c s->filters[filter].freq = freq; s 664 libavfilter/af_anequalizer.c s->filters[filter].width = width; s 665 libavfilter/af_anequalizer.c s->filters[filter].gain = gain; s 666 libavfilter/af_anequalizer.c equalizer(&s->filters[filter], inlink->sample_rate); s 667 libavfilter/af_anequalizer.c if (s->draw_curves) s 668 libavfilter/af_anequalizer.c draw_curves(ctx, inlink, s->video); s 715 libavfilter/af_anequalizer.c AudioNEqualizerContext *s = ctx->priv; s 720 libavfilter/af_anequalizer.c for (i = 0; i < s->nb_filters; i++) { s 721 libavfilter/af_anequalizer.c EqualizatorFilter *f = &s->filters[i]; s 735 libavfilter/af_anequalizer.c if (s->draw_curves) { s 743 libavfilter/af_anequalizer.c s->video->pts = pts; s 744 libavfilter/af_anequalizer.c clone = av_frame_clone(s->video); s 153 libavfilter/af_anlmdn.c AudioNLMeansContext *s = ctx->priv; s 156 libavfilter/af_anlmdn.c s->K = av_rescale(s->pd, outlink->sample_rate, AV_TIME_BASE); s 157 libavfilter/af_anlmdn.c s->S = av_rescale(s->rd, outlink->sample_rate, AV_TIME_BASE); s 159 libavfilter/af_anlmdn.c s->eof_left = -1; s 160 libavfilter/af_anlmdn.c s->pts = AV_NOPTS_VALUE; s 161 libavfilter/af_anlmdn.c s->H = s->K * 2 + 1; s 162 libavfilter/af_anlmdn.c s->N = s->H + (s->K + s->S) * 2; s 164 libavfilter/af_anlmdn.c av_log(ctx, AV_LOG_DEBUG, "K:%d S:%d H:%d N:%d\n", s->K, s->S, s->H, s->N); s 166 libavfilter/af_anlmdn.c av_frame_free(&s->in); s 167 libavfilter/af_anlmdn.c av_frame_free(&s->cache); s 168 libavfilter/af_anlmdn.c s->in = ff_get_audio_buffer(outlink, s->N); s 169 libavfilter/af_anlmdn.c if (!s->in) s 172 libavfilter/af_anlmdn.c s->cache = ff_get_audio_buffer(outlink, s->S * 2); s 173 libavfilter/af_anlmdn.c if (!s->cache) s 176 libavfilter/af_anlmdn.c s->fifo = av_audio_fifo_alloc(outlink->format, outlink->channels, s->N); s 177 libavfilter/af_anlmdn.c if (!s->fifo) s 180 libavfilter/af_anlmdn.c ret = av_audio_fifo_write(s->fifo, (void **)s->in->extended_data, s->K + s->S); s 184 libavfilter/af_anlmdn.c s->pdiff_lut_scale = 1.f / s->m * WEIGHT_LUT_SIZE; s 186 libavfilter/af_anlmdn.c float w = -i / s->pdiff_lut_scale; s 188 libavfilter/af_anlmdn.c s->weight_lut[i] = expf(w); s 191 libavfilter/af_anlmdn.c ff_anlmdn_init(&s->dsp); s 198 libavfilter/af_anlmdn.c AudioNLMeansContext *s = ctx->priv; s 200 libavfilter/af_anlmdn.c const int S = s->S; s 201 libavfilter/af_anlmdn.c const int K = s->K; s 202 libavfilter/af_anlmdn.c const int om = s->om; s 203 libavfilter/af_anlmdn.c const float *f = (const float *)(s->in->extended_data[ch]) + K; s 204 libavfilter/af_anlmdn.c float *cache = (float *)s->cache->extended_data[ch]; s 205 libavfilter/af_anlmdn.c const float sw = (65536.f / (4 * K + 2)) / sqrtf(s->a); s 206 libavfilter/af_anlmdn.c float *dst = (float *)out->extended_data[ch] + s->offset; s 207 libavfilter/af_anlmdn.c const float smooth = s->m; s 209 libavfilter/af_anlmdn.c for (int i = S; i < s->H + S; i++) { s 217 libavfilter/af_anlmdn.c cache[v++] = s->dsp.compute_distance_ssd(f + i, f + j, K); s 220 libavfilter/af_anlmdn.c s->dsp.compute_cache(cache, f, S, K, i, i - S); s 221 libavfilter/af_anlmdn.c s->dsp.compute_cache(cache + S, f, S, K, i, i + 1); s 236 libavfilter/af_anlmdn.c weight_lut_idx = w * s->pdiff_lut_scale; s 238 libavfilter/af_anlmdn.c w = s->weight_lut[weight_lut_idx]; s 260 libavfilter/af_anlmdn.c AudioNLMeansContext *s = ctx->priv; s 264 libavfilter/af_anlmdn.c if (s->pts == AV_NOPTS_VALUE) s 265 libavfilter/af_anlmdn.c s->pts = in->pts; s 267 libavfilter/af_anlmdn.c ret = av_audio_fifo_write(s->fifo, (void **)in->extended_data, s 271 libavfilter/af_anlmdn.c s->offset = 0; s 272 libavfilter/af_anlmdn.c available = av_audio_fifo_size(s->fifo); s 273 libavfilter/af_anlmdn.c wanted = (available / s->H) * s->H; s 275 libavfilter/af_anlmdn.c if (wanted >= s->H && available >= s->N) { s 281 libavfilter/af_anlmdn.c while (available >= s->N) { s 282 libavfilter/af_anlmdn.c ret = av_audio_fifo_peek(s->fifo, (void **)s->in->extended_data, s->N); s 288 libavfilter/af_anlmdn.c av_audio_fifo_drain(s->fifo, s->H); s 290 libavfilter/af_anlmdn.c s->offset += s->H; s 291 libavfilter/af_anlmdn.c available -= s->H; s 295 libavfilter/af_anlmdn.c out->pts = s->pts; s 296 libavfilter/af_anlmdn.c out->nb_samples = s->offset; s 297 libavfilter/af_anlmdn.c if (s->eof_left >= 0) { s 298 libavfilter/af_anlmdn.c out->nb_samples = FFMIN(s->eof_left, s->offset); s 299 libavfilter/af_anlmdn.c s->eof_left -= out->nb_samples; s 301 libavfilter/af_anlmdn.c s->pts += av_rescale_q(s->offset, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 312 libavfilter/af_anlmdn.c AudioNLMeansContext *s = ctx->priv; s 317 libavfilter/af_anlmdn.c if (ret == AVERROR_EOF && s->eof_left != 0) { s 320 libavfilter/af_anlmdn.c if (s->eof_left < 0) s 321 libavfilter/af_anlmdn.c s->eof_left = av_audio_fifo_size(s->fifo) - (s->S + s->K); s 322 libavfilter/af_anlmdn.c if (s->eof_left <= 0) s 324 libavfilter/af_anlmdn.c in = ff_get_audio_buffer(outlink, s->H); s 336 libavfilter/af_anlmdn.c AudioNLMeansContext *s = ctx->priv; s 338 libavfilter/af_anlmdn.c av_audio_fifo_free(s->fifo); s 339 libavfilter/af_anlmdn.c av_frame_free(&s->in); s 340 libavfilter/af_anlmdn.c av_frame_free(&s->cache); s 37 libavfilter/af_anlmdndsp.h void ff_anlmdn_init(AudioNLMDNDSPContext *s); s 38 libavfilter/af_anlmdndsp.h void ff_anlmdn_init_x86(AudioNLMDNDSPContext *s); s 110 libavfilter/af_anlms.c static float fir_sample(AudioNLMSContext *s, float sample, float *delay, s 113 libavfilter/af_anlms.c const int order = s->order; s 120 libavfilter/af_anlms.c output = s->fdsp->scalarproduct_float(delay, tmp, s->kernel_size); s 128 libavfilter/af_anlms.c static float process_sample(AudioNLMSContext *s, float input, float desired, s 131 libavfilter/af_anlms.c const int order = s->order; s 132 libavfilter/af_anlms.c const float leakage = s->leakage; s 133 libavfilter/af_anlms.c const float mu = s->mu; s 140 libavfilter/af_anlms.c output = fir_sample(s, input, delay, coeffs, tmp, offsetp); s 143 libavfilter/af_anlms.c sum = s->fdsp->scalarproduct_float(delay, delay, s->kernel_size); s 145 libavfilter/af_anlms.c norm = s->eps + sum; s 150 libavfilter/af_anlms.c s->fdsp->vector_fmul_scalar(coeffs, coeffs, a, s->kernel_size); s 152 libavfilter/af_anlms.c s->fdsp->vector_fmac_scalar(coeffs, tmp, b, s->kernel_size); s 156 libavfilter/af_anlms.c switch (s->output_mode) { s 167 libavfilter/af_anlms.c AudioNLMSContext *s = ctx->priv; s 173 libavfilter/af_anlms.c const float *input = (const float *)s->frame[0]->extended_data[c]; s 174 libavfilter/af_anlms.c const float *desired = (const float *)s->frame[1]->extended_data[c]; s 175 libavfilter/af_anlms.c float *delay = (float *)s->delay->extended_data[c]; s 176 libavfilter/af_anlms.c float *coeffs = (float *)s->coeffs->extended_data[c]; s 177 libavfilter/af_anlms.c float *tmp = (float *)s->tmp->extended_data[c]; s 178 libavfilter/af_anlms.c int *offset = (int *)s->offset->extended_data[c]; s 182 libavfilter/af_anlms.c output[n] = process_sample(s, input[n], desired[n], delay, coeffs, tmp, offset); s 190 libavfilter/af_anlms.c AudioNLMSContext *s = ctx->priv; s 200 libavfilter/af_anlms.c if (s->frame[i]) s 204 libavfilter/af_anlms.c ret = ff_inlink_consume_samples(ctx->inputs[i], nb_samples, nb_samples, &s->frame[i]); s 210 libavfilter/af_anlms.c if (s->frame[0] && s->frame[1]) { s 213 libavfilter/af_anlms.c out = ff_get_audio_buffer(ctx->outputs[0], s->frame[0]->nb_samples); s 215 libavfilter/af_anlms.c av_frame_free(&s->frame[0]); s 216 libavfilter/af_anlms.c av_frame_free(&s->frame[1]); s 223 libavfilter/af_anlms.c out->pts = s->frame[0]->pts; s 225 libavfilter/af_anlms.c av_frame_free(&s->frame[0]); s 226 libavfilter/af_anlms.c av_frame_free(&s->frame[1]); s 256 libavfilter/af_anlms.c AudioNLMSContext *s = ctx->priv; s 258 libavfilter/af_anlms.c s->kernel_size = FFALIGN(s->order, 16); s 260 libavfilter/af_anlms.c if (!s->offset) s 261 libavfilter/af_anlms.c s->offset = ff_get_audio_buffer(outlink, 1); s 262 libavfilter/af_anlms.c if (!s->delay) s 263 libavfilter/af_anlms.c s->delay = ff_get_audio_buffer(outlink, 2 * s->kernel_size); s 264 libavfilter/af_anlms.c if (!s->coeffs) s 265 libavfilter/af_anlms.c s->coeffs = ff_get_audio_buffer(outlink, 2 * s->kernel_size); s 266 libavfilter/af_anlms.c if (!s->tmp) s 267 libavfilter/af_anlms.c s->tmp = ff_get_audio_buffer(outlink, s->kernel_size); s 268 libavfilter/af_anlms.c if (!s->delay || !s->coeffs || !s->offset || !s->tmp) s 276 libavfilter/af_anlms.c AudioNLMSContext *s = ctx->priv; s 278 libavfilter/af_anlms.c s->fdsp = avpriv_float_dsp_alloc(0); s 279 libavfilter/af_anlms.c if (!s->fdsp) s 287 libavfilter/af_anlms.c AudioNLMSContext *s = ctx->priv; s 289 libavfilter/af_anlms.c av_freep(&s->fdsp); s 290 libavfilter/af_anlms.c av_frame_free(&s->delay); s 291 libavfilter/af_anlms.c av_frame_free(&s->coeffs); s 292 libavfilter/af_anlms.c av_frame_free(&s->offset); s 293 libavfilter/af_anlms.c av_frame_free(&s->tmp); s 64 libavfilter/af_apad.c APadContext *s = ctx->priv; s 66 libavfilter/af_apad.c s->next_pts = AV_NOPTS_VALUE; s 67 libavfilter/af_apad.c if (s->whole_len >= 0 && s->pad_len >= 0) { s 78 libavfilter/af_apad.c APadContext *s = ctx->priv; s 80 libavfilter/af_apad.c if (s->whole_len >= 0) { s 81 libavfilter/af_apad.c s->whole_len_left = FFMAX(s->whole_len_left - frame->nb_samples, 0); s 83 libavfilter/af_apad.c "n_out:%d whole_len_left:%"PRId64"\n", frame->nb_samples, s->whole_len_left); s 86 libavfilter/af_apad.c s->next_pts = frame->pts + av_rescale_q(frame->nb_samples, (AVRational){1, inlink->sample_rate}, inlink->time_base); s 93 libavfilter/af_apad.c APadContext *s = ctx->priv; s 99 libavfilter/af_apad.c int n_out = s->packet_size; s 102 libavfilter/af_apad.c if (s->whole_len >= 0 && s->pad_len < 0) { s 103 libavfilter/af_apad.c s->pad_len = s->pad_len_left = s->whole_len_left; s 105 libavfilter/af_apad.c if (s->pad_len >=0 || s->whole_len >= 0) { s 106 libavfilter/af_apad.c n_out = FFMIN(n_out, s->pad_len_left); s 107 libavfilter/af_apad.c s->pad_len_left -= n_out; s 109 libavfilter/af_apad.c "padding n_out:%d pad_len_left:%"PRId64"\n", n_out, s->pad_len_left); s 127 libavfilter/af_apad.c outsamplesref->pts = s->next_pts; s 128 libavfilter/af_apad.c if (s->next_pts != AV_NOPTS_VALUE) s 129 libavfilter/af_apad.c s->next_pts += av_rescale_q(n_out, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 139 libavfilter/af_apad.c APadContext *s = ctx->priv; s 141 libavfilter/af_apad.c if (s->pad_dur) s 142 libavfilter/af_apad.c s->pad_len = av_rescale(s->pad_dur, outlink->sample_rate, AV_TIME_BASE); s 143 libavfilter/af_apad.c if (s->whole_dur) s 144 libavfilter/af_apad.c s->whole_len = av_rescale(s->whole_dur, outlink->sample_rate, AV_TIME_BASE); s 146 libavfilter/af_apad.c s->pad_len_left = s->pad_len; s 147 libavfilter/af_apad.c s->whole_len_left = s->whole_len; s 50 libavfilter/af_aphaser.c void (*phaser)(struct AudioPhaserContext *s, s 76 libavfilter/af_aphaser.c AudioPhaserContext *s = ctx->priv; s 78 libavfilter/af_aphaser.c if (s->in_gain > (1 - s->decay * s->decay)) s 80 libavfilter/af_aphaser.c if (s->in_gain / (1 - s->decay) > 1 / s->out_gain) s 122 libavfilter/af_aphaser.c static void phaser_## name ##p(AudioPhaserContext *s, \ s 132 libavfilter/af_aphaser.c double *buffer = s->delay_buffer + \ s 133 libavfilter/af_aphaser.c c * s->delay_buffer_length; \ s 135 libavfilter/af_aphaser.c delay_pos = s->delay_pos; \ s 136 libavfilter/af_aphaser.c modulation_pos = s->modulation_pos; \ s 139 libavfilter/af_aphaser.c double v = *src * s->in_gain + buffer[ \ s 140 libavfilter/af_aphaser.c MOD(delay_pos + s->modulation_buffer[ \ s 142 libavfilter/af_aphaser.c s->delay_buffer_length)] * s->decay; \ s 145 libavfilter/af_aphaser.c s->modulation_buffer_length); \ s 146 libavfilter/af_aphaser.c delay_pos = MOD(delay_pos + 1, s->delay_buffer_length); \ s 149 libavfilter/af_aphaser.c *dst = v * s->out_gain; \ s 153 libavfilter/af_aphaser.c s->delay_pos = delay_pos; \ s 154 libavfilter/af_aphaser.c s->modulation_pos = modulation_pos; \ s 158 libavfilter/af_aphaser.c static void phaser_## name (AudioPhaserContext *s, \ s 165 libavfilter/af_aphaser.c double *buffer = s->delay_buffer; \ s 167 libavfilter/af_aphaser.c delay_pos = s->delay_pos; \ s 168 libavfilter/af_aphaser.c modulation_pos = s->modulation_pos; \ s 171 libavfilter/af_aphaser.c int pos = MOD(delay_pos + s->modulation_buffer[modulation_pos], \ s 172 libavfilter/af_aphaser.c s->delay_buffer_length) * channels; \ s 175 libavfilter/af_aphaser.c delay_pos = MOD(delay_pos + 1, s->delay_buffer_length); \ s 178 libavfilter/af_aphaser.c double v = *src * s->in_gain + buffer[pos + c] * s->decay; \ s 182 libavfilter/af_aphaser.c *dst = v * s->out_gain; \ s 186 libavfilter/af_aphaser.c s->modulation_buffer_length); \ s 189 libavfilter/af_aphaser.c s->delay_pos = delay_pos; \ s 190 libavfilter/af_aphaser.c s->modulation_pos = modulation_pos; \ s 205 libavfilter/af_aphaser.c AudioPhaserContext *s = outlink->src->priv; s 208 libavfilter/af_aphaser.c s->delay_buffer_length = s->delay * 0.001 * inlink->sample_rate + 0.5; s 209 libavfilter/af_aphaser.c if (s->delay_buffer_length <= 0) { s 213 libavfilter/af_aphaser.c s->delay_buffer = av_calloc(s->delay_buffer_length, sizeof(*s->delay_buffer) * inlink->channels); s 214 libavfilter/af_aphaser.c s->modulation_buffer_length = inlink->sample_rate / s->speed + 0.5; s 215 libavfilter/af_aphaser.c s->modulation_buffer = av_malloc_array(s->modulation_buffer_length, sizeof(*s->modulation_buffer)); s 217 libavfilter/af_aphaser.c if (!s->modulation_buffer || !s->delay_buffer) s 220 libavfilter/af_aphaser.c ff_generate_wave_table(s->type, AV_SAMPLE_FMT_S32, s 221 libavfilter/af_aphaser.c s->modulation_buffer, s->modulation_buffer_length, s 222 libavfilter/af_aphaser.c 1., s->delay_buffer_length, M_PI / 2.0); s 224 libavfilter/af_aphaser.c s->delay_pos = s->modulation_pos = 0; s 227 libavfilter/af_aphaser.c case AV_SAMPLE_FMT_DBL: s->phaser = phaser_dbl; break; s 228 libavfilter/af_aphaser.c case AV_SAMPLE_FMT_DBLP: s->phaser = phaser_dblp; break; s 229 libavfilter/af_aphaser.c case AV_SAMPLE_FMT_FLT: s->phaser = phaser_flt; break; s 230 libavfilter/af_aphaser.c case AV_SAMPLE_FMT_FLTP: s->phaser = phaser_fltp; break; s 231 libavfilter/af_aphaser.c case AV_SAMPLE_FMT_S16: s->phaser = phaser_s16; break; s 232 libavfilter/af_aphaser.c case AV_SAMPLE_FMT_S16P: s->phaser = phaser_s16p; break; s 233 libavfilter/af_aphaser.c case AV_SAMPLE_FMT_S32: s->phaser = phaser_s32; break; s 234 libavfilter/af_aphaser.c case AV_SAMPLE_FMT_S32P: s->phaser = phaser_s32p; break; s 243 libavfilter/af_aphaser.c AudioPhaserContext *s = inlink->dst->priv; s 258 libavfilter/af_aphaser.c s->phaser(s, inbuf->extended_data, outbuf->extended_data, s 269 libavfilter/af_aphaser.c AudioPhaserContext *s = ctx->priv; s 271 libavfilter/af_aphaser.c av_freep(&s->delay_buffer); s 272 libavfilter/af_aphaser.c av_freep(&s->modulation_buffer); s 131 libavfilter/af_apulsator.c AudioPulsatorContext *s = ctx->priv; s 134 libavfilter/af_apulsator.c const double level_out = s->level_out; s 135 libavfilter/af_apulsator.c const double level_in = s->level_in; s 136 libavfilter/af_apulsator.c const double amount = s->amount; s 161 libavfilter/af_apulsator.c procL *= lfo_get_value(&s->lfoL) * 0.5 + amount / 2; s 162 libavfilter/af_apulsator.c procR *= lfo_get_value(&s->lfoR) * 0.5 + amount / 2; s 173 libavfilter/af_apulsator.c lfo_advance(&s->lfoL, 1); s 174 libavfilter/af_apulsator.c lfo_advance(&s->lfoR, 1); s 205 libavfilter/af_apulsator.c AudioPulsatorContext *s = ctx->priv; s 208 libavfilter/af_apulsator.c switch (s->timing) { s 209 libavfilter/af_apulsator.c case UNIT_BPM: freq = s->bpm / 60; break; s 210 libavfilter/af_apulsator.c case UNIT_MS: freq = 1 / (s->ms / 1000.); break; s 211 libavfilter/af_apulsator.c case UNIT_HZ: freq = s->hertz; break; s 215 libavfilter/af_apulsator.c s->lfoL.freq = freq; s 216 libavfilter/af_apulsator.c s->lfoR.freq = freq; s 217 libavfilter/af_apulsator.c s->lfoL.mode = s->mode; s 218 libavfilter/af_apulsator.c s->lfoR.mode = s->mode; s 219 libavfilter/af_apulsator.c s->lfoL.offset = s->offset_l; s 220 libavfilter/af_apulsator.c s->lfoR.offset = s->offset_r; s 221 libavfilter/af_apulsator.c s->lfoL.srate = inlink->sample_rate; s 222 libavfilter/af_apulsator.c s->lfoR.srate = inlink->sample_rate; s 223 libavfilter/af_apulsator.c s->lfoL.amount = s->amount; s 224 libavfilter/af_apulsator.c s->lfoR.amount = s->amount; s 225 libavfilter/af_apulsator.c s->lfoL.pwidth = s->pwidth; s 226 libavfilter/af_apulsator.c s->lfoR.pwidth = s->pwidth; s 303 libavfilter/af_aresample.c AResampleContext *s = obj; s 304 libavfilter/af_aresample.c return prev ? NULL : s->swr; s 345 libavfilter/af_arnndn.c AudioRNNContext *s = ctx->priv; s 348 libavfilter/af_arnndn.c s->channels = inlink->channels; s 350 libavfilter/af_arnndn.c s->st = av_calloc(s->channels, sizeof(DenoiseState)); s 351 libavfilter/af_arnndn.c if (!s->st) s 354 libavfilter/af_arnndn.c for (int i = 0; i < s->channels; i++) { s 355 libavfilter/af_arnndn.c DenoiseState *st = &s->st[i]; s 357 libavfilter/af_arnndn.c st->rnn.model = s->model; s 358 libavfilter/af_arnndn.c st->rnn.vad_gru_state = av_calloc(sizeof(float), FFALIGN(s->model->vad_gru_size, 16)); s 359 libavfilter/af_arnndn.c st->rnn.noise_gru_state = av_calloc(sizeof(float), FFALIGN(s->model->noise_gru_size, 16)); s 360 libavfilter/af_arnndn.c st->rnn.denoise_gru_state = av_calloc(sizeof(float), FFALIGN(s->model->denoise_gru_size, 16)); s 485 libavfilter/af_arnndn.c static void frame_analysis(AudioRNNContext *s, DenoiseState *st, AVComplexFloat *X, float *Ex, const float *in) s 492 libavfilter/af_arnndn.c s->fdsp->vector_fmul(x, x, s->window, WINDOW_SIZE); s 497 libavfilter/af_arnndn.c static void frame_synthesis(AudioRNNContext *s, DenoiseState *st, float *out, const AVComplexFloat *y) s 502 libavfilter/af_arnndn.c s->fdsp->vector_fmul(x, x, s->window, WINDOW_SIZE); s 503 libavfilter/af_arnndn.c s->fdsp->vector_fmac_scalar(x, st->synthesis_mem, 1.f, FRAME_SIZE); s 992 libavfilter/af_arnndn.c static void dct(AudioRNNContext *s, float *out, const float *in) s 998 libavfilter/af_arnndn.c sum += in[j] * s->dct_table[j * NB_BANDS + i]; s 1004 libavfilter/af_arnndn.c static int compute_frame_features(AudioRNNContext *s, DenoiseState *st, AVComplexFloat *X, AVComplexFloat *P, s 1019 libavfilter/af_arnndn.c frame_analysis(s, st, X, Ex, in); s 1036 libavfilter/af_arnndn.c s->fdsp->vector_fmul(p, p, s->window, WINDOW_SIZE); s 1044 libavfilter/af_arnndn.c dct(s, tmp, Exp); s 1069 libavfilter/af_arnndn.c dct(s, features, Ly); s 1263 libavfilter/af_arnndn.c static void compute_gru(AudioRNNContext *s, const GRULayer *gru, float *state, const float *input) s 1278 libavfilter/af_arnndn.c sum += s->fdsp->scalarproduct_float(gru->input_weights + i * istride, input, AM); s 1279 libavfilter/af_arnndn.c sum += s->fdsp->scalarproduct_float(gru->recurrent_weights + i * stride, state, AN); s 1287 libavfilter/af_arnndn.c sum += s->fdsp->scalarproduct_float(gru->input_weights + AM + i * istride, input, AM); s 1288 libavfilter/af_arnndn.c sum += s->fdsp->scalarproduct_float(gru->recurrent_weights + AN + i * stride, state, AN); s 1296 libavfilter/af_arnndn.c sum += s->fdsp->scalarproduct_float(gru->input_weights + 2 * AM + i * istride, input, AM); s 1316 libavfilter/af_arnndn.c static void compute_rnn(AudioRNNContext *s, RNNState *rnn, float *gains, float *vad, const float *input) s 1323 libavfilter/af_arnndn.c compute_gru(s, rnn->model->vad_gru, rnn->vad_gru_state, dense_out); s 1333 libavfilter/af_arnndn.c compute_gru(s, rnn->model->noise_gru, rnn->noise_gru_state, noise_input); s 1342 libavfilter/af_arnndn.c compute_gru(s, rnn->model->denoise_gru, rnn->denoise_gru_state, denoise_input); s 1346 libavfilter/af_arnndn.c static float rnnoise_channel(AudioRNNContext *s, DenoiseState *st, float *out, const float *in) s 1362 libavfilter/af_arnndn.c silence = compute_frame_features(s, st, X, P, Ex, Ep, Exp, features, x); s 1365 libavfilter/af_arnndn.c compute_rnn(s, &st->rnn, g, &vad_prob, features); s 1382 libavfilter/af_arnndn.c frame_synthesis(s, st, out, X); s 1393 libavfilter/af_arnndn.c AudioRNNContext *s = ctx->priv; s 1401 libavfilter/af_arnndn.c rnnoise_channel(s, &s->st[ch], s 1455 libavfilter/af_arnndn.c AudioRNNContext *s = ctx->priv; s 1458 libavfilter/af_arnndn.c s->fdsp = avpriv_float_dsp_alloc(0); s 1459 libavfilter/af_arnndn.c if (!s->fdsp) s 1462 libavfilter/af_arnndn.c if (!s->model_name) s 1464 libavfilter/af_arnndn.c f = av_fopen_utf8(s->model_name, "r"); s 1468 libavfilter/af_arnndn.c s->model = rnnoise_model_from_file(f); s 1470 libavfilter/af_arnndn.c if (!s->model) s 1474 libavfilter/af_arnndn.c s->window[i] = sin(.5*M_PI*sin(.5*M_PI*(i+.5)/FRAME_SIZE) * sin(.5*M_PI*(i+.5)/FRAME_SIZE)); s 1475 libavfilter/af_arnndn.c s->window[WINDOW_SIZE - 1 - i] = s->window[i]; s 1480 libavfilter/af_arnndn.c s->dct_table[i*NB_BANDS + j] = cosf((i + .5f) * j * M_PI / NB_BANDS); s 1482 libavfilter/af_arnndn.c s->dct_table[i*NB_BANDS + j] *= sqrtf(.5); s 1491 libavfilter/af_arnndn.c AudioRNNContext *s = ctx->priv; s 1493 libavfilter/af_arnndn.c av_freep(&s->fdsp); s 1494 libavfilter/af_arnndn.c rnnoise_model_free(s->model); s 1495 libavfilter/af_arnndn.c s->model = NULL; s 1497 libavfilter/af_arnndn.c if (s->st) { s 1498 libavfilter/af_arnndn.c for (int ch = 0; ch < s->channels; ch++) { s 1499 libavfilter/af_arnndn.c av_freep(&s->st[ch].rnn.vad_gru_state); s 1500 libavfilter/af_arnndn.c av_freep(&s->st[ch].rnn.noise_gru_state); s 1501 libavfilter/af_arnndn.c av_freep(&s->st[ch].rnn.denoise_gru_state); s 1502 libavfilter/af_arnndn.c av_tx_uninit(&s->st[ch].tx); s 1503 libavfilter/af_arnndn.c av_tx_uninit(&s->st[ch].txi); s 1506 libavfilter/af_arnndn.c av_freep(&s->st); s 59 libavfilter/af_asetnsamples.c ASNSContext *s = ctx->priv; s 65 libavfilter/af_asetnsamples.c ret = ff_inlink_consume_samples(inlink, s->nb_out_samples, s->nb_out_samples, &frame); s 70 libavfilter/af_asetnsamples.c if (!s->pad || frame->nb_samples == s->nb_out_samples) { s 72 libavfilter/af_asetnsamples.c if (ff_inlink_queued_samples(inlink) >= s->nb_out_samples) s 77 libavfilter/af_asetnsamples.c pad_frame = ff_get_audio_buffer(outlink, s->nb_out_samples); s 93 libavfilter/af_asetnsamples.c s->nb_out_samples - frame->nb_samples, frame->channels, s 55 libavfilter/af_ashowinfo.c AShowInfoContext *s = ctx->priv; s 56 libavfilter/af_ashowinfo.c av_freep(&s->plane_checksums); s 179 libavfilter/af_ashowinfo.c AShowInfoContext *s = ctx->priv; s 188 libavfilter/af_ashowinfo.c void *tmp_ptr = av_realloc_array(s->plane_checksums, channels, sizeof(*s->plane_checksums)); s 192 libavfilter/af_ashowinfo.c s->plane_checksums = tmp_ptr; s 197 libavfilter/af_ashowinfo.c s->plane_checksums[i] = av_adler32_update(0, data, data_size); s 199 libavfilter/af_ashowinfo.c s->plane_checksums[0]; s 218 libavfilter/af_ashowinfo.c av_log(ctx, AV_LOG_INFO, "%08"PRIX32" ", s->plane_checksums[i]); s 44 libavfilter/af_asoftclip.c void (*filter)(struct ASoftClipContext *s, void **dst, const void **src, s 98 libavfilter/af_asoftclip.c static void filter_flt(ASoftClipContext *s, s 103 libavfilter/af_asoftclip.c float param = s->param; s 109 libavfilter/af_asoftclip.c switch (s->type) { s 155 libavfilter/af_asoftclip.c static void filter_dbl(ASoftClipContext *s, s 160 libavfilter/af_asoftclip.c double param = s->param; s 166 libavfilter/af_asoftclip.c switch (s->type) { s 215 libavfilter/af_asoftclip.c ASoftClipContext *s = ctx->priv; s 219 libavfilter/af_asoftclip.c case AV_SAMPLE_FMT_FLTP: s->filter = filter_flt; break; s 221 libavfilter/af_asoftclip.c case AV_SAMPLE_FMT_DBLP: s->filter = filter_dbl; break; s 235 libavfilter/af_asoftclip.c ASoftClipContext *s = ctx->priv; s 244 libavfilter/af_asoftclip.c s->filter(s, (void **)out->extended_data, (const void **)in->extended_data, s 67 libavfilter/af_asr.c ASRContext *s = ctx->priv; s 71 libavfilter/af_asr.c ps_process_raw(s->ps, (const int16_t *)in->data[0], in->nb_samples, 0, 0); s 72 libavfilter/af_asr.c have_speech = ps_get_in_speech(s->ps); s 73 libavfilter/af_asr.c if (have_speech && !s->utt_started) s 74 libavfilter/af_asr.c s->utt_started = 1; s 75 libavfilter/af_asr.c if (!have_speech && s->utt_started) { s 76 libavfilter/af_asr.c ps_end_utt(s->ps); s 77 libavfilter/af_asr.c speech = ps_get_hyp(s->ps, NULL); s 80 libavfilter/af_asr.c ps_start_utt(s->ps); s 81 libavfilter/af_asr.c s->utt_started = 0; s 90 libavfilter/af_asr.c ASRContext *s = ctx->priv; s 92 libavfilter/af_asr.c ps_start_utt(s->ps); s 99 libavfilter/af_asr.c ASRContext *s = ctx->priv; s 100 libavfilter/af_asr.c const float frate = s->rate; s 102 libavfilter/af_asr.c const char *argv[] = { "-logfn", s->logfn, s 103 libavfilter/af_asr.c "-hmm", s->hmm, s 104 libavfilter/af_asr.c "-lm", s->lm, s 105 libavfilter/af_asr.c "-lmctl", s->lmctl, s 106 libavfilter/af_asr.c "-lmname", s->lmname, s 107 libavfilter/af_asr.c "-dict", s->dict, s 111 libavfilter/af_asr.c s->config = cmd_ln_parse_r(NULL, ps_args(), 14, (char **)argv, 0); s 113 libavfilter/af_asr.c if (!s->config) s 116 libavfilter/af_asr.c ps_default_search_args(s->config); s 117 libavfilter/af_asr.c s->ps = ps_init(s->config); s 118 libavfilter/af_asr.c if (!s->ps) s 126 libavfilter/af_asr.c ASRContext *s = ctx->priv; s 127 libavfilter/af_asr.c int sample_rates[] = { s->rate, -1 }; s 145 libavfilter/af_asr.c ASRContext *s = ctx->priv; s 147 libavfilter/af_asr.c ps_free(s->ps); s 148 libavfilter/af_asr.c s->ps = NULL; s 149 libavfilter/af_asr.c cmd_ln_free_r(s->config); s 150 libavfilter/af_asr.c s->config = NULL; s 182 libavfilter/af_astats.c static void reset_stats(AudioStatsContext *s) s 186 libavfilter/af_astats.c for (c = 0; c < s->nb_channels; c++) { s 187 libavfilter/af_astats.c ChannelStats *p = &s->chstats[c]; s 216 libavfilter/af_astats.c memset(p->win_samples, 0, s->tc_samples * sizeof(*p->win_samples)); s 223 libavfilter/af_astats.c AudioStatsContext *s = outlink->src->priv; s 225 libavfilter/af_astats.c s->chstats = av_calloc(sizeof(*s->chstats), outlink->channels); s 226 libavfilter/af_astats.c if (!s->chstats) s 229 libavfilter/af_astats.c s->tc_samples = 5 * s->time_constant * outlink->sample_rate + .5; s 230 libavfilter/af_astats.c s->nb_channels = outlink->channels; s 232 libavfilter/af_astats.c for (int i = 0; i < s->nb_channels; i++) { s 233 libavfilter/af_astats.c ChannelStats *p = &s->chstats[i]; s 235 libavfilter/af_astats.c p->win_samples = av_calloc(s->tc_samples, sizeof(*p->win_samples)); s 240 libavfilter/af_astats.c s->mult = exp((-1 / s->time_constant / outlink->sample_rate)); s 241 libavfilter/af_astats.c s->nb_frames = 0; s 242 libavfilter/af_astats.c s->maxbitdepth = av_get_bytes_per_sample(outlink->format) * 8; s 243 libavfilter/af_astats.c s->is_double = outlink->format == AV_SAMPLE_FMT_DBL || s 246 libavfilter/af_astats.c s->is_float = outlink->format == AV_SAMPLE_FMT_FLT || s 249 libavfilter/af_astats.c reset_stats(s); s 254 libavfilter/af_astats.c static void bit_depth(AudioStatsContext *s, uint64_t mask, uint64_t imask, AVRational *depth) s 256 libavfilter/af_astats.c unsigned result = s->maxbitdepth; s 270 libavfilter/af_astats.c static inline void update_minmax(AudioStatsContext *s, ChannelStats *p, double d) s 278 libavfilter/af_astats.c static inline void update_stat(AudioStatsContext *s, ChannelStats *p, double d, double nd, int64_t i) s 319 libavfilter/af_astats.c p->avg_sigma_x2 = p->avg_sigma_x2 * s->mult + (1.0 - s->mult) * nd * nd; s 341 libavfilter/af_astats.c if (p->win_pos >= s->tc_samples || !isnan(p->noise_floor)) { s 364 libavfilter/af_astats.c if (p->win_pos >= s->tc_samples) { s 368 libavfilter/af_astats.c if (p->nb_samples >= s->tc_samples) { s 375 libavfilter/af_astats.c static inline void update_float_stat(AudioStatsContext *s, ChannelStats *p, float d) s 384 libavfilter/af_astats.c static inline void update_double_stat(AudioStatsContext *s, ChannelStats *p, double d) s 409 libavfilter/af_astats.c static void set_metadata(AudioStatsContext *s, AVDictionary **metadata) s 427 libavfilter/af_astats.c for (c = 0; c < s->nb_channels; c++) { s 428 libavfilter/af_astats.c ChannelStats *p = &s->chstats[c]; s 430 libavfilter/af_astats.c if (p->nb_samples < s->tc_samples) s 460 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_DC_OFFSET) s 462 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MIN_LEVEL) s 464 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MAX_LEVEL) s 466 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MIN_DIFFERENCE) s 468 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MAX_DIFFERENCE) s 470 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MEAN_DIFFERENCE) s 472 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_RMS_DIFFERENCE) s 474 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_PEAK_LEVEL) s 476 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_RMS_LEVEL) s 478 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_RMS_PEAK) s 480 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_RMS_TROUGH) s 482 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_CREST_FACTOR) s 484 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_FLAT_FACTOR) s 486 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_PEAK_COUNT) s 488 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_NOISE_FLOOR) s 490 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_NOISE_FLOOR_COUNT) s 492 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_BIT_DEPTH) { s 493 libavfilter/af_astats.c bit_depth(s, p->mask, p->imask, &depth); s 497 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_DYNAMIC_RANGE) s 499 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_ZERO_CROSSINGS) s 501 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_ZERO_CROSSINGS_RATE) s 503 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_perchannel & MEASURE_NUMBER_OF_NANS) s 505 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_perchannel & MEASURE_NUMBER_OF_INFS) s 507 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_perchannel & MEASURE_NUMBER_OF_DENORMALS) s 511 libavfilter/af_astats.c if (s->measure_overall & MEASURE_DC_OFFSET) s 512 libavfilter/af_astats.c set_meta(metadata, 0, "Overall.DC_offset", "%f", max_sigma_x / (nb_samples / s->nb_channels)); s 513 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MIN_LEVEL) s 515 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MAX_LEVEL) s 517 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MIN_DIFFERENCE) s 519 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MAX_DIFFERENCE) s 521 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MEAN_DIFFERENCE) s 522 libavfilter/af_astats.c set_meta(metadata, 0, "Overall.Mean_difference", "%f", diff1_sum / (nb_samples - s->nb_channels)); s 523 libavfilter/af_astats.c if (s->measure_overall & MEASURE_RMS_DIFFERENCE) s 524 libavfilter/af_astats.c set_meta(metadata, 0, "Overall.RMS_difference", "%f", sqrt(diff1_sum_x2 / (nb_samples - s->nb_channels))); s 525 libavfilter/af_astats.c if (s->measure_overall & MEASURE_PEAK_LEVEL) s 527 libavfilter/af_astats.c if (s->measure_overall & MEASURE_RMS_LEVEL) s 529 libavfilter/af_astats.c if (s->measure_overall & MEASURE_RMS_PEAK) s 531 libavfilter/af_astats.c if (s->measure_overall & MEASURE_RMS_TROUGH) s 533 libavfilter/af_astats.c if (s->measure_overall & MEASURE_FLAT_FACTOR) s 535 libavfilter/af_astats.c if (s->measure_overall & MEASURE_PEAK_COUNT) s 536 libavfilter/af_astats.c set_meta(metadata, 0, "Overall.Peak_count", "%f", (float)(min_count + max_count) / (double)s->nb_channels); s 537 libavfilter/af_astats.c if (s->measure_overall & MEASURE_NOISE_FLOOR) s 539 libavfilter/af_astats.c if (s->measure_overall & MEASURE_NOISE_FLOOR_COUNT) s 540 libavfilter/af_astats.c set_meta(metadata, 0, "Overall.Noise_floor_count", "%f", noise_floor_count / (double)s->nb_channels); s 541 libavfilter/af_astats.c if (s->measure_overall & MEASURE_BIT_DEPTH) { s 542 libavfilter/af_astats.c bit_depth(s, mask, imask, &depth); s 546 libavfilter/af_astats.c if (s->measure_overall & MEASURE_NUMBER_OF_SAMPLES) s 547 libavfilter/af_astats.c set_meta(metadata, 0, "Overall.Number_of_samples", "%f", nb_samples / s->nb_channels); s 548 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_overall & MEASURE_NUMBER_OF_NANS) s 549 libavfilter/af_astats.c set_meta(metadata, 0, "Number of NaNs", "%f", nb_nans / (float)s->nb_channels); s 550 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_overall & MEASURE_NUMBER_OF_INFS) s 551 libavfilter/af_astats.c set_meta(metadata, 0, "Number of Infs", "%f", nb_infs / (float)s->nb_channels); s 552 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_overall & MEASURE_NUMBER_OF_DENORMALS) s 553 libavfilter/af_astats.c set_meta(metadata, 0, "Number of denormals", "%f", nb_denormals / (float)s->nb_channels); s 558 libavfilter/af_astats.c ChannelStats *p = &s->chstats[c]; \ s 570 libavfilter/af_astats.c ChannelStats *p = &s->chstats[c]; \ s 581 libavfilter/af_astats.c if ((s->measure_overall | s->measure_perchannel) & ~MEASURE_MINMAXPEAK) { \ s 582 libavfilter/af_astats.c UPDATE_STATS_##planar(type, update_stat(s, p, sample, sample normalizer_suffix, int_sample), s->is_float ? update_float_stat(s, p, sample) : s->is_double ? update_double_stat(s, p, sample) : (void)NULL, ); \ s 584 libavfilter/af_astats.c UPDATE_STATS_##planar(type, update_minmax(s, p, sample), , p->nmin = p->min normalizer_suffix; p->nmax = p->max normalizer_suffix;); \ s 589 libavfilter/af_astats.c AudioStatsContext *s = ctx->priv; s 593 libavfilter/af_astats.c const int channels = s->nb_channels; s 637 libavfilter/af_astats.c AudioStatsContext *s = ctx->priv; s 640 libavfilter/af_astats.c if (s->reset_count > 0) { s 641 libavfilter/af_astats.c if (s->nb_frames >= s->reset_count) { s 642 libavfilter/af_astats.c reset_stats(s); s 643 libavfilter/af_astats.c s->nb_frames = 0; s 645 libavfilter/af_astats.c s->nb_frames++; s 650 libavfilter/af_astats.c if (s->metadata) s 651 libavfilter/af_astats.c set_metadata(s, metadata); s 658 libavfilter/af_astats.c AudioStatsContext *s = ctx->priv; s 675 libavfilter/af_astats.c for (c = 0; c < s->nb_channels; c++) { s 676 libavfilter/af_astats.c ChannelStats *p = &s->chstats[c]; s 678 libavfilter/af_astats.c if (p->nb_samples < s->tc_samples) s 709 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_DC_OFFSET) s 711 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MIN_LEVEL) s 713 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MAX_LEVEL) s 715 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MIN_DIFFERENCE) s 717 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MAX_DIFFERENCE) s 719 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_MEAN_DIFFERENCE) s 721 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_RMS_DIFFERENCE) s 723 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_PEAK_LEVEL) s 725 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_RMS_LEVEL) s 727 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_RMS_PEAK) s 729 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_RMS_TROUGH) s 732 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_CREST_FACTOR) s 734 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_FLAT_FACTOR) s 736 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_PEAK_COUNT) s 738 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_NOISE_FLOOR) s 740 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_NOISE_FLOOR_COUNT) s 742 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_BIT_DEPTH) { s 743 libavfilter/af_astats.c bit_depth(s, p->mask, p->imask, &depth); s 746 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_DYNAMIC_RANGE) s 748 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_ZERO_CROSSINGS) s 750 libavfilter/af_astats.c if (s->measure_perchannel & MEASURE_ZERO_CROSSINGS_RATE) s 752 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_perchannel & MEASURE_NUMBER_OF_NANS) s 754 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_perchannel & MEASURE_NUMBER_OF_INFS) s 756 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_perchannel & MEASURE_NUMBER_OF_DENORMALS) s 761 libavfilter/af_astats.c if (s->measure_overall & MEASURE_DC_OFFSET) s 762 libavfilter/af_astats.c av_log(ctx, AV_LOG_INFO, "DC offset: %f\n", max_sigma_x / (nb_samples / s->nb_channels)); s 763 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MIN_LEVEL) s 765 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MAX_LEVEL) s 767 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MIN_DIFFERENCE) s 769 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MAX_DIFFERENCE) s 771 libavfilter/af_astats.c if (s->measure_overall & MEASURE_MEAN_DIFFERENCE) s 772 libavfilter/af_astats.c av_log(ctx, AV_LOG_INFO, "Mean difference: %f\n", diff1_sum / (nb_samples - s->nb_channels)); s 773 libavfilter/af_astats.c if (s->measure_overall & MEASURE_RMS_DIFFERENCE) s 774 libavfilter/af_astats.c av_log(ctx, AV_LOG_INFO, "RMS difference: %f\n", sqrt(diff1_sum_x2 / (nb_samples - s->nb_channels))); s 775 libavfilter/af_astats.c if (s->measure_overall & MEASURE_PEAK_LEVEL) s 777 libavfilter/af_astats.c if (s->measure_overall & MEASURE_RMS_LEVEL) s 779 libavfilter/af_astats.c if (s->measure_overall & MEASURE_RMS_PEAK) s 781 libavfilter/af_astats.c if (s->measure_overall & MEASURE_RMS_TROUGH) s 784 libavfilter/af_astats.c if (s->measure_overall & MEASURE_FLAT_FACTOR) s 786 libavfilter/af_astats.c if (s->measure_overall & MEASURE_PEAK_COUNT) s 787 libavfilter/af_astats.c av_log(ctx, AV_LOG_INFO, "Peak count: %f\n", (min_count + max_count) / (double)s->nb_channels); s 788 libavfilter/af_astats.c if (s->measure_overall & MEASURE_NOISE_FLOOR) s 790 libavfilter/af_astats.c if (s->measure_overall & MEASURE_NOISE_FLOOR_COUNT) s 791 libavfilter/af_astats.c av_log(ctx, AV_LOG_INFO, "Noise floor count: %f\n", noise_floor_count / (double)s->nb_channels); s 792 libavfilter/af_astats.c if (s->measure_overall & MEASURE_BIT_DEPTH) { s 793 libavfilter/af_astats.c bit_depth(s, mask, imask, &depth); s 796 libavfilter/af_astats.c if (s->measure_overall & MEASURE_NUMBER_OF_SAMPLES) s 797 libavfilter/af_astats.c av_log(ctx, AV_LOG_INFO, "Number of samples: %"PRId64"\n", nb_samples / s->nb_channels); s 798 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_overall & MEASURE_NUMBER_OF_NANS) s 799 libavfilter/af_astats.c av_log(ctx, AV_LOG_INFO, "Number of NaNs: %f\n", nb_nans / (float)s->nb_channels); s 800 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_overall & MEASURE_NUMBER_OF_INFS) s 801 libavfilter/af_astats.c av_log(ctx, AV_LOG_INFO, "Number of Infs: %f\n", nb_infs / (float)s->nb_channels); s 802 libavfilter/af_astats.c if ((s->is_float || s->is_double) && s->measure_overall & MEASURE_NUMBER_OF_DENORMALS) s 803 libavfilter/af_astats.c av_log(ctx, AV_LOG_INFO, "Number of denormals: %f\n", nb_denormals / (float)s->nb_channels); s 808 libavfilter/af_astats.c AudioStatsContext *s = ctx->priv; s 810 libavfilter/af_astats.c if (s->nb_channels) s 812 libavfilter/af_astats.c if (s->chstats) { s 813 libavfilter/af_astats.c for (int i = 0; i < s->nb_channels; i++) { s 814 libavfilter/af_astats.c ChannelStats *p = &s->chstats[i]; s 819 libavfilter/af_astats.c av_freep(&s->chstats); s 78 libavfilter/af_asubboost.c ASubBoostContext *s = ctx->priv; s 80 libavfilter/af_asubboost.c double w0 = 2 * M_PI * s->cutoff / inlink->sample_rate; s 81 libavfilter/af_asubboost.c double alpha = sin(w0) / 2 * sqrt(2. * (1. / s->slope - 1.) + 2.); s 83 libavfilter/af_asubboost.c s->a0 = 1 + alpha; s 84 libavfilter/af_asubboost.c s->a1 = -2 * cos(w0); s 85 libavfilter/af_asubboost.c s->a2 = 1 - alpha; s 86 libavfilter/af_asubboost.c s->b0 = (1 - cos(w0)) / 2; s 87 libavfilter/af_asubboost.c s->b1 = 1 - cos(w0); s 88 libavfilter/af_asubboost.c s->b2 = (1 - cos(w0)) / 2; s 90 libavfilter/af_asubboost.c s->a1 /= s->a0; s 91 libavfilter/af_asubboost.c s->a2 /= s->a0; s 92 libavfilter/af_asubboost.c s->b0 /= s->a0; s 93 libavfilter/af_asubboost.c s->b1 /= s->a0; s 94 libavfilter/af_asubboost.c s->b2 /= s->a0; s 96 libavfilter/af_asubboost.c s->buffer_samples = inlink->sample_rate * s->delay / 1000; s 104 libavfilter/af_asubboost.c ASubBoostContext *s = ctx->priv; s 106 libavfilter/af_asubboost.c s->buffer = ff_get_audio_buffer(inlink, inlink->sample_rate / 10); s 107 libavfilter/af_asubboost.c s->i = ff_get_audio_buffer(inlink, 2); s 108 libavfilter/af_asubboost.c s->o = ff_get_audio_buffer(inlink, 2); s 109 libavfilter/af_asubboost.c if (!s->buffer || !s->i || !s->o) s 119 libavfilter/af_asubboost.c ASubBoostContext *s = ctx->priv; s 120 libavfilter/af_asubboost.c const float wet = s->wet_gain, dry = s->dry_gain, feedback = s->feedback, decay = s->decay; s 138 libavfilter/af_asubboost.c double *buffer = (double *)s->buffer->extended_data[ch]; s 139 libavfilter/af_asubboost.c double *ix = (double *)s->i->extended_data[ch]; s 140 libavfilter/af_asubboost.c double *ox = (double *)s->o->extended_data[ch]; s 142 libavfilter/af_asubboost.c write_pos = s->write_pos; s 146 libavfilter/af_asubboost.c out_sample = src[n] * s->b0 + ix[0] * s->b1 + ix[1] * s->b2 - ox[0] * s->a1 - ox[1] * s->a2; s 155 libavfilter/af_asubboost.c if (++write_pos >= s->buffer_samples) s 160 libavfilter/af_asubboost.c s->write_pos = write_pos; s 169 libavfilter/af_asubboost.c ASubBoostContext *s = ctx->priv; s 171 libavfilter/af_asubboost.c av_frame_free(&s->buffer); s 172 libavfilter/af_asubboost.c av_frame_free(&s->i); s 173 libavfilter/af_asubboost.c av_frame_free(&s->o); s 362 libavfilter/af_atempo.c FFTSample s, max, ti, si; \ s 370 libavfilter/af_atempo.c s = FFMIN((FFTSample)scalar_max, \ s 381 libavfilter/af_atempo.c if (s < si) { \ s 382 libavfilter/af_atempo.c s = si; \ s 122 libavfilter/af_axcorrelate.c AudioXCorrelateContext *s = ctx->priv; s 123 libavfilter/af_axcorrelate.c const int size = s->size; s 127 libavfilter/af_axcorrelate.c const float *x = (const float *)s->cache[0]->extended_data[ch]; s 128 libavfilter/af_axcorrelate.c const float *y = (const float *)s->cache[1]->extended_data[ch]; s 129 libavfilter/af_axcorrelate.c float *sumx = (float *)s->mean_sum[0]->extended_data[ch]; s 130 libavfilter/af_axcorrelate.c float *sumy = (float *)s->mean_sum[1]->extended_data[ch]; s 133 libavfilter/af_axcorrelate.c used = s->used; s 155 libavfilter/af_axcorrelate.c AudioXCorrelateContext *s = ctx->priv; s 156 libavfilter/af_axcorrelate.c const int size = s->size; s 160 libavfilter/af_axcorrelate.c const float *x = (const float *)s->cache[0]->extended_data[ch]; s 161 libavfilter/af_axcorrelate.c const float *y = (const float *)s->cache[1]->extended_data[ch]; s 162 libavfilter/af_axcorrelate.c float *num_sum = (float *)s->num_sum->extended_data[ch]; s 163 libavfilter/af_axcorrelate.c float *den_sumx = (float *)s->den_sum[0]->extended_data[ch]; s 164 libavfilter/af_axcorrelate.c float *den_sumy = (float *)s->den_sum[1]->extended_data[ch]; s 167 libavfilter/af_axcorrelate.c used = s->used; s 199 libavfilter/af_axcorrelate.c AudioXCorrelateContext *s = ctx->priv; s 210 libavfilter/af_axcorrelate.c if (s->pts == AV_NOPTS_VALUE) s 211 libavfilter/af_axcorrelate.c s->pts = frame->pts; s 212 libavfilter/af_axcorrelate.c ret = av_audio_fifo_write(s->fifo[i], (void **)frame->extended_data, s 220 libavfilter/af_axcorrelate.c available = FFMIN(av_audio_fifo_size(s->fifo[0]), av_audio_fifo_size(s->fifo[1])); s 221 libavfilter/af_axcorrelate.c if (available > s->size) { s 222 libavfilter/af_axcorrelate.c const int out_samples = available - s->size; s 225 libavfilter/af_axcorrelate.c if (!s->cache[0] || s->cache[0]->nb_samples < available) { s 226 libavfilter/af_axcorrelate.c av_frame_free(&s->cache[0]); s 227 libavfilter/af_axcorrelate.c s->cache[0] = ff_get_audio_buffer(ctx->outputs[0], available); s 228 libavfilter/af_axcorrelate.c if (!s->cache[0]) s 232 libavfilter/af_axcorrelate.c if (!s->cache[1] || s->cache[1]->nb_samples < available) { s 233 libavfilter/af_axcorrelate.c av_frame_free(&s->cache[1]); s 234 libavfilter/af_axcorrelate.c s->cache[1] = ff_get_audio_buffer(ctx->outputs[0], available); s 235 libavfilter/af_axcorrelate.c if (!s->cache[1]) s 239 libavfilter/af_axcorrelate.c ret = av_audio_fifo_peek(s->fifo[0], (void **)s->cache[0]->extended_data, available); s 243 libavfilter/af_axcorrelate.c ret = av_audio_fifo_peek(s->fifo[1], (void **)s->cache[1]->extended_data, available); s 251 libavfilter/af_axcorrelate.c s->used = s->xcorrelate(ctx, out); s 253 libavfilter/af_axcorrelate.c out->pts = s->pts; s 254 libavfilter/af_axcorrelate.c s->pts += out_samples; s 256 libavfilter/af_axcorrelate.c av_audio_fifo_drain(s->fifo[0], out_samples); s 257 libavfilter/af_axcorrelate.c av_audio_fifo_drain(s->fifo[1], out_samples); s 262 libavfilter/af_axcorrelate.c if (av_audio_fifo_size(s->fifo[0]) > s->size && s 263 libavfilter/af_axcorrelate.c av_audio_fifo_size(s->fifo[1]) > s->size) { s 277 libavfilter/af_axcorrelate.c if (av_audio_fifo_size(s->fifo[i]) > s->size) s 291 libavfilter/af_axcorrelate.c AudioXCorrelateContext *s = ctx->priv; s 293 libavfilter/af_axcorrelate.c s->pts = AV_NOPTS_VALUE; s 297 libavfilter/af_axcorrelate.c s->fifo[0] = av_audio_fifo_alloc(outlink->format, outlink->channels, s->size); s 298 libavfilter/af_axcorrelate.c s->fifo[1] = av_audio_fifo_alloc(outlink->format, outlink->channels, s->size); s 299 libavfilter/af_axcorrelate.c if (!s->fifo[0] || !s->fifo[1]) s 302 libavfilter/af_axcorrelate.c s->mean_sum[0] = ff_get_audio_buffer(outlink, 1); s 303 libavfilter/af_axcorrelate.c s->mean_sum[1] = ff_get_audio_buffer(outlink, 1); s 304 libavfilter/af_axcorrelate.c s->num_sum = ff_get_audio_buffer(outlink, 1); s 305 libavfilter/af_axcorrelate.c s->den_sum[0] = ff_get_audio_buffer(outlink, 1); s 306 libavfilter/af_axcorrelate.c s->den_sum[1] = ff_get_audio_buffer(outlink, 1); s 307 libavfilter/af_axcorrelate.c if (!s->mean_sum[0] || !s->mean_sum[1] || !s->num_sum || s 308 libavfilter/af_axcorrelate.c !s->den_sum[0] || !s->den_sum[1]) s 311 libavfilter/af_axcorrelate.c switch (s->algo) { s 312 libavfilter/af_axcorrelate.c case 0: s->xcorrelate = xcorrelate_slow; break; s 313 libavfilter/af_axcorrelate.c case 1: s->xcorrelate = xcorrelate_fast; break; s 321 libavfilter/af_axcorrelate.c AudioXCorrelateContext *s = ctx->priv; s 323 libavfilter/af_axcorrelate.c av_audio_fifo_free(s->fifo[0]); s 324 libavfilter/af_axcorrelate.c av_audio_fifo_free(s->fifo[1]); s 325 libavfilter/af_axcorrelate.c av_frame_free(&s->cache[0]); s 326 libavfilter/af_axcorrelate.c av_frame_free(&s->cache[1]); s 327 libavfilter/af_axcorrelate.c av_frame_free(&s->mean_sum[0]); s 328 libavfilter/af_axcorrelate.c av_frame_free(&s->mean_sum[1]); s 329 libavfilter/af_axcorrelate.c av_frame_free(&s->num_sum); s 330 libavfilter/af_axcorrelate.c av_frame_free(&s->den_sum[0]); s 331 libavfilter/af_axcorrelate.c av_frame_free(&s->den_sum[1]); s 124 libavfilter/af_biquads.c void (*filter)(struct BiquadsContext *s, const void *ibuf, void *obuf, int len, s 132 libavfilter/af_biquads.c BiquadsContext *s = ctx->priv; s 134 libavfilter/af_biquads.c if (s->filter_type != biquad) { s 135 libavfilter/af_biquads.c if (s->frequency <= 0 || s->width <= 0) { s 137 libavfilter/af_biquads.c s->frequency, s->width); s 179 libavfilter/af_biquads.c static void biquad_## name (BiquadsContext *s, \ s 193 libavfilter/af_biquads.c double wet = s->mix; \ s 264 libavfilter/af_biquads.c BiquadsContext *s = ctx->priv; s 266 libavfilter/af_biquads.c double A = ff_exp10(s->gain / 40); s 267 libavfilter/af_biquads.c double w0 = 2 * M_PI * s->frequency / inlink->sample_rate; s 274 libavfilter/af_biquads.c s->frequency, inlink->sample_rate); s 278 libavfilter/af_biquads.c switch (s->width_type) { s 283 libavfilter/af_biquads.c alpha = sin(w0) / (2 * s->frequency / s->width); s 286 libavfilter/af_biquads.c alpha = sin(w0) / (2 * s->frequency / (s->width * 1000)); s 289 libavfilter/af_biquads.c alpha = sin(w0) * sinh(log(2.) / 2 * s->width * w0 / sin(w0)); s 292 libavfilter/af_biquads.c alpha = sin(w0) / (2 * s->width); s 295 libavfilter/af_biquads.c alpha = sin(w0) / 2 * sqrt((A + 1 / A) * (1 / s->width - 1) + 2); s 303 libavfilter/af_biquads.c switch (s->filter_type) { s 307 libavfilter/af_biquads.c s->a0 = 1 + alpha / A; s 308 libavfilter/af_biquads.c s->a1 = -2 * cos(w0); s 309 libavfilter/af_biquads.c s->a2 = 1 - alpha / A; s 310 libavfilter/af_biquads.c s->b0 = 1 + alpha * A; s 311 libavfilter/af_biquads.c s->b1 = -2 * cos(w0); s 312 libavfilter/af_biquads.c s->b2 = 1 - alpha * A; s 317 libavfilter/af_biquads.c s->a0 = (A + 1) + (A - 1) * cos(w0) + beta * alpha; s 318 libavfilter/af_biquads.c s->a1 = -2 * ((A - 1) + (A + 1) * cos(w0)); s 319 libavfilter/af_biquads.c s->a2 = (A + 1) + (A - 1) * cos(w0) - beta * alpha; s 320 libavfilter/af_biquads.c s->b0 = A * ((A + 1) - (A - 1) * cos(w0) + beta * alpha); s 321 libavfilter/af_biquads.c s->b1 = 2 * A * ((A - 1) - (A + 1) * cos(w0)); s 322 libavfilter/af_biquads.c s->b2 = A * ((A + 1) - (A - 1) * cos(w0) - beta * alpha); s 327 libavfilter/af_biquads.c s->a0 = (A + 1) - (A - 1) * cos(w0) + beta * alpha; s 328 libavfilter/af_biquads.c s->a1 = 2 * ((A - 1) - (A + 1) * cos(w0)); s 329 libavfilter/af_biquads.c s->a2 = (A + 1) - (A - 1) * cos(w0) - beta * alpha; s 330 libavfilter/af_biquads.c s->b0 = A * ((A + 1) + (A - 1) * cos(w0) + beta * alpha); s 331 libavfilter/af_biquads.c s->b1 =-2 * A * ((A - 1) + (A + 1) * cos(w0)); s 332 libavfilter/af_biquads.c s->b2 = A * ((A + 1) + (A - 1) * cos(w0) - beta * alpha); s 335 libavfilter/af_biquads.c if (s->csg) { s 336 libavfilter/af_biquads.c s->a0 = 1 + alpha; s 337 libavfilter/af_biquads.c s->a1 = -2 * cos(w0); s 338 libavfilter/af_biquads.c s->a2 = 1 - alpha; s 339 libavfilter/af_biquads.c s->b0 = sin(w0) / 2; s 340 libavfilter/af_biquads.c s->b1 = 0; s 341 libavfilter/af_biquads.c s->b2 = -sin(w0) / 2; s 343 libavfilter/af_biquads.c s->a0 = 1 + alpha; s 344 libavfilter/af_biquads.c s->a1 = -2 * cos(w0); s 345 libavfilter/af_biquads.c s->a2 = 1 - alpha; s 346 libavfilter/af_biquads.c s->b0 = alpha; s 347 libavfilter/af_biquads.c s->b1 = 0; s 348 libavfilter/af_biquads.c s->b2 = -alpha; s 352 libavfilter/af_biquads.c s->a0 = 1 + alpha; s 353 libavfilter/af_biquads.c s->a1 = -2 * cos(w0); s 354 libavfilter/af_biquads.c s->a2 = 1 - alpha; s 355 libavfilter/af_biquads.c s->b0 = 1; s 356 libavfilter/af_biquads.c s->b1 = -2 * cos(w0); s 357 libavfilter/af_biquads.c s->b2 = 1; s 360 libavfilter/af_biquads.c if (s->poles == 1) { s 361 libavfilter/af_biquads.c s->a0 = 1; s 362 libavfilter/af_biquads.c s->a1 = -exp(-w0); s 363 libavfilter/af_biquads.c s->a2 = 0; s 364 libavfilter/af_biquads.c s->b0 = 1 + s->a1; s 365 libavfilter/af_biquads.c s->b1 = 0; s 366 libavfilter/af_biquads.c s->b2 = 0; s 368 libavfilter/af_biquads.c s->a0 = 1 + alpha; s 369 libavfilter/af_biquads.c s->a1 = -2 * cos(w0); s 370 libavfilter/af_biquads.c s->a2 = 1 - alpha; s 371 libavfilter/af_biquads.c s->b0 = (1 - cos(w0)) / 2; s 372 libavfilter/af_biquads.c s->b1 = 1 - cos(w0); s 373 libavfilter/af_biquads.c s->b2 = (1 - cos(w0)) / 2; s 377 libavfilter/af_biquads.c if (s->poles == 1) { s 378 libavfilter/af_biquads.c s->a0 = 1; s 379 libavfilter/af_biquads.c s->a1 = -exp(-w0); s 380 libavfilter/af_biquads.c s->a2 = 0; s 381 libavfilter/af_biquads.c s->b0 = (1 - s->a1) / 2; s 382 libavfilter/af_biquads.c s->b1 = -s->b0; s 383 libavfilter/af_biquads.c s->b2 = 0; s 385 libavfilter/af_biquads.c s->a0 = 1 + alpha; s 386 libavfilter/af_biquads.c s->a1 = -2 * cos(w0); s 387 libavfilter/af_biquads.c s->a2 = 1 - alpha; s 388 libavfilter/af_biquads.c s->b0 = (1 + cos(w0)) / 2; s 389 libavfilter/af_biquads.c s->b1 = -(1 + cos(w0)); s 390 libavfilter/af_biquads.c s->b2 = (1 + cos(w0)) / 2; s 394 libavfilter/af_biquads.c switch (s->order) { s 396 libavfilter/af_biquads.c s->a0 = 1.; s 397 libavfilter/af_biquads.c s->a1 = -(1. - K) / (1. + K); s 398 libavfilter/af_biquads.c s->a2 = 0.; s 399 libavfilter/af_biquads.c s->b0 = s->a1; s 400 libavfilter/af_biquads.c s->b1 = s->a0; s 401 libavfilter/af_biquads.c s->b2 = 0.; s 404 libavfilter/af_biquads.c s->a0 = 1 + alpha; s 405 libavfilter/af_biquads.c s->a1 = -2 * cos(w0); s 406 libavfilter/af_biquads.c s->a2 = 1 - alpha; s 407 libavfilter/af_biquads.c s->b0 = 1 - alpha; s 408 libavfilter/af_biquads.c s->b1 = -2 * cos(w0); s 409 libavfilter/af_biquads.c s->b2 = 1 + alpha; s 417 libavfilter/af_biquads.c av_log(ctx, AV_LOG_VERBOSE, "a=%f %f %f:b=%f %f %f\n", s->a0, s->a1, s->a2, s->b0, s->b1, s->b2); s 419 libavfilter/af_biquads.c s->a1 /= s->a0; s 420 libavfilter/af_biquads.c s->a2 /= s->a0; s 421 libavfilter/af_biquads.c s->b0 /= s->a0; s 422 libavfilter/af_biquads.c s->b1 /= s->a0; s 423 libavfilter/af_biquads.c s->b2 /= s->a0; s 424 libavfilter/af_biquads.c s->a0 /= s->a0; s 426 libavfilter/af_biquads.c if (s->normalize && fabs(s->b0 + s->b1 + s->b2) > 1e-6) { s 427 libavfilter/af_biquads.c double factor = (s->a0 + s->a1 + s->a2) / (s->b0 + s->b1 + s->b2); s 429 libavfilter/af_biquads.c s->b0 *= factor; s 430 libavfilter/af_biquads.c s->b1 *= factor; s 431 libavfilter/af_biquads.c s->b2 *= factor; s 434 libavfilter/af_biquads.c s->cache = av_realloc_f(s->cache, sizeof(ChanCache), inlink->channels); s 435 libavfilter/af_biquads.c if (!s->cache) s 438 libavfilter/af_biquads.c memset(s->cache, 0, sizeof(ChanCache) * inlink->channels); s 441 libavfilter/af_biquads.c case AV_SAMPLE_FMT_S16P: s->filter = biquad_s16; break; s 442 libavfilter/af_biquads.c case AV_SAMPLE_FMT_S32P: s->filter = biquad_s32; break; s 443 libavfilter/af_biquads.c case AV_SAMPLE_FMT_FLTP: s->filter = biquad_flt; break; s 444 libavfilter/af_biquads.c case AV_SAMPLE_FMT_DBLP: s->filter = biquad_dbl; break; s 448 libavfilter/af_biquads.c s->block_align = av_get_bytes_per_sample(inlink->format); s 468 libavfilter/af_biquads.c BiquadsContext *s = ctx->priv; s 474 libavfilter/af_biquads.c if (!((av_channel_layout_extract_channel(inlink->channel_layout, ch) & s->channels))) { s 477 libavfilter/af_biquads.c buf->nb_samples * s->block_align); s 481 libavfilter/af_biquads.c s->filter(s, buf->extended_data[ch], out_buf->extended_data[ch], buf->nb_samples, s 482 libavfilter/af_biquads.c &s->cache[ch].i1, &s->cache[ch].i2, &s->cache[ch].o1, &s->cache[ch].o2, s 483 libavfilter/af_biquads.c s->b0, s->b1, s->b2, s->a1, s->a2, &s->cache[ch].clippings, ctx->is_disabled); s 492 libavfilter/af_biquads.c BiquadsContext *s = ctx->priv; s 514 libavfilter/af_biquads.c if (s->cache[ch].clippings > 0) s 516 libavfilter/af_biquads.c ch, s->cache[ch].clippings); s 517 libavfilter/af_biquads.c s->cache[ch].clippings = 0; s 541 libavfilter/af_biquads.c BiquadsContext *s = ctx->priv; s 543 libavfilter/af_biquads.c av_freep(&s->cache); s 572 libavfilter/af_biquads.c BiquadsContext *s = ctx->priv; \ s 573 libavfilter/af_biquads.c s->class = &name_##_class; \ s 574 libavfilter/af_biquads.c s->filter_type = name_; \ s 122 libavfilter/af_channelmap.c ChannelMapContext *s = ctx->priv; s 130 libavfilter/af_channelmap.c mapping = s->mapping_str; s 178 libavfilter/af_channelmap.c s->map[i].in_channel_idx = in_ch_idx; s 179 libavfilter/af_channelmap.c s->map[i].out_channel_idx = i; s 186 libavfilter/af_channelmap.c s->map[i].in_channel = in_ch; s 187 libavfilter/af_channelmap.c s->map[i].out_channel_idx = i; s 195 libavfilter/af_channelmap.c s->map[i].in_channel_idx = in_ch_idx; s 196 libavfilter/af_channelmap.c s->map[i].out_channel_idx = out_ch_idx; s 205 libavfilter/af_channelmap.c s->map[i].in_channel_idx = in_ch_idx; s 206 libavfilter/af_channelmap.c s->map[i].out_channel = out_ch; s 215 libavfilter/af_channelmap.c s->map[i].in_channel = in_ch; s 216 libavfilter/af_channelmap.c s->map[i].out_channel_idx = out_ch_idx; s 225 libavfilter/af_channelmap.c s->map[i].in_channel = in_ch; s 226 libavfilter/af_channelmap.c s->map[i].out_channel = out_ch; s 231 libavfilter/af_channelmap.c s->mode = mode; s 232 libavfilter/af_channelmap.c s->nch = map_entries; s 233 libavfilter/af_channelmap.c s->output_layout = out_ch_mask ? out_ch_mask : s 236 libavfilter/af_channelmap.c if (s->channel_layout_str) { s 238 libavfilter/af_channelmap.c if ((fmt = av_get_channel_layout(s->channel_layout_str)) == 0) { s 240 libavfilter/af_channelmap.c s->channel_layout_str); s 245 libavfilter/af_channelmap.c s->nch = av_get_channel_layout_nb_channels(fmt); s 246 libavfilter/af_channelmap.c for (i = 0; i < s->nch; i++) { s 247 libavfilter/af_channelmap.c s->map[i].in_channel_idx = i; s 248 libavfilter/af_channelmap.c s->map[i].out_channel_idx = i; s 254 libavfilter/af_channelmap.c s->channel_layout_str, buf); s 256 libavfilter/af_channelmap.c } else if (s->nch != av_get_channel_layout_nb_channels(fmt)) { s 259 libavfilter/af_channelmap.c s->channel_layout_str, s->nch); s 262 libavfilter/af_channelmap.c s->output_layout = fmt; s 264 libavfilter/af_channelmap.c if (!s->output_layout) { s 271 libavfilter/af_channelmap.c for (i = 0; i < s->nch; i++) { s 272 libavfilter/af_channelmap.c s->map[i].out_channel_idx = av_get_channel_layout_channel_index( s 273 libavfilter/af_channelmap.c s->output_layout, s->map[i].out_channel); s 282 libavfilter/af_channelmap.c ChannelMapContext *s = ctx->priv; s 292 libavfilter/af_channelmap.c if ((ret = ff_add_channel_layout (&channel_layouts, s->output_layout )) < 0 || s 311 libavfilter/af_channelmap.c const ChannelMapContext *s = ctx->priv; s 313 libavfilter/af_channelmap.c const int nch_out = s->nch; s 341 libavfilter/af_channelmap.c buf->extended_data[s->map[ch].out_channel_idx] = s 342 libavfilter/af_channelmap.c source_planes[s->map[ch].in_channel_idx]; s 358 libavfilter/af_channelmap.c ChannelMapContext *s = ctx->priv; s 364 libavfilter/af_channelmap.c for (i = 0; i < s->nch; i++) { s 365 libavfilter/af_channelmap.c struct ChannelMap *m = &s->map[i]; s 367 libavfilter/af_channelmap.c if (s->mode == MAP_PAIR_STR_INT || s->mode == MAP_PAIR_STR_STR) { s 59 libavfilter/af_channelsplit.c ChannelSplitContext *s = ctx->priv; s 64 libavfilter/af_channelsplit.c if (!(s->channel_layout = av_get_channel_layout(s->channel_layout_str))) { s 66 libavfilter/af_channelsplit.c s->channel_layout_str); s 72 libavfilter/af_channelsplit.c if (!strcmp(s->channels_str, "all")) { s 73 libavfilter/af_channelsplit.c nb_channels = av_get_channel_layout_nb_channels(s->channel_layout); s 74 libavfilter/af_channelsplit.c channel_layout = s->channel_layout; s 77 libavfilter/af_channelsplit.c if ((ret = av_get_extended_channel_layout(s->channels_str, &channel_layout, &nb_channels)) < 0) s 89 libavfilter/af_channelsplit.c s->map[i] = i; s 91 libavfilter/af_channelsplit.c if ((ret = av_get_channel_layout_channel_index(s->channel_layout, channel)) < 0) { s 93 libavfilter/af_channelsplit.c av_get_channel_name(channel), s->channel_layout_str); s 97 libavfilter/af_channelsplit.c s->map[i] = ret; s 111 libavfilter/af_channelsplit.c ChannelSplitContext *s = ctx->priv; s 119 libavfilter/af_channelsplit.c if ((ret = ff_add_channel_layout(&in_layouts, s->channel_layout)) < 0 || s 125 libavfilter/af_channelsplit.c uint64_t channel = av_channel_layout_extract_channel(s->channel_layout, s->map[i]); s 138 libavfilter/af_channelsplit.c ChannelSplitContext *s = ctx->priv; s 149 libavfilter/af_channelsplit.c buf_out->data[0] = buf_out->extended_data[0] = buf_out->extended_data[s->map[i]]; s 151 libavfilter/af_channelsplit.c av_channel_layout_extract_channel(buf->channel_layout, s->map[i]); s 108 libavfilter/af_chorus.c ChorusContext *s = ctx->priv; s 111 libavfilter/af_chorus.c if (!s->delays_str || !s->decays_str || !s->speeds_str || !s->depths_str) { s 116 libavfilter/af_chorus.c count_items(s->delays_str, &nb_delays); s 117 libavfilter/af_chorus.c count_items(s->decays_str, &nb_decays); s 118 libavfilter/af_chorus.c count_items(s->speeds_str, &nb_speeds); s 119 libavfilter/af_chorus.c count_items(s->depths_str, &nb_depths); s 121 libavfilter/af_chorus.c s->delays = av_realloc_f(s->delays, nb_delays, sizeof(*s->delays)); s 122 libavfilter/af_chorus.c s->decays = av_realloc_f(s->decays, nb_decays, sizeof(*s->decays)); s 123 libavfilter/af_chorus.c s->speeds = av_realloc_f(s->speeds, nb_speeds, sizeof(*s->speeds)); s 124 libavfilter/af_chorus.c s->depths = av_realloc_f(s->depths, nb_depths, sizeof(*s->depths)); s 126 libavfilter/af_chorus.c if (!s->delays || !s->decays || !s->speeds || !s->depths) s 129 libavfilter/af_chorus.c fill_items(s->delays_str, &nb_delays, s->delays); s 130 libavfilter/af_chorus.c fill_items(s->decays_str, &nb_decays, s->decays); s 131 libavfilter/af_chorus.c fill_items(s->speeds_str, &nb_speeds, s->speeds); s 132 libavfilter/af_chorus.c fill_items(s->depths_str, &nb_depths, s->depths); s 139 libavfilter/af_chorus.c s->num_chorus = nb_delays; s 141 libavfilter/af_chorus.c if (s->num_chorus < 1) { s 146 libavfilter/af_chorus.c s->length = av_calloc(s->num_chorus, sizeof(*s->length)); s 147 libavfilter/af_chorus.c s->lookup_table = av_calloc(s->num_chorus, sizeof(*s->lookup_table)); s 149 libavfilter/af_chorus.c if (!s->length || !s->lookup_table) s 152 libavfilter/af_chorus.c s->next_pts = AV_NOPTS_VALUE; s 189 libavfilter/af_chorus.c ChorusContext *s = ctx->priv; s 193 libavfilter/af_chorus.c s->channels = outlink->channels; s 195 libavfilter/af_chorus.c for (n = 0; n < s->num_chorus; n++) { s 196 libavfilter/af_chorus.c int samples = (int) ((s->delays[n] + s->depths[n]) * outlink->sample_rate / 1000.0); s 197 libavfilter/af_chorus.c int depth_samples = (int) (s->depths[n] * outlink->sample_rate / 1000.0); s 199 libavfilter/af_chorus.c s->length[n] = outlink->sample_rate / s->speeds[n]; s 201 libavfilter/af_chorus.c s->lookup_table[n] = av_malloc(sizeof(int32_t) * s->length[n]); s 202 libavfilter/af_chorus.c if (!s->lookup_table[n]) s 205 libavfilter/af_chorus.c ff_generate_wave_table(WAVE_SIN, AV_SAMPLE_FMT_S32, s->lookup_table[n], s 206 libavfilter/af_chorus.c s->length[n], 0., depth_samples, 0); s 207 libavfilter/af_chorus.c s->max_samples = FFMAX(s->max_samples, samples); s 210 libavfilter/af_chorus.c for (n = 0; n < s->num_chorus; n++) s 211 libavfilter/af_chorus.c sum_in_volume += s->decays[n]; s 213 libavfilter/af_chorus.c if (s->in_gain * (sum_in_volume) > 1.0 / s->out_gain) s 216 libavfilter/af_chorus.c s->counter = av_calloc(outlink->channels, sizeof(*s->counter)); s 217 libavfilter/af_chorus.c if (!s->counter) s 220 libavfilter/af_chorus.c s->phase = av_calloc(outlink->channels, sizeof(*s->phase)); s 221 libavfilter/af_chorus.c if (!s->phase) s 225 libavfilter/af_chorus.c s->phase[n] = av_calloc(s->num_chorus, sizeof(int)); s 226 libavfilter/af_chorus.c if (!s->phase[n]) s 230 libavfilter/af_chorus.c s->fade_out = s->max_samples; s 232 libavfilter/af_chorus.c return av_samples_alloc_array_and_samples(&s->chorusbuf, NULL, s 234 libavfilter/af_chorus.c s->max_samples, s 243 libavfilter/af_chorus.c ChorusContext *s = ctx->priv; s 261 libavfilter/af_chorus.c float *chorusbuf = (float *)s->chorusbuf[c]; s 262 libavfilter/af_chorus.c int *phase = s->phase[c]; s 267 libavfilter/af_chorus.c out = in * s->in_gain; s 269 libavfilter/af_chorus.c for (n = 0; n < s->num_chorus; n++) { s 270 libavfilter/af_chorus.c out += chorusbuf[MOD(s->max_samples + s->counter[c] - s 271 libavfilter/af_chorus.c s->lookup_table[n][phase[n]], s 272 libavfilter/af_chorus.c s->max_samples)] * s->decays[n]; s 273 libavfilter/af_chorus.c phase[n] = MOD(phase[n] + 1, s->length[n]); s 276 libavfilter/af_chorus.c out *= s->out_gain; s 280 libavfilter/af_chorus.c chorusbuf[s->counter[c]] = in; s 281 libavfilter/af_chorus.c s->counter[c] = MOD(s->counter[c] + 1, s->max_samples); s 285 libavfilter/af_chorus.c s->next_pts = frame->pts + av_rescale_q(frame->nb_samples, (AVRational){1, inlink->sample_rate}, inlink->time_base); s 296 libavfilter/af_chorus.c ChorusContext *s = ctx->priv; s 301 libavfilter/af_chorus.c if (ret == AVERROR_EOF && !ctx->is_disabled && s->fade_out) { s 302 libavfilter/af_chorus.c int nb_samples = FFMIN(s->fade_out, 2048); s 308 libavfilter/af_chorus.c s->fade_out -= nb_samples; s 315 libavfilter/af_chorus.c frame->pts = s->next_pts; s 316 libavfilter/af_chorus.c if (s->next_pts != AV_NOPTS_VALUE) s 317 libavfilter/af_chorus.c s->next_pts += av_rescale_q(nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 327 libavfilter/af_chorus.c ChorusContext *s = ctx->priv; s 330 libavfilter/af_chorus.c av_freep(&s->delays); s 331 libavfilter/af_chorus.c av_freep(&s->decays); s 332 libavfilter/af_chorus.c av_freep(&s->speeds); s 333 libavfilter/af_chorus.c av_freep(&s->depths); s 335 libavfilter/af_chorus.c if (s->chorusbuf) s 336 libavfilter/af_chorus.c av_freep(&s->chorusbuf[0]); s 337 libavfilter/af_chorus.c av_freep(&s->chorusbuf); s 339 libavfilter/af_chorus.c if (s->phase) s 340 libavfilter/af_chorus.c for (n = 0; n < s->channels; n++) s 341 libavfilter/af_chorus.c av_freep(&s->phase[n]); s 342 libavfilter/af_chorus.c av_freep(&s->phase); s 344 libavfilter/af_chorus.c av_freep(&s->counter); s 345 libavfilter/af_chorus.c av_freep(&s->length); s 347 libavfilter/af_chorus.c if (s->lookup_table) s 348 libavfilter/af_chorus.c for (n = 0; n < s->num_chorus; n++) s 349 libavfilter/af_chorus.c av_freep(&s->lookup_table[n]); s 350 libavfilter/af_chorus.c av_freep(&s->lookup_table); s 89 libavfilter/af_compand.c CompandContext *s = ctx->priv; s 90 libavfilter/af_compand.c s->pts = AV_NOPTS_VALUE; s 96 libavfilter/af_compand.c CompandContext *s = ctx->priv; s 98 libavfilter/af_compand.c av_freep(&s->channels); s 99 libavfilter/af_compand.c av_freep(&s->segments); s 100 libavfilter/af_compand.c av_frame_free(&s->delay_frame); s 154 libavfilter/af_compand.c static double get_volume(CompandContext *s, double in_lin) s 160 libavfilter/af_compand.c if (in_lin < s->in_min_lin) s 161 libavfilter/af_compand.c return s->out_min_lin; s 165 libavfilter/af_compand.c for (i = 1; i < s->nb_segments; i++) s 166 libavfilter/af_compand.c if (in_log <= s->segments[i].x) s 168 libavfilter/af_compand.c cs = &s->segments[i - 1]; s 177 libavfilter/af_compand.c CompandContext *s = ctx->priv; s 204 libavfilter/af_compand.c ChanParam *cp = &s->channels[chan]; s 209 libavfilter/af_compand.c dst[i] = src[i] * get_volume(s, cp->volume); s 223 libavfilter/af_compand.c CompandContext *s = ctx->priv; s 231 libavfilter/af_compand.c if (s->pts == AV_NOPTS_VALUE) { s 232 libavfilter/af_compand.c s->pts = (frame->pts == AV_NOPTS_VALUE) ? 0 : frame->pts; s 238 libavfilter/af_compand.c AVFrame *delay_frame = s->delay_frame; s 241 libavfilter/af_compand.c ChanParam *cp = &s->channels[chan]; s 244 libavfilter/af_compand.c count = s->delay_count; s 245 libavfilter/af_compand.c dindex = s->delay_index; s 250 libavfilter/af_compand.c if (count >= s->delay_samples) { s 263 libavfilter/af_compand.c out_frame->pts = s->pts; s 264 libavfilter/af_compand.c s->pts += av_rescale_q(nb_samples - i, s 270 libavfilter/af_compand.c dst[oindex++] = dbuf[dindex] * get_volume(s, cp->volume); s 276 libavfilter/af_compand.c dindex = MOD(dindex + 1, s->delay_samples); s 280 libavfilter/af_compand.c s->delay_count = count; s 281 libavfilter/af_compand.c s->delay_index = dindex; s 296 libavfilter/af_compand.c CompandContext *s = ctx->priv; s 302 libavfilter/af_compand.c frame = ff_get_audio_buffer(outlink, FFMIN(2048, s->delay_count)); s 305 libavfilter/af_compand.c frame->pts = s->pts; s 306 libavfilter/af_compand.c s->pts += av_rescale_q(frame->nb_samples, s 311 libavfilter/af_compand.c AVFrame *delay_frame = s->delay_frame; s 314 libavfilter/af_compand.c ChanParam *cp = &s->channels[chan]; s 316 libavfilter/af_compand.c dindex = s->delay_index; s 318 libavfilter/af_compand.c dst[i] = dbuf[dindex] * get_volume(s, cp->volume); s 319 libavfilter/af_compand.c dindex = MOD(dindex + 1, s->delay_samples); s 322 libavfilter/af_compand.c s->delay_count -= frame->nb_samples; s 323 libavfilter/af_compand.c s->delay_index = dindex; s 331 libavfilter/af_compand.c CompandContext *s = ctx->priv; s 333 libavfilter/af_compand.c double radius = s->curve_dB * M_LN10 / 20.0; s 342 libavfilter/af_compand.c count_items(s->attacks, &nb_attacks); s 343 libavfilter/af_compand.c count_items(s->decays, &nb_decays); s 344 libavfilter/af_compand.c count_items(s->points, &nb_points); s 360 libavfilter/af_compand.c s->channels = av_mallocz_array(channels, sizeof(*s->channels)); s 361 libavfilter/af_compand.c s->nb_segments = (nb_points + 4) * 2; s 362 libavfilter/af_compand.c s->segments = av_mallocz_array(s->nb_segments, sizeof(*s->segments)); s 364 libavfilter/af_compand.c if (!s->channels || !s->segments) { s 369 libavfilter/af_compand.c p = s->attacks; s 377 libavfilter/af_compand.c new_nb_items += sscanf(tstr, "%lf", &s->channels[i].attack) == 1; s 378 libavfilter/af_compand.c if (s->channels[i].attack < 0) { s 385 libavfilter/af_compand.c p = s->decays; s 393 libavfilter/af_compand.c new_nb_items += sscanf(tstr, "%lf", &s->channels[i].decay) == 1; s 394 libavfilter/af_compand.c if (s->channels[i].decay < 0) { s 410 libavfilter/af_compand.c s->channels[i].attack = s->channels[nb_decays - 1].attack; s 411 libavfilter/af_compand.c s->channels[i].decay = s->channels[nb_decays - 1].decay; s 414 libavfilter/af_compand.c #define S(x) s->segments[2 * ((x) + 1)] s 415 libavfilter/af_compand.c p = s->points; s 442 libavfilter/af_compand.c #define S(x) s->segments[2 * (x)] s 444 libavfilter/af_compand.c S(0).x = S(1).x - 2 * s->curve_dB; s 461 libavfilter/af_compand.c for (i = 0; i < s->nb_segments; i += 2) { s 462 libavfilter/af_compand.c s->segments[i].y += s->gain_dB; s 463 libavfilter/af_compand.c s->segments[i].x *= M_LN10 / 20; s 464 libavfilter/af_compand.c s->segments[i].y *= M_LN10 / 20; s 467 libavfilter/af_compand.c #define L(x) s->segments[i - (x)] s 468 libavfilter/af_compand.c for (i = 4; i < s->nb_segments; i += 2) { s 505 libavfilter/af_compand.c s->in_min_lin = exp(s->segments[1].x); s 506 libavfilter/af_compand.c s->out_min_lin = exp(s->segments[1].y); s 509 libavfilter/af_compand.c ChanParam *cp = &s->channels[i]; s 519 libavfilter/af_compand.c cp->volume = ff_exp10(s->initial_volume / 20); s 522 libavfilter/af_compand.c s->delay_samples = s->delay * sample_rate; s 523 libavfilter/af_compand.c if (s->delay_samples <= 0) { s 524 libavfilter/af_compand.c s->compand = compand_nodelay; s 528 libavfilter/af_compand.c s->delay_frame = av_frame_alloc(); s 529 libavfilter/af_compand.c if (!s->delay_frame) { s 534 libavfilter/af_compand.c s->delay_frame->format = outlink->format; s 535 libavfilter/af_compand.c s->delay_frame->nb_samples = s->delay_samples; s 536 libavfilter/af_compand.c s->delay_frame->channel_layout = outlink->channel_layout; s 538 libavfilter/af_compand.c err = av_frame_get_buffer(s->delay_frame, 0); s 542 libavfilter/af_compand.c s->compand = compand_delay; s 549 libavfilter/af_compand.c CompandContext *s = ctx->priv; s 551 libavfilter/af_compand.c return s->compand(ctx, frame); s 557 libavfilter/af_compand.c CompandContext *s = ctx->priv; s 562 libavfilter/af_compand.c if (ret == AVERROR_EOF && !ctx->is_disabled && s->delay_count) s 99 libavfilter/af_compensationdelay.c CompensationDelayContext *s = ctx->priv; s 102 libavfilter/af_compensationdelay.c s->delay = (s->distance_m * 100. + s->distance_cm * 1. + s->distance_mm * .1) * s 103 libavfilter/af_compensationdelay.c COMP_DELAY_SOUND_FRONT_DELAY(s->temp) * inlink->sample_rate; s 109 libavfilter/af_compensationdelay.c s->delay_frame = av_frame_alloc(); s 110 libavfilter/af_compensationdelay.c if (!s->delay_frame) s 113 libavfilter/af_compensationdelay.c s->buf_size = new_size; s 114 libavfilter/af_compensationdelay.c s->delay_frame->format = inlink->format; s 115 libavfilter/af_compensationdelay.c s->delay_frame->nb_samples = new_size; s 116 libavfilter/af_compensationdelay.c s->delay_frame->channel_layout = inlink->channel_layout; s 118 libavfilter/af_compensationdelay.c return av_frame_get_buffer(s->delay_frame, 0); s 124 libavfilter/af_compensationdelay.c CompensationDelayContext *s = ctx->priv; s 125 libavfilter/af_compensationdelay.c const unsigned b_mask = s->buf_size - 1; s 126 libavfilter/af_compensationdelay.c const unsigned buf_size = s->buf_size; s 127 libavfilter/af_compensationdelay.c const unsigned delay = s->delay; s 128 libavfilter/af_compensationdelay.c const double dry = s->dry; s 129 libavfilter/af_compensationdelay.c const double wet = s->wet; s 144 libavfilter/af_compensationdelay.c double *buffer = (double *)s->delay_frame->extended_data[ch]; s 146 libavfilter/af_compensationdelay.c w_ptr = s->w_ptr; s 158 libavfilter/af_compensationdelay.c s->w_ptr = w_ptr; s 166 libavfilter/af_compensationdelay.c CompensationDelayContext *s = ctx->priv; s 168 libavfilter/af_compensationdelay.c av_frame_free(&s->delay_frame); s 61 libavfilter/af_crossfeed.c CrossfeedContext *s = ctx->priv; s 62 libavfilter/af_crossfeed.c double A = ff_exp10(s->strength * -30 / 40); s 63 libavfilter/af_crossfeed.c double w0 = 2 * M_PI * (1. - s->range) * 2100 / inlink->sample_rate; s 66 libavfilter/af_crossfeed.c alpha = sin(w0) / 2 * sqrt((A + 1 / A) * (1 / s->slope - 1) + 2); s 68 libavfilter/af_crossfeed.c s->a0 = (A + 1) + (A - 1) * cos(w0) + 2 * sqrt(A) * alpha; s 69 libavfilter/af_crossfeed.c s->a1 = -2 * ((A - 1) + (A + 1) * cos(w0)); s 70 libavfilter/af_crossfeed.c s->a2 = (A + 1) + (A - 1) * cos(w0) - 2 * sqrt(A) * alpha; s 71 libavfilter/af_crossfeed.c s->b0 = A * ((A + 1) - (A - 1) * cos(w0) + 2 * sqrt(A) * alpha); s 72 libavfilter/af_crossfeed.c s->b1 = 2 * A * ((A - 1) - (A + 1) * cos(w0)); s 73 libavfilter/af_crossfeed.c s->b2 = A * ((A + 1) - (A - 1) * cos(w0) - 2 * sqrt(A) * alpha); s 75 libavfilter/af_crossfeed.c s->a1 /= s->a0; s 76 libavfilter/af_crossfeed.c s->a2 /= s->a0; s 77 libavfilter/af_crossfeed.c s->b0 /= s->a0; s 78 libavfilter/af_crossfeed.c s->b1 /= s->a0; s 79 libavfilter/af_crossfeed.c s->b2 /= s->a0; s 88 libavfilter/af_crossfeed.c CrossfeedContext *s = ctx->priv; s 90 libavfilter/af_crossfeed.c const double level_in = s->level_in; s 91 libavfilter/af_crossfeed.c const double level_out = s->level_out; s 92 libavfilter/af_crossfeed.c const double b0 = s->b0; s 93 libavfilter/af_crossfeed.c const double b1 = s->b1; s 94 libavfilter/af_crossfeed.c const double b2 = s->b2; s 95 libavfilter/af_crossfeed.c const double a1 = s->a1; s 96 libavfilter/af_crossfeed.c const double a2 = s->a2; s 116 libavfilter/af_crossfeed.c double oside = side * b0 + s->i1 * b1 + s->i2 * b2 - s->o1 * a1 - s->o2 * a2; s 118 libavfilter/af_crossfeed.c s->i2 = s->i1; s 119 libavfilter/af_crossfeed.c s->i1 = side; s 120 libavfilter/af_crossfeed.c s->o2 = s->o1; s 121 libavfilter/af_crossfeed.c s->o1 = oside; s 79 libavfilter/af_crystalizer.c const void **s; s 91 libavfilter/af_crystalizer.c const void **s = td->s; s 102 libavfilter/af_crystalizer.c const float *src = s[0]; s 126 libavfilter/af_crystalizer.c const void **s = td->s; s 137 libavfilter/af_crystalizer.c const double *src = s[0]; s 162 libavfilter/af_crystalizer.c const void **s = td->s; s 172 libavfilter/af_crystalizer.c const float *src = s[c]; s 195 libavfilter/af_crystalizer.c const void **s = td->s; s 205 libavfilter/af_crystalizer.c const double *src = s[c]; s 226 libavfilter/af_crystalizer.c CrystalizerContext *s = ctx->priv; s 229 libavfilter/af_crystalizer.c case AV_SAMPLE_FMT_FLT: s->filter = filter_flt; break; s 230 libavfilter/af_crystalizer.c case AV_SAMPLE_FMT_DBL: s->filter = filter_dbl; break; s 231 libavfilter/af_crystalizer.c case AV_SAMPLE_FMT_FLTP: s->filter = filter_fltp; break; s 232 libavfilter/af_crystalizer.c case AV_SAMPLE_FMT_DBLP: s->filter = filter_dblp; break; s 242 libavfilter/af_crystalizer.c CrystalizerContext *s = ctx->priv; s 246 libavfilter/af_crystalizer.c if (!s->prev) { s 247 libavfilter/af_crystalizer.c s->prev = ff_get_audio_buffer(inlink, 1); s 248 libavfilter/af_crystalizer.c if (!s->prev) { s 266 libavfilter/af_crystalizer.c td.s = (const void **)in->extended_data; s 267 libavfilter/af_crystalizer.c td.p = (void **)s->prev->extended_data; s 270 libavfilter/af_crystalizer.c td.mult = ctx->is_disabled ? 0.f : s->mult; s 271 libavfilter/af_crystalizer.c td.clip = s->clip; s 272 libavfilter/af_crystalizer.c ctx->internal->execute(ctx, s->filter, &td, NULL, FFMIN(inlink->channels, s 283 libavfilter/af_crystalizer.c CrystalizerContext *s = ctx->priv; s 285 libavfilter/af_crystalizer.c av_frame_free(&s->prev); s 48 libavfilter/af_dcshift.c DCShiftContext *s = ctx->priv; s 50 libavfilter/af_dcshift.c s->limiterthreshold = INT32_MAX * (1.0 - (fabs(s->dcshift) - s->limitergain)); s 89 libavfilter/af_dcshift.c DCShiftContext *s = ctx->priv; s 91 libavfilter/af_dcshift.c double dcshift = s->dcshift; s 104 libavfilter/af_dcshift.c if (s->limitergain > 0) { s 114 libavfilter/af_dcshift.c if (d > s->limiterthreshold && dcshift > 0) { s 115 libavfilter/af_dcshift.c d = (d - s->limiterthreshold) * s->limitergain / s 116 libavfilter/af_dcshift.c (INT32_MAX - s->limiterthreshold) + s 117 libavfilter/af_dcshift.c s->limiterthreshold + dcshift; s 118 libavfilter/af_dcshift.c } else if (d < -s->limiterthreshold && dcshift < 0) { s 119 libavfilter/af_dcshift.c d = (d + s->limiterthreshold) * s->limitergain / s 120 libavfilter/af_dcshift.c (INT32_MAX - s->limiterthreshold) - s 121 libavfilter/af_dcshift.c s->limiterthreshold + dcshift; s 103 libavfilter/af_deesser.c DeesserContext *s = ctx->priv; s 105 libavfilter/af_deesser.c s->chan = av_calloc(inlink->channels, sizeof(*s->chan)); s 106 libavfilter/af_deesser.c if (!s->chan) s 110 libavfilter/af_deesser.c DeesserChannel *chan = &s->chan[i]; s 122 libavfilter/af_deesser.c DeesserContext *s = ctx->priv; s 137 libavfilter/af_deesser.c DeesserChannel *dec = &s->chan[ch]; s 141 libavfilter/af_deesser.c double intensity = pow(s->intensity, 5) * (8192 / overallscale); s 142 libavfilter/af_deesser.c double maxdess = 1.0 / pow(10.0, ((s->max - 1.0) * 48.0) / 20); s 143 libavfilter/af_deesser.c double iirAmount = pow(s->frequency, 2) / overallscale; s 195 libavfilter/af_deesser.c switch (s->mode) { s 211 libavfilter/af_deesser.c DeesserContext *s = ctx->priv; s 213 libavfilter/af_deesser.c av_freep(&s->chan); s 88 libavfilter/af_drmeter.c DRMeterContext *s = outlink->src->priv; s 90 libavfilter/af_drmeter.c s->chstats = av_calloc(sizeof(*s->chstats), outlink->channels); s 91 libavfilter/af_drmeter.c if (!s->chstats) s 93 libavfilter/af_drmeter.c s->nb_channels = outlink->channels; s 94 libavfilter/af_drmeter.c s->tc_samples = s->time_constant * outlink->sample_rate + .5; s 117 libavfilter/af_drmeter.c static void update_stat(DRMeterContext *s, ChannelStats *p, float sample) s 119 libavfilter/af_drmeter.c if (p->nb_samples >= s->tc_samples) { s 130 libavfilter/af_drmeter.c DRMeterContext *s = inlink->dst->priv; s 131 libavfilter/af_drmeter.c const int channels = s->nb_channels; s 137 libavfilter/af_drmeter.c ChannelStats *p = &s->chstats[c]; s 141 libavfilter/af_drmeter.c update_stat(s, p, *src); s 149 libavfilter/af_drmeter.c update_stat(s, &s->chstats[c], *src); s 161 libavfilter/af_drmeter.c DRMeterContext *s = ctx->priv; s 165 libavfilter/af_drmeter.c for (ch = 0; ch < s->nb_channels; ch++) { s 166 libavfilter/af_drmeter.c ChannelStats *p = &s->chstats[ch]; s 194 libavfilter/af_drmeter.c av_log(ctx, AV_LOG_INFO, "Overall DR: %.1f\n", dr / s->nb_channels); s 199 libavfilter/af_drmeter.c DRMeterContext *s = ctx->priv; s 201 libavfilter/af_drmeter.c if (s->nb_channels) s 203 libavfilter/af_drmeter.c av_freep(&s->chstats); s 120 libavfilter/af_dynaudnorm.c DynamicAudioNormalizerContext *s = ctx->priv; s 122 libavfilter/af_dynaudnorm.c if (!(s->filter_size & 1)) { s 123 libavfilter/af_dynaudnorm.c av_log(ctx, AV_LOG_WARNING, "filter size %d is invalid. Changing to an odd value.\n", s->filter_size); s 124 libavfilter/af_dynaudnorm.c s->filter_size |= 1; s 266 libavfilter/af_dynaudnorm.c static void init_gaussian_filter(DynamicAudioNormalizerContext *s) s 269 libavfilter/af_dynaudnorm.c const double sigma = (((s->filter_size / 2.0) - 1.0) / 3.0) + (1.0 / 3.0); s 274 libavfilter/af_dynaudnorm.c const int offset = s->filter_size / 2; s 279 libavfilter/af_dynaudnorm.c for (i = 0; i < s->filter_size; i++) { s 282 libavfilter/af_dynaudnorm.c s->weights[i] = c1 * exp(-x * x / c2); s 283 libavfilter/af_dynaudnorm.c total_weight += s->weights[i]; s 288 libavfilter/af_dynaudnorm.c for (i = 0; i < s->filter_size; i++) { s 289 libavfilter/af_dynaudnorm.c s->weights[i] *= adjust; s 295 libavfilter/af_dynaudnorm.c DynamicAudioNormalizerContext *s = ctx->priv; s 298 libavfilter/af_dynaudnorm.c av_freep(&s->prev_amplification_factor); s 299 libavfilter/af_dynaudnorm.c av_freep(&s->dc_correction_value); s 300 libavfilter/af_dynaudnorm.c av_freep(&s->compress_threshold); s 302 libavfilter/af_dynaudnorm.c for (c = 0; c < s->channels; c++) { s 303 libavfilter/af_dynaudnorm.c if (s->gain_history_original) s 304 libavfilter/af_dynaudnorm.c cqueue_free(s->gain_history_original[c]); s 305 libavfilter/af_dynaudnorm.c if (s->gain_history_minimum) s 306 libavfilter/af_dynaudnorm.c cqueue_free(s->gain_history_minimum[c]); s 307 libavfilter/af_dynaudnorm.c if (s->gain_history_smoothed) s 308 libavfilter/af_dynaudnorm.c cqueue_free(s->gain_history_smoothed[c]); s 309 libavfilter/af_dynaudnorm.c if (s->threshold_history) s 310 libavfilter/af_dynaudnorm.c cqueue_free(s->threshold_history[c]); s 313 libavfilter/af_dynaudnorm.c av_freep(&s->gain_history_original); s 314 libavfilter/af_dynaudnorm.c av_freep(&s->gain_history_minimum); s 315 libavfilter/af_dynaudnorm.c av_freep(&s->gain_history_smoothed); s 316 libavfilter/af_dynaudnorm.c av_freep(&s->threshold_history); s 318 libavfilter/af_dynaudnorm.c cqueue_free(s->is_enabled); s 319 libavfilter/af_dynaudnorm.c s->is_enabled = NULL; s 321 libavfilter/af_dynaudnorm.c av_freep(&s->weights); s 323 libavfilter/af_dynaudnorm.c ff_bufqueue_discard_all(&s->queue); s 329 libavfilter/af_dynaudnorm.c DynamicAudioNormalizerContext *s = ctx->priv; s 334 libavfilter/af_dynaudnorm.c s->channels = inlink->channels; s 335 libavfilter/af_dynaudnorm.c s->frame_len = frame_size(inlink->sample_rate, s->frame_len_msec); s 336 libavfilter/af_dynaudnorm.c av_log(ctx, AV_LOG_DEBUG, "frame len %d\n", s->frame_len); s 338 libavfilter/af_dynaudnorm.c s->prev_amplification_factor = av_malloc_array(inlink->channels, sizeof(*s->prev_amplification_factor)); s 339 libavfilter/af_dynaudnorm.c s->dc_correction_value = av_calloc(inlink->channels, sizeof(*s->dc_correction_value)); s 340 libavfilter/af_dynaudnorm.c s->compress_threshold = av_calloc(inlink->channels, sizeof(*s->compress_threshold)); s 341 libavfilter/af_dynaudnorm.c s->gain_history_original = av_calloc(inlink->channels, sizeof(*s->gain_history_original)); s 342 libavfilter/af_dynaudnorm.c s->gain_history_minimum = av_calloc(inlink->channels, sizeof(*s->gain_history_minimum)); s 343 libavfilter/af_dynaudnorm.c s->gain_history_smoothed = av_calloc(inlink->channels, sizeof(*s->gain_history_smoothed)); s 344 libavfilter/af_dynaudnorm.c s->threshold_history = av_calloc(inlink->channels, sizeof(*s->threshold_history)); s 345 libavfilter/af_dynaudnorm.c s->weights = av_malloc_array(MAX_FILTER_SIZE, sizeof(*s->weights)); s 346 libavfilter/af_dynaudnorm.c s->is_enabled = cqueue_create(s->filter_size, MAX_FILTER_SIZE); s 347 libavfilter/af_dynaudnorm.c if (!s->prev_amplification_factor || !s->dc_correction_value || s 348 libavfilter/af_dynaudnorm.c !s->compress_threshold || s 349 libavfilter/af_dynaudnorm.c !s->gain_history_original || !s->gain_history_minimum || s 350 libavfilter/af_dynaudnorm.c !s->gain_history_smoothed || !s->threshold_history || s 351 libavfilter/af_dynaudnorm.c !s->is_enabled || !s->weights) s 355 libavfilter/af_dynaudnorm.c s->prev_amplification_factor[c] = 1.0; s 357 libavfilter/af_dynaudnorm.c s->gain_history_original[c] = cqueue_create(s->filter_size, MAX_FILTER_SIZE); s 358 libavfilter/af_dynaudnorm.c s->gain_history_minimum[c] = cqueue_create(s->filter_size, MAX_FILTER_SIZE); s 359 libavfilter/af_dynaudnorm.c s->gain_history_smoothed[c] = cqueue_create(s->filter_size, MAX_FILTER_SIZE); s 360 libavfilter/af_dynaudnorm.c s->threshold_history[c] = cqueue_create(s->filter_size, MAX_FILTER_SIZE); s 362 libavfilter/af_dynaudnorm.c if (!s->gain_history_original[c] || !s->gain_history_minimum[c] || s 363 libavfilter/af_dynaudnorm.c !s->gain_history_smoothed[c] || !s->threshold_history[c]) s 367 libavfilter/af_dynaudnorm.c init_gaussian_filter(s); s 440 libavfilter/af_dynaudnorm.c static local_gain get_max_local_gain(DynamicAudioNormalizerContext *s, AVFrame *frame, s 444 libavfilter/af_dynaudnorm.c const double maximum_gain = s->peak_value / peak_magnitude; s 445 libavfilter/af_dynaudnorm.c const double rms_gain = s->target_rms > DBL_EPSILON ? (s->target_rms / compute_frame_rms(frame, channel)) : DBL_MAX; s 448 libavfilter/af_dynaudnorm.c gain.threshold = peak_magnitude > s->threshold; s 449 libavfilter/af_dynaudnorm.c gain.max_gain = bound(s->max_amplification, FFMIN(maximum_gain, rms_gain)); s 466 libavfilter/af_dynaudnorm.c static double gaussian_filter(DynamicAudioNormalizerContext *s, cqueue *q, cqueue *tq) s 472 libavfilter/af_dynaudnorm.c tsum += cqueue_peek(tq, i) * s->weights[i]; s 473 libavfilter/af_dynaudnorm.c result += cqueue_peek(q, i) * s->weights[i] * cqueue_peek(tq, i); s 482 libavfilter/af_dynaudnorm.c static void update_gain_history(DynamicAudioNormalizerContext *s, int channel, s 485 libavfilter/af_dynaudnorm.c if (cqueue_empty(s->gain_history_original[channel])) { s 486 libavfilter/af_dynaudnorm.c const int pre_fill_size = s->filter_size / 2; s 487 libavfilter/af_dynaudnorm.c const double initial_value = s->alt_boundary_mode ? gain.max_gain : s->peak_value; s 489 libavfilter/af_dynaudnorm.c s->prev_amplification_factor[channel] = initial_value; s 491 libavfilter/af_dynaudnorm.c while (cqueue_size(s->gain_history_original[channel]) < pre_fill_size) { s 492 libavfilter/af_dynaudnorm.c cqueue_enqueue(s->gain_history_original[channel], initial_value); s 493 libavfilter/af_dynaudnorm.c cqueue_enqueue(s->threshold_history[channel], gain.threshold); s 497 libavfilter/af_dynaudnorm.c cqueue_enqueue(s->gain_history_original[channel], gain.max_gain); s 499 libavfilter/af_dynaudnorm.c while (cqueue_size(s->gain_history_original[channel]) >= s->filter_size) { s 502 libavfilter/af_dynaudnorm.c if (cqueue_empty(s->gain_history_minimum[channel])) { s 503 libavfilter/af_dynaudnorm.c const int pre_fill_size = s->filter_size / 2; s 504 libavfilter/af_dynaudnorm.c double initial_value = s->alt_boundary_mode ? cqueue_peek(s->gain_history_original[channel], 0) : 1.0; s 507 libavfilter/af_dynaudnorm.c while (cqueue_size(s->gain_history_minimum[channel]) < pre_fill_size) { s 509 libavfilter/af_dynaudnorm.c initial_value = FFMIN(initial_value, cqueue_peek(s->gain_history_original[channel], input)); s 510 libavfilter/af_dynaudnorm.c cqueue_enqueue(s->gain_history_minimum[channel], initial_value); s 514 libavfilter/af_dynaudnorm.c minimum = minimum_filter(s->gain_history_original[channel]); s 516 libavfilter/af_dynaudnorm.c cqueue_enqueue(s->gain_history_minimum[channel], minimum); s 518 libavfilter/af_dynaudnorm.c cqueue_enqueue(s->threshold_history[channel], gain.threshold); s 520 libavfilter/af_dynaudnorm.c cqueue_pop(s->gain_history_original[channel]); s 523 libavfilter/af_dynaudnorm.c while (cqueue_size(s->gain_history_minimum[channel]) >= s->filter_size) { s 526 libavfilter/af_dynaudnorm.c smoothed = gaussian_filter(s, s->gain_history_minimum[channel], s->threshold_history[channel]); s 527 libavfilter/af_dynaudnorm.c limit = cqueue_peek(s->gain_history_original[channel], 0); s 530 libavfilter/af_dynaudnorm.c cqueue_enqueue(s->gain_history_smoothed[channel], smoothed); s 532 libavfilter/af_dynaudnorm.c cqueue_pop(s->gain_history_minimum[channel]); s 533 libavfilter/af_dynaudnorm.c cqueue_pop(s->threshold_history[channel]); s 543 libavfilter/af_dynaudnorm.c static void perform_dc_correction(DynamicAudioNormalizerContext *s, AVFrame *frame) s 546 libavfilter/af_dynaudnorm.c int is_first_frame = cqueue_empty(s->gain_history_original[0]); s 549 libavfilter/af_dynaudnorm.c for (c = 0; c < s->channels; c++) { s 557 libavfilter/af_dynaudnorm.c prev_value = is_first_frame ? current_average_value : s->dc_correction_value[c]; s 558 libavfilter/af_dynaudnorm.c s->dc_correction_value[c] = is_first_frame ? current_average_value : update_value(current_average_value, s->dc_correction_value[c], 0.1); s 561 libavfilter/af_dynaudnorm.c dst_ptr[i] -= fade(prev_value, s->dc_correction_value[c], i, frame->nb_samples); s 588 libavfilter/af_dynaudnorm.c static double compute_frame_std_dev(DynamicAudioNormalizerContext *s, s 595 libavfilter/af_dynaudnorm.c for (c = 0; c < s->channels; c++) { s 602 libavfilter/af_dynaudnorm.c variance /= (s->channels * frame->nb_samples) - 1; s 615 libavfilter/af_dynaudnorm.c static void perform_compression(DynamicAudioNormalizerContext *s, AVFrame *frame) s 617 libavfilter/af_dynaudnorm.c int is_first_frame = cqueue_empty(s->gain_history_original[0]); s 620 libavfilter/af_dynaudnorm.c if (s->channels_coupled) { s 621 libavfilter/af_dynaudnorm.c const double standard_deviation = compute_frame_std_dev(s, frame, -1); s 622 libavfilter/af_dynaudnorm.c const double current_threshold = FFMIN(1.0, s->compress_factor * standard_deviation); s 624 libavfilter/af_dynaudnorm.c const double prev_value = is_first_frame ? current_threshold : s->compress_threshold[0]; s 626 libavfilter/af_dynaudnorm.c s->compress_threshold[0] = is_first_frame ? current_threshold : update_value(current_threshold, s->compress_threshold[0], (1.0/3.0)); s 629 libavfilter/af_dynaudnorm.c curr_actual_thresh = setup_compress_thresh(s->compress_threshold[0]); s 631 libavfilter/af_dynaudnorm.c for (c = 0; c < s->channels; c++) { s 639 libavfilter/af_dynaudnorm.c for (c = 0; c < s->channels; c++) { s 640 libavfilter/af_dynaudnorm.c const double standard_deviation = compute_frame_std_dev(s, frame, c); s 641 libavfilter/af_dynaudnorm.c const double current_threshold = setup_compress_thresh(FFMIN(1.0, s->compress_factor * standard_deviation)); s 643 libavfilter/af_dynaudnorm.c const double prev_value = is_first_frame ? current_threshold : s->compress_threshold[c]; s 646 libavfilter/af_dynaudnorm.c s->compress_threshold[c] = is_first_frame ? current_threshold : update_value(current_threshold, s->compress_threshold[c], 1.0/3.0); s 649 libavfilter/af_dynaudnorm.c curr_actual_thresh = setup_compress_thresh(s->compress_threshold[c]); s 660 libavfilter/af_dynaudnorm.c static void analyze_frame(DynamicAudioNormalizerContext *s, AVFrame *frame) s 662 libavfilter/af_dynaudnorm.c if (s->dc_correction) { s 663 libavfilter/af_dynaudnorm.c perform_dc_correction(s, frame); s 666 libavfilter/af_dynaudnorm.c if (s->compress_factor > DBL_EPSILON) { s 667 libavfilter/af_dynaudnorm.c perform_compression(s, frame); s 670 libavfilter/af_dynaudnorm.c if (s->channels_coupled) { s 671 libavfilter/af_dynaudnorm.c const local_gain gain = get_max_local_gain(s, frame, -1); s 674 libavfilter/af_dynaudnorm.c for (c = 0; c < s->channels; c++) s 675 libavfilter/af_dynaudnorm.c update_gain_history(s, c, gain); s 679 libavfilter/af_dynaudnorm.c for (c = 0; c < s->channels; c++) s 680 libavfilter/af_dynaudnorm.c update_gain_history(s, c, get_max_local_gain(s, frame, c)); s 684 libavfilter/af_dynaudnorm.c static void amplify_frame(DynamicAudioNormalizerContext *s, AVFrame *frame, int enabled) s 688 libavfilter/af_dynaudnorm.c for (c = 0; c < s->channels; c++) { s 692 libavfilter/af_dynaudnorm.c cqueue_dequeue(s->gain_history_smoothed[c], ¤t_amplification_factor); s 695 libavfilter/af_dynaudnorm.c const double amplification_factor = fade(s->prev_amplification_factor[c], s 702 libavfilter/af_dynaudnorm.c s->prev_amplification_factor[c] = current_amplification_factor; s 709 libavfilter/af_dynaudnorm.c DynamicAudioNormalizerContext *s = ctx->priv; s 713 libavfilter/af_dynaudnorm.c while (((s->queue.available >= s->filter_size) || s 714 libavfilter/af_dynaudnorm.c (s->eof && s->queue.available)) && s 715 libavfilter/af_dynaudnorm.c !cqueue_empty(s->gain_history_smoothed[0])) { s 716 libavfilter/af_dynaudnorm.c AVFrame *out = ff_bufqueue_get(&s->queue); s 719 libavfilter/af_dynaudnorm.c cqueue_dequeue(s->is_enabled, &is_enabled); s 721 libavfilter/af_dynaudnorm.c amplify_frame(s, out, is_enabled > 0.); s 726 libavfilter/af_dynaudnorm.c analyze_frame(s, in); s 727 libavfilter/af_dynaudnorm.c if (!s->eof) { s 728 libavfilter/af_dynaudnorm.c ff_bufqueue_add(ctx, &s->queue, in); s 729 libavfilter/af_dynaudnorm.c cqueue_enqueue(s->is_enabled, !ctx->is_disabled); s 737 libavfilter/af_dynaudnorm.c static int flush_buffer(DynamicAudioNormalizerContext *s, AVFilterLink *inlink, s 740 libavfilter/af_dynaudnorm.c AVFrame *out = ff_get_audio_buffer(outlink, s->frame_len); s 746 libavfilter/af_dynaudnorm.c for (c = 0; c < s->channels; c++) { s 750 libavfilter/af_dynaudnorm.c dst_ptr[i] = s->alt_boundary_mode ? DBL_EPSILON : ((s->target_rms > DBL_EPSILON) ? FFMIN(s->peak_value, s->target_rms) : s->peak_value); s 751 libavfilter/af_dynaudnorm.c if (s->dc_correction) { s 753 libavfilter/af_dynaudnorm.c dst_ptr[i] += s->dc_correction_value[c]; s 764 libavfilter/af_dynaudnorm.c DynamicAudioNormalizerContext *s = ctx->priv; s 767 libavfilter/af_dynaudnorm.c if (!cqueue_empty(s->gain_history_smoothed[0])) { s 768 libavfilter/af_dynaudnorm.c ret = flush_buffer(s, ctx->inputs[0], outlink); s 769 libavfilter/af_dynaudnorm.c } else if (s->queue.available) { s 770 libavfilter/af_dynaudnorm.c AVFrame *out = ff_bufqueue_get(&s->queue); s 772 libavfilter/af_dynaudnorm.c s->pts = out->pts; s 783 libavfilter/af_dynaudnorm.c DynamicAudioNormalizerContext *s = ctx->priv; s 790 libavfilter/af_dynaudnorm.c if (!s->eof) { s 791 libavfilter/af_dynaudnorm.c ret = ff_inlink_consume_samples(inlink, s->frame_len, s->frame_len, &in); s 800 libavfilter/af_dynaudnorm.c if (ff_inlink_queued_samples(inlink) >= s->frame_len) { s 806 libavfilter/af_dynaudnorm.c if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 808 libavfilter/af_dynaudnorm.c s->eof = 1; s 811 libavfilter/af_dynaudnorm.c if (s->eof && s->queue.available) s 814 libavfilter/af_dynaudnorm.c if (s->eof && !s->queue.available) { s 815 libavfilter/af_dynaudnorm.c ff_outlink_set_status(outlink, AVERROR_EOF, s->pts); s 819 libavfilter/af_dynaudnorm.c if (!s->eof) s 828 libavfilter/af_dynaudnorm.c DynamicAudioNormalizerContext *s = ctx->priv; s 830 libavfilter/af_dynaudnorm.c int prev_filter_size = s->filter_size; s 837 libavfilter/af_dynaudnorm.c s->filter_size |= 1; s 838 libavfilter/af_dynaudnorm.c if (prev_filter_size != s->filter_size) { s 839 libavfilter/af_dynaudnorm.c init_gaussian_filter(s); s 841 libavfilter/af_dynaudnorm.c for (int c = 0; c < s->channels; c++) { s 842 libavfilter/af_dynaudnorm.c cqueue_resize(s->gain_history_original[c], s->filter_size); s 843 libavfilter/af_dynaudnorm.c cqueue_resize(s->gain_history_minimum[c], s->filter_size); s 844 libavfilter/af_dynaudnorm.c cqueue_resize(s->threshold_history[c], s->filter_size); s 848 libavfilter/af_dynaudnorm.c s->frame_len = frame_size(inlink->sample_rate, s->frame_len_msec); s 64 libavfilter/af_extrastereo.c ExtraStereoContext *s = ctx->priv; s 66 libavfilter/af_extrastereo.c const float mult = s->mult; s 92 libavfilter/af_extrastereo.c if (s->clip) { s 150 libavfilter/af_firequalizer.c static void common_uninit(FIREqualizerContext *s) s 152 libavfilter/af_firequalizer.c av_rdft_end(s->analysis_rdft); s 153 libavfilter/af_firequalizer.c av_rdft_end(s->analysis_irdft); s 154 libavfilter/af_firequalizer.c av_rdft_end(s->rdft); s 155 libavfilter/af_firequalizer.c av_rdft_end(s->irdft); s 156 libavfilter/af_firequalizer.c av_fft_end(s->fft_ctx); s 157 libavfilter/af_firequalizer.c av_rdft_end(s->cepstrum_rdft); s 158 libavfilter/af_firequalizer.c av_rdft_end(s->cepstrum_irdft); s 159 libavfilter/af_firequalizer.c s->analysis_rdft = s->analysis_irdft = s->rdft = s->irdft = NULL; s 160 libavfilter/af_firequalizer.c s->fft_ctx = NULL; s 161 libavfilter/af_firequalizer.c s->cepstrum_rdft = NULL; s 162 libavfilter/af_firequalizer.c s->cepstrum_irdft = NULL; s 164 libavfilter/af_firequalizer.c av_freep(&s->analysis_buf); s 165 libavfilter/af_firequalizer.c av_freep(&s->dump_buf); s 166 libavfilter/af_firequalizer.c av_freep(&s->kernel_tmp_buf); s 167 libavfilter/af_firequalizer.c av_freep(&s->kernel_buf); s 168 libavfilter/af_firequalizer.c av_freep(&s->cepstrum_buf); s 169 libavfilter/af_firequalizer.c av_freep(&s->conv_buf); s 170 libavfilter/af_firequalizer.c av_freep(&s->conv_idx); s 175 libavfilter/af_firequalizer.c FIREqualizerContext *s = ctx->priv; s 177 libavfilter/af_firequalizer.c common_uninit(s); s 178 libavfilter/af_firequalizer.c av_freep(&s->gain_cmd); s 179 libavfilter/af_firequalizer.c av_freep(&s->gain_entry_cmd); s 212 libavfilter/af_firequalizer.c static void fast_convolute(FIREqualizerContext *av_restrict s, const float *av_restrict kernel_buf, float *av_restrict conv_buf, s 215 libavfilter/af_firequalizer.c if (nsamples <= s->nsamples_max) { s 216 libavfilter/af_firequalizer.c float *buf = conv_buf + idx->buf_idx * s->rdft_len; s 217 libavfilter/af_firequalizer.c float *obuf = conv_buf + !idx->buf_idx * s->rdft_len + idx->overlap_idx; s 218 libavfilter/af_firequalizer.c int center = s->fir_len/2; s 223 libavfilter/af_firequalizer.c memset(buf + center + nsamples, 0, (s->rdft_len - nsamples - center) * sizeof(*data)); s 224 libavfilter/af_firequalizer.c av_rdft_calc(s->rdft, buf); s 227 libavfilter/af_firequalizer.c buf[1] *= kernel_buf[s->rdft_len/2]; s 228 libavfilter/af_firequalizer.c for (k = 1; k < s->rdft_len/2; k++) { s 233 libavfilter/af_firequalizer.c av_rdft_calc(s->irdft, buf); s 234 libavfilter/af_firequalizer.c for (k = 0; k < s->rdft_len - idx->overlap_idx; k++) s 240 libavfilter/af_firequalizer.c while (nsamples > s->nsamples_max * 2) { s 241 libavfilter/af_firequalizer.c fast_convolute(s, kernel_buf, conv_buf, idx, data, s->nsamples_max); s 242 libavfilter/af_firequalizer.c data += s->nsamples_max; s 243 libavfilter/af_firequalizer.c nsamples -= s->nsamples_max; s 245 libavfilter/af_firequalizer.c fast_convolute(s, kernel_buf, conv_buf, idx, data, nsamples/2); s 246 libavfilter/af_firequalizer.c fast_convolute(s, kernel_buf, conv_buf, idx, data + nsamples/2, nsamples - nsamples/2); s 250 libavfilter/af_firequalizer.c static void fast_convolute_nonlinear(FIREqualizerContext *av_restrict s, const float *av_restrict kernel_buf, s 254 libavfilter/af_firequalizer.c if (nsamples <= s->nsamples_max) { s 255 libavfilter/af_firequalizer.c float *buf = conv_buf + idx->buf_idx * s->rdft_len; s 256 libavfilter/af_firequalizer.c float *obuf = conv_buf + !idx->buf_idx * s->rdft_len + idx->overlap_idx; s 260 libavfilter/af_firequalizer.c memset(buf + nsamples, 0, (s->rdft_len - nsamples) * sizeof(*data)); s 261 libavfilter/af_firequalizer.c av_rdft_calc(s->rdft, buf); s 265 libavfilter/af_firequalizer.c for (k = 2; k < s->rdft_len; k += 2) { s 273 libavfilter/af_firequalizer.c av_rdft_calc(s->irdft, buf); s 274 libavfilter/af_firequalizer.c for (k = 0; k < s->rdft_len - idx->overlap_idx; k++) s 280 libavfilter/af_firequalizer.c while (nsamples > s->nsamples_max * 2) { s 281 libavfilter/af_firequalizer.c fast_convolute_nonlinear(s, kernel_buf, conv_buf, idx, data, s->nsamples_max); s 282 libavfilter/af_firequalizer.c data += s->nsamples_max; s 283 libavfilter/af_firequalizer.c nsamples -= s->nsamples_max; s 285 libavfilter/af_firequalizer.c fast_convolute_nonlinear(s, kernel_buf, conv_buf, idx, data, nsamples/2); s 286 libavfilter/af_firequalizer.c fast_convolute_nonlinear(s, kernel_buf, conv_buf, idx, data + nsamples/2, nsamples - nsamples/2); s 290 libavfilter/af_firequalizer.c static void fast_convolute2(FIREqualizerContext *av_restrict s, const float *av_restrict kernel_buf, FFTComplex *av_restrict conv_buf, s 293 libavfilter/af_firequalizer.c if (nsamples <= s->nsamples_max) { s 294 libavfilter/af_firequalizer.c FFTComplex *buf = conv_buf + idx->buf_idx * s->rdft_len; s 295 libavfilter/af_firequalizer.c FFTComplex *obuf = conv_buf + !idx->buf_idx * s->rdft_len + idx->overlap_idx; s 296 libavfilter/af_firequalizer.c int center = s->fir_len/2; s 305 libavfilter/af_firequalizer.c memset(buf + center + nsamples, 0, (s->rdft_len - nsamples - center) * sizeof(*buf)); s 306 libavfilter/af_firequalizer.c av_fft_permute(s->fft_ctx, buf); s 307 libavfilter/af_firequalizer.c av_fft_calc(s->fft_ctx, buf); s 314 libavfilter/af_firequalizer.c for (k = 1; k < s->rdft_len/2; k++) { s 315 libavfilter/af_firequalizer.c int m = s->rdft_len - k; s 327 libavfilter/af_firequalizer.c av_fft_permute(s->fft_ctx, buf); s 328 libavfilter/af_firequalizer.c av_fft_calc(s->fft_ctx, buf); s 330 libavfilter/af_firequalizer.c for (k = 0; k < s->rdft_len - idx->overlap_idx; k++) { s 343 libavfilter/af_firequalizer.c while (nsamples > s->nsamples_max * 2) { s 344 libavfilter/af_firequalizer.c fast_convolute2(s, kernel_buf, conv_buf, idx, data0, data1, s->nsamples_max); s 345 libavfilter/af_firequalizer.c data0 += s->nsamples_max; s 346 libavfilter/af_firequalizer.c data1 += s->nsamples_max; s 347 libavfilter/af_firequalizer.c nsamples -= s->nsamples_max; s 349 libavfilter/af_firequalizer.c fast_convolute2(s, kernel_buf, conv_buf, idx, data0, data1, nsamples/2); s 350 libavfilter/af_firequalizer.c fast_convolute2(s, kernel_buf, conv_buf, idx, data0 + nsamples/2, data1 + nsamples/2, nsamples - nsamples/2); s 356 libavfilter/af_firequalizer.c FIREqualizerContext *s = ctx->priv; s 358 libavfilter/af_firequalizer.c int xlog = s->dumpscale == SCALE_LOGLIN || s->dumpscale == SCALE_LOGLOG; s 359 libavfilter/af_firequalizer.c int ylog = s->dumpscale == SCALE_LINLOG || s->dumpscale == SCALE_LOGLOG; s 361 libavfilter/af_firequalizer.c int center = s->fir_len / 2; s 362 libavfilter/af_firequalizer.c double delay = s->zero_phase ? 0.0 : (double) center / rate; s 365 libavfilter/af_firequalizer.c if (!s->min_phase) { s 366 libavfilter/af_firequalizer.c s->analysis_buf[0] *= s->rdft_len/2; s 368 libavfilter/af_firequalizer.c s->analysis_buf[x] *= s->rdft_len/2; s 369 libavfilter/af_firequalizer.c s->analysis_buf[s->analysis_rdft_len - x] *= s->rdft_len/2; s 372 libavfilter/af_firequalizer.c for (x = 0; x < s->fir_len; x++) s 373 libavfilter/af_firequalizer.c s->analysis_buf[x] *= s->rdft_len/2; s 381 libavfilter/af_firequalizer.c if (!s->min_phase) { s 383 libavfilter/af_firequalizer.c fprintf(fp, "%15.10f %15.10f\n", delay - (double) x / rate, (double) s->analysis_buf[s->analysis_rdft_len - x]); s 386 libavfilter/af_firequalizer.c fprintf(fp, "%15.10f %15.10f\n", delay + (double)x / rate , (double) s->analysis_buf[x]); s 388 libavfilter/af_firequalizer.c for (x = 0; x < s->fir_len; x++) s 389 libavfilter/af_firequalizer.c fprintf(fp, "%15.10f %15.10f\n", (double)x / rate, (double) s->analysis_buf[x]); s 392 libavfilter/af_firequalizer.c av_rdft_calc(s->analysis_rdft, s->analysis_buf); s 396 libavfilter/af_firequalizer.c for (x = 0; x <= s->analysis_rdft_len/2; x++) { s 397 libavfilter/af_firequalizer.c int i = (x == s->analysis_rdft_len/2) ? 1 : 2 * x; s 398 libavfilter/af_firequalizer.c vx = (double)x * rate / s->analysis_rdft_len; s 401 libavfilter/af_firequalizer.c ya = s->dump_buf[i]; s 402 libavfilter/af_firequalizer.c yb = s->min_phase && (i > 1) ? hypotf(s->analysis_buf[i], s->analysis_buf[i+1]) : s->analysis_buf[i]; s 403 libavfilter/af_firequalizer.c if (s->min_phase) s 416 libavfilter/af_firequalizer.c FIREqualizerContext *s = ctx->priv; s 418 libavfilter/af_firequalizer.c if (s->nb_gain_entry >= NB_GAIN_ENTRY_MAX) { s 420 libavfilter/af_firequalizer.c s->gain_entry_err = AVERROR(EINVAL); s 426 libavfilter/af_firequalizer.c s->gain_entry_err = AVERROR(EINVAL); s 430 libavfilter/af_firequalizer.c if (s->nb_gain_entry > 0 && freq <= s->gain_entry_tbl[s->nb_gain_entry - 1].freq) { s 432 libavfilter/af_firequalizer.c s->gain_entry_err = AVERROR(EINVAL); s 436 libavfilter/af_firequalizer.c s->gain_entry_tbl[s->nb_gain_entry].freq = freq; s 437 libavfilter/af_firequalizer.c s->gain_entry_tbl[s->nb_gain_entry].gain = gain; s 438 libavfilter/af_firequalizer.c s->nb_gain_entry++; s 457 libavfilter/af_firequalizer.c FIREqualizerContext *s = ctx->priv; s 464 libavfilter/af_firequalizer.c if (!s->nb_gain_entry) s 467 libavfilter/af_firequalizer.c if (freq <= s->gain_entry_tbl[0].freq) s 468 libavfilter/af_firequalizer.c return s->gain_entry_tbl[0].gain; s 470 libavfilter/af_firequalizer.c if (freq >= s->gain_entry_tbl[s->nb_gain_entry-1].freq) s 471 libavfilter/af_firequalizer.c return s->gain_entry_tbl[s->nb_gain_entry-1].gain; s 473 libavfilter/af_firequalizer.c res = bsearch(&freq, &s->gain_entry_tbl, s->nb_gain_entry - 1, sizeof(*res), gain_entry_compare); s 492 libavfilter/af_firequalizer.c FIREqualizerContext *s = ctx->priv; s 498 libavfilter/af_firequalizer.c if (!s->nb_gain_entry) s 501 libavfilter/af_firequalizer.c if (freq <= s->gain_entry_tbl[0].freq) s 502 libavfilter/af_firequalizer.c return s->gain_entry_tbl[0].gain; s 504 libavfilter/af_firequalizer.c if (freq >= s->gain_entry_tbl[s->nb_gain_entry-1].freq) s 505 libavfilter/af_firequalizer.c return s->gain_entry_tbl[s->nb_gain_entry-1].gain; s 507 libavfilter/af_firequalizer.c res = bsearch(&freq, &s->gain_entry_tbl, s->nb_gain_entry - 1, sizeof(*res), gain_entry_compare); s 511 libavfilter/af_firequalizer.c m0 = res != s->gain_entry_tbl ? s 514 libavfilter/af_firequalizer.c m2 = res != s->gain_entry_tbl + s->nb_gain_entry - 2 ? s 554 libavfilter/af_firequalizer.c static void generate_min_phase_kernel(FIREqualizerContext *s, float *rdft_buf) s 556 libavfilter/af_firequalizer.c int k, cepstrum_len = s->cepstrum_len, rdft_len = s->rdft_len; s 560 libavfilter/af_firequalizer.c memset(s->cepstrum_buf, 0, cepstrum_len * sizeof(*s->cepstrum_buf)); s 561 libavfilter/af_firequalizer.c memcpy(s->cepstrum_buf, rdft_buf, rdft_len/2 * sizeof(*rdft_buf)); s 562 libavfilter/af_firequalizer.c memcpy(s->cepstrum_buf + cepstrum_len - rdft_len/2, rdft_buf + rdft_len/2, rdft_len/2 * sizeof(*rdft_buf)); s 564 libavfilter/af_firequalizer.c av_rdft_calc(s->cepstrum_rdft, s->cepstrum_buf); s 566 libavfilter/af_firequalizer.c s->cepstrum_buf[0] = log(FFMAX(s->cepstrum_buf[0], minval)); s 567 libavfilter/af_firequalizer.c s->cepstrum_buf[1] = log(FFMAX(s->cepstrum_buf[1], minval)); s 570 libavfilter/af_firequalizer.c s->cepstrum_buf[k] = log(FFMAX(s->cepstrum_buf[k], minval)); s 571 libavfilter/af_firequalizer.c s->cepstrum_buf[k+1] = 0; s 574 libavfilter/af_firequalizer.c av_rdft_calc(s->cepstrum_irdft, s->cepstrum_buf); s 576 libavfilter/af_firequalizer.c memset(s->cepstrum_buf + cepstrum_len/2 + 1, 0, (cepstrum_len/2 - 1) * sizeof(*s->cepstrum_buf)); s 578 libavfilter/af_firequalizer.c s->cepstrum_buf[k] *= 2; s 580 libavfilter/af_firequalizer.c av_rdft_calc(s->cepstrum_rdft, s->cepstrum_buf); s 582 libavfilter/af_firequalizer.c s->cepstrum_buf[0] = exp(s->cepstrum_buf[0] * norm) * norm; s 583 libavfilter/af_firequalizer.c s->cepstrum_buf[1] = exp(s->cepstrum_buf[1] * norm) * norm; s 585 libavfilter/af_firequalizer.c double mag = exp(s->cepstrum_buf[k] * norm) * norm; s 586 libavfilter/af_firequalizer.c double ph = s->cepstrum_buf[k+1] * norm; s 587 libavfilter/af_firequalizer.c s->cepstrum_buf[k] = mag * cos(ph); s 588 libavfilter/af_firequalizer.c s->cepstrum_buf[k+1] = mag * sin(ph); s 591 libavfilter/af_firequalizer.c av_rdft_calc(s->cepstrum_irdft, s->cepstrum_buf); s 592 libavfilter/af_firequalizer.c memset(rdft_buf, 0, s->rdft_len * sizeof(*rdft_buf)); s 593 libavfilter/af_firequalizer.c memcpy(rdft_buf, s->cepstrum_buf, s->fir_len * sizeof(*rdft_buf)); s 595 libavfilter/af_firequalizer.c if (s->dumpfile) { s 596 libavfilter/af_firequalizer.c memset(s->analysis_buf, 0, s->analysis_rdft_len * sizeof(*s->analysis_buf)); s 597 libavfilter/af_firequalizer.c memcpy(s->analysis_buf, s->cepstrum_buf, s->fir_len * sizeof(*s->analysis_buf)); s 604 libavfilter/af_firequalizer.c FIREqualizerContext *s = ctx->priv; s 613 libavfilter/af_firequalizer.c int xlog = s->scale == SCALE_LOGLIN || s->scale == SCALE_LOGLOG; s 614 libavfilter/af_firequalizer.c int ylog = s->scale == SCALE_LINLOG || s->scale == SCALE_LOGLOG; s 617 libavfilter/af_firequalizer.c s->nb_gain_entry = 0; s 618 libavfilter/af_firequalizer.c s->gain_entry_err = 0; s 625 libavfilter/af_firequalizer.c if (s->gain_entry_err < 0) s 626 libavfilter/af_firequalizer.c return s->gain_entry_err; s 629 libavfilter/af_firequalizer.c av_log(ctx, AV_LOG_DEBUG, "nb_gain_entry = %d.\n", s->nb_gain_entry); s 636 libavfilter/af_firequalizer.c if (s->dumpfile && (!s->dump_buf || !s->analysis_rdft || !(dump_fp = fopen(s->dumpfile, "w")))) s 643 libavfilter/af_firequalizer.c float *rdft_buf = s->kernel_tmp_buf + ch * s->rdft_len; s 651 libavfilter/af_firequalizer.c s->analysis_buf[0] = ylog ? pow(10.0, 0.05 * result) : result; s 657 libavfilter/af_firequalizer.c s->analysis_buf[1] = ylog ? pow(10.0, 0.05 * result) : result; s 659 libavfilter/af_firequalizer.c for (k = 1; k < s->analysis_rdft_len/2; k++) { s 660 libavfilter/af_firequalizer.c vars[VAR_F] = k * ((double)inlink->sample_rate /(double)s->analysis_rdft_len); s 664 libavfilter/af_firequalizer.c s->analysis_buf[2*k] = ylog ? pow(10.0, 0.05 * result) : s->min_phase ? fabs(result) : result; s 665 libavfilter/af_firequalizer.c s->analysis_buf[2*k+1] = 0.0; s 668 libavfilter/af_firequalizer.c if (s->dump_buf) s 669 libavfilter/af_firequalizer.c memcpy(s->dump_buf, s->analysis_buf, s->analysis_rdft_len * sizeof(*s->analysis_buf)); s 671 libavfilter/af_firequalizer.c av_rdft_calc(s->analysis_irdft, s->analysis_buf); s 672 libavfilter/af_firequalizer.c center = s->fir_len / 2; s 677 libavfilter/af_firequalizer.c switch (s->wfunc) { s 711 libavfilter/af_firequalizer.c s->analysis_buf[k] *= (2.0/s->analysis_rdft_len) * (2.0/s->rdft_len) * win; s 713 libavfilter/af_firequalizer.c s->analysis_buf[s->analysis_rdft_len - k] = s->analysis_buf[k]; s 716 libavfilter/af_firequalizer.c memset(s->analysis_buf + center + 1, 0, (s->analysis_rdft_len - s->fir_len) * sizeof(*s->analysis_buf)); s 717 libavfilter/af_firequalizer.c memcpy(rdft_buf, s->analysis_buf, s->rdft_len/2 * sizeof(*s->analysis_buf)); s 718 libavfilter/af_firequalizer.c memcpy(rdft_buf + s->rdft_len/2, s->analysis_buf + s->analysis_rdft_len - s->rdft_len/2, s->rdft_len/2 * sizeof(*s->analysis_buf)); s 719 libavfilter/af_firequalizer.c if (s->min_phase) s 720 libavfilter/af_firequalizer.c generate_min_phase_kernel(s, rdft_buf); s 721 libavfilter/af_firequalizer.c av_rdft_calc(s->rdft, rdft_buf); s 723 libavfilter/af_firequalizer.c for (k = 0; k < s->rdft_len; k++) { s 733 libavfilter/af_firequalizer.c if (!s->min_phase) { s 734 libavfilter/af_firequalizer.c rdft_buf[s->rdft_len-1] = rdft_buf[1]; s 735 libavfilter/af_firequalizer.c for (k = 0; k < s->rdft_len/2; k++) s 737 libavfilter/af_firequalizer.c rdft_buf[s->rdft_len/2] = rdft_buf[s->rdft_len-1]; s 743 libavfilter/af_firequalizer.c if (!s->multi) s 747 libavfilter/af_firequalizer.c memcpy(s->kernel_buf, s->kernel_tmp_buf, (s->multi ? inlink->channels : 1) * s->rdft_len * sizeof(*s->kernel_buf)); s 754 libavfilter/af_firequalizer.c #define SELECT_GAIN(s) (s->gain_cmd ? s->gain_cmd : s->gain) s 755 libavfilter/af_firequalizer.c #define SELECT_GAIN_ENTRY(s) (s->gain_entry_cmd ? s->gain_entry_cmd : s->gain_entry) s 760 libavfilter/af_firequalizer.c FIREqualizerContext *s = ctx->priv; s 763 libavfilter/af_firequalizer.c common_uninit(s); s 765 libavfilter/af_firequalizer.c s->next_pts = 0; s 766 libavfilter/af_firequalizer.c s->frame_nsamples_max = 0; s 768 libavfilter/af_firequalizer.c s->fir_len = FFMAX(2 * (int)(inlink->sample_rate * s->delay) + 1, 3); s 769 libavfilter/af_firequalizer.c s->remaining = s->fir_len - 1; s 772 libavfilter/af_firequalizer.c s->rdft_len = 1 << rdft_bits; s 773 libavfilter/af_firequalizer.c s->nsamples_max = s->rdft_len - s->fir_len + 1; s 774 libavfilter/af_firequalizer.c if (s->nsamples_max * 2 >= s->fir_len) s 783 libavfilter/af_firequalizer.c if (!(s->rdft = av_rdft_init(rdft_bits, DFT_R2C)) || !(s->irdft = av_rdft_init(rdft_bits, IDFT_C2R))) s 786 libavfilter/af_firequalizer.c if (s->fft2 && !s->multi && inlink->channels > 1 && !(s->fft_ctx = av_fft_init(rdft_bits, 0))) s 789 libavfilter/af_firequalizer.c if (s->min_phase) { s 797 libavfilter/af_firequalizer.c s->cepstrum_rdft = av_rdft_init(cepstrum_bits, DFT_R2C); s 798 libavfilter/af_firequalizer.c s->cepstrum_irdft = av_rdft_init(cepstrum_bits, IDFT_C2R); s 799 libavfilter/af_firequalizer.c if (!s->cepstrum_rdft || !s->cepstrum_irdft) s 802 libavfilter/af_firequalizer.c s->cepstrum_len = 1 << cepstrum_bits; s 803 libavfilter/af_firequalizer.c s->cepstrum_buf = av_malloc_array(s->cepstrum_len, sizeof(*s->cepstrum_buf)); s 804 libavfilter/af_firequalizer.c if (!s->cepstrum_buf) s 809 libavfilter/af_firequalizer.c s->analysis_rdft_len = 1 << rdft_bits; s 810 libavfilter/af_firequalizer.c if (inlink->sample_rate <= s->accuracy * s->analysis_rdft_len) s 819 libavfilter/af_firequalizer.c if (!(s->analysis_irdft = av_rdft_init(rdft_bits, IDFT_C2R))) s 822 libavfilter/af_firequalizer.c if (s->dumpfile) { s 823 libavfilter/af_firequalizer.c s->analysis_rdft = av_rdft_init(rdft_bits, DFT_R2C); s 824 libavfilter/af_firequalizer.c s->dump_buf = av_malloc_array(s->analysis_rdft_len, sizeof(*s->dump_buf)); s 827 libavfilter/af_firequalizer.c s->analysis_buf = av_malloc_array(s->analysis_rdft_len, sizeof(*s->analysis_buf)); s 828 libavfilter/af_firequalizer.c s->kernel_tmp_buf = av_malloc_array(s->rdft_len * (s->multi ? inlink->channels : 1), sizeof(*s->kernel_tmp_buf)); s 829 libavfilter/af_firequalizer.c s->kernel_buf = av_malloc_array(s->rdft_len * (s->multi ? inlink->channels : 1), sizeof(*s->kernel_buf)); s 830 libavfilter/af_firequalizer.c s->conv_buf = av_calloc(2 * s->rdft_len * inlink->channels, sizeof(*s->conv_buf)); s 831 libavfilter/af_firequalizer.c s->conv_idx = av_calloc(inlink->channels, sizeof(*s->conv_idx)); s 832 libavfilter/af_firequalizer.c if (!s->analysis_buf || !s->kernel_tmp_buf || !s->kernel_buf || !s->conv_buf || !s->conv_idx) s 836 libavfilter/af_firequalizer.c inlink->sample_rate, inlink->channels, s->analysis_rdft_len, s->rdft_len, s->fir_len, s->nsamples_max); s 838 libavfilter/af_firequalizer.c if (s->fixed) s 839 libavfilter/af_firequalizer.c inlink->min_samples = inlink->max_samples = inlink->partial_buf_size = s->nsamples_max; s 841 libavfilter/af_firequalizer.c return generate_kernel(ctx, SELECT_GAIN(s), SELECT_GAIN_ENTRY(s)); s 847 libavfilter/af_firequalizer.c FIREqualizerContext *s = ctx->priv; s 850 libavfilter/af_firequalizer.c if (!s->min_phase) { s 851 libavfilter/af_firequalizer.c for (ch = 0; ch + 1 < inlink->channels && s->fft_ctx; ch += 2) { s 852 libavfilter/af_firequalizer.c fast_convolute2(s, s->kernel_buf, (FFTComplex *)(s->conv_buf + 2 * ch * s->rdft_len), s 853 libavfilter/af_firequalizer.c s->conv_idx + ch, (float *) frame->extended_data[ch], s 858 libavfilter/af_firequalizer.c fast_convolute(s, s->kernel_buf + (s->multi ? ch * s->rdft_len : 0), s 859 libavfilter/af_firequalizer.c s->conv_buf + 2 * ch * s->rdft_len, s->conv_idx + ch, s 864 libavfilter/af_firequalizer.c fast_convolute_nonlinear(s, s->kernel_buf + (s->multi ? ch * s->rdft_len : 0), s 865 libavfilter/af_firequalizer.c s->conv_buf + 2 * ch * s->rdft_len, s->conv_idx + ch, s 870 libavfilter/af_firequalizer.c s->next_pts = AV_NOPTS_VALUE; s 872 libavfilter/af_firequalizer.c s->next_pts = frame->pts + av_rescale_q(frame->nb_samples, av_make_q(1, inlink->sample_rate), inlink->time_base); s 873 libavfilter/af_firequalizer.c if (s->zero_phase && !s->min_phase) s 874 libavfilter/af_firequalizer.c frame->pts -= av_rescale_q(s->fir_len/2, av_make_q(1, inlink->sample_rate), inlink->time_base); s 876 libavfilter/af_firequalizer.c s->frame_nsamples_max = FFMAX(s->frame_nsamples_max, frame->nb_samples); s 883 libavfilter/af_firequalizer.c FIREqualizerContext *s= ctx->priv; s 887 libavfilter/af_firequalizer.c if (ret == AVERROR_EOF && s->remaining > 0 && s->frame_nsamples_max > 0) { s 888 libavfilter/af_firequalizer.c AVFrame *frame = ff_get_audio_buffer(outlink, FFMIN(s->remaining, s->frame_nsamples_max)); s 894 libavfilter/af_firequalizer.c frame->pts = s->next_pts; s 895 libavfilter/af_firequalizer.c s->remaining -= frame->nb_samples; s 905 libavfilter/af_firequalizer.c FIREqualizerContext *s = ctx->priv; s 911 libavfilter/af_firequalizer.c if (SELECT_GAIN(s) && !strcmp(SELECT_GAIN(s), args)) { s 920 libavfilter/af_firequalizer.c ret = generate_kernel(ctx, gain_cmd, SELECT_GAIN_ENTRY(s)); s 922 libavfilter/af_firequalizer.c av_freep(&s->gain_cmd); s 923 libavfilter/af_firequalizer.c s->gain_cmd = gain_cmd; s 930 libavfilter/af_firequalizer.c if (SELECT_GAIN_ENTRY(s) && !strcmp(SELECT_GAIN_ENTRY(s), args)) { s 939 libavfilter/af_firequalizer.c ret = generate_kernel(ctx, SELECT_GAIN(s), gain_entry_cmd); s 941 libavfilter/af_firequalizer.c av_freep(&s->gain_entry_cmd); s 942 libavfilter/af_firequalizer.c s->gain_entry_cmd = gain_entry_cmd; s 77 libavfilter/af_flanger.c FlangerContext *s = ctx->priv; s 79 libavfilter/af_flanger.c s->feedback_gain /= 100; s 80 libavfilter/af_flanger.c s->delay_gain /= 100; s 81 libavfilter/af_flanger.c s->channel_phase /= 100; s 82 libavfilter/af_flanger.c s->delay_min /= 1000; s 83 libavfilter/af_flanger.c s->delay_depth /= 1000; s 84 libavfilter/af_flanger.c s->in_gain = 1 / (1 + s->delay_gain); s 85 libavfilter/af_flanger.c s->delay_gain /= 1 + s->delay_gain; s 86 libavfilter/af_flanger.c s->delay_gain *= 1 - fabs(s->feedback_gain); s 123 libavfilter/af_flanger.c FlangerContext *s = ctx->priv; s 125 libavfilter/af_flanger.c s->max_samples = (s->delay_min + s->delay_depth) * inlink->sample_rate + 2.5; s 126 libavfilter/af_flanger.c s->lfo_length = inlink->sample_rate / s->speed; s 127 libavfilter/af_flanger.c s->delay_last = av_calloc(inlink->channels, sizeof(*s->delay_last)); s 128 libavfilter/af_flanger.c s->lfo = av_calloc(s->lfo_length, sizeof(*s->lfo)); s 129 libavfilter/af_flanger.c if (!s->lfo || !s->delay_last) s 132 libavfilter/af_flanger.c ff_generate_wave_table(s->wave_shape, AV_SAMPLE_FMT_FLT, s->lfo, s->lfo_length, s 133 libavfilter/af_flanger.c rint(s->delay_min * inlink->sample_rate), s 134 libavfilter/af_flanger.c s->max_samples - 2., 3 * M_PI_2); s 136 libavfilter/af_flanger.c return av_samples_alloc_array_and_samples(&s->delay_buffer, NULL, s 137 libavfilter/af_flanger.c inlink->channels, s->max_samples, s 144 libavfilter/af_flanger.c FlangerContext *s = ctx->priv; s 161 libavfilter/af_flanger.c s->delay_buf_pos = (s->delay_buf_pos + s->max_samples - 1) % s->max_samples; s 169 libavfilter/af_flanger.c int channel_phase = chan * s->lfo_length * s->channel_phase + .5; s 170 libavfilter/af_flanger.c double delay = s->lfo[(s->lfo_pos + channel_phase) % s->lfo_length]; s 173 libavfilter/af_flanger.c double *delay_buffer = (double *)s->delay_buffer[chan]; s 176 libavfilter/af_flanger.c delay_buffer[s->delay_buf_pos] = in + s->delay_last[chan] * s 177 libavfilter/af_flanger.c s->feedback_gain; s 178 libavfilter/af_flanger.c delayed_0 = delay_buffer[(s->delay_buf_pos + int_delay++) % s->max_samples]; s 179 libavfilter/af_flanger.c delayed_1 = delay_buffer[(s->delay_buf_pos + int_delay++) % s->max_samples]; s 181 libavfilter/af_flanger.c if (s->interpolation == INTERPOLATION_LINEAR) { s 185 libavfilter/af_flanger.c double delayed_2 = delay_buffer[(s->delay_buf_pos + int_delay++) % s->max_samples]; s 193 libavfilter/af_flanger.c s->delay_last[chan] = delayed; s 194 libavfilter/af_flanger.c out = in * s->in_gain + delayed * s->delay_gain; s 197 libavfilter/af_flanger.c s->lfo_pos = (s->lfo_pos + 1) % s->lfo_length; s 208 libavfilter/af_flanger.c FlangerContext *s = ctx->priv; s 210 libavfilter/af_flanger.c av_freep(&s->lfo); s 211 libavfilter/af_flanger.c av_freep(&s->delay_last); s 213 libavfilter/af_flanger.c if (s->delay_buffer) s 214 libavfilter/af_flanger.c av_freep(&s->delay_buffer[0]); s 215 libavfilter/af_flanger.c av_freep(&s->delay_buffer); s 101 libavfilter/af_haas.c HaasContext *s = ctx->priv; s 108 libavfilter/af_haas.c av_freep(&s->buffer); s 109 libavfilter/af_haas.c s->buffer = av_calloc(new_buf_size, sizeof(*s->buffer)); s 110 libavfilter/af_haas.c if (!s->buffer) s 113 libavfilter/af_haas.c s->buffer_size = new_buf_size; s 114 libavfilter/af_haas.c s->write_ptr = 0; s 116 libavfilter/af_haas.c s->delay[0] = (uint32_t)(s->par_delay0 * 0.001 * inlink->sample_rate); s 117 libavfilter/af_haas.c s->delay[1] = (uint32_t)(s->par_delay1 * 0.001 * inlink->sample_rate); s 119 libavfilter/af_haas.c s->phase0 = s->par_phase0 ? 1.0 : -1.0; s 120 libavfilter/af_haas.c s->phase1 = s->par_phase1 ? 1.0 : -1.0; s 122 libavfilter/af_haas.c s->balance_l[0] = (s->par_balance0 + 1) / 2 * s->par_gain0 * s->phase0; s 123 libavfilter/af_haas.c s->balance_r[0] = (1.0 - (s->par_balance0 + 1) / 2) * (s->par_gain0) * s->phase0; s 124 libavfilter/af_haas.c s->balance_l[1] = (s->par_balance1 + 1) / 2 * s->par_gain1 * s->phase1; s 125 libavfilter/af_haas.c s->balance_r[1] = (1.0 - (s->par_balance1 + 1) / 2) * (s->par_gain1) * s->phase1; s 134 libavfilter/af_haas.c HaasContext *s = ctx->priv; s 136 libavfilter/af_haas.c const double level_in = s->level_in; s 137 libavfilter/af_haas.c const double level_out = s->level_out; s 138 libavfilter/af_haas.c const uint32_t mask = s->buffer_size - 1; s 139 libavfilter/af_haas.c double *buffer = s->buffer; s 160 libavfilter/af_haas.c switch (s->par_m_source) { s 169 libavfilter/af_haas.c buffer[s->write_ptr] = mid; s 171 libavfilter/af_haas.c s0_ptr = (s->write_ptr + s->buffer_size - s->delay[0]) & mask; s 172 libavfilter/af_haas.c s1_ptr = (s->write_ptr + s->buffer_size - s->delay[1]) & mask; s 174 libavfilter/af_haas.c if (s->par_middle_phase) s 177 libavfilter/af_haas.c side[0] = buffer[s0_ptr] * s->par_side_gain; s 178 libavfilter/af_haas.c side[1] = buffer[s1_ptr] * s->par_side_gain; s 179 libavfilter/af_haas.c side_l = side[0] * s->balance_l[0] - side[1] * s->balance_l[1]; s 180 libavfilter/af_haas.c side_r = side[1] * s->balance_r[1] - side[0] * s->balance_r[0]; s 185 libavfilter/af_haas.c s->write_ptr = (s->write_ptr + 1) & mask; s 195 libavfilter/af_haas.c HaasContext *s = ctx->priv; s 197 libavfilter/af_haas.c av_freep(&s->buffer); s 198 libavfilter/af_haas.c s->buffer_size = 0; s 835 libavfilter/af_hdcd.c #define APPLY_GAIN(s,g) do{int64_t s64 = s; s64 *= gaintab[g]; s = (int32_t)(s64 >> 23); }while(0); s 1530 libavfilter/af_hdcd.c HDCDContext *s = ctx->priv; s 1537 libavfilter/af_hdcd.c int a = 32 - s->bits_per_sample; s 1581 libavfilter/af_hdcd.c if (s->process_stereo) { s 1582 libavfilter/af_hdcd.c hdcd_detect_start(&s->detect); s 1583 libavfilter/af_hdcd.c hdcd_process_stereo(s, out_data, in->nb_samples); s 1584 libavfilter/af_hdcd.c hdcd_detect_onech(&s->state[0], &s->detect); s 1585 libavfilter/af_hdcd.c hdcd_detect_onech(&s->state[1], &s->detect); s 1586 libavfilter/af_hdcd.c hdcd_detect_end(&s->detect, 2); s 1588 libavfilter/af_hdcd.c hdcd_detect_start(&s->detect); s 1590 libavfilter/af_hdcd.c hdcd_process(s, &s->state[c], out_data + c, in->nb_samples, in->channels); s 1591 libavfilter/af_hdcd.c hdcd_detect_onech(&s->state[c], &s->detect); s 1593 libavfilter/af_hdcd.c hdcd_detect_end(&s->detect, in->channels); s 1596 libavfilter/af_hdcd.c s->sample_count += in->nb_samples * in->channels; s 1656 libavfilter/af_hdcd.c HDCDContext *s = ctx->priv; s 1661 libavfilter/af_hdcd.c hdcd_state *state = &s->state[i]; s 1676 libavfilter/af_hdcd.c pf_str[s->detect.packet_type], s 1677 libavfilter/af_hdcd.c s->detect.total_packets); s 1680 libavfilter/af_hdcd.c if (s->detect.hdcd_detected) s 1683 libavfilter/af_hdcd.c pe_str[s->detect.peak_extend], s 1684 libavfilter/af_hdcd.c s->detect.max_gain_adjustment, s 1685 libavfilter/af_hdcd.c (s->detect.uses_transient_filter) ? "detected" : "not detected", s 1686 libavfilter/af_hdcd.c s->detect.errors, (s->detect.errors) ? " (try -v verbose)" : "", s 1687 libavfilter/af_hdcd.c (s->bad_config) ? " (bad_config)" : "" s 1691 libavfilter/af_hdcd.c (s->bad_config) ? " (bad_config)" : "" s 1698 libavfilter/af_hdcd.c HDCDContext *s = ctx->priv; s 1700 libavfilter/af_hdcd.c s->sample_count = 0; s 1701 libavfilter/af_hdcd.c s->fctx = ctx; s 1702 libavfilter/af_hdcd.c s->bad_config = 0; s 1704 libavfilter/af_hdcd.c if (s->disable_autoconvert) { s 1713 libavfilter/af_hdcd.c HDCDContext *s = ctx->priv; s 1721 libavfilter/af_hdcd.c s->bits_per_sample != 16) { s 1723 libavfilter/af_hdcd.c s->bits_per_sample, av_get_sample_fmt_name(inlink->format) ); s 1724 libavfilter/af_hdcd.c s->bits_per_sample = 16; s 1727 libavfilter/af_hdcd.c s->bits_per_sample, av_get_sample_fmt_name(inlink->format) ); s 1730 libavfilter/af_hdcd.c if (s->bits_per_sample != 16) s 1735 libavfilter/af_hdcd.c hdcd_detect_reset(&s->detect); s 1737 libavfilter/af_hdcd.c hdcd_reset(&s->state[c], inlink->sample_rate, s->cdt_ms); s 1740 libavfilter/af_hdcd.c s->cdt_ms, s->state[0].sustain_reset ); s 1742 libavfilter/af_hdcd.c if (inlink->channels != 2 && s->process_stereo) { s 1744 libavfilter/af_hdcd.c s->process_stereo = 0; s 1747 libavfilter/af_hdcd.c (s->process_stereo) ? "process stereo channels together" : "process each channel separately"); s 1750 libavfilter/af_hdcd.c (s->force_pe) ? "on" : "off"); s 1752 libavfilter/af_hdcd.c s->analyze_mode, ana_mode_str[s->analyze_mode] ); s 91 libavfilter/af_headphone.c static int parse_channel_name(HeadphoneContext *s, int x, char **arg, int *rchannel, char *buf) s 99 libavfilter/af_headphone.c s->lfe_channel = x; s 117 libavfilter/af_headphone.c HeadphoneContext *s = ctx->priv; s 118 libavfilter/af_headphone.c char *arg, *tokenizer, *p, *args = av_strdup(s->map); s 125 libavfilter/af_headphone.c s->lfe_channel = -1; s 126 libavfilter/af_headphone.c s->nb_inputs = 1; s 129 libavfilter/af_headphone.c s->mapping[i] = -1; s 137 libavfilter/af_headphone.c if (parse_channel_name(s, s->nb_irs, &arg, &out_ch_id, buf)) { s 141 libavfilter/af_headphone.c s->mapping[s->nb_irs] = out_ch_id; s 142 libavfilter/af_headphone.c s->nb_irs++; s 145 libavfilter/af_headphone.c if (s->hrir_fmt == HRIR_MULTI) s 146 libavfilter/af_headphone.c s->nb_inputs = 2; s 148 libavfilter/af_headphone.c s->nb_inputs = s->nb_irs + 1; s 167 libavfilter/af_headphone.c HeadphoneContext *s = ctx->priv; s 177 libavfilter/af_headphone.c const int ir_len = s->ir_len; s 178 libavfilter/af_headphone.c const int air_len = s->air_len; s 182 libavfilter/af_headphone.c const int buffer_length = s->buffer_length; s 205 libavfilter/af_headphone.c if (l == s->lfe_channel) { s 206 libavfilter/af_headphone.c *dst += *(buffer[s->lfe_channel] + wr) * s->gain_lfe; s 222 libavfilter/af_headphone.c dst[0] += s->fdsp->scalarproduct_float(temp_ir, temp_src, FFALIGN(ir_len, 32)); s 241 libavfilter/af_headphone.c HeadphoneContext *s = ctx->priv; s 246 libavfilter/af_headphone.c FFTComplex *hrtf = s->data_hrtf[jobnr]; s 249 libavfilter/af_headphone.c const int ir_len = s->ir_len; s 253 libavfilter/af_headphone.c const int buffer_length = s->buffer_length; s 255 libavfilter/af_headphone.c FFTComplex *fft_in = s->temp_fft[jobnr]; s 256 libavfilter/af_headphone.c FFTComplex *fft_acc = s->temp_afft[jobnr]; s 257 libavfilter/af_headphone.c FFTContext *ifft = s->ifft[jobnr]; s 258 libavfilter/af_headphone.c FFTContext *fft = s->fft[jobnr]; s 259 libavfilter/af_headphone.c const int n_fft = s->n_fft; s 260 libavfilter/af_headphone.c const float fft_scale = 1.0f / s->n_fft; s 282 libavfilter/af_headphone.c if (i == s->lfe_channel) { s 284 libavfilter/af_headphone.c dst[2 * j] += src[i + j * in_channels] * s->gain_lfe; s 339 libavfilter/af_headphone.c HeadphoneContext *s = ctx->priv; s 348 libavfilter/af_headphone.c s->in[input_number].ir_len = ir_len; s 349 libavfilter/af_headphone.c s->ir_len = FFMAX(ir_len, s->ir_len); s 354 libavfilter/af_headphone.c static int headphone_frame(HeadphoneContext *s, AVFrame *in, AVFilterLink *outlink) s 368 libavfilter/af_headphone.c td.in = in; td.out = out; td.write = s->write; s 369 libavfilter/af_headphone.c td.delay = s->delay; td.ir = s->data_ir; td.n_clippings = n_clippings; s 370 libavfilter/af_headphone.c td.ringbuffer = s->ringbuffer; td.temp_src = s->temp_src; s 371 libavfilter/af_headphone.c td.temp_fft = s->temp_fft; s 372 libavfilter/af_headphone.c td.temp_afft = s->temp_afft; s 374 libavfilter/af_headphone.c if (s->type == TIME_DOMAIN) { s 392 libavfilter/af_headphone.c struct HeadphoneContext *s = ctx->priv; s 393 libavfilter/af_headphone.c const int ir_len = s->ir_len; s 394 libavfilter/af_headphone.c int nb_irs = s->nb_irs; s 396 libavfilter/af_headphone.c float gain_lin = expf((s->gain - 3 * nb_input_channels) / 20 * M_LN10); s 407 libavfilter/af_headphone.c s->air_len = 1 << (32 - ff_clz(ir_len)); s 408 libavfilter/af_headphone.c s->buffer_length = 1 << (32 - ff_clz(s->air_len)); s 409 libavfilter/af_headphone.c s->n_fft = n_fft = 1 << (32 - ff_clz(ir_len + s->size)); s 411 libavfilter/af_headphone.c if (s->type == FREQUENCY_DOMAIN) { s 419 libavfilter/af_headphone.c av_fft_end(s->fft[0]); s 420 libavfilter/af_headphone.c av_fft_end(s->fft[1]); s 421 libavfilter/af_headphone.c s->fft[0] = av_fft_init(av_log2(s->n_fft), 0); s 422 libavfilter/af_headphone.c s->fft[1] = av_fft_init(av_log2(s->n_fft), 0); s 423 libavfilter/af_headphone.c av_fft_end(s->ifft[0]); s 424 libavfilter/af_headphone.c av_fft_end(s->ifft[1]); s 425 libavfilter/af_headphone.c s->ifft[0] = av_fft_init(av_log2(s->n_fft), 1); s 426 libavfilter/af_headphone.c s->ifft[1] = av_fft_init(av_log2(s->n_fft), 1); s 428 libavfilter/af_headphone.c if (!s->fft[0] || !s->fft[1] || !s->ifft[0] || !s->ifft[1]) { s 429 libavfilter/af_headphone.c av_log(ctx, AV_LOG_ERROR, "Unable to create FFT contexts of size %d.\n", s->n_fft); s 435 libavfilter/af_headphone.c s->data_ir[0] = av_calloc(s->air_len, sizeof(float) * s->nb_irs); s 436 libavfilter/af_headphone.c s->data_ir[1] = av_calloc(s->air_len, sizeof(float) * s->nb_irs); s 437 libavfilter/af_headphone.c s->delay[0] = av_calloc(s->nb_irs, sizeof(float)); s 438 libavfilter/af_headphone.c s->delay[1] = av_calloc(s->nb_irs, sizeof(float)); s 440 libavfilter/af_headphone.c if (s->type == TIME_DOMAIN) { s 441 libavfilter/af_headphone.c s->ringbuffer[0] = av_calloc(s->buffer_length, sizeof(float) * nb_input_channels); s 442 libavfilter/af_headphone.c s->ringbuffer[1] = av_calloc(s->buffer_length, sizeof(float) * nb_input_channels); s 444 libavfilter/af_headphone.c s->ringbuffer[0] = av_calloc(s->buffer_length, sizeof(float)); s 445 libavfilter/af_headphone.c s->ringbuffer[1] = av_calloc(s->buffer_length, sizeof(float)); s 446 libavfilter/af_headphone.c s->temp_fft[0] = av_calloc(s->n_fft, sizeof(FFTComplex)); s 447 libavfilter/af_headphone.c s->temp_fft[1] = av_calloc(s->n_fft, sizeof(FFTComplex)); s 448 libavfilter/af_headphone.c s->temp_afft[0] = av_calloc(s->n_fft, sizeof(FFTComplex)); s 449 libavfilter/af_headphone.c s->temp_afft[1] = av_calloc(s->n_fft, sizeof(FFTComplex)); s 450 libavfilter/af_headphone.c if (!s->temp_fft[0] || !s->temp_fft[1] || s 451 libavfilter/af_headphone.c !s->temp_afft[0] || !s->temp_afft[1]) { s 457 libavfilter/af_headphone.c if (!s->data_ir[0] || !s->data_ir[1] || s 458 libavfilter/af_headphone.c !s->ringbuffer[0] || !s->ringbuffer[1]) { s 463 libavfilter/af_headphone.c if (s->type == TIME_DOMAIN) { s 464 libavfilter/af_headphone.c s->temp_src[0] = av_calloc(s->air_len, sizeof(float)); s 465 libavfilter/af_headphone.c s->temp_src[1] = av_calloc(s->air_len, sizeof(float)); s 467 libavfilter/af_headphone.c data_ir_l = av_calloc(nb_irs * s->air_len, sizeof(*data_ir_l)); s 468 libavfilter/af_headphone.c data_ir_r = av_calloc(nb_irs * s->air_len, sizeof(*data_ir_r)); s 469 libavfilter/af_headphone.c if (!data_ir_r || !data_ir_l || !s->temp_src[0] || !s->temp_src[1]) { s 482 libavfilter/af_headphone.c for (i = 0; i < s->nb_inputs - 1; i++) { s 483 libavfilter/af_headphone.c int len = s->in[i + 1].ir_len; s 484 libavfilter/af_headphone.c int delay_l = s->in[i + 1].delay_l; s 485 libavfilter/af_headphone.c int delay_r = s->in[i + 1].delay_r; s 488 libavfilter/af_headphone.c ret = ff_inlink_consume_samples(ctx->inputs[i + 1], len, len, &s->in[i + 1].frame); s 491 libavfilter/af_headphone.c ptr = (float *)s->in[i + 1].frame->extended_data[0]; s 493 libavfilter/af_headphone.c if (s->hrir_fmt == HRIR_STEREO) { s 497 libavfilter/af_headphone.c if (s->mapping[i] < 0) { s 501 libavfilter/af_headphone.c if ((av_channel_layout_extract_channel(inlink->channel_layout, j)) == (1LL << s->mapping[i])) { s 509 libavfilter/af_headphone.c if (s->type == TIME_DOMAIN) { s 510 libavfilter/af_headphone.c offset = idx * s->air_len; s 525 libavfilter/af_headphone.c av_fft_permute(s->fft[0], fft_in_l); s 526 libavfilter/af_headphone.c av_fft_calc(s->fft[0], fft_in_l); s 528 libavfilter/af_headphone.c av_fft_permute(s->fft[0], fft_in_r); s 529 libavfilter/af_headphone.c av_fft_calc(s->fft[0], fft_in_r); s 539 libavfilter/af_headphone.c if (s->mapping[k] < 0) { s 543 libavfilter/af_headphone.c if ((av_channel_layout_extract_channel(inlink->channel_layout, j)) == (1LL << s->mapping[k])) { s 552 libavfilter/af_headphone.c if (s->type == TIME_DOMAIN) { s 553 libavfilter/af_headphone.c offset = idx * s->air_len; s 568 libavfilter/af_headphone.c av_fft_permute(s->fft[0], fft_in_l); s 569 libavfilter/af_headphone.c av_fft_calc(s->fft[0], fft_in_l); s 571 libavfilter/af_headphone.c av_fft_permute(s->fft[0], fft_in_r); s 572 libavfilter/af_headphone.c av_fft_calc(s->fft[0], fft_in_r); s 578 libavfilter/af_headphone.c av_frame_free(&s->in[i + 1].frame); s 581 libavfilter/af_headphone.c if (s->type == TIME_DOMAIN) { s 582 libavfilter/af_headphone.c memcpy(s->data_ir[0], data_ir_l, sizeof(float) * nb_irs * s->air_len); s 583 libavfilter/af_headphone.c memcpy(s->data_ir[1], data_ir_r, sizeof(float) * nb_irs * s->air_len); s 585 libavfilter/af_headphone.c s->data_hrtf[0] = av_calloc(n_fft * s->nb_irs, sizeof(FFTComplex)); s 586 libavfilter/af_headphone.c s->data_hrtf[1] = av_calloc(n_fft * s->nb_irs, sizeof(FFTComplex)); s 587 libavfilter/af_headphone.c if (!s->data_hrtf[0] || !s->data_hrtf[1]) { s 592 libavfilter/af_headphone.c memcpy(s->data_hrtf[0], data_hrtf_l, s 594 libavfilter/af_headphone.c memcpy(s->data_hrtf[1], data_hrtf_r, s 598 libavfilter/af_headphone.c s->have_hrirs = 1; s 602 libavfilter/af_headphone.c for (i = 0; i < s->nb_inputs - 1; i++) s 603 libavfilter/af_headphone.c av_frame_free(&s->in[i + 1].frame); s 619 libavfilter/af_headphone.c HeadphoneContext *s = ctx->priv; s 626 libavfilter/af_headphone.c if (!s->eof_hrirs) { s 627 libavfilter/af_headphone.c for (i = 1; i < s->nb_inputs; i++) { s 628 libavfilter/af_headphone.c if (s->in[i].eof) s 634 libavfilter/af_headphone.c if (!s->in[i].eof) { s 636 libavfilter/af_headphone.c s->in[i].eof = 1; s 640 libavfilter/af_headphone.c for (i = 1; i < s->nb_inputs; i++) { s 641 libavfilter/af_headphone.c if (!s->in[i].eof) s 645 libavfilter/af_headphone.c if (i != s->nb_inputs) { s 647 libavfilter/af_headphone.c for (i = 1; i < s->nb_inputs; i++) { s 648 libavfilter/af_headphone.c if (!s->in[i].eof) s 655 libavfilter/af_headphone.c s->eof_hrirs = 1; s 659 libavfilter/af_headphone.c if (!s->have_hrirs && s->eof_hrirs) { s 665 libavfilter/af_headphone.c if ((ret = ff_inlink_consume_samples(ctx->inputs[0], s->size, s->size, &in)) > 0) { s 666 libavfilter/af_headphone.c ret = headphone_frame(s, in, outlink); s 683 libavfilter/af_headphone.c struct HeadphoneContext *s = ctx->priv; s 709 libavfilter/af_headphone.c if (s->hrir_fmt == HRIR_MULTI) { s 717 libavfilter/af_headphone.c for (i = 1; i < s->nb_inputs; i++) { s 737 libavfilter/af_headphone.c HeadphoneContext *s = ctx->priv; s 739 libavfilter/af_headphone.c if (s->nb_irs < inlink->channels) { s 749 libavfilter/af_headphone.c HeadphoneContext *s = ctx->priv; s 760 libavfilter/af_headphone.c if (!s->map) { s 767 libavfilter/af_headphone.c s->in = av_calloc(s->nb_inputs, sizeof(*s->in)); s 768 libavfilter/af_headphone.c if (!s->in) s 771 libavfilter/af_headphone.c for (i = 1; i < s->nb_inputs; i++) { s 785 libavfilter/af_headphone.c s->fdsp = avpriv_float_dsp_alloc(0); s 786 libavfilter/af_headphone.c if (!s->fdsp) s 795 libavfilter/af_headphone.c HeadphoneContext *s = ctx->priv; s 798 libavfilter/af_headphone.c if (s->hrir_fmt == HRIR_MULTI) { s 807 libavfilter/af_headphone.c s->gain_lfe = expf((s->gain - 3 * inlink->channels + s->lfe_gain) / 20 * M_LN10); s 814 libavfilter/af_headphone.c HeadphoneContext *s = ctx->priv; s 817 libavfilter/af_headphone.c av_fft_end(s->ifft[0]); s 818 libavfilter/af_headphone.c av_fft_end(s->ifft[1]); s 819 libavfilter/af_headphone.c av_fft_end(s->fft[0]); s 820 libavfilter/af_headphone.c av_fft_end(s->fft[1]); s 821 libavfilter/af_headphone.c av_freep(&s->delay[0]); s 822 libavfilter/af_headphone.c av_freep(&s->delay[1]); s 823 libavfilter/af_headphone.c av_freep(&s->data_ir[0]); s 824 libavfilter/af_headphone.c av_freep(&s->data_ir[1]); s 825 libavfilter/af_headphone.c av_freep(&s->ringbuffer[0]); s 826 libavfilter/af_headphone.c av_freep(&s->ringbuffer[1]); s 827 libavfilter/af_headphone.c av_freep(&s->temp_src[0]); s 828 libavfilter/af_headphone.c av_freep(&s->temp_src[1]); s 829 libavfilter/af_headphone.c av_freep(&s->temp_fft[0]); s 830 libavfilter/af_headphone.c av_freep(&s->temp_fft[1]); s 831 libavfilter/af_headphone.c av_freep(&s->temp_afft[0]); s 832 libavfilter/af_headphone.c av_freep(&s->temp_afft[1]); s 833 libavfilter/af_headphone.c av_freep(&s->data_hrtf[0]); s 834 libavfilter/af_headphone.c av_freep(&s->data_hrtf[1]); s 835 libavfilter/af_headphone.c av_freep(&s->fdsp); s 837 libavfilter/af_headphone.c for (i = 0; i < s->nb_inputs; i++) { s 841 libavfilter/af_headphone.c av_freep(&s->in); s 85 libavfilter/af_join.c JoinContext *s = ctx->priv; s 87 libavfilter/af_join.c char *cur = s->map; s 119 libavfilter/af_join.c if (!(out_channel & s->channel_layout)) { s 125 libavfilter/af_join.c out_ch_idx = av_get_channel_layout_channel_index(s->channel_layout, s 127 libavfilter/af_join.c if (s->channels[out_ch_idx].input >= 0) { s 135 libavfilter/af_join.c if (input_idx < 0 || input_idx >= s->inputs) { s 151 libavfilter/af_join.c s->channels[out_ch_idx].input = input_idx; s 153 libavfilter/af_join.c s->channels[out_ch_idx].in_channel = in_channel; s 155 libavfilter/af_join.c s->channels[out_ch_idx].in_channel_idx = in_ch_idx; s 164 libavfilter/af_join.c JoinContext *s = ctx->priv; s 167 libavfilter/af_join.c if (!(s->channel_layout = av_get_channel_layout(s->channel_layout_str))) { s 169 libavfilter/af_join.c s->channel_layout_str); s 173 libavfilter/af_join.c s->nb_channels = av_get_channel_layout_nb_channels(s->channel_layout); s 174 libavfilter/af_join.c s->channels = av_mallocz_array(s->nb_channels, sizeof(*s->channels)); s 175 libavfilter/af_join.c s->buffers = av_mallocz_array(s->nb_channels, sizeof(*s->buffers)); s 176 libavfilter/af_join.c s->input_frames = av_mallocz_array(s->inputs, sizeof(*s->input_frames)); s 177 libavfilter/af_join.c if (!s->channels || !s->buffers|| !s->input_frames) s 180 libavfilter/af_join.c for (i = 0; i < s->nb_channels; i++) { s 181 libavfilter/af_join.c s->channels[i].out_channel = av_channel_layout_extract_channel(s->channel_layout, i); s 182 libavfilter/af_join.c s->channels[i].input = -1; s 188 libavfilter/af_join.c for (i = 0; i < s->inputs; i++) { s 207 libavfilter/af_join.c JoinContext *s = ctx->priv; s 210 libavfilter/af_join.c for (i = 0; i < s->inputs && s->input_frames; i++) { s 211 libavfilter/af_join.c av_frame_free(&s->input_frames[i]); s 218 libavfilter/af_join.c av_freep(&s->channels); s 219 libavfilter/af_join.c av_freep(&s->buffers); s 220 libavfilter/af_join.c av_freep(&s->input_frames); s 225 libavfilter/af_join.c JoinContext *s = ctx->priv; s 229 libavfilter/af_join.c if ((ret = ff_add_channel_layout(&layouts, s->channel_layout)) < 0 || s 286 libavfilter/af_join.c JoinContext *s = ctx->priv; s 293 libavfilter/af_join.c for (i = 0; i < s->nb_channels; i++) { s 294 libavfilter/af_join.c ChannelMap *ch = &s->channels[i]; s 319 libavfilter/af_join.c for (i = 0; i < s->nb_channels; i++) { s 320 libavfilter/af_join.c ChannelMap *ch = &s->channels[i]; s 327 libavfilter/af_join.c for (i = 0; i < s->nb_channels; i++) { s 328 libavfilter/af_join.c ChannelMap *ch = &s->channels[i]; s 346 libavfilter/af_join.c for (i = 0; i < s->nb_channels; i++) { s 347 libavfilter/af_join.c ChannelMap *ch = &s->channels[i]; s 368 libavfilter/af_join.c JoinContext *s = ctx->priv; s 376 libavfilter/af_join.c if (!s->input_frames[i]) s 378 libavfilter/af_join.c nb_samples = FFMIN(nb_samples, s->input_frames[i]->nb_samples); s 387 libavfilter/af_join.c if (s->nb_channels > FF_ARRAY_ELEMS(frame->data)) { s 388 libavfilter/af_join.c frame->extended_data = av_mallocz_array(s->nb_channels, s 397 libavfilter/af_join.c for (i = 0; i < s->nb_channels; i++) { s 398 libavfilter/af_join.c ChannelMap *ch = &s->channels[i]; s 399 libavfilter/af_join.c AVFrame *cur = s->input_frames[ch->input]; s 413 libavfilter/af_join.c if (s->buffers[j]->buffer == buf->buffer) s 416 libavfilter/af_join.c s->buffers[nb_buffers++] = buf; s 431 libavfilter/af_join.c frame->buf[i] = av_buffer_ref(s->buffers[i]); s 438 libavfilter/af_join.c frame->extended_buf[i] = av_buffer_ref(s->buffers[i + s 451 libavfilter/af_join.c frame->pts = s->input_frames[0]->pts; s 455 libavfilter/af_join.c FFMIN(FF_ARRAY_ELEMS(frame->data), s->nb_channels)); s 461 libavfilter/af_join.c av_frame_free(&s->input_frames[i]); s 472 libavfilter/af_join.c JoinContext *s = ctx->priv; s 479 libavfilter/af_join.c if (!s->input_frames[0]) { s 480 libavfilter/af_join.c ret = ff_inlink_consume_frame(ctx->inputs[0], &s->input_frames[0]); s 487 libavfilter/af_join.c if (ff_outlink_frame_wanted(ctx->outputs[0]) && !s->input_frames[0]) { s 492 libavfilter/af_join.c if (!s->input_frames[0]) { s 497 libavfilter/af_join.c nb_samples = s->input_frames[0]->nb_samples; s 500 libavfilter/af_join.c if (s->input_frames[i]) s 504 libavfilter/af_join.c ret = ff_inlink_consume_samples(ctx->inputs[i], nb_samples, nb_samples, &s->input_frames[i]); s 90 libavfilter/af_ladspa.c LADSPAContext *s, int ctl, unsigned long *map, s 93 libavfilter/af_ladspa.c const LADSPA_PortRangeHint *h = s->desc->PortRangeHints + map[ctl]; s 95 libavfilter/af_ladspa.c av_log(ctx, level, "c%i: %s [", ctl, s->desc->PortNames[map[ctl]]); s 144 libavfilter/af_ladspa.c LADSPAContext *s = ctx->priv; s 148 libavfilter/af_ladspa.c av_assert0(in->channels == (s->nb_inputs * s->nb_handles)); s 150 libavfilter/af_ladspa.c if (!s->nb_outputs || s 151 libavfilter/af_ladspa.c (av_frame_is_writable(in) && s->nb_inputs == s->nb_outputs && s 152 libavfilter/af_ladspa.c !(s->desc->Properties & LADSPA_PROPERTY_INPLACE_BROKEN))) { s 163 libavfilter/af_ladspa.c av_assert0(!s->nb_outputs || out->channels == (s->nb_outputs * s->nb_handles)); s 165 libavfilter/af_ladspa.c for (h = 0; h < s->nb_handles; h++) { s 166 libavfilter/af_ladspa.c for (i = 0; i < s->nb_inputs; i++) { s 167 libavfilter/af_ladspa.c p = s->nb_handles > 1 ? h : i; s 168 libavfilter/af_ladspa.c s->desc->connect_port(s->handles[h], s->ipmap[i], s 172 libavfilter/af_ladspa.c for (i = 0; i < s->nb_outputs; i++) { s 173 libavfilter/af_ladspa.c p = s->nb_handles > 1 ? h : i; s 174 libavfilter/af_ladspa.c s->desc->connect_port(s->handles[h], s->opmap[i], s 178 libavfilter/af_ladspa.c s->desc->run(s->handles[h], in->nb_samples); s 181 libavfilter/af_ladspa.c for (i = 0; i < s->nb_outputcontrols; i++) s 182 libavfilter/af_ladspa.c print_ctl_info(ctx, AV_LOG_VERBOSE, s, i, s->ocmap, s->octlv, 1); s 193 libavfilter/af_ladspa.c LADSPAContext *s = ctx->priv; s 201 libavfilter/af_ladspa.c t = av_rescale(s->pts, AV_TIME_BASE, s->sample_rate); s 202 libavfilter/af_ladspa.c if (s->duration >= 0 && t >= s->duration) s 205 libavfilter/af_ladspa.c out = ff_get_audio_buffer(outlink, s->nb_samples); s 209 libavfilter/af_ladspa.c for (i = 0; i < s->nb_outputs; i++) s 210 libavfilter/af_ladspa.c s->desc->connect_port(s->handles[0], s->opmap[i], s 213 libavfilter/af_ladspa.c s->desc->run(s->handles[0], s->nb_samples); s 215 libavfilter/af_ladspa.c for (i = 0; i < s->nb_outputcontrols; i++) s 216 libavfilter/af_ladspa.c print_ctl_info(ctx, AV_LOG_INFO, s, i, s->ocmap, s->octlv, 1); s 218 libavfilter/af_ladspa.c out->sample_rate = s->sample_rate; s 219 libavfilter/af_ladspa.c out->pts = s->pts; s 220 libavfilter/af_ladspa.c s->pts += s->nb_samples; s 225 libavfilter/af_ladspa.c static void set_default_ctl_value(LADSPAContext *s, int ctl, s 228 libavfilter/af_ladspa.c const LADSPA_PortRangeHint *h = s->desc->PortRangeHints + map[ctl]; s 264 libavfilter/af_ladspa.c LADSPAContext *s = ctx->priv; s 267 libavfilter/af_ladspa.c s->nb_handles = s->nb_inputs == 1 && s->nb_outputs == 1 ? link->channels : 1; s 268 libavfilter/af_ladspa.c s->handles = av_calloc(s->nb_handles, sizeof(*s->handles)); s 269 libavfilter/af_ladspa.c if (!s->handles) s 272 libavfilter/af_ladspa.c for (i = 0; i < s->nb_handles; i++) { s 273 libavfilter/af_ladspa.c s->handles[i] = s->desc->instantiate(s->desc, link->sample_rate); s 274 libavfilter/af_ladspa.c if (!s->handles[i]) { s 280 libavfilter/af_ladspa.c for (j = 0; j < s->nb_inputcontrols; j++) s 281 libavfilter/af_ladspa.c s->desc->connect_port(s->handles[i], s->icmap[j], s->ictlv + j); s 284 libavfilter/af_ladspa.c for (j = 0; j < s->nb_outputcontrols; j++) s 285 libavfilter/af_ladspa.c s->desc->connect_port(s->handles[i], s->ocmap[j], &s->octlv[j]); s 287 libavfilter/af_ladspa.c if (s->desc->activate) s 288 libavfilter/af_ladspa.c s->desc->activate(s->handles[i]); s 291 libavfilter/af_ladspa.c av_log(ctx, AV_LOG_DEBUG, "handles: %d\n", s->nb_handles); s 306 libavfilter/af_ladspa.c LADSPAContext *s = ctx->priv; s 314 libavfilter/af_ladspa.c if (s->nb_inputs == s->nb_outputs) { s 321 libavfilter/af_ladspa.c outlink->sample_rate = s->sample_rate; s 322 libavfilter/af_ladspa.c outlink->time_base = (AVRational){1, s->sample_rate}; s 364 libavfilter/af_ladspa.c LADSPAContext *s = ctx->priv; s 365 libavfilter/af_ladspa.c const char *label = s->desc->Label; s 366 libavfilter/af_ladspa.c LADSPA_PortRangeHint *h = (LADSPA_PortRangeHint *)s->desc->PortRangeHints + s 367 libavfilter/af_ladspa.c s->icmap[port]; s 369 libavfilter/af_ladspa.c if (port >= s->nb_inputcontrols) { s 371 libavfilter/af_ladspa.c port, s->nb_inputcontrols); s 391 libavfilter/af_ladspa.c s->ictlv[port] = value; s 398 libavfilter/af_ladspa.c LADSPAContext *s = ctx->priv; s 407 libavfilter/af_ladspa.c if (!s->dl_name) { s 412 libavfilter/af_ladspa.c if (s->dl_name[0] == '/' || s->dl_name[0] == '.') { s 414 libavfilter/af_ladspa.c s->dl_handle = dlopen(s->dl_name, RTLD_LOCAL|RTLD_NOW); s 422 libavfilter/af_ladspa.c while ((arg = av_strtok(p, separator, &saveptr)) && !s->dl_handle) { s 423 libavfilter/af_ladspa.c s->dl_handle = try_load(arg, s->dl_name); s 429 libavfilter/af_ladspa.c if (!s->dl_handle && (paths = av_asprintf("%s/.ladspa/lib", getenv("HOME")))) { s 430 libavfilter/af_ladspa.c s->dl_handle = try_load(paths, s->dl_name); s 434 libavfilter/af_ladspa.c if (!s->dl_handle) s 435 libavfilter/af_ladspa.c s->dl_handle = try_load("/usr/local/lib/ladspa", s->dl_name); s 437 libavfilter/af_ladspa.c if (!s->dl_handle) s 438 libavfilter/af_ladspa.c s->dl_handle = try_load("/usr/lib/ladspa", s->dl_name); s 440 libavfilter/af_ladspa.c if (!s->dl_handle) { s 441 libavfilter/af_ladspa.c av_log(ctx, AV_LOG_ERROR, "Failed to load '%s'\n", s->dl_name); s 445 libavfilter/af_ladspa.c descriptor_fn = dlsym(s->dl_handle, "ladspa_descriptor"); s 452 libavfilter/af_ladspa.c if (!s->plugin) { s 453 libavfilter/af_ladspa.c av_log(ctx, AV_LOG_INFO, "The '%s' library contains the following plugins:\n", s->dl_name); s 474 libavfilter/af_ladspa.c av_log(ctx, AV_LOG_ERROR, "Could not find plugin: %s\n", s->plugin); s 478 libavfilter/af_ladspa.c if (desc->Label && !strcmp(desc->Label, s->plugin)) s 483 libavfilter/af_ladspa.c s->desc = desc; s 486 libavfilter/af_ladspa.c s->ipmap = av_calloc(nb_ports, sizeof(*s->ipmap)); s 487 libavfilter/af_ladspa.c s->opmap = av_calloc(nb_ports, sizeof(*s->opmap)); s 488 libavfilter/af_ladspa.c s->icmap = av_calloc(nb_ports, sizeof(*s->icmap)); s 489 libavfilter/af_ladspa.c s->ocmap = av_calloc(nb_ports, sizeof(*s->ocmap)); s 490 libavfilter/af_ladspa.c s->ictlv = av_calloc(nb_ports, sizeof(*s->ictlv)); s 491 libavfilter/af_ladspa.c s->octlv = av_calloc(nb_ports, sizeof(*s->octlv)); s 492 libavfilter/af_ladspa.c s->ctl_needs_value = av_calloc(nb_ports, sizeof(*s->ctl_needs_value)); s 493 libavfilter/af_ladspa.c if (!s->ipmap || !s->opmap || !s->icmap || s 494 libavfilter/af_ladspa.c !s->ocmap || !s->ictlv || !s->octlv || !s->ctl_needs_value) s 502 libavfilter/af_ladspa.c s->ipmap[s->nb_inputs] = i; s 503 libavfilter/af_ladspa.c s->nb_inputs++; s 505 libavfilter/af_ladspa.c s->opmap[s->nb_outputs] = i; s 506 libavfilter/af_ladspa.c s->nb_outputs++; s 510 libavfilter/af_ladspa.c s->icmap[s->nb_inputcontrols] = i; s 513 libavfilter/af_ladspa.c set_default_ctl_value(s, s->nb_inputcontrols, s->icmap, s->ictlv); s 515 libavfilter/af_ladspa.c s->ctl_needs_value[s->nb_inputcontrols] = 1; s 517 libavfilter/af_ladspa.c s->nb_inputcontrols++; s 519 libavfilter/af_ladspa.c s->ocmap[s->nb_outputcontrols] = i; s 520 libavfilter/af_ladspa.c s->nb_outputcontrols++; s 526 libavfilter/af_ladspa.c if (s->options && !strcmp(s->options, "help")) { s 527 libavfilter/af_ladspa.c if (!s->nb_inputcontrols) { s 535 libavfilter/af_ladspa.c for (i = 0; i < s->nb_inputcontrols; i++) s 536 libavfilter/af_ladspa.c print_ctl_info(ctx, AV_LOG_INFO, s, i, s->icmap, s->ictlv, 0); s 542 libavfilter/af_ladspa.c p = s->options; s 543 libavfilter/af_ladspa.c while (s->options) { s 561 libavfilter/af_ladspa.c s->ctl_needs_value[i] = 0; s 565 libavfilter/af_ladspa.c for (i = 0; i < s->nb_inputcontrols; i++) { s 566 libavfilter/af_ladspa.c if (s->ctl_needs_value[i]) { s 568 libavfilter/af_ladspa.c print_ctl_info(ctx, AV_LOG_ERROR, s, i, s->icmap, s->ictlv, 0); s 575 libavfilter/af_ladspa.c if (s->nb_inputs) { s 576 libavfilter/af_ladspa.c pad.name = av_asprintf("in0:%s%lu", desc->Label, s->nb_inputs); s 590 libavfilter/af_ladspa.c s->nb_inputs, s->nb_outputs); s 592 libavfilter/af_ladspa.c s->nb_inputcontrols, s->nb_outputcontrols); s 599 libavfilter/af_ladspa.c LADSPAContext *s = ctx->priv; s 613 libavfilter/af_ladspa.c if (s->nb_inputs) { s 622 libavfilter/af_ladspa.c int sample_rates[] = { s->sample_rate, -1 }; s 629 libavfilter/af_ladspa.c if (s->nb_inputs == 1 && s->nb_outputs == 1) { s 638 libavfilter/af_ladspa.c } else if (s->nb_inputs == 2 && s->nb_outputs == 2) { s 649 libavfilter/af_ladspa.c if (s->nb_inputs >= 1) { s 651 libavfilter/af_ladspa.c uint64_t inlayout = FF_COUNT2LAYOUT(s->nb_inputs); s 661 libavfilter/af_ladspa.c if (!s->nb_outputs) { s 668 libavfilter/af_ladspa.c if (s->nb_outputs >= 1) { s 669 libavfilter/af_ladspa.c uint64_t outlayout = FF_COUNT2LAYOUT(s->nb_outputs); s 686 libavfilter/af_ladspa.c LADSPAContext *s = ctx->priv; s 689 libavfilter/af_ladspa.c for (i = 0; i < s->nb_handles; i++) { s 690 libavfilter/af_ladspa.c if (s->desc->deactivate) s 691 libavfilter/af_ladspa.c s->desc->deactivate(s->handles[i]); s 692 libavfilter/af_ladspa.c if (s->desc->cleanup) s 693 libavfilter/af_ladspa.c s->desc->cleanup(s->handles[i]); s 696 libavfilter/af_ladspa.c if (s->dl_handle) s 697 libavfilter/af_ladspa.c dlclose(s->dl_handle); s 699 libavfilter/af_ladspa.c av_freep(&s->ipmap); s 700 libavfilter/af_ladspa.c av_freep(&s->opmap); s 701 libavfilter/af_ladspa.c av_freep(&s->icmap); s 702 libavfilter/af_ladspa.c av_freep(&s->ocmap); s 703 libavfilter/af_ladspa.c av_freep(&s->ictlv); s 704 libavfilter/af_ladspa.c av_freep(&s->octlv); s 705 libavfilter/af_ladspa.c av_freep(&s->handles); s 706 libavfilter/af_ladspa.c av_freep(&s->ctl_needs_value); s 133 libavfilter/af_loudnorm.c static void init_gaussian_filter(LoudNormContext *s) s 146 libavfilter/af_loudnorm.c s->weights[i] = c1 * exp(-(pow(x, 2.0) / c2)); s 147 libavfilter/af_loudnorm.c total_weight += s->weights[i]; s 152 libavfilter/af_loudnorm.c s->weights[i] *= adjust; s 155 libavfilter/af_loudnorm.c static double gaussian_filter(LoudNormContext *s, int index) s 162 libavfilter/af_loudnorm.c result += s->delta[((index + i) < 30) ? (index + i) : (index + i - 30)] * s->weights[i]; s 167 libavfilter/af_loudnorm.c static void detect_peak(LoudNormContext *s, int offset, int nb_samples, int channels, int *peak_delta, double *peak_value) s 174 libavfilter/af_loudnorm.c buf = s->limiter_buf; s 175 libavfilter/af_loudnorm.c ceiling = s->target_tp; s 177 libavfilter/af_loudnorm.c index = s->limiter_buf_index + (offset * channels) + (1920 * channels); s 178 libavfilter/af_loudnorm.c if (index >= s->limiter_buf_size) s 179 libavfilter/af_loudnorm.c index -= s->limiter_buf_size; s 181 libavfilter/af_loudnorm.c if (s->frame_type == FIRST_FRAME) { s 183 libavfilter/af_loudnorm.c s->prev_smp[c] = fabs(buf[index + c - channels]); s 190 libavfilter/af_loudnorm.c this = fabs(buf[(index + c) < s->limiter_buf_size ? (index + c) : (index + c - s->limiter_buf_size)]); s 191 libavfilter/af_loudnorm.c next = fabs(buf[(index + c + channels) < s->limiter_buf_size ? (index + c + channels) : (index + c + channels - s->limiter_buf_size)]); s 193 libavfilter/af_loudnorm.c if ((s->prev_smp[c] <= this) && (next <= this) && (this > ceiling) && (n > 0)) { s 198 libavfilter/af_loudnorm.c next = fabs(buf[(index + c + (i * channels)) < s->limiter_buf_size ? (index + c + (i * channels)) : (index + c + (i * channels) - s->limiter_buf_size)]); s 212 libavfilter/af_loudnorm.c s->prev_smp[c] = fabs(buf[(index + c) < s->limiter_buf_size ? (index + c) : (index + c - s->limiter_buf_size)]); s 216 libavfilter/af_loudnorm.c s->peak_index = index; s 221 libavfilter/af_loudnorm.c s->prev_smp[c] = this; s 225 libavfilter/af_loudnorm.c if (index >= s->limiter_buf_size) s 226 libavfilter/af_loudnorm.c index -= s->limiter_buf_size; s 230 libavfilter/af_loudnorm.c static void true_peak_limiter(LoudNormContext *s, double *out, int nb_samples, int channels) s 236 libavfilter/af_loudnorm.c buf = s->limiter_buf; s 237 libavfilter/af_loudnorm.c ceiling = s->target_tp; s 238 libavfilter/af_loudnorm.c index = s->limiter_buf_index; s 241 libavfilter/af_loudnorm.c if (s->frame_type == FIRST_FRAME) { s 253 libavfilter/af_loudnorm.c s->gain_reduction[1] = ceiling / max; s 254 libavfilter/af_loudnorm.c s->limiter_state = SUSTAIN; s 255 libavfilter/af_loudnorm.c buf = s->limiter_buf; s 260 libavfilter/af_loudnorm.c env = s->gain_reduction[1]; s 267 libavfilter/af_loudnorm.c buf = s->limiter_buf; s 272 libavfilter/af_loudnorm.c switch(s->limiter_state) { s 274 libavfilter/af_loudnorm.c detect_peak(s, smp_cnt, nb_samples - smp_cnt, channels, &peak_delta, &peak_value); s 276 libavfilter/af_loudnorm.c s->env_cnt = 0; s 277 libavfilter/af_loudnorm.c smp_cnt += (peak_delta - s->attack_length); s 278 libavfilter/af_loudnorm.c s->gain_reduction[0] = 1.; s 279 libavfilter/af_loudnorm.c s->gain_reduction[1] = ceiling / peak_value; s 280 libavfilter/af_loudnorm.c s->limiter_state = ATTACK; s 282 libavfilter/af_loudnorm.c s->env_index = s->peak_index - (s->attack_length * channels); s 283 libavfilter/af_loudnorm.c if (s->env_index < 0) s 284 libavfilter/af_loudnorm.c s->env_index += s->limiter_buf_size; s 286 libavfilter/af_loudnorm.c s->env_index += (s->env_cnt * channels); s 287 libavfilter/af_loudnorm.c if (s->env_index > s->limiter_buf_size) s 288 libavfilter/af_loudnorm.c s->env_index -= s->limiter_buf_size; s 296 libavfilter/af_loudnorm.c for (; s->env_cnt < s->attack_length; s->env_cnt++) { s 299 libavfilter/af_loudnorm.c env = s->gain_reduction[0] - ((double) s->env_cnt / (s->attack_length - 1) * (s->gain_reduction[0] - s->gain_reduction[1])); s 300 libavfilter/af_loudnorm.c buf[s->env_index + c] *= env; s 303 libavfilter/af_loudnorm.c s->env_index += channels; s 304 libavfilter/af_loudnorm.c if (s->env_index >= s->limiter_buf_size) s 305 libavfilter/af_loudnorm.c s->env_index -= s->limiter_buf_size; s 309 libavfilter/af_loudnorm.c s->env_cnt++; s 315 libavfilter/af_loudnorm.c s->env_cnt = 0; s 316 libavfilter/af_loudnorm.c s->attack_length = 1920; s 317 libavfilter/af_loudnorm.c s->limiter_state = SUSTAIN; s 322 libavfilter/af_loudnorm.c detect_peak(s, smp_cnt, nb_samples, channels, &peak_delta, &peak_value); s 324 libavfilter/af_loudnorm.c s->limiter_state = RELEASE; s 325 libavfilter/af_loudnorm.c s->gain_reduction[0] = s->gain_reduction[1]; s 326 libavfilter/af_loudnorm.c s->gain_reduction[1] = 1.; s 327 libavfilter/af_loudnorm.c s->env_cnt = 0; s 333 libavfilter/af_loudnorm.c if (gain_reduction < s->gain_reduction[1]) { s 334 libavfilter/af_loudnorm.c s->limiter_state = ATTACK; s 336 libavfilter/af_loudnorm.c s->attack_length = peak_delta; s 337 libavfilter/af_loudnorm.c if (s->attack_length <= 1) s 338 libavfilter/af_loudnorm.c s->attack_length = 2; s 340 libavfilter/af_loudnorm.c s->gain_reduction[0] = s->gain_reduction[1]; s 341 libavfilter/af_loudnorm.c s->gain_reduction[1] = gain_reduction; s 342 libavfilter/af_loudnorm.c s->env_cnt = 0; s 346 libavfilter/af_loudnorm.c for (s->env_cnt = 0; s->env_cnt < peak_delta; s->env_cnt++) { s 349 libavfilter/af_loudnorm.c env = s->gain_reduction[1]; s 350 libavfilter/af_loudnorm.c buf[s->env_index + c] *= env; s 353 libavfilter/af_loudnorm.c s->env_index += channels; s 354 libavfilter/af_loudnorm.c if (s->env_index >= s->limiter_buf_size) s 355 libavfilter/af_loudnorm.c s->env_index -= s->limiter_buf_size; s 359 libavfilter/af_loudnorm.c s->env_cnt++; s 367 libavfilter/af_loudnorm.c for (; s->env_cnt < s->release_length; s->env_cnt++) { s 370 libavfilter/af_loudnorm.c env = s->gain_reduction[0] + (((double) s->env_cnt / (s->release_length - 1)) * (s->gain_reduction[1] - s->gain_reduction[0])); s 371 libavfilter/af_loudnorm.c buf[s->env_index + c] *= env; s 374 libavfilter/af_loudnorm.c s->env_index += channels; s 375 libavfilter/af_loudnorm.c if (s->env_index >= s->limiter_buf_size) s 376 libavfilter/af_loudnorm.c s->env_index -= s->limiter_buf_size; s 380 libavfilter/af_loudnorm.c s->env_cnt++; s 386 libavfilter/af_loudnorm.c s->env_cnt = 0; s 387 libavfilter/af_loudnorm.c s->limiter_state = OUT; s 404 libavfilter/af_loudnorm.c if (index >= s->limiter_buf_size) s 405 libavfilter/af_loudnorm.c index -= s->limiter_buf_size; s 412 libavfilter/af_loudnorm.c LoudNormContext *s = ctx->priv; s 434 libavfilter/af_loudnorm.c if (s->pts == AV_NOPTS_VALUE) s 435 libavfilter/af_loudnorm.c s->pts = in->pts; s 437 libavfilter/af_loudnorm.c out->pts = s->pts; s 440 libavfilter/af_loudnorm.c buf = s->buf; s 441 libavfilter/af_loudnorm.c limiter_buf = s->limiter_buf; s 443 libavfilter/af_loudnorm.c ff_ebur128_add_frames_double(s->r128_in, src, in->nb_samples); s 445 libavfilter/af_loudnorm.c if (s->frame_type == FIRST_FRAME && in->nb_samples < frame_size(inlink->sample_rate, 3000)) { s 448 libavfilter/af_loudnorm.c ff_ebur128_loudness_global(s->r128_in, &global); s 451 libavfilter/af_loudnorm.c ff_ebur128_sample_peak(s->r128_in, c, &tmp); s 456 libavfilter/af_loudnorm.c offset = pow(10., (s->target_i - global) / 20.); s 458 libavfilter/af_loudnorm.c s->offset = offset_tp < s->target_tp ? offset : s->target_tp - true_peak; s 459 libavfilter/af_loudnorm.c s->frame_type = LINEAR_MODE; s 462 libavfilter/af_loudnorm.c switch (s->frame_type) { s 466 libavfilter/af_loudnorm.c buf[s->buf_index + c] = src[c]; s 469 libavfilter/af_loudnorm.c s->buf_index += inlink->channels; s 472 libavfilter/af_loudnorm.c ff_ebur128_loudness_shortterm(s->r128_in, &shortterm); s 474 libavfilter/af_loudnorm.c if (shortterm < s->measured_thresh) { s 475 libavfilter/af_loudnorm.c s->above_threshold = 0; s 476 libavfilter/af_loudnorm.c env_shortterm = shortterm <= -70. ? 0. : s->target_i - s->measured_i; s 478 libavfilter/af_loudnorm.c s->above_threshold = 1; s 479 libavfilter/af_loudnorm.c env_shortterm = shortterm <= -70. ? 0. : s->target_i - shortterm; s 483 libavfilter/af_loudnorm.c s->delta[n] = pow(10., env_shortterm / 20.); s 484 libavfilter/af_loudnorm.c s->prev_delta = s->delta[s->index]; s 486 libavfilter/af_loudnorm.c s->buf_index = s 487 libavfilter/af_loudnorm.c s->limiter_buf_index = 0; s 489 libavfilter/af_loudnorm.c for (n = 0; n < (s->limiter_buf_size / inlink->channels); n++) { s 491 libavfilter/af_loudnorm.c limiter_buf[s->limiter_buf_index + c] = buf[s->buf_index + c] * s->delta[s->index] * s->offset; s 493 libavfilter/af_loudnorm.c s->limiter_buf_index += inlink->channels; s 494 libavfilter/af_loudnorm.c if (s->limiter_buf_index >= s->limiter_buf_size) s 495 libavfilter/af_loudnorm.c s->limiter_buf_index -= s->limiter_buf_size; s 497 libavfilter/af_loudnorm.c s->buf_index += inlink->channels; s 501 libavfilter/af_loudnorm.c true_peak_limiter(s, dst, subframe_length, inlink->channels); s 502 libavfilter/af_loudnorm.c ff_ebur128_add_frames_double(s->r128_out, dst, subframe_length); s 504 libavfilter/af_loudnorm.c s->pts += s 510 libavfilter/af_loudnorm.c s->frame_type = INNER_FRAME; s 514 libavfilter/af_loudnorm.c gain = gaussian_filter(s, s->index + 10 < 30 ? s->index + 10 : s->index + 10 - 30); s 515 libavfilter/af_loudnorm.c gain_next = gaussian_filter(s, s->index + 11 < 30 ? s->index + 11 : s->index + 11 - 30); s 519 libavfilter/af_loudnorm.c buf[s->prev_buf_index + c] = src[c]; s 520 libavfilter/af_loudnorm.c limiter_buf[s->limiter_buf_index + c] = buf[s->buf_index + c] * (gain + (((double) n / in->nb_samples) * (gain_next - gain))) * s->offset; s 524 libavfilter/af_loudnorm.c s->limiter_buf_index += inlink->channels; s 525 libavfilter/af_loudnorm.c if (s->limiter_buf_index >= s->limiter_buf_size) s 526 libavfilter/af_loudnorm.c s->limiter_buf_index -= s->limiter_buf_size; s 528 libavfilter/af_loudnorm.c s->prev_buf_index += inlink->channels; s 529 libavfilter/af_loudnorm.c if (s->prev_buf_index >= s->buf_size) s 530 libavfilter/af_loudnorm.c s->prev_buf_index -= s->buf_size; s 532 libavfilter/af_loudnorm.c s->buf_index += inlink->channels; s 533 libavfilter/af_loudnorm.c if (s->buf_index >= s->buf_size) s 534 libavfilter/af_loudnorm.c s->buf_index -= s->buf_size; s 538 libavfilter/af_loudnorm.c s->limiter_buf_index = s->limiter_buf_index + subframe_length < s->limiter_buf_size ? s->limiter_buf_index + subframe_length : s->limiter_buf_index + subframe_length - s->limiter_buf_size; s 540 libavfilter/af_loudnorm.c true_peak_limiter(s, dst, in->nb_samples, inlink->channels); s 541 libavfilter/af_loudnorm.c ff_ebur128_add_frames_double(s->r128_out, dst, in->nb_samples); s 543 libavfilter/af_loudnorm.c ff_ebur128_loudness_range(s->r128_in, &lra); s 544 libavfilter/af_loudnorm.c ff_ebur128_loudness_global(s->r128_in, &global); s 545 libavfilter/af_loudnorm.c ff_ebur128_loudness_shortterm(s->r128_in, &shortterm); s 546 libavfilter/af_loudnorm.c ff_ebur128_relative_threshold(s->r128_in, &relative_threshold); s 548 libavfilter/af_loudnorm.c if (s->above_threshold == 0) { s 551 libavfilter/af_loudnorm.c if (shortterm > s->measured_thresh) s 552 libavfilter/af_loudnorm.c s->prev_delta *= 1.0058; s 554 libavfilter/af_loudnorm.c ff_ebur128_loudness_shortterm(s->r128_out, &shortterm_out); s 555 libavfilter/af_loudnorm.c if (shortterm_out >= s->target_i) s 556 libavfilter/af_loudnorm.c s->above_threshold = 1; s 559 libavfilter/af_loudnorm.c if (shortterm < relative_threshold || shortterm <= -70. || s->above_threshold == 0) { s 560 libavfilter/af_loudnorm.c s->delta[s->index] = s->prev_delta; s 562 libavfilter/af_loudnorm.c env_global = fabs(shortterm - global) < (s->target_lra / 2.) ? shortterm - global : (s->target_lra / 2.) * ((shortterm - global) < 0 ? -1 : 1); s 563 libavfilter/af_loudnorm.c env_shortterm = s->target_i - shortterm; s 564 libavfilter/af_loudnorm.c s->delta[s->index] = pow(10., (env_global + env_shortterm) / 20.); s 567 libavfilter/af_loudnorm.c s->prev_delta = s->delta[s->index]; s 568 libavfilter/af_loudnorm.c s->index++; s 569 libavfilter/af_loudnorm.c if (s->index >= 30) s 570 libavfilter/af_loudnorm.c s->index -= 30; s 571 libavfilter/af_loudnorm.c s->prev_nb_samples = in->nb_samples; s 572 libavfilter/af_loudnorm.c s->pts += in->nb_samples; s 576 libavfilter/af_loudnorm.c gain = gaussian_filter(s, s->index + 10 < 30 ? s->index + 10 : s->index + 10 - 30); s 577 libavfilter/af_loudnorm.c s->limiter_buf_index = 0; s 580 libavfilter/af_loudnorm.c for (n = 0; n < s->limiter_buf_size / inlink->channels; n++) { s 582 libavfilter/af_loudnorm.c s->limiter_buf[s->limiter_buf_index + c] = src[src_index + c] * gain * s->offset; s 586 libavfilter/af_loudnorm.c s->limiter_buf_index += inlink->channels; s 587 libavfilter/af_loudnorm.c if (s->limiter_buf_index >= s->limiter_buf_size) s 588 libavfilter/af_loudnorm.c s->limiter_buf_index -= s->limiter_buf_size; s 593 libavfilter/af_loudnorm.c true_peak_limiter(s, dst, subframe_length, inlink->channels); s 598 libavfilter/af_loudnorm.c limiter_buf[s->limiter_buf_index + c] = src[src_index + c] * gain * s->offset; s 600 libavfilter/af_loudnorm.c limiter_buf[s->limiter_buf_index + c] = 0.; s 607 libavfilter/af_loudnorm.c s->limiter_buf_index += inlink->channels; s 608 libavfilter/af_loudnorm.c if (s->limiter_buf_index >= s->limiter_buf_size) s 609 libavfilter/af_loudnorm.c s->limiter_buf_index -= s->limiter_buf_size; s 616 libavfilter/af_loudnorm.c ff_ebur128_add_frames_double(s->r128_out, dst, in->nb_samples); s 622 libavfilter/af_loudnorm.c dst[c] = src[c] * s->offset; s 629 libavfilter/af_loudnorm.c ff_ebur128_add_frames_double(s->r128_out, dst, in->nb_samples); s 630 libavfilter/af_loudnorm.c s->pts += in->nb_samples; s 645 libavfilter/af_loudnorm.c LoudNormContext *s = ctx->priv; s 648 libavfilter/af_loudnorm.c if (ret == AVERROR_EOF && s->frame_type == INNER_FRAME) { s 654 libavfilter/af_loudnorm.c nb_samples = (s->buf_size / inlink->channels) - s->prev_nb_samples; s 655 libavfilter/af_loudnorm.c nb_samples -= (frame_size(inlink->sample_rate, 100) - s->prev_nb_samples); s 662 libavfilter/af_loudnorm.c buf = s->buf; s 665 libavfilter/af_loudnorm.c offset = ((s->limiter_buf_size / inlink->channels) - s->prev_nb_samples) * inlink->channels; s 666 libavfilter/af_loudnorm.c offset -= (frame_size(inlink->sample_rate, 100) - s->prev_nb_samples) * inlink->channels; s 667 libavfilter/af_loudnorm.c s->buf_index = s->buf_index - offset < 0 ? s->buf_index - offset + s->buf_size : s->buf_index - offset; s 671 libavfilter/af_loudnorm.c src[c] = buf[s->buf_index + c]; s 674 libavfilter/af_loudnorm.c s->buf_index += inlink->channels; s 675 libavfilter/af_loudnorm.c if (s->buf_index >= s->buf_size) s 676 libavfilter/af_loudnorm.c s->buf_index -= s->buf_size; s 679 libavfilter/af_loudnorm.c s->frame_type = FINAL_FRAME; s 687 libavfilter/af_loudnorm.c LoudNormContext *s = ctx->priv; s 713 libavfilter/af_loudnorm.c if (s->frame_type != LINEAR_MODE) { s 731 libavfilter/af_loudnorm.c LoudNormContext *s = ctx->priv; s 733 libavfilter/af_loudnorm.c s->r128_in = ff_ebur128_init(inlink->channels, inlink->sample_rate, 0, FF_EBUR128_MODE_I | FF_EBUR128_MODE_S | FF_EBUR128_MODE_LRA | FF_EBUR128_MODE_SAMPLE_PEAK); s 734 libavfilter/af_loudnorm.c if (!s->r128_in) s 737 libavfilter/af_loudnorm.c s->r128_out = ff_ebur128_init(inlink->channels, inlink->sample_rate, 0, FF_EBUR128_MODE_I | FF_EBUR128_MODE_S | FF_EBUR128_MODE_LRA | FF_EBUR128_MODE_SAMPLE_PEAK); s 738 libavfilter/af_loudnorm.c if (!s->r128_out) s 741 libavfilter/af_loudnorm.c if (inlink->channels == 1 && s->dual_mono) { s 742 libavfilter/af_loudnorm.c ff_ebur128_set_channel(s->r128_in, 0, FF_EBUR128_DUAL_MONO); s 743 libavfilter/af_loudnorm.c ff_ebur128_set_channel(s->r128_out, 0, FF_EBUR128_DUAL_MONO); s 746 libavfilter/af_loudnorm.c s->buf_size = frame_size(inlink->sample_rate, 3000) * inlink->channels; s 747 libavfilter/af_loudnorm.c s->buf = av_malloc_array(s->buf_size, sizeof(*s->buf)); s 748 libavfilter/af_loudnorm.c if (!s->buf) s 751 libavfilter/af_loudnorm.c s->limiter_buf_size = frame_size(inlink->sample_rate, 210) * inlink->channels; s 752 libavfilter/af_loudnorm.c s->limiter_buf = av_malloc_array(s->buf_size, sizeof(*s->limiter_buf)); s 753 libavfilter/af_loudnorm.c if (!s->limiter_buf) s 756 libavfilter/af_loudnorm.c s->prev_smp = av_malloc_array(inlink->channels, sizeof(*s->prev_smp)); s 757 libavfilter/af_loudnorm.c if (!s->prev_smp) s 760 libavfilter/af_loudnorm.c init_gaussian_filter(s); s 762 libavfilter/af_loudnorm.c if (s->frame_type != LINEAR_MODE) { s 768 libavfilter/af_loudnorm.c s->pts = AV_NOPTS_VALUE; s 769 libavfilter/af_loudnorm.c s->buf_index = s 770 libavfilter/af_loudnorm.c s->prev_buf_index = s 771 libavfilter/af_loudnorm.c s->limiter_buf_index = 0; s 772 libavfilter/af_loudnorm.c s->channels = inlink->channels; s 773 libavfilter/af_loudnorm.c s->index = 1; s 774 libavfilter/af_loudnorm.c s->limiter_state = OUT; s 775 libavfilter/af_loudnorm.c s->offset = pow(10., s->offset / 20.); s 776 libavfilter/af_loudnorm.c s->target_tp = pow(10., s->target_tp / 20.); s 777 libavfilter/af_loudnorm.c s->attack_length = frame_size(inlink->sample_rate, 10); s 778 libavfilter/af_loudnorm.c s->release_length = frame_size(inlink->sample_rate, 100); s 785 libavfilter/af_loudnorm.c LoudNormContext *s = ctx->priv; s 786 libavfilter/af_loudnorm.c s->frame_type = FIRST_FRAME; s 788 libavfilter/af_loudnorm.c if (s->linear) { s 790 libavfilter/af_loudnorm.c offset = s->target_i - s->measured_i; s 791 libavfilter/af_loudnorm.c offset_tp = s->measured_tp + offset; s 793 libavfilter/af_loudnorm.c if (s->measured_tp != 99 && s->measured_thresh != -70 && s->measured_lra != 0 && s->measured_i != 0) { s 794 libavfilter/af_loudnorm.c if ((offset_tp <= s->target_tp) && (s->measured_lra <= s->target_lra)) { s 795 libavfilter/af_loudnorm.c s->frame_type = LINEAR_MODE; s 796 libavfilter/af_loudnorm.c s->offset = offset; s 806 libavfilter/af_loudnorm.c LoudNormContext *s = ctx->priv; s 810 libavfilter/af_loudnorm.c if (!s->r128_in || !s->r128_out) s 813 libavfilter/af_loudnorm.c ff_ebur128_loudness_range(s->r128_in, &lra_in); s 814 libavfilter/af_loudnorm.c ff_ebur128_loudness_global(s->r128_in, &i_in); s 815 libavfilter/af_loudnorm.c ff_ebur128_relative_threshold(s->r128_in, &thresh_in); s 816 libavfilter/af_loudnorm.c for (c = 0; c < s->channels; c++) { s 818 libavfilter/af_loudnorm.c ff_ebur128_sample_peak(s->r128_in, c, &tmp); s 823 libavfilter/af_loudnorm.c ff_ebur128_loudness_range(s->r128_out, &lra_out); s 824 libavfilter/af_loudnorm.c ff_ebur128_loudness_global(s->r128_out, &i_out); s 825 libavfilter/af_loudnorm.c ff_ebur128_relative_threshold(s->r128_out, &thresh_out); s 826 libavfilter/af_loudnorm.c for (c = 0; c < s->channels; c++) { s 828 libavfilter/af_loudnorm.c ff_ebur128_sample_peak(s->r128_out, c, &tmp); s 833 libavfilter/af_loudnorm.c switch(s->print_format) { s 859 libavfilter/af_loudnorm.c s->frame_type == LINEAR_MODE ? "linear" : "dynamic", s 860 libavfilter/af_loudnorm.c s->target_i - i_out s 887 libavfilter/af_loudnorm.c s->frame_type == LINEAR_MODE ? "Linear" : "Dynamic", s 888 libavfilter/af_loudnorm.c s->target_i - i_out s 894 libavfilter/af_loudnorm.c if (s->r128_in) s 895 libavfilter/af_loudnorm.c ff_ebur128_destroy(&s->r128_in); s 896 libavfilter/af_loudnorm.c if (s->r128_out) s 897 libavfilter/af_loudnorm.c ff_ebur128_destroy(&s->r128_out); s 898 libavfilter/af_loudnorm.c av_freep(&s->limiter_buf); s 899 libavfilter/af_loudnorm.c av_freep(&s->prev_smp); s 900 libavfilter/af_loudnorm.c av_freep(&s->buf); s 168 libavfilter/af_lv2.c static void connect_ports(LV2Context *s, AVFrame *in, AVFrame *out) s 172 libavfilter/af_lv2.c for (i = 0; i < s->nb_ports; i++) { s 173 libavfilter/af_lv2.c const LilvPort *port = lilv_plugin_get_port_by_index(s->plugin, i); s 175 libavfilter/af_lv2.c if (lilv_port_is_a(s->plugin, port, s->lv2_AudioPort) || s 176 libavfilter/af_lv2.c lilv_port_is_a(s->plugin, port, s->lv2_CVPort)) { s 177 libavfilter/af_lv2.c if (lilv_port_is_a(s->plugin, port, s->lv2_InputPort)) { s 178 libavfilter/af_lv2.c lilv_instance_connect_port(s->instance, i, in->extended_data[ich++]); s 179 libavfilter/af_lv2.c } else if (lilv_port_is_a(s->plugin, port, s->lv2_OutputPort)) { s 180 libavfilter/af_lv2.c lilv_instance_connect_port(s->instance, i, out->extended_data[och++]); s 182 libavfilter/af_lv2.c av_log(s, AV_LOG_WARNING, "port %d neither input nor output, skipping\n", i); s 184 libavfilter/af_lv2.c } else if (lilv_port_is_a(s->plugin, port, s->atom_AtomPort)) { s 185 libavfilter/af_lv2.c if (lilv_port_is_a(s->plugin, port, s->lv2_InputPort)) { s 186 libavfilter/af_lv2.c lilv_instance_connect_port(s->instance, i, &s->seq_in); s 188 libavfilter/af_lv2.c lilv_instance_connect_port(s->instance, i, s->seq_out); s 190 libavfilter/af_lv2.c } else if (lilv_port_is_a(s->plugin, port, s->lv2_ControlPort)) { s 191 libavfilter/af_lv2.c lilv_instance_connect_port(s->instance, i, &s->controls[i]); s 195 libavfilter/af_lv2.c s->seq_in[0].atom.size = sizeof(LV2_Atom_Sequence_Body); s 196 libavfilter/af_lv2.c s->seq_in[0].atom.type = uri_table_map(&s->uri_table, LV2_ATOM__Sequence); s 197 libavfilter/af_lv2.c s->seq_out->atom.size = 9624; s 198 libavfilter/af_lv2.c s->seq_out->atom.type = uri_table_map(&s->uri_table, LV2_ATOM__Chunk); s 204 libavfilter/af_lv2.c LV2Context *s = ctx->priv; s 207 libavfilter/af_lv2.c if (!s->nb_outputs || s 208 libavfilter/af_lv2.c (av_frame_is_writable(in) && s->nb_inputs == s->nb_outputs)) { s 219 libavfilter/af_lv2.c connect_ports(s, in, out); s 221 libavfilter/af_lv2.c lilv_instance_run(s->instance, in->nb_samples); s 232 libavfilter/af_lv2.c LV2Context *s = ctx->priv; s 239 libavfilter/af_lv2.c t = av_rescale(s->pts, AV_TIME_BASE, s->sample_rate); s 240 libavfilter/af_lv2.c if (s->duration >= 0 && t >= s->duration) s 243 libavfilter/af_lv2.c out = ff_get_audio_buffer(outlink, s->nb_samples); s 247 libavfilter/af_lv2.c connect_ports(s, out, out); s 249 libavfilter/af_lv2.c lilv_instance_run(s->instance, out->nb_samples); s 251 libavfilter/af_lv2.c out->sample_rate = s->sample_rate; s 252 libavfilter/af_lv2.c out->pts = s->pts; s 253 libavfilter/af_lv2.c s->pts += s->nb_samples; s 267 libavfilter/af_lv2.c LV2Context *s = ctx->priv; s 271 libavfilter/af_lv2.c uri_table_init(&s->uri_table); s 272 libavfilter/af_lv2.c s->map.handle = &s->uri_table; s 273 libavfilter/af_lv2.c s->map.map = uri_table_map; s 274 libavfilter/af_lv2.c s->map_feature.URI = LV2_URID_MAP_URI; s 275 libavfilter/af_lv2.c s->map_feature.data = &s->map; s 276 libavfilter/af_lv2.c s->unmap.handle = &s->uri_table; s 277 libavfilter/af_lv2.c s->unmap.unmap = uri_table_unmap; s 278 libavfilter/af_lv2.c s->unmap_feature.URI = LV2_URID_UNMAP_URI; s 279 libavfilter/af_lv2.c s->unmap_feature.data = &s->unmap; s 280 libavfilter/af_lv2.c s->features[0] = &s->map_feature; s 281 libavfilter/af_lv2.c s->features[1] = &s->unmap_feature; s 282 libavfilter/af_lv2.c s->features[2] = &buf_size_features[0]; s 283 libavfilter/af_lv2.c s->features[3] = &buf_size_features[1]; s 284 libavfilter/af_lv2.c s->features[4] = &buf_size_features[2]; s 291 libavfilter/af_lv2.c if (s->nb_inputs == s->nb_outputs) { s 297 libavfilter/af_lv2.c outlink->sample_rate = sample_rate = s->sample_rate; s 298 libavfilter/af_lv2.c outlink->time_base = (AVRational){1, s->sample_rate}; s 301 libavfilter/af_lv2.c s->instance = lilv_plugin_instantiate(s->plugin, sample_rate, s->features); s 302 libavfilter/af_lv2.c if (!s->instance) { s 303 libavfilter/af_lv2.c av_log(s, AV_LOG_ERROR, "Failed to instantiate <%s>\n", lilv_node_as_uri(lilv_plugin_get_uri(s->plugin))); s 307 libavfilter/af_lv2.c s->mins = av_calloc(s->nb_ports, sizeof(float)); s 308 libavfilter/af_lv2.c s->maxes = av_calloc(s->nb_ports, sizeof(float)); s 309 libavfilter/af_lv2.c s->controls = av_calloc(s->nb_ports, sizeof(float)); s 311 libavfilter/af_lv2.c if (!s->mins || !s->maxes || !s->controls) s 314 libavfilter/af_lv2.c lilv_plugin_get_port_ranges_float(s->plugin, s->mins, s->maxes, s->controls); s 315 libavfilter/af_lv2.c s->seq_out = av_malloc(sizeof(LV2_Atom_Sequence) + 9624); s 316 libavfilter/af_lv2.c if (!s->seq_out) s 319 libavfilter/af_lv2.c if (s->options && !strcmp(s->options, "help")) { s 320 libavfilter/af_lv2.c if (!s->nb_inputcontrols) { s 323 libavfilter/af_lv2.c s->plugin_uri); s 327 libavfilter/af_lv2.c s->plugin_uri); s 328 libavfilter/af_lv2.c for (i = 0; i < s->nb_ports; i++) { s 329 libavfilter/af_lv2.c const LilvPort *port = lilv_plugin_get_port_by_index(s->plugin, i); s 330 libavfilter/af_lv2.c const LilvNode *symbol = lilv_port_get_symbol(s->plugin, port); s 331 libavfilter/af_lv2.c LilvNode *name = lilv_port_get_name(s->plugin, port); s 333 libavfilter/af_lv2.c if (lilv_port_is_a(s->plugin, port, s->lv2_InputPort) && s 334 libavfilter/af_lv2.c lilv_port_is_a(s->plugin, port, s->lv2_ControlPort)) { s 336 libavfilter/af_lv2.c lilv_node_as_string(symbol), s->mins[i], s->maxes[i], s->controls[i], s 346 libavfilter/af_lv2.c p = s->options; s 347 libavfilter/af_lv2.c while (s->options) { s 367 libavfilter/af_lv2.c sym = lilv_new_string(s->world, str); s 368 libavfilter/af_lv2.c port = lilv_plugin_get_port_by_symbol(s->plugin, sym); s 371 libavfilter/af_lv2.c av_log(s, AV_LOG_WARNING, "Unknown option: <%s>\n", str); s 373 libavfilter/af_lv2.c index = lilv_port_get_index(s->plugin, port); s 374 libavfilter/af_lv2.c s->controls[index] = val; s 378 libavfilter/af_lv2.c if (s->nb_inputs && s 379 libavfilter/af_lv2.c (lilv_plugin_has_feature(s->plugin, s->powerOf2BlockLength) || s 380 libavfilter/af_lv2.c lilv_plugin_has_feature(s->plugin, s->fixedBlockLength) || s 381 libavfilter/af_lv2.c lilv_plugin_has_feature(s->plugin, s->boundedBlockLength))) { s 392 libavfilter/af_lv2.c LV2Context *s = ctx->priv; s 399 libavfilter/af_lv2.c s->world = lilv_world_new(); s 400 libavfilter/af_lv2.c if (!s->world) s 403 libavfilter/af_lv2.c uri = lilv_new_uri(s->world, s->plugin_uri); s 405 libavfilter/af_lv2.c av_log(s, AV_LOG_ERROR, "Invalid plugin URI <%s>\n", s->plugin_uri); s 409 libavfilter/af_lv2.c lilv_world_load_all(s->world); s 410 libavfilter/af_lv2.c plugins = lilv_world_get_all_plugins(s->world); s 415 libavfilter/af_lv2.c av_log(s, AV_LOG_ERROR, "Plugin <%s> not found\n", s->plugin_uri); s 419 libavfilter/af_lv2.c s->plugin = plugin; s 420 libavfilter/af_lv2.c s->nb_ports = lilv_plugin_get_num_ports(s->plugin); s 422 libavfilter/af_lv2.c s->lv2_InputPort = lilv_new_uri(s->world, LV2_CORE__InputPort); s 423 libavfilter/af_lv2.c s->lv2_OutputPort = lilv_new_uri(s->world, LV2_CORE__OutputPort); s 424 libavfilter/af_lv2.c s->lv2_AudioPort = lilv_new_uri(s->world, LV2_CORE__AudioPort); s 425 libavfilter/af_lv2.c s->lv2_ControlPort = lilv_new_uri(s->world, LV2_CORE__ControlPort); s 426 libavfilter/af_lv2.c s->lv2_Optional = lilv_new_uri(s->world, LV2_CORE__connectionOptional); s 427 libavfilter/af_lv2.c s->atom_AtomPort = lilv_new_uri(s->world, LV2_ATOM__AtomPort); s 428 libavfilter/af_lv2.c s->atom_Sequence = lilv_new_uri(s->world, LV2_ATOM__Sequence); s 429 libavfilter/af_lv2.c s->urid_map = lilv_new_uri(s->world, LV2_URID__map); s 430 libavfilter/af_lv2.c s->powerOf2BlockLength = lilv_new_uri(s->world, LV2_BUF_SIZE__powerOf2BlockLength); s 431 libavfilter/af_lv2.c s->fixedBlockLength = lilv_new_uri(s->world, LV2_BUF_SIZE__fixedBlockLength); s 432 libavfilter/af_lv2.c s->boundedBlockLength = lilv_new_uri(s->world, LV2_BUF_SIZE__boundedBlockLength); s 434 libavfilter/af_lv2.c for (i = 0; i < s->nb_ports; i++) { s 435 libavfilter/af_lv2.c const LilvPort *lport = lilv_plugin_get_port_by_index(s->plugin, i); s 439 libavfilter/af_lv2.c is_optional = lilv_port_has_property(s->plugin, lport, s->lv2_Optional); s 441 libavfilter/af_lv2.c if (lilv_port_is_a(s->plugin, lport, s->lv2_InputPort)) { s 443 libavfilter/af_lv2.c } else if (!lilv_port_is_a(s->plugin, lport, s->lv2_OutputPort) && !is_optional) { s 447 libavfilter/af_lv2.c if (lilv_port_is_a(s->plugin, lport, s->lv2_ControlPort)) { s 449 libavfilter/af_lv2.c s->nb_inputcontrols++; s 451 libavfilter/af_lv2.c } else if (lilv_port_is_a(s->plugin, lport, s->lv2_AudioPort)) { s 453 libavfilter/af_lv2.c s->nb_inputs++; s 455 libavfilter/af_lv2.c s->nb_outputs++; s 462 libavfilter/af_lv2.c if (s->nb_inputs) { s 463 libavfilter/af_lv2.c pad.name = av_asprintf("in0:%s:%u", s->plugin_uri, s->nb_inputs); s 479 libavfilter/af_lv2.c LV2Context *s = ctx->priv; s 494 libavfilter/af_lv2.c if (s->nb_inputs) { s 503 libavfilter/af_lv2.c int sample_rates[] = { s->sample_rate, -1 }; s 510 libavfilter/af_lv2.c if (s->nb_inputs == 2 && s->nb_outputs == 2) { s 519 libavfilter/af_lv2.c if (s->nb_inputs >= 1) { s 521 libavfilter/af_lv2.c uint64_t inlayout = FF_COUNT2LAYOUT(s->nb_inputs); s 531 libavfilter/af_lv2.c if (!s->nb_outputs) { s 538 libavfilter/af_lv2.c if (s->nb_outputs >= 1) { s 539 libavfilter/af_lv2.c uint64_t outlayout = FF_COUNT2LAYOUT(s->nb_outputs); s 556 libavfilter/af_lv2.c LV2Context *s = ctx->priv; s 558 libavfilter/af_lv2.c lilv_node_free(s->powerOf2BlockLength); s 559 libavfilter/af_lv2.c lilv_node_free(s->fixedBlockLength); s 560 libavfilter/af_lv2.c lilv_node_free(s->boundedBlockLength); s 561 libavfilter/af_lv2.c lilv_node_free(s->urid_map); s 562 libavfilter/af_lv2.c lilv_node_free(s->atom_Sequence); s 563 libavfilter/af_lv2.c lilv_node_free(s->atom_AtomPort); s 564 libavfilter/af_lv2.c lilv_node_free(s->lv2_Optional); s 565 libavfilter/af_lv2.c lilv_node_free(s->lv2_ControlPort); s 566 libavfilter/af_lv2.c lilv_node_free(s->lv2_AudioPort); s 567 libavfilter/af_lv2.c lilv_node_free(s->lv2_OutputPort); s 568 libavfilter/af_lv2.c lilv_node_free(s->lv2_InputPort); s 569 libavfilter/af_lv2.c uri_table_destroy(&s->uri_table); s 570 libavfilter/af_lv2.c lilv_instance_free(s->instance); s 571 libavfilter/af_lv2.c lilv_world_free(s->world); s 572 libavfilter/af_lv2.c av_freep(&s->mins); s 573 libavfilter/af_lv2.c av_freep(&s->maxes); s 574 libavfilter/af_lv2.c av_freep(&s->controls); s 575 libavfilter/af_lv2.c av_freep(&s->seq_out); s 106 libavfilter/af_mcompand.c MCompandContext *s = ctx->priv; s 109 libavfilter/af_mcompand.c av_frame_free(&s->band_buf1); s 110 libavfilter/af_mcompand.c av_frame_free(&s->band_buf2); s 111 libavfilter/af_mcompand.c av_frame_free(&s->band_buf3); s 113 libavfilter/af_mcompand.c if (s->bands) { s 114 libavfilter/af_mcompand.c for (i = 0; i < s->nb_bands; i++) { s 115 libavfilter/af_mcompand.c av_freep(&s->bands[i].attack_rate); s 116 libavfilter/af_mcompand.c av_freep(&s->bands[i].decay_rate); s 117 libavfilter/af_mcompand.c av_freep(&s->bands[i].volume); s 118 libavfilter/af_mcompand.c av_freep(&s->bands[i].transfer_fn.segments); s 119 libavfilter/af_mcompand.c av_freep(&s->bands[i].filter.previous); s 120 libavfilter/af_mcompand.c av_frame_free(&s->bands[i].delay_buf); s 123 libavfilter/af_mcompand.c av_freep(&s->bands); s 177 libavfilter/af_mcompand.c static double get_volume(CompandT *s, double in_lin) s 183 libavfilter/af_mcompand.c if (in_lin <= s->in_min_lin) s 184 libavfilter/af_mcompand.c return s->out_min_lin; s 188 libavfilter/af_mcompand.c for (i = 1; i < s->nb_segments; i++) s 189 libavfilter/af_mcompand.c if (in_log <= s->segments[i].x) s 191 libavfilter/af_mcompand.c cs = &s->segments[i - 1]; s 199 libavfilter/af_mcompand.c CompandT *s, AVFilterContext *ctx) s 206 libavfilter/af_mcompand.c #define S(x) s->segments[2 * ((x) + 1)] s 231 libavfilter/af_mcompand.c #define S(x) s->segments[2 * (x)] s 233 libavfilter/af_mcompand.c S(0).x = S(1).x - 2 * s->curve_dB; s 250 libavfilter/af_mcompand.c for (i = 0; i < s->nb_segments; i += 2) { s 251 libavfilter/af_mcompand.c s->segments[i].y += s->gain_dB; s 252 libavfilter/af_mcompand.c s->segments[i].x *= M_LN10 / 20; s 253 libavfilter/af_mcompand.c s->segments[i].y *= M_LN10 / 20; s 256 libavfilter/af_mcompand.c #define L(x) s->segments[i - (x)] s 257 libavfilter/af_mcompand.c for (i = 4; i < s->nb_segments; i += 2) { s 294 libavfilter/af_mcompand.c s->in_min_lin = exp(s->segments[1].x); s 295 libavfilter/af_mcompand.c s->out_min_lin = exp(s->segments[1].y); s 346 libavfilter/af_mcompand.c MCompandContext *s = ctx->priv; s 348 libavfilter/af_mcompand.c char *p = s->args, *saveptr = NULL; s 351 libavfilter/af_mcompand.c count_items(s->args, &nb_bands, '|'); s 352 libavfilter/af_mcompand.c s->nb_bands = FFMAX(1, nb_bands); s 354 libavfilter/af_mcompand.c s->bands = av_calloc(nb_bands, sizeof(*s->bands)); s 355 libavfilter/af_mcompand.c if (!s->bands) s 388 libavfilter/af_mcompand.c s->bands[i].attack_rate = av_calloc(outlink->channels, sizeof(double)); s 389 libavfilter/af_mcompand.c s->bands[i].decay_rate = av_calloc(outlink->channels, sizeof(double)); s 390 libavfilter/af_mcompand.c s->bands[i].volume = av_calloc(outlink->channels, sizeof(double)); s 395 libavfilter/af_mcompand.c sscanf(tstr3, "%lf", &s->bands[i].attack_rate[k]); s 397 libavfilter/af_mcompand.c sscanf(tstr3, "%lf", &s->bands[i].decay_rate[k]); s 399 libavfilter/af_mcompand.c if (s->bands[i].attack_rate[k] > 1.0 / outlink->sample_rate) { s 400 libavfilter/af_mcompand.c s->bands[i].attack_rate[k] = 1.0 - exp(-1.0 / (outlink->sample_rate * s->bands[i].attack_rate[k])); s 402 libavfilter/af_mcompand.c s->bands[i].attack_rate[k] = 1.0; s 405 libavfilter/af_mcompand.c if (s->bands[i].decay_rate[k] > 1.0 / outlink->sample_rate) { s 406 libavfilter/af_mcompand.c s->bands[i].decay_rate[k] = 1.0 - exp(-1.0 / (outlink->sample_rate * s->bands[i].decay_rate[k])); s 408 libavfilter/af_mcompand.c s->bands[i].decay_rate[k] = 1.0; s 413 libavfilter/af_mcompand.c s->bands[i].attack_rate[ch] = s->bands[i].attack_rate[k - 1]; s 414 libavfilter/af_mcompand.c s->bands[i].decay_rate[ch] = s->bands[i].decay_rate[k - 1]; s 423 libavfilter/af_mcompand.c sscanf(tstr2, "%lf", &s->bands[i].transfer_fn.curve_dB); s 425 libavfilter/af_mcompand.c radius = s->bands[i].transfer_fn.curve_dB * M_LN10 / 20.0; s 435 libavfilter/af_mcompand.c s->bands[i].transfer_fn.nb_segments = (nb_points + 4) * 2; s 436 libavfilter/af_mcompand.c s->bands[i].transfer_fn.segments = av_calloc(s->bands[i].transfer_fn.nb_segments, s 438 libavfilter/af_mcompand.c if (!s->bands[i].transfer_fn.segments) { s 443 libavfilter/af_mcompand.c ret = parse_points(tstr2, nb_points, radius, &s->bands[i].transfer_fn, ctx); s 457 libavfilter/af_mcompand.c new_nb_items += sscanf(tstr2, "%lf", &s->bands[i].topfreq) == 1; s 458 libavfilter/af_mcompand.c if (s->bands[i].topfreq < 0 || s->bands[i].topfreq >= outlink->sample_rate / 2) { s 459 libavfilter/af_mcompand.c av_log(ctx, AV_LOG_ERROR, "crossover_frequency: %f, should be >=0 and lower than half of sample rate: %d.\n", s->bands[i].topfreq, outlink->sample_rate / 2); s 464 libavfilter/af_mcompand.c if (s->bands[i].topfreq != 0) { s 465 libavfilter/af_mcompand.c ret = crossover_setup(outlink, &s->bands[i].filter, s->bands[i].topfreq); s 474 libavfilter/af_mcompand.c sscanf(tstr2, "%lf", &s->bands[i].delay); s 475 libavfilter/af_mcompand.c max_delay_size = FFMAX(max_delay_size, s->bands[i].delay * outlink->sample_rate); s 485 libavfilter/af_mcompand.c s->bands[i].volume[k] = initial_volume; s 490 libavfilter/af_mcompand.c sscanf(tstr2, "%lf", &s->bands[i].transfer_fn.gain_dB); s 495 libavfilter/af_mcompand.c s->nb_bands = new_nb_items; s 497 libavfilter/af_mcompand.c for (i = 0; max_delay_size > 0 && i < s->nb_bands; i++) { s 498 libavfilter/af_mcompand.c s->bands[i].delay_buf = ff_get_audio_buffer(outlink, max_delay_size); s 499 libavfilter/af_mcompand.c if (!s->bands[i].delay_buf) s 502 libavfilter/af_mcompand.c s->delay_buf_size = max_delay_size; s 597 libavfilter/af_mcompand.c MCompandContext *s = ctx->priv; s 607 libavfilter/af_mcompand.c if (s->band_samples < in->nb_samples) { s 608 libavfilter/af_mcompand.c av_frame_free(&s->band_buf1); s 609 libavfilter/af_mcompand.c av_frame_free(&s->band_buf2); s 610 libavfilter/af_mcompand.c av_frame_free(&s->band_buf3); s 612 libavfilter/af_mcompand.c s->band_buf1 = ff_get_audio_buffer(outlink, in->nb_samples); s 613 libavfilter/af_mcompand.c s->band_buf2 = ff_get_audio_buffer(outlink, in->nb_samples); s 614 libavfilter/af_mcompand.c s->band_buf3 = ff_get_audio_buffer(outlink, in->nb_samples); s 615 libavfilter/af_mcompand.c s->band_samples = in->nb_samples; s 621 libavfilter/af_mcompand.c for (band = 0, abuf = in, bbuf = s->band_buf2, cbuf = s->band_buf1; band < s->nb_bands; band++) { s 622 libavfilter/af_mcompand.c CompBand *b = &s->bands[band]; s 633 libavfilter/af_mcompand.c abuf = s->band_buf3; s 634 libavfilter/af_mcompand.c mcompand_channel(s, b, (double *)bbuf->extended_data[ch], (double *)abuf->extended_data[ch], out->nb_samples, ch); s 346 libavfilter/af_replaygain.c ReplayGainContext *s = ctx->priv; s 355 libavfilter/af_replaygain.c s->yule_coeff_a = freqinfos[i].AYule; s 356 libavfilter/af_replaygain.c s->yule_coeff_b = freqinfos[i].BYule; s 357 libavfilter/af_replaygain.c s->butter_coeff_a = freqinfos[i].AButter; s 358 libavfilter/af_replaygain.c s->butter_coeff_b = freqinfos[i].BButter; s 360 libavfilter/af_replaygain.c s->yule_hist_i = 20; s 361 libavfilter/af_replaygain.c s->butter_hist_i = 4; s 415 libavfilter/af_replaygain.c static void butter_filter_stereo_samples(ReplayGainContext *s, s 418 libavfilter/af_replaygain.c const double *coeff_a = s->butter_coeff_a; s 419 libavfilter/af_replaygain.c const double *coeff_b = s->butter_coeff_b; s 420 libavfilter/af_replaygain.c float *hist_a = s->butter_hist_a; s 421 libavfilter/af_replaygain.c float *hist_b = s->butter_hist_b; s 425 libavfilter/af_replaygain.c i = s->butter_hist_i; s 436 libavfilter/af_replaygain.c memset(s->butter_hist_a, 0, sizeof(s->butter_hist_a)); s 437 libavfilter/af_replaygain.c memset(s->butter_hist_b, 0, sizeof(s->butter_hist_b)); s 458 libavfilter/af_replaygain.c s->butter_hist_i = i; s 464 libavfilter/af_replaygain.c static void yule_filter_stereo_samples(ReplayGainContext *s, const float *src, s 467 libavfilter/af_replaygain.c const double *coeff_a = s->yule_coeff_a; s 468 libavfilter/af_replaygain.c const double *coeff_b = s->yule_coeff_b; s 469 libavfilter/af_replaygain.c float *hist_a = s->yule_hist_a; s 470 libavfilter/af_replaygain.c float *hist_b = s->yule_hist_b; s 474 libavfilter/af_replaygain.c i = s->yule_hist_i; s 485 libavfilter/af_replaygain.c memset(s->yule_hist_a, 0, sizeof(s->yule_hist_a)); s 486 libavfilter/af_replaygain.c memset(s->yule_hist_b, 0, sizeof(s->yule_hist_b)); s 524 libavfilter/af_replaygain.c s->yule_hist_i = i; s 553 libavfilter/af_replaygain.c ReplayGainContext *s = ctx->priv; s 564 libavfilter/af_replaygain.c in->nb_samples, &s->peak); s 565 libavfilter/af_replaygain.c yule_filter_stereo_samples(s, (const float *)in->data[0], s 568 libavfilter/af_replaygain.c butter_filter_stereo_samples(s, (float *)out->data[0], s 574 libavfilter/af_replaygain.c s->histogram[level]++; s 582 libavfilter/af_replaygain.c ReplayGainContext *s = ctx->priv; s 583 libavfilter/af_replaygain.c float gain = calc_replaygain(s->histogram); s 586 libavfilter/af_replaygain.c av_log(ctx, AV_LOG_INFO, "track_peak = %.6f\n", s->peak); s 53 libavfilter/af_resample.c ResampleContext *s = ctx->priv; s 60 libavfilter/af_resample.c av_dict_set(&s->options, e->key, e->value, 0); s 64 libavfilter/af_resample.c while ((e = av_dict_get(s->options, "", e, AV_DICT_IGNORE_SUFFIX))) s 68 libavfilter/af_resample.c av_dict_set(&s->options, "in_channel_layout", NULL, 0); s 69 libavfilter/af_resample.c av_dict_set(&s->options, "out_channel_layout", NULL, 0); s 70 libavfilter/af_resample.c av_dict_set(&s->options, "in_sample_fmt", NULL, 0); s 71 libavfilter/af_resample.c av_dict_set(&s->options, "out_sample_fmt", NULL, 0); s 72 libavfilter/af_resample.c av_dict_set(&s->options, "in_sample_rate", NULL, 0); s 73 libavfilter/af_resample.c av_dict_set(&s->options, "out_sample_rate", NULL, 0); s 80 libavfilter/af_resample.c ResampleContext *s = ctx->priv; s 82 libavfilter/af_resample.c if (s->avr) { s 83 libavfilter/af_resample.c avresample_close(s->avr); s 84 libavfilter/af_resample.c avresample_free(&s->avr); s 86 libavfilter/af_resample.c av_dict_free(&s->options); s 120 libavfilter/af_resample.c ResampleContext *s = ctx->priv; s 126 libavfilter/af_resample.c if (s->avr) { s 127 libavfilter/af_resample.c avresample_close(s->avr); s 128 libavfilter/af_resample.c avresample_free(&s->avr); s 140 libavfilter/af_resample.c if (!(s->avr = avresample_alloc_context())) s 143 libavfilter/af_resample.c if (s->options) { s 146 libavfilter/af_resample.c while ((e = av_dict_get(s->options, "", e, AV_DICT_IGNORE_SUFFIX))) s 149 libavfilter/af_resample.c ret = av_opt_set_dict(s->avr, &s->options); s 154 libavfilter/af_resample.c av_opt_set_int(s->avr, "in_channel_layout", inlink ->channel_layout, 0); s 155 libavfilter/af_resample.c av_opt_set_int(s->avr, "out_channel_layout", outlink->channel_layout, 0); s 156 libavfilter/af_resample.c av_opt_set_int(s->avr, "in_sample_fmt", inlink ->format, 0); s 157 libavfilter/af_resample.c av_opt_set_int(s->avr, "out_sample_fmt", outlink->format, 0); s 158 libavfilter/af_resample.c av_opt_set_int(s->avr, "in_sample_rate", inlink ->sample_rate, 0); s 159 libavfilter/af_resample.c av_opt_set_int(s->avr, "out_sample_rate", outlink->sample_rate, 0); s 161 libavfilter/af_resample.c if ((ret = avresample_open(s->avr)) < 0) s 164 libavfilter/af_resample.c av_opt_get_int(s->avr, "force_resampling", 0, &resampling_forced); s 165 libavfilter/af_resample.c s->resampling = resampling_forced || (inlink->sample_rate != outlink->sample_rate); s 167 libavfilter/af_resample.c if (s->resampling) { s 169 libavfilter/af_resample.c s->next_pts = AV_NOPTS_VALUE; s 170 libavfilter/af_resample.c s->next_in_pts = AV_NOPTS_VALUE; s 189 libavfilter/af_resample.c ResampleContext *s = ctx->priv; s 192 libavfilter/af_resample.c s->got_output = 0; s 193 libavfilter/af_resample.c while (ret >= 0 && !s->got_output) s 197 libavfilter/af_resample.c if (ret == AVERROR_EOF && s->avr) { s 199 libavfilter/af_resample.c int nb_samples = avresample_get_out_samples(s->avr, 0); s 208 libavfilter/af_resample.c ret = avresample_convert(s->avr, frame->extended_data, s 217 libavfilter/af_resample.c frame->pts = s->next_pts; s 226 libavfilter/af_resample.c ResampleContext *s = ctx->priv; s 230 libavfilter/af_resample.c if (s->avr) { s 235 libavfilter/af_resample.c delay = avresample_get_delay(s->avr); s 236 libavfilter/af_resample.c nb_samples = avresample_get_out_samples(s->avr, in->nb_samples); s 244 libavfilter/af_resample.c ret = avresample_convert(s->avr, out->extended_data, out->linesize[0], s 253 libavfilter/af_resample.c av_assert0(!avresample_available(s->avr)); s 255 libavfilter/af_resample.c if (s->resampling && s->next_pts == AV_NOPTS_VALUE) { s 259 libavfilter/af_resample.c s->next_pts = 0; s 261 libavfilter/af_resample.c s->next_pts = av_rescale_q(in->pts, inlink->time_base, s 274 libavfilter/af_resample.c if (s->resampling) { s 281 libavfilter/af_resample.c if (in->pts != AV_NOPTS_VALUE && in->pts != s->next_in_pts) { s 287 libavfilter/af_resample.c out->pts = s->next_pts; s 289 libavfilter/af_resample.c s->next_pts = out->pts + out->nb_samples; s 290 libavfilter/af_resample.c s->next_in_pts = in->pts + in->nb_samples; s 295 libavfilter/af_resample.c s->got_output = 1; s 303 libavfilter/af_resample.c s->got_output = 1; s 316 libavfilter/af_resample.c ResampleContext *s = obj; s 317 libavfilter/af_resample.c return prev ? NULL : s->avr; s 86 libavfilter/af_rubberband.c RubberBandContext *s = ctx->priv; s 88 libavfilter/af_rubberband.c if (s->rbs) s 89 libavfilter/af_rubberband.c rubberband_delete(s->rbs); s 125 libavfilter/af_rubberband.c RubberBandContext *s = ctx->priv; s 130 libavfilter/af_rubberband.c if (s->first_pts == AV_NOPTS_VALUE) s 131 libavfilter/af_rubberband.c s->first_pts = in->pts; s 133 libavfilter/af_rubberband.c rubberband_process(s->rbs, (const float *const *)in->data, in->nb_samples, ff_outlink_get_status(inlink)); s 134 libavfilter/af_rubberband.c s->nb_samples_in += in->nb_samples; s 136 libavfilter/af_rubberband.c nb_samples = rubberband_available(s->rbs); s 143 libavfilter/af_rubberband.c out->pts = s->first_pts + av_rescale_q(s->nb_samples_out, s 146 libavfilter/af_rubberband.c nb_samples = rubberband_retrieve(s->rbs, (float *const *)out->data, nb_samples); s 149 libavfilter/af_rubberband.c s->nb_samples_out += nb_samples; s 153 libavfilter/af_rubberband.c if (ff_inlink_queued_samples(inlink) >= s->nb_samples) s 161 libavfilter/af_rubberband.c RubberBandContext *s = ctx->priv; s 162 libavfilter/af_rubberband.c int opts = s->transients|s->detector|s->phase|s->window| s 163 libavfilter/af_rubberband.c s->smoothing|s->formant|s->opitch|s->channels| s 166 libavfilter/af_rubberband.c if (s->rbs) s 167 libavfilter/af_rubberband.c rubberband_delete(s->rbs); s 168 libavfilter/af_rubberband.c s->rbs = rubberband_new(inlink->sample_rate, inlink->channels, opts, 1. / s->tempo, s->pitch); s 169 libavfilter/af_rubberband.c if (!s->rbs) s 172 libavfilter/af_rubberband.c s->nb_samples = rubberband_get_samples_required(s->rbs); s 173 libavfilter/af_rubberband.c s->first_pts = AV_NOPTS_VALUE; s 182 libavfilter/af_rubberband.c RubberBandContext *s = ctx->priv; s 188 libavfilter/af_rubberband.c ret = ff_inlink_consume_samples(inlink, s->nb_samples, s->nb_samples, &in); s 206 libavfilter/af_rubberband.c RubberBandContext *s = ctx->priv; s 213 libavfilter/af_rubberband.c rubberband_set_time_ratio(s->rbs, 1. / s->tempo); s 214 libavfilter/af_rubberband.c rubberband_set_pitch_scale(s->rbs, s->pitch); s 145 libavfilter/af_sidechaincompress.c SidechainCompressContext *s = ctx->priv; s 147 libavfilter/af_sidechaincompress.c s->thres = log(s->threshold); s 148 libavfilter/af_sidechaincompress.c s->lin_knee_start = s->threshold / sqrt(s->knee); s 149 libavfilter/af_sidechaincompress.c s->lin_knee_stop = s->threshold * sqrt(s->knee); s 150 libavfilter/af_sidechaincompress.c s->adj_knee_start = s->lin_knee_start * s->lin_knee_start; s 151 libavfilter/af_sidechaincompress.c s->adj_knee_stop = s->lin_knee_stop * s->lin_knee_stop; s 152 libavfilter/af_sidechaincompress.c s->knee_start = log(s->lin_knee_start); s 153 libavfilter/af_sidechaincompress.c s->knee_stop = log(s->lin_knee_stop); s 154 libavfilter/af_sidechaincompress.c s->compressed_knee_start = (s->knee_start - s->thres) / s->ratio + s->thres; s 155 libavfilter/af_sidechaincompress.c s->compressed_knee_stop = (s->knee_stop - s->thres) / s->ratio + s->thres; s 157 libavfilter/af_sidechaincompress.c s->attack_coeff = FFMIN(1., 1. / (s->attack * outlink->sample_rate / 4000.)); s 158 libavfilter/af_sidechaincompress.c s->release_coeff = FFMIN(1., 1. / (s->release * outlink->sample_rate / 4000.)); s 163 libavfilter/af_sidechaincompress.c static void compressor(SidechainCompressContext *s, s 168 libavfilter/af_sidechaincompress.c const double makeup = s->makeup; s 169 libavfilter/af_sidechaincompress.c const double mix = s->mix; s 179 libavfilter/af_sidechaincompress.c if (s->link == 1) { s 189 libavfilter/af_sidechaincompress.c if (s->detection) s 192 libavfilter/af_sidechaincompress.c s->lin_slope += (abs_sample - s->lin_slope) * (abs_sample > s->lin_slope ? s->attack_coeff : s->release_coeff); s 194 libavfilter/af_sidechaincompress.c if (s->mode) { s 195 libavfilter/af_sidechaincompress.c detector = (s->detection ? s->adj_knee_stop : s->lin_knee_stop); s 196 libavfilter/af_sidechaincompress.c detected = s->lin_slope < detector; s 198 libavfilter/af_sidechaincompress.c detector = (s->detection ? s->adj_knee_start : s->lin_knee_start); s 199 libavfilter/af_sidechaincompress.c detected = s->lin_slope > detector; s 202 libavfilter/af_sidechaincompress.c if (s->lin_slope > 0.0 && detected) s 203 libavfilter/af_sidechaincompress.c gain = output_gain(s->lin_slope, s->ratio, s->thres, s->knee, s 204 libavfilter/af_sidechaincompress.c s->knee_start, s->knee_stop, s 205 libavfilter/af_sidechaincompress.c s->compressed_knee_start, s 206 libavfilter/af_sidechaincompress.c s->compressed_knee_stop, s 207 libavfilter/af_sidechaincompress.c s->detection, s->mode); s 235 libavfilter/af_sidechaincompress.c SidechainCompressContext *s = ctx->priv; s 242 libavfilter/af_sidechaincompress.c av_audio_fifo_write(s->fifo[0], (void **)in[0]->extended_data, s 249 libavfilter/af_sidechaincompress.c av_audio_fifo_write(s->fifo[1], (void **)in[1]->extended_data, s 256 libavfilter/af_sidechaincompress.c nb_samples = FFMIN(av_audio_fifo_size(s->fifo[0]), av_audio_fifo_size(s->fifo[1])); s 269 libavfilter/af_sidechaincompress.c av_audio_fifo_read(s->fifo[i], (void **)in[i]->data, nb_samples); s 273 libavfilter/af_sidechaincompress.c out->pts = s->pts; s 274 libavfilter/af_sidechaincompress.c s->pts += av_rescale_q(nb_samples, (AVRational){1, ctx->outputs[0]->sample_rate}, ctx->outputs[0]->time_base); s 276 libavfilter/af_sidechaincompress.c compressor(s, (double *)in[0]->data[0], dst, s 278 libavfilter/af_sidechaincompress.c s->level_in, s->level_sc, s 291 libavfilter/af_sidechaincompress.c if (!av_audio_fifo_size(s->fifo[0])) s 293 libavfilter/af_sidechaincompress.c if (!av_audio_fifo_size(s->fifo[1])) s 337 libavfilter/af_sidechaincompress.c SidechainCompressContext *s = ctx->priv; s 352 libavfilter/af_sidechaincompress.c s->fifo[0] = av_audio_fifo_alloc(ctx->inputs[0]->format, ctx->inputs[0]->channels, 1024); s 353 libavfilter/af_sidechaincompress.c s->fifo[1] = av_audio_fifo_alloc(ctx->inputs[1]->format, ctx->inputs[1]->channels, 1024); s 354 libavfilter/af_sidechaincompress.c if (!s->fifo[0] || !s->fifo[1]) s 364 libavfilter/af_sidechaincompress.c SidechainCompressContext *s = ctx->priv; s 366 libavfilter/af_sidechaincompress.c av_audio_fifo_free(s->fifo[0]); s 367 libavfilter/af_sidechaincompress.c av_audio_fifo_free(s->fifo[1]); s 409 libavfilter/af_sidechaincompress.c SidechainCompressContext *s = ctx->priv; s 426 libavfilter/af_sidechaincompress.c compressor(s, src, dst, src, in->nb_samples, s 427 libavfilter/af_sidechaincompress.c s->level_in, s->level_in, s 48 libavfilter/af_silencedetect.c void (*silencedetect)(struct SilenceDetectContext *s, AVFrame *insamples, s 78 libavfilter/af_silencedetect.c static av_always_inline void update(SilenceDetectContext *s, AVFrame *insamples, s 82 libavfilter/af_silencedetect.c int channel = current_sample % s->independent_channels; s 84 libavfilter/af_silencedetect.c if (s->start[channel] == INT64_MIN) { s 85 libavfilter/af_silencedetect.c s->nb_null_samples[channel]++; s 86 libavfilter/af_silencedetect.c if (s->nb_null_samples[channel] >= nb_samples_notify) { s 87 libavfilter/af_silencedetect.c s->start[channel] = insamples->pts + av_rescale_q(current_sample / s->channels + 1 - nb_samples_notify * s->independent_channels / s->channels, s 88 libavfilter/af_silencedetect.c (AVRational){ 1, s->last_sample_rate }, time_base); s 89 libavfilter/af_silencedetect.c set_meta(insamples, s->mono ? channel + 1 : 0, "silence_start", s 90 libavfilter/af_silencedetect.c av_ts2timestr(s->start[channel], &time_base)); s 91 libavfilter/af_silencedetect.c if (s->mono) s 92 libavfilter/af_silencedetect.c av_log(s, AV_LOG_INFO, "channel: %d | ", channel); s 93 libavfilter/af_silencedetect.c av_log(s, AV_LOG_INFO, "silence_start: %s\n", s 94 libavfilter/af_silencedetect.c av_ts2timestr(s->start[channel], &time_base)); s 98 libavfilter/af_silencedetect.c if (s->start[channel] > INT64_MIN) { s 99 libavfilter/af_silencedetect.c int64_t end_pts = insamples ? insamples->pts + av_rescale_q(current_sample / s->channels, s 100 libavfilter/af_silencedetect.c (AVRational){ 1, s->last_sample_rate }, time_base) s 101 libavfilter/af_silencedetect.c : s->frame_end; s 102 libavfilter/af_silencedetect.c int64_t duration_ts = end_pts - s->start[channel]; s 104 libavfilter/af_silencedetect.c set_meta(insamples, s->mono ? channel + 1 : 0, "silence_end", s 106 libavfilter/af_silencedetect.c set_meta(insamples, s->mono ? channel + 1 : 0, "silence_duration", s 109 libavfilter/af_silencedetect.c if (s->mono) s 110 libavfilter/af_silencedetect.c av_log(s, AV_LOG_INFO, "channel: %d | ", channel); s 111 libavfilter/af_silencedetect.c av_log(s, AV_LOG_INFO, "silence_end: %s | silence_duration: %s\n", s 115 libavfilter/af_silencedetect.c s->nb_null_samples[channel] = 0; s 116 libavfilter/af_silencedetect.c s->start[channel] = INT64_MIN; s 121 libavfilter/af_silencedetect.c static void silencedetect_##name(SilenceDetectContext *s, AVFrame *insamples, \ s 126 libavfilter/af_silencedetect.c const type noise = s->noise; \ s 130 libavfilter/af_silencedetect.c update(s, insamples, *p < noise && *p > -noise, i, \ s 142 libavfilter/af_silencedetect.c SilenceDetectContext *s = ctx->priv; s 145 libavfilter/af_silencedetect.c s->channels = inlink->channels; s 146 libavfilter/af_silencedetect.c s->duration = av_rescale(s->duration, inlink->sample_rate, AV_TIME_BASE); s 147 libavfilter/af_silencedetect.c s->independent_channels = s->mono ? s->channels : 1; s 148 libavfilter/af_silencedetect.c s->nb_null_samples = av_mallocz_array(sizeof(*s->nb_null_samples), s->independent_channels); s 149 libavfilter/af_silencedetect.c if (!s->nb_null_samples) s 151 libavfilter/af_silencedetect.c s->start = av_malloc_array(sizeof(*s->start), s->independent_channels); s 152 libavfilter/af_silencedetect.c if (!s->start) s 154 libavfilter/af_silencedetect.c for (c = 0; c < s->independent_channels; c++) s 155 libavfilter/af_silencedetect.c s->start[c] = INT64_MIN; s 158 libavfilter/af_silencedetect.c case AV_SAMPLE_FMT_DBL: s->silencedetect = silencedetect_dbl; break; s 159 libavfilter/af_silencedetect.c case AV_SAMPLE_FMT_FLT: s->silencedetect = silencedetect_flt; break; s 161 libavfilter/af_silencedetect.c s->noise *= INT32_MAX; s 162 libavfilter/af_silencedetect.c s->silencedetect = silencedetect_s32; s 165 libavfilter/af_silencedetect.c s->noise *= INT16_MAX; s 166 libavfilter/af_silencedetect.c s->silencedetect = silencedetect_s16; s 175 libavfilter/af_silencedetect.c SilenceDetectContext *s = inlink->dst->priv; s 179 libavfilter/af_silencedetect.c const int64_t nb_samples_notify = s->duration * (s->mono ? 1 : nb_channels); s 183 libavfilter/af_silencedetect.c if (s->last_sample_rate && s->last_sample_rate != srate) s 184 libavfilter/af_silencedetect.c for (c = 0; c < s->independent_channels; c++) { s 185 libavfilter/af_silencedetect.c s->nb_null_samples[c] = srate * s->nb_null_samples[c] / s->last_sample_rate; s 187 libavfilter/af_silencedetect.c s->last_sample_rate = srate; s 188 libavfilter/af_silencedetect.c s->time_base = inlink->time_base; s 189 libavfilter/af_silencedetect.c s->frame_end = insamples->pts + av_rescale_q(insamples->nb_samples, s 190 libavfilter/af_silencedetect.c (AVRational){ 1, s->last_sample_rate }, inlink->time_base); s 192 libavfilter/af_silencedetect.c s->silencedetect(s, insamples, nb_samples, nb_samples_notify, s 233 libavfilter/af_silencedetect.c SilenceDetectContext *s = ctx->priv; s 236 libavfilter/af_silencedetect.c for (c = 0; c < s->independent_channels; c++) s 237 libavfilter/af_silencedetect.c if (s->start[c] > INT64_MIN) s 238 libavfilter/af_silencedetect.c update(s, NULL, 0, c, 0, s->time_base); s 239 libavfilter/af_silencedetect.c av_freep(&s->nb_null_samples); s 240 libavfilter/af_silencedetect.c av_freep(&s->start); s 99 libavfilter/af_silenceremove.c void (*update)(struct SilenceRemoveContext *s, double sample); s 100 libavfilter/af_silenceremove.c double(*compute)(struct SilenceRemoveContext *s, double sample); s 128 libavfilter/af_silenceremove.c static double compute_peak(SilenceRemoveContext *s, double sample) s 132 libavfilter/af_silenceremove.c new_sum = s->sum; s 133 libavfilter/af_silenceremove.c new_sum -= *s->window_current; s 136 libavfilter/af_silenceremove.c return new_sum / s->window_size; s 139 libavfilter/af_silenceremove.c static void update_peak(SilenceRemoveContext *s, double sample) s 141 libavfilter/af_silenceremove.c s->sum -= *s->window_current; s 142 libavfilter/af_silenceremove.c *s->window_current = fabs(sample); s 143 libavfilter/af_silenceremove.c s->sum += *s->window_current; s 145 libavfilter/af_silenceremove.c s->window_current++; s 146 libavfilter/af_silenceremove.c if (s->window_current >= s->window_end) s 147 libavfilter/af_silenceremove.c s->window_current = s->window; s 150 libavfilter/af_silenceremove.c static double compute_rms(SilenceRemoveContext *s, double sample) s 154 libavfilter/af_silenceremove.c new_sum = s->sum; s 155 libavfilter/af_silenceremove.c new_sum -= *s->window_current; s 158 libavfilter/af_silenceremove.c return sqrt(new_sum / s->window_size); s 161 libavfilter/af_silenceremove.c static void update_rms(SilenceRemoveContext *s, double sample) s 163 libavfilter/af_silenceremove.c s->sum -= *s->window_current; s 164 libavfilter/af_silenceremove.c *s->window_current = sample * sample; s 165 libavfilter/af_silenceremove.c s->sum += *s->window_current; s 167 libavfilter/af_silenceremove.c s->window_current++; s 168 libavfilter/af_silenceremove.c if (s->window_current >= s->window_end) s 169 libavfilter/af_silenceremove.c s->window_current = s->window; s 174 libavfilter/af_silenceremove.c SilenceRemoveContext *s = ctx->priv; s 176 libavfilter/af_silenceremove.c if (s->stop_periods < 0) { s 177 libavfilter/af_silenceremove.c s->stop_periods = -s->stop_periods; s 178 libavfilter/af_silenceremove.c s->restart = 1; s 181 libavfilter/af_silenceremove.c switch (s->detection) { s 183 libavfilter/af_silenceremove.c s->update = update_peak; s 184 libavfilter/af_silenceremove.c s->compute = compute_peak; s 187 libavfilter/af_silenceremove.c s->update = update_rms; s 188 libavfilter/af_silenceremove.c s->compute = compute_rms; s 195 libavfilter/af_silenceremove.c static void clear_window(SilenceRemoveContext *s) s 197 libavfilter/af_silenceremove.c memset(s->window, 0, s->window_size * sizeof(*s->window)); s 199 libavfilter/af_silenceremove.c s->window_current = s->window; s 200 libavfilter/af_silenceremove.c s->window_end = s->window + s->window_size; s 201 libavfilter/af_silenceremove.c s->sum = 0; s 207 libavfilter/af_silenceremove.c SilenceRemoveContext *s = ctx->priv; s 209 libavfilter/af_silenceremove.c s->next_pts = AV_NOPTS_VALUE; s 210 libavfilter/af_silenceremove.c s->window_size = FFMAX((inlink->sample_rate * s->window_ratio), 1) * inlink->channels; s 211 libavfilter/af_silenceremove.c s->window = av_malloc_array(s->window_size, sizeof(*s->window)); s 212 libavfilter/af_silenceremove.c if (!s->window) s 215 libavfilter/af_silenceremove.c clear_window(s); s 217 libavfilter/af_silenceremove.c s->start_duration = av_rescale(s->start_duration_opt, inlink->sample_rate, s 219 libavfilter/af_silenceremove.c s->start_silence = av_rescale(s->start_silence_opt, inlink->sample_rate, s 221 libavfilter/af_silenceremove.c s->stop_duration = av_rescale(s->stop_duration_opt, inlink->sample_rate, s 223 libavfilter/af_silenceremove.c s->stop_silence = av_rescale(s->stop_silence_opt, inlink->sample_rate, s 226 libavfilter/af_silenceremove.c s->start_holdoff = av_malloc_array(FFMAX(s->start_duration, 1), s 227 libavfilter/af_silenceremove.c sizeof(*s->start_holdoff) * s 229 libavfilter/af_silenceremove.c if (!s->start_holdoff) s 232 libavfilter/af_silenceremove.c s->start_silence_hold = av_malloc_array(FFMAX(s->start_silence, 1), s 233 libavfilter/af_silenceremove.c sizeof(*s->start_silence_hold) * s 235 libavfilter/af_silenceremove.c if (!s->start_silence_hold) s 238 libavfilter/af_silenceremove.c s->start_holdoff_offset = 0; s 239 libavfilter/af_silenceremove.c s->start_holdoff_end = 0; s 240 libavfilter/af_silenceremove.c s->start_found_periods = 0; s 242 libavfilter/af_silenceremove.c s->stop_holdoff = av_malloc_array(FFMAX(s->stop_duration, 1), s 243 libavfilter/af_silenceremove.c sizeof(*s->stop_holdoff) * s 245 libavfilter/af_silenceremove.c if (!s->stop_holdoff) s 248 libavfilter/af_silenceremove.c s->stop_silence_hold = av_malloc_array(FFMAX(s->stop_silence, 1), s 249 libavfilter/af_silenceremove.c sizeof(*s->stop_silence_hold) * s 251 libavfilter/af_silenceremove.c if (!s->stop_silence_hold) s 254 libavfilter/af_silenceremove.c s->stop_holdoff_offset = 0; s 255 libavfilter/af_silenceremove.c s->stop_holdoff_end = 0; s 256 libavfilter/af_silenceremove.c s->stop_found_periods = 0; s 258 libavfilter/af_silenceremove.c if (s->start_periods) s 259 libavfilter/af_silenceremove.c s->mode = SILENCE_TRIM; s 261 libavfilter/af_silenceremove.c s->mode = SILENCE_COPY; s 266 libavfilter/af_silenceremove.c static void flush(SilenceRemoveContext *s, s 275 libavfilter/af_silenceremove.c out->pts = s->next_pts; s 276 libavfilter/af_silenceremove.c s->next_pts += av_rescale_q(out->nb_samples, s 288 libavfilter/af_silenceremove.c if (s->stop_silence_end <= 0 || !flush_silence) s 291 libavfilter/af_silenceremove.c silence = ff_get_audio_buffer(outlink, s->stop_silence_end / outlink->channels); s 297 libavfilter/af_silenceremove.c if (s->stop_silence_offset < s->stop_silence_end) { s 299 libavfilter/af_silenceremove.c &s->stop_silence_hold[s->stop_silence_offset], s 300 libavfilter/af_silenceremove.c (s->stop_silence_end - s->stop_silence_offset) * sizeof(double)); s 303 libavfilter/af_silenceremove.c if (s->stop_silence_offset > 0) { s 304 libavfilter/af_silenceremove.c memcpy(silence->data[0] + (s->stop_silence_end - s->stop_silence_offset) * sizeof(double), s 305 libavfilter/af_silenceremove.c &s->stop_silence_hold[0], s 306 libavfilter/af_silenceremove.c s->stop_silence_offset * sizeof(double)); s 309 libavfilter/af_silenceremove.c s->stop_silence_offset = 0; s 310 libavfilter/af_silenceremove.c s->stop_silence_end = 0; s 312 libavfilter/af_silenceremove.c silence->pts = s->next_pts; s 313 libavfilter/af_silenceremove.c s->next_pts += av_rescale_q(silence->nb_samples, s 324 libavfilter/af_silenceremove.c SilenceRemoveContext *s = ctx->priv; s 332 libavfilter/af_silenceremove.c if (s->next_pts == AV_NOPTS_VALUE) s 333 libavfilter/af_silenceremove.c s->next_pts = in->pts; s 335 libavfilter/af_silenceremove.c switch (s->mode) { s 343 libavfilter/af_silenceremove.c if (s->start_mode == T_ANY) { s 346 libavfilter/af_silenceremove.c threshold |= s->compute(s, ibuf[j]) > s->start_threshold; s 351 libavfilter/af_silenceremove.c threshold &= s->compute(s, ibuf[j]) > s->start_threshold; s 357 libavfilter/af_silenceremove.c s->update(s, *ibuf); s 358 libavfilter/af_silenceremove.c s->start_holdoff[s->start_holdoff_end++] = *ibuf++; s 362 libavfilter/af_silenceremove.c if (s->start_holdoff_end >= s->start_duration * outlink->channels) { s 363 libavfilter/af_silenceremove.c if (++s->start_found_periods >= s->start_periods) { s 364 libavfilter/af_silenceremove.c s->mode = SILENCE_TRIM_FLUSH; s 368 libavfilter/af_silenceremove.c s->start_holdoff_offset = 0; s 369 libavfilter/af_silenceremove.c s->start_holdoff_end = 0; s 370 libavfilter/af_silenceremove.c s->start_silence_offset = 0; s 371 libavfilter/af_silenceremove.c s->start_silence_end = 0; s 374 libavfilter/af_silenceremove.c s->start_holdoff_end = 0; s 377 libavfilter/af_silenceremove.c s->update(s, ibuf[j]); s 378 libavfilter/af_silenceremove.c if (s->start_silence) { s 379 libavfilter/af_silenceremove.c s->start_silence_hold[s->start_silence_offset++] = ibuf[j]; s 380 libavfilter/af_silenceremove.c s->start_silence_end = FFMIN(s->start_silence_end + 1, outlink->channels * s->start_silence); s 381 libavfilter/af_silenceremove.c if (s->start_silence_offset >= outlink->channels * s->start_silence) { s 382 libavfilter/af_silenceremove.c s->start_silence_offset = 0; s 395 libavfilter/af_silenceremove.c nbs = s->start_holdoff_end - s->start_holdoff_offset; s 400 libavfilter/af_silenceremove.c out = ff_get_audio_buffer(outlink, nbs / outlink->channels + s->start_silence_end / outlink->channels); s 406 libavfilter/af_silenceremove.c if (s->start_silence_end > 0) { s 407 libavfilter/af_silenceremove.c if (s->start_silence_offset < s->start_silence_end) { s 409 libavfilter/af_silenceremove.c &s->start_silence_hold[s->start_silence_offset], s 410 libavfilter/af_silenceremove.c (s->start_silence_end - s->start_silence_offset) * sizeof(double)); s 413 libavfilter/af_silenceremove.c if (s->start_silence_offset > 0) { s 414 libavfilter/af_silenceremove.c memcpy(out->data[0] + (s->start_silence_end - s->start_silence_offset) * sizeof(double), s 415 libavfilter/af_silenceremove.c &s->start_silence_hold[0], s 416 libavfilter/af_silenceremove.c s->start_silence_offset * sizeof(double)); s 420 libavfilter/af_silenceremove.c memcpy(out->data[0] + s->start_silence_end * sizeof(double), s 421 libavfilter/af_silenceremove.c &s->start_holdoff[s->start_holdoff_offset], s 424 libavfilter/af_silenceremove.c out->pts = s->next_pts; s 425 libavfilter/af_silenceremove.c s->next_pts += av_rescale_q(out->nb_samples, s 429 libavfilter/af_silenceremove.c s->start_holdoff_offset += nbs; s 433 libavfilter/af_silenceremove.c if (s->start_holdoff_offset == s->start_holdoff_end) { s 434 libavfilter/af_silenceremove.c s->start_holdoff_offset = 0; s 435 libavfilter/af_silenceremove.c s->start_holdoff_end = 0; s 436 libavfilter/af_silenceremove.c s->start_silence_offset = 0; s 437 libavfilter/af_silenceremove.c s->start_silence_end = 0; s 438 libavfilter/af_silenceremove.c s->mode = SILENCE_COPY; s 456 libavfilter/af_silenceremove.c if (s->stop_periods) { s 458 libavfilter/af_silenceremove.c if (s->stop_mode == T_ANY) { s 461 libavfilter/af_silenceremove.c threshold |= s->compute(s, ibuf[j]) > s->stop_threshold; s 466 libavfilter/af_silenceremove.c threshold &= s->compute(s, ibuf[j]) > s->stop_threshold; s 470 libavfilter/af_silenceremove.c if (threshold && s->stop_holdoff_end && !s->stop_silence) { s 471 libavfilter/af_silenceremove.c s->mode = SILENCE_COPY_FLUSH; s 472 libavfilter/af_silenceremove.c flush(s, out, outlink, &nb_samples_written, &ret, 0); s 476 libavfilter/af_silenceremove.c s->update(s, *ibuf); s 483 libavfilter/af_silenceremove.c s->update(s, *ibuf); s 484 libavfilter/af_silenceremove.c if (s->stop_silence) { s 485 libavfilter/af_silenceremove.c s->stop_silence_hold[s->stop_silence_offset++] = *ibuf; s 486 libavfilter/af_silenceremove.c s->stop_silence_end = FFMIN(s->stop_silence_end + 1, outlink->channels * s->stop_silence); s 487 libavfilter/af_silenceremove.c if (s->stop_silence_offset >= outlink->channels * s->stop_silence) { s 488 libavfilter/af_silenceremove.c s->stop_silence_offset = 0; s 492 libavfilter/af_silenceremove.c s->stop_holdoff[s->stop_holdoff_end++] = *ibuf++; s 496 libavfilter/af_silenceremove.c if (s->stop_holdoff_end >= s->stop_duration * outlink->channels) { s 497 libavfilter/af_silenceremove.c if (++s->stop_found_periods >= s->stop_periods) { s 498 libavfilter/af_silenceremove.c s->stop_holdoff_offset = 0; s 499 libavfilter/af_silenceremove.c s->stop_holdoff_end = 0; s 501 libavfilter/af_silenceremove.c if (!s->restart) { s 502 libavfilter/af_silenceremove.c s->mode = SILENCE_STOP; s 503 libavfilter/af_silenceremove.c flush(s, out, outlink, &nb_samples_written, &ret, 1); s 506 libavfilter/af_silenceremove.c s->stop_found_periods = 0; s 507 libavfilter/af_silenceremove.c s->start_found_periods = 0; s 508 libavfilter/af_silenceremove.c s->start_holdoff_offset = 0; s 509 libavfilter/af_silenceremove.c s->start_holdoff_end = 0; s 510 libavfilter/af_silenceremove.c s->start_silence_offset = 0; s 511 libavfilter/af_silenceremove.c s->start_silence_end = 0; s 512 libavfilter/af_silenceremove.c clear_window(s); s 513 libavfilter/af_silenceremove.c s->mode = SILENCE_TRIM; s 514 libavfilter/af_silenceremove.c flush(s, out, outlink, &nb_samples_written, &ret, 1); s 518 libavfilter/af_silenceremove.c s->mode = SILENCE_COPY_FLUSH; s 519 libavfilter/af_silenceremove.c flush(s, out, outlink, &nb_samples_written, &ret, 0); s 524 libavfilter/af_silenceremove.c flush(s, out, outlink, &nb_samples_written, &ret, 0); s 528 libavfilter/af_silenceremove.c out->pts = s->next_pts; s 529 libavfilter/af_silenceremove.c s->next_pts += av_rescale_q(out->nb_samples, s 539 libavfilter/af_silenceremove.c nbs = s->stop_holdoff_end - s->stop_holdoff_offset; s 550 libavfilter/af_silenceremove.c memcpy(out->data[0], &s->stop_holdoff[s->stop_holdoff_offset], s 552 libavfilter/af_silenceremove.c s->stop_holdoff_offset += nbs; s 554 libavfilter/af_silenceremove.c out->pts = s->next_pts; s 555 libavfilter/af_silenceremove.c s->next_pts += av_rescale_q(out->nb_samples, s 561 libavfilter/af_silenceremove.c if (s->stop_holdoff_offset == s->stop_holdoff_end) { s 562 libavfilter/af_silenceremove.c s->stop_holdoff_offset = 0; s 563 libavfilter/af_silenceremove.c s->stop_holdoff_end = 0; s 564 libavfilter/af_silenceremove.c s->stop_silence_offset = 0; s 565 libavfilter/af_silenceremove.c s->stop_silence_end = 0; s 566 libavfilter/af_silenceremove.c s->mode = SILENCE_COPY; s 583 libavfilter/af_silenceremove.c SilenceRemoveContext *s = ctx->priv; s 587 libavfilter/af_silenceremove.c if (ret == AVERROR_EOF && (s->mode == SILENCE_COPY_FLUSH || s 588 libavfilter/af_silenceremove.c s->mode == SILENCE_COPY)) { s 589 libavfilter/af_silenceremove.c int nbs = s->stop_holdoff_end - s->stop_holdoff_offset; s 597 libavfilter/af_silenceremove.c memcpy(frame->data[0], &s->stop_holdoff[s->stop_holdoff_offset], s 600 libavfilter/af_silenceremove.c frame->pts = s->next_pts; s 601 libavfilter/af_silenceremove.c s->next_pts += av_rescale_q(frame->nb_samples, s 607 libavfilter/af_silenceremove.c s->mode = SILENCE_STOP; s 643 libavfilter/af_silenceremove.c SilenceRemoveContext *s = ctx->priv; s 645 libavfilter/af_silenceremove.c av_freep(&s->start_holdoff); s 646 libavfilter/af_silenceremove.c av_freep(&s->start_silence_hold); s 647 libavfilter/af_silenceremove.c av_freep(&s->stop_holdoff); s 648 libavfilter/af_silenceremove.c av_freep(&s->stop_silence_hold); s 649 libavfilter/af_silenceremove.c av_freep(&s->window); s 135 libavfilter/af_sofalizer.c struct SOFAlizerContext *s = ctx->priv; s 141 libavfilter/af_sofalizer.c s->sofa.hrtf = mysofa; s 153 libavfilter/af_sofalizer.c if (s->normalize) s 154 libavfilter/af_sofalizer.c mysofa_loudness(s->sofa.hrtf); s 156 libavfilter/af_sofalizer.c if (s->minphase) s 157 libavfilter/af_sofalizer.c mysofa_minphase(s->sofa.hrtf, 0.01f); s 159 libavfilter/af_sofalizer.c mysofa_tocartesian(s->sofa.hrtf); s 161 libavfilter/af_sofalizer.c s->sofa.lookup = mysofa_lookup_init(s->sofa.hrtf); s 162 libavfilter/af_sofalizer.c if (s->sofa.lookup == NULL) s 165 libavfilter/af_sofalizer.c if (s->interpolate) s 166 libavfilter/af_sofalizer.c s->sofa.neighborhood = mysofa_neighborhood_init_withstepdefine(s->sofa.hrtf, s 167 libavfilter/af_sofalizer.c s->sofa.lookup, s 168 libavfilter/af_sofalizer.c s->anglestep, s 169 libavfilter/af_sofalizer.c s->radstep); s 171 libavfilter/af_sofalizer.c s->sofa.fir = av_calloc(s->sofa.hrtf->N * s->sofa.hrtf->R, sizeof(*s->sofa.fir)); s 172 libavfilter/af_sofalizer.c if (!s->sofa.fir) s 213 libavfilter/af_sofalizer.c SOFAlizerContext *s = ctx->priv; s 214 libavfilter/af_sofalizer.c char *arg, *tokenizer, *p, *args = av_strdup(s->speakers_pos); s 231 libavfilter/af_sofalizer.c s->vspkrpos[out_ch_id].set = 1; s 232 libavfilter/af_sofalizer.c s->vspkrpos[out_ch_id].azim = azim; s 233 libavfilter/af_sofalizer.c s->vspkrpos[out_ch_id].elev = elev; s 235 libavfilter/af_sofalizer.c s->vspkrpos[out_ch_id].set = 1; s 236 libavfilter/af_sofalizer.c s->vspkrpos[out_ch_id].azim = azim; s 237 libavfilter/af_sofalizer.c s->vspkrpos[out_ch_id].elev = 0; s 247 libavfilter/af_sofalizer.c struct SOFAlizerContext *s = ctx->priv; s 256 libavfilter/af_sofalizer.c s->lfe_channel = -1; s 258 libavfilter/af_sofalizer.c if (s->speakers_pos) s 270 libavfilter/af_sofalizer.c case AV_CH_LOW_FREQUENCY_2: s->lfe_channel = ch; break; s 303 libavfilter/af_sofalizer.c if (s->vspkrpos[m].set) { s 304 libavfilter/af_sofalizer.c azim[ch] = s->vspkrpos[m].azim; s 305 libavfilter/af_sofalizer.c elev[ch] = s->vspkrpos[m].elev; s 333 libavfilter/af_sofalizer.c SOFAlizerContext *s = ctx->priv; s 343 libavfilter/af_sofalizer.c const int ir_samples = s->sofa.ir_samples; /* length of one IR */ s 344 libavfilter/af_sofalizer.c const int n_samples = s->sofa.n_samples; s 349 libavfilter/af_sofalizer.c const int in_channels = s->n_conv; /* number of input channels */ s 351 libavfilter/af_sofalizer.c const int buffer_length = s->buffer_length; s 389 libavfilter/af_sofalizer.c if (l == s->lfe_channel) { s 392 libavfilter/af_sofalizer.c dst[0] += *(buffer[s->lfe_channel] + wr) * s->gain_lfe; s 412 libavfilter/af_sofalizer.c dst[0] += s->fdsp->scalarproduct_float(temp_ir, temp_src, FFALIGN(ir_samples, 32)); s 433 libavfilter/af_sofalizer.c SOFAlizerContext *s = ctx->priv; s 438 libavfilter/af_sofalizer.c FFTComplex *hrtf = s->data_hrtf[jobnr]; /* get pointers to current HRTF data */ s 441 libavfilter/af_sofalizer.c const int ir_samples = s->sofa.ir_samples; /* length of one IR */ s 445 libavfilter/af_sofalizer.c const int in_channels = s->n_conv; /* number of input channels */ s 447 libavfilter/af_sofalizer.c const int buffer_length = s->buffer_length; s 450 libavfilter/af_sofalizer.c FFTComplex *fft_in = s->temp_fft[jobnr]; /* temporary array for FFT input/output data */ s 451 libavfilter/af_sofalizer.c FFTComplex *fft_acc = s->temp_afft[jobnr]; s 452 libavfilter/af_sofalizer.c FFTContext *ifft = s->ifft[jobnr]; s 453 libavfilter/af_sofalizer.c FFTContext *fft = s->fft[jobnr]; s 454 libavfilter/af_sofalizer.c const int n_conv = s->n_conv; s 455 libavfilter/af_sofalizer.c const int n_fft = s->n_fft; s 456 libavfilter/af_sofalizer.c const float fft_scale = 1.0f / s->n_fft; s 487 libavfilter/af_sofalizer.c if (i == s->lfe_channel) { /* LFE */ s 491 libavfilter/af_sofalizer.c dst[2 * j] += src[i + j * in_channels] * s->gain_lfe; s 496 libavfilter/af_sofalizer.c dst[j] += src[j] * s->gain_lfe; s 572 libavfilter/af_sofalizer.c SOFAlizerContext *s = ctx->priv; s 585 libavfilter/af_sofalizer.c td.in = in; td.out = out; td.write = s->write; s 586 libavfilter/af_sofalizer.c td.delay = s->delay; td.ir = s->data_ir; td.n_clippings = n_clippings; s 587 libavfilter/af_sofalizer.c td.ringbuffer = s->ringbuffer; td.temp_src = s->temp_src; s 588 libavfilter/af_sofalizer.c td.temp_fft = s->temp_fft; s 589 libavfilter/af_sofalizer.c td.temp_afft = s->temp_afft; s 591 libavfilter/af_sofalizer.c if (s->type == TIME_DOMAIN) { s 593 libavfilter/af_sofalizer.c } else if (s->type == FREQUENCY_DOMAIN) { s 612 libavfilter/af_sofalizer.c SOFAlizerContext *s = ctx->priv; s 618 libavfilter/af_sofalizer.c if (s->nb_samples) s 619 libavfilter/af_sofalizer.c ret = ff_inlink_consume_samples(inlink, s->nb_samples, s->nb_samples, &in); s 635 libavfilter/af_sofalizer.c struct SOFAlizerContext *s = ctx->priv; s 668 libavfilter/af_sofalizer.c sample_rates[0] = s->sample_rate; s 679 libavfilter/af_sofalizer.c struct SOFAlizerContext *s = ctx->priv; s 687 libavfilter/af_sofalizer.c nearest = mysofa_lookup(s->sofa.lookup, c); s 691 libavfilter/af_sofalizer.c if (s->interpolate) { s 692 libavfilter/af_sofalizer.c neighbors = mysofa_neighborhood(s->sofa.neighborhood, nearest); s 693 libavfilter/af_sofalizer.c res = mysofa_interpolate(s->sofa.hrtf, c, s 695 libavfilter/af_sofalizer.c s->sofa.fir, delays); s 697 libavfilter/af_sofalizer.c if (s->sofa.hrtf->DataDelay.elements > s->sofa.hrtf->R) { s 698 libavfilter/af_sofalizer.c delays[0] = s->sofa.hrtf->DataDelay.values[nearest * s->sofa.hrtf->R]; s 699 libavfilter/af_sofalizer.c delays[1] = s->sofa.hrtf->DataDelay.values[nearest * s->sofa.hrtf->R + 1]; s 701 libavfilter/af_sofalizer.c delays[0] = s->sofa.hrtf->DataDelay.values[0]; s 702 libavfilter/af_sofalizer.c delays[1] = s->sofa.hrtf->DataDelay.values[1]; s 704 libavfilter/af_sofalizer.c res = s->sofa.hrtf->DataIR.values + nearest * s->sofa.hrtf->N * s->sofa.hrtf->R; s 711 libavfilter/af_sofalizer.c fr = res + s->sofa.hrtf->N; s 713 libavfilter/af_sofalizer.c memcpy(left, fl, sizeof(float) * s->sofa.hrtf->N); s 714 libavfilter/af_sofalizer.c memcpy(right, fr, sizeof(float) * s->sofa.hrtf->N); s 721 libavfilter/af_sofalizer.c struct SOFAlizerContext *s = ctx->priv; s 724 libavfilter/af_sofalizer.c int n_conv = s->n_conv; /* no. channels to convolve */ s 729 libavfilter/af_sofalizer.c float gain_lin = expf((s->gain - 3 * nb_input_channels) / 20 * M_LN10); /* gain - 3dB/channel */ s 742 libavfilter/af_sofalizer.c av_log(ctx, AV_LOG_DEBUG, "IR length: %d.\n", s->sofa.hrtf->N); s 743 libavfilter/af_sofalizer.c s->sofa.ir_samples = s->sofa.hrtf->N; s 744 libavfilter/af_sofalizer.c s->sofa.n_samples = 1 << (32 - ff_clz(s->sofa.ir_samples)); s 746 libavfilter/af_sofalizer.c n_samples = s->sofa.n_samples; s 747 libavfilter/af_sofalizer.c ir_samples = s->sofa.ir_samples; s 749 libavfilter/af_sofalizer.c if (s->type == TIME_DOMAIN) { s 750 libavfilter/af_sofalizer.c s->data_ir[0] = av_calloc(n_samples, sizeof(float) * s->n_conv); s 751 libavfilter/af_sofalizer.c s->data_ir[1] = av_calloc(n_samples, sizeof(float) * s->n_conv); s 753 libavfilter/af_sofalizer.c if (!s->data_ir[0] || !s->data_ir[1]) { s 759 libavfilter/af_sofalizer.c s->delay[0] = av_calloc(s->n_conv, sizeof(int)); s 760 libavfilter/af_sofalizer.c s->delay[1] = av_calloc(s->n_conv, sizeof(int)); s 762 libavfilter/af_sofalizer.c if (!s->delay[0] || !s->delay[1]) { s 775 libavfilter/af_sofalizer.c if (s->type == TIME_DOMAIN) { s 776 libavfilter/af_sofalizer.c s->temp_src[0] = av_calloc(n_samples, sizeof(float)); s 777 libavfilter/af_sofalizer.c s->temp_src[1] = av_calloc(n_samples, sizeof(float)); s 778 libavfilter/af_sofalizer.c if (!s->temp_src[0] || !s->temp_src[1]) { s 784 libavfilter/af_sofalizer.c s->speaker_azim = av_calloc(s->n_conv, sizeof(*s->speaker_azim)); s 785 libavfilter/af_sofalizer.c s->speaker_elev = av_calloc(s->n_conv, sizeof(*s->speaker_elev)); s 786 libavfilter/af_sofalizer.c if (!s->speaker_azim || !s->speaker_elev) { s 792 libavfilter/af_sofalizer.c if ((ret = get_speaker_pos(ctx, s->speaker_azim, s->speaker_elev)) < 0) { s 797 libavfilter/af_sofalizer.c for (i = 0; i < s->n_conv; i++) { s 801 libavfilter/af_sofalizer.c azim = (int)(s->speaker_azim[i] + azim_orig) % 360; s 802 libavfilter/af_sofalizer.c elev = (int)(s->speaker_elev[i] + elev_orig) % 90; s 818 libavfilter/af_sofalizer.c s->delay[0][i] = delay_l * sample_rate; s 819 libavfilter/af_sofalizer.c s->delay[1][i] = delay_r * sample_rate; s 821 libavfilter/af_sofalizer.c s->sofa.max_delay = FFMAX3(s->sofa.max_delay, s->delay[0][i], s->delay[1][i]); s 826 libavfilter/af_sofalizer.c n_current = n_samples + s->sofa.max_delay; s 832 libavfilter/af_sofalizer.c s->buffer_length = 1 << (32 - ff_clz(n_max)); s 833 libavfilter/af_sofalizer.c s->n_fft = n_fft = 1 << (32 - ff_clz(n_max + s->framesize)); s 835 libavfilter/af_sofalizer.c if (s->type == FREQUENCY_DOMAIN) { s 836 libavfilter/af_sofalizer.c av_fft_end(s->fft[0]); s 837 libavfilter/af_sofalizer.c av_fft_end(s->fft[1]); s 838 libavfilter/af_sofalizer.c s->fft[0] = av_fft_init(av_log2(s->n_fft), 0); s 839 libavfilter/af_sofalizer.c s->fft[1] = av_fft_init(av_log2(s->n_fft), 0); s 840 libavfilter/af_sofalizer.c av_fft_end(s->ifft[0]); s 841 libavfilter/af_sofalizer.c av_fft_end(s->ifft[1]); s 842 libavfilter/af_sofalizer.c s->ifft[0] = av_fft_init(av_log2(s->n_fft), 1); s 843 libavfilter/af_sofalizer.c s->ifft[1] = av_fft_init(av_log2(s->n_fft), 1); s 845 libavfilter/af_sofalizer.c if (!s->fft[0] || !s->fft[1] || !s->ifft[0] || !s->ifft[1]) { s 846 libavfilter/af_sofalizer.c av_log(ctx, AV_LOG_ERROR, "Unable to create FFT contexts of size %d.\n", s->n_fft); s 852 libavfilter/af_sofalizer.c if (s->type == TIME_DOMAIN) { s 853 libavfilter/af_sofalizer.c s->ringbuffer[0] = av_calloc(s->buffer_length, sizeof(float) * nb_input_channels); s 854 libavfilter/af_sofalizer.c s->ringbuffer[1] = av_calloc(s->buffer_length, sizeof(float) * nb_input_channels); s 855 libavfilter/af_sofalizer.c } else if (s->type == FREQUENCY_DOMAIN) { s 864 libavfilter/af_sofalizer.c s->ringbuffer[0] = av_calloc(s->buffer_length, sizeof(float)); s 865 libavfilter/af_sofalizer.c s->ringbuffer[1] = av_calloc(s->buffer_length, sizeof(float)); s 866 libavfilter/af_sofalizer.c s->temp_fft[0] = av_malloc_array(s->n_fft, sizeof(FFTComplex)); s 867 libavfilter/af_sofalizer.c s->temp_fft[1] = av_malloc_array(s->n_fft, sizeof(FFTComplex)); s 868 libavfilter/af_sofalizer.c s->temp_afft[0] = av_malloc_array(s->n_fft, sizeof(FFTComplex)); s 869 libavfilter/af_sofalizer.c s->temp_afft[1] = av_malloc_array(s->n_fft, sizeof(FFTComplex)); s 870 libavfilter/af_sofalizer.c if (!s->temp_fft[0] || !s->temp_fft[1] || s 871 libavfilter/af_sofalizer.c !s->temp_afft[0] || !s->temp_afft[1]) { s 877 libavfilter/af_sofalizer.c if (!s->ringbuffer[0] || !s->ringbuffer[1]) { s 882 libavfilter/af_sofalizer.c if (s->type == FREQUENCY_DOMAIN) { s 891 libavfilter/af_sofalizer.c for (i = 0; i < s->n_conv; i++) { s 899 libavfilter/af_sofalizer.c if (s->type == TIME_DOMAIN) { s 903 libavfilter/af_sofalizer.c s->data_ir[0][offset + j] = lir[ir_samples - 1 - j] * gain_lin; s 904 libavfilter/af_sofalizer.c s->data_ir[1][offset + j] = rir[ir_samples - 1 - j] * gain_lin; s 906 libavfilter/af_sofalizer.c } else if (s->type == FREQUENCY_DOMAIN) { s 916 libavfilter/af_sofalizer.c fft_in_l[s->delay[0][i] + j].re = lir[j] * gain_lin; s 917 libavfilter/af_sofalizer.c fft_in_r[s->delay[1][i] + j].re = rir[j] * gain_lin; s 921 libavfilter/af_sofalizer.c av_fft_permute(s->fft[0], fft_in_l); s 922 libavfilter/af_sofalizer.c av_fft_calc(s->fft[0], fft_in_l); s 924 libavfilter/af_sofalizer.c av_fft_permute(s->fft[0], fft_in_r); s 925 libavfilter/af_sofalizer.c av_fft_calc(s->fft[0], fft_in_r); s 930 libavfilter/af_sofalizer.c if (s->type == FREQUENCY_DOMAIN) { s 931 libavfilter/af_sofalizer.c s->data_hrtf[0] = av_malloc_array(n_fft * s->n_conv, sizeof(FFTComplex)); s 932 libavfilter/af_sofalizer.c s->data_hrtf[1] = av_malloc_array(n_fft * s->n_conv, sizeof(FFTComplex)); s 933 libavfilter/af_sofalizer.c if (!s->data_hrtf[0] || !s->data_hrtf[1]) { s 938 libavfilter/af_sofalizer.c memcpy(s->data_hrtf[0], data_hrtf_l, /* copy HRTF data to */ s 940 libavfilter/af_sofalizer.c memcpy(s->data_hrtf[1], data_hrtf_r, s 959 libavfilter/af_sofalizer.c SOFAlizerContext *s = ctx->priv; s 962 libavfilter/af_sofalizer.c if (!s->filename) { s 968 libavfilter/af_sofalizer.c ret = preload_sofa(ctx, s->filename, &s->sample_rate); s 971 libavfilter/af_sofalizer.c av_log(ctx, AV_LOG_ERROR, "Error while loading SOFA file: '%s'\n", s->filename); s 973 libavfilter/af_sofalizer.c av_log(ctx, AV_LOG_DEBUG, "File '%s' loaded.\n", s->filename); s 981 libavfilter/af_sofalizer.c s->fdsp = avpriv_float_dsp_alloc(0); s 982 libavfilter/af_sofalizer.c if (!s->fdsp) s 991 libavfilter/af_sofalizer.c SOFAlizerContext *s = ctx->priv; s 994 libavfilter/af_sofalizer.c if (s->type == FREQUENCY_DOMAIN) s 995 libavfilter/af_sofalizer.c s->nb_samples = s->framesize; s 998 libavfilter/af_sofalizer.c s->gain_lfe = expf((s->gain - 3 * inlink->channels + s->lfe_gain) / 20 * M_LN10); s 1000 libavfilter/af_sofalizer.c s->n_conv = inlink->channels; s 1003 libavfilter/af_sofalizer.c if ((ret = load_data(ctx, s->rotation, s->elevation, s->radius, inlink->sample_rate)) < 0) s 1007 libavfilter/af_sofalizer.c inlink->sample_rate, s->n_conv, inlink->channels, s->buffer_length); s 1014 libavfilter/af_sofalizer.c SOFAlizerContext *s = ctx->priv; s 1016 libavfilter/af_sofalizer.c close_sofa(&s->sofa); s 1017 libavfilter/af_sofalizer.c av_fft_end(s->ifft[0]); s 1018 libavfilter/af_sofalizer.c av_fft_end(s->ifft[1]); s 1019 libavfilter/af_sofalizer.c av_fft_end(s->fft[0]); s 1020 libavfilter/af_sofalizer.c av_fft_end(s->fft[1]); s 1021 libavfilter/af_sofalizer.c s->ifft[0] = NULL; s 1022 libavfilter/af_sofalizer.c s->ifft[1] = NULL; s 1023 libavfilter/af_sofalizer.c s->fft[0] = NULL; s 1024 libavfilter/af_sofalizer.c s->fft[1] = NULL; s 1025 libavfilter/af_sofalizer.c av_freep(&s->delay[0]); s 1026 libavfilter/af_sofalizer.c av_freep(&s->delay[1]); s 1027 libavfilter/af_sofalizer.c av_freep(&s->data_ir[0]); s 1028 libavfilter/af_sofalizer.c av_freep(&s->data_ir[1]); s 1029 libavfilter/af_sofalizer.c av_freep(&s->ringbuffer[0]); s 1030 libavfilter/af_sofalizer.c av_freep(&s->ringbuffer[1]); s 1031 libavfilter/af_sofalizer.c av_freep(&s->speaker_azim); s 1032 libavfilter/af_sofalizer.c av_freep(&s->speaker_elev); s 1033 libavfilter/af_sofalizer.c av_freep(&s->temp_src[0]); s 1034 libavfilter/af_sofalizer.c av_freep(&s->temp_src[1]); s 1035 libavfilter/af_sofalizer.c av_freep(&s->temp_afft[0]); s 1036 libavfilter/af_sofalizer.c av_freep(&s->temp_afft[1]); s 1037 libavfilter/af_sofalizer.c av_freep(&s->temp_fft[0]); s 1038 libavfilter/af_sofalizer.c av_freep(&s->temp_fft[1]); s 1039 libavfilter/af_sofalizer.c av_freep(&s->data_hrtf[0]); s 1040 libavfilter/af_sofalizer.c av_freep(&s->data_hrtf[1]); s 1041 libavfilter/af_sofalizer.c av_freep(&s->fdsp); s 119 libavfilter/af_stereotools.c StereoToolsContext *s = ctx->priv; s 121 libavfilter/af_stereotools.c s->length = 2 * inlink->sample_rate * 0.05; s 122 libavfilter/af_stereotools.c if (s->length <= 1 || s->length & 1) { s 126 libavfilter/af_stereotools.c s->buffer = av_calloc(s->length, sizeof(*s->buffer)); s 127 libavfilter/af_stereotools.c if (!s->buffer) s 130 libavfilter/af_stereotools.c s->inv_atan_shape = 1.0 / atan(s->sc_level); s 131 libavfilter/af_stereotools.c s->phase_cos_coef = cos(s->phase / 180 * M_PI); s 132 libavfilter/af_stereotools.c s->phase_sin_coef = sin(s->phase / 180 * M_PI); s 141 libavfilter/af_stereotools.c StereoToolsContext *s = ctx->priv; s 143 libavfilter/af_stereotools.c const double sb = s->base < 0 ? s->base * 0.5 : s->base; s 144 libavfilter/af_stereotools.c const double sbal = 1 + s->sbal; s 145 libavfilter/af_stereotools.c const double mpan = 1 + s->mpan; s 146 libavfilter/af_stereotools.c const double slev = s->slev; s 147 libavfilter/af_stereotools.c const double mlev = s->mlev; s 148 libavfilter/af_stereotools.c const double balance_in = s->balance_in; s 149 libavfilter/af_stereotools.c const double balance_out = s->balance_out; s 150 libavfilter/af_stereotools.c const double level_in = s->level_in; s 151 libavfilter/af_stereotools.c const double level_out = s->level_out; s 152 libavfilter/af_stereotools.c const double sc_level = s->sc_level; s 153 libavfilter/af_stereotools.c const double delay = s->delay; s 154 libavfilter/af_stereotools.c const int length = s->length; s 155 libavfilter/af_stereotools.c const int mute_l = s->mute_l; s 156 libavfilter/af_stereotools.c const int mute_r = s->mute_r; s 157 libavfilter/af_stereotools.c const int phase_l = s->phase_l; s 158 libavfilter/af_stereotools.c const int phase_r = s->phase_r; s 159 libavfilter/af_stereotools.c double *buffer = s->buffer; s 186 libavfilter/af_stereotools.c switch (s->bmode_in) { s 205 libavfilter/af_stereotools.c if (s->softclip) { s 206 libavfilter/af_stereotools.c R = s->inv_atan_shape * atan(R * sc_level); s 207 libavfilter/af_stereotools.c L = s->inv_atan_shape * atan(L * sc_level); s 210 libavfilter/af_stereotools.c switch (s->mode) { s 270 libavfilter/af_stereotools.c buffer[s->pos ] = L; s 271 libavfilter/af_stereotools.c buffer[s->pos+1] = R; s 274 libavfilter/af_stereotools.c R = buffer[(s->pos - (int)nbuf + 1 + length) % length]; s 276 libavfilter/af_stereotools.c L = buffer[(s->pos - (int)nbuf + length) % length]; s 285 libavfilter/af_stereotools.c l = L * s->phase_cos_coef - R * s->phase_sin_coef; s 286 libavfilter/af_stereotools.c r = L * s->phase_sin_coef + R * s->phase_cos_coef; s 291 libavfilter/af_stereotools.c s->pos = (s->pos + 2) % s->length; s 295 libavfilter/af_stereotools.c switch (s->bmode_out) { s 329 libavfilter/af_stereotools.c StereoToolsContext *s = ctx->priv; s 331 libavfilter/af_stereotools.c av_freep(&s->buffer); s 74 libavfilter/af_stereowiden.c StereoWidenContext *s = ctx->priv; s 76 libavfilter/af_stereowiden.c s->length = s->delay * inlink->sample_rate / 1000; s 77 libavfilter/af_stereowiden.c s->length *= 2; s 78 libavfilter/af_stereowiden.c s->buffer = av_calloc(s->length, sizeof(*s->buffer)); s 79 libavfilter/af_stereowiden.c if (!s->buffer) s 81 libavfilter/af_stereowiden.c s->cur = s->buffer; s 90 libavfilter/af_stereowiden.c StereoWidenContext *s = ctx->priv; s 92 libavfilter/af_stereowiden.c const float drymix = s->drymix; s 93 libavfilter/af_stereowiden.c const float crossfeed = s->crossfeed; s 94 libavfilter/af_stereowiden.c const float feedback = s->feedback; s 111 libavfilter/af_stereowiden.c for (n = 0; n < in->nb_samples; n++, src += 2, dst += 2, s->cur += 2) { s 114 libavfilter/af_stereowiden.c if (s->cur == s->buffer + s->length) s 115 libavfilter/af_stereowiden.c s->cur = s->buffer; s 121 libavfilter/af_stereowiden.c dst[0] = drymix * left - crossfeed * right - feedback * s->cur[1]; s 122 libavfilter/af_stereowiden.c dst[1] = drymix * right - crossfeed * left - feedback * s->cur[0]; s 125 libavfilter/af_stereowiden.c s->cur[0] = left; s 126 libavfilter/af_stereowiden.c s->cur[1] = right; s 136 libavfilter/af_stereowiden.c StereoWidenContext *s = ctx->priv; s 138 libavfilter/af_stereowiden.c av_freep(&s->buffer); s 61 libavfilter/af_superequalizer.c static float izero(SuperEqualizerContext *s, float x) s 69 libavfilter/af_superequalizer.c t = pow(x / 2, m) / s->fact[m]; s 119 libavfilter/af_superequalizer.c static float win(SuperEqualizerContext *s, float n, int N) s 121 libavfilter/af_superequalizer.c return izero(s, alpha(s->aa) * sqrtf(1 - 4 * n * n / ((N - 1) * (N - 1)))) / s->iza; s 135 libavfilter/af_superequalizer.c static int equ_init(SuperEqualizerContext *s, int wb) s 139 libavfilter/af_superequalizer.c s->rdft = av_rdft_init(wb, DFT_R2C); s 140 libavfilter/af_superequalizer.c s->irdft = av_rdft_init(wb, IDFT_C2R); s 141 libavfilter/af_superequalizer.c if (!s->rdft || !s->irdft) s 144 libavfilter/af_superequalizer.c s->aa = 96; s 145 libavfilter/af_superequalizer.c s->winlen = (1 << (wb-1))-1; s 146 libavfilter/af_superequalizer.c s->tabsize = 1 << wb; s 148 libavfilter/af_superequalizer.c s->ires = av_calloc(s->tabsize, sizeof(float)); s 149 libavfilter/af_superequalizer.c s->irest = av_calloc(s->tabsize, sizeof(float)); s 150 libavfilter/af_superequalizer.c s->fsamples = av_calloc(s->tabsize, sizeof(float)); s 153 libavfilter/af_superequalizer.c s->fact[i] = 1; s 155 libavfilter/af_superequalizer.c s->fact[i] *= j; s 158 libavfilter/af_superequalizer.c s->iza = izero(s, alpha(s->aa)); s 163 libavfilter/af_superequalizer.c static void make_fir(SuperEqualizerContext *s, float *lbc, float *rbc, EqParameter *param, float fs) s 165 libavfilter/af_superequalizer.c const int winlen = s->winlen; s 166 libavfilter/af_superequalizer.c const int tabsize = s->tabsize; s 175 libavfilter/af_superequalizer.c s->irest[i] = hn(i - winlen / 2, param, fs) * win(s, i - winlen / 2, winlen); s 177 libavfilter/af_superequalizer.c s->irest[i] = 0; s 179 libavfilter/af_superequalizer.c av_rdft_calc(s->rdft, s->irest); s 180 libavfilter/af_superequalizer.c nires = s->ires; s 182 libavfilter/af_superequalizer.c nires[i] = s->irest[i]; s 188 libavfilter/af_superequalizer.c SuperEqualizerContext *s = ctx->priv; s 190 libavfilter/af_superequalizer.c const float *ires = s->ires; s 191 libavfilter/af_superequalizer.c float *fsamples = s->fsamples; s 194 libavfilter/af_superequalizer.c AVFrame *out = ff_get_audio_buffer(outlink, s->winlen); s 204 libavfilter/af_superequalizer.c dst = (float *)s->out->extended_data[ch]; s 209 libavfilter/af_superequalizer.c for (; i < s->tabsize; i++) s 212 libavfilter/af_superequalizer.c av_rdft_calc(s->rdft, fsamples); s 216 libavfilter/af_superequalizer.c for (i = 1; i < s->tabsize / 2; i++) { s 226 libavfilter/af_superequalizer.c av_rdft_calc(s->irdft, fsamples); s 228 libavfilter/af_superequalizer.c for (i = 0; i < s->winlen; i++) s 229 libavfilter/af_superequalizer.c dst[i] += fsamples[i] / s->tabsize * 2; s 230 libavfilter/af_superequalizer.c for (i = s->winlen; i < s->tabsize; i++) s 231 libavfilter/af_superequalizer.c dst[i] = fsamples[i] / s->tabsize * 2; s 232 libavfilter/af_superequalizer.c for (i = 0; i < s->winlen; i++) s 234 libavfilter/af_superequalizer.c for (i = 0; i < s->winlen; i++) s 235 libavfilter/af_superequalizer.c dst[i] = dst[i+s->winlen]; s 248 libavfilter/af_superequalizer.c SuperEqualizerContext *s = ctx->priv; s 254 libavfilter/af_superequalizer.c ret = ff_inlink_consume_samples(inlink, s->winlen, s->winlen, &in); s 268 libavfilter/af_superequalizer.c SuperEqualizerContext *s = ctx->priv; s 270 libavfilter/af_superequalizer.c return equ_init(s, 14); s 301 libavfilter/af_superequalizer.c SuperEqualizerContext *s = ctx->priv; s 303 libavfilter/af_superequalizer.c s->out = ff_get_audio_buffer(inlink, s->tabsize); s 304 libavfilter/af_superequalizer.c if (!s->out) s 313 libavfilter/af_superequalizer.c SuperEqualizerContext *s = ctx->priv; s 315 libavfilter/af_superequalizer.c make_fir(s, s->gains, s->gains, s->params, outlink->sample_rate); s 322 libavfilter/af_superequalizer.c SuperEqualizerContext *s = ctx->priv; s 324 libavfilter/af_superequalizer.c av_frame_free(&s->out); s 325 libavfilter/af_superequalizer.c av_freep(&s->irest); s 326 libavfilter/af_superequalizer.c av_freep(&s->ires); s 327 libavfilter/af_superequalizer.c av_freep(&s->fsamples); s 328 libavfilter/af_superequalizer.c av_rdft_end(s->rdft); s 329 libavfilter/af_superequalizer.c av_rdft_end(s->irdft); s 161 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 174 libavfilter/af_surround.c ret = ff_add_channel_layout(&layouts, s->out_channel_layout); s 183 libavfilter/af_surround.c ret = ff_add_channel_layout(&layouts, s->in_channel_layout); s 200 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 203 libavfilter/af_surround.c s->rdft = av_calloc(inlink->channels, sizeof(*s->rdft)); s 204 libavfilter/af_surround.c if (!s->rdft) s 208 libavfilter/af_surround.c s->rdft[ch] = av_rdft_init(ff_log2(s->buf_size), DFT_R2C); s 209 libavfilter/af_surround.c if (!s->rdft[ch]) s 212 libavfilter/af_surround.c s->nb_in_channels = inlink->channels; s 213 libavfilter/af_surround.c s->input_levels = av_malloc_array(s->nb_in_channels, sizeof(*s->input_levels)); s 214 libavfilter/af_surround.c if (!s->input_levels) s 216 libavfilter/af_surround.c for (ch = 0; ch < s->nb_in_channels; ch++) s 217 libavfilter/af_surround.c s->input_levels[ch] = s->level_in; s 220 libavfilter/af_surround.c s->input_levels[ch] *= s->fc_in; s 223 libavfilter/af_surround.c s->input_levels[ch] *= s->fl_in; s 226 libavfilter/af_surround.c s->input_levels[ch] *= s->fr_in; s 229 libavfilter/af_surround.c s->input_levels[ch] *= s->sl_in; s 232 libavfilter/af_surround.c s->input_levels[ch] *= s->sr_in; s 235 libavfilter/af_surround.c s->input_levels[ch] *= s->bl_in; s 238 libavfilter/af_surround.c s->input_levels[ch] *= s->br_in; s 241 libavfilter/af_surround.c s->input_levels[ch] *= s->bc_in; s 244 libavfilter/af_surround.c s->input_levels[ch] *= s->lfe_in; s 246 libavfilter/af_surround.c s->input = ff_get_audio_buffer(inlink, s->buf_size * 2); s 247 libavfilter/af_surround.c if (!s->input) s 250 libavfilter/af_surround.c s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->buf_size); s 251 libavfilter/af_surround.c if (!s->fifo) s 254 libavfilter/af_surround.c s->lowcut = 1.f * s->lowcutf / (inlink->sample_rate * 0.5) * (s->buf_size / 2); s 255 libavfilter/af_surround.c s->highcut = 1.f * s->highcutf / (inlink->sample_rate * 0.5) * (s->buf_size / 2); s 263 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 266 libavfilter/af_surround.c s->irdft = av_calloc(outlink->channels, sizeof(*s->irdft)); s 267 libavfilter/af_surround.c if (!s->irdft) s 271 libavfilter/af_surround.c s->irdft[ch] = av_rdft_init(ff_log2(s->buf_size), IDFT_C2R); s 272 libavfilter/af_surround.c if (!s->irdft[ch]) s 275 libavfilter/af_surround.c s->nb_out_channels = outlink->channels; s 276 libavfilter/af_surround.c s->output_levels = av_malloc_array(s->nb_out_channels, sizeof(*s->output_levels)); s 277 libavfilter/af_surround.c if (!s->output_levels) s 279 libavfilter/af_surround.c for (ch = 0; ch < s->nb_out_channels; ch++) s 280 libavfilter/af_surround.c s->output_levels[ch] = s->level_out; s 283 libavfilter/af_surround.c s->output_levels[ch] *= s->fc_out; s 286 libavfilter/af_surround.c s->output_levels[ch] *= s->fl_out; s 289 libavfilter/af_surround.c s->output_levels[ch] *= s->fr_out; s 292 libavfilter/af_surround.c s->output_levels[ch] *= s->sl_out; s 295 libavfilter/af_surround.c s->output_levels[ch] *= s->sr_out; s 298 libavfilter/af_surround.c s->output_levels[ch] *= s->bl_out; s 301 libavfilter/af_surround.c s->output_levels[ch] *= s->br_out; s 304 libavfilter/af_surround.c s->output_levels[ch] *= s->bc_out; s 307 libavfilter/af_surround.c s->output_levels[ch] *= s->lfe_out; s 309 libavfilter/af_surround.c s->output = ff_get_audio_buffer(outlink, s->buf_size * 2); s 310 libavfilter/af_surround.c s->overlap_buffer = ff_get_audio_buffer(outlink, s->buf_size * 2); s 311 libavfilter/af_surround.c if (!s->overlap_buffer || !s->output) s 366 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 369 libavfilter/af_surround.c dst = (float *)s->output->extended_data[0]; s 371 libavfilter/af_surround.c mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 385 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 388 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 389 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 391 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 392 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 409 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 412 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 413 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 414 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[2]; s 416 libavfilter/af_surround.c get_lfe(s->output_lfe, n, s->lowcut, s->highcut, &lfe_mag, &mag_total, s->lfe_mode); s 418 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 419 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 439 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 442 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 443 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 444 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 446 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 447 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 448 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 468 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 471 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 472 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 473 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 474 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 476 libavfilter/af_surround.c get_lfe(s->output_lfe, n, s->lowcut, s->highcut, &lfe_mag, &mag_total, s->lfe_mode); s 478 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 479 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 480 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 504 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 507 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 508 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 509 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 510 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 512 libavfilter/af_surround.c get_lfe(s->output_lfe, n, s->lowcut, s->highcut, &lfe_mag, &c_mag, s->lfe_mode); s 514 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 515 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 538 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 541 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 542 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 543 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 544 libavfilter/af_surround.c dstb = (float *)s->output->extended_data[3]; s 546 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 547 libavfilter/af_surround.c b_mag = powf(1.f - fabsf(x), s->bc_x) * powf((1.f - y) * .5f, s->bc_y) * mag_total; s 548 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 549 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 572 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 575 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 576 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 577 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 578 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 579 libavfilter/af_surround.c dstb = (float *)s->output->extended_data[4]; s 581 libavfilter/af_surround.c get_lfe(s->output_lfe, n, s->lowcut, s->highcut, &lfe_mag, &mag_total, s->lfe_mode); s 586 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 587 libavfilter/af_surround.c b_mag = powf(1.f - fabsf(x), s->bc_x) * powf((1.f - y) * .5f, s->bc_y) * mag_total; s 588 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 589 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 612 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 615 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 616 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 617 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 618 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[3]; s 619 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[4]; s 621 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 622 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 623 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 624 libavfilter/af_surround.c ls_mag = powf(.5f * ( x + 1.f), s->bl_x) * powf(1.f - ((y + 1.f) * .5f), s->bl_y) * mag_total; s 625 libavfilter/af_surround.c rs_mag = powf(.5f * (-x + 1.f), s->br_x) * powf(1.f - ((y + 1.f) * .5f), s->br_y) * mag_total; s 651 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 654 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 655 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 656 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 657 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 658 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[4]; s 659 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[5]; s 661 libavfilter/af_surround.c get_lfe(s->output_lfe, n, s->lowcut, s->highcut, &lfe_mag, &mag_total, s->lfe_mode); s 663 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 664 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 665 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 666 libavfilter/af_surround.c ls_mag = powf(.5f * ( x + 1.f), s->bl_x) * powf(1.f - ((y + 1.f) * .5f), s->bl_y) * mag_total; s 667 libavfilter/af_surround.c rs_mag = powf(.5f * (-x + 1.f), s->br_x) * powf(1.f - ((y + 1.f) * .5f), s->br_y) * mag_total; s 696 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 699 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 700 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 701 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 702 libavfilter/af_surround.c dstb = (float *)s->output->extended_data[3]; s 703 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[4]; s 704 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[5]; s 706 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 707 libavfilter/af_surround.c b_mag = powf(1.f - fabsf(x), s->bc_x) * powf((1.f - y) * .5f, s->bc_y) * mag_total; s 708 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 709 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 710 libavfilter/af_surround.c ls_mag = powf(.5f * ( x + 1.f), s->bl_x) * powf(1.f - ((y + 1.f) * .5f), s->bl_y) * mag_total; s 711 libavfilter/af_surround.c rs_mag = powf(.5f * (-x + 1.f), s->br_x) * powf(1.f - ((y + 1.f) * .5f), s->br_y) * mag_total; s 740 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 743 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 744 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 745 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 746 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 747 libavfilter/af_surround.c dstb = (float *)s->output->extended_data[4]; s 748 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[5]; s 749 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[6]; s 751 libavfilter/af_surround.c get_lfe(s->output_lfe, n, s->lowcut, s->highcut, &lfe_mag, &mag_total, s->lfe_mode); s 753 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 754 libavfilter/af_surround.c b_mag = powf(1.f - fabsf(x), s->bc_x) * powf((1.f - y) * .5f, s->bc_y) * mag_total; s 755 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 756 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 757 libavfilter/af_surround.c ls_mag = powf(.5f * ( x + 1.f), s->bl_x) * powf(1.f - ((y + 1.f) * .5f), s->bl_y) * mag_total; s 758 libavfilter/af_surround.c rs_mag = powf(.5f * (-x + 1.f), s->br_x) * powf(1.f - ((y + 1.f) * .5f), s->br_y) * mag_total; s 791 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 795 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 796 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 797 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 798 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 799 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[4]; s 800 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[5]; s 802 libavfilter/af_surround.c get_lfe(s->output_lfe, n, s->lowcut, s->highcut, &lfe_mag, &c_mag, s->lfe_mode); s 804 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 805 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 806 libavfilter/af_surround.c ls_mag = powf(.5f * ( x + 1.f), s->bl_x) * powf(1.f - ((y + 1.f) * .5f), s->bl_y) * mag_total; s 807 libavfilter/af_surround.c rs_mag = powf(.5f * (-x + 1.f), s->br_x) * powf(1.f - ((y + 1.f) * .5f), s->br_y) * mag_total; s 838 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 842 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 843 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 844 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 845 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 846 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[4]; s 847 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[5]; s 849 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 850 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 851 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 852 libavfilter/af_surround.c ls_mag = powf(.5f * ( x + 1.f), s->bl_x) * powf(1.f - ((y + 1.f) * .5f), s->bl_y) * mag_total; s 853 libavfilter/af_surround.c rs_mag = powf(.5f * (-x + 1.f), s->br_x) * powf(1.f - ((y + 1.f) * .5f), s->br_y) * mag_total; s 884 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 886 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 887 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 888 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 889 libavfilter/af_surround.c dstlb = (float *)s->output->extended_data[3]; s 890 libavfilter/af_surround.c dstrb = (float *)s->output->extended_data[4]; s 891 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[5]; s 892 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[6]; s 894 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 895 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 896 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 897 libavfilter/af_surround.c lb_mag = powf(.5f * ( x + 1.f), s->bl_x) * powf(1.f - ((y + 1.f) * .5f), s->bl_y) * mag_total; s 898 libavfilter/af_surround.c rb_mag = powf(.5f * (-x + 1.f), s->br_x) * powf(1.f - ((y + 1.f) * .5f), s->br_y) * mag_total; s 899 libavfilter/af_surround.c ls_mag = powf(.5f * ( x + 1.f), s->sl_x) * powf(1.f - fabsf(y), s->sl_y) * mag_total; s 900 libavfilter/af_surround.c rs_mag = powf(.5f * (-x + 1.f), s->sr_x) * powf(1.f - fabsf(y), s->sr_y) * mag_total; s 934 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 936 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 937 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 938 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 939 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 940 libavfilter/af_surround.c dstlb = (float *)s->output->extended_data[4]; s 941 libavfilter/af_surround.c dstrb = (float *)s->output->extended_data[5]; s 942 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[6]; s 943 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[7]; s 945 libavfilter/af_surround.c get_lfe(s->output_lfe, n, s->lowcut, s->highcut, &lfe_mag, &mag_total, s->lfe_mode); s 947 libavfilter/af_surround.c c_mag = powf(1.f - fabsf(x), s->fc_x) * powf((y + 1.f) * .5f, s->fc_y) * mag_total; s 948 libavfilter/af_surround.c l_mag = powf(.5f * ( x + 1.f), s->fl_x) * powf((y + 1.f) * .5f, s->fl_y) * mag_total; s 949 libavfilter/af_surround.c r_mag = powf(.5f * (-x + 1.f), s->fr_x) * powf((y + 1.f) * .5f, s->fr_y) * mag_total; s 950 libavfilter/af_surround.c lb_mag = powf(.5f * ( x + 1.f), s->bl_x) * powf(1.f - ((y + 1.f) * .5f), s->bl_y) * mag_total; s 951 libavfilter/af_surround.c rb_mag = powf(.5f * (-x + 1.f), s->br_x) * powf(1.f - ((y + 1.f) * .5f), s->br_y) * mag_total; s 952 libavfilter/af_surround.c ls_mag = powf(.5f * ( x + 1.f), s->sl_x) * powf(1.f - fabsf(y), s->sl_y) * mag_total; s 953 libavfilter/af_surround.c rs_mag = powf(.5f * (-x + 1.f), s->sr_x) * powf(1.f - fabsf(y), s->sr_y) * mag_total; s 993 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 995 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 996 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 997 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 998 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 999 libavfilter/af_surround.c dstlb = (float *)s->output->extended_data[4]; s 1000 libavfilter/af_surround.c dstrb = (float *)s->output->extended_data[5]; s 1001 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[6]; s 1002 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[7]; s 1006 libavfilter/af_surround.c get_lfe(s->output_lfe, n, s->lowcut, s->highcut, &lfe_mag, &mag_total, s->lfe_mode); s 1008 libavfilter/af_surround.c fl_mag = powf(.5f * (xl + 1.f), s->fl_x) * powf((yl + 1.f) * .5f, s->fl_y) * mag_totall; s 1009 libavfilter/af_surround.c fr_mag = powf(.5f * (xr + 1.f), s->fr_x) * powf((yr + 1.f) * .5f, s->fr_y) * mag_totalr; s 1010 libavfilter/af_surround.c lb_mag = powf(.5f * (-xl + 1.f), s->bl_x) * powf((yl + 1.f) * .5f, s->bl_y) * mag_totall; s 1011 libavfilter/af_surround.c rb_mag = powf(.5f * (-xr + 1.f), s->br_x) * powf((yr + 1.f) * .5f, s->br_y) * mag_totalr; s 1012 libavfilter/af_surround.c ls_mag = powf(1.f - fabsf(xl), s->sl_x) * powf((yl + 1.f) * .5f, s->sl_y) * mag_totall; s 1013 libavfilter/af_surround.c rs_mag = powf(1.f - fabsf(xr), s->sr_x) * powf((yr + 1.f) * .5f, s->sr_y) * mag_totalr; s 1053 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1055 libavfilter/af_surround.c dstl = (float *)s->output->extended_data[0]; s 1056 libavfilter/af_surround.c dstr = (float *)s->output->extended_data[1]; s 1057 libavfilter/af_surround.c dstc = (float *)s->output->extended_data[2]; s 1058 libavfilter/af_surround.c dstlfe = (float *)s->output->extended_data[3]; s 1059 libavfilter/af_surround.c dstlb = (float *)s->output->extended_data[4]; s 1060 libavfilter/af_surround.c dstrb = (float *)s->output->extended_data[5]; s 1061 libavfilter/af_surround.c dstls = (float *)s->output->extended_data[6]; s 1062 libavfilter/af_surround.c dstrs = (float *)s->output->extended_data[7]; s 1064 libavfilter/af_surround.c fl_mag = powf(.5f * (xl + 1.f), s->fl_x) * powf((yl + 1.f) * .5f, s->fl_y) * mag_totall; s 1065 libavfilter/af_surround.c fr_mag = powf(.5f * (xr + 1.f), s->fr_x) * powf((yr + 1.f) * .5f, s->fr_y) * mag_totalr; s 1066 libavfilter/af_surround.c lb_mag = powf(.5f * (-xl + 1.f), s->bl_x) * powf((yl + 1.f) * .5f, s->bl_y) * mag_totall; s 1067 libavfilter/af_surround.c rb_mag = powf(.5f * (-xr + 1.f), s->br_x) * powf((yr + 1.f) * .5f, s->br_y) * mag_totalr; s 1068 libavfilter/af_surround.c ls_mag = powf(1.f - fabsf(xl), s->sl_x) * powf((yl + 1.f) * .5f, s->sl_y) * mag_totall; s 1069 libavfilter/af_surround.c rs_mag = powf(1.f - fabsf(xr), s->sr_x) * powf((yr + 1.f) * .5f, s->sr_y) * mag_totalr; s 1098 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1102 libavfilter/af_surround.c srcl = (float *)s->input->extended_data[0]; s 1103 libavfilter/af_surround.c srcr = (float *)s->input->extended_data[1]; s 1105 libavfilter/af_surround.c for (n = 0; n < s->buf_size; n++) { s 1123 libavfilter/af_surround.c stereo_transform(&x, &y, s->angle); s 1125 libavfilter/af_surround.c s->upmix_stereo(ctx, l_phase, r_phase, c_phase, mag_total, x, y, n); s 1131 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1135 libavfilter/af_surround.c srcl = (float *)s->input->extended_data[0]; s 1136 libavfilter/af_surround.c srcr = (float *)s->input->extended_data[1]; s 1137 libavfilter/af_surround.c srcc = (float *)s->input->extended_data[2]; s 1139 libavfilter/af_surround.c for (n = 0; n < s->buf_size; n++) { s 1159 libavfilter/af_surround.c stereo_transform(&x, &y, s->angle); s 1161 libavfilter/af_surround.c s->upmix_3_0(ctx, l_phase, r_phase, c_phase, c_mag, mag_total, x, y, n); s 1167 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1171 libavfilter/af_surround.c srcl = (float *)s->input->extended_data[0]; s 1172 libavfilter/af_surround.c srcr = (float *)s->input->extended_data[1]; s 1173 libavfilter/af_surround.c srclfe = (float *)s->input->extended_data[2]; s 1175 libavfilter/af_surround.c for (n = 0; n < s->buf_size; n++) { s 1194 libavfilter/af_surround.c stereo_transform(&x, &y, s->angle); s 1196 libavfilter/af_surround.c s->upmix_2_1(ctx, l_phase, r_phase, c_phase, mag_total, lfe_re, lfe_im, x, y, n); s 1202 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1206 libavfilter/af_surround.c srcl = (float *)s->input->extended_data[0]; s 1207 libavfilter/af_surround.c srcr = (float *)s->input->extended_data[1]; s 1208 libavfilter/af_surround.c srcc = (float *)s->input->extended_data[2]; s 1209 libavfilter/af_surround.c srcsl = (float *)s->input->extended_data[3]; s 1210 libavfilter/af_surround.c srcsr = (float *)s->input->extended_data[4]; s 1212 libavfilter/af_surround.c for (n = 0; n < s->buf_size; n++) { s 1248 libavfilter/af_surround.c s->upmix_5_0(ctx, c_re, c_im, s 1259 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1263 libavfilter/af_surround.c srcl = (float *)s->input->extended_data[0]; s 1264 libavfilter/af_surround.c srcr = (float *)s->input->extended_data[1]; s 1265 libavfilter/af_surround.c srcc = (float *)s->input->extended_data[2]; s 1266 libavfilter/af_surround.c srclfe = (float *)s->input->extended_data[3]; s 1267 libavfilter/af_surround.c srcsl = (float *)s->input->extended_data[4]; s 1268 libavfilter/af_surround.c srcsr = (float *)s->input->extended_data[5]; s 1270 libavfilter/af_surround.c for (n = 0; n < s->buf_size; n++) { s 1307 libavfilter/af_surround.c s->upmix_5_1(ctx, c_re, c_im, lfe_re, lfe_im, s 1318 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1322 libavfilter/af_surround.c srcl = (float *)s->input->extended_data[0]; s 1323 libavfilter/af_surround.c srcr = (float *)s->input->extended_data[1]; s 1324 libavfilter/af_surround.c srcc = (float *)s->input->extended_data[2]; s 1325 libavfilter/af_surround.c srclfe = (float *)s->input->extended_data[3]; s 1326 libavfilter/af_surround.c srcbl = (float *)s->input->extended_data[4]; s 1327 libavfilter/af_surround.c srcbr = (float *)s->input->extended_data[5]; s 1329 libavfilter/af_surround.c for (n = 0; n < s->buf_size; n++) { s 1366 libavfilter/af_surround.c s->upmix_5_1(ctx, c_re, c_im, lfe_re, lfe_im, s 1377 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1381 libavfilter/af_surround.c if (!(s->out_channel_layout = av_get_channel_layout(s->out_channel_layout_str))) { s 1383 libavfilter/af_surround.c s->out_channel_layout_str); s 1387 libavfilter/af_surround.c if (!(s->in_channel_layout = av_get_channel_layout(s->in_channel_layout_str))) { s 1389 libavfilter/af_surround.c s->in_channel_layout_str); s 1393 libavfilter/af_surround.c if (s->lowcutf >= s->highcutf) { s 1395 libavfilter/af_surround.c s->lowcutf, s->highcutf); s 1399 libavfilter/af_surround.c switch (s->in_channel_layout) { s 1401 libavfilter/af_surround.c s->filter = filter_stereo; s 1402 libavfilter/af_surround.c switch (s->out_channel_layout) { s 1404 libavfilter/af_surround.c s->upmix_stereo = upmix_1_0; s 1407 libavfilter/af_surround.c s->upmix_stereo = upmix_stereo; s 1410 libavfilter/af_surround.c s->upmix_stereo = upmix_2_1; s 1413 libavfilter/af_surround.c s->upmix_stereo = upmix_3_0; s 1416 libavfilter/af_surround.c s->upmix_stereo = upmix_3_1; s 1419 libavfilter/af_surround.c s->upmix_stereo = upmix_4_0; s 1422 libavfilter/af_surround.c s->upmix_stereo = upmix_4_1; s 1425 libavfilter/af_surround.c s->upmix_stereo = upmix_5_0_back; s 1428 libavfilter/af_surround.c s->upmix_stereo = upmix_5_1_back; s 1431 libavfilter/af_surround.c s->upmix_stereo = upmix_6_0; s 1434 libavfilter/af_surround.c s->upmix_stereo = upmix_6_1; s 1437 libavfilter/af_surround.c s->upmix_stereo = upmix_7_0; s 1440 libavfilter/af_surround.c s->upmix_stereo = upmix_7_1; s 1447 libavfilter/af_surround.c s->filter = filter_2_1; s 1448 libavfilter/af_surround.c switch (s->out_channel_layout) { s 1450 libavfilter/af_surround.c s->upmix_2_1 = upmix_5_1_back_2_1; s 1457 libavfilter/af_surround.c s->filter = filter_surround; s 1458 libavfilter/af_surround.c switch (s->out_channel_layout) { s 1460 libavfilter/af_surround.c s->upmix_3_0 = upmix_3_1_surround; s 1463 libavfilter/af_surround.c s->upmix_3_0 = upmix_5_1_back_surround; s 1470 libavfilter/af_surround.c s->filter = filter_5_0_side; s 1471 libavfilter/af_surround.c switch (s->out_channel_layout) { s 1473 libavfilter/af_surround.c s->upmix_5_0 = upmix_7_1_5_0_side; s 1480 libavfilter/af_surround.c s->filter = filter_5_1_side; s 1481 libavfilter/af_surround.c switch (s->out_channel_layout) { s 1483 libavfilter/af_surround.c s->upmix_5_1 = upmix_7_1_5_1; s 1490 libavfilter/af_surround.c s->filter = filter_5_1_back; s 1491 libavfilter/af_surround.c switch (s->out_channel_layout) { s 1493 libavfilter/af_surround.c s->upmix_5_1 = upmix_7_1_5_1; s 1502 libavfilter/af_surround.c s->in_channel_layout_str, s->out_channel_layout_str); s 1506 libavfilter/af_surround.c s->buf_size = 1 << av_log2(s->win_size); s 1507 libavfilter/af_surround.c s->pts = AV_NOPTS_VALUE; s 1509 libavfilter/af_surround.c s->window_func_lut = av_calloc(s->buf_size, sizeof(*s->window_func_lut)); s 1510 libavfilter/af_surround.c if (!s->window_func_lut) s 1513 libavfilter/af_surround.c generate_window_func(s->window_func_lut, s->buf_size, s->win_func, &overlap); s 1514 libavfilter/af_surround.c if (s->overlap == 1) s 1515 libavfilter/af_surround.c s->overlap = overlap; s 1517 libavfilter/af_surround.c for (i = 0; i < s->buf_size; i++) s 1518 libavfilter/af_surround.c s->window_func_lut[i] = sqrtf(s->window_func_lut[i] / s->buf_size); s 1519 libavfilter/af_surround.c s->hop_size = s->buf_size * (1. - s->overlap); s 1520 libavfilter/af_surround.c if (s->hop_size <= 0) s 1523 libavfilter/af_surround.c if (s->all_x >= 0.f) s 1524 libavfilter/af_surround.c s->fc_x = s->fl_x = s->fr_x = s->bc_x = s->sl_x = s->sr_x = s->bl_x = s->br_x = s->all_x; s 1525 libavfilter/af_surround.c if (s->all_y >= 0.f) s 1526 libavfilter/af_surround.c s->fc_y = s->fl_y = s->fr_y = s->bc_y = s->sl_y = s->sr_y = s->bl_y = s->br_y = s->all_y; s 1533 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1534 libavfilter/af_surround.c const float level_in = s->input_levels[ch]; s 1538 libavfilter/af_surround.c memset(s->input->extended_data[ch] + s->buf_size * sizeof(float), 0, s->buf_size * sizeof(float)); s 1540 libavfilter/af_surround.c dst = (float *)s->input->extended_data[ch]; s 1541 libavfilter/af_surround.c for (n = 0; n < s->buf_size; n++) { s 1542 libavfilter/af_surround.c dst[n] *= s->window_func_lut[n] * level_in; s 1545 libavfilter/af_surround.c av_rdft_calc(s->rdft[ch], (float *)s->input->extended_data[ch]); s 1552 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1553 libavfilter/af_surround.c const float level_out = s->output_levels[ch]; s 1558 libavfilter/af_surround.c av_rdft_calc(s->irdft[ch], (float *)s->output->extended_data[ch]); s 1560 libavfilter/af_surround.c dst = (float *)s->output->extended_data[ch]; s 1561 libavfilter/af_surround.c ptr = (float *)s->overlap_buffer->extended_data[ch]; s 1563 libavfilter/af_surround.c memmove(s->overlap_buffer->extended_data[ch], s 1564 libavfilter/af_surround.c s->overlap_buffer->extended_data[ch] + s->hop_size * sizeof(float), s 1565 libavfilter/af_surround.c s->buf_size * sizeof(float)); s 1566 libavfilter/af_surround.c memset(s->overlap_buffer->extended_data[ch] + s->buf_size * sizeof(float), s 1567 libavfilter/af_surround.c 0, s->hop_size * sizeof(float)); s 1569 libavfilter/af_surround.c for (n = 0; n < s->buf_size; n++) { s 1570 libavfilter/af_surround.c ptr[n] += dst[n] * s->window_func_lut[n] * level_out; s 1573 libavfilter/af_surround.c ptr = (float *)s->overlap_buffer->extended_data[ch]; s 1575 libavfilter/af_surround.c memcpy(dst, ptr, s->hop_size * sizeof(float)); s 1584 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1588 libavfilter/af_surround.c ret = av_audio_fifo_peek(s->fifo, (void **)s->input->extended_data, s->buf_size); s 1594 libavfilter/af_surround.c s->filter(ctx); s 1596 libavfilter/af_surround.c out = ff_get_audio_buffer(outlink, s->hop_size); s 1602 libavfilter/af_surround.c out->pts = s->pts; s 1603 libavfilter/af_surround.c if (s->pts != AV_NOPTS_VALUE) s 1604 libavfilter/af_surround.c s->pts += av_rescale_q(out->nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 1605 libavfilter/af_surround.c av_audio_fifo_drain(s->fifo, FFMIN(av_audio_fifo_size(s->fifo), s->hop_size)); s 1614 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1621 libavfilter/af_surround.c if (!s->eof && av_audio_fifo_size(s->fifo) < s->buf_size) { s 1627 libavfilter/af_surround.c ret = av_audio_fifo_write(s->fifo, (void **)in->extended_data, s 1629 libavfilter/af_surround.c if (ret >= 0 && s->pts == AV_NOPTS_VALUE) s 1630 libavfilter/af_surround.c s->pts = in->pts; s 1638 libavfilter/af_surround.c if ((av_audio_fifo_size(s->fifo) >= s->buf_size) || s 1639 libavfilter/af_surround.c (av_audio_fifo_size(s->fifo) > 0 && s->eof)) { s 1641 libavfilter/af_surround.c if (av_audio_fifo_size(s->fifo) >= s->buf_size) s 1646 libavfilter/af_surround.c if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 1648 libavfilter/af_surround.c s->eof = 1; s 1649 libavfilter/af_surround.c if (av_audio_fifo_size(s->fifo) >= 0) { s 1656 libavfilter/af_surround.c if (s->eof && av_audio_fifo_size(s->fifo) <= 0) { s 1657 libavfilter/af_surround.c ff_outlink_set_status(outlink, AVERROR_EOF, s->pts); s 1661 libavfilter/af_surround.c if (!s->eof) s 1669 libavfilter/af_surround.c AudioSurroundContext *s = ctx->priv; s 1672 libavfilter/af_surround.c av_frame_free(&s->input); s 1673 libavfilter/af_surround.c av_frame_free(&s->output); s 1674 libavfilter/af_surround.c av_frame_free(&s->overlap_buffer); s 1676 libavfilter/af_surround.c for (ch = 0; ch < s->nb_in_channels; ch++) { s 1677 libavfilter/af_surround.c av_rdft_end(s->rdft[ch]); s 1679 libavfilter/af_surround.c for (ch = 0; ch < s->nb_out_channels; ch++) { s 1680 libavfilter/af_surround.c av_rdft_end(s->irdft[ch]); s 1682 libavfilter/af_surround.c av_freep(&s->input_levels); s 1683 libavfilter/af_surround.c av_freep(&s->output_levels); s 1684 libavfilter/af_surround.c av_freep(&s->rdft); s 1685 libavfilter/af_surround.c av_freep(&s->irdft); s 1686 libavfilter/af_surround.c av_audio_fifo_free(s->fifo); s 1687 libavfilter/af_surround.c av_freep(&s->window_func_lut); s 50 libavfilter/af_tremolo.c TremoloContext *s = ctx->priv; s 72 libavfilter/af_tremolo.c dst[c] = src[c] * s->table[s->index]; s 75 libavfilter/af_tremolo.c s->index++; s 76 libavfilter/af_tremolo.c if (s->index >= s->table_size) s 77 libavfilter/af_tremolo.c s->index = 0; s 118 libavfilter/af_tremolo.c TremoloContext *s = ctx->priv; s 119 libavfilter/af_tremolo.c av_freep(&s->table); s 125 libavfilter/af_tremolo.c TremoloContext *s = ctx->priv; s 126 libavfilter/af_tremolo.c const double offset = 1. - s->depth / 2.; s 129 libavfilter/af_tremolo.c s->table_size = inlink->sample_rate / s->freq; s 130 libavfilter/af_tremolo.c s->table = av_malloc_array(s->table_size, sizeof(*s->table)); s 131 libavfilter/af_tremolo.c if (!s->table) s 134 libavfilter/af_tremolo.c for (i = 0; i < s->table_size; i++) { s 135 libavfilter/af_tremolo.c double env = s->freq * i / inlink->sample_rate; s 137 libavfilter/af_tremolo.c s->table[i] = env * (1 - fabs(offset)) + offset; s 140 libavfilter/af_tremolo.c s->index = 0; s 56 libavfilter/af_vibrato.c VibratoContext *s = ctx->priv; s 77 libavfilter/af_vibrato.c decimal = modf(s->depth * s->wave_table[s->wave_table_index], &integer); s 79 libavfilter/af_vibrato.c s->wave_table_index++; s 80 libavfilter/af_vibrato.c if (s->wave_table_index >= s->wave_table_size) s 81 libavfilter/af_vibrato.c s->wave_table_index -= s->wave_table_size; s 90 libavfilter/af_vibrato.c buf = s->buf[c]; s 92 libavfilter/af_vibrato.c samp1_index = s->buf_index + integer; s 93 libavfilter/af_vibrato.c if (samp1_index >= s->buf_size) s 94 libavfilter/af_vibrato.c samp1_index -= s->buf_size; s 96 libavfilter/af_vibrato.c if (samp2_index >= s->buf_size) s 97 libavfilter/af_vibrato.c samp2_index -= s->buf_size; s 101 libavfilter/af_vibrato.c buf[s->buf_index] = this_samp; s 103 libavfilter/af_vibrato.c s->buf_index++; s 104 libavfilter/af_vibrato.c if (s->buf_index >= s->buf_size) s 105 libavfilter/af_vibrato.c s->buf_index -= s->buf_size; s 146 libavfilter/af_vibrato.c VibratoContext *s = ctx->priv; s 149 libavfilter/af_vibrato.c av_freep(&s->wave_table); s 150 libavfilter/af_vibrato.c for (c = 0; c < s->channels; c++) s 151 libavfilter/af_vibrato.c av_freep(&s->buf[c]); s 152 libavfilter/af_vibrato.c av_freep(&s->buf); s 159 libavfilter/af_vibrato.c VibratoContext *s = ctx->priv; s 160 libavfilter/af_vibrato.c s->channels = inlink->channels; s 162 libavfilter/af_vibrato.c s->buf = av_calloc(inlink->channels, sizeof(*s->buf)); s 163 libavfilter/af_vibrato.c if (!s->buf) s 165 libavfilter/af_vibrato.c s->buf_size = inlink->sample_rate * 0.005; s 166 libavfilter/af_vibrato.c for (c = 0; c < s->channels; c++) { s 167 libavfilter/af_vibrato.c s->buf[c] = av_malloc_array(s->buf_size, sizeof(*s->buf[c])); s 168 libavfilter/af_vibrato.c if (!s->buf[c]) s 171 libavfilter/af_vibrato.c s->buf_index = 0; s 173 libavfilter/af_vibrato.c s->wave_table_size = inlink->sample_rate / s->freq; s 174 libavfilter/af_vibrato.c s->wave_table = av_malloc_array(s->wave_table_size, sizeof(*s->wave_table)); s 175 libavfilter/af_vibrato.c if (!s->wave_table) s 177 libavfilter/af_vibrato.c ff_generate_wave_table(WAVE_SIN, AV_SAMPLE_FMT_DBL, s->wave_table, s->wave_table_size, 0.0, s->buf_size - 1, 3.0 * M_PI_2); s 178 libavfilter/af_vibrato.c s->wave_table_index = 0; s 104 libavfilter/asrc_afirsrc.c AudioFIRSourceContext *s = ctx->priv; s 106 libavfilter/asrc_afirsrc.c if (!(s->nb_taps & 1)) { s 107 libavfilter/asrc_afirsrc.c av_log(s, AV_LOG_WARNING, "Number of taps %d must be odd length.\n", s->nb_taps); s 108 libavfilter/asrc_afirsrc.c s->nb_taps |= 1; s 116 libavfilter/asrc_afirsrc.c AudioFIRSourceContext *s = ctx->priv; s 118 libavfilter/asrc_afirsrc.c av_freep(&s->win); s 119 libavfilter/asrc_afirsrc.c av_freep(&s->taps); s 120 libavfilter/asrc_afirsrc.c av_freep(&s->freq); s 121 libavfilter/asrc_afirsrc.c av_freep(&s->magnitude); s 122 libavfilter/asrc_afirsrc.c av_freep(&s->phase); s 123 libavfilter/asrc_afirsrc.c av_freep(&s->complexf); s 124 libavfilter/asrc_afirsrc.c av_tx_uninit(&s->tx_ctx); s 129 libavfilter/asrc_afirsrc.c AudioFIRSourceContext *s = ctx->priv; s 131 libavfilter/asrc_afirsrc.c int sample_rates[] = { s->sample_rate, -1 }; s 213 libavfilter/asrc_afirsrc.c AudioFIRSourceContext *s = ctx->priv; s 217 libavfilter/asrc_afirsrc.c s->nb_freq = s->nb_magnitude = s->nb_phase = 0; s 219 libavfilter/asrc_afirsrc.c ret = parse_string(s->freq_points_str, &s->freq, &s->nb_freq, &s->freq_size); s 223 libavfilter/asrc_afirsrc.c ret = parse_string(s->magnitude_str, &s->magnitude, &s->nb_magnitude, &s->magnitude_size); s 227 libavfilter/asrc_afirsrc.c ret = parse_string(s->phase_str, &s->phase, &s->nb_phase, &s->phase_size); s 231 libavfilter/asrc_afirsrc.c if (s->nb_freq != s->nb_magnitude && s->nb_freq != s->nb_phase && s->nb_freq >= 2) { s 236 libavfilter/asrc_afirsrc.c for (int i = 0; i < s->nb_freq; i++) { s 237 libavfilter/asrc_afirsrc.c if (i == 0 && s->freq[i] != 0.f) { s 242 libavfilter/asrc_afirsrc.c if (i == s->nb_freq - 1 && s->freq[i] != 1.f) { s 247 libavfilter/asrc_afirsrc.c if (i && s->freq[i] < s->freq[i-1]) { s 253 libavfilter/asrc_afirsrc.c fft_size = 1 << (av_log2(s->nb_taps) + 1); s 254 libavfilter/asrc_afirsrc.c s->complexf = av_calloc(fft_size * 2, sizeof(*s->complexf)); s 255 libavfilter/asrc_afirsrc.c if (!s->complexf) s 258 libavfilter/asrc_afirsrc.c ret = av_tx_init(&s->tx_ctx, &s->tx_fn, AV_TX_FLOAT_FFT, 1, fft_size, &scale, 0); s 262 libavfilter/asrc_afirsrc.c s->taps = av_calloc(s->nb_taps, sizeof(*s->taps)); s 263 libavfilter/asrc_afirsrc.c if (!s->taps) s 266 libavfilter/asrc_afirsrc.c s->win = av_calloc(s->nb_taps, sizeof(*s->win)); s 267 libavfilter/asrc_afirsrc.c if (!s->win) s 270 libavfilter/asrc_afirsrc.c generate_window_func(s->win, s->nb_taps, s->win_func, &overlap); s 272 libavfilter/asrc_afirsrc.c lininterp(s->complexf, s->freq, s->magnitude, s->phase, s->nb_freq, fft_size / 2); s 274 libavfilter/asrc_afirsrc.c s->tx_fn(s->tx_ctx, s->complexf + fft_size, s->complexf, sizeof(float)); s 277 libavfilter/asrc_afirsrc.c middle = s->nb_taps / 2; s 280 libavfilter/asrc_afirsrc.c s->taps[ i] = s->complexf[fft_size + middle - i].re * compensation * s->win[i]; s 281 libavfilter/asrc_afirsrc.c s->taps[middle + i] = s->complexf[fft_size + i].re * compensation * s->win[middle + i]; s 284 libavfilter/asrc_afirsrc.c s->pts = 0; s 292 libavfilter/asrc_afirsrc.c AudioFIRSourceContext *s = ctx->priv; s 296 libavfilter/asrc_afirsrc.c nb_samples = FFMIN(s->nb_samples, s->nb_taps - s->pts); s 303 libavfilter/asrc_afirsrc.c memcpy(frame->data[0], s->taps + s->pts, nb_samples * sizeof(float)); s 305 libavfilter/asrc_afirsrc.c frame->pts = s->pts; s 306 libavfilter/asrc_afirsrc.c s->pts += nb_samples; s 85 libavfilter/asrc_anoisesrc.c ANoiseSrcContext *s = ctx->priv; s 87 libavfilter/asrc_anoisesrc.c int sample_rates[] = { s->sample_rate, -1 }; s 180 libavfilter/asrc_anoisesrc.c ANoiseSrcContext *s = ctx->priv; s 182 libavfilter/asrc_anoisesrc.c if (s->seed == -1) s 183 libavfilter/asrc_anoisesrc.c s->seed = av_get_random_seed(); s 184 libavfilter/asrc_anoisesrc.c av_lfg_init(&s->c, s->seed); s 186 libavfilter/asrc_anoisesrc.c if (s->duration == 0) s 187 libavfilter/asrc_anoisesrc.c s->infinite = 1; s 188 libavfilter/asrc_anoisesrc.c s->duration = av_rescale(s->duration, s->sample_rate, AV_TIME_BASE); s 190 libavfilter/asrc_anoisesrc.c switch (s->color) { s 191 libavfilter/asrc_anoisesrc.c case NM_WHITE: s->filter = white_filter; break; s 192 libavfilter/asrc_anoisesrc.c case NM_PINK: s->filter = pink_filter; break; s 193 libavfilter/asrc_anoisesrc.c case NM_BROWN: s->filter = brown_filter; break; s 194 libavfilter/asrc_anoisesrc.c case NM_BLUE: s->filter = blue_filter; break; s 195 libavfilter/asrc_anoisesrc.c case NM_VIOLET: s->filter = violet_filter; break; s 196 libavfilter/asrc_anoisesrc.c case NM_VELVET: s->filter = velvet_filter; break; s 205 libavfilter/asrc_anoisesrc.c ANoiseSrcContext *s = ctx->priv; s 213 libavfilter/asrc_anoisesrc.c if (!s->infinite && s->duration <= 0) { s 214 libavfilter/asrc_anoisesrc.c ff_outlink_set_status(outlink, AVERROR_EOF, s->pts); s 216 libavfilter/asrc_anoisesrc.c } else if (!s->infinite && s->duration < s->nb_samples) { s 217 libavfilter/asrc_anoisesrc.c nb_samples = s->duration; s 219 libavfilter/asrc_anoisesrc.c nb_samples = s->nb_samples; s 228 libavfilter/asrc_anoisesrc.c white = s->amplitude * ((2 * ((double) av_lfg_get(&s->c) / 0xffffffff)) - 1); s 229 libavfilter/asrc_anoisesrc.c dst[i] = s->filter(white, s->buf, s->amplitude * 0.5); s 232 libavfilter/asrc_anoisesrc.c if (!s->infinite) s 233 libavfilter/asrc_anoisesrc.c s->duration -= nb_samples; s 235 libavfilter/asrc_anoisesrc.c frame->pts = s->pts; s 236 libavfilter/asrc_anoisesrc.c s->pts += nb_samples; s 78 libavfilter/asrc_hilbert.c HilbertContext *s = ctx->priv; s 80 libavfilter/asrc_hilbert.c if (!(s->nb_taps & 1)) { s 81 libavfilter/asrc_hilbert.c av_log(s, AV_LOG_ERROR, "Number of taps %d must be odd length.\n", s->nb_taps); s 90 libavfilter/asrc_hilbert.c HilbertContext *s = ctx->priv; s 92 libavfilter/asrc_hilbert.c av_freep(&s->taps); s 97 libavfilter/asrc_hilbert.c HilbertContext *s = ctx->priv; s 99 libavfilter/asrc_hilbert.c int sample_rates[] = { s->sample_rate, -1 }; s 132 libavfilter/asrc_hilbert.c HilbertContext *s = ctx->priv; s 136 libavfilter/asrc_hilbert.c s->taps = av_malloc_array(s->nb_taps, sizeof(*s->taps)); s 137 libavfilter/asrc_hilbert.c if (!s->taps) s 140 libavfilter/asrc_hilbert.c generate_window_func(s->taps, s->nb_taps, s->win_func, &overlap); s 142 libavfilter/asrc_hilbert.c for (i = 0; i < s->nb_taps; i++) { s 143 libavfilter/asrc_hilbert.c int k = -(s->nb_taps / 2) + i; s 148 libavfilter/asrc_hilbert.c s->taps[i] *= (1.f - cosf(pk)) / pk; s 150 libavfilter/asrc_hilbert.c s->taps[i] = 0.f; s 154 libavfilter/asrc_hilbert.c s->pts = 0; s 162 libavfilter/asrc_hilbert.c HilbertContext *s = ctx->priv; s 166 libavfilter/asrc_hilbert.c nb_samples = FFMIN(s->nb_samples, s->nb_taps - s->pts); s 173 libavfilter/asrc_hilbert.c memcpy(frame->data[0], s->taps + s->pts, nb_samples * sizeof(float)); s 175 libavfilter/asrc_hilbert.c frame->pts = s->pts; s 176 libavfilter/asrc_hilbert.c s->pts += nb_samples; s 49 libavfilter/asrc_sinc.c SincContext *s = ctx->priv; s 50 libavfilter/asrc_sinc.c const float *coeffs = s->coeffs; s 54 libavfilter/asrc_sinc.c nb_samples = FFMIN(s->nb_samples, s->n - s->pts); s 61 libavfilter/asrc_sinc.c memcpy(frame->data[0], coeffs + s->pts, nb_samples * sizeof(float)); s 63 libavfilter/asrc_sinc.c frame->pts = s->pts; s 64 libavfilter/asrc_sinc.c s->pts += nb_samples; s 71 libavfilter/asrc_sinc.c SincContext *s = ctx->priv; s 73 libavfilter/asrc_sinc.c int sample_rates[] = { s->sample_rate, -1 }; s 221 libavfilter/asrc_sinc.c static int fir_to_phase(SincContext *s, float **h, int *len, int *post_len, float phase) s 238 libavfilter/asrc_sinc.c av_rdft_end(s->rdft); s 239 libavfilter/asrc_sinc.c av_rdft_end(s->irdft); s 240 libavfilter/asrc_sinc.c s->rdft = s->irdft = NULL; s 241 libavfilter/asrc_sinc.c s->rdft = av_rdft_init(av_log2(work_len), DFT_R2C); s 242 libavfilter/asrc_sinc.c s->irdft = av_rdft_init(av_log2(work_len), IDFT_C2R); s 243 libavfilter/asrc_sinc.c if (!s->rdft || !s->irdft) { s 248 libavfilter/asrc_sinc.c av_rdft_calc(s->rdft, work); /* Cepstral: */ s 272 libavfilter/asrc_sinc.c av_rdft_calc(s->irdft, work); s 281 libavfilter/asrc_sinc.c av_rdft_calc(s->rdft, work); s 295 libavfilter/asrc_sinc.c av_rdft_calc(s->irdft, work); s 336 libavfilter/asrc_sinc.c av_log(s, AV_LOG_DEBUG, "%d nPI=%g peak-sum@%i=%g (val@%i=%g); len=%i post=%i (%g%%)\n", s 348 libavfilter/asrc_sinc.c SincContext *s = ctx->priv; s 349 libavfilter/asrc_sinc.c float Fn = s->sample_rate * .5f; s 353 libavfilter/asrc_sinc.c outlink->sample_rate = s->sample_rate; s 354 libavfilter/asrc_sinc.c s->pts = 0; s 356 libavfilter/asrc_sinc.c if (s->Fc0 >= Fn || s->Fc1 >= Fn) { s 358 libavfilter/asrc_sinc.c "filter frequency must be less than %d/2.\n", s->sample_rate); s 362 libavfilter/asrc_sinc.c h[0] = lpf(Fn, s->Fc0, s->tbw0, &s->num_taps[0], s->att, &s->beta, s->round); s 363 libavfilter/asrc_sinc.c h[1] = lpf(Fn, s->Fc1, s->tbw1, &s->num_taps[1], s->att, &s->beta, s->round); s 366 libavfilter/asrc_sinc.c invert(h[0], s->num_taps[0]); s 368 libavfilter/asrc_sinc.c longer = s->num_taps[1] > s->num_taps[0]; s 369 libavfilter/asrc_sinc.c n = s->num_taps[longer]; s 372 libavfilter/asrc_sinc.c for (i = 0; i < s->num_taps[!longer]; i++) s 373 libavfilter/asrc_sinc.c h[longer][i + (n - s->num_taps[!longer]) / 2] += h[!longer][i]; s 375 libavfilter/asrc_sinc.c if (s->Fc0 < s->Fc1) s 381 libavfilter/asrc_sinc.c if (s->phase != 50.f) { s 382 libavfilter/asrc_sinc.c int ret = fir_to_phase(s, &h[longer], &n, &post_peak, s->phase); s 389 libavfilter/asrc_sinc.c s->n = 1 << (av_log2(n) + 1); s 390 libavfilter/asrc_sinc.c s->rdft_len = 1 << av_log2(n); s 391 libavfilter/asrc_sinc.c s->coeffs = av_calloc(s->n, sizeof(*s->coeffs)); s 392 libavfilter/asrc_sinc.c if (!s->coeffs) s 396 libavfilter/asrc_sinc.c s->coeffs[i] = h[longer][i]; s 399 libavfilter/asrc_sinc.c av_rdft_end(s->rdft); s 400 libavfilter/asrc_sinc.c av_rdft_end(s->irdft); s 401 libavfilter/asrc_sinc.c s->rdft = s->irdft = NULL; s 408 libavfilter/asrc_sinc.c SincContext *s = ctx->priv; s 410 libavfilter/asrc_sinc.c av_freep(&s->coeffs); s 411 libavfilter/asrc_sinc.c av_rdft_end(s->rdft); s 412 libavfilter/asrc_sinc.c av_rdft_end(s->irdft); s 413 libavfilter/asrc_sinc.c s->rdft = s->irdft = NULL; s 93 libavfilter/asrc_sine.c unsigned step, i, c, s, k, new_k, n2; s 104 libavfilter/asrc_sine.c s = sin[i] + sin[i + step]; s 106 libavfilter/asrc_sine.c n2 = s * s + c * c; s 114 libavfilter/asrc_sine.c sin[i + step / 2] = (k * s + 0x7FFF) >> 16; s 95 libavfilter/avf_abitscope.c AudioBitScopeContext *s = ctx->priv; s 99 libavfilter/avf_abitscope.c s->nb_samples = FFMAX(1, av_rescale(inlink->sample_rate, s->frame_rate.den, s->frame_rate.num)); s 100 libavfilter/avf_abitscope.c s->nb_channels = inlink->channels; s 101 libavfilter/avf_abitscope.c s->depth = inlink->format == AV_SAMPLE_FMT_S16P ? 16 : 32; s 103 libavfilter/avf_abitscope.c s->fg = av_malloc_array(s->nb_channels, 4 * sizeof(*s->fg)); s 104 libavfilter/avf_abitscope.c if (!s->fg) s 107 libavfilter/avf_abitscope.c colors = av_strdup(s->colors); s 111 libavfilter/avf_abitscope.c for (ch = 0; ch < s->nb_channels; ch++) { s 118 libavfilter/avf_abitscope.c s->fg[4 * ch + 0] = fg[0]; s 119 libavfilter/avf_abitscope.c s->fg[4 * ch + 1] = fg[1]; s 120 libavfilter/avf_abitscope.c s->fg[4 * ch + 2] = fg[2]; s 121 libavfilter/avf_abitscope.c s->fg[4 * ch + 3] = fg[3]; s 130 libavfilter/avf_abitscope.c AudioBitScopeContext *s = outlink->src->priv; s 132 libavfilter/avf_abitscope.c outlink->w = s->w; s 133 libavfilter/avf_abitscope.c outlink->h = s->h; s 135 libavfilter/avf_abitscope.c outlink->frame_rate = s->frame_rate; s 140 libavfilter/avf_abitscope.c static void count_bits(AudioBitScopeContext *s, uint32_t sample, int max) s 146 libavfilter/avf_abitscope.c s->counter[i]++; s 154 libavfilter/avf_abitscope.c AudioBitScopeContext *s = ctx->priv; s 176 libavfilter/avf_abitscope.c uint32_t color = AV_RN32(&s->fg[4 * ch]); s 178 libavfilter/avf_abitscope.c memset(s->counter, 0, sizeof(s->counter)); s 180 libavfilter/avf_abitscope.c count_bits(s, in[i], 16); s 185 libavfilter/avf_abitscope.c int ww = (s->counter[16 - b - 1] / (float)insamples->nb_samples) * (w - 1); s 199 libavfilter/avf_abitscope.c uint32_t color = AV_RN32(&s->fg[4 * ch]); s 201 libavfilter/avf_abitscope.c memset(s->counter, 0, sizeof(s->counter)); s 203 libavfilter/avf_abitscope.c count_bits(s, in[i], 32); s 208 libavfilter/avf_abitscope.c int ww = (s->counter[32 - b - 1] / (float)insamples->nb_samples) * (w - 1); s 228 libavfilter/avf_abitscope.c AudioBitScopeContext *s = ctx->priv; s 234 libavfilter/avf_abitscope.c ret = ff_inlink_consume_samples(inlink, s->nb_samples, s->nb_samples, &in); s 121 libavfilter/avf_ahistogram.c AudioHistogramContext *s = ctx->priv; s 123 libavfilter/avf_ahistogram.c s->nb_samples = FFMAX(1, av_rescale(inlink->sample_rate, s->frame_rate.den, s->frame_rate.num)); s 124 libavfilter/avf_ahistogram.c s->dchannels = s->dmode == SINGLE ? 1 : inlink->channels; s 125 libavfilter/avf_ahistogram.c s->shistogram = av_calloc(s->w, s->dchannels * sizeof(*s->shistogram)); s 126 libavfilter/avf_ahistogram.c if (!s->shistogram) s 129 libavfilter/avf_ahistogram.c s->achistogram = av_calloc(s->w, s->dchannels * sizeof(*s->achistogram)); s 130 libavfilter/avf_ahistogram.c if (!s->achistogram) s 138 libavfilter/avf_ahistogram.c AudioHistogramContext *s = outlink->src->priv; s 140 libavfilter/avf_ahistogram.c outlink->w = s->w; s 141 libavfilter/avf_ahistogram.c outlink->h = s->h; s 143 libavfilter/avf_ahistogram.c outlink->frame_rate = s->frame_rate; s 145 libavfilter/avf_ahistogram.c s->histogram_h = s->h * s->phisto; s 146 libavfilter/avf_ahistogram.c s->ypos = s->h * s->phisto; s 148 libavfilter/avf_ahistogram.c if (s->dmode == SEPARATE) { s 149 libavfilter/avf_ahistogram.c s->combine_buffer = av_malloc_array(outlink->w * 3, sizeof(*s->combine_buffer)); s 150 libavfilter/avf_ahistogram.c if (!s->combine_buffer) s 161 libavfilter/avf_ahistogram.c AudioHistogramContext *s = ctx->priv; s 162 libavfilter/avf_ahistogram.c const int H = s->histogram_h; s 163 libavfilter/avf_ahistogram.c const int w = s->w; s 168 libavfilter/avf_ahistogram.c if (!s->out || s->out->width != outlink->w || s 169 libavfilter/avf_ahistogram.c s->out->height != outlink->h) { s 170 libavfilter/avf_ahistogram.c av_frame_free(&s->out); s 171 libavfilter/avf_ahistogram.c s->out = ff_get_video_buffer(outlink, outlink->w, outlink->h); s 172 libavfilter/avf_ahistogram.c if (!s->out) { s 176 libavfilter/avf_ahistogram.c for (n = H; n < s->h; n++) { s 177 libavfilter/avf_ahistogram.c memset(s->out->data[0] + n * s->out->linesize[0], 0, w); s 178 libavfilter/avf_ahistogram.c memset(s->out->data[1] + n * s->out->linesize[0], 127, w); s 179 libavfilter/avf_ahistogram.c memset(s->out->data[2] + n * s->out->linesize[0], 127, w); s 180 libavfilter/avf_ahistogram.c memset(s->out->data[3] + n * s->out->linesize[0], 0, w); s 184 libavfilter/avf_ahistogram.c if (s->dmode == SEPARATE) { s 186 libavfilter/avf_ahistogram.c s->combine_buffer[3 * y ] = 0; s 187 libavfilter/avf_ahistogram.c s->combine_buffer[3 * y + 1] = 127.5; s 188 libavfilter/avf_ahistogram.c s->combine_buffer[3 * y + 2] = 127.5; s 193 libavfilter/avf_ahistogram.c memset(s->out->data[0] + n * s->out->linesize[0], 0, w); s 194 libavfilter/avf_ahistogram.c memset(s->out->data[1] + n * s->out->linesize[0], 127, w); s 195 libavfilter/avf_ahistogram.c memset(s->out->data[2] + n * s->out->linesize[0], 127, w); s 196 libavfilter/avf_ahistogram.c memset(s->out->data[3] + n * s->out->linesize[0], 0, w); s 198 libavfilter/avf_ahistogram.c s->out->pts = in->pts; s 200 libavfilter/avf_ahistogram.c s->first = s->frame_count; s 202 libavfilter/avf_ahistogram.c switch (s->ascale) { s 206 libavfilter/avf_ahistogram.c uint64_t *achistogram = &s->achistogram[(s->dmode == SINGLE ? 0: c) * w]; s 214 libavfilter/avf_ahistogram.c if (s->in[s->first] && s->count >= 0) { s 215 libavfilter/avf_ahistogram.c uint64_t *shistogram = &s->shistogram[(s->dmode == SINGLE ? 0: c) * w]; s 216 libavfilter/avf_ahistogram.c const float *src2 = (const float *)s->in[s->first]->extended_data[c]; s 229 libavfilter/avf_ahistogram.c uint64_t *achistogram = &s->achistogram[(s->dmode == SINGLE ? 0: c) * w]; s 237 libavfilter/avf_ahistogram.c if (s->in[s->first] && s->count >= 0) { s 238 libavfilter/avf_ahistogram.c uint64_t *shistogram = &s->shistogram[(s->dmode == SINGLE ? 0: c) * w]; s 239 libavfilter/avf_ahistogram.c const float *src2 = (const float *)s->in[s->first]->extended_data[c]; s 251 libavfilter/avf_ahistogram.c av_frame_free(&s->in[s->frame_count]); s 252 libavfilter/avf_ahistogram.c s->in[s->frame_count] = in; s 253 libavfilter/avf_ahistogram.c s->frame_count++; s 254 libavfilter/avf_ahistogram.c if (s->frame_count > s->count) s 255 libavfilter/avf_ahistogram.c s->frame_count = 0; s 257 libavfilter/avf_ahistogram.c for (n = 0; n < w * s->dchannels; n++) { s 258 libavfilter/avf_ahistogram.c acmax = FFMAX(s->achistogram[n] - s->shistogram[n], acmax); s 261 libavfilter/avf_ahistogram.c for (c = 0; c < s->dchannels; c++) { s 262 libavfilter/avf_ahistogram.c uint64_t *shistogram = &s->shistogram[c * w]; s 263 libavfilter/avf_ahistogram.c uint64_t *achistogram = &s->achistogram[c * w]; s 266 libavfilter/avf_ahistogram.c if (s->dmode == SEPARATE) { s 267 libavfilter/avf_ahistogram.c yf = 256.0f / s->dchannels; s 270 libavfilter/avf_ahistogram.c uf *= 0.5 * sin((2 * M_PI * c) / s->dchannels); s 271 libavfilter/avf_ahistogram.c vf *= 0.5 * cos((2 * M_PI * c) / s->dchannels); s 280 libavfilter/avf_ahistogram.c switch (s->scale) { s 304 libavfilter/avf_ahistogram.c if (s->dmode == SINGLE) { s 307 libavfilter/avf_ahistogram.c s->out->data[0][y * s->out->linesize[0] + n] = 255; s 308 libavfilter/avf_ahistogram.c s->out->data[3][y * s->out->linesize[0] + n] = 255; s 311 libavfilter/avf_ahistogram.c if (s->h - H > 0) { s 314 libavfilter/avf_ahistogram.c s->out->data[0][s->ypos * s->out->linesize[0] + n] = h; s 315 libavfilter/avf_ahistogram.c s->out->data[1][s->ypos * s->out->linesize[1] + n] = 127; s 316 libavfilter/avf_ahistogram.c s->out->data[2][s->ypos * s->out->linesize[2] + n] = 127; s 317 libavfilter/avf_ahistogram.c s->out->data[3][s->ypos * s->out->linesize[3] + n] = 255; s 319 libavfilter/avf_ahistogram.c } else if (s->dmode == SEPARATE) { s 320 libavfilter/avf_ahistogram.c float *out = &s->combine_buffer[3 * n]; s 323 libavfilter/avf_ahistogram.c old = s->out->data[0][(H - h) * s->out->linesize[0] + n]; s 325 libavfilter/avf_ahistogram.c if (s->out->data[0][y * s->out->linesize[0] + n] != old) s 327 libavfilter/avf_ahistogram.c old = s->out->data[0][y * s->out->linesize[0] + n]; s 328 libavfilter/avf_ahistogram.c s->out->data[0][y * s->out->linesize[0] + n] = yf; s 329 libavfilter/avf_ahistogram.c s->out->data[1][y * s->out->linesize[1] + n] = 128+uf; s 330 libavfilter/avf_ahistogram.c s->out->data[2][y * s->out->linesize[2] + n] = 128+vf; s 331 libavfilter/avf_ahistogram.c s->out->data[3][y * s->out->linesize[3] + n] = 255; s 341 libavfilter/avf_ahistogram.c if (s->h - H > 0) { s 342 libavfilter/avf_ahistogram.c if (s->dmode == SEPARATE) { s 344 libavfilter/avf_ahistogram.c float *cb = &s->combine_buffer[3 * n]; s 346 libavfilter/avf_ahistogram.c s->out->data[0][s->ypos * s->out->linesize[0] + n] = cb[0]; s 347 libavfilter/avf_ahistogram.c s->out->data[1][s->ypos * s->out->linesize[1] + n] = cb[1]; s 348 libavfilter/avf_ahistogram.c s->out->data[2][s->ypos * s->out->linesize[2] + n] = cb[2]; s 349 libavfilter/avf_ahistogram.c s->out->data[3][s->ypos * s->out->linesize[3] + n] = 255; s 353 libavfilter/avf_ahistogram.c if (s->slide == SCROLL) { s 355 libavfilter/avf_ahistogram.c for (y = s->h; y >= H + 1; y--) { s 356 libavfilter/avf_ahistogram.c memmove(s->out->data[p] + (y ) * s->out->linesize[p], s 357 libavfilter/avf_ahistogram.c s->out->data[p] + (y-1) * s->out->linesize[p], w); s 362 libavfilter/avf_ahistogram.c s->ypos++; s 363 libavfilter/avf_ahistogram.c if (s->slide == SCROLL || s->ypos >= s->h) s 364 libavfilter/avf_ahistogram.c s->ypos = H; s 367 libavfilter/avf_ahistogram.c clone = av_frame_clone(s->out); s 378 libavfilter/avf_ahistogram.c AudioHistogramContext *s = ctx->priv; s 384 libavfilter/avf_ahistogram.c ret = ff_inlink_consume_samples(inlink, s->nb_samples, s->nb_samples, &in); s 398 libavfilter/avf_ahistogram.c AudioHistogramContext *s = ctx->priv; s 401 libavfilter/avf_ahistogram.c av_frame_free(&s->out); s 402 libavfilter/avf_ahistogram.c av_freep(&s->shistogram); s 403 libavfilter/avf_ahistogram.c av_freep(&s->achistogram); s 404 libavfilter/avf_ahistogram.c av_freep(&s->combine_buffer); s 406 libavfilter/avf_ahistogram.c av_frame_free(&s->in[i]); s 69 libavfilter/avf_aphasemeter.c AudioPhaseMeterContext *s = ctx->priv; s 91 libavfilter/avf_aphasemeter.c if (s->do_video) { s 105 libavfilter/avf_aphasemeter.c AudioPhaseMeterContext *s = ctx->priv; s 108 libavfilter/avf_aphasemeter.c if (s->do_video) { s 109 libavfilter/avf_aphasemeter.c nb_samples = FFMAX(1, av_rescale(inlink->sample_rate, s->frame_rate.den, s->frame_rate.num)); s 121 libavfilter/avf_aphasemeter.c AudioPhaseMeterContext *s = ctx->priv; s 123 libavfilter/avf_aphasemeter.c outlink->w = s->w; s 124 libavfilter/avf_aphasemeter.c outlink->h = s->h; s 126 libavfilter/avf_aphasemeter.c outlink->frame_rate = s->frame_rate; s 128 libavfilter/avf_aphasemeter.c if (!strcmp(s->mpc_str, "none")) s 129 libavfilter/avf_aphasemeter.c s->draw_median_phase = 0; s 130 libavfilter/avf_aphasemeter.c else if (av_parse_color(s->mpc, s->mpc_str, -1, ctx) >= 0) s 131 libavfilter/avf_aphasemeter.c s->draw_median_phase = 1; s 146 libavfilter/avf_aphasemeter.c AudioPhaseMeterContext *s = ctx->priv; s 147 libavfilter/avf_aphasemeter.c AVFilterLink *outlink = s->do_video ? ctx->outputs[1] : NULL; s 150 libavfilter/avf_aphasemeter.c const int rc = s->contrast[0]; s 151 libavfilter/avf_aphasemeter.c const int gc = s->contrast[1]; s 152 libavfilter/avf_aphasemeter.c const int bc = s->contrast[2]; s 158 libavfilter/avf_aphasemeter.c if (s->do_video && (!s->out || s->out->width != outlink->w || s 159 libavfilter/avf_aphasemeter.c s->out->height != outlink->h)) { s 160 libavfilter/avf_aphasemeter.c av_frame_free(&s->out); s 161 libavfilter/avf_aphasemeter.c s->out = ff_get_video_buffer(outlink, outlink->w, outlink->h); s 162 libavfilter/avf_aphasemeter.c if (!s->out) { s 167 libavfilter/avf_aphasemeter.c out = s->out; s 170 libavfilter/avf_aphasemeter.c } else if (s->do_video) { s 171 libavfilter/avf_aphasemeter.c out = s->out; s 184 libavfilter/avf_aphasemeter.c const int x = get_x(phase, s->w); s 186 libavfilter/avf_aphasemeter.c if (s->do_video) { s 197 libavfilter/avf_aphasemeter.c if (s->do_video) { s 198 libavfilter/avf_aphasemeter.c if (s->draw_median_phase) { s 199 libavfilter/avf_aphasemeter.c dst = out->data[0] + get_x(fphase, s->w) * 4; s 200 libavfilter/avf_aphasemeter.c AV_WL32(dst, AV_RL32(s->mpc)); s 215 libavfilter/avf_aphasemeter.c if (s->do_video) { s 218 libavfilter/avf_aphasemeter.c s->out->pts = in->pts; s 219 libavfilter/avf_aphasemeter.c clone = av_frame_clone(s->out); s 229 libavfilter/avf_aphasemeter.c AudioPhaseMeterContext *s = ctx->priv; s 232 libavfilter/avf_aphasemeter.c av_frame_free(&s->out); s 239 libavfilter/avf_aphasemeter.c AudioPhaseMeterContext *s = ctx->priv; s 255 libavfilter/avf_aphasemeter.c if (s->do_video) { s 117 libavfilter/avf_avectorscope.c static void draw_dot(AudioVectorScopeContext *s, unsigned x, unsigned y) s 119 libavfilter/avf_avectorscope.c const int linesize = s->outpicref->linesize[0]; s 122 libavfilter/avf_avectorscope.c if (s->zoom > 1) { s 123 libavfilter/avf_avectorscope.c if (y >= s->h || x >= s->w) s 126 libavfilter/avf_avectorscope.c y = FFMIN(y, s->h - 1); s 127 libavfilter/avf_avectorscope.c x = FFMIN(x, s->w - 1); s 130 libavfilter/avf_avectorscope.c dst = &s->outpicref->data[0][y * linesize + x * 4]; s 131 libavfilter/avf_avectorscope.c dst[0] = FFMIN(dst[0] + s->contrast[0], 255); s 132 libavfilter/avf_avectorscope.c dst[1] = FFMIN(dst[1] + s->contrast[1], 255); s 133 libavfilter/avf_avectorscope.c dst[2] = FFMIN(dst[2] + s->contrast[2], 255); s 134 libavfilter/avf_avectorscope.c dst[3] = FFMIN(dst[3] + s->contrast[3], 255); s 137 libavfilter/avf_avectorscope.c static void draw_line(AudioVectorScopeContext *s, int x0, int y0, int x1, int y1) s 144 libavfilter/avf_avectorscope.c draw_dot(s, x0, y0); s 163 libavfilter/avf_avectorscope.c static void fade(AudioVectorScopeContext *s) s 165 libavfilter/avf_avectorscope.c const int linesize = s->outpicref->linesize[0]; s 168 libavfilter/avf_avectorscope.c if (s->fade[0] || s->fade[1] || s->fade[2]) { s 169 libavfilter/avf_avectorscope.c uint8_t *d = s->outpicref->data[0]; s 170 libavfilter/avf_avectorscope.c for (i = 0; i < s->h; i++) { s 171 libavfilter/avf_avectorscope.c for (j = 0; j < s->w*4; j+=4) { s 172 libavfilter/avf_avectorscope.c d[j+0] = FFMAX(d[j+0] - s->fade[0], 0); s 173 libavfilter/avf_avectorscope.c d[j+1] = FFMAX(d[j+1] - s->fade[1], 0); s 174 libavfilter/avf_avectorscope.c d[j+2] = FFMAX(d[j+2] - s->fade[2], 0); s 175 libavfilter/avf_avectorscope.c d[j+3] = FFMAX(d[j+3] - s->fade[3], 0); s 212 libavfilter/avf_avectorscope.c AudioVectorScopeContext *s = ctx->priv; s 214 libavfilter/avf_avectorscope.c s->nb_samples = FFMAX(1, av_rescale(inlink->sample_rate, s->frame_rate.den, s->frame_rate.num)); s 221 libavfilter/avf_avectorscope.c AudioVectorScopeContext *s = outlink->src->priv; s 223 libavfilter/avf_avectorscope.c outlink->w = s->w; s 224 libavfilter/avf_avectorscope.c outlink->h = s->h; s 226 libavfilter/avf_avectorscope.c outlink->frame_rate = s->frame_rate; s 228 libavfilter/avf_avectorscope.c s->prev_x = s->hw = s->w / 2; s 229 libavfilter/avf_avectorscope.c s->prev_y = s->hh = s->mode == POLAR ? s->h - 1 : s->h / 2; s 238 libavfilter/avf_avectorscope.c AudioVectorScopeContext *s = ctx->priv; s 239 libavfilter/avf_avectorscope.c const int hw = s->hw; s 240 libavfilter/avf_avectorscope.c const int hh = s->hh; s 243 libavfilter/avf_avectorscope.c unsigned prev_x = s->prev_x, prev_y = s->prev_y; s 244 libavfilter/avf_avectorscope.c double zoom = s->zoom; s 247 libavfilter/avf_avectorscope.c if (!s->outpicref || s->outpicref->width != outlink->w || s 248 libavfilter/avf_avectorscope.c s->outpicref->height != outlink->h) { s 249 libavfilter/avf_avectorscope.c av_frame_free(&s->outpicref); s 250 libavfilter/avf_avectorscope.c s->outpicref = ff_get_video_buffer(outlink, outlink->w, outlink->h); s 251 libavfilter/avf_avectorscope.c if (!s->outpicref) { s 256 libavfilter/avf_avectorscope.c s->outpicref->sample_aspect_ratio = (AVRational){1,1}; s 258 libavfilter/avf_avectorscope.c memset(s->outpicref->data[0] + i * s->outpicref->linesize[0], 0, outlink->w * 4); s 260 libavfilter/avf_avectorscope.c s->outpicref->pts = insamples->pts; s 262 libavfilter/avf_avectorscope.c fade(s); s 311 libavfilter/avf_avectorscope.c switch (s->scale) { s 326 libavfilter/avf_avectorscope.c if (s->mirror & 1) s 329 libavfilter/avf_avectorscope.c if (s->mirror & 2) s 332 libavfilter/avf_avectorscope.c if (s->swap) s 335 libavfilter/avf_avectorscope.c if (s->mode == LISSAJOUS) { s 338 libavfilter/avf_avectorscope.c } else if (s->mode == LISSAJOUS_XY) { s 349 libavfilter/avf_avectorscope.c y = s->h - s->h * fabsf(cx + cy) * .7; s 352 libavfilter/avf_avectorscope.c if (s->draw == DOT) { s 353 libavfilter/avf_avectorscope.c draw_dot(s, x, y); s 355 libavfilter/avf_avectorscope.c draw_line(s, x, y, prev_x, prev_y); s 361 libavfilter/avf_avectorscope.c s->prev_x = x, s->prev_y = y; s 364 libavfilter/avf_avectorscope.c clone = av_frame_clone(s->outpicref); s 375 libavfilter/avf_avectorscope.c AudioVectorScopeContext *s = ctx->priv; s 381 libavfilter/avf_avectorscope.c ret = ff_inlink_consume_samples(inlink, s->nb_samples, s->nb_samples, &in); s 395 libavfilter/avf_avectorscope.c AudioVectorScopeContext *s = ctx->priv; s 397 libavfilter/avf_avectorscope.c av_frame_free(&s->outpicref); s 108 libavfilter/avf_showcqt.c static void common_uninit(ShowCQTContext *s) s 114 libavfilter/avf_showcqt.c if (s->fft_time) s 115 libavfilter/avf_showcqt.c av_log(s->ctx, level, "fft_time = %16.3f s.\n", s->fft_time * 1e-6); s 116 libavfilter/avf_showcqt.c if (s->cqt_time) s 117 libavfilter/avf_showcqt.c av_log(s->ctx, level, "cqt_time = %16.3f s.\n", s->cqt_time * 1e-6); s 118 libavfilter/avf_showcqt.c if (s->process_cqt_time) s 119 libavfilter/avf_showcqt.c av_log(s->ctx, level, "process_cqt_time = %16.3f s.\n", s->process_cqt_time * 1e-6); s 120 libavfilter/avf_showcqt.c if (s->update_sono_time) s 121 libavfilter/avf_showcqt.c av_log(s->ctx, level, "update_sono_time = %16.3f s.\n", s->update_sono_time * 1e-6); s 122 libavfilter/avf_showcqt.c if (s->alloc_time) s 123 libavfilter/avf_showcqt.c av_log(s->ctx, level, "alloc_time = %16.3f s.\n", s->alloc_time * 1e-6); s 124 libavfilter/avf_showcqt.c if (s->bar_time) s 125 libavfilter/avf_showcqt.c av_log(s->ctx, level, "bar_time = %16.3f s.\n", s->bar_time * 1e-6); s 126 libavfilter/avf_showcqt.c if (s->axis_time) s 127 libavfilter/avf_showcqt.c av_log(s->ctx, level, "axis_time = %16.3f s.\n", s->axis_time * 1e-6); s 128 libavfilter/avf_showcqt.c if (s->sono_time) s 129 libavfilter/avf_showcqt.c av_log(s->ctx, level, "sono_time = %16.3f s.\n", s->sono_time * 1e-6); s 131 libavfilter/avf_showcqt.c plot_time = s->fft_time + s->cqt_time + s->process_cqt_time + s->update_sono_time s 132 libavfilter/avf_showcqt.c + s->alloc_time + s->bar_time + s->axis_time + s->sono_time; s 134 libavfilter/avf_showcqt.c av_log(s->ctx, level, "plot_time = %16.3f s.\n", plot_time * 1e-6); s 136 libavfilter/avf_showcqt.c s->fft_time = s->cqt_time = s->process_cqt_time = s->update_sono_time s 137 libavfilter/avf_showcqt.c = s->alloc_time = s->bar_time = s->axis_time = s->sono_time = 0; s 139 libavfilter/avf_showcqt.c if (s->axis_frame && !s->axis_frame->buf[0]) { s 140 libavfilter/avf_showcqt.c av_freep(s->axis_frame->data); s 142 libavfilter/avf_showcqt.c s->axis_frame->data[k] = NULL; s 145 libavfilter/avf_showcqt.c av_frame_free(&s->axis_frame); s 146 libavfilter/avf_showcqt.c av_frame_free(&s->sono_frame); s 147 libavfilter/avf_showcqt.c av_fft_end(s->fft_ctx); s 148 libavfilter/avf_showcqt.c s->fft_ctx = NULL; s 149 libavfilter/avf_showcqt.c if (s->coeffs) s 150 libavfilter/avf_showcqt.c for (k = 0; k < s->cqt_len; k++) s 151 libavfilter/avf_showcqt.c av_freep(&s->coeffs[k].val); s 152 libavfilter/avf_showcqt.c av_freep(&s->coeffs); s 153 libavfilter/avf_showcqt.c av_freep(&s->fft_data); s 154 libavfilter/avf_showcqt.c av_freep(&s->fft_result); s 155 libavfilter/avf_showcqt.c av_freep(&s->cqt_result); s 156 libavfilter/avf_showcqt.c av_freep(&s->attack_data); s 157 libavfilter/avf_showcqt.c av_freep(&s->c_buf); s 158 libavfilter/avf_showcqt.c av_freep(&s->h_buf); s 159 libavfilter/avf_showcqt.c av_freep(&s->rcp_h_buf); s 160 libavfilter/avf_showcqt.c av_freep(&s->freq); s 161 libavfilter/avf_showcqt.c av_freep(&s->sono_v_buf); s 162 libavfilter/avf_showcqt.c av_freep(&s->bar_v_buf); s 228 libavfilter/avf_showcqt.c static int init_volume(ShowCQTContext *s) s 237 libavfilter/avf_showcqt.c s->sono_v_buf = av_malloc_array(s->cqt_len, sizeof(*s->sono_v_buf)); s 238 libavfilter/avf_showcqt.c s->bar_v_buf = av_malloc_array(s->cqt_len, sizeof(*s->bar_v_buf)); s 239 libavfilter/avf_showcqt.c if (!s->sono_v_buf || !s->bar_v_buf) s 242 libavfilter/avf_showcqt.c if ((ret = av_expr_parse(&sono, s->sono_v, sono_names, func_names, funcs, NULL, NULL, 0, s->ctx)) < 0) s 245 libavfilter/avf_showcqt.c if ((ret = av_expr_parse(&bar, s->bar_v, bar_names, func_names, funcs, NULL, NULL, 0, s->ctx)) < 0) s 248 libavfilter/avf_showcqt.c for (x = 0; x < s->cqt_len; x++) { s 249 libavfilter/avf_showcqt.c double vars[] = { s->timeclamp, s->timeclamp, s->freq[x], s->freq[x], s->freq[x], 0.0 }; s 250 libavfilter/avf_showcqt.c double vol = clip_with_log(s->ctx, "sono_v", av_expr_eval(sono, vars, NULL), 0.0, VOLUME_MAX, 0.0, x); s 252 libavfilter/avf_showcqt.c vol = clip_with_log(s->ctx, "bar_v", av_expr_eval(bar, vars, NULL), 0.0, VOLUME_MAX, 0.0, x); s 253 libavfilter/avf_showcqt.c s->bar_v_buf[x] = vol * vol; s 255 libavfilter/avf_showcqt.c vol = clip_with_log(s->ctx, "sono_v", av_expr_eval(sono, vars, NULL), 0.0, VOLUME_MAX, 0.0, x); s 256 libavfilter/avf_showcqt.c s->sono_v_buf[x] = vol * vol; s 263 libavfilter/avf_showcqt.c av_freep(&s->sono_v_buf); s 264 libavfilter/avf_showcqt.c av_freep(&s->bar_v_buf); s 297 libavfilter/avf_showcqt.c static int init_cqt(ShowCQTContext *s) s 301 libavfilter/avf_showcqt.c int rate = s->ctx->inputs[0]->sample_rate; s 305 libavfilter/avf_showcqt.c if ((ret = av_expr_parse(&expr, s->tlength, var_names, NULL, NULL, NULL, NULL, 0, s->ctx)) < 0) s 309 libavfilter/avf_showcqt.c if (!(s->coeffs = av_calloc(s->cqt_len, sizeof(*s->coeffs)))) s 312 libavfilter/avf_showcqt.c for (k = 0; k < s->cqt_len; k++) { s 313 libavfilter/avf_showcqt.c double vars[] = { s->timeclamp, s->timeclamp, s->freq[k], s->freq[k], s->freq[k] }; s 317 libavfilter/avf_showcqt.c if (s->freq[k] > 0.5 * rate) s 319 libavfilter/avf_showcqt.c tlength = clip_with_log(s->ctx, "tlength", av_expr_eval(expr, vars, NULL), s 320 libavfilter/avf_showcqt.c TLENGTH_MIN, s->timeclamp, s->timeclamp, k); s 322 libavfilter/avf_showcqt.c flen = 8.0 * s->fft_len / (tlength * rate); s 323 libavfilter/avf_showcqt.c center = s->freq[k] * s->fft_len / rate; s 325 libavfilter/avf_showcqt.c end = FFMIN(s->fft_len, floor(center + 0.5 * flen)); s 327 libavfilter/avf_showcqt.c s->coeffs[m].start = start & ~(s->cqt_align - 1); s 328 libavfilter/avf_showcqt.c s->coeffs[m].len = (end | (s->cqt_align - 1)) + 1 - s->coeffs[m].start; s 329 libavfilter/avf_showcqt.c nb_cqt_coeffs += s->coeffs[m].len; s 330 libavfilter/avf_showcqt.c if (!(s->coeffs[m].val = av_calloc(s->coeffs[m].len, sizeof(*s->coeffs[m].val)))) s 338 libavfilter/avf_showcqt.c w *= sign * (1.0 / s->fft_len); s 339 libavfilter/avf_showcqt.c s->coeffs[m].val[x - s->coeffs[m].start] = w; s 342 libavfilter/avf_showcqt.c if (s->permute_coeffs) s 343 libavfilter/avf_showcqt.c s->permute_coeffs(s->coeffs[m].val, s->coeffs[m].len); s 347 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_INFO, "nb_cqt_coeffs = %d.\n", nb_cqt_coeffs); s 352 libavfilter/avf_showcqt.c if (s->coeffs) s 353 libavfilter/avf_showcqt.c for (k = 0; k < s->cqt_len; k++) s 354 libavfilter/avf_showcqt.c av_freep(&s->coeffs[k].val); s 355 libavfilter/avf_showcqt.c av_freep(&s->coeffs); s 396 libavfilter/avf_showcqt.c static int init_axis_empty(ShowCQTContext *s) s 398 libavfilter/avf_showcqt.c if (!(s->axis_frame = alloc_frame_empty(convert_axis_pixel_format(s->format), s->width, s->axis_h))) s 403 libavfilter/avf_showcqt.c static int init_axis_from_file(ShowCQTContext *s) s 411 libavfilter/avf_showcqt.c s->axisfile, s->ctx)) < 0) s 415 libavfilter/avf_showcqt.c if (!(s->axis_frame = av_frame_alloc())) s 418 libavfilter/avf_showcqt.c if ((ret = ff_scale_image(s->axis_frame->data, s->axis_frame->linesize, s->width, s->axis_h, s 419 libavfilter/avf_showcqt.c convert_axis_pixel_format(s->format), tmp_data, tmp_linesize, tmp_w, tmp_h, s 420 libavfilter/avf_showcqt.c tmp_format, s->ctx)) < 0) s 423 libavfilter/avf_showcqt.c s->axis_frame->width = s->width; s 424 libavfilter/avf_showcqt.c s->axis_frame->height = s->axis_h; s 425 libavfilter/avf_showcqt.c s->axis_frame->format = convert_axis_pixel_format(s->format); s 430 libavfilter/avf_showcqt.c av_frame_free(&s->axis_frame); s 458 libavfilter/avf_showcqt.c static int init_axis_color(ShowCQTContext *s, AVFrame *tmp, int half) s 469 libavfilter/avf_showcqt.c if (s->basefreq != (double) BASEFREQ || s->endfreq != (double) ENDFREQ) { s 470 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_WARNING, "font axis rendering is not implemented in non-default frequency range," s 475 libavfilter/avf_showcqt.c if (s->cqt_len == 1920) s 476 libavfilter/avf_showcqt.c freq = s->freq; s 477 libavfilter/avf_showcqt.c else if (!(freq = create_freq_table(s->basefreq, s->endfreq, 1920))) s 480 libavfilter/avf_showcqt.c if ((ret = av_expr_parse(&expr, s->fontcolor, var_names, func_names, funcs, NULL, NULL, 0, s->ctx)) < 0) { s 481 libavfilter/avf_showcqt.c if (freq != s->freq) s 487 libavfilter/avf_showcqt.c double vars[] = { s->timeclamp, s->timeclamp, freq[xs], freq[xs], freq[xs] }; s 500 libavfilter/avf_showcqt.c if (freq != s->freq) s 505 libavfilter/avf_showcqt.c static int render_freetype(ShowCQTContext *s, AVFrame *tmp, char *fontfile) s 547 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_WARNING, "font is not monospace.\n"); s 578 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_WARNING, "error while loading freetype font.\n"); s 584 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_WARNING, "freetype is not available, ignoring fontfile option.\n"); s 589 libavfilter/avf_showcqt.c static int render_fontconfig(ShowCQTContext *s, AVFrame *tmp, char* font) s 607 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_ERROR, "impossible to init fontconfig.\n"); s 612 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_ERROR, "could not parse fontconfig pat.\n"); s 620 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_ERROR, "could not substitue fontconfig options.\n"); s 631 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_ERROR, "cannot find a valid font for %s.\n", font); s 636 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_ERROR, "no file path for %s\n", font); s 640 libavfilter/avf_showcqt.c ret = render_freetype(s, tmp, filename); s 648 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_WARNING, "fontconfig is not available, ignoring font option.\n"); s 679 libavfilter/avf_showcqt.c static int init_axis_from_font(ShowCQTContext *s) s 689 libavfilter/avf_showcqt.c if (!(s->axis_frame = av_frame_alloc())) s 692 libavfilter/avf_showcqt.c if (render_freetype(s, tmp, s->fontfile) < 0 && s 693 libavfilter/avf_showcqt.c render_fontconfig(s, tmp, s->font) < 0 && s 700 libavfilter/avf_showcqt.c if ((ret = init_axis_color(s, tmp, default_font)) < 0) s 703 libavfilter/avf_showcqt.c if ((ret = ff_scale_image(s->axis_frame->data, s->axis_frame->linesize, s->width, s->axis_h, s 704 libavfilter/avf_showcqt.c convert_axis_pixel_format(s->format), tmp->data, tmp->linesize, s 705 libavfilter/avf_showcqt.c width, height, AV_PIX_FMT_RGBA, s->ctx)) < 0) s 709 libavfilter/avf_showcqt.c s->axis_frame->width = s->width; s 710 libavfilter/avf_showcqt.c s->axis_frame->height = s->axis_h; s 711 libavfilter/avf_showcqt.c s->axis_frame->format = convert_axis_pixel_format(s->format); s 716 libavfilter/avf_showcqt.c av_frame_free(&s->axis_frame); s 1083 libavfilter/avf_showcqt.c static void process_cqt(ShowCQTContext *s) s 1086 libavfilter/avf_showcqt.c if (!s->sono_count) { s 1087 libavfilter/avf_showcqt.c for (x = 0; x < s->cqt_len; x++) { s 1088 libavfilter/avf_showcqt.c s->h_buf[x] = s->bar_v_buf[x] * 0.5f * (s->cqt_result[x].re + s->cqt_result[x].im); s 1090 libavfilter/avf_showcqt.c if (s->fcount > 1) { s 1091 libavfilter/avf_showcqt.c float rcp_fcount = 1.0f / s->fcount; s 1092 libavfilter/avf_showcqt.c for (x = 0; x < s->width; x++) { s 1094 libavfilter/avf_showcqt.c for (i = 0; i < s->fcount; i++) s 1095 libavfilter/avf_showcqt.c h += s->h_buf[s->fcount * x + i]; s 1096 libavfilter/avf_showcqt.c s->h_buf[x] = rcp_fcount * h; s 1099 libavfilter/avf_showcqt.c for (x = 0; x < s->width; x++) { s 1100 libavfilter/avf_showcqt.c s->h_buf[x] = calculate_gamma(s->h_buf[x], s->bar_g); s 1101 libavfilter/avf_showcqt.c s->rcp_h_buf[x] = 1.0f / (s->h_buf[x] + 0.0001f); s 1105 libavfilter/avf_showcqt.c for (x = 0; x < s->cqt_len; x++) { s 1106 libavfilter/avf_showcqt.c s->cqt_result[x].re *= s->sono_v_buf[x]; s 1107 libavfilter/avf_showcqt.c s->cqt_result[x].im *= s->sono_v_buf[x]; s 1110 libavfilter/avf_showcqt.c if (s->fcount > 1) { s 1111 libavfilter/avf_showcqt.c float rcp_fcount = 1.0f / s->fcount; s 1112 libavfilter/avf_showcqt.c for (x = 0; x < s->width; x++) { s 1114 libavfilter/avf_showcqt.c for (i = 0; i < s->fcount; i++) { s 1115 libavfilter/avf_showcqt.c result.re += s->cqt_result[s->fcount * x + i].re; s 1116 libavfilter/avf_showcqt.c result.im += s->cqt_result[s->fcount * x + i].im; s 1118 libavfilter/avf_showcqt.c s->cqt_result[x].re = rcp_fcount * result.re; s 1119 libavfilter/avf_showcqt.c s->cqt_result[x].im = rcp_fcount * result.im; s 1123 libavfilter/avf_showcqt.c if (s->format == AV_PIX_FMT_RGB24) s 1124 libavfilter/avf_showcqt.c rgb_from_cqt(s->c_buf, s->cqt_result, s->sono_g, s->width, s->cscheme_v); s 1126 libavfilter/avf_showcqt.c yuv_from_cqt(s->c_buf, s->cqt_result, s->sono_g, s->width, s->cmatrix, s->cscheme_v); s 1132 libavfilter/avf_showcqt.c ShowCQTContext *s = ctx->priv; s 1142 libavfilter/avf_showcqt.c memcpy(s->fft_result, s->fft_data, s->fft_len * sizeof(*s->fft_data)); s 1143 libavfilter/avf_showcqt.c if (s->attack_data) { s 1145 libavfilter/avf_showcqt.c for (k = 0; k < s->remaining_fill_max; k++) { s 1146 libavfilter/avf_showcqt.c s->fft_result[s->fft_len/2+k].re *= s->attack_data[k]; s 1147 libavfilter/avf_showcqt.c s->fft_result[s->fft_len/2+k].im *= s->attack_data[k]; s 1151 libavfilter/avf_showcqt.c av_fft_permute(s->fft_ctx, s->fft_result); s 1152 libavfilter/avf_showcqt.c av_fft_calc(s->fft_ctx, s->fft_result); s 1153 libavfilter/avf_showcqt.c s->fft_result[s->fft_len] = s->fft_result[0]; s 1154 libavfilter/avf_showcqt.c UPDATE_TIME(s->fft_time); s 1156 libavfilter/avf_showcqt.c s->cqt_calc(s->cqt_result, s->fft_result, s->coeffs, s->cqt_len, s->fft_len); s 1157 libavfilter/avf_showcqt.c UPDATE_TIME(s->cqt_time); s 1159 libavfilter/avf_showcqt.c process_cqt(s); s 1160 libavfilter/avf_showcqt.c UPDATE_TIME(s->process_cqt_time); s 1162 libavfilter/avf_showcqt.c if (s->sono_h) { s 1163 libavfilter/avf_showcqt.c s->update_sono(s->sono_frame, s->c_buf, s->sono_idx); s 1164 libavfilter/avf_showcqt.c UPDATE_TIME(s->update_sono_time); s 1167 libavfilter/avf_showcqt.c if (!s->sono_count) { s 1173 libavfilter/avf_showcqt.c out->colorspace = s->csp; s 1174 libavfilter/avf_showcqt.c UPDATE_TIME(s->alloc_time); s 1176 libavfilter/avf_showcqt.c if (s->bar_h) { s 1177 libavfilter/avf_showcqt.c s->draw_bar(out, s->h_buf, s->rcp_h_buf, s->c_buf, s->bar_h, s->bar_t); s 1178 libavfilter/avf_showcqt.c UPDATE_TIME(s->bar_time); s 1181 libavfilter/avf_showcqt.c if (s->axis_h) { s 1182 libavfilter/avf_showcqt.c s->draw_axis(out, s->axis_frame, s->c_buf, s->bar_h); s 1183 libavfilter/avf_showcqt.c UPDATE_TIME(s->axis_time); s 1186 libavfilter/avf_showcqt.c if (s->sono_h) { s 1187 libavfilter/avf_showcqt.c s->draw_sono(out, s->sono_frame, s->bar_h + s->axis_h, s->sono_idx); s 1188 libavfilter/avf_showcqt.c UPDATE_TIME(s->sono_time); s 1190 libavfilter/avf_showcqt.c out->pts = s->next_pts; s 1191 libavfilter/avf_showcqt.c s->next_pts += PTS_STEP; s 1193 libavfilter/avf_showcqt.c s->sono_count = (s->sono_count + 1) % s->count; s 1194 libavfilter/avf_showcqt.c if (s->sono_h) s 1195 libavfilter/avf_showcqt.c s->sono_idx = (s->sono_idx + s->sono_h - 1) % s->sono_h; s 1199 libavfilter/avf_showcqt.c static void init_colormatrix(ShowCQTContext *s) s 1204 libavfilter/avf_showcqt.c switch (s->csp) { s 1206 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_WARNING, "unsupported colorspace, setting it to unspecified.\n"); s 1207 libavfilter/avf_showcqt.c s->csp = AVCOL_SPC_UNSPECIFIED; s 1223 libavfilter/avf_showcqt.c s->cmatrix[0][0] = 219.0 * kr; s 1224 libavfilter/avf_showcqt.c s->cmatrix[0][1] = 219.0 * kg; s 1225 libavfilter/avf_showcqt.c s->cmatrix[0][2] = 219.0 * kb; s 1226 libavfilter/avf_showcqt.c s->cmatrix[1][0] = -112.0 * kr / (1.0 - kb); s 1227 libavfilter/avf_showcqt.c s->cmatrix[1][1] = -112.0 * kg / (1.0 - kb); s 1228 libavfilter/avf_showcqt.c s->cmatrix[1][2] = 112.0; s 1229 libavfilter/avf_showcqt.c s->cmatrix[2][0] = 112.0; s 1230 libavfilter/avf_showcqt.c s->cmatrix[2][1] = -112.0 * kg / (1.0 - kr); s 1231 libavfilter/avf_showcqt.c s->cmatrix[2][2] = -112.0 * kb / (1.0 - kr); s 1234 libavfilter/avf_showcqt.c static int init_cscheme(ShowCQTContext *s) s 1239 libavfilter/avf_showcqt.c if (sscanf(s->cscheme, " %f | %f | %f | %f | %f | %f %1s", &s->cscheme_v[0], s 1240 libavfilter/avf_showcqt.c &s->cscheme_v[1], &s->cscheme_v[2], &s->cscheme_v[3], &s->cscheme_v[4], s 1241 libavfilter/avf_showcqt.c &s->cscheme_v[5], tail) != 6) s 1245 libavfilter/avf_showcqt.c if (isnan(s->cscheme_v[k]) || s->cscheme_v[k] < 0.0f || s->cscheme_v[k] > 1.0f) s 1251 libavfilter/avf_showcqt.c av_log(s->ctx, AV_LOG_ERROR, "invalid cscheme.\n"); s 1258 libavfilter/avf_showcqt.c ShowCQTContext *s = ctx->priv; s 1259 libavfilter/avf_showcqt.c s->ctx = ctx; s 1261 libavfilter/avf_showcqt.c if (!s->fullhd) { s 1263 libavfilter/avf_showcqt.c if (s->width != 1920 || s->height != 1080) { s 1267 libavfilter/avf_showcqt.c s->width /= 2; s 1268 libavfilter/avf_showcqt.c s->height /= 2; s 1269 libavfilter/avf_showcqt.c s->fullhd = 1; s 1272 libavfilter/avf_showcqt.c if (s->axis_h < 0) { s 1273 libavfilter/avf_showcqt.c s->axis_h = s->width / 60; s 1274 libavfilter/avf_showcqt.c if (s->axis_h & 1) s 1275 libavfilter/avf_showcqt.c s->axis_h++; s 1276 libavfilter/avf_showcqt.c if (s->bar_h >= 0 && s->sono_h >= 0) s 1277 libavfilter/avf_showcqt.c s->axis_h = s->height - s->bar_h - s->sono_h; s 1278 libavfilter/avf_showcqt.c if (s->bar_h >= 0 && s->sono_h < 0) s 1279 libavfilter/avf_showcqt.c s->axis_h = FFMIN(s->axis_h, s->height - s->bar_h); s 1280 libavfilter/avf_showcqt.c if (s->bar_h < 0 && s->sono_h >= 0) s 1281 libavfilter/avf_showcqt.c s->axis_h = FFMIN(s->axis_h, s->height - s->sono_h); s 1284 libavfilter/avf_showcqt.c if (s->bar_h < 0) { s 1285 libavfilter/avf_showcqt.c s->bar_h = (s->height - s->axis_h) / 2; s 1286 libavfilter/avf_showcqt.c if (s->bar_h & 1) s 1287 libavfilter/avf_showcqt.c s->bar_h--; s 1288 libavfilter/avf_showcqt.c if (s->sono_h >= 0) s 1289 libavfilter/avf_showcqt.c s->bar_h = s->height - s->sono_h - s->axis_h; s 1292 libavfilter/avf_showcqt.c if (s->sono_h < 0) s 1293 libavfilter/avf_showcqt.c s->sono_h = s->height - s->axis_h - s->bar_h; s 1295 libavfilter/avf_showcqt.c if ((s->width & 1) || (s->height & 1) || (s->bar_h & 1) || (s->axis_h & 1) || (s->sono_h & 1) || s 1296 libavfilter/avf_showcqt.c (s->bar_h < 0) || (s->axis_h < 0) || (s->sono_h < 0) || (s->bar_h > s->height) || s 1297 libavfilter/avf_showcqt.c (s->axis_h > s->height) || (s->sono_h > s->height) || (s->bar_h + s->axis_h + s->sono_h != s->height)) { s 1302 libavfilter/avf_showcqt.c if (!s->fcount) { s 1304 libavfilter/avf_showcqt.c s->fcount++; s 1305 libavfilter/avf_showcqt.c } while(s->fcount * s->width < 1920 && s->fcount < 10); s 1308 libavfilter/avf_showcqt.c init_colormatrix(s); s 1310 libavfilter/avf_showcqt.c return init_cscheme(s); s 1357 libavfilter/avf_showcqt.c ShowCQTContext *s = ctx->priv; s 1360 libavfilter/avf_showcqt.c common_uninit(s); s 1362 libavfilter/avf_showcqt.c outlink->w = s->width; s 1363 libavfilter/avf_showcqt.c outlink->h = s->height; s 1364 libavfilter/avf_showcqt.c s->format = outlink->format; s 1366 libavfilter/avf_showcqt.c outlink->frame_rate = s->rate; s 1367 libavfilter/avf_showcqt.c outlink->time_base = av_mul_q(av_inv_q(s->rate), av_make_q(1, PTS_STEP)); s 1369 libavfilter/avf_showcqt.c s->width, s->height, av_get_pix_fmt_name(s->format), s->rate.num, s->rate.den, s 1370 libavfilter/avf_showcqt.c s->bar_h, s->axis_h, s->sono_h); s 1372 libavfilter/avf_showcqt.c s->cqt_len = s->width * s->fcount; s 1373 libavfilter/avf_showcqt.c if (!(s->freq = create_freq_table(s->basefreq, s->endfreq, s->cqt_len))) s 1376 libavfilter/avf_showcqt.c if ((ret = init_volume(s)) < 0) s 1379 libavfilter/avf_showcqt.c s->fft_bits = FFMAX(ceil(log2(inlink->sample_rate * s->timeclamp)), 4); s 1380 libavfilter/avf_showcqt.c s->fft_len = 1 << s->fft_bits; s 1381 libavfilter/avf_showcqt.c av_log(ctx, AV_LOG_INFO, "fft_len = %d, cqt_len = %d.\n", s->fft_len, s->cqt_len); s 1383 libavfilter/avf_showcqt.c s->fft_ctx = av_fft_init(s->fft_bits, 0); s 1384 libavfilter/avf_showcqt.c s->fft_data = av_calloc(s->fft_len, sizeof(*s->fft_data)); s 1385 libavfilter/avf_showcqt.c s->fft_result = av_calloc(s->fft_len + 64, sizeof(*s->fft_result)); s 1386 libavfilter/avf_showcqt.c s->cqt_result = av_malloc_array(s->cqt_len, sizeof(*s->cqt_result)); s 1387 libavfilter/avf_showcqt.c if (!s->fft_ctx || !s->fft_data || !s->fft_result || !s->cqt_result) s 1390 libavfilter/avf_showcqt.c s->remaining_fill_max = s->fft_len / 2; s 1391 libavfilter/avf_showcqt.c if (s->attack > 0.0) { s 1394 libavfilter/avf_showcqt.c s->remaining_fill_max = FFMIN(s->remaining_fill_max, ceil(inlink->sample_rate * s->attack)); s 1395 libavfilter/avf_showcqt.c s->attack_data = av_malloc_array(s->remaining_fill_max, sizeof(*s->attack_data)); s 1396 libavfilter/avf_showcqt.c if (!s->attack_data) s 1399 libavfilter/avf_showcqt.c for (k = 0; k < s->remaining_fill_max; k++) { s 1400 libavfilter/avf_showcqt.c double y = M_PI * k / (inlink->sample_rate * s->attack); s 1401 libavfilter/avf_showcqt.c s->attack_data[k] = 0.355768 + 0.487396 * cos(y) + 0.144232 * cos(2*y) + 0.012604 * cos(3*y); s 1405 libavfilter/avf_showcqt.c s->cqt_align = 1; s 1406 libavfilter/avf_showcqt.c s->cqt_calc = cqt_calc; s 1407 libavfilter/avf_showcqt.c s->permute_coeffs = NULL; s 1408 libavfilter/avf_showcqt.c s->draw_sono = draw_sono; s 1409 libavfilter/avf_showcqt.c if (s->format == AV_PIX_FMT_RGB24) { s 1410 libavfilter/avf_showcqt.c s->draw_bar = draw_bar_rgb; s 1411 libavfilter/avf_showcqt.c s->draw_axis = draw_axis_rgb; s 1412 libavfilter/avf_showcqt.c s->update_sono = update_sono_rgb; s 1414 libavfilter/avf_showcqt.c s->draw_bar = draw_bar_yuv; s 1415 libavfilter/avf_showcqt.c s->draw_axis = draw_axis_yuv; s 1416 libavfilter/avf_showcqt.c s->update_sono = update_sono_yuv; s 1420 libavfilter/avf_showcqt.c ff_showcqt_init_x86(s); s 1422 libavfilter/avf_showcqt.c if ((ret = init_cqt(s)) < 0) s 1425 libavfilter/avf_showcqt.c if (s->axis_h) { s 1426 libavfilter/avf_showcqt.c if (!s->axis) { s 1427 libavfilter/avf_showcqt.c if ((ret = init_axis_empty(s)) < 0) s 1429 libavfilter/avf_showcqt.c } else if (s->axisfile) { s 1430 libavfilter/avf_showcqt.c if (init_axis_from_file(s) < 0) { s 1432 libavfilter/avf_showcqt.c if (init_axis_from_font(s) < 0) { s 1434 libavfilter/avf_showcqt.c if ((ret = init_axis_empty(s)) < 0) s 1439 libavfilter/avf_showcqt.c if (init_axis_from_font(s) < 0) { s 1441 libavfilter/avf_showcqt.c if ((ret = init_axis_empty(s)) < 0) s 1447 libavfilter/avf_showcqt.c if (s->sono_h) { s 1448 libavfilter/avf_showcqt.c s->sono_frame = alloc_frame_empty((outlink->format == AV_PIX_FMT_YUV420P) ? s 1449 libavfilter/avf_showcqt.c AV_PIX_FMT_YUV422P : outlink->format, s->width, s->sono_h); s 1450 libavfilter/avf_showcqt.c if (!s->sono_frame) s 1454 libavfilter/avf_showcqt.c s->h_buf = av_malloc_array(s->cqt_len, sizeof (*s->h_buf)); s 1455 libavfilter/avf_showcqt.c s->rcp_h_buf = av_malloc_array(s->width, sizeof(*s->rcp_h_buf)); s 1456 libavfilter/avf_showcqt.c s->c_buf = av_malloc_array(s->width, sizeof(*s->c_buf)); s 1457 libavfilter/avf_showcqt.c if (!s->h_buf || !s->rcp_h_buf || !s->c_buf) s 1460 libavfilter/avf_showcqt.c s->sono_count = 0; s 1461 libavfilter/avf_showcqt.c s->next_pts = 0; s 1462 libavfilter/avf_showcqt.c s->sono_idx = 0; s 1463 libavfilter/avf_showcqt.c s->remaining_fill = s->remaining_fill_max; s 1464 libavfilter/avf_showcqt.c s->remaining_frac = 0; s 1465 libavfilter/avf_showcqt.c s->step_frac = av_div_q(av_make_q(inlink->sample_rate, s->count) , s->rate); s 1466 libavfilter/avf_showcqt.c s->step = (int)(s->step_frac.num / s->step_frac.den); s 1467 libavfilter/avf_showcqt.c s->step_frac.num %= s->step_frac.den; s 1468 libavfilter/avf_showcqt.c if (s->step_frac.num) { s 1470 libavfilter/avf_showcqt.c inlink->sample_rate, s->step, s->step_frac.num, s->step_frac.den); s 1474 libavfilter/avf_showcqt.c inlink->sample_rate, s->step); s 1485 libavfilter/avf_showcqt.c ShowCQTContext *s = ctx->priv; s 1491 libavfilter/avf_showcqt.c while (s->remaining_fill < s->remaining_fill_max) { s 1492 libavfilter/avf_showcqt.c memset(&s->fft_data[s->fft_len/2 + s->remaining_fill_max - s->remaining_fill], 0, sizeof(*s->fft_data) * s->remaining_fill); s 1497 libavfilter/avf_showcqt.c step = s->step + (s->step_frac.num + s->remaining_frac) / s->step_frac.den; s 1498 libavfilter/avf_showcqt.c s->remaining_frac = (s->step_frac.num + s->remaining_frac) % s->step_frac.den; s 1499 libavfilter/avf_showcqt.c for (x = 0; x < (s->fft_len/2 + s->remaining_fill_max - step); x++) s 1500 libavfilter/avf_showcqt.c s->fft_data[x] = s->fft_data[x+step]; s 1501 libavfilter/avf_showcqt.c s->remaining_fill += step; s 1514 libavfilter/avf_showcqt.c j = s->fft_len/2 + s->remaining_fill_max - s->remaining_fill; s 1515 libavfilter/avf_showcqt.c if (remaining >= s->remaining_fill) { s 1516 libavfilter/avf_showcqt.c for (m = 0; m < s->remaining_fill; m++) { s 1517 libavfilter/avf_showcqt.c s->fft_data[j+m].re = audio_data[2*(i+m)]; s 1518 libavfilter/avf_showcqt.c s->fft_data[j+m].im = audio_data[2*(i+m)+1]; s 1525 libavfilter/avf_showcqt.c remaining -= s->remaining_fill; s 1528 libavfilter/avf_showcqt.c pts += insamples->nb_samples - remaining - s->remaining_fill_max; s 1535 libavfilter/avf_showcqt.c s->next_pts = pts + PTS_STEP; s 1544 libavfilter/avf_showcqt.c step = s->step + (s->step_frac.num + s->remaining_frac) / s->step_frac.den; s 1545 libavfilter/avf_showcqt.c s->remaining_frac = (s->step_frac.num + s->remaining_frac) % s->step_frac.den; s 1546 libavfilter/avf_showcqt.c for (m = 0; m < s->fft_len/2 + s->remaining_fill_max - step; m++) s 1547 libavfilter/avf_showcqt.c s->fft_data[m] = s->fft_data[m+step]; s 1548 libavfilter/avf_showcqt.c s->remaining_fill = step; s 1551 libavfilter/avf_showcqt.c s->fft_data[j+m].re = audio_data[2*(i+m)]; s 1552 libavfilter/avf_showcqt.c s->fft_data[j+m].im = audio_data[2*(i+m)+1]; s 1554 libavfilter/avf_showcqt.c s->remaining_fill -= remaining; s 125 libavfilter/avf_showcqt.h void ff_showcqt_init_x86(ShowCQTContext *s); s 156 libavfilter/avf_showfreqs.c ShowFreqsContext *s = ctx->priv; s 158 libavfilter/avf_showfreqs.c s->pts = AV_NOPTS_VALUE; s 167 libavfilter/avf_showfreqs.c ShowFreqsContext *s = ctx->priv; s 171 libavfilter/avf_showfreqs.c s->fft_bits = av_log2(s->fft_size); s 172 libavfilter/avf_showfreqs.c s->nb_freq = 1 << (s->fft_bits - 1); s 173 libavfilter/avf_showfreqs.c s->win_size = s->nb_freq << 1; s 174 libavfilter/avf_showfreqs.c av_audio_fifo_free(s->fifo); s 175 libavfilter/avf_showfreqs.c av_fft_end(s->fft); s 176 libavfilter/avf_showfreqs.c s->fft = av_fft_init(s->fft_bits, 0); s 177 libavfilter/avf_showfreqs.c if (!s->fft) { s 186 libavfilter/avf_showfreqs.c for (i = 0; i < s->nb_channels; i++) { s 187 libavfilter/avf_showfreqs.c av_freep(&s->fft_data[i]); s 188 libavfilter/avf_showfreqs.c av_freep(&s->avg_data[i]); s 190 libavfilter/avf_showfreqs.c av_freep(&s->fft_data); s 191 libavfilter/avf_showfreqs.c av_freep(&s->avg_data); s 192 libavfilter/avf_showfreqs.c s->nb_channels = inlink->channels; s 194 libavfilter/avf_showfreqs.c s->fft_data = av_calloc(s->nb_channels, sizeof(*s->fft_data)); s 195 libavfilter/avf_showfreqs.c if (!s->fft_data) s 197 libavfilter/avf_showfreqs.c s->avg_data = av_calloc(s->nb_channels, sizeof(*s->avg_data)); s 198 libavfilter/avf_showfreqs.c if (!s->avg_data) s 200 libavfilter/avf_showfreqs.c for (i = 0; i < s->nb_channels; i++) { s 201 libavfilter/avf_showfreqs.c s->fft_data[i] = av_calloc(s->win_size, sizeof(**s->fft_data)); s 202 libavfilter/avf_showfreqs.c s->avg_data[i] = av_calloc(s->nb_freq, sizeof(**s->avg_data)); s 203 libavfilter/avf_showfreqs.c if (!s->fft_data[i] || !s->avg_data[i]) s 208 libavfilter/avf_showfreqs.c s->window_func_lut = av_realloc_f(s->window_func_lut, s->win_size, s 209 libavfilter/avf_showfreqs.c sizeof(*s->window_func_lut)); s 210 libavfilter/avf_showfreqs.c if (!s->window_func_lut) s 212 libavfilter/avf_showfreqs.c generate_window_func(s->window_func_lut, s->win_size, s->win_func, &overlap); s 213 libavfilter/avf_showfreqs.c if (s->overlap == 1.) s 214 libavfilter/avf_showfreqs.c s->overlap = overlap; s 215 libavfilter/avf_showfreqs.c s->hop_size = (1. - s->overlap) * s->win_size; s 216 libavfilter/avf_showfreqs.c if (s->hop_size < 1) { s 217 libavfilter/avf_showfreqs.c av_log(ctx, AV_LOG_ERROR, "overlap %f too big\n", s->overlap); s 221 libavfilter/avf_showfreqs.c for (s->scale = 0, i = 0; i < s->win_size; i++) { s 222 libavfilter/avf_showfreqs.c s->scale += s->window_func_lut[i] * s->window_func_lut[i]; s 225 libavfilter/avf_showfreqs.c outlink->frame_rate = av_make_q(inlink->sample_rate, s->win_size * (1.-s->overlap)); s 227 libavfilter/avf_showfreqs.c outlink->w = s->w; s 228 libavfilter/avf_showfreqs.c outlink->h = s->h; s 230 libavfilter/avf_showfreqs.c s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->win_size); s 231 libavfilter/avf_showfreqs.c if (!s->fifo) s 247 libavfilter/avf_showfreqs.c static int get_sx(ShowFreqsContext *s, int f) s 249 libavfilter/avf_showfreqs.c switch (s->fscale) { s 251 libavfilter/avf_showfreqs.c return (s->w/(float)s->nb_freq)*f; s 253 libavfilter/avf_showfreqs.c return s->w-pow(s->w, (s->nb_freq-f-1)/(s->nb_freq-1.)); s 255 libavfilter/avf_showfreqs.c return pow(s->w, f/(s->nb_freq-1.)); s 261 libavfilter/avf_showfreqs.c static float get_bsize(ShowFreqsContext *s, int f) s 263 libavfilter/avf_showfreqs.c switch (s->fscale) { s 265 libavfilter/avf_showfreqs.c return s->w/(float)s->nb_freq; s 267 libavfilter/avf_showfreqs.c return pow(s->w, (s->nb_freq-f-1)/(s->nb_freq-1.))- s 268 libavfilter/avf_showfreqs.c pow(s->w, (s->nb_freq-f-2)/(s->nb_freq-1.)); s 270 libavfilter/avf_showfreqs.c return pow(s->w, (f+1)/(s->nb_freq-1.))- s 271 libavfilter/avf_showfreqs.c pow(s->w, f /(s->nb_freq-1.)); s 277 libavfilter/avf_showfreqs.c static inline void plot_freq(ShowFreqsContext *s, int ch, s 281 libavfilter/avf_showfreqs.c const int w = s->w; s 282 libavfilter/avf_showfreqs.c const float min = s->minamp; s 283 libavfilter/avf_showfreqs.c const float avg = s->avg_data[ch][f]; s 284 libavfilter/avf_showfreqs.c const float bsize = get_bsize(s, f); s 285 libavfilter/avf_showfreqs.c const int sx = get_sx(s, f); s 289 libavfilter/avf_showfreqs.c switch(s->ascale) { s 304 libavfilter/avf_showfreqs.c switch (s->cmode) { s 309 libavfilter/avf_showfreqs.c end = (outlink->h / s->nb_channels) * (ch + 1); s 310 libavfilter/avf_showfreqs.c y = (outlink->h / s->nb_channels) * ch + a * (outlink->h / s->nb_channels) - 1; s 318 libavfilter/avf_showfreqs.c switch (s->avg) { s 320 libavfilter/avf_showfreqs.c y = s->avg_data[ch][f] = !outlink->frame_count_in ? y : FFMIN(avg, y); s 325 libavfilter/avf_showfreqs.c s->avg_data[ch][f] = avg + y * (y - avg) / (FFMIN(outlink->frame_count_in + 1, s->avg) * y); s 326 libavfilter/avf_showfreqs.c y = s->avg_data[ch][f]; s 330 libavfilter/avf_showfreqs.c switch(s->mode) { s 364 libavfilter/avf_showfreqs.c ShowFreqsContext *s = ctx->priv; s 365 libavfilter/avf_showfreqs.c const int win_size = s->win_size; s 378 libavfilter/avf_showfreqs.c for (ch = 0; ch < s->nb_channels; ch++) { s 382 libavfilter/avf_showfreqs.c s->fft_data[ch][n].re = p[n] * s->window_func_lut[n]; s 383 libavfilter/avf_showfreqs.c s->fft_data[ch][n].im = 0; s 386 libavfilter/avf_showfreqs.c s->fft_data[ch][n].re = 0; s 387 libavfilter/avf_showfreqs.c s->fft_data[ch][n].im = 0; s 392 libavfilter/avf_showfreqs.c for (ch = 0; ch < s->nb_channels; ch++) { s 393 libavfilter/avf_showfreqs.c av_fft_permute(s->fft, s->fft_data[ch]); s 394 libavfilter/avf_showfreqs.c av_fft_calc(s->fft, s->fft_data[ch]); s 397 libavfilter/avf_showfreqs.c #define RE(x, ch) s->fft_data[ch][x].re s 398 libavfilter/avf_showfreqs.c #define IM(x, ch) s->fft_data[ch][x].im s 401 libavfilter/avf_showfreqs.c colors = av_strdup(s->colors); s 407 libavfilter/avf_showfreqs.c for (ch = 0; ch < s->nb_channels; ch++) { s 416 libavfilter/avf_showfreqs.c a = av_clipd(M(RE(0, ch), 0) / s->scale, 0, 1); s 417 libavfilter/avf_showfreqs.c plot_freq(s, ch, a, 0, fg, &prev_y, out, outlink); s 419 libavfilter/avf_showfreqs.c for (f = 1; f < s->nb_freq; f++) { s 420 libavfilter/avf_showfreqs.c a = av_clipd(M(RE(f, ch), IM(f, ch)) / s->scale, 0, 1); s 422 libavfilter/avf_showfreqs.c plot_freq(s, ch, a, f, fg, &prev_y, out, outlink); s 435 libavfilter/avf_showfreqs.c ShowFreqsContext *s = ctx->priv; s 439 libavfilter/avf_showfreqs.c fin = ff_get_audio_buffer(inlink, s->win_size); s 445 libavfilter/avf_showfreqs.c fin->pts = s->pts; s 446 libavfilter/avf_showfreqs.c s->pts += s->hop_size; s 447 libavfilter/avf_showfreqs.c ret = av_audio_fifo_peek(s->fifo, (void **)fin->extended_data, s->win_size); s 453 libavfilter/avf_showfreqs.c av_audio_fifo_drain(s->fifo, s->hop_size); s 464 libavfilter/avf_showfreqs.c ShowFreqsContext *s = ctx->priv; s 470 libavfilter/avf_showfreqs.c if (av_audio_fifo_size(s->fifo) < s->win_size) s 471 libavfilter/avf_showfreqs.c ret = ff_inlink_consume_samples(inlink, s->win_size, s->win_size, &in); s 475 libavfilter/avf_showfreqs.c av_audio_fifo_write(s->fifo, (void **)in->extended_data, in->nb_samples); s 476 libavfilter/avf_showfreqs.c if (s->pts == AV_NOPTS_VALUE) s 477 libavfilter/avf_showfreqs.c s->pts = in->pts; s 481 libavfilter/avf_showfreqs.c if (av_audio_fifo_size(s->fifo) >= s->win_size) { s 495 libavfilter/avf_showfreqs.c ShowFreqsContext *s = ctx->priv; s 498 libavfilter/avf_showfreqs.c av_fft_end(s->fft); s 499 libavfilter/avf_showfreqs.c for (i = 0; i < s->nb_channels; i++) { s 500 libavfilter/avf_showfreqs.c if (s->fft_data) s 501 libavfilter/avf_showfreqs.c av_freep(&s->fft_data[i]); s 502 libavfilter/avf_showfreqs.c if (s->avg_data) s 503 libavfilter/avf_showfreqs.c av_freep(&s->avg_data[i]); s 505 libavfilter/avf_showfreqs.c av_freep(&s->fft_data); s 506 libavfilter/avf_showfreqs.c av_freep(&s->avg_data); s 507 libavfilter/avf_showfreqs.c av_freep(&s->window_func_lut); s 508 libavfilter/avf_showfreqs.c av_audio_fifo_free(s->fifo); s 93 libavfilter/avf_showspatial.c ShowSpatialContext *s = ctx->priv; s 97 libavfilter/avf_showspatial.c av_fft_end(s->fft[i]); s 99 libavfilter/avf_showspatial.c av_fft_end(s->ifft[i]); s 101 libavfilter/avf_showspatial.c av_freep(&s->fft_data[i]); s 102 libavfilter/avf_showspatial.c av_freep(&s->window_func_lut); s 103 libavfilter/avf_showspatial.c av_audio_fifo_free(s->fifo); s 135 libavfilter/avf_showspatial.c ShowSpatialContext *s = ctx->priv; s 136 libavfilter/avf_showspatial.c const float *window_func_lut = s->window_func_lut; s 142 libavfilter/avf_showspatial.c s->fft_data[ch][n].re = p[n] * window_func_lut[n]; s 143 libavfilter/avf_showspatial.c s->fft_data[ch][n].im = 0; s 146 libavfilter/avf_showspatial.c av_fft_permute(s->fft[ch], s->fft_data[ch]); s 147 libavfilter/avf_showspatial.c av_fft_calc(s->fft[ch], s->fft_data[ch]); s 156 libavfilter/avf_showspatial.c ShowSpatialContext *s = ctx->priv; s 160 libavfilter/avf_showspatial.c outlink->w = s->w; s 161 libavfilter/avf_showspatial.c outlink->h = s->h; s 164 libavfilter/avf_showspatial.c s->buf_size = 1 << av_log2(s->win_size); s 165 libavfilter/avf_showspatial.c s->win_size = s->buf_size; s 166 libavfilter/avf_showspatial.c fft_bits = av_log2(s->win_size); s 169 libavfilter/avf_showspatial.c if (fft_bits != s->fft_bits) { s 170 libavfilter/avf_showspatial.c s->fft_bits = fft_bits; s 176 libavfilter/avf_showspatial.c av_fft_end(s->fft[i]); s 177 libavfilter/avf_showspatial.c av_freep(&s->fft_data[i]); s 180 libavfilter/avf_showspatial.c s->fft[i] = av_fft_init(fft_bits, 0); s 181 libavfilter/avf_showspatial.c if (!s->fft[i]) { s 189 libavfilter/avf_showspatial.c s->fft_data[i] = av_calloc(s->buf_size, sizeof(**s->fft_data)); s 190 libavfilter/avf_showspatial.c if (!s->fft_data[i]) s 195 libavfilter/avf_showspatial.c s->window_func_lut = s 196 libavfilter/avf_showspatial.c av_realloc_f(s->window_func_lut, s->win_size, s 197 libavfilter/avf_showspatial.c sizeof(*s->window_func_lut)); s 198 libavfilter/avf_showspatial.c if (!s->window_func_lut) s 200 libavfilter/avf_showspatial.c generate_window_func(s->window_func_lut, s->win_size, s->win_func, &overlap); s 201 libavfilter/avf_showspatial.c if (s->overlap == 1) s 202 libavfilter/avf_showspatial.c s->overlap = overlap; s 204 libavfilter/avf_showspatial.c s->hop_size = (1.f - s->overlap) * s->win_size; s 205 libavfilter/avf_showspatial.c if (s->hop_size < 1) { s 206 libavfilter/avf_showspatial.c av_log(ctx, AV_LOG_ERROR, "overlap %f too big\n", s->overlap); s 213 libavfilter/avf_showspatial.c av_audio_fifo_free(s->fifo); s 214 libavfilter/avf_showspatial.c s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->win_size); s 215 libavfilter/avf_showspatial.c if (!s->fifo) s 220 libavfilter/avf_showspatial.c #define RE(y, ch) s->fft_data[ch][y].re s 221 libavfilter/avf_showspatial.c #define IM(y, ch) s->fft_data[ch][y].im s 236 libavfilter/avf_showspatial.c ShowSpatialContext *s = ctx->priv; s 238 libavfilter/avf_showspatial.c int h = s->h - 2; s 239 libavfilter/avf_showspatial.c int w = s->w - 2; s 240 libavfilter/avf_showspatial.c int z = s->win_size / 2; s 285 libavfilter/avf_showspatial.c ShowSpatialContext *s = ctx->priv; s 290 libavfilter/avf_showspatial.c if (av_audio_fifo_size(s->fifo) < s->win_size) { s 297 libavfilter/avf_showspatial.c s->pts = frame->pts; s 298 libavfilter/avf_showspatial.c s->consumed = 0; s 300 libavfilter/avf_showspatial.c av_audio_fifo_write(s->fifo, (void **)frame->extended_data, frame->nb_samples); s 305 libavfilter/avf_showspatial.c if (av_audio_fifo_size(s->fifo) >= s->win_size) { s 306 libavfilter/avf_showspatial.c AVFrame *fin = ff_get_audio_buffer(inlink, s->win_size); s 310 libavfilter/avf_showspatial.c fin->pts = s->pts + s->consumed; s 311 libavfilter/avf_showspatial.c s->consumed += s->hop_size; s 312 libavfilter/avf_showspatial.c ret = av_audio_fifo_peek(s->fifo, (void **)fin->extended_data, s 313 libavfilter/avf_showspatial.c FFMIN(s->win_size, av_audio_fifo_size(s->fifo))); s 319 libavfilter/avf_showspatial.c av_assert0(fin->nb_samples == s->win_size); s 326 libavfilter/avf_showspatial.c av_audio_fifo_drain(s->fifo, s->hop_size); s 332 libavfilter/avf_showspatial.c if (ff_outlink_frame_wanted(outlink) && av_audio_fifo_size(s->fifo) < s->win_size) { s 337 libavfilter/avf_showspatial.c if (av_audio_fifo_size(s->fifo) >= s->win_size) { s 302 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 305 libavfilter/avf_showspectrum.c av_freep(&s->combine_buffer); s 306 libavfilter/avf_showspectrum.c if (s->fft) { s 307 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) s 308 libavfilter/avf_showspectrum.c av_fft_end(s->fft[i]); s 310 libavfilter/avf_showspectrum.c av_freep(&s->fft); s 311 libavfilter/avf_showspectrum.c if (s->ifft) { s 312 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) s 313 libavfilter/avf_showspectrum.c av_fft_end(s->ifft[i]); s 315 libavfilter/avf_showspectrum.c av_freep(&s->ifft); s 316 libavfilter/avf_showspectrum.c if (s->fft_data) { s 317 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) s 318 libavfilter/avf_showspectrum.c av_freep(&s->fft_data[i]); s 320 libavfilter/avf_showspectrum.c av_freep(&s->fft_data); s 321 libavfilter/avf_showspectrum.c if (s->fft_scratch) { s 322 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) s 323 libavfilter/avf_showspectrum.c av_freep(&s->fft_scratch[i]); s 325 libavfilter/avf_showspectrum.c av_freep(&s->fft_scratch); s 326 libavfilter/avf_showspectrum.c if (s->color_buffer) { s 327 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) s 328 libavfilter/avf_showspectrum.c av_freep(&s->color_buffer[i]); s 330 libavfilter/avf_showspectrum.c av_freep(&s->color_buffer); s 331 libavfilter/avf_showspectrum.c av_freep(&s->window_func_lut); s 332 libavfilter/avf_showspectrum.c if (s->magnitudes) { s 333 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) s 334 libavfilter/avf_showspectrum.c av_freep(&s->magnitudes[i]); s 336 libavfilter/avf_showspectrum.c av_freep(&s->magnitudes); s 337 libavfilter/avf_showspectrum.c av_frame_free(&s->outpicref); s 338 libavfilter/avf_showspectrum.c av_audio_fifo_free(s->fifo); s 339 libavfilter/avf_showspectrum.c if (s->phases) { s 340 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) s 341 libavfilter/avf_showspectrum.c av_freep(&s->phases[i]); s 343 libavfilter/avf_showspectrum.c av_freep(&s->phases); s 379 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 381 libavfilter/avf_showspectrum.c const float *window_func_lut = s->window_func_lut; s 389 libavfilter/avf_showspectrum.c for (n = 0; n < s->win_size; n++) { s 390 libavfilter/avf_showspectrum.c s->fft_data[ch][n].re = p[n] * window_func_lut[n]; s 391 libavfilter/avf_showspectrum.c s->fft_data[ch][n].im = 0; s 394 libavfilter/avf_showspectrum.c if (s->stop) { s 396 libavfilter/avf_showspectrum.c FFTComplex *g = s->fft_data[ch]; s 397 libavfilter/avf_showspectrum.c FFTComplex *h = s->fft_scratch[ch]; s 398 libavfilter/avf_showspectrum.c int L = s->buf_size; s 399 libavfilter/avf_showspectrum.c int N = s->win_size; s 400 libavfilter/avf_showspectrum.c int M = s->win_size / 2; s 402 libavfilter/avf_showspectrum.c phi = 2.f * M_PI * (s->stop - s->start) / (float)inlink->sample_rate / (M - 1); s 403 libavfilter/avf_showspectrum.c theta = 2.f * M_PI * s->start / (float)inlink->sample_rate; s 421 libavfilter/avf_showspectrum.c g[n].re = s->fft_data[ch][n].re; s 422 libavfilter/avf_showspectrum.c g[n].im = s->fft_data[ch][n].im; s 440 libavfilter/avf_showspectrum.c av_fft_permute(s->fft[ch], h); s 441 libavfilter/avf_showspectrum.c av_fft_calc(s->fft[ch], h); s 443 libavfilter/avf_showspectrum.c av_fft_permute(s->fft[ch], g); s 444 libavfilter/avf_showspectrum.c av_fft_calc(s->fft[ch], g); s 456 libavfilter/avf_showspectrum.c av_fft_permute(s->ifft[ch], g); s 457 libavfilter/avf_showspectrum.c av_fft_calc(s->ifft[ch], g); s 465 libavfilter/avf_showspectrum.c s->fft_data[ch][k].re = a; s 466 libavfilter/avf_showspectrum.c s->fft_data[ch][k].im = b; s 470 libavfilter/avf_showspectrum.c av_fft_permute(s->fft[ch], s->fft_data[ch]); s 471 libavfilter/avf_showspectrum.c av_fft_calc(s->fft[ch], s->fft_data[ch]); s 511 libavfilter/avf_showspectrum.c static void color_range(ShowSpectrumContext *s, int ch, s 514 libavfilter/avf_showspectrum.c switch (s->mode) { s 517 libavfilter/avf_showspectrum.c *yf = 256.0f / s->nb_display_channels; s 518 libavfilter/avf_showspectrum.c switch (s->color_mode) { s 556 libavfilter/avf_showspectrum.c if (s->color_mode == CHANNEL) { s 557 libavfilter/avf_showspectrum.c if (s->nb_display_channels > 1) { s 558 libavfilter/avf_showspectrum.c *uf *= 0.5f * sinf((2 * M_PI * ch) / s->nb_display_channels + M_PI * s->rotation); s 559 libavfilter/avf_showspectrum.c *vf *= 0.5f * cosf((2 * M_PI * ch) / s->nb_display_channels + M_PI * s->rotation); s 561 libavfilter/avf_showspectrum.c *uf *= 0.5f * sinf(M_PI * s->rotation); s 562 libavfilter/avf_showspectrum.c *vf *= 0.5f * cosf(M_PI * s->rotation + M_PI_2); s 565 libavfilter/avf_showspectrum.c *uf += *uf * sinf(M_PI * s->rotation); s 566 libavfilter/avf_showspectrum.c *vf += *vf * cosf(M_PI * s->rotation + M_PI_2); s 569 libavfilter/avf_showspectrum.c *uf *= s->saturation; s 570 libavfilter/avf_showspectrum.c *vf *= s->saturation; s 573 libavfilter/avf_showspectrum.c static void pick_color(ShowSpectrumContext *s, s 577 libavfilter/avf_showspectrum.c if (s->color_mode > CHANNEL) { s 578 libavfilter/avf_showspectrum.c const int cm = s->color_mode; s 684 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 687 libavfilter/avf_showspectrum.c int ch, y, x = 0, sz = s->orientation == VERTICAL ? s->w : s->h; s 688 libavfilter/avf_showspectrum.c int multi = (s->mode == SEPARATE && s->color_mode == CHANNEL); s 701 libavfilter/avf_showspectrum.c drawtext(s->outpicref, 2, outlink->h - 10, "CREATED BY LIBAVFILTER", 0); s 702 libavfilter/avf_showspectrum.c drawtext(s->outpicref, outlink->w - 2 - strlen(text) * 10, outlink->h - 10, text, 0); s 704 libavfilter/avf_showspectrum.c if (s->stop) { s 705 libavfilter/avf_showspectrum.c text = av_asprintf("Zoom: %d Hz - %d Hz", s->start, s->stop); s 708 libavfilter/avf_showspectrum.c drawtext(s->outpicref, outlink->w - 2 - strlen(text) * 10, 3, text, 0); s 712 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y - 1) * s->outpicref->linesize[0] + s->start_x - 1; s 713 libavfilter/avf_showspectrum.c for (x = 0; x < s->w + 1; x++) s 715 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y + s->h) * s->outpicref->linesize[0] + s->start_x - 1; s 716 libavfilter/avf_showspectrum.c for (x = 0; x < s->w + 1; x++) s 718 libavfilter/avf_showspectrum.c for (y = 0; y < s->h + 2; y++) { s 719 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (y + s->start_y - 1) * s->outpicref->linesize[0]; s 720 libavfilter/avf_showspectrum.c dst[s->start_x - 1] = 200; s 721 libavfilter/avf_showspectrum.c dst[s->start_x + s->w] = 200; s 723 libavfilter/avf_showspectrum.c if (s->orientation == VERTICAL) { s 724 libavfilter/avf_showspectrum.c int h = s->mode == SEPARATE ? s->h / s->nb_display_channels : s->h; s 725 libavfilter/avf_showspectrum.c int hh = s->mode == SEPARATE ? -(s->h % s->nb_display_channels) + 1 : 1; s 726 libavfilter/avf_showspectrum.c for (ch = 0; ch < (s->mode == SEPARATE ? s->nb_display_channels : 1); ch++) { s 728 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y + h * (ch + 1) - y - hh) * s->outpicref->linesize[0]; s 729 libavfilter/avf_showspectrum.c dst[s->start_x - 2] = 200; s 730 libavfilter/avf_showspectrum.c dst[s->start_x + s->w + 1] = 200; s 733 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y + h * (ch + 1) - y - hh) * s->outpicref->linesize[0]; s 734 libavfilter/avf_showspectrum.c dst[s->start_x - 3] = 200; s 735 libavfilter/avf_showspectrum.c dst[s->start_x + s->w + 2] = 200; s 737 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y - 2) * s->outpicref->linesize[0] + s->start_x; s 738 libavfilter/avf_showspectrum.c for (x = 0; x < s->w; x+=40) s 740 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y - 3) * s->outpicref->linesize[0] + s->start_x; s 741 libavfilter/avf_showspectrum.c for (x = 0; x < s->w; x+=80) s 743 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->h + s->start_y + 1) * s->outpicref->linesize[0] + s->start_x; s 744 libavfilter/avf_showspectrum.c for (x = 0; x < s->w; x+=40) { s 747 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->h + s->start_y + 2) * s->outpicref->linesize[0] + s->start_x; s 748 libavfilter/avf_showspectrum.c for (x = 0; x < s->w; x+=80) { s 752 libavfilter/avf_showspectrum.c float range = s->stop ? s->stop - s->start : inlink->sample_rate / 2; s 753 libavfilter/avf_showspectrum.c float bin = s->fscale == F_LINEAR ? y : get_log_hz(y, h, inlink->sample_rate); s 754 libavfilter/avf_showspectrum.c float hertz = s->start + bin * range / (float)(1 << (int)ceil(log2(h))); s 764 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s->start_x - 8 * strlen(units) - 4, h * (ch + 1) + s->start_y - y - 4 - hh, units, 0); s 769 libavfilter/avf_showspectrum.c for (x = 0; x < s->w && s->single_pic; x+=80) { s 775 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s->start_x + x - 4 * strlen(units), s->h + s->start_y + 6, units, 0); s 776 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s->start_x + x - 4 * strlen(units), s->start_y - 12, units, 0); s 780 libavfilter/avf_showspectrum.c drawtext(s->outpicref, outlink->w / 2 - 4 * 4, outlink->h - s->start_y / 2, "TIME", 0); s 781 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s->start_x / 7, outlink->h / 2 - 14 * 4, "FREQUENCY (Hz)", 1); s 783 libavfilter/avf_showspectrum.c int w = s->mode == SEPARATE ? s->w / s->nb_display_channels : s->w; s 784 libavfilter/avf_showspectrum.c for (y = 0; y < s->h; y += 20) { s 785 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y + y) * s->outpicref->linesize[0]; s 786 libavfilter/avf_showspectrum.c dst[s->start_x - 2] = 200; s 787 libavfilter/avf_showspectrum.c dst[s->start_x + s->w + 1] = 200; s 789 libavfilter/avf_showspectrum.c for (y = 0; y < s->h; y += 40) { s 790 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y + y) * s->outpicref->linesize[0]; s 791 libavfilter/avf_showspectrum.c dst[s->start_x - 3] = 200; s 792 libavfilter/avf_showspectrum.c dst[s->start_x + s->w + 2] = 200; s 794 libavfilter/avf_showspectrum.c for (ch = 0; ch < (s->mode == SEPARATE ? s->nb_display_channels : 1); ch++) { s 795 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y - 2) * s->outpicref->linesize[0] + s->start_x + w * ch; s 798 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->start_y - 3) * s->outpicref->linesize[0] + s->start_x + w * ch; s 801 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->h + s->start_y + 1) * s->outpicref->linesize[0] + s->start_x + w * ch; s 805 libavfilter/avf_showspectrum.c dst = s->outpicref->data[0] + (s->h + s->start_y + 2) * s->outpicref->linesize[0] + s->start_x + w * ch; s 810 libavfilter/avf_showspectrum.c float range = s->stop ? s->stop - s->start : inlink->sample_rate / 2; s 811 libavfilter/avf_showspectrum.c float bin = s->fscale == F_LINEAR ? x : get_log_hz(x, w, inlink->sample_rate); s 812 libavfilter/avf_showspectrum.c float hertz = s->start + bin * range / (float)(1 << (int)ceil(log2(w))); s 822 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s->start_x - 4 * strlen(units) + x + w * ch, s->start_y - 12, units, 0); s 823 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s->start_x - 4 * strlen(units) + x + w * ch, s->h + s->start_y + 6, units, 0); s 827 libavfilter/avf_showspectrum.c for (y = 0; y < s->h && s->single_pic; y+=40) { s 833 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s->start_x - 8 * strlen(units) - 4, s->start_y + y - 4, units, 0); s 836 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s->start_x / 7, outlink->h / 2 - 4 * 4, "TIME", 1); s 837 libavfilter/avf_showspectrum.c drawtext(s->outpicref, outlink->w / 2 - 14 * 4, outlink->h - s->start_y / 2, "FREQUENCY (Hz)", 0); s 840 libavfilter/avf_showspectrum.c for (ch = 0; ch < (multi ? s->nb_display_channels : 1); ch++) { s 841 libavfilter/avf_showspectrum.c int h = multi ? s->h / s->nb_display_channels : s->h; s 847 libavfilter/avf_showspectrum.c for (chn = 0; chn < (s->mode == SEPARATE ? 1 : s->nb_display_channels); chn++) { s 849 libavfilter/avf_showspectrum.c int channel = (multi) ? s->nb_display_channels - ch - 1 : chn; s 852 libavfilter/avf_showspectrum.c color_range(s, channel, &yf, &uf, &vf); s 853 libavfilter/avf_showspectrum.c pick_color(s, yf, uf, vf, y / (float)h, lout); s 858 libavfilter/avf_showspectrum.c memset(s->outpicref->data[0]+(s->start_y + h * (ch + 1) - y - 1) * s->outpicref->linesize[0] + s->w + s->start_x + 20, av_clip_uint8(out[0]), 10); s 859 libavfilter/avf_showspectrum.c memset(s->outpicref->data[1]+(s->start_y + h * (ch + 1) - y - 1) * s->outpicref->linesize[1] + s->w + s->start_x + 20, av_clip_uint8(out[1]), 10); s 860 libavfilter/avf_showspectrum.c memset(s->outpicref->data[2]+(s->start_y + h * (ch + 1) - y - 1) * s->outpicref->linesize[2] + s->w + s->start_x + 20, av_clip_uint8(out[2]), 10); s 872 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s->w + s->start_x + 35, s->start_y + y - 5, text, 0); s 882 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 883 libavfilter/avf_showspectrum.c float *magnitudes = s->magnitudes[ch]; s 884 libavfilter/avf_showspectrum.c float *phases = s->phases[ch]; s 887 libavfilter/avf_showspectrum.c switch (s->data) { s 901 libavfilter/avf_showspectrum.c switch (s->scale) { s 929 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 930 libavfilter/avf_showspectrum.c const int h = s->orientation == VERTICAL ? s->channel_height : s->channel_width; s 936 libavfilter/avf_showspectrum.c color_range(s, ch, &yf, &uf, &vf); s 940 libavfilter/avf_showspectrum.c int row = (s->mode == COMBINED) ? y : ch * h + y; s 941 libavfilter/avf_showspectrum.c float *out = &s->color_buffer[ch][3 * row]; s 944 libavfilter/avf_showspectrum.c pick_color(s, yf, uf, vf, a, out); s 952 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 954 libavfilter/avf_showspectrum.c const int h = s->orientation == VERTICAL ? s->channel_height : s->channel_width; s 960 libavfilter/avf_showspectrum.c color_range(s, ch, &yf, &uf, &vf); s 972 libavfilter/avf_showspectrum.c float row = (s->mode == COMBINED) ? y + j - pos0 : ch * h + y + j - pos0; s 973 libavfilter/avf_showspectrum.c float *out = &s->color_buffer[ch][3 * FFMIN(lrintf(row), h-1)]; s 976 libavfilter/avf_showspectrum.c pick_color(s, yf, uf, vf, lerpfrac * a1 + (1.f-lerpfrac) * a0, out); s 988 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 992 libavfilter/avf_showspectrum.c switch (s->fscale) { s 993 libavfilter/avf_showspectrum.c case F_LINEAR: s->plot_channel = plot_channel_lin; break; s 994 libavfilter/avf_showspectrum.c case F_LOG: s->plot_channel = plot_channel_log; break; s 998 libavfilter/avf_showspectrum.c s->stop = FFMIN(s->stop, inlink->sample_rate / 2); s 999 libavfilter/avf_showspectrum.c if (s->stop && s->stop <= s->start) { s 1005 libavfilter/avf_showspectrum.c s->single_pic = 1; s 1007 libavfilter/avf_showspectrum.c outlink->w = s->w; s 1008 libavfilter/avf_showspectrum.c outlink->h = s->h; s 1011 libavfilter/avf_showspectrum.c if (s->legend) { s 1012 libavfilter/avf_showspectrum.c s->start_x = (log10(inlink->sample_rate) + 1) * 25; s 1013 libavfilter/avf_showspectrum.c s->start_y = 64; s 1014 libavfilter/avf_showspectrum.c outlink->w += s->start_x * 2; s 1015 libavfilter/avf_showspectrum.c outlink->h += s->start_y * 2; s 1018 libavfilter/avf_showspectrum.c h = (s->mode == COMBINED || s->orientation == HORIZONTAL) ? s->h : s->h / inlink->channels; s 1019 libavfilter/avf_showspectrum.c w = (s->mode == COMBINED || s->orientation == VERTICAL) ? s->w : s->w / inlink->channels; s 1020 libavfilter/avf_showspectrum.c s->channel_height = h; s 1021 libavfilter/avf_showspectrum.c s->channel_width = w; s 1023 libavfilter/avf_showspectrum.c if (s->orientation == VERTICAL) { s 1031 libavfilter/avf_showspectrum.c s->win_size = 1 << fft_bits; s 1032 libavfilter/avf_showspectrum.c s->buf_size = s->win_size << !!s->stop; s 1034 libavfilter/avf_showspectrum.c if (!s->fft) { s 1035 libavfilter/avf_showspectrum.c s->fft = av_calloc(inlink->channels, sizeof(*s->fft)); s 1036 libavfilter/avf_showspectrum.c if (!s->fft) s 1040 libavfilter/avf_showspectrum.c if (s->stop) { s 1041 libavfilter/avf_showspectrum.c if (!s->ifft) { s 1042 libavfilter/avf_showspectrum.c s->ifft = av_calloc(inlink->channels, sizeof(*s->ifft)); s 1043 libavfilter/avf_showspectrum.c if (!s->ifft) s 1049 libavfilter/avf_showspectrum.c if (fft_bits != s->fft_bits) { s 1052 libavfilter/avf_showspectrum.c s->fft_bits = fft_bits; s 1057 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) { s 1058 libavfilter/avf_showspectrum.c if (s->stop) { s 1059 libavfilter/avf_showspectrum.c av_fft_end(s->ifft[i]); s 1060 libavfilter/avf_showspectrum.c av_freep(&s->fft_scratch[i]); s 1062 libavfilter/avf_showspectrum.c av_fft_end(s->fft[i]); s 1063 libavfilter/avf_showspectrum.c av_freep(&s->fft_data[i]); s 1065 libavfilter/avf_showspectrum.c av_freep(&s->fft_data); s 1067 libavfilter/avf_showspectrum.c s->nb_display_channels = inlink->channels; s 1068 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) { s 1069 libavfilter/avf_showspectrum.c s->fft[i] = av_fft_init(fft_bits + !!s->stop, 0); s 1070 libavfilter/avf_showspectrum.c if (s->stop) { s 1071 libavfilter/avf_showspectrum.c s->ifft[i] = av_fft_init(fft_bits + !!s->stop, 1); s 1072 libavfilter/avf_showspectrum.c if (!s->ifft[i]) { s 1078 libavfilter/avf_showspectrum.c if (!s->fft[i]) { s 1085 libavfilter/avf_showspectrum.c s->magnitudes = av_calloc(s->nb_display_channels, sizeof(*s->magnitudes)); s 1086 libavfilter/avf_showspectrum.c if (!s->magnitudes) s 1088 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) { s 1089 libavfilter/avf_showspectrum.c s->magnitudes[i] = av_calloc(s->orientation == VERTICAL ? s->h : s->w, sizeof(**s->magnitudes)); s 1090 libavfilter/avf_showspectrum.c if (!s->magnitudes[i]) s 1094 libavfilter/avf_showspectrum.c s->phases = av_calloc(s->nb_display_channels, sizeof(*s->phases)); s 1095 libavfilter/avf_showspectrum.c if (!s->phases) s 1097 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) { s 1098 libavfilter/avf_showspectrum.c s->phases[i] = av_calloc(s->orientation == VERTICAL ? s->h : s->w, sizeof(**s->phases)); s 1099 libavfilter/avf_showspectrum.c if (!s->phases[i]) s 1103 libavfilter/avf_showspectrum.c av_freep(&s->color_buffer); s 1104 libavfilter/avf_showspectrum.c s->color_buffer = av_calloc(s->nb_display_channels, sizeof(*s->color_buffer)); s 1105 libavfilter/avf_showspectrum.c if (!s->color_buffer) s 1107 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) { s 1108 libavfilter/avf_showspectrum.c s->color_buffer[i] = av_calloc(s->orientation == VERTICAL ? s->h * 3 : s->w * 3, sizeof(**s->color_buffer)); s 1109 libavfilter/avf_showspectrum.c if (!s->color_buffer[i]) s 1113 libavfilter/avf_showspectrum.c s->fft_data = av_calloc(s->nb_display_channels, sizeof(*s->fft_data)); s 1114 libavfilter/avf_showspectrum.c if (!s->fft_data) s 1116 libavfilter/avf_showspectrum.c s->fft_scratch = av_calloc(s->nb_display_channels, sizeof(*s->fft_scratch)); s 1117 libavfilter/avf_showspectrum.c if (!s->fft_scratch) s 1119 libavfilter/avf_showspectrum.c for (i = 0; i < s->nb_display_channels; i++) { s 1120 libavfilter/avf_showspectrum.c s->fft_data[i] = av_calloc(s->buf_size, sizeof(**s->fft_data)); s 1121 libavfilter/avf_showspectrum.c if (!s->fft_data[i]) s 1124 libavfilter/avf_showspectrum.c s->fft_scratch[i] = av_calloc(s->buf_size, sizeof(**s->fft_scratch)); s 1125 libavfilter/avf_showspectrum.c if (!s->fft_scratch[i]) s 1130 libavfilter/avf_showspectrum.c s->window_func_lut = s 1131 libavfilter/avf_showspectrum.c av_realloc_f(s->window_func_lut, s->win_size, s 1132 libavfilter/avf_showspectrum.c sizeof(*s->window_func_lut)); s 1133 libavfilter/avf_showspectrum.c if (!s->window_func_lut) s 1135 libavfilter/avf_showspectrum.c generate_window_func(s->window_func_lut, s->win_size, s->win_func, &overlap); s 1136 libavfilter/avf_showspectrum.c if (s->overlap == 1) s 1137 libavfilter/avf_showspectrum.c s->overlap = overlap; s 1138 libavfilter/avf_showspectrum.c s->hop_size = (1.f - s->overlap) * s->win_size; s 1139 libavfilter/avf_showspectrum.c if (s->hop_size < 1) { s 1140 libavfilter/avf_showspectrum.c av_log(ctx, AV_LOG_ERROR, "overlap %f too big\n", s->overlap); s 1144 libavfilter/avf_showspectrum.c for (s->win_scale = 0, i = 0; i < s->win_size; i++) { s 1145 libavfilter/avf_showspectrum.c s->win_scale += s->window_func_lut[i] * s->window_func_lut[i]; s 1147 libavfilter/avf_showspectrum.c s->win_scale = 1.f / sqrtf(s->win_scale); s 1150 libavfilter/avf_showspectrum.c av_frame_free(&s->outpicref); s 1151 libavfilter/avf_showspectrum.c s->outpicref = outpicref = s 1163 libavfilter/avf_showspectrum.c if (!s->single_pic && s->legend) s 1167 libavfilter/avf_showspectrum.c if ((s->orientation == VERTICAL && s->xpos >= s->w) || s 1168 libavfilter/avf_showspectrum.c (s->orientation == HORIZONTAL && s->xpos >= s->h)) s 1169 libavfilter/avf_showspectrum.c s->xpos = 0; s 1171 libavfilter/avf_showspectrum.c s->auto_frame_rate = av_make_q(inlink->sample_rate, s->hop_size); s 1172 libavfilter/avf_showspectrum.c if (s->orientation == VERTICAL && s->sliding == FULLFRAME) s 1173 libavfilter/avf_showspectrum.c s->auto_frame_rate.den *= s->w; s 1174 libavfilter/avf_showspectrum.c if (s->orientation == HORIZONTAL && s->sliding == FULLFRAME) s 1175 libavfilter/avf_showspectrum.c s->auto_frame_rate.den *= s->h; s 1176 libavfilter/avf_showspectrum.c if (!s->single_pic && strcmp(s->rate_str, "auto")) { s 1177 libavfilter/avf_showspectrum.c int ret = av_parse_video_rate(&s->frame_rate, s->rate_str); s 1181 libavfilter/avf_showspectrum.c s->frame_rate = s->auto_frame_rate; s 1183 libavfilter/avf_showspectrum.c outlink->frame_rate = s->frame_rate; s 1186 libavfilter/avf_showspectrum.c if (s->orientation == VERTICAL) { s 1187 libavfilter/avf_showspectrum.c s->combine_buffer = s 1188 libavfilter/avf_showspectrum.c av_realloc_f(s->combine_buffer, s->h * 3, s 1189 libavfilter/avf_showspectrum.c sizeof(*s->combine_buffer)); s 1191 libavfilter/avf_showspectrum.c s->combine_buffer = s 1192 libavfilter/avf_showspectrum.c av_realloc_f(s->combine_buffer, s->w * 3, s 1193 libavfilter/avf_showspectrum.c sizeof(*s->combine_buffer)); s 1197 libavfilter/avf_showspectrum.c s->w, s->h, s->win_size); s 1199 libavfilter/avf_showspectrum.c av_audio_fifo_free(s->fifo); s 1200 libavfilter/avf_showspectrum.c s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, s->win_size); s 1201 libavfilter/avf_showspectrum.c if (!s->fifo) s 1206 libavfilter/avf_showspectrum.c #define RE(y, ch) s->fft_data[ch][y].re s 1207 libavfilter/avf_showspectrum.c #define IM(y, ch) s->fft_data[ch][y].im s 1213 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 1214 libavfilter/avf_showspectrum.c const double w = s->win_scale * (s->scale == LOG ? s->win_scale : 1); s 1215 libavfilter/avf_showspectrum.c int y, h = s->orientation == VERTICAL ? s->h : s->w; s 1216 libavfilter/avf_showspectrum.c const float f = s->gain * w; s 1218 libavfilter/avf_showspectrum.c float *magnitudes = s->magnitudes[ch]; s 1228 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 1229 libavfilter/avf_showspectrum.c const int h = s->orientation == VERTICAL ? s->h : s->w; s 1231 libavfilter/avf_showspectrum.c float *phases = s->phases[ch]; s 1240 libavfilter/avf_showspectrum.c static void acalc_magnitudes(ShowSpectrumContext *s) s 1242 libavfilter/avf_showspectrum.c const double w = s->win_scale * (s->scale == LOG ? s->win_scale : 1); s 1243 libavfilter/avf_showspectrum.c int ch, y, h = s->orientation == VERTICAL ? s->h : s->w; s 1244 libavfilter/avf_showspectrum.c const float f = s->gain * w; s 1246 libavfilter/avf_showspectrum.c for (ch = 0; ch < s->nb_display_channels; ch++) { s 1247 libavfilter/avf_showspectrum.c float *magnitudes = s->magnitudes[ch]; s 1254 libavfilter/avf_showspectrum.c static void scale_magnitudes(ShowSpectrumContext *s, float scale) s 1256 libavfilter/avf_showspectrum.c int ch, y, h = s->orientation == VERTICAL ? s->h : s->w; s 1258 libavfilter/avf_showspectrum.c for (ch = 0; ch < s->nb_display_channels; ch++) { s 1259 libavfilter/avf_showspectrum.c float *magnitudes = s->magnitudes[ch]; s 1266 libavfilter/avf_showspectrum.c static void clear_combine_buffer(ShowSpectrumContext *s, int size) s 1271 libavfilter/avf_showspectrum.c s->combine_buffer[3 * y ] = 0; s 1272 libavfilter/avf_showspectrum.c s->combine_buffer[3 * y + 1] = 127.5; s 1273 libavfilter/avf_showspectrum.c s->combine_buffer[3 * y + 2] = 127.5; s 1281 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 1282 libavfilter/avf_showspectrum.c AVFrame *outpicref = s->outpicref; s 1283 libavfilter/avf_showspectrum.c int ret, plane, x, y, z = s->orientation == VERTICAL ? s->h : s->w; s 1287 libavfilter/avf_showspectrum.c clear_combine_buffer(s, z); s 1289 libavfilter/avf_showspectrum.c ctx->internal->execute(ctx, s->plot_channel, NULL, NULL, s->nb_display_channels); s 1292 libavfilter/avf_showspectrum.c for (x = 0; x < s->nb_display_channels; x++) { s 1293 libavfilter/avf_showspectrum.c s->combine_buffer[y] += s->color_buffer[x][y]; s 1297 libavfilter/avf_showspectrum.c av_frame_make_writable(s->outpicref); s 1299 libavfilter/avf_showspectrum.c if (s->orientation == VERTICAL) { s 1300 libavfilter/avf_showspectrum.c if (s->sliding == SCROLL) { s 1302 libavfilter/avf_showspectrum.c for (y = 0; y < s->h; y++) { s 1303 libavfilter/avf_showspectrum.c uint8_t *p = outpicref->data[plane] + s->start_x + s 1304 libavfilter/avf_showspectrum.c (y + s->start_y) * outpicref->linesize[plane]; s 1305 libavfilter/avf_showspectrum.c memmove(p, p + 1, s->w - 1); s 1308 libavfilter/avf_showspectrum.c s->xpos = s->w - 1; s 1309 libavfilter/avf_showspectrum.c } else if (s->sliding == RSCROLL) { s 1311 libavfilter/avf_showspectrum.c for (y = 0; y < s->h; y++) { s 1312 libavfilter/avf_showspectrum.c uint8_t *p = outpicref->data[plane] + s->start_x + s 1313 libavfilter/avf_showspectrum.c (y + s->start_y) * outpicref->linesize[plane]; s 1314 libavfilter/avf_showspectrum.c memmove(p + 1, p, s->w - 1); s 1317 libavfilter/avf_showspectrum.c s->xpos = 0; s 1320 libavfilter/avf_showspectrum.c uint8_t *p = outpicref->data[plane] + s->start_x + s 1321 libavfilter/avf_showspectrum.c (outlink->h - 1 - s->start_y) * outpicref->linesize[plane] + s 1322 libavfilter/avf_showspectrum.c s->xpos; s 1323 libavfilter/avf_showspectrum.c for (y = 0; y < s->h; y++) { s 1324 libavfilter/avf_showspectrum.c *p = lrintf(av_clipf(s->combine_buffer[3 * y + plane], 0, 255)); s 1329 libavfilter/avf_showspectrum.c if (s->sliding == SCROLL) { s 1331 libavfilter/avf_showspectrum.c for (y = 1; y < s->h; y++) { s 1332 libavfilter/avf_showspectrum.c memmove(outpicref->data[plane] + (y-1 + s->start_y) * outpicref->linesize[plane] + s->start_x, s 1333 libavfilter/avf_showspectrum.c outpicref->data[plane] + (y + s->start_y) * outpicref->linesize[plane] + s->start_x, s 1334 libavfilter/avf_showspectrum.c s->w); s 1337 libavfilter/avf_showspectrum.c s->xpos = s->h - 1; s 1338 libavfilter/avf_showspectrum.c } else if (s->sliding == RSCROLL) { s 1340 libavfilter/avf_showspectrum.c for (y = s->h - 1; y >= 1; y--) { s 1341 libavfilter/avf_showspectrum.c memmove(outpicref->data[plane] + (y + s->start_y) * outpicref->linesize[plane] + s->start_x, s 1342 libavfilter/avf_showspectrum.c outpicref->data[plane] + (y-1 + s->start_y) * outpicref->linesize[plane] + s->start_x, s 1343 libavfilter/avf_showspectrum.c s->w); s 1346 libavfilter/avf_showspectrum.c s->xpos = 0; s 1349 libavfilter/avf_showspectrum.c uint8_t *p = outpicref->data[plane] + s->start_x + s 1350 libavfilter/avf_showspectrum.c (s->xpos + s->start_y) * outpicref->linesize[plane]; s 1351 libavfilter/avf_showspectrum.c for (x = 0; x < s->w; x++) { s 1352 libavfilter/avf_showspectrum.c *p = lrintf(av_clipf(s->combine_buffer[3 * x + plane], 0, 255)); s 1358 libavfilter/avf_showspectrum.c if (s->sliding != FULLFRAME || s->xpos == 0) s 1361 libavfilter/avf_showspectrum.c s->xpos++; s 1362 libavfilter/avf_showspectrum.c if (s->orientation == VERTICAL && s->xpos >= s->w) s 1363 libavfilter/avf_showspectrum.c s->xpos = 0; s 1364 libavfilter/avf_showspectrum.c if (s->orientation == HORIZONTAL && s->xpos >= s->h) s 1365 libavfilter/avf_showspectrum.c s->xpos = 0; s 1366 libavfilter/avf_showspectrum.c if (!s->single_pic && (s->sliding != FULLFRAME || s->xpos == 0)) { s 1367 libavfilter/avf_showspectrum.c if (s->old_pts < outpicref->pts) { s 1370 libavfilter/avf_showspectrum.c if (s->legend) { s 1375 libavfilter/avf_showspectrum.c if (s->orientation == VERTICAL) { s 1377 libavfilter/avf_showspectrum.c memset(s->outpicref->data[0] + outlink->w / 2 - 4 * s->old_len + s 1378 libavfilter/avf_showspectrum.c (outlink->h - s->start_y / 2 - 20 + y) * s->outpicref->linesize[0], 0, 10 * s->old_len); s 1380 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s 1382 libavfilter/avf_showspectrum.c outlink->h - s->start_y / 2 - 20, s 1385 libavfilter/avf_showspectrum.c for (y = 0; y < 10 * s->old_len; y++) { s 1386 libavfilter/avf_showspectrum.c memset(s->outpicref->data[0] + s->start_x / 7 + 20 + s 1387 libavfilter/avf_showspectrum.c (outlink->h / 2 - 4 * s->old_len + y) * s->outpicref->linesize[0], 0, 10); s 1389 libavfilter/avf_showspectrum.c drawtext(s->outpicref, s 1390 libavfilter/avf_showspectrum.c s->start_x / 7 + 20, s 1394 libavfilter/avf_showspectrum.c s->old_len = strlen(units); s 1397 libavfilter/avf_showspectrum.c s->old_pts = outpicref->pts; s 1398 libavfilter/avf_showspectrum.c clone = av_frame_clone(s->outpicref); s 1417 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 1422 libavfilter/avf_showspectrum.c if (av_audio_fifo_size(s->fifo) < s->win_size) { s 1429 libavfilter/avf_showspectrum.c s->pts = frame->pts; s 1430 libavfilter/avf_showspectrum.c s->consumed = 0; s 1432 libavfilter/avf_showspectrum.c av_audio_fifo_write(s->fifo, (void **)frame->extended_data, frame->nb_samples); s 1437 libavfilter/avf_showspectrum.c if (s->outpicref && (av_audio_fifo_size(s->fifo) >= s->win_size || s 1439 libavfilter/avf_showspectrum.c AVFrame *fin = ff_get_audio_buffer(inlink, s->win_size); s 1443 libavfilter/avf_showspectrum.c fin->pts = s->pts + s->consumed; s 1444 libavfilter/avf_showspectrum.c s->consumed += s->hop_size; s 1445 libavfilter/avf_showspectrum.c ret = av_audio_fifo_peek(s->fifo, (void **)fin->extended_data, s 1446 libavfilter/avf_showspectrum.c FFMIN(s->win_size, av_audio_fifo_size(s->fifo))); s 1452 libavfilter/avf_showspectrum.c av_assert0(fin->nb_samples == s->win_size); s 1454 libavfilter/avf_showspectrum.c ctx->internal->execute(ctx, run_channel_fft, fin, NULL, s->nb_display_channels); s 1456 libavfilter/avf_showspectrum.c if (s->data == D_MAGNITUDE) s 1457 libavfilter/avf_showspectrum.c ctx->internal->execute(ctx, calc_channel_magnitudes, NULL, NULL, s->nb_display_channels); s 1459 libavfilter/avf_showspectrum.c if (s->data == D_PHASE) s 1460 libavfilter/avf_showspectrum.c ctx->internal->execute(ctx, calc_channel_phases, NULL, NULL, s->nb_display_channels); s 1465 libavfilter/avf_showspectrum.c av_audio_fifo_drain(s->fifo, s->hop_size); s 1471 libavfilter/avf_showspectrum.c s->sliding == FULLFRAME && s 1472 libavfilter/avf_showspectrum.c s->xpos > 0 && s->outpicref) { s 1475 libavfilter/avf_showspectrum.c if (s->orientation == VERTICAL) { s 1477 libavfilter/avf_showspectrum.c memset(s->outpicref->data[0] + i * s->outpicref->linesize[0] + s->xpos, 0, outlink->w - s->xpos); s 1478 libavfilter/avf_showspectrum.c memset(s->outpicref->data[1] + i * s->outpicref->linesize[1] + s->xpos, 128, outlink->w - s->xpos); s 1479 libavfilter/avf_showspectrum.c memset(s->outpicref->data[2] + i * s->outpicref->linesize[2] + s->xpos, 128, outlink->w - s->xpos); s 1482 libavfilter/avf_showspectrum.c for (int i = s->xpos; i < outlink->h; i++) { s 1483 libavfilter/avf_showspectrum.c memset(s->outpicref->data[0] + i * s->outpicref->linesize[0], 0, outlink->w); s 1484 libavfilter/avf_showspectrum.c memset(s->outpicref->data[1] + i * s->outpicref->linesize[1], 128, outlink->w); s 1485 libavfilter/avf_showspectrum.c memset(s->outpicref->data[2] + i * s->outpicref->linesize[2], 128, outlink->w); s 1488 libavfilter/avf_showspectrum.c s->outpicref->pts += s->consumed; s 1489 libavfilter/avf_showspectrum.c pts = s->outpicref->pts; s 1490 libavfilter/avf_showspectrum.c ret = ff_filter_frame(outlink, s->outpicref); s 1491 libavfilter/avf_showspectrum.c s->outpicref = NULL; s 1497 libavfilter/avf_showspectrum.c if (av_audio_fifo_size(s->fifo) >= s->win_size || s 1503 libavfilter/avf_showspectrum.c if (ff_outlink_frame_wanted(outlink) && av_audio_fifo_size(s->fifo) < s->win_size && s 1616 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 1621 libavfilter/avf_showspectrum.c samples = av_audio_fifo_size(s->fifo); s 1622 libavfilter/avf_showspectrum.c if (ret == AVERROR_EOF && s->outpicref && samples > 0) { s 1624 libavfilter/avf_showspectrum.c int x = 0, sz = s->orientation == VERTICAL ? s->w : s->h; s 1628 libavfilter/avf_showspectrum.c spf = s->win_size * (samples / ((s->win_size * sz) * ceil(samples / (float)(s->win_size * sz)))); s 1633 libavfilter/avf_showspectrum.c fin = ff_get_audio_buffer(inlink, s->win_size); s 1638 libavfilter/avf_showspectrum.c ret = av_audio_fifo_peek(s->fifo, (void **)fin->extended_data, s->win_size); s 1644 libavfilter/avf_showspectrum.c av_audio_fifo_drain(s->fifo, spf); s 1646 libavfilter/avf_showspectrum.c if (ret < s->win_size) { s 1647 libavfilter/avf_showspectrum.c for (ch = 0; ch < s->nb_display_channels; ch++) { s 1649 libavfilter/avf_showspectrum.c (s->win_size - ret) * sizeof(float)); s 1653 libavfilter/avf_showspectrum.c ctx->internal->execute(ctx, run_channel_fft, fin, NULL, s->nb_display_channels); s 1654 libavfilter/avf_showspectrum.c acalc_magnitudes(s); s 1658 libavfilter/avf_showspectrum.c int h = s->orientation == VERTICAL ? s->h : s->w; s 1660 libavfilter/avf_showspectrum.c scale_magnitudes(s, 1.f / (consumed / spf)); s 1664 libavfilter/avf_showspectrum.c for (ch = 0; ch < s->nb_display_channels; ch++) s 1665 libavfilter/avf_showspectrum.c memset(s->magnitudes[ch], 0, h * sizeof(float)); s 1670 libavfilter/avf_showspectrum.c s->outpicref->pts = 0; s 1672 libavfilter/avf_showspectrum.c if (s->legend) s 1675 libavfilter/avf_showspectrum.c ret = ff_filter_frame(outlink, s->outpicref); s 1676 libavfilter/avf_showspectrum.c s->outpicref = NULL; s 1685 libavfilter/avf_showspectrum.c ShowSpectrumContext *s = ctx->priv; s 1688 libavfilter/avf_showspectrum.c ret = av_audio_fifo_write(s->fifo, (void **)insamples->extended_data, insamples->nb_samples); s 104 libavfilter/avf_showvolume.c ShowVolumeContext *s = ctx->priv; s 107 libavfilter/avf_showvolume.c if (s->color) { s 108 libavfilter/avf_showvolume.c ret = av_expr_parse(&s->c_expr, s->color, var_names, s 166 libavfilter/avf_showvolume.c ShowVolumeContext *s = ctx->priv; s 168 libavfilter/avf_showvolume.c s->nb_samples = FFMAX(1, av_rescale(inlink->sample_rate, s->frame_rate.den, s->frame_rate.num)); s 169 libavfilter/avf_showvolume.c s->values = av_calloc(inlink->channels * VAR_VARS_NB, sizeof(double)); s 170 libavfilter/avf_showvolume.c if (!s->values) s 173 libavfilter/avf_showvolume.c s->color_lut = av_calloc(s->w, sizeof(*s->color_lut) * inlink->channels); s 174 libavfilter/avf_showvolume.c if (!s->color_lut) s 177 libavfilter/avf_showvolume.c s->max = av_calloc(inlink->channels, sizeof(*s->max)); s 178 libavfilter/avf_showvolume.c if (!s->max) s 181 libavfilter/avf_showvolume.c s->rms_factor = 10000. / inlink->sample_rate; s 183 libavfilter/avf_showvolume.c switch (s->mode) { s 184 libavfilter/avf_showvolume.c case 0: s->meter = find_peak; break; s 185 libavfilter/avf_showvolume.c case 1: s->meter = find_rms; break; s 189 libavfilter/avf_showvolume.c if (s->draw_persistent_duration > 0.) { s 190 libavfilter/avf_showvolume.c s->persistent_max_frames = (int) FFMAX(av_q2d(s->frame_rate) * s->draw_persistent_duration, 1.); s 191 libavfilter/avf_showvolume.c s->max_persistent = av_calloc(inlink->channels * s->persistent_max_frames, sizeof(*s->max_persistent)); s 192 libavfilter/avf_showvolume.c s->nb_frames_max_display = av_calloc(inlink->channels * s->persistent_max_frames, sizeof(*s->nb_frames_max_display)); s 199 libavfilter/avf_showvolume.c ShowVolumeContext *s = outlink->src->priv; s 203 libavfilter/avf_showvolume.c if (s->orientation) { s 204 libavfilter/avf_showvolume.c outlink->h = s->w; s 205 libavfilter/avf_showvolume.c outlink->w = s->h * inlink->channels + (inlink->channels - 1) * s->b; s 207 libavfilter/avf_showvolume.c outlink->w = s->w; s 208 libavfilter/avf_showvolume.c outlink->h = s->h * inlink->channels + (inlink->channels - 1) * s->b; s 212 libavfilter/avf_showvolume.c outlink->frame_rate = s->frame_rate; s 217 libavfilter/avf_showvolume.c for (i = 0; i < s->w; i++) { s 218 libavfilter/avf_showvolume.c float max = i / (float)(s->w - 1); s 220 libavfilter/avf_showvolume.c s->values[ch * VAR_VARS_NB + VAR_PEAK] = max; s 221 libavfilter/avf_showvolume.c s->values[ch * VAR_VARS_NB + VAR_VOLUME] = 20.0 * log10(max); s 222 libavfilter/avf_showvolume.c s->values[ch * VAR_VARS_NB + VAR_CHANNEL] = ch; s 223 libavfilter/avf_showvolume.c s->color_lut[ch * s->w + i] = av_expr_eval(s->c_expr, &s->values[ch * VAR_VARS_NB], NULL); s 264 libavfilter/avf_showvolume.c static void clear_picture(ShowVolumeContext *s, AVFilterLink *outlink) s 267 libavfilter/avf_showvolume.c const uint32_t bg = (uint32_t)(s->bgopacity * 255) << 24; s 270 libavfilter/avf_showvolume.c uint32_t *dst = (uint32_t *)(s->out->data[0] + i * s->out->linesize[0]); s 276 libavfilter/avf_showvolume.c static inline int calc_max_draw(ShowVolumeContext *s, AVFilterLink *outlink, float max) s 279 libavfilter/avf_showvolume.c if (s->display_scale == LINEAR) { s 284 libavfilter/avf_showvolume.c if (s->orientation) { /* vertical */ s 287 libavfilter/avf_showvolume.c return s->w * max_val; s 291 libavfilter/avf_showvolume.c static inline void calc_persistent_max(ShowVolumeContext *s, float max, int channel) s 294 libavfilter/avf_showvolume.c if ((max >= s->max_persistent[channel]) || (s->nb_frames_max_display[channel] >= s->persistent_max_frames)) { /* update max value for display */ s 295 libavfilter/avf_showvolume.c s->max_persistent[channel] = max; s 296 libavfilter/avf_showvolume.c s->nb_frames_max_display[channel] = 0; s 298 libavfilter/avf_showvolume.c s->nb_frames_max_display[channel] += 1; /* incremente display frame count */ s 302 libavfilter/avf_showvolume.c static inline void draw_max_line(ShowVolumeContext *s, int max_draw, int channel) s 305 libavfilter/avf_showvolume.c if (s->orientation) { /* vertical */ s 306 libavfilter/avf_showvolume.c uint8_t *dst = s->out->data[0] + max_draw * s->out->linesize[0] + channel * (s->b + s->h) * 4; s 307 libavfilter/avf_showvolume.c for (k = 0; k < s->h; k++) { s 308 libavfilter/avf_showvolume.c memcpy(dst + k * 4, s->persistant_max_rgba, sizeof(s->persistant_max_rgba)); s 311 libavfilter/avf_showvolume.c for (k = 0; k < s->h; k++) { s 312 libavfilter/avf_showvolume.c uint8_t *dst = s->out->data[0] + (channel * s->h + channel * s->b + k) * s->out->linesize[0]; s 313 libavfilter/avf_showvolume.c memcpy(dst + max_draw * 4, s->persistant_max_rgba, sizeof(s->persistant_max_rgba)); s 322 libavfilter/avf_showvolume.c ShowVolumeContext *s = ctx->priv; s 323 libavfilter/avf_showvolume.c const int step = s->step; s 327 libavfilter/avf_showvolume.c if (!s->out || s->out->width != outlink->w || s 328 libavfilter/avf_showvolume.c s->out->height != outlink->h) { s 329 libavfilter/avf_showvolume.c av_frame_free(&s->out); s 330 libavfilter/avf_showvolume.c s->out = ff_get_video_buffer(outlink, outlink->w, outlink->h); s 331 libavfilter/avf_showvolume.c if (!s->out) { s 335 libavfilter/avf_showvolume.c clear_picture(s, outlink); s 337 libavfilter/avf_showvolume.c s->out->pts = insamples->pts; s 339 libavfilter/avf_showvolume.c if ((s->f < 1.) && (s->f > 0.)) { s 341 libavfilter/avf_showvolume.c uint8_t *dst = s->out->data[0] + j * s->out->linesize[0]; s 342 libavfilter/avf_showvolume.c const uint32_t alpha = s->bgopacity * 255; s 345 libavfilter/avf_showvolume.c dst[k * 4 + 0] = FFMAX(dst[k * 4 + 0] * s->f, 0); s 346 libavfilter/avf_showvolume.c dst[k * 4 + 1] = FFMAX(dst[k * 4 + 1] * s->f, 0); s 347 libavfilter/avf_showvolume.c dst[k * 4 + 2] = FFMAX(dst[k * 4 + 2] * s->f, 0); s 348 libavfilter/avf_showvolume.c dst[k * 4 + 3] = FFMAX(dst[k * 4 + 3] * s->f, alpha); s 351 libavfilter/avf_showvolume.c } else if (s->f == 0.) { s 352 libavfilter/avf_showvolume.c clear_picture(s, outlink); s 355 libavfilter/avf_showvolume.c if (s->orientation) { /* vertical */ s 358 libavfilter/avf_showvolume.c uint32_t *lut = s->color_lut + s->w * c; s 361 libavfilter/avf_showvolume.c s->meter(src, insamples->nb_samples, &s->max[c], s->rms_factor); s 362 libavfilter/avf_showvolume.c max = s->max[c]; s 364 libavfilter/avf_showvolume.c s->values[c * VAR_VARS_NB + VAR_VOLUME] = 20.0 * log10(max); s 366 libavfilter/avf_showvolume.c max_draw = calc_max_draw(s, outlink, max); s 368 libavfilter/avf_showvolume.c for (j = max_draw; j < s->w; j++) { s 369 libavfilter/avf_showvolume.c uint8_t *dst = s->out->data[0] + j * s->out->linesize[0] + c * (s->b + s->h) * 4; s 370 libavfilter/avf_showvolume.c for (k = 0; k < s->h; k++) { s 371 libavfilter/avf_showvolume.c AV_WN32A(&dst[k * 4], lut[s->w - j - 1]); s 377 libavfilter/avf_showvolume.c if (s->h >= 8 && s->draw_text) { s 381 libavfilter/avf_showvolume.c drawtext(s->out, c * (s->h + s->b) + (s->h - 10) / 2, outlink->h - 35, channel_name, 1); s 384 libavfilter/avf_showvolume.c if (s->draw_persistent_duration > 0.) { s 385 libavfilter/avf_showvolume.c calc_persistent_max(s, max, c); s 386 libavfilter/avf_showvolume.c max_draw = FFMAX(0, calc_max_draw(s, outlink, s->max_persistent[c]) - 1); s 387 libavfilter/avf_showvolume.c draw_max_line(s, max_draw, c); s 393 libavfilter/avf_showvolume.c uint32_t *lut = s->color_lut + s->w * c; s 396 libavfilter/avf_showvolume.c s->meter(src, insamples->nb_samples, &s->max[c], s->rms_factor); s 397 libavfilter/avf_showvolume.c max = s->max[c]; s 399 libavfilter/avf_showvolume.c s->values[c * VAR_VARS_NB + VAR_VOLUME] = 20.0 * log10(max); s 401 libavfilter/avf_showvolume.c max_draw = calc_max_draw(s, outlink, max); s 403 libavfilter/avf_showvolume.c for (j = 0; j < s->h; j++) { s 404 libavfilter/avf_showvolume.c uint8_t *dst = s->out->data[0] + (c * s->h + c * s->b + j) * s->out->linesize[0]; s 413 libavfilter/avf_showvolume.c if (s->h >= 8 && s->draw_text) { s 417 libavfilter/avf_showvolume.c drawtext(s->out, 2, c * (s->h + s->b) + (s->h - 8) / 2, channel_name, 0); s 420 libavfilter/avf_showvolume.c if (s->draw_persistent_duration > 0.) { s 421 libavfilter/avf_showvolume.c calc_persistent_max(s, max, c); s 422 libavfilter/avf_showvolume.c max_draw = FFMAX(0, calc_max_draw(s, outlink, s->max_persistent[c]) - 1); s 423 libavfilter/avf_showvolume.c draw_max_line(s, max_draw, c); s 429 libavfilter/avf_showvolume.c out = av_frame_clone(s->out); s 435 libavfilter/avf_showvolume.c for (c = 0; c < inlink->channels && s->h >= 8 && s->draw_volume; c++) { s 438 libavfilter/avf_showvolume.c if (s->orientation) { /* vertical */ s 439 libavfilter/avf_showvolume.c snprintf(buf, sizeof(buf), "%.2f", s->values[c * VAR_VARS_NB + VAR_VOLUME]); s 440 libavfilter/avf_showvolume.c drawtext(out, c * (s->h + s->b) + (s->h - 8) / 2, 2, buf, 1); s 442 libavfilter/avf_showvolume.c snprintf(buf, sizeof(buf), "%.2f", s->values[c * VAR_VARS_NB + VAR_VOLUME]); s 443 libavfilter/avf_showvolume.c drawtext(out, FFMAX(0, s->w - 8 * (int)strlen(buf)), c * (s->h + s->b) + (s->h - 8) / 2, buf, 0); s 454 libavfilter/avf_showvolume.c ShowVolumeContext *s = ctx->priv; s 460 libavfilter/avf_showvolume.c ret = ff_inlink_consume_samples(inlink, s->nb_samples, s->nb_samples, &in); s 474 libavfilter/avf_showvolume.c ShowVolumeContext *s = ctx->priv; s 476 libavfilter/avf_showvolume.c av_frame_free(&s->out); s 477 libavfilter/avf_showvolume.c av_expr_free(s->c_expr); s 478 libavfilter/avf_showvolume.c av_freep(&s->values); s 479 libavfilter/avf_showvolume.c av_freep(&s->color_lut); s 480 libavfilter/avf_showvolume.c av_freep(&s->max); s 174 libavfilter/avfiltergraph.c AVFilterContext **filters, *s; s 188 libavfilter/avfiltergraph.c s = ff_filter_alloc(filter, name); s 189 libavfilter/avfiltergraph.c if (!s) s 194 libavfilter/avfiltergraph.c avfilter_free(s); s 199 libavfilter/avfiltergraph.c graph->filters[graph->nb_filters++] = s; s 201 libavfilter/avfiltergraph.c s->graph = graph; s 203 libavfilter/avfiltergraph.c return s; s 70 libavfilter/buffersrc.c #define CHECK_VIDEO_PARAM_CHANGE(s, c, width, height, format, pts)\ s 72 libavfilter/buffersrc.c av_log(s, AV_LOG_INFO, "filter context - w: %d h: %d fmt: %d, incoming frame - w: %d h: %d fmt: %d pts_time: %s\n",\ s 73 libavfilter/buffersrc.c c->w, c->h, c->pix_fmt, width, height, format, av_ts2timestr(pts, &s->outputs[0]->time_base));\ s 74 libavfilter/buffersrc.c av_log(s, AV_LOG_WARNING, "Changing video frame properties on the fly is not supported by all filters.\n");\ s 77 libavfilter/buffersrc.c #define CHECK_AUDIO_PARAM_CHANGE(s, c, srate, ch_layout, ch_count, format, pts)\ s 80 libavfilter/buffersrc.c av_log(s, AV_LOG_INFO, "filter context - fmt: %s r: %d layout: %"PRIX64" ch: %d, incoming frame - fmt: %s r: %d layout: %"PRIX64" ch: %d pts_time: %s\n",\ s 82 libavfilter/buffersrc.c av_get_sample_fmt_name(format), srate, ch_layout, ch_count, av_ts2timestr(pts, &s->outputs[0]->time_base));\ s 83 libavfilter/buffersrc.c av_log(s, AV_LOG_ERROR, "Changing audio frame properties on the fly is not supported.\n");\ s 100 libavfilter/buffersrc.c BufferSourceContext *s = ctx->priv; s 103 libavfilter/buffersrc.c s->time_base = param->time_base; s 108 libavfilter/buffersrc.c s->pix_fmt = param->format; s 111 libavfilter/buffersrc.c s->w = param->width; s 113 libavfilter/buffersrc.c s->h = param->height; s 115 libavfilter/buffersrc.c s->pixel_aspect = param->sample_aspect_ratio; s 117 libavfilter/buffersrc.c s->frame_rate = param->frame_rate; s 119 libavfilter/buffersrc.c av_buffer_unref(&s->hw_frames_ctx); s 120 libavfilter/buffersrc.c s->hw_frames_ctx = av_buffer_ref(param->hw_frames_ctx); s 121 libavfilter/buffersrc.c if (!s->hw_frames_ctx) s 127 libavfilter/buffersrc.c s->sample_fmt = param->format; s 130 libavfilter/buffersrc.c s->sample_rate = param->sample_rate; s 132 libavfilter/buffersrc.c s->channel_layout = param->channel_layout; s 196 libavfilter/buffersrc.c BufferSourceContext *s = ctx->priv; s 200 libavfilter/buffersrc.c s->nb_failed_requests = 0; s 204 libavfilter/buffersrc.c if (s->eof) s 213 libavfilter/buffersrc.c CHECK_VIDEO_PARAM_CHANGE(ctx, s, frame->width, frame->height, s 219 libavfilter/buffersrc.c frame->channel_layout = s->channel_layout; s 220 libavfilter/buffersrc.c CHECK_AUDIO_PARAM_CHANGE(ctx, s, frame->sample_rate, frame->channel_layout, s 257 libavfilter/buffersrc.c BufferSourceContext *s = ctx->priv; s 259 libavfilter/buffersrc.c s->eof = 1; s 326 libavfilter/buffersrc.c BufferSourceContext *s = ctx->priv; s 329 libavfilter/buffersrc.c if (s->sample_fmt == AV_SAMPLE_FMT_NONE) { s 334 libavfilter/buffersrc.c if (s->channel_layout_str || s->channel_layout) { s 337 libavfilter/buffersrc.c if (!s->channel_layout) { s 338 libavfilter/buffersrc.c s->channel_layout = av_get_channel_layout(s->channel_layout_str); s 339 libavfilter/buffersrc.c if (!s->channel_layout) { s 341 libavfilter/buffersrc.c s->channel_layout_str); s 345 libavfilter/buffersrc.c n = av_get_channel_layout_nb_channels(s->channel_layout); s 346 libavfilter/buffersrc.c if (s->channels) { s 347 libavfilter/buffersrc.c if (n != s->channels) { s 351 libavfilter/buffersrc.c s->channels, s->channel_layout_str, n); s 355 libavfilter/buffersrc.c s->channels = n; s 356 libavfilter/buffersrc.c } else if (!s->channels) { s 362 libavfilter/buffersrc.c if (!s->time_base.num) s 363 libavfilter/buffersrc.c s->time_base = (AVRational){1, s->sample_rate}; s 367 libavfilter/buffersrc.c s->time_base.num, s->time_base.den, av_get_sample_fmt_name(s->sample_fmt), s 368 libavfilter/buffersrc.c s->sample_rate, s->channel_layout_str); s 375 libavfilter/buffersrc.c BufferSourceContext *s = ctx->priv; s 376 libavfilter/buffersrc.c av_buffer_unref(&s->hw_frames_ctx); s 131 libavfilter/colorspacedsp_template.c int16_t *rgb[3], ptrdiff_t s, s 161 libavfilter/colorspacedsp_template.c int r10 = rgb0[x * 2 + 0 + s], g10 = rgb1[x * 2 + 0 + s], b10 = rgb2[x * 2 + 0 + s]; s 162 libavfilter/colorspacedsp_template.c int r11 = rgb0[x * 2 + 1 + s], g11 = rgb1[x * 2 + 1 + s], b11 = rgb2[x * 2 + 1 + s]; s 196 libavfilter/colorspacedsp_template.c rgb0 += s * (1 << SS_H); s 197 libavfilter/colorspacedsp_template.c rgb1 += s * (1 << SS_H); s 198 libavfilter/colorspacedsp_template.c rgb2 += s * (1 << SS_H); s 209 libavfilter/colorspacedsp_template.c int16_t *rgb[3], ptrdiff_t s, s 253 libavfilter/colorspacedsp_template.c int r10 = rgb0[x * 2 + 0 + s], g10 = rgb1[x * 2 + 0 + s], b10 = rgb2[x * 2 + 0 + s]; s 254 libavfilter/colorspacedsp_template.c int r11 = rgb0[x * 2 + 1 + s], g11 = rgb1[x * 2 + 1 + s], b11 = rgb2[x * 2 + 1 + s]; s 324 libavfilter/colorspacedsp_template.c rgb0 += s * (1 << SS_H); s 325 libavfilter/colorspacedsp_template.c rgb1 += s * (1 << SS_H); s 326 libavfilter/colorspacedsp_template.c rgb2 += s * (1 << SS_H); s 63 libavfilter/convolution.h void ff_convolution_init_x86(ConvolutionContext *s); s 53 libavfilter/f_bench.c BenchContext *s = ctx->priv; s 54 libavfilter/f_bench.c s->min = INT64_MAX; s 55 libavfilter/f_bench.c s->max = INT64_MIN; s 62 libavfilter/f_bench.c BenchContext *s = ctx->priv; s 69 libavfilter/f_bench.c if (s->action == ACTION_START) { s 71 libavfilter/f_bench.c } else if (s->action == ACTION_STOP) { s 76 libavfilter/f_bench.c s->sum += diff; s 77 libavfilter/f_bench.c s->n++; s 78 libavfilter/f_bench.c s->min = FFMIN(s->min, diff); s 79 libavfilter/f_bench.c s->max = FFMAX(s->max, diff); s 80 libavfilter/f_bench.c av_log(s, AV_LOG_INFO, "t:%f avg:%f max:%f min:%f\n", s 81 libavfilter/f_bench.c T2F(diff), T2F(s->sum / s->n), T2F(s->max), T2F(s->min)); s 40 libavfilter/f_cue.c CueContext *s = ctx->priv; s 48 libavfilter/f_cue.c if (!s->status) { s 49 libavfilter/f_cue.c s->first_pts = pts; s 50 libavfilter/f_cue.c s->status++; s 52 libavfilter/f_cue.c if (s->status == 1) { s 53 libavfilter/f_cue.c if (pts - s->first_pts < s->preroll) { s 59 libavfilter/f_cue.c s->first_pts = pts; s 60 libavfilter/f_cue.c s->status++; s 62 libavfilter/f_cue.c if (s->status == 2) { s 65 libavfilter/f_cue.c if (!(pts - s->first_pts < s->buffer && (av_gettime() - s->cue) < 0)) s 66 libavfilter/f_cue.c s->status++; s 68 libavfilter/f_cue.c if (s->status == 3) { s 70 libavfilter/f_cue.c while ((diff = (av_gettime() - s->cue)) < 0) s 72 libavfilter/f_cue.c s->status++; s 74 libavfilter/f_cue.c if (s->status == 4) { s 92 libavfilter/f_drawgraph.c DrawGraphContext *s = ctx->priv; s 95 libavfilter/f_drawgraph.c if (s->max <= s->min) { s 101 libavfilter/f_drawgraph.c if (s->fg_str[i]) { s 102 libavfilter/f_drawgraph.c ret = av_expr_parse(&s->fg_expr[i], s->fg_str[i], var_names, s 110 libavfilter/f_drawgraph.c s->first[0] = s->first[1] = s->first[2] = s->first[3] = 1; s 112 libavfilter/f_drawgraph.c if (s->slide == 4) { s 113 libavfilter/f_drawgraph.c s->values[0] = av_fast_realloc(NULL, &s->values_size[0], 2000); s 114 libavfilter/f_drawgraph.c s->values[1] = av_fast_realloc(NULL, &s->values_size[1], 2000); s 115 libavfilter/f_drawgraph.c s->values[2] = av_fast_realloc(NULL, &s->values_size[2], 2000); s 116 libavfilter/f_drawgraph.c s->values[3] = av_fast_realloc(NULL, &s->values_size[3], 2000); s 118 libavfilter/f_drawgraph.c if (!s->values[0] || !s->values[1] || s 119 libavfilter/f_drawgraph.c !s->values[2] || !s->values[3]) { s 143 libavfilter/f_drawgraph.c static void clear_image(DrawGraphContext *s, AVFrame *out, AVFilterLink *outlink) s 146 libavfilter/f_drawgraph.c int bg = AV_RN32(s->bg); s 161 libavfilter/f_drawgraph.c DrawGraphContext *s = ctx->priv; s 165 libavfilter/f_drawgraph.c AVFrame *out = s->out; s 170 libavfilter/f_drawgraph.c if (s->slide == 4 && s->nb_values >= s->values_size[0] / sizeof(float)) { s 173 libavfilter/f_drawgraph.c ptr = av_fast_realloc(s->values[0], &s->values_size[0], s->values_size[0] * 2); s 176 libavfilter/f_drawgraph.c s->values[0] = ptr; s 178 libavfilter/f_drawgraph.c ptr = av_fast_realloc(s->values[1], &s->values_size[1], s->values_size[1] * 2); s 181 libavfilter/f_drawgraph.c s->values[1] = ptr; s 183 libavfilter/f_drawgraph.c ptr = av_fast_realloc(s->values[2], &s->values_size[2], s->values_size[2] * 2); s 186 libavfilter/f_drawgraph.c s->values[2] = ptr; s 188 libavfilter/f_drawgraph.c ptr = av_fast_realloc(s->values[3], &s->values_size[3], s->values_size[3] * 2); s 191 libavfilter/f_drawgraph.c s->values[3] = ptr; s 194 libavfilter/f_drawgraph.c if (s->slide != 4 || s->nb_values == 0) { s 195 libavfilter/f_drawgraph.c if (!s->out || s->out->width != outlink->w || s 196 libavfilter/f_drawgraph.c s->out->height != outlink->h) { s 197 libavfilter/f_drawgraph.c av_frame_free(&s->out); s 198 libavfilter/f_drawgraph.c s->out = ff_get_video_buffer(outlink, outlink->w, outlink->h); s 199 libavfilter/f_drawgraph.c out = s->out; s 200 libavfilter/f_drawgraph.c if (!s->out) { s 205 libavfilter/f_drawgraph.c clear_image(s, out, outlink); s 218 libavfilter/f_drawgraph.c if (s->slide == 4) s 219 libavfilter/f_drawgraph.c s->values[i][s->nb_values] = NAN; s 221 libavfilter/f_drawgraph.c e = av_dict_get(metadata, s->key[i], NULL, 0); s 228 libavfilter/f_drawgraph.c vf = av_clipf(vf, s->min, s->max); s 230 libavfilter/f_drawgraph.c if (s->slide == 4) { s 231 libavfilter/f_drawgraph.c s->values[i][s->nb_values] = vf; s 235 libavfilter/f_drawgraph.c values[VAR_MIN] = s->min; s 236 libavfilter/f_drawgraph.c values[VAR_MAX] = s->max; s 239 libavfilter/f_drawgraph.c fg = av_expr_eval(s->fg_expr[i], values, NULL); s 240 libavfilter/f_drawgraph.c bg = AV_RN32(s->bg); s 242 libavfilter/f_drawgraph.c if (i == 0 && (s->x >= outlink->w || s->slide == 3)) { s 243 libavfilter/f_drawgraph.c if (s->slide == 0 || s->slide == 1) s 244 libavfilter/f_drawgraph.c s->x = 0; s 246 libavfilter/f_drawgraph.c if (s->slide == 2) { s 247 libavfilter/f_drawgraph.c s->x = outlink->w - 1; s 253 libavfilter/f_drawgraph.c } else if (s->slide == 3) { s 254 libavfilter/f_drawgraph.c s->x = 0; s 260 libavfilter/f_drawgraph.c } else if (s->slide == 0) { s 261 libavfilter/f_drawgraph.c clear_image(s, out, outlink); s 265 libavfilter/f_drawgraph.c x = s->x; s 266 libavfilter/f_drawgraph.c y = (outlink->h - 1) * (1 - ((vf - s->min) / (s->max - s->min))); s 268 libavfilter/f_drawgraph.c switch (s->mode) { s 270 libavfilter/f_drawgraph.c if (i == 0 && (s->slide > 0)) s 286 libavfilter/f_drawgraph.c if (i == 0 && (s->slide > 0)) s 292 libavfilter/f_drawgraph.c if (s->first[i]) { s 293 libavfilter/f_drawgraph.c s->first[i] = 0; s 294 libavfilter/f_drawgraph.c s->prev_y[i] = y; s 297 libavfilter/f_drawgraph.c if (i == 0 && (s->slide > 0)) { s 303 libavfilter/f_drawgraph.c if (y <= s->prev_y[i]) { s 304 libavfilter/f_drawgraph.c for (j = y; j <= s->prev_y[i]; j++) s 307 libavfilter/f_drawgraph.c for (j = s->prev_y[i]; j <= y; j++) s 310 libavfilter/f_drawgraph.c s->prev_y[i] = y; s 315 libavfilter/f_drawgraph.c s->nb_values++; s 316 libavfilter/f_drawgraph.c s->x++; s 322 libavfilter/f_drawgraph.c if (s->slide == 4) s 327 libavfilter/f_drawgraph.c if (out_pts == s->prev_pts) s 330 libavfilter/f_drawgraph.c clone = av_frame_clone(s->out); s 334 libavfilter/f_drawgraph.c clone->pts = s->prev_pts = out_pts; s 341 libavfilter/f_drawgraph.c DrawGraphContext *s = ctx->priv; s 342 libavfilter/f_drawgraph.c AVFrame *out = s->out; s 347 libavfilter/f_drawgraph.c if (s->slide == 4 && ret == AVERROR_EOF && s->nb_values > 0) { s 348 libavfilter/f_drawgraph.c s->x = l = 0; s 349 libavfilter/f_drawgraph.c step = ceil(s->nb_values / (float)s->w); s 351 libavfilter/f_drawgraph.c for (k = 0; k < s->nb_values; k++) { s 356 libavfilter/f_drawgraph.c float vf = s->values[i][k]; s 361 libavfilter/f_drawgraph.c values[VAR_MIN] = s->min; s 362 libavfilter/f_drawgraph.c values[VAR_MAX] = s->max; s 365 libavfilter/f_drawgraph.c fg = av_expr_eval(s->fg_expr[i], values, NULL); s 366 libavfilter/f_drawgraph.c bg = AV_RN32(s->bg); s 368 libavfilter/f_drawgraph.c x = s->x; s 369 libavfilter/f_drawgraph.c y = (outlink->h - 1) * (1 - ((vf - s->min) / (s->max - s->min))); s 371 libavfilter/f_drawgraph.c switch (s->mode) { s 388 libavfilter/f_drawgraph.c if (s->first[i]) { s 389 libavfilter/f_drawgraph.c s->first[i] = 0; s 390 libavfilter/f_drawgraph.c s->prev_y[i] = y; s 393 libavfilter/f_drawgraph.c if (y <= s->prev_y[i]) { s 394 libavfilter/f_drawgraph.c for (j = y; j <= s->prev_y[i]; j++) s 397 libavfilter/f_drawgraph.c for (j = s->prev_y[i]; j <= y; j++) s 400 libavfilter/f_drawgraph.c s->prev_y[i] = y; s 408 libavfilter/f_drawgraph.c s->x++; s 412 libavfilter/f_drawgraph.c s->nb_values = 0; s 414 libavfilter/f_drawgraph.c ret = ff_filter_frame(ctx->outputs[0], s->out); s 422 libavfilter/f_drawgraph.c DrawGraphContext *s = outlink->src->priv; s 424 libavfilter/f_drawgraph.c outlink->w = s->w; s 425 libavfilter/f_drawgraph.c outlink->h = s->h; s 427 libavfilter/f_drawgraph.c outlink->frame_rate = s->frame_rate; s 429 libavfilter/f_drawgraph.c s->prev_pts = AV_NOPTS_VALUE; s 436 libavfilter/f_drawgraph.c DrawGraphContext *s = ctx->priv; s 440 libavfilter/f_drawgraph.c av_expr_free(s->fg_expr[i]); s 442 libavfilter/f_drawgraph.c if (s->slide != 4) s 443 libavfilter/f_drawgraph.c av_frame_free(&s->out); s 445 libavfilter/f_drawgraph.c av_freep(&s->values[0]); s 446 libavfilter/f_drawgraph.c av_freep(&s->values[1]); s 447 libavfilter/f_drawgraph.c av_freep(&s->values[2]); s 448 libavfilter/f_drawgraph.c av_freep(&s->values[3]); s 109 libavfilter/f_graphmonitor.c static void clear_image(GraphMonitorContext *s, AVFrame *out, AVFilterLink *outlink) s 111 libavfilter/f_graphmonitor.c int bg = AV_RN32(s->bg); s 174 libavfilter/f_graphmonitor.c GraphMonitorContext *s = ctx->priv; s 177 libavfilter/f_graphmonitor.c if (s->flags & MODE_FMT) { s 185 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 188 libavfilter/f_graphmonitor.c if (s->flags & MODE_SIZE) { s 194 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 197 libavfilter/f_graphmonitor.c if (s->flags & MODE_RATE) { s 203 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 206 libavfilter/f_graphmonitor.c if (s->flags & MODE_TB) { s 208 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 211 libavfilter/f_graphmonitor.c if (s->flags & MODE_QUEUE) { s 213 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 216 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, frames > 0 ? frames >= 10 ? frames >= 50 ? s->red : s->yellow : s->green : s->white); s 219 libavfilter/f_graphmonitor.c if (s->flags & MODE_FCIN) { s 221 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 224 libavfilter/f_graphmonitor.c if (s->flags & MODE_FCOUT) { s 226 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 229 libavfilter/f_graphmonitor.c if (s->flags & MODE_PTS) { s 231 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 234 libavfilter/f_graphmonitor.c if (s->flags & MODE_TIME) { s 236 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 243 libavfilter/f_graphmonitor.c GraphMonitorContext *s = ctx->priv; s 252 libavfilter/f_graphmonitor.c clear_image(s, out, outlink); s 258 libavfilter/f_graphmonitor.c if (s->mode && !filter_have_queued(filter)) s 262 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, filter->name, s->white); s 264 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, filter->filter->name, s->white); s 270 libavfilter/f_graphmonitor.c if (s->mode && !frames) s 275 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 277 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, l->src->name, s->white); s 288 libavfilter/f_graphmonitor.c if (s->mode && !frames) s 293 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, buffer, s->white); s 295 libavfilter/f_graphmonitor.c drawtext(out, xpos, ypos, l->dst->name, s->white); s 304 libavfilter/f_graphmonitor.c s->pts = pts + 1; s 310 libavfilter/f_graphmonitor.c GraphMonitorContext *s = ctx->priv; s 332 libavfilter/f_graphmonitor.c if (s->pts == AV_NOPTS_VALUE) s 333 libavfilter/f_graphmonitor.c s->pts = pts; s 334 libavfilter/f_graphmonitor.c s->next_pts = pts; s 337 libavfilter/f_graphmonitor.c if (s->pts < s->next_pts && ff_outlink_frame_wanted(outlink)) s 338 libavfilter/f_graphmonitor.c return create_frame(ctx, s->pts); s 348 libavfilter/f_graphmonitor.c GraphMonitorContext *s = outlink->src->priv; s 350 libavfilter/f_graphmonitor.c s->bg[3] = 255 * s->opacity; s 351 libavfilter/f_graphmonitor.c s->white[0] = s->white[1] = s->white[2] = 255; s 352 libavfilter/f_graphmonitor.c s->yellow[0] = s->yellow[1] = 255; s 353 libavfilter/f_graphmonitor.c s->red[0] = 255; s 354 libavfilter/f_graphmonitor.c s->green[1] = 255; s 355 libavfilter/f_graphmonitor.c s->pts = AV_NOPTS_VALUE; s 356 libavfilter/f_graphmonitor.c s->next_pts = AV_NOPTS_VALUE; s 357 libavfilter/f_graphmonitor.c outlink->w = s->w; s 358 libavfilter/f_graphmonitor.c outlink->h = s->h; s 360 libavfilter/f_graphmonitor.c outlink->frame_rate = s->frame_rate; s 361 libavfilter/f_graphmonitor.c outlink->time_base = av_inv_q(s->frame_rate); s 65 libavfilter/f_interleave.c InterleaveContext *s = ctx->priv; s 113 libavfilter/f_interleave.c frame->pts = s->pts = pts; s 121 libavfilter/f_interleave.c if ((nb_eofs > 0 && s->duration_mode == DURATION_SHORTEST) || s 122 libavfilter/f_interleave.c (nb_eofs == ctx->nb_inputs && s->duration_mode == DURATION_LONGEST) || s 123 libavfilter/f_interleave.c (ff_outlink_get_status(ctx->inputs[0]) && s->duration_mode == DURATION_FIRST)) { s 124 libavfilter/f_interleave.c ff_outlink_set_status(outlink, AVERROR_EOF, s->pts); s 148 libavfilter/f_interleave.c InterleaveContext *s = ctx->priv; s 152 libavfilter/f_interleave.c for (i = 0; i < s->nb_inputs; i++) { s 60 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 62 libavfilter/f_loop.c if (!s->size) s 72 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 74 libavfilter/f_loop.c s->fifo = av_audio_fifo_alloc(inlink->format, inlink->channels, 8192); s 75 libavfilter/f_loop.c s->left = av_audio_fifo_alloc(inlink->format, inlink->channels, 8192); s 76 libavfilter/f_loop.c if (!s->fifo || !s->left) s 86 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 88 libavfilter/f_loop.c av_audio_fifo_free(s->fifo); s 89 libavfilter/f_loop.c av_audio_fifo_free(s->left); s 95 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 99 libavfilter/f_loop.c while (s->loop != 0 && i < nb_samples) { s 100 libavfilter/f_loop.c out = ff_get_audio_buffer(outlink, FFMIN(nb_samples, s->nb_samples - s->current_sample)); s 103 libavfilter/f_loop.c ret = av_audio_fifo_peek_at(s->fifo, (void **)out->extended_data, out->nb_samples, s->current_sample); s 108 libavfilter/f_loop.c out->pts = s->pts; s 110 libavfilter/f_loop.c s->pts += av_rescale_q(out->nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 112 libavfilter/f_loop.c s->current_sample += out->nb_samples; s 118 libavfilter/f_loop.c if (s->current_sample >= s->nb_samples) { s 119 libavfilter/f_loop.c s->duration = s->pts; s 120 libavfilter/f_loop.c s->current_sample = 0; s 122 libavfilter/f_loop.c if (s->loop > 0) s 123 libavfilter/f_loop.c s->loop--; s 134 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 137 libavfilter/f_loop.c if (s->ignored_samples + frame->nb_samples > s->start && s->size > 0 && s->loop != 0) { s 138 libavfilter/f_loop.c if (s->nb_samples < s->size) { s 139 libavfilter/f_loop.c int written = FFMIN(frame->nb_samples, s->size - s->nb_samples); s 142 libavfilter/f_loop.c ret = av_audio_fifo_write(s->fifo, (void **)frame->extended_data, written); s 145 libavfilter/f_loop.c if (!s->nb_samples) { s 146 libavfilter/f_loop.c drain = FFMAX(0, s->start - s->ignored_samples); s 147 libavfilter/f_loop.c s->pts = frame->pts; s 148 libavfilter/f_loop.c av_audio_fifo_drain(s->fifo, drain); s 149 libavfilter/f_loop.c s->pts += av_rescale_q(s->start - s->ignored_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 151 libavfilter/f_loop.c s->nb_samples += ret - drain; s 153 libavfilter/f_loop.c if (s->nb_samples == s->size && drain > 0) { s 156 libavfilter/f_loop.c ret2 = av_audio_fifo_write(s->left, (void **)frame->extended_data, frame->nb_samples); s 159 libavfilter/f_loop.c av_audio_fifo_drain(s->left, drain); s 162 libavfilter/f_loop.c s->pts += av_rescale_q(ret, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 171 libavfilter/f_loop.c s->ignored_samples += frame->nb_samples; s 172 libavfilter/f_loop.c frame->pts = s->pts; s 173 libavfilter/f_loop.c s->pts += av_rescale_q(frame->nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 183 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 186 libavfilter/f_loop.c if ((!s->size) || s 187 libavfilter/f_loop.c (s->nb_samples < s->size) || s 188 libavfilter/f_loop.c (s->nb_samples >= s->size && s->loop == 0)) { s 189 libavfilter/f_loop.c int nb_samples = av_audio_fifo_size(s->left); s 191 libavfilter/f_loop.c if (s->loop == 0 && nb_samples > 0) { s 197 libavfilter/f_loop.c av_audio_fifo_read(s->left, (void **)out->extended_data, nb_samples); s 198 libavfilter/f_loop.c out->pts = s->pts; s 199 libavfilter/f_loop.c s->pts += av_rescale_q(nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); s 209 libavfilter/f_loop.c if (s->eof && s->nb_samples > 0 && s->loop != 0) { s 220 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 227 libavfilter/f_loop.c if (!s->eof && (s->nb_samples < s->size || !s->loop || !s->size)) { s 235 libavfilter/f_loop.c if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 237 libavfilter/f_loop.c s->size = s->nb_samples; s 238 libavfilter/f_loop.c s->eof = 1; s 242 libavfilter/f_loop.c if (s->eof && (!s->loop || !s->size)) { s 243 libavfilter/f_loop.c ff_outlink_set_status(outlink, AVERROR_EOF, s->duration); s 247 libavfilter/f_loop.c if (!s->eof && (!s->size || s 248 libavfilter/f_loop.c (s->nb_samples < s->size) || s 249 libavfilter/f_loop.c (s->nb_samples >= s->size && s->loop == 0))) { s 251 libavfilter/f_loop.c } else if (s->loop && s->nb_samples == s->size) { s 300 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 302 libavfilter/f_loop.c s->frames = av_calloc(s->size, sizeof(*s->frames)); s 303 libavfilter/f_loop.c if (!s->frames) s 313 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 316 libavfilter/f_loop.c for (i = 0; i < s->nb_frames; i++) s 317 libavfilter/f_loop.c av_frame_free(&s->frames[i]); s 319 libavfilter/f_loop.c av_freep(&s->frames); s 320 libavfilter/f_loop.c s->nb_frames = 0; s 326 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 330 libavfilter/f_loop.c AVFrame *out = av_frame_clone(s->frames[s->current_frame]); s 334 libavfilter/f_loop.c out->pts += s->duration - s->start_pts; s 341 libavfilter/f_loop.c s->current_frame++; s 343 libavfilter/f_loop.c if (s->current_frame >= s->nb_frames) { s 344 libavfilter/f_loop.c s->duration = pts; s 345 libavfilter/f_loop.c s->current_frame = 0; s 347 libavfilter/f_loop.c if (s->loop > 0) s 348 libavfilter/f_loop.c s->loop--; s 358 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 362 libavfilter/f_loop.c if (inlink->frame_count_out >= s->start && s->size > 0 && s->loop != 0) { s 363 libavfilter/f_loop.c if (s->nb_frames < s->size) { s 364 libavfilter/f_loop.c if (!s->nb_frames) s 365 libavfilter/f_loop.c s->start_pts = frame->pts; s 366 libavfilter/f_loop.c s->frames[s->nb_frames] = av_frame_clone(frame); s 367 libavfilter/f_loop.c if (!s->frames[s->nb_frames]) { s 371 libavfilter/f_loop.c s->nb_frames++; s 376 libavfilter/f_loop.c s->duration = frame->pts + duration; s 383 libavfilter/f_loop.c frame->pts += s->duration; s 394 libavfilter/f_loop.c LoopContext *s = ctx->priv; s 401 libavfilter/f_loop.c if (!s->eof && (s->nb_frames < s->size || !s->loop || !s->size)) { s 409 libavfilter/f_loop.c if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 411 libavfilter/f_loop.c s->size = s->nb_frames; s 412 libavfilter/f_loop.c s->eof = 1; s 416 libavfilter/f_loop.c if (s->eof && (!s->loop || !s->size)) { s 417 libavfilter/f_loop.c ff_outlink_set_status(outlink, AVERROR_EOF, s->duration); s 421 libavfilter/f_loop.c if (!s->eof && (!s->size || s 422 libavfilter/f_loop.c (s->nb_frames < s->size) || s 423 libavfilter/f_loop.c (s->nb_frames >= s->size && s->loop == 0))) { s 425 libavfilter/f_loop.c } else if (s->loop && s->nb_frames == s->size) { s 88 libavfilter/f_metadata.c int (*compare)(struct MetadataContext *s, s 120 libavfilter/f_metadata.c static int same_str(MetadataContext *s, const char *value1, const char *value2) s 125 libavfilter/f_metadata.c static int starts_with(MetadataContext *s, const char *value1, const char *value2) s 130 libavfilter/f_metadata.c static int ends_with(MetadataContext *s, const char *value1, const char *value2) s 138 libavfilter/f_metadata.c static int equal(MetadataContext *s, const char *value1, const char *value2) s 148 libavfilter/f_metadata.c static int less(MetadataContext *s, const char *value1, const char *value2) s 158 libavfilter/f_metadata.c static int greater(MetadataContext *s, const char *value1, const char *value2) s 168 libavfilter/f_metadata.c static int parse_expr(MetadataContext *s, const char *value1, const char *value2) s 175 libavfilter/f_metadata.c s->var_values[VAR_VALUE1] = f1; s 176 libavfilter/f_metadata.c s->var_values[VAR_VALUE2] = f2; s 178 libavfilter/f_metadata.c return av_expr_eval(s->expr, s->var_values, NULL); s 193 libavfilter/f_metadata.c MetadataContext *s = ctx->priv; s 200 libavfilter/f_metadata.c avio_write(s->avio_context, buf, av_strnlen(buf, sizeof(buf))); s 207 libavfilter/f_metadata.c MetadataContext *s = ctx->priv; s 210 libavfilter/f_metadata.c if (!s->key && s->mode != METADATA_PRINT && s->mode != METADATA_DELETE) { s 215 libavfilter/f_metadata.c if ((s->mode == METADATA_MODIFY || s 216 libavfilter/f_metadata.c s->mode == METADATA_ADD) && !s->value) { s 221 libavfilter/f_metadata.c switch (s->function) { s 223 libavfilter/f_metadata.c s->compare = same_str; s 226 libavfilter/f_metadata.c s->compare = starts_with; s 229 libavfilter/f_metadata.c s->compare = ends_with; s 232 libavfilter/f_metadata.c s->compare = less; s 235 libavfilter/f_metadata.c s->compare = equal; s 238 libavfilter/f_metadata.c s->compare = greater; s 241 libavfilter/f_metadata.c s->compare = parse_expr; s 247 libavfilter/f_metadata.c if (s->function == METADATAF_EXPR) { s 248 libavfilter/f_metadata.c if (!s->expr_str) { s 252 libavfilter/f_metadata.c if ((ret = av_expr_parse(&s->expr, s->expr_str, s 254 libavfilter/f_metadata.c av_log(ctx, AV_LOG_ERROR, "Error while parsing expression '%s'\n", s->expr_str); s 259 libavfilter/f_metadata.c if (s->mode == METADATA_PRINT && s->file_str) { s 260 libavfilter/f_metadata.c s->print = print_file; s 262 libavfilter/f_metadata.c s->print = print_log; s 265 libavfilter/f_metadata.c s->avio_context = NULL; s 266 libavfilter/f_metadata.c if (s->file_str) { s 267 libavfilter/f_metadata.c if (!strcmp("-", s->file_str)) { s 268 libavfilter/f_metadata.c ret = avio_open(&s->avio_context, "pipe:1", AVIO_FLAG_WRITE); s 270 libavfilter/f_metadata.c ret = avio_open(&s->avio_context, s->file_str, AVIO_FLAG_WRITE); s 277 libavfilter/f_metadata.c s->file_str, buf); s 281 libavfilter/f_metadata.c if (s->direct) s 282 libavfilter/f_metadata.c s->avio_context->direct = AVIO_FLAG_DIRECT; s 290 libavfilter/f_metadata.c MetadataContext *s = ctx->priv; s 292 libavfilter/f_metadata.c av_expr_free(s->expr); s 293 libavfilter/f_metadata.c s->expr = NULL; s 294 libavfilter/f_metadata.c if (s->avio_context) { s 295 libavfilter/f_metadata.c avio_closep(&s->avio_context); s 303 libavfilter/f_metadata.c MetadataContext *s = ctx->priv; s 307 libavfilter/f_metadata.c if (!*metadata && s->mode != METADATA_ADD) s 310 libavfilter/f_metadata.c e = av_dict_get(*metadata, !s->key ? "" : s->key, NULL, s 311 libavfilter/f_metadata.c !s->key ? AV_DICT_IGNORE_SUFFIX: 0); s 313 libavfilter/f_metadata.c switch (s->mode) { s 315 libavfilter/f_metadata.c if (!s->value && e && e->value) { s 317 libavfilter/f_metadata.c } else if (s->value && e && e->value && s 318 libavfilter/f_metadata.c s->compare(s, e->value, s->value)) { s 326 libavfilter/f_metadata.c av_dict_set(metadata, s->key, s->value, 0); s 331 libavfilter/f_metadata.c av_dict_set(metadata, s->key, s->value, 0); s 335 libavfilter/f_metadata.c if (!s->key && e) { s 336 libavfilter/f_metadata.c s->print(ctx, "frame:%-4"PRId64" pts:%-7s pts_time:%s\n", s 338 libavfilter/f_metadata.c s->print(ctx, "%s=%s\n", e->key, e->value); s 340 libavfilter/f_metadata.c s->print(ctx, "%s=%s\n", e->key, e->value); s 342 libavfilter/f_metadata.c } else if (e && e->value && (!s->value || (e->value && s->compare(s, e->value, s->value)))) { s 343 libavfilter/f_metadata.c s->print(ctx, "frame:%-4"PRId64" pts:%-7s pts_time:%s\n", s 345 libavfilter/f_metadata.c s->print(ctx, "%s=%s\n", s->key, e->value); s 349 libavfilter/f_metadata.c if (!s->key) { s 351 libavfilter/f_metadata.c } else if (e && e->value && (!s->value || s->compare(s, e->value, s->value))) { s 352 libavfilter/f_metadata.c av_dict_set(metadata, s->key, NULL, 0); s 59 libavfilter/f_perms.c PermsContext *s = ctx->priv; s 61 libavfilter/f_perms.c if (s->mode == MODE_RANDOM) { s 64 libavfilter/f_perms.c if (s->random_seed == -1) s 65 libavfilter/f_perms.c s->random_seed = av_get_random_seed(); s 66 libavfilter/f_perms.c seed = s->random_seed; s 68 libavfilter/f_perms.c av_lfg_init(&s->lfg, seed); s 81 libavfilter/f_perms.c PermsContext *s = ctx->priv; s 86 libavfilter/f_perms.c switch (s->mode) { s 88 libavfilter/f_perms.c case MODE_RANDOM: out_perm = av_lfg_get(&s->lfg) & 1 ? RW : RO; break; s 38 libavfilter/f_realtime.c RealtimeContext *s = ctx->priv; s 41 libavfilter/f_realtime.c int64_t pts = av_rescale_q(frame->pts, inlink->time_base, AV_TIME_BASE_Q) / s->speed; s 43 libavfilter/f_realtime.c int64_t sleep = pts - now + s->delta; s 44 libavfilter/f_realtime.c if (!s->inited) { s 45 libavfilter/f_realtime.c s->inited = 1; s 47 libavfilter/f_realtime.c s->delta = now - pts; s 49 libavfilter/f_realtime.c if (FFABS(sleep) > s->limit / s->speed) { s 54 libavfilter/f_realtime.c s->delta = now - pts; s 40 libavfilter/f_reverse.c ReverseContext *s = ctx->priv; s 42 libavfilter/f_reverse.c s->pts = av_fast_realloc(NULL, &s->pts_size, s 43 libavfilter/f_reverse.c DEFAULT_LENGTH * sizeof(*(s->pts))); s 44 libavfilter/f_reverse.c if (!s->pts) s 47 libavfilter/f_reverse.c s->frames = av_fast_realloc(NULL, &s->frames_size, s 48 libavfilter/f_reverse.c DEFAULT_LENGTH * sizeof(*(s->frames))); s 49 libavfilter/f_reverse.c if (!s->frames) { s 50 libavfilter/f_reverse.c av_freep(&s->pts); s 59 libavfilter/f_reverse.c ReverseContext *s = ctx->priv; s 61 libavfilter/f_reverse.c while (s->nb_frames > 0) { s 62 libavfilter/f_reverse.c av_frame_free(&s->frames[s->nb_frames - 1]); s 63 libavfilter/f_reverse.c s->nb_frames--; s 66 libavfilter/f_reverse.c av_freep(&s->pts); s 67 libavfilter/f_reverse.c av_freep(&s->frames); s 73 libavfilter/f_reverse.c ReverseContext *s = ctx->priv; s 76 libavfilter/f_reverse.c if (s->nb_frames + 1 > s->pts_size / sizeof(*(s->pts))) { s 77 libavfilter/f_reverse.c ptr = av_fast_realloc(s->pts, &s->pts_size, s->pts_size * 2); s 80 libavfilter/f_reverse.c s->pts = ptr; s 83 libavfilter/f_reverse.c if (s->nb_frames + 1 > s->frames_size / sizeof(*(s->frames))) { s 84 libavfilter/f_reverse.c ptr = av_fast_realloc(s->frames, &s->frames_size, s->frames_size * 2); s 87 libavfilter/f_reverse.c s->frames = ptr; s 90 libavfilter/f_reverse.c s->frames[s->nb_frames] = in; s 91 libavfilter/f_reverse.c s->pts[s->nb_frames] = in->pts; s 92 libavfilter/f_reverse.c s->nb_frames++; s 102 libavfilter/f_reverse.c ReverseContext *s = ctx->priv; s 107 libavfilter/f_reverse.c if (ret == AVERROR_EOF && s->nb_frames > 0) { s 108 libavfilter/f_reverse.c AVFrame *out = s->frames[s->nb_frames - 1]; s 109 libavfilter/f_reverse.c out->pts = s->pts[s->flush_idx++]; s 111 libavfilter/f_reverse.c s->frames[s->nb_frames - 1] = NULL; s 112 libavfilter/f_reverse.c s->nb_frames--; s 257 libavfilter/f_reverse.c ReverseContext *s = ctx->priv; s 262 libavfilter/f_reverse.c if (ret == AVERROR_EOF && s->nb_frames > 0) { s 263 libavfilter/f_reverse.c AVFrame *out = s->frames[s->nb_frames - 1]; s 264 libavfilter/f_reverse.c out->pts = s->pts[s->flush_idx++]; s 271 libavfilter/f_reverse.c s->frames[s->nb_frames - 1] = NULL; s 272 libavfilter/f_reverse.c s->nb_frames--; s 403 libavfilter/f_sendcmd.c SendCmdContext *s = ctx->priv; s 406 libavfilter/f_sendcmd.c if ((!!s->commands_filename + !!s->commands_str) != 1) { s 412 libavfilter/f_sendcmd.c if (s->commands_filename) { s 415 libavfilter/f_sendcmd.c ret = av_file_map(s->commands_filename, s 429 libavfilter/f_sendcmd.c s->commands_str = buf; s 432 libavfilter/f_sendcmd.c if ((ret = parse_intervals(&s->intervals, &s->nb_intervals, s 433 libavfilter/f_sendcmd.c s->commands_str, ctx)) < 0) s 436 libavfilter/f_sendcmd.c if (s->nb_intervals == 0) { s 441 libavfilter/f_sendcmd.c qsort(s->intervals, s->nb_intervals, sizeof(Interval), cmp_intervals); s 444 libavfilter/f_sendcmd.c for (i = 0; i < s->nb_intervals; i++) { s 446 libavfilter/f_sendcmd.c Interval *interval = &s->intervals[i]; s 462 libavfilter/f_sendcmd.c SendCmdContext *s = ctx->priv; s 465 libavfilter/f_sendcmd.c for (i = 0; i < s->nb_intervals; i++) { s 466 libavfilter/f_sendcmd.c Interval *interval = &s->intervals[i]; s 475 libavfilter/f_sendcmd.c av_freep(&s->intervals); s 484 libavfilter/f_sendcmd.c SendCmdContext *s = ctx->priv; s 495 libavfilter/f_sendcmd.c for (i = 0; i < s->nb_intervals; i++) { s 496 libavfilter/f_sendcmd.c Interval *interval = &s->intervals[i]; s 108 libavfilter/f_sidedata.c SideDataContext *s = ctx->priv; s 110 libavfilter/f_sidedata.c if (s->type == -1 && s->mode != SIDEDATA_DELETE) { s 122 libavfilter/f_sidedata.c SideDataContext *s = ctx->priv; s 125 libavfilter/f_sidedata.c if (s->type != -1) s 126 libavfilter/f_sidedata.c sd = av_frame_get_side_data(frame, s->type); s 128 libavfilter/f_sidedata.c switch (s->mode) { s 135 libavfilter/f_sidedata.c if (s->type == -1) { s 139 libavfilter/f_sidedata.c av_frame_remove_side_data(frame, s->type); s 56 libavfilter/f_streamselect.c StreamSelectContext *s = fs->opaque; s 57 libavfilter/f_streamselect.c AVFrame **in = s->frames; s 61 libavfilter/f_streamselect.c if ((ret = ff_framesync_get_frame(&s->fs, i, &in[i], 0)) < 0) s 66 libavfilter/f_streamselect.c for (i = 0; i < s->nb_map; i++) { s 67 libavfilter/f_streamselect.c if (s->map[i] == j) { s 70 libavfilter/f_streamselect.c if (s->is_audio && s->last_pts[j] == in[j]->pts && s 77 libavfilter/f_streamselect.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, ctx->outputs[i]->time_base); s 78 libavfilter/f_streamselect.c s->last_pts[j] = in[j]->pts; s 94 libavfilter/f_streamselect.c StreamSelectContext *s = ctx->priv; s 95 libavfilter/f_streamselect.c return ff_framesync_activate(&s->fs); s 101 libavfilter/f_streamselect.c StreamSelectContext *s = ctx->priv; s 103 libavfilter/f_streamselect.c const int inlink_idx = s->map[outlink_idx]; s 129 libavfilter/f_streamselect.c if (s->fs.opaque == s) s 132 libavfilter/f_streamselect.c if ((ret = ff_framesync_init(&s->fs, ctx, ctx->nb_inputs)) < 0) s 135 libavfilter/f_streamselect.c in = s->fs.in; s 136 libavfilter/f_streamselect.c s->fs.opaque = s; s 137 libavfilter/f_streamselect.c s->fs.on_event = process_frame; s 146 libavfilter/f_streamselect.c s->frames = av_calloc(ctx->nb_inputs, sizeof(*s->frames)); s 147 libavfilter/f_streamselect.c if (!s->frames) s 150 libavfilter/f_streamselect.c return ff_framesync_configure(&s->fs); s 187 libavfilter/f_streamselect.c StreamSelectContext *s = ctx->priv; s 196 libavfilter/f_streamselect.c new_map = av_calloc(s->nb_inputs, sizeof(*new_map)); s 210 libavfilter/f_streamselect.c if (new_nb_map >= s->nb_inputs) { s 212 libavfilter/f_streamselect.c "input pads available\n", s->nb_inputs); s 220 libavfilter/f_streamselect.c n, s->nb_inputs); s 235 libavfilter/f_streamselect.c av_freep(&s->map); s 236 libavfilter/f_streamselect.c s->map = new_map; s 237 libavfilter/f_streamselect.c s->nb_map = new_nb_map; s 239 libavfilter/f_streamselect.c av_log(ctx, AV_LOG_VERBOSE, "%d map set\n", s->nb_map); s 259 libavfilter/f_streamselect.c StreamSelectContext *s = ctx->priv; s 261 libavfilter/f_streamselect.c char *map = s->map_str; s 264 libavfilter/f_streamselect.c s->is_audio = 1; s 276 libavfilter/f_streamselect.c s->last_pts = av_calloc(s->nb_inputs, sizeof(*s->last_pts)); s 277 libavfilter/f_streamselect.c if (!s->last_pts) s 280 libavfilter/f_streamselect.c if ((ret = parse_definition(ctx, s->nb_inputs, 1, s->is_audio)) < 0 || s 281 libavfilter/f_streamselect.c (ret = parse_definition(ctx, nb_outputs, 0, s->is_audio)) < 0) s 287 libavfilter/f_streamselect.c return parse_mapping(ctx, s->map_str); s 292 libavfilter/f_streamselect.c StreamSelectContext *s = ctx->priv; s 294 libavfilter/f_streamselect.c av_freep(&s->last_pts); s 295 libavfilter/f_streamselect.c av_freep(&s->map); s 296 libavfilter/f_streamselect.c av_freep(&s->frames); s 297 libavfilter/f_streamselect.c ff_framesync_uninit(&s->fs); s 56 libavfilter/fifo.c FifoContext *s = ctx->priv; s 57 libavfilter/fifo.c s->last = &s->root; s 64 libavfilter/fifo.c FifoContext *s = ctx->priv; s 67 libavfilter/fifo.c for (buf = s->root.next; buf; buf = tmp) { s 73 libavfilter/fifo.c av_frame_free(&s->out); s 78 libavfilter/fifo.c FifoContext *s = inlink->dst->priv; s 80 libavfilter/fifo.c s->last->next = av_mallocz(sizeof(Buf)); s 81 libavfilter/fifo.c if (!s->last->next) { s 86 libavfilter/fifo.c s->last = s->last->next; s 87 libavfilter/fifo.c s->last->frame = frame; s 92 libavfilter/fifo.c static void queue_pop(FifoContext *s) s 94 libavfilter/fifo.c Buf *tmp = s->root.next->next; s 95 libavfilter/fifo.c if (s->last == s->root.next) s 96 libavfilter/fifo.c s->last = &s->root; s 97 libavfilter/fifo.c av_freep(&s->root.next); s 98 libavfilter/fifo.c s->root.next = tmp; s 149 libavfilter/fifo.c FifoContext *s = ctx->priv; s 150 libavfilter/fifo.c AVFrame *head = s->root.next ? s->root.next->frame : NULL; s 155 libavfilter/fifo.c if (!head && !s->out) s 158 libavfilter/fifo.c if (!s->out && s 163 libavfilter/fifo.c queue_pop(s); s 175 libavfilter/fifo.c if (!s->out) { s 176 libavfilter/fifo.c s->out = ff_get_audio_buffer(link, link->request_samples); s 177 libavfilter/fifo.c if (!s->out) s 180 libavfilter/fifo.c s->out->nb_samples = 0; s 181 libavfilter/fifo.c s->out->pts = head->pts; s 182 libavfilter/fifo.c s->allocated_samples = link->request_samples; s 183 libavfilter/fifo.c } else if (link->request_samples != s->allocated_samples) { s 189 libavfilter/fifo.c while (s->out->nb_samples < s->allocated_samples) { s 192 libavfilter/fifo.c if (!s->root.next) { s 195 libavfilter/fifo.c av_samples_set_silence(s->out->extended_data, s 196 libavfilter/fifo.c s->out->nb_samples, s 197 libavfilter/fifo.c s->allocated_samples - s 198 libavfilter/fifo.c s->out->nb_samples, s 200 libavfilter/fifo.c s->out->nb_samples = s->allocated_samples; s 204 libavfilter/fifo.c if (!s->root.next) s 207 libavfilter/fifo.c head = s->root.next->frame; s 209 libavfilter/fifo.c len = FFMIN(s->allocated_samples - s->out->nb_samples, s 212 libavfilter/fifo.c av_samples_copy(s->out->extended_data, head->extended_data, s 213 libavfilter/fifo.c s->out->nb_samples, 0, len, nb_channels, s 215 libavfilter/fifo.c s->out->nb_samples += len; s 219 libavfilter/fifo.c queue_pop(s); s 224 libavfilter/fifo.c out = s->out; s 225 libavfilter/fifo.c s->out = NULL; s 232 libavfilter/fifo.c FifoContext *s = outlink->src->priv; s 235 libavfilter/fifo.c if (!s->root.next) { s 241 libavfilter/fifo.c if (!s->root.next) s 248 libavfilter/fifo.c ret = ff_filter_frame(outlink, s->root.next->frame); s 249 libavfilter/fifo.c queue_pop(s); s 71 libavfilter/framerate.h void ff_framerate_init(FrameRateContext *s); s 72 libavfilter/framerate.h void ff_framerate_init_x86(FrameRateContext *s); s 302 libavfilter/framesync.h context *s = ctx->priv; \ s 303 libavfilter/framesync.h ff_framesync_preinit(&s->field); \ s 310 libavfilter/framesync.h context *s = obj; \ s 311 libavfilter/framesync.h s->fs.class = ff_framesync_get_class(); /* FIXME */ \ s 312 libavfilter/framesync.h return prev ? NULL : &s->field; \ s 53 libavfilter/gblur.h void ff_gblur_init(GBlurContext *s); s 54 libavfilter/gblur.h void ff_gblur_init_x86(GBlurContext *s); s 36 libavfilter/hflip.h int ff_hflip_init(FlipContext *s, int step[4], int nb_planes); s 37 libavfilter/hflip.h void ff_hflip_init_x86(FlipContext *s, int step[4], int nb_planes); s 44 libavfilter/maskedmerge.h void ff_maskedmerge_init_x86(MaskedMergeContext *s); s 56 libavfilter/median_template.c MedianContext *s = ctx->priv; s 57 libavfilter/median_template.c htype *ccoarse = s->coarse[jobnr]; s 58 libavfilter/median_template.c htype *cfine = s->fine[jobnr]; s 59 libavfilter/median_template.c const int radius = s->radius; s 60 libavfilter/median_template.c const int radiusV = s->radiusV; s 61 libavfilter/median_template.c const int t = s->t; s 70 libavfilter/median_template.c memset(cfine, 0, s->fine_size * sizeof(*cfine)); s 71 libavfilter/median_template.c memset(ccoarse, 0, s->coarse_size * sizeof(*ccoarse)); s 109 libavfilter/median_template.c s->hmuladd(coarse, &ccoarse[0], radius, BINS); s 111 libavfilter/median_template.c s->hadd(coarse, &ccoarse[BINS * j], BINS); s 113 libavfilter/median_template.c s->hmuladd(&fine[k][0], &cfine[BINS * width * k], 2 * radius + 1, BINS); s 119 libavfilter/median_template.c s->hadd(coarse, &ccoarse[BINS * FFMIN(j + radius, width - 1)], BINS); s 133 libavfilter/median_template.c s->hadd(fine[k], &cfine[BINS * (width * k + luc[k])], BINS); s 135 libavfilter/median_template.c s->hmuladd(&fine[k][0], &cfine[BINS * (width * k + width - 1)], j + radius + 1 - width, BINS); s 140 libavfilter/median_template.c s->hsub(fine[k], &cfine[BINS * (width * k + FFMAX(luc[k] - 2 * radius - 1, 0))], BINS); s 141 libavfilter/median_template.c s->hadd(fine[k], &cfine[BINS * (width * k + FFMIN(luc[k], width - 1))], BINS); s 145 libavfilter/median_template.c s->hsub(coarse, &ccoarse[BINS * FFMAX(j - radius, 0)], BINS); s 110 libavfilter/opencl/nlmeans.cl float s = sum[y * dim.x + x]; s 112 libavfilter/opencl/nlmeans.cl float r = (s + src_pix * 255) / (1.0f + w) / 255.0f; s 40 libavfilter/opencl/tonemap.cl float direct(float s, float peak) { s 41 libavfilter/opencl/tonemap.cl return s; s 44 libavfilter/opencl/tonemap.cl float linear(float s, float peak) { s 45 libavfilter/opencl/tonemap.cl return s * tone_param / peak; s 48 libavfilter/opencl/tonemap.cl float gamma(float s, float peak) { s 49 libavfilter/opencl/tonemap.cl float p = s > 0.05f ? s /peak : 0.05f / peak; s 51 libavfilter/opencl/tonemap.cl return s > 0.05f ? v : (s * v /0.05f); s 54 libavfilter/opencl/tonemap.cl float clip(float s, float peak) { s 55 libavfilter/opencl/tonemap.cl return clamp(s * tone_param, 0.0f, 1.0f); s 58 libavfilter/opencl/tonemap.cl float reinhard(float s, float peak) { s 59 libavfilter/opencl/tonemap.cl return s / (s + tone_param) * (peak + tone_param) / peak; s 62 libavfilter/opencl/tonemap.cl float hable(float s, float peak) { s 63 libavfilter/opencl/tonemap.cl return hable_f(s)/hable_f(peak); s 66 libavfilter/opencl/tonemap.cl float mobius(float s, float peak) { s 70 libavfilter/opencl/tonemap.cl if (s <= j) s 71 libavfilter/opencl/tonemap.cl return s; s 76 libavfilter/opencl/tonemap.cl return (b * b + 2.0f * b * j + j * j) / (b - a) * (s + a) / (s + b); s 40 libavfilter/opencl/xfade.cl int s = (int)(get_image_dim(src1).x * progress); s 46 libavfilter/opencl/xfade.cl write_imagef(dst, p, p.x > s ? val2 : val1); s 54 libavfilter/opencl/xfade.cl int s = (int)(get_image_dim(src1).x * (1.f - progress)); s 60 libavfilter/opencl/xfade.cl write_imagef(dst, p, p.x > s ? val1 : val2); s 68 libavfilter/opencl/xfade.cl int s = (int)(get_image_dim(src1).y * progress); s 74 libavfilter/opencl/xfade.cl write_imagef(dst, p, p.y > s ? val2 : val1); s 82 libavfilter/opencl/xfade.cl int s = (int)(get_image_dim(src1).y * (1.f - progress)); s 88 libavfilter/opencl/xfade.cl write_imagef(dst, p, p.y > s ? val1 : val2); s 83 libavfilter/qsvvpp.c QSVVPPContext *s = pthis; s 92 libavfilter/qsvvpp.c resp->mids = av_mallocz(s->nb_surface_ptrs_in * sizeof(*resp->mids)); s 96 libavfilter/qsvvpp.c for (i = 0; i < s->nb_surface_ptrs_in; i++) s 97 libavfilter/qsvvpp.c resp->mids[i] = s->surface_ptrs_in[i]->Data.MemId; s 99 libavfilter/qsvvpp.c resp->NumFrameActual = s->nb_surface_ptrs_in; s 101 libavfilter/qsvvpp.c resp->mids = av_mallocz(s->nb_surface_ptrs_out * sizeof(*resp->mids)); s 105 libavfilter/qsvvpp.c for (i = 0; i < s->nb_surface_ptrs_out; i++) s 106 libavfilter/qsvvpp.c resp->mids[i] = s->surface_ptrs_out[i]->Data.MemId; s 108 libavfilter/qsvvpp.c resp->NumFrameActual = s->nb_surface_ptrs_out; s 278 libavfilter/qsvvpp.c static QSVFrame *submit_frame(QSVVPPContext *s, AVFilterLink *inlink, AVFrame *picref) s 283 libavfilter/qsvvpp.c clear_unused_frames(s->in_frame_list); s 285 libavfilter/qsvvpp.c qsv_frame = get_free_frame(&s->in_frame_list); s 295 libavfilter/qsvvpp.c if (!IS_SYSTEM_MEMORY(s->in_mem_mode)) { s 331 libavfilter/qsvvpp.c qsv_frame->surface->Info = s->frame_infos[FF_INLINK_IDX(inlink)]; s 350 libavfilter/qsvvpp.c static QSVFrame *query_frame(QSVVPPContext *s, AVFilterLink *outlink) s 356 libavfilter/qsvvpp.c clear_unused_frames(s->out_frame_list); s 358 libavfilter/qsvvpp.c out_frame = get_free_frame(&s->out_frame_list); s 364 libavfilter/qsvvpp.c if (!IS_SYSTEM_MEMORY(s->out_mem_mode)) { s 396 libavfilter/qsvvpp.c out_frame->surface->Info = s->vpp_param.vpp.Out; s 402 libavfilter/qsvvpp.c static int init_vpp_session(AVFilterContext *avctx, QSVVPPContext *s) s 424 libavfilter/qsvvpp.c s->in_mem_mode = in_frames_hwctx->frame_type; s 426 libavfilter/qsvvpp.c s->surface_ptrs_in = av_mallocz_array(in_frames_hwctx->nb_surfaces, s 427 libavfilter/qsvvpp.c sizeof(*s->surface_ptrs_in)); s 428 libavfilter/qsvvpp.c if (!s->surface_ptrs_in) s 432 libavfilter/qsvvpp.c s->surface_ptrs_in[i] = in_frames_hwctx->surfaces + i; s 434 libavfilter/qsvvpp.c s->nb_surface_ptrs_in = in_frames_hwctx->nb_surfaces; s 437 libavfilter/qsvvpp.c s->in_mem_mode = MFX_MEMTYPE_SYSTEM_MEMORY; s 452 libavfilter/qsvvpp.c s->out_mem_mode = IS_OPAQUE_MEMORY(s->in_mem_mode) ? s 462 libavfilter/qsvvpp.c out_frames_ctx->sw_format = s->out_sw_format; s 466 libavfilter/qsvvpp.c out_frames_hwctx->frame_type = s->out_mem_mode; s 475 libavfilter/qsvvpp.c s->surface_ptrs_out = av_mallocz_array(out_frames_hwctx->nb_surfaces, s 476 libavfilter/qsvvpp.c sizeof(*s->surface_ptrs_out)); s 477 libavfilter/qsvvpp.c if (!s->surface_ptrs_out) { s 483 libavfilter/qsvvpp.c s->surface_ptrs_out[i] = out_frames_hwctx->surfaces + i; s 484 libavfilter/qsvvpp.c s->nb_surface_ptrs_out = out_frames_hwctx->nb_surfaces; s 489 libavfilter/qsvvpp.c s->out_mem_mode = MFX_MEMTYPE_SYSTEM_MEMORY; s 514 libavfilter/qsvvpp.c ret = MFXInit(impl, &ver, &s->session); s 521 libavfilter/qsvvpp.c ret = MFXVideoCORE_SetHandle(s->session, handle_type, handle); s 527 libavfilter/qsvvpp.c ret = MFXJoinSession(device_hwctx->session, s->session); s 532 libavfilter/qsvvpp.c if (IS_OPAQUE_MEMORY(s->in_mem_mode) || IS_OPAQUE_MEMORY(s->out_mem_mode)) { s 533 libavfilter/qsvvpp.c s->opaque_alloc.In.Surfaces = s->surface_ptrs_in; s 534 libavfilter/qsvvpp.c s->opaque_alloc.In.NumSurface = s->nb_surface_ptrs_in; s 535 libavfilter/qsvvpp.c s->opaque_alloc.In.Type = s->in_mem_mode; s 537 libavfilter/qsvvpp.c s->opaque_alloc.Out.Surfaces = s->surface_ptrs_out; s 538 libavfilter/qsvvpp.c s->opaque_alloc.Out.NumSurface = s->nb_surface_ptrs_out; s 539 libavfilter/qsvvpp.c s->opaque_alloc.Out.Type = s->out_mem_mode; s 541 libavfilter/qsvvpp.c s->opaque_alloc.Header.BufferId = MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION; s 542 libavfilter/qsvvpp.c s->opaque_alloc.Header.BufferSz = sizeof(s->opaque_alloc); s 543 libavfilter/qsvvpp.c } else if (IS_VIDEO_MEMORY(s->in_mem_mode) || IS_VIDEO_MEMORY(s->out_mem_mode)) { s 545 libavfilter/qsvvpp.c .pthis = s, s 553 libavfilter/qsvvpp.c ret = MFXVideoCORE_SetFrameAllocator(s->session, &frame_allocator); s 565 libavfilter/qsvvpp.c QSVVPPContext *s; s 567 libavfilter/qsvvpp.c s = av_mallocz(sizeof(*s)); s 568 libavfilter/qsvvpp.c if (!s) s 571 libavfilter/qsvvpp.c s->filter_frame = param->filter_frame; s 572 libavfilter/qsvvpp.c if (!s->filter_frame) s 573 libavfilter/qsvvpp.c s->filter_frame = ff_filter_frame; s 574 libavfilter/qsvvpp.c s->out_sw_format = param->out_sw_format; s 577 libavfilter/qsvvpp.c ret = init_vpp_session(avctx, s); s 581 libavfilter/qsvvpp.c s->frame_infos = av_mallocz_array(avctx->nb_inputs, sizeof(*s->frame_infos)); s 582 libavfilter/qsvvpp.c if (!s->frame_infos) { s 589 libavfilter/qsvvpp.c ret = fill_frameinfo_by_link(&s->frame_infos[i], avctx->inputs[i]); s 601 libavfilter/qsvvpp.c s->frame_infos[crop->in_idx].CropX = crop->x; s 602 libavfilter/qsvvpp.c s->frame_infos[crop->in_idx].CropY = crop->y; s 603 libavfilter/qsvvpp.c s->frame_infos[crop->in_idx].CropW = crop->w; s 604 libavfilter/qsvvpp.c s->frame_infos[crop->in_idx].CropH = crop->h; s 607 libavfilter/qsvvpp.c s->vpp_param.vpp.In = s->frame_infos[0]; s 609 libavfilter/qsvvpp.c ret = fill_frameinfo_by_link(&s->vpp_param.vpp.Out, avctx->outputs[0]); s 615 libavfilter/qsvvpp.c if (IS_OPAQUE_MEMORY(s->in_mem_mode) || IS_OPAQUE_MEMORY(s->out_mem_mode)) { s 616 libavfilter/qsvvpp.c s->nb_ext_buffers = param->num_ext_buf + 1; s 617 libavfilter/qsvvpp.c s->ext_buffers = av_mallocz_array(s->nb_ext_buffers, sizeof(*s->ext_buffers)); s 618 libavfilter/qsvvpp.c if (!s->ext_buffers) { s 623 libavfilter/qsvvpp.c s->ext_buffers[0] = (mfxExtBuffer *)&s->opaque_alloc; s 625 libavfilter/qsvvpp.c s->ext_buffers[i] = param->ext_buf[i - 1]; s 626 libavfilter/qsvvpp.c s->vpp_param.ExtParam = s->ext_buffers; s 627 libavfilter/qsvvpp.c s->vpp_param.NumExtParam = s->nb_ext_buffers; s 629 libavfilter/qsvvpp.c s->vpp_param.NumExtParam = param->num_ext_buf; s 630 libavfilter/qsvvpp.c s->vpp_param.ExtParam = param->ext_buf; s 633 libavfilter/qsvvpp.c s->vpp_param.AsyncDepth = 1; s 635 libavfilter/qsvvpp.c if (IS_SYSTEM_MEMORY(s->in_mem_mode)) s 636 libavfilter/qsvvpp.c s->vpp_param.IOPattern |= MFX_IOPATTERN_IN_SYSTEM_MEMORY; s 637 libavfilter/qsvvpp.c else if (IS_VIDEO_MEMORY(s->in_mem_mode)) s 638 libavfilter/qsvvpp.c s->vpp_param.IOPattern |= MFX_IOPATTERN_IN_VIDEO_MEMORY; s 639 libavfilter/qsvvpp.c else if (IS_OPAQUE_MEMORY(s->in_mem_mode)) s 640 libavfilter/qsvvpp.c s->vpp_param.IOPattern |= MFX_IOPATTERN_IN_OPAQUE_MEMORY; s 642 libavfilter/qsvvpp.c if (IS_SYSTEM_MEMORY(s->out_mem_mode)) s 643 libavfilter/qsvvpp.c s->vpp_param.IOPattern |= MFX_IOPATTERN_OUT_SYSTEM_MEMORY; s 644 libavfilter/qsvvpp.c else if (IS_VIDEO_MEMORY(s->out_mem_mode)) s 645 libavfilter/qsvvpp.c s->vpp_param.IOPattern |= MFX_IOPATTERN_OUT_VIDEO_MEMORY; s 646 libavfilter/qsvvpp.c else if (IS_OPAQUE_MEMORY(s->out_mem_mode)) s 647 libavfilter/qsvvpp.c s->vpp_param.IOPattern |= MFX_IOPATTERN_OUT_OPAQUE_MEMORY; s 649 libavfilter/qsvvpp.c ret = MFXVideoVPP_Init(s->session, &s->vpp_param); s 655 libavfilter/qsvvpp.c *vpp = s; s 659 libavfilter/qsvvpp.c ff_qsvvpp_free(&s); s 666 libavfilter/qsvvpp.c QSVVPPContext *s = *vpp; s 668 libavfilter/qsvvpp.c if (!s) s 671 libavfilter/qsvvpp.c if (s->session) { s 672 libavfilter/qsvvpp.c MFXVideoVPP_Close(s->session); s 673 libavfilter/qsvvpp.c MFXClose(s->session); s 677 libavfilter/qsvvpp.c clear_frame_list(&s->in_frame_list); s 678 libavfilter/qsvvpp.c clear_frame_list(&s->out_frame_list); s 679 libavfilter/qsvvpp.c av_freep(&s->surface_ptrs_in); s 680 libavfilter/qsvvpp.c av_freep(&s->surface_ptrs_out); s 681 libavfilter/qsvvpp.c av_freep(&s->ext_buffers); s 682 libavfilter/qsvvpp.c av_freep(&s->frame_infos); s 688 libavfilter/qsvvpp.c int ff_qsvvpp_filter_frame(QSVVPPContext *s, AVFilterLink *inlink, AVFrame *picref) s 696 libavfilter/qsvvpp.c in_frame = submit_frame(s, inlink, picref); s 704 libavfilter/qsvvpp.c out_frame = query_frame(s, outlink); s 711 libavfilter/qsvvpp.c ret = MFXVideoVPP_RunFrameVPPAsync(s->session, in_frame->surface, s 724 libavfilter/qsvvpp.c if (MFXVideoCORE_SyncOperation(s->session, sync, 1000) < 0) s 730 libavfilter/qsvvpp.c filter_ret = s->filter_frame(outlink, out_frame->frame); s 94 libavfilter/signature_lookup.c uint8_t f, s; s 99 libavfilter/signature_lookup.c s = second[i]; s 100 libavfilter/signature_lookup.c if (f > s) { s 102 libavfilter/signature_lookup.c dist += sc->l1distlut[243*242/2 - (243-s)*(242-s)/2 + f - s - 1]; s 104 libavfilter/signature_lookup.c dist += sc->l1distlut[243*242/2 - (243-f)*(242-f)/2 + s - f - 1]; s 176 libavfilter/signature_lookup.c FineSignature *f, *s; s 214 libavfilter/signature_lookup.c for (j = 0, s = second; j < COARSE_SIZE && s->next; j++, s = s->next) { s 216 libavfilter/signature_lookup.c l1dist = get_l1dist(ctx, sc, f->framesig, s->framesig); s 222 libavfilter/signature_lookup.c pairs[i].b[0] = s; s 224 libavfilter/signature_lookup.c pairs[i].b[pairs[i].size] = s; s 48 libavfilter/split.c SplitContext *s = ctx->priv; s 51 libavfilter/split.c for (i = 0; i < s->nb_outputs; i++) { s 49 libavfilter/threshold.h void ff_threshold_init(ThresholdContext *s); s 50 libavfilter/threshold.h void ff_threshold_init_x86(ThresholdContext *s); s 75 libavfilter/trim.c TrimContext *s = ctx->priv; s 77 libavfilter/trim.c s->first_pts = AV_NOPTS_VALUE; s 85 libavfilter/trim.c TrimContext *s = ctx->priv; s 89 libavfilter/trim.c if (s->start_time != INT64_MAX) { s 90 libavfilter/trim.c int64_t start_pts = av_rescale_q(s->start_time, AV_TIME_BASE_Q, tb); s 91 libavfilter/trim.c if (s->start_pts == AV_NOPTS_VALUE || start_pts < s->start_pts) s 92 libavfilter/trim.c s->start_pts = start_pts; s 94 libavfilter/trim.c if (s->end_time != INT64_MAX) { s 95 libavfilter/trim.c int64_t end_pts = av_rescale_q(s->end_time, AV_TIME_BASE_Q, tb); s 96 libavfilter/trim.c if (s->end_pts == AV_NOPTS_VALUE || end_pts > s->end_pts) s 97 libavfilter/trim.c s->end_pts = end_pts; s 99 libavfilter/trim.c if (s->duration) s 100 libavfilter/trim.c s->duration_tb = av_rescale_q(s->duration, AV_TIME_BASE_Q, tb); s 127 libavfilter/trim.c TrimContext *s = ctx->priv; s 131 libavfilter/trim.c if (s->eof) { s 136 libavfilter/trim.c if (s->start_frame >= 0 || s->start_pts != AV_NOPTS_VALUE) { s 138 libavfilter/trim.c if (s->start_frame >= 0 && s->nb_frames >= s->start_frame) s 140 libavfilter/trim.c if (s->start_pts != AV_NOPTS_VALUE && frame->pts != AV_NOPTS_VALUE && s 141 libavfilter/trim.c frame->pts >= s->start_pts) s 147 libavfilter/trim.c if (s->first_pts == AV_NOPTS_VALUE && frame->pts != AV_NOPTS_VALUE) s 148 libavfilter/trim.c s->first_pts = frame->pts; s 150 libavfilter/trim.c if (s->end_frame != INT64_MAX || s->end_pts != AV_NOPTS_VALUE || s->duration_tb) { s 153 libavfilter/trim.c if (s->end_frame != INT64_MAX && s->nb_frames < s->end_frame) s 155 libavfilter/trim.c if (s->end_pts != AV_NOPTS_VALUE && frame->pts != AV_NOPTS_VALUE && s 156 libavfilter/trim.c frame->pts < s->end_pts) s 158 libavfilter/trim.c if (s->duration_tb && frame->pts != AV_NOPTS_VALUE && s 159 libavfilter/trim.c frame->pts - s->first_pts < s->duration_tb) s 163 libavfilter/trim.c s->eof = 1; s 169 libavfilter/trim.c s->nb_frames++; s 174 libavfilter/trim.c s->nb_frames++; s 225 libavfilter/trim.c TrimContext *s = ctx->priv; s 231 libavfilter/trim.c if (s->eof) { s 240 libavfilter/trim.c pts = s->next_pts; s 241 libavfilter/trim.c s->next_pts = pts + frame->nb_samples; s 244 libavfilter/trim.c if (s->start_sample < 0 && s->start_pts == AV_NOPTS_VALUE) { s 250 libavfilter/trim.c if (s->start_sample >= 0 && s 251 libavfilter/trim.c s->nb_samples + frame->nb_samples > s->start_sample) { s 253 libavfilter/trim.c start_sample = FFMIN(start_sample, s->start_sample - s->nb_samples); s 256 libavfilter/trim.c if (s->start_pts != AV_NOPTS_VALUE && pts != AV_NOPTS_VALUE && s 257 libavfilter/trim.c pts + frame->nb_samples > s->start_pts) { s 259 libavfilter/trim.c start_sample = FFMIN(start_sample, s->start_pts - pts); s 266 libavfilter/trim.c if (s->first_pts == AV_NOPTS_VALUE) s 267 libavfilter/trim.c s->first_pts = pts + start_sample; s 270 libavfilter/trim.c if (s->end_sample == INT64_MAX && s->end_pts == AV_NOPTS_VALUE && !s->duration_tb) { s 276 libavfilter/trim.c if (s->end_sample != INT64_MAX && s 277 libavfilter/trim.c s->nb_samples < s->end_sample) { s 279 libavfilter/trim.c end_sample = FFMAX(end_sample, s->end_sample - s->nb_samples); s 282 libavfilter/trim.c if (s->end_pts != AV_NOPTS_VALUE && pts != AV_NOPTS_VALUE && s 283 libavfilter/trim.c pts < s->end_pts) { s 285 libavfilter/trim.c end_sample = FFMAX(end_sample, s->end_pts - pts); s 288 libavfilter/trim.c if (s->duration_tb && pts - s->first_pts < s->duration_tb) { s 290 libavfilter/trim.c end_sample = FFMAX(end_sample, s->first_pts + s->duration_tb - pts); s 294 libavfilter/trim.c s->eof = 1; s 300 libavfilter/trim.c s->nb_samples += frame->nb_samples; s 329 libavfilter/trim.c s->nb_samples += frame->nb_samples; s 170 libavfilter/v360.h int (*in_transform)(const struct V360Context *s, s 174 libavfilter/v360.h int (*out_transform)(const struct V360Context *s, s 187 libavfilter/v360.h void ff_v360_init(V360Context *s, int depth); s 188 libavfilter/v360.h void ff_v360_init_x86(V360Context *s, int depth); s 104 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 118 libavfilter/vaf_spectrumsynth.c (ret = ff_add_channel_layout (&layout, FF_COUNT2LAYOUT(s->channels))) < 0 || s 122 libavfilter/vaf_spectrumsynth.c sample_rates[0] = s->sample_rate; s 147 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 155 libavfilter/vaf_spectrumsynth.c outlink->sample_rate = s->sample_rate; s 156 libavfilter/vaf_spectrumsynth.c outlink->time_base = (AVRational){1, s->sample_rate}; s 181 libavfilter/vaf_spectrumsynth.c s->size = s->orientation == VERTICAL ? height / s->channels : width / s->channels; s 182 libavfilter/vaf_spectrumsynth.c s->xend = s->orientation == VERTICAL ? width : height; s 184 libavfilter/vaf_spectrumsynth.c for (fft_bits = 1; 1 << fft_bits < 2 * s->size; fft_bits++); s 186 libavfilter/vaf_spectrumsynth.c s->win_size = 1 << fft_bits; s 187 libavfilter/vaf_spectrumsynth.c s->nb_freq = 1 << (fft_bits - 1); s 189 libavfilter/vaf_spectrumsynth.c s->fft = av_fft_init(fft_bits, 1); s 190 libavfilter/vaf_spectrumsynth.c if (!s->fft) { s 195 libavfilter/vaf_spectrumsynth.c s->fft_data = av_calloc(s->channels, sizeof(*s->fft_data)); s 196 libavfilter/vaf_spectrumsynth.c if (!s->fft_data) s 198 libavfilter/vaf_spectrumsynth.c for (ch = 0; ch < s->channels; ch++) { s 199 libavfilter/vaf_spectrumsynth.c s->fft_data[ch] = av_calloc(s->win_size, sizeof(**s->fft_data)); s 200 libavfilter/vaf_spectrumsynth.c if (!s->fft_data[ch]) s 204 libavfilter/vaf_spectrumsynth.c s->buffer = ff_get_audio_buffer(outlink, s->win_size * 2); s 205 libavfilter/vaf_spectrumsynth.c if (!s->buffer) s 209 libavfilter/vaf_spectrumsynth.c s->window_func_lut = av_realloc_f(s->window_func_lut, s->win_size, s 210 libavfilter/vaf_spectrumsynth.c sizeof(*s->window_func_lut)); s 211 libavfilter/vaf_spectrumsynth.c if (!s->window_func_lut) s 213 libavfilter/vaf_spectrumsynth.c generate_window_func(s->window_func_lut, s->win_size, s->win_func, &overlap); s 214 libavfilter/vaf_spectrumsynth.c if (s->overlap == 1) s 215 libavfilter/vaf_spectrumsynth.c s->overlap = overlap; s 216 libavfilter/vaf_spectrumsynth.c s->hop_size = (1 - s->overlap) * s->win_size; s 217 libavfilter/vaf_spectrumsynth.c for (factor = 0, i = 0; i < s->win_size; i++) { s 218 libavfilter/vaf_spectrumsynth.c factor += s->window_func_lut[i] * s->window_func_lut[i]; s 220 libavfilter/vaf_spectrumsynth.c s->factor = (factor / s->win_size) / FFMAX(1 / (1 - s->overlap) - 1, 1); s 228 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 231 libavfilter/vaf_spectrumsynth.c if (!s->magnitude) { s 236 libavfilter/vaf_spectrumsynth.c if (!s->phase) { s 244 libavfilter/vaf_spectrumsynth.c static void read16_fft_bin(SpectrumSynthContext *s, s 247 libavfilter/vaf_spectrumsynth.c const int m_linesize = s->magnitude->linesize[0]; s 248 libavfilter/vaf_spectrumsynth.c const int p_linesize = s->phase->linesize[0]; s 249 libavfilter/vaf_spectrumsynth.c const uint16_t *m = (uint16_t *)(s->magnitude->data[0] + y * m_linesize); s 250 libavfilter/vaf_spectrumsynth.c const uint16_t *p = (uint16_t *)(s->phase->data[0] + y * p_linesize); s 253 libavfilter/vaf_spectrumsynth.c switch (s->scale) { s 265 libavfilter/vaf_spectrumsynth.c s->fft_data[ch][f].re = magnitude * cos(phase); s 266 libavfilter/vaf_spectrumsynth.c s->fft_data[ch][f].im = magnitude * sin(phase); s 269 libavfilter/vaf_spectrumsynth.c static void read8_fft_bin(SpectrumSynthContext *s, s 272 libavfilter/vaf_spectrumsynth.c const int m_linesize = s->magnitude->linesize[0]; s 273 libavfilter/vaf_spectrumsynth.c const int p_linesize = s->phase->linesize[0]; s 274 libavfilter/vaf_spectrumsynth.c const uint8_t *m = (uint8_t *)(s->magnitude->data[0] + y * m_linesize); s 275 libavfilter/vaf_spectrumsynth.c const uint8_t *p = (uint8_t *)(s->phase->data[0] + y * p_linesize); s 278 libavfilter/vaf_spectrumsynth.c switch (s->scale) { s 290 libavfilter/vaf_spectrumsynth.c s->fft_data[ch][f].re = magnitude * cos(phase); s 291 libavfilter/vaf_spectrumsynth.c s->fft_data[ch][f].im = magnitude * sin(phase); s 296 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 298 libavfilter/vaf_spectrumsynth.c int start = h * (s->channels - ch) - 1; s 299 libavfilter/vaf_spectrumsynth.c int end = h * (s->channels - ch - 1); s 302 libavfilter/vaf_spectrumsynth.c switch (s->orientation) { s 308 libavfilter/vaf_spectrumsynth.c read16_fft_bin(s, x, y, f, ch); s 315 libavfilter/vaf_spectrumsynth.c read8_fft_bin(s, x, y, f, ch); s 325 libavfilter/vaf_spectrumsynth.c read16_fft_bin(s, y, x, f, ch); s 332 libavfilter/vaf_spectrumsynth.c read8_fft_bin(s, y, x, f, ch); s 342 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 343 libavfilter/vaf_spectrumsynth.c const int h = s->size; s 344 libavfilter/vaf_spectrumsynth.c int nb = s->win_size; s 347 libavfilter/vaf_spectrumsynth.c for (ch = 0; ch < s->channels; ch++) { s 350 libavfilter/vaf_spectrumsynth.c for (y = h; y <= s->nb_freq; y++) { s 351 libavfilter/vaf_spectrumsynth.c s->fft_data[ch][y].re = 0; s 352 libavfilter/vaf_spectrumsynth.c s->fft_data[ch][y].im = 0; s 355 libavfilter/vaf_spectrumsynth.c for (y = s->nb_freq + 1, f = s->nb_freq - 1; y < nb; y++, f--) { s 356 libavfilter/vaf_spectrumsynth.c s->fft_data[ch][y].re = s->fft_data[ch][f].re; s 357 libavfilter/vaf_spectrumsynth.c s->fft_data[ch][y].im = -s->fft_data[ch][f].im; s 360 libavfilter/vaf_spectrumsynth.c av_fft_permute(s->fft, s->fft_data[ch]); s 361 libavfilter/vaf_spectrumsynth.c av_fft_calc(s->fft, s->fft_data[ch]); s 367 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 369 libavfilter/vaf_spectrumsynth.c const float factor = s->factor; s 376 libavfilter/vaf_spectrumsynth.c for (ch = 0; ch < s->channels; ch++) { s 377 libavfilter/vaf_spectrumsynth.c float *buf = (float *)s->buffer->extended_data[ch]; s 380 libavfilter/vaf_spectrumsynth.c start = s->start; s 381 libavfilter/vaf_spectrumsynth.c end = s->end; s 383 libavfilter/vaf_spectrumsynth.c for (i = 0, j = start; j < k && i < s->win_size; i++, j++) { s 384 libavfilter/vaf_spectrumsynth.c buf[j] += s->fft_data[ch][i].re; s 387 libavfilter/vaf_spectrumsynth.c for (; i < s->win_size; i++, j++) { s 388 libavfilter/vaf_spectrumsynth.c buf[j] = s->fft_data[ch][i].re; s 391 libavfilter/vaf_spectrumsynth.c start += s->hop_size; s 394 libavfilter/vaf_spectrumsynth.c if (start >= s->win_size) { s 395 libavfilter/vaf_spectrumsynth.c start -= s->win_size; s 396 libavfilter/vaf_spectrumsynth.c end -= s->win_size; s 398 libavfilter/vaf_spectrumsynth.c if (ch == s->channels - 1) { s 402 libavfilter/vaf_spectrumsynth.c out = ff_get_audio_buffer(outlink, s->win_size); s 404 libavfilter/vaf_spectrumsynth.c av_frame_free(&s->magnitude); s 405 libavfilter/vaf_spectrumsynth.c av_frame_free(&s->phase); s 409 libavfilter/vaf_spectrumsynth.c out->pts = s->pts; s 410 libavfilter/vaf_spectrumsynth.c s->pts += s->win_size; s 411 libavfilter/vaf_spectrumsynth.c for (c = 0; c < s->channels; c++) { s 413 libavfilter/vaf_spectrumsynth.c buf = (float *)s->buffer->extended_data[c]; s 415 libavfilter/vaf_spectrumsynth.c for (n = 0; n < s->win_size; n++) { s 418 libavfilter/vaf_spectrumsynth.c memmove(buf, buf + s->win_size, s->win_size * 4); s 428 libavfilter/vaf_spectrumsynth.c s->start = start; s 429 libavfilter/vaf_spectrumsynth.c s->end = end; s 436 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 439 libavfilter/vaf_spectrumsynth.c if (!(s->magnitude && s->phase)) s 442 libavfilter/vaf_spectrumsynth.c switch (s->sliding) { s 444 libavfilter/vaf_spectrumsynth.c ret = try_push_frame(ctx, s->xpos); s 445 libavfilter/vaf_spectrumsynth.c s->xpos++; s 446 libavfilter/vaf_spectrumsynth.c if (s->xpos >= s->xend) s 447 libavfilter/vaf_spectrumsynth.c s->xpos = 0; s 450 libavfilter/vaf_spectrumsynth.c s->xpos = s->xend - 1; s 451 libavfilter/vaf_spectrumsynth.c ret = try_push_frame(ctx, s->xpos); s 454 libavfilter/vaf_spectrumsynth.c s->xpos = 0; s 455 libavfilter/vaf_spectrumsynth.c ret = try_push_frame(ctx, s->xpos); s 458 libavfilter/vaf_spectrumsynth.c for (x = 0; x < s->xend; x++) { s 468 libavfilter/vaf_spectrumsynth.c av_frame_free(&s->magnitude); s 469 libavfilter/vaf_spectrumsynth.c av_frame_free(&s->phase); s 476 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 478 libavfilter/vaf_spectrumsynth.c s->magnitude = magnitude; s 485 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 487 libavfilter/vaf_spectrumsynth.c s->phase = phase; s 493 libavfilter/vaf_spectrumsynth.c SpectrumSynthContext *s = ctx->priv; s 496 libavfilter/vaf_spectrumsynth.c av_frame_free(&s->magnitude); s 497 libavfilter/vaf_spectrumsynth.c av_frame_free(&s->phase); s 498 libavfilter/vaf_spectrumsynth.c av_frame_free(&s->buffer); s 499 libavfilter/vaf_spectrumsynth.c av_fft_end(s->fft); s 500 libavfilter/vaf_spectrumsynth.c if (s->fft_data) { s 501 libavfilter/vaf_spectrumsynth.c for (i = 0; i < s->channels; i++) s 502 libavfilter/vaf_spectrumsynth.c av_freep(&s->fft_data[i]); s 504 libavfilter/vaf_spectrumsynth.c av_freep(&s->fft_data); s 505 libavfilter/vaf_spectrumsynth.c av_freep(&s->window_func_lut); s 83 libavfilter/vf_alphamerge.c AlphaMergeContext *s = inlink->dst->priv; s 84 libavfilter/vf_alphamerge.c s->is_packed_rgb = s 85 libavfilter/vf_alphamerge.c ff_fill_rgba_map(s->rgba_map, inlink->format) >= 0 && s 115 libavfilter/vf_alphamerge.c AlphaMergeContext *s = ctx->priv; s 118 libavfilter/vf_alphamerge.c if (s->is_packed_rgb) { s 123 libavfilter/vf_alphamerge.c pout = main_buf->data[0] + y * main_buf->linesize[0] + s->rgba_map[A]; s 142 libavfilter/vf_alphamerge.c AlphaMergeContext *s = ctx->priv; s 147 libavfilter/vf_alphamerge.c if (!s->main_frame) { s 148 libavfilter/vf_alphamerge.c ret = ff_inlink_consume_frame(ctx->inputs[0], &s->main_frame); s 153 libavfilter/vf_alphamerge.c if (!s->alpha_frame) { s 154 libavfilter/vf_alphamerge.c ret = ff_inlink_consume_frame(ctx->inputs[1], &s->alpha_frame); s 159 libavfilter/vf_alphamerge.c if (s->main_frame && s->alpha_frame) { s 161 libavfilter/vf_alphamerge.c draw_frame(ctx, s->main_frame, s->alpha_frame); s 162 libavfilter/vf_alphamerge.c ret = ff_filter_frame(outlink, s->main_frame); s 163 libavfilter/vf_alphamerge.c av_frame_free(&s->alpha_frame); s 164 libavfilter/vf_alphamerge.c s->main_frame = NULL; s 173 libavfilter/vf_alphamerge.c !s->main_frame) { s 180 libavfilter/vf_alphamerge.c !s->alpha_frame) { s 89 libavfilter/vf_amplify.c AmplifyContext *s = ctx->priv; s 91 libavfilter/vf_amplify.c s->nb_inputs = s->radius * 2 + 1; s 93 libavfilter/vf_amplify.c s->frames = av_calloc(s->nb_inputs, sizeof(*s->frames)); s 94 libavfilter/vf_amplify.c if (!s->frames) s 106 libavfilter/vf_amplify.c AmplifyContext *s = ctx->priv; s 110 libavfilter/vf_amplify.c const int radius = s->radius; s 111 libavfilter/vf_amplify.c const int nb_inputs = s->nb_inputs; s 112 libavfilter/vf_amplify.c const float threshold = s->threshold; s 113 libavfilter/vf_amplify.c const float tolerance = s->tolerance; s 114 libavfilter/vf_amplify.c const float factor = s->factor; s 115 libavfilter/vf_amplify.c const int llimit = s->llimit; s 116 libavfilter/vf_amplify.c const int hlimit = s->hlimit; s 117 libavfilter/vf_amplify.c const int depth = s->depth; s 120 libavfilter/vf_amplify.c if (s->depth <= 8) { s 121 libavfilter/vf_amplify.c for (p = 0; p < s->nb_planes; p++) { s 122 libavfilter/vf_amplify.c const int slice_start = (s->height[p] * jobnr) / nb_jobs; s 123 libavfilter/vf_amplify.c const int slice_end = (s->height[p] * (jobnr+1)) / nb_jobs; s 126 libavfilter/vf_amplify.c if (!((1 << p) & s->planes)) { s 130 libavfilter/vf_amplify.c s->linesize[p], slice_end - slice_start); s 135 libavfilter/vf_amplify.c for (x = 0; x < s->linesize[p]; x++) { s 163 libavfilter/vf_amplify.c for (p = 0; p < s->nb_planes; p++) { s 164 libavfilter/vf_amplify.c const int slice_start = (s->height[p] * jobnr) / nb_jobs; s 165 libavfilter/vf_amplify.c const int slice_end = (s->height[p] * (jobnr+1)) / nb_jobs; s 168 libavfilter/vf_amplify.c if (!((1 << p) & s->planes)) { s 172 libavfilter/vf_amplify.c s->linesize[p], slice_end - slice_start); s 177 libavfilter/vf_amplify.c for (x = 0; x < s->linesize[p] / 2; x++) { s 213 libavfilter/vf_amplify.c AmplifyContext *s = ctx->priv; s 217 libavfilter/vf_amplify.c s->desc = av_pix_fmt_desc_get(outlink->format); s 218 libavfilter/vf_amplify.c if (!s->desc) s 220 libavfilter/vf_amplify.c s->nb_planes = av_pix_fmt_count_planes(outlink->format); s 221 libavfilter/vf_amplify.c s->depth = s->desc->comp[0].depth; s 223 libavfilter/vf_amplify.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 226 libavfilter/vf_amplify.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 227 libavfilter/vf_amplify.c s->height[0] = s->height[3] = inlink->h; s 234 libavfilter/vf_amplify.c AmplifyContext *s = ctx->priv; s 237 libavfilter/vf_amplify.c if (s->frames) { s 238 libavfilter/vf_amplify.c for (i = 0; i < s->nb_frames; i++) s 239 libavfilter/vf_amplify.c av_frame_free(&s->frames[i]); s 241 libavfilter/vf_amplify.c av_freep(&s->frames); s 248 libavfilter/vf_amplify.c AmplifyContext *s = ctx->priv; s 252 libavfilter/vf_amplify.c if (s->nb_frames < s->nb_inputs) { s 253 libavfilter/vf_amplify.c s->frames[s->nb_frames] = in; s 254 libavfilter/vf_amplify.c s->nb_frames++; s 257 libavfilter/vf_amplify.c av_frame_free(&s->frames[0]); s 258 libavfilter/vf_amplify.c memmove(&s->frames[0], &s->frames[1], sizeof(*s->frames) * (s->nb_inputs - 1)); s 259 libavfilter/vf_amplify.c s->frames[s->nb_inputs - 1] = in; s 266 libavfilter/vf_amplify.c av_frame_copy_props(out, s->frames[0]); s 269 libavfilter/vf_amplify.c td.in = s->frames; s 270 libavfilter/vf_amplify.c ctx->internal->execute(ctx, amplify_frame, &td, NULL, FFMIN(s->height[1], ff_filter_get_nb_threads(ctx))); s 272 libavfilter/vf_amplify.c out = av_frame_clone(s->frames[s->radius]); s 275 libavfilter/vf_amplify.c out->pts = s->frames[0]->pts; s 69 libavfilter/vf_aspect.c AspectContext *s = link->dst->priv; s 71 libavfilter/vf_aspect.c frame->sample_aspect_ratio = s->sar; s 90 libavfilter/vf_aspect.c AspectContext *s = inlink->dst->priv; s 105 libavfilter/vf_aspect.c ret = av_expr_parse_and_eval(&res, s->ratio_expr, s 109 libavfilter/vf_aspect.c ret = av_parse_ratio(aspect_ratio, s->ratio_expr, s->max, 0, ctx); s 111 libavfilter/vf_aspect.c *aspect_ratio = av_d2q(res, s->max); s 115 libavfilter/vf_aspect.c "Error when evaluating the expression '%s'\n", s->ratio_expr); s 120 libavfilter/vf_aspect.c "Invalid string '%s' for aspect ratio\n", s->ratio_expr); s 132 libavfilter/vf_aspect.c AspectContext *s = ctx->priv; s 138 libavfilter/vf_aspect.c if ((ret = get_aspect_ratio(inlink, &s->dar))) s 141 libavfilter/vf_aspect.c if (s->dar.num && s->dar.den) { s 142 libavfilter/vf_aspect.c av_reduce(&s->sar.num, &s->sar.den, s 143 libavfilter/vf_aspect.c s->dar.num * inlink->h, s 144 libavfilter/vf_aspect.c s->dar.den * inlink->w, INT_MAX); s 145 libavfilter/vf_aspect.c outlink->sample_aspect_ratio = s->sar; s 146 libavfilter/vf_aspect.c dar = s->dar; s 205 libavfilter/vf_aspect.c AspectContext *s = ctx->priv; s 210 libavfilter/vf_aspect.c if ((ret = get_aspect_ratio(inlink, &s->sar))) s 213 libavfilter/vf_aspect.c outlink->sample_aspect_ratio = s->sar; s 216 libavfilter/vf_aspect.c compute_dar(&dar, s->sar, inlink->w, inlink->h); s 126 libavfilter/vf_atadenoise.c ATADenoiseContext *s = ctx->priv; s 128 libavfilter/vf_atadenoise.c if (!(s->size & 1)) { s 129 libavfilter/vf_atadenoise.c av_log(ctx, AV_LOG_WARNING, "size %d is invalid. Must be an odd value, setting it to %d.\n", s->size, s->size|1); s 130 libavfilter/vf_atadenoise.c s->size |= 1; s 132 libavfilter/vf_atadenoise.c s->mid = s->size / 2 + 1; s 239 libavfilter/vf_atadenoise.c ATADenoiseContext *s = ctx->priv; s 243 libavfilter/vf_atadenoise.c const int size = s->size; s 244 libavfilter/vf_atadenoise.c const int mid = s->mid; s 247 libavfilter/vf_atadenoise.c for (p = 0; p < s->nb_planes; p++) { s 248 libavfilter/vf_atadenoise.c const int h = s->planeheight[p]; s 249 libavfilter/vf_atadenoise.c const int w = s->planewidth[p]; s 254 libavfilter/vf_atadenoise.c const int thra = s->thra[p]; s 255 libavfilter/vf_atadenoise.c const int thrb = s->thrb[p]; s 256 libavfilter/vf_atadenoise.c const uint8_t **data = (const uint8_t **)s->data[p]; s 257 libavfilter/vf_atadenoise.c const int *linesize = (const int *)s->linesize[p]; s 260 libavfilter/vf_atadenoise.c if (!((1 << p) & s->planes)) { s 270 libavfilter/vf_atadenoise.c s->dsp.filter_row(src, dst, srcf, w, mid, size, thra, thrb); s 287 libavfilter/vf_atadenoise.c ATADenoiseContext *s = ctx->priv; s 290 libavfilter/vf_atadenoise.c s->nb_planes = desc->nb_components; s 292 libavfilter/vf_atadenoise.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 293 libavfilter/vf_atadenoise.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 294 libavfilter/vf_atadenoise.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 295 libavfilter/vf_atadenoise.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 298 libavfilter/vf_atadenoise.c s->filter_slice = filter_slice; s 300 libavfilter/vf_atadenoise.c s->dsp.filter_row = s->algorithm == PARALLEL ? filter_row8 : filter_row8_serial; s 302 libavfilter/vf_atadenoise.c s->dsp.filter_row = s->algorithm == PARALLEL ? filter_row16 : filter_row16_serial; s 304 libavfilter/vf_atadenoise.c s->thra[0] = s->fthra[0] * (1 << depth) - 1; s 305 libavfilter/vf_atadenoise.c s->thra[1] = s->fthra[1] * (1 << depth) - 1; s 306 libavfilter/vf_atadenoise.c s->thra[2] = s->fthra[2] * (1 << depth) - 1; s 307 libavfilter/vf_atadenoise.c s->thrb[0] = s->fthrb[0] * (1 << depth) - 1; s 308 libavfilter/vf_atadenoise.c s->thrb[1] = s->fthrb[1] * (1 << depth) - 1; s 309 libavfilter/vf_atadenoise.c s->thrb[2] = s->fthrb[2] * (1 << depth) - 1; s 312 libavfilter/vf_atadenoise.c ff_atadenoise_init_x86(&s->dsp, depth, s->algorithm); s 321 libavfilter/vf_atadenoise.c ATADenoiseContext *s = ctx->priv; s 325 libavfilter/vf_atadenoise.c if (s->q.available != s->size) { s 326 libavfilter/vf_atadenoise.c if (s->q.available < s->mid) { s 327 libavfilter/vf_atadenoise.c for (i = 0; i < s->mid; i++) { s 333 libavfilter/vf_atadenoise.c ff_bufqueue_add(ctx, &s->q, out); s 336 libavfilter/vf_atadenoise.c if (s->q.available < s->size) { s 337 libavfilter/vf_atadenoise.c ff_bufqueue_add(ctx, &s->q, buf); s 338 libavfilter/vf_atadenoise.c s->available++; s 343 libavfilter/vf_atadenoise.c in = ff_bufqueue_peek(&s->q, s->mid); s 354 libavfilter/vf_atadenoise.c for (i = 0; i < s->size; i++) { s 355 libavfilter/vf_atadenoise.c AVFrame *frame = ff_bufqueue_peek(&s->q, i); s 357 libavfilter/vf_atadenoise.c s->data[0][i] = frame->data[0]; s 358 libavfilter/vf_atadenoise.c s->data[1][i] = frame->data[1]; s 359 libavfilter/vf_atadenoise.c s->data[2][i] = frame->data[2]; s 360 libavfilter/vf_atadenoise.c s->linesize[0][i] = frame->linesize[0]; s 361 libavfilter/vf_atadenoise.c s->linesize[1][i] = frame->linesize[1]; s 362 libavfilter/vf_atadenoise.c s->linesize[2][i] = frame->linesize[2]; s 366 libavfilter/vf_atadenoise.c ctx->internal->execute(ctx, s->filter_slice, &td, NULL, s 367 libavfilter/vf_atadenoise.c FFMIN3(s->planeheight[1], s 368 libavfilter/vf_atadenoise.c s->planeheight[2], s 379 libavfilter/vf_atadenoise.c in = ff_bufqueue_get(&s->q); s 381 libavfilter/vf_atadenoise.c ff_bufqueue_add(ctx, &s->q, buf); s 389 libavfilter/vf_atadenoise.c ATADenoiseContext *s = ctx->priv; s 394 libavfilter/vf_atadenoise.c if (ret == AVERROR_EOF && !ctx->is_disabled && s->available) { s 395 libavfilter/vf_atadenoise.c AVFrame *buf = av_frame_clone(ff_bufqueue_peek(&s->q, s->available)); s 400 libavfilter/vf_atadenoise.c s->available--; s 408 libavfilter/vf_atadenoise.c ATADenoiseContext *s = ctx->priv; s 410 libavfilter/vf_atadenoise.c ff_bufqueue_discard_all(&s->q); s 70 libavfilter/vf_avgblur.c AverageBlurContext *s = ctx->priv; \ s 76 libavfilter/vf_avgblur.c const int radius = FFMIN(s->radius, width / 2); \ s 78 libavfilter/vf_avgblur.c float *buffer = s->buffer; \ s 123 libavfilter/vf_avgblur.c AverageBlurContext *s = ctx->priv; \ s 129 libavfilter/vf_avgblur.c const int radius = FFMIN(s->radiusV, height / 2); \ s 141 libavfilter/vf_avgblur.c src = s->buffer + x; \ s 149 libavfilter/vf_avgblur.c src = s->buffer + x; \ s 178 libavfilter/vf_avgblur.c AverageBlurContext *s = inlink->dst->priv; s 180 libavfilter/vf_avgblur.c s->depth = desc->comp[0].depth; s 181 libavfilter/vf_avgblur.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 182 libavfilter/vf_avgblur.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 183 libavfilter/vf_avgblur.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 184 libavfilter/vf_avgblur.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 186 libavfilter/vf_avgblur.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 188 libavfilter/vf_avgblur.c s->buffer = av_malloc_array(inlink->w, inlink->h * sizeof(*s->buffer)); s 189 libavfilter/vf_avgblur.c if (!s->buffer) s 192 libavfilter/vf_avgblur.c if (s->radiusV <= 0) { s 193 libavfilter/vf_avgblur.c s->radiusV = s->radius; s 196 libavfilter/vf_avgblur.c if (s->depth == 8) { s 197 libavfilter/vf_avgblur.c s->filter_horizontally = filter_horizontally_8; s 198 libavfilter/vf_avgblur.c s->filter_vertically = filter_vertically_8; s 200 libavfilter/vf_avgblur.c s->filter_horizontally = filter_horizontally_16; s 201 libavfilter/vf_avgblur.c s->filter_vertically = filter_vertically_16; s 209 libavfilter/vf_avgblur.c AverageBlurContext *s = ctx->priv; s 210 libavfilter/vf_avgblur.c const int width = s->planewidth[plane]; s 211 libavfilter/vf_avgblur.c const int height = s->planeheight[plane]; s 219 libavfilter/vf_avgblur.c ctx->internal->execute(ctx, s->filter_horizontally, &td, NULL, FFMIN(height, nb_threads)); s 222 libavfilter/vf_avgblur.c ctx->internal->execute(ctx, s->filter_vertically, &td, NULL, FFMIN(width, nb_threads)); s 255 libavfilter/vf_avgblur.c AverageBlurContext *s = ctx->priv; s 271 libavfilter/vf_avgblur.c for (plane = 0; plane < s->nb_planes; plane++) { s 272 libavfilter/vf_avgblur.c const int height = s->planeheight[plane]; s 273 libavfilter/vf_avgblur.c const int width = s->planewidth[plane]; s 275 libavfilter/vf_avgblur.c if (!(s->planes & (1 << plane))) { s 279 libavfilter/vf_avgblur.c width * ((s->depth + 7) / 8), height); s 293 libavfilter/vf_avgblur.c AverageBlurContext *s = ctx->priv; s 295 libavfilter/vf_avgblur.c av_freep(&s->buffer); s 95 libavfilter/vf_avgblur_opencl.c AverageBlurOpenCLContext *s = ctx->priv; s 98 libavfilter/vf_avgblur_opencl.c if (s->radiusV <= 0) { s 99 libavfilter/vf_avgblur_opencl.c s->radiusV = s->radiusH; s 103 libavfilter/vf_avgblur_opencl.c s->power[i] = 1; s 112 libavfilter/vf_avgblur_opencl.c AverageBlurOpenCLContext *s = ctx->priv; s 116 libavfilter/vf_avgblur_opencl.c &s->luma_param, s 117 libavfilter/vf_avgblur_opencl.c &s->chroma_param, s 118 libavfilter/vf_avgblur_opencl.c &s->alpha_param); s 126 libavfilter/vf_avgblur_opencl.c s->radius[Y] = s->luma_param.radius; s 127 libavfilter/vf_avgblur_opencl.c s->radius[U] = s->radius[V] = s->chroma_param.radius; s 128 libavfilter/vf_avgblur_opencl.c s->radius[A] = s->alpha_param.radius; s 130 libavfilter/vf_avgblur_opencl.c s->power[Y] = s->luma_param.power; s 131 libavfilter/vf_avgblur_opencl.c s->power[U] = s->power[V] = s->chroma_param.power; s 132 libavfilter/vf_avgblur_opencl.c s->power[A] = s->alpha_param.power; s 135 libavfilter/vf_avgblur_opencl.c if (s->power[i] == 0) { s 136 libavfilter/vf_avgblur_opencl.c s->power[i] = 1; s 137 libavfilter/vf_avgblur_opencl.c s->radius[i] = 0; s 74 libavfilter/vf_avgblur_vulkan.c AvgBlurVulkanContext *s = ctx->priv; s 75 libavfilter/vf_avgblur_vulkan.c const int planes = av_pix_fmt_count_planes(s->vkctx.output_format); s 90 libavfilter/vf_avgblur_vulkan.c .mem_layout = ff_vk_shader_rep_fmt(s->vkctx.output_format), s 101 libavfilter/vf_avgblur_vulkan.c s->vkctx.queue_family_idx = s->vkctx.hwctx->queue_family_comp_index; s 102 libavfilter/vf_avgblur_vulkan.c s->vkctx.queue_count = GET_QUEUE_COUNT(s->vkctx.hwctx, 0, 1, 0); s 103 libavfilter/vf_avgblur_vulkan.c s->vkctx.cur_queue_idx = av_get_random_seed() % s->vkctx.queue_count; s 106 libavfilter/vf_avgblur_vulkan.c desc_i[0].updater = s->input_images; s 107 libavfilter/vf_avgblur_vulkan.c desc_i[1].updater = s->tmp_images; s 109 libavfilter/vf_avgblur_vulkan.c s->pl_hor = ff_vk_create_pipeline(ctx); s 110 libavfilter/vf_avgblur_vulkan.c if (!s->pl_hor) s 113 libavfilter/vf_avgblur_vulkan.c shd = ff_vk_init_shader(ctx, s->pl_hor, "avgblur_compute_hor", s 118 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_add_descriptor_set(ctx, s->pl_hor, shd, desc_i, 2, 0)); s 120 libavfilter/vf_avgblur_vulkan.c GLSLF(0, #define FILTER_RADIUS (%i) ,s->size_x - 1); s 132 libavfilter/vf_avgblur_vulkan.c if (s->planes & (1 << i)) { s 144 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_init_pipeline_layout(ctx, s->pl_hor)); s 145 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_init_compute_pipeline(ctx, s->pl_hor)); s 149 libavfilter/vf_avgblur_vulkan.c desc_i[0].updater = s->tmp_images; s 150 libavfilter/vf_avgblur_vulkan.c desc_i[1].updater = s->output_images; s 152 libavfilter/vf_avgblur_vulkan.c s->pl_ver = ff_vk_create_pipeline(ctx); s 153 libavfilter/vf_avgblur_vulkan.c if (!s->pl_ver) s 156 libavfilter/vf_avgblur_vulkan.c shd = ff_vk_init_shader(ctx, s->pl_ver, "avgblur_compute_ver", s 161 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_add_descriptor_set(ctx, s->pl_ver, shd, desc_i, 2, 0)); s 163 libavfilter/vf_avgblur_vulkan.c GLSLF(0, #define FILTER_RADIUS (%i) ,s->size_y - 1); s 175 libavfilter/vf_avgblur_vulkan.c if (s->planes & (1 << i)) { s 187 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_init_pipeline_layout(ctx, s->pl_ver)); s 188 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_init_compute_pipeline(ctx, s->pl_ver)); s 192 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_create_exec_ctx(ctx, &s->exec)); s 194 libavfilter/vf_avgblur_vulkan.c s->initialized = 1; s 206 libavfilter/vf_avgblur_vulkan.c AvgBlurVulkanContext *s = avctx->priv; s 210 libavfilter/vf_avgblur_vulkan.c int planes = av_pix_fmt_count_planes(s->vkctx.output_format); s 213 libavfilter/vf_avgblur_vulkan.c ff_vk_start_exec_recording(avctx, s->exec); s 214 libavfilter/vf_avgblur_vulkan.c cmd_buf = ff_vk_get_exec_buf(avctx, s->exec); s 217 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->input_images[i].imageView, s 219 libavfilter/vf_avgblur_vulkan.c av_vkfmt_from_pixfmt(s->vkctx.input_format)[i], s 222 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->tmp_images[i].imageView, s 224 libavfilter/vf_avgblur_vulkan.c av_vkfmt_from_pixfmt(s->vkctx.output_format)[i], s 227 libavfilter/vf_avgblur_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->output_images[i].imageView, s 229 libavfilter/vf_avgblur_vulkan.c av_vkfmt_from_pixfmt(s->vkctx.output_format)[i], s 232 libavfilter/vf_avgblur_vulkan.c s->input_images[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; s 233 libavfilter/vf_avgblur_vulkan.c s->tmp_images[i].imageLayout = VK_IMAGE_LAYOUT_GENERAL; s 234 libavfilter/vf_avgblur_vulkan.c s->output_images[i].imageLayout = VK_IMAGE_LAYOUT_GENERAL; s 237 libavfilter/vf_avgblur_vulkan.c ff_vk_update_descriptor_set(avctx, s->pl_hor, 0); s 238 libavfilter/vf_avgblur_vulkan.c ff_vk_update_descriptor_set(avctx, s->pl_ver, 0); s 247 libavfilter/vf_avgblur_vulkan.c .newLayout = s->input_images[i].imageLayout, s 260 libavfilter/vf_avgblur_vulkan.c .newLayout = s->tmp_images[i].imageLayout, s 273 libavfilter/vf_avgblur_vulkan.c .newLayout = s->output_images[i].imageLayout, s 297 libavfilter/vf_avgblur_vulkan.c ff_vk_bind_pipeline_exec(avctx, s->exec, s->pl_hor); s 299 libavfilter/vf_avgblur_vulkan.c vkCmdDispatch(cmd_buf, FFALIGN(s->vkctx.output_width, CGS)/CGS, s 300 libavfilter/vf_avgblur_vulkan.c s->vkctx.output_height, 1); s 302 libavfilter/vf_avgblur_vulkan.c ff_vk_bind_pipeline_exec(avctx, s->exec, s->pl_ver); s 304 libavfilter/vf_avgblur_vulkan.c vkCmdDispatch(cmd_buf, s->vkctx.output_width, s 305 libavfilter/vf_avgblur_vulkan.c FFALIGN(s->vkctx.output_height, CGS)/CGS, 1); s 307 libavfilter/vf_avgblur_vulkan.c ff_vk_add_exec_dep(avctx, s->exec, in_f, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); s 308 libavfilter/vf_avgblur_vulkan.c ff_vk_add_exec_dep(avctx, s->exec, out_f, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); s 310 libavfilter/vf_avgblur_vulkan.c err = ff_vk_submit_exec_queue(avctx, s->exec); s 317 libavfilter/vf_avgblur_vulkan.c ff_vk_discard_exec_deps(avctx, s->exec); s 326 libavfilter/vf_avgblur_vulkan.c AvgBlurVulkanContext *s = ctx->priv; s 341 libavfilter/vf_avgblur_vulkan.c if (!s->initialized) s 364 libavfilter/vf_avgblur_vulkan.c AvgBlurVulkanContext *s = avctx->priv; s 368 libavfilter/vf_avgblur_vulkan.c s->initialized = 0; s 96 libavfilter/vf_bilateral.c BilateralContext *s = inlink->dst->priv; s 100 libavfilter/vf_bilateral.c s->depth = desc->comp[0].depth; s 101 libavfilter/vf_bilateral.c inv_sigma_range = 1.0f / (s->sigmaR * ((1 << s->depth) - 1)); s 104 libavfilter/vf_bilateral.c for (int i = 0; i < (1 << s->depth); i++) s 105 libavfilter/vf_bilateral.c s->range_table[i] = expf(-i * inv_sigma_range); s 107 libavfilter/vf_bilateral.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 108 libavfilter/vf_bilateral.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 109 libavfilter/vf_bilateral.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 110 libavfilter/vf_bilateral.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 112 libavfilter/vf_bilateral.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 114 libavfilter/vf_bilateral.c s->img_out_f = av_calloc(inlink->w * inlink->h, sizeof(float)); s 115 libavfilter/vf_bilateral.c s->img_temp = av_calloc(inlink->w * inlink->h, sizeof(float)); s 116 libavfilter/vf_bilateral.c s->map_factor_a = av_calloc(inlink->w * inlink->h, sizeof(float)); s 117 libavfilter/vf_bilateral.c s->map_factor_b = av_calloc(inlink->w * inlink->h, sizeof(float)); s 118 libavfilter/vf_bilateral.c s->slice_factor_a = av_calloc(inlink->w, sizeof(float)); s 119 libavfilter/vf_bilateral.c s->slice_factor_b = av_calloc(inlink->w, sizeof(float)); s 120 libavfilter/vf_bilateral.c s->line_factor_a = av_calloc(inlink->w, sizeof(float)); s 121 libavfilter/vf_bilateral.c s->line_factor_b = av_calloc(inlink->w, sizeof(float)); s 123 libavfilter/vf_bilateral.c if (!s->img_out_f || s 124 libavfilter/vf_bilateral.c !s->img_temp || s 125 libavfilter/vf_bilateral.c !s->map_factor_a || s 126 libavfilter/vf_bilateral.c !s->map_factor_b || s 127 libavfilter/vf_bilateral.c !s->slice_factor_a || s 128 libavfilter/vf_bilateral.c !s->slice_factor_a || s 129 libavfilter/vf_bilateral.c !s->line_factor_a || s 130 libavfilter/vf_bilateral.c !s->line_factor_a) s 137 libavfilter/vf_bilateral.c static void bilateral_##name(BilateralContext *s, const uint8_t *ssrc, uint8_t *ddst, \ s 143 libavfilter/vf_bilateral.c float *img_out_f = s->img_out_f, *img_temp = s->img_temp; \ s 144 libavfilter/vf_bilateral.c float *map_factor_a = s->map_factor_a, *map_factor_b = s->map_factor_b; \ s 145 libavfilter/vf_bilateral.c float *slice_factor_a = s->slice_factor_a, *slice_factor_b = s->slice_factor_b; \ s 146 libavfilter/vf_bilateral.c float *line_factor_a = s->line_factor_a, *line_factor_b = s->line_factor_b; \ s 147 libavfilter/vf_bilateral.c float *range_table = s->range_table; \ s 295 libavfilter/vf_bilateral.c BilateralContext *s = ctx->priv; s 306 libavfilter/vf_bilateral.c for (int plane = 0; plane < s->nb_planes; plane++) { s 307 libavfilter/vf_bilateral.c if (!(s->planes & (1 << plane))) { s 310 libavfilter/vf_bilateral.c s->planewidth[plane] * ((s->depth + 7) / 8), s->planeheight[plane]); s 314 libavfilter/vf_bilateral.c if (s->depth <= 8) s 315 libavfilter/vf_bilateral.c bilateral_byte(s, in->data[plane], out->data[plane], s->sigmaS, s->sigmaR, s 316 libavfilter/vf_bilateral.c s->planewidth[plane], s->planeheight[plane], s 319 libavfilter/vf_bilateral.c bilateral_word(s, in->data[plane], out->data[plane], s->sigmaS, s->sigmaR, s 320 libavfilter/vf_bilateral.c s->planewidth[plane], s->planeheight[plane], s 330 libavfilter/vf_bilateral.c BilateralContext *s = ctx->priv; s 332 libavfilter/vf_bilateral.c av_freep(&s->img_out_f); s 333 libavfilter/vf_bilateral.c av_freep(&s->img_temp); s 334 libavfilter/vf_bilateral.c av_freep(&s->map_factor_a); s 335 libavfilter/vf_bilateral.c av_freep(&s->map_factor_b); s 336 libavfilter/vf_bilateral.c av_freep(&s->slice_factor_a); s 337 libavfilter/vf_bilateral.c av_freep(&s->slice_factor_b); s 338 libavfilter/vf_bilateral.c av_freep(&s->line_factor_a); s 339 libavfilter/vf_bilateral.c av_freep(&s->line_factor_b); s 80 libavfilter/vf_bitplanenoise.c BPNContext *s = ctx->priv; s 82 libavfilter/vf_bitplanenoise.c s->nb_planes = desc->nb_components; s 84 libavfilter/vf_bitplanenoise.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 85 libavfilter/vf_bitplanenoise.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 86 libavfilter/vf_bitplanenoise.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 87 libavfilter/vf_bitplanenoise.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 89 libavfilter/vf_bitplanenoise.c s->depth = desc->comp[0].depth; s 106 libavfilter/vf_bitplanenoise.c BPNContext *s = ctx->priv; s 107 libavfilter/vf_bitplanenoise.c const int mask = (1 << (s->bitplane - 1)); s 108 libavfilter/vf_bitplanenoise.c const int factor = (1 << s->depth) - 1; s 112 libavfilter/vf_bitplanenoise.c AVFrame *out = s->filter ? NULL : in; s 123 libavfilter/vf_bitplanenoise.c if (s->depth <= 8) { s 124 libavfilter/vf_bitplanenoise.c for (plane = 0; plane < s->nb_planes; plane++) { s 125 libavfilter/vf_bitplanenoise.c const int linesize = s->planeheight[plane] > 1 ? in->linesize[plane] : 0; s 128 libavfilter/vf_bitplanenoise.c uint8_t *dst = s->filter ? out->data[plane]: NULL; s 130 libavfilter/vf_bitplanenoise.c for (y = 0; y < s->planeheight[plane] - 1; y++) { s 133 libavfilter/vf_bitplanenoise.c for (x = 1; x < s->planewidth[plane] - 1; x++) { s 146 libavfilter/vf_bitplanenoise.c for (x = 1; x < s->planewidth[plane] - 1; x++) { s 153 libavfilter/vf_bitplanenoise.c for (plane = 0; plane < s->nb_planes; plane++) { s 154 libavfilter/vf_bitplanenoise.c const int linesize = s->planeheight[plane] > 1 ? in->linesize[plane] / 2 : 0; s 157 libavfilter/vf_bitplanenoise.c uint16_t *dst = s->filter ? (uint16_t *)out->data[plane] : NULL; s 160 libavfilter/vf_bitplanenoise.c for (y = 0; y < s->planeheight[plane] - 1; y++) { s 163 libavfilter/vf_bitplanenoise.c for (x = 1; x < s->planewidth[plane] - 1; x++) { s 176 libavfilter/vf_bitplanenoise.c for (x = 1; x < s->planewidth[plane] - 1; x++) { s 184 libavfilter/vf_bitplanenoise.c for (plane = 0; plane < s->nb_planes; plane++) { s 187 libavfilter/vf_bitplanenoise.c stats[plane] /= s->planewidth[plane] * s->planeheight[plane]; s 188 libavfilter/vf_bitplanenoise.c snprintf(key, sizeof(key), "lavfi.bitplanenoise.%d.%d", plane, s->bitplane); s 70 libavfilter/vf_blackframe.c BlackFrameContext *s = ctx->priv; s 79 libavfilter/vf_blackframe.c s->nblack += p[x] < s->bthresh; s 84 libavfilter/vf_blackframe.c s->last_keyframe = s->frame; s 86 libavfilter/vf_blackframe.c pblack = s->nblack * 100 / (inlink->w * inlink->h); s 87 libavfilter/vf_blackframe.c if (pblack >= s->bamount) { s 92 libavfilter/vf_blackframe.c s->frame, pblack, frame->pts, s 94 libavfilter/vf_blackframe.c av_get_picture_type_char(frame->pict_type), s->last_keyframe); s 99 libavfilter/vf_blackframe.c s->frame++; s 100 libavfilter/vf_blackframe.c s->nblack = 0; s 609 libavfilter/vf_blend.c BlendContext *s = ctx->priv; s 620 libavfilter/vf_blend.c for (plane = 0; plane < s->nb_planes; plane++) { s 621 libavfilter/vf_blend.c int hsub = plane == 1 || plane == 2 ? s->hsub : 0; s 622 libavfilter/vf_blend.c int vsub = plane == 1 || plane == 2 ? s->vsub : 0; s 625 libavfilter/vf_blend.c FilterParams *param = &s->params[plane]; s 633 libavfilter/vf_blend.c if (!s->tblend) s 656 libavfilter/vf_blend.c BlendContext *s = ctx->priv; s 658 libavfilter/vf_blend.c s->tblend = !strcmp(ctx->filter->name, "tblend"); s 660 libavfilter/vf_blend.c s->fs.on_event = blend_frame_for_dualinput; s 694 libavfilter/vf_blend.c BlendContext *s = ctx->priv; s 697 libavfilter/vf_blend.c ff_framesync_uninit(&s->fs); s 698 libavfilter/vf_blend.c av_frame_free(&s->prev_frame); s 700 libavfilter/vf_blend.c for (i = 0; i < FF_ARRAY_ELEMS(s->params); i++) s 701 libavfilter/vf_blend.c av_expr_free(s->params[i].e); s 790 libavfilter/vf_blend.c BlendContext *s = ctx->priv; s 794 libavfilter/vf_blend.c if (!s->tblend) { s 817 libavfilter/vf_blend.c s->hsub = pix_desc->log2_chroma_w; s 818 libavfilter/vf_blend.c s->vsub = pix_desc->log2_chroma_h; s 820 libavfilter/vf_blend.c s->depth = pix_desc->comp[0].depth; s 821 libavfilter/vf_blend.c s->nb_planes = av_pix_fmt_count_planes(toplink->format); s 823 libavfilter/vf_blend.c if (!s->tblend) s 824 libavfilter/vf_blend.c if ((ret = ff_framesync_init_dualinput(&s->fs, ctx)) < 0) s 827 libavfilter/vf_blend.c for (plane = 0; plane < FF_ARRAY_ELEMS(s->params); plane++) { s 828 libavfilter/vf_blend.c FilterParams *param = &s->params[plane]; s 830 libavfilter/vf_blend.c if (s->all_mode >= 0) s 831 libavfilter/vf_blend.c param->mode = s->all_mode; s 832 libavfilter/vf_blend.c if (s->all_opacity < 1) s 833 libavfilter/vf_blend.c param->opacity = s->all_opacity; s 835 libavfilter/vf_blend.c ff_blend_init(param, s->depth); s 837 libavfilter/vf_blend.c if (s->all_expr && !param->expr_str) { s 838 libavfilter/vf_blend.c param->expr_str = av_strdup(s->all_expr); s 847 libavfilter/vf_blend.c param->blend = s->depth > 8 ? s->depth > 16 ? blend_expr_32bit : blend_expr_16bit : blend_expr_8bit; s 851 libavfilter/vf_blend.c if (s->tblend) s 854 libavfilter/vf_blend.c ret = ff_framesync_configure(&s->fs); s 855 libavfilter/vf_blend.c outlink->time_base = s->fs.time_base; s 864 libavfilter/vf_blend.c BlendContext *s = ctx->priv; s 865 libavfilter/vf_blend.c return ff_framesync_activate(&s->fs); s 910 libavfilter/vf_blend.c BlendContext *s = ctx->priv; s 913 libavfilter/vf_blend.c if (s->prev_frame) { s 919 libavfilter/vf_blend.c out = blend_frame(ctx, frame, s->prev_frame); s 920 libavfilter/vf_blend.c av_frame_free(&s->prev_frame); s 921 libavfilter/vf_blend.c s->prev_frame = frame; s 924 libavfilter/vf_blend.c s->prev_frame = frame; s 119 libavfilter/vf_bm3d.c double (*do_block_ssd)(struct BM3DContext *s, PosCode *pos, s 122 libavfilter/vf_bm3d.c void (*do_output)(struct BM3DContext *s, uint8_t *dst, int dst_linesize, s 124 libavfilter/vf_bm3d.c void (*block_filtering)(struct BM3DContext *s, s 235 libavfilter/vf_bm3d.c static double do_block_ssd(BM3DContext *s, PosCode *pos, const uint8_t *src, int src_stride, int r_y, int r_x) s 239 libavfilter/vf_bm3d.c const int block_size = s->block_size; s 256 libavfilter/vf_bm3d.c static double do_block_ssd16(BM3DContext *s, PosCode *pos, const uint8_t *src, int src_stride, int r_y, int r_x) s 260 libavfilter/vf_bm3d.c const int block_size = s->block_size; s 277 libavfilter/vf_bm3d.c static void do_block_matching_multi(BM3DContext *s, const uint8_t *src, int src_stride, int src_range, s 281 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[jobnr]; s 282 libavfilter/vf_bm3d.c double MSE2SSE = s->group_size * s->block_size * s->block_size * src_range * src_range / (s->max * s->max); s 291 libavfilter/vf_bm3d.c dist = s->do_block_ssd(s, &pos, src, src_stride, r_y, r_x); s 297 libavfilter/vf_bm3d.c if (index >= s->group_size && score >= sc->match_blocks[index - 1].score) { s 301 libavfilter/vf_bm3d.c if (index >= s->group_size) s 302 libavfilter/vf_bm3d.c index = s->group_size - 1; s 315 libavfilter/vf_bm3d.c static void block_matching_multi(BM3DContext *s, const uint8_t *ref, int ref_linesize, int y, int x, s 318 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[jobnr]; s 319 libavfilter/vf_bm3d.c const int width = s->planewidth[plane]; s 320 libavfilter/vf_bm3d.c const int height = s->planeheight[plane]; s 321 libavfilter/vf_bm3d.c const int block_size = s->block_size; s 322 libavfilter/vf_bm3d.c const int step = s->bm_step; s 323 libavfilter/vf_bm3d.c const int range = s->bm_range / step * step; s 351 libavfilter/vf_bm3d.c do_block_matching_multi(s, ref, ref_linesize, s->bm_range, s 352 libavfilter/vf_bm3d.c sc->search_positions, index, s->th_mse, y, x, plane, jobnr); s 355 libavfilter/vf_bm3d.c static void block_matching(BM3DContext *s, const uint8_t *ref, int ref_linesize, s 358 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[jobnr]; s 360 libavfilter/vf_bm3d.c if (s->group_size == 1 || s->th_mse <= 0.f) { s 369 libavfilter/vf_bm3d.c block_matching_multi(s, ref, ref_linesize, j, i, 1, plane, jobnr); s 394 libavfilter/vf_bm3d.c static void basic_block_filtering(BM3DContext *s, const uint8_t *src, int src_linesize, s 398 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[jobnr]; s 399 libavfilter/vf_bm3d.c const int buffer_linesize = s->block_size * s->block_size; s 401 libavfilter/vf_bm3d.c const int block_size = s->block_size; s 402 libavfilter/vf_bm3d.c const int width = s->planewidth[plane]; s 403 libavfilter/vf_bm3d.c const int pgroup_size = s->pgroup_size; s 404 libavfilter/vf_bm3d.c const int group_size = s->group_size; s 419 libavfilter/vf_bm3d.c s->get_block_row(src, src_linesize, y + i, x, block_size, bufferh + block_size * i); s 446 libavfilter/vf_bm3d.c threshold[0] = s->hard_threshold * s->sigma * M_SQRT2 * block_size * block_size * (1 << (s->depth - 8)) / 255.f; s 513 libavfilter/vf_bm3d.c static void final_block_filtering(BM3DContext *s, const uint8_t *src, int src_linesize, s 517 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[jobnr]; s 518 libavfilter/vf_bm3d.c const int buffer_linesize = s->block_size * s->block_size; s 520 libavfilter/vf_bm3d.c const int block_size = s->block_size; s 521 libavfilter/vf_bm3d.c const int width = s->planewidth[plane]; s 522 libavfilter/vf_bm3d.c const int pgroup_size = s->pgroup_size; s 523 libavfilter/vf_bm3d.c const int group_size = s->group_size; s 524 libavfilter/vf_bm3d.c const float sigma_sqr = s->sigma * s->sigma; s 542 libavfilter/vf_bm3d.c s->get_block_row(src, src_linesize, y + i, x, block_size, bufferh + block_size * i); s 543 libavfilter/vf_bm3d.c s->get_block_row(ref, ref_linesize, y + i, x, block_size, rbufferh + block_size * i); s 645 libavfilter/vf_bm3d.c static void do_output(BM3DContext *s, uint8_t *dst, int dst_linesize, s 648 libavfilter/vf_bm3d.c const int height = s->planeheight[plane]; s 649 libavfilter/vf_bm3d.c const int width = s->planewidth[plane]; s 659 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[k]; s 672 libavfilter/vf_bm3d.c static void do_output16(BM3DContext *s, uint8_t *dst, int dst_linesize, s 675 libavfilter/vf_bm3d.c const int height = s->planeheight[plane]; s 676 libavfilter/vf_bm3d.c const int width = s->planewidth[plane]; s 677 libavfilter/vf_bm3d.c const int depth = s->depth; s 687 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[k]; s 702 libavfilter/vf_bm3d.c BM3DContext *s = ctx->priv; s 703 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[jobnr]; s 704 libavfilter/vf_bm3d.c const int block_step = s->block_step; s 711 libavfilter/vf_bm3d.c const int width = s->planewidth[plane]; s 712 libavfilter/vf_bm3d.c const int height = s->planeheight[plane]; s 713 libavfilter/vf_bm3d.c const int block_pos_bottom = FFMAX(0, height - s->block_size); s 714 libavfilter/vf_bm3d.c const int block_pos_right = FFMAX(0, width - s->block_size); s 733 libavfilter/vf_bm3d.c block_matching(s, ref, ref_linesize, j, i, plane, jobnr); s 735 libavfilter/vf_bm3d.c s->block_filtering(s, src, src_linesize, s 745 libavfilter/vf_bm3d.c BM3DContext *s = ctx->priv; s 754 libavfilter/vf_bm3d.c for (p = 0; p < s->nb_planes; p++) { s 755 libavfilter/vf_bm3d.c const int nb_jobs = FFMAX(1, FFMIN(s->nb_threads, s->planeheight[p] / s->block_size)); s 758 libavfilter/vf_bm3d.c if (!((1 << p) & s->planes) || ctx->is_disabled) { s 761 libavfilter/vf_bm3d.c s->planewidth[p], s->planeheight[p]); s 772 libavfilter/vf_bm3d.c s->do_output(s, (*out)->data[p], (*out)->linesize[p], p, nb_jobs); s 784 libavfilter/vf_bm3d.c BM3DContext *s = ctx->priv; s 787 libavfilter/vf_bm3d.c s->nb_threads = FFMIN(ff_filter_get_nb_threads(ctx), MAX_NB_THREADS); s 788 libavfilter/vf_bm3d.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 789 libavfilter/vf_bm3d.c s->depth = desc->comp[0].depth; s 790 libavfilter/vf_bm3d.c s->max = (1 << s->depth) - 1; s 791 libavfilter/vf_bm3d.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 792 libavfilter/vf_bm3d.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 793 libavfilter/vf_bm3d.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 794 libavfilter/vf_bm3d.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 796 libavfilter/vf_bm3d.c for (group_bits = 4; 1 << group_bits < s->group_size; group_bits++); s 797 libavfilter/vf_bm3d.c s->group_bits = group_bits; s 798 libavfilter/vf_bm3d.c s->pgroup_size = 1 << group_bits; s 800 libavfilter/vf_bm3d.c for (i = 0; i < s->nb_threads; i++) { s 801 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[i]; s 803 libavfilter/vf_bm3d.c sc->num = av_calloc(FFALIGN(s->planewidth[0], s->block_size) * FFALIGN(s->planeheight[0], s->block_size), sizeof(FFTSample)); s 804 libavfilter/vf_bm3d.c sc->den = av_calloc(FFALIGN(s->planewidth[0], s->block_size) * FFALIGN(s->planeheight[0], s->block_size), sizeof(FFTSample)); s 808 libavfilter/vf_bm3d.c sc->dctf = av_dct_init(av_log2(s->block_size), DCT_II); s 809 libavfilter/vf_bm3d.c sc->dcti = av_dct_init(av_log2(s->block_size), DCT_III); s 813 libavfilter/vf_bm3d.c if (s->group_bits > 1) { s 814 libavfilter/vf_bm3d.c sc->gdctf = av_dct_init(s->group_bits, DCT_II); s 815 libavfilter/vf_bm3d.c sc->gdcti = av_dct_init(s->group_bits, DCT_III); s 820 libavfilter/vf_bm3d.c sc->buffer = av_calloc(s->block_size * s->block_size * s->pgroup_size, sizeof(*sc->buffer)); s 821 libavfilter/vf_bm3d.c sc->bufferz = av_calloc(s->block_size * s->block_size * s->pgroup_size, sizeof(*sc->bufferz)); s 822 libavfilter/vf_bm3d.c sc->bufferh = av_calloc(s->block_size * s->block_size, sizeof(*sc->bufferh)); s 823 libavfilter/vf_bm3d.c sc->bufferv = av_calloc(s->block_size * s->block_size, sizeof(*sc->bufferv)); s 827 libavfilter/vf_bm3d.c if (s->mode == FINAL) { s 828 libavfilter/vf_bm3d.c sc->rbuffer = av_calloc(s->block_size * s->block_size * s->pgroup_size, sizeof(*sc->rbuffer)); s 829 libavfilter/vf_bm3d.c sc->rbufferz = av_calloc(s->block_size * s->block_size * s->pgroup_size, sizeof(*sc->rbufferz)); s 830 libavfilter/vf_bm3d.c sc->rbufferh = av_calloc(s->block_size * s->block_size, sizeof(*sc->rbufferh)); s 831 libavfilter/vf_bm3d.c sc->rbufferv = av_calloc(s->block_size * s->block_size, sizeof(*sc->rbufferv)); s 836 libavfilter/vf_bm3d.c sc->search_positions = av_calloc(SQR(2 * s->bm_range / s->bm_step + 1), sizeof(*sc->search_positions)); s 841 libavfilter/vf_bm3d.c s->do_output = do_output; s 842 libavfilter/vf_bm3d.c s->do_block_ssd = do_block_ssd; s 843 libavfilter/vf_bm3d.c s->get_block_row = get_block_row; s 845 libavfilter/vf_bm3d.c if (s->depth > 8) { s 846 libavfilter/vf_bm3d.c s->do_output = do_output16; s 847 libavfilter/vf_bm3d.c s->do_block_ssd = do_block_ssd16; s 848 libavfilter/vf_bm3d.c s->get_block_row = get_block_row16; s 856 libavfilter/vf_bm3d.c BM3DContext *s = ctx->priv; s 858 libavfilter/vf_bm3d.c if (!s->ref) { s 884 libavfilter/vf_bm3d.c return ff_framesync_activate(&s->fs); s 891 libavfilter/vf_bm3d.c BM3DContext *s = fs->opaque; s 896 libavfilter/vf_bm3d.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &src, 0)) < 0 || s 897 libavfilter/vf_bm3d.c (ret = ff_framesync_get_frame(&s->fs, 1, &ref, 0)) < 0) s 903 libavfilter/vf_bm3d.c out->pts = av_rescale_q(src->pts, s->fs.time_base, outlink->time_base); s 910 libavfilter/vf_bm3d.c BM3DContext *s = ctx->priv; s 914 libavfilter/vf_bm3d.c if (s->mode == BASIC) { s 915 libavfilter/vf_bm3d.c if (s->th_mse == 0.f) s 916 libavfilter/vf_bm3d.c s->th_mse = 400.f + s->sigma * 80.f; s 917 libavfilter/vf_bm3d.c s->block_filtering = basic_block_filtering; s 918 libavfilter/vf_bm3d.c } else if (s->mode == FINAL) { s 919 libavfilter/vf_bm3d.c if (!s->ref) { s 921 libavfilter/vf_bm3d.c s->ref = 1; s 923 libavfilter/vf_bm3d.c if (s->th_mse == 0.f) s 924 libavfilter/vf_bm3d.c s->th_mse = 200.f + s->sigma * 10.f; s 926 libavfilter/vf_bm3d.c s->block_filtering = final_block_filtering; s 931 libavfilter/vf_bm3d.c s->block_size = 1 << s->block_size; s 933 libavfilter/vf_bm3d.c if (s->block_step > s->block_size) { s 935 libavfilter/vf_bm3d.c s->block_step, s->block_size); s 936 libavfilter/vf_bm3d.c s->block_step = s->block_size; s 938 libavfilter/vf_bm3d.c if (s->bm_step > s->bm_range) { s 940 libavfilter/vf_bm3d.c s->bm_step, s->bm_range); s 941 libavfilter/vf_bm3d.c s->bm_step = s->bm_range; s 955 libavfilter/vf_bm3d.c if (s->ref) { s 974 libavfilter/vf_bm3d.c BM3DContext *s = ctx->priv; s 980 libavfilter/vf_bm3d.c if (s->ref) { s 1004 libavfilter/vf_bm3d.c if (!s->ref) s 1007 libavfilter/vf_bm3d.c if ((ret = ff_framesync_init(&s->fs, ctx, 2)) < 0) s 1010 libavfilter/vf_bm3d.c in = s->fs.in; s 1019 libavfilter/vf_bm3d.c s->fs.opaque = s; s 1020 libavfilter/vf_bm3d.c s->fs.on_event = process_frame; s 1022 libavfilter/vf_bm3d.c return ff_framesync_configure(&s->fs); s 1027 libavfilter/vf_bm3d.c BM3DContext *s = ctx->priv; s 1033 libavfilter/vf_bm3d.c if (s->ref) s 1034 libavfilter/vf_bm3d.c ff_framesync_uninit(&s->fs); s 1036 libavfilter/vf_bm3d.c for (i = 0; i < s->nb_threads; i++) { s 1037 libavfilter/vf_bm3d.c SliceContext *sc = &s->slices[i]; s 52 libavfilter/vf_boxblur.c BoxBlurContext *s = ctx->priv; s 54 libavfilter/vf_boxblur.c av_freep(&s->temp[0]); s 55 libavfilter/vf_boxblur.c av_freep(&s->temp[1]); s 79 libavfilter/vf_boxblur.c BoxBlurContext *s = ctx->priv; s 83 libavfilter/vf_boxblur.c if (!(s->temp[0] = av_malloc(2*FFMAX(w, h))) || s 84 libavfilter/vf_boxblur.c !(s->temp[1] = av_malloc(2*FFMAX(w, h)))) s 87 libavfilter/vf_boxblur.c s->hsub = desc->log2_chroma_w; s 88 libavfilter/vf_boxblur.c s->vsub = desc->log2_chroma_h; s 91 libavfilter/vf_boxblur.c &s->luma_param, s 92 libavfilter/vf_boxblur.c &s->chroma_param, s 93 libavfilter/vf_boxblur.c &s->alpha_param); s 101 libavfilter/vf_boxblur.c s->radius[Y] = s->luma_param.radius; s 102 libavfilter/vf_boxblur.c s->radius[U] = s->radius[V] = s->chroma_param.radius; s 103 libavfilter/vf_boxblur.c s->radius[A] = s->alpha_param.radius; s 105 libavfilter/vf_boxblur.c s->power[Y] = s->luma_param.power; s 106 libavfilter/vf_boxblur.c s->power[U] = s->power[V] = s->chroma_param.power; s 107 libavfilter/vf_boxblur.c s->power[A] = s->alpha_param.power; s 230 libavfilter/vf_boxblur.c BoxBlurContext *s = ctx->priv; s 234 libavfilter/vf_boxblur.c int cw = AV_CEIL_RSHIFT(inlink->w, s->hsub), ch = AV_CEIL_RSHIFT(in->height, s->vsub); s 251 libavfilter/vf_boxblur.c w[plane], h[plane], s->radius[plane], s->power[plane], s 252 libavfilter/vf_boxblur.c s->temp, pixsize); s 257 libavfilter/vf_boxblur.c w[plane], h[plane], s->radius[plane], s->power[plane], s 258 libavfilter/vf_boxblur.c s->temp, pixsize); s 218 libavfilter/vf_bwdif.c BWDIFContext *s = ctx->priv; s 219 libavfilter/vf_bwdif.c YADIFContext *yadif = &s->yadif; s 236 libavfilter/vf_bwdif.c s->filter_intra(dst, cur, td->w, (y + df) < td->h ? refs : -refs, s 242 libavfilter/vf_bwdif.c s->filter_edge(dst, prev, cur, next, td->w, s 249 libavfilter/vf_bwdif.c s->filter_line(dst, prev, cur, next, td->w, s 335 libavfilter/vf_bwdif.c BWDIFContext *s = link->src->priv; s 336 libavfilter/vf_bwdif.c YADIFContext *yadif = &s->yadif; s 354 libavfilter/vf_bwdif.c s->filter_intra = filter_intra_16bit; s 355 libavfilter/vf_bwdif.c s->filter_line = filter_line_c_16bit; s 356 libavfilter/vf_bwdif.c s->filter_edge = filter_edge_16bit; s 358 libavfilter/vf_bwdif.c s->filter_intra = filter_intra; s 359 libavfilter/vf_bwdif.c s->filter_line = filter_line_c; s 360 libavfilter/vf_bwdif.c s->filter_edge = filter_edge; s 364 libavfilter/vf_bwdif.c ff_bwdif_init_x86(s); s 39 libavfilter/vf_cas.c int (*do_slice)(AVFilterContext *s, void *arg, s 50 libavfilter/vf_cas.c CASContext *s = avctx->priv; s 51 libavfilter/vf_cas.c const float strength = -lerpf(16.f, 4.01f, s->strength); s 53 libavfilter/vf_cas.c AVFrame *in = s->in; s 55 libavfilter/vf_cas.c for (int p = 0; p < s->nb_planes; p++) { s 56 libavfilter/vf_cas.c const int slice_start = (s->planeheight[p] * jobnr) / nb_jobs; s 57 libavfilter/vf_cas.c const int slice_end = (s->planeheight[p] * (jobnr+1)) / nb_jobs; s 60 libavfilter/vf_cas.c const int w = s->planewidth[p]; s 62 libavfilter/vf_cas.c const int h = s->planeheight[p]; s 67 libavfilter/vf_cas.c if (!((1 << p) & s->planes)) { s 116 libavfilter/vf_cas.c CASContext *s = avctx->priv; s 117 libavfilter/vf_cas.c const float strength = -lerpf(16.f, 4.01f, s->strength); s 118 libavfilter/vf_cas.c const int max = 2 * (1 << s->depth) - 1; s 120 libavfilter/vf_cas.c AVFrame *in = s->in; s 122 libavfilter/vf_cas.c for (int p = 0; p < s->nb_planes; p++) { s 123 libavfilter/vf_cas.c const int slice_start = (s->planeheight[p] * jobnr) / nb_jobs; s 124 libavfilter/vf_cas.c const int slice_end = (s->planeheight[p] * (jobnr+1)) / nb_jobs; s 127 libavfilter/vf_cas.c const int w = s->planewidth[p]; s 129 libavfilter/vf_cas.c const int h = s->planeheight[p]; s 134 libavfilter/vf_cas.c if (!((1 << p) & s->planes)) { s 172 libavfilter/vf_cas.c dst[x] = av_clip_uintp2_c(((b + d + f + h) * weight + e) / (1.f + 4.f * weight), s->depth); s 185 libavfilter/vf_cas.c CASContext *s = ctx->priv; s 195 libavfilter/vf_cas.c s->in = in; s 196 libavfilter/vf_cas.c ctx->internal->execute(ctx, s->do_slice, out, NULL, s 199 libavfilter/vf_cas.c s->in = NULL; s 245 libavfilter/vf_cas.c CASContext *s = avctx->priv; s 248 libavfilter/vf_cas.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 249 libavfilter/vf_cas.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 250 libavfilter/vf_cas.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 251 libavfilter/vf_cas.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 253 libavfilter/vf_cas.c s->depth = desc->comp[0].depth; s 254 libavfilter/vf_cas.c s->nb_planes = desc->nb_components; s 255 libavfilter/vf_cas.c s->do_slice = s->depth <= 8 ? cas_slice8 : cas_slice16; s 70 libavfilter/vf_chromaber_vulkan.c ChromaticAberrationVulkanContext *s = ctx->priv; s 77 libavfilter/vf_chromaber_vulkan.c s->vkctx.queue_family_idx = s->vkctx.hwctx->queue_family_comp_index; s 78 libavfilter/vf_chromaber_vulkan.c s->vkctx.queue_count = GET_QUEUE_COUNT(s->vkctx.hwctx, 0, 1, 0); s 79 libavfilter/vf_chromaber_vulkan.c s->vkctx.cur_queue_idx = av_get_random_seed() % s->vkctx.queue_count; s 81 libavfilter/vf_chromaber_vulkan.c s->pl = ff_vk_create_pipeline(ctx); s 82 libavfilter/vf_chromaber_vulkan.c if (!s->pl) s 86 libavfilter/vf_chromaber_vulkan.c s->opts.dist[0] = (s->opts.dist[0] / 100.0f) + 1.0f; s 87 libavfilter/vf_chromaber_vulkan.c s->opts.dist[1] = (s->opts.dist[1] / 100.0f) + 1.0f; s 90 libavfilter/vf_chromaber_vulkan.c const int planes = av_pix_fmt_count_planes(s->vkctx.output_format); s 98 libavfilter/vf_chromaber_vulkan.c .updater = s->input_images, s 104 libavfilter/vf_chromaber_vulkan.c .mem_layout = ff_vk_shader_rep_fmt(s->vkctx.output_format), s 109 libavfilter/vf_chromaber_vulkan.c .updater = s->output_images, s 113 libavfilter/vf_chromaber_vulkan.c SPIRVShader *shd = ff_vk_init_shader(ctx, s->pl, "chromaber_compute", s 125 libavfilter/vf_chromaber_vulkan.c ff_vk_add_push_constant(ctx, s->pl, 0, sizeof(s->opts), s 128 libavfilter/vf_chromaber_vulkan.c RET(ff_vk_add_descriptor_set(ctx, s->pl, shd, desc_i, 2, 0)); /* set 0 */ s 158 libavfilter/vf_chromaber_vulkan.c RET(ff_vk_init_pipeline_layout(ctx, s->pl)); s 159 libavfilter/vf_chromaber_vulkan.c RET(ff_vk_init_compute_pipeline(ctx, s->pl)); s 162 libavfilter/vf_chromaber_vulkan.c RET(ff_vk_create_exec_ctx(ctx, &s->exec)); s 164 libavfilter/vf_chromaber_vulkan.c s->initialized = 1; s 176 libavfilter/vf_chromaber_vulkan.c ChromaticAberrationVulkanContext *s = avctx->priv; s 179 libavfilter/vf_chromaber_vulkan.c int planes = av_pix_fmt_count_planes(s->vkctx.output_format); s 182 libavfilter/vf_chromaber_vulkan.c ff_vk_start_exec_recording(avctx, s->exec); s 183 libavfilter/vf_chromaber_vulkan.c cmd_buf = ff_vk_get_exec_buf(avctx, s->exec); s 186 libavfilter/vf_chromaber_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->input_images[i].imageView, s 188 libavfilter/vf_chromaber_vulkan.c av_vkfmt_from_pixfmt(s->vkctx.input_format)[i], s 191 libavfilter/vf_chromaber_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->output_images[i].imageView, s 193 libavfilter/vf_chromaber_vulkan.c av_vkfmt_from_pixfmt(s->vkctx.output_format)[i], s 196 libavfilter/vf_chromaber_vulkan.c s->input_images[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; s 197 libavfilter/vf_chromaber_vulkan.c s->output_images[i].imageLayout = VK_IMAGE_LAYOUT_GENERAL; s 200 libavfilter/vf_chromaber_vulkan.c ff_vk_update_descriptor_set(avctx, s->pl, 0); s 209 libavfilter/vf_chromaber_vulkan.c .newLayout = s->input_images[i].imageLayout, s 222 libavfilter/vf_chromaber_vulkan.c .newLayout = s->output_images[i].imageLayout, s 243 libavfilter/vf_chromaber_vulkan.c ff_vk_bind_pipeline_exec(avctx, s->exec, s->pl); s 245 libavfilter/vf_chromaber_vulkan.c ff_vk_update_push_exec(avctx, s->exec, VK_SHADER_STAGE_COMPUTE_BIT, s 246 libavfilter/vf_chromaber_vulkan.c 0, sizeof(s->opts), &s->opts); s 249 libavfilter/vf_chromaber_vulkan.c FFALIGN(s->vkctx.output_width, CGROUPS[0])/CGROUPS[0], s 250 libavfilter/vf_chromaber_vulkan.c FFALIGN(s->vkctx.output_height, CGROUPS[1])/CGROUPS[1], 1); s 252 libavfilter/vf_chromaber_vulkan.c ff_vk_add_exec_dep(avctx, s->exec, in_f, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); s 253 libavfilter/vf_chromaber_vulkan.c ff_vk_add_exec_dep(avctx, s->exec, out_f, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); s 255 libavfilter/vf_chromaber_vulkan.c err = ff_vk_submit_exec_queue(avctx, s->exec); s 262 libavfilter/vf_chromaber_vulkan.c ff_vk_discard_exec_deps(avctx, s->exec); s 270 libavfilter/vf_chromaber_vulkan.c ChromaticAberrationVulkanContext *s = ctx->priv; s 279 libavfilter/vf_chromaber_vulkan.c if (!s->initialized) s 300 libavfilter/vf_chromaber_vulkan.c ChromaticAberrationVulkanContext *s = avctx->priv; s 304 libavfilter/vf_chromaber_vulkan.c s->initialized = 0; s 95 libavfilter/vf_chromashift.c ChromaShiftContext *s = ctx->priv; \ s 96 libavfilter/vf_chromashift.c AVFrame *in = s->in; \ s 102 libavfilter/vf_chromashift.c const int cbh = s->cbh; \ s 103 libavfilter/vf_chromashift.c const int cbv = s->cbv; \ s 104 libavfilter/vf_chromashift.c const int crh = s->crh; \ s 105 libavfilter/vf_chromashift.c const int crv = s->crv; \ s 106 libavfilter/vf_chromashift.c const int h = s->height[1]; \ s 107 libavfilter/vf_chromashift.c const int w = s->width[1]; \ s 137 libavfilter/vf_chromashift.c ChromaShiftContext *s = ctx->priv; \ s 138 libavfilter/vf_chromashift.c AVFrame *in = s->in; \ s 144 libavfilter/vf_chromashift.c const int cbh = s->cbh; \ s 145 libavfilter/vf_chromashift.c const int cbv = s->cbv; \ s 146 libavfilter/vf_chromashift.c const int crh = s->crh; \ s 147 libavfilter/vf_chromashift.c const int crv = s->crv; \ s 148 libavfilter/vf_chromashift.c const int h = s->height[1]; \ s 149 libavfilter/vf_chromashift.c const int w = s->width[1]; \ s 192 libavfilter/vf_chromashift.c ChromaShiftContext *s = ctx->priv; \ s 193 libavfilter/vf_chromashift.c AVFrame *in = s->in; \ s 203 libavfilter/vf_chromashift.c const int rh = s->rh; \ s 204 libavfilter/vf_chromashift.c const int rv = s->rv; \ s 205 libavfilter/vf_chromashift.c const int gh = s->gh; \ s 206 libavfilter/vf_chromashift.c const int gv = s->gv; \ s 207 libavfilter/vf_chromashift.c const int bh = s->bh; \ s 208 libavfilter/vf_chromashift.c const int bv = s->bv; \ s 209 libavfilter/vf_chromashift.c const int ah = s->ah; \ s 210 libavfilter/vf_chromashift.c const int av = s->av; \ s 211 libavfilter/vf_chromashift.c const int h = s->height[1]; \ s 212 libavfilter/vf_chromashift.c const int w = s->width[1]; \ s 240 libavfilter/vf_chromashift.c if (s->nb_planes < 4) \ s 259 libavfilter/vf_chromashift.c ChromaShiftContext *s = ctx->priv; \ s 260 libavfilter/vf_chromashift.c AVFrame *in = s->in; \ s 270 libavfilter/vf_chromashift.c const int rh = s->rh; \ s 271 libavfilter/vf_chromashift.c const int rv = s->rv; \ s 272 libavfilter/vf_chromashift.c const int gh = s->gh; \ s 273 libavfilter/vf_chromashift.c const int gv = s->gv; \ s 274 libavfilter/vf_chromashift.c const int bh = s->bh; \ s 275 libavfilter/vf_chromashift.c const int bv = s->bv; \ s 276 libavfilter/vf_chromashift.c const int ah = s->ah; \ s 277 libavfilter/vf_chromashift.c const int av = s->av; \ s 278 libavfilter/vf_chromashift.c const int h = s->height[1]; \ s 279 libavfilter/vf_chromashift.c const int w = s->width[1]; \ s 323 libavfilter/vf_chromashift.c if (s->nb_planes < 4) \ s 349 libavfilter/vf_chromashift.c ChromaShiftContext *s = ctx->priv; s 359 libavfilter/vf_chromashift.c s->in = in; s 360 libavfilter/vf_chromashift.c if (!s->is_rgbashift) { s 364 libavfilter/vf_chromashift.c s->linesize[0], s->height[0]); s 366 libavfilter/vf_chromashift.c ctx->internal->execute(ctx, s->filter_slice, out, NULL, s 367 libavfilter/vf_chromashift.c FFMIN3(s->height[1], s 368 libavfilter/vf_chromashift.c s->height[2], s 370 libavfilter/vf_chromashift.c s->in = NULL; s 378 libavfilter/vf_chromashift.c ChromaShiftContext *s = ctx->priv; s 381 libavfilter/vf_chromashift.c s->is_rgbashift = !strcmp(ctx->filter->name, "rgbashift"); s 382 libavfilter/vf_chromashift.c s->depth = desc->comp[0].depth; s 383 libavfilter/vf_chromashift.c s->nb_planes = desc->nb_components; s 384 libavfilter/vf_chromashift.c if (s->is_rgbashift) { s 385 libavfilter/vf_chromashift.c if (s->edge) s 386 libavfilter/vf_chromashift.c s->filter_slice = s->depth > 8 ? rgbawrap_slice16 : rgbawrap_slice8; s 388 libavfilter/vf_chromashift.c s->filter_slice = s->depth > 8 ? rgbasmear_slice16 : rgbasmear_slice8; s 390 libavfilter/vf_chromashift.c if (s->edge) s 391 libavfilter/vf_chromashift.c s->filter_slice = s->depth > 8 ? wrap_slice16 : wrap_slice8; s 393 libavfilter/vf_chromashift.c s->filter_slice = s->depth > 8 ? smear_slice16 : smear_slice8; s 395 libavfilter/vf_chromashift.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 396 libavfilter/vf_chromashift.c s->height[0] = s->height[3] = inlink->h; s 397 libavfilter/vf_chromashift.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 398 libavfilter/vf_chromashift.c s->width[0] = s->width[3] = inlink->w; s 400 libavfilter/vf_chromashift.c return av_image_fill_linesizes(s->linesize, inlink->format, inlink->w); s 153 libavfilter/vf_ciescope.c CiescopeContext *s = outlink->src->priv; s 155 libavfilter/vf_ciescope.c outlink->h = outlink->w = s->size; s 1223 libavfilter/vf_ciescope.c CiescopeContext *s = ctx->priv; s 1224 libavfilter/vf_ciescope.c const struct ColorSystem *cs = &color_systems[s->color_system]; s 1226 libavfilter/vf_ciescope.c int w = s->size; s 1227 libavfilter/vf_ciescope.c int h = s->size; s 1230 libavfilter/vf_ciescope.c if ((s->f = ff_get_video_buffer(outlink, outlink->w, outlink->h)) == NULL) s 1232 libavfilter/vf_ciescope.c pixels = (uint16_t *)s->f->data[0]; s 1234 libavfilter/vf_ciescope.c tongue_outline(pixels, s->f->linesize[0] / 2, w, h, 65535, s->cie); s 1236 libavfilter/vf_ciescope.c fill_in_tongue(pixels, s->f->linesize[0] / 2, w, h, 65535, cs, (const double (*)[3])s->i, s->cie, s 1237 libavfilter/vf_ciescope.c s->correct_gamma, s->contrast); s 1244 libavfilter/vf_ciescope.c CiescopeContext *s = ctx->priv; s 1251 libavfilter/vf_ciescope.c rgb_to_xy(r, g, b, cx, cy, &cz, (const double (*)[3])s->m); s 1256 libavfilter/vf_ciescope.c CiescopeContext *s = ctx->priv; s 1263 libavfilter/vf_ciescope.c rgb_to_xy(r, g, b, cx, cy, &cz, (const double (*)[3])s->m); s 1268 libavfilter/vf_ciescope.c CiescopeContext *s = ctx->priv; s 1275 libavfilter/vf_ciescope.c rgb_to_xy(r, g, b, cx, cy, &cz, (const double (*)[3])s->m); s 1280 libavfilter/vf_ciescope.c CiescopeContext *s = ctx->priv; s 1287 libavfilter/vf_ciescope.c rgb_to_xy(r, g, b, cx, cy, &cz, (const double (*)[3])s->m); s 1292 libavfilter/vf_ciescope.c CiescopeContext *s = ctx->priv; s 1294 libavfilter/vf_ciescope.c double lx = s->log2lin[src[0]]; s 1295 libavfilter/vf_ciescope.c double ly = s->log2lin[src[1]]; s 1296 libavfilter/vf_ciescope.c double lz = s->log2lin[src[2]]; s 1358 libavfilter/vf_ciescope.c CiescopeContext *s = ctx->priv; s 1360 libavfilter/vf_ciescope.c int i = s->intensity * 65535; s 1373 libavfilter/vf_ciescope.c if (!s->background) { s 1379 libavfilter/vf_ciescope.c s->background = 1; s 1391 libavfilter/vf_ciescope.c s->filter(ctx, in, &cx, &cy, x, y); s 1393 libavfilter/vf_ciescope.c if (s->cie == LUV) { s 1398 libavfilter/vf_ciescope.c } else if (s->cie == UCS) { s 1422 libavfilter/vf_ciescope.c const uint16_t *src = (const uint16_t *)(s->f->data[0] + y * s->f->linesize[0]); s 1434 libavfilter/vf_ciescope.c if (s->show_white) s 1437 libavfilter/vf_ciescope.c s->color_system, s->cie); s 1441 libavfilter/vf_ciescope.c s->cie, s->gamuts); s 1449 libavfilter/vf_ciescope.c CiescopeContext *s = ctx->priv; s 1451 libavfilter/vf_ciescope.c av_frame_free(&s->f); s 1456 libavfilter/vf_ciescope.c CiescopeContext *s = inlink->dst->priv; s 1459 libavfilter/vf_ciescope.c get_rgb2xyz_matrix(color_systems[s->color_system], s->m); s 1460 libavfilter/vf_ciescope.c invert_matrix3x3(s->m, s->i); s 1464 libavfilter/vf_ciescope.c s->filter = filter_rgb24; s 1467 libavfilter/vf_ciescope.c s->filter = filter_rgba; s 1470 libavfilter/vf_ciescope.c s->filter = filter_rgb48; s 1473 libavfilter/vf_ciescope.c s->filter = filter_rgba64; s 1476 libavfilter/vf_ciescope.c s->filter = filter_xyz; s 1478 libavfilter/vf_ciescope.c s->log2lin[i] = pow(i / 65535., s->igamma) * 65535.; s 218 libavfilter/vf_codecview.c CodecViewContext *s = ctx->priv; s 221 libavfilter/vf_codecview.c if (s->qp) { s 227 libavfilter/vf_codecview.c const int w = AV_CEIL_RSHIFT(frame->width, s->hsub); s 228 libavfilter/vf_codecview.c const int h = AV_CEIL_RSHIFT(frame->height, s->vsub); s 245 libavfilter/vf_codecview.c if (s->mv || s->mv_type) { s 250 libavfilter/vf_codecview.c const int is_iframe = (s->frame_type & FRAME_TYPE_I) && frame->pict_type == AV_PICTURE_TYPE_I; s 251 libavfilter/vf_codecview.c const int is_pframe = (s->frame_type & FRAME_TYPE_P) && frame->pict_type == AV_PICTURE_TYPE_P; s 252 libavfilter/vf_codecview.c const int is_bframe = (s->frame_type & FRAME_TYPE_B) && frame->pict_type == AV_PICTURE_TYPE_B; s 258 libavfilter/vf_codecview.c if (s->mv_type) { s 259 libavfilter/vf_codecview.c const int is_fp = direction == 0 && (s->mv_type & MV_TYPE_FOR); s 260 libavfilter/vf_codecview.c const int is_bp = direction == 1 && (s->mv_type & MV_TYPE_BACK); s 262 libavfilter/vf_codecview.c if ((!s->frame_type && (is_fp || is_bp)) || s 269 libavfilter/vf_codecview.c } else if (s->mv) s 270 libavfilter/vf_codecview.c if ((direction == 0 && (s->mv & MV_P_FOR) && frame->pict_type == AV_PICTURE_TYPE_P) || s 271 libavfilter/vf_codecview.c (direction == 0 && (s->mv & MV_B_FOR) && frame->pict_type == AV_PICTURE_TYPE_B) || s 272 libavfilter/vf_codecview.c (direction == 1 && (s->mv & MV_B_BACK) && frame->pict_type == AV_PICTURE_TYPE_B)) s 286 libavfilter/vf_codecview.c CodecViewContext *s = ctx->priv; s 289 libavfilter/vf_codecview.c s->hsub = desc->log2_chroma_w; s 290 libavfilter/vf_codecview.c s->vsub = desc->log2_chroma_h; s 102 libavfilter/vf_colorbalance.c float s, float m, float h) s 106 libavfilter/vf_colorbalance.c s *= av_clipf((b - l) * a + 0.5f, 0, 1) * scale; s 110 libavfilter/vf_colorbalance.c v += s; s 117 libavfilter/vf_colorbalance.c static float hfun(float n, float h, float s, float l) s 119 libavfilter/vf_colorbalance.c float a = s * FFMIN(l, 1. - l); s 129 libavfilter/vf_colorbalance.c float h, s; s 148 libavfilter/vf_colorbalance.c s = 0.; s 150 libavfilter/vf_colorbalance.c s = (max - min) / (1. - FFABS(2. * l - 1)); s 153 libavfilter/vf_colorbalance.c *r = hfun(0, h, s, l); s 154 libavfilter/vf_colorbalance.c *g = hfun(8, h, s, l); s 155 libavfilter/vf_colorbalance.c *b = hfun(4, h, s, l); s 160 libavfilter/vf_colorbalance.c ColorBalanceContext *s = ctx->priv; s 174 libavfilter/vf_colorbalance.c const float max = s->max; s 184 libavfilter/vf_colorbalance.c r = get_component(r, l, s->cyan_red.shadows, s->cyan_red.midtones, s->cyan_red.highlights); s 185 libavfilter/vf_colorbalance.c g = get_component(g, l, s->magenta_green.shadows, s->magenta_green.midtones, s->magenta_green.highlights); s 186 libavfilter/vf_colorbalance.c b = get_component(b, l, s->yellow_blue.shadows, s->yellow_blue.midtones, s->yellow_blue.highlights); s 188 libavfilter/vf_colorbalance.c if (s->preserve_lightness) s 213 libavfilter/vf_colorbalance.c ColorBalanceContext *s = ctx->priv; s 227 libavfilter/vf_colorbalance.c const int depth = s->depth; s 228 libavfilter/vf_colorbalance.c const float max = s->max; s 238 libavfilter/vf_colorbalance.c r = get_component(r, l, s->cyan_red.shadows, s->cyan_red.midtones, s->cyan_red.highlights); s 239 libavfilter/vf_colorbalance.c g = get_component(g, l, s->magenta_green.shadows, s->magenta_green.midtones, s->magenta_green.highlights); s 240 libavfilter/vf_colorbalance.c b = get_component(b, l, s->yellow_blue.shadows, s->yellow_blue.midtones, s->yellow_blue.highlights); s 242 libavfilter/vf_colorbalance.c if (s->preserve_lightness) s 267 libavfilter/vf_colorbalance.c ColorBalanceContext *s = ctx->priv; s 275 libavfilter/vf_colorbalance.c const uint8_t roffset = s->rgba_map[R]; s 276 libavfilter/vf_colorbalance.c const uint8_t goffset = s->rgba_map[G]; s 277 libavfilter/vf_colorbalance.c const uint8_t boffset = s->rgba_map[B]; s 278 libavfilter/vf_colorbalance.c const uint8_t aoffset = s->rgba_map[A]; s 279 libavfilter/vf_colorbalance.c const float max = s->max; s 280 libavfilter/vf_colorbalance.c const int step = s->step; s 295 libavfilter/vf_colorbalance.c r = get_component(r, l, s->cyan_red.shadows, s->cyan_red.midtones, s->cyan_red.highlights); s 296 libavfilter/vf_colorbalance.c g = get_component(g, l, s->magenta_green.shadows, s->magenta_green.midtones, s->magenta_green.highlights); s 297 libavfilter/vf_colorbalance.c b = get_component(b, l, s->yellow_blue.shadows, s->yellow_blue.midtones, s->yellow_blue.highlights); s 299 libavfilter/vf_colorbalance.c if (s->preserve_lightness) s 318 libavfilter/vf_colorbalance.c ColorBalanceContext *s = ctx->priv; s 326 libavfilter/vf_colorbalance.c const uint8_t roffset = s->rgba_map[R]; s 327 libavfilter/vf_colorbalance.c const uint8_t goffset = s->rgba_map[G]; s 328 libavfilter/vf_colorbalance.c const uint8_t boffset = s->rgba_map[B]; s 329 libavfilter/vf_colorbalance.c const uint8_t aoffset = s->rgba_map[A]; s 330 libavfilter/vf_colorbalance.c const int step = s->step / 2; s 331 libavfilter/vf_colorbalance.c const int depth = s->depth; s 332 libavfilter/vf_colorbalance.c const float max = s->max; s 347 libavfilter/vf_colorbalance.c r = get_component(r, l, s->cyan_red.shadows, s->cyan_red.midtones, s->cyan_red.highlights); s 348 libavfilter/vf_colorbalance.c g = get_component(g, l, s->magenta_green.shadows, s->magenta_green.midtones, s->magenta_green.highlights); s 349 libavfilter/vf_colorbalance.c b = get_component(b, l, s->yellow_blue.shadows, s->yellow_blue.midtones, s->yellow_blue.highlights); s 351 libavfilter/vf_colorbalance.c if (s->preserve_lightness) s 371 libavfilter/vf_colorbalance.c ColorBalanceContext *s = ctx->priv; s 377 libavfilter/vf_colorbalance.c s->depth = depth; s 378 libavfilter/vf_colorbalance.c s->max = max; s 381 libavfilter/vf_colorbalance.c s->color_balance = color_balance8_p; s 383 libavfilter/vf_colorbalance.c s->color_balance = color_balance16_p; s 385 libavfilter/vf_colorbalance.c s->color_balance = color_balance8; s 387 libavfilter/vf_colorbalance.c s->color_balance = color_balance16; s 390 libavfilter/vf_colorbalance.c ff_fill_rgba_map(s->rgba_map, outlink->format); s 391 libavfilter/vf_colorbalance.c s->step = av_get_padded_bits_per_pixel(desc) >> 3; s 399 libavfilter/vf_colorbalance.c ColorBalanceContext *s = ctx->priv; s 417 libavfilter/vf_colorbalance.c ctx->internal->execute(ctx, s->color_balance, &td, NULL, FFMIN(outlink->h, ff_filter_get_nb_threads(ctx))); s 107 libavfilter/vf_colorchannelmixer.c ColorChannelMixerContext *s = ctx->priv; s 130 libavfilter/vf_colorchannelmixer.c dstr[j] = av_clip_uint8(s->lut[R][R][rin] + s 131 libavfilter/vf_colorchannelmixer.c s->lut[R][G][gin] + s 132 libavfilter/vf_colorchannelmixer.c s->lut[R][B][bin] + s 133 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[R][A][ain] : 0)); s 134 libavfilter/vf_colorchannelmixer.c dstg[j] = av_clip_uint8(s->lut[G][R][rin] + s 135 libavfilter/vf_colorchannelmixer.c s->lut[G][G][gin] + s 136 libavfilter/vf_colorchannelmixer.c s->lut[G][B][bin] + s 137 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[G][A][ain] : 0)); s 138 libavfilter/vf_colorchannelmixer.c dstb[j] = av_clip_uint8(s->lut[B][R][rin] + s 139 libavfilter/vf_colorchannelmixer.c s->lut[B][G][gin] + s 140 libavfilter/vf_colorchannelmixer.c s->lut[B][B][bin] + s 141 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[B][A][ain] : 0)); s 143 libavfilter/vf_colorchannelmixer.c dsta[j] = av_clip_uint8(s->lut[A][R][rin] + s 144 libavfilter/vf_colorchannelmixer.c s->lut[A][G][gin] + s 145 libavfilter/vf_colorchannelmixer.c s->lut[A][B][bin] + s 146 libavfilter/vf_colorchannelmixer.c s->lut[A][A][ain]); s 166 libavfilter/vf_colorchannelmixer.c ColorChannelMixerContext *s = ctx->priv; s 189 libavfilter/vf_colorchannelmixer.c dstr[j] = av_clip_uintp2(s->lut[R][R][rin] + s 190 libavfilter/vf_colorchannelmixer.c s->lut[R][G][gin] + s 191 libavfilter/vf_colorchannelmixer.c s->lut[R][B][bin] + s 192 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[R][A][ain] : 0), depth); s 193 libavfilter/vf_colorchannelmixer.c dstg[j] = av_clip_uintp2(s->lut[G][R][rin] + s 194 libavfilter/vf_colorchannelmixer.c s->lut[G][G][gin] + s 195 libavfilter/vf_colorchannelmixer.c s->lut[G][B][bin] + s 196 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[G][A][ain] : 0), depth); s 197 libavfilter/vf_colorchannelmixer.c dstb[j] = av_clip_uintp2(s->lut[B][R][rin] + s 198 libavfilter/vf_colorchannelmixer.c s->lut[B][G][gin] + s 199 libavfilter/vf_colorchannelmixer.c s->lut[B][B][bin] + s 200 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[B][A][ain] : 0), depth); s 202 libavfilter/vf_colorchannelmixer.c dsta[j] = av_clip_uintp2(s->lut[A][R][rin] + s 203 libavfilter/vf_colorchannelmixer.c s->lut[A][G][gin] + s 204 libavfilter/vf_colorchannelmixer.c s->lut[A][B][bin] + s 205 libavfilter/vf_colorchannelmixer.c s->lut[A][A][ain], depth); s 275 libavfilter/vf_colorchannelmixer.c ColorChannelMixerContext *s = ctx->priv; s 281 libavfilter/vf_colorchannelmixer.c const uint8_t roffset = s->rgba_map[R]; s 282 libavfilter/vf_colorchannelmixer.c const uint8_t goffset = s->rgba_map[G]; s 283 libavfilter/vf_colorchannelmixer.c const uint8_t boffset = s->rgba_map[B]; s 284 libavfilter/vf_colorchannelmixer.c const uint8_t aoffset = s->rgba_map[A]; s 299 libavfilter/vf_colorchannelmixer.c dst[j + roffset] = av_clip_uint8(s->lut[R][R][rin] + s 300 libavfilter/vf_colorchannelmixer.c s->lut[R][G][gin] + s 301 libavfilter/vf_colorchannelmixer.c s->lut[R][B][bin] + s 302 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[R][A][ain] : 0)); s 303 libavfilter/vf_colorchannelmixer.c dst[j + goffset] = av_clip_uint8(s->lut[G][R][rin] + s 304 libavfilter/vf_colorchannelmixer.c s->lut[G][G][gin] + s 305 libavfilter/vf_colorchannelmixer.c s->lut[G][B][bin] + s 306 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[G][A][ain] : 0)); s 307 libavfilter/vf_colorchannelmixer.c dst[j + boffset] = av_clip_uint8(s->lut[B][R][rin] + s 308 libavfilter/vf_colorchannelmixer.c s->lut[B][G][gin] + s 309 libavfilter/vf_colorchannelmixer.c s->lut[B][B][bin] + s 310 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[B][A][ain] : 0)); s 312 libavfilter/vf_colorchannelmixer.c dst[j + aoffset] = av_clip_uint8(s->lut[A][R][rin] + s 313 libavfilter/vf_colorchannelmixer.c s->lut[A][G][gin] + s 314 libavfilter/vf_colorchannelmixer.c s->lut[A][B][bin] + s 315 libavfilter/vf_colorchannelmixer.c s->lut[A][A][ain]); s 330 libavfilter/vf_colorchannelmixer.c ColorChannelMixerContext *s = ctx->priv; s 336 libavfilter/vf_colorchannelmixer.c const uint8_t roffset = s->rgba_map[R]; s 337 libavfilter/vf_colorchannelmixer.c const uint8_t goffset = s->rgba_map[G]; s 338 libavfilter/vf_colorchannelmixer.c const uint8_t boffset = s->rgba_map[B]; s 339 libavfilter/vf_colorchannelmixer.c const uint8_t aoffset = s->rgba_map[A]; s 354 libavfilter/vf_colorchannelmixer.c dst[j + roffset] = av_clip_uint16(s->lut[R][R][rin] + s 355 libavfilter/vf_colorchannelmixer.c s->lut[R][G][gin] + s 356 libavfilter/vf_colorchannelmixer.c s->lut[R][B][bin] + s 357 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[R][A][ain] : 0)); s 358 libavfilter/vf_colorchannelmixer.c dst[j + goffset] = av_clip_uint16(s->lut[G][R][rin] + s 359 libavfilter/vf_colorchannelmixer.c s->lut[G][G][gin] + s 360 libavfilter/vf_colorchannelmixer.c s->lut[G][B][bin] + s 361 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[G][A][ain] : 0)); s 362 libavfilter/vf_colorchannelmixer.c dst[j + boffset] = av_clip_uint16(s->lut[B][R][rin] + s 363 libavfilter/vf_colorchannelmixer.c s->lut[B][G][gin] + s 364 libavfilter/vf_colorchannelmixer.c s->lut[B][B][bin] + s 365 libavfilter/vf_colorchannelmixer.c (have_alpha == 1 ? s->lut[B][A][ain] : 0)); s 367 libavfilter/vf_colorchannelmixer.c dst[j + aoffset] = av_clip_uint16(s->lut[A][R][rin] + s 368 libavfilter/vf_colorchannelmixer.c s->lut[A][G][gin] + s 369 libavfilter/vf_colorchannelmixer.c s->lut[A][B][bin] + s 370 libavfilter/vf_colorchannelmixer.c s->lut[A][A][ain]); s 409 libavfilter/vf_colorchannelmixer.c ColorChannelMixerContext *s = ctx->priv; s 412 libavfilter/vf_colorchannelmixer.c int i, j, size, *buffer = s->buffer; s 414 libavfilter/vf_colorchannelmixer.c ff_fill_rgba_map(s->rgba_map, outlink->format); s 417 libavfilter/vf_colorchannelmixer.c if (!s->buffer) { s 418 libavfilter/vf_colorchannelmixer.c s->buffer = buffer = av_malloc(16 * size * sizeof(*s->buffer)); s 419 libavfilter/vf_colorchannelmixer.c if (!s->buffer) s 424 libavfilter/vf_colorchannelmixer.c s->lut[i][j] = buffer; s 428 libavfilter/vf_colorchannelmixer.c s->lut[R][R][i] = lrint(i * s->rr); s 429 libavfilter/vf_colorchannelmixer.c s->lut[R][G][i] = lrint(i * s->rg); s 430 libavfilter/vf_colorchannelmixer.c s->lut[R][B][i] = lrint(i * s->rb); s 431 libavfilter/vf_colorchannelmixer.c s->lut[R][A][i] = lrint(i * s->ra); s 433 libavfilter/vf_colorchannelmixer.c s->lut[G][R][i] = lrint(i * s->gr); s 434 libavfilter/vf_colorchannelmixer.c s->lut[G][G][i] = lrint(i * s->gg); s 435 libavfilter/vf_colorchannelmixer.c s->lut[G][B][i] = lrint(i * s->gb); s 436 libavfilter/vf_colorchannelmixer.c s->lut[G][A][i] = lrint(i * s->ga); s 438 libavfilter/vf_colorchannelmixer.c s->lut[B][R][i] = lrint(i * s->br); s 439 libavfilter/vf_colorchannelmixer.c s->lut[B][G][i] = lrint(i * s->bg); s 440 libavfilter/vf_colorchannelmixer.c s->lut[B][B][i] = lrint(i * s->bb); s 441 libavfilter/vf_colorchannelmixer.c s->lut[B][A][i] = lrint(i * s->ba); s 443 libavfilter/vf_colorchannelmixer.c s->lut[A][R][i] = lrint(i * s->ar); s 444 libavfilter/vf_colorchannelmixer.c s->lut[A][G][i] = lrint(i * s->ag); s 445 libavfilter/vf_colorchannelmixer.c s->lut[A][B][i] = lrint(i * s->ab); s 446 libavfilter/vf_colorchannelmixer.c s->lut[A][A][i] = lrint(i * s->aa); s 452 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_rgb24; s 458 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_rgb0; s 464 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_rgba; s 468 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_rgb48; s 472 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_rgba64; s 475 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrp; s 478 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrap; s 481 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrp9; s 484 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrp10; s 487 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrap10; s 490 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrp12; s 493 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrap12; s 496 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrp14; s 499 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrp16; s 502 libavfilter/vf_colorchannelmixer.c s->filter_slice = filter_slice_gbrap16; s 512 libavfilter/vf_colorchannelmixer.c ColorChannelMixerContext *s = ctx->priv; s 530 libavfilter/vf_colorchannelmixer.c ctx->internal->execute(ctx, s->filter_slice, &td, NULL, FFMIN(outlink->h, ff_filter_get_nb_threads(ctx))); s 550 libavfilter/vf_colorchannelmixer.c ColorChannelMixerContext *s = ctx->priv; s 552 libavfilter/vf_colorchannelmixer.c av_freep(&s->buffer); s 95 libavfilter/vf_colorconstancy.c #define GINDX(s, i) ( (i) - ((s) >> 2) ) s 111 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 112 libavfilter/vf_colorconstancy.c int filtersize = s->filtersize; s 113 libavfilter/vf_colorconstancy.c int difford = s->difford; s 114 libavfilter/vf_colorconstancy.c double sigma = s->sigma; s 119 libavfilter/vf_colorconstancy.c s->gauss[i] = av_mallocz_array(filtersize, sizeof(*s->gauss[i])); s 120 libavfilter/vf_colorconstancy.c if (!s->gauss[i]) { s 122 libavfilter/vf_colorconstancy.c av_freep(&s->gauss[i]); s 132 libavfilter/vf_colorconstancy.c s->gauss[0][0] = 1; // Copying data to double instead of convolution s 135 libavfilter/vf_colorconstancy.c s->gauss[0][i] = exp(- pow(GINDX(filtersize, i), 2.) / (2 * sigma * sigma)) / ( sqrt(2 * M_PI) * sigma ); s 136 libavfilter/vf_colorconstancy.c sum1 += s->gauss[0][i]; s 139 libavfilter/vf_colorconstancy.c s->gauss[0][i] /= sum1; s 147 libavfilter/vf_colorconstancy.c s->gauss[1][i] = - (GINDX(filtersize, i) / pow(sigma, 2)) * s->gauss[0][i]; s 148 libavfilter/vf_colorconstancy.c sum1 += s->gauss[1][i] * GINDX(filtersize, i); s 152 libavfilter/vf_colorconstancy.c s->gauss[1][i] /= sum1; s 160 libavfilter/vf_colorconstancy.c s->gauss[2][i] = ( pow(GINDX(filtersize, i), 2) / pow(sigma, 4) - 1/pow(sigma, 2) ) s 161 libavfilter/vf_colorconstancy.c * s->gauss[0][i]; s 162 libavfilter/vf_colorconstancy.c sum1 += s->gauss[2][i]; s 167 libavfilter/vf_colorconstancy.c s->gauss[2][i] -= sum1 / (filtersize); s 168 libavfilter/vf_colorconstancy.c sum2 += (0.5 * GINDX(filtersize, i) * GINDX(filtersize, i) * s->gauss[2][i]); s 171 libavfilter/vf_colorconstancy.c s->gauss[2][i] /= sum2; s 215 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 216 libavfilter/vf_colorconstancy.c int nb_buff = s->difford + 1; s 222 libavfilter/vf_colorconstancy.c td->data[b][p] = av_mallocz_array(s->planeheight[p] * s->planewidth[p], sizeof(*td->data[b][p])); s 234 libavfilter/vf_colorconstancy.c #define GAUSS(s, sr, sc, sls, sh, sw, g) ( (s)[ INDX2D(CLAMP((sr), (sh)), CLAMP((sc), (sw)), (sls)) ] * (g) ) s 251 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 258 libavfilter/vf_colorconstancy.c const int filtersize = s->filtersize; s 259 libavfilter/vf_colorconstancy.c const double *gauss = s->gauss[ord]; s 263 libavfilter/vf_colorconstancy.c const int height = s->planeheight[plane]; s 264 libavfilter/vf_colorconstancy.c const int width = s->planewidth[plane]; s 319 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 321 libavfilter/vf_colorconstancy.c const int difford = s->difford; s 325 libavfilter/vf_colorconstancy.c const int height = s->planeheight[plane]; s 326 libavfilter/vf_colorconstancy.c const int width = s->planewidth[plane]; s 383 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 384 libavfilter/vf_colorconstancy.c int nb_threads = s->nb_threads; s 385 libavfilter/vf_colorconstancy.c int height = s->planeheight[1]; s 386 libavfilter/vf_colorconstancy.c int width = s->planewidth[1]; s 388 libavfilter/vf_colorconstancy.c switch(s->difford) { s 390 libavfilter/vf_colorconstancy.c if (!s->sigma) { // Only copy once s 420 libavfilter/vf_colorconstancy.c av_log(ctx, AV_LOG_ERROR, "Unsupported difford value: %d.\n", s->difford); s 439 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 442 libavfilter/vf_colorconstancy.c int minknorm = s->minknorm; s 447 libavfilter/vf_colorconstancy.c const int height = s->planeheight[plane]; s 448 libavfilter/vf_colorconstancy.c const int width = s->planewidth[plane]; s 488 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 490 libavfilter/vf_colorconstancy.c int minknorm = s->minknorm; s 491 libavfilter/vf_colorconstancy.c int difford = s->difford; s 492 libavfilter/vf_colorconstancy.c double *white = s->white; s 493 libavfilter/vf_colorconstancy.c int nb_jobs = FFMIN3(s->planeheight[1], s->planewidth[1], s->nb_threads); s 567 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 573 libavfilter/vf_colorconstancy.c s->white[0], s->white[1], s->white[2]); s 574 libavfilter/vf_colorconstancy.c normalize_light(s->white); s 576 libavfilter/vf_colorconstancy.c s->white[0], s->white[1], s->white[2]); s 593 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 600 libavfilter/vf_colorconstancy.c const int height = s->planeheight[plane]; s 601 libavfilter/vf_colorconstancy.c const int width = s->planewidth[plane]; s 611 libavfilter/vf_colorconstancy.c temp = src[i] / (s->white[plane] * SQRT3); s 628 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 630 libavfilter/vf_colorconstancy.c int nb_jobs = FFMIN3(s->planeheight[1], s->planewidth[1], s->nb_threads); s 652 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 655 libavfilter/vf_colorconstancy.c double sigma = s->sigma; s 658 libavfilter/vf_colorconstancy.c if (!floor(break_off_sigma * sigma + 0.5) && s->difford) { s 663 libavfilter/vf_colorconstancy.c s->filtersize = 2 * floor(break_off_sigma * sigma + 0.5) + 1; s 668 libavfilter/vf_colorconstancy.c s->nb_threads = ff_filter_get_nb_threads(ctx); s 669 libavfilter/vf_colorconstancy.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 670 libavfilter/vf_colorconstancy.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 671 libavfilter/vf_colorconstancy.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 672 libavfilter/vf_colorconstancy.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 712 libavfilter/vf_colorconstancy.c ColorConstancyContext *s = ctx->priv; s 713 libavfilter/vf_colorconstancy.c int difford = s->difford; s 717 libavfilter/vf_colorconstancy.c av_freep(&s->gauss[i]); s 77 libavfilter/vf_colorkey_opencl.c ctx->colorkey_rgba_float.s[i] = (float)ctx->colorkey_rgba[i] / 255.0; s 96 libavfilter/vf_colorlevels.c ColorLevelsContext *s = ctx->priv; s 99 libavfilter/vf_colorlevels.c s->nb_comp = desc->nb_components; s 100 libavfilter/vf_colorlevels.c s->bpp = desc->comp[0].depth >> 3; s 101 libavfilter/vf_colorlevels.c s->step = (av_get_padded_bits_per_pixel(desc) >> 3) / s->bpp; s 102 libavfilter/vf_colorlevels.c s->linesize = inlink->w * s->step; s 103 libavfilter/vf_colorlevels.c ff_fill_rgba_map(s->rgba_map, inlink->format); s 124 libavfilter/vf_colorlevels.c ColorLevelsContext *s = ctx->priv;\ s 133 libavfilter/vf_colorlevels.c const int step = s->step;\ s 148 libavfilter/vf_colorlevels.c for (x = 0; x < s->linesize; x += step) s 163 libavfilter/vf_colorlevels.c for (x = 0; x < s->linesize; x += step) s 173 libavfilter/vf_colorlevels.c ColorLevelsContext *s = ctx->priv; s 175 libavfilter/vf_colorlevels.c const int step = s->step; s 190 libavfilter/vf_colorlevels.c switch (s->bpp) { s 192 libavfilter/vf_colorlevels.c for (i = 0; i < s->nb_comp; i++) { s 193 libavfilter/vf_colorlevels.c Range *r = &s->range[i]; s 194 libavfilter/vf_colorlevels.c const uint8_t offset = s->rgba_map[i]; s 209 libavfilter/vf_colorlevels.c for (x = 0; x < s->linesize; x += step) s 220 libavfilter/vf_colorlevels.c for (x = 0; x < s->linesize; x += step) s 244 libavfilter/vf_colorlevels.c for (i = 0; i < s->nb_comp; i++) { s 245 libavfilter/vf_colorlevels.c Range *r = &s->range[i]; s 246 libavfilter/vf_colorlevels.c const uint8_t offset = s->rgba_map[i]; s 261 libavfilter/vf_colorlevels.c for (x = 0; x < s->linesize; x += step) s 272 libavfilter/vf_colorlevels.c for (x = 0; x < s->linesize; x += step) s 236 libavfilter/vf_colorspace.c static int fill_gamma_table(ColorSpaceContext *s) s 239 libavfilter/vf_colorspace.c double in_alpha = s->in_txchr->alpha, in_beta = s->in_txchr->beta; s 240 libavfilter/vf_colorspace.c double in_gamma = s->in_txchr->gamma, in_delta = s->in_txchr->delta; s 242 libavfilter/vf_colorspace.c double out_alpha = s->out_txchr->alpha, out_beta = s->out_txchr->beta; s 243 libavfilter/vf_colorspace.c double out_gamma = s->out_txchr->gamma, out_delta = s->out_txchr->delta; s 245 libavfilter/vf_colorspace.c s->lin_lut = av_malloc(sizeof(*s->lin_lut) * 32768 * 2); s 246 libavfilter/vf_colorspace.c if (!s->lin_lut) s 248 libavfilter/vf_colorspace.c s->delin_lut = &s->lin_lut[32768]; s 260 libavfilter/vf_colorspace.c s->delin_lut[n] = av_clip_int16(lrint(d * 28672.0)); s 270 libavfilter/vf_colorspace.c s->lin_lut[n] = av_clip_int16(lrint(l * 28672.0)); s 343 libavfilter/vf_colorspace.c ColorSpaceContext *s = ctx->priv; s 356 libavfilter/vf_colorspace.c rgb[0] = s->rgb[0] + s->rgb_stride * h1; s 357 libavfilter/vf_colorspace.c rgb[1] = s->rgb[1] + s->rgb_stride * h1; s 358 libavfilter/vf_colorspace.c rgb[2] = s->rgb[2] + s->rgb_stride * h1; s 364 libavfilter/vf_colorspace.c if (s->yuv2yuv_fastmode) { s 368 libavfilter/vf_colorspace.c s->yuv2yuv(out_data, td->out_linesize, in_data, td->in_linesize, w, h, s 369 libavfilter/vf_colorspace.c s->yuv2yuv_coeffs, s->yuv_offset); s 390 libavfilter/vf_colorspace.c s->yuv2rgb(rgb, s->rgb_stride, in_data, td->in_linesize, w, h, s 391 libavfilter/vf_colorspace.c s->yuv2rgb_coeffs, s->yuv_offset[0]); s 392 libavfilter/vf_colorspace.c if (!s->rgb2rgb_passthrough) { s 393 libavfilter/vf_colorspace.c apply_lut(rgb, s->rgb_stride, w, h, s->lin_lut); s 394 libavfilter/vf_colorspace.c if (!s->lrgb2lrgb_passthrough) s 395 libavfilter/vf_colorspace.c s->dsp.multiply3x3(rgb, s->rgb_stride, w, h, s->lrgb2lrgb_coeffs); s 396 libavfilter/vf_colorspace.c apply_lut(rgb, s->rgb_stride, w, h, s->delin_lut); s 398 libavfilter/vf_colorspace.c if (s->dither == DITHER_FSB) { s 399 libavfilter/vf_colorspace.c s->rgb2yuv_fsb(out_data, td->out_linesize, rgb, s->rgb_stride, w, h, s 400 libavfilter/vf_colorspace.c s->rgb2yuv_coeffs, s->yuv_offset[1], s->dither_scratch); s 402 libavfilter/vf_colorspace.c s->rgb2yuv(out_data, td->out_linesize, rgb, s->rgb_stride, w, h, s 403 libavfilter/vf_colorspace.c s->rgb2yuv_coeffs, s->yuv_offset[1]); s 416 libavfilter/vf_colorspace.c ColorSpaceContext *s = ctx->priv; s 418 libavfilter/vf_colorspace.c if (!s->did_warn_range) { s 420 libavfilter/vf_colorspace.c s->did_warn_range = 1; s 443 libavfilter/vf_colorspace.c ColorSpaceContext *s = ctx->priv; s 472 libavfilter/vf_colorspace.c if (in->color_primaries != s->in_prm) s->in_primaries = NULL; s 473 libavfilter/vf_colorspace.c if (out->color_primaries != s->out_prm) s->out_primaries = NULL; s 474 libavfilter/vf_colorspace.c if (in->color_trc != s->in_trc) s->in_txchr = NULL; s 475 libavfilter/vf_colorspace.c if (out->color_trc != s->out_trc) s->out_txchr = NULL; s 476 libavfilter/vf_colorspace.c if (in->colorspace != s->in_csp || s 477 libavfilter/vf_colorspace.c in->color_range != s->in_rng) s->in_lumacoef = NULL; s 478 libavfilter/vf_colorspace.c if (out->colorspace != s->out_csp || s 479 libavfilter/vf_colorspace.c out->color_range != s->out_rng) s->out_lumacoef = NULL; s 481 libavfilter/vf_colorspace.c if (!s->out_primaries || !s->in_primaries) { s 482 libavfilter/vf_colorspace.c s->in_prm = in->color_primaries; s 483 libavfilter/vf_colorspace.c if (s->user_iall != CS_UNSPECIFIED) s 484 libavfilter/vf_colorspace.c s->in_prm = default_prm[FFMIN(s->user_iall, CS_NB)]; s 485 libavfilter/vf_colorspace.c if (s->user_iprm != AVCOL_PRI_UNSPECIFIED) s 486 libavfilter/vf_colorspace.c s->in_prm = s->user_iprm; s 487 libavfilter/vf_colorspace.c s->in_primaries = get_color_primaries(s->in_prm); s 488 libavfilter/vf_colorspace.c if (!s->in_primaries) { s 491 libavfilter/vf_colorspace.c s->in_prm, av_color_primaries_name(s->in_prm)); s 494 libavfilter/vf_colorspace.c s->out_prm = out->color_primaries; s 495 libavfilter/vf_colorspace.c s->out_primaries = get_color_primaries(s->out_prm); s 496 libavfilter/vf_colorspace.c if (!s->out_primaries) { s 497 libavfilter/vf_colorspace.c if (s->out_prm == AVCOL_PRI_UNSPECIFIED) { s 498 libavfilter/vf_colorspace.c if (s->user_all == CS_UNSPECIFIED) { s 502 libavfilter/vf_colorspace.c "Unsupported output color property %d\n", s->user_all); s 507 libavfilter/vf_colorspace.c s->out_prm, av_color_primaries_name(s->out_prm)); s 511 libavfilter/vf_colorspace.c s->lrgb2lrgb_passthrough = !memcmp(s->in_primaries, s->out_primaries, s 512 libavfilter/vf_colorspace.c sizeof(*s->in_primaries)); s 513 libavfilter/vf_colorspace.c if (!s->lrgb2lrgb_passthrough) { s 517 libavfilter/vf_colorspace.c wp_out = &whitepoint_coefficients[s->out_primaries->wp]; s 518 libavfilter/vf_colorspace.c wp_in = &whitepoint_coefficients[s->in_primaries->wp]; s 519 libavfilter/vf_colorspace.c ff_fill_rgb2xyz_table(&s->out_primaries->coeff, wp_out, rgb2xyz); s 521 libavfilter/vf_colorspace.c ff_fill_rgb2xyz_table(&s->in_primaries->coeff, wp_in, rgb2xyz); s 522 libavfilter/vf_colorspace.c if (s->out_primaries->wp != s->in_primaries->wp && s 523 libavfilter/vf_colorspace.c s->wp_adapt != WP_ADAPT_IDENTITY) { s 526 libavfilter/vf_colorspace.c fill_whitepoint_conv_table(wpconv, s->wp_adapt, s->in_primaries->wp, s 527 libavfilter/vf_colorspace.c s->out_primaries->wp); s 535 libavfilter/vf_colorspace.c s->lrgb2lrgb_coeffs[m][n][0] = lrint(16384.0 * rgb2rgb[m][n]); s 537 libavfilter/vf_colorspace.c s->lrgb2lrgb_coeffs[m][n][o] = s->lrgb2lrgb_coeffs[m][n][0]; s 544 libavfilter/vf_colorspace.c if (!s->in_txchr) { s 545 libavfilter/vf_colorspace.c av_freep(&s->lin_lut); s 546 libavfilter/vf_colorspace.c s->in_trc = in->color_trc; s 547 libavfilter/vf_colorspace.c if (s->user_iall != CS_UNSPECIFIED) s 548 libavfilter/vf_colorspace.c s->in_trc = default_trc[FFMIN(s->user_iall, CS_NB)]; s 549 libavfilter/vf_colorspace.c if (s->user_itrc != AVCOL_TRC_UNSPECIFIED) s 550 libavfilter/vf_colorspace.c s->in_trc = s->user_itrc; s 551 libavfilter/vf_colorspace.c s->in_txchr = get_transfer_characteristics(s->in_trc); s 552 libavfilter/vf_colorspace.c if (!s->in_txchr) { s 555 libavfilter/vf_colorspace.c s->in_trc, av_color_transfer_name(s->in_trc)); s 560 libavfilter/vf_colorspace.c if (!s->out_txchr) { s 561 libavfilter/vf_colorspace.c av_freep(&s->lin_lut); s 562 libavfilter/vf_colorspace.c s->out_trc = out->color_trc; s 563 libavfilter/vf_colorspace.c s->out_txchr = get_transfer_characteristics(s->out_trc); s 564 libavfilter/vf_colorspace.c if (!s->out_txchr) { s 565 libavfilter/vf_colorspace.c if (s->out_trc == AVCOL_TRC_UNSPECIFIED) { s 566 libavfilter/vf_colorspace.c if (s->user_all == CS_UNSPECIFIED) { s 571 libavfilter/vf_colorspace.c "Unsupported output color property %d\n", s->user_all); s 576 libavfilter/vf_colorspace.c s->out_trc, av_color_transfer_name(s->out_trc)); s 582 libavfilter/vf_colorspace.c s->rgb2rgb_passthrough = s->fast_mode || (s->lrgb2lrgb_passthrough && s 583 libavfilter/vf_colorspace.c !memcmp(s->in_txchr, s->out_txchr, sizeof(*s->in_txchr))); s 584 libavfilter/vf_colorspace.c if (!s->rgb2rgb_passthrough && !s->lin_lut) { s 585 libavfilter/vf_colorspace.c res = fill_gamma_table(s); s 591 libavfilter/vf_colorspace.c if (!s->in_lumacoef) { s 592 libavfilter/vf_colorspace.c s->in_csp = in->colorspace; s 593 libavfilter/vf_colorspace.c if (s->user_iall != CS_UNSPECIFIED) s 594 libavfilter/vf_colorspace.c s->in_csp = default_csp[FFMIN(s->user_iall, CS_NB)]; s 595 libavfilter/vf_colorspace.c if (s->user_icsp != AVCOL_SPC_UNSPECIFIED) s 596 libavfilter/vf_colorspace.c s->in_csp = s->user_icsp; s 597 libavfilter/vf_colorspace.c s->in_rng = in->color_range; s 598 libavfilter/vf_colorspace.c if (s->user_irng != AVCOL_RANGE_UNSPECIFIED) s 599 libavfilter/vf_colorspace.c s->in_rng = s->user_irng; s 600 libavfilter/vf_colorspace.c s->in_lumacoef = ff_get_luma_coefficients(s->in_csp); s 601 libavfilter/vf_colorspace.c if (!s->in_lumacoef) { s 604 libavfilter/vf_colorspace.c s->in_csp, av_color_space_name(s->in_csp)); s 610 libavfilter/vf_colorspace.c if (!s->out_lumacoef) { s 611 libavfilter/vf_colorspace.c s->out_csp = out->colorspace; s 612 libavfilter/vf_colorspace.c s->out_rng = out->color_range; s 613 libavfilter/vf_colorspace.c s->out_lumacoef = ff_get_luma_coefficients(s->out_csp); s 614 libavfilter/vf_colorspace.c if (!s->out_lumacoef) { s 615 libavfilter/vf_colorspace.c if (s->out_csp == AVCOL_SPC_UNSPECIFIED) { s 616 libavfilter/vf_colorspace.c if (s->user_all == CS_UNSPECIFIED) { s 621 libavfilter/vf_colorspace.c "Unsupported output color property %d\n", s->user_all); s 626 libavfilter/vf_colorspace.c s->out_csp, av_color_space_name(s->out_csp)); s 635 libavfilter/vf_colorspace.c s->yuv2yuv_fastmode = s->rgb2rgb_passthrough && fmt_identical; s 636 libavfilter/vf_colorspace.c s->yuv2yuv_passthrough = s->yuv2yuv_fastmode && s->in_rng == s->out_rng && s 637 libavfilter/vf_colorspace.c !memcmp(s->in_lumacoef, s->out_lumacoef, s 638 libavfilter/vf_colorspace.c sizeof(*s->in_lumacoef)) && s 640 libavfilter/vf_colorspace.c if (!s->yuv2yuv_passthrough) { s 642 libavfilter/vf_colorspace.c double rgb2yuv[3][3], (*yuv2rgb)[3] = s->yuv2rgb_dbl_coeffs; s 645 libavfilter/vf_colorspace.c res = get_range_off(ctx, &off, &s->in_y_rng, &s->in_uv_rng, s 646 libavfilter/vf_colorspace.c s->in_rng, in_desc->comp[0].depth); s 650 libavfilter/vf_colorspace.c s->in_rng, av_color_range_name(s->in_rng)); s 654 libavfilter/vf_colorspace.c s->yuv_offset[0][n] = off; s 655 libavfilter/vf_colorspace.c ff_fill_rgb2yuv_table(s->in_lumacoef, rgb2yuv); s 659 libavfilter/vf_colorspace.c for (in_rng = s->in_y_rng, m = 0; m < 3; m++, in_rng = s->in_uv_rng) { s 660 libavfilter/vf_colorspace.c s->yuv2rgb_coeffs[n][m][0] = lrint(28672 * bits * yuv2rgb[n][m] / in_rng); s 662 libavfilter/vf_colorspace.c s->yuv2rgb_coeffs[n][m][o] = s->yuv2rgb_coeffs[n][m][0]; s 665 libavfilter/vf_colorspace.c av_assert2(s->yuv2rgb_coeffs[0][1][0] == 0); s 666 libavfilter/vf_colorspace.c av_assert2(s->yuv2rgb_coeffs[2][2][0] == 0); s 667 libavfilter/vf_colorspace.c av_assert2(s->yuv2rgb_coeffs[0][0][0] == s->yuv2rgb_coeffs[1][0][0]); s 668 libavfilter/vf_colorspace.c av_assert2(s->yuv2rgb_coeffs[0][0][0] == s->yuv2rgb_coeffs[2][0][0]); s 669 libavfilter/vf_colorspace.c s->yuv2rgb = s->dsp.yuv2rgb[(in_desc->comp[0].depth - 8) >> 1] s 675 libavfilter/vf_colorspace.c double (*rgb2yuv)[3] = s->rgb2yuv_dbl_coeffs; s 678 libavfilter/vf_colorspace.c res = get_range_off(ctx, &off, &s->out_y_rng, &s->out_uv_rng, s 679 libavfilter/vf_colorspace.c s->out_rng, out_desc->comp[0].depth); s 683 libavfilter/vf_colorspace.c s->out_rng, av_color_range_name(s->out_rng)); s 687 libavfilter/vf_colorspace.c s->yuv_offset[1][n] = off; s 688 libavfilter/vf_colorspace.c ff_fill_rgb2yuv_table(s->out_lumacoef, rgb2yuv); s 690 libavfilter/vf_colorspace.c for (out_rng = s->out_y_rng, n = 0; n < 3; n++, out_rng = s->out_uv_rng) { s 692 libavfilter/vf_colorspace.c s->rgb2yuv_coeffs[n][m][0] = lrint(bits * out_rng * rgb2yuv[n][m] / 28672); s 694 libavfilter/vf_colorspace.c s->rgb2yuv_coeffs[n][m][o] = s->rgb2yuv_coeffs[n][m][0]; s 697 libavfilter/vf_colorspace.c av_assert2(s->rgb2yuv_coeffs[1][2][0] == s->rgb2yuv_coeffs[2][0][0]); s 698 libavfilter/vf_colorspace.c s->rgb2yuv = s->dsp.rgb2yuv[(out_desc->comp[0].depth - 8) >> 1] s 700 libavfilter/vf_colorspace.c s->rgb2yuv_fsb = s->dsp.rgb2yuv_fsb[(out_desc->comp[0].depth - 8) >> 1] s 705 libavfilter/vf_colorspace.c if (s->yuv2yuv_fastmode && (redo_yuv2rgb || redo_rgb2yuv)) { s 707 libavfilter/vf_colorspace.c double (*rgb2yuv)[3] = s->rgb2yuv_dbl_coeffs; s 708 libavfilter/vf_colorspace.c double (*yuv2rgb)[3] = s->yuv2rgb_dbl_coeffs; s 713 libavfilter/vf_colorspace.c for (out_rng = s->out_y_rng, m = 0; m < 3; m++, out_rng = s->out_uv_rng) { s 714 libavfilter/vf_colorspace.c for (in_rng = s->in_y_rng, n = 0; n < 3; n++, in_rng = s->in_uv_rng) { s 715 libavfilter/vf_colorspace.c s->yuv2yuv_coeffs[m][n][0] = s 719 libavfilter/vf_colorspace.c s->yuv2yuv_coeffs[m][n][o] = s->yuv2yuv_coeffs[m][n][0]; s 722 libavfilter/vf_colorspace.c av_assert2(s->yuv2yuv_coeffs[1][0][0] == 0); s 723 libavfilter/vf_colorspace.c av_assert2(s->yuv2yuv_coeffs[2][0][0] == 0); s 724 libavfilter/vf_colorspace.c s->yuv2yuv = s->dsp.yuv2yuv[(idepth - 8) >> 1][(odepth - 8) >> 1] s 737 libavfilter/vf_colorspace.c ColorSpaceContext *s = ctx->priv; s 739 libavfilter/vf_colorspace.c ff_colorspacedsp_init(&s->dsp); s 746 libavfilter/vf_colorspace.c ColorSpaceContext *s = ctx->priv; s 748 libavfilter/vf_colorspace.c av_freep(&s->rgb[0]); s 749 libavfilter/vf_colorspace.c av_freep(&s->rgb[1]); s 750 libavfilter/vf_colorspace.c av_freep(&s->rgb[2]); s 751 libavfilter/vf_colorspace.c s->rgb_sz = 0; s 752 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[0][0]); s 753 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[0][1]); s 754 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[1][0]); s 755 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[1][1]); s 756 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[2][0]); s 757 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[2][1]); s 759 libavfilter/vf_colorspace.c av_freep(&s->lin_lut); s 766 libavfilter/vf_colorspace.c ColorSpaceContext *s = ctx->priv; s 787 libavfilter/vf_colorspace.c out->color_primaries = s->user_prm == AVCOL_PRI_UNSPECIFIED ? s 788 libavfilter/vf_colorspace.c default_prm[FFMIN(s->user_all, CS_NB)] : s->user_prm; s 789 libavfilter/vf_colorspace.c if (s->user_trc == AVCOL_TRC_UNSPECIFIED) { s 792 libavfilter/vf_colorspace.c out->color_trc = default_trc[FFMIN(s->user_all, CS_NB)]; s 796 libavfilter/vf_colorspace.c out->color_trc = s->user_trc; s 798 libavfilter/vf_colorspace.c out->colorspace = s->user_csp == AVCOL_SPC_UNSPECIFIED ? s 799 libavfilter/vf_colorspace.c default_csp[FFMIN(s->user_all, CS_NB)] : s->user_csp; s 800 libavfilter/vf_colorspace.c out->color_range = s->user_rng == AVCOL_RANGE_UNSPECIFIED ? s 801 libavfilter/vf_colorspace.c in->color_range : s->user_rng; s 802 libavfilter/vf_colorspace.c if (rgb_sz != s->rgb_sz) { s 806 libavfilter/vf_colorspace.c av_freep(&s->rgb[0]); s 807 libavfilter/vf_colorspace.c av_freep(&s->rgb[1]); s 808 libavfilter/vf_colorspace.c av_freep(&s->rgb[2]); s 809 libavfilter/vf_colorspace.c s->rgb_sz = 0; s 810 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[0][0]); s 811 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[0][1]); s 812 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[1][0]); s 813 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[1][1]); s 814 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[2][0]); s 815 libavfilter/vf_colorspace.c av_freep(&s->dither_scratch_base[2][1]); s 817 libavfilter/vf_colorspace.c s->rgb[0] = av_malloc(rgb_sz); s 818 libavfilter/vf_colorspace.c s->rgb[1] = av_malloc(rgb_sz); s 819 libavfilter/vf_colorspace.c s->rgb[2] = av_malloc(rgb_sz); s 820 libavfilter/vf_colorspace.c s->dither_scratch_base[0][0] = s 821 libavfilter/vf_colorspace.c av_malloc(sizeof(*s->dither_scratch_base[0][0]) * (in->width + 4)); s 822 libavfilter/vf_colorspace.c s->dither_scratch_base[0][1] = s 823 libavfilter/vf_colorspace.c av_malloc(sizeof(*s->dither_scratch_base[0][1]) * (in->width + 4)); s 824 libavfilter/vf_colorspace.c s->dither_scratch_base[1][0] = s 825 libavfilter/vf_colorspace.c av_malloc(sizeof(*s->dither_scratch_base[1][0]) * (uvw + 4)); s 826 libavfilter/vf_colorspace.c s->dither_scratch_base[1][1] = s 827 libavfilter/vf_colorspace.c av_malloc(sizeof(*s->dither_scratch_base[1][1]) * (uvw + 4)); s 828 libavfilter/vf_colorspace.c s->dither_scratch_base[2][0] = s 829 libavfilter/vf_colorspace.c av_malloc(sizeof(*s->dither_scratch_base[2][0]) * (uvw + 4)); s 830 libavfilter/vf_colorspace.c s->dither_scratch_base[2][1] = s 831 libavfilter/vf_colorspace.c av_malloc(sizeof(*s->dither_scratch_base[2][1]) * (uvw + 4)); s 832 libavfilter/vf_colorspace.c s->dither_scratch[0][0] = &s->dither_scratch_base[0][0][1]; s 833 libavfilter/vf_colorspace.c s->dither_scratch[0][1] = &s->dither_scratch_base[0][1][1]; s 834 libavfilter/vf_colorspace.c s->dither_scratch[1][0] = &s->dither_scratch_base[1][0][1]; s 835 libavfilter/vf_colorspace.c s->dither_scratch[1][1] = &s->dither_scratch_base[1][1][1]; s 836 libavfilter/vf_colorspace.c s->dither_scratch[2][0] = &s->dither_scratch_base[2][0][1]; s 837 libavfilter/vf_colorspace.c s->dither_scratch[2][1] = &s->dither_scratch_base[2][1][1]; s 838 libavfilter/vf_colorspace.c if (!s->rgb[0] || !s->rgb[1] || !s->rgb[2] || s 839 libavfilter/vf_colorspace.c !s->dither_scratch_base[0][0] || !s->dither_scratch_base[0][1] || s 840 libavfilter/vf_colorspace.c !s->dither_scratch_base[1][0] || !s->dither_scratch_base[1][1] || s 841 libavfilter/vf_colorspace.c !s->dither_scratch_base[2][0] || !s->dither_scratch_base[2][1]) { s 847 libavfilter/vf_colorspace.c s->rgb_sz = rgb_sz; s 855 libavfilter/vf_colorspace.c s->rgb_stride = rgb_stride / sizeof(int16_t); s 866 libavfilter/vf_colorspace.c if (s->yuv2yuv_passthrough) { s 892 libavfilter/vf_colorspace.c ColorSpaceContext *s = ctx->priv; s 897 libavfilter/vf_colorspace.c if (s->user_format == AV_PIX_FMT_NONE) s 903 libavfilter/vf_colorspace.c res = ff_add_format(&formats, s->user_format); s 487 libavfilter/vf_convolution.c ConvolutionContext *s = ctx->priv; s 493 libavfilter/vf_convolution.c for (plane = 0; plane < s->nb_planes; plane++) { s 494 libavfilter/vf_convolution.c const int mode = s->mode[plane]; s 495 libavfilter/vf_convolution.c const int bpc = s->bpc; s 496 libavfilter/vf_convolution.c const int radius = s->size[plane] / 2; s 497 libavfilter/vf_convolution.c const int height = s->planeheight[plane]; s 498 libavfilter/vf_convolution.c const int width = s->planewidth[plane]; s 505 libavfilter/vf_convolution.c const float rdiv = s->rdiv[plane]; s 506 libavfilter/vf_convolution.c const float bias = s->bias[plane]; s 510 libavfilter/vf_convolution.c const int *matrix = s->matrix[plane]; s 514 libavfilter/vf_convolution.c if (s->copy[plane]) { s 532 libavfilter/vf_convolution.c s->setup[plane](radius, c, src, stride, x, width, y, height, bpc); s 533 libavfilter/vf_convolution.c s->filter[plane](dst + yoff + xoff, 1, rdiv, s 534 libavfilter/vf_convolution.c bias, matrix, c, s->max, radius, s 537 libavfilter/vf_convolution.c s->setup[plane](radius, c, src, stride, radius, width, y, height, bpc); s 538 libavfilter/vf_convolution.c s->filter[plane](dst + yoff + xoff, sizew - 2 * radius, s 539 libavfilter/vf_convolution.c rdiv, bias, matrix, c, s->max, radius, s 545 libavfilter/vf_convolution.c s->setup[plane](radius, c, src, stride, x, width, y, height, bpc); s 546 libavfilter/vf_convolution.c s->filter[plane](dst + yoff + xoff, 1, rdiv, s 547 libavfilter/vf_convolution.c bias, matrix, c, s->max, radius, s 561 libavfilter/vf_convolution.c ConvolutionContext *s = ctx->priv; s 565 libavfilter/vf_convolution.c s->depth = desc->comp[0].depth; s 566 libavfilter/vf_convolution.c s->max = (1 << s->depth) - 1; s 568 libavfilter/vf_convolution.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 569 libavfilter/vf_convolution.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 570 libavfilter/vf_convolution.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 571 libavfilter/vf_convolution.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 573 libavfilter/vf_convolution.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 574 libavfilter/vf_convolution.c s->nb_threads = ff_filter_get_nb_threads(ctx); s 575 libavfilter/vf_convolution.c s->bpc = (s->depth + 7) / 8; s 578 libavfilter/vf_convolution.c if (s->depth > 8) { s 579 libavfilter/vf_convolution.c for (p = 0; p < s->nb_planes; p++) { s 580 libavfilter/vf_convolution.c if (s->mode[p] == MATRIX_ROW) s 581 libavfilter/vf_convolution.c s->filter[p] = filter16_row; s 582 libavfilter/vf_convolution.c else if (s->mode[p] == MATRIX_COLUMN) s 583 libavfilter/vf_convolution.c s->filter[p] = filter16_column; s 584 libavfilter/vf_convolution.c else if (s->size[p] == 3) s 585 libavfilter/vf_convolution.c s->filter[p] = filter16_3x3; s 586 libavfilter/vf_convolution.c else if (s->size[p] == 5) s 587 libavfilter/vf_convolution.c s->filter[p] = filter16_5x5; s 588 libavfilter/vf_convolution.c else if (s->size[p] == 7) s 589 libavfilter/vf_convolution.c s->filter[p] = filter16_7x7; s 593 libavfilter/vf_convolution.c ff_convolution_init_x86(s); s 596 libavfilter/vf_convolution.c if (s->depth > 8) s 597 libavfilter/vf_convolution.c for (p = 0; p < s->nb_planes; p++) s 598 libavfilter/vf_convolution.c s->filter[p] = filter16_prewitt; s 600 libavfilter/vf_convolution.c if (s->depth > 8) s 601 libavfilter/vf_convolution.c for (p = 0; p < s->nb_planes; p++) s 602 libavfilter/vf_convolution.c s->filter[p] = filter16_roberts; s 604 libavfilter/vf_convolution.c if (s->depth > 8) s 605 libavfilter/vf_convolution.c for (p = 0; p < s->nb_planes; p++) s 606 libavfilter/vf_convolution.c s->filter[p] = filter16_sobel; s 615 libavfilter/vf_convolution.c ConvolutionContext *s = ctx->priv; s 629 libavfilter/vf_convolution.c ctx->internal->execute(ctx, filter_slice, &td, NULL, FFMIN3(s->planeheight[1], s->planewidth[1], s->nb_threads)); s 637 libavfilter/vf_convolution.c ConvolutionContext *s = ctx->priv; s 642 libavfilter/vf_convolution.c int *matrix = (int *)s->matrix[i]; s 646 libavfilter/vf_convolution.c p = s->matrix_str[i]; s 647 libavfilter/vf_convolution.c while (s->matrix_length[i] < 49) { s 652 libavfilter/vf_convolution.c sscanf(arg, "%d", &matrix[s->matrix_length[i]]); s 653 libavfilter/vf_convolution.c sum += matrix[s->matrix_length[i]]; s 654 libavfilter/vf_convolution.c s->matrix_length[i]++; s 657 libavfilter/vf_convolution.c if (!(s->matrix_length[i] & 1)) { s 661 libavfilter/vf_convolution.c if (s->mode[i] == MATRIX_ROW) { s 662 libavfilter/vf_convolution.c s->filter[i] = filter_row; s 663 libavfilter/vf_convolution.c s->setup[i] = setup_row; s 664 libavfilter/vf_convolution.c s->size[i] = s->matrix_length[i]; s 665 libavfilter/vf_convolution.c } else if (s->mode[i] == MATRIX_COLUMN) { s 666 libavfilter/vf_convolution.c s->filter[i] = filter_column; s 667 libavfilter/vf_convolution.c s->setup[i] = setup_column; s 668 libavfilter/vf_convolution.c s->size[i] = s->matrix_length[i]; s 669 libavfilter/vf_convolution.c } else if (s->matrix_length[i] == 9) { s 670 libavfilter/vf_convolution.c s->size[i] = 3; s 672 libavfilter/vf_convolution.c s->copy[i] = 1; s 674 libavfilter/vf_convolution.c s->filter[i] = filter_3x3; s 675 libavfilter/vf_convolution.c s->setup[i] = setup_3x3; s 676 libavfilter/vf_convolution.c } else if (s->matrix_length[i] == 25) { s 677 libavfilter/vf_convolution.c s->size[i] = 5; s 679 libavfilter/vf_convolution.c s->copy[i] = 1; s 681 libavfilter/vf_convolution.c s->filter[i] = filter_5x5; s 682 libavfilter/vf_convolution.c s->setup[i] = setup_5x5; s 683 libavfilter/vf_convolution.c } else if (s->matrix_length[i] == 49) { s 684 libavfilter/vf_convolution.c s->size[i] = 7; s 686 libavfilter/vf_convolution.c s->copy[i] = 1; s 688 libavfilter/vf_convolution.c s->filter[i] = filter_7x7; s 689 libavfilter/vf_convolution.c s->setup[i] = setup_7x7; s 696 libavfilter/vf_convolution.c if (s->rdiv[i] == 0) s 697 libavfilter/vf_convolution.c s->rdiv[i] = 1. / sum; s 699 libavfilter/vf_convolution.c if (s->copy[i] && (s->rdiv[i] != 1. || s->bias[i] != 0.)) s 700 libavfilter/vf_convolution.c s->copy[i] = 0; s 704 libavfilter/vf_convolution.c if ((1 << i) & s->planes) s 705 libavfilter/vf_convolution.c s->filter[i] = filter_prewitt; s 707 libavfilter/vf_convolution.c s->copy[i] = 1; s 708 libavfilter/vf_convolution.c s->size[i] = 3; s 709 libavfilter/vf_convolution.c s->setup[i] = setup_3x3; s 710 libavfilter/vf_convolution.c s->rdiv[i] = s->scale; s 711 libavfilter/vf_convolution.c s->bias[i] = s->delta; s 715 libavfilter/vf_convolution.c if ((1 << i) & s->planes) s 716 libavfilter/vf_convolution.c s->filter[i] = filter_roberts; s 718 libavfilter/vf_convolution.c s->copy[i] = 1; s 719 libavfilter/vf_convolution.c s->size[i] = 3; s 720 libavfilter/vf_convolution.c s->setup[i] = setup_3x3; s 721 libavfilter/vf_convolution.c s->rdiv[i] = s->scale; s 722 libavfilter/vf_convolution.c s->bias[i] = s->delta; s 726 libavfilter/vf_convolution.c if ((1 << i) & s->planes) s 727 libavfilter/vf_convolution.c s->filter[i] = filter_sobel; s 729 libavfilter/vf_convolution.c s->copy[i] = 1; s 730 libavfilter/vf_convolution.c s->size[i] = 3; s 731 libavfilter/vf_convolution.c s->setup[i] = setup_3x3; s 732 libavfilter/vf_convolution.c s->rdiv[i] = s->scale; s 733 libavfilter/vf_convolution.c s->bias[i] = s->delta; s 106 libavfilter/vf_convolve.c ConvolveContext *s = inlink->dst->priv; s 110 libavfilter/vf_convolve.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 111 libavfilter/vf_convolve.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 112 libavfilter/vf_convolve.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 113 libavfilter/vf_convolve.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 115 libavfilter/vf_convolve.c s->nb_planes = desc->nb_components; s 116 libavfilter/vf_convolve.c s->depth = desc->comp[0].depth; s 118 libavfilter/vf_convolve.c for (i = 0; i < s->nb_planes; i++) { s 119 libavfilter/vf_convolve.c int w = s->planewidth[i]; s 120 libavfilter/vf_convolve.c int h = s->planeheight[i]; s 125 libavfilter/vf_convolve.c s->fft_bits[i] = fft_bits; s 126 libavfilter/vf_convolve.c s->fft_len[i] = 1 << s->fft_bits[i]; s 128 libavfilter/vf_convolve.c if (!(s->fft_hdata[i] = av_calloc(s->fft_len[i], s->fft_len[i] * sizeof(FFTComplex)))) s 131 libavfilter/vf_convolve.c if (!(s->fft_vdata[i] = av_calloc(s->fft_len[i], s->fft_len[i] * sizeof(FFTComplex)))) s 134 libavfilter/vf_convolve.c if (!(s->fft_hdata_impulse[i] = av_calloc(s->fft_len[i], s->fft_len[i] * sizeof(FFTComplex)))) s 137 libavfilter/vf_convolve.c if (!(s->fft_vdata_impulse[i] = av_calloc(s->fft_len[i], s->fft_len[i] * sizeof(FFTComplex)))) s 168 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 178 libavfilter/vf_convolve.c av_fft_permute(s->fft[plane][jobnr], hdata + y * n); s 179 libavfilter/vf_convolve.c av_fft_calc(s->fft[plane][jobnr], hdata + y * n); s 185 libavfilter/vf_convolve.c static void get_input(ConvolveContext *s, FFTComplex *fft_hdata, s 191 libavfilter/vf_convolve.c if (s->depth == 8) { s 262 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 278 libavfilter/vf_convolve.c av_fft_permute(s->fft[plane][jobnr], vdata + y * n); s 279 libavfilter/vf_convolve.c av_fft_calc(s->fft[plane][jobnr], vdata + y * n); s 287 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 298 libavfilter/vf_convolve.c av_fft_permute(s->ifft[plane][jobnr], vdata + y * n); s 299 libavfilter/vf_convolve.c av_fft_calc(s->ifft[plane][jobnr], vdata + y * n); s 312 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 322 libavfilter/vf_convolve.c av_fft_permute(s->ifft[plane][jobnr], hdata + y * n); s 323 libavfilter/vf_convolve.c av_fft_calc(s->ifft[plane][jobnr], hdata + y * n); s 329 libavfilter/vf_convolve.c static void get_output(ConvolveContext *s, FFTComplex *input, AVFrame *out, s 332 libavfilter/vf_convolve.c const int max = (1 << s->depth) - 1; s 337 libavfilter/vf_convolve.c if (s->depth == 8) { s 384 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 388 libavfilter/vf_convolve.c const float noise = s->noise; s 415 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 419 libavfilter/vf_convolve.c const float noise = s->noise; s 449 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 459 libavfilter/vf_convolve.c for (plane = 0; plane < s->nb_planes; plane++) { s 460 libavfilter/vf_convolve.c FFTComplex *filter = s->fft_vdata_impulse[plane]; s 461 libavfilter/vf_convolve.c FFTComplex *input = s->fft_vdata[plane]; s 462 libavfilter/vf_convolve.c const int n = s->fft_len[plane]; s 463 libavfilter/vf_convolve.c const int w = s->planewidth[plane]; s 464 libavfilter/vf_convolve.c const int h = s->planeheight[plane]; s 468 libavfilter/vf_convolve.c if (!(s->planes & (1 << plane))) { s 473 libavfilter/vf_convolve.c get_input(s, s->fft_hdata[plane], mainpic, w, h, n, plane, 1.f); s 475 libavfilter/vf_convolve.c td.hdata = s->fft_hdata[plane]; s 476 libavfilter/vf_convolve.c td.vdata = s->fft_vdata[plane]; s 481 libavfilter/vf_convolve.c if ((!s->impulse && !s->got_impulse[plane]) || s->impulse) { s 482 libavfilter/vf_convolve.c if (s->depth == 8) { s 499 libavfilter/vf_convolve.c get_input(s, s->fft_hdata_impulse[plane], impulsepic, w, h, n, plane, 1.f / total); s 501 libavfilter/vf_convolve.c td.hdata = s->fft_hdata_impulse[plane]; s 502 libavfilter/vf_convolve.c td.vdata = s->fft_vdata_impulse[plane]; s 507 libavfilter/vf_convolve.c s->got_impulse[plane] = 1; s 513 libavfilter/vf_convolve.c ctx->internal->execute(ctx, s->filter, &td, NULL, FFMIN3(MAX_THREADS, n, ff_filter_get_nb_threads(ctx))); s 515 libavfilter/vf_convolve.c td.hdata = s->fft_hdata[plane]; s 516 libavfilter/vf_convolve.c td.vdata = s->fft_vdata[plane]; s 521 libavfilter/vf_convolve.c get_output(s, s->fft_hdata[plane], mainpic, w, h, n, plane, 1.f / (n * n)); s 530 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 534 libavfilter/vf_convolve.c s->fs.on_event = do_convolve; s 535 libavfilter/vf_convolve.c ret = ff_framesync_init_dualinput(&s->fs, ctx); s 544 libavfilter/vf_convolve.c if ((ret = ff_framesync_configure(&s->fs)) < 0) s 547 libavfilter/vf_convolve.c for (i = 0; i < s->nb_planes; i++) { s 549 libavfilter/vf_convolve.c s->fft[i][j] = av_fft_init(s->fft_bits[i], 0); s 550 libavfilter/vf_convolve.c s->ifft[i][j] = av_fft_init(s->fft_bits[i], 1); s 551 libavfilter/vf_convolve.c if (!s->fft[i][j] || !s->ifft[i][j]) s 561 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 562 libavfilter/vf_convolve.c return ff_framesync_activate(&s->fs); s 567 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 570 libavfilter/vf_convolve.c s->filter = complex_multiply; s 572 libavfilter/vf_convolve.c s->filter = complex_divide; s 582 libavfilter/vf_convolve.c ConvolveContext *s = ctx->priv; s 586 libavfilter/vf_convolve.c av_freep(&s->fft_hdata[i]); s 587 libavfilter/vf_convolve.c av_freep(&s->fft_vdata[i]); s 588 libavfilter/vf_convolve.c av_freep(&s->fft_hdata_impulse[i]); s 589 libavfilter/vf_convolve.c av_freep(&s->fft_vdata_impulse[i]); s 592 libavfilter/vf_convolve.c av_fft_end(s->fft[i][j]); s 593 libavfilter/vf_convolve.c s->fft[i][j] = NULL; s 594 libavfilter/vf_convolve.c av_fft_end(s->ifft[i][j]); s 595 libavfilter/vf_convolve.c s->ifft[i][j] = NULL; s 599 libavfilter/vf_convolve.c ff_framesync_uninit(&s->fs); s 108 libavfilter/vf_cover_rect.c int s = 0; s 111 libavfilter/vf_cover_rect.c s += data[-1 + y*stride] * scale; s 116 libavfilter/vf_cover_rect.c s += data[x - stride] * scale; s 121 libavfilter/vf_cover_rect.c s += data[w + y*stride] * scale; s 126 libavfilter/vf_cover_rect.c s += data[x + h*stride] * scale; s 129 libavfilter/vf_cover_rect.c data[x + y*stride] = c ? (s + (c>>1)) / c : 0; s 107 libavfilter/vf_crop.c CropContext *s = ctx->priv; s 109 libavfilter/vf_crop.c av_expr_free(s->x_pexpr); s 110 libavfilter/vf_crop.c s->x_pexpr = NULL; s 111 libavfilter/vf_crop.c av_expr_free(s->y_pexpr); s 112 libavfilter/vf_crop.c s->y_pexpr = NULL; s 133 libavfilter/vf_crop.c CropContext *s = ctx->priv; s 139 libavfilter/vf_crop.c s->var_values[VAR_IN_W] = s->var_values[VAR_IW] = ctx->inputs[0]->w; s 140 libavfilter/vf_crop.c s->var_values[VAR_IN_H] = s->var_values[VAR_IH] = ctx->inputs[0]->h; s 141 libavfilter/vf_crop.c s->var_values[VAR_A] = (float) link->w / link->h; s 142 libavfilter/vf_crop.c s->var_values[VAR_SAR] = link->sample_aspect_ratio.num ? av_q2d(link->sample_aspect_ratio) : 1; s 143 libavfilter/vf_crop.c s->var_values[VAR_DAR] = s->var_values[VAR_A] * s->var_values[VAR_SAR]; s 144 libavfilter/vf_crop.c s->var_values[VAR_HSUB] = 1<<pix_desc->log2_chroma_w; s 145 libavfilter/vf_crop.c s->var_values[VAR_VSUB] = 1<<pix_desc->log2_chroma_h; s 146 libavfilter/vf_crop.c s->var_values[VAR_X] = NAN; s 147 libavfilter/vf_crop.c s->var_values[VAR_Y] = NAN; s 148 libavfilter/vf_crop.c s->var_values[VAR_OUT_W] = s->var_values[VAR_OW] = NAN; s 149 libavfilter/vf_crop.c s->var_values[VAR_OUT_H] = s->var_values[VAR_OH] = NAN; s 150 libavfilter/vf_crop.c s->var_values[VAR_N] = 0; s 151 libavfilter/vf_crop.c s->var_values[VAR_T] = NAN; s 152 libavfilter/vf_crop.c s->var_values[VAR_POS] = NAN; s 154 libavfilter/vf_crop.c av_image_fill_max_pixsteps(s->max_step, NULL, pix_desc); s 157 libavfilter/vf_crop.c s->hsub = 1; s 158 libavfilter/vf_crop.c s->vsub = 1; s 160 libavfilter/vf_crop.c s->hsub = pix_desc->log2_chroma_w; s 161 libavfilter/vf_crop.c s->vsub = pix_desc->log2_chroma_h; s 164 libavfilter/vf_crop.c av_expr_parse_and_eval(&res, (expr = s->w_expr), s 165 libavfilter/vf_crop.c var_names, s->var_values, s 167 libavfilter/vf_crop.c s->var_values[VAR_OUT_W] = s->var_values[VAR_OW] = res; s 168 libavfilter/vf_crop.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->h_expr), s 169 libavfilter/vf_crop.c var_names, s->var_values, s 172 libavfilter/vf_crop.c s->var_values[VAR_OUT_H] = s->var_values[VAR_OH] = res; s 174 libavfilter/vf_crop.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->w_expr), s 175 libavfilter/vf_crop.c var_names, s->var_values, s 179 libavfilter/vf_crop.c s->var_values[VAR_OUT_W] = s->var_values[VAR_OW] = res; s 180 libavfilter/vf_crop.c if (normalize_double(&s->w, s->var_values[VAR_OUT_W]) < 0 || s 181 libavfilter/vf_crop.c normalize_double(&s->h, s->var_values[VAR_OUT_H]) < 0) { s 185 libavfilter/vf_crop.c s->w_expr, s->h_expr); s 189 libavfilter/vf_crop.c if (!s->exact) { s 190 libavfilter/vf_crop.c s->w &= ~((1 << s->hsub) - 1); s 191 libavfilter/vf_crop.c s->h &= ~((1 << s->vsub) - 1); s 194 libavfilter/vf_crop.c av_expr_free(s->x_pexpr); s 195 libavfilter/vf_crop.c av_expr_free(s->y_pexpr); s 196 libavfilter/vf_crop.c s->x_pexpr = s->y_pexpr = NULL; s 197 libavfilter/vf_crop.c if ((ret = av_expr_parse(&s->x_pexpr, s->x_expr, var_names, s 199 libavfilter/vf_crop.c (ret = av_expr_parse(&s->y_pexpr, s->y_expr, var_names, s 203 libavfilter/vf_crop.c if (s->keep_aspect) { s 206 libavfilter/vf_crop.c av_reduce(&s->out_sar.num, &s->out_sar.den, s 207 libavfilter/vf_crop.c dar.num * s->h, dar.den * s->w, INT_MAX); s 209 libavfilter/vf_crop.c s->out_sar = link->sample_aspect_ratio; s 213 libavfilter/vf_crop.c s->w, s->h, s->out_sar.num, s->out_sar.den); s 215 libavfilter/vf_crop.c if (s->w <= 0 || s->h <= 0 || s 216 libavfilter/vf_crop.c s->w > link->w || s->h > link->h) { s 219 libavfilter/vf_crop.c s->w, s->h); s 224 libavfilter/vf_crop.c s->x = (link->w - s->w) / 2; s 225 libavfilter/vf_crop.c s->y = (link->h - s->h) / 2; s 226 libavfilter/vf_crop.c if (!s->exact) { s 227 libavfilter/vf_crop.c s->x &= ~((1 << s->hsub) - 1); s 228 libavfilter/vf_crop.c s->y &= ~((1 << s->vsub) - 1); s 239 libavfilter/vf_crop.c CropContext *s = link->src->priv; s 246 libavfilter/vf_crop.c link->w = s->w; s 247 libavfilter/vf_crop.c link->h = s->h; s 249 libavfilter/vf_crop.c link->sample_aspect_ratio = s->out_sar; s 257 libavfilter/vf_crop.c CropContext *s = ctx->priv; s 261 libavfilter/vf_crop.c s->var_values[VAR_N] = link->frame_count_out; s 262 libavfilter/vf_crop.c s->var_values[VAR_T] = frame->pts == AV_NOPTS_VALUE ? s 264 libavfilter/vf_crop.c s->var_values[VAR_POS] = frame->pkt_pos == -1 ? s 266 libavfilter/vf_crop.c s->var_values[VAR_X] = av_expr_eval(s->x_pexpr, s->var_values, NULL); s 267 libavfilter/vf_crop.c s->var_values[VAR_Y] = av_expr_eval(s->y_pexpr, s->var_values, NULL); s 269 libavfilter/vf_crop.c s->var_values[VAR_X] = av_expr_eval(s->x_pexpr, s->var_values, NULL); s 271 libavfilter/vf_crop.c normalize_double(&s->x, s->var_values[VAR_X]); s 272 libavfilter/vf_crop.c normalize_double(&s->y, s->var_values[VAR_Y]); s 274 libavfilter/vf_crop.c if (s->x < 0) s 275 libavfilter/vf_crop.c s->x = 0; s 276 libavfilter/vf_crop.c if (s->y < 0) s 277 libavfilter/vf_crop.c s->y = 0; s 278 libavfilter/vf_crop.c if ((unsigned)s->x + (unsigned)s->w > link->w) s 279 libavfilter/vf_crop.c s->x = link->w - s->w; s 280 libavfilter/vf_crop.c if ((unsigned)s->y + (unsigned)s->h > link->h) s 281 libavfilter/vf_crop.c s->y = link->h - s->h; s 282 libavfilter/vf_crop.c if (!s->exact) { s 283 libavfilter/vf_crop.c s->x &= ~((1 << s->hsub) - 1); s 284 libavfilter/vf_crop.c s->y &= ~((1 << s->vsub) - 1); s 288 libavfilter/vf_crop.c (int)s->var_values[VAR_N], s->var_values[VAR_T], s->var_values[VAR_POS], s 289 libavfilter/vf_crop.c s->x, s->y, s->x+s->w, s->y+s->h); s 292 libavfilter/vf_crop.c frame->crop_top += s->y; s 293 libavfilter/vf_crop.c frame->crop_left += s->x; s 294 libavfilter/vf_crop.c frame->crop_bottom = frame->height - frame->crop_top - frame->crop_bottom - s->h; s 295 libavfilter/vf_crop.c frame->crop_right = frame->width - frame->crop_left - frame->crop_right - s->w; s 297 libavfilter/vf_crop.c frame->width = s->w; s 298 libavfilter/vf_crop.c frame->height = s->h; s 300 libavfilter/vf_crop.c frame->data[0] += s->y * frame->linesize[0]; s 301 libavfilter/vf_crop.c frame->data[0] += s->x * s->max_step[0]; s 306 libavfilter/vf_crop.c frame->data[i] += (s->y >> s->vsub) * frame->linesize[i]; s 307 libavfilter/vf_crop.c frame->data[i] += (s->x * s->max_step[i]) >> s->hsub; s 314 libavfilter/vf_crop.c frame->data[3] += s->y * frame->linesize[3]; s 315 libavfilter/vf_crop.c frame->data[3] += s->x * s->max_step[3]; s 325 libavfilter/vf_crop.c CropContext *s = ctx->priv; s 332 libavfilter/vf_crop.c int old_x = s->x; s 333 libavfilter/vf_crop.c int old_y = s->y; s 334 libavfilter/vf_crop.c int old_w = s->w; s 335 libavfilter/vf_crop.c int old_h = s->h; s 340 libavfilter/vf_crop.c av_opt_set(s, cmd, args, 0); s 343 libavfilter/vf_crop.c s->x = old_x; s 344 libavfilter/vf_crop.c s->y = old_y; s 345 libavfilter/vf_crop.c s->w = old_w; s 346 libavfilter/vf_crop.c s->h = old_h; s 128 libavfilter/vf_cropdetect.c CropDetectContext *s = ctx->priv; s 130 libavfilter/vf_cropdetect.c s->frame_nb = -2; s 133 libavfilter/vf_cropdetect.c s->limit, s->round, s->reset_count); s 141 libavfilter/vf_cropdetect.c CropDetectContext *s = ctx->priv; s 144 libavfilter/vf_cropdetect.c av_image_fill_max_pixsteps(s->max_pixsteps, NULL, desc); s 146 libavfilter/vf_cropdetect.c if (s->limit < 1.0) s 147 libavfilter/vf_cropdetect.c s->limit *= (1 << desc->comp[0].depth) - 1; s 149 libavfilter/vf_cropdetect.c s->x1 = inlink->w - 1; s 150 libavfilter/vf_cropdetect.c s->y1 = inlink->h - 1; s 151 libavfilter/vf_cropdetect.c s->x2 = 0; s 152 libavfilter/vf_cropdetect.c s->y2 = 0; s 163 libavfilter/vf_cropdetect.c CropDetectContext *s = ctx->priv; s 164 libavfilter/vf_cropdetect.c int bpp = s->max_pixsteps[0]; s 168 libavfilter/vf_cropdetect.c int limit = lrint(s->limit); s 171 libavfilter/vf_cropdetect.c if (++s->frame_nb > 0) { s 175 libavfilter/vf_cropdetect.c if (s->reset_count > 0 && s->frame_nb > s->reset_count) { s 176 libavfilter/vf_cropdetect.c s->x1 = frame->width - 1; s 177 libavfilter/vf_cropdetect.c s->y1 = frame->height - 1; s 178 libavfilter/vf_cropdetect.c s->x2 = 0; s 179 libavfilter/vf_cropdetect.c s->y2 = 0; s 180 libavfilter/vf_cropdetect.c s->frame_nb = 1; s 187 libavfilter/vf_cropdetect.c if (++outliers > s->max_outliers) { \ s 195 libavfilter/vf_cropdetect.c FIND(s->y1, 0, y < s->y1, +1, frame->linesize[0], bpp, frame->width); s 196 libavfilter/vf_cropdetect.c FIND(s->y2, frame->height - 1, y > FFMAX(s->y2, s->y1), -1, frame->linesize[0], bpp, frame->width); s 197 libavfilter/vf_cropdetect.c FIND(s->x1, 0, y < s->x1, +1, bpp, frame->linesize[0], frame->height); s 198 libavfilter/vf_cropdetect.c FIND(s->x2, frame->width - 1, y > FFMAX(s->x2, s->x1), -1, bpp, frame->linesize[0], frame->height); s 203 libavfilter/vf_cropdetect.c x = (s->x1+1) & ~1; s 204 libavfilter/vf_cropdetect.c y = (s->y1+1) & ~1; s 206 libavfilter/vf_cropdetect.c w = s->x2 - x + 1; s 207 libavfilter/vf_cropdetect.c h = s->y2 - y + 1; s 211 libavfilter/vf_cropdetect.c if (s->round <= 1) s 212 libavfilter/vf_cropdetect.c s->round = 16; s 213 libavfilter/vf_cropdetect.c if (s->round % 2) s 214 libavfilter/vf_cropdetect.c s->round *= 2; s 216 libavfilter/vf_cropdetect.c shrink_by = w % s->round; s 220 libavfilter/vf_cropdetect.c shrink_by = h % s->round; s 224 libavfilter/vf_cropdetect.c SET_META("lavfi.cropdetect.x1", s->x1); s 225 libavfilter/vf_cropdetect.c SET_META("lavfi.cropdetect.x2", s->x2); s 226 libavfilter/vf_cropdetect.c SET_META("lavfi.cropdetect.y1", s->y1); s 227 libavfilter/vf_cropdetect.c SET_META("lavfi.cropdetect.y2", s->y2); s 235 libavfilter/vf_cropdetect.c s->x1, s->x2, s->y1, s->y2, w, h, x, y, frame->pts, s 155 libavfilter/vf_curves.c static int parse_points_str(AVFilterContext *ctx, struct keypoint **points, const char *s, s 158 libavfilter/vf_curves.c char *p = (char *)s; // strtod won't alter the string s 177 libavfilter/vf_datascope.c DatascopeContext *s = ctx->priv; s 185 libavfilter/vf_datascope.c const int P = FFMAX(s->nb_planes, s->nb_comps); s 186 libavfilter/vf_datascope.c const int C = s->chars; s 187 libavfilter/vf_datascope.c const int D = ((s->chars - s->dformat) >> 2) + s->dformat * 2; s 195 libavfilter/vf_datascope.c for (y = 0; y < H && (y + s->y < inlink->h); y++) { s 196 libavfilter/vf_datascope.c for (x = slice_start; x < slice_end && (x + s->x < inlink->w); x++) { s 201 libavfilter/vf_datascope.c s->pick_color(&s->draw, &color, in, x + s->x, y + s->y, value); s 202 libavfilter/vf_datascope.c s->reverse_color(&s->draw, &color, &reverse); s 203 libavfilter/vf_datascope.c ff_fill_rectangle(&s->draw, &color, out->data, out->linesize, s 210 libavfilter/vf_datascope.c draw_text(&s->draw, out, &reverse, xoff + x * C * 10 + 2, yoff + y * P * 12 + p * 10 + 2, text, 0); s 220 libavfilter/vf_datascope.c DatascopeContext *s = ctx->priv; s 228 libavfilter/vf_datascope.c const int P = FFMAX(s->nb_planes, s->nb_comps); s 229 libavfilter/vf_datascope.c const int C = s->chars; s 230 libavfilter/vf_datascope.c const int D = ((s->chars - s->dformat) >> 2) + s->dformat * 2; s 238 libavfilter/vf_datascope.c for (y = 0; y < H && (y + s->y < inlink->h); y++) { s 239 libavfilter/vf_datascope.c for (x = slice_start; x < slice_end && (x + s->x < inlink->w); x++) { s 243 libavfilter/vf_datascope.c s->pick_color(&s->draw, &color, in, x + s->x, y + s->y, value); s 249 libavfilter/vf_datascope.c draw_text(&s->draw, out, &color, xoff + x * C * 10 + 2, yoff + y * P * 12 + p * 10 + 2, text, 0); s 259 libavfilter/vf_datascope.c DatascopeContext *s = ctx->priv; s 267 libavfilter/vf_datascope.c const int P = FFMAX(s->nb_planes, s->nb_comps); s 268 libavfilter/vf_datascope.c const int C = s->chars; s 269 libavfilter/vf_datascope.c const int D = ((s->chars - s->dformat) >> 2) + s->dformat * 2; s 277 libavfilter/vf_datascope.c for (y = 0; y < H && (y + s->y < inlink->h); y++) { s 278 libavfilter/vf_datascope.c for (x = slice_start; x < slice_end && (x + s->x < inlink->w); x++) { s 282 libavfilter/vf_datascope.c s->pick_color(&s->draw, &color, in, x + s->x, y + s->y, value); s 287 libavfilter/vf_datascope.c draw_text(&s->draw, out, &s->white, xoff + x * C * 10 + 2, yoff + y * P * 12 + p * 10 + 2, text, 0); s 298 libavfilter/vf_datascope.c DatascopeContext *s = ctx->priv; s 312 libavfilter/vf_datascope.c ff_fill_rectangle(&s->draw, &s->black, out->data, out->linesize, s 315 libavfilter/vf_datascope.c if (s->axis) { s 316 libavfilter/vf_datascope.c const int P = FFMAX(s->nb_planes, s->nb_comps); s 317 libavfilter/vf_datascope.c const int C = s->chars; s 323 libavfilter/vf_datascope.c snprintf(text, sizeof(text), "%d", s->y + Y); s 326 libavfilter/vf_datascope.c snprintf(text, sizeof(text), "%d", s->x + X); s 334 libavfilter/vf_datascope.c snprintf(text, sizeof(text), "%d", s->y + y); s 336 libavfilter/vf_datascope.c ff_fill_rectangle(&s->draw, &s->gray, out->data, out->linesize, s 339 libavfilter/vf_datascope.c draw_text(&s->draw, out, &s->yellow, 2, xmaxlen + y * P * 12 + (P + 1) * P, text, 0); s 343 libavfilter/vf_datascope.c snprintf(text, sizeof(text), "%d", s->x + x); s 345 libavfilter/vf_datascope.c ff_fill_rectangle(&s->draw, &s->gray, out->data, out->linesize, s 348 libavfilter/vf_datascope.c draw_text(&s->draw, out, &s->yellow, ymaxlen + x * C * 10 + 2 * C, 2, text, 1); s 353 libavfilter/vf_datascope.c ctx->internal->execute(ctx, s->filter, &td, NULL, FFMIN(ff_filter_get_nb_threads(ctx), FFMAX(outlink->w / 20, 1))); s 361 libavfilter/vf_datascope.c DatascopeContext *s = inlink->dst->priv; s 362 libavfilter/vf_datascope.c uint8_t alpha = s->opacity * 255; s 364 libavfilter/vf_datascope.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 365 libavfilter/vf_datascope.c ff_draw_init(&s->draw, inlink->format, 0); s 366 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->white, (uint8_t[]){ 255, 255, 255, 255} ); s 367 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->black, (uint8_t[]){ 0, 0, 0, alpha} ); s 368 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->yellow, (uint8_t[]){ 255, 255, 0, 255} ); s 369 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->gray, (uint8_t[]){ 77, 77, 77, 255} ); s 370 libavfilter/vf_datascope.c s->chars = (s->draw.desc->comp[0].depth + 7) / 8 * 2 + s->dformat; s 371 libavfilter/vf_datascope.c s->nb_comps = s->draw.desc->nb_components; s 373 libavfilter/vf_datascope.c switch (s->mode) { s 374 libavfilter/vf_datascope.c case 0: s->filter = filter_mono; break; s 375 libavfilter/vf_datascope.c case 1: s->filter = filter_color; break; s 376 libavfilter/vf_datascope.c case 2: s->filter = filter_color2; break; s 379 libavfilter/vf_datascope.c if (s->draw.desc->comp[0].depth <= 8) { s 380 libavfilter/vf_datascope.c s->pick_color = pick_color8; s 381 libavfilter/vf_datascope.c s->reverse_color = reverse_color8; s 383 libavfilter/vf_datascope.c s->pick_color = pick_color16; s 384 libavfilter/vf_datascope.c s->reverse_color = reverse_color16; s 392 libavfilter/vf_datascope.c DatascopeContext *s = outlink->src->priv; s 394 libavfilter/vf_datascope.c outlink->h = s->oh; s 395 libavfilter/vf_datascope.c outlink->w = s->ow; s 477 libavfilter/vf_datascope.c PixscopeContext *s = inlink->dst->priv; s 479 libavfilter/vf_datascope.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 480 libavfilter/vf_datascope.c ff_draw_init(&s->draw, inlink->format, 0); s 481 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->dark, (uint8_t[]){ 0, 0, 0, s->o * 255} ); s 482 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->black, (uint8_t[]){ 0, 0, 0, 255} ); s 483 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->white, (uint8_t[]){ 255, 255, 255, 255} ); s 484 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->green, (uint8_t[]){ 0, 255, 0, 255} ); s 485 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->blue, (uint8_t[]){ 0, 0, 255, 255} ); s 486 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->red, (uint8_t[]){ 255, 0, 0, 255} ); s 487 libavfilter/vf_datascope.c s->nb_comps = s->draw.desc->nb_components; s 488 libavfilter/vf_datascope.c s->is_rgb = s->draw.desc->flags & AV_PIX_FMT_FLAG_RGB; s 490 libavfilter/vf_datascope.c if (s->is_rgb) { s 491 libavfilter/vf_datascope.c s->colors[0] = &s->red; s 492 libavfilter/vf_datascope.c s->colors[1] = &s->green; s 493 libavfilter/vf_datascope.c s->colors[2] = &s->blue; s 494 libavfilter/vf_datascope.c s->colors[3] = &s->white; s 495 libavfilter/vf_datascope.c ff_fill_rgba_map(s->rgba_map, inlink->format); s 497 libavfilter/vf_datascope.c s->colors[0] = &s->white; s 498 libavfilter/vf_datascope.c s->colors[1] = &s->blue; s 499 libavfilter/vf_datascope.c s->colors[2] = &s->red; s 500 libavfilter/vf_datascope.c s->colors[3] = &s->white; s 501 libavfilter/vf_datascope.c s->rgba_map[0] = 0; s 502 libavfilter/vf_datascope.c s->rgba_map[1] = 1; s 503 libavfilter/vf_datascope.c s->rgba_map[2] = 2; s 504 libavfilter/vf_datascope.c s->rgba_map[3] = 3; s 507 libavfilter/vf_datascope.c if (s->draw.desc->comp[0].depth <= 8) { s 508 libavfilter/vf_datascope.c s->pick_color = pick_color8; s 510 libavfilter/vf_datascope.c s->pick_color = pick_color16; s 518 libavfilter/vf_datascope.c s->ww = 300; s 519 libavfilter/vf_datascope.c s->wh = 300 * 1.6; s 520 libavfilter/vf_datascope.c s->x = s->xpos * (inlink->w - 1); s 521 libavfilter/vf_datascope.c s->y = s->ypos * (inlink->h - 1); s 522 libavfilter/vf_datascope.c if (s->x + s->w >= inlink->w || s->y + s->h >= inlink->h) { s 524 libavfilter/vf_datascope.c s->x = FFMIN(s->x, inlink->w - s->w); s 525 libavfilter/vf_datascope.c s->y = FFMIN(s->y, inlink->h - s->h); s 536 libavfilter/vf_datascope.c PixscopeContext *s = ctx->priv; s 554 libavfilter/vf_datascope.c w = s->ww / s->w; s 555 libavfilter/vf_datascope.c h = s->ww / s->h; s 557 libavfilter/vf_datascope.c if (s->wx >= 0) { s 558 libavfilter/vf_datascope.c X = (in->width - s->ww) * s->wx; s 560 libavfilter/vf_datascope.c X = (in->width - s->ww) * -s->wx; s 562 libavfilter/vf_datascope.c if (s->wy >= 0) { s 563 libavfilter/vf_datascope.c Y = (in->height - s->wh) * s->wy; s 565 libavfilter/vf_datascope.c Y = (in->height - s->wh) * -s->wy; s 568 libavfilter/vf_datascope.c if (s->wx < 0) { s 569 libavfilter/vf_datascope.c if (s->x + s->w >= X && (s->x + s->w <= X + s->ww) && s 570 libavfilter/vf_datascope.c s->y + s->h >= Y && (s->y + s->h <= Y + s->wh)) { s 571 libavfilter/vf_datascope.c X = (in->width - s->ww) * (1 + s->wx); s 575 libavfilter/vf_datascope.c if (s->wy < 0) { s 576 libavfilter/vf_datascope.c if (s->x + s->w >= X && (s->x + s->w <= X + s->ww) && s 577 libavfilter/vf_datascope.c s->y + s->h >= Y && (s->y + s->h <= Y + s->wh)) { s 578 libavfilter/vf_datascope.c Y = (in->height - s->wh) * (1 + s->wy); s 582 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->dark, out->data, out->linesize, s 586 libavfilter/vf_datascope.c s->ww, s 587 libavfilter/vf_datascope.c s->wh); s 589 libavfilter/vf_datascope.c for (y = 0; y < s->h; y++) { s 590 libavfilter/vf_datascope.c for (x = 0; x < s->w; x++) { s 594 libavfilter/vf_datascope.c s->pick_color(&s->draw, &color, in, x + s->x, y + s->y, value); s 595 libavfilter/vf_datascope.c ff_fill_rectangle(&s->draw, &color, out->data, out->linesize, s 596 libavfilter/vf_datascope.c x * w + (s->ww - 4 - (s->w * w)) / 2 + X, y * h + 2 + Y, w, h); s 598 libavfilter/vf_datascope.c s->values[i][x][y] = value[i]; s 607 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->black, out->data, out->linesize, s 609 libavfilter/vf_datascope.c s->x - 2, s->y - 2, s->w + 4, 1); s 611 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->white, out->data, out->linesize, s 613 libavfilter/vf_datascope.c s->x - 1, s->y - 1, s->w + 2, 1); s 615 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->white, out->data, out->linesize, s 617 libavfilter/vf_datascope.c s->x - 1, s->y - 1, 1, s->h + 2); s 619 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->black, out->data, out->linesize, s 621 libavfilter/vf_datascope.c s->x - 2, s->y - 2, 1, s->h + 4); s 623 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->white, out->data, out->linesize, s 625 libavfilter/vf_datascope.c s->x - 1, s->y + 1 + s->h, s->w + 3, 1); s 627 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->black, out->data, out->linesize, s 629 libavfilter/vf_datascope.c s->x - 2, s->y + 2 + s->h, s->w + 4, 1); s 631 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->white, out->data, out->linesize, s 633 libavfilter/vf_datascope.c s->x + 1 + s->w, s->y - 1, 1, s->h + 2); s 635 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->black, out->data, out->linesize, s 637 libavfilter/vf_datascope.c s->x + 2 + s->w, s->y - 2, 1, s->h + 5); s 640 libavfilter/vf_datascope.c rms[i] /= s->w * s->h; s 642 libavfilter/vf_datascope.c average[i] /= s->w * s->h; s 645 libavfilter/vf_datascope.c for (y = 0; y < s->h; y++) { s 646 libavfilter/vf_datascope.c for (x = 0; x < s->w; x++) { s 648 libavfilter/vf_datascope.c std[i] += SQR(s->values[i][x][y] - average[i]); s 653 libavfilter/vf_datascope.c std[i] /= s->w * s->h; s 658 libavfilter/vf_datascope.c draw_text(&s->draw, out, &s->white, X + 28, Y + s->ww + 5, text, 0); s 659 libavfilter/vf_datascope.c for (i = 0; i < s->nb_comps; i++) { s 660 libavfilter/vf_datascope.c int c = s->rgba_map[i]; s 662 libavfilter/vf_datascope.c snprintf(text, sizeof(text), "%c %07.1f %05d %05d %07.1f\n", s->is_rgb ? rgba[i] : yuva[i], average[c], min[c], max[c], rms[c]); s 663 libavfilter/vf_datascope.c draw_text(&s->draw, out, s->colors[i], X + 28, Y + s->ww + 15 * (i + 1), text, 0); s 666 libavfilter/vf_datascope.c draw_text(&s->draw, out, &s->white, X + 28, Y + s->ww + 15 * (0 + 5), text, 0); s 667 libavfilter/vf_datascope.c for (i = 0; i < s->nb_comps; i++) { s 668 libavfilter/vf_datascope.c int c = s->rgba_map[i]; s 670 libavfilter/vf_datascope.c snprintf(text, sizeof(text), "%c %07.2f\n", s->is_rgb ? rgba[i] : yuva[i], std[c]); s 671 libavfilter/vf_datascope.c draw_text(&s->draw, out, s->colors[i], X + 28, Y + s->ww + 15 * (i + 6), text, 0); s 750 libavfilter/vf_datascope.c void (*draw_trace)(struct OscilloscopeContext *s, AVFrame *frame); s 776 libavfilter/vf_datascope.c OscilloscopeContext *s = ctx->priv; s 778 libavfilter/vf_datascope.c av_freep(&s->values); s 829 libavfilter/vf_datascope.c static void draw_trace8(OscilloscopeContext *s, AVFrame *frame) s 833 libavfilter/vf_datascope.c for (i = 1; i < s->nb_values; i++) { s 834 libavfilter/vf_datascope.c for (c = 0; c < s->nb_comps; c++) { s 835 libavfilter/vf_datascope.c if ((1 << c) & s->components) { s 836 libavfilter/vf_datascope.c int x = i * s->width / s->nb_values; s 837 libavfilter/vf_datascope.c int px = (i - 1) * s->width / s->nb_values; s 838 libavfilter/vf_datascope.c int py = s->height - s->values[i-1].p[s->rgba_map[c]] * s->height / 256; s 839 libavfilter/vf_datascope.c int y = s->height - s->values[i].p[s->rgba_map[c]] * s->height / 256; s 841 libavfilter/vf_datascope.c draw_line(&s->draw, s->ox + x, s->oy + y, s->ox + px, s->oy + py, frame, s->colors[c]); s 848 libavfilter/vf_datascope.c static void draw_trace16(OscilloscopeContext *s, AVFrame *frame) s 852 libavfilter/vf_datascope.c for (i = 1; i < s->nb_values; i++) { s 853 libavfilter/vf_datascope.c for (c = 0; c < s->nb_comps; c++) { s 854 libavfilter/vf_datascope.c if ((1 << c) & s->components) { s 855 libavfilter/vf_datascope.c int x = i * s->width / s->nb_values; s 856 libavfilter/vf_datascope.c int px = (i - 1) * s->width / s->nb_values; s 857 libavfilter/vf_datascope.c int py = s->height - s->values[i-1].p[s->rgba_map[c]] * s->height / s->max; s 858 libavfilter/vf_datascope.c int y = s->height - s->values[i].p[s->rgba_map[c]] * s->height / s->max; s 860 libavfilter/vf_datascope.c draw_line(&s->draw, s->ox + x, s->oy + y, s->ox + px, s->oy + py, frame, s->colors[c]); s 868 libavfilter/vf_datascope.c OscilloscopeContext *s = ctx->priv; s 873 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->dark, (uint8_t[]){ 0, 0, 0, s->o * 255} ); s 874 libavfilter/vf_datascope.c s->height = s->theight * inlink->h; s 875 libavfilter/vf_datascope.c s->width = s->twidth * inlink->w; s 877 libavfilter/vf_datascope.c size *= s->size; s 878 libavfilter/vf_datascope.c tilt = (s->tilt - 0.5) * M_PI; s 879 libavfilter/vf_datascope.c cx = s->xpos * (inlink->w - 1); s 880 libavfilter/vf_datascope.c cy = s->ypos * (inlink->h - 1); s 881 libavfilter/vf_datascope.c s->x1 = cx - size / 2.0 * cos(tilt); s 882 libavfilter/vf_datascope.c s->x2 = cx + size / 2.0 * cos(tilt); s 883 libavfilter/vf_datascope.c s->y1 = cy - size / 2.0 * sin(tilt); s 884 libavfilter/vf_datascope.c s->y2 = cy + size / 2.0 * sin(tilt); s 885 libavfilter/vf_datascope.c s->ox = (inlink->w - s->width) * s->tx; s 886 libavfilter/vf_datascope.c s->oy = (inlink->h - s->height) * s->ty; s 891 libavfilter/vf_datascope.c OscilloscopeContext *s = inlink->dst->priv; s 894 libavfilter/vf_datascope.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 895 libavfilter/vf_datascope.c ff_draw_init(&s->draw, inlink->format, 0); s 896 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->black, (uint8_t[]){ 0, 0, 0, 255} ); s 897 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->white, (uint8_t[]){ 255, 255, 255, 255} ); s 898 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->green, (uint8_t[]){ 0, 255, 0, 255} ); s 899 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->blue, (uint8_t[]){ 0, 0, 255, 255} ); s 900 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->red, (uint8_t[]){ 255, 0, 0, 255} ); s 901 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->cyan, (uint8_t[]){ 0, 255, 255, 255} ); s 902 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->magenta, (uint8_t[]){ 255, 0, 255, 255} ); s 903 libavfilter/vf_datascope.c ff_draw_color(&s->draw, &s->gray, (uint8_t[]){ 128, 128, 128, 255} ); s 904 libavfilter/vf_datascope.c s->nb_comps = s->draw.desc->nb_components; s 905 libavfilter/vf_datascope.c s->is_rgb = s->draw.desc->flags & AV_PIX_FMT_FLAG_RGB; s 907 libavfilter/vf_datascope.c if (s->is_rgb) { s 908 libavfilter/vf_datascope.c s->colors[0] = &s->red; s 909 libavfilter/vf_datascope.c s->colors[1] = &s->green; s 910 libavfilter/vf_datascope.c s->colors[2] = &s->blue; s 911 libavfilter/vf_datascope.c s->colors[3] = &s->white; s 912 libavfilter/vf_datascope.c ff_fill_rgba_map(s->rgba_map, inlink->format); s 914 libavfilter/vf_datascope.c s->colors[0] = &s->white; s 915 libavfilter/vf_datascope.c s->colors[1] = &s->cyan; s 916 libavfilter/vf_datascope.c s->colors[2] = &s->magenta; s 917 libavfilter/vf_datascope.c s->colors[3] = &s->white; s 918 libavfilter/vf_datascope.c s->rgba_map[0] = 0; s 919 libavfilter/vf_datascope.c s->rgba_map[1] = 1; s 920 libavfilter/vf_datascope.c s->rgba_map[2] = 2; s 921 libavfilter/vf_datascope.c s->rgba_map[3] = 3; s 924 libavfilter/vf_datascope.c if (s->draw.desc->comp[0].depth <= 8) { s 925 libavfilter/vf_datascope.c s->pick_color = pick_color8; s 926 libavfilter/vf_datascope.c s->draw_trace = draw_trace8; s 928 libavfilter/vf_datascope.c s->pick_color = pick_color16; s 929 libavfilter/vf_datascope.c s->draw_trace = draw_trace16; s 932 libavfilter/vf_datascope.c s->max = (1 << s->draw.desc->comp[0].depth); s 935 libavfilter/vf_datascope.c s->values = av_calloc(size, sizeof(*s->values)); s 936 libavfilter/vf_datascope.c if (!s->values) s 944 libavfilter/vf_datascope.c static void draw_scope(OscilloscopeContext *s, int x0, int y0, int x1, int y1, s 956 libavfilter/vf_datascope.c s->pick_color(&s->draw, &color, out, x0, y0, value); s 957 libavfilter/vf_datascope.c s->values[s->nb_values].p[0] = value[0]; s 958 libavfilter/vf_datascope.c s->values[s->nb_values].p[1] = value[1]; s 959 libavfilter/vf_datascope.c s->values[s->nb_values].p[2] = value[2]; s 960 libavfilter/vf_datascope.c s->values[s->nb_values].p[3] = value[3]; s 961 libavfilter/vf_datascope.c s->nb_values++; s 963 libavfilter/vf_datascope.c if (s->scope) { s 964 libavfilter/vf_datascope.c if (s->draw.desc->comp[0].depth == 8) { s 965 libavfilter/vf_datascope.c if (s->draw.nb_planes == 1) { s 968 libavfilter/vf_datascope.c for (i = 0; i < s->draw.pixelstep[0]; i++) s 969 libavfilter/vf_datascope.c out->data[0][out->linesize[0] * y0 + x0 * s->draw.pixelstep[0] + i] = 255 * ((s->nb_values + state) & 1); s 971 libavfilter/vf_datascope.c out->data[0][out->linesize[0] * y0 + x0] = 255 * ((s->nb_values + state) & 1); s 974 libavfilter/vf_datascope.c if (s->draw.nb_planes == 1) { s 977 libavfilter/vf_datascope.c for (i = 0; i < s->draw.pixelstep[0]; i++) s 978 libavfilter/vf_datascope.c AV_WN16(out->data[0] + out->linesize[0] * y0 + 2 * x0 * (s->draw.pixelstep[0] + i), (s->max - 1) * ((s->nb_values + state) & 1)); s 980 libavfilter/vf_datascope.c AV_WN16(out->data[0] + out->linesize[0] * y0 + 2 * x0, (s->max - 1) * ((s->nb_values + state) & 1)); s 1006 libavfilter/vf_datascope.c OscilloscopeContext *s = ctx->priv; s 1013 libavfilter/vf_datascope.c s->nb_values = 0; s 1014 libavfilter/vf_datascope.c draw_scope(s, s->x1, s->y1, s->x2, s->y2, frame, s->values, inlink->frame_count_in & 1); s 1015 libavfilter/vf_datascope.c ff_blend_rectangle(&s->draw, &s->dark, frame->data, frame->linesize, s 1017 libavfilter/vf_datascope.c s->ox, s->oy, s->width, s->height + 20 * s->statistics); s 1019 libavfilter/vf_datascope.c if (s->grid && outlink->h >= 10) { s 1020 libavfilter/vf_datascope.c ff_fill_rectangle(&s->draw, &s->gray, frame->data, frame->linesize, s 1021 libavfilter/vf_datascope.c s->ox, s->oy, s->width - 1, 1); s 1024 libavfilter/vf_datascope.c ff_fill_rectangle(&s->draw, &s->gray, frame->data, frame->linesize, s 1025 libavfilter/vf_datascope.c s->ox, s->oy + i * (s->height - 1) / 4, s->width, 1); s 1029 libavfilter/vf_datascope.c ff_fill_rectangle(&s->draw, &s->gray, frame->data, frame->linesize, s 1030 libavfilter/vf_datascope.c s->ox + i * (s->width - 1) / 10, s->oy, 1, s->height); s 1033 libavfilter/vf_datascope.c ff_fill_rectangle(&s->draw, &s->gray, frame->data, frame->linesize, s 1034 libavfilter/vf_datascope.c s->ox + s->width - 1, s->oy, 1, s->height); s 1037 libavfilter/vf_datascope.c s->draw_trace(s, frame); s 1039 libavfilter/vf_datascope.c for (i = 0; i < s->nb_values; i++) { s 1040 libavfilter/vf_datascope.c for (c = 0; c < s->nb_comps; c++) { s 1041 libavfilter/vf_datascope.c if ((1 << c) & s->components) { s 1042 libavfilter/vf_datascope.c max[c] = FFMAX(max[c], s->values[i].p[s->rgba_map[c]]); s 1043 libavfilter/vf_datascope.c min[c] = FFMIN(min[c], s->values[i].p[s->rgba_map[c]]); s 1044 libavfilter/vf_datascope.c average[c] += s->values[i].p[s->rgba_map[c]]; s 1048 libavfilter/vf_datascope.c for (c = 0; c < s->nb_comps; c++) { s 1049 libavfilter/vf_datascope.c average[c] /= s->nb_values; s 1052 libavfilter/vf_datascope.c if (s->statistics && s->height > 10 && s->width > 280 * av_popcount(s->components)) { s 1053 libavfilter/vf_datascope.c for (c = 0, i = 0; c < s->nb_comps; c++) { s 1054 libavfilter/vf_datascope.c if ((1 << c) & s->components) { s 1059 libavfilter/vf_datascope.c snprintf(text, sizeof(text), "%c avg:%.1f min:%d max:%d\n", s->is_rgb ? rgba[c] : yuva[c], average[c], min[c], max[c]); s 1060 libavfilter/vf_datascope.c draw_text(&s->draw, frame, &s->white, s->ox + 2 + 280 * i++, s->oy + s->height + 4, text, 0); s 62 libavfilter/vf_dblur.c DBlurContext *s = ctx->priv; s 63 libavfilter/vf_dblur.c const float b0 = s->b0; s 64 libavfilter/vf_dblur.c const float b1 = s->b1; s 65 libavfilter/vf_dblur.c const float q = s->q; s 66 libavfilter/vf_dblur.c const float c = s->c; s 67 libavfilter/vf_dblur.c float *dst = s->buffer; s 70 libavfilter/vf_dblur.c if (s->R3 > 0) { s 109 libavfilter/vf_dblur.c DBlurContext *s = ctx->priv; s 110 libavfilter/vf_dblur.c const int width = s->planewidth[plane]; s 111 libavfilter/vf_dblur.c const int height = s->planeheight[plane]; s 146 libavfilter/vf_dblur.c DBlurContext *s = inlink->dst->priv; s 148 libavfilter/vf_dblur.c s->depth = desc->comp[0].depth; s 149 libavfilter/vf_dblur.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 150 libavfilter/vf_dblur.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 151 libavfilter/vf_dblur.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 152 libavfilter/vf_dblur.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 154 libavfilter/vf_dblur.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 156 libavfilter/vf_dblur.c s->buffer = av_malloc_array(FFALIGN(inlink->w, 16), FFALIGN(inlink->h, 16) * sizeof(*s->buffer)); s 157 libavfilter/vf_dblur.c if (!s->buffer) s 163 libavfilter/vf_dblur.c static void set_params(DBlurContext *s, float angle, float r) s 174 libavfilter/vf_dblur.c s->R3 = mu * nu * r * r; s 177 libavfilter/vf_dblur.c a0 = (w1 + 0.5f) * (w2 + 0.5f) - fabsf(s->R3); s 181 libavfilter/vf_dblur.c s->b0 = 1.f / a0; s 182 libavfilter/vf_dblur.c s->b1 = -a2 / a0; s 183 libavfilter/vf_dblur.c s->q = -a1 / a0; s 184 libavfilter/vf_dblur.c s->c = -a3 / a0; s 190 libavfilter/vf_dblur.c DBlurContext *s = ctx->priv; s 195 libavfilter/vf_dblur.c set_params(s, s->angle, s->radius); s 208 libavfilter/vf_dblur.c for (plane = 0; plane < s->nb_planes; plane++) { s 209 libavfilter/vf_dblur.c const int height = s->planeheight[plane]; s 210 libavfilter/vf_dblur.c const int width = s->planewidth[plane]; s 211 libavfilter/vf_dblur.c float *bptr = s->buffer; s 218 libavfilter/vf_dblur.c if (!(s->planes & (1 << plane))) { s 222 libavfilter/vf_dblur.c width * ((s->depth + 7) / 8), height); s 226 libavfilter/vf_dblur.c if (s->depth == 8) { s 246 libavfilter/vf_dblur.c bptr = s->buffer; s 247 libavfilter/vf_dblur.c if (s->depth == 8) { s 273 libavfilter/vf_dblur.c DBlurContext *s = ctx->priv; s 275 libavfilter/vf_dblur.c av_freep(&s->buffer); s 61 libavfilter/vf_dctdnoiz.c void (*filter_freq_func)(struct DCTdnoizContext *s, s 383 libavfilter/vf_dctdnoiz.c static void filter_freq_sigma_##bsize(DCTdnoizContext *s, \ s 387 libavfilter/vf_dctdnoiz.c filter_freq_##bsize(src, src_linesize, dst, dst_linesize, NULL, NULL, s->th); \ s 390 libavfilter/vf_dctdnoiz.c static void filter_freq_expr_##bsize(DCTdnoizContext *s, \ s 395 libavfilter/vf_dctdnoiz.c s->expr[thread_id], s->var_values[thread_id], 0); \ s 535 libavfilter/vf_dctdnoiz.c DCTdnoizContext *s = ctx->priv; s 537 libavfilter/vf_dctdnoiz.c const int bsize = 1 << s->n; s 541 libavfilter/vf_dctdnoiz.c s->color_decorrelation = color_decorrelation_bgr; s 542 libavfilter/vf_dctdnoiz.c s->color_correlation = color_correlation_bgr; s 545 libavfilter/vf_dctdnoiz.c s->color_decorrelation = color_decorrelation_rgb; s 546 libavfilter/vf_dctdnoiz.c s->color_correlation = color_correlation_rgb; s 549 libavfilter/vf_dctdnoiz.c s->color_decorrelation = color_decorrelation_gbrp; s 550 libavfilter/vf_dctdnoiz.c s->color_correlation = color_correlation_gbrp; s 556 libavfilter/vf_dctdnoiz.c s->pr_width = inlink->w - (inlink->w - bsize) % s->step; s 557 libavfilter/vf_dctdnoiz.c s->pr_height = inlink->h - (inlink->h - bsize) % s->step; s 558 libavfilter/vf_dctdnoiz.c if (s->pr_width != inlink->w) s 560 libavfilter/vf_dctdnoiz.c inlink->w - s->pr_width); s 561 libavfilter/vf_dctdnoiz.c if (s->pr_height != inlink->h) s 563 libavfilter/vf_dctdnoiz.c inlink->h - s->pr_height); s 565 libavfilter/vf_dctdnoiz.c max_slice_h = s->pr_height / ((s->bsize - 1) * 2); s 566 libavfilter/vf_dctdnoiz.c s->nb_threads = FFMIN3(MAX_THREADS, ff_filter_get_nb_threads(ctx), max_slice_h); s 568 libavfilter/vf_dctdnoiz.c MAX_THREADS, max_slice_h, ff_filter_get_nb_threads(ctx), s->nb_threads); s 570 libavfilter/vf_dctdnoiz.c s->p_linesize = linesize = FFALIGN(s->pr_width, 32); s 572 libavfilter/vf_dctdnoiz.c s->cbuf[i][0] = av_malloc_array(linesize * s->pr_height, sizeof(*s->cbuf[i][0])); s 573 libavfilter/vf_dctdnoiz.c s->cbuf[i][1] = av_malloc_array(linesize * s->pr_height, sizeof(*s->cbuf[i][1])); s 574 libavfilter/vf_dctdnoiz.c s->cbuf[i][2] = av_malloc_array(linesize * s->pr_height, sizeof(*s->cbuf[i][2])); s 575 libavfilter/vf_dctdnoiz.c if (!s->cbuf[i][0] || !s->cbuf[i][1] || !s->cbuf[i][2]) s 581 libavfilter/vf_dctdnoiz.c if (s->expr_str) { s 582 libavfilter/vf_dctdnoiz.c for (i = 0; i < s->nb_threads; i++) { s 583 libavfilter/vf_dctdnoiz.c int ret = av_expr_parse(&s->expr[i], s->expr_str, var_names, s 593 libavfilter/vf_dctdnoiz.c slice_h = (int)ceilf(s->pr_height / (float)s->nb_threads) + (s->bsize - 1) * 2; s 594 libavfilter/vf_dctdnoiz.c for (i = 0; i < s->nb_threads; i++) { s 595 libavfilter/vf_dctdnoiz.c s->slices[i] = av_malloc_array(linesize, slice_h * sizeof(*s->slices[i])); s 596 libavfilter/vf_dctdnoiz.c if (!s->slices[i]) s 600 libavfilter/vf_dctdnoiz.c s->weights = av_malloc(s->pr_height * linesize * sizeof(*s->weights)); s 601 libavfilter/vf_dctdnoiz.c if (!s->weights) s 603 libavfilter/vf_dctdnoiz.c iweights = av_calloc(s->pr_height, linesize * sizeof(*iweights)); s 606 libavfilter/vf_dctdnoiz.c for (y = 0; y < s->pr_height - bsize + 1; y += s->step) s 607 libavfilter/vf_dctdnoiz.c for (x = 0; x < s->pr_width - bsize + 1; x += s->step) s 611 libavfilter/vf_dctdnoiz.c for (y = 0; y < s->pr_height; y++) s 612 libavfilter/vf_dctdnoiz.c for (x = 0; x < s->pr_width; x++) s 613 libavfilter/vf_dctdnoiz.c s->weights[y*linesize + x] = 1. / iweights[y*linesize + x]; s 621 libavfilter/vf_dctdnoiz.c DCTdnoizContext *s = ctx->priv; s 623 libavfilter/vf_dctdnoiz.c s->bsize = 1 << s->n; s 624 libavfilter/vf_dctdnoiz.c if (s->overlap == -1) s 625 libavfilter/vf_dctdnoiz.c s->overlap = s->bsize - 1; s 627 libavfilter/vf_dctdnoiz.c if (s->overlap > s->bsize - 1) { s 628 libavfilter/vf_dctdnoiz.c av_log(s, AV_LOG_ERROR, "Overlap value can not except %d " s 630 libavfilter/vf_dctdnoiz.c s->bsize - 1, s->bsize, s->bsize); s 634 libavfilter/vf_dctdnoiz.c if (s->expr_str) { s 635 libavfilter/vf_dctdnoiz.c switch (s->n) { s 636 libavfilter/vf_dctdnoiz.c case 3: s->filter_freq_func = filter_freq_expr_8; break; s 637 libavfilter/vf_dctdnoiz.c case 4: s->filter_freq_func = filter_freq_expr_16; break; s 641 libavfilter/vf_dctdnoiz.c switch (s->n) { s 642 libavfilter/vf_dctdnoiz.c case 3: s->filter_freq_func = filter_freq_sigma_8; break; s 643 libavfilter/vf_dctdnoiz.c case 4: s->filter_freq_func = filter_freq_sigma_16; break; s 648 libavfilter/vf_dctdnoiz.c s->th = s->sigma * 3.; s 649 libavfilter/vf_dctdnoiz.c s->step = s->bsize - s->overlap; s 674 libavfilter/vf_dctdnoiz.c DCTdnoizContext *s = ctx->priv; s 676 libavfilter/vf_dctdnoiz.c const int w = s->pr_width; s 677 libavfilter/vf_dctdnoiz.c const int h = s->pr_height; s 680 libavfilter/vf_dctdnoiz.c const int slice_start_ctx = FFMAX(slice_start - s->bsize + 1, 0); s 681 libavfilter/vf_dctdnoiz.c const int slice_end_ctx = FFMIN(slice_end, h - s->bsize + 1); s 683 libavfilter/vf_dctdnoiz.c const int src_linesize = s->p_linesize; s 684 libavfilter/vf_dctdnoiz.c const int dst_linesize = s->p_linesize; s 685 libavfilter/vf_dctdnoiz.c const int slice_linesize = s->p_linesize; s 688 libavfilter/vf_dctdnoiz.c const float *weights = s->weights + slice_start * dst_linesize; s 689 libavfilter/vf_dctdnoiz.c float *slice = s->slices[jobnr]; s 692 libavfilter/vf_dctdnoiz.c memset(slice, 0, (slice_h + s->bsize - 1) * dst_linesize * sizeof(*slice)); s 695 libavfilter/vf_dctdnoiz.c for (y = 0; y < slice_h; y += s->step) { s 696 libavfilter/vf_dctdnoiz.c for (x = 0; x < w - s->bsize + 1; x += s->step) s 697 libavfilter/vf_dctdnoiz.c s->filter_freq_func(s, src + x, src_linesize, s 700 libavfilter/vf_dctdnoiz.c src += s->step * src_linesize; s 701 libavfilter/vf_dctdnoiz.c slice += s->step * slice_linesize; s 705 libavfilter/vf_dctdnoiz.c slice = s->slices[jobnr] + (slice_start - slice_start_ctx) * slice_linesize; s 721 libavfilter/vf_dctdnoiz.c DCTdnoizContext *s = ctx->priv; s 739 libavfilter/vf_dctdnoiz.c s->color_decorrelation(s->cbuf[0], s->p_linesize, s 741 libavfilter/vf_dctdnoiz.c s->pr_width, s->pr_height); s 744 libavfilter/vf_dctdnoiz.c .src = s->cbuf[0][plane], s 745 libavfilter/vf_dctdnoiz.c .dst = s->cbuf[1][plane], s 747 libavfilter/vf_dctdnoiz.c ctx->internal->execute(ctx, filter_slice, &td, NULL, s->nb_threads); s 749 libavfilter/vf_dctdnoiz.c s->color_correlation(out->data, out->linesize[0], s 750 libavfilter/vf_dctdnoiz.c s->cbuf[1], s->p_linesize, s 751 libavfilter/vf_dctdnoiz.c s->pr_width, s->pr_height); s 759 libavfilter/vf_dctdnoiz.c const int hpad = (inlink->w - s->pr_width) * 3; s 760 libavfilter/vf_dctdnoiz.c const int vpad = (inlink->h - s->pr_height); s 763 libavfilter/vf_dctdnoiz.c uint8_t *dstp = dst + s->pr_width * 3; s 764 libavfilter/vf_dctdnoiz.c const uint8_t *srcp = src + s->pr_width * 3; s 766 libavfilter/vf_dctdnoiz.c for (y = 0; y < s->pr_height; y++) { s 773 libavfilter/vf_dctdnoiz.c uint8_t *dstp = dst + s->pr_height * dst_linesize; s 774 libavfilter/vf_dctdnoiz.c const uint8_t *srcp = src + s->pr_height * src_linesize; s 792 libavfilter/vf_dctdnoiz.c DCTdnoizContext *s = ctx->priv; s 794 libavfilter/vf_dctdnoiz.c av_freep(&s->weights); s 796 libavfilter/vf_dctdnoiz.c av_freep(&s->cbuf[i][0]); s 797 libavfilter/vf_dctdnoiz.c av_freep(&s->cbuf[i][1]); s 798 libavfilter/vf_dctdnoiz.c av_freep(&s->cbuf[i][2]); s 800 libavfilter/vf_dctdnoiz.c for (i = 0; i < s->nb_threads; i++) { s 801 libavfilter/vf_dctdnoiz.c av_freep(&s->slices[i]); s 802 libavfilter/vf_dctdnoiz.c av_expr_free(s->expr[i]); s 74 libavfilter/vf_deband.c DebandContext *s = ctx->priv; s 111 libavfilter/vf_deband.c AVFilterFormats *fmts_list = ff_make_format_list(s->coupling ? cpix_fmts : pix_fmts); s 136 libavfilter/vf_deband.c DebandContext *s = ctx->priv; s 142 libavfilter/vf_deband.c for (p = 0; p < s->nb_components; p++) { s 147 libavfilter/vf_deband.c const int thr = s->thr[p]; s 148 libavfilter/vf_deband.c const int start = (s->planeheight[p] * jobnr ) / nb_jobs; s 149 libavfilter/vf_deband.c const int end = (s->planeheight[p] * (jobnr+1)) / nb_jobs; s 150 libavfilter/vf_deband.c const int w = s->planewidth[p] - 1; s 151 libavfilter/vf_deband.c const int h = s->planeheight[p] - 1; s 154 libavfilter/vf_deband.c const int pos = y * s->planewidth[0]; s 156 libavfilter/vf_deband.c for (x = 0; x < s->planewidth[p]; x++) { s 157 libavfilter/vf_deband.c const int x_pos = s->x_pos[pos + x]; s 158 libavfilter/vf_deband.c const int y_pos = s->y_pos[pos + x]; s 165 libavfilter/vf_deband.c if (s->blur) { s 185 libavfilter/vf_deband.c DebandContext *s = ctx->priv; s 189 libavfilter/vf_deband.c const int start = (s->planeheight[0] * jobnr ) / nb_jobs; s 190 libavfilter/vf_deband.c const int end = (s->planeheight[0] * (jobnr+1)) / nb_jobs; s 194 libavfilter/vf_deband.c const int pos = y * s->planewidth[0]; s 196 libavfilter/vf_deband.c for (x = 0; x < s->planewidth[0]; x++) { s 197 libavfilter/vf_deband.c const int x_pos = s->x_pos[pos + x]; s 198 libavfilter/vf_deband.c const int y_pos = s->y_pos[pos + x]; s 201 libavfilter/vf_deband.c for (p = 0; p < s->nb_components; p++) { s 204 libavfilter/vf_deband.c const int thr = s->thr[p]; s 205 libavfilter/vf_deband.c const int w = s->planewidth[p] - 1; s 206 libavfilter/vf_deband.c const int h = s->planeheight[p] - 1; s 216 libavfilter/vf_deband.c if (s->blur) { s 226 libavfilter/vf_deband.c for (p = 0; p < s->nb_components; p++) s 229 libavfilter/vf_deband.c if (p == s->nb_components) { s 230 libavfilter/vf_deband.c for (p = 0; p < s->nb_components; p++) { s 236 libavfilter/vf_deband.c for (p = 0; p < s->nb_components; p++) { s 250 libavfilter/vf_deband.c DebandContext *s = ctx->priv; s 254 libavfilter/vf_deband.c const int start = (s->planeheight[0] * jobnr ) / nb_jobs; s 255 libavfilter/vf_deband.c const int end = (s->planeheight[0] * (jobnr+1)) / nb_jobs; s 259 libavfilter/vf_deband.c const int pos = y * s->planewidth[0]; s 261 libavfilter/vf_deband.c for (x = 0; x < s->planewidth[0]; x++) { s 262 libavfilter/vf_deband.c const int x_pos = s->x_pos[pos + x]; s 263 libavfilter/vf_deband.c const int y_pos = s->y_pos[pos + x]; s 266 libavfilter/vf_deband.c for (p = 0; p < s->nb_components; p++) { s 269 libavfilter/vf_deband.c const int thr = s->thr[p]; s 270 libavfilter/vf_deband.c const int w = s->planewidth[p] - 1; s 271 libavfilter/vf_deband.c const int h = s->planeheight[p] - 1; s 281 libavfilter/vf_deband.c if (s->blur) { s 291 libavfilter/vf_deband.c for (z = 0; z < s->nb_components; z++) s 294 libavfilter/vf_deband.c if (z == s->nb_components) { s 295 libavfilter/vf_deband.c for (p = 0; p < s->nb_components; p++) { s 302 libavfilter/vf_deband.c for (p = 0; p < s->nb_components; p++) { s 317 libavfilter/vf_deband.c DebandContext *s = ctx->priv; s 323 libavfilter/vf_deband.c for (p = 0; p < s->nb_components; p++) { s 328 libavfilter/vf_deband.c const int thr = s->thr[p]; s 329 libavfilter/vf_deband.c const int start = (s->planeheight[p] * jobnr ) / nb_jobs; s 330 libavfilter/vf_deband.c const int end = (s->planeheight[p] * (jobnr+1)) / nb_jobs; s 331 libavfilter/vf_deband.c const int w = s->planewidth[p] - 1; s 332 libavfilter/vf_deband.c const int h = s->planeheight[p] - 1; s 335 libavfilter/vf_deband.c const int pos = y * s->planewidth[0]; s 337 libavfilter/vf_deband.c for (x = 0; x < s->planewidth[p]; x++) { s 338 libavfilter/vf_deband.c const int x_pos = s->x_pos[pos + x]; s 339 libavfilter/vf_deband.c const int y_pos = s->y_pos[pos + x]; s 346 libavfilter/vf_deband.c if (s->blur) { s 368 libavfilter/vf_deband.c DebandContext *s = ctx->priv; s 369 libavfilter/vf_deband.c const float direction = s->direction; s 370 libavfilter/vf_deband.c const int range = s->range; s 373 libavfilter/vf_deband.c s->nb_components = desc->nb_components; s 375 libavfilter/vf_deband.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 376 libavfilter/vf_deband.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 377 libavfilter/vf_deband.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 378 libavfilter/vf_deband.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 379 libavfilter/vf_deband.c s->shift[0] = desc->log2_chroma_w; s 380 libavfilter/vf_deband.c s->shift[1] = desc->log2_chroma_h; s 382 libavfilter/vf_deband.c if (s->coupling) s 383 libavfilter/vf_deband.c s->deband = desc->comp[0].depth > 8 ? deband_16_coupling_c : deband_8_coupling_c; s 385 libavfilter/vf_deband.c s->deband = desc->comp[0].depth > 8 ? deband_16_c : deband_8_c; s 387 libavfilter/vf_deband.c s->thr[0] = ((1 << desc->comp[0].depth) - 1) * s->threshold[0]; s 388 libavfilter/vf_deband.c s->thr[1] = ((1 << desc->comp[1].depth) - 1) * s->threshold[1]; s 389 libavfilter/vf_deband.c s->thr[2] = ((1 << desc->comp[2].depth) - 1) * s->threshold[2]; s 390 libavfilter/vf_deband.c s->thr[3] = ((1 << desc->comp[3].depth) - 1) * s->threshold[3]; s 392 libavfilter/vf_deband.c s->x_pos = av_malloc(s->planewidth[0] * s->planeheight[0] * sizeof(*s->x_pos)); s 393 libavfilter/vf_deband.c s->y_pos = av_malloc(s->planewidth[0] * s->planeheight[0] * sizeof(*s->y_pos)); s 394 libavfilter/vf_deband.c if (!s->x_pos || !s->y_pos) s 397 libavfilter/vf_deband.c for (y = 0; y < s->planeheight[0]; y++) { s 398 libavfilter/vf_deband.c for (x = 0; x < s->planewidth[0]; x++) { s 403 libavfilter/vf_deband.c s->x_pos[y * s->planewidth[0] + x] = cosf(dir) * dist; s 404 libavfilter/vf_deband.c s->y_pos[y * s->planewidth[0] + x] = sinf(dir) * dist; s 415 libavfilter/vf_deband.c DebandContext *s = ctx->priv; s 427 libavfilter/vf_deband.c ctx->internal->execute(ctx, s->deband, &td, NULL, FFMIN3(s->planeheight[1], s 428 libavfilter/vf_deband.c s->planeheight[2], s 437 libavfilter/vf_deband.c DebandContext *s = ctx->priv; s 439 libavfilter/vf_deband.c av_freep(&s->x_pos); s 440 libavfilter/vf_deband.c av_freep(&s->y_pos); s 270 libavfilter/vf_deblock.c DeblockContext *s = ctx->priv; s 273 libavfilter/vf_deblock.c s->desc = av_pix_fmt_desc_get(outlink->format); s 274 libavfilter/vf_deblock.c if (!s->desc) s 276 libavfilter/vf_deblock.c s->nb_planes = av_pix_fmt_count_planes(outlink->format); s 277 libavfilter/vf_deblock.c s->depth = s->desc->comp[0].depth; s 278 libavfilter/vf_deblock.c s->bpc = (s->depth + 7) / 8; s 279 libavfilter/vf_deblock.c s->max = (1 << s->depth) - 1; s 280 libavfilter/vf_deblock.c s->ath = s->alpha * s->max; s 281 libavfilter/vf_deblock.c s->bth = s->beta * s->max; s 282 libavfilter/vf_deblock.c s->gth = s->gamma * s->max; s 283 libavfilter/vf_deblock.c s->dth = s->delta * s->max; s 285 libavfilter/vf_deblock.c if (s->depth <= 8 && s->filter == WEAK) { s 286 libavfilter/vf_deblock.c s->deblockh = deblockh8_weak; s 287 libavfilter/vf_deblock.c s->deblockv = deblockv8_weak; s 288 libavfilter/vf_deblock.c } else if (s->depth >= 8 && s->filter == WEAK) { s 289 libavfilter/vf_deblock.c s->deblockh = deblockh16_weak; s 290 libavfilter/vf_deblock.c s->deblockv = deblockv16_weak; s 292 libavfilter/vf_deblock.c if (s->depth <= 8 && s->filter == STRONG) { s 293 libavfilter/vf_deblock.c s->deblockh = deblockh8_strong; s 294 libavfilter/vf_deblock.c s->deblockv = deblockv8_strong; s 295 libavfilter/vf_deblock.c } else if (s->depth >= 8 && s->filter == STRONG) { s 296 libavfilter/vf_deblock.c s->deblockh = deblockh16_strong; s 297 libavfilter/vf_deblock.c s->deblockv = deblockv16_strong; s 300 libavfilter/vf_deblock.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, s->desc->log2_chroma_w); s 301 libavfilter/vf_deblock.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 303 libavfilter/vf_deblock.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 304 libavfilter/vf_deblock.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 313 libavfilter/vf_deblock.c DeblockContext *s = ctx->priv; s 314 libavfilter/vf_deblock.c const int block = s->block; s 329 libavfilter/vf_deblock.c for (plane = 0; plane < s->nb_planes; plane++) { s 330 libavfilter/vf_deblock.c const int width = s->planewidth[plane]; s 331 libavfilter/vf_deblock.c const int height = s->planeheight[plane]; s 338 libavfilter/vf_deblock.c width * s->bpc, height); s 340 libavfilter/vf_deblock.c if (!((1 << plane) & s->planes)) s 344 libavfilter/vf_deblock.c s->deblockv(dst + x * s->bpc, out->linesize[plane], s 345 libavfilter/vf_deblock.c FFMIN(block, height), s->ath, s->bth, s->gth, s->dth, s->max); s 350 libavfilter/vf_deblock.c s->deblockh(dst, out->linesize[plane], s 352 libavfilter/vf_deblock.c s->ath, s->bth, s->gth, s->dth, s->max); s 355 libavfilter/vf_deblock.c s->deblockh(dst + x * s->bpc, out->linesize[plane], s 357 libavfilter/vf_deblock.c s->ath, s->bth, s->gth, s->dth, s->max); s 358 libavfilter/vf_deblock.c s->deblockv(dst + x * s->bpc, out->linesize[plane], s 360 libavfilter/vf_deblock.c s->ath, s->bth, s->gth, s->dth, s->max); s 88 libavfilter/vf_dedot.c DedotContext *s = ctx->priv; \ s 90 libavfilter/vf_dedot.c int src_linesize = s->frames[2]->linesize[0] / div; \ s 92 libavfilter/vf_dedot.c int p0_linesize = s->frames[0]->linesize[0] / div; \ s 93 libavfilter/vf_dedot.c int p1_linesize = s->frames[1]->linesize[0] / div; \ s 94 libavfilter/vf_dedot.c int p3_linesize = s->frames[3]->linesize[0] / div; \ s 95 libavfilter/vf_dedot.c int p4_linesize = s->frames[4]->linesize[0] / div; \ s 96 libavfilter/vf_dedot.c const int h = s->planeheight[0]; \ s 99 libavfilter/vf_dedot.c type *p0 = (type *)s->frames[0]->data[0]; \ s 100 libavfilter/vf_dedot.c type *p1 = (type *)s->frames[1]->data[0]; \ s 101 libavfilter/vf_dedot.c type *p3 = (type *)s->frames[3]->data[0]; \ s 102 libavfilter/vf_dedot.c type *p4 = (type *)s->frames[4]->data[0]; \ s 103 libavfilter/vf_dedot.c type *src = (type *)s->frames[2]->data[0]; \ s 105 libavfilter/vf_dedot.c const int luma2d = s->luma2d; \ s 106 libavfilter/vf_dedot.c const int lumaT = s->lumaT; \ s 121 libavfilter/vf_dedot.c for (int x = 1; x < s->planewidth[0] - 1; x++) { \ s 167 libavfilter/vf_dedot.c DedotContext *s = ctx->priv; \ s 171 libavfilter/vf_dedot.c const int h = s->planeheight[plane]; \ s 174 libavfilter/vf_dedot.c int src_linesize = s->frames[2]->linesize[plane] / div; \ s 176 libavfilter/vf_dedot.c int p0_linesize = s->frames[0]->linesize[plane] / div; \ s 177 libavfilter/vf_dedot.c int p1_linesize = s->frames[1]->linesize[plane] / div; \ s 178 libavfilter/vf_dedot.c int p3_linesize = s->frames[3]->linesize[plane] / div; \ s 179 libavfilter/vf_dedot.c int p4_linesize = s->frames[4]->linesize[plane] / div; \ s 180 libavfilter/vf_dedot.c type *p0 = (type *)s->frames[0]->data[plane]; \ s 181 libavfilter/vf_dedot.c type *p1 = (type *)s->frames[1]->data[plane]; \ s 182 libavfilter/vf_dedot.c type *p3 = (type *)s->frames[3]->data[plane]; \ s 183 libavfilter/vf_dedot.c type *p4 = (type *)s->frames[4]->data[plane]; \ s 184 libavfilter/vf_dedot.c type *src = (type *)s->frames[2]->data[plane]; \ s 186 libavfilter/vf_dedot.c const int chromaT1 = s->chromaT1; \ s 187 libavfilter/vf_dedot.c const int chromaT2 = s->chromaT2; \ s 196 libavfilter/vf_dedot.c for (int x = 0; x < s->planewidth[plane]; x++) { \ s 230 libavfilter/vf_dedot.c DedotContext *s = ctx->priv; s 233 libavfilter/vf_dedot.c s->desc = av_pix_fmt_desc_get(outlink->format); s 234 libavfilter/vf_dedot.c if (!s->desc) s 236 libavfilter/vf_dedot.c s->nb_planes = av_pix_fmt_count_planes(outlink->format); s 237 libavfilter/vf_dedot.c s->depth = s->desc->comp[0].depth; s 238 libavfilter/vf_dedot.c s->max = (1 << s->depth) - 1; s 239 libavfilter/vf_dedot.c s->luma2d = s->lt * s->max; s 240 libavfilter/vf_dedot.c s->lumaT = s->tl * s->max; s 241 libavfilter/vf_dedot.c s->chromaT1 = s->tc * s->max; s 242 libavfilter/vf_dedot.c s->chromaT2 = s->ct * s->max; s 244 libavfilter/vf_dedot.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, s->desc->log2_chroma_w); s 245 libavfilter/vf_dedot.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 247 libavfilter/vf_dedot.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 248 libavfilter/vf_dedot.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 250 libavfilter/vf_dedot.c if (s->depth <= 8) { s 251 libavfilter/vf_dedot.c s->dedotcrawl = dedotcrawl8; s 252 libavfilter/vf_dedot.c s->derainbow = derainbow8; s 254 libavfilter/vf_dedot.c s->dedotcrawl = dedotcrawl16; s 255 libavfilter/vf_dedot.c s->derainbow = derainbow16; s 265 libavfilter/vf_dedot.c DedotContext *s = ctx->priv; s 273 libavfilter/vf_dedot.c if (s->eof == 0) { s 278 libavfilter/vf_dedot.c if (frame || s->eof_frames > 0) { s 283 libavfilter/vf_dedot.c if (!s->frames[i]) s 284 libavfilter/vf_dedot.c s->frames[i] = av_frame_clone(frame); s 287 libavfilter/vf_dedot.c } else if (s->frames[3]) { s 288 libavfilter/vf_dedot.c s->eof_frames--; s 289 libavfilter/vf_dedot.c s->frames[4] = av_frame_clone(s->frames[3]); s 292 libavfilter/vf_dedot.c if (s->frames[0] && s 293 libavfilter/vf_dedot.c s->frames[1] && s 294 libavfilter/vf_dedot.c s->frames[2] && s 295 libavfilter/vf_dedot.c s->frames[3] && s 296 libavfilter/vf_dedot.c s->frames[4]) { s 297 libavfilter/vf_dedot.c out = av_frame_clone(s->frames[2]); s 301 libavfilter/vf_dedot.c if (s->m & 1) s 302 libavfilter/vf_dedot.c ctx->internal->execute(ctx, s->dedotcrawl, out, NULL, s 303 libavfilter/vf_dedot.c FFMIN(s->planeheight[0], s 305 libavfilter/vf_dedot.c if (s->m & 2) { s 308 libavfilter/vf_dedot.c ctx->internal->execute(ctx, s->derainbow, &td, NULL, s 309 libavfilter/vf_dedot.c FFMIN(s->planeheight[1], s 312 libavfilter/vf_dedot.c ctx->internal->execute(ctx, s->derainbow, &td, NULL, s 313 libavfilter/vf_dedot.c FFMIN(s->planeheight[2], s 323 libavfilter/vf_dedot.c av_frame_free(&s->frames[0]); s 324 libavfilter/vf_dedot.c s->frames[0] = s->frames[1]; s 325 libavfilter/vf_dedot.c s->frames[1] = s->frames[2]; s 326 libavfilter/vf_dedot.c s->frames[2] = s->frames[3]; s 327 libavfilter/vf_dedot.c s->frames[3] = s->frames[4]; s 328 libavfilter/vf_dedot.c s->frames[4] = NULL; s 336 libavfilter/vf_dedot.c if (s->eof) { s 337 libavfilter/vf_dedot.c if (s->eof_frames <= 0) { s 338 libavfilter/vf_dedot.c ff_outlink_set_status(outlink, AVERROR_EOF, s->frames[2]->pts); s 345 libavfilter/vf_dedot.c if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 347 libavfilter/vf_dedot.c s->eof = 1; s 348 libavfilter/vf_dedot.c s->eof_frames = !!s->frames[0] + !!s->frames[1]; s 349 libavfilter/vf_dedot.c if (s->eof_frames <= 0) { s 365 libavfilter/vf_dedot.c DedotContext *s = ctx->priv; s 368 libavfilter/vf_dedot.c av_frame_free(&s->frames[i]); s 148 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 151 libavfilter/vf_deflicker.c const int max = (1 << s->depth) - 1; s 168 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 173 libavfilter/vf_deflicker.c memset(s->histogram, 0, (1 << s->depth) * sizeof(*s->histogram)); s 175 libavfilter/vf_deflicker.c for (y = 0; y < s->planeheight[0]; y++) { s 176 libavfilter/vf_deflicker.c for (x = 0; x < s->planewidth[0]; x++) { s 177 libavfilter/vf_deflicker.c s->histogram[src[x]]++; s 182 libavfilter/vf_deflicker.c for (y = 0; y < 1 << s->depth; y++) { s 183 libavfilter/vf_deflicker.c sum += s->histogram[y] * y; s 186 libavfilter/vf_deflicker.c return 1.0f * sum / (s->planeheight[0] * s->planewidth[0]); s 191 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 196 libavfilter/vf_deflicker.c memset(s->histogram, 0, (1 << s->depth) * sizeof(*s->histogram)); s 198 libavfilter/vf_deflicker.c for (y = 0; y < s->planeheight[0]; y++) { s 199 libavfilter/vf_deflicker.c for (x = 0; x < s->planewidth[0]; x++) { s 200 libavfilter/vf_deflicker.c s->histogram[src[x]]++; s 205 libavfilter/vf_deflicker.c for (y = 0; y < 1 << s->depth; y++) { s 206 libavfilter/vf_deflicker.c sum += s->histogram[y] * y; s 209 libavfilter/vf_deflicker.c return 1.0f * sum / (s->planeheight[0] * s->planewidth[0]); s 214 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 219 libavfilter/vf_deflicker.c for (y = 0; y < s->size; y++) { s 220 libavfilter/vf_deflicker.c *f += s->luminance[y]; s 223 libavfilter/vf_deflicker.c *f /= s->size; s 224 libavfilter/vf_deflicker.c *f /= s->luminance[0]; s 229 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 234 libavfilter/vf_deflicker.c for (y = 0; y < s->size; y++) { s 235 libavfilter/vf_deflicker.c *f *= s->luminance[y]; s 238 libavfilter/vf_deflicker.c *f = pow(*f, 1.0f / s->size); s 239 libavfilter/vf_deflicker.c *f /= s->luminance[0]; s 244 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 249 libavfilter/vf_deflicker.c for (y = 0; y < s->size; y++) { s 250 libavfilter/vf_deflicker.c *f += 1.0f / s->luminance[y]; s 253 libavfilter/vf_deflicker.c *f = s->size / *f; s 254 libavfilter/vf_deflicker.c *f /= s->luminance[0]; s 259 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 264 libavfilter/vf_deflicker.c for (y = 0; y < s->size; y++) { s 265 libavfilter/vf_deflicker.c *f += s->luminance[y] * s->luminance[y]; s 268 libavfilter/vf_deflicker.c *f /= s->size; s 270 libavfilter/vf_deflicker.c *f /= s->luminance[0]; s 275 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 280 libavfilter/vf_deflicker.c for (y = 0; y < s->size; y++) { s 281 libavfilter/vf_deflicker.c *f += s->luminance[y] * s->luminance[y] * s->luminance[y]; s 284 libavfilter/vf_deflicker.c *f /= s->size; s 286 libavfilter/vf_deflicker.c *f /= s->luminance[0]; s 291 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 296 libavfilter/vf_deflicker.c for (y = 0; y < s->size; y++) { s 297 libavfilter/vf_deflicker.c *f += powf(s->luminance[y], s->size); s 300 libavfilter/vf_deflicker.c *f /= s->size; s 301 libavfilter/vf_deflicker.c *f = powf(*f, 1.0f / s->size); s 302 libavfilter/vf_deflicker.c *f /= s->luminance[0]; s 313 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 315 libavfilter/vf_deflicker.c memcpy(s->sorted, s->luminance, sizeof(s->sorted)); s 316 libavfilter/vf_deflicker.c AV_QSORT(s->sorted, s->size, float, comparef); s 318 libavfilter/vf_deflicker.c *f = s->sorted[s->size >> 1] / s->luminance[0]; s 325 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 327 libavfilter/vf_deflicker.c s->nb_planes = desc->nb_components; s 329 libavfilter/vf_deflicker.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 330 libavfilter/vf_deflicker.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 331 libavfilter/vf_deflicker.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 332 libavfilter/vf_deflicker.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 334 libavfilter/vf_deflicker.c s->depth = desc->comp[0].depth; s 335 libavfilter/vf_deflicker.c if (s->depth == 8) { s 336 libavfilter/vf_deflicker.c s->deflicker = deflicker8; s 337 libavfilter/vf_deflicker.c s->calc_avgy = calc_avgy8; s 339 libavfilter/vf_deflicker.c s->deflicker = deflicker16; s 340 libavfilter/vf_deflicker.c s->calc_avgy = calc_avgy16; s 343 libavfilter/vf_deflicker.c s->histogram = av_calloc(1 << s->depth, sizeof(*s->histogram)); s 344 libavfilter/vf_deflicker.c if (!s->histogram) s 347 libavfilter/vf_deflicker.c switch (s->mode) { s 348 libavfilter/vf_deflicker.c case MEDIAN: s->get_factor = get_median_factor; break; s 349 libavfilter/vf_deflicker.c case ARITHMETIC_MEAN: s->get_factor = get_am_factor; break; s 350 libavfilter/vf_deflicker.c case GEOMETRIC_MEAN: s->get_factor = get_gm_factor; break; s 351 libavfilter/vf_deflicker.c case HARMONIC_MEAN: s->get_factor = get_hm_factor; break; s 352 libavfilter/vf_deflicker.c case QUADRATIC_MEAN: s->get_factor = get_qm_factor; break; s 353 libavfilter/vf_deflicker.c case CUBIC_MEAN: s->get_factor = get_cm_factor; break; s 354 libavfilter/vf_deflicker.c case POWER_MEAN: s->get_factor = get_pm_factor; break; s 364 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 370 libavfilter/vf_deflicker.c if (s->q.available < s->size && !s->eof) { s 371 libavfilter/vf_deflicker.c s->luminance[s->available] = s->calc_avgy(ctx, buf); s 372 libavfilter/vf_deflicker.c ff_bufqueue_add(ctx, &s->q, buf); s 373 libavfilter/vf_deflicker.c s->available++; s 377 libavfilter/vf_deflicker.c in = ff_bufqueue_peek(&s->q, 0); s 385 libavfilter/vf_deflicker.c s->get_factor(ctx, &f); s 386 libavfilter/vf_deflicker.c if (!s->bypass) s 387 libavfilter/vf_deflicker.c s->deflicker(ctx, in->data[0], in->linesize[0], out->data[0], out->linesize[0], s 389 libavfilter/vf_deflicker.c for (y = 1 - s->bypass; y < s->nb_planes; y++) { s 392 libavfilter/vf_deflicker.c s->planewidth[y] * (1 + (s->depth > 8)), s->planeheight[y]); s 400 libavfilter/vf_deflicker.c snprintf(value, sizeof(value), "%f", s->luminance[0]); s 403 libavfilter/vf_deflicker.c snprintf(value, sizeof(value), "%f", s->luminance[0] * f); s 410 libavfilter/vf_deflicker.c in = ff_bufqueue_get(&s->q); s 412 libavfilter/vf_deflicker.c memmove(&s->luminance[0], &s->luminance[1], sizeof(*s->luminance) * (s->size - 1)); s 413 libavfilter/vf_deflicker.c s->luminance[s->available - 1] = s->calc_avgy(ctx, buf); s 414 libavfilter/vf_deflicker.c ff_bufqueue_add(ctx, &s->q, buf); s 422 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 426 libavfilter/vf_deflicker.c if (ret == AVERROR_EOF && s->available > 0) { s 427 libavfilter/vf_deflicker.c AVFrame *buf = ff_bufqueue_peek(&s->q, s->available - 1); s 434 libavfilter/vf_deflicker.c s->eof = 1; s 436 libavfilter/vf_deflicker.c s->available--; s 444 libavfilter/vf_deflicker.c DeflickerContext *s = ctx->priv; s 446 libavfilter/vf_deflicker.c ff_bufqueue_discard_all(&s->q); s 447 libavfilter/vf_deflicker.c av_freep(&s->histogram); s 88 libavfilter/vf_deinterlace_qsv.c QSVDeintContext *s = ctx->priv; s 91 libavfilter/vf_deinterlace_qsv.c if (s->session) { s 92 libavfilter/vf_deinterlace_qsv.c MFXClose(s->session); s 93 libavfilter/vf_deinterlace_qsv.c s->session = NULL; s 95 libavfilter/vf_deinterlace_qsv.c av_buffer_unref(&s->hw_frames_ctx); s 97 libavfilter/vf_deinterlace_qsv.c cur = s->work_frames; s 99 libavfilter/vf_deinterlace_qsv.c s->work_frames = cur->next; s 102 libavfilter/vf_deinterlace_qsv.c cur = s->work_frames; s 105 libavfilter/vf_deinterlace_qsv.c av_freep(&s->mem_ids); s 106 libavfilter/vf_deinterlace_qsv.c s->nb_mem_ids = 0; s 108 libavfilter/vf_deinterlace_qsv.c av_freep(&s->surface_ptrs); s 109 libavfilter/vf_deinterlace_qsv.c s->nb_surface_ptrs = 0; s 130 libavfilter/vf_deinterlace_qsv.c QSVDeintContext *s = ctx->priv; s 137 libavfilter/vf_deinterlace_qsv.c resp->mids = s->mem_ids; s 138 libavfilter/vf_deinterlace_qsv.c resp->NumFrameActual = s->nb_mem_ids; s 173 libavfilter/vf_deinterlace_qsv.c QSVDeintContext *s = ctx->priv; s 174 libavfilter/vf_deinterlace_qsv.c AVHWFramesContext *hw_frames_ctx = (AVHWFramesContext*)s->hw_frames_ctx->data; s 212 libavfilter/vf_deinterlace_qsv.c err = MFXInit(impl, &ver, &s->session); s 219 libavfilter/vf_deinterlace_qsv.c err = MFXVideoCORE_SetHandle(s->session, handle_type, handle); s 225 libavfilter/vf_deinterlace_qsv.c err = MFXJoinSession(device_hwctx->session, s->session); s 232 libavfilter/vf_deinterlace_qsv.c s->deint_conf.Header.BufferId = MFX_EXTBUFF_VPP_DEINTERLACING; s 233 libavfilter/vf_deinterlace_qsv.c s->deint_conf.Header.BufferSz = sizeof(s->deint_conf); s 234 libavfilter/vf_deinterlace_qsv.c s->deint_conf.Mode = s->mode; s 236 libavfilter/vf_deinterlace_qsv.c s->ext_buffers[s->num_ext_buffers++] = (mfxExtBuffer *)&s->deint_conf; s 239 libavfilter/vf_deinterlace_qsv.c s->surface_ptrs = av_mallocz_array(hw_frames_hwctx->nb_surfaces, s 240 libavfilter/vf_deinterlace_qsv.c sizeof(*s->surface_ptrs)); s 241 libavfilter/vf_deinterlace_qsv.c if (!s->surface_ptrs) s 244 libavfilter/vf_deinterlace_qsv.c s->surface_ptrs[i] = hw_frames_hwctx->surfaces + i; s 245 libavfilter/vf_deinterlace_qsv.c s->nb_surface_ptrs = hw_frames_hwctx->nb_surfaces; s 247 libavfilter/vf_deinterlace_qsv.c s->opaque_alloc.In.Surfaces = s->surface_ptrs; s 248 libavfilter/vf_deinterlace_qsv.c s->opaque_alloc.In.NumSurface = s->nb_surface_ptrs; s 249 libavfilter/vf_deinterlace_qsv.c s->opaque_alloc.In.Type = hw_frames_hwctx->frame_type; s 251 libavfilter/vf_deinterlace_qsv.c s->opaque_alloc.Out = s->opaque_alloc.In; s 253 libavfilter/vf_deinterlace_qsv.c s->opaque_alloc.Header.BufferId = MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION; s 254 libavfilter/vf_deinterlace_qsv.c s->opaque_alloc.Header.BufferSz = sizeof(s->opaque_alloc); s 256 libavfilter/vf_deinterlace_qsv.c s->ext_buffers[s->num_ext_buffers++] = (mfxExtBuffer *)&s->opaque_alloc; s 269 libavfilter/vf_deinterlace_qsv.c s->mem_ids = av_mallocz_array(hw_frames_hwctx->nb_surfaces, s 270 libavfilter/vf_deinterlace_qsv.c sizeof(*s->mem_ids)); s 271 libavfilter/vf_deinterlace_qsv.c if (!s->mem_ids) s 274 libavfilter/vf_deinterlace_qsv.c s->mem_ids[i] = hw_frames_hwctx->surfaces[i].Data.MemId; s 275 libavfilter/vf_deinterlace_qsv.c s->nb_mem_ids = hw_frames_hwctx->nb_surfaces; s 277 libavfilter/vf_deinterlace_qsv.c err = MFXVideoCORE_SetFrameAllocator(s->session, &frame_allocator); s 284 libavfilter/vf_deinterlace_qsv.c par.ExtParam = s->ext_buffers; s 285 libavfilter/vf_deinterlace_qsv.c par.NumExtParam = s->num_ext_buffers; s 312 libavfilter/vf_deinterlace_qsv.c err = MFXVideoVPP_Init(s->session, &par); s 325 libavfilter/vf_deinterlace_qsv.c QSVDeintContext *s = ctx->priv; s 330 libavfilter/vf_deinterlace_qsv.c s->last_pts = AV_NOPTS_VALUE; s 342 libavfilter/vf_deinterlace_qsv.c s->hw_frames_ctx = av_buffer_ref(inlink->hw_frames_ctx); s 343 libavfilter/vf_deinterlace_qsv.c if (!s->hw_frames_ctx) s 361 libavfilter/vf_deinterlace_qsv.c static void clear_unused_frames(QSVDeintContext *s) s 363 libavfilter/vf_deinterlace_qsv.c QSVFrame *cur = s->work_frames; s 373 libavfilter/vf_deinterlace_qsv.c static int get_free_frame(QSVDeintContext *s, QSVFrame **f) s 377 libavfilter/vf_deinterlace_qsv.c clear_unused_frames(s); s 379 libavfilter/vf_deinterlace_qsv.c frame = s->work_frames; s 380 libavfilter/vf_deinterlace_qsv.c last = &s->work_frames; s 403 libavfilter/vf_deinterlace_qsv.c QSVDeintContext *s = ctx->priv; s 407 libavfilter/vf_deinterlace_qsv.c ret = get_free_frame(s, &qf); s 452 libavfilter/vf_deinterlace_qsv.c QSVDeintContext *s = ctx->priv; s 474 libavfilter/vf_deinterlace_qsv.c err = MFXVideoVPP_RunFrameVPPAsync(s->session, surf_in, surf_out, s 494 libavfilter/vf_deinterlace_qsv.c err = MFXVideoCORE_SyncOperation(s->session, sync, 1000); s 511 libavfilter/vf_deinterlace_qsv.c if (out->pts == s->last_pts) s 513 libavfilter/vf_deinterlace_qsv.c s->last_pts = out->pts; s 83 libavfilter/vf_dejudder.c DejudderContext *s = ctx->priv; s 86 libavfilter/vf_dejudder.c outlink->time_base = av_mul_q(inlink->time_base, av_make_q(1, 2 * s->cycle)); s 87 libavfilter/vf_dejudder.c outlink->frame_rate = av_mul_q(inlink->frame_rate, av_make_q(2 * s->cycle, 1)); s 89 libavfilter/vf_dejudder.c av_log(ctx, AV_LOG_VERBOSE, "cycle:%d\n", s->cycle); s 96 libavfilter/vf_dejudder.c DejudderContext *s = ctx->priv; s 98 libavfilter/vf_dejudder.c s->ringbuff = av_mallocz_array(s->cycle+2, sizeof(*s->ringbuff)); s 99 libavfilter/vf_dejudder.c if (!s->ringbuff) s 102 libavfilter/vf_dejudder.c s->new_pts = 0; s 103 libavfilter/vf_dejudder.c s->i1 = 0; s 104 libavfilter/vf_dejudder.c s->i2 = 1; s 105 libavfilter/vf_dejudder.c s->i3 = 2; s 106 libavfilter/vf_dejudder.c s->i4 = 3; s 107 libavfilter/vf_dejudder.c s->start_count = s->cycle + 2; s 114 libavfilter/vf_dejudder.c DejudderContext *s = ctx->priv; s 116 libavfilter/vf_dejudder.c av_freep(&(s->ringbuff)); s 124 libavfilter/vf_dejudder.c DejudderContext *s = ctx->priv; s 125 libavfilter/vf_dejudder.c int64_t *judbuff = s->ringbuff; s 132 libavfilter/vf_dejudder.c if (s->start_count) { s 133 libavfilter/vf_dejudder.c s->start_count--; s 134 libavfilter/vf_dejudder.c s->new_pts = next_pts * 2 * s->cycle; s 136 libavfilter/vf_dejudder.c if (next_pts < judbuff[s->i2]) { s 137 libavfilter/vf_dejudder.c offset = next_pts + judbuff[s->i3] - judbuff[s->i4] - judbuff[s->i1]; s 138 libavfilter/vf_dejudder.c for (k = 0; k < s->cycle + 2; k++) s 141 libavfilter/vf_dejudder.c s->new_pts += (s->cycle - 1) * (judbuff[s->i3] - judbuff[s->i1]) s 142 libavfilter/vf_dejudder.c + (s->cycle + 1) * (next_pts - judbuff[s->i4]); s 145 libavfilter/vf_dejudder.c judbuff[s->i2] = next_pts; s 146 libavfilter/vf_dejudder.c s->i1 = s->i2; s 147 libavfilter/vf_dejudder.c s->i2 = s->i3; s 148 libavfilter/vf_dejudder.c s->i3 = s->i4; s 149 libavfilter/vf_dejudder.c s->i4 = (s->i4 + 1) % (s->cycle + 2); s 151 libavfilter/vf_dejudder.c frame->pts = s->new_pts; s 153 libavfilter/vf_dejudder.c for (k = 0; k < s->cycle + 2; k++) s 221 libavfilter/vf_delogo.c DelogoContext *s = ctx->priv; s 223 libavfilter/vf_delogo.c av_expr_free(s->x_pexpr); s->x_pexpr = NULL; s 224 libavfilter/vf_delogo.c av_expr_free(s->y_pexpr); s->y_pexpr = NULL; s 225 libavfilter/vf_delogo.c av_expr_free(s->w_pexpr); s->w_pexpr = NULL; s 226 libavfilter/vf_delogo.c av_expr_free(s->h_pexpr); s->h_pexpr = NULL; s 246 libavfilter/vf_delogo.c DelogoContext *s = ctx->priv; s 249 libavfilter/vf_delogo.c if ((ret = set_expr(&s->x_pexpr, s->x_expr, "x", ctx)) < 0 || s 250 libavfilter/vf_delogo.c (ret = set_expr(&s->y_pexpr, s->y_expr, "y", ctx)) < 0 || s 251 libavfilter/vf_delogo.c (ret = set_expr(&s->w_pexpr, s->w_expr, "w", ctx)) < 0 || s 252 libavfilter/vf_delogo.c (ret = set_expr(&s->h_pexpr, s->h_expr, "h", ctx)) < 0 ) s 255 libavfilter/vf_delogo.c s->x = av_expr_eval(s->x_pexpr, s->var_values, s); s 256 libavfilter/vf_delogo.c s->y = av_expr_eval(s->y_pexpr, s->var_values, s); s 257 libavfilter/vf_delogo.c s->w = av_expr_eval(s->w_pexpr, s->var_values, s); s 258 libavfilter/vf_delogo.c s->h = av_expr_eval(s->h_pexpr, s->var_values, s); s 261 libavfilter/vf_delogo.c if (s->opt == -1) { \ s 262 libavfilter/vf_delogo.c av_log(s, AV_LOG_ERROR, "Option %s was not set.\n", #opt); \ s 270 libavfilter/vf_delogo.c s->band = 1; s 273 libavfilter/vf_delogo.c s->x, s->y, s->w, s->h, s->band, s->show); s 275 libavfilter/vf_delogo.c s->w += s->band*2; s 276 libavfilter/vf_delogo.c s->h += s->band*2; s 277 libavfilter/vf_delogo.c s->x -= s->band; s 278 libavfilter/vf_delogo.c s->y -= s->band; s 285 libavfilter/vf_delogo.c DelogoContext *s = inlink->dst->priv; s 288 libavfilter/vf_delogo.c if (s->x + (s->band - 1) < 0 || s->x + s->w - (s->band*2 - 2) > inlink->w || s 289 libavfilter/vf_delogo.c s->y + (s->band - 1) < 0 || s->y + s->h - (s->band*2 - 2) > inlink->h) { s 290 libavfilter/vf_delogo.c av_log(s, AV_LOG_ERROR, "Logo area is outside of the frame.\n"); s 299 libavfilter/vf_delogo.c DelogoContext *s = inlink->dst->priv; s 310 libavfilter/vf_delogo.c s->var_values[VAR_N] = inlink->frame_count_out; s 311 libavfilter/vf_delogo.c s->var_values[VAR_T] = TS2T(in->pts, inlink->time_base); s 312 libavfilter/vf_delogo.c s->x = av_expr_eval(s->x_pexpr, s->var_values, s); s 313 libavfilter/vf_delogo.c s->y = av_expr_eval(s->y_pexpr, s->var_values, s); s 314 libavfilter/vf_delogo.c s->w = av_expr_eval(s->w_pexpr, s->var_values, s); s 315 libavfilter/vf_delogo.c s->h = av_expr_eval(s->h_pexpr, s->var_values, s); s 317 libavfilter/vf_delogo.c if (s->x + (s->band - 1) <= 0 || s->x + s->w - (s->band*2 - 2) > inlink->w || s 318 libavfilter/vf_delogo.c s->y + (s->band - 1) <= 0 || s->y + s->h - (s->band*2 - 2) > inlink->h) { s 319 libavfilter/vf_delogo.c av_log(s, AV_LOG_WARNING, "Logo area is outside of the frame," s 323 libavfilter/vf_delogo.c if (s->x + (s->band - 1) <= 0) s 324 libavfilter/vf_delogo.c s->x = 1 + s->band; s 325 libavfilter/vf_delogo.c if (s->y + (s->band - 1) <= 0) s 326 libavfilter/vf_delogo.c s->y = 1 + s->band; s 327 libavfilter/vf_delogo.c if (s->x + s->w - (s->band*2 - 2) > inlink->w) s 328 libavfilter/vf_delogo.c s->w = inlink->w - s->x - (s->band*2 - 2); s 329 libavfilter/vf_delogo.c if (s->y + s->h - (s->band*2 - 2) > inlink->h) s 330 libavfilter/vf_delogo.c s->h = inlink->h - s->y - (s->band*2 - 2); s 338 libavfilter/vf_delogo.c s->w += s->band*2; s 339 libavfilter/vf_delogo.c s->h += s->band*2; s 340 libavfilter/vf_delogo.c s->x -= s->band; s 341 libavfilter/vf_delogo.c s->y -= s->band; s 369 libavfilter/vf_delogo.c sar, s->x>>hsub, s->y>>vsub, s 372 libavfilter/vf_delogo.c AV_CEIL_RSHIFT(s->w + (s->x & ((1<<hsub)-1)), hsub), s 373 libavfilter/vf_delogo.c AV_CEIL_RSHIFT(s->h + (s->y & ((1<<vsub)-1)), vsub), s 374 libavfilter/vf_delogo.c s->band>>FFMIN(hsub, vsub), s 375 libavfilter/vf_delogo.c s->show, direct); s 332 libavfilter/vf_deshake_opencl.c double x1 = point_pairs[0].p.p1.s[0]; s 333 libavfilter/vf_deshake_opencl.c double y1 = point_pairs[0].p.p1.s[1]; s 334 libavfilter/vf_deshake_opencl.c double x2 = point_pairs[1].p.p1.s[0]; s 335 libavfilter/vf_deshake_opencl.c double y2 = point_pairs[1].p.p1.s[1]; s 336 libavfilter/vf_deshake_opencl.c double x3 = point_pairs[2].p.p1.s[0]; s 337 libavfilter/vf_deshake_opencl.c double y3 = point_pairs[2].p.p1.s[1]; s 340 libavfilter/vf_deshake_opencl.c double X1 = point_pairs[0].p.p2.s[0]; s 341 libavfilter/vf_deshake_opencl.c double Y1 = point_pairs[0].p.p2.s[1]; s 342 libavfilter/vf_deshake_opencl.c double X2 = point_pairs[1].p.p2.s[0]; s 343 libavfilter/vf_deshake_opencl.c double Y2 = point_pairs[1].p.p2.s[1]; s 344 libavfilter/vf_deshake_opencl.c double X3 = point_pairs[2].p.p2.s[0]; s 345 libavfilter/vf_deshake_opencl.c double Y3 = point_pairs[2].p.p2.s[1]; s 364 libavfilter/vf_deshake_opencl.c double dx1 = points[j]->s[0] - points[i]->s[0]; s 365 libavfilter/vf_deshake_opencl.c double dy1 = points[j]->s[1] - points[i]->s[1]; s 368 libavfilter/vf_deshake_opencl.c double dx2 = points[k]->s[0] - points[i]->s[0]; s 369 libavfilter/vf_deshake_opencl.c double dy2 = points[k]->s[1] - points[i]->s[1]; s 458 libavfilter/vf_deshake_opencl.c double a = F0*f->s[0] + F1*f->s[1] + F2 - t->s[0]; s 459 libavfilter/vf_deshake_opencl.c double b = F3*f->s[0] + F4*f->s[1] + F5 - t->s[1]; s 629 libavfilter/vf_deshake_opencl.c best_pairs[0].p.p2.s[0] += move_x_val; s 631 libavfilter/vf_deshake_opencl.c best_pairs[0].p.p2.s[0] += move_y_val; s 651 libavfilter/vf_deshake_opencl.c best_pairs[0].p.p2.s[0] -= move_x_val; s 653 libavfilter/vf_deshake_opencl.c best_pairs[0].p.p2.s[0] -= move_y_val; s 761 libavfilter/vf_deshake_opencl.c ret.translation.s[0] = e; s 762 libavfilter/vf_deshake_opencl.c ret.translation.s[1] = f; s 769 libavfilter/vf_deshake_opencl.c ret.scale.s[0] = r; s 770 libavfilter/vf_deshake_opencl.c ret.scale.s[1] = delta / r; s 771 libavfilter/vf_deshake_opencl.c ret.skew.s[0] = atan((a * c + b * d) / (r * r)); s 772 libavfilter/vf_deshake_opencl.c ret.skew.s[1] = 0; s 774 libavfilter/vf_deshake_opencl.c double s = sqrt(c * c + d * d); s 776 libavfilter/vf_deshake_opencl.c ret.rotation = M_PI / 2 - FFSIGN(d) * acos(-c / s); s 777 libavfilter/vf_deshake_opencl.c ret.scale.s[0] = delta / s; s 778 libavfilter/vf_deshake_opencl.c ret.scale.s[1] = s; s 779 libavfilter/vf_deshake_opencl.c ret.skew.s[0] = 0; s 780 libavfilter/vf_deshake_opencl.c ret.skew.s[1] = atan((a * c + b * d) / (s * s)); s 960 libavfilter/vf_deshake_opencl.c ret.s[0] = x * transform[0] + y * transform[1] + transform[2]; s 961 libavfilter/vf_deshake_opencl.c ret.s[1] = x * transform[3] + y * transform[4] + transform[5]; s 990 libavfilter/vf_deshake_opencl.c center_s_w = center_w - center_s.s[0]; s 991 libavfilter/vf_deshake_opencl.c center_s_h = center_h - center_s.s[1]; s 1020 libavfilter/vf_deshake_opencl.c if (crop->bottom_right.s[0] == 0) { s 1022 libavfilter/vf_deshake_opencl.c crop->bottom_right.s[0] = frame_width; s 1023 libavfilter/vf_deshake_opencl.c crop->bottom_right.s[1] = frame_height; s 1026 libavfilter/vf_deshake_opencl.c crop->top_left.s[0] = FFMAX3( s 1027 libavfilter/vf_deshake_opencl.c crop->top_left.s[0], s 1028 libavfilter/vf_deshake_opencl.c top_left.s[0], s 1029 libavfilter/vf_deshake_opencl.c bottom_left.s[0] s 1032 libavfilter/vf_deshake_opencl.c crop->top_left.s[1] = FFMAX3( s 1033 libavfilter/vf_deshake_opencl.c crop->top_left.s[1], s 1034 libavfilter/vf_deshake_opencl.c top_left.s[1], s 1035 libavfilter/vf_deshake_opencl.c top_right.s[1] s 1038 libavfilter/vf_deshake_opencl.c crop->bottom_right.s[0] = FFMIN3( s 1039 libavfilter/vf_deshake_opencl.c crop->bottom_right.s[0], s 1040 libavfilter/vf_deshake_opencl.c bottom_right.s[0], s 1041 libavfilter/vf_deshake_opencl.c top_right.s[0] s 1044 libavfilter/vf_deshake_opencl.c crop->bottom_right.s[1] = FFMIN3( s 1045 libavfilter/vf_deshake_opencl.c crop->bottom_right.s[1], s 1046 libavfilter/vf_deshake_opencl.c bottom_right.s[1], s 1047 libavfilter/vf_deshake_opencl.c bottom_left.s[1] s 1051 libavfilter/vf_deshake_opencl.c new_height = crop->bottom_right.s[1] - crop->top_left.s[1]; s 1052 libavfilter/vf_deshake_opencl.c new_width = crop->bottom_right.s[0] - crop->top_left.s[0]; s 1055 libavfilter/vf_deshake_opencl.c adjusted_x = crop->bottom_right.s[0] - adjusted_width; s 1057 libavfilter/vf_deshake_opencl.c if (adjusted_x >= crop->top_left.s[0]) { s 1058 libavfilter/vf_deshake_opencl.c crop->top_left.s[0] = adjusted_x; s 1061 libavfilter/vf_deshake_opencl.c adjusted_y = crop->bottom_right.s[1] - adjusted_height; s 1062 libavfilter/vf_deshake_opencl.c crop->top_left.s[1] = adjusted_y; s 1248 libavfilter/vf_deshake_opencl.c pair.p1.s[j] = rand_in(-BRIEF_PATCH_SIZE_HALF, BRIEF_PATCH_SIZE_HALF + 1, &ctx->alfg); s 1249 libavfilter/vf_deshake_opencl.c pair.p2.s[j] = rand_in(-BRIEF_PATCH_SIZE_HALF, BRIEF_PATCH_SIZE_HALF + 1, &ctx->alfg); s 1946 libavfilter/vf_deshake_opencl.c new_vals[RingbufX] = prev_vals[RingbufX] + relative.translation.s[0]; s 1947 libavfilter/vf_deshake_opencl.c new_vals[RingbufY] = prev_vals[RingbufY] + relative.translation.s[1]; s 1949 libavfilter/vf_deshake_opencl.c new_vals[RingbufScaleX] = prev_vals[RingbufScaleX] / relative.scale.s[0]; s 1950 libavfilter/vf_deshake_opencl.c new_vals[RingbufScaleY] = prev_vals[RingbufScaleY] / relative.scale.s[1]; s 45 libavfilter/vf_despill.c DespillContext *s = ctx->priv; s 47 libavfilter/vf_despill.c const int ro = s->co[0], go = s->co[1], bo = s->co[2], ao = s->co[3]; s 50 libavfilter/vf_despill.c const float brightness = s->brightness; s 51 libavfilter/vf_despill.c const float redscale = s->redscale; s 52 libavfilter/vf_despill.c const float greenscale = s->greenscale; s 53 libavfilter/vf_despill.c const float bluescale = s->bluescale; s 54 libavfilter/vf_despill.c const float spillmix = s->spillmix; s 55 libavfilter/vf_despill.c const float factor = (1.f - spillmix) * (1.f - s->spillexpand); s 69 libavfilter/vf_despill.c if (s->type) { s 82 libavfilter/vf_despill.c if (s->alpha) { s 109 libavfilter/vf_despill.c DespillContext *s = ctx->priv; s 114 libavfilter/vf_despill.c s->co[i] = desc->comp[i].offset; s 75 libavfilter/vf_detelecine.c DetelecineContext *s = ctx->priv; s 80 libavfilter/vf_detelecine.c if (!strlen(s->pattern)) { s 85 libavfilter/vf_detelecine.c for (p = s->pattern; *p; p++) { s 93 libavfilter/vf_detelecine.c s->pts.num += *p - '0'; s 94 libavfilter/vf_detelecine.c s->pts.den += 2; s 97 libavfilter/vf_detelecine.c if (s->start_frame >= sum) { s 102 libavfilter/vf_detelecine.c s->nskip_fields = 0; s 103 libavfilter/vf_detelecine.c s->pattern_pos = 0; s 104 libavfilter/vf_detelecine.c s->start_time = AV_NOPTS_VALUE; s 105 libavfilter/vf_detelecine.c s->init_len = 0; s 107 libavfilter/vf_detelecine.c if (s->start_frame != 0) { s 109 libavfilter/vf_detelecine.c for (p = s->pattern; *p; p++) { s 111 libavfilter/vf_detelecine.c s->pattern_pos++; s 112 libavfilter/vf_detelecine.c if (nfields >= 2*s->start_frame) { s 113 libavfilter/vf_detelecine.c s->init_len = nfields - 2*s->start_frame; s 120 libavfilter/vf_detelecine.c s->pattern, (max + 1) / 2, s->pts.num, s->pts.den); s 144 libavfilter/vf_detelecine.c DetelecineContext *s = inlink->dst->priv; s 148 libavfilter/vf_detelecine.c s->temp = ff_get_video_buffer(inlink, inlink->w, inlink->h); s 149 libavfilter/vf_detelecine.c if (!s->temp) s 152 libavfilter/vf_detelecine.c s->frame[0] = ff_get_video_buffer(inlink, inlink->w, inlink->h); s 153 libavfilter/vf_detelecine.c if (!s->frame[0]) s 156 libavfilter/vf_detelecine.c s->frame[1] = ff_get_video_buffer(inlink, inlink->w, inlink->h); s 157 libavfilter/vf_detelecine.c if (!s->frame[1]) s 160 libavfilter/vf_detelecine.c if ((ret = av_image_fill_linesizes(s->stride, inlink->format, inlink->w)) < 0) s 163 libavfilter/vf_detelecine.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 164 libavfilter/vf_detelecine.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 166 libavfilter/vf_detelecine.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 174 libavfilter/vf_detelecine.c DetelecineContext *s = ctx->priv; s 183 libavfilter/vf_detelecine.c fps = av_mul_q(fps, av_inv_q(s->pts)); s 188 libavfilter/vf_detelecine.c outlink->time_base = av_mul_q(inlink->time_base, s->pts); s 192 libavfilter/vf_detelecine.c s->ts_unit = av_inv_q(av_mul_q(fps, outlink->time_base)); s 201 libavfilter/vf_detelecine.c DetelecineContext *s = ctx->priv; s 204 libavfilter/vf_detelecine.c if (s->start_time == AV_NOPTS_VALUE) s 205 libavfilter/vf_detelecine.c s->start_time = inpicref->pts; s 207 libavfilter/vf_detelecine.c if (s->nskip_fields >= 2) { s 208 libavfilter/vf_detelecine.c s->nskip_fields -= 2; s 211 libavfilter/vf_detelecine.c } else if (s->nskip_fields >= 1) { s 212 libavfilter/vf_detelecine.c for (i = 0; i < s->nb_planes; i++) { s 213 libavfilter/vf_detelecine.c av_image_copy_plane(s->temp->data[i], s->temp->linesize[i], s 215 libavfilter/vf_detelecine.c s->stride[i], s 216 libavfilter/vf_detelecine.c s->planeheight[i]); s 218 libavfilter/vf_detelecine.c s->occupied = 1; s 219 libavfilter/vf_detelecine.c s->nskip_fields--; s 224 libavfilter/vf_detelecine.c if (s->nskip_fields == 0) { s 225 libavfilter/vf_detelecine.c len = s->init_len; s 226 libavfilter/vf_detelecine.c s->init_len = 0; s 227 libavfilter/vf_detelecine.c while(!len && s->pattern[s->pattern_pos]) { s 228 libavfilter/vf_detelecine.c len = s->pattern[s->pattern_pos] - '0'; s 229 libavfilter/vf_detelecine.c s->pattern_pos++; s 232 libavfilter/vf_detelecine.c if (!s->pattern[s->pattern_pos]) s 233 libavfilter/vf_detelecine.c s->pattern_pos = 0; s 240 libavfilter/vf_detelecine.c if (len == 1 && s->occupied) { s 241 libavfilter/vf_detelecine.c s->occupied = 0; s 243 libavfilter/vf_detelecine.c for (i = 0; i < s->nb_planes; i++) s 244 libavfilter/vf_detelecine.c av_image_copy_plane(s->frame[out]->data[i], s->frame[out]->linesize[i], s 245 libavfilter/vf_detelecine.c s->temp->data[i], s->temp->linesize[i], s 246 libavfilter/vf_detelecine.c s->stride[i], s 247 libavfilter/vf_detelecine.c s->planeheight[i]); s 249 libavfilter/vf_detelecine.c while(!len && s->pattern[s->pattern_pos]) { s 250 libavfilter/vf_detelecine.c len = s->pattern[s->pattern_pos] - '0'; s 251 libavfilter/vf_detelecine.c s->pattern_pos++; s 254 libavfilter/vf_detelecine.c if (!s->pattern[s->pattern_pos]) s 255 libavfilter/vf_detelecine.c s->pattern_pos = 0; s 257 libavfilter/vf_detelecine.c s->occupied = 0; s 261 libavfilter/vf_detelecine.c if (s->occupied) { s 262 libavfilter/vf_detelecine.c for (i = 0; i < s->nb_planes; i++) { s 264 libavfilter/vf_detelecine.c av_image_copy_plane(s->frame[out]->data[i] + s->frame[out]->linesize[i] * s->first_field, s 265 libavfilter/vf_detelecine.c s->frame[out]->linesize[i] * 2, s 266 libavfilter/vf_detelecine.c inpicref->data[i] + inpicref->linesize[i] * s->first_field, s 268 libavfilter/vf_detelecine.c s->stride[i], s 269 libavfilter/vf_detelecine.c (s->planeheight[i] - s->first_field + 1) / 2); s 271 libavfilter/vf_detelecine.c av_image_copy_plane(s->frame[out]->data[i] + s->frame[out]->linesize[i] * !s->first_field, s 272 libavfilter/vf_detelecine.c s->frame[out]->linesize[i] * 2, s 273 libavfilter/vf_detelecine.c s->temp->data[i] + s->temp->linesize[i] * !s->first_field, s 274 libavfilter/vf_detelecine.c s->temp->linesize[i] * 2, s 275 libavfilter/vf_detelecine.c s->stride[i], s 276 libavfilter/vf_detelecine.c (s->planeheight[i] - !s->first_field + 1) / 2); s 279 libavfilter/vf_detelecine.c s->occupied = 0; s 281 libavfilter/vf_detelecine.c for (i = 0; i < s->nb_planes; i++) { s 282 libavfilter/vf_detelecine.c av_image_copy_plane(s->temp->data[i], s->temp->linesize[i], s 284 libavfilter/vf_detelecine.c s->stride[i], s 285 libavfilter/vf_detelecine.c s->planeheight[i]); s 287 libavfilter/vf_detelecine.c s->occupied = 1; s 294 libavfilter/vf_detelecine.c for (i = 0; i < s->nb_planes; i++) s 295 libavfilter/vf_detelecine.c av_image_copy_plane(s->frame[out]->data[i], s->frame[out]->linesize[i], s 297 libavfilter/vf_detelecine.c s->stride[i], s 298 libavfilter/vf_detelecine.c s->planeheight[i]); s 303 libavfilter/vf_detelecine.c for (i = 0; i < s->nb_planes; i++) s 304 libavfilter/vf_detelecine.c av_image_copy_plane(s->frame[out]->data[i], s->frame[out]->linesize[i], s 306 libavfilter/vf_detelecine.c s->stride[i], s 307 libavfilter/vf_detelecine.c s->planeheight[i]); s 309 libavfilter/vf_detelecine.c for (i = 0; i < s->nb_planes; i++) { s 310 libavfilter/vf_detelecine.c av_image_copy_plane(s->temp->data[i], s->temp->linesize[i], s 312 libavfilter/vf_detelecine.c s->stride[i], s 313 libavfilter/vf_detelecine.c s->planeheight[i]); s 315 libavfilter/vf_detelecine.c s->occupied = 1; s 322 libavfilter/vf_detelecine.c if (len == 1 && s->occupied) s 325 libavfilter/vf_detelecine.c s->occupied = 0; s 328 libavfilter/vf_detelecine.c s->nskip_fields = len; s 331 libavfilter/vf_detelecine.c AVFrame *frame = av_frame_clone(s->frame[i]); s 339 libavfilter/vf_detelecine.c frame->pts = ((s->start_time == AV_NOPTS_VALUE) ? 0 : s->start_time) + s 340 libavfilter/vf_detelecine.c av_rescale(outlink->frame_count_in, s->ts_unit.num, s 341 libavfilter/vf_detelecine.c s->ts_unit.den); s 352 libavfilter/vf_detelecine.c DetelecineContext *s = ctx->priv; s 354 libavfilter/vf_detelecine.c av_frame_free(&s->temp); s 355 libavfilter/vf_detelecine.c av_frame_free(&s->frame[0]); s 356 libavfilter/vf_detelecine.c av_frame_free(&s->frame[1]); s 48 libavfilter/vf_displace.c void (*displace)(struct DisplaceContext *s, const AVFrame *in, s 84 libavfilter/vf_displace.c static void displace_planar(DisplaceContext *s, const AVFrame *in, s 90 libavfilter/vf_displace.c for (plane = 0; plane < s->nb_planes; plane++) { s 91 libavfilter/vf_displace.c const int h = s->height[plane]; s 92 libavfilter/vf_displace.c const int w = s->width[plane]; s 101 libavfilter/vf_displace.c const uint8_t blank = s->blank[plane]; s 104 libavfilter/vf_displace.c switch (s->edge) { s 160 libavfilter/vf_displace.c static void displace_packed(DisplaceContext *s, const AVFrame *in, s 164 libavfilter/vf_displace.c const int step = s->step; s 165 libavfilter/vf_displace.c const int h = s->height[0]; s 166 libavfilter/vf_displace.c const int w = s->width[0]; s 174 libavfilter/vf_displace.c const uint8_t *blank = s->blank; s 179 libavfilter/vf_displace.c switch (s->edge) { s 182 libavfilter/vf_displace.c for (c = 0; c < s->nb_components; c++) { s 195 libavfilter/vf_displace.c for (c = 0; c < s->nb_components; c++) { s 205 libavfilter/vf_displace.c for (c = 0; c < s->nb_components; c++) { s 219 libavfilter/vf_displace.c for (c = 0; c < s->nb_components; c++) { s 246 libavfilter/vf_displace.c DisplaceContext *s = fs->opaque; s 251 libavfilter/vf_displace.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &in, 0)) < 0 || s 252 libavfilter/vf_displace.c (ret = ff_framesync_get_frame(&s->fs, 1, &xpic, 0)) < 0 || s 253 libavfilter/vf_displace.c (ret = ff_framesync_get_frame(&s->fs, 2, &ypic, 0)) < 0) s 266 libavfilter/vf_displace.c s->displace(s, in, xpic, ypic, out); s 268 libavfilter/vf_displace.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 276 libavfilter/vf_displace.c DisplaceContext *s = ctx->priv; s 280 libavfilter/vf_displace.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 281 libavfilter/vf_displace.c s->nb_components = desc->nb_components; s 283 libavfilter/vf_displace.c if (s->nb_planes > 1 || s->nb_components == 1) s 284 libavfilter/vf_displace.c s->displace = displace_planar; s 286 libavfilter/vf_displace.c s->displace = displace_packed; s 289 libavfilter/vf_displace.c s->blank[1] = s->blank[2] = 128; s 290 libavfilter/vf_displace.c s->blank[0] = 16; s 293 libavfilter/vf_displace.c s->step = av_get_padded_bits_per_pixel(desc) >> 3; s 296 libavfilter/vf_displace.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 297 libavfilter/vf_displace.c s->height[0] = s->height[3] = inlink->h; s 298 libavfilter/vf_displace.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 299 libavfilter/vf_displace.c s->width[0] = s->width[3] = inlink->w; s 307 libavfilter/vf_displace.c DisplaceContext *s = ctx->priv; s 338 libavfilter/vf_displace.c ret = ff_framesync_init(&s->fs, ctx, 3); s 342 libavfilter/vf_displace.c in = s->fs.in; s 355 libavfilter/vf_displace.c s->fs.opaque = s; s 356 libavfilter/vf_displace.c s->fs.on_event = process_frame; s 358 libavfilter/vf_displace.c ret = ff_framesync_configure(&s->fs); s 359 libavfilter/vf_displace.c outlink->time_base = s->fs.time_base; s 366 libavfilter/vf_displace.c DisplaceContext *s = ctx->priv; s 367 libavfilter/vf_displace.c return ff_framesync_activate(&s->fs); s 372 libavfilter/vf_displace.c DisplaceContext *s = ctx->priv; s 374 libavfilter/vf_displace.c ff_framesync_uninit(&s->fs); s 90 libavfilter/vf_drawbox.c DrawBoxContext *s = ctx->priv; s 93 libavfilter/vf_drawbox.c if (!strcmp(s->color_str, "invert")) s 94 libavfilter/vf_drawbox.c s->invert_color = 1; s 95 libavfilter/vf_drawbox.c else if (av_parse_color(rgba_color, s->color_str, -1, ctx) < 0) s 98 libavfilter/vf_drawbox.c if (!s->invert_color) { s 99 libavfilter/vf_drawbox.c s->yuv_color[Y] = RGB_TO_Y_CCIR(rgba_color[0], rgba_color[1], rgba_color[2]); s 100 libavfilter/vf_drawbox.c s->yuv_color[U] = RGB_TO_U_CCIR(rgba_color[0], rgba_color[1], rgba_color[2], 0); s 101 libavfilter/vf_drawbox.c s->yuv_color[V] = RGB_TO_V_CCIR(rgba_color[0], rgba_color[1], rgba_color[2], 0); s 102 libavfilter/vf_drawbox.c s->yuv_color[A] = rgba_color[3]; s 127 libavfilter/vf_drawbox.c DrawBoxContext *s = ctx->priv; s 134 libavfilter/vf_drawbox.c s->hsub = desc->log2_chroma_w; s 135 libavfilter/vf_drawbox.c s->vsub = desc->log2_chroma_h; s 136 libavfilter/vf_drawbox.c s->have_alpha = desc->flags & AV_PIX_FMT_FLAG_ALPHA; s 142 libavfilter/vf_drawbox.c var_values[VAR_HSUB] = s->hsub; s 143 libavfilter/vf_drawbox.c var_values[VAR_VSUB] = s->vsub; s 153 libavfilter/vf_drawbox.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->x_expr), s 157 libavfilter/vf_drawbox.c s->x = var_values[VAR_X] = res; s 160 libavfilter/vf_drawbox.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->y_expr), s 164 libavfilter/vf_drawbox.c s->y = var_values[VAR_Y] = res; s 166 libavfilter/vf_drawbox.c var_values[VAR_MAX] = inlink->w - s->x; s 167 libavfilter/vf_drawbox.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->w_expr), s 171 libavfilter/vf_drawbox.c s->w = var_values[VAR_W] = res; s 173 libavfilter/vf_drawbox.c var_values[VAR_MAX] = inlink->h - s->y; s 174 libavfilter/vf_drawbox.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->h_expr), s 178 libavfilter/vf_drawbox.c s->h = var_values[VAR_H] = res; s 181 libavfilter/vf_drawbox.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->t_expr), s 185 libavfilter/vf_drawbox.c s->thickness = var_values[VAR_T] = res; s 189 libavfilter/vf_drawbox.c s->w = (s->w > 0) ? s->w : inlink->w; s 190 libavfilter/vf_drawbox.c s->h = (s->h > 0) ? s->h : inlink->h; s 193 libavfilter/vf_drawbox.c if (s->w < 0 || s->h < 0) { s 199 libavfilter/vf_drawbox.c s->x, s->y, s->w, s->h, s 200 libavfilter/vf_drawbox.c s->yuv_color[Y], s->yuv_color[U], s->yuv_color[V], s->yuv_color[A]); s 211 libavfilter/vf_drawbox.c static av_pure av_always_inline int pixel_belongs_to_box(DrawBoxContext *s, int x, int y) s 213 libavfilter/vf_drawbox.c return (y - s->y < s->thickness) || (s->y + s->h - 1 - y < s->thickness) || s 214 libavfilter/vf_drawbox.c (x - s->x < s->thickness) || (s->x + s->w - 1 - x < s->thickness); s 219 libavfilter/vf_drawbox.c DrawBoxContext *s = inlink->dst->priv; s 220 libavfilter/vf_drawbox.c int plane, x, y, xb = s->x, yb = s->y; s 223 libavfilter/vf_drawbox.c if (s->have_alpha && s->replace) { s 224 libavfilter/vf_drawbox.c for (y = FFMAX(yb, 0); y < frame->height && y < (yb + s->h); y++) { s 230 libavfilter/vf_drawbox.c frame->linesize[plane] * (y >> s->vsub); s 232 libavfilter/vf_drawbox.c if (s->invert_color) { s 233 libavfilter/vf_drawbox.c for (x = FFMAX(xb, 0); x < xb + s->w && x < frame->width; x++) s 234 libavfilter/vf_drawbox.c if (pixel_belongs_to_box(s, x, y)) s 237 libavfilter/vf_drawbox.c for (x = FFMAX(xb, 0); x < xb + s->w && x < frame->width; x++) { s 238 libavfilter/vf_drawbox.c if (pixel_belongs_to_box(s, x, y)) { s 239 libavfilter/vf_drawbox.c row[0][x ] = s->yuv_color[Y]; s 240 libavfilter/vf_drawbox.c row[1][x >> s->hsub] = s->yuv_color[U]; s 241 libavfilter/vf_drawbox.c row[2][x >> s->hsub] = s->yuv_color[V]; s 242 libavfilter/vf_drawbox.c row[3][x ] = s->yuv_color[A]; s 248 libavfilter/vf_drawbox.c for (y = FFMAX(yb, 0); y < frame->height && y < (yb + s->h); y++) { s 253 libavfilter/vf_drawbox.c frame->linesize[plane] * (y >> s->vsub); s 255 libavfilter/vf_drawbox.c if (s->invert_color) { s 256 libavfilter/vf_drawbox.c for (x = FFMAX(xb, 0); x < xb + s->w && x < frame->width; x++) s 257 libavfilter/vf_drawbox.c if (pixel_belongs_to_box(s, x, y)) s 260 libavfilter/vf_drawbox.c for (x = FFMAX(xb, 0); x < xb + s->w && x < frame->width; x++) { s 261 libavfilter/vf_drawbox.c double alpha = (double)s->yuv_color[A] / 255; s 263 libavfilter/vf_drawbox.c if (pixel_belongs_to_box(s, x, y)) { s 264 libavfilter/vf_drawbox.c row[0][x ] = (1 - alpha) * row[0][x ] + alpha * s->yuv_color[Y]; s 265 libavfilter/vf_drawbox.c row[1][x >> s->hsub] = (1 - alpha) * row[1][x >> s->hsub] + alpha * s->yuv_color[U]; s 266 libavfilter/vf_drawbox.c row[2][x >> s->hsub] = (1 - alpha) * row[2][x >> s->hsub] + alpha * s->yuv_color[V]; s 279 libavfilter/vf_drawbox.c DrawBoxContext *s = ctx->priv; s 280 libavfilter/vf_drawbox.c int old_x = s->x; s 281 libavfilter/vf_drawbox.c int old_y = s->y; s 282 libavfilter/vf_drawbox.c int old_w = s->w; s 283 libavfilter/vf_drawbox.c int old_h = s->h; s 284 libavfilter/vf_drawbox.c int old_t = s->thickness; s 285 libavfilter/vf_drawbox.c int old_r = s->replace; s 298 libavfilter/vf_drawbox.c s->x = old_x; s 299 libavfilter/vf_drawbox.c s->y = old_y; s 300 libavfilter/vf_drawbox.c s->w = old_w; s 301 libavfilter/vf_drawbox.c s->h = old_h; s 302 libavfilter/vf_drawbox.c s->thickness = old_t; s 303 libavfilter/vf_drawbox.c s->replace = old_r; s 278 libavfilter/vf_drawtext.c #define FT_ERRORDEF(e, v, s) { (e), (s) }, s 318 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 325 libavfilter/vf_drawtext.c if (FT_Load_Char(s->face, code, s->ft_load_flags)) s 334 libavfilter/vf_drawtext.c glyph->fontsize = s->fontsize; s 336 libavfilter/vf_drawtext.c if (FT_Get_Glyph(s->face->glyph, &glyph->glyph)) { s 340 libavfilter/vf_drawtext.c if (s->borderw) { s 342 libavfilter/vf_drawtext.c if (FT_Glyph_StrokeBorder(&glyph->border_glyph, s->stroker, 0, 0) || s 359 libavfilter/vf_drawtext.c glyph->advance = s->face->glyph->advance.x >> 6; s 369 libavfilter/vf_drawtext.c av_tree_insert(&s->glyphs, glyph, glyph_cmp, &node); s 387 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 389 libavfilter/vf_drawtext.c if ((err = FT_Set_Pixel_Sizes(s->face, 0, fontsize))) { s 395 libavfilter/vf_drawtext.c s->fontsize = fontsize; s 402 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 405 libavfilter/vf_drawtext.c if (s->fontsize_pexpr) s 408 libavfilter/vf_drawtext.c if (s->fontsize_expr == NULL) s 411 libavfilter/vf_drawtext.c if ((err = av_expr_parse(&s->fontsize_pexpr, s->fontsize_expr, var_names, s 420 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 421 libavfilter/vf_drawtext.c unsigned int fontsize = s->default_fontsize; s 426 libavfilter/vf_drawtext.c if (s->fontsize_expr != NULL) { s 430 libavfilter/vf_drawtext.c size = av_expr_eval(s->fontsize_pexpr, s->var_values, &s->prng); s 448 libavfilter/vf_drawtext.c if (fontsize == s->fontsize) s 456 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 459 libavfilter/vf_drawtext.c err = FT_New_Face(s->library, path, index, &s->face); s 463 libavfilter/vf_drawtext.c s->fontfile, FT_ERRMSG(err)); s 473 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 488 libavfilter/vf_drawtext.c pat = FcNameParse(s->fontfile ? s->fontfile : s 495 libavfilter/vf_drawtext.c FcPatternAddString(pat, FC_FAMILY, s->font); s 499 libavfilter/vf_drawtext.c double size = av_expr_eval(s->fontsize_pexpr, s->var_values, &s->prng); s 523 libavfilter/vf_drawtext.c s->font); s 536 libavfilter/vf_drawtext.c s->font); s 542 libavfilter/vf_drawtext.c s->default_fontsize = size + 0.5; s 556 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 560 libavfilter/vf_drawtext.c err = load_font_file(ctx, s->fontfile, 0); s 573 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 579 libavfilter/vf_drawtext.c if ((err = av_file_map(s->textfile, &textbuf, &textbuf_size, 0, ctx)) < 0) { s 582 libavfilter/vf_drawtext.c s->textfile); s 586 libavfilter/vf_drawtext.c if (textbuf_size > SIZE_MAX - 1 || !(tmp = av_realloc(s->text, textbuf_size + 1))) { s 590 libavfilter/vf_drawtext.c s->text = tmp; s 591 libavfilter/vf_drawtext.c memcpy(s->text, textbuf, textbuf_size); s 592 libavfilter/vf_drawtext.c s->text[textbuf_size] = 0; s 606 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 621 libavfilter/vf_drawtext.c len = strlen(s->text); s 626 libavfilter/vf_drawtext.c s->text, len, unicodestr); s 672 libavfilter/vf_drawtext.c if (!(tmp = av_realloc(s->text, (len * 4 + 1) * sizeof(*s->text)))) { s 677 libavfilter/vf_drawtext.c s->text = tmp; s 679 libavfilter/vf_drawtext.c unicodestr, len, s->text); s 694 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 697 libavfilter/vf_drawtext.c av_expr_free(s->fontsize_pexpr); s 698 libavfilter/vf_drawtext.c s->fontsize_pexpr = NULL; s 700 libavfilter/vf_drawtext.c s->fontsize = 0; s 701 libavfilter/vf_drawtext.c s->default_fontsize = 16; s 703 libavfilter/vf_drawtext.c if (!s->fontfile && !CONFIG_LIBFONTCONFIG) { s 708 libavfilter/vf_drawtext.c if (s->textfile) { s 709 libavfilter/vf_drawtext.c if (s->text) { s 718 libavfilter/vf_drawtext.c if (s->reload && !s->textfile) s 721 libavfilter/vf_drawtext.c if (s->tc_opt_string) { s 722 libavfilter/vf_drawtext.c int ret = av_timecode_init_from_string(&s->tc, s->tc_rate, s 723 libavfilter/vf_drawtext.c s->tc_opt_string, ctx); s 726 libavfilter/vf_drawtext.c if (s->tc24hmax) s 727 libavfilter/vf_drawtext.c s->tc.flags |= AV_TIMECODE_FLAG_24HOURSMAX; s 728 libavfilter/vf_drawtext.c if (!s->text) s 729 libavfilter/vf_drawtext.c s->text = av_strdup(""); s 732 libavfilter/vf_drawtext.c if (!s->text) { s 739 libavfilter/vf_drawtext.c if (s->text_shaping) s 744 libavfilter/vf_drawtext.c if ((err = FT_Init_FreeType(&(s->library)))) { s 756 libavfilter/vf_drawtext.c if (s->borderw) { s 757 libavfilter/vf_drawtext.c if (FT_Stroker_New(s->library, &s->stroker)) { s 761 libavfilter/vf_drawtext.c FT_Stroker_Set(s->stroker, s->borderw << 6, FT_STROKER_LINECAP_ROUND, s 765 libavfilter/vf_drawtext.c s->use_kerning = FT_HAS_KERNING(s->face); s 775 libavfilter/vf_drawtext.c s->tabsize *= glyph->advance; s 777 libavfilter/vf_drawtext.c if (s->exp_mode == EXP_STRFTIME && s 778 libavfilter/vf_drawtext.c (strchr(s->text, '%') || strchr(s->text, '\\'))) s 781 libavfilter/vf_drawtext.c av_bprint_init(&s->expanded_text, 0, AV_BPRINT_SIZE_UNLIMITED); s 782 libavfilter/vf_drawtext.c av_bprint_init(&s->expanded_fontcolor, 0, AV_BPRINT_SIZE_UNLIMITED); s 804 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 806 libavfilter/vf_drawtext.c av_expr_free(s->x_pexpr); s 807 libavfilter/vf_drawtext.c av_expr_free(s->y_pexpr); s 808 libavfilter/vf_drawtext.c av_expr_free(s->a_pexpr); s 809 libavfilter/vf_drawtext.c av_expr_free(s->fontsize_pexpr); s 811 libavfilter/vf_drawtext.c s->x_pexpr = s->y_pexpr = s->a_pexpr = s->fontsize_pexpr = NULL; s 813 libavfilter/vf_drawtext.c av_freep(&s->positions); s 814 libavfilter/vf_drawtext.c s->nb_positions = 0; s 816 libavfilter/vf_drawtext.c av_tree_enumerate(s->glyphs, NULL, NULL, glyph_enu_free); s 817 libavfilter/vf_drawtext.c av_tree_destroy(s->glyphs); s 818 libavfilter/vf_drawtext.c s->glyphs = NULL; s 820 libavfilter/vf_drawtext.c FT_Done_Face(s->face); s 821 libavfilter/vf_drawtext.c FT_Stroker_Done(s->stroker); s 822 libavfilter/vf_drawtext.c FT_Done_FreeType(s->library); s 824 libavfilter/vf_drawtext.c av_bprint_finalize(&s->expanded_text, NULL); s 825 libavfilter/vf_drawtext.c av_bprint_finalize(&s->expanded_fontcolor, NULL); s 831 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 835 libavfilter/vf_drawtext.c ff_draw_init(&s->dc, inlink->format, FF_DRAW_PROCESS_ALPHA); s 836 libavfilter/vf_drawtext.c ff_draw_color(&s->dc, &s->fontcolor, s->fontcolor.rgba); s 837 libavfilter/vf_drawtext.c ff_draw_color(&s->dc, &s->shadowcolor, s->shadowcolor.rgba); s 838 libavfilter/vf_drawtext.c ff_draw_color(&s->dc, &s->bordercolor, s->bordercolor.rgba); s 839 libavfilter/vf_drawtext.c ff_draw_color(&s->dc, &s->boxcolor, s->boxcolor.rgba); s 841 libavfilter/vf_drawtext.c s->var_values[VAR_w] = s->var_values[VAR_W] = s->var_values[VAR_MAIN_W] = inlink->w; s 842 libavfilter/vf_drawtext.c s->var_values[VAR_h] = s->var_values[VAR_H] = s->var_values[VAR_MAIN_H] = inlink->h; s 843 libavfilter/vf_drawtext.c s->var_values[VAR_SAR] = inlink->sample_aspect_ratio.num ? av_q2d(inlink->sample_aspect_ratio) : 1; s 844 libavfilter/vf_drawtext.c s->var_values[VAR_DAR] = (double)inlink->w / inlink->h * s->var_values[VAR_SAR]; s 845 libavfilter/vf_drawtext.c s->var_values[VAR_HSUB] = 1 << s->dc.hsub_max; s 846 libavfilter/vf_drawtext.c s->var_values[VAR_VSUB] = 1 << s->dc.vsub_max; s 847 libavfilter/vf_drawtext.c s->var_values[VAR_X] = NAN; s 848 libavfilter/vf_drawtext.c s->var_values[VAR_Y] = NAN; s 849 libavfilter/vf_drawtext.c s->var_values[VAR_T] = NAN; s 851 libavfilter/vf_drawtext.c av_lfg_init(&s->prng, av_get_random_seed()); s 853 libavfilter/vf_drawtext.c av_expr_free(s->x_pexpr); s 854 libavfilter/vf_drawtext.c av_expr_free(s->y_pexpr); s 855 libavfilter/vf_drawtext.c av_expr_free(s->a_pexpr); s 856 libavfilter/vf_drawtext.c s->x_pexpr = s->y_pexpr = s->a_pexpr = NULL; s 858 libavfilter/vf_drawtext.c if ((ret = av_expr_parse(&s->x_pexpr, expr = s->x_expr, var_names, s 860 libavfilter/vf_drawtext.c (ret = av_expr_parse(&s->y_pexpr, expr = s->y_expr, var_names, s 862 libavfilter/vf_drawtext.c (ret = av_expr_parse(&s->a_pexpr, expr = s->a_expr, var_names, s 921 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 923 libavfilter/vf_drawtext.c av_bprintf(bp, "%c", av_get_picture_type_char(s->var_values[VAR_PICT_TYPE])); s 930 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 932 libavfilter/vf_drawtext.c double pts = s->var_values[VAR_T]; s 990 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 992 libavfilter/vf_drawtext.c av_bprintf(bp, "%d", (int)s->var_values[VAR_N]); s 999 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 1000 libavfilter/vf_drawtext.c AVDictionaryEntry *e = av_dict_get(s->metadata, argv[0], NULL, 0); s 1028 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 1032 libavfilter/vf_drawtext.c ret = av_expr_parse_and_eval(&res, argv[0], var_names, s->var_values, s 1034 libavfilter/vf_drawtext.c &s->prng, 0, ctx); s 1048 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 1061 libavfilter/vf_drawtext.c ret = av_expr_parse_and_eval(&res, argv[0], var_names, s->var_values, s 1063 libavfilter/vf_drawtext.c &s->prng, 0, ctx); s 1216 libavfilter/vf_drawtext.c static int draw_glyphs(DrawTextContext *s, AVFrame *frame, s 1221 libavfilter/vf_drawtext.c char *text = s->expanded_text.str; s 1238 libavfilter/vf_drawtext.c dummy.fontsize = s->fontsize; s 1239 libavfilter/vf_drawtext.c glyph = av_tree_find(s->glyphs, &dummy, glyph_cmp, NULL); s 1247 libavfilter/vf_drawtext.c x1 = s->positions[i].x+s->x+x - borderw; s 1248 libavfilter/vf_drawtext.c y1 = s->positions[i].y+s->y+y - borderw; s 1250 libavfilter/vf_drawtext.c ff_blend_mask(&s->dc, color, s 1262 libavfilter/vf_drawtext.c static void update_color_with_alpha(DrawTextContext *s, FFDrawColor *color, const FFDrawColor incolor) s 1265 libavfilter/vf_drawtext.c color->rgba[3] = (color->rgba[3] * s->alpha) / 255; s 1266 libavfilter/vf_drawtext.c ff_draw_color(&s->dc, color, color->rgba); s 1269 libavfilter/vf_drawtext.c static void update_alpha(DrawTextContext *s) s 1271 libavfilter/vf_drawtext.c double alpha = av_expr_eval(s->a_pexpr, s->var_values, &s->prng); s 1277 libavfilter/vf_drawtext.c s->alpha = 255; s 1279 libavfilter/vf_drawtext.c s->alpha = 0; s 1281 libavfilter/vf_drawtext.c s->alpha = 256 * alpha; s 1287 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 1304 libavfilter/vf_drawtext.c AVBPrint *bp = &s->expanded_text; s 1313 libavfilter/vf_drawtext.c if(s->basetime != AV_NOPTS_VALUE) s 1314 libavfilter/vf_drawtext.c now= frame->pts*av_q2d(ctx->inputs[0]->time_base) + s->basetime/1000000; s 1316 libavfilter/vf_drawtext.c switch (s->exp_mode) { s 1318 libavfilter/vf_drawtext.c av_bprintf(bp, "%s", s->text); s 1321 libavfilter/vf_drawtext.c if ((ret = expand_text(ctx, s->text, &s->expanded_text)) < 0) s 1326 libavfilter/vf_drawtext.c av_bprint_strftime(bp, s->text, <ime); s 1330 libavfilter/vf_drawtext.c if (s->tc_opt_string) { s 1332 libavfilter/vf_drawtext.c av_timecode_make_string(&s->tc, tcbuf, inlink->frame_count_out); s 1334 libavfilter/vf_drawtext.c av_bprintf(bp, "%s%s", s->text, tcbuf); s 1339 libavfilter/vf_drawtext.c text = s->expanded_text.str; s 1340 libavfilter/vf_drawtext.c if ((len = s->expanded_text.len) > s->nb_positions) { s 1341 libavfilter/vf_drawtext.c if (!(s->positions = s 1342 libavfilter/vf_drawtext.c av_realloc(s->positions, len*sizeof(*s->positions)))) s 1344 libavfilter/vf_drawtext.c s->nb_positions = len; s 1347 libavfilter/vf_drawtext.c if (s->fontcolor_expr[0]) { s 1349 libavfilter/vf_drawtext.c av_bprint_clear(&s->expanded_fontcolor); s 1350 libavfilter/vf_drawtext.c if ((ret = expand_text(ctx, s->fontcolor_expr, &s->expanded_fontcolor)) < 0) s 1352 libavfilter/vf_drawtext.c if (!av_bprint_is_complete(&s->expanded_fontcolor)) s 1354 libavfilter/vf_drawtext.c av_log(s, AV_LOG_DEBUG, "Evaluated fontcolor is '%s'\n", s->expanded_fontcolor.str); s 1355 libavfilter/vf_drawtext.c ret = av_parse_color(s->fontcolor.rgba, s->expanded_fontcolor.str, -1, s); s 1358 libavfilter/vf_drawtext.c ff_draw_color(&s->dc, &s->fontcolor, s->fontcolor.rgba); s 1374 libavfilter/vf_drawtext.c dummy.fontsize = s->fontsize; s 1375 libavfilter/vf_drawtext.c glyph = av_tree_find(s->glyphs, &dummy, glyph_cmp, NULL); s 1387 libavfilter/vf_drawtext.c s->max_glyph_h = y_max - y_min; s 1388 libavfilter/vf_drawtext.c s->max_glyph_w = x_max - x_min; s 1404 libavfilter/vf_drawtext.c y += s->max_glyph_h + s->line_spacing; s 1412 libavfilter/vf_drawtext.c dummy.fontsize = s->fontsize; s 1413 libavfilter/vf_drawtext.c glyph = av_tree_find(s->glyphs, &dummy, glyph_cmp, NULL); s 1416 libavfilter/vf_drawtext.c if (s->use_kerning && prev_glyph && glyph->code) { s 1417 libavfilter/vf_drawtext.c FT_Get_Kerning(s->face, prev_glyph->code, glyph->code, s 1423 libavfilter/vf_drawtext.c s->positions[i].x = x + glyph->bitmap_left; s 1424 libavfilter/vf_drawtext.c s->positions[i].y = y - glyph->bitmap_top + y_max; s 1425 libavfilter/vf_drawtext.c if (code == '\t') x = (x / s->tabsize + 1)*s->tabsize; s 1431 libavfilter/vf_drawtext.c s->var_values[VAR_TW] = s->var_values[VAR_TEXT_W] = max_text_line_w; s 1432 libavfilter/vf_drawtext.c s->var_values[VAR_TH] = s->var_values[VAR_TEXT_H] = y + s->max_glyph_h; s 1434 libavfilter/vf_drawtext.c s->var_values[VAR_MAX_GLYPH_W] = s->max_glyph_w; s 1435 libavfilter/vf_drawtext.c s->var_values[VAR_MAX_GLYPH_H] = s->max_glyph_h; s 1436 libavfilter/vf_drawtext.c s->var_values[VAR_MAX_GLYPH_A] = s->var_values[VAR_ASCENT ] = y_max; s 1437 libavfilter/vf_drawtext.c s->var_values[VAR_MAX_GLYPH_D] = s->var_values[VAR_DESCENT] = y_min; s 1439 libavfilter/vf_drawtext.c s->var_values[VAR_LINE_H] = s->var_values[VAR_LH] = s->max_glyph_h; s 1441 libavfilter/vf_drawtext.c s->x = s->var_values[VAR_X] = av_expr_eval(s->x_pexpr, s->var_values, &s->prng); s 1442 libavfilter/vf_drawtext.c s->y = s->var_values[VAR_Y] = av_expr_eval(s->y_pexpr, s->var_values, &s->prng); s 1444 libavfilter/vf_drawtext.c s->x = s->var_values[VAR_X] = av_expr_eval(s->x_pexpr, s->var_values, &s->prng); s 1446 libavfilter/vf_drawtext.c update_alpha(s); s 1447 libavfilter/vf_drawtext.c update_color_with_alpha(s, &fontcolor , s->fontcolor ); s 1448 libavfilter/vf_drawtext.c update_color_with_alpha(s, &shadowcolor, s->shadowcolor); s 1449 libavfilter/vf_drawtext.c update_color_with_alpha(s, &bordercolor, s->bordercolor); s 1450 libavfilter/vf_drawtext.c update_color_with_alpha(s, &boxcolor , s->boxcolor ); s 1453 libavfilter/vf_drawtext.c box_h = y + s->max_glyph_h; s 1455 libavfilter/vf_drawtext.c if (s->fix_bounds) { s 1458 libavfilter/vf_drawtext.c int boxoffset = s->draw_box ? FFMAX(s->boxborderw, 0) : 0; s 1459 libavfilter/vf_drawtext.c int borderoffset = s->borderw ? FFMAX(s->borderw, 0) : 0; s 1462 libavfilter/vf_drawtext.c (s->shadowx < 0 ? FFABS(s->shadowx) : 0)); s 1464 libavfilter/vf_drawtext.c (s->shadowy < 0 ? FFABS(s->shadowy) : 0)); s 1467 libavfilter/vf_drawtext.c (s->shadowx > 0 ? s->shadowx : 0)); s 1469 libavfilter/vf_drawtext.c (s->shadowy > 0 ? s->shadowy : 0)); s 1472 libavfilter/vf_drawtext.c if (s->x - offsetleft < 0) s->x = offsetleft; s 1473 libavfilter/vf_drawtext.c if (s->y - offsettop < 0) s->y = offsettop; s 1475 libavfilter/vf_drawtext.c if (s->x + box_w + offsetright > width) s 1476 libavfilter/vf_drawtext.c s->x = FFMAX(width - box_w - offsetright, 0); s 1477 libavfilter/vf_drawtext.c if (s->y + box_h + offsetbottom > height) s 1478 libavfilter/vf_drawtext.c s->y = FFMAX(height - box_h - offsetbottom, 0); s 1482 libavfilter/vf_drawtext.c if (s->draw_box) s 1483 libavfilter/vf_drawtext.c ff_blend_rectangle(&s->dc, &boxcolor, s 1485 libavfilter/vf_drawtext.c s->x - s->boxborderw, s->y - s->boxborderw, s 1486 libavfilter/vf_drawtext.c box_w + s->boxborderw * 2, box_h + s->boxborderw * 2); s 1488 libavfilter/vf_drawtext.c if (s->shadowx || s->shadowy) { s 1489 libavfilter/vf_drawtext.c if ((ret = draw_glyphs(s, frame, width, height, s 1490 libavfilter/vf_drawtext.c &shadowcolor, s->shadowx, s->shadowy, 0)) < 0) s 1494 libavfilter/vf_drawtext.c if (s->borderw) { s 1495 libavfilter/vf_drawtext.c if ((ret = draw_glyphs(s, frame, width, height, s 1496 libavfilter/vf_drawtext.c &bordercolor, 0, 0, s->borderw)) < 0) s 1499 libavfilter/vf_drawtext.c if ((ret = draw_glyphs(s, frame, width, height, s 1510 libavfilter/vf_drawtext.c DrawTextContext *s = ctx->priv; s 1513 libavfilter/vf_drawtext.c if (s->reload) { s 1519 libavfilter/vf_drawtext.c if (s->text_shaping) s 1527 libavfilter/vf_drawtext.c s->var_values[VAR_N] = inlink->frame_count_out + s->start_number; s 1528 libavfilter/vf_drawtext.c s->var_values[VAR_T] = frame->pts == AV_NOPTS_VALUE ? s 1531 libavfilter/vf_drawtext.c s->var_values[VAR_PICT_TYPE] = frame->pict_type; s 1532 libavfilter/vf_drawtext.c s->var_values[VAR_PKT_POS] = frame->pkt_pos; s 1533 libavfilter/vf_drawtext.c s->var_values[VAR_PKT_DURATION] = frame->pkt_duration * av_q2d(inlink->time_base); s 1534 libavfilter/vf_drawtext.c s->var_values[VAR_PKT_SIZE] = frame->pkt_size; s 1535 libavfilter/vf_drawtext.c s->metadata = frame->metadata; s 1540 libavfilter/vf_drawtext.c (int)s->var_values[VAR_N], s->var_values[VAR_T], s 1541 libavfilter/vf_drawtext.c (int)s->var_values[VAR_TEXT_W], (int)s->var_values[VAR_TEXT_H], s 1542 libavfilter/vf_drawtext.c s->x, s->y); s 86 libavfilter/vf_entropy.c EntropyContext *s = ctx->priv; s 88 libavfilter/vf_entropy.c s->nb_planes = desc->nb_components; s 90 libavfilter/vf_entropy.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 91 libavfilter/vf_entropy.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 92 libavfilter/vf_entropy.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 93 libavfilter/vf_entropy.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 95 libavfilter/vf_entropy.c s->depth = desc->comp[0].depth; s 96 libavfilter/vf_entropy.c s->is_rgb = ff_fill_rgba_map(s->rgba_map, inlink->format) >= 0; s 98 libavfilter/vf_entropy.c s->planenames[0] = s->is_rgb ? 'R' : 'Y'; s 99 libavfilter/vf_entropy.c s->planenames[1] = s->is_rgb ? 'G' : 'U'; s 100 libavfilter/vf_entropy.c s->planenames[2] = s->is_rgb ? 'B' : 'V'; s 101 libavfilter/vf_entropy.c s->planenames[3] = 'A'; s 103 libavfilter/vf_entropy.c s->histogram = av_malloc_array(1 << s->depth, sizeof(*s->histogram)); s 104 libavfilter/vf_entropy.c if (!s->histogram) s 114 libavfilter/vf_entropy.c EntropyContext *s = ctx->priv; s 117 libavfilter/vf_entropy.c for (plane = 0; plane < s->nb_planes; plane++) { s 118 libavfilter/vf_entropy.c int cidx = s->is_rgb ? s->rgba_map[plane] : plane; s 121 libavfilter/vf_entropy.c float total = s->planewidth[plane] * s->planeheight[plane]; s 126 libavfilter/vf_entropy.c memset(s->histogram, 0, (1 << s->depth) * sizeof(*s->histogram)); s 128 libavfilter/vf_entropy.c if (s->depth <= 8) { s 129 libavfilter/vf_entropy.c for (y = 0; y < s->planeheight[plane]; y++) { s 130 libavfilter/vf_entropy.c for (x = 0; x < s->planewidth[plane]; x++) { s 131 libavfilter/vf_entropy.c s->histogram[src8[x]]++; s 137 libavfilter/vf_entropy.c for (y = 0; y < s->planeheight[plane]; y++) { s 138 libavfilter/vf_entropy.c for (x = 0; x < s->planewidth[plane]; x++) { s 139 libavfilter/vf_entropy.c s->histogram[src16[x]]++; s 146 libavfilter/vf_entropy.c for (y = 0; y < 1 << s->depth; y++) { s 147 libavfilter/vf_entropy.c if (s->mode == 0) { s 148 libavfilter/vf_entropy.c if (s->histogram[y]) { s 149 libavfilter/vf_entropy.c float p = s->histogram[y] / total; s 152 libavfilter/vf_entropy.c } else if (s->mode == 1) { s 153 libavfilter/vf_entropy.c if (y && (s->histogram[y] - s->histogram[y - 1]) != 0) { s 154 libavfilter/vf_entropy.c float p = FFABS(s->histogram[y] - s->histogram[y - 1]) / total; s 160 libavfilter/vf_entropy.c snprintf(key, sizeof(key), "lavfi.entropy.entropy.%s.%c", s->mode ? "diff" : "normal", s->planenames[cidx]); s 163 libavfilter/vf_entropy.c snprintf(key, sizeof(key), "lavfi.entropy.normalized_entropy.%s.%c", s->mode ? "diff" : "normal", s->planenames[cidx]); s 164 libavfilter/vf_entropy.c snprintf(metabuf, sizeof(metabuf), "%f", entropy / log2(1 << s->depth)); s 173 libavfilter/vf_entropy.c EntropyContext *s = ctx->priv; s 175 libavfilter/vf_entropy.c av_freep(&s->histogram); s 204 libavfilter/vf_extractplanes.c ExtractPlanesContext *s = ctx->priv; s 213 libavfilter/vf_extractplanes.c if (s->requested_planes & ~plane_avail) { s 217 libavfilter/vf_extractplanes.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 220 libavfilter/vf_extractplanes.c s->depth = desc->comp[0].depth >> 3; s 221 libavfilter/vf_extractplanes.c s->step = av_get_padded_bits_per_pixel(desc) >> 3; s 222 libavfilter/vf_extractplanes.c s->is_packed = !(desc->flags & AV_PIX_FMT_FLAG_PLANAR) && s 227 libavfilter/vf_extractplanes.c s->map[i] = rgba_map[s->map[i]]; s 237 libavfilter/vf_extractplanes.c ExtractPlanesContext *s = ctx->priv; s 241 libavfilter/vf_extractplanes.c if (s->map[output] == 1 || s->map[output] == 2) { s 277 libavfilter/vf_extractplanes.c ExtractPlanesContext *s = ctx->priv; s 282 libavfilter/vf_extractplanes.c const int idx = s->map[i]; s 295 libavfilter/vf_extractplanes.c if (s->is_packed) { s 299 libavfilter/vf_extractplanes.c s->depth, s 300 libavfilter/vf_extractplanes.c s->step, idx); s 304 libavfilter/vf_extractplanes.c s->linesize[idx], outlink->h); s 324 libavfilter/vf_extractplanes.c ExtractPlanesContext *s = ctx->priv; s 325 libavfilter/vf_extractplanes.c int planes = (s->requested_planes & 0xf) | (s->requested_planes >> 4); s 338 libavfilter/vf_extractplanes.c s->map[ctx->nb_outputs] = i; s 387 libavfilter/vf_extractplanes.c ExtractPlanesContext *s = ctx->priv; s 389 libavfilter/vf_extractplanes.c s->requested_planes = PLANE_A; s 75 libavfilter/vf_fade.c FadeContext *s = ctx->priv; s 77 libavfilter/vf_fade.c s->fade_per_frame = (1 << 16) / s->nb_frames; s 78 libavfilter/vf_fade.c s->fade_state = VF_FADE_WAITING; s 80 libavfilter/vf_fade.c if (s->duration != 0) { s 82 libavfilter/vf_fade.c s->nb_frames = 0; // Mostly to clean up logging s 86 libavfilter/vf_fade.c if (s->start_frame || s->nb_frames) { s 89 libavfilter/vf_fade.c s->type == FADE_IN ? "in" : "out", s->start_frame, s 90 libavfilter/vf_fade.c s->nb_frames,s->alpha); s 92 libavfilter/vf_fade.c if (s->start_time || s->duration) { s 95 libavfilter/vf_fade.c s->type == FADE_IN ? "in" : "out", (s->start_time / (double)AV_TIME_BASE), s 96 libavfilter/vf_fade.c (s->duration / (double)AV_TIME_BASE),s->alpha); s 99 libavfilter/vf_fade.c s->black_fade = !memcmp(s->color_rgba, "\x00\x00\x00\xff", 4); s 105 libavfilter/vf_fade.c const FadeContext *s = ctx->priv; s 153 libavfilter/vf_fade.c if (s->alpha) { s 154 libavfilter/vf_fade.c if (s->black_fade) s 159 libavfilter/vf_fade.c if (s->black_fade) s 185 libavfilter/vf_fade.c static av_always_inline void filter_rgb(FadeContext *s, const AVFrame *frame, s 190 libavfilter/vf_fade.c const uint8_t r_idx = s->rgba_map[R]; s 191 libavfilter/vf_fade.c const uint8_t g_idx = s->rgba_map[G]; s 192 libavfilter/vf_fade.c const uint8_t b_idx = s->rgba_map[B]; s 193 libavfilter/vf_fade.c const uint8_t a_idx = s->rgba_map[A]; s 194 libavfilter/vf_fade.c const uint8_t *c = s->color_rgba; s 199 libavfilter/vf_fade.c #define INTERP(c_name, c_idx) av_clip_uint8(((c[c_idx]<<16) + ((int)p[c_name] - (int)c[c_idx]) * s->factor + (1<<15)) >> 16) s 210 libavfilter/vf_fade.c static av_always_inline void filter_rgb_planar(FadeContext *s, const AVFrame *frame, s 215 libavfilter/vf_fade.c const uint8_t *c = s->color_rgba; s 223 libavfilter/vf_fade.c #define INTERPP(c_name, c_idx) av_clip_uint8(((c[c_idx]<<16) + ((int)c_name - (int)c[c_idx]) * s->factor + (1<<15)) >> 16) s 236 libavfilter/vf_fade.c FadeContext *s = ctx->priv; s 241 libavfilter/vf_fade.c if (s->is_planar && s->alpha) s 242 libavfilter/vf_fade.c filter_rgb_planar(s, frame, slice_start, slice_end, 1); s 243 libavfilter/vf_fade.c else if (s->is_planar) s 244 libavfilter/vf_fade.c filter_rgb_planar(s, frame, slice_start, slice_end, 0); s 245 libavfilter/vf_fade.c else if (s->alpha) filter_rgb(s, frame, slice_start, slice_end, 1, 4); s 246 libavfilter/vf_fade.c else if (s->bpp == 3) filter_rgb(s, frame, slice_start, slice_end, 0, 3); s 247 libavfilter/vf_fade.c else if (s->bpp == 4) filter_rgb(s, frame, slice_start, slice_end, 0, 4); s 256 libavfilter/vf_fade.c FadeContext *s = ctx->priv; s 262 libavfilter/vf_fade.c for (int k = 0; k < 1 + 2 * (s->is_planar && s->is_rgb); k++) { s 265 libavfilter/vf_fade.c for (j = 0; j < frame->width * s->bpp; j++) { s 269 libavfilter/vf_fade.c *p = ((*p - s->black_level) * s->factor + s->black_level_scaled) >> 16; s 281 libavfilter/vf_fade.c FadeContext *s = ctx->priv; s 287 libavfilter/vf_fade.c for (int k = 0; k < 1 + 2 * (s->is_planar && s->is_rgb); k++) { s 290 libavfilter/vf_fade.c for (j = 0; j < frame->width * s->bpp; j++) { s 294 libavfilter/vf_fade.c *p = ((*p - s->black_level) * s->factor + s->black_level_scaled) >> 16; s 306 libavfilter/vf_fade.c FadeContext *s = ctx->priv; s 309 libavfilter/vf_fade.c const int width = AV_CEIL_RSHIFT(frame->width, s->hsub); s 310 libavfilter/vf_fade.c const int height= AV_CEIL_RSHIFT(frame->height, s->vsub); s 321 libavfilter/vf_fade.c *p = ((*p - 128) * s->factor + 8421367) >> 16; s 333 libavfilter/vf_fade.c FadeContext *s = ctx->priv; s 336 libavfilter/vf_fade.c const int width = AV_CEIL_RSHIFT(frame->width, s->hsub); s 337 libavfilter/vf_fade.c const int height= AV_CEIL_RSHIFT(frame->height, s->vsub); s 338 libavfilter/vf_fade.c const int mid = 1 << (s->depth - 1); s 347 libavfilter/vf_fade.c *p = ((*p - mid) * s->factor + add) >> 16; s 359 libavfilter/vf_fade.c FadeContext *s = ctx->priv; s 361 libavfilter/vf_fade.c int plane = s->is_packed_rgb ? 0 : A; s 367 libavfilter/vf_fade.c uint8_t *p = frame->data[plane] + i * frame->linesize[plane] + s->is_packed_rgb*s->rgba_map[A]; s 368 libavfilter/vf_fade.c int step = s->is_packed_rgb ? 4 : 1; s 373 libavfilter/vf_fade.c *p = ((*p - s->black_level) * s->factor + s->black_level_scaled) >> 16; s 384 libavfilter/vf_fade.c FadeContext *s = ctx->priv; s 386 libavfilter/vf_fade.c int plane = s->is_packed_rgb ? 0 : A; s 392 libavfilter/vf_fade.c uint16_t *p = (uint16_t *)(frame->data[plane] + i * frame->linesize[plane]) + s->is_packed_rgb*s->rgba_map[A]; s 393 libavfilter/vf_fade.c int step = s->is_packed_rgb ? 4 : 1; s 398 libavfilter/vf_fade.c *p = ((*p - s->black_level) * s->factor + s->black_level_scaled) >> 16; s 408 libavfilter/vf_fade.c FadeContext *s = inlink->dst->priv; s 411 libavfilter/vf_fade.c s->hsub = pixdesc->log2_chroma_w; s 412 libavfilter/vf_fade.c s->vsub = pixdesc->log2_chroma_h; s 414 libavfilter/vf_fade.c ff_fill_rgba_map(s->rgba_map, inlink->format); s 416 libavfilter/vf_fade.c s->depth = pixdesc->comp[0].depth; s 417 libavfilter/vf_fade.c s->bpp = pixdesc->flags & AV_PIX_FMT_FLAG_PLANAR ? s 420 libavfilter/vf_fade.c s->alpha &= !!(pixdesc->flags & AV_PIX_FMT_FLAG_ALPHA); s 421 libavfilter/vf_fade.c s->is_planar = pixdesc->flags & AV_PIX_FMT_FLAG_PLANAR; s 422 libavfilter/vf_fade.c s->is_rgb = pixdesc->flags & AV_PIX_FMT_FLAG_RGB; s 423 libavfilter/vf_fade.c s->is_packed_rgb = !s->is_planar && s->is_rgb; s 426 libavfilter/vf_fade.c s->black_level = s 427 libavfilter/vf_fade.c ff_fmt_is_in(inlink->format, studio_level_pix_fmts) && !s->alpha ? 16 * (1 << (s->depth - 8)): 0; s 430 libavfilter/vf_fade.c s->black_level_scaled = (s->black_level << 16) + 32768; s 432 libavfilter/vf_fade.c s->filter_slice_luma = s->depth <= 8 ? filter_slice_luma : filter_slice_luma16; s 433 libavfilter/vf_fade.c s->filter_slice_chroma = s->depth <= 8 ? filter_slice_chroma : filter_slice_chroma16; s 434 libavfilter/vf_fade.c s->filter_slice_alpha = s->depth <= 8 ? filter_slice_alpha : filter_slice_alpha16; s 442 libavfilter/vf_fade.c FadeContext *s = ctx->priv; s 446 libavfilter/vf_fade.c if (s->fade_state == VF_FADE_WAITING) { s 447 libavfilter/vf_fade.c s->factor=0; s 448 libavfilter/vf_fade.c if (frame_timestamp >= s->start_time/(double)AV_TIME_BASE s 449 libavfilter/vf_fade.c && inlink->frame_count_out >= s->start_frame) { s 451 libavfilter/vf_fade.c s->fade_state = VF_FADE_FADING; s 454 libavfilter/vf_fade.c if (s->start_time == 0 && s->start_frame != 0) { s 455 libavfilter/vf_fade.c s->start_time = frame_timestamp*(double)AV_TIME_BASE; s 459 libavfilter/vf_fade.c if (s->start_time != 0 && s->start_frame == 0) { s 460 libavfilter/vf_fade.c s->start_frame = inlink->frame_count_out; s 464 libavfilter/vf_fade.c if (s->fade_state == VF_FADE_FADING) { s 465 libavfilter/vf_fade.c if (s->duration == 0) { s 467 libavfilter/vf_fade.c s->factor = (inlink->frame_count_out - s->start_frame) * s->fade_per_frame; s 468 libavfilter/vf_fade.c if (inlink->frame_count_out > s->start_frame + s->nb_frames) { s 469 libavfilter/vf_fade.c s->fade_state = VF_FADE_DONE; s 474 libavfilter/vf_fade.c s->factor = (frame_timestamp - s->start_time/(double)AV_TIME_BASE) s 475 libavfilter/vf_fade.c * (float) UINT16_MAX / (s->duration/(double)AV_TIME_BASE); s 476 libavfilter/vf_fade.c if (frame_timestamp > s->start_time/(double)AV_TIME_BASE s 477 libavfilter/vf_fade.c + s->duration/(double)AV_TIME_BASE) { s 478 libavfilter/vf_fade.c s->fade_state = VF_FADE_DONE; s 482 libavfilter/vf_fade.c if (s->fade_state == VF_FADE_DONE) { s 483 libavfilter/vf_fade.c s->factor=UINT16_MAX; s 486 libavfilter/vf_fade.c s->factor = av_clip_uint16(s->factor); s 489 libavfilter/vf_fade.c if (s->type == FADE_OUT) { s 490 libavfilter/vf_fade.c s->factor=UINT16_MAX-s->factor; s 493 libavfilter/vf_fade.c if (s->factor < UINT16_MAX) { s 494 libavfilter/vf_fade.c if (s->alpha) { s 495 libavfilter/vf_fade.c ctx->internal->execute(ctx, s->filter_slice_alpha, frame, NULL, s 497 libavfilter/vf_fade.c } else if (s->is_rgb && !s->black_fade) { s 502 libavfilter/vf_fade.c ctx->internal->execute(ctx, s->filter_slice_luma, frame, NULL, s 505 libavfilter/vf_fade.c if (frame->data[1] && frame->data[2] && !s->is_rgb) { s 507 libavfilter/vf_fade.c ctx->internal->execute(ctx, s->filter_slice_chroma, frame, NULL, s 96 libavfilter/vf_fftdnoiz.c FFTdnoizContext *s = ctx->priv; s 100 libavfilter/vf_fftdnoiz.c PlaneContext *p = &s->planes[i]; s 102 libavfilter/vf_fftdnoiz.c p->fft = av_fft_init(s->block_bits, 0); s 103 libavfilter/vf_fftdnoiz.c p->ifft = av_fft_init(s->block_bits, 1); s 191 libavfilter/vf_fftdnoiz.c FFTdnoizContext *s = ctx->priv; s 195 libavfilter/vf_fftdnoiz.c s->depth = desc->comp[0].depth; s 197 libavfilter/vf_fftdnoiz.c if (s->depth <= 8) { s 198 libavfilter/vf_fftdnoiz.c s->import_row = import_row8; s 199 libavfilter/vf_fftdnoiz.c s->export_row = export_row8; s 201 libavfilter/vf_fftdnoiz.c s->import_row = import_row16; s 202 libavfilter/vf_fftdnoiz.c s->export_row = export_row16; s 203 libavfilter/vf_fftdnoiz.c s->sigma *= 1 << (s->depth - 8) * (1 + s->nb_prev + s->nb_next); s 206 libavfilter/vf_fftdnoiz.c s->planes[1].planewidth = s->planes[2].planewidth = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 207 libavfilter/vf_fftdnoiz.c s->planes[0].planewidth = s->planes[3].planewidth = inlink->w; s 208 libavfilter/vf_fftdnoiz.c s->planes[1].planeheight = s->planes[2].planeheight = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 209 libavfilter/vf_fftdnoiz.c s->planes[0].planeheight = s->planes[3].planeheight = inlink->h; s 211 libavfilter/vf_fftdnoiz.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 213 libavfilter/vf_fftdnoiz.c for (i = 0; i < s->nb_planes; i++) { s 214 libavfilter/vf_fftdnoiz.c PlaneContext *p = &s->planes[i]; s 217 libavfilter/vf_fftdnoiz.c p->b = 1 << s->block_bits; s 219 libavfilter/vf_fftdnoiz.c p->o = p->b * s->overlap; s 230 libavfilter/vf_fftdnoiz.c if (s->nb_prev > 0) { s 235 libavfilter/vf_fftdnoiz.c if (s->nb_next > 0) { s 250 libavfilter/vf_fftdnoiz.c static void import_plane(FFTdnoizContext *s, s 254 libavfilter/vf_fftdnoiz.c PlaneContext *p = &s->planes[plane]; s 262 libavfilter/vf_fftdnoiz.c const int bpp = (s->depth + 7) / 8; s 278 libavfilter/vf_fftdnoiz.c s->import_row(dst, src, rw); s 314 libavfilter/vf_fftdnoiz.c static void export_plane(FFTdnoizContext *s, s 318 libavfilter/vf_fftdnoiz.c PlaneContext *p = &s->planes[plane]; s 319 libavfilter/vf_fftdnoiz.c const int depth = s->depth; s 363 libavfilter/vf_fftdnoiz.c s->export_row(hdst + woff, dst, rw, scale, depth); s 372 libavfilter/vf_fftdnoiz.c static void filter_plane3d2(FFTdnoizContext *s, int plane, float *pbuffer, float *nbuffer) s 374 libavfilter/vf_fftdnoiz.c PlaneContext *p = &s->planes[plane]; s 379 libavfilter/vf_fftdnoiz.c const float sigma = s->sigma * s->sigma * block * block; s 380 libavfilter/vf_fftdnoiz.c const float limit = 1.f - s->amount; s 432 libavfilter/vf_fftdnoiz.c static void filter_plane3d1(FFTdnoizContext *s, int plane, float *pbuffer) s 434 libavfilter/vf_fftdnoiz.c PlaneContext *p = &s->planes[plane]; s 439 libavfilter/vf_fftdnoiz.c const float sigma = s->sigma * s->sigma * block * block; s 440 libavfilter/vf_fftdnoiz.c const float limit = 1.f - s->amount; s 484 libavfilter/vf_fftdnoiz.c static void filter_plane2d(FFTdnoizContext *s, int plane) s 486 libavfilter/vf_fftdnoiz.c PlaneContext *p = &s->planes[plane]; s 491 libavfilter/vf_fftdnoiz.c const float sigma = s->sigma * s->sigma * block * block; s 492 libavfilter/vf_fftdnoiz.c const float limit = 1.f - s->amount; s 521 libavfilter/vf_fftdnoiz.c FFTdnoizContext *s = ctx->priv; s 526 libavfilter/vf_fftdnoiz.c if (s->nb_next > 0 && s->nb_prev > 0) { s 527 libavfilter/vf_fftdnoiz.c av_frame_free(&s->prev); s 528 libavfilter/vf_fftdnoiz.c s->prev = s->cur; s 529 libavfilter/vf_fftdnoiz.c s->cur = s->next; s 530 libavfilter/vf_fftdnoiz.c s->next = in; s 532 libavfilter/vf_fftdnoiz.c if (!s->prev && s->cur) { s 533 libavfilter/vf_fftdnoiz.c s->prev = av_frame_clone(s->cur); s 534 libavfilter/vf_fftdnoiz.c if (!s->prev) s 537 libavfilter/vf_fftdnoiz.c if (!s->cur) s 539 libavfilter/vf_fftdnoiz.c } else if (s->nb_next > 0) { s 540 libavfilter/vf_fftdnoiz.c av_frame_free(&s->cur); s 541 libavfilter/vf_fftdnoiz.c s->cur = s->next; s 542 libavfilter/vf_fftdnoiz.c s->next = in; s 544 libavfilter/vf_fftdnoiz.c if (!s->cur) s 546 libavfilter/vf_fftdnoiz.c } else if (s->nb_prev > 0) { s 547 libavfilter/vf_fftdnoiz.c av_frame_free(&s->prev); s 548 libavfilter/vf_fftdnoiz.c s->prev = s->cur; s 549 libavfilter/vf_fftdnoiz.c s->cur = in; s 551 libavfilter/vf_fftdnoiz.c if (!s->prev) s 552 libavfilter/vf_fftdnoiz.c s->prev = av_frame_clone(s->cur); s 553 libavfilter/vf_fftdnoiz.c if (!s->prev) s 556 libavfilter/vf_fftdnoiz.c s->cur = in; s 559 libavfilter/vf_fftdnoiz.c if (av_frame_is_writable(in) && s->nb_next == 0 && s->nb_prev == 0) { s 567 libavfilter/vf_fftdnoiz.c av_frame_copy_props(out, s->cur); s 570 libavfilter/vf_fftdnoiz.c for (plane = 0; plane < s->nb_planes; plane++) { s 571 libavfilter/vf_fftdnoiz.c PlaneContext *p = &s->planes[plane]; s 573 libavfilter/vf_fftdnoiz.c if (!((1 << plane) & s->planesf) || ctx->is_disabled) { s 576 libavfilter/vf_fftdnoiz.c s->cur->data[plane], s->cur->linesize[plane], s 581 libavfilter/vf_fftdnoiz.c if (s->next) { s 582 libavfilter/vf_fftdnoiz.c import_plane(s, s->next->data[plane], s->next->linesize[plane], s 586 libavfilter/vf_fftdnoiz.c if (s->prev) { s 587 libavfilter/vf_fftdnoiz.c import_plane(s, s->prev->data[plane], s->prev->linesize[plane], s 591 libavfilter/vf_fftdnoiz.c import_plane(s, s->cur->data[plane], s->cur->linesize[plane], s 594 libavfilter/vf_fftdnoiz.c if (s->next && s->prev) { s 595 libavfilter/vf_fftdnoiz.c filter_plane3d2(s, plane, p->buffer[PREV], p->buffer[NEXT]); s 596 libavfilter/vf_fftdnoiz.c } else if (s->next) { s 597 libavfilter/vf_fftdnoiz.c filter_plane3d1(s, plane, p->buffer[NEXT]); s 598 libavfilter/vf_fftdnoiz.c } else if (s->prev) { s 599 libavfilter/vf_fftdnoiz.c filter_plane3d1(s, plane, p->buffer[PREV]); s 601 libavfilter/vf_fftdnoiz.c filter_plane2d(s, plane); s 604 libavfilter/vf_fftdnoiz.c export_plane(s, out->data[plane], out->linesize[plane], s 608 libavfilter/vf_fftdnoiz.c if (s->nb_next == 0 && s->nb_prev == 0) { s 610 libavfilter/vf_fftdnoiz.c s->cur = NULL; s 612 libavfilter/vf_fftdnoiz.c av_frame_free(&s->cur); s 621 libavfilter/vf_fftdnoiz.c FFTdnoizContext *s = ctx->priv; s 626 libavfilter/vf_fftdnoiz.c if (ret == AVERROR_EOF && (s->nb_next > 0)) { s 629 libavfilter/vf_fftdnoiz.c if (s->next && s->nb_next > 0) s 630 libavfilter/vf_fftdnoiz.c buf = av_frame_clone(s->next); s 631 libavfilter/vf_fftdnoiz.c else if (s->cur) s 632 libavfilter/vf_fftdnoiz.c buf = av_frame_clone(s->cur); s 634 libavfilter/vf_fftdnoiz.c buf = av_frame_clone(s->prev); s 649 libavfilter/vf_fftdnoiz.c FFTdnoizContext *s = ctx->priv; s 653 libavfilter/vf_fftdnoiz.c PlaneContext *p = &s->planes[i]; s 664 libavfilter/vf_fftdnoiz.c av_frame_free(&s->prev); s 665 libavfilter/vf_fftdnoiz.c av_frame_free(&s->cur); s 666 libavfilter/vf_fftdnoiz.c av_frame_free(&s->next); s 68 libavfilter/vf_fftfilt.c void (*rdft_horizontal)(struct FFTFILTContext *s, AVFrame *in, int w, int h, int plane); s 69 libavfilter/vf_fftfilt.c void (*irdft_horizontal)(struct FFTFILTContext *s, AVFrame *out, int w, int h, int plane); s 97 libavfilter/vf_fftfilt.c FFTFILTContext *s = priv; s 98 libavfilter/vf_fftfilt.c return s->rdft_vdata[plane][(int)x * s->rdft_vlen[plane] + (int)y]; s 117 libavfilter/vf_fftfilt.c static void rdft_horizontal8(FFTFILTContext *s, AVFrame *in, int w, int h, int plane) s 123 libavfilter/vf_fftfilt.c s->rdft_hdata[plane][i * s->rdft_hlen[plane] + j] = *(in->data[plane] + in->linesize[plane] * i + j); s 125 libavfilter/vf_fftfilt.c copy_rev(s->rdft_hdata[plane] + i * s->rdft_hlen[plane], w, s->rdft_hlen[plane]); s 129 libavfilter/vf_fftfilt.c av_rdft_calc(s->hrdft[plane], s->rdft_hdata[plane] + i * s->rdft_hlen[plane]); s 132 libavfilter/vf_fftfilt.c static void rdft_horizontal16(FFTFILTContext *s, AVFrame *in, int w, int h, int plane) s 140 libavfilter/vf_fftfilt.c s->rdft_hdata[plane][i * s->rdft_hlen[plane] + j] = *(src + linesize * i + j); s 142 libavfilter/vf_fftfilt.c copy_rev(s->rdft_hdata[plane] + i * s->rdft_hlen[plane], w, s->rdft_hlen[plane]); s 146 libavfilter/vf_fftfilt.c av_rdft_calc(s->hrdft[plane], s->rdft_hdata[plane] + i * s->rdft_hlen[plane]); s 150 libavfilter/vf_fftfilt.c static void rdft_vertical(FFTFILTContext *s, int h, int plane) s 154 libavfilter/vf_fftfilt.c for (i = 0; i < s->rdft_hlen[plane]; i++) { s 156 libavfilter/vf_fftfilt.c s->rdft_vdata[plane][i * s->rdft_vlen[plane] + j] = s 157 libavfilter/vf_fftfilt.c s->rdft_hdata[plane][j * s->rdft_hlen[plane] + i]; s 158 libavfilter/vf_fftfilt.c copy_rev(s->rdft_vdata[plane] + i * s->rdft_vlen[plane], h, s->rdft_vlen[plane]); s 161 libavfilter/vf_fftfilt.c for (i = 0; i < s->rdft_hlen[plane]; i++) s 162 libavfilter/vf_fftfilt.c av_rdft_calc(s->vrdft[plane], s->rdft_vdata[plane] + i * s->rdft_vlen[plane]); s 165 libavfilter/vf_fftfilt.c static void irdft_vertical(FFTFILTContext *s, int h, int plane) s 169 libavfilter/vf_fftfilt.c for (i = 0; i < s->rdft_hlen[plane]; i++) s 170 libavfilter/vf_fftfilt.c av_rdft_calc(s->ivrdft[plane], s->rdft_vdata[plane] + i * s->rdft_vlen[plane]); s 172 libavfilter/vf_fftfilt.c for (i = 0; i < s->rdft_hlen[plane]; i++) s 174 libavfilter/vf_fftfilt.c s->rdft_hdata[plane][j * s->rdft_hlen[plane] + i] = s 175 libavfilter/vf_fftfilt.c s->rdft_vdata[plane][i * s->rdft_vlen[plane] + j]; s 179 libavfilter/vf_fftfilt.c static void irdft_horizontal8(FFTFILTContext *s, AVFrame *out, int w, int h, int plane) s 184 libavfilter/vf_fftfilt.c av_rdft_calc(s->ihrdft[plane], s->rdft_hdata[plane] + i * s->rdft_hlen[plane]); s 188 libavfilter/vf_fftfilt.c *(out->data[plane] + out->linesize[plane] * i + j) = av_clip(s->rdft_hdata[plane][i s 189 libavfilter/vf_fftfilt.c *s->rdft_hlen[plane] + j] * 4 / s 190 libavfilter/vf_fftfilt.c (s->rdft_hlen[plane] * s 191 libavfilter/vf_fftfilt.c s->rdft_vlen[plane]), 0, 255); s 194 libavfilter/vf_fftfilt.c static void irdft_horizontal16(FFTFILTContext *s, AVFrame *out, int w, int h, int plane) s 198 libavfilter/vf_fftfilt.c int max = (1 << s->depth) - 1; s 202 libavfilter/vf_fftfilt.c av_rdft_calc(s->ihrdft[plane], s->rdft_hdata[plane] + i * s->rdft_hlen[plane]); s 206 libavfilter/vf_fftfilt.c *(dst + linesize * i + j) = av_clip(s->rdft_hdata[plane][i s 207 libavfilter/vf_fftfilt.c *s->rdft_hlen[plane] + j] * 4 / s 208 libavfilter/vf_fftfilt.c (s->rdft_hlen[plane] * s 209 libavfilter/vf_fftfilt.c s->rdft_vlen[plane]), 0, max); s 214 libavfilter/vf_fftfilt.c FFTFILTContext *s = ctx->priv; s 217 libavfilter/vf_fftfilt.c if (!s->dc[U] && !s->dc[V]) { s 218 libavfilter/vf_fftfilt.c s->dc[U] = s->dc[Y]; s 219 libavfilter/vf_fftfilt.c s->dc[V] = s->dc[Y]; s 221 libavfilter/vf_fftfilt.c if (!s->dc[U]) s->dc[U] = s->dc[V]; s 222 libavfilter/vf_fftfilt.c if (!s->dc[V]) s->dc[V] = s->dc[U]; s 225 libavfilter/vf_fftfilt.c if (!s->weight_str[U] && !s->weight_str[V]) { s 226 libavfilter/vf_fftfilt.c s->weight_str[U] = av_strdup(s->weight_str[Y]); s 227 libavfilter/vf_fftfilt.c s->weight_str[V] = av_strdup(s->weight_str[Y]); s 229 libavfilter/vf_fftfilt.c if (!s->weight_str[U]) s->weight_str[U] = av_strdup(s->weight_str[V]); s 230 libavfilter/vf_fftfilt.c if (!s->weight_str[V]) s->weight_str[V] = av_strdup(s->weight_str[U]); s 238 libavfilter/vf_fftfilt.c ret = av_expr_parse(&s->weight_expr[plane], s->weight_str[plane], var_names, s 246 libavfilter/vf_fftfilt.c static void do_eval(FFTFILTContext *s, AVFilterLink *inlink, int plane) s 252 libavfilter/vf_fftfilt.c values[VAR_W] = s->planewidth[plane]; s 253 libavfilter/vf_fftfilt.c values[VAR_H] = s->planeheight[plane]; s 255 libavfilter/vf_fftfilt.c for (i = 0; i < s->rdft_hlen[plane]; i++) { s 257 libavfilter/vf_fftfilt.c for (j = 0; j < s->rdft_vlen[plane]; j++) { s 259 libavfilter/vf_fftfilt.c s->weight[plane][i * s->rdft_vlen[plane] + j] = s 260 libavfilter/vf_fftfilt.c av_expr_eval(s->weight_expr[plane], values, s); s 267 libavfilter/vf_fftfilt.c FFTFILTContext *s = inlink->dst->priv; s 272 libavfilter/vf_fftfilt.c s->depth = desc->comp[0].depth; s 273 libavfilter/vf_fftfilt.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 274 libavfilter/vf_fftfilt.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 275 libavfilter/vf_fftfilt.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 276 libavfilter/vf_fftfilt.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 278 libavfilter/vf_fftfilt.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 281 libavfilter/vf_fftfilt.c int w = s->planewidth[i]; s 282 libavfilter/vf_fftfilt.c int h = s->planeheight[i]; s 286 libavfilter/vf_fftfilt.c s->rdft_hbits[i] = rdft_hbits; s 287 libavfilter/vf_fftfilt.c s->rdft_hlen[i] = 1 << rdft_hbits; s 288 libavfilter/vf_fftfilt.c if (!(s->rdft_hdata[i] = av_malloc_array(h, s->rdft_hlen[i] * sizeof(FFTSample)))) s 291 libavfilter/vf_fftfilt.c if (!(s->hrdft[i] = av_rdft_init(s->rdft_hbits[i], DFT_R2C))) s 293 libavfilter/vf_fftfilt.c if (!(s->ihrdft[i] = av_rdft_init(s->rdft_hbits[i], IDFT_C2R))) s 298 libavfilter/vf_fftfilt.c s->rdft_vbits[i] = rdft_vbits; s 299 libavfilter/vf_fftfilt.c s->rdft_vlen[i] = 1 << rdft_vbits; s 300 libavfilter/vf_fftfilt.c if (!(s->rdft_vdata[i] = av_malloc_array(s->rdft_hlen[i], s->rdft_vlen[i] * sizeof(FFTSample)))) s 303 libavfilter/vf_fftfilt.c if (!(s->vrdft[i] = av_rdft_init(s->rdft_vbits[i], DFT_R2C))) s 305 libavfilter/vf_fftfilt.c if (!(s->ivrdft[i] = av_rdft_init(s->rdft_vbits[i], IDFT_C2R))) s 311 libavfilter/vf_fftfilt.c if(!(s->weight[plane] = av_malloc_array(s->rdft_hlen[plane], s->rdft_vlen[plane] * sizeof(double)))) s 314 libavfilter/vf_fftfilt.c if (s->eval_mode == EVAL_MODE_INIT) s 315 libavfilter/vf_fftfilt.c do_eval(s, inlink, plane); s 318 libavfilter/vf_fftfilt.c if (s->depth <= 8) { s 319 libavfilter/vf_fftfilt.c s->rdft_horizontal = rdft_horizontal8; s 320 libavfilter/vf_fftfilt.c s->irdft_horizontal = irdft_horizontal8; s 321 libavfilter/vf_fftfilt.c } else if (s->depth > 8) { s 322 libavfilter/vf_fftfilt.c s->rdft_horizontal = rdft_horizontal16; s 323 libavfilter/vf_fftfilt.c s->irdft_horizontal = irdft_horizontal16; s 334 libavfilter/vf_fftfilt.c FFTFILTContext *s = ctx->priv; s 346 libavfilter/vf_fftfilt.c for (plane = 0; plane < s->nb_planes; plane++) { s 347 libavfilter/vf_fftfilt.c int w = s->planewidth[plane]; s 348 libavfilter/vf_fftfilt.c int h = s->planeheight[plane]; s 350 libavfilter/vf_fftfilt.c if (s->eval_mode == EVAL_MODE_FRAME) s 351 libavfilter/vf_fftfilt.c do_eval(s, inlink, plane); s 353 libavfilter/vf_fftfilt.c s->rdft_horizontal(s, in, w, h, plane); s 354 libavfilter/vf_fftfilt.c rdft_vertical(s, h, plane); s 357 libavfilter/vf_fftfilt.c for (i = 0; i < s->rdft_hlen[plane]; i++) s 358 libavfilter/vf_fftfilt.c for (j = 0; j < s->rdft_vlen[plane]; j++) s 359 libavfilter/vf_fftfilt.c s->rdft_vdata[plane][i * s->rdft_vlen[plane] + j] *= s 360 libavfilter/vf_fftfilt.c s->weight[plane][i * s->rdft_vlen[plane] + j]; s 362 libavfilter/vf_fftfilt.c s->rdft_vdata[plane][0] += s->rdft_hlen[plane] * s->rdft_vlen[plane] * s->dc[plane]; s 364 libavfilter/vf_fftfilt.c irdft_vertical(s, h, plane); s 365 libavfilter/vf_fftfilt.c s->irdft_horizontal(s, out, w, h, plane); s 374 libavfilter/vf_fftfilt.c FFTFILTContext *s = ctx->priv; s 377 libavfilter/vf_fftfilt.c av_free(s->rdft_hdata[i]); s 378 libavfilter/vf_fftfilt.c av_free(s->rdft_vdata[i]); s 379 libavfilter/vf_fftfilt.c av_expr_free(s->weight_expr[i]); s 380 libavfilter/vf_fftfilt.c av_free(s->weight[i]); s 381 libavfilter/vf_fftfilt.c av_rdft_end(s->hrdft[i]); s 382 libavfilter/vf_fftfilt.c av_rdft_end(s->ihrdft[i]); s 383 libavfilter/vf_fftfilt.c av_rdft_end(s->vrdft[i]); s 384 libavfilter/vf_fftfilt.c av_rdft_end(s->ivrdft[i]); s 61 libavfilter/vf_fieldhint.c FieldHintContext *s = ctx->priv; s 64 libavfilter/vf_fieldhint.c if (!s->hint_file_str) { s 68 libavfilter/vf_fieldhint.c s->hint = av_fopen_utf8(s->hint_file_str, "r"); s 69 libavfilter/vf_fieldhint.c if (!s->hint) { s 71 libavfilter/vf_fieldhint.c av_log(ctx, AV_LOG_ERROR, "%s: %s\n", s->hint_file_str, av_err2str(ret)); s 97 libavfilter/vf_fieldhint.c FieldHintContext *s = inlink->dst->priv; s 101 libavfilter/vf_fieldhint.c if ((ret = av_image_fill_linesizes(s->planewidth, inlink->format, inlink->w)) < 0) s 104 libavfilter/vf_fieldhint.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 105 libavfilter/vf_fieldhint.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 107 libavfilter/vf_fieldhint.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 116 libavfilter/vf_fieldhint.c FieldHintContext *s = ctx->priv; s 124 libavfilter/vf_fieldhint.c av_frame_free(&s->frame[0]); s 125 libavfilter/vf_fieldhint.c s->frame[0] = s->frame[1]; s 126 libavfilter/vf_fieldhint.c s->frame[1] = s->frame[2]; s 127 libavfilter/vf_fieldhint.c s->frame[2] = in; s 128 libavfilter/vf_fieldhint.c if (!s->frame[1]) s 130 libavfilter/vf_fieldhint.c else if (!s->frame[0]) { s 131 libavfilter/vf_fieldhint.c s->frame[0] = av_frame_clone(s->frame[1]); s 132 libavfilter/vf_fieldhint.c if (!s->frame[0]) s 137 libavfilter/vf_fieldhint.c if (fgets(buf, sizeof(buf)-1, s->hint)) { s 138 libavfilter/vf_fieldhint.c s->line++; s 148 libavfilter/vf_fieldhint.c av_log(ctx, AV_LOG_ERROR, "Invalid entry at line %"PRId64".\n", s->line); s 151 libavfilter/vf_fieldhint.c switch (s->mode) { s 155 libavfilter/vf_fieldhint.c av_log(ctx, AV_LOG_ERROR, "Out of range frames %"PRId64" and/or %"PRId64" on line %"PRId64" for %"PRId64". input frame.\n", tf, bf, s->line, inlink->frame_count_out); s 162 libavfilter/vf_fieldhint.c av_log(ctx, AV_LOG_ERROR, "Out of range %"PRId64" and/or %"PRId64" on line %"PRId64" for %"PRId64". input frame.\n", tf, bf, s->line, inlink->frame_count_out); s 176 libavfilter/vf_fieldhint.c av_frame_copy_props(out, s->frame[1]); s 178 libavfilter/vf_fieldhint.c switch (s->mode) { s 180 libavfilter/vf_fieldhint.c top = s->frame[tf - outlink->frame_count_in + 1]; s 181 libavfilter/vf_fieldhint.c bottom = s->frame[bf - outlink->frame_count_in + 1]; s 184 libavfilter/vf_fieldhint.c top = s->frame[1 + tf]; s 185 libavfilter/vf_fieldhint.c bottom = s->frame[1 + bf]; s 231 libavfilter/vf_fieldhint.c for (p = 0; p < s->nb_planes; p++) { s 236 libavfilter/vf_fieldhint.c s->planewidth[p], s 237 libavfilter/vf_fieldhint.c (s->planeheight[p] + 1) / 2); s 242 libavfilter/vf_fieldhint.c s->planewidth[p], s 243 libavfilter/vf_fieldhint.c (s->planeheight[p] + 1) / 2); s 252 libavfilter/vf_fieldhint.c FieldHintContext *s = ctx->priv; s 255 libavfilter/vf_fieldhint.c if (s->eof) s 259 libavfilter/vf_fieldhint.c if (ret == AVERROR_EOF && s->frame[2]) { s 260 libavfilter/vf_fieldhint.c AVFrame *next = av_frame_clone(s->frame[2]); s 264 libavfilter/vf_fieldhint.c s->eof = 1; s 272 libavfilter/vf_fieldhint.c FieldHintContext *s = ctx->priv; s 274 libavfilter/vf_fieldhint.c if (s->hint) s 275 libavfilter/vf_fieldhint.c fclose(s->hint); s 276 libavfilter/vf_fieldhint.c s->hint = NULL; s 278 libavfilter/vf_fieldhint.c av_frame_free(&s->frame[0]); s 279 libavfilter/vf_fieldhint.c av_frame_free(&s->frame[1]); s 280 libavfilter/vf_fieldhint.c av_frame_free(&s->frame[2]); s 72 libavfilter/vf_fieldorder.c FieldOrderContext *s = ctx->priv; s 74 libavfilter/vf_fieldorder.c return av_image_fill_linesizes(s->line_size, inlink->format, inlink->w); s 80 libavfilter/vf_fieldorder.c FieldOrderContext *s = ctx->priv; s 87 libavfilter/vf_fieldorder.c frame->top_field_first == s->dst_tff) { s 108 libavfilter/vf_fieldorder.c s->dst_tff ? "up" : "down"); s 113 libavfilter/vf_fieldorder.c line_size = s->line_size[plane]; s 116 libavfilter/vf_fieldorder.c if (s->dst_tff) { s 150 libavfilter/vf_fieldorder.c out->top_field_first = s->dst_tff; s 54 libavfilter/vf_fillborders.c void (*fillborders)(struct FillBordersContext *s, AVFrame *frame); s 86 libavfilter/vf_fillborders.c static void smear_borders8(FillBordersContext *s, AVFrame *frame) s 90 libavfilter/vf_fillborders.c for (p = 0; p < s->nb_planes; p++) { s 94 libavfilter/vf_fillborders.c for (y = s->borders[p].top; y < s->planeheight[p] - s->borders[p].bottom; y++) { s 96 libavfilter/vf_fillborders.c *(ptr + y * linesize + s->borders[p].left), s 97 libavfilter/vf_fillborders.c s->borders[p].left); s 98 libavfilter/vf_fillborders.c memset(ptr + y * linesize + s->planewidth[p] - s->borders[p].right, s 99 libavfilter/vf_fillborders.c *(ptr + y * linesize + s->planewidth[p] - s->borders[p].right - 1), s 100 libavfilter/vf_fillborders.c s->borders[p].right); s 103 libavfilter/vf_fillborders.c for (y = 0; y < s->borders[p].top; y++) { s 105 libavfilter/vf_fillborders.c ptr + s->borders[p].top * linesize, s->planewidth[p]); s 108 libavfilter/vf_fillborders.c for (y = s->planeheight[p] - s->borders[p].bottom; y < s->planeheight[p]; y++) { s 110 libavfilter/vf_fillborders.c ptr + (s->planeheight[p] - s->borders[p].bottom - 1) * linesize, s 111 libavfilter/vf_fillborders.c s->planewidth[p]); s 116 libavfilter/vf_fillborders.c static void smear_borders16(FillBordersContext *s, AVFrame *frame) s 120 libavfilter/vf_fillborders.c for (p = 0; p < s->nb_planes; p++) { s 124 libavfilter/vf_fillborders.c for (y = s->borders[p].top; y < s->planeheight[p] - s->borders[p].bottom; y++) { s 125 libavfilter/vf_fillborders.c for (x = 0; x < s->borders[p].left; x++) { s 126 libavfilter/vf_fillborders.c ptr[y * linesize + x] = *(ptr + y * linesize + s->borders[p].left); s 129 libavfilter/vf_fillborders.c for (x = 0; x < s->borders[p].right; x++) { s 130 libavfilter/vf_fillborders.c ptr[y * linesize + s->planewidth[p] - s->borders[p].right + x] = s 131 libavfilter/vf_fillborders.c *(ptr + y * linesize + s->planewidth[p] - s->borders[p].right - 1); s 135 libavfilter/vf_fillborders.c for (y = 0; y < s->borders[p].top; y++) { s 137 libavfilter/vf_fillborders.c ptr + s->borders[p].top * linesize, s->planewidth[p] * 2); s 140 libavfilter/vf_fillborders.c for (y = s->planeheight[p] - s->borders[p].bottom; y < s->planeheight[p]; y++) { s 142 libavfilter/vf_fillborders.c ptr + (s->planeheight[p] - s->borders[p].bottom - 1) * linesize, s 143 libavfilter/vf_fillborders.c s->planewidth[p] * 2); s 148 libavfilter/vf_fillborders.c static void mirror_borders8(FillBordersContext *s, AVFrame *frame) s 152 libavfilter/vf_fillborders.c for (p = 0; p < s->nb_planes; p++) { s 156 libavfilter/vf_fillborders.c for (y = s->borders[p].top; y < s->planeheight[p] - s->borders[p].bottom; y++) { s 157 libavfilter/vf_fillborders.c for (x = 0; x < s->borders[p].left; x++) { s 158 libavfilter/vf_fillborders.c ptr[y * linesize + x] = ptr[y * linesize + s->borders[p].left * 2 - 1 - x]; s 161 libavfilter/vf_fillborders.c for (x = 0; x < s->borders[p].right; x++) { s 162 libavfilter/vf_fillborders.c ptr[y * linesize + s->planewidth[p] - s->borders[p].right + x] = s 163 libavfilter/vf_fillborders.c ptr[y * linesize + s->planewidth[p] - s->borders[p].right - 1 - x]; s 167 libavfilter/vf_fillborders.c for (y = 0; y < s->borders[p].top; y++) { s 169 libavfilter/vf_fillborders.c ptr + (s->borders[p].top * 2 - 1 - y) * linesize, s 170 libavfilter/vf_fillborders.c s->planewidth[p]); s 173 libavfilter/vf_fillborders.c for (y = 0; y < s->borders[p].bottom; y++) { s 174 libavfilter/vf_fillborders.c memcpy(ptr + (s->planeheight[p] - s->borders[p].bottom + y) * linesize, s 175 libavfilter/vf_fillborders.c ptr + (s->planeheight[p] - s->borders[p].bottom - 1 - y) * linesize, s 176 libavfilter/vf_fillborders.c s->planewidth[p]); s 181 libavfilter/vf_fillborders.c static void mirror_borders16(FillBordersContext *s, AVFrame *frame) s 185 libavfilter/vf_fillborders.c for (p = 0; p < s->nb_planes; p++) { s 189 libavfilter/vf_fillborders.c for (y = s->borders[p].top; y < s->planeheight[p] - s->borders[p].bottom; y++) { s 190 libavfilter/vf_fillborders.c for (x = 0; x < s->borders[p].left; x++) { s 191 libavfilter/vf_fillborders.c ptr[y * linesize + x] = ptr[y * linesize + s->borders[p].left * 2 - 1 - x]; s 194 libavfilter/vf_fillborders.c for (x = 0; x < s->borders[p].right; x++) { s 195 libavfilter/vf_fillborders.c ptr[y * linesize + s->planewidth[p] - s->borders[p].right + x] = s 196 libavfilter/vf_fillborders.c ptr[y * linesize + s->planewidth[p] - s->borders[p].right - 1 - x]; s 200 libavfilter/vf_fillborders.c for (y = 0; y < s->borders[p].top; y++) { s 202 libavfilter/vf_fillborders.c ptr + (s->borders[p].top * 2 - 1 - y) * linesize, s 203 libavfilter/vf_fillborders.c s->planewidth[p] * 2); s 206 libavfilter/vf_fillborders.c for (y = 0; y < s->borders[p].bottom; y++) { s 207 libavfilter/vf_fillborders.c memcpy(ptr + (s->planeheight[p] - s->borders[p].bottom + y) * linesize, s 208 libavfilter/vf_fillborders.c ptr + (s->planeheight[p] - s->borders[p].bottom - 1 - y) * linesize, s 209 libavfilter/vf_fillborders.c s->planewidth[p] * 2); s 214 libavfilter/vf_fillborders.c static void fixed_borders8(FillBordersContext *s, AVFrame *frame) s 218 libavfilter/vf_fillborders.c for (p = 0; p < s->nb_planes; p++) { s 220 libavfilter/vf_fillborders.c uint8_t fill = s->fill[p]; s 223 libavfilter/vf_fillborders.c for (y = s->borders[p].top; y < s->planeheight[p] - s->borders[p].bottom; y++) { s 224 libavfilter/vf_fillborders.c memset(ptr + y * linesize, fill, s->borders[p].left); s 225 libavfilter/vf_fillborders.c memset(ptr + y * linesize + s->planewidth[p] - s->borders[p].right, fill, s 226 libavfilter/vf_fillborders.c s->borders[p].right); s 229 libavfilter/vf_fillborders.c for (y = 0; y < s->borders[p].top; y++) { s 230 libavfilter/vf_fillborders.c memset(ptr + y * linesize, fill, s->planewidth[p]); s 233 libavfilter/vf_fillborders.c for (y = s->planeheight[p] - s->borders[p].bottom; y < s->planeheight[p]; y++) { s 234 libavfilter/vf_fillborders.c memset(ptr + y * linesize, fill, s->planewidth[p]); s 239 libavfilter/vf_fillborders.c static void fixed_borders16(FillBordersContext *s, AVFrame *frame) s 243 libavfilter/vf_fillborders.c for (p = 0; p < s->nb_planes; p++) { s 245 libavfilter/vf_fillborders.c uint16_t fill = s->fill[p] << (s->depth - 8); s 248 libavfilter/vf_fillborders.c for (y = s->borders[p].top; y < s->planeheight[p] - s->borders[p].bottom; y++) { s 249 libavfilter/vf_fillborders.c for (x = 0; x < s->borders[p].left; x++) { s 253 libavfilter/vf_fillborders.c for (x = 0; x < s->borders[p].right; x++) { s 254 libavfilter/vf_fillborders.c ptr[y * linesize + s->planewidth[p] - s->borders[p].right + x] = fill; s 258 libavfilter/vf_fillborders.c for (y = 0; y < s->borders[p].top; y++) { s 259 libavfilter/vf_fillborders.c for (x = 0; x < s->planewidth[p]; x++) { s 264 libavfilter/vf_fillborders.c for (y = s->planeheight[p] - s->borders[p].bottom; y < s->planeheight[p]; y++) { s 265 libavfilter/vf_fillborders.c for (x = 0; x < s->planewidth[p]; x++) { s 274 libavfilter/vf_fillborders.c FillBordersContext *s = inlink->dst->priv; s 276 libavfilter/vf_fillborders.c s->fillborders(s, frame); s 284 libavfilter/vf_fillborders.c FillBordersContext *s = ctx->priv; s 287 libavfilter/vf_fillborders.c s->nb_planes = desc->nb_components; s 288 libavfilter/vf_fillborders.c s->depth = desc->comp[0].depth; s 290 libavfilter/vf_fillborders.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 291 libavfilter/vf_fillborders.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 292 libavfilter/vf_fillborders.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 293 libavfilter/vf_fillborders.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 295 libavfilter/vf_fillborders.c if (inlink->w < s->left + s->right || s 296 libavfilter/vf_fillborders.c inlink->w <= s->left || s 297 libavfilter/vf_fillborders.c inlink->w <= s->right || s 298 libavfilter/vf_fillborders.c inlink->h < s->top + s->bottom || s 299 libavfilter/vf_fillborders.c inlink->h <= s->top || s 300 libavfilter/vf_fillborders.c inlink->h <= s->bottom || s 301 libavfilter/vf_fillborders.c inlink->w < s->left * 2 || s 302 libavfilter/vf_fillborders.c inlink->w < s->right * 2 || s 303 libavfilter/vf_fillborders.c inlink->h < s->top * 2 || s 304 libavfilter/vf_fillborders.c inlink->h < s->bottom * 2) { s 309 libavfilter/vf_fillborders.c s->borders[0].left = s->borders[3].left = s->left; s 310 libavfilter/vf_fillborders.c s->borders[0].right = s->borders[3].right = s->right; s 311 libavfilter/vf_fillborders.c s->borders[0].top = s->borders[3].top = s->top; s 312 libavfilter/vf_fillborders.c s->borders[0].bottom = s->borders[3].bottom = s->bottom; s 314 libavfilter/vf_fillborders.c s->borders[1].left = s->left >> desc->log2_chroma_w; s 315 libavfilter/vf_fillborders.c s->borders[1].right = s->right >> desc->log2_chroma_w; s 316 libavfilter/vf_fillborders.c s->borders[1].top = s->top >> desc->log2_chroma_h; s 317 libavfilter/vf_fillborders.c s->borders[1].bottom = s->bottom >> desc->log2_chroma_h; s 319 libavfilter/vf_fillborders.c s->borders[2].left = s->left >> desc->log2_chroma_w; s 320 libavfilter/vf_fillborders.c s->borders[2].right = s->right >> desc->log2_chroma_w; s 321 libavfilter/vf_fillborders.c s->borders[2].top = s->top >> desc->log2_chroma_h; s 322 libavfilter/vf_fillborders.c s->borders[2].bottom = s->bottom >> desc->log2_chroma_h; s 324 libavfilter/vf_fillborders.c switch (s->mode) { s 325 libavfilter/vf_fillborders.c case FM_SMEAR: s->fillborders = s->depth <= 8 ? smear_borders8 : smear_borders16; break; s 326 libavfilter/vf_fillborders.c case FM_MIRROR: s->fillborders = s->depth <= 8 ? mirror_borders8 : mirror_borders16; break; s 327 libavfilter/vf_fillborders.c case FM_FIXED: s->fillborders = s->depth <= 8 ? fixed_borders8 : fixed_borders16; break; s 330 libavfilter/vf_fillborders.c s->yuv_color[Y] = RGB_TO_Y_CCIR(s->rgba_color[R], s->rgba_color[G], s->rgba_color[B]); s 331 libavfilter/vf_fillborders.c s->yuv_color[U] = RGB_TO_U_CCIR(s->rgba_color[R], s->rgba_color[G], s->rgba_color[B], 0); s 332 libavfilter/vf_fillborders.c s->yuv_color[V] = RGB_TO_V_CCIR(s->rgba_color[R], s->rgba_color[G], s->rgba_color[B], 0); s 333 libavfilter/vf_fillborders.c s->yuv_color[A] = s->rgba_color[A]; s 341 libavfilter/vf_fillborders.c s->fill[rgba_map[i]] = s->rgba_color[i]; s 343 libavfilter/vf_fillborders.c memcpy(s->fill, s->yuv_color, sizeof(s->yuv_color)); s 37 libavfilter/vf_floodfill.c int s[4]; s 242 libavfilter/vf_floodfill.c FloodfillContext *s = ctx->priv; s 245 libavfilter/vf_floodfill.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 248 libavfilter/vf_floodfill.c switch (s->nb_planes) { s 249 libavfilter/vf_floodfill.c case 1: s->set_pixel = set_pixel1; s 250 libavfilter/vf_floodfill.c s->is_same = is_same1; s 251 libavfilter/vf_floodfill.c s->pick_pixel = pick_pixel1; break; s 252 libavfilter/vf_floodfill.c case 3: s->set_pixel = set_pixel3; s 253 libavfilter/vf_floodfill.c s->is_same = is_same3; s 254 libavfilter/vf_floodfill.c s->pick_pixel = pick_pixel3; break; s 255 libavfilter/vf_floodfill.c case 4: s->set_pixel = set_pixel4; s 256 libavfilter/vf_floodfill.c s->is_same = is_same4; s 257 libavfilter/vf_floodfill.c s->pick_pixel = pick_pixel4; break; s 260 libavfilter/vf_floodfill.c switch (s->nb_planes) { s 261 libavfilter/vf_floodfill.c case 1: s->set_pixel = set_pixel1_16; s 262 libavfilter/vf_floodfill.c s->is_same = is_same1_16; s 263 libavfilter/vf_floodfill.c s->pick_pixel = pick_pixel1_16; break; s 264 libavfilter/vf_floodfill.c case 3: s->set_pixel = set_pixel3_16; s 265 libavfilter/vf_floodfill.c s->is_same = is_same3_16; s 266 libavfilter/vf_floodfill.c s->pick_pixel = pick_pixel3_16; break; s 267 libavfilter/vf_floodfill.c case 4: s->set_pixel = set_pixel4_16; s 268 libavfilter/vf_floodfill.c s->is_same = is_same4_16; s 269 libavfilter/vf_floodfill.c s->pick_pixel = pick_pixel4_16; break; s 273 libavfilter/vf_floodfill.c s->front = s->back = 0; s 274 libavfilter/vf_floodfill.c s->points = av_calloc(inlink->w * inlink->h, 4 * sizeof(Points)); s 275 libavfilter/vf_floodfill.c if (!s->points) s 284 libavfilter/vf_floodfill.c FloodfillContext *s = ctx->priv; s 285 libavfilter/vf_floodfill.c const unsigned d0 = s->d[0]; s 286 libavfilter/vf_floodfill.c const unsigned d1 = s->d[1]; s 287 libavfilter/vf_floodfill.c const unsigned d2 = s->d[2]; s 288 libavfilter/vf_floodfill.c const unsigned d3 = s->d[3]; s 289 libavfilter/vf_floodfill.c int s0 = s->s[0]; s 290 libavfilter/vf_floodfill.c int s1 = s->s[1]; s 291 libavfilter/vf_floodfill.c int s2 = s->s[2]; s 292 libavfilter/vf_floodfill.c int s3 = s->s[3]; s 297 libavfilter/vf_floodfill.c if (is_inside(s->x, s->y, w, h)) { s 298 libavfilter/vf_floodfill.c s->pick_pixel(frame, s->x, s->y, &s0, &s1, &s2, &s3); s 300 libavfilter/vf_floodfill.c s->S[0] = s0; s 301 libavfilter/vf_floodfill.c s->S[1] = s1; s 302 libavfilter/vf_floodfill.c s->S[2] = s2; s 303 libavfilter/vf_floodfill.c s->S[3] = s3; s 304 libavfilter/vf_floodfill.c for (i = 0; i < s->nb_planes; i++) { s 305 libavfilter/vf_floodfill.c if (s->S[i] != s->d[i]) s 309 libavfilter/vf_floodfill.c if (i == s->nb_planes) s 312 libavfilter/vf_floodfill.c if (s->is_same(frame, s->x, s->y, s0, s1, s2, s3)) { s 313 libavfilter/vf_floodfill.c s->points[s->front].x = s->x; s 314 libavfilter/vf_floodfill.c s->points[s->front].y = s->y; s 315 libavfilter/vf_floodfill.c s->front++; s 321 libavfilter/vf_floodfill.c while (s->front > s->back) { s 324 libavfilter/vf_floodfill.c s->front--; s 325 libavfilter/vf_floodfill.c x = s->points[s->front].x; s 326 libavfilter/vf_floodfill.c y = s->points[s->front].y; s 328 libavfilter/vf_floodfill.c if (s->is_same(frame, x, y, s0, s1, s2, s3)) { s 329 libavfilter/vf_floodfill.c s->set_pixel(frame, x, y, d0, d1, d2, d3); s 332 libavfilter/vf_floodfill.c s->points[s->front] .x = x + 1; s 333 libavfilter/vf_floodfill.c s->points[s->front++].y = y; s 337 libavfilter/vf_floodfill.c s->points[s->front] .x = x - 1; s 338 libavfilter/vf_floodfill.c s->points[s->front++].y = y; s 342 libavfilter/vf_floodfill.c s->points[s->front] .x = x; s 343 libavfilter/vf_floodfill.c s->points[s->front++].y = y + 1; s 347 libavfilter/vf_floodfill.c s->points[s->front] .x = x; s 348 libavfilter/vf_floodfill.c s->points[s->front++].y = y - 1; s 381 libavfilter/vf_floodfill.c FloodfillContext *s = ctx->priv; s 383 libavfilter/vf_floodfill.c av_freep(&s->points); s 410 libavfilter/vf_floodfill.c { "s0", "set source #0 component value", OFFSET(s[0]), AV_OPT_TYPE_INT, {.i64=0},-1, UINT16_MAX, FLAGS }, s 411 libavfilter/vf_floodfill.c { "s1", "set source #1 component value", OFFSET(s[1]), AV_OPT_TYPE_INT, {.i64=0},-1, UINT16_MAX, FLAGS }, s 412 libavfilter/vf_floodfill.c { "s2", "set source #2 component value", OFFSET(s[2]), AV_OPT_TYPE_INT, {.i64=0},-1, UINT16_MAX, FLAGS }, s 413 libavfilter/vf_floodfill.c { "s3", "set source #3 component value", OFFSET(s[3]), AV_OPT_TYPE_INT, {.i64=0},-1, UINT16_MAX, FLAGS }, s 51 libavfilter/vf_format.c FormatContext *s = ctx->priv; s 52 libavfilter/vf_format.c av_freep(&s->formats); s 57 libavfilter/vf_format.c FormatContext *s = ctx->priv; s 63 libavfilter/vf_format.c if (!s->pix_fmts) { s 69 libavfilter/vf_format.c cur = s->pix_fmts; s 76 libavfilter/vf_format.c s->formats = av_malloc_array(nb_formats + 1, sizeof(*s->formats)); s 77 libavfilter/vf_format.c if (!s->formats) s 81 libavfilter/vf_format.c cur = s->pix_fmts; s 87 libavfilter/vf_format.c if ((ret = ff_parse_pixel_format(&s->formats[i], cur, ctx)) < 0) s 92 libavfilter/vf_format.c s->formats[nb_formats] = AV_PIX_FMT_NONE; s 113 libavfilter/vf_format.c if (s->formats[i] == pix_fmt) s 122 libavfilter/vf_format.c av_freep(&s->formats); s 123 libavfilter/vf_format.c s->formats = formats_allowed; s 131 libavfilter/vf_format.c FormatContext *s = ctx->priv; s 132 libavfilter/vf_format.c AVFilterFormats *formats = ff_make_format_list(s->formats); s 97 libavfilter/vf_fps.c FPSContext *s = ctx->priv; s 99 libavfilter/vf_fps.c s->status_pts = AV_NOPTS_VALUE; s 100 libavfilter/vf_fps.c s->next_pts = AV_NOPTS_VALUE; s 102 libavfilter/vf_fps.c av_log(ctx, AV_LOG_VERBOSE, "fps=%d/%d\n", s->framerate.num, s->framerate.den); s 107 libavfilter/vf_fps.c static AVFrame *shift_frame(AVFilterContext *ctx, FPSContext *s) s 112 libavfilter/vf_fps.c av_assert1(s->frames_count > 0); s 114 libavfilter/vf_fps.c frame = s->frames[0]; s 115 libavfilter/vf_fps.c s->frames[0] = s->frames[1]; s 116 libavfilter/vf_fps.c s->frames[1] = NULL; s 117 libavfilter/vf_fps.c s->frames_count--; s 120 libavfilter/vf_fps.c s->frames_out += s->cur_frame_out; s 121 libavfilter/vf_fps.c if (s->cur_frame_out > 1) { s 123 libavfilter/vf_fps.c frame->pts, s->cur_frame_out - 1); s 124 libavfilter/vf_fps.c s->dup += s->cur_frame_out - 1; s 125 libavfilter/vf_fps.c } else if (s->cur_frame_out == 0) { s 128 libavfilter/vf_fps.c s->drop++; s 130 libavfilter/vf_fps.c s->cur_frame_out = 0; s 137 libavfilter/vf_fps.c FPSContext *s = ctx->priv; s 141 libavfilter/vf_fps.c while (s->frames_count > 0) { s 142 libavfilter/vf_fps.c frame = shift_frame(ctx, s); s 147 libavfilter/vf_fps.c "%d frames duplicated.\n", s->frames_in, s->frames_out, s->drop, s->dup); s 154 libavfilter/vf_fps.c FPSContext *s = ctx->priv; s 156 libavfilter/vf_fps.c outlink->time_base = av_inv_q(s->framerate); s 157 libavfilter/vf_fps.c outlink->frame_rate = s->framerate; s 160 libavfilter/vf_fps.c if (s->start_time != DBL_MAX && s->start_time != AV_NOPTS_VALUE) { s 161 libavfilter/vf_fps.c double first_pts = s->start_time * AV_TIME_BASE; s 164 libavfilter/vf_fps.c s->start_time); s 167 libavfilter/vf_fps.c s->in_pts_off = av_rescale_q_rnd(first_pts, AV_TIME_BASE_Q, inlink->time_base, s 168 libavfilter/vf_fps.c s->rounding | AV_ROUND_PASS_MINMAX); s 169 libavfilter/vf_fps.c s->out_pts_off = av_rescale_q_rnd(first_pts, AV_TIME_BASE_Q, outlink->time_base, s 170 libavfilter/vf_fps.c s->rounding | AV_ROUND_PASS_MINMAX); s 171 libavfilter/vf_fps.c s->next_pts = s->out_pts_off; s 173 libavfilter/vf_fps.c s->in_pts_off, s->out_pts_off, s->start_time); s 180 libavfilter/vf_fps.c static int read_frame(AVFilterContext *ctx, FPSContext *s, AVFilterLink *inlink, AVFilterLink *outlink) s 187 libavfilter/vf_fps.c av_assert1(s->frames_count < 2); s 199 libavfilter/vf_fps.c frame->pts = s->out_pts_off + av_rescale_q_rnd(in_pts - s->in_pts_off, s 201 libavfilter/vf_fps.c s->rounding | AV_ROUND_PASS_MINMAX); s 206 libavfilter/vf_fps.c s->frames[s->frames_count++] = frame; s 207 libavfilter/vf_fps.c s->frames_in++; s 213 libavfilter/vf_fps.c static int write_frame(AVFilterContext *ctx, FPSContext *s, AVFilterLink *outlink, int *again) s 217 libavfilter/vf_fps.c av_assert1(s->frames_count == 2 || (s->status && s->frames_count == 1)); s 220 libavfilter/vf_fps.c if (s->next_pts == AV_NOPTS_VALUE) { s 221 libavfilter/vf_fps.c if (s->frames[0]->pts != AV_NOPTS_VALUE) { s 222 libavfilter/vf_fps.c s->next_pts = s->frames[0]->pts; s 223 libavfilter/vf_fps.c av_log(ctx, AV_LOG_VERBOSE, "Set first pts to %"PRId64"\n", s->next_pts); s 227 libavfilter/vf_fps.c frame = shift_frame(ctx, s); s 239 libavfilter/vf_fps.c if ((s->frames_count == 2 && s->frames[1]->pts <= s->next_pts) || s 240 libavfilter/vf_fps.c (s->status && s->status_pts <= s->next_pts)) { s 242 libavfilter/vf_fps.c frame = shift_frame(ctx, s); s 249 libavfilter/vf_fps.c frame = av_frame_clone(s->frames[0]); s 253 libavfilter/vf_fps.c av_frame_remove_side_data(s->frames[0], AV_FRAME_DATA_A53_CC); s 254 libavfilter/vf_fps.c frame->pts = s->next_pts++; s 257 libavfilter/vf_fps.c s->frames[0]->pts, frame->pts); s 258 libavfilter/vf_fps.c s->cur_frame_out++; s 265 libavfilter/vf_fps.c static void update_eof_pts(AVFilterContext *ctx, FPSContext *s, AVFilterLink *inlink, AVFilterLink *outlink, int64_t status_pts) s 267 libavfilter/vf_fps.c int eof_rounding = (s->eof_action == EOF_ACTION_PASS) ? AV_ROUND_UP : s->rounding; s 268 libavfilter/vf_fps.c s->status_pts = av_rescale_q_rnd(status_pts, inlink->time_base, outlink->time_base, s 271 libavfilter/vf_fps.c av_log(ctx, AV_LOG_DEBUG, "EOF is at pts %"PRId64"\n", s->status_pts); s 276 libavfilter/vf_fps.c FPSContext *s = ctx->priv; s 287 libavfilter/vf_fps.c if (!s->status) { s 290 libavfilter/vf_fps.c while (s->frames_count < 2 && ff_inlink_check_available_frame(inlink)) { s 291 libavfilter/vf_fps.c ret = read_frame(ctx, s, inlink, outlink); s 297 libavfilter/vf_fps.c if (s->frames_count < 2) { s 299 libavfilter/vf_fps.c ret = ff_inlink_acknowledge_status(inlink, &s->status, &status_pts); s 301 libavfilter/vf_fps.c update_eof_pts(ctx, s, inlink, outlink, status_pts); s 312 libavfilter/vf_fps.c if (s->frames_count > 0) { s 313 libavfilter/vf_fps.c ret = write_frame(ctx, s, outlink, &again); s 321 libavfilter/vf_fps.c if (s->status && s->frames_count == 0) { s 322 libavfilter/vf_fps.c ff_outlink_set_status(outlink, s->status, s->next_pts); s 72 libavfilter/vf_framepack.c FramepackContext *s = ctx->priv; s 75 libavfilter/vf_framepack.c av_frame_free(&s->input_views[LEFT]); s 76 libavfilter/vf_framepack.c av_frame_free(&s->input_views[RIGHT]); s 82 libavfilter/vf_framepack.c FramepackContext *s = outlink->src->priv; s 113 libavfilter/vf_framepack.c s->pix_desc = av_pix_fmt_desc_get(outlink->format); s 114 libavfilter/vf_framepack.c if (!s->pix_desc) s 118 libavfilter/vf_framepack.c switch (s->format) { s 149 libavfilter/vf_framepack.c FramepackContext *s = ctx->priv; s 153 libavfilter/vf_framepack.c const uint8_t *leftp = s->input_views[LEFT]->data[0]; s 154 libavfilter/vf_framepack.c const uint8_t *rightp = s->input_views[RIGHT]->data[0]; s 159 libavfilter/vf_framepack.c for (plane = 0; plane < s->pix_desc->nb_components; plane++) { s 161 libavfilter/vf_framepack.c length = AV_CEIL_RSHIFT(out->width / 2, s->pix_desc->log2_chroma_w); s 162 libavfilter/vf_framepack.c lines = AV_CEIL_RSHIFT(out->height, s->pix_desc->log2_chroma_h); s 166 libavfilter/vf_framepack.c leftp = s->input_views[LEFT]->data[plane] + s 167 libavfilter/vf_framepack.c s->input_views[LEFT]->linesize[plane] * i; s 168 libavfilter/vf_framepack.c rightp = s->input_views[RIGHT]->data[plane] + s 169 libavfilter/vf_framepack.c s->input_views[RIGHT]->linesize[plane] * i; s 173 libavfilter/vf_framepack.c if ((s->pix_desc->log2_chroma_w || s 174 libavfilter/vf_framepack.c s->pix_desc->log2_chroma_h) && s 191 libavfilter/vf_framepack.c int sub_w = s->input_views[i]->width >> s->pix_desc->log2_chroma_w; s 193 libavfilter/vf_framepack.c src[0] = s->input_views[i]->data[0]; s 194 libavfilter/vf_framepack.c src[1] = s->input_views[i]->data[1]; s 195 libavfilter/vf_framepack.c src[2] = s->input_views[i]->data[2]; s 197 libavfilter/vf_framepack.c dst[0] = out->data[0] + i * s->input_views[i]->width; s 201 libavfilter/vf_framepack.c av_image_copy(dst, out->linesize, src, s->input_views[i]->linesize, s 202 libavfilter/vf_framepack.c s->input_views[i]->format, s 203 libavfilter/vf_framepack.c s->input_views[i]->width, s 204 libavfilter/vf_framepack.c s->input_views[i]->height); s 214 libavfilter/vf_framepack.c FramepackContext *s = ctx->priv; s 221 libavfilter/vf_framepack.c int sub_h = s->input_views[i]->height >> s->pix_desc->log2_chroma_h; s 223 libavfilter/vf_framepack.c src[0] = s->input_views[i]->data[0]; s 224 libavfilter/vf_framepack.c src[1] = s->input_views[i]->data[1]; s 225 libavfilter/vf_framepack.c src[2] = s->input_views[i]->data[2]; s 228 libavfilter/vf_framepack.c (interleaved + s->input_views[i]->height * (1 - interleaved)); s 241 libavfilter/vf_framepack.c av_image_copy(dst, linesizes, src, s->input_views[i]->linesize, s 242 libavfilter/vf_framepack.c s->input_views[i]->format, s 243 libavfilter/vf_framepack.c s->input_views[i]->width, s 244 libavfilter/vf_framepack.c s->input_views[i]->height); s 252 libavfilter/vf_framepack.c FramepackContext *s = ctx->priv; s 253 libavfilter/vf_framepack.c switch (s->format) { s 271 libavfilter/vf_framepack.c FramepackContext *s = ctx->priv; s 276 libavfilter/vf_framepack.c if (!(s->input_views[0] && s->input_views[1])) s 278 libavfilter/vf_framepack.c if (s->format == AV_STEREO3D_FRAMESEQUENCE) { s 279 libavfilter/vf_framepack.c int64_t pts = s->input_views[0]->pts; s 284 libavfilter/vf_framepack.c s->input_views[i]->pts = i == 0 ? pts * 2 : pts * 2 + av_rescale_q(1, av_inv_q(outlink->frame_rate), outlink->time_base); s 287 libavfilter/vf_framepack.c stereo = av_stereo3d_create_side_data(s->input_views[i]); s 290 libavfilter/vf_framepack.c stereo->type = s->format; s 295 libavfilter/vf_framepack.c ret = ff_filter_frame(outlink, s->input_views[i]); s 296 libavfilter/vf_framepack.c s->input_views[i] = NULL; s 309 libavfilter/vf_framepack.c ret = av_frame_copy_props(dst, s->input_views[LEFT]); s 316 libavfilter/vf_framepack.c av_frame_free(&s->input_views[i]); s 324 libavfilter/vf_framepack.c stereo->type = s->format; s 333 libavfilter/vf_framepack.c FramepackContext *s = ctx->priv; s 338 libavfilter/vf_framepack.c if (!s->input_views[0]) { s 339 libavfilter/vf_framepack.c ret = ff_inlink_consume_frame(ctx->inputs[0], &s->input_views[0]); s 344 libavfilter/vf_framepack.c if (!s->input_views[1]) { s 345 libavfilter/vf_framepack.c ret = ff_inlink_consume_frame(ctx->inputs[1], &s->input_views[1]); s 350 libavfilter/vf_framepack.c if (s->input_views[0] && s->input_views[1]) s 358 libavfilter/vf_framepack.c !s->input_views[0]) { s 365 libavfilter/vf_framepack.c !s->input_views[1]) { s 67 libavfilter/vf_framerate.c FrameRateContext *s = ctx->priv; s 78 libavfilter/vf_framerate.c s->sad(crnt->data[0], crnt->linesize[0], next->data[0], next->linesize[0], crnt->width, crnt->height, &sad); s 80 libavfilter/vf_framerate.c mafd = (double)sad * 100.0 / (crnt->width * crnt->height) / (1 << s->bitdepth); s 81 libavfilter/vf_framerate.c diff = fabs(mafd - s->prev_mafd); s 83 libavfilter/vf_framerate.c s->prev_mafd = mafd; s 96 libavfilter/vf_framerate.c FrameRateContext *s = ctx->priv; s 98 libavfilter/vf_framerate.c AVFrame *work = s->work; s 106 libavfilter/vf_framerate.c const int start = (s->height[plane] * job ) / nb_jobs; s 107 libavfilter/vf_framerate.c const int end = (s->height[plane] * (job+1)) / nb_jobs; s 112 libavfilter/vf_framerate.c s->blend(src1_data, src1->linesize[plane], src2_data, src2->linesize[plane], s 113 libavfilter/vf_framerate.c dst_data, work->linesize[plane], s->line_size[plane], end - start, s 114 libavfilter/vf_framerate.c src1_factor, src2_factor, s->blend_factor_max >> 1); s 122 libavfilter/vf_framerate.c FrameRateContext *s = ctx->priv; s 126 libavfilter/vf_framerate.c if ((s->flags & FRAMERATE_FLAG_SCD)) { s 127 libavfilter/vf_framerate.c if (s->score >= 0.0) s 128 libavfilter/vf_framerate.c interpolate_scene_score = s->score; s 130 libavfilter/vf_framerate.c interpolate_scene_score = s->score = get_scene_score(ctx, s->f0, s->f1); s 134 libavfilter/vf_framerate.c if (interpolate_scene_score < s->scene_score) { s 136 libavfilter/vf_framerate.c td.copy_src1 = s->f0; s 137 libavfilter/vf_framerate.c td.copy_src2 = s->f1; s 139 libavfilter/vf_framerate.c td.src1_factor = s->blend_factor_max - td.src2_factor; s 142 libavfilter/vf_framerate.c s->work = ff_get_video_buffer(outlink, outlink->w, outlink->h); s 143 libavfilter/vf_framerate.c if (!s->work) s 146 libavfilter/vf_framerate.c av_frame_copy_props(s->work, s->f0); s 157 libavfilter/vf_framerate.c FrameRateContext *s = ctx->priv; s 162 libavfilter/vf_framerate.c if (!s->f1) s 164 libavfilter/vf_framerate.c if (!s->f0 && !s->flush) s 167 libavfilter/vf_framerate.c work_pts = s->start_pts + av_rescale_q(s->n, av_inv_q(s->dest_frame_rate), s->dest_time_base); s 169 libavfilter/vf_framerate.c if (work_pts >= s->pts1 && !s->flush) s 172 libavfilter/vf_framerate.c if (!s->f0) { s 173 libavfilter/vf_framerate.c s->work = av_frame_clone(s->f1); s 175 libavfilter/vf_framerate.c if (work_pts >= s->pts1 + s->delta && s->flush) s 178 libavfilter/vf_framerate.c interpolate = av_rescale(work_pts - s->pts0, s->blend_factor_max, s->delta); s 179 libavfilter/vf_framerate.c interpolate8 = av_rescale(work_pts - s->pts0, 256, s->delta); s 181 libavfilter/vf_framerate.c if (interpolate >= s->blend_factor_max || interpolate8 > s->interp_end) { s 182 libavfilter/vf_framerate.c s->work = av_frame_clone(s->f1); s 183 libavfilter/vf_framerate.c } else if (interpolate <= 0 || interpolate8 < s->interp_start) { s 184 libavfilter/vf_framerate.c s->work = av_frame_clone(s->f0); s 190 libavfilter/vf_framerate.c s->work = av_frame_clone(interpolate > (s->blend_factor_max >> 1) ? s->f1 : s->f0); s 194 libavfilter/vf_framerate.c if (!s->work) s 197 libavfilter/vf_framerate.c s->work->pts = work_pts; s 198 libavfilter/vf_framerate.c s->n++; s 205 libavfilter/vf_framerate.c FrameRateContext *s = ctx->priv; s 206 libavfilter/vf_framerate.c s->start_pts = AV_NOPTS_VALUE; s 212 libavfilter/vf_framerate.c FrameRateContext *s = ctx->priv; s 213 libavfilter/vf_framerate.c av_frame_free(&s->f0); s 214 libavfilter/vf_framerate.c av_frame_free(&s->f1); s 263 libavfilter/vf_framerate.c void ff_framerate_init(FrameRateContext *s) s 265 libavfilter/vf_framerate.c if (s->bitdepth == 8) { s 266 libavfilter/vf_framerate.c s->blend_factor_max = 1 << BLEND_FACTOR_DEPTH(8); s 267 libavfilter/vf_framerate.c s->blend = blend_frames8_c; s 269 libavfilter/vf_framerate.c s->blend_factor_max = 1 << BLEND_FACTOR_DEPTH(16); s 270 libavfilter/vf_framerate.c s->blend = blend_frames16_c; s 273 libavfilter/vf_framerate.c ff_framerate_init_x86(s); s 279 libavfilter/vf_framerate.c FrameRateContext *s = ctx->priv; s 283 libavfilter/vf_framerate.c s->vsub = pix_desc->log2_chroma_h; s 285 libavfilter/vf_framerate.c s->line_size[plane] = av_image_get_linesize(inlink->format, inlink->w, plane); s 286 libavfilter/vf_framerate.c s->height[plane] = inlink->h >> ((plane == 1 || plane == 2) ? s->vsub : 0); s 289 libavfilter/vf_framerate.c s->bitdepth = pix_desc->comp[0].depth; s 291 libavfilter/vf_framerate.c s->sad = ff_scene_sad_get_fn(s->bitdepth == 8 ? 8 : 16); s 292 libavfilter/vf_framerate.c if (!s->sad) s 295 libavfilter/vf_framerate.c s->srce_time_base = inlink->time_base; s 297 libavfilter/vf_framerate.c ff_framerate_init(s); s 307 libavfilter/vf_framerate.c FrameRateContext *s = ctx->priv; s 318 libavfilter/vf_framerate.c return ff_filter_frame(outlink, s->work); s 335 libavfilter/vf_framerate.c pts = av_rescale_q(inpicref->pts, s->srce_time_base, s->dest_time_base); s 337 libavfilter/vf_framerate.c if (s->f1 && pts == s->pts1) { s 344 libavfilter/vf_framerate.c av_frame_free(&s->f0); s 345 libavfilter/vf_framerate.c s->f0 = s->f1; s 346 libavfilter/vf_framerate.c s->pts0 = s->pts1; s 347 libavfilter/vf_framerate.c s->f1 = inpicref; s 348 libavfilter/vf_framerate.c s->pts1 = pts; s 349 libavfilter/vf_framerate.c s->delta = s->pts1 - s->pts0; s 350 libavfilter/vf_framerate.c s->score = -1.0; s 352 libavfilter/vf_framerate.c if (s->delta < 0) { s 354 libavfilter/vf_framerate.c s->start_pts = s->pts1; s 355 libavfilter/vf_framerate.c s->n = 0; s 356 libavfilter/vf_framerate.c av_frame_free(&s->f0); s 359 libavfilter/vf_framerate.c if (s->start_pts == AV_NOPTS_VALUE) s 360 libavfilter/vf_framerate.c s->start_pts = s->pts1; s 366 libavfilter/vf_framerate.c if (!s->flush) { s 367 libavfilter/vf_framerate.c s->flush = 1; s 382 libavfilter/vf_framerate.c FrameRateContext *s = ctx->priv; s 394 libavfilter/vf_framerate.c exact = av_reduce(&s->dest_time_base.num, &s->dest_time_base.den, s 395 libavfilter/vf_framerate.c av_gcd((int64_t)s->srce_time_base.num * s->dest_frame_rate.num, s 396 libavfilter/vf_framerate.c (int64_t)s->srce_time_base.den * s->dest_frame_rate.den ), s 397 libavfilter/vf_framerate.c (int64_t)s->srce_time_base.den * s->dest_frame_rate.num, INT_MAX); s 401 libavfilter/vf_framerate.c s->srce_time_base.num, s->srce_time_base.den, s 402 libavfilter/vf_framerate.c s->dest_time_base.num, s->dest_time_base.den, exact); s 407 libavfilter/vf_framerate.c outlink->frame_rate = s->dest_frame_rate; s 408 libavfilter/vf_framerate.c outlink->time_base = s->dest_time_base; s 418 libavfilter/vf_framerate.c s->dest_frame_rate.num, s->dest_frame_rate.den, s 419 libavfilter/vf_framerate.c s->scene_score, s->interp_start, s->interp_end); s 103 libavfilter/vf_freezedetect.c FreezeDetectContext *s = ctx->priv; s 106 libavfilter/vf_freezedetect.c s->bitdepth = pix_desc->comp[0].depth; s 110 libavfilter/vf_freezedetect.c s->width[plane] = line_size >> (s->bitdepth > 8); s 111 libavfilter/vf_freezedetect.c s->height[plane] = inlink->h >> ((plane == 1 || plane == 2) ? pix_desc->log2_chroma_h : 0); s 114 libavfilter/vf_freezedetect.c s->sad = ff_scene_sad_get_fn(s->bitdepth == 8 ? 8 : 16); s 115 libavfilter/vf_freezedetect.c if (!s->sad) s 123 libavfilter/vf_freezedetect.c FreezeDetectContext *s = ctx->priv; s 124 libavfilter/vf_freezedetect.c av_frame_free(&s->reference_frame); s 127 libavfilter/vf_freezedetect.c static int is_frozen(FreezeDetectContext *s, AVFrame *reference, AVFrame *frame) s 133 libavfilter/vf_freezedetect.c if (s->width[plane]) { s 135 libavfilter/vf_freezedetect.c s->sad(frame->data[plane], frame->linesize[plane], s 137 libavfilter/vf_freezedetect.c s->width[plane], s->height[plane], &plane_sad); s 139 libavfilter/vf_freezedetect.c count += s->width[plane] * s->height[plane]; s 143 libavfilter/vf_freezedetect.c mafd = (double)sad / count / (1ULL << s->bitdepth); s 144 libavfilter/vf_freezedetect.c return (mafd <= s->noise); s 147 libavfilter/vf_freezedetect.c static int set_meta(FreezeDetectContext *s, AVFrame *frame, const char *key, const char *value) s 149 libavfilter/vf_freezedetect.c av_log(s, AV_LOG_INFO, "%s: %s\n", key, value); s 158 libavfilter/vf_freezedetect.c FreezeDetectContext *s = ctx->priv; s 169 libavfilter/vf_freezedetect.c s->n++; s 171 libavfilter/vf_freezedetect.c if (s->reference_frame) { s 173 libavfilter/vf_freezedetect.c if (s->reference_frame->pts == AV_NOPTS_VALUE || frame->pts == AV_NOPTS_VALUE || frame->pts < s->reference_frame->pts) // Discontinuity? s 174 libavfilter/vf_freezedetect.c duration = inlink->frame_rate.num > 0 ? av_rescale_q(s->n - s->reference_n, av_inv_q(inlink->frame_rate), AV_TIME_BASE_Q) : 0; s 176 libavfilter/vf_freezedetect.c duration = av_rescale_q(frame->pts - s->reference_frame->pts, inlink->time_base, AV_TIME_BASE_Q); s 178 libavfilter/vf_freezedetect.c frozen = is_frozen(s, s->reference_frame, frame); s 179 libavfilter/vf_freezedetect.c if (duration >= s->duration) { s 180 libavfilter/vf_freezedetect.c if (!s->frozen) s 181 libavfilter/vf_freezedetect.c set_meta(s, frame, "lavfi.freezedetect.freeze_start", av_ts2timestr(s->reference_frame->pts, &inlink->time_base)); s 183 libavfilter/vf_freezedetect.c set_meta(s, frame, "lavfi.freezedetect.freeze_duration", av_ts2timestr(duration, &AV_TIME_BASE_Q)); s 184 libavfilter/vf_freezedetect.c set_meta(s, frame, "lavfi.freezedetect.freeze_end", av_ts2timestr(frame->pts, &inlink->time_base)); s 186 libavfilter/vf_freezedetect.c s->frozen = frozen; s 191 libavfilter/vf_freezedetect.c av_frame_free(&s->reference_frame); s 192 libavfilter/vf_freezedetect.c s->reference_frame = av_frame_clone(frame); s 193 libavfilter/vf_freezedetect.c s->reference_n = s->n; s 194 libavfilter/vf_freezedetect.c if (!s->reference_frame) { s 77 libavfilter/vf_freezeframes.c FreezeFramesContext *s = ctx->priv; s 79 libavfilter/vf_freezeframes.c int drop = ctx->inputs[0]->frame_count_out >= s->first && s 80 libavfilter/vf_freezeframes.c ctx->inputs[0]->frame_count_out <= s->last; s 81 libavfilter/vf_freezeframes.c int replace = ctx->inputs[1]->frame_count_out == s->replace; s 86 libavfilter/vf_freezeframes.c if (drop && s->replace_frame) { s 95 libavfilter/vf_freezeframes.c frame = av_frame_clone(s->replace_frame); s 114 libavfilter/vf_freezeframes.c s->replace_frame = frame; s 122 libavfilter/vf_freezeframes.c if (!drop || (drop && s->replace_frame)) s 124 libavfilter/vf_freezeframes.c if (!s->replace_frame) s 132 libavfilter/vf_freezeframes.c FreezeFramesContext *s = ctx->priv; s 134 libavfilter/vf_freezeframes.c av_frame_free(&s->replace_frame); s 82 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 83 libavfilter/vf_frei0r.c void *sym = dlsym(s->dl_handle, sym_name); s 91 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 134 libavfilter/vf_frei0r.c s->set_param_value(s->instance, &val, index); s 145 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 151 libavfilter/vf_frei0r.c for (i = 0; i < s->plugin_info.num_params; i++) { s 156 libavfilter/vf_frei0r.c s->get_param_info(&info, i); s 187 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 221 libavfilter/vf_frei0r.c ret = load_path(ctx, &s->dl_handle, p1, dl_name); s 225 libavfilter/vf_frei0r.c if (s->dl_handle) s 234 libavfilter/vf_frei0r.c if (!s->dl_handle && (path = getenv("HOME"))) { s 238 libavfilter/vf_frei0r.c ret = load_path(ctx, &s->dl_handle, prefix, dl_name); s 243 libavfilter/vf_frei0r.c for (i = 0; !s->dl_handle && i < FF_ARRAY_ELEMS(frei0r_pathlist); i++) { s 244 libavfilter/vf_frei0r.c ret = load_path(ctx, &s->dl_handle, frei0r_pathlist[i], dl_name); s 248 libavfilter/vf_frei0r.c if (!s->dl_handle) { s 255 libavfilter/vf_frei0r.c !(s->get_param_info = load_sym(ctx, "f0r_get_param_info" )) || s 256 libavfilter/vf_frei0r.c !(s->get_param_value = load_sym(ctx, "f0r_get_param_value")) || s 257 libavfilter/vf_frei0r.c !(s->set_param_value = load_sym(ctx, "f0r_set_param_value")) || s 258 libavfilter/vf_frei0r.c !(s->update = load_sym(ctx, "f0r_update" )) || s 259 libavfilter/vf_frei0r.c !(s->construct = load_sym(ctx, "f0r_construct" )) || s 260 libavfilter/vf_frei0r.c !(s->destruct = load_sym(ctx, "f0r_destruct" )) || s 261 libavfilter/vf_frei0r.c !(s->deinit = load_sym(ctx, "f0r_deinit" ))) s 269 libavfilter/vf_frei0r.c f0r_get_plugin_info(&s->plugin_info); s 270 libavfilter/vf_frei0r.c pi = &s->plugin_info; s 295 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 297 libavfilter/vf_frei0r.c return frei0r_init(ctx, s->dl_name, F0R_PLUGIN_TYPE_FILTER); s 302 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 304 libavfilter/vf_frei0r.c if (s->destruct && s->instance) s 305 libavfilter/vf_frei0r.c s->destruct(s->instance); s 306 libavfilter/vf_frei0r.c if (s->deinit) s 307 libavfilter/vf_frei0r.c s->deinit(); s 308 libavfilter/vf_frei0r.c if (s->dl_handle) s 309 libavfilter/vf_frei0r.c dlclose(s->dl_handle); s 315 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 317 libavfilter/vf_frei0r.c if (s->destruct && s->instance) s 318 libavfilter/vf_frei0r.c s->destruct(s->instance); s 319 libavfilter/vf_frei0r.c if (!(s->instance = s->construct(inlink->w, inlink->h))) { s 324 libavfilter/vf_frei0r.c return set_params(ctx, s->params); s 329 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 333 libavfilter/vf_frei0r.c if (s->plugin_info.color_model == F0R_COLOR_MODEL_BGRA8888) { s 336 libavfilter/vf_frei0r.c } else if (s->plugin_info.color_model == F0R_COLOR_MODEL_RGBA8888) { s 354 libavfilter/vf_frei0r.c Frei0rContext *s = inlink->dst->priv; s 365 libavfilter/vf_frei0r.c s->update(s->instance, in->pts * av_q2d(inlink->time_base) * 1000, s 416 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 418 libavfilter/vf_frei0r.c s->time_base.num = s->framerate.den; s 419 libavfilter/vf_frei0r.c s->time_base.den = s->framerate.num; s 421 libavfilter/vf_frei0r.c return frei0r_init(ctx, s->dl_name, F0R_PLUGIN_TYPE_SOURCE); s 427 libavfilter/vf_frei0r.c Frei0rContext *s = ctx->priv; s 429 libavfilter/vf_frei0r.c if (av_image_check_size(s->w, s->h, 0, ctx) < 0) s 431 libavfilter/vf_frei0r.c outlink->w = s->w; s 432 libavfilter/vf_frei0r.c outlink->h = s->h; s 433 libavfilter/vf_frei0r.c outlink->time_base = s->time_base; s 434 libavfilter/vf_frei0r.c outlink->frame_rate = av_inv_q(s->time_base); s 437 libavfilter/vf_frei0r.c if (s->destruct && s->instance) s 438 libavfilter/vf_frei0r.c s->destruct(s->instance); s 439 libavfilter/vf_frei0r.c if (!(s->instance = s->construct(outlink->w, outlink->h))) { s 443 libavfilter/vf_frei0r.c if (!s->params) { s 448 libavfilter/vf_frei0r.c return set_params(ctx, s->params); s 453 libavfilter/vf_frei0r.c Frei0rContext *s = outlink->src->priv; s 460 libavfilter/vf_frei0r.c frame->pts = s->pts++; s 462 libavfilter/vf_frei0r.c s->update(s->instance, av_rescale_q(frame->pts, s->time_base, (AVRational){1,1000}), s 34 libavfilter/vf_fspp.h #define FIX(x,s) ((x) * (1 << s) + 0.5) s 79 libavfilter/vf_gblur.c GBlurContext *s = ctx->priv; s 85 libavfilter/vf_gblur.c const float boundaryscale = s->boundaryscale; s 86 libavfilter/vf_gblur.c const int steps = s->steps; s 87 libavfilter/vf_gblur.c const float nu = s->nu; s 88 libavfilter/vf_gblur.c float *buffer = s->buffer; s 90 libavfilter/vf_gblur.c s->horiz_slice(buffer + width * slice_start, width, slice_end - slice_start, s 132 libavfilter/vf_gblur.c GBlurContext *s = ctx->priv; s 138 libavfilter/vf_gblur.c const float boundaryscale = s->boundaryscaleV; s 139 libavfilter/vf_gblur.c const int steps = s->steps; s 140 libavfilter/vf_gblur.c const float nu = s->nuV; s 141 libavfilter/vf_gblur.c float *buffer = s->buffer; s 158 libavfilter/vf_gblur.c GBlurContext *s = ctx->priv; s 160 libavfilter/vf_gblur.c const float max = (1 << s->depth) - 1; s 166 libavfilter/vf_gblur.c const float postscale = s->postscale * s->postscaleV; s 167 libavfilter/vf_gblur.c float *buffer = s->buffer; s 180 libavfilter/vf_gblur.c GBlurContext *s = ctx->priv; s 181 libavfilter/vf_gblur.c const int width = s->planewidth[plane]; s 182 libavfilter/vf_gblur.c const int height = s->planeheight[plane]; s 186 libavfilter/vf_gblur.c if (s->sigma <= 0 || s->steps < 0) s 223 libavfilter/vf_gblur.c void ff_gblur_init(GBlurContext *s) s 225 libavfilter/vf_gblur.c s->horiz_slice = horiz_slice_c; s 227 libavfilter/vf_gblur.c ff_gblur_init_x86(s); s 233 libavfilter/vf_gblur.c GBlurContext *s = inlink->dst->priv; s 235 libavfilter/vf_gblur.c s->depth = desc->comp[0].depth; s 236 libavfilter/vf_gblur.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 237 libavfilter/vf_gblur.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 238 libavfilter/vf_gblur.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 239 libavfilter/vf_gblur.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 241 libavfilter/vf_gblur.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 243 libavfilter/vf_gblur.c s->buffer = av_malloc_array(FFALIGN(inlink->w, 16), FFALIGN(inlink->h, 16) * sizeof(*s->buffer)); s 244 libavfilter/vf_gblur.c if (!s->buffer) s 247 libavfilter/vf_gblur.c if (s->sigmaV < 0) { s 248 libavfilter/vf_gblur.c s->sigmaV = s->sigma; s 250 libavfilter/vf_gblur.c ff_gblur_init(s); s 269 libavfilter/vf_gblur.c GBlurContext *s = ctx->priv; s 274 libavfilter/vf_gblur.c set_params(s->sigma, s->steps, &s->postscale, &s->boundaryscale, &s->nu); s 275 libavfilter/vf_gblur.c set_params(s->sigmaV, s->steps, &s->postscaleV, &s->boundaryscaleV, &s->nuV); s 288 libavfilter/vf_gblur.c for (plane = 0; plane < s->nb_planes; plane++) { s 289 libavfilter/vf_gblur.c const int height = s->planeheight[plane]; s 290 libavfilter/vf_gblur.c const int width = s->planewidth[plane]; s 291 libavfilter/vf_gblur.c float *bptr = s->buffer; s 298 libavfilter/vf_gblur.c if (!s->sigma || !(s->planes & (1 << plane))) { s 302 libavfilter/vf_gblur.c width * ((s->depth + 7) / 8), height); s 306 libavfilter/vf_gblur.c if (s->depth == 8) { s 326 libavfilter/vf_gblur.c bptr = s->buffer; s 327 libavfilter/vf_gblur.c if (s->depth == 8) { s 353 libavfilter/vf_gblur.c GBlurContext *s = ctx->priv; s 355 libavfilter/vf_gblur.c av_freep(&s->buffer); s 126 libavfilter/vf_gradfun.c GradFunContext *s = ctx->priv; s 128 libavfilter/vf_gradfun.c s->thresh = (1 << 15) / s->strength; s 129 libavfilter/vf_gradfun.c s->radius = av_clip((s->radius + 1) & ~1, 4, 32); s 131 libavfilter/vf_gradfun.c s->blur_line = ff_gradfun_blur_line_c; s 132 libavfilter/vf_gradfun.c s->filter_line = ff_gradfun_filter_line_c; s 135 libavfilter/vf_gradfun.c ff_gradfun_init_x86(s); s 137 libavfilter/vf_gradfun.c av_log(ctx, AV_LOG_VERBOSE, "threshold:%.2f radius:%d\n", s->strength, s->radius); s 144 libavfilter/vf_gradfun.c GradFunContext *s = ctx->priv; s 145 libavfilter/vf_gradfun.c av_freep(&s->buf); s 166 libavfilter/vf_gradfun.c GradFunContext *s = inlink->dst->priv; s 171 libavfilter/vf_gradfun.c av_freep(&s->buf); s 172 libavfilter/vf_gradfun.c s->buf = av_calloc((FFALIGN(inlink->w, 16) * (s->radius + 1) / 2 + 32), sizeof(*s->buf)); s 173 libavfilter/vf_gradfun.c if (!s->buf) s 176 libavfilter/vf_gradfun.c s->chroma_w = AV_CEIL_RSHIFT(inlink->w, hsub); s 177 libavfilter/vf_gradfun.c s->chroma_h = AV_CEIL_RSHIFT(inlink->h, vsub); s 178 libavfilter/vf_gradfun.c s->chroma_r = av_clip(((((s->radius >> hsub) + (s->radius >> vsub)) / 2 ) + 1) & ~1, 4, 32); s 185 libavfilter/vf_gradfun.c GradFunContext *s = inlink->dst->priv; s 206 libavfilter/vf_gradfun.c int r = s->radius; s 208 libavfilter/vf_gradfun.c w = s->chroma_w; s 209 libavfilter/vf_gradfun.c h = s->chroma_h; s 210 libavfilter/vf_gradfun.c r = s->chroma_r; s 214 libavfilter/vf_gradfun.c filter(s, out->data[p], in->data[p], w, h, out->linesize[p], in->linesize[p], r); s 130 libavfilter/vf_hflip.c FlipContext *s = inlink->dst->priv; s 136 libavfilter/vf_hflip.c av_image_fill_max_pixsteps(s->max_step, NULL, pix_desc); s 137 libavfilter/vf_hflip.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 138 libavfilter/vf_hflip.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 139 libavfilter/vf_hflip.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 140 libavfilter/vf_hflip.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 144 libavfilter/vf_hflip.c return ff_hflip_init(s, s->max_step, nb_planes); s 147 libavfilter/vf_hflip.c int ff_hflip_init(FlipContext *s, int step[4], int nb_planes) s 153 libavfilter/vf_hflip.c case 1: s->flip_line[i] = hflip_byte_c; break; s 154 libavfilter/vf_hflip.c case 2: s->flip_line[i] = hflip_short_c; break; s 155 libavfilter/vf_hflip.c case 3: s->flip_line[i] = hflip_b24_c; break; s 156 libavfilter/vf_hflip.c case 4: s->flip_line[i] = hflip_dword_c; break; s 157 libavfilter/vf_hflip.c case 6: s->flip_line[i] = hflip_b48_c; break; s 158 libavfilter/vf_hflip.c case 8: s->flip_line[i] = hflip_qword_c; break; s 164 libavfilter/vf_hflip.c ff_hflip_init_x86(s, step, nb_planes); s 175 libavfilter/vf_hflip.c FlipContext *s = ctx->priv; s 183 libavfilter/vf_hflip.c const int width = s->planewidth[plane]; s 184 libavfilter/vf_hflip.c const int height = s->planeheight[plane]; s 188 libavfilter/vf_hflip.c step = s->max_step[plane]; s 193 libavfilter/vf_hflip.c s->flip_line[plane](inrow, outrow, width); s 208 libavfilter/vf_histogram.c HistogramContext *s = inlink->dst->priv; s 210 libavfilter/vf_histogram.c s->desc = av_pix_fmt_desc_get(inlink->format); s 211 libavfilter/vf_histogram.c s->ncomp = s->desc->nb_components; s 212 libavfilter/vf_histogram.c s->histogram_size = 1 << s->desc->comp[0].depth; s 213 libavfilter/vf_histogram.c s->mult = s->histogram_size / 256; s 223 libavfilter/vf_histogram.c memcpy(s->bg_color, black_gbrp_color, 4); s 224 libavfilter/vf_histogram.c memcpy(s->fg_color, white_gbrp_color, 4); s 225 libavfilter/vf_histogram.c s->start[0] = s->start[1] = s->start[2] = s->start[3] = 0; s 226 libavfilter/vf_histogram.c memcpy(s->envelope_color, s->envelope_rgba, 4); s 229 libavfilter/vf_histogram.c memcpy(s->bg_color, black_yuva_color, 4); s 230 libavfilter/vf_histogram.c memcpy(s->fg_color, white_yuva_color, 4); s 231 libavfilter/vf_histogram.c s->start[0] = s->start[3] = 0; s 232 libavfilter/vf_histogram.c s->start[1] = s->start[2] = s->histogram_size / 2; s 233 libavfilter/vf_histogram.c s->envelope_color[0] = RGB_TO_Y_BT709(s->envelope_rgba[0], s->envelope_rgba[1], s->envelope_rgba[2]); s 234 libavfilter/vf_histogram.c s->envelope_color[1] = RGB_TO_U_BT709(s->envelope_rgba[0], s->envelope_rgba[1], s->envelope_rgba[2], 0); s 235 libavfilter/vf_histogram.c s->envelope_color[2] = RGB_TO_V_BT709(s->envelope_rgba[0], s->envelope_rgba[1], s->envelope_rgba[2], 0); s 236 libavfilter/vf_histogram.c s->envelope_color[3] = s->envelope_rgba[3]; s 239 libavfilter/vf_histogram.c s->fg_color[3] = s->fgopacity * 255; s 240 libavfilter/vf_histogram.c s->bg_color[3] = s->bgopacity * 255; s 242 libavfilter/vf_histogram.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 243 libavfilter/vf_histogram.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 244 libavfilter/vf_histogram.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, s->desc->log2_chroma_w); s 245 libavfilter/vf_histogram.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 253 libavfilter/vf_histogram.c HistogramContext *s = ctx->priv; s 257 libavfilter/vf_histogram.c s->thistogram = 1; s 259 libavfilter/vf_histogram.c for (i = 0; i < s->ncomp; i++) { s 260 libavfilter/vf_histogram.c if ((1 << i) & s->components) s 264 libavfilter/vf_histogram.c if (s->thistogram) { s 265 libavfilter/vf_histogram.c if (!s->width) s 266 libavfilter/vf_histogram.c s->width = ctx->inputs[0]->w; s 267 libavfilter/vf_histogram.c outlink->w = s->width * FFMAX(ncomp * (s->display_mode == 1), 1); s 268 libavfilter/vf_histogram.c outlink->h = s->histogram_size * FFMAX(ncomp * (s->display_mode == 2), 1); s 270 libavfilter/vf_histogram.c outlink->w = s->histogram_size * FFMAX(ncomp * (s->display_mode == 1), 1); s 271 libavfilter/vf_histogram.c outlink->h = (s->level_height + s->scale_height) * FFMAX(ncomp * (s->display_mode == 2), 1); s 274 libavfilter/vf_histogram.c s->odesc = av_pix_fmt_desc_get(outlink->format); s 275 libavfilter/vf_histogram.c s->dncomp = s->odesc->nb_components; s 283 libavfilter/vf_histogram.c HistogramContext *s = inlink->dst->priv; s 286 libavfilter/vf_histogram.c AVFrame *out = s->out; s 289 libavfilter/vf_histogram.c if (!s->thistogram || !out) { s 295 libavfilter/vf_histogram.c s->out = out; s 299 libavfilter/vf_histogram.c const int dst_h = AV_CEIL_RSHIFT(outlink->h, (is_chroma ? s->odesc->log2_chroma_h : 0)); s 300 libavfilter/vf_histogram.c const int dst_w = AV_CEIL_RSHIFT(outlink->w, (is_chroma ? s->odesc->log2_chroma_w : 0)); s 302 libavfilter/vf_histogram.c if (s->histogram_size <= 256) { s 304 libavfilter/vf_histogram.c memset(out->data[s->odesc->comp[k].plane] + s 305 libavfilter/vf_histogram.c i * out->linesize[s->odesc->comp[k].plane], s 306 libavfilter/vf_histogram.c s->bg_color[k], dst_w); s 308 libavfilter/vf_histogram.c const int mult = s->mult; s 312 libavfilter/vf_histogram.c AV_WN16(out->data[s->odesc->comp[k].plane] + s 313 libavfilter/vf_histogram.c i * out->linesize[s->odesc->comp[k].plane] + j * 2, s 314 libavfilter/vf_histogram.c s->bg_color[k] * mult); s 319 libavfilter/vf_histogram.c for (m = 0, k = 0; k < s->ncomp; k++) { s 320 libavfilter/vf_histogram.c const int p = s->desc->comp[k].plane; s 321 libavfilter/vf_histogram.c const int max_value = s->histogram_size - 1 - s->start[p]; s 322 libavfilter/vf_histogram.c const int height = s->planeheight[p]; s 323 libavfilter/vf_histogram.c const int width = s->planewidth[p]; s 328 libavfilter/vf_histogram.c if (!((1 << k) & s->components)) s 330 libavfilter/vf_histogram.c if (s->thistogram) { s 331 libavfilter/vf_histogram.c starty = m * s->histogram_size * (s->display_mode == 2); s 332 libavfilter/vf_histogram.c startx = m++ * s->width * (s->display_mode == 1); s 334 libavfilter/vf_histogram.c startx = m * s->histogram_size * (s->display_mode == 1); s 335 libavfilter/vf_histogram.c starty = m++ * (s->level_height + s->scale_height) * (s->display_mode == 2); s 338 libavfilter/vf_histogram.c if (s->histogram_size <= 256) { s 342 libavfilter/vf_histogram.c s->histogram[src[j]]++; s 348 libavfilter/vf_histogram.c s->histogram[src[j]]++; s 352 libavfilter/vf_histogram.c for (i = 0; i < s->histogram_size; i++) s 353 libavfilter/vf_histogram.c max_hval = FFMAX(max_hval, s->histogram[i]); s 356 libavfilter/vf_histogram.c if (s->thistogram) { s 357 libavfilter/vf_histogram.c int minh = s->histogram_size - 1, maxh = 0; s 359 libavfilter/vf_histogram.c for (int i = 0; i < s->histogram_size; i++) { s 360 libavfilter/vf_histogram.c int idx = s->histogram_size - i - 1; s 361 libavfilter/vf_histogram.c int value = s->start[p]; s 363 libavfilter/vf_histogram.c if (s->envelope && s->histogram[idx]) { s 368 libavfilter/vf_histogram.c if (s->levels_mode) s 369 libavfilter/vf_histogram.c value += lrint(max_value * (log2(s->histogram[idx] + 1) / max_hval_log)); s 371 libavfilter/vf_histogram.c value += lrint(max_value * s->histogram[idx] / (float)max_hval); s 373 libavfilter/vf_histogram.c if (s->histogram_size <= 256) { s 374 libavfilter/vf_histogram.c s->out->data[p][(i + starty) * s->out->linesize[p] + startx + s->x_pos] = value; s 376 libavfilter/vf_histogram.c AV_WN16(s->out->data[p] + (i + starty) * s->out->linesize[p] + startx * 2 + s->x_pos * 2, value); s 380 libavfilter/vf_histogram.c if (s->envelope) { s 381 libavfilter/vf_histogram.c if (s->histogram_size <= 256) { s 382 libavfilter/vf_histogram.c s->out->data[0][(minh + starty) * s->out->linesize[p] + startx + s->x_pos] = s->envelope_color[0]; s 383 libavfilter/vf_histogram.c s->out->data[0][(maxh + starty) * s->out->linesize[p] + startx + s->x_pos] = s->envelope_color[0]; s 384 libavfilter/vf_histogram.c if (s->dncomp >= 3) { s 385 libavfilter/vf_histogram.c s->out->data[1][(minh + starty) * s->out->linesize[p] + startx + s->x_pos] = s->envelope_color[1]; s 386 libavfilter/vf_histogram.c s->out->data[2][(minh + starty) * s->out->linesize[p] + startx + s->x_pos] = s->envelope_color[2]; s 387 libavfilter/vf_histogram.c s->out->data[1][(maxh + starty) * s->out->linesize[p] + startx + s->x_pos] = s->envelope_color[1]; s 388 libavfilter/vf_histogram.c s->out->data[2][(maxh + starty) * s->out->linesize[p] + startx + s->x_pos] = s->envelope_color[2]; s 391 libavfilter/vf_histogram.c const int mult = s->mult; s 393 libavfilter/vf_histogram.c AV_WN16(s->out->data[0] + (minh + starty) * s->out->linesize[p] + startx * 2 + s->x_pos * 2, s->envelope_color[0] * mult); s 394 libavfilter/vf_histogram.c AV_WN16(s->out->data[0] + (maxh + starty) * s->out->linesize[p] + startx * 2 + s->x_pos * 2, s->envelope_color[0] * mult); s 395 libavfilter/vf_histogram.c if (s->dncomp >= 3) { s 396 libavfilter/vf_histogram.c AV_WN16(s->out->data[1] + (minh + starty) * s->out->linesize[p] + startx * 2 + s->x_pos * 2, s->envelope_color[1] * mult); s 397 libavfilter/vf_histogram.c AV_WN16(s->out->data[2] + (minh + starty) * s->out->linesize[p] + startx * 2 + s->x_pos * 2, s->envelope_color[2] * mult); s 398 libavfilter/vf_histogram.c AV_WN16(s->out->data[1] + (maxh + starty) * s->out->linesize[p] + startx * 2 + s->x_pos * 2, s->envelope_color[1] * mult); s 399 libavfilter/vf_histogram.c AV_WN16(s->out->data[2] + (maxh + starty) * s->out->linesize[p] + startx * 2 + s->x_pos * 2, s->envelope_color[2] * mult); s 404 libavfilter/vf_histogram.c for (i = 0; i < s->histogram_size; i++) { s 407 libavfilter/vf_histogram.c if (s->levels_mode) s 408 libavfilter/vf_histogram.c col_height = lrint(s->level_height * (1. - (log2(s->histogram[i] + 1) / max_hval_log))); s 410 libavfilter/vf_histogram.c col_height = s->level_height - (s->histogram[i] * (int64_t)s->level_height + max_hval - 1) / max_hval; s 412 libavfilter/vf_histogram.c if (s->histogram_size <= 256) { s 413 libavfilter/vf_histogram.c for (j = s->level_height - 1; j >= col_height; j--) { s 414 libavfilter/vf_histogram.c if (s->display_mode) { s 415 libavfilter/vf_histogram.c for (l = 0; l < s->dncomp; l++) s 416 libavfilter/vf_histogram.c out->data[l][(j + starty) * out->linesize[l] + startx + i] = s->fg_color[l]; s 421 libavfilter/vf_histogram.c for (j = s->level_height + s->scale_height - 1; j >= s->level_height; j--) s 424 libavfilter/vf_histogram.c const int mult = s->mult; s 426 libavfilter/vf_histogram.c for (j = s->level_height - 1; j >= col_height; j--) { s 427 libavfilter/vf_histogram.c if (s->display_mode) { s 428 libavfilter/vf_histogram.c for (l = 0; l < s->dncomp; l++) s 429 libavfilter/vf_histogram.c AV_WN16(out->data[l] + (j + starty) * out->linesize[l] + startx * 2 + i * 2, s->fg_color[l] * mult); s 434 libavfilter/vf_histogram.c for (j = s->level_height + s->scale_height - 1; j >= s->level_height; j--) s 440 libavfilter/vf_histogram.c memset(s->histogram, 0, s->histogram_size * sizeof(unsigned)); s 445 libavfilter/vf_histogram.c s->x_pos++; s 446 libavfilter/vf_histogram.c if (s->x_pos >= s->width) s 447 libavfilter/vf_histogram.c s->x_pos = 0; s 449 libavfilter/vf_histogram.c if (s->thistogram) { s 80 libavfilter/vf_hqdn3d.c static void denoise_spatial(HQDN3DContext *s, s 106 libavfilter/vf_hqdn3d.c if (s->denoise_row[depth]) { s 107 libavfilter/vf_hqdn3d.c s->denoise_row[depth](src, dst, line_ant, frame_ant, w, spatial, temporal); s 124 libavfilter/vf_hqdn3d.c static int denoise_depth(HQDN3DContext *s, s 147 libavfilter/vf_hqdn3d.c denoise_spatial(s, src, dst, line_ant, frame_ant, s 159 libavfilter/vf_hqdn3d.c switch (s->depth) { \ s 198 libavfilter/vf_hqdn3d.c HQDN3DContext *s = ctx->priv; s 200 libavfilter/vf_hqdn3d.c if (!s->strength[LUMA_SPATIAL]) s 201 libavfilter/vf_hqdn3d.c s->strength[LUMA_SPATIAL] = PARAM1_DEFAULT; s 202 libavfilter/vf_hqdn3d.c if (!s->strength[CHROMA_SPATIAL]) s 203 libavfilter/vf_hqdn3d.c s->strength[CHROMA_SPATIAL] = PARAM2_DEFAULT * s->strength[LUMA_SPATIAL] / PARAM1_DEFAULT; s 204 libavfilter/vf_hqdn3d.c if (!s->strength[LUMA_TMP]) s 205 libavfilter/vf_hqdn3d.c s->strength[LUMA_TMP] = PARAM3_DEFAULT * s->strength[LUMA_SPATIAL] / PARAM1_DEFAULT; s 206 libavfilter/vf_hqdn3d.c if (!s->strength[CHROMA_TMP]) s 207 libavfilter/vf_hqdn3d.c s->strength[CHROMA_TMP] = s->strength[LUMA_TMP] * s->strength[CHROMA_SPATIAL] / s->strength[LUMA_SPATIAL]; s 210 libavfilter/vf_hqdn3d.c s->strength[LUMA_SPATIAL], s->strength[CHROMA_SPATIAL], s 211 libavfilter/vf_hqdn3d.c s->strength[LUMA_TMP], s->strength[CHROMA_TMP]); s 218 libavfilter/vf_hqdn3d.c HQDN3DContext *s = ctx->priv; s 220 libavfilter/vf_hqdn3d.c av_freep(&s->coefs[0]); s 221 libavfilter/vf_hqdn3d.c av_freep(&s->coefs[1]); s 222 libavfilter/vf_hqdn3d.c av_freep(&s->coefs[2]); s 223 libavfilter/vf_hqdn3d.c av_freep(&s->coefs[3]); s 224 libavfilter/vf_hqdn3d.c av_freep(&s->line[0]); s 225 libavfilter/vf_hqdn3d.c av_freep(&s->line[1]); s 226 libavfilter/vf_hqdn3d.c av_freep(&s->line[2]); s 227 libavfilter/vf_hqdn3d.c av_freep(&s->frame_prev[0]); s 228 libavfilter/vf_hqdn3d.c av_freep(&s->frame_prev[1]); s 229 libavfilter/vf_hqdn3d.c av_freep(&s->frame_prev[2]); s 255 libavfilter/vf_hqdn3d.c HQDN3DContext *s = ctx->priv; s 258 libavfilter/vf_hqdn3d.c precalc_coefs(s->strength[i], s->depth, s->coefs[i]); s 264 libavfilter/vf_hqdn3d.c HQDN3DContext *s = inlink->dst->priv; s 270 libavfilter/vf_hqdn3d.c s->hsub = desc->log2_chroma_w; s 271 libavfilter/vf_hqdn3d.c s->vsub = desc->log2_chroma_h; s 272 libavfilter/vf_hqdn3d.c s->depth = depth = desc->comp[0].depth; s 275 libavfilter/vf_hqdn3d.c s->line[i] = av_malloc_array(inlink->w, sizeof(*s->line[i])); s 276 libavfilter/vf_hqdn3d.c if (!s->line[i]) s 281 libavfilter/vf_hqdn3d.c s->coefs[i] = av_malloc((512<<LUT_BITS) * sizeof(int16_t)); s 282 libavfilter/vf_hqdn3d.c if (!s->coefs[i]) s 289 libavfilter/vf_hqdn3d.c ff_hqdn3d_init_x86(s); s 301 libavfilter/vf_hqdn3d.c HQDN3DContext *s = ctx->priv; s 307 libavfilter/vf_hqdn3d.c denoise(s, in->data[job_nr], out->data[job_nr], s 308 libavfilter/vf_hqdn3d.c s->line[job_nr], &s->frame_prev[job_nr], s 309 libavfilter/vf_hqdn3d.c AV_CEIL_RSHIFT(in->width, (!!job_nr * s->hsub)), s 310 libavfilter/vf_hqdn3d.c AV_CEIL_RSHIFT(in->height, (!!job_nr * s->vsub)), s 312 libavfilter/vf_hqdn3d.c s->coefs[job_nr ? CHROMA_SPATIAL : LUMA_SPATIAL], s 313 libavfilter/vf_hqdn3d.c s->coefs[job_nr ? CHROMA_TMP : LUMA_TMP]); s 76 libavfilter/vf_hqx.c static av_always_inline uint32_t interp_2px(uint32_t c1, int w1, uint32_t c2, int w2, int s) s 78 libavfilter/vf_hqx.c return (((((c1 & 0xff00ff00) >> 8) * w1 + ((c2 & 0xff00ff00) >> 8) * w2) << (8 - s)) & 0xff00ff00) | s 79 libavfilter/vf_hqx.c (((((c1 & 0x00ff00ff) ) * w1 + ((c2 & 0x00ff00ff) ) * w2) >> s ) & 0x00ff00ff); s 83 libavfilter/vf_hqx.c static av_always_inline uint32_t interp_3px(uint32_t c1, int w1, uint32_t c2, int w2, uint32_t c3, int w3, int s) s 85 libavfilter/vf_hqx.c return (((((c1 & 0xff00ff00) >> 8) * w1 + ((c2 & 0xff00ff00) >> 8) * w2 + ((c3 & 0xff00ff00) >> 8) * w3) << (8 - s)) & 0xff00ff00) | s 86 libavfilter/vf_hqx.c (((((c1 & 0x00ff00ff) ) * w1 + ((c2 & 0x00ff00ff) ) * w2 + ((c3 & 0x00ff00ff) ) * w3) >> s ) & 0x00ff00ff); s 129 libavfilter/vf_hue.c const int32_t s) s 149 libavfilter/vf_hue.c new_u = ((c * u) - (s * v) + (1 << 15) + (128 << 16)) >> 16; s 150 libavfilter/vf_hue.c new_v = ((s * u) + (c * v) + (1 << 15) + (128 << 16)) >> 16; s 168 libavfilter/vf_hue.c new_u = ((c * u) - (s * v) + (1 << 15) + (512 << 16)) >> 16; s 169 libavfilter/vf_hue.c new_v = ((s * u) + (c * v) + (1 << 15) + (512 << 16)) >> 16; s 288 libavfilter/vf_hue.c static void apply_luma_lut(HueContext *s, s 297 libavfilter/vf_hue.c ldst[i] = s->lut_l[lsrc[i]]; s 304 libavfilter/vf_hue.c static void apply_luma_lut10(HueContext *s, s 313 libavfilter/vf_hue.c ldst[i] = s->lut_l16[lsrc[i]]; s 320 libavfilter/vf_hue.c static void apply_lut(HueContext *s, s 332 libavfilter/vf_hue.c udst[i] = s->lut_u[u][v]; s 333 libavfilter/vf_hue.c vdst[i] = s->lut_v[u][v]; s 343 libavfilter/vf_hue.c static void apply_lut10(HueContext *s, s 355 libavfilter/vf_hue.c udst[i] = s->lut_u10[u][v]; s 356 libavfilter/vf_hue.c vdst[i] = s->lut_v10[u][v]; s 39 libavfilter/vf_hwupload_cuda.c CudaUploadContext *s = ctx->priv; s 42 libavfilter/vf_hwupload_cuda.c snprintf(buf, sizeof(buf), "%d", s->device_idx); s 44 libavfilter/vf_hwupload_cuda.c return av_hwdevice_ctx_create(&s->hwdevice, AV_HWDEVICE_TYPE_CUDA, buf, NULL, 0); s 49 libavfilter/vf_hwupload_cuda.c CudaUploadContext *s = ctx->priv; s 51 libavfilter/vf_hwupload_cuda.c av_buffer_unref(&s->hwframe); s 52 libavfilter/vf_hwupload_cuda.c av_buffer_unref(&s->hwdevice); s 91 libavfilter/vf_hwupload_cuda.c CudaUploadContext *s = ctx->priv; s 96 libavfilter/vf_hwupload_cuda.c av_buffer_unref(&s->hwframe); s 97 libavfilter/vf_hwupload_cuda.c s->hwframe = av_hwframe_ctx_alloc(s->hwdevice); s 98 libavfilter/vf_hwupload_cuda.c if (!s->hwframe) s 101 libavfilter/vf_hwupload_cuda.c hwframe_ctx = (AVHWFramesContext*)s->hwframe->data; s 112 libavfilter/vf_hwupload_cuda.c ret = av_hwframe_ctx_init(s->hwframe); s 116 libavfilter/vf_hwupload_cuda.c outlink->hw_frames_ctx = av_buffer_ref(s->hwframe); s 49 libavfilter/vf_hysteresis.c void (*hysteresis)(struct HysteresisContext *s, const uint8_t *bsrc, const uint8_t *osrc, uint8_t *dst, s 90 libavfilter/vf_hysteresis.c HysteresisContext *s = fs->opaque; s 95 libavfilter/vf_hysteresis.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &base, 0)) < 0 || s 96 libavfilter/vf_hysteresis.c (ret = ff_framesync_get_frame(&s->fs, 1, &alt, 0)) < 0) s 111 libavfilter/vf_hysteresis.c for (p = 0; p < s->nb_planes; p++) { s 112 libavfilter/vf_hysteresis.c if (!((1 << p) & s->planes)) { s 114 libavfilter/vf_hysteresis.c s->width[p], s->height[p]); s 119 libavfilter/vf_hysteresis.c for (y = 0; y < s->height[p]; y++) { s 120 libavfilter/vf_hysteresis.c memset(out->data[p] + y * out->linesize[p], 0, s->width[p]); s 124 libavfilter/vf_hysteresis.c s->index = -1; s 125 libavfilter/vf_hysteresis.c memset(s->map, 0, s->width[0] * s->height[0]); s 126 libavfilter/vf_hysteresis.c memset(s->xy, 0, s->width[0] * s->height[0] * 4); s 128 libavfilter/vf_hysteresis.c s->hysteresis(s, base->data[p], alt->data[p], s 132 libavfilter/vf_hysteresis.c s->width[p], s->height[p]); s 135 libavfilter/vf_hysteresis.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 140 libavfilter/vf_hysteresis.c static int passed(HysteresisContext *s, int x, int y, int w) s 142 libavfilter/vf_hysteresis.c return s->map[x + y * w]; s 145 libavfilter/vf_hysteresis.c static void push(HysteresisContext *s, int x, int y, int w) s 147 libavfilter/vf_hysteresis.c s->map[x + y * w] = 0xff; s 148 libavfilter/vf_hysteresis.c s->xy[++s->index] = (uint16_t)(x) << 16 | (uint16_t)y; s 151 libavfilter/vf_hysteresis.c static void pop(HysteresisContext *s, int *x, int *y) s 153 libavfilter/vf_hysteresis.c uint32_t val = s->xy[s->index--]; s 159 libavfilter/vf_hysteresis.c static int is_empty(HysteresisContext *s) s 161 libavfilter/vf_hysteresis.c return s->index < 0; s 164 libavfilter/vf_hysteresis.c static void hysteresis8(HysteresisContext *s, const uint8_t *bsrc, const uint8_t *asrc, s 170 libavfilter/vf_hysteresis.c const int t = s->threshold; s 175 libavfilter/vf_hysteresis.c if ((bsrc[x + y * blinesize] > t) && (asrc[x + y * alinesize] > t) && !passed(s, x, y, w)) { s 180 libavfilter/vf_hysteresis.c push(s, x, y, w); s 182 libavfilter/vf_hysteresis.c while (!is_empty(s)) { s 185 libavfilter/vf_hysteresis.c pop(s, &posx, &posy); s 194 libavfilter/vf_hysteresis.c if ((asrc[xx + yy * alinesize] > t) && !passed(s, xx, yy, w)) { s 196 libavfilter/vf_hysteresis.c push(s, xx, yy, w); s 206 libavfilter/vf_hysteresis.c static void hysteresis16(HysteresisContext *s, const uint8_t *bbsrc, const uint8_t *aasrc, s 215 libavfilter/vf_hysteresis.c const int t = s->threshold; s 224 libavfilter/vf_hysteresis.c if ((bsrc[x + y * blinesize] > t) && (asrc[x + y * alinesize] > t) && !passed(s, x, y, w)) { s 229 libavfilter/vf_hysteresis.c push(s, x, y, w); s 231 libavfilter/vf_hysteresis.c while (!is_empty(s)) { s 234 libavfilter/vf_hysteresis.c pop(s, &posx, &posy); s 243 libavfilter/vf_hysteresis.c if ((asrc[xx + yy * alinesize] > t) && !passed(s, xx, yy, w)) { s 245 libavfilter/vf_hysteresis.c push(s, xx, yy, w); s 258 libavfilter/vf_hysteresis.c HysteresisContext *s = ctx->priv; s 262 libavfilter/vf_hysteresis.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 266 libavfilter/vf_hysteresis.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 267 libavfilter/vf_hysteresis.c s->height[0] = s->height[3] = inlink->h; s 268 libavfilter/vf_hysteresis.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 269 libavfilter/vf_hysteresis.c s->width[0] = s->width[3] = inlink->w; s 271 libavfilter/vf_hysteresis.c s->depth = desc->comp[0].depth; s 274 libavfilter/vf_hysteresis.c s->hysteresis = hysteresis8; s 276 libavfilter/vf_hysteresis.c s->hysteresis = hysteresis16; s 278 libavfilter/vf_hysteresis.c s->map = av_calloc(inlink->w, inlink->h * sizeof (*s->map)); s 279 libavfilter/vf_hysteresis.c if (!s->map) s 282 libavfilter/vf_hysteresis.c s->xy = av_calloc(inlink->w, inlink->h * sizeof(*s->xy)); s 283 libavfilter/vf_hysteresis.c if (!s->xy) s 292 libavfilter/vf_hysteresis.c HysteresisContext *s = ctx->priv; s 317 libavfilter/vf_hysteresis.c if ((ret = ff_framesync_init(&s->fs, ctx, 2)) < 0) s 320 libavfilter/vf_hysteresis.c in = s->fs.in; s 329 libavfilter/vf_hysteresis.c s->fs.opaque = s; s 330 libavfilter/vf_hysteresis.c s->fs.on_event = process_frame; s 332 libavfilter/vf_hysteresis.c ret = ff_framesync_configure(&s->fs); s 333 libavfilter/vf_hysteresis.c outlink->time_base = s->fs.time_base; s 340 libavfilter/vf_hysteresis.c HysteresisContext *s = ctx->priv; s 341 libavfilter/vf_hysteresis.c return ff_framesync_activate(&s->fs); s 346 libavfilter/vf_hysteresis.c HysteresisContext *s = ctx->priv; s 348 libavfilter/vf_hysteresis.c ff_framesync_uninit(&s->fs); s 349 libavfilter/vf_hysteresis.c av_freep(&s->map); s 350 libavfilter/vf_hysteresis.c av_freep(&s->xy); s 102 libavfilter/vf_il.c IlContext *s = inlink->dst->priv; s 106 libavfilter/vf_il.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 108 libavfilter/vf_il.c s->has_alpha = !!(desc->flags & AV_PIX_FMT_FLAG_ALPHA); s 109 libavfilter/vf_il.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 112 libavfilter/vf_il.c s->chroma_height = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 150 libavfilter/vf_il.c IlContext *s = inlink->dst->priv; s 163 libavfilter/vf_il.c s->linesize[0], inlink->h, s 165 libavfilter/vf_il.c s->luma_mode, s->luma_swap); s 167 libavfilter/vf_il.c for (comp = 1; comp < (s->nb_planes - s->has_alpha); comp++) { s 169 libavfilter/vf_il.c s->linesize[comp], s->chroma_height, s 171 libavfilter/vf_il.c s->chroma_mode, s->chroma_swap); s 174 libavfilter/vf_il.c if (s->has_alpha) { s 175 libavfilter/vf_il.c comp = s->nb_planes - 1; s 177 libavfilter/vf_il.c s->linesize[comp], inlink->h, s 179 libavfilter/vf_il.c s->alpha_mode, s->alpha_swap); s 82 libavfilter/vf_lagfun.c LagfunContext *s = ctx->priv; s 83 libavfilter/vf_lagfun.c const float decay = s->decay; s 89 libavfilter/vf_lagfun.c for (int p = 0; p < s->nb_planes; p++) { s 90 libavfilter/vf_lagfun.c const int slice_start = (s->height[p] * jobnr) / nb_jobs; s 91 libavfilter/vf_lagfun.c const int slice_end = (s->height[p] * (jobnr+1)) / nb_jobs; s 96 libavfilter/vf_lagfun.c if (!((1 << p) & s->planes)) { s 99 libavfilter/vf_lagfun.c s->linesize[p], slice_end - slice_start); s 104 libavfilter/vf_lagfun.c for (int x = 0; x < s->linesize[p]; x++) s 118 libavfilter/vf_lagfun.c LagfunContext *s = ctx->priv; s 119 libavfilter/vf_lagfun.c const float decay = s->decay; s 125 libavfilter/vf_lagfun.c for (int p = 0; p < s->nb_planes; p++) { s 126 libavfilter/vf_lagfun.c const int slice_start = (s->height[p] * jobnr) / nb_jobs; s 127 libavfilter/vf_lagfun.c const int slice_end = (s->height[p] * (jobnr+1)) / nb_jobs; s 132 libavfilter/vf_lagfun.c if (!((1 << p) & s->planes)) { s 135 libavfilter/vf_lagfun.c s->linesize[p], slice_end - slice_start); s 140 libavfilter/vf_lagfun.c for (int x = 0; x < s->linesize[p] / 2; x++) s 155 libavfilter/vf_lagfun.c LagfunContext *s = ctx->priv; s 159 libavfilter/vf_lagfun.c s->desc = av_pix_fmt_desc_get(outlink->format); s 160 libavfilter/vf_lagfun.c if (!s->desc) s 162 libavfilter/vf_lagfun.c s->nb_planes = av_pix_fmt_count_planes(outlink->format); s 163 libavfilter/vf_lagfun.c s->depth = s->desc->comp[0].depth; s 164 libavfilter/vf_lagfun.c s->lagfun = s->depth <= 8 ? lagfun_frame8 : lagfun_frame16; s 166 libavfilter/vf_lagfun.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 169 libavfilter/vf_lagfun.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 170 libavfilter/vf_lagfun.c s->height[0] = s->height[3] = inlink->h; s 179 libavfilter/vf_lagfun.c LagfunContext *s = ctx->priv; s 183 libavfilter/vf_lagfun.c if (!s->old) { s 184 libavfilter/vf_lagfun.c s->old = av_frame_clone(in); s 197 libavfilter/vf_lagfun.c td.old = s->old; s 198 libavfilter/vf_lagfun.c ctx->internal->execute(ctx, s->lagfun, &td, NULL, FFMIN(s->height[1], ff_filter_get_nb_threads(ctx))); s 200 libavfilter/vf_lagfun.c av_frame_free(&s->old); s 202 libavfilter/vf_lagfun.c s->old = av_frame_clone(out); s 208 libavfilter/vf_lagfun.c LagfunContext *s = ctx->priv; s 210 libavfilter/vf_lagfun.c av_frame_free(&s->old); s 96 libavfilter/vf_libopencv.c OCVContext *s = ctx->priv; s 97 libavfilter/vf_libopencv.c SmoothContext *smooth = s->priv; s 139 libavfilter/vf_libopencv.c OCVContext *s = ctx->priv; s 140 libavfilter/vf_libopencv.c SmoothContext *smooth = s->priv; s 274 libavfilter/vf_libopencv.c OCVContext *s = ctx->priv; s 275 libavfilter/vf_libopencv.c DilateContext *dilate = s->priv; s 309 libavfilter/vf_libopencv.c OCVContext *s = ctx->priv; s 310 libavfilter/vf_libopencv.c DilateContext *dilate = s->priv; s 317 libavfilter/vf_libopencv.c OCVContext *s = ctx->priv; s 318 libavfilter/vf_libopencv.c DilateContext *dilate = s->priv; s 324 libavfilter/vf_libopencv.c OCVContext *s = ctx->priv; s 325 libavfilter/vf_libopencv.c DilateContext *dilate = s->priv; s 345 libavfilter/vf_libopencv.c OCVContext *s = ctx->priv; s 348 libavfilter/vf_libopencv.c if (!s->name) { s 354 libavfilter/vf_libopencv.c if (!strcmp(s->name, entry->name)) { s 355 libavfilter/vf_libopencv.c s->init = entry->init; s 356 libavfilter/vf_libopencv.c s->uninit = entry->uninit; s 357 libavfilter/vf_libopencv.c s->end_frame_filter = entry->end_frame_filter; s 359 libavfilter/vf_libopencv.c if (!(s->priv = av_mallocz(entry->priv_size))) s 361 libavfilter/vf_libopencv.c return s->init(ctx, s->params); s 365 libavfilter/vf_libopencv.c av_log(ctx, AV_LOG_ERROR, "No libopencv filter named '%s'\n", s->name); s 371 libavfilter/vf_libopencv.c OCVContext *s = ctx->priv; s 373 libavfilter/vf_libopencv.c if (s->uninit) s 374 libavfilter/vf_libopencv.c s->uninit(ctx); s 375 libavfilter/vf_libopencv.c av_freep(&s->priv); s 381 libavfilter/vf_libopencv.c OCVContext *s = ctx->priv; s 395 libavfilter/vf_libopencv.c s->end_frame_filter(ctx, &inimg, &outimg); s 96 libavfilter/vf_libvmaf.c LIBVMAFContext *s = (LIBVMAFContext *) ctx; \ s 99 libavfilter/vf_libvmaf.c pthread_mutex_lock(&s->lock); \ s 101 libavfilter/vf_libvmaf.c while (!s->frame_set && !s->eof) { \ s 102 libavfilter/vf_libvmaf.c pthread_cond_wait(&s->cond, &s->lock); \ s 105 libavfilter/vf_libvmaf.c if (s->frame_set) { \ s 106 libavfilter/vf_libvmaf.c int ref_stride = s->gref->linesize[0]; \ s 107 libavfilter/vf_libvmaf.c int main_stride = s->gmain->linesize[0]; \ s 109 libavfilter/vf_libvmaf.c const type *ref_ptr = (const type *) s->gref->data[0]; \ s 110 libavfilter/vf_libvmaf.c const type *main_ptr = (const type *) s->gmain->data[0]; \ s 115 libavfilter/vf_libvmaf.c int h = s->height; \ s 116 libavfilter/vf_libvmaf.c int w = s->width; \ s 139 libavfilter/vf_libvmaf.c ret = !s->frame_set; \ s 141 libavfilter/vf_libvmaf.c av_frame_unref(s->gref); \ s 142 libavfilter/vf_libvmaf.c av_frame_unref(s->gmain); \ s 143 libavfilter/vf_libvmaf.c s->frame_set = 0; \ s 145 libavfilter/vf_libvmaf.c pthread_cond_signal(&s->cond); \ s 146 libavfilter/vf_libvmaf.c pthread_mutex_unlock(&s->lock); \ s 158 libavfilter/vf_libvmaf.c static void compute_vmaf_score(LIBVMAFContext *s) s 164 libavfilter/vf_libvmaf.c if (s->desc->comp[0].depth <= 8) { s 170 libavfilter/vf_libvmaf.c format = (char *) s->desc->name; s 172 libavfilter/vf_libvmaf.c s->error = compute_vmaf(&s->vmaf_score, format, s->width, s->height, s 173 libavfilter/vf_libvmaf.c read_frame, s, s->model_path, s->log_path, s 174 libavfilter/vf_libvmaf.c s->log_fmt, 0, 0, s->enable_transform, s 175 libavfilter/vf_libvmaf.c s->phone_model, s->psnr, s->ssim, s 176 libavfilter/vf_libvmaf.c s->ms_ssim, s->pool, s 177 libavfilter/vf_libvmaf.c s->n_threads, s->n_subsample, s->enable_conf_interval); s 182 libavfilter/vf_libvmaf.c LIBVMAFContext *s = (LIBVMAFContext *) ctx; s 183 libavfilter/vf_libvmaf.c compute_vmaf_score(s); s 184 libavfilter/vf_libvmaf.c if (!s->error) { s 185 libavfilter/vf_libvmaf.c av_log(ctx, AV_LOG_INFO, "VMAF score: %f\n",s->vmaf_score); s 187 libavfilter/vf_libvmaf.c pthread_mutex_lock(&s->lock); s 188 libavfilter/vf_libvmaf.c pthread_cond_signal(&s->cond); s 189 libavfilter/vf_libvmaf.c pthread_mutex_unlock(&s->lock); s 198 libavfilter/vf_libvmaf.c LIBVMAFContext *s = ctx->priv; s 208 libavfilter/vf_libvmaf.c pthread_mutex_lock(&s->lock); s 210 libavfilter/vf_libvmaf.c while (s->frame_set && !s->error) { s 211 libavfilter/vf_libvmaf.c pthread_cond_wait(&s->cond, &s->lock); s 214 libavfilter/vf_libvmaf.c if (s->error) { s 217 libavfilter/vf_libvmaf.c pthread_mutex_unlock(&s->lock); s 221 libavfilter/vf_libvmaf.c av_frame_ref(s->gref, ref); s 222 libavfilter/vf_libvmaf.c av_frame_ref(s->gmain, master); s 224 libavfilter/vf_libvmaf.c s->frame_set = 1; s 226 libavfilter/vf_libvmaf.c pthread_cond_signal(&s->cond); s 227 libavfilter/vf_libvmaf.c pthread_mutex_unlock(&s->lock); s 234 libavfilter/vf_libvmaf.c LIBVMAFContext *s = ctx->priv; s 236 libavfilter/vf_libvmaf.c s->gref = av_frame_alloc(); s 237 libavfilter/vf_libvmaf.c s->gmain = av_frame_alloc(); s 238 libavfilter/vf_libvmaf.c if (!s->gref || !s->gmain) s 241 libavfilter/vf_libvmaf.c s->error = 0; s 243 libavfilter/vf_libvmaf.c s->vmaf_thread_created = 0; s 244 libavfilter/vf_libvmaf.c pthread_mutex_init(&s->lock, NULL); s 245 libavfilter/vf_libvmaf.c pthread_cond_init (&s->cond, NULL); s 247 libavfilter/vf_libvmaf.c s->fs.on_event = do_vmaf; s 269 libavfilter/vf_libvmaf.c LIBVMAFContext *s = ctx->priv; s 282 libavfilter/vf_libvmaf.c s->desc = av_pix_fmt_desc_get(inlink->format); s 283 libavfilter/vf_libvmaf.c s->width = ctx->inputs[0]->w; s 284 libavfilter/vf_libvmaf.c s->height = ctx->inputs[0]->h; s 286 libavfilter/vf_libvmaf.c th = pthread_create(&s->vmaf_thread, NULL, call_vmaf, (void *) s); s 291 libavfilter/vf_libvmaf.c s->vmaf_thread_created = 1; s 299 libavfilter/vf_libvmaf.c LIBVMAFContext *s = ctx->priv; s 303 libavfilter/vf_libvmaf.c ret = ff_framesync_init_dualinput(&s->fs, ctx); s 311 libavfilter/vf_libvmaf.c if ((ret = ff_framesync_configure(&s->fs)) < 0) s 319 libavfilter/vf_libvmaf.c LIBVMAFContext *s = ctx->priv; s 320 libavfilter/vf_libvmaf.c return ff_framesync_activate(&s->fs); s 325 libavfilter/vf_libvmaf.c LIBVMAFContext *s = ctx->priv; s 327 libavfilter/vf_libvmaf.c ff_framesync_uninit(&s->fs); s 329 libavfilter/vf_libvmaf.c pthread_mutex_lock(&s->lock); s 330 libavfilter/vf_libvmaf.c s->eof = 1; s 331 libavfilter/vf_libvmaf.c pthread_cond_signal(&s->cond); s 332 libavfilter/vf_libvmaf.c pthread_mutex_unlock(&s->lock); s 334 libavfilter/vf_libvmaf.c if (s->vmaf_thread_created) s 336 libavfilter/vf_libvmaf.c pthread_join(s->vmaf_thread, NULL); s 337 libavfilter/vf_libvmaf.c s->vmaf_thread_created = 0; s 340 libavfilter/vf_libvmaf.c av_frame_free(&s->gref); s 341 libavfilter/vf_libvmaf.c av_frame_free(&s->gmain); s 343 libavfilter/vf_libvmaf.c pthread_mutex_destroy(&s->lock); s 344 libavfilter/vf_libvmaf.c pthread_cond_destroy(&s->cond); s 62 libavfilter/vf_limiter.c LimiterContext *s = ctx->priv; s 64 libavfilter/vf_limiter.c if (s->min > s->max) s 139 libavfilter/vf_limiter.c LimiterContext *s = ctx->priv; s 143 libavfilter/vf_limiter.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 145 libavfilter/vf_limiter.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 151 libavfilter/vf_limiter.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 152 libavfilter/vf_limiter.c s->height[0] = s->height[3] = inlink->h; s 153 libavfilter/vf_limiter.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 154 libavfilter/vf_limiter.c s->width[0] = s->width[3] = inlink->w; s 156 libavfilter/vf_limiter.c s->max = FFMIN(s->max, (1 << depth) - 1); s 157 libavfilter/vf_limiter.c s->min = FFMIN(s->min, (1 << depth) - 1); s 160 libavfilter/vf_limiter.c s->dsp.limiter = limiter8; s 162 libavfilter/vf_limiter.c s->dsp.limiter = limiter16; s 166 libavfilter/vf_limiter.c ff_limiter_init_x86(&s->dsp, desc->comp[0].depth); s 173 libavfilter/vf_limiter.c LimiterContext *s = ctx->priv; s 179 libavfilter/vf_limiter.c for (p = 0; p < s->nb_planes; p++) { s 180 libavfilter/vf_limiter.c const int h = s->height[p]; s 184 libavfilter/vf_limiter.c if (!((1 << p) & s->planes)) { s 190 libavfilter/vf_limiter.c s->linesize[p], slice_end - slice_start); s 194 libavfilter/vf_limiter.c s->dsp.limiter(in->data[p] + slice_start * in->linesize[p], s 197 libavfilter/vf_limiter.c s->width[p], slice_end - slice_start, s 198 libavfilter/vf_limiter.c s->min, s->max); s 207 libavfilter/vf_limiter.c LimiterContext *s = ctx->priv; s 226 libavfilter/vf_limiter.c FFMIN(s->height[2], ff_filter_get_nb_threads(ctx))); s 45 libavfilter/vf_lumakey.c LumakeyContext *s = ctx->priv; s 51 libavfilter/vf_lumakey.c const int so = s->so; s 52 libavfilter/vf_lumakey.c const int w = s->white; s 53 libavfilter/vf_lumakey.c const int b = s->black; s 77 libavfilter/vf_lumakey.c LumakeyContext *s = ctx->priv; s 83 libavfilter/vf_lumakey.c const int so = s->so; s 84 libavfilter/vf_lumakey.c const int w = s->white; s 85 libavfilter/vf_lumakey.c const int b = s->black; s 86 libavfilter/vf_lumakey.c const int m = s->max; s 112 libavfilter/vf_lumakey.c LumakeyContext *s = ctx->priv; s 117 libavfilter/vf_lumakey.c s->white = av_clip_uint8((s->threshold + s->tolerance) * 255); s 118 libavfilter/vf_lumakey.c s->black = av_clip_uint8((s->threshold - s->tolerance) * 255); s 119 libavfilter/vf_lumakey.c s->do_lumakey_slice = do_lumakey_slice8; s 120 libavfilter/vf_lumakey.c s->so = s->softness * 255; s 122 libavfilter/vf_lumakey.c s->max = (1 << depth) - 1; s 123 libavfilter/vf_lumakey.c s->white = av_clip((s->threshold + s->tolerance) * s->max, 0, s->max); s 124 libavfilter/vf_lumakey.c s->black = av_clip((s->threshold - s->tolerance) * s->max, 0, s->max); s 125 libavfilter/vf_lumakey.c s->do_lumakey_slice = do_lumakey_slice16; s 126 libavfilter/vf_lumakey.c s->so = s->softness * s->max; s 135 libavfilter/vf_lumakey.c LumakeyContext *s = ctx->priv; s 141 libavfilter/vf_lumakey.c if (ret = ctx->internal->execute(ctx, s->do_lumakey_slice, frame, NULL, FFMIN(frame->height, ff_filter_get_nb_threads(ctx)))) s 103 libavfilter/vf_lut.c LutContext *s = ctx->priv; s 107 libavfilter/vf_lut.c av_expr_free(s->comp_expr[i]); s 108 libavfilter/vf_lut.c s->comp_expr[i] = NULL; s 109 libavfilter/vf_lut.c av_freep(&s->comp_expr_str[i]); s 148 libavfilter/vf_lut.c LutContext *s = ctx->priv; s 150 libavfilter/vf_lut.c const enum AVPixelFormat *pix_fmts = s->is_rgb ? rgb_pix_fmts : s 151 libavfilter/vf_lut.c s->is_yuv ? yuv_pix_fmts : s 164 libavfilter/vf_lut.c LutContext *s = opaque; s 165 libavfilter/vf_lut.c double minval = s->var_values[VAR_MINVAL]; s 166 libavfilter/vf_lut.c double maxval = s->var_values[VAR_MAXVAL]; s 177 libavfilter/vf_lut.c LutContext *s = opaque; s 178 libavfilter/vf_lut.c double val = s->var_values[VAR_CLIPVAL]; s 179 libavfilter/vf_lut.c double minval = s->var_values[VAR_MINVAL]; s 180 libavfilter/vf_lut.c double maxval = s->var_values[VAR_MAXVAL]; s 190 libavfilter/vf_lut.c LutContext *s = opaque; s 191 libavfilter/vf_lut.c double val = s->var_values[VAR_CLIPVAL]; s 192 libavfilter/vf_lut.c double minval = s->var_values[VAR_MINVAL]; s 193 libavfilter/vf_lut.c double maxval = s->var_values[VAR_MAXVAL]; s 217 libavfilter/vf_lut.c LutContext *s = ctx->priv; s 223 libavfilter/vf_lut.c s->hsub = desc->log2_chroma_w; s 224 libavfilter/vf_lut.c s->vsub = desc->log2_chroma_h; s 226 libavfilter/vf_lut.c s->var_values[VAR_W] = inlink->w; s 227 libavfilter/vf_lut.c s->var_values[VAR_H] = inlink->h; s 228 libavfilter/vf_lut.c s->is_16bit = desc->comp[0].depth > 8; s 285 libavfilter/vf_lut.c s->is_yuv = s->is_rgb = 0; s 286 libavfilter/vf_lut.c s->is_planar = desc->flags & AV_PIX_FMT_FLAG_PLANAR; s 287 libavfilter/vf_lut.c if (ff_fmt_is_in(inlink->format, yuv_pix_fmts)) s->is_yuv = 1; s 288 libavfilter/vf_lut.c else if (ff_fmt_is_in(inlink->format, rgb_pix_fmts)) s->is_rgb = 1; s 290 libavfilter/vf_lut.c if (s->is_rgb) { s 292 libavfilter/vf_lut.c s->step = av_get_bits_per_pixel(desc) >> 3; s 293 libavfilter/vf_lut.c if (s->is_16bit) { s 294 libavfilter/vf_lut.c s->step = s->step >> 1; s 300 libavfilter/vf_lut.c int comp = s->is_rgb ? rgba_map[color] : color; s 303 libavfilter/vf_lut.c av_expr_free(s->comp_expr[color]); s 304 libavfilter/vf_lut.c s->comp_expr[color] = NULL; s 305 libavfilter/vf_lut.c ret = av_expr_parse(&s->comp_expr[color], s->comp_expr_str[color], s 310 libavfilter/vf_lut.c s->comp_expr_str[comp], comp, color); s 315 libavfilter/vf_lut.c s->var_values[VAR_MAXVAL] = max[color]; s 316 libavfilter/vf_lut.c s->var_values[VAR_MINVAL] = min[color]; s 318 libavfilter/vf_lut.c for (val = 0; val < FF_ARRAY_ELEMS(s->lut[comp]); val++) { s 319 libavfilter/vf_lut.c s->var_values[VAR_VAL] = val; s 320 libavfilter/vf_lut.c s->var_values[VAR_CLIPVAL] = av_clip(val, min[color], max[color]); s 321 libavfilter/vf_lut.c s->var_values[VAR_NEGVAL] = s 322 libavfilter/vf_lut.c av_clip(min[color] + max[color] - s->var_values[VAR_VAL], s 325 libavfilter/vf_lut.c res = av_expr_eval(s->comp_expr[color], s->var_values, s); s 329 libavfilter/vf_lut.c s->comp_expr_str[color], val, comp); s 332 libavfilter/vf_lut.c s->lut[comp][val] = av_clip((int)res, 0, max[A]); s 333 libavfilter/vf_lut.c av_log(ctx, AV_LOG_DEBUG, "val[%d][%d] = %d\n", comp, val, s->lut[comp][val]); s 349 libavfilter/vf_lut.c LutContext *s = ctx->priv;\ s 357 libavfilter/vf_lut.c const uint16_t (*tab)[256*256] = (const uint16_t (*)[256*256])s->lut;\ s 358 libavfilter/vf_lut.c const int step = s->step;\ s 430 libavfilter/vf_lut.c LutContext *s = ctx->priv;\ s 437 libavfilter/vf_lut.c int vsub = plane == 1 || plane == 2 ? s->vsub : 0;\ s 438 libavfilter/vf_lut.c int hsub = plane == 1 || plane == 2 ? s->hsub : 0;\ s 441 libavfilter/vf_lut.c const uint16_t *tab = s->lut[plane];\ s 524 libavfilter/vf_lut.c LutContext *s = ctx->priv; s 541 libavfilter/vf_lut.c if (s->is_rgb && s->is_16bit && !s->is_planar) { s 546 libavfilter/vf_lut.c } else if (s->is_rgb && !s->is_planar) { s 551 libavfilter/vf_lut.c } else if (s->is_16bit) { s 618 libavfilter/vf_lut.c LutContext *s = ctx->priv; s 620 libavfilter/vf_lut.c s->is_yuv = 1; s 635 libavfilter/vf_lut.c LutContext *s = ctx->priv; s 637 libavfilter/vf_lut.c s->is_rgb = 1; s 656 libavfilter/vf_lut.c LutContext *s = ctx->priv; s 659 libavfilter/vf_lut.c av_log(ctx, AV_LOG_DEBUG, "negate_alpha:%d\n", s->negate_alpha); s 662 libavfilter/vf_lut.c s->comp_expr_str[i] = av_strdup((i == 3 && !s->negate_alpha) ? s 664 libavfilter/vf_lut.c if (!s->comp_expr_str[i]) { s 94 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; s 97 libavfilter/vf_lut2.c ff_framesync_uninit(&s->fs); s 98 libavfilter/vf_lut2.c av_frame_free(&s->prev_frame); s 101 libavfilter/vf_lut2.c av_expr_free(s->comp_expr[i]); s 102 libavfilter/vf_lut2.c s->comp_expr[i] = NULL; s 103 libavfilter/vf_lut2.c av_freep(&s->comp_expr_str[i]); s 104 libavfilter/vf_lut2.c av_freep(&s->lut[i]); s 142 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; s 177 libavfilter/vf_lut2.c if (s->tlut2 || !s->odepth) s 184 libavfilter/vf_lut2.c switch (s->odepth) { s 191 libavfilter/vf_lut2.c default: av_log(ctx, AV_LOG_ERROR, "Unsupported output bit depth %d.\n", s->odepth); s 201 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; s 206 libavfilter/vf_lut2.c s->nb_planesx = av_pix_fmt_count_planes(inlink->format); s 207 libavfilter/vf_lut2.c s->heightx[1] = s->heightx[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 208 libavfilter/vf_lut2.c s->heightx[0] = s->heightx[3] = inlink->h; s 209 libavfilter/vf_lut2.c s->widthx[1] = s->widthx[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 210 libavfilter/vf_lut2.c s->widthx[0] = s->widthx[3] = inlink->w; s 212 libavfilter/vf_lut2.c s->var_values[VAR_W] = inlink->w; s 213 libavfilter/vf_lut2.c s->var_values[VAR_H] = inlink->h; s 214 libavfilter/vf_lut2.c s->depthx = desc->comp[0].depth; s 215 libavfilter/vf_lut2.c s->var_values[VAR_BITDEPTHX] = s->depthx; s 217 libavfilter/vf_lut2.c if (s->tlut2) { s 218 libavfilter/vf_lut2.c s->depthy = desc->comp[0].depth; s 219 libavfilter/vf_lut2.c s->var_values[VAR_BITDEPTHY] = s->depthy; s 228 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; s 233 libavfilter/vf_lut2.c s->nb_planesy = av_pix_fmt_count_planes(inlink->format); s 234 libavfilter/vf_lut2.c s->depthy = desc->comp[0].depth; s 235 libavfilter/vf_lut2.c s->var_values[VAR_BITDEPTHY] = s->depthy; s 236 libavfilter/vf_lut2.c s->heighty[1] = s->heighty[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 237 libavfilter/vf_lut2.c s->heighty[0] = s->heighty[3] = inlink->h; s 238 libavfilter/vf_lut2.c s->widthy[1] = s->widthy[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 239 libavfilter/vf_lut2.c s->widthy[0] = s->widthy[3] = inlink->w; s 249 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; \ s 254 libavfilter/vf_lut2.c const int odepth = s->odepth; \ s 257 libavfilter/vf_lut2.c for (p = 0; p < s->nb_planes; p++) { \ s 258 libavfilter/vf_lut2.c const int slice_start = (s->heightx[p] * jobnr) / nb_jobs; \ s 259 libavfilter/vf_lut2.c const int slice_end = (s->heightx[p] * (jobnr+1)) / nb_jobs; \ s 260 libavfilter/vf_lut2.c const uint16_t *lut = s->lut[p]; \ s 270 libavfilter/vf_lut2.c for (x = 0; x < s->widthx[p]; x++) { \ s 271 libavfilter/vf_lut2.c dst[x] = av_clip_uintp2_c(lut[(srcyy[x] << s->depthx) | srcxx[x]], odepth); \ s 294 libavfilter/vf_lut2.c LUT2Context *s = fs->opaque; s 299 libavfilter/vf_lut2.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &srcx, 0)) < 0 || s 300 libavfilter/vf_lut2.c (ret = ff_framesync_get_frame(&s->fs, 1, &srcy, 0)) < 0) s 318 libavfilter/vf_lut2.c ctx->internal->execute(ctx, s->lut2, &td, NULL, FFMIN(s->heightx[1], ff_filter_get_nb_threads(ctx))); s 321 libavfilter/vf_lut2.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 329 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; s 332 libavfilter/vf_lut2.c s->depth = s->depthx + s->depthy; s 333 libavfilter/vf_lut2.c s->nb_planes = s->nb_planesx; s 335 libavfilter/vf_lut2.c s->lut2 = s->depth > 16 ? lut2_16_16_16 : lut2_8_8_8; s 336 libavfilter/vf_lut2.c if (s->odepth) { s 337 libavfilter/vf_lut2.c if (s->depthx == 8 && s->depthy == 8 && s->odepth > 8) s 338 libavfilter/vf_lut2.c s->lut2 = lut2_16_8_8; s 339 libavfilter/vf_lut2.c if (s->depthx > 8 && s->depthy == 8 && s->odepth > 8) s 340 libavfilter/vf_lut2.c s->lut2 = lut2_16_16_8; s 341 libavfilter/vf_lut2.c if (s->depthx == 8 && s->depthy > 8 && s->odepth > 8) s 342 libavfilter/vf_lut2.c s->lut2 = lut2_16_8_16; s 343 libavfilter/vf_lut2.c if (s->depthx == 8 && s->depthy == 8 && s->odepth == 8) s 344 libavfilter/vf_lut2.c s->lut2 = lut2_8_8_8; s 345 libavfilter/vf_lut2.c if (s->depthx > 8 && s->depthy == 8 && s->odepth == 8) s 346 libavfilter/vf_lut2.c s->lut2 = lut2_8_16_8; s 347 libavfilter/vf_lut2.c if (s->depthx == 8 && s->depthy > 8 && s->odepth == 8) s 348 libavfilter/vf_lut2.c s->lut2 = lut2_8_8_16; s 349 libavfilter/vf_lut2.c if (s->depthx > 8 && s->depthy > 8 && s->odepth == 8) s 350 libavfilter/vf_lut2.c s->lut2 = lut2_8_16_16; s 352 libavfilter/vf_lut2.c s->odepth = s->depthx; s 355 libavfilter/vf_lut2.c for (p = 0; p < s->nb_planes; p++) { s 356 libavfilter/vf_lut2.c s->lut[p] = av_malloc_array(1 << s->depth, sizeof(uint16_t)); s 357 libavfilter/vf_lut2.c if (!s->lut[p]) s 361 libavfilter/vf_lut2.c for (p = 0; p < s->nb_planes; p++) { s 366 libavfilter/vf_lut2.c av_expr_free(s->comp_expr[p]); s 367 libavfilter/vf_lut2.c s->comp_expr[p] = NULL; s 368 libavfilter/vf_lut2.c ret = av_expr_parse(&s->comp_expr[p], s->comp_expr_str[p], s 373 libavfilter/vf_lut2.c s->comp_expr_str[p], p); s 378 libavfilter/vf_lut2.c for (y = 0; y < (1 << s->depthy); y++) { s 379 libavfilter/vf_lut2.c s->var_values[VAR_Y] = y; s 380 libavfilter/vf_lut2.c for (x = 0; x < (1 << s->depthx); x++) { s 381 libavfilter/vf_lut2.c s->var_values[VAR_X] = x; s 382 libavfilter/vf_lut2.c res = av_expr_eval(s->comp_expr[p], s->var_values, s); s 386 libavfilter/vf_lut2.c s->comp_expr_str[p], x, y, p); s 390 libavfilter/vf_lut2.c s->lut[p][(y << s->depthx) + x] = res; s 401 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; s 416 libavfilter/vf_lut2.c s->nb_planes = av_pix_fmt_count_planes(outlink->format); s 417 libavfilter/vf_lut2.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(outlink->h, vsub); s 418 libavfilter/vf_lut2.c s->height[0] = s->height[3] = outlink->h; s 419 libavfilter/vf_lut2.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(outlink->w, hsub); s 420 libavfilter/vf_lut2.c s->width[0] = s->width[3] = outlink->w; s 422 libavfilter/vf_lut2.c if (!s->odepth && srcx->format != srcy->format) { s 437 libavfilter/vf_lut2.c if (s->nb_planesx != s->nb_planesy) { s 441 libavfilter/vf_lut2.c ctx->input_pads[0].name, s->nb_planesx, s 442 libavfilter/vf_lut2.c ctx->input_pads[1].name, s->nb_planesy); s 446 libavfilter/vf_lut2.c if (s->nb_planesx != s->nb_planes) { s 450 libavfilter/vf_lut2.c ctx->input_pads[0].name, s->nb_planesx, s 451 libavfilter/vf_lut2.c ctx->output_pads[0].name, s->nb_planes); s 455 libavfilter/vf_lut2.c if (s->widthx[1] != s->widthy[1] || s->heightx[1] != s->heighty[1]) { s 459 libavfilter/vf_lut2.c ctx->input_pads[0].name, s->widthx[1], s->heightx[1], s 461 libavfilter/vf_lut2.c s->widthy[1], s->heighty[1]); s 465 libavfilter/vf_lut2.c if (s->widthx[2] != s->widthy[2] || s->heightx[2] != s->heighty[2]) { s 469 libavfilter/vf_lut2.c ctx->input_pads[0].name, s->widthx[2], s->heightx[2], s 471 libavfilter/vf_lut2.c s->widthy[2], s->heighty[2]); s 475 libavfilter/vf_lut2.c if (s->widthx[1] != s->width[1] || s->heightx[1] != s->height[1]) { s 479 libavfilter/vf_lut2.c ctx->input_pads[0].name, s->widthx[1], s->heightx[1], s 480 libavfilter/vf_lut2.c ctx->output_pads[0].name, s->width[1], s->height[1]); s 484 libavfilter/vf_lut2.c if (s->widthx[2] != s->width[2] || s->heightx[2] != s->height[2]) { s 488 libavfilter/vf_lut2.c ctx->input_pads[0].name, s->widthx[2], s->heightx[2], s 489 libavfilter/vf_lut2.c ctx->output_pads[0].name, s->width[2], s->height[2]); s 493 libavfilter/vf_lut2.c if ((ret = ff_framesync_init(&s->fs, ctx, 2)) < 0) s 496 libavfilter/vf_lut2.c in = s->fs.in; s 505 libavfilter/vf_lut2.c s->fs.opaque = s; s 506 libavfilter/vf_lut2.c s->fs.on_event = process_frame; s 511 libavfilter/vf_lut2.c ret = ff_framesync_configure(&s->fs); s 512 libavfilter/vf_lut2.c outlink->time_base = s->fs.time_base; s 519 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; s 520 libavfilter/vf_lut2.c return ff_framesync_activate(&s->fs); s 569 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; s 571 libavfilter/vf_lut2.c s->tlut2 = !strcmp(ctx->filter->name, "tlut2"); s 579 libavfilter/vf_lut2.c LUT2Context *s = ctx->priv; s 582 libavfilter/vf_lut2.c if (s->prev_frame) { s 592 libavfilter/vf_lut2.c av_frame_free(&s->prev_frame); s 593 libavfilter/vf_lut2.c s->prev_frame = frame; s 601 libavfilter/vf_lut2.c td.srcy = s->prev_frame; s 602 libavfilter/vf_lut2.c ctx->internal->execute(ctx, s->lut2, &td, NULL, FFMIN(s->heightx[1], ff_filter_get_nb_threads(ctx))); s 604 libavfilter/vf_lut2.c av_frame_free(&s->prev_frame); s 605 libavfilter/vf_lut2.c s->prev_frame = frame; s 608 libavfilter/vf_lut2.c s->prev_frame = frame; s 153 libavfilter/vf_lut3d.c const struct rgbvec *s) s 155 libavfilter/vf_lut3d.c return lut3d->lut[NEAR(s->r) * lut3d->lutsize2 + NEAR(s->g) * lut3d->lutsize + NEAR(s->b)]; s 163 libavfilter/vf_lut3d.c const struct rgbvec *s) s 167 libavfilter/vf_lut3d.c const int prev[] = {PREV(s->r), PREV(s->g), PREV(s->b)}; s 168 libavfilter/vf_lut3d.c const int next[] = {NEXT(s->r), NEXT(s->g), NEXT(s->b)}; s 169 libavfilter/vf_lut3d.c const struct rgbvec d = {s->r - prev[0], s->g - prev[1], s->b - prev[2]}; s 193 libavfilter/vf_lut3d.c const struct rgbvec *s) s 197 libavfilter/vf_lut3d.c const int prev[] = {PREV(s->r), PREV(s->g), PREV(s->b)}; s 198 libavfilter/vf_lut3d.c const int next[] = {NEXT(s->r), NEXT(s->g), NEXT(s->b)}; s 199 libavfilter/vf_lut3d.c const struct rgbvec d = {s->r - prev[0], s->g - prev[1], s->b - prev[2]}; s 248 libavfilter/vf_lut3d.c int idx, const float s) s 251 libavfilter/vf_lut3d.c const float scaled = (s - prelut->min[idx]) * prelut->scale[idx]; s 262 libavfilter/vf_lut3d.c const struct rgbvec *s) s 267 libavfilter/vf_lut3d.c return *s; s 269 libavfilter/vf_lut3d.c c.r = prelut_interp_1d_linear(prelut, 0, s->r); s 270 libavfilter/vf_lut3d.c c.g = prelut_interp_1d_linear(prelut, 1, s->g); s 271 libavfilter/vf_lut3d.c c.b = prelut_interp_1d_linear(prelut, 2, s->b); s 1378 libavfilter/vf_lut3d.c LUT3DContext *s = ctx->priv; s 1379 libavfilter/vf_lut3d.c return ff_framesync_activate(&s->fs); s 1697 libavfilter/vf_lut3d.c int idx, const float s) s 1699 libavfilter/vf_lut3d.c return lut1d->lut[idx][NEAR(s)]; s 1705 libavfilter/vf_lut3d.c int idx, const float s) s 1707 libavfilter/vf_lut3d.c const int prev = PREV(s); s 1708 libavfilter/vf_lut3d.c const int next = NEXT1D(s); s 1709 libavfilter/vf_lut3d.c const float d = s - prev; s 1717 libavfilter/vf_lut3d.c int idx, const float s) s 1719 libavfilter/vf_lut3d.c const int prev = PREV(s); s 1720 libavfilter/vf_lut3d.c const int next = NEXT1D(s); s 1721 libavfilter/vf_lut3d.c const float d = s - prev; s 1730 libavfilter/vf_lut3d.c int idx, const float s) s 1732 libavfilter/vf_lut3d.c const int prev = PREV(s); s 1733 libavfilter/vf_lut3d.c const int next = NEXT1D(s); s 1734 libavfilter/vf_lut3d.c const float mu = s - prev; s 1753 libavfilter/vf_lut3d.c int idx, const float s) s 1755 libavfilter/vf_lut3d.c const int prev = PREV(s); s 1756 libavfilter/vf_lut3d.c const int next = NEXT1D(s); s 1757 libavfilter/vf_lut3d.c const float x = s - prev; s 92 libavfilter/vf_maskedclamp.c MaskedClampContext *s = ctx->priv; s 96 libavfilter/vf_maskedclamp.c for (p = 0; p < s->nb_planes; p++) { s 101 libavfilter/vf_maskedclamp.c const int w = s->width[p]; s 102 libavfilter/vf_maskedclamp.c const int h = s->height[p]; s 109 libavfilter/vf_maskedclamp.c const int undershoot = s->undershoot; s 110 libavfilter/vf_maskedclamp.c const int overshoot = s->overshoot; s 113 libavfilter/vf_maskedclamp.c if (!((1 << p) & s->planes)) { s 115 libavfilter/vf_maskedclamp.c s->linesize[p], slice_end - slice_start); s 120 libavfilter/vf_maskedclamp.c s->dsp.maskedclamp(bsrc, dst, darksrc, brightsrc, w, undershoot, overshoot); s 135 libavfilter/vf_maskedclamp.c MaskedClampContext *s = fs->opaque; s 140 libavfilter/vf_maskedclamp.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &base, 0)) < 0 || s 141 libavfilter/vf_maskedclamp.c (ret = ff_framesync_get_frame(&s->fs, 1, &dark, 0)) < 0 || s 142 libavfilter/vf_maskedclamp.c (ret = ff_framesync_get_frame(&s->fs, 2, &bright, 0)) < 0) s 162 libavfilter/vf_maskedclamp.c ctx->internal->execute(ctx, maskedclamp_slice, &td, NULL, FFMIN(s->height[0], s 165 libavfilter/vf_maskedclamp.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 192 libavfilter/vf_maskedclamp.c MaskedClampContext *s = ctx->priv; s 196 libavfilter/vf_maskedclamp.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 198 libavfilter/vf_maskedclamp.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 203 libavfilter/vf_maskedclamp.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 204 libavfilter/vf_maskedclamp.c s->height[0] = s->height[3] = inlink->h; s 205 libavfilter/vf_maskedclamp.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 206 libavfilter/vf_maskedclamp.c s->width[0] = s->width[3] = inlink->w; s 208 libavfilter/vf_maskedclamp.c s->depth = desc->comp[0].depth; s 209 libavfilter/vf_maskedclamp.c s->undershoot = FFMIN(s->undershoot, (1 << s->depth) - 1); s 210 libavfilter/vf_maskedclamp.c s->overshoot = FFMIN(s->overshoot, (1 << s->depth) - 1); s 212 libavfilter/vf_maskedclamp.c if (s->depth <= 8) s 213 libavfilter/vf_maskedclamp.c s->dsp.maskedclamp = maskedclamp8; s 215 libavfilter/vf_maskedclamp.c s->dsp.maskedclamp = maskedclamp16; s 218 libavfilter/vf_maskedclamp.c ff_maskedclamp_init_x86(&s->dsp, s->depth); s 226 libavfilter/vf_maskedclamp.c MaskedClampContext *s = ctx->priv; s 255 libavfilter/vf_maskedclamp.c if ((ret = ff_framesync_init(&s->fs, ctx, 3)) < 0) s 258 libavfilter/vf_maskedclamp.c in = s->fs.in; s 271 libavfilter/vf_maskedclamp.c s->fs.opaque = s; s 272 libavfilter/vf_maskedclamp.c s->fs.on_event = process_frame; s 274 libavfilter/vf_maskedclamp.c ret = ff_framesync_configure(&s->fs); s 275 libavfilter/vf_maskedclamp.c outlink->time_base = s->fs.time_base; s 282 libavfilter/vf_maskedclamp.c MaskedClampContext *s = ctx->priv; s 283 libavfilter/vf_maskedclamp.c return ff_framesync_activate(&s->fs); s 288 libavfilter/vf_maskedclamp.c MaskedClampContext *s = ctx->priv; s 290 libavfilter/vf_maskedclamp.c ff_framesync_uninit(&s->fs); s 74 libavfilter/vf_maskedmerge.c MaskedMergeContext *s = ctx->priv; s 82 libavfilter/vf_maskedmerge.c for (p = 0; p < s->nb_planes; p++) { s 83 libavfilter/vf_maskedmerge.c const int h = s->height[p]; s 87 libavfilter/vf_maskedmerge.c if (!((1 << p) & s->planes)) { s 92 libavfilter/vf_maskedmerge.c s->linesize[p], slice_end - slice_start); s 96 libavfilter/vf_maskedmerge.c s->maskedmerge(base->data[p] + slice_start * base->linesize[p], s 102 libavfilter/vf_maskedmerge.c s->width[p], slice_end - slice_start, s 103 libavfilter/vf_maskedmerge.c s->half, s->depth); s 112 libavfilter/vf_maskedmerge.c MaskedMergeContext *s = fs->opaque; s 118 libavfilter/vf_maskedmerge.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &base, 0)) < 0 || s 119 libavfilter/vf_maskedmerge.c (ret = ff_framesync_get_frame(&s->fs, 1, &overlay, 0)) < 0 || s 120 libavfilter/vf_maskedmerge.c (ret = ff_framesync_get_frame(&s->fs, 2, &mask, 0)) < 0) s 138 libavfilter/vf_maskedmerge.c FFMIN(s->height[2], ff_filter_get_nb_threads(ctx))); s 140 libavfilter/vf_maskedmerge.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 194 libavfilter/vf_maskedmerge.c MaskedMergeContext *s = ctx->priv; s 198 libavfilter/vf_maskedmerge.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 202 libavfilter/vf_maskedmerge.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 203 libavfilter/vf_maskedmerge.c s->height[0] = s->height[3] = inlink->h; s 204 libavfilter/vf_maskedmerge.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 205 libavfilter/vf_maskedmerge.c s->width[0] = s->width[3] = inlink->w; s 207 libavfilter/vf_maskedmerge.c s->depth = desc->comp[0].depth; s 208 libavfilter/vf_maskedmerge.c s->half = (1 << s->depth) / 2; s 211 libavfilter/vf_maskedmerge.c s->maskedmerge = maskedmerge8; s 213 libavfilter/vf_maskedmerge.c s->maskedmerge = maskedmerge16; s 216 libavfilter/vf_maskedmerge.c ff_maskedmerge_init_x86(s); s 224 libavfilter/vf_maskedmerge.c MaskedMergeContext *s = ctx->priv; s 253 libavfilter/vf_maskedmerge.c if ((ret = av_image_fill_linesizes(s->linesize, outlink->format, outlink->w)) < 0) s 256 libavfilter/vf_maskedmerge.c if ((ret = ff_framesync_init(&s->fs, ctx, 3)) < 0) s 259 libavfilter/vf_maskedmerge.c in = s->fs.in; s 272 libavfilter/vf_maskedmerge.c s->fs.opaque = s; s 273 libavfilter/vf_maskedmerge.c s->fs.on_event = process_frame; s 275 libavfilter/vf_maskedmerge.c ret = ff_framesync_configure(&s->fs); s 276 libavfilter/vf_maskedmerge.c outlink->time_base = s->fs.time_base; s 283 libavfilter/vf_maskedmerge.c MaskedMergeContext *s = ctx->priv; s 284 libavfilter/vf_maskedmerge.c return ff_framesync_activate(&s->fs); s 289 libavfilter/vf_maskedmerge.c MaskedMergeContext *s = ctx->priv; s 291 libavfilter/vf_maskedmerge.c ff_framesync_uninit(&s->fs); s 59 libavfilter/vf_maskedminmax.c MaskedMinMaxContext *s = ctx->priv; s 61 libavfilter/vf_maskedminmax.c s->maskedmin = !strcmp(ctx->filter->name, "maskedmin"); s 130 libavfilter/vf_maskedminmax.c MaskedMinMaxContext *s = ctx->priv; s 134 libavfilter/vf_maskedminmax.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 136 libavfilter/vf_maskedminmax.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 141 libavfilter/vf_maskedminmax.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 142 libavfilter/vf_maskedminmax.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 143 libavfilter/vf_maskedminmax.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 144 libavfilter/vf_maskedminmax.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 146 libavfilter/vf_maskedminmax.c s->depth = desc->comp[0].depth; s 149 libavfilter/vf_maskedminmax.c s->maskedminmax = s->maskedmin ? maskedmin8 : maskedmax8; s 151 libavfilter/vf_maskedminmax.c s->maskedminmax = s->maskedmin ? maskedmin16 : maskedmax16; s 158 libavfilter/vf_maskedminmax.c MaskedMinMaxContext *s = ctx->priv; s 161 libavfilter/vf_maskedminmax.c for (int p = 0; p < s->nb_planes; p++) { s 166 libavfilter/vf_maskedminmax.c const int w = s->planewidth[p]; s 167 libavfilter/vf_maskedminmax.c const int h = s->planeheight[p]; s 175 libavfilter/vf_maskedminmax.c if (!((1 << p) & s->planes)) { s 177 libavfilter/vf_maskedminmax.c s->linesize[p], slice_end - slice_start); s 182 libavfilter/vf_maskedminmax.c s->maskedminmax(src, dst, f1, f2, w); s 197 libavfilter/vf_maskedminmax.c MaskedMinMaxContext *s = fs->opaque; s 202 libavfilter/vf_maskedminmax.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &src, 0)) < 0 || s 203 libavfilter/vf_maskedminmax.c (ret = ff_framesync_get_frame(&s->fs, 1, &f1, 0)) < 0 || s 204 libavfilter/vf_maskedminmax.c (ret = ff_framesync_get_frame(&s->fs, 2, &f2, 0)) < 0) s 224 libavfilter/vf_maskedminmax.c ctx->internal->execute(ctx, maskedminmax_slice, &td, NULL, FFMIN(s->planeheight[0], s 227 libavfilter/vf_maskedminmax.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 235 libavfilter/vf_maskedminmax.c MaskedMinMaxContext *s = ctx->priv; s 264 libavfilter/vf_maskedminmax.c if ((ret = ff_framesync_init(&s->fs, ctx, 3)) < 0) s 267 libavfilter/vf_maskedminmax.c in = s->fs.in; s 280 libavfilter/vf_maskedminmax.c s->fs.opaque = s; s 281 libavfilter/vf_maskedminmax.c s->fs.on_event = process_frame; s 283 libavfilter/vf_maskedminmax.c ret = ff_framesync_configure(&s->fs); s 284 libavfilter/vf_maskedminmax.c outlink->time_base = s->fs.time_base; s 291 libavfilter/vf_maskedminmax.c MaskedMinMaxContext *s = ctx->priv; s 292 libavfilter/vf_maskedminmax.c return ff_framesync_activate(&s->fs); s 297 libavfilter/vf_maskedminmax.c MaskedMinMaxContext *s = ctx->priv; s 299 libavfilter/vf_maskedminmax.c ff_framesync_uninit(&s->fs); s 104 libavfilter/vf_maskedthreshold.c MaskedThresholdContext *s = ctx->priv; s 108 libavfilter/vf_maskedthreshold.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 110 libavfilter/vf_maskedthreshold.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 115 libavfilter/vf_maskedthreshold.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 116 libavfilter/vf_maskedthreshold.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 117 libavfilter/vf_maskedthreshold.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 118 libavfilter/vf_maskedthreshold.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 120 libavfilter/vf_maskedthreshold.c s->depth = desc->comp[0].depth; s 123 libavfilter/vf_maskedthreshold.c s->maskedthreshold = threshold8; s 125 libavfilter/vf_maskedthreshold.c s->maskedthreshold = threshold16; s 132 libavfilter/vf_maskedthreshold.c MaskedThresholdContext *s = ctx->priv; s 133 libavfilter/vf_maskedthreshold.c const int threshold = s->threshold; s 136 libavfilter/vf_maskedthreshold.c for (int p = 0; p < s->nb_planes; p++) { s 140 libavfilter/vf_maskedthreshold.c const int w = s->planewidth[p]; s 141 libavfilter/vf_maskedthreshold.c const int h = s->planeheight[p]; s 148 libavfilter/vf_maskedthreshold.c if (!((1 << p) & s->planes)) { s 150 libavfilter/vf_maskedthreshold.c s->linesize[p], slice_end - slice_start); s 155 libavfilter/vf_maskedthreshold.c s->maskedthreshold(src, ref, dst, threshold, w); s 169 libavfilter/vf_maskedthreshold.c MaskedThresholdContext *s = fs->opaque; s 174 libavfilter/vf_maskedthreshold.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &src, 0)) < 0 || s 175 libavfilter/vf_maskedthreshold.c (ret = ff_framesync_get_frame(&s->fs, 1, &ref, 0)) < 0) s 194 libavfilter/vf_maskedthreshold.c ctx->internal->execute(ctx, threshold_slice, &td, NULL, FFMIN(s->planeheight[2], s 197 libavfilter/vf_maskedthreshold.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 205 libavfilter/vf_maskedthreshold.c MaskedThresholdContext *s = ctx->priv; s 229 libavfilter/vf_maskedthreshold.c if ((ret = ff_framesync_init(&s->fs, ctx, 2)) < 0) s 232 libavfilter/vf_maskedthreshold.c in = s->fs.in; s 241 libavfilter/vf_maskedthreshold.c s->fs.opaque = s; s 242 libavfilter/vf_maskedthreshold.c s->fs.on_event = process_frame; s 244 libavfilter/vf_maskedthreshold.c ret = ff_framesync_configure(&s->fs); s 245 libavfilter/vf_maskedthreshold.c outlink->time_base = s->fs.time_base; s 252 libavfilter/vf_maskedthreshold.c MaskedThresholdContext *s = ctx->priv; s 253 libavfilter/vf_maskedthreshold.c return ff_framesync_activate(&s->fs); s 258 libavfilter/vf_maskedthreshold.c MaskedThresholdContext *s = ctx->priv; s 260 libavfilter/vf_maskedthreshold.c ff_framesync_uninit(&s->fs); s 92 libavfilter/vf_maskfun.c MaskFunContext *s = ctx->priv; s 95 libavfilter/vf_maskfun.c if (s->getsum(ctx, frame)) { s 96 libavfilter/vf_maskfun.c AVFrame *out = av_frame_clone(s->empty); s 108 libavfilter/vf_maskfun.c ctx->internal->execute(ctx, s->maskfun, frame, NULL, s 109 libavfilter/vf_maskfun.c FFMIN(s->height[1], ff_filter_get_nb_threads(ctx))); s 117 libavfilter/vf_maskfun.c MaskFunContext *s = ctx->priv; \ s 121 libavfilter/vf_maskfun.c for (p = 0; p < s->nb_planes; p++) { \ s 123 libavfilter/vf_maskfun.c const int w = s->width[p]; \ s 124 libavfilter/vf_maskfun.c const int h = s->height[p]; \ s 127 libavfilter/vf_maskfun.c if (!((1 << p) & s->planes)) \ s 133 libavfilter/vf_maskfun.c if (sum >= s->max_sum) \ s 149 libavfilter/vf_maskfun.c MaskFunContext *s = ctx->priv; \ s 151 libavfilter/vf_maskfun.c const int low = s->low; \ s 152 libavfilter/vf_maskfun.c const int high = s->high; \ s 153 libavfilter/vf_maskfun.c const int max = s->max; \ s 156 libavfilter/vf_maskfun.c for (p = 0; p < s->nb_planes; p++) { \ s 158 libavfilter/vf_maskfun.c const int w = s->width[p]; \ s 159 libavfilter/vf_maskfun.c const int h = s->height[p]; \ s 164 libavfilter/vf_maskfun.c if (!((1 << p) & s->planes)) \ s 188 libavfilter/vf_maskfun.c MaskFunContext *s = ctx->priv; s 192 libavfilter/vf_maskfun.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 194 libavfilter/vf_maskfun.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 199 libavfilter/vf_maskfun.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 200 libavfilter/vf_maskfun.c s->height[0] = s->height[3] = inlink->h; s 201 libavfilter/vf_maskfun.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 202 libavfilter/vf_maskfun.c s->width[0] = s->width[3] = inlink->w; s 204 libavfilter/vf_maskfun.c s->depth = desc->comp[0].depth; s 205 libavfilter/vf_maskfun.c s->max = (1 << s->depth) - 1; s 206 libavfilter/vf_maskfun.c s->fill = FFMIN(s->fill, s->max); s 208 libavfilter/vf_maskfun.c if (s->depth == 8) { s 209 libavfilter/vf_maskfun.c s->maskfun = maskfun8; s 210 libavfilter/vf_maskfun.c s->getsum = getsum8; s 212 libavfilter/vf_maskfun.c s->maskfun = maskfun16; s 213 libavfilter/vf_maskfun.c s->getsum = getsum16; s 216 libavfilter/vf_maskfun.c s->empty = ff_get_video_buffer(inlink, inlink->w, inlink->h); s 217 libavfilter/vf_maskfun.c if (!s->empty) s 220 libavfilter/vf_maskfun.c if (s->depth == 8) { s 221 libavfilter/vf_maskfun.c for (int p = 0; p < s->nb_planes; p++) { s 222 libavfilter/vf_maskfun.c uint8_t *dst = s->empty->data[p]; s 224 libavfilter/vf_maskfun.c for (int y = 0; y < s->height[p]; y++) { s 225 libavfilter/vf_maskfun.c memset(dst, s->fill, s->width[p]); s 226 libavfilter/vf_maskfun.c dst += s->empty->linesize[p]; s 230 libavfilter/vf_maskfun.c for (int p = 0; p < s->nb_planes; p++) { s 231 libavfilter/vf_maskfun.c uint16_t *dst = (uint16_t *)s->empty->data[p]; s 233 libavfilter/vf_maskfun.c for (int y = 0; y < s->height[p]; y++) { s 234 libavfilter/vf_maskfun.c for (int x = 0; x < s->width[p]; x++) s 235 libavfilter/vf_maskfun.c dst[x] = s->fill; s 236 libavfilter/vf_maskfun.c dst += s->empty->linesize[p] / 2; s 241 libavfilter/vf_maskfun.c s->max_sum = 0; s 242 libavfilter/vf_maskfun.c for (int p = 0; p < s->nb_planes; p++) { s 243 libavfilter/vf_maskfun.c if (!((1 << p) & s->planes)) s 245 libavfilter/vf_maskfun.c s->max_sum += (uint64_t)s->sum * s->width[p] * s->height[p]; s 253 libavfilter/vf_maskfun.c MaskFunContext *s = ctx->priv; s 255 libavfilter/vf_maskfun.c av_frame_free(&s->empty); s 114 libavfilter/vf_median.c static void check_params(MedianContext *s, AVFilterLink *inlink) s 116 libavfilter/vf_median.c for (int i = 0; i < s->nb_planes; i++) { s 117 libavfilter/vf_median.c if (!(s->planes & (1 << i))) s 120 libavfilter/vf_median.c if (s->planewidth[i] < s->radius * 2 + 1) { s 121 libavfilter/vf_median.c av_log(inlink->dst, AV_LOG_WARNING, "The %d plane width %d must be not less than %d, clipping radius.\n", i, s->planewidth[i], s->radius * 2 + 1); s 122 libavfilter/vf_median.c s->radius = (s->planewidth[i] - 1) / 2; s 125 libavfilter/vf_median.c if (s->planeheight[i] < s->radiusV * 2 + 1) { s 126 libavfilter/vf_median.c av_log(inlink->dst, AV_LOG_WARNING, "The %d plane height %d must be not less than %d, clipping radiusV.\n", i, s->planeheight[i], s->radiusV * 2 + 1); s 127 libavfilter/vf_median.c s->radiusV = (s->planeheight[i] - 1) / 2; s 131 libavfilter/vf_median.c s->t = (2 * s->radius * s->radiusV + s->radiusV + s->radius) * 2.f * s->percentile; s 137 libavfilter/vf_median.c MedianContext *s = inlink->dst->priv; s 139 libavfilter/vf_median.c s->depth = desc->comp[0].depth; s 140 libavfilter/vf_median.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 141 libavfilter/vf_median.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 142 libavfilter/vf_median.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 143 libavfilter/vf_median.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 145 libavfilter/vf_median.c s->radiusV = !s->radiusV ? s->radius : s->radiusV; s 146 libavfilter/vf_median.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 148 libavfilter/vf_median.c check_params(s, inlink); s 150 libavfilter/vf_median.c s->nb_threads = FFMAX(1, FFMIN(s->planeheight[1] / (s->radiusV + 1), ff_filter_get_nb_threads(inlink->dst))); s 151 libavfilter/vf_median.c s->bins = 1 << ((s->depth + 1) / 2); s 152 libavfilter/vf_median.c s->fine_size = s->bins * s->bins * inlink->w; s 153 libavfilter/vf_median.c s->coarse_size = s->bins * inlink->w; s 154 libavfilter/vf_median.c s->coarse = av_calloc(s->nb_threads, sizeof(*s->coarse)); s 155 libavfilter/vf_median.c s->fine = av_calloc(s->nb_threads, sizeof(*s->fine)); s 156 libavfilter/vf_median.c if (!s->coarse || !s->fine) s 158 libavfilter/vf_median.c for (int i = 0; i < s->nb_threads; i++) { s 159 libavfilter/vf_median.c s->coarse[i] = av_malloc_array(s->coarse_size, sizeof(**s->coarse)); s 160 libavfilter/vf_median.c s->fine[i] = av_malloc_array(s->fine_size, sizeof(**s->fine)); s 161 libavfilter/vf_median.c if (!s->coarse[i] || !s->fine[i]) s 165 libavfilter/vf_median.c s->hadd = hadd; s 166 libavfilter/vf_median.c s->hsub = hsub; s 167 libavfilter/vf_median.c s->hmuladd = hmuladd; s 169 libavfilter/vf_median.c switch (s->depth) { s 170 libavfilter/vf_median.c case 8: s->filter_plane = filter_plane_8; break; s 171 libavfilter/vf_median.c case 9: s->filter_plane = filter_plane_9; break; s 172 libavfilter/vf_median.c case 10: s->filter_plane = filter_plane_10; break; s 173 libavfilter/vf_median.c case 12: s->filter_plane = filter_plane_12; break; s 174 libavfilter/vf_median.c case 14: s->filter_plane = filter_plane_14; break; s 175 libavfilter/vf_median.c case 16: s->filter_plane = filter_plane_16; break; s 187 libavfilter/vf_median.c MedianContext *s = ctx->priv; s 192 libavfilter/vf_median.c for (int plane = 0; plane < s->nb_planes; plane++) { s 193 libavfilter/vf_median.c const int h = s->planeheight[plane]; s 194 libavfilter/vf_median.c const int w = s->planewidth[plane]; s 198 libavfilter/vf_median.c if (!(s->planes & (1 << plane))) { s 203 libavfilter/vf_median.c w * ((s->depth + 7) / 8), s 208 libavfilter/vf_median.c s->filter_plane(ctx, in->data[plane], s 221 libavfilter/vf_median.c MedianContext *s = ctx->priv; s 234 libavfilter/vf_median.c ctx->internal->execute(ctx, filter_slice, &td, NULL, s->nb_threads); s 242 libavfilter/vf_median.c MedianContext *s = ctx->priv; s 244 libavfilter/vf_median.c for (int i = 0; i < s->nb_threads && s->coarse && s->fine; i++) { s 245 libavfilter/vf_median.c av_freep(&s->coarse[i]); s 246 libavfilter/vf_median.c av_freep(&s->fine[i]); s 249 libavfilter/vf_median.c av_freep(&s->coarse); s 250 libavfilter/vf_median.c av_freep(&s->fine); s 256 libavfilter/vf_median.c MedianContext *s = ctx->priv; s 263 libavfilter/vf_median.c if (!s->radiusV) s 264 libavfilter/vf_median.c s->radiusV = s->radius; s 265 libavfilter/vf_median.c check_params(s, ctx->inputs[0]); s 63 libavfilter/vf_mergeplanes.c MergePlanesContext *s = ctx->priv; s 64 libavfilter/vf_mergeplanes.c int64_t m = s->mapping; s 67 libavfilter/vf_mergeplanes.c s->outdesc = av_pix_fmt_desc_get(s->out_fmt); s 68 libavfilter/vf_mergeplanes.c if (!(s->outdesc->flags & AV_PIX_FMT_FLAG_PLANAR) || s 69 libavfilter/vf_mergeplanes.c s->outdesc->nb_components < 2) { s 73 libavfilter/vf_mergeplanes.c s->nb_planes = av_pix_fmt_count_planes(s->out_fmt); s 75 libavfilter/vf_mergeplanes.c for (i = s->nb_planes - 1; i >= 0; i--) { s 76 libavfilter/vf_mergeplanes.c s->map[i][0] = m & 0xf; s 78 libavfilter/vf_mergeplanes.c s->map[i][1] = m & 0xf; s 81 libavfilter/vf_mergeplanes.c if (s->map[i][0] > 3 || s->map[i][1] > 3) { s 86 libavfilter/vf_mergeplanes.c s->nb_inputs = FFMAX(s->nb_inputs, s->map[i][1] + 1); s 89 libavfilter/vf_mergeplanes.c av_assert0(s->nb_inputs && s->nb_inputs <= 4); s 91 libavfilter/vf_mergeplanes.c for (i = 0; i < s->nb_inputs; i++) { s 110 libavfilter/vf_mergeplanes.c MergePlanesContext *s = ctx->priv; s 114 libavfilter/vf_mergeplanes.c s->outdesc = av_pix_fmt_desc_get(s->out_fmt); s 117 libavfilter/vf_mergeplanes.c if (desc->comp[0].depth == s->outdesc->comp[0].depth && s 118 libavfilter/vf_mergeplanes.c (desc->comp[0].depth <= 8 || (desc->flags & AV_PIX_FMT_FLAG_BE) == (s->outdesc->flags & AV_PIX_FMT_FLAG_BE)) && s 124 libavfilter/vf_mergeplanes.c for (i = 0; i < s->nb_inputs; i++) s 129 libavfilter/vf_mergeplanes.c if ((ret = ff_add_format(&formats, s->out_fmt)) < 0 || s 140 libavfilter/vf_mergeplanes.c MergePlanesContext *s = fs->opaque; s 145 libavfilter/vf_mergeplanes.c for (i = 0; i < s->nb_inputs; i++) { s 146 libavfilter/vf_mergeplanes.c if ((ret = ff_framesync_get_frame(&s->fs, i, &in[i], 0)) < 0) s 153 libavfilter/vf_mergeplanes.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 155 libavfilter/vf_mergeplanes.c for (i = 0; i < s->nb_planes; i++) { s 156 libavfilter/vf_mergeplanes.c const int input = s->map[i][1]; s 157 libavfilter/vf_mergeplanes.c const int plane = s->map[i][0]; s 161 libavfilter/vf_mergeplanes.c s->planewidth[i], s->planeheight[i]); s 170 libavfilter/vf_mergeplanes.c MergePlanesContext *s = ctx->priv; s 175 libavfilter/vf_mergeplanes.c if ((ret = ff_framesync_init(&s->fs, ctx, s->nb_inputs)) < 0) s 178 libavfilter/vf_mergeplanes.c in = s->fs.in; s 179 libavfilter/vf_mergeplanes.c s->fs.opaque = s; s 180 libavfilter/vf_mergeplanes.c s->fs.on_event = process_frame; s 188 libavfilter/vf_mergeplanes.c s->planewidth[1] = s 189 libavfilter/vf_mergeplanes.c s->planewidth[2] = AV_CEIL_RSHIFT(((s->outdesc->comp[1].depth > 8) + 1) * outlink->w, s->outdesc->log2_chroma_w); s 190 libavfilter/vf_mergeplanes.c s->planewidth[0] = s 191 libavfilter/vf_mergeplanes.c s->planewidth[3] = ((s->outdesc->comp[0].depth > 8) + 1) * outlink->w; s 192 libavfilter/vf_mergeplanes.c s->planeheight[1] = s 193 libavfilter/vf_mergeplanes.c s->planeheight[2] = AV_CEIL_RSHIFT(outlink->h, s->outdesc->log2_chroma_h); s 194 libavfilter/vf_mergeplanes.c s->planeheight[0] = s 195 libavfilter/vf_mergeplanes.c s->planeheight[3] = outlink->h; s 197 libavfilter/vf_mergeplanes.c for (i = 0; i < s->nb_inputs; i++) { s 235 libavfilter/vf_mergeplanes.c for (i = 0; i < s->nb_planes; i++) { s 236 libavfilter/vf_mergeplanes.c const int input = s->map[i][1]; s 237 libavfilter/vf_mergeplanes.c const int plane = s->map[i][0]; s 245 libavfilter/vf_mergeplanes.c if (s->outdesc->comp[i].depth != inputp->depth[plane]) { s 248 libavfilter/vf_mergeplanes.c i, s->outdesc->comp[i].depth, s 252 libavfilter/vf_mergeplanes.c if (s->planewidth[i] != inputp->planewidth[plane]) { s 255 libavfilter/vf_mergeplanes.c i, s->planewidth[i], s 259 libavfilter/vf_mergeplanes.c if (s->planeheight[i] != inputp->planeheight[plane]) { s 262 libavfilter/vf_mergeplanes.c i, s->planeheight[i], s 268 libavfilter/vf_mergeplanes.c return ff_framesync_configure(&s->fs); s 275 libavfilter/vf_mergeplanes.c MergePlanesContext *s = ctx->priv; s 276 libavfilter/vf_mergeplanes.c return ff_framesync_activate(&s->fs); s 281 libavfilter/vf_mergeplanes.c MergePlanesContext *s = ctx->priv; s 284 libavfilter/vf_mergeplanes.c ff_framesync_uninit(&s->fs); s 93 libavfilter/vf_mestimate.c MEContext *s = inlink->dst->priv; s 96 libavfilter/vf_mestimate.c s->log2_mb_size = av_ceil_log2_c(s->mb_size); s 97 libavfilter/vf_mestimate.c s->mb_size = 1 << s->log2_mb_size; s 99 libavfilter/vf_mestimate.c s->b_width = inlink->w >> s->log2_mb_size; s 100 libavfilter/vf_mestimate.c s->b_height = inlink->h >> s->log2_mb_size; s 101 libavfilter/vf_mestimate.c s->b_count = s->b_width * s->b_height; s 104 libavfilter/vf_mestimate.c s->mv_table[i] = av_mallocz_array(s->b_count, sizeof(*s->mv_table[0])); s 105 libavfilter/vf_mestimate.c if (!s->mv_table[i]) s 109 libavfilter/vf_mestimate.c ff_me_init_context(&s->me_ctx, s->mb_size, s->search_param, inlink->w, inlink->h, 0, (s->b_width - 1) << s->log2_mb_size, 0, (s->b_height - 1) << s->log2_mb_size); s 129 libavfilter/vf_mestimate.c for (mb_y = 0; mb_y < s->b_height; mb_y++)\ s 130 libavfilter/vf_mestimate.c for (mb_x = 0; mb_x < s->b_width; mb_x++) {\ s 131 libavfilter/vf_mestimate.c const int x_mb = mb_x << s->log2_mb_size;\ s 132 libavfilter/vf_mestimate.c const int y_mb = mb_y << s->log2_mb_size;\ s 149 libavfilter/vf_mestimate.c MEContext *s = ctx->priv; s 150 libavfilter/vf_mestimate.c AVMotionEstContext *me_ctx = &s->me_ctx; s 162 libavfilter/vf_mestimate.c av_frame_free(&s->prev); s 163 libavfilter/vf_mestimate.c s->prev = s->cur; s 164 libavfilter/vf_mestimate.c s->cur = s->next; s 165 libavfilter/vf_mestimate.c s->next = frame; s 167 libavfilter/vf_mestimate.c s->mv_table[2] = memcpy(s->mv_table[2], s->mv_table[1], sizeof(*s->mv_table[1]) * s->b_count); s 168 libavfilter/vf_mestimate.c s->mv_table[1] = memcpy(s->mv_table[1], s->mv_table[0], sizeof(*s->mv_table[0]) * s->b_count); s 170 libavfilter/vf_mestimate.c if (!s->cur) { s 171 libavfilter/vf_mestimate.c s->cur = av_frame_clone(frame); s 172 libavfilter/vf_mestimate.c if (!s->cur) s 176 libavfilter/vf_mestimate.c if (!s->prev) s 179 libavfilter/vf_mestimate.c out = av_frame_clone(s->cur); s 183 libavfilter/vf_mestimate.c sd = av_frame_new_side_data(out, AV_FRAME_DATA_MOTION_VECTORS, 2 * s->b_count * sizeof(AVMotionVector)); s 189 libavfilter/vf_mestimate.c me_ctx->data_cur = s->cur->data[0]; s 190 libavfilter/vf_mestimate.c me_ctx->linesize = s->cur->linesize[0]; s 193 libavfilter/vf_mestimate.c me_ctx->data_ref = (dir ? s->next : s->prev)->data[0]; s 195 libavfilter/vf_mestimate.c if (s->method == AV_ME_METHOD_DS) s 197 libavfilter/vf_mestimate.c else if (s->method == AV_ME_METHOD_ESA) s 199 libavfilter/vf_mestimate.c else if (s->method == AV_ME_METHOD_FSS) s 201 libavfilter/vf_mestimate.c else if (s->method == AV_ME_METHOD_NTSS) s 203 libavfilter/vf_mestimate.c else if (s->method == AV_ME_METHOD_TDLS) s 205 libavfilter/vf_mestimate.c else if (s->method == AV_ME_METHOD_TSS) s 207 libavfilter/vf_mestimate.c else if (s->method == AV_ME_METHOD_HEXBS) s 209 libavfilter/vf_mestimate.c else if (s->method == AV_ME_METHOD_UMH) { s 210 libavfilter/vf_mestimate.c for (mb_y = 0; mb_y < s->b_height; mb_y++) s 211 libavfilter/vf_mestimate.c for (mb_x = 0; mb_x < s->b_width; mb_x++) { s 212 libavfilter/vf_mestimate.c const int mb_i = mb_x + mb_y * s->b_width; s 213 libavfilter/vf_mestimate.c const int x_mb = mb_x << s->log2_mb_size; s 214 libavfilter/vf_mestimate.c const int y_mb = mb_y << s->log2_mb_size; s 224 libavfilter/vf_mestimate.c ADD_PRED(preds[0], s->mv_table[0][mb_i - 1][dir][0], s->mv_table[0][mb_i - 1][dir][1]); s 228 libavfilter/vf_mestimate.c ADD_PRED(preds[0], s->mv_table[0][mb_i - s->b_width][dir][0], s->mv_table[0][mb_i - s->b_width][dir][1]); s 231 libavfilter/vf_mestimate.c if (mb_x + 1 < s->b_width) s 232 libavfilter/vf_mestimate.c ADD_PRED(preds[0], s->mv_table[0][mb_i - s->b_width + 1][dir][0], s->mv_table[0][mb_i - s->b_width + 1][dir][1]); s 235 libavfilter/vf_mestimate.c ADD_PRED(preds[0], s->mv_table[0][mb_i - s->b_width - 1][dir][0], s->mv_table[0][mb_i - s->b_width - 1][dir][1]); s 255 libavfilter/vf_mestimate.c s->mv_table[0][mb_i][dir][0] = mv[0] - x_mb; s 256 libavfilter/vf_mestimate.c s->mv_table[0][mb_i][dir][1] = mv[1] - y_mb; s 260 libavfilter/vf_mestimate.c } else if (s->method == AV_ME_METHOD_EPZS) { s 262 libavfilter/vf_mestimate.c for (mb_y = 0; mb_y < s->b_height; mb_y++) s 263 libavfilter/vf_mestimate.c for (mb_x = 0; mb_x < s->b_width; mb_x++) { s 264 libavfilter/vf_mestimate.c const int mb_i = mb_x + mb_y * s->b_width; s 265 libavfilter/vf_mestimate.c const int x_mb = mb_x << s->log2_mb_size; s 266 libavfilter/vf_mestimate.c const int y_mb = mb_y << s->log2_mb_size; s 277 libavfilter/vf_mestimate.c ADD_PRED(preds[0], s->mv_table[0][mb_i - 1][dir][0], s->mv_table[0][mb_i - 1][dir][1]); s 281 libavfilter/vf_mestimate.c ADD_PRED(preds[0], s->mv_table[0][mb_i - s->b_width][dir][0], s->mv_table[0][mb_i - s->b_width][dir][1]); s 284 libavfilter/vf_mestimate.c if (mb_y > 0 && mb_x + 1 < s->b_width) s 285 libavfilter/vf_mestimate.c ADD_PRED(preds[0], s->mv_table[0][mb_i - s->b_width + 1][dir][0], s->mv_table[0][mb_i - s->b_width + 1][dir][1]); s 303 libavfilter/vf_mestimate.c ADD_PRED(preds[0], s->mv_table[1][mb_i][dir][0], s->mv_table[1][mb_i][dir][1]); s 306 libavfilter/vf_mestimate.c ADD_PRED(preds[1], s->mv_table[1][mb_i][dir][0] + (s->mv_table[1][mb_i][dir][0] - s->mv_table[2][mb_i][dir][0]), s 307 libavfilter/vf_mestimate.c s->mv_table[1][mb_i][dir][1] + (s->mv_table[1][mb_i][dir][1] - s->mv_table[2][mb_i][dir][1])); s 311 libavfilter/vf_mestimate.c ADD_PRED(preds[1], s->mv_table[1][mb_i - 1][dir][0], s->mv_table[1][mb_i - 1][dir][1]); s 315 libavfilter/vf_mestimate.c ADD_PRED(preds[1], s->mv_table[1][mb_i - s->b_width][dir][0], s->mv_table[1][mb_i - s->b_width][dir][1]); s 318 libavfilter/vf_mestimate.c if (mb_x + 1 < s->b_width) s 319 libavfilter/vf_mestimate.c ADD_PRED(preds[1], s->mv_table[1][mb_i + 1][dir][0], s->mv_table[1][mb_i + 1][dir][1]); s 322 libavfilter/vf_mestimate.c if (mb_y + 1 < s->b_height) s 323 libavfilter/vf_mestimate.c ADD_PRED(preds[1], s->mv_table[1][mb_i + s->b_width][dir][0], s->mv_table[1][mb_i + s->b_width][dir][1]); s 327 libavfilter/vf_mestimate.c s->mv_table[0][mb_i][dir][0] = mv[0] - x_mb; s 328 libavfilter/vf_mestimate.c s->mv_table[0][mb_i][dir][1] = mv[1] - y_mb; s 329 libavfilter/vf_mestimate.c add_mv_data(((AVMotionVector *) sd->data) + mv_count++, s->mb_size, x_mb, y_mb, mv[0], mv[1], dir); s 339 libavfilter/vf_mestimate.c MEContext *s = ctx->priv; s 342 libavfilter/vf_mestimate.c av_frame_free(&s->prev); s 343 libavfilter/vf_mestimate.c av_frame_free(&s->cur); s 344 libavfilter/vf_mestimate.c av_frame_free(&s->next); s 347 libavfilter/vf_mestimate.c av_freep(&s->mv_table[i]); s 92 libavfilter/vf_midequalizer.c MidEqualizerContext *s = fs->opaque; s 97 libavfilter/vf_midequalizer.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &in0, 0)) < 0 || s 98 libavfilter/vf_midequalizer.c (ret = ff_framesync_get_frame(&s->fs, 1, &in1, 0)) < 0) s 113 libavfilter/vf_midequalizer.c for (p = 0; p < s->nb_planes; p++) { s 114 libavfilter/vf_midequalizer.c if (!((1 << p) & s->planes)) { s 116 libavfilter/vf_midequalizer.c s->width[0][p] * (1 + (s->histogram_size > 256)), s->height[0][p]); s 120 libavfilter/vf_midequalizer.c s->midequalizer(in0->data[p], in1->data[p], s 124 libavfilter/vf_midequalizer.c s->width[0][p], s->height[0][p], s 125 libavfilter/vf_midequalizer.c s->width[1][p], s->height[1][p], s 126 libavfilter/vf_midequalizer.c s->histogram[0], s->histogram[1], s 127 libavfilter/vf_midequalizer.c s->cchange, s->histogram_size); s 130 libavfilter/vf_midequalizer.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 248 libavfilter/vf_midequalizer.c MidEqualizerContext *s = ctx->priv; s 252 libavfilter/vf_midequalizer.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 257 libavfilter/vf_midequalizer.c s->height[0][0] = s->height[0][3] = inlink->h; s 258 libavfilter/vf_midequalizer.c s->width[0][0] = s->width[0][3] = inlink->w; s 259 libavfilter/vf_midequalizer.c s->height[0][1] = s->height[0][2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 260 libavfilter/vf_midequalizer.c s->width[0][1] = s->width[0][2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 262 libavfilter/vf_midequalizer.c s->histogram_size = 1 << desc->comp[0].depth; s 264 libavfilter/vf_midequalizer.c s->histogram[0] = av_calloc(s->histogram_size, sizeof(float)); s 265 libavfilter/vf_midequalizer.c s->histogram[1] = av_calloc(s->histogram_size, sizeof(float)); s 266 libavfilter/vf_midequalizer.c s->cchange = av_calloc(s->histogram_size, sizeof(unsigned)); s 267 libavfilter/vf_midequalizer.c if (!s->histogram[0] || !s->histogram[1] || !s->cchange) s 270 libavfilter/vf_midequalizer.c if (s->histogram_size == 256) { s 271 libavfilter/vf_midequalizer.c s->midequalizer = midequalizer8; s 273 libavfilter/vf_midequalizer.c s->midequalizer = midequalizer16; s 282 libavfilter/vf_midequalizer.c MidEqualizerContext *s = ctx->priv; s 286 libavfilter/vf_midequalizer.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 291 libavfilter/vf_midequalizer.c s->height[1][0] = s->height[1][3] = inlink->h; s 292 libavfilter/vf_midequalizer.c s->width[1][0] = s->width[1][3] = inlink->w; s 293 libavfilter/vf_midequalizer.c s->height[1][1] = s->height[1][2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 294 libavfilter/vf_midequalizer.c s->width[1][1] = s->width[1][2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 302 libavfilter/vf_midequalizer.c MidEqualizerContext *s = ctx->priv; s 318 libavfilter/vf_midequalizer.c if ((ret = ff_framesync_init(&s->fs, ctx, 2)) < 0) s 321 libavfilter/vf_midequalizer.c in = s->fs.in; s 330 libavfilter/vf_midequalizer.c s->fs.opaque = s; s 331 libavfilter/vf_midequalizer.c s->fs.on_event = process_frame; s 333 libavfilter/vf_midequalizer.c ret = ff_framesync_configure(&s->fs); s 334 libavfilter/vf_midequalizer.c outlink->time_base = s->fs.time_base; s 341 libavfilter/vf_midequalizer.c MidEqualizerContext *s = ctx->priv; s 342 libavfilter/vf_midequalizer.c return ff_framesync_activate(&s->fs); s 347 libavfilter/vf_midequalizer.c MidEqualizerContext *s = ctx->priv; s 349 libavfilter/vf_midequalizer.c ff_framesync_uninit(&s->fs); s 350 libavfilter/vf_midequalizer.c av_freep(&s->histogram[0]); s 351 libavfilter/vf_midequalizer.c av_freep(&s->histogram[1]); s 352 libavfilter/vf_midequalizer.c av_freep(&s->cchange); s 75 libavfilter/vf_mix.c MixContext *s = ctx->priv; s 79 libavfilter/vf_mix.c s->tmix = !strcmp(ctx->filter->name, "tmix"); s 81 libavfilter/vf_mix.c s->frames = av_calloc(s->nb_inputs, sizeof(*s->frames)); s 82 libavfilter/vf_mix.c if (!s->frames) s 85 libavfilter/vf_mix.c s->weights = av_calloc(s->nb_inputs, sizeof(*s->weights)); s 86 libavfilter/vf_mix.c if (!s->weights) s 89 libavfilter/vf_mix.c if (!s->tmix) { s 90 libavfilter/vf_mix.c for (i = 0; i < s->nb_inputs; i++) { s 105 libavfilter/vf_mix.c p = s->weights_str; s 106 libavfilter/vf_mix.c for (i = 0; i < s->nb_inputs; i++) { s 111 libavfilter/vf_mix.c if (av_sscanf(arg, "%f", &s->weights[i]) != 1) { s 115 libavfilter/vf_mix.c s->wfactor += s->weights[i]; s 118 libavfilter/vf_mix.c for (; i < s->nb_inputs; i++) { s 119 libavfilter/vf_mix.c s->weights[i] = s->weights[last]; s 120 libavfilter/vf_mix.c s->wfactor += s->weights[i]; s 122 libavfilter/vf_mix.c if (s->scale == 0) { s 123 libavfilter/vf_mix.c s->wfactor = 1 / s->wfactor; s 125 libavfilter/vf_mix.c s->wfactor = s->scale; s 137 libavfilter/vf_mix.c MixContext *s = ctx->priv; s 143 libavfilter/vf_mix.c if (s->depth <= 8) { s 144 libavfilter/vf_mix.c for (p = 0; p < s->nb_planes; p++) { s 145 libavfilter/vf_mix.c const int slice_start = (s->height[p] * jobnr) / nb_jobs; s 146 libavfilter/vf_mix.c const int slice_end = (s->height[p] * (jobnr+1)) / nb_jobs; s 150 libavfilter/vf_mix.c for (x = 0; x < s->linesize[p]; x++) { s 153 libavfilter/vf_mix.c for (i = 0; i < s->nb_inputs; i++) { s 156 libavfilter/vf_mix.c val += src * s->weights[i]; s 159 libavfilter/vf_mix.c dst[x] = av_clip_uint8(val * s->wfactor); s 166 libavfilter/vf_mix.c for (p = 0; p < s->nb_planes; p++) { s 167 libavfilter/vf_mix.c const int slice_start = (s->height[p] * jobnr) / nb_jobs; s 168 libavfilter/vf_mix.c const int slice_end = (s->height[p] * (jobnr+1)) / nb_jobs; s 172 libavfilter/vf_mix.c for (x = 0; x < s->linesize[p] / 2; x++) { s 175 libavfilter/vf_mix.c for (i = 0; i < s->nb_inputs; i++) { s 178 libavfilter/vf_mix.c val += src * s->weights[i]; s 181 libavfilter/vf_mix.c dst[x] = av_clip(val * s->wfactor, 0, s->max); s 196 libavfilter/vf_mix.c MixContext *s = fs->opaque; s 197 libavfilter/vf_mix.c AVFrame **in = s->frames; s 202 libavfilter/vf_mix.c for (i = 0; i < s->nb_inputs; i++) { s 203 libavfilter/vf_mix.c if ((ret = ff_framesync_get_frame(&s->fs, i, &in[i], 0)) < 0) s 210 libavfilter/vf_mix.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 214 libavfilter/vf_mix.c ctx->internal->execute(ctx, mix_frames, &td, NULL, FFMIN(s->height[0], ff_filter_get_nb_threads(ctx))); s 222 libavfilter/vf_mix.c MixContext *s = ctx->priv; s 231 libavfilter/vf_mix.c if (!s->tmix) { s 232 libavfilter/vf_mix.c for (i = 1; i < s->nb_inputs; i++) { s 240 libavfilter/vf_mix.c s->desc = av_pix_fmt_desc_get(outlink->format); s 241 libavfilter/vf_mix.c if (!s->desc) s 243 libavfilter/vf_mix.c s->nb_planes = av_pix_fmt_count_planes(outlink->format); s 244 libavfilter/vf_mix.c s->depth = s->desc->comp[0].depth; s 245 libavfilter/vf_mix.c s->max = (1 << s->depth) - 1; s 247 libavfilter/vf_mix.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 250 libavfilter/vf_mix.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 251 libavfilter/vf_mix.c s->height[0] = s->height[3] = inlink->h; s 253 libavfilter/vf_mix.c if (s->tmix) s 261 libavfilter/vf_mix.c if ((ret = ff_framesync_init(&s->fs, ctx, s->nb_inputs)) < 0) s 264 libavfilter/vf_mix.c in = s->fs.in; s 265 libavfilter/vf_mix.c s->fs.opaque = s; s 266 libavfilter/vf_mix.c s->fs.on_event = process_frame; s 268 libavfilter/vf_mix.c for (i = 0; i < s->nb_inputs; i++) { s 274 libavfilter/vf_mix.c in[i].after = (s->duration == 1 || (s->duration == 2 && i == 0)) ? EXT_STOP : EXT_INFINITY; s 277 libavfilter/vf_mix.c ret = ff_framesync_configure(&s->fs); s 278 libavfilter/vf_mix.c outlink->time_base = s->fs.time_base; s 285 libavfilter/vf_mix.c MixContext *s = ctx->priv; s 288 libavfilter/vf_mix.c ff_framesync_uninit(&s->fs); s 289 libavfilter/vf_mix.c av_freep(&s->weights); s 291 libavfilter/vf_mix.c if (!s->tmix) { s 295 libavfilter/vf_mix.c for (i = 0; i < s->nb_frames && s->frames; i++) s 296 libavfilter/vf_mix.c av_frame_free(&s->frames[i]); s 298 libavfilter/vf_mix.c av_freep(&s->frames); s 303 libavfilter/vf_mix.c MixContext *s = ctx->priv; s 304 libavfilter/vf_mix.c return ff_framesync_activate(&s->fs); s 353 libavfilter/vf_mix.c MixContext *s = ctx->priv; s 357 libavfilter/vf_mix.c if (s->nb_inputs == 1) s 360 libavfilter/vf_mix.c if (s->nb_frames < s->nb_inputs) { s 361 libavfilter/vf_mix.c s->frames[s->nb_frames] = in; s 362 libavfilter/vf_mix.c s->nb_frames++; s 363 libavfilter/vf_mix.c if (s->nb_frames < s->nb_inputs) s 366 libavfilter/vf_mix.c av_frame_free(&s->frames[0]); s 367 libavfilter/vf_mix.c memmove(&s->frames[0], &s->frames[1], sizeof(*s->frames) * (s->nb_inputs - 1)); s 368 libavfilter/vf_mix.c s->frames[s->nb_inputs - 1] = in; s 372 libavfilter/vf_mix.c out = av_frame_clone(s->frames[0]); s 381 libavfilter/vf_mix.c out->pts = s->frames[0]->pts; s 384 libavfilter/vf_mix.c td.in = s->frames; s 385 libavfilter/vf_mix.c ctx->internal->execute(ctx, mix_frames, &td, NULL, FFMIN(s->height[0], ff_filter_get_nb_threads(ctx))); s 234 libavfilter/vf_neighbor.c NContext *s = ctx->priv; s 237 libavfilter/vf_neighbor.c s->depth = desc->comp[0].depth; s 238 libavfilter/vf_neighbor.c s->max = (1 << s->depth) - 1; s 239 libavfilter/vf_neighbor.c s->bpc = (s->depth + 7) / 8; s 241 libavfilter/vf_neighbor.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 242 libavfilter/vf_neighbor.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 243 libavfilter/vf_neighbor.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 244 libavfilter/vf_neighbor.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 246 libavfilter/vf_neighbor.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 249 libavfilter/vf_neighbor.c s->filter = s->depth > 8 ? erosion16 : erosion; s 251 libavfilter/vf_neighbor.c s->filter = s->depth > 8 ? dilation16 : dilation; s 253 libavfilter/vf_neighbor.c s->filter = s->depth > 8 ? deflate16 : deflate; s 255 libavfilter/vf_neighbor.c s->filter = s->depth > 8 ? inflate16 : inflate; s 262 libavfilter/vf_neighbor.c NContext *s = ctx->priv; s 268 libavfilter/vf_neighbor.c for (plane = 0; plane < s->nb_planes; plane++) { s 269 libavfilter/vf_neighbor.c const int bpc = s->bpc; s 270 libavfilter/vf_neighbor.c const int threshold = s->threshold[plane]; s 273 libavfilter/vf_neighbor.c const int height = s->planeheight[plane]; s 274 libavfilter/vf_neighbor.c const int width = s->planewidth[plane]; s 300 libavfilter/vf_neighbor.c s->filter(dst, src, 1, threshold, coordinateslb, s->coordinates, s->max); s 302 libavfilter/vf_neighbor.c s->filter(dst + 1 * bpc, src + 1 * bpc, width - 2, threshold, coordinates, s->coordinates, s->max); s 303 libavfilter/vf_neighbor.c s->filter(dst + (width - 1) * bpc, src + (width - 1) * bpc, 1, threshold, coordinatesrb, s->coordinates, s->max); s 318 libavfilter/vf_neighbor.c NContext *s = ctx->priv; s 331 libavfilter/vf_neighbor.c ctx->internal->execute(ctx, filter_slice, &td, NULL, FFMIN(s->planeheight[1], ff_filter_get_nb_threads(ctx))); s 283 libavfilter/vf_nlmeans.c NLMeansContext *s = ctx->priv; s 285 libavfilter/vf_nlmeans.c const int e = FFMAX(s->research_hsize, s->research_hsize_uv) s 286 libavfilter/vf_nlmeans.c + FFMAX(s->patch_hsize, s->patch_hsize_uv); s 288 libavfilter/vf_nlmeans.c s->chroma_w = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 289 libavfilter/vf_nlmeans.c s->chroma_h = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 290 libavfilter/vf_nlmeans.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 311 libavfilter/vf_nlmeans.c s->ii_w = inlink->w + e*2; s 312 libavfilter/vf_nlmeans.c s->ii_h = inlink->h + e*2; s 315 libavfilter/vf_nlmeans.c s->ii_lz_32 = FFALIGN(s->ii_w + 1, 4); s 318 libavfilter/vf_nlmeans.c s->ii_orig = av_mallocz_array(s->ii_h + 1, s->ii_lz_32 * sizeof(*s->ii_orig)); s 319 libavfilter/vf_nlmeans.c if (!s->ii_orig) s 323 libavfilter/vf_nlmeans.c s->ii = s->ii_orig + s->ii_lz_32 + 1; s 326 libavfilter/vf_nlmeans.c s->wa_linesize = inlink->w; s 327 libavfilter/vf_nlmeans.c s->wa = av_malloc_array(s->wa_linesize, inlink->h * sizeof(*s->wa)); s 328 libavfilter/vf_nlmeans.c if (!s->wa) s 346 libavfilter/vf_nlmeans.c NLMeansContext *s = ctx->priv; s 355 libavfilter/vf_nlmeans.c const uint32_t *ii = td->ii_start + (starty - p - 1) * s->ii_lz_32 - p - 1; s 357 libavfilter/vf_nlmeans.c const int dist_d = dist_b * s->ii_lz_32; s 362 libavfilter/vf_nlmeans.c struct weighted_avg *wa = s->wa + y*s->wa_linesize; s 399 libavfilter/vf_nlmeans.c if (patch_diff_sq < s->max_meaningful_diff) { s 400 libavfilter/vf_nlmeans.c const float weight = s->weight_lut[patch_diff_sq]; // exp(-patch_diff_sq * s->pdiff_scale) s 405 libavfilter/vf_nlmeans.c ii += s->ii_lz_32; s 435 libavfilter/vf_nlmeans.c NLMeansContext *s = ctx->priv; s 440 libavfilter/vf_nlmeans.c const uint32_t *centered_ii = s->ii + e*s->ii_lz_32 + e; s 442 libavfilter/vf_nlmeans.c memset(s->wa, 0, s->wa_linesize * h * sizeof(*s->wa)); s 454 libavfilter/vf_nlmeans.c .ii_start = centered_ii + offy*s->ii_lz_32 + offx, s 458 libavfilter/vf_nlmeans.c compute_ssd_integral_image(&s->dsp, s->ii, s->ii_lz_32, s 468 libavfilter/vf_nlmeans.c s->wa, s->wa_linesize, w, h); s 477 libavfilter/vf_nlmeans.c NLMeansContext *s = ctx->priv; s 487 libavfilter/vf_nlmeans.c for (i = 0; i < s->nb_planes; i++) { s 488 libavfilter/vf_nlmeans.c const int w = i ? s->chroma_w : inlink->w; s 489 libavfilter/vf_nlmeans.c const int h = i ? s->chroma_h : inlink->h; s 490 libavfilter/vf_nlmeans.c const int p = i ? s->patch_hsize_uv : s->patch_hsize; s 491 libavfilter/vf_nlmeans.c const int r = i ? s->research_hsize_uv : s->research_hsize; s 502 libavfilter/vf_nlmeans.c if (!(s->field & 1)) { \ s 503 libavfilter/vf_nlmeans.c s->field |= 1; \ s 505 libavfilter/vf_nlmeans.c "setting it to %d\n", s->field); \ s 520 libavfilter/vf_nlmeans.c NLMeansContext *s = ctx->priv; s 521 libavfilter/vf_nlmeans.c const double h = s->sigma * 10.; s 523 libavfilter/vf_nlmeans.c s->pdiff_scale = 1. / (h * h); s 524 libavfilter/vf_nlmeans.c s->max_meaningful_diff = log(255.) / s->pdiff_scale; s 525 libavfilter/vf_nlmeans.c s->weight_lut = av_calloc(s->max_meaningful_diff, sizeof(*s->weight_lut)); s 526 libavfilter/vf_nlmeans.c if (!s->weight_lut) s 528 libavfilter/vf_nlmeans.c for (i = 0; i < s->max_meaningful_diff; i++) s 529 libavfilter/vf_nlmeans.c s->weight_lut[i] = exp(-i * s->pdiff_scale); s 534 libavfilter/vf_nlmeans.c if (!s->research_size_uv) s->research_size_uv = s->research_size; s 535 libavfilter/vf_nlmeans.c if (!s->patch_size_uv) s->patch_size_uv = s->patch_size; s 540 libavfilter/vf_nlmeans.c s->research_hsize = s->research_size / 2; s 541 libavfilter/vf_nlmeans.c s->research_hsize_uv = s->research_size_uv / 2; s 542 libavfilter/vf_nlmeans.c s->patch_hsize = s->patch_size / 2; s 543 libavfilter/vf_nlmeans.c s->patch_hsize_uv = s->patch_size_uv / 2; s 546 libavfilter/vf_nlmeans.c s->research_size, s->research_size, s->research_size_uv, s->research_size_uv, s 547 libavfilter/vf_nlmeans.c s->patch_size, s->patch_size, s->patch_size_uv, s->patch_size_uv); s 549 libavfilter/vf_nlmeans.c ff_nlmeans_init(&s->dsp); s 556 libavfilter/vf_nlmeans.c NLMeansContext *s = ctx->priv; s 557 libavfilter/vf_nlmeans.c av_freep(&s->weight_lut); s 558 libavfilter/vf_nlmeans.c av_freep(&s->ii_orig); s 559 libavfilter/vf_nlmeans.c av_freep(&s->wa); s 92 libavfilter/vf_nnedi.c void (*compute_network0)(struct NNEDIContext *s, const float *, const float *, uint8_t *); s 153 libavfilter/vf_nnedi.c NNEDIContext *s = ctx->priv; s 157 libavfilter/vf_nnedi.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 158 libavfilter/vf_nnedi.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 161 libavfilter/vf_nnedi.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 162 libavfilter/vf_nnedi.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 170 libavfilter/vf_nnedi.c NNEDIContext *s = ctx->priv; s 177 libavfilter/vf_nnedi.c if (s->field > 1 || s->field == -2) s 204 libavfilter/vf_nnedi.c static void copy_pad(const AVFrame *src, FrameData *frame_data, NNEDIContext *s, int fn) s 209 libavfilter/vf_nnedi.c for (plane = 0; plane < s->nb_planes; plane++) { s 216 libavfilter/vf_nnedi.c const int src_height = s->planeheight[plane]; s 219 libavfilter/vf_nnedi.c const int src_width = s->linesize[plane]; s 224 libavfilter/vf_nnedi.c if (!(s->process_plane & (1 << plane))) s 268 libavfilter/vf_nnedi.c static void dot_prod(NNEDIContext *s, const float *data, const float *weights, float *vals, const int n, const int len, const float *scale) s 275 libavfilter/vf_nnedi.c sum = s->fdsp->scalarproduct_float(data, &weights[i * len], len); s 281 libavfilter/vf_nnedi.c static void dot_prods(NNEDIContext *s, const float *dataf, const float *weightsf, float *vals, const int n, const int len, const float *scale) s 297 libavfilter/vf_nnedi.c static void compute_network0(NNEDIContext *s, const float *input, const float *weights, uint8_t *d) s 301 libavfilter/vf_nnedi.c dot_prod(s, input, weights, temp, 4, 48, &scale); s 305 libavfilter/vf_nnedi.c dot_prod(s, temp, weights + 4 * 49, temp + 4, 4, 4, &scale); s 307 libavfilter/vf_nnedi.c dot_prod(s, temp, weights + 4 * 49 + 4 * 5, temp + 8, 4, 8, &scale); s 314 libavfilter/vf_nnedi.c static void compute_network0_i16(NNEDIContext *s, const float *inputf, const float *weightsf, uint8_t *d) s 319 libavfilter/vf_nnedi.c dot_prods(s, inputf, weightsf, temp, 4, 48, &scale); s 323 libavfilter/vf_nnedi.c dot_prod(s, temp, wf + 8, temp + 4, 4, 4, &scale); s 325 libavfilter/vf_nnedi.c dot_prod(s, temp, wf + 8 + 4 * 5, temp + 8, 4, 8, &scale); s 383 libavfilter/vf_nnedi.c static void compute_network0new(NNEDIContext *s, const float *datai, const float *weights, uint8_t *d) s 418 libavfilter/vf_nnedi.c static void evalfunc_0(NNEDIContext *s, FrameData *frame_data) s 421 libavfilter/vf_nnedi.c const float *weights0 = s->weights0; s 427 libavfilter/vf_nnedi.c for (plane = 0; plane < s->nb_planes; plane++) { s 440 libavfilter/vf_nnedi.c if (!(s->process_plane & (1 << plane))) s 457 libavfilter/vf_nnedi.c if (s->pscrn == 1) { // original s 460 libavfilter/vf_nnedi.c s->readpixels((const uint8_t *)(src3p + x - 5), src_stride, input); s 461 libavfilter/vf_nnedi.c s->compute_network0(s, input, weights0, tempu+x); s 463 libavfilter/vf_nnedi.c lcount[y] += s->process_line0(tempu + 32, width - 64, (uint8_t *)(dstp + 32), (const uint8_t *)(src3p + 32), src_stride, s->max_value, plane); s 467 libavfilter/vf_nnedi.c } else if (s->pscrn > 1) { // new s 470 libavfilter/vf_nnedi.c s->readpixels((const uint8_t *)(src3p + x - 6), src_stride, input); s 471 libavfilter/vf_nnedi.c s->compute_network0(s, input, weights0, tempu + x); s 473 libavfilter/vf_nnedi.c lcount[y] += s->process_line0(tempu + 32, width - 64, (uint8_t *)(dstp + 32), (const uint8_t *)(src3p + 32), src_stride, s->max_value, plane); s 552 libavfilter/vf_nnedi.c static void e2_m16(float *s, const int n) s 557 libavfilter/vf_nnedi.c s[i] = exp(av_clipf(s[i], exp_lo, exp_hi)); s 578 libavfilter/vf_nnedi.c static void evalfunc_1(NNEDIContext *s, FrameData *frame_data) s 582 libavfilter/vf_nnedi.c float **weights1 = s->weights1; s 583 libavfilter/vf_nnedi.c const int qual = s->qual; s 584 libavfilter/vf_nnedi.c const int asize = s->asize; s 585 libavfilter/vf_nnedi.c const int nns = s->nns; s 586 libavfilter/vf_nnedi.c const int xdia = s->xdia; s 588 libavfilter/vf_nnedi.c const int ydia = s->ydia; s 592 libavfilter/vf_nnedi.c for (plane = 0; plane < s->nb_planes; plane++) { s 606 libavfilter/vf_nnedi.c if (!(s->process_plane & (1 << plane))) s 620 libavfilter/vf_nnedi.c s->extract((const uint8_t *)(srcpp + x), src_stride, xdia, ydia, mstd, input); s 622 libavfilter/vf_nnedi.c s->dot_prod(s, input, weights1[i], temp, nns * 2, asize, mstd + 2); s 623 libavfilter/vf_nnedi.c s->expfunc(temp, nns); s 624 libavfilter/vf_nnedi.c s->wae5(temp, nns, mstd); s 627 libavfilter/vf_nnedi.c dstp[x] = FFMIN(FFMAX((int)(mstd[3] * scale + 0.5f), 0), s->max_value); s 645 libavfilter/vf_nnedi.c static void select_functions(NNEDIContext *s) s 647 libavfilter/vf_nnedi.c s->copy_pad = copy_pad; s 648 libavfilter/vf_nnedi.c s->evalfunc_0 = evalfunc_0; s 649 libavfilter/vf_nnedi.c s->evalfunc_1 = evalfunc_1; s 652 libavfilter/vf_nnedi.c s->process_line0 = process_line0; s 654 libavfilter/vf_nnedi.c if (s->pscrn < 2) { // original prescreener s 655 libavfilter/vf_nnedi.c if (s->fapprox & 1) { // int16 dot products s 656 libavfilter/vf_nnedi.c s->readpixels = byte2word48; s 657 libavfilter/vf_nnedi.c s->compute_network0 = compute_network0_i16; s 659 libavfilter/vf_nnedi.c s->readpixels = pixel2float48; s 660 libavfilter/vf_nnedi.c s->compute_network0 = compute_network0; s 664 libavfilter/vf_nnedi.c s->readpixels = byte2word64; s 665 libavfilter/vf_nnedi.c s->compute_network0 = compute_network0new; s 669 libavfilter/vf_nnedi.c s->wae5 = weighted_avg_elliott_mul5_m16; s 671 libavfilter/vf_nnedi.c if (s->fapprox & 2) { // use int16 dot products s 672 libavfilter/vf_nnedi.c s->extract = extract_m8_i16; s 673 libavfilter/vf_nnedi.c s->dot_prod = dot_prods; s 675 libavfilter/vf_nnedi.c s->extract = extract_m8; s 676 libavfilter/vf_nnedi.c s->dot_prod = dot_prod; s 679 libavfilter/vf_nnedi.c s->expfunc = e2_m16; s 691 libavfilter/vf_nnedi.c NNEDIContext *s = ctx->priv; s 693 libavfilter/vf_nnedi.c AVFrame *src = s->src; s 695 libavfilter/vf_nnedi.c int effective_field = s->field; s 705 libavfilter/vf_nnedi.c if (s->field < 0 && src->interlaced_frame && src->top_field_first == 0) s 707 libavfilter/vf_nnedi.c else if (s->field < 0 && src->interlaced_frame && src->top_field_first == 1) s 712 libavfilter/vf_nnedi.c if (s->field > 1 || s->field == -2) { s 722 libavfilter/vf_nnedi.c s->dst = ff_get_video_buffer(outlink, outlink->w, outlink->h); s 723 libavfilter/vf_nnedi.c if (!s->dst) s 725 libavfilter/vf_nnedi.c av_frame_copy_props(s->dst, src); s 726 libavfilter/vf_nnedi.c s->dst->interlaced_frame = 0; s 728 libavfilter/vf_nnedi.c frame_data = &s->frame_data; s 730 libavfilter/vf_nnedi.c for (plane = 0; plane < s->nb_planes; plane++) { s 731 libavfilter/vf_nnedi.c int dst_height = s->planeheight[plane]; s 732 libavfilter/vf_nnedi.c int dst_width = s->linesize[plane]; s 737 libavfilter/vf_nnedi.c if (!(s->process_plane & (1 << plane))) { s 738 libavfilter/vf_nnedi.c av_image_copy_plane(s->dst->data[plane], s->dst->linesize[plane], s 740 libavfilter/vf_nnedi.c s->linesize[plane], s 741 libavfilter/vf_nnedi.c s->planeheight[plane]); s 754 libavfilter/vf_nnedi.c frame_data->dstp[plane] = s->dst->data[plane]; s 755 libavfilter/vf_nnedi.c frame_data->dst_stride[plane] = s->dst->linesize[plane]; s 783 libavfilter/vf_nnedi.c s->copy_pad(src, frame_data, s, field_n); s 786 libavfilter/vf_nnedi.c s->evalfunc_0(s, frame_data); s 789 libavfilter/vf_nnedi.c s->evalfunc_1(s, frame_data); s 798 libavfilter/vf_nnedi.c NNEDIContext *s = ctx->priv; s 801 libavfilter/vf_nnedi.c if ((s->field > 1 || s 802 libavfilter/vf_nnedi.c s->field == -2) && !s->second) { s 804 libavfilter/vf_nnedi.c } else if (s->field > 1 || s 805 libavfilter/vf_nnedi.c s->field == -2) { s 808 libavfilter/vf_nnedi.c s->src = s->second; s 811 libavfilter/vf_nnedi.c av_frame_free(&s->dst); s 812 libavfilter/vf_nnedi.c av_frame_free(&s->second); s 813 libavfilter/vf_nnedi.c s->src = NULL; s 816 libavfilter/vf_nnedi.c dst = s->dst; s 827 libavfilter/vf_nnedi.c if (s->eof) s 829 libavfilter/vf_nnedi.c s->cur_pts = s->second->pts; s 830 libavfilter/vf_nnedi.c av_frame_free(&s->second); s 832 libavfilter/vf_nnedi.c if ((s->deint && src->interlaced_frame && s 834 libavfilter/vf_nnedi.c (!s->deint && !ctx->is_disabled)) { s 835 libavfilter/vf_nnedi.c s->second = src; s 839 libavfilter/vf_nnedi.c if ((s->deint && !src->interlaced_frame) || ctx->is_disabled) { s 843 libavfilter/vf_nnedi.c av_frame_free(&s->second); s 847 libavfilter/vf_nnedi.c if (s->field > 1 || s->field == -2) { s 848 libavfilter/vf_nnedi.c av_frame_free(&s->second); s 849 libavfilter/vf_nnedi.c if ((s->deint && src->interlaced_frame) || s 850 libavfilter/vf_nnedi.c (!s->deint)) s 851 libavfilter/vf_nnedi.c s->second = src; s 860 libavfilter/vf_nnedi.c s->src = src; s 863 libavfilter/vf_nnedi.c av_frame_free(&s->dst); s 864 libavfilter/vf_nnedi.c av_frame_free(&s->src); s 865 libavfilter/vf_nnedi.c av_frame_free(&s->second); s 870 libavfilter/vf_nnedi.c s->dst->pts = src->pts * 2; s 871 libavfilter/vf_nnedi.c if (s->field <= 1 && s->field > -2) { s 873 libavfilter/vf_nnedi.c s->src = NULL; s 876 libavfilter/vf_nnedi.c return ff_filter_frame(outlink, s->dst); s 882 libavfilter/vf_nnedi.c NNEDIContext *s = ctx->priv; s 885 libavfilter/vf_nnedi.c if (s->eof) s 890 libavfilter/vf_nnedi.c if (ret == AVERROR_EOF && s->second) { s 891 libavfilter/vf_nnedi.c AVFrame *next = av_frame_clone(s->second); s 896 libavfilter/vf_nnedi.c next->pts = s->second->pts * 2 - s->cur_pts; s 897 libavfilter/vf_nnedi.c s->eof = 1; s 909 libavfilter/vf_nnedi.c NNEDIContext *s = ctx->priv; s 920 libavfilter/vf_nnedi.c const int dims1 = nns_table[s->nnsparam] * 2 * (xdia_table[s->nsize] * ydia_table[s->nsize] + 1); s 925 libavfilter/vf_nnedi.c weights_file = fopen(s->weights_file, "rb"); s 974 libavfilter/vf_nnedi.c if (i == s->nsize && j == s->nnsparam) s 980 libavfilter/vf_nnedi.c s->weights0 = av_malloc_array(FFMAX(dims0, dims0new), sizeof(float)); s 981 libavfilter/vf_nnedi.c if (!s->weights0) { s 987 libavfilter/vf_nnedi.c s->weights1[i] = av_malloc_array(dims1, sizeof(float)); s 988 libavfilter/vf_nnedi.c if (!s->weights1[i]) { s 995 libavfilter/vf_nnedi.c if (s->pscrn >= 2) {// using new prescreener s 1011 libavfilter/vf_nnedi.c bdw = bdata + dims0 + dims0new * (s->pscrn - 2); s 1012 libavfilter/vf_nnedi.c ws = (int16_t *)s->weights0; s 1044 libavfilter/vf_nnedi.c if (s->fapprox & 1) {// use int16 dot products in first layer s 1045 libavfilter/vf_nnedi.c int16_t *ws = (int16_t *)s->weights0; s 1068 libavfilter/vf_nnedi.c s->weights0[j * 48 + k] = (float)((bdata[j * 48 + k] - mean[j]) / half); s 1069 libavfilter/vf_nnedi.c memcpy(s->weights0 + 4 * 48, bdata + 4 * 48, (dims0 - 4 * 48) * sizeof(float)); s 1075 libavfilter/vf_nnedi.c const float *bdataT = bdata + dims0 + dims0new * 3 + dims1tsize * s->etype + dims1offset + i * dims1; s 1076 libavfilter/vf_nnedi.c const int nnst = nns_table[s->nnsparam]; s 1077 libavfilter/vf_nnedi.c const int asize = xdia_table[s->nsize] * ydia_table[s->nsize]; s 1102 libavfilter/vf_nnedi.c if (s->fapprox & 2) { // use int16 dot products s 1103 libavfilter/vf_nnedi.c int16_t *ws = (int16_t *)s->weights1[i]; s 1133 libavfilter/vf_nnedi.c s->weights1[i][j * asize + k] = (float)(bdataT[j * asize + k] - mean[asize + 1 + j] - q); s 1135 libavfilter/vf_nnedi.c s->weights1[i][boff + j] = (float)(bdataT[boff + j] - (j < nnst ? mean[asize] : 0.0)); s 1141 libavfilter/vf_nnedi.c s->nns = nns_table[s->nnsparam]; s 1142 libavfilter/vf_nnedi.c s->xdia = xdia_table[s->nsize]; s 1143 libavfilter/vf_nnedi.c s->ydia = ydia_table[s->nsize]; s 1144 libavfilter/vf_nnedi.c s->asize = xdia_table[s->nsize] * ydia_table[s->nsize]; s 1146 libavfilter/vf_nnedi.c s->max_value = 65535 >> 8; s 1148 libavfilter/vf_nnedi.c select_functions(s); s 1150 libavfilter/vf_nnedi.c s->fdsp = avpriv_float_dsp_alloc(0); s 1151 libavfilter/vf_nnedi.c if (!s->fdsp) s 1161 libavfilter/vf_nnedi.c NNEDIContext *s = ctx->priv; s 1164 libavfilter/vf_nnedi.c av_freep(&s->weights0); s 1167 libavfilter/vf_nnedi.c av_freep(&s->weights1[i]); s 1169 libavfilter/vf_nnedi.c for (i = 0; i < s->nb_planes; i++) { s 1170 libavfilter/vf_nnedi.c av_freep(&s->frame_data.paddedp[i]); s 1171 libavfilter/vf_nnedi.c av_freep(&s->frame_data.lcount[i]); s 1174 libavfilter/vf_nnedi.c av_freep(&s->frame_data.input); s 1175 libavfilter/vf_nnedi.c av_freep(&s->frame_data.temp); s 1176 libavfilter/vf_nnedi.c av_freep(&s->fdsp); s 1177 libavfilter/vf_nnedi.c av_frame_free(&s->second); s 226 libavfilter/vf_noise.c NoiseContext *s = ctx->priv; s 230 libavfilter/vf_noise.c for (plane = 0; plane < s->nb_planes; plane++) { s 231 libavfilter/vf_noise.c const int height = s->height[plane]; s 237 libavfilter/vf_noise.c s->bytewidth[plane], start, end, s, plane); s 121 libavfilter/vf_normalize.c void (*find_min_max)(struct NormalizeContext *s, AVFrame *in, NormalizeLocal min[3], NormalizeLocal max[3]); s 122 libavfilter/vf_normalize.c void (*process)(struct NormalizeContext *s, AVFrame *in, AVFrame *out); s 140 libavfilter/vf_normalize.c static void find_min_max(NormalizeContext *s, AVFrame *in, NormalizeLocal min[3], NormalizeLocal max[3]) s 143 libavfilter/vf_normalize.c min[c].in = max[c].in = in->data[0][s->co[c]]; s 148 libavfilter/vf_normalize.c min[c].in = FFMIN(min[c].in, inp[s->co[c]]); s 149 libavfilter/vf_normalize.c max[c].in = FFMAX(max[c].in, inp[s->co[c]]); s 151 libavfilter/vf_normalize.c inp += s->step; s 156 libavfilter/vf_normalize.c static void process(NormalizeContext *s, AVFrame *in, AVFrame *out) s 163 libavfilter/vf_normalize.c outp[s->co[c]] = s->lut[c][inp[s->co[c]]]; s 164 libavfilter/vf_normalize.c if (s->num_components == 4) s 166 libavfilter/vf_normalize.c outp[s->co[3]] = inp[s->co[3]]; s 167 libavfilter/vf_normalize.c inp += s->step; s 168 libavfilter/vf_normalize.c outp += s->step; s 173 libavfilter/vf_normalize.c static void find_min_max_planar(NormalizeContext *s, AVFrame *in, NormalizeLocal min[3], NormalizeLocal max[3]) s 193 libavfilter/vf_normalize.c static void process_planar(NormalizeContext *s, AVFrame *in, AVFrame *out) s 205 libavfilter/vf_normalize.c outrp[x] = s->lut[0][inrp[x]]; s 206 libavfilter/vf_normalize.c outgp[x] = s->lut[1][ingp[x]]; s 207 libavfilter/vf_normalize.c outbp[x] = s->lut[2][inbp[x]]; s 208 libavfilter/vf_normalize.c if (s->num_components == 4) s 214 libavfilter/vf_normalize.c static void find_min_max_16(NormalizeContext *s, AVFrame *in, NormalizeLocal min[3], NormalizeLocal max[3]) s 217 libavfilter/vf_normalize.c min[c].in = max[c].in = AV_RN16(in->data[0] + 2 * s->co[c]); s 222 libavfilter/vf_normalize.c min[c].in = FFMIN(min[c].in, inp[s->co[c]]); s 223 libavfilter/vf_normalize.c max[c].in = FFMAX(max[c].in, inp[s->co[c]]); s 225 libavfilter/vf_normalize.c inp += s->step; s 230 libavfilter/vf_normalize.c static void process_16(NormalizeContext *s, AVFrame *in, AVFrame *out) s 237 libavfilter/vf_normalize.c outp[s->co[c]] = s->lut[c][inp[s->co[c]]]; s 238 libavfilter/vf_normalize.c if (s->num_components == 4) s 240 libavfilter/vf_normalize.c outp[s->co[3]] = inp[s->co[3]]; s 241 libavfilter/vf_normalize.c inp += s->step; s 242 libavfilter/vf_normalize.c outp += s->step; s 247 libavfilter/vf_normalize.c static void find_min_max_planar_16(NormalizeContext *s, AVFrame *in, NormalizeLocal min[3], NormalizeLocal max[3]) s 267 libavfilter/vf_normalize.c static void process_planar_16(NormalizeContext *s, AVFrame *in, AVFrame *out) s 279 libavfilter/vf_normalize.c outrp[x] = s->lut[0][inrp[x]]; s 280 libavfilter/vf_normalize.c outgp[x] = s->lut[1][ingp[x]]; s 281 libavfilter/vf_normalize.c outbp[x] = s->lut[2][inbp[x]]; s 282 libavfilter/vf_normalize.c if (s->num_components == 4) s 291 libavfilter/vf_normalize.c static void normalize(NormalizeContext *s, AVFrame *in, AVFrame *out) s 302 libavfilter/vf_normalize.c s->find_min_max(s, in, min, max); s 307 libavfilter/vf_normalize.c int history_idx = s->frame_num % s->history_len; s 310 libavfilter/vf_normalize.c int num_history_vals = s->frame_num + 1; s 311 libavfilter/vf_normalize.c if (s->frame_num >= s->history_len) { s 314 libavfilter/vf_normalize.c s->min[c].history_sum -= s->min[c].history[history_idx]; s 315 libavfilter/vf_normalize.c s->max[c].history_sum -= s->max[c].history[history_idx]; s 317 libavfilter/vf_normalize.c num_history_vals = s->history_len; s 322 libavfilter/vf_normalize.c s->min[c].history_sum += (s->min[c].history[history_idx] = min[c].in); s 323 libavfilter/vf_normalize.c min[c].smoothed = s->min[c].history_sum / (float)num_history_vals; s 324 libavfilter/vf_normalize.c s->max[c].history_sum += (s->max[c].history[history_idx] = max[c].in); s 325 libavfilter/vf_normalize.c max[c].smoothed = s->max[c].history_sum / (float)num_history_vals; s 342 libavfilter/vf_normalize.c min[c].smoothed = (min[c].smoothed * s->independence) s 343 libavfilter/vf_normalize.c + (rgb_min_smoothed * (1.0f - s->independence)); s 344 libavfilter/vf_normalize.c max[c].smoothed = (max[c].smoothed * s->independence) s 345 libavfilter/vf_normalize.c + (rgb_max_smoothed * (1.0f - s->independence)); s 350 libavfilter/vf_normalize.c min[c].out = (s->sblackpt[c] * s->strength) s 351 libavfilter/vf_normalize.c + (min[c].in * (1.0f - s->strength)); s 352 libavfilter/vf_normalize.c max[c].out = (s->swhitept[c] * s->strength) s 353 libavfilter/vf_normalize.c + (max[c].in * (1.0f - s->strength)); s 363 libavfilter/vf_normalize.c s->lut[c][in_val] = min[c].out; s 372 libavfilter/vf_normalize.c out_val = av_clip_uintp2_c(out_val, s->depth); s 373 libavfilter/vf_normalize.c s->lut[c][in_val] = out_val; s 379 libavfilter/vf_normalize.c s->process(s, in, out); s 381 libavfilter/vf_normalize.c s->frame_num++; s 425 libavfilter/vf_normalize.c NormalizeContext *s = inlink->dst->priv; s 430 libavfilter/vf_normalize.c ff_fill_rgba_map(s->co, inlink->format); s 431 libavfilter/vf_normalize.c s->depth = desc->comp[0].depth; s 432 libavfilter/vf_normalize.c scale = 1 << (s->depth - 8); s 433 libavfilter/vf_normalize.c s->num_components = desc->nb_components; s 434 libavfilter/vf_normalize.c s->step = av_get_padded_bits_per_pixel(desc) >> (3 + (s->depth > 8)); s 440 libavfilter/vf_normalize.c s->history_len = s->smoothing + 1; s 444 libavfilter/vf_normalize.c s->history_mem = av_malloc(s->history_len * 6 * sizeof(*s->history_mem)); s 445 libavfilter/vf_normalize.c if (s->history_mem == NULL) s 449 libavfilter/vf_normalize.c s->min[c].history = s->history_mem + (c*2) * s->history_len; s 450 libavfilter/vf_normalize.c s->max[c].history = s->history_mem + (c*2+1) * s->history_len; s 451 libavfilter/vf_normalize.c s->sblackpt[c] = scale * s->blackpt[c] + (s->blackpt[c] >> (s->depth - 8)); s 452 libavfilter/vf_normalize.c s->swhitept[c] = scale * s->whitept[c] + (s->whitept[c] >> (s->depth - 8)); s 457 libavfilter/vf_normalize.c if (s->depth <= 8) { s 458 libavfilter/vf_normalize.c s->find_min_max = planar ? find_min_max_planar : find_min_max; s 459 libavfilter/vf_normalize.c s->process = planar? process_planar : process; s 461 libavfilter/vf_normalize.c s->find_min_max = planar ? find_min_max_planar_16 : find_min_max_16; s 462 libavfilter/vf_normalize.c s->process = planar? process_planar_16 : process_16; s 471 libavfilter/vf_normalize.c NormalizeContext *s = ctx->priv; s 473 libavfilter/vf_normalize.c av_freep(&s->history_mem); s 483 libavfilter/vf_normalize.c NormalizeContext *s = ctx->priv; s 502 libavfilter/vf_normalize.c normalize(s, in, out); s 53 libavfilter/vf_ocr.c OCRContext *s = ctx->priv; s 55 libavfilter/vf_ocr.c s->tess = TessBaseAPICreate(); s 56 libavfilter/vf_ocr.c if (TessBaseAPIInit3(s->tess, s->datapath, s->language) == -1) { s 61 libavfilter/vf_ocr.c if (!TessBaseAPISetVariable(s->tess, "tessedit_char_whitelist", s->whitelist)) { s 66 libavfilter/vf_ocr.c if (!TessBaseAPISetVariable(s->tess, "tessedit_char_blacklist", s->blacklist)) { s 101 libavfilter/vf_ocr.c OCRContext *s = ctx->priv; s 105 libavfilter/vf_ocr.c result = TessBaseAPIRect(s->tess, in->data[0], 1, s 107 libavfilter/vf_ocr.c confs = TessBaseAPIAllWordConfidences(s->tess); s 124 libavfilter/vf_ocr.c OCRContext *s = ctx->priv; s 126 libavfilter/vf_ocr.c TessBaseAPIEnd(s->tess); s 127 libavfilter/vf_ocr.c TessBaseAPIDelete(s->tess); s 83 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 85 libavfilter/vf_overlay.c ff_framesync_uninit(&s->fs); s 86 libavfilter/vf_overlay.c av_expr_free(s->x_pexpr); s->x_pexpr = NULL; s 87 libavfilter/vf_overlay.c av_expr_free(s->y_pexpr); s->y_pexpr = NULL; s 99 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 101 libavfilter/vf_overlay.c s->var_values[VAR_X] = av_expr_eval(s->x_pexpr, s->var_values, NULL); s 102 libavfilter/vf_overlay.c s->var_values[VAR_Y] = av_expr_eval(s->y_pexpr, s->var_values, NULL); s 104 libavfilter/vf_overlay.c s->var_values[VAR_X] = av_expr_eval(s->x_pexpr, s->var_values, NULL); s 105 libavfilter/vf_overlay.c s->x = normalize_xy(s->var_values[VAR_X], s->hsub); s 106 libavfilter/vf_overlay.c s->y = normalize_xy(s->var_values[VAR_Y], s->vsub); s 133 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 137 libavfilter/vf_overlay.c ret = set_expr(&s->x_pexpr, args, cmd, ctx); s 139 libavfilter/vf_overlay.c ret = set_expr(&s->y_pexpr, args, cmd, ctx); s 146 libavfilter/vf_overlay.c if (s->eval_mode == EVAL_MODE_INIT) { s 149 libavfilter/vf_overlay.c s->var_values[VAR_X], s->x, s 150 libavfilter/vf_overlay.c s->var_values[VAR_Y], s->y); s 163 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 212 libavfilter/vf_overlay.c switch (s->format) { s 258 libavfilter/vf_overlay.c if (s->format == OVERLAY_FORMAT_AUTO) { s 283 libavfilter/vf_overlay.c OverlayContext *s = inlink->dst->priv; s 287 libavfilter/vf_overlay.c av_image_fill_max_pixsteps(s->overlay_pix_step, NULL, pix_desc); s 291 libavfilter/vf_overlay.c s->var_values[VAR_MAIN_W ] = s->var_values[VAR_MW] = ctx->inputs[MAIN ]->w; s 292 libavfilter/vf_overlay.c s->var_values[VAR_MAIN_H ] = s->var_values[VAR_MH] = ctx->inputs[MAIN ]->h; s 293 libavfilter/vf_overlay.c s->var_values[VAR_OVERLAY_W] = s->var_values[VAR_OW] = ctx->inputs[OVERLAY]->w; s 294 libavfilter/vf_overlay.c s->var_values[VAR_OVERLAY_H] = s->var_values[VAR_OH] = ctx->inputs[OVERLAY]->h; s 295 libavfilter/vf_overlay.c s->var_values[VAR_HSUB] = 1<<pix_desc->log2_chroma_w; s 296 libavfilter/vf_overlay.c s->var_values[VAR_VSUB] = 1<<pix_desc->log2_chroma_h; s 297 libavfilter/vf_overlay.c s->var_values[VAR_X] = NAN; s 298 libavfilter/vf_overlay.c s->var_values[VAR_Y] = NAN; s 299 libavfilter/vf_overlay.c s->var_values[VAR_N] = 0; s 300 libavfilter/vf_overlay.c s->var_values[VAR_T] = NAN; s 301 libavfilter/vf_overlay.c s->var_values[VAR_POS] = NAN; s 303 libavfilter/vf_overlay.c if ((ret = set_expr(&s->x_pexpr, s->x_expr, "x", ctx)) < 0 || s 304 libavfilter/vf_overlay.c (ret = set_expr(&s->y_pexpr, s->y_expr, "y", ctx)) < 0) s 307 libavfilter/vf_overlay.c s->overlay_is_packed_rgb = s 308 libavfilter/vf_overlay.c ff_fill_rgba_map(s->overlay_rgba_map, inlink->format) >= 0; s 309 libavfilter/vf_overlay.c s->overlay_has_alpha = ff_fmt_is_in(inlink->format, alpha_pix_fmts); s 311 libavfilter/vf_overlay.c if (s->eval_mode == EVAL_MODE_INIT) { s 314 libavfilter/vf_overlay.c s->var_values[VAR_X], s->x, s 315 libavfilter/vf_overlay.c s->var_values[VAR_Y], s->y); s 330 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 333 libavfilter/vf_overlay.c if ((ret = ff_framesync_init_dualinput(&s->fs, ctx)) < 0) s 340 libavfilter/vf_overlay.c return ff_framesync_configure(&s->fs); s 362 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 369 libavfilter/vf_overlay.c const int dr = s->main_rgba_map[R]; s 370 libavfilter/vf_overlay.c const int dg = s->main_rgba_map[G]; s 371 libavfilter/vf_overlay.c const int db = s->main_rgba_map[B]; s 372 libavfilter/vf_overlay.c const int da = s->main_rgba_map[A]; s 373 libavfilter/vf_overlay.c const int dstep = s->main_pix_step[0]; s 374 libavfilter/vf_overlay.c const int sr = s->overlay_rgba_map[R]; s 375 libavfilter/vf_overlay.c const int sg = s->overlay_rgba_map[G]; s 376 libavfilter/vf_overlay.c const int sb = s->overlay_rgba_map[B]; s 377 libavfilter/vf_overlay.c const int sa = s->overlay_rgba_map[A]; s 378 libavfilter/vf_overlay.c const int sstep = s->overlay_pix_step[0]; s 466 libavfilter/vf_overlay.c uint8_t *s, *sp, *d, *dp, *dap, *a, *da, *ap; s 486 libavfilter/vf_overlay.c s = sp + k; s 492 libavfilter/vf_overlay.c int c = octx->blend_row[i](d, da, s, a, kmax - k, src->linesize[3]); s 494 libavfilter/vf_overlay.c s += c; s 534 libavfilter/vf_overlay.c *d = FAST_DIV255(*d * (255 - alpha) + *s * alpha); s 537 libavfilter/vf_overlay.c *d = av_clip(FAST_DIV255((*d - 128) * (255 - alpha)) + *s - 128, -128, 128) + 128; s 539 libavfilter/vf_overlay.c *d = FFMIN(FAST_DIV255(*d * (255 - alpha)) + *s, 255); s 541 libavfilter/vf_overlay.c s++; s 560 libavfilter/vf_overlay.c uint8_t *s, *sa, *d, *da; s 574 libavfilter/vf_overlay.c s = sa + j; s 578 libavfilter/vf_overlay.c alpha = *s; s 587 libavfilter/vf_overlay.c *d = *s; s 591 libavfilter/vf_overlay.c *d += FAST_DIV255((255 - *d) * *s); s 594 libavfilter/vf_overlay.c s += 1; s 609 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 616 libavfilter/vf_overlay.c s->main_desc->comp[0].plane, s->main_desc->comp[0].offset, s->main_desc->comp[0].step, is_straight, 1, s 619 libavfilter/vf_overlay.c s->main_desc->comp[1].plane, s->main_desc->comp[1].offset, s->main_desc->comp[1].step, is_straight, 1, s 622 libavfilter/vf_overlay.c s->main_desc->comp[2].plane, s->main_desc->comp[2].offset, s->main_desc->comp[2].step, is_straight, 1, s 638 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 645 libavfilter/vf_overlay.c s->main_desc->comp[1].plane, s->main_desc->comp[1].offset, s->main_desc->comp[1].step, is_straight, 0, s 648 libavfilter/vf_overlay.c s->main_desc->comp[2].plane, s->main_desc->comp[2].offset, s->main_desc->comp[2].step, is_straight, 0, s 651 libavfilter/vf_overlay.c s->main_desc->comp[0].plane, s->main_desc->comp[0].offset, s->main_desc->comp[0].step, is_straight, 0, s 660 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 662 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 1, 1, 0, s->x, s->y, 1, jobnr, nb_jobs); s 668 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 670 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 1, 1, 1, s->x, s->y, 1, jobnr, nb_jobs); s 676 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 678 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 1, 0, 0, s->x, s->y, 1, jobnr, nb_jobs); s 684 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 686 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 1, 0, 1, s->x, s->y, 1, jobnr, nb_jobs); s 692 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 694 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 0, 0, 0, s->x, s->y, 1, jobnr, nb_jobs); s 700 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 702 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 0, 0, 1, s->x, s->y, 1, jobnr, nb_jobs); s 708 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 710 libavfilter/vf_overlay.c blend_slice_planar_rgb(ctx, td->dst, td->src, 0, 0, 0, s->x, s->y, 1, jobnr, nb_jobs); s 716 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 718 libavfilter/vf_overlay.c blend_slice_planar_rgb(ctx, td->dst, td->src, 0, 0, 1, s->x, s->y, 1, jobnr, nb_jobs); s 724 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 726 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 1, 1, 0, s->x, s->y, 0, jobnr, nb_jobs); s 732 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 734 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 1, 1, 1, s->x, s->y, 0, jobnr, nb_jobs); s 740 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 742 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 1, 0, 0, s->x, s->y, 0, jobnr, nb_jobs); s 748 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 750 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 1, 0, 1, s->x, s->y, 0, jobnr, nb_jobs); s 756 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 758 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 0, 0, 0, s->x, s->y, 0, jobnr, nb_jobs); s 764 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 766 libavfilter/vf_overlay.c blend_slice_yuv(ctx, td->dst, td->src, 0, 0, 1, s->x, s->y, 0, jobnr, nb_jobs); s 772 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 774 libavfilter/vf_overlay.c blend_slice_planar_rgb(ctx, td->dst, td->src, 0, 0, 0, s->x, s->y, 0, jobnr, nb_jobs); s 780 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 782 libavfilter/vf_overlay.c blend_slice_planar_rgb(ctx, td->dst, td->src, 0, 0, 1, s->x, s->y, 0, jobnr, nb_jobs); s 788 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 790 libavfilter/vf_overlay.c blend_slice_packed_rgb(ctx, td->dst, td->src, 0, s->x, s->y, 1, jobnr, nb_jobs); s 796 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 798 libavfilter/vf_overlay.c blend_slice_packed_rgb(ctx, td->dst, td->src, 1, s->x, s->y, 1, jobnr, nb_jobs); s 804 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 806 libavfilter/vf_overlay.c blend_slice_packed_rgb(ctx, td->dst, td->src, 0, s->x, s->y, 0, jobnr, nb_jobs); s 812 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 814 libavfilter/vf_overlay.c blend_slice_packed_rgb(ctx, td->dst, td->src, 1, s->x, s->y, 0, jobnr, nb_jobs); s 820 libavfilter/vf_overlay.c OverlayContext *s = inlink->dst->priv; s 823 libavfilter/vf_overlay.c av_image_fill_max_pixsteps(s->main_pix_step, NULL, pix_desc); s 825 libavfilter/vf_overlay.c s->hsub = pix_desc->log2_chroma_w; s 826 libavfilter/vf_overlay.c s->vsub = pix_desc->log2_chroma_h; s 828 libavfilter/vf_overlay.c s->main_desc = pix_desc; s 830 libavfilter/vf_overlay.c s->main_is_packed_rgb = s 831 libavfilter/vf_overlay.c ff_fill_rgba_map(s->main_rgba_map, inlink->format) >= 0; s 832 libavfilter/vf_overlay.c s->main_has_alpha = ff_fmt_is_in(inlink->format, alpha_pix_fmts); s 833 libavfilter/vf_overlay.c switch (s->format) { s 835 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_yuva420 : blend_slice_yuv420; s 838 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_yuva422 : blend_slice_yuv422; s 841 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_yuva444 : blend_slice_yuv444; s 844 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_rgba : blend_slice_rgb; s 847 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_gbrap : blend_slice_gbrp; s 852 libavfilter/vf_overlay.c s->blend_slice = blend_slice_yuva420; s 855 libavfilter/vf_overlay.c s->blend_slice = blend_slice_yuva422; s 858 libavfilter/vf_overlay.c s->blend_slice = blend_slice_yuva444; s 864 libavfilter/vf_overlay.c s->blend_slice = blend_slice_rgba; s 867 libavfilter/vf_overlay.c s->blend_slice = blend_slice_gbrap; s 876 libavfilter/vf_overlay.c if (!s->alpha_format) s 879 libavfilter/vf_overlay.c switch (s->format) { s 881 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_yuva420_pm : blend_slice_yuv420_pm; s 884 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_yuva422_pm : blend_slice_yuv422_pm; s 887 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_yuva444_pm : blend_slice_yuv444_pm; s 890 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_rgba_pm : blend_slice_rgb_pm; s 893 libavfilter/vf_overlay.c s->blend_slice = s->main_has_alpha ? blend_slice_gbrap_pm : blend_slice_gbrp_pm; s 898 libavfilter/vf_overlay.c s->blend_slice = blend_slice_yuva420_pm; s 901 libavfilter/vf_overlay.c s->blend_slice = blend_slice_yuva422_pm; s 904 libavfilter/vf_overlay.c s->blend_slice = blend_slice_yuva444_pm; s 910 libavfilter/vf_overlay.c s->blend_slice = blend_slice_rgba_pm; s 913 libavfilter/vf_overlay.c s->blend_slice = blend_slice_gbrap_pm; s 924 libavfilter/vf_overlay.c ff_overlay_init_x86(s, s->format, inlink->format, s 925 libavfilter/vf_overlay.c s->alpha_format, s->main_has_alpha); s 934 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 944 libavfilter/vf_overlay.c if (s->eval_mode == EVAL_MODE_FRAME) { s 947 libavfilter/vf_overlay.c s->var_values[VAR_N] = inlink->frame_count_out; s 948 libavfilter/vf_overlay.c s->var_values[VAR_T] = mainpic->pts == AV_NOPTS_VALUE ? s 950 libavfilter/vf_overlay.c s->var_values[VAR_POS] = pos == -1 ? NAN : pos; s 952 libavfilter/vf_overlay.c s->var_values[VAR_OVERLAY_W] = s->var_values[VAR_OW] = second->width; s 953 libavfilter/vf_overlay.c s->var_values[VAR_OVERLAY_H] = s->var_values[VAR_OH] = second->height; s 954 libavfilter/vf_overlay.c s->var_values[VAR_MAIN_W ] = s->var_values[VAR_MW] = mainpic->width; s 955 libavfilter/vf_overlay.c s->var_values[VAR_MAIN_H ] = s->var_values[VAR_MH] = mainpic->height; s 959 libavfilter/vf_overlay.c s->var_values[VAR_N], s->var_values[VAR_T], s->var_values[VAR_POS], s 960 libavfilter/vf_overlay.c s->var_values[VAR_X], s->x, s 961 libavfilter/vf_overlay.c s->var_values[VAR_Y], s->y); s 964 libavfilter/vf_overlay.c if (s->x < mainpic->width && s->x + second->width >= 0 && s 965 libavfilter/vf_overlay.c s->y < mainpic->height && s->y + second->height >= 0) { s 970 libavfilter/vf_overlay.c ctx->internal->execute(ctx, s->blend_slice, &td, NULL, FFMIN(FFMAX(1, FFMIN3(s->y + second->height, FFMIN(second->height, mainpic->height), mainpic->height - s->y)), s 978 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 980 libavfilter/vf_overlay.c s->fs.on_event = do_blend; s 986 libavfilter/vf_overlay.c OverlayContext *s = ctx->priv; s 987 libavfilter/vf_overlay.c return ff_framesync_activate(&s->fs); s 78 libavfilter/vf_overlay.h int (*blend_row[4])(uint8_t *d, uint8_t *da, uint8_t *s, uint8_t *a, int w, s 83 libavfilter/vf_overlay.h void ff_overlay_init_x86(OverlayContext *s, int format, int pix_format, s 113 libavfilter/vf_overlay_qsv.c #define PASS_EXPR(e, s) {\ s 114 libavfilter/vf_overlay_qsv.c ret = av_expr_parse(&e, s, var_names, NULL, NULL, NULL, NULL, 0, ctx); \ s 116 libavfilter/vf_overlay_qsv.c av_log(ctx, AV_LOG_ERROR, "Error when passing '%s'.\n", s);\ s 234 libavfilter/vf_overlay_qsv.c QSVOverlayContext *s = fs->opaque; s 241 libavfilter/vf_overlay_qsv.c ret = ff_qsvvpp_filter_frame(s->qsv, ctx->inputs[i], frame); s 251 libavfilter/vf_overlay_qsv.c QSVOverlayContext *s = ctx->priv; s 254 libavfilter/vf_overlay_qsv.c s->fs.on_event = process_frame; s 255 libavfilter/vf_overlay_qsv.c s->fs.opaque = s; s 256 libavfilter/vf_overlay_qsv.c ret = ff_framesync_init(&s->fs, ctx, ctx->nb_inputs); s 261 libavfilter/vf_overlay_qsv.c FFFrameSyncIn *in = &s->fs.in[i]; s 268 libavfilter/vf_overlay_qsv.c return ff_framesync_configure(&s->fs); s 314 libavfilter/vf_overlay_qsv.c QSVOverlayContext *s = outlink->src->priv; s 315 libavfilter/vf_overlay_qsv.c frame->pts = av_rescale_q(s->fs.pts, s 316 libavfilter/vf_overlay_qsv.c s->fs.time_base, outlink->time_base); s 360 libavfilter/vf_overlay_qsv.c QSVOverlayContext *s = ctx->priv; s 361 libavfilter/vf_overlay_qsv.c return ff_framesync_activate(&s->fs); s 82 libavfilter/vf_overlay_vulkan.c OverlayVulkanContext *s = ctx->priv; s 87 libavfilter/vf_overlay_vulkan.c s->pl = ff_vk_create_pipeline(ctx); s 88 libavfilter/vf_overlay_vulkan.c if (!s->pl) s 91 libavfilter/vf_overlay_vulkan.c s->vkctx.queue_family_idx = s->vkctx.hwctx->queue_family_comp_index; s 92 libavfilter/vf_overlay_vulkan.c s->vkctx.queue_count = GET_QUEUE_COUNT(s->vkctx.hwctx, 0, 1, 0); s 93 libavfilter/vf_overlay_vulkan.c s->vkctx.cur_queue_idx = av_get_random_seed() % s->vkctx.queue_count; s 96 libavfilter/vf_overlay_vulkan.c const int planes = av_pix_fmt_count_planes(s->vkctx.output_format); s 97 libavfilter/vf_overlay_vulkan.c const int ialpha = av_pix_fmt_desc_get(s->vkctx.input_format)->flags & AV_PIX_FMT_FLAG_ALPHA; s 106 libavfilter/vf_overlay_vulkan.c .updater = s->main_images, s 115 libavfilter/vf_overlay_vulkan.c .updater = s->overlay_images, s 121 libavfilter/vf_overlay_vulkan.c .mem_layout = ff_vk_shader_rep_fmt(s->vkctx.output_format), s 126 libavfilter/vf_overlay_vulkan.c .updater = s->output_images, s 136 libavfilter/vf_overlay_vulkan.c .updater = &s->params_desc, s 140 libavfilter/vf_overlay_vulkan.c SPIRVShader *shd = ff_vk_init_shader(ctx, s->pl, "overlay_compute", s 147 libavfilter/vf_overlay_vulkan.c RET(ff_vk_add_descriptor_set(ctx, s->pl, shd, desc_i, 3, 0)); /* set 0 */ s 148 libavfilter/vf_overlay_vulkan.c RET(ff_vk_add_descriptor_set(ctx, s->pl, shd, &desc_b, 1, 0)); /* set 1 */ s 167 libavfilter/vf_overlay_vulkan.c RET(ff_vk_init_pipeline_layout(ctx, s->pl)); s 168 libavfilter/vf_overlay_vulkan.c RET(ff_vk_init_compute_pipeline(ctx, s->pl)); s 181 libavfilter/vf_overlay_vulkan.c err = ff_vk_create_buf(ctx, &s->params_buf, s 188 libavfilter/vf_overlay_vulkan.c err = ff_vk_map_buffers(ctx, &s->params_buf, (uint8_t **)&par, 1, 0); s 192 libavfilter/vf_overlay_vulkan.c desc = av_pix_fmt_desc_get(s->vkctx.output_format); s 194 libavfilter/vf_overlay_vulkan.c par->o_offset[0] = s->overlay_x; s 195 libavfilter/vf_overlay_vulkan.c par->o_offset[1] = s->overlay_y; s 201 libavfilter/vf_overlay_vulkan.c par->o_size[0] = s->overlay_w; s 202 libavfilter/vf_overlay_vulkan.c par->o_size[1] = s->overlay_h; s 208 libavfilter/vf_overlay_vulkan.c err = ff_vk_unmap_buffers(ctx, &s->params_buf, 1, 1); s 212 libavfilter/vf_overlay_vulkan.c s->params_desc.buffer = s->params_buf.buf; s 213 libavfilter/vf_overlay_vulkan.c s->params_desc.range = VK_WHOLE_SIZE; s 215 libavfilter/vf_overlay_vulkan.c ff_vk_update_descriptor_set(ctx, s->pl, 1); s 219 libavfilter/vf_overlay_vulkan.c RET(ff_vk_create_exec_ctx(ctx, &s->exec)); s 221 libavfilter/vf_overlay_vulkan.c s->initialized = 1; s 234 libavfilter/vf_overlay_vulkan.c OverlayVulkanContext *s = avctx->priv; s 235 libavfilter/vf_overlay_vulkan.c int planes = av_pix_fmt_count_planes(s->vkctx.output_format); s 245 libavfilter/vf_overlay_vulkan.c ff_vk_start_exec_recording(avctx, s->exec); s 246 libavfilter/vf_overlay_vulkan.c cmd_buf = ff_vk_get_exec_buf(avctx, s->exec); s 249 libavfilter/vf_overlay_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->main_images[i].imageView, s 254 libavfilter/vf_overlay_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->overlay_images[i].imageView, s 259 libavfilter/vf_overlay_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->output_images[i].imageView, s 261 libavfilter/vf_overlay_vulkan.c av_vkfmt_from_pixfmt(s->vkctx.output_format)[i], s 264 libavfilter/vf_overlay_vulkan.c s->main_images[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; s 265 libavfilter/vf_overlay_vulkan.c s->overlay_images[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; s 266 libavfilter/vf_overlay_vulkan.c s->output_images[i].imageLayout = VK_IMAGE_LAYOUT_GENERAL; s 269 libavfilter/vf_overlay_vulkan.c ff_vk_update_descriptor_set(avctx, s->pl, 0); s 278 libavfilter/vf_overlay_vulkan.c .newLayout = s->main_images[i].imageLayout, s 291 libavfilter/vf_overlay_vulkan.c .newLayout = s->overlay_images[i].imageLayout, s 304 libavfilter/vf_overlay_vulkan.c .newLayout = s->output_images[i].imageLayout, s 328 libavfilter/vf_overlay_vulkan.c ff_vk_bind_pipeline_exec(avctx, s->exec, s->pl); s 331 libavfilter/vf_overlay_vulkan.c FFALIGN(s->vkctx.output_width, CGROUPS[0])/CGROUPS[0], s 332 libavfilter/vf_overlay_vulkan.c FFALIGN(s->vkctx.output_height, CGROUPS[1])/CGROUPS[1], 1); s 334 libavfilter/vf_overlay_vulkan.c ff_vk_add_exec_dep(avctx, s->exec, main_f, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); s 335 libavfilter/vf_overlay_vulkan.c ff_vk_add_exec_dep(avctx, s->exec, overlay_f, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); s 336 libavfilter/vf_overlay_vulkan.c ff_vk_add_exec_dep(avctx, s->exec, out_f, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); s 338 libavfilter/vf_overlay_vulkan.c err = ff_vk_submit_exec_queue(avctx, s->exec); s 345 libavfilter/vf_overlay_vulkan.c ff_vk_discard_exec_deps(avctx, s->exec); s 353 libavfilter/vf_overlay_vulkan.c OverlayVulkanContext *s = ctx->priv; s 367 libavfilter/vf_overlay_vulkan.c if (!s->initialized) { s 375 libavfilter/vf_overlay_vulkan.c s->overlay_w = input_overlay->width; s 376 libavfilter/vf_overlay_vulkan.c s->overlay_h = input_overlay->height; s 404 libavfilter/vf_overlay_vulkan.c OverlayVulkanContext *s = avctx->priv; s 410 libavfilter/vf_overlay_vulkan.c err = ff_framesync_init_dualinput(&s->fs, avctx); s 414 libavfilter/vf_overlay_vulkan.c return ff_framesync_configure(&s->fs); s 419 libavfilter/vf_overlay_vulkan.c OverlayVulkanContext *s = avctx->priv; s 421 libavfilter/vf_overlay_vulkan.c return ff_framesync_activate(&s->fs); s 426 libavfilter/vf_overlay_vulkan.c OverlayVulkanContext *s = avctx->priv; s 428 libavfilter/vf_overlay_vulkan.c s->fs.on_event = &overlay_vulkan_blend; s 435 libavfilter/vf_overlay_vulkan.c OverlayVulkanContext *s = avctx->priv; s 438 libavfilter/vf_overlay_vulkan.c ff_framesync_uninit(&s->fs); s 440 libavfilter/vf_overlay_vulkan.c ff_vk_free_buf(avctx, &s->params_buf); s 442 libavfilter/vf_overlay_vulkan.c s->initialized = 0; s 111 libavfilter/vf_owdenoise.c const double s = src[avpriv_mirror(x - i, w - 1) * linesize] s 114 libavfilter/vf_owdenoise.c sum_l += coeff[0][i] * s; s 115 libavfilter/vf_owdenoise.c sum_h += coeff[1][i] * s; s 182 libavfilter/vf_owdenoise.c static void filter(OWDenoiseContext *s, s 187 libavfilter/vf_owdenoise.c int x, y, i, j, depth = s->depth; s 192 libavfilter/vf_owdenoise.c if (s->pixel_depth <= 8) { s 195 libavfilter/vf_owdenoise.c s->plane[0][0][y*s->linesize + x] = src[y*src_linesize + x]; s 202 libavfilter/vf_owdenoise.c s->plane[0][0][y*s->linesize + x] = src16[y*src_linesize + x]; s 206 libavfilter/vf_owdenoise.c decompose2D2(s->plane[i + 1], s->plane[i][0], s->plane[0] + 1, s->linesize, 1<<i, width, height); s 212 libavfilter/vf_owdenoise.c double v = s->plane[i + 1][j][y*s->linesize + x]; s 216 libavfilter/vf_owdenoise.c s->plane[i + 1][j][x + y*s->linesize] = v; s 222 libavfilter/vf_owdenoise.c compose2D2(s->plane[i][0], s->plane[i + 1], s->plane[0] + 1, s->linesize, 1<<i, width, height); s 224 libavfilter/vf_owdenoise.c if (s->pixel_depth <= 8) { s 227 libavfilter/vf_owdenoise.c i = s->plane[0][0][y*s->linesize + x] + dither[x&7][y&7]*(1.0/64) + 1.0/128; // yes the rounding is insane but optimal :) s 238 libavfilter/vf_owdenoise.c i = s->plane[0][0][y*s->linesize + x]; s 248 libavfilter/vf_owdenoise.c OWDenoiseContext *s = ctx->priv; s 251 libavfilter/vf_owdenoise.c const int cw = AV_CEIL_RSHIFT(inlink->w, s->hsub); s 252 libavfilter/vf_owdenoise.c const int ch = AV_CEIL_RSHIFT(inlink->h, s->vsub); s 257 libavfilter/vf_owdenoise.c if (s->luma_strength > 0) s 258 libavfilter/vf_owdenoise.c filter(s, out->data[0], out->linesize[0], in->data[0], in->linesize[0], inlink->w, inlink->h, s->luma_strength); s 259 libavfilter/vf_owdenoise.c if (s->chroma_strength > 0) { s 260 libavfilter/vf_owdenoise.c filter(s, out->data[1], out->linesize[1], in->data[1], in->linesize[1], cw, ch, s->chroma_strength); s 261 libavfilter/vf_owdenoise.c filter(s, out->data[2], out->linesize[2], in->data[2], in->linesize[2], cw, ch, s->chroma_strength); s 271 libavfilter/vf_owdenoise.c if (s->luma_strength > 0) { s 272 libavfilter/vf_owdenoise.c filter(s, out->data[0], out->linesize[0], in->data[0], in->linesize[0], inlink->w, inlink->h, s->luma_strength); s 276 libavfilter/vf_owdenoise.c if (s->chroma_strength > 0) { s 277 libavfilter/vf_owdenoise.c filter(s, out->data[1], out->linesize[1], in->data[1], in->linesize[1], cw, ch, s->chroma_strength); s 278 libavfilter/vf_owdenoise.c filter(s, out->data[2], out->linesize[2], in->data[2], in->linesize[2], cw, ch, s->chroma_strength); s 320 libavfilter/vf_owdenoise.c OWDenoiseContext *s = inlink->dst->priv; s 324 libavfilter/vf_owdenoise.c s->hsub = desc->log2_chroma_w; s 325 libavfilter/vf_owdenoise.c s->vsub = desc->log2_chroma_h; s 326 libavfilter/vf_owdenoise.c s->pixel_depth = desc->comp[0].depth; s 328 libavfilter/vf_owdenoise.c s->linesize = FFALIGN(inlink->w, 16); s 330 libavfilter/vf_owdenoise.c for (i = 0; i <= s->depth; i++) { s 331 libavfilter/vf_owdenoise.c s->plane[i][j] = av_malloc_array(s->linesize, h * sizeof(s->plane[0][0][0])); s 332 libavfilter/vf_owdenoise.c if (!s->plane[i][j]) s 342 libavfilter/vf_owdenoise.c OWDenoiseContext *s = ctx->priv; s 345 libavfilter/vf_owdenoise.c for (i = 0; i <= s->depth; i++) s 346 libavfilter/vf_owdenoise.c av_freep(&s->plane[i][j]); s 108 libavfilter/vf_pad.c PadContext *s = ctx->priv; s 109 libavfilter/vf_pad.c AVRational adjusted_aspect = s->aspect; s 114 libavfilter/vf_pad.c ff_draw_init(&s->draw, inlink->format, 0); s 115 libavfilter/vf_pad.c ff_draw_color(&s->draw, &s->color, s->rgba_color); s 125 libavfilter/vf_pad.c var_values[VAR_HSUB] = 1 << s->draw.hsub_max; s 126 libavfilter/vf_pad.c var_values[VAR_VSUB] = 1 << s->draw.vsub_max; s 129 libavfilter/vf_pad.c av_expr_parse_and_eval(&res, (expr = s->w_expr), s 132 libavfilter/vf_pad.c s->w = var_values[VAR_OUT_W] = var_values[VAR_OW] = res; s 133 libavfilter/vf_pad.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->h_expr), s 137 libavfilter/vf_pad.c s->h = var_values[VAR_OUT_H] = var_values[VAR_OH] = res; s 138 libavfilter/vf_pad.c if (!s->h) s 139 libavfilter/vf_pad.c var_values[VAR_OUT_H] = var_values[VAR_OH] = s->h = inlink->h; s 142 libavfilter/vf_pad.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->w_expr), s 146 libavfilter/vf_pad.c s->w = var_values[VAR_OUT_W] = var_values[VAR_OW] = res; s 147 libavfilter/vf_pad.c if (!s->w) s 148 libavfilter/vf_pad.c var_values[VAR_OUT_W] = var_values[VAR_OW] = s->w = inlink->w; s 152 libavfilter/vf_pad.c if (s->h < av_rescale(s->w, adjusted_aspect.den, adjusted_aspect.num)) { s 153 libavfilter/vf_pad.c s->h = var_values[VAR_OUT_H] = var_values[VAR_OH] = av_rescale(s->w, adjusted_aspect.den, adjusted_aspect.num); s 155 libavfilter/vf_pad.c s->w = var_values[VAR_OUT_W] = var_values[VAR_OW] = av_rescale(s->h, adjusted_aspect.num, adjusted_aspect.den); s 160 libavfilter/vf_pad.c av_expr_parse_and_eval(&res, (expr = s->x_expr), s 163 libavfilter/vf_pad.c s->x = var_values[VAR_X] = res; s 164 libavfilter/vf_pad.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->y_expr), s 168 libavfilter/vf_pad.c s->y = var_values[VAR_Y] = res; s 170 libavfilter/vf_pad.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->x_expr), s 174 libavfilter/vf_pad.c s->x = var_values[VAR_X] = res; s 176 libavfilter/vf_pad.c if (s->x < 0 || s->x + inlink->w > s->w) s 177 libavfilter/vf_pad.c s->x = var_values[VAR_X] = (s->w - inlink->w) / 2; s 178 libavfilter/vf_pad.c if (s->y < 0 || s->y + inlink->h > s->h) s 179 libavfilter/vf_pad.c s->y = var_values[VAR_Y] = (s->h - inlink->h) / 2; s 181 libavfilter/vf_pad.c s->w = ff_draw_round_to_sub(&s->draw, 0, -1, s->w); s 182 libavfilter/vf_pad.c s->h = ff_draw_round_to_sub(&s->draw, 1, -1, s->h); s 184 libavfilter/vf_pad.c if (s->w < inlink->w || s->h < inlink->h) { s 189 libavfilter/vf_pad.c s->x = ff_draw_round_to_sub(&s->draw, 0, -1, s->x); s 190 libavfilter/vf_pad.c s->y = ff_draw_round_to_sub(&s->draw, 1, -1, s->y); s 191 libavfilter/vf_pad.c s->in_w = ff_draw_round_to_sub(&s->draw, 0, -1, inlink->w); s 192 libavfilter/vf_pad.c s->in_h = ff_draw_round_to_sub(&s->draw, 1, -1, inlink->h); s 193 libavfilter/vf_pad.c s->inlink_w = inlink->w; s 194 libavfilter/vf_pad.c s->inlink_h = inlink->h; s 197 libavfilter/vf_pad.c inlink->w, inlink->h, s->w, s->h, s->x, s->y, s 198 libavfilter/vf_pad.c s->rgba_color[0], s->rgba_color[1], s->rgba_color[2], s->rgba_color[3]); s 200 libavfilter/vf_pad.c if (s->x < 0 || s->y < 0 || s 201 libavfilter/vf_pad.c s->w <= 0 || s->h <= 0 || s 202 libavfilter/vf_pad.c (unsigned)s->x + (unsigned)inlink->w > s->w || s 203 libavfilter/vf_pad.c (unsigned)s->y + (unsigned)inlink->h > s->h) { s 206 libavfilter/vf_pad.c s->x, s->y, s->x + inlink->w, s->y + inlink->h, s->w, s->h); s 221 libavfilter/vf_pad.c PadContext *s = outlink->src->priv; s 223 libavfilter/vf_pad.c outlink->w = s->w; s 224 libavfilter/vf_pad.c outlink->h = s->h; s 230 libavfilter/vf_pad.c PadContext *s = inlink->dst->priv; s 234 libavfilter/vf_pad.c if (s->inlink_w <= 0) s 238 libavfilter/vf_pad.c w + (s->w - s->in_w), s 239 libavfilter/vf_pad.c h + (s->h - s->in_h) + (s->x > 0)); s 248 libavfilter/vf_pad.c int hsub = s->draw.hsub[plane]; s 249 libavfilter/vf_pad.c int vsub = s->draw.vsub[plane]; s 250 libavfilter/vf_pad.c frame->data[plane] += (s->x >> hsub) * s->draw.pixelstep[plane] + s 251 libavfilter/vf_pad.c (s->y >> vsub) * frame->linesize[plane]; s 258 libavfilter/vf_pad.c static int buffer_needs_copy(PadContext *s, AVFrame *frame, AVBufferRef *buf) s 272 libavfilter/vf_pad.c int hsub = s->draw.hsub[planes[i]]; s 273 libavfilter/vf_pad.c int vsub = s->draw.vsub[planes[i]]; s 281 libavfilter/vf_pad.c ptrdiff_t req_start = (s->x >> hsub) * s->draw.pixelstep[planes[i]] + s 282 libavfilter/vf_pad.c (s->y >> vsub) * frame->linesize[planes[i]]; s 283 libavfilter/vf_pad.c ptrdiff_t req_end = ((s->w - s->x - frame->width) >> hsub) * s 284 libavfilter/vf_pad.c s->draw.pixelstep[planes[i]] + s 285 libavfilter/vf_pad.c ((s->h - s->y - frame->height) >> vsub) * frame->linesize[planes[i]]; s 287 libavfilter/vf_pad.c if (frame->linesize[planes[i]] < (s->w >> hsub) * s->draw.pixelstep[planes[i]]) s 294 libavfilter/vf_pad.c int vsub1 = s->draw.vsub[planes[j]]; s 310 libavfilter/vf_pad.c static int frame_needs_copy(PadContext *s, AVFrame *frame) s 318 libavfilter/vf_pad.c if (buffer_needs_copy(s, frame, frame->buf[i])) s 325 libavfilter/vf_pad.c PadContext *s = inlink->dst->priv; s 329 libavfilter/vf_pad.c if(s->eval_mode == EVAL_MODE_FRAME && ( s 330 libavfilter/vf_pad.c in->width != s->inlink_w s 331 libavfilter/vf_pad.c || in->height != s->inlink_h s 345 libavfilter/vf_pad.c s->inlink_w = -1; s 349 libavfilter/vf_pad.c s->inlink_w = -1; s 354 libavfilter/vf_pad.c needs_copy = frame_needs_copy(s, in); s 359 libavfilter/vf_pad.c FFMAX(inlink->w, s->w), s 360 libavfilter/vf_pad.c FFMAX(inlink->h, s->h)); s 372 libavfilter/vf_pad.c int hsub = s->draw.hsub[i]; s 373 libavfilter/vf_pad.c int vsub = s->draw.vsub[i]; s 374 libavfilter/vf_pad.c out->data[i] -= (s->x >> hsub) * s->draw.pixelstep[i] + s 375 libavfilter/vf_pad.c (s->y >> vsub) * out->linesize[i]; s 380 libavfilter/vf_pad.c if (s->y) { s 381 libavfilter/vf_pad.c ff_fill_rectangle(&s->draw, &s->color, s 383 libavfilter/vf_pad.c 0, 0, s->w, s->y); s 387 libavfilter/vf_pad.c if (s->h > s->y + s->in_h) { s 388 libavfilter/vf_pad.c ff_fill_rectangle(&s->draw, &s->color, s 390 libavfilter/vf_pad.c 0, s->y + s->in_h, s->w, s->h - s->y - s->in_h); s 394 libavfilter/vf_pad.c ff_fill_rectangle(&s->draw, &s->color, out->data, out->linesize, s 395 libavfilter/vf_pad.c 0, s->y, s->x, in->height); s 398 libavfilter/vf_pad.c ff_copy_rectangle2(&s->draw, s 400 libavfilter/vf_pad.c s->x, s->y, 0, 0, in->width, in->height); s 404 libavfilter/vf_pad.c ff_fill_rectangle(&s->draw, &s->color, out->data, out->linesize, s 405 libavfilter/vf_pad.c s->x + s->in_w, s->y, s->w - s->x - s->in_w, s 408 libavfilter/vf_pad.c out->width = s->w; s 409 libavfilter/vf_pad.c out->height = s->h; s 125 libavfilter/vf_pad_opencl.c ctx->pad_color_float.s[i] = (float)ctx->pad_color[i] / 255.0; s 128 libavfilter/vf_pad_opencl.c ctx->pad_pos.s[0] = ctx->x; s 129 libavfilter/vf_pad_opencl.c ctx->pad_pos.s[1] = ctx->y; s 175 libavfilter/vf_pad_opencl.c pad_color_float.s[0] = pad_ctx->pad_color_float.s[p]; s 176 libavfilter/vf_pad_opencl.c pad_color_float.s[1] = pad_ctx->pad_color_float.s[2]; s 180 libavfilter/vf_pad_opencl.c pad_pos.s[0] = pad_ctx->pad_pos.s[0] >> pad_ctx->hsub; s 181 libavfilter/vf_pad_opencl.c pad_pos.s[1] = pad_ctx->pad_pos.s[1] >> pad_ctx->vsub; s 183 libavfilter/vf_pad_opencl.c pad_pos.s[0] = pad_ctx->pad_pos.s[0]; s 184 libavfilter/vf_pad_opencl.c pad_pos.s[1] = pad_ctx->pad_pos.s[1]; s 149 libavfilter/vf_palettegen.c static int get_next_box_id_to_split(PaletteGenContext *s) s 154 libavfilter/vf_palettegen.c if (s->nb_boxes == s->max_colors - s->reserve_transparent) s 157 libavfilter/vf_palettegen.c for (box_id = 0; box_id < s->nb_boxes; box_id++) { s 158 libavfilter/vf_palettegen.c struct range_box *box = &s->boxes[box_id]; s 160 libavfilter/vf_palettegen.c if (s->boxes[box_id].len >= 2) { s 166 libavfilter/vf_palettegen.c const struct color_ref *ref = s->refs[box->start + i]; s 212 libavfilter/vf_palettegen.c static void split_box(PaletteGenContext *s, struct range_box *box, int n) s 214 libavfilter/vf_palettegen.c struct range_box *new_box = &s->boxes[s->nb_boxes++]; s 223 libavfilter/vf_palettegen.c box->color = get_avg_color(s->refs, box); s 224 libavfilter/vf_palettegen.c new_box->color = get_avg_color(s->refs, new_box); s 234 libavfilter/vf_palettegen.c const PaletteGenContext *s = ctx->priv; s 242 libavfilter/vf_palettegen.c if (box_id < s->nb_boxes) { s 243 libavfilter/vf_palettegen.c pal[x] = s->boxes[box_id++].color; s 254 libavfilter/vf_palettegen.c if (s->reserve_transparent) { s 255 libavfilter/vf_palettegen.c av_assert0(s->nb_boxes < 256); s 256 libavfilter/vf_palettegen.c pal[out->width - pal_linesize - 1] = AV_RB32(&s->transparency_color) >> 8; s 299 libavfilter/vf_palettegen.c PaletteGenContext *s = ctx->priv; s 306 libavfilter/vf_palettegen.c s->refs = load_color_refs(s->histogram, s->nb_refs); s 307 libavfilter/vf_palettegen.c if (!s->refs) { s 308 libavfilter/vf_palettegen.c av_log(ctx, AV_LOG_ERROR, "Unable to allocate references for %d different colors\n", s->nb_refs); s 319 libavfilter/vf_palettegen.c box = &s->boxes[box_id]; s 320 libavfilter/vf_palettegen.c box->len = s->nb_refs; s 322 libavfilter/vf_palettegen.c box->color = get_avg_color(s->refs, box); s 324 libavfilter/vf_palettegen.c s->nb_boxes = 1; s 335 libavfilter/vf_palettegen.c const struct color_ref *ref = s->refs[i]; s 360 libavfilter/vf_palettegen.c AV_QSORT(&s->refs[box->start], box->len, const struct color_ref *, cmpf); s 370 libavfilter/vf_palettegen.c box_weight += s->refs[i]->count; s 375 libavfilter/vf_palettegen.c split_box(s, box, i); s 377 libavfilter/vf_palettegen.c box_id = get_next_box_id_to_split(s); s 378 libavfilter/vf_palettegen.c box = box_id >= 0 ? &s->boxes[box_id] : NULL; s 381 libavfilter/vf_palettegen.c ratio = set_colorquant_ratio_meta(out, s->nb_boxes, s->nb_refs); s 383 libavfilter/vf_palettegen.c s->nb_boxes, s->reserve_transparent ? "(+1)" : "", s->nb_refs, ratio); s 385 libavfilter/vf_palettegen.c qsort(s->boxes, s->nb_boxes, sizeof(*s->boxes), cmp_color); s 482 libavfilter/vf_palettegen.c PaletteGenContext *s = ctx->priv; s 483 libavfilter/vf_palettegen.c int ret = s->prev_frame ? update_histogram_diff(s->histogram, s->prev_frame, in) s 484 libavfilter/vf_palettegen.c : update_histogram_frame(s->histogram, in); s 487 libavfilter/vf_palettegen.c s->nb_refs += ret; s 489 libavfilter/vf_palettegen.c if (s->stats_mode == STATS_MODE_DIFF_FRAMES) { s 490 libavfilter/vf_palettegen.c av_frame_free(&s->prev_frame); s 491 libavfilter/vf_palettegen.c s->prev_frame = in; s 492 libavfilter/vf_palettegen.c } else if (s->stats_mode == STATS_MODE_SINGLE_FRAMES) { s 501 libavfilter/vf_palettegen.c av_freep(&s->histogram[i].entries); s 502 libavfilter/vf_palettegen.c av_freep(&s->refs); s 503 libavfilter/vf_palettegen.c s->nb_refs = 0; s 504 libavfilter/vf_palettegen.c s->nb_boxes = 0; s 505 libavfilter/vf_palettegen.c memset(s->boxes, 0, sizeof(s->boxes)); s 506 libavfilter/vf_palettegen.c memset(s->histogram, 0, sizeof(s->histogram)); s 521 libavfilter/vf_palettegen.c PaletteGenContext *s = ctx->priv; s 525 libavfilter/vf_palettegen.c if (r == AVERROR_EOF && !s->palette_pushed && s->nb_refs && s->stats_mode != STATS_MODE_SINGLE_FRAMES) { s 527 libavfilter/vf_palettegen.c s->palette_pushed = 1; s 546 libavfilter/vf_palettegen.c PaletteGenContext *s = ctx->priv; s 549 libavfilter/vf_palettegen.c av_freep(&s->histogram[i].entries); s 550 libavfilter/vf_palettegen.c av_freep(&s->refs); s 551 libavfilter/vf_palettegen.c av_frame_free(&s->prev_frame); s 80 libavfilter/vf_paletteuse.c typedef int (*set_frame_func)(struct PaletteUseContext *s, AVFrame *out, AVFrame *in, s 222 libavfilter/vf_paletteuse.c const int s = kd->split; s 233 libavfilter/vf_paletteuse.c dx = target[s] - current[s]; s 341 libavfilter/vf_paletteuse.c static av_always_inline int color_get(PaletteUseContext *s, uint32_t color, s 351 libavfilter/vf_paletteuse.c struct cache_node *node = &s->cache[hash]; s 355 libavfilter/vf_paletteuse.c if (a < s->trans_thresh && s->transparency_index >= 0) { s 356 libavfilter/vf_paletteuse.c return s->transparency_index; s 370 libavfilter/vf_paletteuse.c e->pal_entry = COLORMAP_NEAREST(search_method, s->palette, s->map, argb_elts, s->trans_thresh); s 375 libavfilter/vf_paletteuse.c static av_always_inline int get_dst_color_err(PaletteUseContext *s, s 384 libavfilter/vf_paletteuse.c const int dstx = color_get(s, c, a, r, g, b, search_method); s 387 libavfilter/vf_paletteuse.c dstc = s->palette[dstx]; s 394 libavfilter/vf_paletteuse.c static av_always_inline int set_frame(PaletteUseContext *s, AVFrame *out, AVFrame *in, s 413 libavfilter/vf_paletteuse.c const int d = s->ordered_dither[(y & 7)<<3 | (x & 7)]; s 421 libavfilter/vf_paletteuse.c const int color = color_get(s, src[x], a8, r, g, b, search_method); s 429 libavfilter/vf_paletteuse.c const int color = get_dst_color_err(s, src[x], &er, &eg, &eb, search_method); s 441 libavfilter/vf_paletteuse.c const int color = get_dst_color_err(s, src[x], &er, &eg, &eb, search_method); s 455 libavfilter/vf_paletteuse.c const int color = get_dst_color_err(s, src[x], &er, &eg, &eb, search_method); s 474 libavfilter/vf_paletteuse.c const int color = get_dst_color_err(s, src[x], &er, &eg, &eb, search_method); s 489 libavfilter/vf_paletteuse.c const int color = color_get(s, src[x], a, r, g, b, search_method); s 732 libavfilter/vf_paletteuse.c static void load_colormap(PaletteUseContext *s) s 740 libavfilter/vf_paletteuse.c qsort(s->palette, AVPALETTE_COUNT, sizeof(*s->palette), cmp_pal_entry); s 742 libavfilter/vf_paletteuse.c if (s->transparency_index >= 0) { s 744 libavfilter/vf_paletteuse.c if ((s->palette[i]>>24 & 0xff) == 0) { s 745 libavfilter/vf_paletteuse.c s->transparency_index = i; // we are assuming at most one transparent color in palette s 752 libavfilter/vf_paletteuse.c const uint32_t c = s->palette[i]; s 758 libavfilter/vf_paletteuse.c if (c >> 24 < s->trans_thresh) { s 767 libavfilter/vf_paletteuse.c colormap_insert(s->map, color_used, &nb_used, s->palette, s->trans_thresh, &box); s 769 libavfilter/vf_paletteuse.c if (s->dot_filename) s 770 libavfilter/vf_paletteuse.c disp_tree(s->map, s->dot_filename); s 772 libavfilter/vf_paletteuse.c if (s->debug_accuracy) { s 773 libavfilter/vf_paletteuse.c if (!debug_accuracy(s->map, s->palette, s->trans_thresh, s->color_search_method)) s 778 libavfilter/vf_paletteuse.c static void debug_mean_error(PaletteUseContext *s, const AVFrame *in1, s 782 libavfilter/vf_paletteuse.c const uint32_t *palette = s->palette; s 796 libavfilter/vf_paletteuse.c mean_err += diff(argb1, argb2, s->trans_thresh); s 802 libavfilter/vf_paletteuse.c s->total_mean_err += mean_err; s 805 libavfilter/vf_paletteuse.c mean_err / div, s->total_mean_err / (div * frame_count)); s 901 libavfilter/vf_paletteuse.c PaletteUseContext *s = ctx->priv; s 911 libavfilter/vf_paletteuse.c set_processing_window(s->diff_mode, s->last_in, in, s 912 libavfilter/vf_paletteuse.c s->last_out, out, &x, &y, &w, &h); s 913 libavfilter/vf_paletteuse.c av_frame_unref(s->last_in); s 914 libavfilter/vf_paletteuse.c av_frame_unref(s->last_out); s 915 libavfilter/vf_paletteuse.c if ((ret = av_frame_ref(s->last_in, in)) < 0 || s 916 libavfilter/vf_paletteuse.c (ret = av_frame_ref(s->last_out, out)) < 0 || s 917 libavfilter/vf_paletteuse.c (ret = av_frame_make_writable(s->last_in)) < 0) { s 926 libavfilter/vf_paletteuse.c ret = s->set_frame(s, out, in, x, y, w, h); s 932 libavfilter/vf_paletteuse.c memcpy(out->data[1], s->palette, AVPALETTE_SIZE); s 933 libavfilter/vf_paletteuse.c if (s->calc_mean_err) s 934 libavfilter/vf_paletteuse.c debug_mean_error(s, in, out, inlink->frame_count_out); s 943 libavfilter/vf_paletteuse.c PaletteUseContext *s = ctx->priv; s 945 libavfilter/vf_paletteuse.c ret = ff_framesync_init_dualinput(&s->fs, ctx); s 948 libavfilter/vf_paletteuse.c s->fs.opt_repeatlast = 1; // only 1 frame in the palette s 949 libavfilter/vf_paletteuse.c s->fs.in[1].before = s->fs.in[1].after = EXT_INFINITY; s 950 libavfilter/vf_paletteuse.c s->fs.on_event = load_apply_palette; s 956 libavfilter/vf_paletteuse.c if ((ret = ff_framesync_configure(&s->fs)) < 0) s 976 libavfilter/vf_paletteuse.c static void load_palette(PaletteUseContext *s, const AVFrame *palette_frame) s 982 libavfilter/vf_paletteuse.c s->transparency_index = -1; s 984 libavfilter/vf_paletteuse.c if (s->new) { s 985 libavfilter/vf_paletteuse.c memset(s->palette, 0, sizeof(s->palette)); s 986 libavfilter/vf_paletteuse.c memset(s->map, 0, sizeof(s->map)); s 988 libavfilter/vf_paletteuse.c av_freep(&s->cache[i].entries); s 989 libavfilter/vf_paletteuse.c memset(s->cache, 0, sizeof(s->cache)); s 995 libavfilter/vf_paletteuse.c s->palette[i] = p[x]; s 996 libavfilter/vf_paletteuse.c if (p[x]>>24 < s->trans_thresh) { s 997 libavfilter/vf_paletteuse.c s->transparency_index = i; // we are assuming at most one transparent color in palette s 1004 libavfilter/vf_paletteuse.c load_colormap(s); s 1006 libavfilter/vf_paletteuse.c if (!s->new) s 1007 libavfilter/vf_paletteuse.c s->palette_loaded = 1; s 1014 libavfilter/vf_paletteuse.c PaletteUseContext *s = ctx->priv; s 1026 libavfilter/vf_paletteuse.c if (!s->palette_loaded) { s 1027 libavfilter/vf_paletteuse.c load_palette(s, second); s 1037 libavfilter/vf_paletteuse.c static int set_frame_##name(PaletteUseContext *s, AVFrame *out, AVFrame *in, \ s 1040 libavfilter/vf_paletteuse.c return set_frame(s, out, in, x_start, y_start, w, h, value, color_search); \ s 1080 libavfilter/vf_paletteuse.c PaletteUseContext *s = ctx->priv; s 1082 libavfilter/vf_paletteuse.c s->last_in = av_frame_alloc(); s 1083 libavfilter/vf_paletteuse.c s->last_out = av_frame_alloc(); s 1084 libavfilter/vf_paletteuse.c if (!s->last_in || !s->last_out) { s 1085 libavfilter/vf_paletteuse.c av_frame_free(&s->last_in); s 1086 libavfilter/vf_paletteuse.c av_frame_free(&s->last_out); s 1090 libavfilter/vf_paletteuse.c s->set_frame = set_frame_lut[s->color_search_method][s->dither]; s 1092 libavfilter/vf_paletteuse.c if (s->dither == DITHERING_BAYER) { s 1094 libavfilter/vf_paletteuse.c const int delta = 1 << (5 - s->bayer_scale); // to avoid too much luma s 1096 libavfilter/vf_paletteuse.c for (i = 0; i < FF_ARRAY_ELEMS(s->ordered_dither); i++) s 1097 libavfilter/vf_paletteuse.c s->ordered_dither[i] = (dither_value(i) >> s->bayer_scale) - delta; s 1105 libavfilter/vf_paletteuse.c PaletteUseContext *s = ctx->priv; s 1106 libavfilter/vf_paletteuse.c return ff_framesync_activate(&s->fs); s 1112 libavfilter/vf_paletteuse.c PaletteUseContext *s = ctx->priv; s 1114 libavfilter/vf_paletteuse.c ff_framesync_uninit(&s->fs); s 1116 libavfilter/vf_paletteuse.c av_freep(&s->cache[i].entries); s 1117 libavfilter/vf_paletteuse.c av_frame_free(&s->last_in); s 1118 libavfilter/vf_paletteuse.c av_frame_free(&s->last_out); s 133 libavfilter/vf_perspective.c PerspectiveContext *s = ctx->priv; s 135 libavfilter/vf_perspective.c double (*ref)[2] = s->ref; s 148 libavfilter/vf_perspective.c if (!s->expr_str[i][j]) s 150 libavfilter/vf_perspective.c ret = av_expr_parse_and_eval(&s->ref[i][j], s->expr_str[i][j], s 159 libavfilter/vf_perspective.c switch (s->sense) { s 220 libavfilter/vf_perspective.c s->pv[x + y * w][0] = u; s 221 libavfilter/vf_perspective.c s->pv[x + y * w][1] = v; s 231 libavfilter/vf_perspective.c PerspectiveContext *s = ctx->priv; s 236 libavfilter/vf_perspective.c s->hsub = desc->log2_chroma_w; s 237 libavfilter/vf_perspective.c s->vsub = desc->log2_chroma_h; s 238 libavfilter/vf_perspective.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 239 libavfilter/vf_perspective.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 242 libavfilter/vf_perspective.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 243 libavfilter/vf_perspective.c s->height[0] = s->height[3] = inlink->h; s 245 libavfilter/vf_perspective.c s->pv = av_realloc_f(s->pv, w * h, 2 * sizeof(*s->pv)); s 246 libavfilter/vf_perspective.c if (!s->pv) s 249 libavfilter/vf_perspective.c if (s->eval_mode == EVAL_MODE_INIT) { s 267 libavfilter/vf_perspective.c s->coeff[i][j] = lrint((1 << COEFF_BITS) * temp[j] / sum); s 285 libavfilter/vf_perspective.c PerspectiveContext *s = ctx->priv; s 297 libavfilter/vf_perspective.c const int linesize = s->linesize[0]; s 306 libavfilter/vf_perspective.c u = s->pv[sx + sy * linesize][0] >> hsub; s 307 libavfilter/vf_perspective.c v = s->pv[sx + sy * linesize][1] >> vsub; s 315 libavfilter/vf_perspective.c const int a = s->coeff[subU][0]; s 316 libavfilter/vf_perspective.c const int b = s->coeff[subU][1]; s 317 libavfilter/vf_perspective.c const int c = s->coeff[subU][2]; s 318 libavfilter/vf_perspective.c const int d = s->coeff[subU][3]; s 320 libavfilter/vf_perspective.c sum = s->coeff[subV][0] * (a * src[index - 1 - src_linesize] + b * src[index - 0 - src_linesize] + s 322 libavfilter/vf_perspective.c s->coeff[subV][1] * (a * src[index - 1 ] + b * src[index - 0 ] + s 324 libavfilter/vf_perspective.c s->coeff[subV][2] * (a * src[index - 1 + src_linesize] + b * src[index - 0 + src_linesize] + s 326 libavfilter/vf_perspective.c s->coeff[subV][3] * (a * src[index - 1 + 2 * src_linesize] + b * src[index - 0 + 2 * src_linesize] + s 348 libavfilter/vf_perspective.c sum += s->coeff[subU][dx] * s->coeff[subV][dy] * src[ ix + iy * src_linesize]; s 364 libavfilter/vf_perspective.c PerspectiveContext *s = ctx->priv; s 376 libavfilter/vf_perspective.c const int linesize = s->linesize[0]; s 385 libavfilter/vf_perspective.c u = s->pv[sx + sy * linesize][0] >> hsub; s 386 libavfilter/vf_perspective.c v = s->pv[sx + sy * linesize][1] >> vsub; s 438 libavfilter/vf_perspective.c PerspectiveContext *s = ctx->priv; s 440 libavfilter/vf_perspective.c switch (s->interpolation) { s 441 libavfilter/vf_perspective.c case LINEAR: s->perspective = resample_linear; break; s 442 libavfilter/vf_perspective.c case CUBIC: s->perspective = resample_cubic; break; s 452 libavfilter/vf_perspective.c PerspectiveContext *s = ctx->priv; s 464 libavfilter/vf_perspective.c if (s->eval_mode == EVAL_MODE_FRAME) { s 471 libavfilter/vf_perspective.c for (plane = 0; plane < s->nb_planes; plane++) { s 472 libavfilter/vf_perspective.c int hsub = plane == 1 || plane == 2 ? s->hsub : 0; s 473 libavfilter/vf_perspective.c int vsub = plane == 1 || plane == 2 ? s->vsub : 0; s 478 libavfilter/vf_perspective.c .w = s->linesize[plane], s 479 libavfilter/vf_perspective.c .h = s->height[plane], s 482 libavfilter/vf_perspective.c ctx->internal->execute(ctx, s->perspective, &td, NULL, FFMIN(td.h, ff_filter_get_nb_threads(ctx))); s 491 libavfilter/vf_perspective.c PerspectiveContext *s = ctx->priv; s 493 libavfilter/vf_perspective.c av_freep(&s->pv); s 136 libavfilter/vf_phase.c PhaseContext *s = inlink->dst->priv; s 141 libavfilter/vf_phase.c case 8: s->analyze_plane = analyze_plane_8; break; s 142 libavfilter/vf_phase.c case 9: s->analyze_plane = analyze_plane_9; break; s 143 libavfilter/vf_phase.c case 10: s->analyze_plane = analyze_plane_10; break; s 144 libavfilter/vf_phase.c case 12: s->analyze_plane = analyze_plane_12; break; s 145 libavfilter/vf_phase.c case 14: s->analyze_plane = analyze_plane_14; break; s 146 libavfilter/vf_phase.c case 16: s->analyze_plane = analyze_plane_16; break; s 150 libavfilter/vf_phase.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 153 libavfilter/vf_phase.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 154 libavfilter/vf_phase.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 156 libavfilter/vf_phase.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 165 libavfilter/vf_phase.c PhaseContext *s = ctx->priv; s 171 libavfilter/vf_phase.c av_frame_free(&s->frame); s 175 libavfilter/vf_phase.c s->frame = av_frame_clone(in); s 186 libavfilter/vf_phase.c if (!s->frame) { s 187 libavfilter/vf_phase.c s->frame = in; s 190 libavfilter/vf_phase.c mode = s->analyze_plane(ctx, s->mode, s->frame, in); s 193 libavfilter/vf_phase.c for (plane = 0; plane < s->nb_planes; plane++) { s 194 libavfilter/vf_phase.c const uint8_t *buf = s->frame->data[plane]; s 198 libavfilter/vf_phase.c for (y = 0, top = 1; y < s->planeheight[plane]; y++, top ^= 1) { s 199 libavfilter/vf_phase.c memcpy(to, mode == (top ? BOTTOM_FIRST : TOP_FIRST) ? buf : from, s->linesize[plane]); s 201 libavfilter/vf_phase.c buf += s->frame->linesize[plane]; s 207 libavfilter/vf_phase.c if (in != s->frame) s 208 libavfilter/vf_phase.c av_frame_free(&s->frame); s 209 libavfilter/vf_phase.c s->frame = in; s 215 libavfilter/vf_phase.c PhaseContext *s = ctx->priv; s 217 libavfilter/vf_phase.c av_frame_free(&s->frame); s 162 libavfilter/vf_photosensitivity.c uint8_t *t, *s; s 173 libavfilter/vf_photosensitivity.c s = td->source->data[0] + y * td->source->linesize[0]; s 175 libavfilter/vf_photosensitivity.c *t = (*t * t_mul + *s * s_mul) >> 8; s 176 libavfilter/vf_photosensitivity.c t++; s++; s 211 libavfilter/vf_photosensitivity.c PhotosensitivityContext *s = ctx->priv; s 213 libavfilter/vf_photosensitivity.c s->badness_threshold = (int)(GRID_SIZE * GRID_SIZE * 4 * 256 * s->nb_frames * s->threshold_multiplier / 128); s 229 libavfilter/vf_photosensitivity.c PhotosensitivityContext *s = ctx->priv; s 233 libavfilter/vf_photosensitivity.c for (i = 1; i < s->nb_frames; i++) s 234 libavfilter/vf_photosensitivity.c current_badness += i * s->history[(s->history_pos + i) % s->nb_frames]; s 235 libavfilter/vf_photosensitivity.c current_badness /= s->nb_frames; s 237 libavfilter/vf_photosensitivity.c convert_frame(ctx, in, &ef, s->skip); s 238 libavfilter/vf_photosensitivity.c this_badness = get_badness(&ef, &s->last_frame_e); s 240 libavfilter/vf_photosensitivity.c av_log(s, AV_LOG_VERBOSE, "badness: %6d -> %6d / %6d (%3d%% - %s)\n", s 241 libavfilter/vf_photosensitivity.c current_badness, new_badness, s->badness_threshold, s 242 libavfilter/vf_photosensitivity.c 100 * new_badness / s->badness_threshold, new_badness < s->badness_threshold ? "OK" : "EXCEEDED"); s 245 libavfilter/vf_photosensitivity.c if (new_badness < s->badness_threshold || !s->last_frame_av || s->bypass) { s 247 libavfilter/vf_photosensitivity.c av_frame_free(&s->last_frame_av); s 248 libavfilter/vf_photosensitivity.c s->last_frame_av = src = in; s 249 libavfilter/vf_photosensitivity.c s->last_frame_e = ef; s 250 libavfilter/vf_photosensitivity.c s->history[s->history_pos] = this_badness; s 252 libavfilter/vf_photosensitivity.c factor = (float)(s->badness_threshold - current_badness) / (new_badness - current_badness); s 255 libavfilter/vf_photosensitivity.c s->history[s->history_pos] = 0; /* frame was duplicated, thus, delta is zero */ s 257 libavfilter/vf_photosensitivity.c res = av_frame_make_writable(s->last_frame_av); s 262 libavfilter/vf_photosensitivity.c blend_frame(ctx, s->last_frame_av, in, factor); s 264 libavfilter/vf_photosensitivity.c convert_frame(ctx, s->last_frame_av, &ef, s->skip); s 265 libavfilter/vf_photosensitivity.c this_badness = get_badness(&ef, &s->last_frame_e); s 267 libavfilter/vf_photosensitivity.c av_log(s, AV_LOG_VERBOSE, " fixed: %6d -> %6d / %6d (%3d%%) factor=%5.3f\n", s 268 libavfilter/vf_photosensitivity.c current_badness, fixed_badness, s->badness_threshold, s 269 libavfilter/vf_photosensitivity.c 100 * new_badness / s->badness_threshold, factor); s 270 libavfilter/vf_photosensitivity.c s->last_frame_e = ef; s 271 libavfilter/vf_photosensitivity.c s->history[s->history_pos] = this_badness; s 273 libavfilter/vf_photosensitivity.c src = s->last_frame_av; s 276 libavfilter/vf_photosensitivity.c s->history_pos = (s->history_pos + 1) % s->nb_frames; s 289 libavfilter/vf_photosensitivity.c snprintf(value, sizeof(value), "%f", (float)new_badness / s->badness_threshold); s 292 libavfilter/vf_photosensitivity.c snprintf(value, sizeof(value), "%f", (float)fixed_badness / s->badness_threshold); s 295 libavfilter/vf_photosensitivity.c snprintf(value, sizeof(value), "%f", (float)this_badness / s->badness_threshold); s 309 libavfilter/vf_photosensitivity.c PhotosensitivityContext *s = ctx->priv; s 311 libavfilter/vf_photosensitivity.c av_frame_free(&s->last_frame_av); s 103 libavfilter/vf_pp7.c int s = s3 + s3; s 104 libavfilter/vf_pp7.c s3 = s - s0; s 105 libavfilter/vf_pp7.c s0 = s + s0; s 106 libavfilter/vf_pp7.c s = s2 + s1; s 108 libavfilter/vf_pp7.c dst[0] = s0 + s; s 109 libavfilter/vf_pp7.c dst[2] = s0 - s; s 126 libavfilter/vf_pp7.c int s = s3 + s3; s 127 libavfilter/vf_pp7.c s3 = s - s0; s 128 libavfilter/vf_pp7.c s0 = s + s0; s 129 libavfilter/vf_pp7.c s = s2 + s1; s 131 libavfilter/vf_pp7.c dst[0 * 4] = s0 + s; s 132 libavfilter/vf_pp7.c dst[2 * 4] = s0 - s; s 68 libavfilter/vf_premultiply.c PreMultiplyContext *s = ctx->priv; s 89 libavfilter/vf_premultiply.c return ff_set_common_formats(ctx, ff_make_format_list(s->inplace ? alpha_pix_fmts : no_alpha_pix_fmts)); s 370 libavfilter/vf_premultiply.c PreMultiplyContext *s = ctx->priv; s 377 libavfilter/vf_premultiply.c for (p = 0; p < s->nb_planes; p++) { s 378 libavfilter/vf_premultiply.c const int slice_start = (s->height[p] * jobnr) / nb_jobs; s 379 libavfilter/vf_premultiply.c const int slice_end = (s->height[p] * (jobnr+1)) / nb_jobs; s 381 libavfilter/vf_premultiply.c if (!((1 << p) & s->planes) || p == 3) { s 386 libavfilter/vf_premultiply.c s->linesize[p], slice_end - slice_start); s 390 libavfilter/vf_premultiply.c s->premultiply[p](base->data[p] + slice_start * base->linesize[p], s 391 libavfilter/vf_premultiply.c s->inplace ? alpha->data[3] + slice_start * alpha->linesize[3] : s 394 libavfilter/vf_premultiply.c base->linesize[p], s->inplace ? alpha->linesize[3] : alpha->linesize[0], s 396 libavfilter/vf_premultiply.c s->width[p], slice_end - slice_start, s 397 libavfilter/vf_premultiply.c s->half, s->inverse ? s->max : s->depth, s->offset); s 406 libavfilter/vf_premultiply.c PreMultiplyContext *s = ctx->priv; s 425 libavfilter/vf_premultiply.c if (s->inverse) { s 429 libavfilter/vf_premultiply.c s->premultiply[0] = full ? unpremultiply8 : unpremultiply8offset; s 430 libavfilter/vf_premultiply.c s->premultiply[1] = s->premultiply[2] = unpremultiply8yuv; s 433 libavfilter/vf_premultiply.c s->premultiply[0] = unpremultiply8; s 434 libavfilter/vf_premultiply.c s->premultiply[1] = s->premultiply[2] = unpremultiply8yuv; s 438 libavfilter/vf_premultiply.c s->premultiply[0] = s->premultiply[1] = s->premultiply[2] = limited ? unpremultiply8offset : unpremultiply8; s 448 libavfilter/vf_premultiply.c s->premultiply[0] = full ? unpremultiply16 : unpremultiply16offset; s 449 libavfilter/vf_premultiply.c s->premultiply[1] = s->premultiply[2] = unpremultiply16yuv; s 459 libavfilter/vf_premultiply.c s->premultiply[0] = s->premultiply[1] = s->premultiply[2] = limited ? unpremultiply16offset : unpremultiply16; s 462 libavfilter/vf_premultiply.c s->premultiply[0] = limited ? unpremultiply8offset : unpremultiply8; s 469 libavfilter/vf_premultiply.c s->premultiply[0] = limited ? unpremultiply16offset : unpremultiply16; s 476 libavfilter/vf_premultiply.c s->premultiply[0] = full ? premultiply8 : premultiply8offset; s 477 libavfilter/vf_premultiply.c s->premultiply[1] = s->premultiply[2] = premultiply8yuv; s 480 libavfilter/vf_premultiply.c s->premultiply[0] = premultiply8; s 481 libavfilter/vf_premultiply.c s->premultiply[1] = s->premultiply[2] = premultiply8yuv; s 485 libavfilter/vf_premultiply.c s->premultiply[0] = s->premultiply[1] = s->premultiply[2] = limited ? premultiply8offset : premultiply8; s 495 libavfilter/vf_premultiply.c s->premultiply[0] = full ? premultiply16 : premultiply16offset; s 496 libavfilter/vf_premultiply.c s->premultiply[1] = s->premultiply[2] = premultiply16yuv; s 506 libavfilter/vf_premultiply.c s->premultiply[0] = s->premultiply[1] = s->premultiply[2] = limited ? premultiply16offset : premultiply16; s 509 libavfilter/vf_premultiply.c s->premultiply[0] = limited ? premultiply8offset : premultiply8; s 516 libavfilter/vf_premultiply.c s->premultiply[0] = limited ? premultiply16offset : premultiply16; s 524 libavfilter/vf_premultiply.c ctx->internal->execute(ctx, premultiply_slice, &td, NULL, FFMIN(s->height[0], s 534 libavfilter/vf_premultiply.c PreMultiplyContext *s = fs->opaque; s 539 libavfilter/vf_premultiply.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &base, 0)) < 0 || s 540 libavfilter/vf_premultiply.c (ret = ff_framesync_get_frame(&s->fs, 1, &alpha, 0)) < 0) s 546 libavfilter/vf_premultiply.c out->pts = av_rescale_q(base->pts, s->fs.time_base, outlink->time_base); s 554 libavfilter/vf_premultiply.c PreMultiplyContext *s = ctx->priv; s 558 libavfilter/vf_premultiply.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 560 libavfilter/vf_premultiply.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 565 libavfilter/vf_premultiply.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 566 libavfilter/vf_premultiply.c s->height[0] = s->height[3] = inlink->h; s 567 libavfilter/vf_premultiply.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 568 libavfilter/vf_premultiply.c s->width[0] = s->width[3] = inlink->w; s 570 libavfilter/vf_premultiply.c s->depth = desc->comp[0].depth; s 571 libavfilter/vf_premultiply.c s->max = (1 << s->depth) - 1; s 572 libavfilter/vf_premultiply.c s->half = (1 << s->depth) / 2; s 573 libavfilter/vf_premultiply.c s->offset = 16 << (s->depth - 8); s 581 libavfilter/vf_premultiply.c PreMultiplyContext *s = ctx->priv; s 587 libavfilter/vf_premultiply.c if (!s->inplace) { s 611 libavfilter/vf_premultiply.c if (s->inplace) s 614 libavfilter/vf_premultiply.c if ((ret = ff_framesync_init(&s->fs, ctx, 2)) < 0) s 617 libavfilter/vf_premultiply.c in = s->fs.in; s 626 libavfilter/vf_premultiply.c s->fs.opaque = s; s 627 libavfilter/vf_premultiply.c s->fs.on_event = process_frame; s 629 libavfilter/vf_premultiply.c return ff_framesync_configure(&s->fs); s 634 libavfilter/vf_premultiply.c PreMultiplyContext *s = ctx->priv; s 636 libavfilter/vf_premultiply.c if (s->inplace) { s 662 libavfilter/vf_premultiply.c return ff_framesync_activate(&s->fs); s 668 libavfilter/vf_premultiply.c PreMultiplyContext *s = ctx->priv; s 673 libavfilter/vf_premultiply.c s->inverse = 1; s 686 libavfilter/vf_premultiply.c if (!s->inplace) { s 704 libavfilter/vf_premultiply.c PreMultiplyContext *s = ctx->priv; s 706 libavfilter/vf_premultiply.c if (!s->inplace) s 707 libavfilter/vf_premultiply.c ff_framesync_uninit(&s->fs); s 425 libavfilter/vf_pseudocolor.c PseudoColorContext *s = ctx->priv; s 430 libavfilter/vf_pseudocolor.c s->max = (1 << depth) - 1; s 431 libavfilter/vf_pseudocolor.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 433 libavfilter/vf_pseudocolor.c if (s->index >= s->nb_planes) { s 438 libavfilter/vf_pseudocolor.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 443 libavfilter/vf_pseudocolor.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 444 libavfilter/vf_pseudocolor.c s->height[0] = s->height[3] = inlink->h; s 445 libavfilter/vf_pseudocolor.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 446 libavfilter/vf_pseudocolor.c s->width[0] = s->width[3] = inlink->w; s 448 libavfilter/vf_pseudocolor.c s->var_values[VAR_W] = inlink->w; s 449 libavfilter/vf_pseudocolor.c s->var_values[VAR_H] = inlink->h; s 451 libavfilter/vf_pseudocolor.c s->var_values[VAR_YMIN] = 16 * (1 << (depth - 8)); s 452 libavfilter/vf_pseudocolor.c s->var_values[VAR_UMIN] = 16 * (1 << (depth - 8)); s 453 libavfilter/vf_pseudocolor.c s->var_values[VAR_VMIN] = 16 * (1 << (depth - 8)); s 454 libavfilter/vf_pseudocolor.c s->var_values[VAR_AMIN] = 0; s 455 libavfilter/vf_pseudocolor.c s->var_values[VAR_YMAX] = 235 * (1 << (depth - 8)); s 456 libavfilter/vf_pseudocolor.c s->var_values[VAR_UMAX] = 240 * (1 << (depth - 8)); s 457 libavfilter/vf_pseudocolor.c s->var_values[VAR_VMAX] = 240 * (1 << (depth - 8)); s 458 libavfilter/vf_pseudocolor.c s->var_values[VAR_AMAX] = s->max; s 460 libavfilter/vf_pseudocolor.c for (color = 0; color < s->nb_planes; color++) { s 465 libavfilter/vf_pseudocolor.c av_expr_free(s->comp_expr[color]); s 466 libavfilter/vf_pseudocolor.c s->comp_expr[color] = NULL; s 467 libavfilter/vf_pseudocolor.c ret = av_expr_parse(&s->comp_expr[color], s->comp_expr_str[color], s 472 libavfilter/vf_pseudocolor.c s->comp_expr_str[color], color, color); s 477 libavfilter/vf_pseudocolor.c for (val = 0; val < FF_ARRAY_ELEMS(s->lut[color]); val++) { s 478 libavfilter/vf_pseudocolor.c s->var_values[VAR_VAL] = val; s 480 libavfilter/vf_pseudocolor.c res = av_expr_eval(s->comp_expr[color], s->var_values, s); s 484 libavfilter/vf_pseudocolor.c s->comp_expr_str[color], val, color); s 487 libavfilter/vf_pseudocolor.c s->lut[color][val] = res; s 497 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[1] = s->filter[2] = s->filter[3] = pseudocolor_filter; s 501 libavfilter/vf_pseudocolor.c switch (s->index) { s 504 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[3] = pseudocolor_filter; s 505 libavfilter/vf_pseudocolor.c s->filter[1] = s->filter[2] = pseudocolor_filter_11; s 509 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[3] = pseudocolor_filter_11d; s 510 libavfilter/vf_pseudocolor.c s->filter[1] = s->filter[2] = pseudocolor_filter; s 516 libavfilter/vf_pseudocolor.c switch (s->index) { s 519 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[3] = pseudocolor_filter; s 520 libavfilter/vf_pseudocolor.c s->filter[1] = s->filter[2] = pseudocolor_filter_10; s 524 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[3] = pseudocolor_filter_10d; s 525 libavfilter/vf_pseudocolor.c s->filter[1] = s->filter[2] = pseudocolor_filter; s 550 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[1] = s->filter[2] = s->filter[3] = pseudocolor_filter_16; s 560 libavfilter/vf_pseudocolor.c switch (s->index) { s 563 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[3] = pseudocolor_filter_16; s 564 libavfilter/vf_pseudocolor.c s->filter[1] = s->filter[2] = pseudocolor_filter_16_10; s 568 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[3] = pseudocolor_filter_16_10d; s 569 libavfilter/vf_pseudocolor.c s->filter[1] = s->filter[2] = pseudocolor_filter_16; s 581 libavfilter/vf_pseudocolor.c switch (s->index) { s 584 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[3] = pseudocolor_filter_16; s 585 libavfilter/vf_pseudocolor.c s->filter[1] = s->filter[2] = pseudocolor_filter_16_11; s 589 libavfilter/vf_pseudocolor.c s->filter[0] = s->filter[3] = pseudocolor_filter_16_11d; s 590 libavfilter/vf_pseudocolor.c s->filter[1] = s->filter[2] = pseudocolor_filter_16; s 602 libavfilter/vf_pseudocolor.c PseudoColorContext *s = ctx->priv; s 614 libavfilter/vf_pseudocolor.c for (plane = 0; plane < s->nb_planes; plane++) { s 615 libavfilter/vf_pseudocolor.c const uint8_t *index = in->data[s->index]; s 618 libavfilter/vf_pseudocolor.c ptrdiff_t ilinesize = in->linesize[s->index]; s 622 libavfilter/vf_pseudocolor.c s->filter[plane](s->max, s->width[plane], s->height[plane], s 624 libavfilter/vf_pseudocolor.c dlinesize, s->lut[plane]); s 651 libavfilter/vf_pseudocolor.c PseudoColorContext *s = ctx->priv; s 655 libavfilter/vf_pseudocolor.c av_expr_free(s->comp_expr[i]); s 656 libavfilter/vf_pseudocolor.c s->comp_expr[i] = NULL; s 108 libavfilter/vf_psnr.c void compute_images_mse(PSNRContext *s, s 115 libavfilter/vf_psnr.c for (c = 0; c < s->nb_components; c++) { s 116 libavfilter/vf_psnr.c const int outw = s->planewidth[c]; s 117 libavfilter/vf_psnr.c const int outh = s->planeheight[c]; s 124 libavfilter/vf_psnr.c m += s->dsp.sse_line(main_line, ref_line, outw); s 148 libavfilter/vf_psnr.c PSNRContext *s = ctx->priv; s 161 libavfilter/vf_psnr.c compute_images_mse(s, (const uint8_t **)master->data, master->linesize, s 165 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) s 166 libavfilter/vf_psnr.c mse += comp_mse[j] * s->planeweight[j]; s 168 libavfilter/vf_psnr.c s->min_mse = FFMIN(s->min_mse, mse); s 169 libavfilter/vf_psnr.c s->max_mse = FFMAX(s->max_mse, mse); s 171 libavfilter/vf_psnr.c s->mse += mse; s 172 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) s 173 libavfilter/vf_psnr.c s->mse_comp[j] += comp_mse[j]; s 174 libavfilter/vf_psnr.c s->nb_frames++; s 176 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) { s 177 libavfilter/vf_psnr.c c = s->is_rgb ? s->rgba_map[j] : j; s 178 libavfilter/vf_psnr.c set_meta(metadata, "lavfi.psnr.mse.", s->comps[j], comp_mse[c]); s 179 libavfilter/vf_psnr.c set_meta(metadata, "lavfi.psnr.psnr.", s->comps[j], get_psnr(comp_mse[c], 1, s->max[c])); s 182 libavfilter/vf_psnr.c set_meta(metadata, "lavfi.psnr.psnr_avg", 0, get_psnr(mse, 1, s->average_max)); s 184 libavfilter/vf_psnr.c if (s->stats_file) { s 185 libavfilter/vf_psnr.c if (s->stats_version == 2 && !s->stats_header_written) { s 186 libavfilter/vf_psnr.c fprintf(s->stats_file, "psnr_log_version:2 fields:n"); s 187 libavfilter/vf_psnr.c fprintf(s->stats_file, ",mse_avg"); s 188 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) { s 189 libavfilter/vf_psnr.c fprintf(s->stats_file, ",mse_%c", s->comps[j]); s 191 libavfilter/vf_psnr.c fprintf(s->stats_file, ",psnr_avg"); s 192 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) { s 193 libavfilter/vf_psnr.c fprintf(s->stats_file, ",psnr_%c", s->comps[j]); s 195 libavfilter/vf_psnr.c if (s->stats_add_max) { s 196 libavfilter/vf_psnr.c fprintf(s->stats_file, ",max_avg"); s 197 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) { s 198 libavfilter/vf_psnr.c fprintf(s->stats_file, ",max_%c", s->comps[j]); s 201 libavfilter/vf_psnr.c fprintf(s->stats_file, "\n"); s 202 libavfilter/vf_psnr.c s->stats_header_written = 1; s 204 libavfilter/vf_psnr.c fprintf(s->stats_file, "n:%"PRId64" mse_avg:%0.2f ", s->nb_frames, mse); s 205 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) { s 206 libavfilter/vf_psnr.c c = s->is_rgb ? s->rgba_map[j] : j; s 207 libavfilter/vf_psnr.c fprintf(s->stats_file, "mse_%c:%0.2f ", s->comps[j], comp_mse[c]); s 209 libavfilter/vf_psnr.c fprintf(s->stats_file, "psnr_avg:%0.2f ", get_psnr(mse, 1, s->average_max)); s 210 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) { s 211 libavfilter/vf_psnr.c c = s->is_rgb ? s->rgba_map[j] : j; s 212 libavfilter/vf_psnr.c fprintf(s->stats_file, "psnr_%c:%0.2f ", s->comps[j], s 213 libavfilter/vf_psnr.c get_psnr(comp_mse[c], 1, s->max[c])); s 215 libavfilter/vf_psnr.c if (s->stats_version == 2 && s->stats_add_max) { s 216 libavfilter/vf_psnr.c fprintf(s->stats_file, "max_avg:%d ", s->average_max); s 217 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) { s 218 libavfilter/vf_psnr.c c = s->is_rgb ? s->rgba_map[j] : j; s 219 libavfilter/vf_psnr.c fprintf(s->stats_file, "max_%c:%d ", s->comps[j], s->max[c]); s 222 libavfilter/vf_psnr.c fprintf(s->stats_file, "\n"); s 230 libavfilter/vf_psnr.c PSNRContext *s = ctx->priv; s 232 libavfilter/vf_psnr.c s->min_mse = +INFINITY; s 233 libavfilter/vf_psnr.c s->max_mse = -INFINITY; s 235 libavfilter/vf_psnr.c if (s->stats_file_str) { s 236 libavfilter/vf_psnr.c if (s->stats_version < 2 && s->stats_add_max) { s 241 libavfilter/vf_psnr.c if (!strcmp(s->stats_file_str, "-")) { s 242 libavfilter/vf_psnr.c s->stats_file = stdout; s 244 libavfilter/vf_psnr.c s->stats_file = fopen(s->stats_file_str, "w"); s 245 libavfilter/vf_psnr.c if (!s->stats_file) { s 250 libavfilter/vf_psnr.c s->stats_file_str, buf); s 256 libavfilter/vf_psnr.c s->fs.on_event = do_psnr; s 287 libavfilter/vf_psnr.c PSNRContext *s = ctx->priv; s 292 libavfilter/vf_psnr.c s->nb_components = desc->nb_components; s 303 libavfilter/vf_psnr.c s->max[0] = (1 << desc->comp[0].depth) - 1; s 304 libavfilter/vf_psnr.c s->max[1] = (1 << desc->comp[1].depth) - 1; s 305 libavfilter/vf_psnr.c s->max[2] = (1 << desc->comp[2].depth) - 1; s 306 libavfilter/vf_psnr.c s->max[3] = (1 << desc->comp[3].depth) - 1; s 308 libavfilter/vf_psnr.c s->is_rgb = ff_fill_rgba_map(s->rgba_map, inlink->format) >= 0; s 309 libavfilter/vf_psnr.c s->comps[0] = s->is_rgb ? 'r' : 'y' ; s 310 libavfilter/vf_psnr.c s->comps[1] = s->is_rgb ? 'g' : 'u' ; s 311 libavfilter/vf_psnr.c s->comps[2] = s->is_rgb ? 'b' : 'v' ; s 312 libavfilter/vf_psnr.c s->comps[3] = 'a'; s 314 libavfilter/vf_psnr.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 315 libavfilter/vf_psnr.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 316 libavfilter/vf_psnr.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 317 libavfilter/vf_psnr.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 319 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) s 320 libavfilter/vf_psnr.c sum += s->planeheight[j] * s->planewidth[j]; s 322 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) { s 323 libavfilter/vf_psnr.c s->planeweight[j] = (double) s->planeheight[j] * s->planewidth[j] / sum; s 324 libavfilter/vf_psnr.c average_max += s->max[j] * s->planeweight[j]; s 326 libavfilter/vf_psnr.c s->average_max = lrint(average_max); s 328 libavfilter/vf_psnr.c s->dsp.sse_line = desc->comp[0].depth > 8 ? sse_line_16bit : sse_line_8bit; s 330 libavfilter/vf_psnr.c ff_psnr_init_x86(&s->dsp, desc->comp[0].depth); s 338 libavfilter/vf_psnr.c PSNRContext *s = ctx->priv; s 342 libavfilter/vf_psnr.c ret = ff_framesync_init_dualinput(&s->fs, ctx); s 350 libavfilter/vf_psnr.c if ((ret = ff_framesync_configure(&s->fs)) < 0) s 353 libavfilter/vf_psnr.c outlink->time_base = s->fs.time_base; s 366 libavfilter/vf_psnr.c PSNRContext *s = ctx->priv; s 367 libavfilter/vf_psnr.c return ff_framesync_activate(&s->fs); s 372 libavfilter/vf_psnr.c PSNRContext *s = ctx->priv; s 374 libavfilter/vf_psnr.c if (s->nb_frames > 0) { s 379 libavfilter/vf_psnr.c for (j = 0; j < s->nb_components; j++) { s 380 libavfilter/vf_psnr.c int c = s->is_rgb ? s->rgba_map[j] : j; s 381 libavfilter/vf_psnr.c av_strlcatf(buf, sizeof(buf), " %c:%f", s->comps[j], s 382 libavfilter/vf_psnr.c get_psnr(s->mse_comp[c], s->nb_frames, s->max[c])); s 386 libavfilter/vf_psnr.c get_psnr(s->mse, s->nb_frames, s->average_max), s 387 libavfilter/vf_psnr.c get_psnr(s->max_mse, 1, s->average_max), s 388 libavfilter/vf_psnr.c get_psnr(s->min_mse, 1, s->average_max)); s 391 libavfilter/vf_psnr.c ff_framesync_uninit(&s->fs); s 393 libavfilter/vf_psnr.c if (s->stats_file && s->stats_file != stdout) s 394 libavfilter/vf_psnr.c fclose(s->stats_file); s 75 libavfilter/vf_pullup.c static int diff_c(const uint8_t *a, const uint8_t *b, ptrdiff_t s) s 82 libavfilter/vf_pullup.c a += s; s 83 libavfilter/vf_pullup.c b += s; s 89 libavfilter/vf_pullup.c static int comb_c(const uint8_t *a, const uint8_t *b, ptrdiff_t s) s 95 libavfilter/vf_pullup.c comb += ABS((a[j] << 1) - b[j - s] - b[j ]) + s 96 libavfilter/vf_pullup.c ABS((b[j] << 1) - a[j ] - a[j + s]); s 97 libavfilter/vf_pullup.c a += s; s 98 libavfilter/vf_pullup.c b += s; s 104 libavfilter/vf_pullup.c static int var_c(const uint8_t *a, const uint8_t *b, ptrdiff_t s) s 110 libavfilter/vf_pullup.c var += ABS(a[j] - a[j + s]); s 111 libavfilter/vf_pullup.c a += s; s 117 libavfilter/vf_pullup.c static int alloc_metrics(PullupContext *s, PullupField *f) s 119 libavfilter/vf_pullup.c f->diffs = av_calloc(FFALIGN(s->metric_length, 16), sizeof(*f->diffs)); s 120 libavfilter/vf_pullup.c f->combs = av_calloc(FFALIGN(s->metric_length, 16), sizeof(*f->combs)); s 121 libavfilter/vf_pullup.c f->vars = av_calloc(FFALIGN(s->metric_length, 16), sizeof(*f->vars)); s 149 libavfilter/vf_pullup.c static PullupField *make_field_queue(PullupContext *s, int len) s 157 libavfilter/vf_pullup.c if (alloc_metrics(s, f) < 0) { s 171 libavfilter/vf_pullup.c if (alloc_metrics(s, f) < 0) { s 186 libavfilter/vf_pullup.c PullupContext *s = ctx->priv; s 188 libavfilter/vf_pullup.c int mp = s->metric_plane; s 190 libavfilter/vf_pullup.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 192 libavfilter/vf_pullup.c if (mp + 1 > s->nb_planes) { s 197 libavfilter/vf_pullup.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 198 libavfilter/vf_pullup.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 199 libavfilter/vf_pullup.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 200 libavfilter/vf_pullup.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 202 libavfilter/vf_pullup.c s->metric_w = (s->planewidth[mp] - ((s->junk_left + s->junk_right) << 3)) >> 3; s 203 libavfilter/vf_pullup.c s->metric_h = (s->planeheight[mp] - ((s->junk_top + s->junk_bottom) << 1)) >> 3; s 204 libavfilter/vf_pullup.c s->metric_offset = (s->junk_left << 3) + (s->junk_top << 1) * s->planewidth[mp]; s 205 libavfilter/vf_pullup.c s->metric_length = s->metric_w * s->metric_h; s 207 libavfilter/vf_pullup.c av_log(ctx, AV_LOG_DEBUG, "w: %d h: %d\n", s->metric_w, s->metric_h); s 208 libavfilter/vf_pullup.c av_log(ctx, AV_LOG_DEBUG, "offset: %d length: %d\n", s->metric_offset, s->metric_length); s 210 libavfilter/vf_pullup.c s->head = make_field_queue(s, 8); s 211 libavfilter/vf_pullup.c if (!s->head) s 214 libavfilter/vf_pullup.c s->diff = diff_c; s 215 libavfilter/vf_pullup.c s->comb = comb_c; s 216 libavfilter/vf_pullup.c s->var = var_c; s 219 libavfilter/vf_pullup.c ff_pullup_init_x86(s); s 247 libavfilter/vf_pullup.c static int alloc_buffer(PullupContext *s, PullupBuffer *b) s 253 libavfilter/vf_pullup.c for (i = 0; i < s->nb_planes; i++) { s 254 libavfilter/vf_pullup.c b->planes[i] = av_malloc(s->planeheight[i] * s->planewidth[i]); s 256 libavfilter/vf_pullup.c if (s->nb_planes == 1) s 262 libavfilter/vf_pullup.c static PullupBuffer *pullup_get_buffer(PullupContext *s, int parity) s 267 libavfilter/vf_pullup.c if (parity < 2 && s->last && parity != s->last->parity s 268 libavfilter/vf_pullup.c && !s->last->buffer->lock[parity]) { s 269 libavfilter/vf_pullup.c alloc_buffer(s, s->last->buffer); s 270 libavfilter/vf_pullup.c return pullup_lock_buffer(s->last->buffer, parity); s 274 libavfilter/vf_pullup.c for (i = 0; i < FF_ARRAY_ELEMS(s->buffers); i++) { s 275 libavfilter/vf_pullup.c if (s->buffers[i].lock[0]) s 277 libavfilter/vf_pullup.c if (s->buffers[i].lock[1]) s 279 libavfilter/vf_pullup.c alloc_buffer(s, &s->buffers[i]); s 280 libavfilter/vf_pullup.c return pullup_lock_buffer(&s->buffers[i], parity); s 287 libavfilter/vf_pullup.c for (i = 0; i < FF_ARRAY_ELEMS(s->buffers); i++) { s 288 libavfilter/vf_pullup.c if (((parity + 1) & 1) && s->buffers[i].lock[0]) s 290 libavfilter/vf_pullup.c if (((parity + 1) & 2) && s->buffers[i].lock[1]) s 292 libavfilter/vf_pullup.c alloc_buffer(s, &s->buffers[i]); s 293 libavfilter/vf_pullup.c return pullup_lock_buffer(&s->buffers[i], parity); s 326 libavfilter/vf_pullup.c static void compute_breaks(PullupContext *s, PullupField *f0) s 349 libavfilter/vf_pullup.c for (i = 0; i < s->metric_length; i++) { s 367 libavfilter/vf_pullup.c static void compute_affinity(PullupContext *s, PullupField *f) s 385 libavfilter/vf_pullup.c for (i = 0; i < s->metric_length; i++) { s 411 libavfilter/vf_pullup.c static int decide_frame_length(PullupContext *s) s 413 libavfilter/vf_pullup.c PullupField *f0 = s->first; s 419 libavfilter/vf_pullup.c if (queue_length(s->first, s->last) < 4) s 422 libavfilter/vf_pullup.c f = s->first; s 423 libavfilter/vf_pullup.c n = queue_length(f, s->last); s 426 libavfilter/vf_pullup.c compute_breaks(s, f); s 428 libavfilter/vf_pullup.c compute_affinity(s, f); s 438 libavfilter/vf_pullup.c if (l == 1 && s->strict_breaks < 0) s 443 libavfilter/vf_pullup.c return 1 + (s->strict_breaks < 1 && f0->affinity == 1 && f1->affinity == -1); s 446 libavfilter/vf_pullup.c if (s->strict_pairs s 467 libavfilter/vf_pullup.c static PullupFrame *pullup_get_frame(PullupContext *s) s 469 libavfilter/vf_pullup.c PullupFrame *fr = &s->frame; s 470 libavfilter/vf_pullup.c int i, n = decide_frame_length(s); s 471 libavfilter/vf_pullup.c int aff = s->first->next->affinity; s 479 libavfilter/vf_pullup.c fr->parity = s->first->parity; s 484 libavfilter/vf_pullup.c fr->ifields[i] = s->first->buffer; s 485 libavfilter/vf_pullup.c s->first->buffer = 0; s 486 libavfilter/vf_pullup.c s->first = s->first->next; s 529 libavfilter/vf_pullup.c static void compute_metric(PullupContext *s, int *dest, s 533 libavfilter/vf_pullup.c int mp = s->metric_plane; s 535 libavfilter/vf_pullup.c int ystep = s->planewidth[mp] << 3; s 536 libavfilter/vf_pullup.c int stride = s->planewidth[mp] << 1; /* field stride */ s 537 libavfilter/vf_pullup.c int w = s->metric_w * xstep; s 546 libavfilter/vf_pullup.c memset(dest, 0, s->metric_length * sizeof(*dest)); s 550 libavfilter/vf_pullup.c a = fa->buffer->planes[mp] + pa * s->planewidth[mp] + s->metric_offset; s 551 libavfilter/vf_pullup.c b = fb->buffer->planes[mp] + pb * s->planewidth[mp] + s->metric_offset; s 553 libavfilter/vf_pullup.c for (y = 0; y < s->metric_h; y++) { s 560 libavfilter/vf_pullup.c static int check_field_queue(PullupContext *s) s 564 libavfilter/vf_pullup.c if (s->head->next == s->first) { s 570 libavfilter/vf_pullup.c if ((ret = alloc_metrics(s, f)) < 0) { s 575 libavfilter/vf_pullup.c f->prev = s->head; s 576 libavfilter/vf_pullup.c f->next = s->first; s 577 libavfilter/vf_pullup.c s->head->next = f; s 578 libavfilter/vf_pullup.c s->first->prev = f; s 584 libavfilter/vf_pullup.c static void pullup_submit_field(PullupContext *s, PullupBuffer *b, int parity) s 589 libavfilter/vf_pullup.c if (check_field_queue(s) < 0) s 593 libavfilter/vf_pullup.c if (s->last && s->last->parity == parity) s 596 libavfilter/vf_pullup.c f = s->head; s 603 libavfilter/vf_pullup.c compute_metric(s, f->diffs, f, parity, f->prev->prev, parity, s->diff); s 604 libavfilter/vf_pullup.c compute_metric(s, f->combs, parity ? f->prev : f, 0, parity ? f : f->prev, 1, s->comb); s 605 libavfilter/vf_pullup.c compute_metric(s, f->vars, f, parity, f, -1, s->var); s 609 libavfilter/vf_pullup.c if (!s->first) s 610 libavfilter/vf_pullup.c s->first = s->head; s 612 libavfilter/vf_pullup.c s->last = s->head; s 613 libavfilter/vf_pullup.c s->head = s->head->next; s 616 libavfilter/vf_pullup.c static void copy_field(PullupContext *s, s 622 libavfilter/vf_pullup.c for (i = 0; i < s->nb_planes; i++) { s 623 libavfilter/vf_pullup.c ss = src->planes[i] + parity * s->planewidth[i]; s 624 libavfilter/vf_pullup.c dd = dst->planes[i] + parity * s->planewidth[i]; s 626 libavfilter/vf_pullup.c av_image_copy_plane(dd, s->planewidth[i] << 1, s 627 libavfilter/vf_pullup.c ss, s->planewidth[i] << 1, s 628 libavfilter/vf_pullup.c s->planewidth[i], s->planeheight[i] >> 1); s 632 libavfilter/vf_pullup.c static void pullup_pack_frame(PullupContext *s, PullupFrame *fr) s 648 libavfilter/vf_pullup.c copy_field(s, fr->buffer, fr->ofields[i^1], i^1); s 652 libavfilter/vf_pullup.c fr->buffer = pullup_get_buffer(s, 2); s 654 libavfilter/vf_pullup.c copy_field(s, fr->buffer, fr->ofields[0], 0); s 655 libavfilter/vf_pullup.c copy_field(s, fr->buffer, fr->ofields[1], 1); s 662 libavfilter/vf_pullup.c PullupContext *s = ctx->priv; s 668 libavfilter/vf_pullup.c b = pullup_get_buffer(s, 2); s 671 libavfilter/vf_pullup.c f = pullup_get_frame(s); s 676 libavfilter/vf_pullup.c av_image_copy(b->planes, s->planewidth, s 681 libavfilter/vf_pullup.c pullup_submit_field(s, b, p ); s 682 libavfilter/vf_pullup.c pullup_submit_field(s, b, p^1); s 685 libavfilter/vf_pullup.c pullup_submit_field(s, b, p); s 689 libavfilter/vf_pullup.c f = pullup_get_frame(s); s 695 libavfilter/vf_pullup.c f = pullup_get_frame(s); s 702 libavfilter/vf_pullup.c f = pullup_get_frame(s); s 714 libavfilter/vf_pullup.c pullup_pack_frame(s, f); s 724 libavfilter/vf_pullup.c (const uint8_t**)f->buffer->planes, s->planewidth, s 736 libavfilter/vf_pullup.c PullupContext *s = ctx->priv; s 739 libavfilter/vf_pullup.c free_field_queue(s->head); s 740 libavfilter/vf_pullup.c s->last = NULL; s 742 libavfilter/vf_pullup.c for (i = 0; i < FF_ARRAY_ELEMS(s->buffers); i++) { s 743 libavfilter/vf_pullup.c av_freep(&s->buffers[i].planes[0]); s 744 libavfilter/vf_pullup.c av_freep(&s->buffers[i].planes[1]); s 745 libavfilter/vf_pullup.c av_freep(&s->buffers[i].planes[2]); s 64 libavfilter/vf_pullup.h int (*diff)(const uint8_t *a, const uint8_t *b, ptrdiff_t s); s 65 libavfilter/vf_pullup.h int (*comb)(const uint8_t *a, const uint8_t *b, ptrdiff_t s); s 66 libavfilter/vf_pullup.h int (*var )(const uint8_t *a, const uint8_t *b, ptrdiff_t s); s 69 libavfilter/vf_pullup.h void ff_pullup_init_x86(PullupContext *s); s 52 libavfilter/vf_qp.c QPContext *s = ctx->priv; s 58 libavfilter/vf_qp.c if (!s->qp_expr_str) s 61 libavfilter/vf_qp.c ret = av_expr_parse(&e, s->qp_expr_str, var_names, NULL, NULL, NULL, NULL, 0, ctx); s 65 libavfilter/vf_qp.c s->h = (inlink->h + 15) >> 4; s 66 libavfilter/vf_qp.c s->qstride = (inlink->w + 15) >> 4; s 68 libavfilter/vf_qp.c double var_values[] = { i != -129, i, NAN, NAN, s->qstride, s->h, 0}; s 72 libavfilter/vf_qp.c if(strchr(s->qp_expr_str, 'x') || strchr(s->qp_expr_str, 'y')) s 73 libavfilter/vf_qp.c s->evaluate_per_mb = 1; s 80 libavfilter/vf_qp.c s->lut[i + 129] = lrintf(temp_val); s 91 libavfilter/vf_qp.c QPContext *s = ctx->priv; s 97 libavfilter/vf_qp.c if (!s->qp_expr_str || ctx->is_disabled) s 100 libavfilter/vf_qp.c out_qp_table_buf = av_buffer_alloc(s->h * s->qstride); s 114 libavfilter/vf_qp.c av_frame_set_qp_table(out, out_qp_table_buf, s->qstride, type); s 117 libavfilter/vf_qp.c if (s->evaluate_per_mb) { s 120 libavfilter/vf_qp.c for (y = 0; y < s->h; y++) s 121 libavfilter/vf_qp.c for (x = 0; x < s->qstride; x++) { s 123 libavfilter/vf_qp.c double var_values[] = { !!in_qp_table, qp, x, y, s->qstride, s->h, 0}; s 127 libavfilter/vf_qp.c ret = av_expr_parse_and_eval(&temp_val, s->qp_expr_str, s 132 libavfilter/vf_qp.c out_qp_table_buf->data[x + s->qstride * y] = lrintf(temp_val); s 137 libavfilter/vf_qp.c for (y = 0; y < s->h; y++) s 138 libavfilter/vf_qp.c for (x = 0; x < s->qstride; x++) s 139 libavfilter/vf_qp.c out_qp_table_buf->data[x + s->qstride * y] = s->lut[129 + s 142 libavfilter/vf_qp.c int y, x, qp = s->lut[0]; s 144 libavfilter/vf_qp.c for (y = 0; y < s->h; y++) s 145 libavfilter/vf_qp.c for (x = 0; x < s->qstride; x++) s 146 libavfilter/vf_qp.c out_qp_table_buf->data[x + s->qstride * y] = qp; s 56 libavfilter/vf_random.c RandomContext *s = ctx->priv; s 59 libavfilter/vf_random.c if (s->random_seed < 0) s 60 libavfilter/vf_random.c s->random_seed = av_get_random_seed(); s 61 libavfilter/vf_random.c seed = s->random_seed; s 62 libavfilter/vf_random.c av_lfg_init(&s->lfg, seed); s 70 libavfilter/vf_random.c RandomContext *s = ctx->priv; s 75 libavfilter/vf_random.c if (s->nb_frames_filled < s->nb_frames) { s 76 libavfilter/vf_random.c s->frames[s->nb_frames_filled] = in; s 77 libavfilter/vf_random.c s->pts[s->nb_frames_filled++] = in->pts; s 81 libavfilter/vf_random.c idx = av_lfg_get(&s->lfg) % s->nb_frames; s 83 libavfilter/vf_random.c out = s->frames[idx]; s 84 libavfilter/vf_random.c out->pts = s->pts[0]; s 85 libavfilter/vf_random.c memmove(&s->pts[0], &s->pts[1], (s->nb_frames - 1) * sizeof(s->pts[0])); s 86 libavfilter/vf_random.c s->frames[idx] = in; s 87 libavfilter/vf_random.c s->pts[s->nb_frames - 1] = in->pts; s 95 libavfilter/vf_random.c RandomContext *s = ctx->priv; s 101 libavfilter/vf_random.c if (ret == AVERROR_EOF && !ctx->is_disabled && s->nb_frames > 0) { s 102 libavfilter/vf_random.c AVFrame *out = s->frames[s->nb_frames - 1]; s 104 libavfilter/vf_random.c s->nb_frames--; s 107 libavfilter/vf_random.c out->pts = s->pts[s->flush_idx++]; s 109 libavfilter/vf_random.c s->frames[s->nb_frames - 1] = NULL; s 110 libavfilter/vf_random.c s->nb_frames--; s 118 libavfilter/vf_random.c RandomContext *s = ctx->priv; s 120 libavfilter/vf_random.c for (int i = 0; i < s->nb_frames; i++) s 121 libavfilter/vf_random.c av_frame_free(&s->frames[i]); s 111 libavfilter/vf_readeia608.c ReadEIA608Context *s = ctx->priv; s 114 libavfilter/vf_readeia608.c if (s->end >= inlink->h) { s 116 libavfilter/vf_readeia608.c s->end = inlink->h - 1; s 119 libavfilter/vf_readeia608.c if (s->start > s->end) { s 124 libavfilter/vf_readeia608.c s->line = av_calloc(size, sizeof(*s->line)); s 125 libavfilter/vf_readeia608.c s->code = av_calloc(size, sizeof(*s->code)); s 126 libavfilter/vf_readeia608.c if (!s->line || !s->code) s 132 libavfilter/vf_readeia608.c static void build_histogram(ReadEIA608Context *s, const LineItem *line, int len) s 134 libavfilter/vf_readeia608.c memset(s->histogram, 0, sizeof(s->histogram)); s 137 libavfilter/vf_readeia608.c s->histogram[line[i].input]++; s 140 libavfilter/vf_readeia608.c static void find_black_and_white(ReadEIA608Context *s) s 147 libavfilter/vf_readeia608.c if (s->histogram[i]) { s 154 libavfilter/vf_readeia608.c if (s->histogram[i]) { s 164 libavfilter/vf_readeia608.c if (s->histogram[i] > cnt) { s 165 libavfilter/vf_readeia608.c cnt = s->histogram[i]; s 172 libavfilter/vf_readeia608.c if (s->histogram[i] > cnt) { s 173 libavfilter/vf_readeia608.c cnt = s->histogram[i]; s 178 libavfilter/vf_readeia608.c s->black = black; s 179 libavfilter/vf_readeia608.c s->white = white; s 205 libavfilter/vf_readeia608.c static void thresholding(ReadEIA608Context *s, LineItem *line, s 214 libavfilter/vf_readeia608.c line[i].unfiltered = meanf(line, len * s->spw); s 233 libavfilter/vf_readeia608.c distance_from_black = FFABS(line[i].input - s->black); s 234 libavfilter/vf_readeia608.c distance_from_white = FFABS(line[i].input - s->white); s 269 libavfilter/vf_readeia608.c ReadEIA608Context *s = ctx->priv; s 273 libavfilter/vf_readeia608.c av_log(ctx, AV_LOG_DEBUG, " %03d", s->code[i].size); s 280 libavfilter/vf_readeia608.c ReadEIA608Context *s = ctx->priv; s 281 libavfilter/vf_readeia608.c LineItem *line = s->line; s 292 libavfilter/vf_readeia608.c if (s->lp) { s 309 libavfilter/vf_readeia608.c build_histogram(s, line, w); s 310 libavfilter/vf_readeia608.c find_black_and_white(s); s 311 libavfilter/vf_readeia608.c if (s->white - s->black < 5) s 314 libavfilter/vf_readeia608.c thresholding(s, line, LAG, 1, 0, w); s 315 libavfilter/vf_readeia608.c len = periods(line, s->code, w); s 318 libavfilter/vf_readeia608.c s->code[14].bit != 0 || s 319 libavfilter/vf_readeia608.c w / (float)s->code[14].size < SYNC_BITSIZE_MIN || s 320 libavfilter/vf_readeia608.c w / (float)s->code[14].size > SYNC_BITSIZE_MAX) { s 325 libavfilter/vf_readeia608.c bit_size += s->code[i].size; s 330 libavfilter/vf_readeia608.c if (s->code[i].size / bit_size > CLOCK_BITSIZE_MAX || s 331 libavfilter/vf_readeia608.c s->code[i].size / bit_size < CLOCK_BITSIZE_MIN) { s 336 libavfilter/vf_readeia608.c if (s->code[15].size / bit_size < 0.45f) { s 343 libavfilter/vf_readeia608.c run = lrintf(s->code[i].size / bit_size); s 344 libavfilter/vf_readeia608.c bit = s->code[i].bit; s 367 libavfilter/vf_readeia608.c if (s->chp) { s 381 libavfilter/vf_readeia608.c snprintf(key, sizeof(key), "lavfi.readeia608.%d.cc", s->nb_found); s 385 libavfilter/vf_readeia608.c snprintf(key, sizeof(key), "lavfi.readeia608.%d.line", s->nb_found); s 390 libavfilter/vf_readeia608.c s->nb_found++; s 397 libavfilter/vf_readeia608.c ReadEIA608Context *s = ctx->priv; s 400 libavfilter/vf_readeia608.c s->nb_found = 0; s 401 libavfilter/vf_readeia608.c for (i = s->start; i <= s->end; i++) s 409 libavfilter/vf_readeia608.c ReadEIA608Context *s = ctx->priv; s 411 libavfilter/vf_readeia608.c av_freep(&s->code); s 412 libavfilter/vf_readeia608.c av_freep(&s->line); s 160 libavfilter/vf_readvitc.c ReadVitcContext *s = ctx->priv; s 162 libavfilter/vf_readvitc.c s->threshold_black = s->thr_b * UINT8_MAX; s 163 libavfilter/vf_readvitc.c s->threshold_white = s->thr_w * UINT8_MAX; s 164 libavfilter/vf_readvitc.c if (s->threshold_black > s->threshold_white) { s 166 libavfilter/vf_readvitc.c s->thr_b, s->thr_w); s 169 libavfilter/vf_readvitc.c s->threshold_gray = s->threshold_white - ((s->threshold_white - s->threshold_black) / 2); s 171 libavfilter/vf_readvitc.c s->threshold_black, s->threshold_white, s->threshold_gray); s 179 libavfilter/vf_readvitc.c ReadVitcContext *s = ctx->priv; s 181 libavfilter/vf_readvitc.c s->grp_width = inlink->w * 5 / 48; s 183 libavfilter/vf_readvitc.c inlink->w, inlink->h, s->grp_width, s->scan_max); s 220 libavfilter/vf_readvitc.c ReadVitcContext *s = ctx->priv; s 223 libavfilter/vf_readvitc.c found = read_vitc_line(s, frame->data[0], frame->linesize[0], inlink->w, inlink->h); s 226 libavfilter/vf_readvitc.c av_dict_set(&frame->metadata, "lavfi.readvitc.tc_str", make_vitc_tc_string(s->tcbuf, s->line_data), 0); s 87 libavfilter/vf_remap.c RemapContext *s = ctx->priv; s 118 libavfilter/vf_remap.c if (!(pix_formats = ff_make_format_list(s->format ? gray_pix_fmts : pix_fmts)) || s 148 libavfilter/vf_remap.c RemapContext *s = ctx->priv; \ s 167 libavfilter/vf_remap.c const int color = s->fill_color[plane]; \ s 199 libavfilter/vf_remap.c RemapContext *s = ctx->priv; \ s 224 libavfilter/vf_remap.c dst[x * step + c] = s->fill_color[c]; \ s 242 libavfilter/vf_remap.c RemapContext *s = ctx->priv; s 250 libavfilter/vf_remap.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 251 libavfilter/vf_remap.c s->nb_components = desc->nb_components; s 254 libavfilter/vf_remap.c s->fill_color[rgba_map[0]] = s->fill_rgba[0] * factor; s 255 libavfilter/vf_remap.c s->fill_color[rgba_map[1]] = s->fill_rgba[1] * factor; s 256 libavfilter/vf_remap.c s->fill_color[rgba_map[2]] = s->fill_rgba[2] * factor; s 257 libavfilter/vf_remap.c s->fill_color[rgba_map[3]] = s->fill_rgba[3] * factor; s 259 libavfilter/vf_remap.c s->fill_color[0] = RGB_TO_Y_BT709(s->fill_rgba[0], s->fill_rgba[1], s->fill_rgba[2]) * factor; s 260 libavfilter/vf_remap.c s->fill_color[1] = RGB_TO_U_BT709(s->fill_rgba[0], s->fill_rgba[1], s->fill_rgba[2], 0) * factor; s 261 libavfilter/vf_remap.c s->fill_color[2] = RGB_TO_V_BT709(s->fill_rgba[0], s->fill_rgba[1], s->fill_rgba[2], 0) * factor; s 262 libavfilter/vf_remap.c s->fill_color[3] = s->fill_rgba[3] * factor; s 266 libavfilter/vf_remap.c if (s->nb_planes > 1 || s->nb_components == 1) { s 267 libavfilter/vf_remap.c s->remap_slice = remap_planar8_nearest_slice; s 269 libavfilter/vf_remap.c s->remap_slice = remap_packed8_nearest_slice; s 272 libavfilter/vf_remap.c if (s->nb_planes > 1 || s->nb_components == 1) { s 273 libavfilter/vf_remap.c s->remap_slice = remap_planar16_nearest_slice; s 275 libavfilter/vf_remap.c s->remap_slice = remap_packed16_nearest_slice; s 279 libavfilter/vf_remap.c s->step = av_get_padded_bits_per_pixel(desc) >> 3; s 286 libavfilter/vf_remap.c RemapContext *s = fs->opaque; s 291 libavfilter/vf_remap.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &in, 0)) < 0 || s 292 libavfilter/vf_remap.c (ret = ff_framesync_get_frame(&s->fs, 1, &xpic, 0)) < 0 || s 293 libavfilter/vf_remap.c (ret = ff_framesync_get_frame(&s->fs, 2, &ypic, 0)) < 0) s 312 libavfilter/vf_remap.c td.nb_planes = s->nb_planes; s 313 libavfilter/vf_remap.c td.nb_components = s->nb_components; s 314 libavfilter/vf_remap.c td.step = s->step; s 315 libavfilter/vf_remap.c ctx->internal->execute(ctx, s->remap_slice, &td, NULL, FFMIN(outlink->h, ff_filter_get_nb_threads(ctx))); s 317 libavfilter/vf_remap.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 325 libavfilter/vf_remap.c RemapContext *s = ctx->priv; s 346 libavfilter/vf_remap.c ret = ff_framesync_init(&s->fs, ctx, 3); s 350 libavfilter/vf_remap.c in = s->fs.in; s 363 libavfilter/vf_remap.c s->fs.opaque = s; s 364 libavfilter/vf_remap.c s->fs.on_event = process_frame; s 366 libavfilter/vf_remap.c ret = ff_framesync_configure(&s->fs); s 367 libavfilter/vf_remap.c outlink->time_base = s->fs.time_base; s 374 libavfilter/vf_remap.c RemapContext *s = ctx->priv; s 375 libavfilter/vf_remap.c return ff_framesync_activate(&s->fs); s 380 libavfilter/vf_remap.c RemapContext *s = ctx->priv; s 382 libavfilter/vf_remap.c ff_framesync_uninit(&s->fs); s 468 libavfilter/vf_removegrain.c RemoveGrainContext *s = inlink->dst->priv; s 472 libavfilter/vf_removegrain.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 474 libavfilter/vf_removegrain.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 475 libavfilter/vf_removegrain.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 476 libavfilter/vf_removegrain.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 477 libavfilter/vf_removegrain.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 479 libavfilter/vf_removegrain.c for (i = 0; i < s->nb_planes; i++) { s 480 libavfilter/vf_removegrain.c switch (s->mode[i]) { s 481 libavfilter/vf_removegrain.c case 1: s->rg[i] = mode01; break; s 482 libavfilter/vf_removegrain.c case 2: s->rg[i] = mode02; break; s 483 libavfilter/vf_removegrain.c case 3: s->rg[i] = mode03; break; s 484 libavfilter/vf_removegrain.c case 4: s->rg[i] = mode04; break; s 485 libavfilter/vf_removegrain.c case 5: s->rg[i] = mode05; break; s 486 libavfilter/vf_removegrain.c case 6: s->rg[i] = mode06; break; s 487 libavfilter/vf_removegrain.c case 7: s->rg[i] = mode07; break; s 488 libavfilter/vf_removegrain.c case 8: s->rg[i] = mode08; break; s 489 libavfilter/vf_removegrain.c case 9: s->rg[i] = mode09; break; s 490 libavfilter/vf_removegrain.c case 10: s->rg[i] = mode10; break; s 491 libavfilter/vf_removegrain.c case 11: s->rg[i] = mode1112; break; s 492 libavfilter/vf_removegrain.c case 12: s->rg[i] = mode1112; break; s 493 libavfilter/vf_removegrain.c case 13: s->skip_odd = 1; s 494 libavfilter/vf_removegrain.c s->rg[i] = mode1314; break; s 495 libavfilter/vf_removegrain.c case 14: s->skip_even = 1; s 496 libavfilter/vf_removegrain.c s->rg[i] = mode1314; break; s 497 libavfilter/vf_removegrain.c case 15: s->skip_odd = 1; s 498 libavfilter/vf_removegrain.c s->rg[i] = mode1516; break; s 499 libavfilter/vf_removegrain.c case 16: s->skip_even = 1; s 500 libavfilter/vf_removegrain.c s->rg[i] = mode1516; break; s 501 libavfilter/vf_removegrain.c case 17: s->rg[i] = mode17; break; s 502 libavfilter/vf_removegrain.c case 18: s->rg[i] = mode18; break; s 503 libavfilter/vf_removegrain.c case 19: s->rg[i] = mode19; break; s 504 libavfilter/vf_removegrain.c case 20: s->rg[i] = mode20; break; s 505 libavfilter/vf_removegrain.c case 21: s->rg[i] = mode21; break; s 506 libavfilter/vf_removegrain.c case 22: s->rg[i] = mode22; break; s 507 libavfilter/vf_removegrain.c case 23: s->rg[i] = mode23; break; s 508 libavfilter/vf_removegrain.c case 24: s->rg[i] = mode24; break; s 513 libavfilter/vf_removegrain.c ff_removegrain_init_x86(s); s 525 libavfilter/vf_removegrain.c RemoveGrainContext *s = ctx->priv; s 530 libavfilter/vf_removegrain.c const int height = s->planeheight[i]; s 547 libavfilter/vf_removegrain.c if (s->skip_even && !(y & 1)) { s 548 libavfilter/vf_removegrain.c memcpy(dst, src, s->planewidth[i]); s 551 libavfilter/vf_removegrain.c if (s->skip_odd && y & 1) { s 552 libavfilter/vf_removegrain.c memcpy(dst, src, s->planewidth[i]); s 558 libavfilter/vf_removegrain.c if (s->fl[i]) { s 559 libavfilter/vf_removegrain.c int w_asm = (s->planewidth[i] - 2) & ~15; s 561 libavfilter/vf_removegrain.c s->fl[i](dst, src, in->linesize[i], w_asm); s 569 libavfilter/vf_removegrain.c for (; x < s->planewidth[i] - 1; x++) { s 580 libavfilter/vf_removegrain.c const int res = s->rg[i](c, a1, a2, a3, a4, a5, a6, a7, a8); s 595 libavfilter/vf_removegrain.c RemoveGrainContext *s = ctx->priv; s 607 libavfilter/vf_removegrain.c for (i = 0; i < s->nb_planes; i++) { s 611 libavfilter/vf_removegrain.c if (s->mode[i] == 0) { s 614 libavfilter/vf_removegrain.c s->planewidth[i], s->planeheight[i]); s 618 libavfilter/vf_removegrain.c memcpy(dst, src, s->planewidth[i]); s 622 libavfilter/vf_removegrain.c FFMIN(s->planeheight[i], ff_filter_get_nb_threads(ctx))); s 624 libavfilter/vf_removegrain.c src = in->data[i] + (s->planeheight[i] - 1) * in->linesize[i]; s 625 libavfilter/vf_removegrain.c dst = out->data[i] + (s->planeheight[i] - 1) * out->linesize[i]; s 626 libavfilter/vf_removegrain.c memcpy(dst, src, s->planewidth[i]); s 284 libavfilter/vf_removelogo.c RemovelogoContext *s = ctx->priv; s 290 libavfilter/vf_removelogo.c if (!s->filename) { s 296 libavfilter/vf_removelogo.c if ((ret = load_mask(&s->full_mask_data, &w, &h, s->filename, ctx)) < 0) s 298 libavfilter/vf_removelogo.c s->mask_w = w; s 299 libavfilter/vf_removelogo.c s->mask_h = h; s 301 libavfilter/vf_removelogo.c convert_mask_to_strength_mask(s->full_mask_data, w, w, h, s 305 libavfilter/vf_removelogo.c if (!(s->half_mask_data = av_mallocz(w/2 * h/2))) s 307 libavfilter/vf_removelogo.c generate_half_size_image(s->full_mask_data, w, s 308 libavfilter/vf_removelogo.c s->half_mask_data, w/2, s 311 libavfilter/vf_removelogo.c s->max_mask_size = FFMAX(full_max_mask_size, half_max_mask_size); s 317 libavfilter/vf_removelogo.c mask = (int ***)av_malloc_array(s->max_mask_size + 1, sizeof(int **)); s 321 libavfilter/vf_removelogo.c for (a = 0; a <= s->max_mask_size; a++) { s 341 libavfilter/vf_removelogo.c s->mask = mask; s 345 libavfilter/vf_removelogo.c ff_calculate_bounding_box(&s->full_mask_bbox, s->full_mask_data, w, w, h, 0); s 346 libavfilter/vf_removelogo.c ff_calculate_bounding_box(&s->half_mask_bbox, s->half_mask_data, w/2, w/2, h/2, 0); s 350 libavfilter/vf_removelogo.c s->mask_type##_mask_bbox.x1, s->mask_type##_mask_bbox.x2, \ s 351 libavfilter/vf_removelogo.c s->mask_type##_mask_bbox.y1, s->mask_type##_mask_bbox.y2, \ s 362 libavfilter/vf_removelogo.c RemovelogoContext *s = ctx->priv; s 364 libavfilter/vf_removelogo.c if (inlink->w != s->mask_w || inlink->h != s->mask_h) { s 367 libavfilter/vf_removelogo.c s->mask_w, s->mask_h, inlink->w, inlink->h); s 497 libavfilter/vf_removelogo.c RemovelogoContext *s = inlink->dst->priv; s 514 libavfilter/vf_removelogo.c blur_image(s->mask, s 517 libavfilter/vf_removelogo.c s->full_mask_data, inlink->w, s 518 libavfilter/vf_removelogo.c inlink->w, inlink->h, direct, &s->full_mask_bbox); s 519 libavfilter/vf_removelogo.c blur_image(s->mask, s 522 libavfilter/vf_removelogo.c s->half_mask_data, inlink->w/2, s 523 libavfilter/vf_removelogo.c inlink->w/2, inlink->h/2, direct, &s->half_mask_bbox); s 524 libavfilter/vf_removelogo.c blur_image(s->mask, s 527 libavfilter/vf_removelogo.c s->half_mask_data, inlink->w/2, s 528 libavfilter/vf_removelogo.c inlink->w/2, inlink->h/2, direct, &s->half_mask_bbox); s 538 libavfilter/vf_removelogo.c RemovelogoContext *s = ctx->priv; s 541 libavfilter/vf_removelogo.c av_freep(&s->full_mask_data); s 542 libavfilter/vf_removelogo.c av_freep(&s->half_mask_data); s 544 libavfilter/vf_removelogo.c if (s->mask) { s 546 libavfilter/vf_removelogo.c for (a = 0; a <= s->max_mask_size; a++) { s 549 libavfilter/vf_removelogo.c av_freep(&s->mask[a][b + a]); /* Free a scanline. */ s 551 libavfilter/vf_removelogo.c av_freep(&s->mask[a]); s 554 libavfilter/vf_removelogo.c av_freep(&s->mask); s 36 libavfilter/vf_repeatfields.c RepeatFieldsContext *s = ctx->priv; s 38 libavfilter/vf_repeatfields.c av_frame_free(&s->frame); s 61 libavfilter/vf_repeatfields.c RepeatFieldsContext *s = inlink->dst->priv; s 65 libavfilter/vf_repeatfields.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 68 libavfilter/vf_repeatfields.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 69 libavfilter/vf_repeatfields.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 71 libavfilter/vf_repeatfields.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 89 libavfilter/vf_repeatfields.c RepeatFieldsContext *s = ctx->priv; s 92 libavfilter/vf_repeatfields.c int state = s->state; s 94 libavfilter/vf_repeatfields.c if (!s->frame) { s 95 libavfilter/vf_repeatfields.c s->frame = av_frame_clone(in); s 96 libavfilter/vf_repeatfields.c if (!s->frame) s 98 libavfilter/vf_repeatfields.c s->frame->pts = AV_NOPTS_VALUE; s 101 libavfilter/vf_repeatfields.c out = s->frame; s 123 libavfilter/vf_repeatfields.c for (i = 0; i < s->nb_planes; i++) { s 126 libavfilter/vf_repeatfields.c s->linesize[i], s->planeheight[i] / 2); s 131 libavfilter/vf_repeatfields.c for (i = 0; i < s->nb_planes; i++) { s 135 libavfilter/vf_repeatfields.c s->linesize[i], s->planeheight[i] / 2); s 152 libavfilter/vf_repeatfields.c for (i = 0; i < s->nb_planes; i++) { s 155 libavfilter/vf_repeatfields.c s->linesize[i], s->planeheight[i] / 2); s 160 libavfilter/vf_repeatfields.c s->state = state; s 92 libavfilter/vf_rotate.c int c, s; s 430 libavfilter/vf_rotate.c const int c = td->c, s = td->s; s 433 libavfilter/vf_rotate.c int xprime = td->xprime + start * s; s 500 libavfilter/vf_rotate.c y -= s; s 503 libavfilter/vf_rotate.c xprime += s; s 516 libavfilter/vf_rotate.c int angle_int, s, c, plane; s 534 libavfilter/vf_rotate.c s = int_sin(angle_int); s 551 libavfilter/vf_rotate.c .xi = -(outw-1) * c / 2, .yi = (outw-1) * s / 2, s 552 libavfilter/vf_rotate.c .xprime = -(outh-1) * s / 2, s 554 libavfilter/vf_rotate.c .plane = plane, .c = c, .s = s }; s 110 libavfilter/vf_sab.c SabContext *s = ctx->priv; s 113 libavfilter/vf_sab.c if (s->chroma.radius < RADIUS_MIN) s 114 libavfilter/vf_sab.c s->chroma.radius = s->luma.radius; s 115 libavfilter/vf_sab.c if (s->chroma.pre_filter_radius < PRE_FILTER_RADIUS_MIN) s 116 libavfilter/vf_sab.c s->chroma.pre_filter_radius = s->luma.pre_filter_radius; s 117 libavfilter/vf_sab.c if (s->chroma.strength < STRENGTH_MIN) s 118 libavfilter/vf_sab.c s->chroma.strength = s->luma.strength; s 120 libavfilter/vf_sab.c s->luma.quality = s->chroma.quality = 3.0; s 121 libavfilter/vf_sab.c s->sws_flags = SWS_POINT; s 126 libavfilter/vf_sab.c s->luma .radius, s->luma .pre_filter_radius, s->luma .strength, s 127 libavfilter/vf_sab.c s->chroma.radius, s->chroma.pre_filter_radius, s->chroma.strength); s 143 libavfilter/vf_sab.c SabContext *s = ctx->priv; s 145 libavfilter/vf_sab.c close_filter_param(&s->luma); s 146 libavfilter/vf_sab.c close_filter_param(&s->chroma); s 203 libavfilter/vf_sab.c SabContext *s = inlink->dst->priv; s 207 libavfilter/vf_sab.c s->hsub = desc->log2_chroma_w; s 208 libavfilter/vf_sab.c s->vsub = desc->log2_chroma_h; s 210 libavfilter/vf_sab.c close_filter_param(&s->luma); s 211 libavfilter/vf_sab.c ret = open_filter_param(&s->luma, inlink->w, inlink->h, s->sws_flags); s 215 libavfilter/vf_sab.c close_filter_param(&s->chroma); s 216 libavfilter/vf_sab.c ret = open_filter_param(&s->chroma, s 217 libavfilter/vf_sab.c AV_CEIL_RSHIFT(inlink->w, s->hsub), s 218 libavfilter/vf_sab.c AV_CEIL_RSHIFT(inlink->h, s->vsub), s->sws_flags); s 284 libavfilter/vf_sab.c SabContext *s = inlink->dst->priv; s 296 libavfilter/vf_sab.c inlink->w, inlink->h, &s->luma); s 298 libavfilter/vf_sab.c int cw = AV_CEIL_RSHIFT(inlink->w, s->hsub); s 299 libavfilter/vf_sab.c int ch = AV_CEIL_RSHIFT(inlink->h, s->vsub); s 300 libavfilter/vf_sab.c blur(outpic->data[1], outpic->linesize[1], inpic->data[1], inpic->linesize[1], cw, ch, &s->chroma); s 301 libavfilter/vf_sab.c blur(outpic->data[2], outpic->linesize[2], inpic->data[2], inpic->linesize[2], cw, ch, &s->chroma); s 382 libavfilter/vf_scale.c static const int *parse_yuv_type(const char *s, enum AVColorSpace colorspace) s 384 libavfilter/vf_scale.c if (!s) s 385 libavfilter/vf_scale.c s = "bt601"; s 387 libavfilter/vf_scale.c if (s && strstr(s, "bt709")) { s 389 libavfilter/vf_scale.c } else if (s && strstr(s, "fcc")) { s 391 libavfilter/vf_scale.c } else if (s && strstr(s, "smpte240m")) { s 393 libavfilter/vf_scale.c } else if (s && (strstr(s, "bt601") || strstr(s, "bt470") || strstr(s, "smpte170m"))) { s 395 libavfilter/vf_scale.c } else if (s && strstr(s, "bt2020")) { s 535 libavfilter/vf_scale.c struct SwsContext **s = swscs[i]; s 536 libavfilter/vf_scale.c *s = sws_alloc_context(); s 537 libavfilter/vf_scale.c if (!*s) s 540 libavfilter/vf_scale.c av_opt_set_int(*s, "srcw", inlink0 ->w, 0); s 541 libavfilter/vf_scale.c av_opt_set_int(*s, "srch", inlink0 ->h >> !!i, 0); s 542 libavfilter/vf_scale.c av_opt_set_int(*s, "src_format", inlink0->format, 0); s 543 libavfilter/vf_scale.c av_opt_set_int(*s, "dstw", outlink->w, 0); s 544 libavfilter/vf_scale.c av_opt_set_int(*s, "dsth", outlink->h >> !!i, 0); s 545 libavfilter/vf_scale.c av_opt_set_int(*s, "dst_format", outfmt, 0); s 546 libavfilter/vf_scale.c av_opt_set_int(*s, "sws_flags", scale->flags, 0); s 547 libavfilter/vf_scale.c av_opt_set_int(*s, "param0", scale->param[0], 0); s 548 libavfilter/vf_scale.c av_opt_set_int(*s, "param1", scale->param[1], 0); s 550 libavfilter/vf_scale.c av_opt_set_int(*s, "src_range", s 553 libavfilter/vf_scale.c av_opt_set_int(*s, "dst_range", s 559 libavfilter/vf_scale.c if ((ret = av_opt_set(*s, e->key, e->value, 0)) < 0) s 574 libavfilter/vf_scale.c av_opt_set_int(*s, "src_h_chr_pos", scale->in_h_chr_pos, 0); s 575 libavfilter/vf_scale.c av_opt_set_int(*s, "src_v_chr_pos", in_v_chr_pos, 0); s 576 libavfilter/vf_scale.c av_opt_set_int(*s, "dst_h_chr_pos", scale->out_h_chr_pos, 0); s 577 libavfilter/vf_scale.c av_opt_set_int(*s, "dst_v_chr_pos", out_v_chr_pos, 0); s 579 libavfilter/vf_scale.c if ((ret = sws_init_context(*s, NULL, NULL)) < 0) s 56 libavfilter/vf_scale_cuda.c #define CHECK_CU(x) FF_CUDA_CHECK_DL(ctx, s->hwctx->internal->cuda_dl, x) s 105 libavfilter/vf_scale_cuda.c CUDAScaleContext *s = ctx->priv; s 107 libavfilter/vf_scale_cuda.c s->format = AV_PIX_FMT_NONE; s 108 libavfilter/vf_scale_cuda.c s->frame = av_frame_alloc(); s 109 libavfilter/vf_scale_cuda.c if (!s->frame) s 112 libavfilter/vf_scale_cuda.c s->tmp_frame = av_frame_alloc(); s 113 libavfilter/vf_scale_cuda.c if (!s->tmp_frame) s 121 libavfilter/vf_scale_cuda.c CUDAScaleContext *s = ctx->priv; s 123 libavfilter/vf_scale_cuda.c av_frame_free(&s->frame); s 124 libavfilter/vf_scale_cuda.c av_buffer_unref(&s->frames_ctx); s 125 libavfilter/vf_scale_cuda.c av_frame_free(&s->tmp_frame); s 138 libavfilter/vf_scale_cuda.c static av_cold int init_stage(CUDAScaleContext *s, AVBufferRef *device_ctx) s 145 libavfilter/vf_scale_cuda.c av_pix_fmt_get_chroma_sub_sample(s->in_fmt, &in_sw, &in_sh); s 146 libavfilter/vf_scale_cuda.c av_pix_fmt_get_chroma_sub_sample(s->out_fmt, &out_sw, &out_sh); s 147 libavfilter/vf_scale_cuda.c if (!s->planes_out[0].width) { s 148 libavfilter/vf_scale_cuda.c s->planes_out[0].width = s->planes_in[0].width; s 149 libavfilter/vf_scale_cuda.c s->planes_out[0].height = s->planes_in[0].height; s 152 libavfilter/vf_scale_cuda.c for (i = 1; i < FF_ARRAY_ELEMS(s->planes_in); i++) { s 153 libavfilter/vf_scale_cuda.c s->planes_in[i].width = s->planes_in[0].width >> in_sw; s 154 libavfilter/vf_scale_cuda.c s->planes_in[i].height = s->planes_in[0].height >> in_sh; s 155 libavfilter/vf_scale_cuda.c s->planes_out[i].width = s->planes_out[0].width >> out_sw; s 156 libavfilter/vf_scale_cuda.c s->planes_out[i].height = s->planes_out[0].height >> out_sh; s 165 libavfilter/vf_scale_cuda.c out_ctx->sw_format = s->out_fmt; s 166 libavfilter/vf_scale_cuda.c out_ctx->width = FFALIGN(s->planes_out[0].width, 32); s 167 libavfilter/vf_scale_cuda.c out_ctx->height = FFALIGN(s->planes_out[0].height, 32); s 173 libavfilter/vf_scale_cuda.c av_frame_unref(s->frame); s 174 libavfilter/vf_scale_cuda.c ret = av_hwframe_get_buffer(out_ref, s->frame, 0); s 178 libavfilter/vf_scale_cuda.c s->frame->width = s->planes_out[0].width; s 179 libavfilter/vf_scale_cuda.c s->frame->height = s->planes_out[0].height; s 181 libavfilter/vf_scale_cuda.c av_buffer_unref(&s->frames_ctx); s 182 libavfilter/vf_scale_cuda.c s->frames_ctx = out_ref; s 203 libavfilter/vf_scale_cuda.c CUDAScaleContext *s = ctx->priv; s 218 libavfilter/vf_scale_cuda.c out_format = (s->format == AV_PIX_FMT_NONE) ? in_format : s->format; s 232 libavfilter/vf_scale_cuda.c s->passthrough = 1; s 234 libavfilter/vf_scale_cuda.c s->in_fmt = in_format; s 235 libavfilter/vf_scale_cuda.c s->out_fmt = out_format; s 237 libavfilter/vf_scale_cuda.c s->planes_in[0].width = in_width; s 238 libavfilter/vf_scale_cuda.c s->planes_in[0].height = in_height; s 239 libavfilter/vf_scale_cuda.c s->planes_out[0].width = out_width; s 240 libavfilter/vf_scale_cuda.c s->planes_out[0].height = out_height; s 242 libavfilter/vf_scale_cuda.c ret = init_stage(s, in_frames_ctx->device_ref); s 246 libavfilter/vf_scale_cuda.c ctx->outputs[0]->hw_frames_ctx = av_buffer_ref(s->frames_ctx); s 257 libavfilter/vf_scale_cuda.c CUDAScaleContext *s = ctx->priv; s 267 libavfilter/vf_scale_cuda.c s->hwctx = device_hwctx; s 268 libavfilter/vf_scale_cuda.c s->cu_stream = s->hwctx->stream; s 274 libavfilter/vf_scale_cuda.c ret = CHECK_CU(cu->cuModuleLoadData(&s->cu_module, vf_scale_cuda_ptx)); s 278 libavfilter/vf_scale_cuda.c CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_uchar, s->cu_module, "Subsample_Bilinear_uchar")); s 282 libavfilter/vf_scale_cuda.c CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_uchar2, s->cu_module, "Subsample_Bilinear_uchar2")); s 286 libavfilter/vf_scale_cuda.c CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_uchar4, s->cu_module, "Subsample_Bilinear_uchar4")); s 290 libavfilter/vf_scale_cuda.c CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_ushort, s->cu_module, "Subsample_Bilinear_ushort")); s 294 libavfilter/vf_scale_cuda.c CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_ushort2, s->cu_module, "Subsample_Bilinear_ushort2")); s 298 libavfilter/vf_scale_cuda.c CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_ushort4, s->cu_module, "Subsample_Bilinear_ushort4")); s 305 libavfilter/vf_scale_cuda.c if ((ret = ff_scale_eval_dimensions(s, s 306 libavfilter/vf_scale_cuda.c s->w_expr, s->h_expr, s 312 libavfilter/vf_scale_cuda.c s->force_original_aspect_ratio, s->force_divisible_by); s 347 libavfilter/vf_scale_cuda.c CUDAScaleContext *s = ctx->priv; s 348 libavfilter/vf_scale_cuda.c CudaFunctions *cu = s->hwctx->internal->cuda_dl; s 377 libavfilter/vf_scale_cuda.c BLOCKX, BLOCKY, 1, 0, s->cu_stream, args_uchar, NULL)); s 390 libavfilter/vf_scale_cuda.c CUDAScaleContext *s = ctx->priv; s 394 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_uchar, 1, s 398 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_uchar, 1, s 402 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_uchar, 1, s 408 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_uchar, 1, s 412 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_uchar, 1, s 416 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_uchar, 1, s 422 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_ushort, 1, s 426 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_ushort, 1, s 430 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_ushort, 1, s 436 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_uchar, 1, s 440 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_uchar2, 2, s 446 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_ushort, 1, s 450 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_ushort2, 2, s 456 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_ushort, 1, s 460 libavfilter/vf_scale_cuda.c call_resize_kernel(ctx, s->cu_func_ushort2, 2, s 474 libavfilter/vf_scale_cuda.c CUDAScaleContext *s = ctx->priv; s 478 libavfilter/vf_scale_cuda.c ret = scalecuda_resize(ctx, s->frame, src); s 482 libavfilter/vf_scale_cuda.c src = s->frame; s 483 libavfilter/vf_scale_cuda.c ret = av_hwframe_get_buffer(src->hw_frames_ctx, s->tmp_frame, 0); s 487 libavfilter/vf_scale_cuda.c av_frame_move_ref(out, s->frame); s 488 libavfilter/vf_scale_cuda.c av_frame_move_ref(s->frame, s->tmp_frame); s 490 libavfilter/vf_scale_cuda.c s->frame->width = s->planes_out[0].width; s 491 libavfilter/vf_scale_cuda.c s->frame->height = s->planes_out[0].height; s 503 libavfilter/vf_scale_cuda.c CUDAScaleContext *s = ctx->priv; s 505 libavfilter/vf_scale_cuda.c CudaFunctions *cu = s->hwctx->internal->cuda_dl; s 517 libavfilter/vf_scale_cuda.c ret = CHECK_CU(cu->cuCtxPushCurrent(s->hwctx->cuda_ctx)); s 109 libavfilter/vf_scale_npp.c NPPScaleContext *s = ctx->priv; s 112 libavfilter/vf_scale_npp.c if (!strcmp(s->format_str, "same")) { s 113 libavfilter/vf_scale_npp.c s->format = AV_PIX_FMT_NONE; s 115 libavfilter/vf_scale_npp.c s->format = av_get_pix_fmt(s->format_str); s 116 libavfilter/vf_scale_npp.c if (s->format == AV_PIX_FMT_NONE) { s 117 libavfilter/vf_scale_npp.c av_log(ctx, AV_LOG_ERROR, "Unrecognized pixel format: %s\n", s->format_str); s 122 libavfilter/vf_scale_npp.c for (i = 0; i < FF_ARRAY_ELEMS(s->stages); i++) { s 123 libavfilter/vf_scale_npp.c s->stages[i].frame = av_frame_alloc(); s 124 libavfilter/vf_scale_npp.c if (!s->stages[i].frame) s 127 libavfilter/vf_scale_npp.c s->tmp_frame = av_frame_alloc(); s 128 libavfilter/vf_scale_npp.c if (!s->tmp_frame) s 136 libavfilter/vf_scale_npp.c NPPScaleContext *s = ctx->priv; s 139 libavfilter/vf_scale_npp.c for (i = 0; i < FF_ARRAY_ELEMS(s->stages); i++) { s 140 libavfilter/vf_scale_npp.c av_frame_free(&s->stages[i].frame); s 141 libavfilter/vf_scale_npp.c av_buffer_unref(&s->stages[i].frames_ctx); s 143 libavfilter/vf_scale_npp.c av_frame_free(&s->tmp_frame); s 235 libavfilter/vf_scale_npp.c NPPScaleContext *s = ctx->priv; s 253 libavfilter/vf_scale_npp.c out_format = (s->format == AV_PIX_FMT_NONE) ? in_format : s->format; s 275 libavfilter/vf_scale_npp.c s->stages[STAGE_RESIZE].stage_needed = 1; s 277 libavfilter/vf_scale_npp.c if (s->interp_algo == NPPI_INTER_SUPER && s 279 libavfilter/vf_scale_npp.c s->interp_algo = NPPI_INTER_LANCZOS; s 282 libavfilter/vf_scale_npp.c if (s->interp_algo == NPPI_INTER_SUPER && s 284 libavfilter/vf_scale_npp.c s->interp_algo = NPPI_INTER_CUBIC; s 289 libavfilter/vf_scale_npp.c if (!s->stages[STAGE_RESIZE].stage_needed && in_format == out_format) s 290 libavfilter/vf_scale_npp.c s->passthrough = 1; s 292 libavfilter/vf_scale_npp.c if (!s->passthrough) { s 294 libavfilter/vf_scale_npp.c s->stages[STAGE_DEINTERLEAVE].stage_needed = 1; s 296 libavfilter/vf_scale_npp.c s->stages[STAGE_INTERLEAVE].stage_needed = 1; s 299 libavfilter/vf_scale_npp.c s->stages[STAGE_DEINTERLEAVE].in_fmt = in_format; s 300 libavfilter/vf_scale_npp.c s->stages[STAGE_DEINTERLEAVE].out_fmt = in_deinterleaved_format; s 301 libavfilter/vf_scale_npp.c s->stages[STAGE_DEINTERLEAVE].planes_in[0].width = in_width; s 302 libavfilter/vf_scale_npp.c s->stages[STAGE_DEINTERLEAVE].planes_in[0].height = in_height; s 304 libavfilter/vf_scale_npp.c s->stages[STAGE_RESIZE].in_fmt = in_deinterleaved_format; s 305 libavfilter/vf_scale_npp.c s->stages[STAGE_RESIZE].out_fmt = out_deinterleaved_format; s 306 libavfilter/vf_scale_npp.c s->stages[STAGE_RESIZE].planes_in[0].width = in_width; s 307 libavfilter/vf_scale_npp.c s->stages[STAGE_RESIZE].planes_in[0].height = in_height; s 308 libavfilter/vf_scale_npp.c s->stages[STAGE_RESIZE].planes_out[0].width = out_width; s 309 libavfilter/vf_scale_npp.c s->stages[STAGE_RESIZE].planes_out[0].height = out_height; s 311 libavfilter/vf_scale_npp.c s->stages[STAGE_INTERLEAVE].in_fmt = out_deinterleaved_format; s 312 libavfilter/vf_scale_npp.c s->stages[STAGE_INTERLEAVE].out_fmt = out_format; s 313 libavfilter/vf_scale_npp.c s->stages[STAGE_INTERLEAVE].planes_in[0].width = out_width; s 314 libavfilter/vf_scale_npp.c s->stages[STAGE_INTERLEAVE].planes_in[0].height = out_height; s 317 libavfilter/vf_scale_npp.c for (i = 0; i < FF_ARRAY_ELEMS(s->stages); i++) { s 318 libavfilter/vf_scale_npp.c if (!s->stages[i].stage_needed) s 321 libavfilter/vf_scale_npp.c ret = init_stage(&s->stages[i], in_frames_ctx->device_ref); s 329 libavfilter/vf_scale_npp.c ctx->outputs[0]->hw_frames_ctx = av_buffer_ref(s->stages[last_stage].frames_ctx); s 343 libavfilter/vf_scale_npp.c NPPScaleContext *s = ctx->priv; s 347 libavfilter/vf_scale_npp.c if ((ret = ff_scale_eval_dimensions(s, s 348 libavfilter/vf_scale_npp.c s->w_expr, s->h_expr, s 354 libavfilter/vf_scale_npp.c s->force_original_aspect_ratio, s->force_divisible_by); s 410 libavfilter/vf_scale_npp.c NPPScaleContext *s = ctx->priv; s 425 libavfilter/vf_scale_npp.c 0.0, 0.0, s->interp_algo); s 469 libavfilter/vf_scale_npp.c NPPScaleContext *s = ctx->priv; s 473 libavfilter/vf_scale_npp.c for (i = 0; i < FF_ARRAY_ELEMS(s->stages); i++) { s 474 libavfilter/vf_scale_npp.c if (!s->stages[i].stage_needed) s 477 libavfilter/vf_scale_npp.c ret = nppscale_process[i](ctx, &s->stages[i], s->stages[i].frame, src); s 481 libavfilter/vf_scale_npp.c src = s->stages[i].frame; s 487 libavfilter/vf_scale_npp.c ret = av_hwframe_get_buffer(src->hw_frames_ctx, s->tmp_frame, 0); s 492 libavfilter/vf_scale_npp.c av_frame_move_ref(src, s->tmp_frame); s 504 libavfilter/vf_scale_npp.c NPPScaleContext *s = ctx->priv; s 513 libavfilter/vf_scale_npp.c if (s->passthrough) s 123 libavfilter/vf_scale_qsv.c QSVScaleContext *s = ctx->priv; s 125 libavfilter/vf_scale_qsv.c if (!strcmp(s->format_str, "same")) { s 126 libavfilter/vf_scale_qsv.c s->format = AV_PIX_FMT_NONE; s 128 libavfilter/vf_scale_qsv.c s->format = av_get_pix_fmt(s->format_str); s 129 libavfilter/vf_scale_qsv.c if (s->format == AV_PIX_FMT_NONE) { s 130 libavfilter/vf_scale_qsv.c av_log(ctx, AV_LOG_ERROR, "Unrecognized pixel format: %s\n", s->format_str); s 140 libavfilter/vf_scale_qsv.c QSVScaleContext *s = ctx->priv; s 142 libavfilter/vf_scale_qsv.c if (s->session) { s 143 libavfilter/vf_scale_qsv.c MFXClose(s->session); s 144 libavfilter/vf_scale_qsv.c s->session = NULL; s 147 libavfilter/vf_scale_qsv.c av_freep(&s->mem_ids_in); s 148 libavfilter/vf_scale_qsv.c av_freep(&s->mem_ids_out); s 149 libavfilter/vf_scale_qsv.c s->nb_mem_ids_in = 0; s 150 libavfilter/vf_scale_qsv.c s->nb_mem_ids_out = 0; s 152 libavfilter/vf_scale_qsv.c av_freep(&s->surface_ptrs_in); s 153 libavfilter/vf_scale_qsv.c av_freep(&s->surface_ptrs_out); s 154 libavfilter/vf_scale_qsv.c s->nb_surface_ptrs_in = 0; s 155 libavfilter/vf_scale_qsv.c s->nb_surface_ptrs_out = 0; s 175 libavfilter/vf_scale_qsv.c QSVScaleContext *s = ctx->priv; s 195 libavfilter/vf_scale_qsv.c out_format = (s->format == AV_PIX_FMT_NONE) ? in_format : s->format; s 232 libavfilter/vf_scale_qsv.c QSVScaleContext *s = ctx->priv; s 240 libavfilter/vf_scale_qsv.c resp->mids = s->mem_ids_in; s 241 libavfilter/vf_scale_qsv.c resp->NumFrameActual = s->nb_mem_ids_in; s 243 libavfilter/vf_scale_qsv.c resp->mids = s->mem_ids_out; s 244 libavfilter/vf_scale_qsv.c resp->NumFrameActual = s->nb_mem_ids_out; s 280 libavfilter/vf_scale_qsv.c QSVScaleContext *s = ctx->priv; s 297 libavfilter/vf_scale_qsv.c s->num_ext_buf = 0; s 323 libavfilter/vf_scale_qsv.c err = MFXInit(impl, &ver, &s->session); s 330 libavfilter/vf_scale_qsv.c err = MFXVideoCORE_SetHandle(s->session, handle_type, handle); s 336 libavfilter/vf_scale_qsv.c err = MFXJoinSession(device_hwctx->session, s->session); s 344 libavfilter/vf_scale_qsv.c s->surface_ptrs_in = av_mallocz_array(in_frames_hwctx->nb_surfaces, s 345 libavfilter/vf_scale_qsv.c sizeof(*s->surface_ptrs_in)); s 346 libavfilter/vf_scale_qsv.c if (!s->surface_ptrs_in) s 349 libavfilter/vf_scale_qsv.c s->surface_ptrs_in[i] = in_frames_hwctx->surfaces + i; s 350 libavfilter/vf_scale_qsv.c s->nb_surface_ptrs_in = in_frames_hwctx->nb_surfaces; s 352 libavfilter/vf_scale_qsv.c s->surface_ptrs_out = av_mallocz_array(out_frames_hwctx->nb_surfaces, s 353 libavfilter/vf_scale_qsv.c sizeof(*s->surface_ptrs_out)); s 354 libavfilter/vf_scale_qsv.c if (!s->surface_ptrs_out) s 357 libavfilter/vf_scale_qsv.c s->surface_ptrs_out[i] = out_frames_hwctx->surfaces + i; s 358 libavfilter/vf_scale_qsv.c s->nb_surface_ptrs_out = out_frames_hwctx->nb_surfaces; s 360 libavfilter/vf_scale_qsv.c s->opaque_alloc.In.Surfaces = s->surface_ptrs_in; s 361 libavfilter/vf_scale_qsv.c s->opaque_alloc.In.NumSurface = s->nb_surface_ptrs_in; s 362 libavfilter/vf_scale_qsv.c s->opaque_alloc.In.Type = in_frames_hwctx->frame_type; s 364 libavfilter/vf_scale_qsv.c s->opaque_alloc.Out.Surfaces = s->surface_ptrs_out; s 365 libavfilter/vf_scale_qsv.c s->opaque_alloc.Out.NumSurface = s->nb_surface_ptrs_out; s 366 libavfilter/vf_scale_qsv.c s->opaque_alloc.Out.Type = out_frames_hwctx->frame_type; s 368 libavfilter/vf_scale_qsv.c s->opaque_alloc.Header.BufferId = MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION; s 369 libavfilter/vf_scale_qsv.c s->opaque_alloc.Header.BufferSz = sizeof(s->opaque_alloc); s 371 libavfilter/vf_scale_qsv.c s->ext_buffers[s->num_ext_buf++] = (mfxExtBuffer*)&s->opaque_alloc; s 384 libavfilter/vf_scale_qsv.c s->mem_ids_in = av_mallocz_array(in_frames_hwctx->nb_surfaces, s 385 libavfilter/vf_scale_qsv.c sizeof(*s->mem_ids_in)); s 386 libavfilter/vf_scale_qsv.c if (!s->mem_ids_in) s 389 libavfilter/vf_scale_qsv.c s->mem_ids_in[i] = in_frames_hwctx->surfaces[i].Data.MemId; s 390 libavfilter/vf_scale_qsv.c s->nb_mem_ids_in = in_frames_hwctx->nb_surfaces; s 392 libavfilter/vf_scale_qsv.c s->mem_ids_out = av_mallocz_array(out_frames_hwctx->nb_surfaces, s 393 libavfilter/vf_scale_qsv.c sizeof(*s->mem_ids_out)); s 394 libavfilter/vf_scale_qsv.c if (!s->mem_ids_out) s 397 libavfilter/vf_scale_qsv.c s->mem_ids_out[i] = out_frames_hwctx->surfaces[i].Data.MemId; s 398 libavfilter/vf_scale_qsv.c s->nb_mem_ids_out = out_frames_hwctx->nb_surfaces; s 400 libavfilter/vf_scale_qsv.c err = MFXVideoCORE_SetFrameAllocator(s->session, &frame_allocator); s 408 libavfilter/vf_scale_qsv.c memset(&s->scale_conf, 0, sizeof(mfxExtVPPScaling)); s 409 libavfilter/vf_scale_qsv.c s->scale_conf.Header.BufferId = MFX_EXTBUFF_VPP_SCALING; s 410 libavfilter/vf_scale_qsv.c s->scale_conf.Header.BufferSz = sizeof(mfxExtVPPScaling); s 411 libavfilter/vf_scale_qsv.c s->scale_conf.ScalingMode = s->mode; s 412 libavfilter/vf_scale_qsv.c s->ext_buffers[s->num_ext_buf++] = (mfxExtBuffer*)&s->scale_conf; s 413 libavfilter/vf_scale_qsv.c av_log(ctx, AV_LOG_VERBOSE, "Scaling mode: %d\n", s->mode); s 416 libavfilter/vf_scale_qsv.c par.ExtParam = s->ext_buffers; s 417 libavfilter/vf_scale_qsv.c par.NumExtParam = s->num_ext_buf; s 433 libavfilter/vf_scale_qsv.c err = MFXVideoVPP_Init(s->session, &par); s 464 libavfilter/vf_scale_qsv.c QSVScaleContext *s = ctx->priv; s 483 libavfilter/vf_scale_qsv.c av_expr_parse_and_eval(&res, (expr = s->w_expr), s 486 libavfilter/vf_scale_qsv.c s->w = var_values[VAR_OUT_W] = var_values[VAR_OW] = res; s 487 libavfilter/vf_scale_qsv.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->h_expr), s 491 libavfilter/vf_scale_qsv.c s->h = var_values[VAR_OUT_H] = var_values[VAR_OH] = res; s 493 libavfilter/vf_scale_qsv.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->w_expr), s 497 libavfilter/vf_scale_qsv.c s->w = res; s 499 libavfilter/vf_scale_qsv.c w = s->w; s 500 libavfilter/vf_scale_qsv.c h = s->h; s 508 libavfilter/vf_scale_qsv.c s->w = s->h = 0; s 510 libavfilter/vf_scale_qsv.c if (!(w = s->w)) s 512 libavfilter/vf_scale_qsv.c if (!(h = s->h)) s 552 libavfilter/vf_scale_qsv.c QSVScaleContext *s = ctx->priv; s 568 libavfilter/vf_scale_qsv.c err = MFXVideoVPP_RunFrameVPPAsync(s->session, s 583 libavfilter/vf_scale_qsv.c err = MFXVideoCORE_SyncOperation(s->session, sync, 1000); s 112 libavfilter/vf_scale_vulkan.c ScaleVulkanContext *s = ctx->priv; s 119 libavfilter/vf_scale_vulkan.c s->vkctx.queue_family_idx = s->vkctx.hwctx->queue_family_comp_index; s 120 libavfilter/vf_scale_vulkan.c s->vkctx.queue_count = GET_QUEUE_COUNT(s->vkctx.hwctx, 0, 1, 0); s 121 libavfilter/vf_scale_vulkan.c s->vkctx.cur_queue_idx = av_get_random_seed() % s->vkctx.queue_count; s 123 libavfilter/vf_scale_vulkan.c switch (s->scaler) { s 137 libavfilter/vf_scale_vulkan.c s->pl = ff_vk_create_pipeline(ctx); s 138 libavfilter/vf_scale_vulkan.c if (!s->pl) s 147 libavfilter/vf_scale_vulkan.c .elems = av_pix_fmt_count_planes(s->vkctx.input_format), s 149 libavfilter/vf_scale_vulkan.c .updater = s->input_images, s 155 libavfilter/vf_scale_vulkan.c .mem_layout = ff_vk_shader_rep_fmt(s->vkctx.output_format), s 158 libavfilter/vf_scale_vulkan.c .elems = av_pix_fmt_count_planes(s->vkctx.output_format), s 160 libavfilter/vf_scale_vulkan.c .updater = s->output_images, s 170 libavfilter/vf_scale_vulkan.c .updater = &s->params_desc, s 174 libavfilter/vf_scale_vulkan.c SPIRVShader *shd = ff_vk_init_shader(ctx, s->pl, "scale_compute", s 181 libavfilter/vf_scale_vulkan.c RET(ff_vk_add_descriptor_set(ctx, s->pl, shd, desc_i, 2, 0)); /* set 0 */ s 182 libavfilter/vf_scale_vulkan.c RET(ff_vk_add_descriptor_set(ctx, s->pl, shd, &desc_b, 1, 0)); /* set 0 */ s 186 libavfilter/vf_scale_vulkan.c if (s->vkctx.output_format != s->vkctx.input_format) { s 190 libavfilter/vf_scale_vulkan.c switch (s->vkctx.output_format) { s 206 libavfilter/vf_scale_vulkan.c if (s->vkctx.output_format == s->vkctx.input_format) { s 210 libavfilter/vf_scale_vulkan.c switch (s->scaler) { s 221 libavfilter/vf_scale_vulkan.c GLSLF(1, res = rgb2yuv(res, %i); ,s->out_range == AVCOL_RANGE_JPEG); s 222 libavfilter/vf_scale_vulkan.c switch (s->vkctx.output_format) { s 235 libavfilter/vf_scale_vulkan.c RET(ff_vk_init_pipeline_layout(ctx, s->pl)); s 236 libavfilter/vf_scale_vulkan.c RET(ff_vk_init_compute_pipeline(ctx, s->pl)); s 238 libavfilter/vf_scale_vulkan.c if (s->vkctx.output_format != s->vkctx.input_format) { s 252 libavfilter/vf_scale_vulkan.c err = ff_vk_create_buf(ctx, &s->params_buf, s 259 libavfilter/vf_scale_vulkan.c err = ff_vk_map_buffers(ctx, &s->params_buf, (uint8_t **)&par, 1, 0); s 273 libavfilter/vf_scale_vulkan.c err = ff_vk_unmap_buffers(ctx, &s->params_buf, 1, 1); s 277 libavfilter/vf_scale_vulkan.c s->params_desc.buffer = s->params_buf.buf; s 278 libavfilter/vf_scale_vulkan.c s->params_desc.range = VK_WHOLE_SIZE; s 280 libavfilter/vf_scale_vulkan.c ff_vk_update_descriptor_set(ctx, s->pl, 1); s 284 libavfilter/vf_scale_vulkan.c RET(ff_vk_create_exec_ctx(ctx, &s->exec)); s 286 libavfilter/vf_scale_vulkan.c s->initialized = 1; s 298 libavfilter/vf_scale_vulkan.c ScaleVulkanContext *s = avctx->priv; s 305 libavfilter/vf_scale_vulkan.c ff_vk_start_exec_recording(avctx, s->exec); s 306 libavfilter/vf_scale_vulkan.c cmd_buf = ff_vk_get_exec_buf(avctx, s->exec); s 308 libavfilter/vf_scale_vulkan.c for (int i = 0; i < av_pix_fmt_count_planes(s->vkctx.input_format); i++) { s 309 libavfilter/vf_scale_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->input_images[i].imageView, s 311 libavfilter/vf_scale_vulkan.c av_vkfmt_from_pixfmt(s->vkctx.input_format)[i], s 314 libavfilter/vf_scale_vulkan.c s->input_images[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; s 317 libavfilter/vf_scale_vulkan.c for (int i = 0; i < av_pix_fmt_count_planes(s->vkctx.output_format); i++) { s 318 libavfilter/vf_scale_vulkan.c RET(ff_vk_create_imageview(avctx, s->exec, &s->output_images[i].imageView, s 320 libavfilter/vf_scale_vulkan.c av_vkfmt_from_pixfmt(s->vkctx.output_format)[i], s 323 libavfilter/vf_scale_vulkan.c s->output_images[i].imageLayout = VK_IMAGE_LAYOUT_GENERAL; s 326 libavfilter/vf_scale_vulkan.c ff_vk_update_descriptor_set(avctx, s->pl, 0); s 328 libavfilter/vf_scale_vulkan.c for (int i = 0; i < av_pix_fmt_count_planes(s->vkctx.input_format); i++) { s 334 libavfilter/vf_scale_vulkan.c .newLayout = s->input_images[i].imageLayout, s 349 libavfilter/vf_scale_vulkan.c for (int i = 0; i < av_pix_fmt_count_planes(s->vkctx.output_format); i++) { s 355 libavfilter/vf_scale_vulkan.c .newLayout = s->output_images[i].imageLayout, s 374 libavfilter/vf_scale_vulkan.c ff_vk_bind_pipeline_exec(avctx, s->exec, s->pl); s 377 libavfilter/vf_scale_vulkan.c FFALIGN(s->vkctx.output_width, CGROUPS[0])/CGROUPS[0], s 378 libavfilter/vf_scale_vulkan.c FFALIGN(s->vkctx.output_height, CGROUPS[1])/CGROUPS[1], 1); s 380 libavfilter/vf_scale_vulkan.c ff_vk_add_exec_dep(avctx, s->exec, in_f, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); s 381 libavfilter/vf_scale_vulkan.c ff_vk_add_exec_dep(avctx, s->exec, out_f, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT); s 383 libavfilter/vf_scale_vulkan.c err = ff_vk_submit_exec_queue(avctx, s->exec); s 390 libavfilter/vf_scale_vulkan.c ff_vk_discard_exec_deps(avctx, s->exec); s 398 libavfilter/vf_scale_vulkan.c ScaleVulkanContext *s = ctx->priv; s 407 libavfilter/vf_scale_vulkan.c if (!s->initialized) s 416 libavfilter/vf_scale_vulkan.c if (s->out_range != AVCOL_RANGE_UNSPECIFIED) s 417 libavfilter/vf_scale_vulkan.c out->color_range = s->out_range; s 418 libavfilter/vf_scale_vulkan.c if (s->vkctx.output_format != s->vkctx.input_format) s 435 libavfilter/vf_scale_vulkan.c ScaleVulkanContext *s = avctx->priv; s 438 libavfilter/vf_scale_vulkan.c err = ff_scale_eval_dimensions(s, s->w_expr, s->h_expr, inlink, outlink, s 439 libavfilter/vf_scale_vulkan.c &s->vkctx.output_width, s 440 libavfilter/vf_scale_vulkan.c &s->vkctx.output_height); s 444 libavfilter/vf_scale_vulkan.c if (s->out_format_string) { s 445 libavfilter/vf_scale_vulkan.c s->vkctx.output_format = av_get_pix_fmt(s->out_format_string); s 446 libavfilter/vf_scale_vulkan.c if (s->vkctx.output_format == AV_PIX_FMT_NONE) { s 451 libavfilter/vf_scale_vulkan.c s->vkctx.output_format = s->vkctx.input_format; s 454 libavfilter/vf_scale_vulkan.c if (s->vkctx.output_format != s->vkctx.input_format) { s 455 libavfilter/vf_scale_vulkan.c if (!ff_vk_mt_is_np_rgb(s->vkctx.input_format)) { s 459 libavfilter/vf_scale_vulkan.c if (s->vkctx.output_format != AV_PIX_FMT_NV12 && s 460 libavfilter/vf_scale_vulkan.c s->vkctx.output_format != AV_PIX_FMT_YUV420P && s 461 libavfilter/vf_scale_vulkan.c s->vkctx.output_format != AV_PIX_FMT_YUV444P) { s 465 libavfilter/vf_scale_vulkan.c } else if (s->out_range != AVCOL_RANGE_UNSPECIFIED) { s 479 libavfilter/vf_scale_vulkan.c ScaleVulkanContext *s = avctx->priv; s 482 libavfilter/vf_scale_vulkan.c ff_vk_free_buf(avctx, &s->params_buf); s 484 libavfilter/vf_scale_vulkan.c s->initialized = 0; s 87 libavfilter/vf_scdet.c SCDetContext *s = ctx->priv; s 93 libavfilter/vf_scdet.c s->bitdepth = desc->comp[0].depth; s 94 libavfilter/vf_scdet.c s->nb_planes = is_yuv ? 1 : av_pix_fmt_count_planes(inlink->format); s 98 libavfilter/vf_scdet.c s->width[plane] = line_size >> (s->bitdepth > 8); s 99 libavfilter/vf_scdet.c s->height[plane] = inlink->h >> ((plane == 1 || plane == 2) ? desc->log2_chroma_h : 0); s 102 libavfilter/vf_scdet.c s->sad = ff_scene_sad_get_fn(s->bitdepth == 8 ? 8 : 16); s 103 libavfilter/vf_scdet.c if (!s->sad) s 111 libavfilter/vf_scdet.c SCDetContext *s = ctx->priv; s 113 libavfilter/vf_scdet.c av_frame_free(&s->prev_picref); s 119 libavfilter/vf_scdet.c SCDetContext *s = ctx->priv; s 120 libavfilter/vf_scdet.c AVFrame *prev_picref = s->prev_picref; s 128 libavfilter/vf_scdet.c for (int plane = 0; plane < s->nb_planes; plane++) { s 130 libavfilter/vf_scdet.c s->sad(prev_picref->data[plane], prev_picref->linesize[plane], s 132 libavfilter/vf_scdet.c s->width[plane], s->height[plane], &plane_sad); s 134 libavfilter/vf_scdet.c count += s->width[plane] * s->height[plane]; s 138 libavfilter/vf_scdet.c mafd = (double)sad * 100. / count / (1ULL << s->bitdepth); s 139 libavfilter/vf_scdet.c diff = fabs(mafd - s->prev_mafd); s 141 libavfilter/vf_scdet.c s->prev_mafd = mafd; s 144 libavfilter/vf_scdet.c s->prev_picref = av_frame_clone(frame); s 148 libavfilter/vf_scdet.c static int set_meta(SCDetContext *s, AVFrame *frame, const char *key, const char *value) s 158 libavfilter/vf_scdet.c SCDetContext *s = ctx->priv; s 169 libavfilter/vf_scdet.c s->scene_score = get_scene_score(ctx, frame); s 170 libavfilter/vf_scdet.c snprintf(buf, sizeof(buf), "%0.3f", s->prev_mafd); s 171 libavfilter/vf_scdet.c set_meta(s, frame, "lavfi.scd.mafd", buf); s 172 libavfilter/vf_scdet.c snprintf(buf, sizeof(buf), "%0.3f", s->scene_score); s 173 libavfilter/vf_scdet.c set_meta(s, frame, "lavfi.scd.score", buf); s 175 libavfilter/vf_scdet.c if (s->scene_score > s->threshold) { s 176 libavfilter/vf_scdet.c av_log(s, AV_LOG_INFO, "lavfi.scd.score: %.3f, lavfi.scd.time: %s\n", s 177 libavfilter/vf_scdet.c s->scene_score, av_ts2timestr(frame->pts, &inlink->time_base)); s 178 libavfilter/vf_scdet.c set_meta(s, frame, "lavfi.scd.time", s 181 libavfilter/vf_scdet.c if (s->sc_pass) { s 182 libavfilter/vf_scdet.c if (s->scene_score > s->threshold) s 82 libavfilter/vf_scroll.c ScrollContext *s = ctx->priv; s 87 libavfilter/vf_scroll.c for (int p = 0; p < s->nb_planes; p++) { s 89 libavfilter/vf_scroll.c const int h = s->planeheight[p]; s 90 libavfilter/vf_scroll.c const int w = s->planewidth[p] * s->bytes; s 96 libavfilter/vf_scroll.c int yy = (y + s->pos_v[p]) % h; s 99 libavfilter/vf_scroll.c if (s->pos_h[p] < w) s 100 libavfilter/vf_scroll.c memcpy(dst, ssrc + s->pos_h[p], w - s->pos_h[p]); s 101 libavfilter/vf_scroll.c if (s->pos_h[p] > 0) s 102 libavfilter/vf_scroll.c memcpy(dst + w - s->pos_h[p], ssrc, s->pos_h[p]); s 113 libavfilter/vf_scroll.c ScrollContext *s = ctx->priv; s 117 libavfilter/vf_scroll.c s->h_pos = fmodf(s->h_pos, in->width); s 118 libavfilter/vf_scroll.c s->v_pos = fmodf(s->v_pos, in->height); s 120 libavfilter/vf_scroll.c h_pos = s->h_pos; s 121 libavfilter/vf_scroll.c v_pos = s->v_pos; s 128 libavfilter/vf_scroll.c s->pos_v[1] = s->pos_v[2] = AV_CEIL_RSHIFT(v_pos, s->desc->log2_chroma_h); s 129 libavfilter/vf_scroll.c s->pos_v[0] = s->pos_v[3] = v_pos; s 130 libavfilter/vf_scroll.c s->pos_h[1] = s->pos_h[2] = AV_CEIL_RSHIFT(h_pos, s->desc->log2_chroma_w) * s->bytes; s 131 libavfilter/vf_scroll.c s->pos_h[0] = s->pos_h[3] = h_pos * s->bytes; s 137 libavfilter/vf_scroll.c s->h_pos += s->h_speed * in->width; s 138 libavfilter/vf_scroll.c s->v_pos += s->v_speed * in->height; s 163 libavfilter/vf_scroll.c ScrollContext *s = ctx->priv; s 165 libavfilter/vf_scroll.c s->desc = av_pix_fmt_desc_get(inlink->format); s 166 libavfilter/vf_scroll.c s->nb_planes = s->desc->nb_components; s 167 libavfilter/vf_scroll.c s->bytes = (s->desc->comp[0].depth + 7) >> 3; s 169 libavfilter/vf_scroll.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 170 libavfilter/vf_scroll.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 171 libavfilter/vf_scroll.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, s->desc->log2_chroma_w); s 172 libavfilter/vf_scroll.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 174 libavfilter/vf_scroll.c s->h_pos = (1.f - s->h_ipos) * inlink->w; s 175 libavfilter/vf_scroll.c s->v_pos = (1.f - s->v_ipos) * inlink->h; s 150 libavfilter/vf_selectivecolor.c static int register_range(SelectiveColorContext *s, int range_id) s 152 libavfilter/vf_selectivecolor.c const float *cmyk = s->cmyk_adjust[range_id]; s 157 libavfilter/vf_selectivecolor.c struct process_range *pr = &s->process_ranges[s->nb_process_ranges++]; s 163 libavfilter/vf_selectivecolor.c av_log(s, AV_LOG_ERROR, "Invalid %s adjustments (%g %g %g %g). " s 173 libavfilter/vf_selectivecolor.c else if (!s->is_16bit && (pr->mask & 1<<RANGE_WHITES)) pr->get_scale = get_whites_scale8; s 174 libavfilter/vf_selectivecolor.c else if (!s->is_16bit && (pr->mask & 1<<RANGE_NEUTRALS)) pr->get_scale = get_neutrals_scale8; s 175 libavfilter/vf_selectivecolor.c else if (!s->is_16bit && (pr->mask & 1<<RANGE_BLACKS)) pr->get_scale = get_blacks_scale8; s 176 libavfilter/vf_selectivecolor.c else if ( s->is_16bit && (pr->mask & 1<<RANGE_WHITES)) pr->get_scale = get_whites_scale16; s 177 libavfilter/vf_selectivecolor.c else if ( s->is_16bit && (pr->mask & 1<<RANGE_NEUTRALS)) pr->get_scale = get_neutrals_scale16; s 178 libavfilter/vf_selectivecolor.c else if ( s->is_16bit && (pr->mask & 1<<RANGE_BLACKS)) pr->get_scale = get_blacks_scale16; s 191 libavfilter/vf_selectivecolor.c SelectiveColorContext *s = ctx->priv; s 209 libavfilter/vf_selectivecolor.c av_log(s, AV_LOG_WARNING, "Unsupported selective color file version %d, " s 212 libavfilter/vf_selectivecolor.c READ16(s->correction_method); s 215 libavfilter/vf_selectivecolor.c for (i = 0; i < FF_ARRAY_ELEMS(s->cmyk_adjust[0]); i++) { s 218 libavfilter/vf_selectivecolor.c av_log(s, AV_LOG_WARNING, "%c value of first CMYK entry is not 0 " s 222 libavfilter/vf_selectivecolor.c for (i = 0; i < FF_ARRAY_ELEMS(s->cmyk_adjust); i++) { s 224 libavfilter/vf_selectivecolor.c for (k = 0; k < FF_ARRAY_ELEMS(s->cmyk_adjust[0]); k++) { s 226 libavfilter/vf_selectivecolor.c s->cmyk_adjust[i][k] = val / 100.; s 228 libavfilter/vf_selectivecolor.c ret = register_range(s, i); s 242 libavfilter/vf_selectivecolor.c SelectiveColorContext *s = ctx->priv; s 245 libavfilter/vf_selectivecolor.c s->is_16bit = desc->comp[0].depth > 8; s 246 libavfilter/vf_selectivecolor.c s->step = av_get_padded_bits_per_pixel(desc) >> (3 + s->is_16bit); s 248 libavfilter/vf_selectivecolor.c ret = ff_fill_rgba_map(s->rgba_map, inlink->format); s 254 libavfilter/vf_selectivecolor.c av_assert0(FF_ARRAY_ELEMS(s->cmyk_adjust) == 10 - 1); s 255 libavfilter/vf_selectivecolor.c av_assert0(FF_ARRAY_ELEMS(s->cmyk_adjust[0]) == 4); s 257 libavfilter/vf_selectivecolor.c if (s->psfile) { s 258 libavfilter/vf_selectivecolor.c ret = parse_psfile(ctx, s->psfile); s 262 libavfilter/vf_selectivecolor.c for (i = 0; i < FF_ARRAY_ELEMS(s->opt_cmyk_adjust); i++) { s 263 libavfilter/vf_selectivecolor.c const char *opt_cmyk_adjust = s->opt_cmyk_adjust[i]; s 266 libavfilter/vf_selectivecolor.c float *cmyk = s->cmyk_adjust[i]; s 268 libavfilter/vf_selectivecolor.c sscanf(s->opt_cmyk_adjust[i], "%f %f %f %f", cmyk, cmyk+1, cmyk+2, cmyk+3); s 269 libavfilter/vf_selectivecolor.c ret = register_range(s, i); s 276 libavfilter/vf_selectivecolor.c av_log(s, AV_LOG_VERBOSE, "Adjustments:%s\n", s->nb_process_ranges ? "" : " none"); s 277 libavfilter/vf_selectivecolor.c for (i = 0; i < s->nb_process_ranges; i++) { s 278 libavfilter/vf_selectivecolor.c const struct process_range *pr = &s->process_ranges[i]; s 279 libavfilter/vf_selectivecolor.c const float *cmyk = s->cmyk_adjust[pr->range_id]; s 281 libavfilter/vf_selectivecolor.c av_log(s, AV_LOG_VERBOSE, "%8ss: C=%6g M=%6g Y=%6g K=%6g\n", s 323 libavfilter/vf_selectivecolor.c const SelectiveColorContext *s = ctx->priv; \ s 330 libavfilter/vf_selectivecolor.c const uint8_t roffset = s->rgba_map[R]; \ s 331 libavfilter/vf_selectivecolor.c const uint8_t goffset = s->rgba_map[G]; \ s 332 libavfilter/vf_selectivecolor.c const uint8_t boffset = s->rgba_map[B]; \ s 333 libavfilter/vf_selectivecolor.c const uint8_t aoffset = s->rgba_map[A]; \ s 339 libavfilter/vf_selectivecolor.c for (x = 0; x < width * s->step; x += s->step) { \ s 364 libavfilter/vf_selectivecolor.c for (i = 0; i < s->nb_process_ranges; i++) { \ s 365 libavfilter/vf_selectivecolor.c const struct process_range *pr = &s->process_ranges[i]; \ s 371 libavfilter/vf_selectivecolor.c const float *cmyk_adjust = s->cmyk_adjust[pr->range_id]; \ s 388 libavfilter/vf_selectivecolor.c if (!direct && s->step == 4) \ s 421 libavfilter/vf_selectivecolor.c const SelectiveColorContext *s = ctx->priv; s 447 libavfilter/vf_selectivecolor.c ctx->internal->execute(ctx, funcs[s->is_16bit][direct][s->correction_method], s 34 libavfilter/vf_separatefields.c SeparateFieldsContext *s = ctx->priv; s 37 libavfilter/vf_separatefields.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 68 libavfilter/vf_separatefields.c SeparateFieldsContext *s = ctx->priv; s 75 libavfilter/vf_separatefields.c if (!s->second) { s 78 libavfilter/vf_separatefields.c AVFrame *second = s->second; s 80 libavfilter/vf_separatefields.c extract_field(second, s->nb_planes, second->top_field_first); s 92 libavfilter/vf_separatefields.c s->second = av_frame_clone(inpicref); s 93 libavfilter/vf_separatefields.c if (!s->second) s 97 libavfilter/vf_separatefields.c extract_field(inpicref, s->nb_planes, !inpicref->top_field_first); s 108 libavfilter/vf_separatefields.c SeparateFieldsContext *s = ctx->priv; s 111 libavfilter/vf_separatefields.c if (s->second) { s 112 libavfilter/vf_separatefields.c *out_pts = s->second->pts += pts; s 113 libavfilter/vf_separatefields.c extract_field(s->second, s->nb_planes, s->second->top_field_first); s 114 libavfilter/vf_separatefields.c ret = ff_filter_frame(outlink, s->second); s 115 libavfilter/vf_separatefields.c s->second = NULL; s 154 libavfilter/vf_separatefields.c SeparateFieldsContext *s = ctx->priv; s 156 libavfilter/vf_separatefields.c av_frame_free(&s->second); s 124 libavfilter/vf_setparams.c SetParamsContext *s = ctx->priv; s 127 libavfilter/vf_setparams.c if (s->field_mode == MODE_PROG) { s 129 libavfilter/vf_setparams.c } else if (s->field_mode != MODE_AUTO) { s 131 libavfilter/vf_setparams.c frame->top_field_first = s->field_mode; s 135 libavfilter/vf_setparams.c if (s->color_range >= 0) s 136 libavfilter/vf_setparams.c frame->color_range = s->color_range; s 139 libavfilter/vf_setparams.c if (s->color_primaries >= 0) s 140 libavfilter/vf_setparams.c frame->color_primaries = s->color_primaries; s 141 libavfilter/vf_setparams.c if (s->color_trc >= 0) s 142 libavfilter/vf_setparams.c frame->color_trc = s->color_trc; s 143 libavfilter/vf_setparams.c if (s->colorspace >= 0) s 144 libavfilter/vf_setparams.c frame->colorspace = s->colorspace; s 194 libavfilter/vf_setparams.c SetParamsContext *s = ctx->priv; s 196 libavfilter/vf_setparams.c s->field_mode = MODE_AUTO;/* set field mode to auto */ s 197 libavfilter/vf_setparams.c s->color_primaries = -1; s 198 libavfilter/vf_setparams.c s->color_trc = -1; s 199 libavfilter/vf_setparams.c s->colorspace = -1; s 228 libavfilter/vf_setparams.c SetParamsContext *s = ctx->priv; s 230 libavfilter/vf_setparams.c s->color_range = -1;/* set range mode to auto */ s 231 libavfilter/vf_setparams.c s->color_primaries = -1; s 232 libavfilter/vf_setparams.c s->color_trc = -1; s 233 libavfilter/vf_setparams.c s->colorspace = -1; s 263 libavfilter/vf_showinfo.c ShowInfoContext *s = ctx->priv; s 272 libavfilter/vf_showinfo.c for (plane = 0; plane < 4 && s->calculate_checksums && frame->data[plane] && frame->linesize[plane]; plane++) { s 304 libavfilter/vf_showinfo.c if (s->calculate_checksums) { s 74 libavfilter/vf_showpalette.c const ShowPaletteContext *s = ctx->priv; s 75 libavfilter/vf_showpalette.c outlink->w = outlink->h = 16 * s->size; s 99 libavfilter/vf_showpalette.c const ShowPaletteContext *s = ctx->priv; s 108 libavfilter/vf_showpalette.c ret = disp_palette(out, in, s->size); s 43 libavfilter/vf_shuffleframes.c ShuffleFramesContext *s = ctx->priv; s 48 libavfilter/vf_shuffleframes.c for (p = s->mapping; *p; p++) { s 53 libavfilter/vf_shuffleframes.c s->frames = av_calloc(nb_items, sizeof(*s->frames)); s 54 libavfilter/vf_shuffleframes.c s->map = av_calloc(nb_items, sizeof(*s->map)); s 55 libavfilter/vf_shuffleframes.c s->pts = av_calloc(nb_items, sizeof(*s->pts)); s 56 libavfilter/vf_shuffleframes.c if (!s->map || !s->frames || !s->pts) { s 60 libavfilter/vf_shuffleframes.c mapping = av_strdup(s->mapping); s 66 libavfilter/vf_shuffleframes.c if (!map || sscanf(map, "%d", &s->map[n]) != 1) { s 71 libavfilter/vf_shuffleframes.c if (s->map[n] < -1 || s->map[n] >= nb_items) { s 72 libavfilter/vf_shuffleframes.c av_log(ctx, AV_LOG_ERROR, "Index %d out of range: [-1, %d].\n", s->map[n], nb_items - 1); s 78 libavfilter/vf_shuffleframes.c s->nb_frames = nb_items; s 86 libavfilter/vf_shuffleframes.c ShuffleFramesContext *s = ctx->priv; s 89 libavfilter/vf_shuffleframes.c if (s->in_frames < s->nb_frames) { s 90 libavfilter/vf_shuffleframes.c s->frames[s->in_frames] = frame; s 91 libavfilter/vf_shuffleframes.c s->pts[s->in_frames] = frame->pts; s 92 libavfilter/vf_shuffleframes.c s->in_frames++; s 95 libavfilter/vf_shuffleframes.c if (s->in_frames == s->nb_frames) { s 98 libavfilter/vf_shuffleframes.c for (n = 0; n < s->nb_frames; n++) { s 101 libavfilter/vf_shuffleframes.c x = s->map[n]; s 103 libavfilter/vf_shuffleframes.c out = av_frame_clone(s->frames[x]); s 106 libavfilter/vf_shuffleframes.c out->pts = s->pts[n]; s 109 libavfilter/vf_shuffleframes.c s->in_frames--; s 112 libavfilter/vf_shuffleframes.c for (n = 0; n < s->nb_frames; n++) s 113 libavfilter/vf_shuffleframes.c av_frame_free(&s->frames[n]); s 121 libavfilter/vf_shuffleframes.c ShuffleFramesContext *s = ctx->priv; s 123 libavfilter/vf_shuffleframes.c while (s->in_frames > 0) { s 124 libavfilter/vf_shuffleframes.c s->in_frames--; s 125 libavfilter/vf_shuffleframes.c av_frame_free(&s->frames[s->in_frames]); s 128 libavfilter/vf_shuffleframes.c av_freep(&s->frames); s 129 libavfilter/vf_shuffleframes.c av_freep(&s->map); s 130 libavfilter/vf_shuffleframes.c av_freep(&s->pts); s 46 libavfilter/vf_shuffleplanes.c ShufflePlanesContext *s = ctx->priv; s 56 libavfilter/vf_shuffleplanes.c if (s->map[i] >= planes) s 60 libavfilter/vf_shuffleplanes.c (i == 1 || i == 2) != (s->map[i] == 1 || s->map[i] == 2)) s 79 libavfilter/vf_shuffleplanes.c ShufflePlanesContext *s = ctx->priv; s 83 libavfilter/vf_shuffleplanes.c s->copy = 0; s 84 libavfilter/vf_shuffleplanes.c s->planes = av_pix_fmt_count_planes(inlink->format); s 86 libavfilter/vf_shuffleplanes.c for (i = 0; i < s->planes; i++) { s 87 libavfilter/vf_shuffleplanes.c if (used[s->map[i]]) s 88 libavfilter/vf_shuffleplanes.c s->copy = 1; s 89 libavfilter/vf_shuffleplanes.c used[s->map[i]]++; s 98 libavfilter/vf_shuffleplanes.c ShufflePlanesContext *s = ctx->priv; s 103 libavfilter/vf_shuffleplanes.c for (i = 0; i < s->planes; i++) { s 104 libavfilter/vf_shuffleplanes.c shuffled_data[i] = frame->data[s->map[i]]; s 105 libavfilter/vf_shuffleplanes.c shuffled_linesize[i] = frame->linesize[s->map[i]]; s 110 libavfilter/vf_shuffleplanes.c if (s->copy) { s 92 libavfilter/vf_signalstats.c SignalstatsContext *s = ctx->priv; s 94 libavfilter/vf_signalstats.c if (s->outfilter != FILTER_NONE) s 95 libavfilter/vf_signalstats.c s->filters |= 1 << s->outfilter; s 97 libavfilter/vf_signalstats.c r = s->rgba_color[0]; s 98 libavfilter/vf_signalstats.c g = s->rgba_color[1]; s 99 libavfilter/vf_signalstats.c b = s->rgba_color[2]; s 100 libavfilter/vf_signalstats.c s->yuv_color[0] = (( 66*r + 129*g + 25*b + (1<<7)) >> 8) + 16; s 101 libavfilter/vf_signalstats.c s->yuv_color[1] = ((-38*r + -74*g + 112*b + (1<<7)) >> 8) + 128; s 102 libavfilter/vf_signalstats.c s->yuv_color[2] = ((112*r + -94*g + -18*b + (1<<7)) >> 8) + 128; s 108 libavfilter/vf_signalstats.c SignalstatsContext *s = ctx->priv; s 109 libavfilter/vf_signalstats.c av_frame_free(&s->frame_prev); s 110 libavfilter/vf_signalstats.c av_frame_free(&s->frame_sat); s 111 libavfilter/vf_signalstats.c av_frame_free(&s->frame_hue); s 112 libavfilter/vf_signalstats.c av_freep(&s->jobs_rets); s 113 libavfilter/vf_signalstats.c av_freep(&s->histy); s 114 libavfilter/vf_signalstats.c av_freep(&s->histu); s 115 libavfilter/vf_signalstats.c av_freep(&s->histv); s 116 libavfilter/vf_signalstats.c av_freep(&s->histsat); s 164 libavfilter/vf_signalstats.c SignalstatsContext *s = ctx->priv; s 167 libavfilter/vf_signalstats.c s->hsub = desc->log2_chroma_w; s 168 libavfilter/vf_signalstats.c s->vsub = desc->log2_chroma_h; s 169 libavfilter/vf_signalstats.c s->depth = desc->comp[0].depth; s 170 libavfilter/vf_signalstats.c s->maxsize = 1 << s->depth; s 171 libavfilter/vf_signalstats.c s->histy = av_malloc_array(s->maxsize, sizeof(*s->histy)); s 172 libavfilter/vf_signalstats.c s->histu = av_malloc_array(s->maxsize, sizeof(*s->histu)); s 173 libavfilter/vf_signalstats.c s->histv = av_malloc_array(s->maxsize, sizeof(*s->histv)); s 174 libavfilter/vf_signalstats.c s->histsat = av_malloc_array(s->maxsize, sizeof(*s->histsat)); s 176 libavfilter/vf_signalstats.c if (!s->histy || !s->histu || !s->histv || !s->histsat) s 182 libavfilter/vf_signalstats.c s->chromaw = AV_CEIL_RSHIFT(inlink->w, s->hsub); s 183 libavfilter/vf_signalstats.c s->chromah = AV_CEIL_RSHIFT(inlink->h, s->vsub); s 185 libavfilter/vf_signalstats.c s->fs = inlink->w * inlink->h; s 186 libavfilter/vf_signalstats.c s->cfs = s->chromaw * s->chromah; s 188 libavfilter/vf_signalstats.c s->nb_jobs = FFMAX(1, FFMIN(inlink->h, ff_filter_get_nb_threads(ctx))); s 189 libavfilter/vf_signalstats.c s->jobs_rets = av_malloc_array(s->nb_jobs, sizeof(*s->jobs_rets)); s 190 libavfilter/vf_signalstats.c if (!s->jobs_rets) s 193 libavfilter/vf_signalstats.c s->frame_sat = alloc_frame(s->depth > 8 ? AV_PIX_FMT_GRAY16 : AV_PIX_FMT_GRAY8, inlink->w, inlink->h); s 194 libavfilter/vf_signalstats.c s->frame_hue = alloc_frame(AV_PIX_FMT_GRAY16, inlink->w, inlink->h); s 195 libavfilter/vf_signalstats.c if (!s->frame_sat || !s->frame_hue) s 201 libavfilter/vf_signalstats.c static void burn_frame8(const SignalstatsContext *s, AVFrame *f, int x, int y) s 203 libavfilter/vf_signalstats.c const int chromax = x >> s->hsub; s 204 libavfilter/vf_signalstats.c const int chromay = y >> s->vsub; s 205 libavfilter/vf_signalstats.c f->data[0][y * f->linesize[0] + x] = s->yuv_color[0]; s 206 libavfilter/vf_signalstats.c f->data[1][chromay * f->linesize[1] + chromax] = s->yuv_color[1]; s 207 libavfilter/vf_signalstats.c f->data[2][chromay * f->linesize[2] + chromax] = s->yuv_color[2]; s 210 libavfilter/vf_signalstats.c static void burn_frame16(const SignalstatsContext *s, AVFrame *f, int x, int y) s 212 libavfilter/vf_signalstats.c const int chromax = x >> s->hsub; s 213 libavfilter/vf_signalstats.c const int chromay = y >> s->vsub; s 214 libavfilter/vf_signalstats.c const int mult = 1 << (s->depth - 8); s 215 libavfilter/vf_signalstats.c AV_WN16(f->data[0] + y * f->linesize[0] + x * 2, s->yuv_color[0] * mult); s 216 libavfilter/vf_signalstats.c AV_WN16(f->data[1] + chromay * f->linesize[1] + chromax * 2, s->yuv_color[1] * mult); s 217 libavfilter/vf_signalstats.c AV_WN16(f->data[2] + chromay * f->linesize[2] + chromax * 2, s->yuv_color[2] * mult); s 223 libavfilter/vf_signalstats.c const SignalstatsContext *s = ctx->priv; s 233 libavfilter/vf_signalstats.c const int yc = y >> s->vsub; s 239 libavfilter/vf_signalstats.c const int xc = x >> s->hsub; s 248 libavfilter/vf_signalstats.c burn_frame8(s, out, x, y); s 257 libavfilter/vf_signalstats.c const SignalstatsContext *s = ctx->priv; s 260 libavfilter/vf_signalstats.c const int mult = 1 << (s->depth - 8); s 268 libavfilter/vf_signalstats.c const int yc = y >> s->vsub; s 274 libavfilter/vf_signalstats.c const int xc = x >> s->hsub; s 283 libavfilter/vf_signalstats.c burn_frame16(s, out, x, y); s 297 libavfilter/vf_signalstats.c const SignalstatsContext *s = ctx->priv; s 328 libavfilter/vf_signalstats.c burn_frame8(s, out, x, y); s 335 libavfilter/vf_signalstats.c burn_frame8(s, out, x, y); s 345 libavfilter/vf_signalstats.c const SignalstatsContext *s = ctx->priv; s 369 libavfilter/vf_signalstats.c burn_frame16(s, out, x, y); s 376 libavfilter/vf_signalstats.c burn_frame16(s, out, x, y); s 388 libavfilter/vf_signalstats.c const SignalstatsContext *s = ctx->priv; s 414 libavfilter/vf_signalstats.c burn_frame8(s, out, x, y); s 422 libavfilter/vf_signalstats.c const SignalstatsContext *s = ctx->priv; s 449 libavfilter/vf_signalstats.c burn_frame16(s, out, x, y); s 469 libavfilter/vf_signalstats.c const SignalstatsContext *s = ctx->priv; s 474 libavfilter/vf_signalstats.c const int slice_start = (s->chromah * jobnr ) / nb_jobs; s 475 libavfilter/vf_signalstats.c const int slice_end = (s->chromah * (jobnr+1)) / nb_jobs; s 488 libavfilter/vf_signalstats.c for (i = 0; i < s->chromaw; i++) { s 507 libavfilter/vf_signalstats.c const SignalstatsContext *s = ctx->priv; s 511 libavfilter/vf_signalstats.c const int mid = 1 << (s->depth - 1); s 513 libavfilter/vf_signalstats.c const int slice_start = (s->chromah * jobnr ) / nb_jobs; s 514 libavfilter/vf_signalstats.c const int slice_end = (s->chromah * (jobnr+1)) / nb_jobs; s 527 libavfilter/vf_signalstats.c for (i = 0; i < s->chromaw; i++) { s 550 libavfilter/vf_signalstats.c SignalstatsContext *s = ctx->priv; s 558 libavfilter/vf_signalstats.c unsigned int *histy = s->histy, s 559 libavfilter/vf_signalstats.c *histu = s->histu, s 560 libavfilter/vf_signalstats.c *histv = s->histv, s 562 libavfilter/vf_signalstats.c *histsat = s->histsat; s 580 libavfilter/vf_signalstats.c AVFrame *sat = s->frame_sat; s 581 libavfilter/vf_signalstats.c AVFrame *hue = s->frame_hue; s 592 libavfilter/vf_signalstats.c if (!s->frame_prev) s 593 libavfilter/vf_signalstats.c s->frame_prev = av_frame_clone(in); s 595 libavfilter/vf_signalstats.c prev = s->frame_prev; s 597 libavfilter/vf_signalstats.c if (s->outfilter != FILTER_NONE) { s 603 libavfilter/vf_signalstats.c NULL, FFMIN(s->chromah, ff_filter_get_nb_threads(ctx))); s 606 libavfilter/vf_signalstats.c memset(s->histy, 0, s->maxsize * sizeof(*s->histy)); s 620 libavfilter/vf_signalstats.c memset(s->histu, 0, s->maxsize * sizeof(*s->histu)); s 621 libavfilter/vf_signalstats.c memset(s->histv, 0, s->maxsize * sizeof(*s->histv)); s 622 libavfilter/vf_signalstats.c memset(s->histsat, 0, s->maxsize * sizeof(*s->histsat)); s 623 libavfilter/vf_signalstats.c for (j = 0; j < s->chromah; j++) { s 624 libavfilter/vf_signalstats.c for (i = 0; i < s->chromaw; i++) { s 645 libavfilter/vf_signalstats.c if (s->filters & 1<<fil) { s 648 libavfilter/vf_signalstats.c .out = out != in && s->outfilter == fil ? out : NULL, s 650 libavfilter/vf_signalstats.c memset(s->jobs_rets, 0, s->nb_jobs * sizeof(*s->jobs_rets)); s 652 libavfilter/vf_signalstats.c &td, s->jobs_rets, s->nb_jobs); s 653 libavfilter/vf_signalstats.c for (i = 0; i < s->nb_jobs; i++) s 654 libavfilter/vf_signalstats.c filtot[fil] += s->jobs_rets[i]; s 661 libavfilter/vf_signalstats.c lowp = lrint(s->fs * 10 / 100.); s 662 libavfilter/vf_signalstats.c highp = lrint(s->fs * 90 / 100.); s 663 libavfilter/vf_signalstats.c clowp = lrint(s->cfs * 10 / 100.); s 664 libavfilter/vf_signalstats.c chighp = lrint(s->cfs * 90 / 100.); s 667 libavfilter/vf_signalstats.c for (fil = 0; fil < s->maxsize; fil++) { s 705 libavfilter/vf_signalstats.c if (medhue == -1 && acchue > s->cfs / 2) s 712 libavfilter/vf_signalstats.c av_frame_free(&s->frame_prev); s 713 libavfilter/vf_signalstats.c s->frame_prev = av_frame_clone(in); s 722 libavfilter/vf_signalstats.c SET_META("YAVG", "%g", 1.0 * toty / s->fs); s 728 libavfilter/vf_signalstats.c SET_META("UAVG", "%g", 1.0 * totu / s->cfs); s 734 libavfilter/vf_signalstats.c SET_META("VAVG", "%g", 1.0 * totv / s->cfs); s 740 libavfilter/vf_signalstats.c SET_META("SATAVG", "%g", 1.0 * totsat / s->cfs); s 745 libavfilter/vf_signalstats.c SET_META("HUEAVG", "%g", 1.0 * tothue / s->cfs); s 747 libavfilter/vf_signalstats.c SET_META("YDIF", "%g", 1.0 * dify / s->fs); s 748 libavfilter/vf_signalstats.c SET_META("UDIF", "%g", 1.0 * difu / s->cfs); s 749 libavfilter/vf_signalstats.c SET_META("VDIF", "%g", 1.0 * difv / s->cfs); s 756 libavfilter/vf_signalstats.c if (s->filters & 1<<fil) { s 758 libavfilter/vf_signalstats.c snprintf(metabuf, sizeof(metabuf), "%g", 1.0 * filtot[fil] / s->fs); s 772 libavfilter/vf_signalstats.c SignalstatsContext *s = ctx->priv; s 780 libavfilter/vf_signalstats.c unsigned int *histy = s->histy, s 781 libavfilter/vf_signalstats.c *histu = s->histu, s 782 libavfilter/vf_signalstats.c *histv = s->histv, s 784 libavfilter/vf_signalstats.c *histsat = s->histsat; s 802 libavfilter/vf_signalstats.c AVFrame *sat = s->frame_sat; s 803 libavfilter/vf_signalstats.c AVFrame *hue = s->frame_hue; s 814 libavfilter/vf_signalstats.c if (!s->frame_prev) s 815 libavfilter/vf_signalstats.c s->frame_prev = av_frame_clone(in); s 817 libavfilter/vf_signalstats.c prev = s->frame_prev; s 819 libavfilter/vf_signalstats.c if (s->outfilter != FILTER_NONE) { s 825 libavfilter/vf_signalstats.c NULL, FFMIN(s->chromah, ff_filter_get_nb_threads(ctx))); s 828 libavfilter/vf_signalstats.c memset(s->histy, 0, s->maxsize * sizeof(*s->histy)); s 842 libavfilter/vf_signalstats.c memset(s->histu, 0, s->maxsize * sizeof(*s->histu)); s 843 libavfilter/vf_signalstats.c memset(s->histv, 0, s->maxsize * sizeof(*s->histv)); s 844 libavfilter/vf_signalstats.c memset(s->histsat, 0, s->maxsize * sizeof(*s->histsat)); s 845 libavfilter/vf_signalstats.c for (j = 0; j < s->chromah; j++) { s 846 libavfilter/vf_signalstats.c for (i = 0; i < s->chromaw; i++) { s 867 libavfilter/vf_signalstats.c if (s->filters & 1<<fil) { s 870 libavfilter/vf_signalstats.c .out = out != in && s->outfilter == fil ? out : NULL, s 872 libavfilter/vf_signalstats.c memset(s->jobs_rets, 0, s->nb_jobs * sizeof(*s->jobs_rets)); s 874 libavfilter/vf_signalstats.c &td, s->jobs_rets, s->nb_jobs); s 875 libavfilter/vf_signalstats.c for (i = 0; i < s->nb_jobs; i++) s 876 libavfilter/vf_signalstats.c filtot[fil] += s->jobs_rets[i]; s 883 libavfilter/vf_signalstats.c lowp = lrint(s->fs * 10 / 100.); s 884 libavfilter/vf_signalstats.c highp = lrint(s->fs * 90 / 100.); s 885 libavfilter/vf_signalstats.c clowp = lrint(s->cfs * 10 / 100.); s 886 libavfilter/vf_signalstats.c chighp = lrint(s->cfs * 90 / 100.); s 889 libavfilter/vf_signalstats.c for (fil = 0; fil < s->maxsize; fil++) { s 927 libavfilter/vf_signalstats.c if (medhue == -1 && acchue > s->cfs / 2) s 934 libavfilter/vf_signalstats.c av_frame_free(&s->frame_prev); s 935 libavfilter/vf_signalstats.c s->frame_prev = av_frame_clone(in); s 939 libavfilter/vf_signalstats.c SET_META("YAVG", "%g", 1.0 * toty / s->fs); s 945 libavfilter/vf_signalstats.c SET_META("UAVG", "%g", 1.0 * totu / s->cfs); s 951 libavfilter/vf_signalstats.c SET_META("VAVG", "%g", 1.0 * totv / s->cfs); s 957 libavfilter/vf_signalstats.c SET_META("SATAVG", "%g", 1.0 * totsat / s->cfs); s 962 libavfilter/vf_signalstats.c SET_META("HUEAVG", "%g", 1.0 * tothue / s->cfs); s 964 libavfilter/vf_signalstats.c SET_META("YDIF", "%g", 1.0 * dify / s->fs); s 965 libavfilter/vf_signalstats.c SET_META("UDIF", "%g", 1.0 * difu / s->cfs); s 966 libavfilter/vf_signalstats.c SET_META("VDIF", "%g", 1.0 * difv / s->cfs); s 973 libavfilter/vf_signalstats.c if (s->filters & 1<<fil) { s 975 libavfilter/vf_signalstats.c snprintf(metabuf, sizeof(metabuf), "%g", 1.0 * filtot[fil] / s->fs); s 989 libavfilter/vf_signalstats.c SignalstatsContext *s = ctx->priv; s 991 libavfilter/vf_signalstats.c if (s->depth > 8) s 87 libavfilter/vf_smartblur.c SmartblurContext *s = ctx->priv; s 90 libavfilter/vf_smartblur.c if (s->chroma.radius < RADIUS_MIN) s 91 libavfilter/vf_smartblur.c s->chroma.radius = s->luma.radius; s 92 libavfilter/vf_smartblur.c if (s->chroma.strength < STRENGTH_MIN) s 93 libavfilter/vf_smartblur.c s->chroma.strength = s->luma.strength; s 94 libavfilter/vf_smartblur.c if (s->chroma.threshold < THRESHOLD_MIN) s 95 libavfilter/vf_smartblur.c s->chroma.threshold = s->luma.threshold; s 97 libavfilter/vf_smartblur.c s->luma.quality = s->chroma.quality = 3.0; s 98 libavfilter/vf_smartblur.c s->sws_flags = SWS_BICUBIC; s 103 libavfilter/vf_smartblur.c s->luma.radius, s->luma.strength, s->luma.threshold, s 104 libavfilter/vf_smartblur.c s->chroma.radius, s->chroma.strength, s->chroma.threshold); s 111 libavfilter/vf_smartblur.c SmartblurContext *s = ctx->priv; s 113 libavfilter/vf_smartblur.c sws_freeContext(s->luma.filter_context); s 114 libavfilter/vf_smartblur.c sws_freeContext(s->chroma.filter_context); s 162 libavfilter/vf_smartblur.c SmartblurContext *s = inlink->dst->priv; s 165 libavfilter/vf_smartblur.c s->hsub = desc->log2_chroma_w; s 166 libavfilter/vf_smartblur.c s->vsub = desc->log2_chroma_h; s 168 libavfilter/vf_smartblur.c alloc_sws_context(&s->luma, inlink->w, inlink->h, s->sws_flags); s 169 libavfilter/vf_smartblur.c alloc_sws_context(&s->chroma, s 170 libavfilter/vf_smartblur.c AV_CEIL_RSHIFT(inlink->w, s->hsub), s 171 libavfilter/vf_smartblur.c AV_CEIL_RSHIFT(inlink->h, s->vsub), s 172 libavfilter/vf_smartblur.c s->sws_flags); s 243 libavfilter/vf_smartblur.c SmartblurContext *s = inlink->dst->priv; s 246 libavfilter/vf_smartblur.c int cw = AV_CEIL_RSHIFT(inlink->w, s->hsub); s 247 libavfilter/vf_smartblur.c int ch = AV_CEIL_RSHIFT(inlink->h, s->vsub); s 258 libavfilter/vf_smartblur.c inlink->w, inlink->h, s->luma.threshold, s 259 libavfilter/vf_smartblur.c s->luma.filter_context); s 264 libavfilter/vf_smartblur.c cw, ch, s->chroma.threshold, s 265 libavfilter/vf_smartblur.c s->chroma.filter_context); s 268 libavfilter/vf_smartblur.c cw, ch, s->chroma.threshold, s 269 libavfilter/vf_smartblur.c s->chroma.filter_context); s 54 libavfilter/vf_spp.c SPPContext *s = obj; s 55 libavfilter/vf_spp.c return prev ? NULL : s->dct; s 336 libavfilter/vf_spp.c SPPContext *s = inlink->dst->priv; s 341 libavfilter/vf_spp.c av_opt_set_int(s->dct, "bits_per_sample", bps, 0); s 342 libavfilter/vf_spp.c avcodec_dct_init(s->dct); s 345 libavfilter/vf_spp.c ff_spp_init_x86(s); s 347 libavfilter/vf_spp.c s->hsub = desc->log2_chroma_w; s 348 libavfilter/vf_spp.c s->vsub = desc->log2_chroma_h; s 349 libavfilter/vf_spp.c s->temp_linesize = FFALIGN(inlink->w + 16, 16); s 350 libavfilter/vf_spp.c s->temp = av_malloc_array(s->temp_linesize, h * sizeof(*s->temp)); s 351 libavfilter/vf_spp.c s->src = av_malloc_array(s->temp_linesize, h * sizeof(*s->src) * 2); s 353 libavfilter/vf_spp.c if (!s->temp || !s->src) s 361 libavfilter/vf_spp.c SPPContext *s = ctx->priv; s 373 libavfilter/vf_spp.c if (!s->qp) { s 374 libavfilter/vf_spp.c qp_table = av_frame_get_qp_table(in, &qp_stride, &s->qscale_type); s 376 libavfilter/vf_spp.c if (qp_table && !s->use_bframe_qp && in->pict_type != AV_PICTURE_TYPE_B) { s 389 libavfilter/vf_spp.c if (w * h > s->non_b_qp_alloc_size) { s 390 libavfilter/vf_spp.c int ret = av_reallocp_array(&s->non_b_qp_table, w, h); s 392 libavfilter/vf_spp.c s->non_b_qp_alloc_size = 0; s 395 libavfilter/vf_spp.c s->non_b_qp_alloc_size = w * h; s 398 libavfilter/vf_spp.c av_assert0(w * h <= s->non_b_qp_alloc_size); s 399 libavfilter/vf_spp.c memcpy(s->non_b_qp_table, qp_table, w * h); s 403 libavfilter/vf_spp.c if (s->log2_count && !ctx->is_disabled) { s 404 libavfilter/vf_spp.c if (!s->use_bframe_qp && s->non_b_qp_table) s 405 libavfilter/vf_spp.c qp_table = s->non_b_qp_table; s 407 libavfilter/vf_spp.c if (qp_table || s->qp) { s 408 libavfilter/vf_spp.c const int cw = AV_CEIL_RSHIFT(inlink->w, s->hsub); s 409 libavfilter/vf_spp.c const int ch = AV_CEIL_RSHIFT(inlink->h, s->vsub); s 427 libavfilter/vf_spp.c filter(s, out->data[0], in->data[0], out->linesize[0], in->linesize[0], inlink->w, inlink->h, qp_table, qp_stride, 1, depth); s 430 libavfilter/vf_spp.c filter(s, out->data[1], in->data[1], out->linesize[1], in->linesize[1], cw, ch, qp_table, qp_stride, 0, depth); s 431 libavfilter/vf_spp.c filter(s, out->data[2], in->data[2], out->linesize[2], in->linesize[2], cw, ch, qp_table, qp_stride, 0, depth); s 450 libavfilter/vf_spp.c SPPContext *s = ctx->priv; s 454 libavfilter/vf_spp.c s->log2_count = MAX_LEVEL; s 456 libavfilter/vf_spp.c s->log2_count = av_clip(strtol(args, NULL, 10), 0, MAX_LEVEL); s 464 libavfilter/vf_spp.c SPPContext *s = ctx->priv; s 467 libavfilter/vf_spp.c s->dct = avcodec_dct_alloc(); s 468 libavfilter/vf_spp.c if (!s->dct) s 475 libavfilter/vf_spp.c if ((ret = av_opt_set(s->dct, e->key, e->value, 0)) < 0) s 481 libavfilter/vf_spp.c s->store_slice = store_slice_c; s 482 libavfilter/vf_spp.c switch (s->mode) { s 483 libavfilter/vf_spp.c case MODE_HARD: s->requantize = hardthresh_c; break; s 484 libavfilter/vf_spp.c case MODE_SOFT: s->requantize = softthresh_c; break; s 491 libavfilter/vf_spp.c SPPContext *s = ctx->priv; s 493 libavfilter/vf_spp.c av_freep(&s->temp); s 494 libavfilter/vf_spp.c av_freep(&s->src); s 495 libavfilter/vf_spp.c av_freep(&s->dct); s 496 libavfilter/vf_spp.c av_freep(&s->non_b_qp_table); s 55 libavfilter/vf_spp.h void ff_spp_init_x86(SPPContext *s); s 288 libavfilter/vf_ssim.c SSIMContext *s = ctx->priv; s 301 libavfilter/vf_ssim.c s->nb_frames++; s 303 libavfilter/vf_ssim.c for (i = 0; i < s->nb_components; i++) { s 304 libavfilter/vf_ssim.c c[i] = s->ssim_plane(&s->dsp, master->data[i], master->linesize[i], s 306 libavfilter/vf_ssim.c s->planewidth[i], s->planeheight[i], s->temp, s 307 libavfilter/vf_ssim.c s->max); s 308 libavfilter/vf_ssim.c ssimv += s->coefs[i] * c[i]; s 309 libavfilter/vf_ssim.c s->ssim[i] += c[i]; s 311 libavfilter/vf_ssim.c for (i = 0; i < s->nb_components; i++) { s 312 libavfilter/vf_ssim.c int cidx = s->is_rgb ? s->rgba_map[i] : i; s 313 libavfilter/vf_ssim.c set_meta(metadata, "lavfi.ssim.", s->comps[i], c[cidx]); s 315 libavfilter/vf_ssim.c s->ssim_total += ssimv; s 320 libavfilter/vf_ssim.c if (s->stats_file) { s 321 libavfilter/vf_ssim.c fprintf(s->stats_file, "n:%"PRId64" ", s->nb_frames); s 323 libavfilter/vf_ssim.c for (i = 0; i < s->nb_components; i++) { s 324 libavfilter/vf_ssim.c int cidx = s->is_rgb ? s->rgba_map[i] : i; s 325 libavfilter/vf_ssim.c fprintf(s->stats_file, "%c:%f ", s->comps[i], c[cidx]); s 328 libavfilter/vf_ssim.c fprintf(s->stats_file, "All:%f (%f)\n", ssimv, ssim_db(ssimv, 1.0)); s 336 libavfilter/vf_ssim.c SSIMContext *s = ctx->priv; s 338 libavfilter/vf_ssim.c if (s->stats_file_str) { s 339 libavfilter/vf_ssim.c if (!strcmp(s->stats_file_str, "-")) { s 340 libavfilter/vf_ssim.c s->stats_file = stdout; s 342 libavfilter/vf_ssim.c s->stats_file = fopen(s->stats_file_str, "w"); s 343 libavfilter/vf_ssim.c if (!s->stats_file) { s 348 libavfilter/vf_ssim.c s->stats_file_str, buf); s 354 libavfilter/vf_ssim.c s->fs.on_event = do_ssim; s 383 libavfilter/vf_ssim.c SSIMContext *s = ctx->priv; s 386 libavfilter/vf_ssim.c s->nb_components = desc->nb_components; s 398 libavfilter/vf_ssim.c s->is_rgb = ff_fill_rgba_map(s->rgba_map, inlink->format) >= 0; s 399 libavfilter/vf_ssim.c s->comps[0] = s->is_rgb ? 'R' : 'Y'; s 400 libavfilter/vf_ssim.c s->comps[1] = s->is_rgb ? 'G' : 'U'; s 401 libavfilter/vf_ssim.c s->comps[2] = s->is_rgb ? 'B' : 'V'; s 402 libavfilter/vf_ssim.c s->comps[3] = 'A'; s 404 libavfilter/vf_ssim.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 405 libavfilter/vf_ssim.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 406 libavfilter/vf_ssim.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 407 libavfilter/vf_ssim.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 408 libavfilter/vf_ssim.c for (i = 0; i < s->nb_components; i++) s 409 libavfilter/vf_ssim.c sum += s->planeheight[i] * s->planewidth[i]; s 410 libavfilter/vf_ssim.c for (i = 0; i < s->nb_components; i++) s 411 libavfilter/vf_ssim.c s->coefs[i] = (double) s->planeheight[i] * s->planewidth[i] / sum; s 413 libavfilter/vf_ssim.c s->temp = av_mallocz_array(2 * SUM_LEN(inlink->w), (desc->comp[0].depth > 8) ? sizeof(int64_t[4]) : sizeof(int[4])); s 414 libavfilter/vf_ssim.c if (!s->temp) s 416 libavfilter/vf_ssim.c s->max = (1 << desc->comp[0].depth) - 1; s 418 libavfilter/vf_ssim.c s->ssim_plane = desc->comp[0].depth > 8 ? ssim_plane_16bit : ssim_plane; s 419 libavfilter/vf_ssim.c s->dsp.ssim_4x4_line = ssim_4x4xn_8bit; s 420 libavfilter/vf_ssim.c s->dsp.ssim_end_line = ssim_endn_8bit; s 422 libavfilter/vf_ssim.c ff_ssim_init_x86(&s->dsp); s 430 libavfilter/vf_ssim.c SSIMContext *s = ctx->priv; s 434 libavfilter/vf_ssim.c ret = ff_framesync_init_dualinput(&s->fs, ctx); s 443 libavfilter/vf_ssim.c if ((ret = ff_framesync_configure(&s->fs)) < 0) s 446 libavfilter/vf_ssim.c outlink->time_base = s->fs.time_base; s 459 libavfilter/vf_ssim.c SSIMContext *s = ctx->priv; s 460 libavfilter/vf_ssim.c return ff_framesync_activate(&s->fs); s 465 libavfilter/vf_ssim.c SSIMContext *s = ctx->priv; s 467 libavfilter/vf_ssim.c if (s->nb_frames > 0) { s 471 libavfilter/vf_ssim.c for (i = 0; i < s->nb_components; i++) { s 472 libavfilter/vf_ssim.c int c = s->is_rgb ? s->rgba_map[i] : i; s 473 libavfilter/vf_ssim.c av_strlcatf(buf, sizeof(buf), " %c:%f (%f)", s->comps[i], s->ssim[c] / s->nb_frames, s 474 libavfilter/vf_ssim.c ssim_db(s->ssim[c], s->nb_frames)); s 477 libavfilter/vf_ssim.c s->ssim_total / s->nb_frames, ssim_db(s->ssim_total, s->nb_frames)); s 480 libavfilter/vf_ssim.c ff_framesync_uninit(&s->fs); s 482 libavfilter/vf_ssim.c if (s->stats_file && s->stats_file != stdout) s 483 libavfilter/vf_ssim.c fclose(s->stats_file); s 485 libavfilter/vf_ssim.c av_freep(&s->temp); s 64 libavfilter/vf_stack.c StackContext *s = ctx->priv; s 67 libavfilter/vf_stack.c if (s->fillcolor_enable) { s 85 libavfilter/vf_stack.c StackContext *s = ctx->priv; s 89 libavfilter/vf_stack.c s->is_vertical = 1; s 92 libavfilter/vf_stack.c s->is_horizontal = 1; s 94 libavfilter/vf_stack.c s->frames = av_calloc(s->nb_inputs, sizeof(*s->frames)); s 95 libavfilter/vf_stack.c if (!s->frames) s 98 libavfilter/vf_stack.c s->items = av_calloc(s->nb_inputs, sizeof(*s->items)); s 99 libavfilter/vf_stack.c if (!s->items) s 103 libavfilter/vf_stack.c if (strcmp(s->fillcolor_str, "none") && s 104 libavfilter/vf_stack.c av_parse_color(s->fillcolor, s->fillcolor_str, -1, ctx) >= 0) { s 105 libavfilter/vf_stack.c s->fillcolor_enable = 1; s 107 libavfilter/vf_stack.c s->fillcolor_enable = 0; s 109 libavfilter/vf_stack.c if (!s->layout) { s 110 libavfilter/vf_stack.c if (s->nb_inputs == 2) { s 111 libavfilter/vf_stack.c s->layout = av_strdup("0_0|w0_0"); s 112 libavfilter/vf_stack.c if (!s->layout) s 121 libavfilter/vf_stack.c for (i = 0; i < s->nb_inputs; i++) { s 140 libavfilter/vf_stack.c StackContext *s = ctx->priv; s 142 libavfilter/vf_stack.c AVFrame **in = s->frames; s 143 libavfilter/vf_stack.c const int start = (s->nb_inputs * job ) / nb_jobs; s 144 libavfilter/vf_stack.c const int end = (s->nb_inputs * (job+1)) / nb_jobs; s 147 libavfilter/vf_stack.c StackItem *item = &s->items[i]; s 149 libavfilter/vf_stack.c for (int p = 0; p < s->nb_planes; p++) { s 165 libavfilter/vf_stack.c StackContext *s = fs->opaque; s 166 libavfilter/vf_stack.c AVFrame **in = s->frames; s 170 libavfilter/vf_stack.c for (i = 0; i < s->nb_inputs; i++) { s 171 libavfilter/vf_stack.c if ((ret = ff_framesync_get_frame(&s->fs, i, &in[i], 0)) < 0) s 178 libavfilter/vf_stack.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 181 libavfilter/vf_stack.c if (s->fillcolor_enable) s 182 libavfilter/vf_stack.c ff_fill_rectangle(&s->draw, &s->color, out->data, out->linesize, s 185 libavfilter/vf_stack.c ctx->internal->execute(ctx, process_slice, out, NULL, FFMIN(s->nb_inputs, ff_filter_get_nb_threads(ctx))); s 193 libavfilter/vf_stack.c StackContext *s = ctx->priv; s 201 libavfilter/vf_stack.c s->desc = av_pix_fmt_desc_get(outlink->format); s 202 libavfilter/vf_stack.c if (!s->desc) s 205 libavfilter/vf_stack.c if (s->is_vertical) { s 206 libavfilter/vf_stack.c for (i = 0; i < s->nb_inputs; i++) { s 208 libavfilter/vf_stack.c StackItem *item = &s->items[i]; s 219 libavfilter/vf_stack.c item->height[1] = item->height[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 223 libavfilter/vf_stack.c item->y[1] = item->y[2] = AV_CEIL_RSHIFT(height, s->desc->log2_chroma_h); s 229 libavfilter/vf_stack.c } else if (s->is_horizontal) { s 230 libavfilter/vf_stack.c for (i = 0; i < s->nb_inputs; i++) { s 232 libavfilter/vf_stack.c StackItem *item = &s->items[i]; s 243 libavfilter/vf_stack.c item->height[1] = item->height[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 255 libavfilter/vf_stack.c char *arg, *p = s->layout, *saveptr = NULL; s 260 libavfilter/vf_stack.c if (s->fillcolor_enable) { s 261 libavfilter/vf_stack.c ff_draw_init(&s->draw, ctx->inputs[0]->format, 0); s 262 libavfilter/vf_stack.c ff_draw_color(&s->draw, &s->color, s->fillcolor); s 265 libavfilter/vf_stack.c for (i = 0; i < s->nb_inputs; i++) { s 267 libavfilter/vf_stack.c StackItem *item = &s->items[i]; s 278 libavfilter/vf_stack.c item->height[1] = item->height[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 293 libavfilter/vf_stack.c if (size == i || size < 0 || size >= s->nb_inputs) s 301 libavfilter/vf_stack.c if (size == i || size < 0 || size >= s->nb_inputs) s 326 libavfilter/vf_stack.c item->y[1] = item->y[2] = AV_CEIL_RSHIFT(inh, s->desc->log2_chroma_h); s 334 libavfilter/vf_stack.c s->nb_planes = av_pix_fmt_count_planes(outlink->format); s 341 libavfilter/vf_stack.c for (i = 1; i < s->nb_inputs; i++) { s 352 libavfilter/vf_stack.c if ((ret = ff_framesync_init(&s->fs, ctx, s->nb_inputs)) < 0) s 355 libavfilter/vf_stack.c in = s->fs.in; s 356 libavfilter/vf_stack.c s->fs.opaque = s; s 357 libavfilter/vf_stack.c s->fs.on_event = process_frame; s 359 libavfilter/vf_stack.c for (i = 0; i < s->nb_inputs; i++) { s 365 libavfilter/vf_stack.c in[i].after = s->shortest ? EXT_STOP : EXT_INFINITY; s 368 libavfilter/vf_stack.c ret = ff_framesync_configure(&s->fs); s 369 libavfilter/vf_stack.c outlink->time_base = s->fs.time_base; s 376 libavfilter/vf_stack.c StackContext *s = ctx->priv; s 379 libavfilter/vf_stack.c ff_framesync_uninit(&s->fs); s 380 libavfilter/vf_stack.c av_freep(&s->frames); s 381 libavfilter/vf_stack.c av_freep(&s->items); s 389 libavfilter/vf_stack.c StackContext *s = ctx->priv; s 390 libavfilter/vf_stack.c return ff_framesync_activate(&s->fs); s 284 libavfilter/vf_stereo3d.c Stereo3DContext *s = ctx->priv; s 288 libavfilter/vf_stereo3d.c switch (s->out.format) { s 370 libavfilter/vf_stereo3d.c Stereo3DContext *s = ctx->priv; s 375 libavfilter/vf_stereo3d.c s->aspect = inlink->sample_aspect_ratio; s 377 libavfilter/vf_stereo3d.c switch (s->in.format) { s 402 libavfilter/vf_stereo3d.c s->in.width = s 403 libavfilter/vf_stereo3d.c s->width = inlink->w; s 404 libavfilter/vf_stereo3d.c s->in.height = s 405 libavfilter/vf_stereo3d.c s->height = inlink->h; s 406 libavfilter/vf_stereo3d.c s->in.off_lstep = s 407 libavfilter/vf_stereo3d.c s->in.off_rstep = s 408 libavfilter/vf_stereo3d.c s->in.off_left = s 409 libavfilter/vf_stereo3d.c s->in.off_right = s 410 libavfilter/vf_stereo3d.c s->in.row_left = s 411 libavfilter/vf_stereo3d.c s->in.row_right = 0; s 412 libavfilter/vf_stereo3d.c s->in.row_step = 1; s 414 libavfilter/vf_stereo3d.c switch (s->in.format) { s 416 libavfilter/vf_stereo3d.c s->aspect.num *= 2; s 418 libavfilter/vf_stereo3d.c s->width = inlink->w / 2; s 419 libavfilter/vf_stereo3d.c s->in.off_right = s->width; s 422 libavfilter/vf_stereo3d.c s->aspect.num *= 2; s 424 libavfilter/vf_stereo3d.c s->width = inlink->w / 2; s 425 libavfilter/vf_stereo3d.c s->in.off_left = s->width; s 428 libavfilter/vf_stereo3d.c s->aspect.den *= 2; s 430 libavfilter/vf_stereo3d.c s->in.row_right = s 431 libavfilter/vf_stereo3d.c s->height = inlink->h / 2; s 434 libavfilter/vf_stereo3d.c s->aspect.den *= 2; s 436 libavfilter/vf_stereo3d.c s->in.row_left = s 437 libavfilter/vf_stereo3d.c s->height = inlink->h / 2; s 446 libavfilter/vf_stereo3d.c s->width = inlink->w / 2; s 450 libavfilter/vf_stereo3d.c s->in.row_step = 2; s 451 libavfilter/vf_stereo3d.c if (s->in.format == INTERLEAVE_ROWS_RL) s 452 libavfilter/vf_stereo3d.c s->in.off_lstep = 1; s 454 libavfilter/vf_stereo3d.c s->in.off_rstep = 1; s 455 libavfilter/vf_stereo3d.c if (s->out.format != CHECKERBOARD_LR && s 456 libavfilter/vf_stereo3d.c s->out.format != CHECKERBOARD_RL) s 457 libavfilter/vf_stereo3d.c s->height = inlink->h / 2; s 460 libavfilter/vf_stereo3d.c av_log(ctx, AV_LOG_ERROR, "input format %d is not supported\n", s->in.format); s 464 libavfilter/vf_stereo3d.c s->out.width = s->width; s 465 libavfilter/vf_stereo3d.c s->out.height = s->height; s 466 libavfilter/vf_stereo3d.c s->out.off_lstep = s 467 libavfilter/vf_stereo3d.c s->out.off_rstep = s 468 libavfilter/vf_stereo3d.c s->out.off_left = s 469 libavfilter/vf_stereo3d.c s->out.off_right = s 470 libavfilter/vf_stereo3d.c s->out.row_left = s 471 libavfilter/vf_stereo3d.c s->out.row_right = 0; s 472 libavfilter/vf_stereo3d.c s->out.row_step = 1; s 474 libavfilter/vf_stereo3d.c switch (s->out.format) { s 492 libavfilter/vf_stereo3d.c s->ana_matrix[rgba_map[0]] = &ana_coeff[s->out.format][0][0]; s 493 libavfilter/vf_stereo3d.c s->ana_matrix[rgba_map[1]] = &ana_coeff[s->out.format][1][0]; s 494 libavfilter/vf_stereo3d.c s->ana_matrix[rgba_map[2]] = &ana_coeff[s->out.format][2][0]; s 498 libavfilter/vf_stereo3d.c s->aspect.den *= 2; s 500 libavfilter/vf_stereo3d.c s->out.width = s->width * 2; s 501 libavfilter/vf_stereo3d.c s->out.off_right = s->width; s 504 libavfilter/vf_stereo3d.c s->aspect.den *= 2; s 506 libavfilter/vf_stereo3d.c s->out.width = s->width * 2; s 507 libavfilter/vf_stereo3d.c s->out.off_left = s->width; s 510 libavfilter/vf_stereo3d.c s->aspect.num *= 2; s 512 libavfilter/vf_stereo3d.c s->out.height = s->height * 2; s 513 libavfilter/vf_stereo3d.c s->out.row_right = s->height; s 516 libavfilter/vf_stereo3d.c if (s->height != 720 && s->height != 1080) { s 521 libavfilter/vf_stereo3d.c s->blanks = s->height / 24; s 522 libavfilter/vf_stereo3d.c s->out.height = s->height * 2 + s->blanks; s 523 libavfilter/vf_stereo3d.c s->out.row_right = s->height + s->blanks; s 526 libavfilter/vf_stereo3d.c s->aspect.num *= 2; s 528 libavfilter/vf_stereo3d.c s->out.height = s->height * 2; s 529 libavfilter/vf_stereo3d.c s->out.row_left = s->height; s 532 libavfilter/vf_stereo3d.c s->in.row_step = 1 + (s->in.format == INTERLEAVE_ROWS_RL); s 533 libavfilter/vf_stereo3d.c s->out.row_step = 2; s 534 libavfilter/vf_stereo3d.c s->out.height = s->height * 2; s 535 libavfilter/vf_stereo3d.c s->out.off_rstep = 1; s 538 libavfilter/vf_stereo3d.c s->in.row_step = 1 + (s->in.format == INTERLEAVE_ROWS_LR); s 539 libavfilter/vf_stereo3d.c s->out.row_step = 2; s 540 libavfilter/vf_stereo3d.c s->out.height = s->height * 2; s 541 libavfilter/vf_stereo3d.c s->out.off_lstep = 1; s 544 libavfilter/vf_stereo3d.c if (s->in.format != INTERLEAVE_COLS_LR) { s 545 libavfilter/vf_stereo3d.c s->in.off_left = s->in.off_right; s 546 libavfilter/vf_stereo3d.c s->in.row_left = s->in.row_right; s 548 libavfilter/vf_stereo3d.c if (s->in.format == INTERLEAVE_ROWS_LR) s 549 libavfilter/vf_stereo3d.c FFSWAP(int, s->in.off_lstep, s->in.off_rstep); s 552 libavfilter/vf_stereo3d.c if (s->in.format == INTERLEAVE_ROWS_RL) s 553 libavfilter/vf_stereo3d.c FFSWAP(int, s->in.off_lstep, s->in.off_rstep); s 564 libavfilter/vf_stereo3d.c s->out.width = s->width * 2; s 567 libavfilter/vf_stereo3d.c av_log(ctx, AV_LOG_ERROR, "output format %d is not supported\n", s->out.format); s 571 libavfilter/vf_stereo3d.c if (s->in.format == INTERLEAVE_COLS_LR || s->in.format == INTERLEAVE_COLS_RL) { s 572 libavfilter/vf_stereo3d.c if ((s->in.format & 1) != (s->out.format & 1)) { s 573 libavfilter/vf_stereo3d.c FFSWAP(int, s->in.row_left, s->in.row_right); s 574 libavfilter/vf_stereo3d.c FFSWAP(int, s->in.off_lstep, s->in.off_rstep); s 575 libavfilter/vf_stereo3d.c FFSWAP(int, s->in.off_left, s->in.off_right); s 576 libavfilter/vf_stereo3d.c FFSWAP(int, s->out.row_left, s->out.row_right); s 577 libavfilter/vf_stereo3d.c FFSWAP(int, s->out.off_lstep, s->out.off_rstep); s 578 libavfilter/vf_stereo3d.c FFSWAP(int, s->out.off_left, s->out.off_right); s 582 libavfilter/vf_stereo3d.c outlink->w = s->out.width; s 583 libavfilter/vf_stereo3d.c outlink->h = s->out.height; s 586 libavfilter/vf_stereo3d.c outlink->sample_aspect_ratio = s->aspect; s 588 libavfilter/vf_stereo3d.c if ((ret = av_image_fill_linesizes(s->linesize, outlink->format, s->width)) < 0) s 590 libavfilter/vf_stereo3d.c s->nb_planes = av_pix_fmt_count_planes(outlink->format); s 591 libavfilter/vf_stereo3d.c av_image_fill_max_pixsteps(s->pixstep, NULL, desc); s 592 libavfilter/vf_stereo3d.c s->pheight[1] = s->pheight[2] = AV_CEIL_RSHIFT(s->height, desc->log2_chroma_h); s 593 libavfilter/vf_stereo3d.c s->pheight[0] = s->pheight[3] = s->height; s 594 libavfilter/vf_stereo3d.c s->hsub = desc->log2_chroma_w; s 595 libavfilter/vf_stereo3d.c s->vsub = desc->log2_chroma_h; s 597 libavfilter/vf_stereo3d.c s->dsp.anaglyph = anaglyph; s 599 libavfilter/vf_stereo3d.c ff_stereo3d_init_x86(&s->dsp); s 611 libavfilter/vf_stereo3d.c Stereo3DContext *s = ctx->priv; s 616 libavfilter/vf_stereo3d.c int height = s->out.height; s 619 libavfilter/vf_stereo3d.c const int **ana_matrix = s->ana_matrix; s 621 libavfilter/vf_stereo3d.c s->dsp.anaglyph(out->data[0] + out->linesize[0] * start, s 622 libavfilter/vf_stereo3d.c ileft ->data[0] + s->in_off_left [0] + ileft->linesize[0] * start * s->in.row_step, s 623 libavfilter/vf_stereo3d.c iright->data[0] + s->in_off_right[0] + iright->linesize[0] * start * s->in.row_step, s 625 libavfilter/vf_stereo3d.c ileft->linesize[0] * s->in.row_step, s 626 libavfilter/vf_stereo3d.c iright->linesize[0] * s->in.row_step, s 627 libavfilter/vf_stereo3d.c s->out.width, end - start, s 633 libavfilter/vf_stereo3d.c static void interleave_cols_to_any(Stereo3DContext *s, int *out_off, int p, AVFrame *in, AVFrame *out, int d) s 637 libavfilter/vf_stereo3d.c for (y = 0; y < s->pheight[p]; y++) { s 638 libavfilter/vf_stereo3d.c const uint8_t *src = (const uint8_t*)in->data[p] + y * in->linesize[p] + d * s->pixstep[p]; s 639 libavfilter/vf_stereo3d.c uint8_t *dst = out->data[p] + out_off[p] + y * out->linesize[p] * s->out.row_step; s 641 libavfilter/vf_stereo3d.c switch (s->pixstep[p]) { s 643 libavfilter/vf_stereo3d.c for (x = 0; x < s->linesize[p]; x++) s 647 libavfilter/vf_stereo3d.c for (x = 0; x < s->linesize[p]; x+=2) s 651 libavfilter/vf_stereo3d.c for (x = 0; x < s->linesize[p]; x+=3) s 655 libavfilter/vf_stereo3d.c for (x = 0; x < s->linesize[p]; x+=4) s 659 libavfilter/vf_stereo3d.c for (x = 0; x < s->linesize[p]; x+=6) s 663 libavfilter/vf_stereo3d.c for (x = 0; x < s->linesize[p]; x+=8) s 673 libavfilter/vf_stereo3d.c Stereo3DContext *s = ctx->priv; s 679 libavfilter/vf_stereo3d.c if (s->in.format == s->out.format) s 682 libavfilter/vf_stereo3d.c switch (s->out.format) { s 685 libavfilter/vf_stereo3d.c if (!s->prev) { s 686 libavfilter/vf_stereo3d.c s->prev = inpicref; s 692 libavfilter/vf_stereo3d.c switch (s->in.format) { s 695 libavfilter/vf_stereo3d.c if (!s->prev) { s 696 libavfilter/vf_stereo3d.c s->prev = inpicref; s 699 libavfilter/vf_stereo3d.c ileft = s->prev; s 701 libavfilter/vf_stereo3d.c if (s->in.format == ALTERNATING_RL) s 708 libavfilter/vf_stereo3d.c if ((s->out.format == ALTERNATING_LR || s 709 libavfilter/vf_stereo3d.c s->out.format == ALTERNATING_RL) && s 710 libavfilter/vf_stereo3d.c (s->in.format == SIDE_BY_SIDE_LR || s 711 libavfilter/vf_stereo3d.c s->in.format == SIDE_BY_SIDE_RL || s 712 libavfilter/vf_stereo3d.c s->in.format == SIDE_BY_SIDE_2_LR || s 713 libavfilter/vf_stereo3d.c s->in.format == SIDE_BY_SIDE_2_RL || s 714 libavfilter/vf_stereo3d.c s->in.format == ABOVE_BELOW_LR || s 715 libavfilter/vf_stereo3d.c s->in.format == ABOVE_BELOW_RL || s 716 libavfilter/vf_stereo3d.c s->in.format == ABOVE_BELOW_2_LR || s 717 libavfilter/vf_stereo3d.c s->in.format == ABOVE_BELOW_2_RL || s 718 libavfilter/vf_stereo3d.c s->in.format == INTERLEAVE_ROWS_LR || s 719 libavfilter/vf_stereo3d.c s->in.format == INTERLEAVE_ROWS_RL)) { s 720 libavfilter/vf_stereo3d.c oright = av_frame_clone(s->prev); s 721 libavfilter/vf_stereo3d.c oleft = av_frame_clone(s->prev); s 725 libavfilter/vf_stereo3d.c av_frame_free(&s->prev); s 729 libavfilter/vf_stereo3d.c } else if ((s->out.format == MONO_L || s 730 libavfilter/vf_stereo3d.c s->out.format == MONO_R) && s 731 libavfilter/vf_stereo3d.c (s->in.format == SIDE_BY_SIDE_LR || s 732 libavfilter/vf_stereo3d.c s->in.format == SIDE_BY_SIDE_RL || s 733 libavfilter/vf_stereo3d.c s->in.format == SIDE_BY_SIDE_2_LR || s 734 libavfilter/vf_stereo3d.c s->in.format == SIDE_BY_SIDE_2_RL || s 735 libavfilter/vf_stereo3d.c s->in.format == ABOVE_BELOW_LR || s 736 libavfilter/vf_stereo3d.c s->in.format == ABOVE_BELOW_RL || s 737 libavfilter/vf_stereo3d.c s->in.format == ABOVE_BELOW_2_LR || s 738 libavfilter/vf_stereo3d.c s->in.format == ABOVE_BELOW_2_RL || s 739 libavfilter/vf_stereo3d.c s->in.format == INTERLEAVE_ROWS_LR || s 740 libavfilter/vf_stereo3d.c s->in.format == INTERLEAVE_ROWS_RL)) { s 743 libavfilter/vf_stereo3d.c av_frame_free(&s->prev); s 747 libavfilter/vf_stereo3d.c } else if ((s->out.format == MONO_L && s->in.format == ALTERNATING_LR) || s 748 libavfilter/vf_stereo3d.c (s->out.format == MONO_R && s->in.format == ALTERNATING_RL)) { s 749 libavfilter/vf_stereo3d.c s->prev->pts /= 2; s 750 libavfilter/vf_stereo3d.c ret = ff_filter_frame(outlink, s->prev); s 752 libavfilter/vf_stereo3d.c s->prev = NULL; s 754 libavfilter/vf_stereo3d.c } else if ((s->out.format == MONO_L && s->in.format == ALTERNATING_RL) || s 755 libavfilter/vf_stereo3d.c (s->out.format == MONO_R && s->in.format == ALTERNATING_LR)) { s 756 libavfilter/vf_stereo3d.c av_frame_free(&s->prev); s 759 libavfilter/vf_stereo3d.c } else if ((s->out.format == ALTERNATING_LR && s->in.format == ALTERNATING_RL) || s 760 libavfilter/vf_stereo3d.c (s->out.format == ALTERNATING_RL && s->in.format == ALTERNATING_LR)) { s 761 libavfilter/vf_stereo3d.c FFSWAP(int64_t, s->prev->pts, inpicref->pts); s 763 libavfilter/vf_stereo3d.c ret = ff_filter_frame(outlink, s->prev); s 764 libavfilter/vf_stereo3d.c s->prev = NULL; s 769 libavfilter/vf_stereo3d.c av_frame_free(&s->prev); s 775 libavfilter/vf_stereo3d.c if (s->out.format == ALTERNATING_LR || s 776 libavfilter/vf_stereo3d.c s->out.format == ALTERNATING_RL) { s 780 libavfilter/vf_stereo3d.c av_frame_free(&s->prev); s 784 libavfilter/vf_stereo3d.c av_frame_copy_props(oright, s->prev); s 789 libavfilter/vf_stereo3d.c int hsub = i == 1 || i == 2 ? s->hsub : 0; s 790 libavfilter/vf_stereo3d.c int vsub = i == 1 || i == 2 ? s->vsub : 0; s 791 libavfilter/vf_stereo3d.c s->in_off_left[i] = (AV_CEIL_RSHIFT(s->in.row_left, vsub) + s->in.off_lstep) * ileft->linesize[i] + AV_CEIL_RSHIFT(s->in.off_left * s->pixstep[i], hsub); s 792 libavfilter/vf_stereo3d.c s->in_off_right[i] = (AV_CEIL_RSHIFT(s->in.row_right, vsub) + s->in.off_rstep) * iright->linesize[i] + AV_CEIL_RSHIFT(s->in.off_right * s->pixstep[i], hsub); s 793 libavfilter/vf_stereo3d.c out_off_left[i] = (AV_CEIL_RSHIFT(s->out.row_left, vsub) + s->out.off_lstep) * oleft->linesize[i] + AV_CEIL_RSHIFT(s->out.off_left * s->pixstep[i], hsub); s 794 libavfilter/vf_stereo3d.c out_off_right[i] = (AV_CEIL_RSHIFT(s->out.row_right, vsub) + s->out.off_rstep) * oright->linesize[i] + AV_CEIL_RSHIFT(s->out.off_right * s->pixstep[i], hsub); s 797 libavfilter/vf_stereo3d.c switch (s->out.format) { s 800 libavfilter/vf_stereo3d.c switch (s->in.format) { s 803 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 820 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 821 libavfilter/vf_stereo3d.c oleft->data[i] += s->in_off_left[i]; s 822 libavfilter/vf_stereo3d.c oright->data[i] += s->in_off_right[i]; s 831 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 832 libavfilter/vf_stereo3d.c int j, h = s->height >> ((i == 1 || i == 2) ? s->vsub : 0); s 833 libavfilter/vf_stereo3d.c int b = (s->blanks) >> ((i == 1 || i == 2) ? s->vsub : 0); s 836 libavfilter/vf_stereo3d.c memset(oleft->data[i] + j * s->linesize[i], 0, s->linesize[i]); s 849 libavfilter/vf_stereo3d.c if (s->in.format == INTERLEAVE_COLS_LR || s 850 libavfilter/vf_stereo3d.c s->in.format == INTERLEAVE_COLS_RL) { s 851 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 852 libavfilter/vf_stereo3d.c int d = (s->in.format & 1) != (s->out.format & 1); s 854 libavfilter/vf_stereo3d.c interleave_cols_to_any(s, out_off_left, i, ileft, oleft, d); s 855 libavfilter/vf_stereo3d.c interleave_cols_to_any(s, out_off_right, i, iright, oright, !d); s 858 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 860 libavfilter/vf_stereo3d.c oleft->linesize[i] * s->out.row_step, s 861 libavfilter/vf_stereo3d.c ileft->data[i] + s->in_off_left[i], s 862 libavfilter/vf_stereo3d.c ileft->linesize[i] * s->in.row_step, s 863 libavfilter/vf_stereo3d.c s->linesize[i], s->pheight[i]); s 865 libavfilter/vf_stereo3d.c oright->linesize[i] * s->out.row_step, s 866 libavfilter/vf_stereo3d.c iright->data[i] + s->in_off_right[i], s 867 libavfilter/vf_stereo3d.c iright->linesize[i] * s->in.row_step, s 868 libavfilter/vf_stereo3d.c s->linesize[i], s->pheight[i]); s 875 libavfilter/vf_stereo3d.c switch (s->in.format) { s 878 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 892 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 893 libavfilter/vf_stereo3d.c out->data[i] += s->in_off_left[i]; s 898 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 899 libavfilter/vf_stereo3d.c const int d = (s->in.format & 1) != (s->out.format & 1); s 901 libavfilter/vf_stereo3d.c interleave_cols_to_any(s, out_off_right, i, iright, out, d); s 905 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 907 libavfilter/vf_stereo3d.c iright->data[i] + s->in_off_left[i], s 908 libavfilter/vf_stereo3d.c iright->linesize[i] * s->in.row_step, s 909 libavfilter/vf_stereo3d.c s->linesize[i], s->pheight[i]); s 928 libavfilter/vf_stereo3d.c if (s->in.format == INTERLEAVE_COLS_LR || s 929 libavfilter/vf_stereo3d.c s->in.format == INTERLEAVE_COLS_RL) { s 930 libavfilter/vf_stereo3d.c const int d = (s->in.format & 1); s 933 libavfilter/vf_stereo3d.c ileft ->data[0] + s->in_off_left [0] + d * 3, s 934 libavfilter/vf_stereo3d.c iright->data[0] + s->in_off_right[0] + (!d) * 3, s 936 libavfilter/vf_stereo3d.c ileft->linesize[0] * s->in.row_step, s 937 libavfilter/vf_stereo3d.c iright->linesize[0] * s->in.row_step, s 938 libavfilter/vf_stereo3d.c s->out.width, s->out.height, s 939 libavfilter/vf_stereo3d.c s->ana_matrix[0], s->ana_matrix[1], s->ana_matrix[2]); s 945 libavfilter/vf_stereo3d.c FFMIN(s->out.height, ff_filter_get_nb_threads(ctx))); s 951 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 954 libavfilter/vf_stereo3d.c for (y = 0; y < s->pheight[i]; y++) { s 956 libavfilter/vf_stereo3d.c const int d1 = (s->in.format == INTERLEAVE_COLS_LR || s->in.format == INTERLEAVE_COLS_RL) && (s->in.format & 1) != (s->out.format & 1); s 957 libavfilter/vf_stereo3d.c const int d2 = (s->in.format == INTERLEAVE_COLS_LR || s->in.format == INTERLEAVE_COLS_RL) ? !d1 : 0; s 958 libavfilter/vf_stereo3d.c const int m = 1 + (s->in.format == INTERLEAVE_COLS_LR || s->in.format == INTERLEAVE_COLS_RL); s 959 libavfilter/vf_stereo3d.c uint8_t *left = ileft->data[i] + ileft->linesize[i] * y + s->in_off_left[i] + d1 * s->pixstep[i]; s 960 libavfilter/vf_stereo3d.c uint8_t *right = iright->data[i] + iright->linesize[i] * y + s->in_off_right[i] + d2 * s->pixstep[i]; s 963 libavfilter/vf_stereo3d.c if (s->out.format == CHECKERBOARD_RL && s->in.format != INTERLEAVE_COLS_LR && s->in.format != INTERLEAVE_COLS_RL) s 965 libavfilter/vf_stereo3d.c switch (s->pixstep[i]) { s 967 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=2, p++, b+=2) { s 973 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=4, p+=2, b+=2) { s 979 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=6, p+=3, b+=2) { s 985 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=8, p+=4, b+=2) { s 991 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=12, p+=6, b+=2) { s 997 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=16, p+=8, b+=2) { s 1008 libavfilter/vf_stereo3d.c for (i = 0; i < s->nb_planes; i++) { s 1009 libavfilter/vf_stereo3d.c const int d = (s->in.format == INTERLEAVE_COLS_LR || s->in.format == INTERLEAVE_COLS_RL); s 1013 libavfilter/vf_stereo3d.c for (y = 0; y < s->pheight[i]; y++) { s 1015 libavfilter/vf_stereo3d.c uint8_t *left = ileft->data[i] + ileft->linesize[i] * y * s->in.row_step + s->in_off_left[i] + d * s->pixstep[i]; s 1016 libavfilter/vf_stereo3d.c uint8_t *right = iright->data[i] + iright->linesize[i] * y * s->in.row_step + s->in_off_right[i]; s 1019 libavfilter/vf_stereo3d.c if (s->out.format == INTERLEAVE_COLS_LR) s 1022 libavfilter/vf_stereo3d.c switch (s->pixstep[i]) { s 1024 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=2, p++, b+=2) { s 1030 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=4, p+=2, b+=2) { s 1036 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=6, p+=3, b+=2) { s 1042 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=8, p+=4, b+=2) { s 1048 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=12, p+=6, b+=2) { s 1054 libavfilter/vf_stereo3d.c for (x = 0, b = 0, p = 0; x < s->linesize[i] * 2; x+=16, p+=8, b+=2) { s 1068 libavfilter/vf_stereo3d.c if (s->out.format == ALTERNATING_LR) s 1070 libavfilter/vf_stereo3d.c oright->pts = s->prev->pts * 2; s 1073 libavfilter/vf_stereo3d.c oleft->pts = s->prev->pts + inpicref->pts; s 1074 libavfilter/vf_stereo3d.c av_frame_free(&s->prev); s 1075 libavfilter/vf_stereo3d.c s->prev = inpicref; s 1076 libavfilter/vf_stereo3d.c } else if (s->in.format == ALTERNATING_LR || s 1077 libavfilter/vf_stereo3d.c s->in.format == ALTERNATING_RL) { s 1078 libavfilter/vf_stereo3d.c out->pts = s->prev->pts / 2; s 1079 libavfilter/vf_stereo3d.c av_frame_free(&s->prev); s 1082 libavfilter/vf_stereo3d.c av_frame_free(&s->prev); s 1086 libavfilter/vf_stereo3d.c out->sample_aspect_ratio = s->aspect; s 1092 libavfilter/vf_stereo3d.c Stereo3DContext *s = ctx->priv; s 1094 libavfilter/vf_stereo3d.c av_frame_free(&s->prev); s 61 libavfilter/vf_super2xsai.c Super2xSaIContext *s = ctx->priv; s 65 libavfilter/vf_super2xsai.c const int bpp = s->bpp; s 66 libavfilter/vf_super2xsai.c const uint32_t hi_pixel_mask = s->hi_pixel_mask; s 67 libavfilter/vf_super2xsai.c const uint32_t lo_pixel_mask = s->lo_pixel_mask; s 68 libavfilter/vf_super2xsai.c const uint32_t q_hi_pixel_mask = s->q_hi_pixel_mask; s 69 libavfilter/vf_super2xsai.c const uint32_t q_lo_pixel_mask = s->q_lo_pixel_mask; s 79 libavfilter/vf_super2xsai.c #define READ_COLOR2(dst, src_line, off) dst = s->is_be ? AV_RB16(src_line + 2 * off) : AV_RL16(src_line + 2 * off) s 182 libavfilter/vf_super2xsai.c if (s->is_be) { s 252 libavfilter/vf_super2xsai.c Super2xSaIContext *s = inlink->dst->priv; s 254 libavfilter/vf_super2xsai.c s->hi_pixel_mask = 0xFEFEFEFE; s 255 libavfilter/vf_super2xsai.c s->lo_pixel_mask = 0x01010101; s 256 libavfilter/vf_super2xsai.c s->q_hi_pixel_mask = 0xFCFCFCFC; s 257 libavfilter/vf_super2xsai.c s->q_lo_pixel_mask = 0x03030303; s 258 libavfilter/vf_super2xsai.c s->bpp = 4; s 263 libavfilter/vf_super2xsai.c s->bpp = 3; s 268 libavfilter/vf_super2xsai.c s->is_be = 1; s 271 libavfilter/vf_super2xsai.c s->hi_pixel_mask = 0xF7DEF7DE; s 272 libavfilter/vf_super2xsai.c s->lo_pixel_mask = 0x08210821; s 273 libavfilter/vf_super2xsai.c s->q_hi_pixel_mask = 0xE79CE79C; s 274 libavfilter/vf_super2xsai.c s->q_lo_pixel_mask = 0x18631863; s 275 libavfilter/vf_super2xsai.c s->bpp = 2; s 280 libavfilter/vf_super2xsai.c s->is_be = 1; s 283 libavfilter/vf_super2xsai.c s->hi_pixel_mask = 0x7BDE7BDE; s 284 libavfilter/vf_super2xsai.c s->lo_pixel_mask = 0x04210421; s 285 libavfilter/vf_super2xsai.c s->q_hi_pixel_mask = 0x739C739C; s 286 libavfilter/vf_super2xsai.c s->q_lo_pixel_mask = 0x0C630C63; s 287 libavfilter/vf_super2xsai.c s->bpp = 2; s 83 libavfilter/vf_swaprect.c SwapRectContext *s = ctx->priv; s 104 libavfilter/vf_swaprect.c ret = av_expr_parse_and_eval(&dw, s->w, s 111 libavfilter/vf_swaprect.c ret = av_expr_parse_and_eval(&dh, s->h, s 118 libavfilter/vf_swaprect.c ret = av_expr_parse_and_eval(&dx1, s->x1, s 125 libavfilter/vf_swaprect.c ret = av_expr_parse_and_eval(&dy1, s->y1, s 132 libavfilter/vf_swaprect.c ret = av_expr_parse_and_eval(&dx2, s->x2, s 139 libavfilter/vf_swaprect.c ret = av_expr_parse_and_eval(&dy2, s->y2, s 154 libavfilter/vf_swaprect.c ah[1] = ah[2] = AV_CEIL_RSHIFT(h, s->desc->log2_chroma_h); s 156 libavfilter/vf_swaprect.c aw[1] = aw[2] = AV_CEIL_RSHIFT(w, s->desc->log2_chroma_w); s 162 libavfilter/vf_swaprect.c ph[1] = ph[2] = AV_CEIL_RSHIFT(h, s->desc->log2_chroma_h); s 164 libavfilter/vf_swaprect.c pw[1] = pw[2] = AV_CEIL_RSHIFT(w, s->desc->log2_chroma_w); s 167 libavfilter/vf_swaprect.c lh[1] = lh[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 169 libavfilter/vf_swaprect.c lw[1] = lw[2] = AV_CEIL_RSHIFT(inlink->w, s->desc->log2_chroma_w); s 172 libavfilter/vf_swaprect.c x1[1] = x1[2] = AV_CEIL_RSHIFT(x1[0], s->desc->log2_chroma_w); s 174 libavfilter/vf_swaprect.c y1[1] = y1[2] = AV_CEIL_RSHIFT(y1[0], s->desc->log2_chroma_h); s 177 libavfilter/vf_swaprect.c x2[1] = x2[2] = AV_CEIL_RSHIFT(x2[0], s->desc->log2_chroma_w); s 179 libavfilter/vf_swaprect.c y2[1] = y2[2] = AV_CEIL_RSHIFT(y2[0], s->desc->log2_chroma_h); s 182 libavfilter/vf_swaprect.c for (p = 0; p < s->nb_planes; p++) { s 184 libavfilter/vf_swaprect.c uint8_t *src = in->data[p] + y1[p] * in->linesize[p] + x1[p] * s->pixsteps[p]; s 185 libavfilter/vf_swaprect.c uint8_t *dst = in->data[p] + y2[p] * in->linesize[p] + x2[p] * s->pixsteps[p]; s 188 libavfilter/vf_swaprect.c memcpy(s->temp, src, pw[p] * s->pixsteps[p]); s 189 libavfilter/vf_swaprect.c memmove(src, dst, pw[p] * s->pixsteps[p]); s 190 libavfilter/vf_swaprect.c memcpy(dst, s->temp, pw[p] * s->pixsteps[p]); s 203 libavfilter/vf_swaprect.c SwapRectContext *s = ctx->priv; s 205 libavfilter/vf_swaprect.c if (!s->w || !s->h || s 206 libavfilter/vf_swaprect.c !s->x1 || !s->y1 || s 207 libavfilter/vf_swaprect.c !s->x2 || !s->y2) s 210 libavfilter/vf_swaprect.c s->desc = av_pix_fmt_desc_get(inlink->format); s 211 libavfilter/vf_swaprect.c av_image_fill_max_pixsteps(s->pixsteps, NULL, s->desc); s 212 libavfilter/vf_swaprect.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 214 libavfilter/vf_swaprect.c s->temp = av_malloc_array(inlink->w, s->pixsteps[0]); s 215 libavfilter/vf_swaprect.c if (!s->temp) s 223 libavfilter/vf_swaprect.c SwapRectContext *s = ctx->priv; s 224 libavfilter/vf_swaprect.c av_freep(&s->temp); s 73 libavfilter/vf_telecine.c TelecineContext *s = ctx->priv; s 77 libavfilter/vf_telecine.c if (!strlen(s->pattern)) { s 82 libavfilter/vf_telecine.c for (p = s->pattern; *p; p++) { s 89 libavfilter/vf_telecine.c s->pts.num += 2; s 90 libavfilter/vf_telecine.c s->pts.den += *p - '0'; s 93 libavfilter/vf_telecine.c s->start_time = AV_NOPTS_VALUE; s 95 libavfilter/vf_telecine.c s->out_cnt = (max + 1) / 2; s 97 libavfilter/vf_telecine.c s->pattern, s->out_cnt, s->pts.num, s->pts.den); s 121 libavfilter/vf_telecine.c TelecineContext *s = inlink->dst->priv; s 125 libavfilter/vf_telecine.c s->temp = ff_get_video_buffer(inlink, inlink->w, inlink->h); s 126 libavfilter/vf_telecine.c if (!s->temp) s 128 libavfilter/vf_telecine.c for (i = 0; i < s->out_cnt; i++) { s 129 libavfilter/vf_telecine.c s->frame[i] = ff_get_video_buffer(inlink, inlink->w, inlink->h); s 130 libavfilter/vf_telecine.c if (!s->frame[i]) s 134 libavfilter/vf_telecine.c if ((ret = av_image_fill_linesizes(s->stride, inlink->format, inlink->w)) < 0) s 137 libavfilter/vf_telecine.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 138 libavfilter/vf_telecine.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 140 libavfilter/vf_telecine.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 148 libavfilter/vf_telecine.c TelecineContext *s = ctx->priv; s 157 libavfilter/vf_telecine.c fps = av_mul_q(fps, av_inv_q(s->pts)); s 162 libavfilter/vf_telecine.c outlink->time_base = av_mul_q(inlink->time_base, s->pts); s 166 libavfilter/vf_telecine.c s->ts_unit = av_inv_q(av_mul_q(fps, outlink->time_base)); s 175 libavfilter/vf_telecine.c TelecineContext *s = ctx->priv; s 178 libavfilter/vf_telecine.c if (s->start_time == AV_NOPTS_VALUE) s 179 libavfilter/vf_telecine.c s->start_time = inpicref->pts; s 181 libavfilter/vf_telecine.c len = s->pattern[s->pattern_pos] - '0'; s 183 libavfilter/vf_telecine.c s->pattern_pos++; s 184 libavfilter/vf_telecine.c if (!s->pattern[s->pattern_pos]) s 185 libavfilter/vf_telecine.c s->pattern_pos = 0; s 192 libavfilter/vf_telecine.c if (s->occupied) { s 193 libavfilter/vf_telecine.c av_frame_make_writable(s->frame[nout]); s 194 libavfilter/vf_telecine.c for (i = 0; i < s->nb_planes; i++) { s 196 libavfilter/vf_telecine.c av_image_copy_plane(s->frame[nout]->data[i] + s->frame[nout]->linesize[i] * s->first_field, s 197 libavfilter/vf_telecine.c s->frame[nout]->linesize[i] * 2, s 198 libavfilter/vf_telecine.c s->temp->data[i] + s->temp->linesize[i] * s->first_field, s 199 libavfilter/vf_telecine.c s->temp->linesize[i] * 2, s 200 libavfilter/vf_telecine.c s->stride[i], s 201 libavfilter/vf_telecine.c (s->planeheight[i] - s->first_field + 1) / 2); s 203 libavfilter/vf_telecine.c av_image_copy_plane(s->frame[nout]->data[i] + s->frame[nout]->linesize[i] * !s->first_field, s 204 libavfilter/vf_telecine.c s->frame[nout]->linesize[i] * 2, s 205 libavfilter/vf_telecine.c inpicref->data[i] + inpicref->linesize[i] * !s->first_field, s 207 libavfilter/vf_telecine.c s->stride[i], s 208 libavfilter/vf_telecine.c (s->planeheight[i] - !s->first_field + 1) / 2); s 210 libavfilter/vf_telecine.c s->frame[nout]->interlaced_frame = 1; s 211 libavfilter/vf_telecine.c s->frame[nout]->top_field_first = !s->first_field; s 214 libavfilter/vf_telecine.c s->occupied = 0; s 219 libavfilter/vf_telecine.c av_frame_make_writable(s->frame[nout]); s 220 libavfilter/vf_telecine.c for (i = 0; i < s->nb_planes; i++) s 221 libavfilter/vf_telecine.c av_image_copy_plane(s->frame[nout]->data[i], s->frame[nout]->linesize[i], s 223 libavfilter/vf_telecine.c s->stride[i], s 224 libavfilter/vf_telecine.c s->planeheight[i]); s 225 libavfilter/vf_telecine.c s->frame[nout]->interlaced_frame = inpicref->interlaced_frame; s 226 libavfilter/vf_telecine.c s->frame[nout]->top_field_first = inpicref->top_field_first; s 233 libavfilter/vf_telecine.c for (i = 0; i < s->nb_planes; i++) s 234 libavfilter/vf_telecine.c av_image_copy_plane(s->temp->data[i], s->temp->linesize[i], s 236 libavfilter/vf_telecine.c s->stride[i], s 237 libavfilter/vf_telecine.c s->planeheight[i]); s 238 libavfilter/vf_telecine.c s->occupied = 1; s 242 libavfilter/vf_telecine.c AVFrame *frame = av_frame_clone(s->frame[i]); s 254 libavfilter/vf_telecine.c frame->pts = ((s->start_time == AV_NOPTS_VALUE) ? 0 : s->start_time) + s 255 libavfilter/vf_telecine.c av_rescale(outlink->frame_count_in, s->ts_unit.num, s 256 libavfilter/vf_telecine.c s->ts_unit.den); s 266 libavfilter/vf_telecine.c TelecineContext *s = ctx->priv; s 269 libavfilter/vf_telecine.c av_frame_free(&s->temp); s 270 libavfilter/vf_telecine.c for (i = 0; i < s->out_cnt; i++) s 271 libavfilter/vf_telecine.c av_frame_free(&s->frame[i]); s 81 libavfilter/vf_threshold.c ThresholdContext *s = ctx->priv; s 89 libavfilter/vf_threshold.c for (int p = 0; p < s->nb_planes; p++) { s 90 libavfilter/vf_threshold.c const int h = s->height[p]; s 94 libavfilter/vf_threshold.c if (!(s->planes & (1 << p))) { s 99 libavfilter/vf_threshold.c s->width[p] * s->bpc, s 103 libavfilter/vf_threshold.c s->threshold(in->data[p] + slice_start * in->linesize[p], s 111 libavfilter/vf_threshold.c s->width[p], slice_end - slice_start); s 120 libavfilter/vf_threshold.c ThresholdContext *s = fs->opaque; s 126 libavfilter/vf_threshold.c if ((ret = ff_framesync_get_frame(&s->fs, 0, &in, 0)) < 0 || s 127 libavfilter/vf_threshold.c (ret = ff_framesync_get_frame(&s->fs, 1, &threshold, 0)) < 0 || s 128 libavfilter/vf_threshold.c (ret = ff_framesync_get_frame(&s->fs, 2, &min, 0)) < 0 || s 129 libavfilter/vf_threshold.c (ret = ff_framesync_get_frame(&s->fs, 3, &max, 0)) < 0) s 148 libavfilter/vf_threshold.c FFMIN(s->height[2], ff_filter_get_nb_threads(ctx))); s 151 libavfilter/vf_threshold.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 210 libavfilter/vf_threshold.c ThresholdContext *s = ctx->priv; s 214 libavfilter/vf_threshold.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 218 libavfilter/vf_threshold.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, vsub); s 219 libavfilter/vf_threshold.c s->height[0] = s->height[3] = inlink->h; s 220 libavfilter/vf_threshold.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, hsub); s 221 libavfilter/vf_threshold.c s->width[0] = s->width[3] = inlink->w; s 222 libavfilter/vf_threshold.c s->depth = desc->comp[0].depth; s 224 libavfilter/vf_threshold.c ff_threshold_init(s); s 229 libavfilter/vf_threshold.c void ff_threshold_init(ThresholdContext *s) s 231 libavfilter/vf_threshold.c if (s->depth == 8) { s 232 libavfilter/vf_threshold.c s->threshold = threshold8; s 233 libavfilter/vf_threshold.c s->bpc = 1; s 235 libavfilter/vf_threshold.c s->threshold = threshold16; s 236 libavfilter/vf_threshold.c s->bpc = 2; s 240 libavfilter/vf_threshold.c ff_threshold_init_x86(s); s 246 libavfilter/vf_threshold.c ThresholdContext *s = ctx->priv; s 283 libavfilter/vf_threshold.c if ((ret = ff_framesync_init(&s->fs, ctx, 4)) < 0) s 286 libavfilter/vf_threshold.c in = s->fs.in; s 303 libavfilter/vf_threshold.c s->fs.opaque = s; s 304 libavfilter/vf_threshold.c s->fs.on_event = process_frame; s 306 libavfilter/vf_threshold.c ret = ff_framesync_configure(&s->fs); s 307 libavfilter/vf_threshold.c outlink->time_base = s->fs.time_base; s 314 libavfilter/vf_threshold.c ThresholdContext *s = ctx->priv; s 315 libavfilter/vf_threshold.c return ff_framesync_activate(&s->fs); s 320 libavfilter/vf_threshold.c ThresholdContext *s = ctx->priv; s 322 libavfilter/vf_threshold.c ff_framesync_uninit(&s->fs); s 61 libavfilter/vf_thumbnail.c ThumbContext *s = ctx->priv; s 63 libavfilter/vf_thumbnail.c s->frames = av_calloc(s->n_frames, sizeof(*s->frames)); s 64 libavfilter/vf_thumbnail.c if (!s->frames) { s 69 libavfilter/vf_thumbnail.c av_log(ctx, AV_LOG_VERBOSE, "batch size: %d frames\n", s->n_frames); s 94 libavfilter/vf_thumbnail.c ThumbContext *s = ctx->priv; s 96 libavfilter/vf_thumbnail.c int nb_frames = s->n; s 102 libavfilter/vf_thumbnail.c avg_hist[j] += (double)s->frames[i].histogram[j]; s 108 libavfilter/vf_thumbnail.c sq_err = frame_sum_square_err(s->frames[i].histogram, avg_hist); s 115 libavfilter/vf_thumbnail.c memset(s->frames[i].histogram, 0, sizeof(s->frames[i].histogram)); s 117 libavfilter/vf_thumbnail.c av_frame_free(&s->frames[i].buf); s 119 libavfilter/vf_thumbnail.c s->n = 0; s 122 libavfilter/vf_thumbnail.c picref = s->frames[best_frame_idx].buf; s 125 libavfilter/vf_thumbnail.c picref->pts * av_q2d(s->tb), nb_frames); s 126 libavfilter/vf_thumbnail.c s->frames[best_frame_idx].buf = NULL; s 135 libavfilter/vf_thumbnail.c ThumbContext *s = ctx->priv; s 137 libavfilter/vf_thumbnail.c int *hist = s->frames[s->n].histogram; s 141 libavfilter/vf_thumbnail.c s->frames[s->n].buf = frame; s 154 libavfilter/vf_thumbnail.c s->n++; s 155 libavfilter/vf_thumbnail.c if (s->n < s->n_frames) s 164 libavfilter/vf_thumbnail.c ThumbContext *s = ctx->priv; s 165 libavfilter/vf_thumbnail.c for (i = 0; i < s->n_frames && s->frames && s->frames[i].buf; i++) s 166 libavfilter/vf_thumbnail.c av_frame_free(&s->frames[i].buf); s 167 libavfilter/vf_thumbnail.c av_freep(&s->frames); s 173 libavfilter/vf_thumbnail.c ThumbContext *s = ctx->priv; s 176 libavfilter/vf_thumbnail.c if (ret == AVERROR_EOF && s->n) { s 190 libavfilter/vf_thumbnail.c ThumbContext *s = ctx->priv; s 192 libavfilter/vf_thumbnail.c s->tb = inlink->time_base; s 32 libavfilter/vf_thumbnail_cuda.c #define CHECK_CU(x) FF_CUDA_CHECK_DL(ctx, s->hwctx->internal->cuda_dl, x) s 87 libavfilter/vf_thumbnail_cuda.c ThumbnailCudaContext *s = ctx->priv; s 89 libavfilter/vf_thumbnail_cuda.c s->frames = av_calloc(s->n_frames, sizeof(*s->frames)); s 90 libavfilter/vf_thumbnail_cuda.c if (!s->frames) { s 95 libavfilter/vf_thumbnail_cuda.c av_log(ctx, AV_LOG_VERBOSE, "batch size: %d frames\n", s->n_frames); s 120 libavfilter/vf_thumbnail_cuda.c ThumbnailCudaContext *s = ctx->priv; s 122 libavfilter/vf_thumbnail_cuda.c int nb_frames = s->n; s 128 libavfilter/vf_thumbnail_cuda.c avg_hist[j] += (double)s->frames[i].histogram[j]; s 134 libavfilter/vf_thumbnail_cuda.c sq_err = frame_sum_square_err(s->frames[i].histogram, avg_hist); s 141 libavfilter/vf_thumbnail_cuda.c memset(s->frames[i].histogram, 0, sizeof(s->frames[i].histogram)); s 143 libavfilter/vf_thumbnail_cuda.c av_frame_free(&s->frames[i].buf); s 145 libavfilter/vf_thumbnail_cuda.c s->n = 0; s 148 libavfilter/vf_thumbnail_cuda.c picref = s->frames[best_frame_idx].buf; s 151 libavfilter/vf_thumbnail_cuda.c picref->pts * av_q2d(s->tb), nb_frames); s 152 libavfilter/vf_thumbnail_cuda.c s->frames[best_frame_idx].buf = NULL; s 161 libavfilter/vf_thumbnail_cuda.c ThumbnailCudaContext *s = ctx->priv; s 162 libavfilter/vf_thumbnail_cuda.c CudaFunctions *cu = s->hwctx->internal->cuda_dl; s 189 libavfilter/vf_thumbnail_cuda.c BLOCKX, BLOCKY, 1, 0, s->cu_stream, args, NULL)); s 200 libavfilter/vf_thumbnail_cuda.c ThumbnailCudaContext *s = ctx->priv; s 204 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_uchar, 1, s 206 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_uchar2, 2, s 210 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_uchar, 1, s 212 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_uchar, 1, s 214 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_uchar, 1, s 218 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_uchar, 1, s 220 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_uchar, 1, s 222 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_uchar, 1, s 227 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_ushort, 1, s 229 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_ushort2, 2, s 233 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_ushort2, 1, s 235 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_ushort2, 1, s 237 libavfilter/vf_thumbnail_cuda.c thumbnail_kernel(ctx, s->cu_func_ushort2, 1, s 250 libavfilter/vf_thumbnail_cuda.c ThumbnailCudaContext *s = ctx->priv; s 251 libavfilter/vf_thumbnail_cuda.c CudaFunctions *cu = s->hwctx->internal->cuda_dl; s 253 libavfilter/vf_thumbnail_cuda.c int *hist = s->frames[s->n].histogram; s 254 libavfilter/vf_thumbnail_cuda.c AVHWFramesContext *hw_frames_ctx = (AVHWFramesContext*)s->hw_frames_ctx->data; s 260 libavfilter/vf_thumbnail_cuda.c s->frames[s->n].buf = frame; s 262 libavfilter/vf_thumbnail_cuda.c ret = CHECK_CU(cu->cuCtxPushCurrent(s->hwctx->cuda_ctx)); s 266 libavfilter/vf_thumbnail_cuda.c CHECK_CU(cu->cuMemsetD8Async(s->data, 0, HIST_SIZE * sizeof(int), s->cu_stream)); s 268 libavfilter/vf_thumbnail_cuda.c thumbnail(ctx, (int*)s->data, frame); s 272 libavfilter/vf_thumbnail_cuda.c cpy.srcDevice = s->data; s 279 libavfilter/vf_thumbnail_cuda.c ret = CHECK_CU(cu->cuMemcpy2DAsync(&cpy, s->cu_stream)); s 296 libavfilter/vf_thumbnail_cuda.c s->n++; s 297 libavfilter/vf_thumbnail_cuda.c if (s->n < s->n_frames) s 306 libavfilter/vf_thumbnail_cuda.c ThumbnailCudaContext *s = ctx->priv; s 307 libavfilter/vf_thumbnail_cuda.c CudaFunctions *cu = s->hwctx->internal->cuda_dl; s 309 libavfilter/vf_thumbnail_cuda.c if (s->data) { s 310 libavfilter/vf_thumbnail_cuda.c CHECK_CU(cu->cuMemFree(s->data)); s 311 libavfilter/vf_thumbnail_cuda.c s->data = 0; s 314 libavfilter/vf_thumbnail_cuda.c if (s->cu_module) { s 315 libavfilter/vf_thumbnail_cuda.c CHECK_CU(cu->cuModuleUnload(s->cu_module)); s 316 libavfilter/vf_thumbnail_cuda.c s->cu_module = NULL; s 319 libavfilter/vf_thumbnail_cuda.c for (i = 0; i < s->n_frames && s->frames[i].buf; i++) s 320 libavfilter/vf_thumbnail_cuda.c av_frame_free(&s->frames[i].buf); s 321 libavfilter/vf_thumbnail_cuda.c av_freep(&s->frames); s 327 libavfilter/vf_thumbnail_cuda.c ThumbnailCudaContext *s = ctx->priv; s 330 libavfilter/vf_thumbnail_cuda.c if (ret == AVERROR_EOF && s->n) { s 354 libavfilter/vf_thumbnail_cuda.c ThumbnailCudaContext *s = ctx->priv; s 363 libavfilter/vf_thumbnail_cuda.c s->hwctx = device_hwctx; s 364 libavfilter/vf_thumbnail_cuda.c s->cu_stream = s->hwctx->stream; s 370 libavfilter/vf_thumbnail_cuda.c ret = CHECK_CU(cu->cuModuleLoadData(&s->cu_module, vf_thumbnail_cuda_ptx)); s 374 libavfilter/vf_thumbnail_cuda.c ret = CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_uchar, s->cu_module, "Thumbnail_uchar")); s 378 libavfilter/vf_thumbnail_cuda.c ret = CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_uchar2, s->cu_module, "Thumbnail_uchar2")); s 382 libavfilter/vf_thumbnail_cuda.c ret = CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_ushort, s->cu_module, "Thumbnail_ushort")); s 386 libavfilter/vf_thumbnail_cuda.c ret = CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_ushort2, s->cu_module, "Thumbnail_ushort2")); s 390 libavfilter/vf_thumbnail_cuda.c ret = CHECK_CU(cu->cuMemAlloc(&s->data, HIST_SIZE * sizeof(int))); s 396 libavfilter/vf_thumbnail_cuda.c s->hw_frames_ctx = ctx->inputs[0]->hw_frames_ctx; s 398 libavfilter/vf_thumbnail_cuda.c ctx->outputs[0]->hw_frames_ctx = av_buffer_ref(s->hw_frames_ctx); s 402 libavfilter/vf_thumbnail_cuda.c s->tb = inlink->time_base; s 87 libavfilter/vf_tonemap.c TonemapContext *s = ctx->priv; s 89 libavfilter/vf_tonemap.c switch(s->tonemap) { s 91 libavfilter/vf_tonemap.c if (isnan(s->param)) s 92 libavfilter/vf_tonemap.c s->param = 1.8f; s 95 libavfilter/vf_tonemap.c if (!isnan(s->param)) s 96 libavfilter/vf_tonemap.c s->param = (1.0f - s->param) / s->param; s 99 libavfilter/vf_tonemap.c if (isnan(s->param)) s 100 libavfilter/vf_tonemap.c s->param = 0.3f; s 104 libavfilter/vf_tonemap.c if (isnan(s->param)) s 105 libavfilter/vf_tonemap.c s->param = 1.0f; s 130 libavfilter/vf_tonemap.c static void tonemap(TonemapContext *s, AVFrame *out, const AVFrame *in, s 147 libavfilter/vf_tonemap.c if (s->desat > 0) { s 148 libavfilter/vf_tonemap.c float luma = s->coeffs->cr * *r_in + s->coeffs->cg * *g_in + s->coeffs->cb * *b_in; s 149 libavfilter/vf_tonemap.c float overbright = FFMAX(luma - s->desat, 1e-6) / FFMAX(luma, 1e-6); s 161 libavfilter/vf_tonemap.c switch(s->tonemap) { s 167 libavfilter/vf_tonemap.c sig = sig * s->param / peak; s 170 libavfilter/vf_tonemap.c sig = sig > 0.05f ? pow(sig / peak, 1.0f / s->param) s 171 libavfilter/vf_tonemap.c : sig * pow(0.05f / peak, 1.0f / s->param) / 0.05f; s 174 libavfilter/vf_tonemap.c sig = av_clipf(sig * s->param, 0, 1.0f); s 180 libavfilter/vf_tonemap.c sig = sig / (sig + s->param) * (peak + s->param) / peak; s 183 libavfilter/vf_tonemap.c sig = mobius(sig, s->param, peak); s 202 libavfilter/vf_tonemap.c TonemapContext *s = ctx->priv; s 213 libavfilter/vf_tonemap.c tonemap(s, out, in, desc, x, y, peak); s 221 libavfilter/vf_tonemap.c TonemapContext *s = ctx->priv; s 228 libavfilter/vf_tonemap.c double peak = s->peak; s 250 libavfilter/vf_tonemap.c av_log(s, AV_LOG_WARNING, "Untagged transfer, assuming linear light\n"); s 253 libavfilter/vf_tonemap.c av_log(s, AV_LOG_WARNING, "Tonemapping works on linear light only\n"); s 258 libavfilter/vf_tonemap.c av_log(s, AV_LOG_DEBUG, "Computed signal peak: %f\n", peak); s 262 libavfilter/vf_tonemap.c s->coeffs = &luma_coefficients[in->colorspace]; s 263 libavfilter/vf_tonemap.c if (s->desat > 0 && (in->colorspace == AVCOL_SPC_UNSPECIFIED || !s->coeffs)) { s 265 libavfilter/vf_tonemap.c av_log(s, AV_LOG_WARNING, "Missing color space information, "); s 266 libavfilter/vf_tonemap.c else if (!s->coeffs) s 267 libavfilter/vf_tonemap.c av_log(s, AV_LOG_WARNING, "Unsupported color space '%s', ", s 269 libavfilter/vf_tonemap.c av_log(s, AV_LOG_WARNING, "desaturation is disabled\n"); s 270 libavfilter/vf_tonemap.c s->desat = 0; s 285 libavfilter/vf_tonemap_opencl.c TonemapOpenCLContext *s = avctx->priv; s 287 libavfilter/vf_tonemap_opencl.c if (s->format == AV_PIX_FMT_NONE) s 290 libavfilter/vf_tonemap_opencl.c if (s->format != AV_PIX_FMT_P010 && s 291 libavfilter/vf_tonemap_opencl.c s->format != AV_PIX_FMT_NV12) { s 298 libavfilter/vf_tonemap_opencl.c s->ocf.output_format = s->format == AV_PIX_FMT_NONE ? AV_PIX_FMT_NV12 : s->format; s 76 libavfilter/vf_tpad.c TPadContext *s = ctx->priv; s 83 libavfilter/vf_tpad.c if (s->start_mode == 0 && s->pad_start > 0 && ff_outlink_frame_wanted(outlink)) { s 87 libavfilter/vf_tpad.c ff_fill_rectangle(&s->draw, &s->color, s 90 libavfilter/vf_tpad.c frame->pts = s->pts; s 91 libavfilter/vf_tpad.c s->pts += av_rescale_q(1, av_inv_q(outlink->frame_rate), outlink->time_base); s 92 libavfilter/vf_tpad.c s->pad_start--; s 96 libavfilter/vf_tpad.c if (s->start_mode == 1 && s->pad_start > 0) { s 97 libavfilter/vf_tpad.c if (!s->cache_start && ff_inlink_queued_frames(inlink)) { s 98 libavfilter/vf_tpad.c s->cache_start = ff_inlink_peek_frame(inlink, 0); s 99 libavfilter/vf_tpad.c } else if (!s->cache_start) { s 102 libavfilter/vf_tpad.c frame = av_frame_clone(s->cache_start); s 105 libavfilter/vf_tpad.c frame->pts = s->pts; s 106 libavfilter/vf_tpad.c s->pts += av_rescale_q(1, av_inv_q(outlink->frame_rate), outlink->time_base); s 107 libavfilter/vf_tpad.c s->pad_start--; s 108 libavfilter/vf_tpad.c if (s->pad_start == 0) s 109 libavfilter/vf_tpad.c s->cache_start = NULL; s 113 libavfilter/vf_tpad.c if (!s->eof && !s->pad_start) { s 118 libavfilter/vf_tpad.c if (s->stop_mode == 1 && s->pad_stop != 0) { s 119 libavfilter/vf_tpad.c av_frame_free(&s->cache_stop); s 120 libavfilter/vf_tpad.c s->cache_stop = av_frame_clone(frame); s 122 libavfilter/vf_tpad.c frame->pts += s->pts; s 127 libavfilter/vf_tpad.c if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 129 libavfilter/vf_tpad.c if (!s->pad_stop) { s 133 libavfilter/vf_tpad.c s->eof = 1; s 134 libavfilter/vf_tpad.c s->pts += pts; s 138 libavfilter/vf_tpad.c if (s->eof) { s 139 libavfilter/vf_tpad.c if (!s->pad_stop) { s 140 libavfilter/vf_tpad.c ff_outlink_set_status(outlink, AVERROR_EOF, s->pts); s 143 libavfilter/vf_tpad.c if (s->stop_mode == 0) { s 147 libavfilter/vf_tpad.c ff_fill_rectangle(&s->draw, &s->color, s 150 libavfilter/vf_tpad.c } else if (s->stop_mode == 1) { s 151 libavfilter/vf_tpad.c frame = av_frame_clone(s->cache_stop); s 155 libavfilter/vf_tpad.c frame->pts = s->pts; s 156 libavfilter/vf_tpad.c s->pts += av_rescale_q(1, av_inv_q(outlink->frame_rate), outlink->time_base); s 157 libavfilter/vf_tpad.c if (s->pad_stop > 0) s 158 libavfilter/vf_tpad.c s->pad_stop--; s 162 libavfilter/vf_tpad.c if (!s->pad_start) s 171 libavfilter/vf_tpad.c TPadContext *s = ctx->priv; s 173 libavfilter/vf_tpad.c ff_draw_init(&s->draw, inlink->format, 0); s 174 libavfilter/vf_tpad.c ff_draw_color(&s->draw, &s->color, s->rgba_color); s 176 libavfilter/vf_tpad.c if (s->start_duration) s 177 libavfilter/vf_tpad.c s->pad_start = av_rescale_q(s->start_duration, inlink->frame_rate, av_inv_q(AV_TIME_BASE_Q)); s 178 libavfilter/vf_tpad.c if (s->stop_duration) s 179 libavfilter/vf_tpad.c s->pad_stop = av_rescale_q(s->stop_duration, inlink->frame_rate, av_inv_q(AV_TIME_BASE_Q)); s 186 libavfilter/vf_tpad.c TPadContext *s = ctx->priv; s 188 libavfilter/vf_tpad.c av_frame_free(&s->cache_stop); s 180 libavfilter/vf_transpose.c TransContext *s = ctx->priv; s 185 libavfilter/vf_transpose.c if (s->dir&4) { s 188 libavfilter/vf_transpose.c s->dir &= 3; s 189 libavfilter/vf_transpose.c s->passthrough = TRANSPOSE_PT_TYPE_LANDSCAPE; s 192 libavfilter/vf_transpose.c if ((inlink->w >= inlink->h && s->passthrough == TRANSPOSE_PT_TYPE_LANDSCAPE) || s 193 libavfilter/vf_transpose.c (inlink->w <= inlink->h && s->passthrough == TRANSPOSE_PT_TYPE_PORTRAIT)) { s 199 libavfilter/vf_transpose.c s->passthrough = TRANSPOSE_PT_TYPE_NONE; s 202 libavfilter/vf_transpose.c s->hsub = desc_in->log2_chroma_w; s 203 libavfilter/vf_transpose.c s->vsub = desc_in->log2_chroma_h; s 204 libavfilter/vf_transpose.c s->planes = av_pix_fmt_count_planes(outlink->format); s 209 libavfilter/vf_transpose.c av_image_fill_max_pixsteps(s->pixsteps, NULL, desc_out); s 221 libavfilter/vf_transpose.c TransVtable *v = &s->vtables[i]; s 222 libavfilter/vf_transpose.c switch (s->pixsteps[i]) { s 240 libavfilter/vf_transpose.c TransVtable *v = &s->vtables[i]; s 242 libavfilter/vf_transpose.c ff_transpose_init_x86(v, s->pixsteps[i]); s 248 libavfilter/vf_transpose.c inlink->w, inlink->h, s->dir, outlink->w, outlink->h, s 249 libavfilter/vf_transpose.c s->dir == 1 || s->dir == 3 ? "clockwise" : "counterclockwise", s 250 libavfilter/vf_transpose.c s->dir == 0 || s->dir == 3); s 256 libavfilter/vf_transpose.c TransContext *s = inlink->dst->priv; s 258 libavfilter/vf_transpose.c return s->passthrough ? s 270 libavfilter/vf_transpose.c TransContext *s = ctx->priv; s 276 libavfilter/vf_transpose.c for (plane = 0; plane < s->planes; plane++) { s 277 libavfilter/vf_transpose.c int hsub = plane == 1 || plane == 2 ? s->hsub : 0; s 278 libavfilter/vf_transpose.c int vsub = plane == 1 || plane == 2 ? s->vsub : 0; s 279 libavfilter/vf_transpose.c int pixstep = s->pixsteps[plane]; s 288 libavfilter/vf_transpose.c TransVtable *v = &s->vtables[plane]; s 295 libavfilter/vf_transpose.c if (s->dir & 1) { s 300 libavfilter/vf_transpose.c if (s->dir & 2) { s 332 libavfilter/vf_transpose.c TransContext *s = ctx->priv; s 337 libavfilter/vf_transpose.c if (s->passthrough) s 85 libavfilter/vf_transpose_npp.c NPPTransposeContext *s = ctx->priv; s 88 libavfilter/vf_transpose_npp.c for (i = 0; i < FF_ARRAY_ELEMS(s->stages); i++) { s 89 libavfilter/vf_transpose_npp.c s->stages[i].frame = av_frame_alloc(); s 90 libavfilter/vf_transpose_npp.c if (!s->stages[i].frame) s 94 libavfilter/vf_transpose_npp.c s->tmp_frame = av_frame_alloc(); s 95 libavfilter/vf_transpose_npp.c if (!s->tmp_frame) s 103 libavfilter/vf_transpose_npp.c NPPTransposeContext *s = ctx->priv; s 106 libavfilter/vf_transpose_npp.c for (i = 0; i < FF_ARRAY_ELEMS(s->stages); i++) { s 107 libavfilter/vf_transpose_npp.c av_frame_free(&s->stages[i].frame); s 108 libavfilter/vf_transpose_npp.c av_buffer_unref(&s->stages[i].frames_ctx); s 111 libavfilter/vf_transpose_npp.c av_frame_free(&s->tmp_frame); s 191 libavfilter/vf_transpose_npp.c NPPTransposeContext *s = ctx->priv; s 212 libavfilter/vf_transpose_npp.c if (s->dir != NPP_TRANSPOSE_CCLOCK_FLIP) { s 213 libavfilter/vf_transpose_npp.c s->stages[STAGE_ROTATE].stage_needed = 1; s 216 libavfilter/vf_transpose_npp.c if (s->dir == NPP_TRANSPOSE_CCLOCK_FLIP || s->dir == NPP_TRANSPOSE_CLOCK_FLIP) { s 217 libavfilter/vf_transpose_npp.c s->stages[STAGE_TRANSPOSE].stage_needed = 1; s 224 libavfilter/vf_transpose_npp.c s->stages[STAGE_ROTATE].in_fmt = format; s 225 libavfilter/vf_transpose_npp.c s->stages[STAGE_ROTATE].out_fmt = format; s 226 libavfilter/vf_transpose_npp.c s->stages[STAGE_ROTATE].planes_in[0].width = in_width; s 227 libavfilter/vf_transpose_npp.c s->stages[STAGE_ROTATE].planes_in[0].height = in_height; s 228 libavfilter/vf_transpose_npp.c s->stages[STAGE_ROTATE].planes_out[0].width = rot_width; s 229 libavfilter/vf_transpose_npp.c s->stages[STAGE_ROTATE].planes_out[0].height = rot_height; s 230 libavfilter/vf_transpose_npp.c s->stages[STAGE_TRANSPOSE].in_fmt = format; s 231 libavfilter/vf_transpose_npp.c s->stages[STAGE_TRANSPOSE].out_fmt = format; s 232 libavfilter/vf_transpose_npp.c s->stages[STAGE_TRANSPOSE].planes_in[0].width = rot_width; s 233 libavfilter/vf_transpose_npp.c s->stages[STAGE_TRANSPOSE].planes_in[0].height = rot_height; s 234 libavfilter/vf_transpose_npp.c s->stages[STAGE_TRANSPOSE].planes_out[0].width = out_width; s 235 libavfilter/vf_transpose_npp.c s->stages[STAGE_TRANSPOSE].planes_out[0].height = out_height; s 238 libavfilter/vf_transpose_npp.c for (i = 0; i < FF_ARRAY_ELEMS(s->stages); i++) { s 239 libavfilter/vf_transpose_npp.c if (!s->stages[i].stage_needed) s 241 libavfilter/vf_transpose_npp.c ret = init_stage(&s->stages[i], in_frames_ctx->device_ref); s 248 libavfilter/vf_transpose_npp.c ctx->outputs[0]->hw_frames_ctx = av_buffer_ref(s->stages[last_stage].frames_ctx); s 251 libavfilter/vf_transpose_npp.c s->passthrough = 1; s 264 libavfilter/vf_transpose_npp.c NPPTransposeContext *s = ctx->priv; s 267 libavfilter/vf_transpose_npp.c if ((inlink->w >= inlink->h && s->passthrough == NPP_TRANSPOSE_PT_TYPE_LANDSCAPE) || s 268 libavfilter/vf_transpose_npp.c (inlink->w <= inlink->h && s->passthrough == NPP_TRANSPOSE_PT_TYPE_PORTRAIT)) s 281 libavfilter/vf_transpose_npp.c s->passthrough = NPP_TRANSPOSE_PT_TYPE_NONE; s 301 libavfilter/vf_transpose_npp.c NPPTransposeContext *s = ctx->priv; s 314 libavfilter/vf_transpose_npp.c double angle = s->dir == NPP_TRANSPOSE_CLOCK ? -90.0 : s->dir == NPP_TRANSPOSE_CCLOCK ? 90.0 : 180.0; s 315 libavfilter/vf_transpose_npp.c int shiftw = (s->dir == NPP_TRANSPOSE_CLOCK || s->dir == NPP_TRANSPOSE_CLOCK_FLIP) ? ow - 1 : 0; s 316 libavfilter/vf_transpose_npp.c int shifth = (s->dir == NPP_TRANSPOSE_CCLOCK || s->dir == NPP_TRANSPOSE_CLOCK_FLIP) ? oh - 1 : 0; s 362 libavfilter/vf_transpose_npp.c NPPTransposeContext *s = ctx->priv; s 366 libavfilter/vf_transpose_npp.c for (i = 0; i < FF_ARRAY_ELEMS(s->stages); i++) { s 367 libavfilter/vf_transpose_npp.c if (!s->stages[i].stage_needed) s 370 libavfilter/vf_transpose_npp.c ret = npptranspose_process[i](ctx, &s->stages[i], s->stages[i].frame, src); s 374 libavfilter/vf_transpose_npp.c src = s->stages[i].frame; s 381 libavfilter/vf_transpose_npp.c ret = av_hwframe_get_buffer(src->hw_frames_ctx, s->tmp_frame, 0); s 386 libavfilter/vf_transpose_npp.c av_frame_move_ref(src, s->tmp_frame); s 398 libavfilter/vf_transpose_npp.c NPPTransposeContext *s = ctx->priv; s 406 libavfilter/vf_transpose_npp.c if (s->passthrough) s 77 libavfilter/vf_transpose_opencl.c TransposeOpenCLContext *s = avctx->priv; s 83 libavfilter/vf_transpose_opencl.c s->passthrough == TRANSPOSE_PT_TYPE_LANDSCAPE) || s 85 libavfilter/vf_transpose_opencl.c s->passthrough == TRANSPOSE_PT_TYPE_PORTRAIT)) { s 97 libavfilter/vf_transpose_opencl.c s->passthrough = TRANSPOSE_PT_TYPE_NONE; s 106 libavfilter/vf_transpose_opencl.c s->ocf.output_width = inlink->h; s 107 libavfilter/vf_transpose_opencl.c s->ocf.output_height = inlink->w; s 120 libavfilter/vf_transpose_opencl.c inlink->w, inlink->h, s->dir, outlink->w, outlink->h, s 121 libavfilter/vf_transpose_opencl.c s->dir == 1 || s->dir == 3 ? "clockwise" : "counterclockwise", s 122 libavfilter/vf_transpose_opencl.c s->dir == 0 || s->dir == 3); s 128 libavfilter/vf_transpose_opencl.c TransposeOpenCLContext *s = inlink->dst->priv; s 130 libavfilter/vf_transpose_opencl.c return s->passthrough ? s 139 libavfilter/vf_unsharp.c UnsharpContext *s = ctx->priv; s 145 libavfilter/vf_unsharp.c plane_w[1] = plane_w[2] = AV_CEIL_RSHIFT(inlink->w, s->hsub); s 147 libavfilter/vf_unsharp.c plane_h[1] = plane_h[2] = AV_CEIL_RSHIFT(inlink->h, s->vsub); s 148 libavfilter/vf_unsharp.c fp[0] = &s->luma; s 149 libavfilter/vf_unsharp.c fp[1] = fp[2] = &s->chroma; s 158 libavfilter/vf_unsharp.c ctx->internal->execute(ctx, unsharp_slice, &td, NULL, FFMIN(plane_h[i], s->nb_threads)); s 177 libavfilter/vf_unsharp.c UnsharpContext *s = ctx->priv; s 179 libavfilter/vf_unsharp.c set_filter_param(&s->luma, s->lmsize_x, s->lmsize_y, s->lamount); s 180 libavfilter/vf_unsharp.c set_filter_param(&s->chroma, s->cmsize_x, s->cmsize_y, s->camount); s 182 libavfilter/vf_unsharp.c if (s->luma.scalebits >= 26 || s->chroma.scalebits >= 26) { s 186 libavfilter/vf_unsharp.c s->apply_unsharp = apply_unsharp_c; s 207 libavfilter/vf_unsharp.c UnsharpContext *s = ctx->priv; s 220 libavfilter/vf_unsharp.c fp->sr = av_malloc_array((MAX_MATRIX_SIZE - 1) * s->nb_threads, sizeof(uint32_t)); s 221 libavfilter/vf_unsharp.c fp->sc = av_mallocz_array(2 * fp->steps_y * s->nb_threads, sizeof(uint32_t *)); s 225 libavfilter/vf_unsharp.c for (z = 0; z < 2 * fp->steps_y * s->nb_threads; z++) s 235 libavfilter/vf_unsharp.c UnsharpContext *s = inlink->dst->priv; s 239 libavfilter/vf_unsharp.c s->hsub = desc->log2_chroma_w; s 240 libavfilter/vf_unsharp.c s->vsub = desc->log2_chroma_h; s 244 libavfilter/vf_unsharp.c s->nb_threads = FFMIN(ff_filter_get_nb_threads(inlink->dst), s 245 libavfilter/vf_unsharp.c inlink->h / (4 * s->luma.steps_y)); s 247 libavfilter/vf_unsharp.c ret = init_filter_param(inlink->dst, &s->luma, "luma", inlink->w); s 250 libavfilter/vf_unsharp.c ret = init_filter_param(inlink->dst, &s->chroma, "chroma", AV_CEIL_RSHIFT(inlink->w, s->hsub)); s 271 libavfilter/vf_unsharp.c UnsharpContext *s = ctx->priv; s 273 libavfilter/vf_unsharp.c free_filter_param(&s->luma, s->nb_threads); s 274 libavfilter/vf_unsharp.c free_filter_param(&s->chroma, s->nb_threads); s 279 libavfilter/vf_unsharp.c UnsharpContext *s = link->dst->priv; s 291 libavfilter/vf_unsharp.c ret = s->apply_unsharp(link->dst, in, out); s 52 libavfilter/vf_untile.c UntileContext *s = ctx->priv; s 54 libavfilter/vf_untile.c if (s->w > UINT_MAX / s->h) { s 56 libavfilter/vf_untile.c s->w, s->h); s 59 libavfilter/vf_untile.c s->nb_frames = s->w * s->h; s 80 libavfilter/vf_untile.c UntileContext *s = ctx->priv; s 84 libavfilter/vf_untile.c s->desc = av_pix_fmt_desc_get(outlink->format); s 85 libavfilter/vf_untile.c if (inlink->w % (s->w << s->desc->log2_chroma_w) || s 86 libavfilter/vf_untile.c inlink->h % (s->h << s->desc->log2_chroma_h)) { s 89 libavfilter/vf_untile.c inlink->w, inlink->h, s->w, s->h); s 92 libavfilter/vf_untile.c outlink->w = inlink->w / s->w; s 93 libavfilter/vf_untile.c outlink->h = inlink->h / s->h; s 95 libavfilter/vf_untile.c outlink->frame_rate = av_mul_q(inlink->frame_rate, av_make_q(s->nb_frames, 1)); s 99 libavfilter/vf_untile.c dt = av_mul_q(inlink->time_base, av_make_q(1, s->nb_frames)); s 101 libavfilter/vf_untile.c s->dpts = av_rescale_q(1, dt, outlink->time_base); s 103 libavfilter/vf_untile.c s->dpts, dt.num, dt.den); s 104 libavfilter/vf_untile.c av_image_fill_max_pixsteps(s->max_step, NULL, s->desc); s 110 libavfilter/vf_untile.c UntileContext *s = ctx->priv; s 117 libavfilter/vf_untile.c if (!s->frame) { s 118 libavfilter/vf_untile.c ret = ff_inlink_consume_frame(inlink, &s->frame); s 122 libavfilter/vf_untile.c s->pts = av_rescale_q(s->frame->pts, inlink->time_base, outlink->time_base); s 124 libavfilter/vf_untile.c if (s->frame) { s 125 libavfilter/vf_untile.c if (s->current == s->nb_frames - 1) { s 126 libavfilter/vf_untile.c out = s->frame; s 127 libavfilter/vf_untile.c s->frame = NULL; s 129 libavfilter/vf_untile.c out = av_frame_clone(s->frame); s 133 libavfilter/vf_untile.c x = outlink->w * (s->current % s->w); s 134 libavfilter/vf_untile.c y = outlink->h * (s->current / s->w); s 138 libavfilter/vf_untile.c out->data[0] += x * s->max_step[0]; s 139 libavfilter/vf_untile.c if (!(s->desc->flags & AV_PIX_FMT_FLAG_PAL || s->desc->flags & FF_PSEUDOPAL)) { s 142 libavfilter/vf_untile.c out->data[i] += (y >> s->desc->log2_chroma_w) * out->linesize[i]; s 143 libavfilter/vf_untile.c out->data[i] += (x >> s->desc->log2_chroma_h) * s->max_step[i]; s 149 libavfilter/vf_untile.c out->data[3] += x * s->max_step[3]; s 151 libavfilter/vf_untile.c out->pts = s->pts; s 152 libavfilter/vf_untile.c s->pts += s->dpts; s 153 libavfilter/vf_untile.c if (++s->current == s->nb_frames) s 154 libavfilter/vf_untile.c s->current = 0; s 165 libavfilter/vf_untile.c UntileContext *s = ctx->priv; s 167 libavfilter/vf_untile.c av_frame_free(&s->frame); s 165 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 241 libavfilter/vf_v360.c AVFilterFormats *fmts_list = ff_make_format_list(s->alpha ? alpha_pix_fmts : pix_fmts); s 253 libavfilter/vf_v360.c const uint##bits##_t *const s = (const uint##bits##_t *const)src; \ s 259 libavfilter/vf_v360.c d[x] = s[v[x] * in_linesize + u[x]]; \ s 275 libavfilter/vf_v360.c const V360Context *s = ctx->priv; \ s 279 libavfilter/vf_v360.c for (int stereo = 0; stereo < 1 + s->out_stereo > STEREO_2D; stereo++) { \ s 280 libavfilter/vf_v360.c for (int plane = 0; plane < s->nb_planes; plane++) { \ s 281 libavfilter/vf_v360.c const unsigned map = s->map[plane]; \ s 284 libavfilter/vf_v360.c const int uv_linesize = s->uv_linesize[plane]; \ s 285 libavfilter/vf_v360.c const int in_offset_w = stereo ? s->in_offset_w[plane] : 0; \ s 286 libavfilter/vf_v360.c const int in_offset_h = stereo ? s->in_offset_h[plane] : 0; \ s 287 libavfilter/vf_v360.c const int out_offset_w = stereo ? s->out_offset_w[plane] : 0; \ s 288 libavfilter/vf_v360.c const int out_offset_h = stereo ? s->out_offset_h[plane] : 0; \ s 292 libavfilter/vf_v360.c const uint8_t *mask = plane == 3 ? s->mask : NULL; \ s 293 libavfilter/vf_v360.c const int width = s->pr_width[plane]; \ s 294 libavfilter/vf_v360.c const int height = s->pr_height[plane]; \ s 300 libavfilter/vf_v360.c const int16_t *const u = s->u[map] + y * uv_linesize * ws * ws; \ s 301 libavfilter/vf_v360.c const int16_t *const v = s->v[map] + y * uv_linesize * ws * ws; \ s 302 libavfilter/vf_v360.c const int16_t *const ker = s->ker[map] + y * uv_linesize * ws * ws; \ s 304 libavfilter/vf_v360.c s->remap_line(dst + y * out_linesize, width, src, in_linesize, u, v, ker); \ s 331 libavfilter/vf_v360.c const uint##bits##_t *const s = (const uint##bits##_t *const)src; \ s 344 libavfilter/vf_v360.c tmp += kker[i * ws + j] * s[vv[i * ws + j] * in_linesize + uu[i * ws + j]]; \ s 359 libavfilter/vf_v360.c void ff_v360_init(V360Context *s, int depth) s 361 libavfilter/vf_v360.c switch (s->interp) { s 363 libavfilter/vf_v360.c s->remap_line = depth <= 8 ? remap1_8bit_line_c : remap1_16bit_line_c; s 366 libavfilter/vf_v360.c s->remap_line = depth <= 8 ? remap2_8bit_line_c : remap2_16bit_line_c; s 369 libavfilter/vf_v360.c s->remap_line = depth <= 8 ? remap3_8bit_line_c : remap3_16bit_line_c; s 375 libavfilter/vf_v360.c s->remap_line = depth <= 8 ? remap4_8bit_line_c : remap4_16bit_line_c; s 380 libavfilter/vf_v360.c ff_v360_init_x86(s, depth); s 803 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 806 libavfilter/vf_v360.c const char c = s->in_forder[face]; s 822 libavfilter/vf_v360.c s->in_cubemap_face_order[direction] = face; s 826 libavfilter/vf_v360.c const char c = s->in_frot[face]; s 842 libavfilter/vf_v360.c s->in_cubemap_face_rotation[face] = rotation; s 857 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 860 libavfilter/vf_v360.c const char c = s->out_forder[face]; s 876 libavfilter/vf_v360.c s->out_cubemap_direction_order[face] = direction; s 880 libavfilter/vf_v360.c const char c = s->out_frot[face]; s 896 libavfilter/vf_v360.c s->out_cubemap_face_rotation[face] = rotation; s 980 libavfilter/vf_v360.c static void cube_to_xyz(const V360Context *s, s 984 libavfilter/vf_v360.c const int direction = s->out_cubemap_direction_order[face]; s 990 libavfilter/vf_v360.c rotate_cube_face_inverse(&uf, &vf, s->out_cubemap_face_rotation[face]); s 1044 libavfilter/vf_v360.c static void xyz_to_cube(const V360Context *s, s 1103 libavfilter/vf_v360.c face = s->in_cubemap_face_order[*direction]; s 1104 libavfilter/vf_v360.c rotate_cube_face(uf, vf, s->in_cubemap_face_rotation[face]); s 1106 libavfilter/vf_v360.c (*uf) *= s->input_mirror_modifier[0]; s 1107 libavfilter/vf_v360.c (*vf) *= s->input_mirror_modifier[1]; s 1122 libavfilter/vf_v360.c static void process_cube_coordinates(const V360Context *s, s 1143 libavfilter/vf_v360.c *face = s->in_cubemap_face_order[direction]; s 1144 libavfilter/vf_v360.c rotate_cube_face_inverse(&uf, &vf, s->in_cubemap_face_rotation[*face]); s 1300 libavfilter/vf_v360.c *face = s->in_cubemap_face_order[direction]; s 1301 libavfilter/vf_v360.c rotate_cube_face(new_uf, new_vf, s->in_cubemap_face_rotation[*face]); s 1314 libavfilter/vf_v360.c static int cube3x2_to_xyz(const V360Context *s, s 1318 libavfilter/vf_v360.c const float scalew = s->fout_pad > 0 ? 1.f - s->fout_pad / (width / 3.f) : 1.f - s->out_pad; s 1319 libavfilter/vf_v360.c const float scaleh = s->fout_pad > 0 ? 1.f - s->fout_pad / (height / 2.f) : 1.f - s->out_pad; s 1336 libavfilter/vf_v360.c cube_to_xyz(s, uf, vf, face, vec, scalew, scaleh); s 1353 libavfilter/vf_v360.c static int xyz_to_cube3x2(const V360Context *s, s 1357 libavfilter/vf_v360.c const float scalew = s->fin_pad > 0 ? 1.f - s->fin_pad / (width / 3.f) : 1.f - s->in_pad; s 1358 libavfilter/vf_v360.c const float scaleh = s->fin_pad > 0 ? 1.f - s->fin_pad / (height / 2.f) : 1.f - s->in_pad; s 1367 libavfilter/vf_v360.c xyz_to_cube(s, vec, &uf, &vf, &direction); s 1372 libavfilter/vf_v360.c face = s->in_cubemap_face_order[direction]; s 1395 libavfilter/vf_v360.c face = s->in_cubemap_face_order[direction]; s 1408 libavfilter/vf_v360.c process_cube_coordinates(s, uf, vf, direction, &uf, &vf, &face); s 1442 libavfilter/vf_v360.c static int cube1x6_to_xyz(const V360Context *s, s 1446 libavfilter/vf_v360.c const float scalew = s->fout_pad > 0 ? 1.f - (float)(s->fout_pad) / width : 1.f - s->out_pad; s 1447 libavfilter/vf_v360.c const float scaleh = s->fout_pad > 0 ? 1.f - s->fout_pad / (height / 6.f) : 1.f - s->out_pad; s 1460 libavfilter/vf_v360.c cube_to_xyz(s, uf, vf, face, vec, scalew, scaleh); s 1475 libavfilter/vf_v360.c static int cube6x1_to_xyz(const V360Context *s, s 1479 libavfilter/vf_v360.c const float scalew = s->fout_pad > 0 ? 1.f - s->fout_pad / (width / 6.f) : 1.f - s->out_pad; s 1480 libavfilter/vf_v360.c const float scaleh = s->fout_pad > 0 ? 1.f - (float)(s->fout_pad) / height : 1.f - s->out_pad; s 1493 libavfilter/vf_v360.c cube_to_xyz(s, uf, vf, face, vec, scalew, scaleh); s 1510 libavfilter/vf_v360.c static int xyz_to_cube1x6(const V360Context *s, s 1514 libavfilter/vf_v360.c const float scalew = s->fin_pad > 0 ? 1.f - (float)(s->fin_pad) / width : 1.f - s->in_pad; s 1515 libavfilter/vf_v360.c const float scaleh = s->fin_pad > 0 ? 1.f - s->fin_pad / (height / 6.f) : 1.f - s->in_pad; s 1523 libavfilter/vf_v360.c xyz_to_cube(s, vec, &uf, &vf, &direction); s 1528 libavfilter/vf_v360.c face = s->in_cubemap_face_order[direction]; s 1548 libavfilter/vf_v360.c face = s->in_cubemap_face_order[direction]; s 1558 libavfilter/vf_v360.c process_cube_coordinates(s, uf, vf, direction, &uf, &vf, &face); s 1590 libavfilter/vf_v360.c static int xyz_to_cube6x1(const V360Context *s, s 1594 libavfilter/vf_v360.c const float scalew = s->fin_pad > 0 ? 1.f - s->fin_pad / (width / 6.f) : 1.f - s->in_pad; s 1595 libavfilter/vf_v360.c const float scaleh = s->fin_pad > 0 ? 1.f - (float)(s->fin_pad) / height : 1.f - s->in_pad; s 1603 libavfilter/vf_v360.c xyz_to_cube(s, vec, &uf, &vf, &direction); s 1608 libavfilter/vf_v360.c face = s->in_cubemap_face_order[direction]; s 1628 libavfilter/vf_v360.c face = s->in_cubemap_face_order[direction]; s 1638 libavfilter/vf_v360.c process_cube_coordinates(s, uf, vf, direction, &uf, &vf, &face); s 1668 libavfilter/vf_v360.c static int equirect_to_xyz(const V360Context *s, s 1697 libavfilter/vf_v360.c static int hequirect_to_xyz(const V360Context *s, s 1725 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 1727 libavfilter/vf_v360.c s->flat_range[0] = tanf(FFMIN(s->h_fov, 359.f) * M_PI / 720.f); s 1728 libavfilter/vf_v360.c s->flat_range[1] = tanf(FFMIN(s->v_fov, 359.f) * M_PI / 720.f); s 1743 libavfilter/vf_v360.c static int stereographic_to_xyz(const V360Context *s, s 1747 libavfilter/vf_v360.c const float x = ((2.f * i + 1.f) / width - 1.f) * s->flat_range[0]; s 1748 libavfilter/vf_v360.c const float y = ((2.f * j + 1.f) / height - 1.f) * s->flat_range[1]; s 1771 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 1773 libavfilter/vf_v360.c s->iflat_range[0] = tanf(FFMIN(s->ih_fov, 359.f) * M_PI / 720.f); s 1774 libavfilter/vf_v360.c s->iflat_range[1] = tanf(FFMIN(s->iv_fov, 359.f) * M_PI / 720.f); s 1791 libavfilter/vf_v360.c static int xyz_to_stereographic(const V360Context *s, s 1798 libavfilter/vf_v360.c const float x = vec[0] * c / s->iflat_range[0] * s->input_mirror_modifier[0]; s 1799 libavfilter/vf_v360.c const float y = vec[1] * c / s->iflat_range[1] * s->input_mirror_modifier[1]; s 1834 libavfilter/vf_v360.c static int xyz_to_equirect(const V360Context *s, s 1838 libavfilter/vf_v360.c const float phi = atan2f(vec[0], vec[2]) * s->input_mirror_modifier[0]; s 1839 libavfilter/vf_v360.c const float theta = asinf(vec[1]) * s->input_mirror_modifier[1]; s 1872 libavfilter/vf_v360.c static int xyz_to_hequirect(const V360Context *s, s 1876 libavfilter/vf_v360.c const float phi = atan2f(vec[0], vec[2]) * s->input_mirror_modifier[0]; s 1877 libavfilter/vf_v360.c const float theta = asinf(vec[1]) * s->input_mirror_modifier[1]; s 1909 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 1911 libavfilter/vf_v360.c s->iflat_range[0] = tanf(0.5f * s->ih_fov * M_PI / 180.f); s 1912 libavfilter/vf_v360.c s->iflat_range[1] = tanf(0.5f * s->iv_fov * M_PI / 180.f); s 1929 libavfilter/vf_v360.c static int xyz_to_flat(const V360Context *s, s 1939 libavfilter/vf_v360.c float uf = vec[0] * c / s->iflat_range[0] * s->input_mirror_modifier[0]; s 1940 libavfilter/vf_v360.c float vf = vec[1] * c / s->iflat_range[1] * s->input_mirror_modifier[1]; s 1976 libavfilter/vf_v360.c static int xyz_to_mercator(const V360Context *s, s 1980 libavfilter/vf_v360.c const float phi = atan2f(vec[0], vec[2]) * s->input_mirror_modifier[0]; s 1981 libavfilter/vf_v360.c const float theta = vec[1] * s->input_mirror_modifier[1]; s 2012 libavfilter/vf_v360.c static int mercator_to_xyz(const V360Context *s, s 2044 libavfilter/vf_v360.c static int xyz_to_ball(const V360Context *s, s 2051 libavfilter/vf_v360.c const float uf = (1.f + r * vec[0] * s->input_mirror_modifier[0] / (l > 0.f ? l : 1.f)) * width * 0.5f; s 2052 libavfilter/vf_v360.c const float vf = (1.f + r * vec[1] * s->input_mirror_modifier[1] / (l > 0.f ? l : 1.f)) * height * 0.5f; s 2080 libavfilter/vf_v360.c static int ball_to_xyz(const V360Context *s, s 2114 libavfilter/vf_v360.c static int hammer_to_xyz(const V360Context *s, s 2155 libavfilter/vf_v360.c static int xyz_to_hammer(const V360Context *s, s 2159 libavfilter/vf_v360.c const float theta = atan2f(vec[0], vec[2]) * s->input_mirror_modifier[0]; s 2163 libavfilter/vf_v360.c const float y = vec[1] / z * s->input_mirror_modifier[1]; s 2194 libavfilter/vf_v360.c static int sinusoidal_to_xyz(const V360Context *s, s 2227 libavfilter/vf_v360.c static int xyz_to_sinusoidal(const V360Context *s, s 2231 libavfilter/vf_v360.c const float theta = asinf(vec[1]) * s->input_mirror_modifier[1]; s 2232 libavfilter/vf_v360.c const float phi = atan2f(vec[0], vec[2]) * s->input_mirror_modifier[0] * cosf(theta); s 2262 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 2264 libavfilter/vf_v360.c if (s->ih_flip && s->iv_flip) { s 2265 libavfilter/vf_v360.c s->in_cubemap_face_order[RIGHT] = BOTTOM_LEFT; s 2266 libavfilter/vf_v360.c s->in_cubemap_face_order[LEFT] = BOTTOM_RIGHT; s 2267 libavfilter/vf_v360.c s->in_cubemap_face_order[UP] = TOP_LEFT; s 2268 libavfilter/vf_v360.c s->in_cubemap_face_order[DOWN] = TOP_RIGHT; s 2269 libavfilter/vf_v360.c s->in_cubemap_face_order[FRONT] = BOTTOM_MIDDLE; s 2270 libavfilter/vf_v360.c s->in_cubemap_face_order[BACK] = TOP_MIDDLE; s 2271 libavfilter/vf_v360.c } else if (s->ih_flip) { s 2272 libavfilter/vf_v360.c s->in_cubemap_face_order[RIGHT] = TOP_LEFT; s 2273 libavfilter/vf_v360.c s->in_cubemap_face_order[LEFT] = TOP_RIGHT; s 2274 libavfilter/vf_v360.c s->in_cubemap_face_order[UP] = BOTTOM_LEFT; s 2275 libavfilter/vf_v360.c s->in_cubemap_face_order[DOWN] = BOTTOM_RIGHT; s 2276 libavfilter/vf_v360.c s->in_cubemap_face_order[FRONT] = TOP_MIDDLE; s 2277 libavfilter/vf_v360.c s->in_cubemap_face_order[BACK] = BOTTOM_MIDDLE; s 2278 libavfilter/vf_v360.c } else if (s->iv_flip) { s 2279 libavfilter/vf_v360.c s->in_cubemap_face_order[RIGHT] = BOTTOM_RIGHT; s 2280 libavfilter/vf_v360.c s->in_cubemap_face_order[LEFT] = BOTTOM_LEFT; s 2281 libavfilter/vf_v360.c s->in_cubemap_face_order[UP] = TOP_RIGHT; s 2282 libavfilter/vf_v360.c s->in_cubemap_face_order[DOWN] = TOP_LEFT; s 2283 libavfilter/vf_v360.c s->in_cubemap_face_order[FRONT] = BOTTOM_MIDDLE; s 2284 libavfilter/vf_v360.c s->in_cubemap_face_order[BACK] = TOP_MIDDLE; s 2286 libavfilter/vf_v360.c s->in_cubemap_face_order[RIGHT] = TOP_RIGHT; s 2287 libavfilter/vf_v360.c s->in_cubemap_face_order[LEFT] = TOP_LEFT; s 2288 libavfilter/vf_v360.c s->in_cubemap_face_order[UP] = BOTTOM_RIGHT; s 2289 libavfilter/vf_v360.c s->in_cubemap_face_order[DOWN] = BOTTOM_LEFT; s 2290 libavfilter/vf_v360.c s->in_cubemap_face_order[FRONT] = TOP_MIDDLE; s 2291 libavfilter/vf_v360.c s->in_cubemap_face_order[BACK] = BOTTOM_MIDDLE; s 2294 libavfilter/vf_v360.c if (s->iv_flip) { s 2295 libavfilter/vf_v360.c s->in_cubemap_face_rotation[TOP_LEFT] = ROT_270; s 2296 libavfilter/vf_v360.c s->in_cubemap_face_rotation[TOP_MIDDLE] = ROT_90; s 2297 libavfilter/vf_v360.c s->in_cubemap_face_rotation[TOP_RIGHT] = ROT_270; s 2298 libavfilter/vf_v360.c s->in_cubemap_face_rotation[BOTTOM_LEFT] = ROT_0; s 2299 libavfilter/vf_v360.c s->in_cubemap_face_rotation[BOTTOM_MIDDLE] = ROT_0; s 2300 libavfilter/vf_v360.c s->in_cubemap_face_rotation[BOTTOM_RIGHT] = ROT_0; s 2302 libavfilter/vf_v360.c s->in_cubemap_face_rotation[TOP_LEFT] = ROT_0; s 2303 libavfilter/vf_v360.c s->in_cubemap_face_rotation[TOP_MIDDLE] = ROT_0; s 2304 libavfilter/vf_v360.c s->in_cubemap_face_rotation[TOP_RIGHT] = ROT_0; s 2305 libavfilter/vf_v360.c s->in_cubemap_face_rotation[BOTTOM_LEFT] = ROT_270; s 2306 libavfilter/vf_v360.c s->in_cubemap_face_rotation[BOTTOM_MIDDLE] = ROT_90; s 2307 libavfilter/vf_v360.c s->in_cubemap_face_rotation[BOTTOM_RIGHT] = ROT_270; s 2322 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 2324 libavfilter/vf_v360.c s->out_cubemap_direction_order[TOP_LEFT] = LEFT; s 2325 libavfilter/vf_v360.c s->out_cubemap_direction_order[TOP_MIDDLE] = FRONT; s 2326 libavfilter/vf_v360.c s->out_cubemap_direction_order[TOP_RIGHT] = RIGHT; s 2327 libavfilter/vf_v360.c s->out_cubemap_direction_order[BOTTOM_LEFT] = DOWN; s 2328 libavfilter/vf_v360.c s->out_cubemap_direction_order[BOTTOM_MIDDLE] = BACK; s 2329 libavfilter/vf_v360.c s->out_cubemap_direction_order[BOTTOM_RIGHT] = UP; s 2331 libavfilter/vf_v360.c s->out_cubemap_face_rotation[TOP_LEFT] = ROT_0; s 2332 libavfilter/vf_v360.c s->out_cubemap_face_rotation[TOP_MIDDLE] = ROT_0; s 2333 libavfilter/vf_v360.c s->out_cubemap_face_rotation[TOP_RIGHT] = ROT_0; s 2334 libavfilter/vf_v360.c s->out_cubemap_face_rotation[BOTTOM_LEFT] = ROT_270; s 2335 libavfilter/vf_v360.c s->out_cubemap_face_rotation[BOTTOM_MIDDLE] = ROT_90; s 2336 libavfilter/vf_v360.c s->out_cubemap_face_rotation[BOTTOM_RIGHT] = ROT_270; s 2351 libavfilter/vf_v360.c static int eac_to_xyz(const V360Context *s, s 2456 libavfilter/vf_v360.c static int xyz_to_eac(const V360Context *s, s 2469 libavfilter/vf_v360.c xyz_to_cube(s, vec, &uf, &vf, &direction); s 2471 libavfilter/vf_v360.c face = s->in_cubemap_face_order[direction]; s 2513 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 2515 libavfilter/vf_v360.c s->flat_range[0] = tanf(0.5f * s->h_fov * M_PI / 180.f); s 2516 libavfilter/vf_v360.c s->flat_range[1] = tanf(0.5f * s->v_fov * M_PI / 180.f); s 2531 libavfilter/vf_v360.c static int flat_to_xyz(const V360Context *s, s 2535 libavfilter/vf_v360.c const float l_x = s->flat_range[0] * ((2.f * i + 0.5f) / width - 1.f); s 2536 libavfilter/vf_v360.c const float l_y = s->flat_range[1] * ((2.f * j + 0.5f) / height - 1.f); s 2556 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 2558 libavfilter/vf_v360.c s->flat_range[0] = s->h_fov / 180.f; s 2559 libavfilter/vf_v360.c s->flat_range[1] = s->v_fov / 180.f; s 2574 libavfilter/vf_v360.c static int fisheye_to_xyz(const V360Context *s, s 2578 libavfilter/vf_v360.c const float uf = s->flat_range[0] * ((2.f * i) / width - 1.f); s 2579 libavfilter/vf_v360.c const float vf = s->flat_range[1] * ((2.f * j + 1.f) / height - 1.f); s 2607 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 2609 libavfilter/vf_v360.c s->iflat_range[0] = s->ih_fov / 180.f; s 2610 libavfilter/vf_v360.c s->iflat_range[1] = s->iv_fov / 180.f; s 2627 libavfilter/vf_v360.c static int xyz_to_fisheye(const V360Context *s, s 2635 libavfilter/vf_v360.c float uf = vec[0] / lh * phi * s->input_mirror_modifier[0] / s->iflat_range[0]; s 2636 libavfilter/vf_v360.c float vf = vec[1] / lh * phi * s->input_mirror_modifier[1] / s->iflat_range[1]; s 2670 libavfilter/vf_v360.c static int pannini_to_xyz(const V360Context *s, s 2677 libavfilter/vf_v360.c const float d = s->h_fov; s 2706 libavfilter/vf_v360.c static int xyz_to_pannini(const V360Context *s, s 2710 libavfilter/vf_v360.c const float phi = atan2f(vec[0], vec[2]) * s->input_mirror_modifier[0]; s 2711 libavfilter/vf_v360.c const float theta = asinf(vec[1]) * s->input_mirror_modifier[1]; s 2713 libavfilter/vf_v360.c const float d = s->ih_fov; s 2749 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 2751 libavfilter/vf_v360.c s->flat_range[0] = M_PI * s->h_fov / 360.f; s 2752 libavfilter/vf_v360.c s->flat_range[1] = tanf(0.5f * s->v_fov * M_PI / 180.f); s 2767 libavfilter/vf_v360.c static int cylindrical_to_xyz(const V360Context *s, s 2771 libavfilter/vf_v360.c const float uf = s->flat_range[0] * ((2.f * i + 1.f) / width - 1.f); s 2772 libavfilter/vf_v360.c const float vf = s->flat_range[1] * ((2.f * j + 1.f) / height - 1.f); s 2800 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 2802 libavfilter/vf_v360.c s->iflat_range[0] = M_PI * s->ih_fov / 360.f; s 2803 libavfilter/vf_v360.c s->iflat_range[1] = tanf(0.5f * s->iv_fov * M_PI / 180.f); s 2820 libavfilter/vf_v360.c static int xyz_to_cylindrical(const V360Context *s, s 2824 libavfilter/vf_v360.c const float phi = atan2f(vec[0], vec[2]) * s->input_mirror_modifier[0] / s->iflat_range[0]; s 2825 libavfilter/vf_v360.c const float theta = asinf(vec[1]) * s->input_mirror_modifier[1]; s 2828 libavfilter/vf_v360.c const float vf = (tanf(theta) / s->iflat_range[1] + 1.f) * height / 2.f; s 2834 libavfilter/vf_v360.c theta <= M_PI * s->iv_fov / 180.f && s 2835 libavfilter/vf_v360.c theta >= -M_PI * s->iv_fov / 180.f; s 2860 libavfilter/vf_v360.c static int perspective_to_xyz(const V360Context *s, s 2868 libavfilter/vf_v360.c const float h = 1.f + s->v_fov; s 2907 libavfilter/vf_v360.c static int tetrahedron_to_xyz(const V360Context *s, s 2935 libavfilter/vf_v360.c static int xyz_to_tetrahedron(const V360Context *s, s 2952 libavfilter/vf_v360.c vf = 0.5f - y * 0.5f * s->input_mirror_modifier[1]; s 2956 libavfilter/vf_v360.c uf = 0.25f * x * s->input_mirror_modifier[0] + 0.25f; s 2958 libavfilter/vf_v360.c uf = 0.75f - 0.25f * x * s->input_mirror_modifier[0]; s 2990 libavfilter/vf_v360.c static int dfisheye_to_xyz(const V360Context *s, s 3000 libavfilter/vf_v360.c const float uf = s->flat_range[0] * ((2.f * ei) / ew - 1.f); s 3001 libavfilter/vf_v360.c const float vf = s->flat_range[1] * ((2.f * j + 1.f) / eh - 1.f); s 3031 libavfilter/vf_v360.c static int xyz_to_dfisheye(const V360Context *s, s 3042 libavfilter/vf_v360.c float uf = (theta * (vec[0] / lh) * s->input_mirror_modifier[0] / s->iflat_range[0] + 0.5f) * ew; s 3043 libavfilter/vf_v360.c float vf = (theta * (vec[1] / lh) * s->input_mirror_modifier[1] / s->iflat_range[1] + 0.5f) * eh; s 3081 libavfilter/vf_v360.c static int barrel_to_xyz(const V360Context *s, s 3155 libavfilter/vf_v360.c static int xyz_to_barrel(const V360Context *s, s 3161 libavfilter/vf_v360.c const float phi = atan2f(vec[0], vec[2]) * s->input_mirror_modifier[0]; s 3162 libavfilter/vf_v360.c const float theta = asinf(vec[1]) * s->input_mirror_modifier[1]; s 3174 libavfilter/vf_v360.c u_shift = s->ih_flip ? width / 5 : 0; s 3183 libavfilter/vf_v360.c u_shift = s->ih_flip ? 0 : 4 * ew; s 3195 libavfilter/vf_v360.c uf *= s->input_mirror_modifier[0] * s->input_mirror_modifier[1]; s 3196 libavfilter/vf_v360.c vf *= s->input_mirror_modifier[1]; s 3230 libavfilter/vf_v360.c static int xyz_to_barrelsplit(const V360Context *s, s 3234 libavfilter/vf_v360.c const float phi = atan2f(vec[0], vec[2]) * s->input_mirror_modifier[0]; s 3235 libavfilter/vf_v360.c const float theta = asinf(vec[1]) * s->input_mirror_modifier[1]; s 3245 libavfilter/vf_v360.c const float scalew = s->fin_pad > 0 ? 1.f - s->fin_pad / (width * 2.f / 3.f) : 1.f - s->in_pad; s 3246 libavfilter/vf_v360.c const float scaleh = s->fin_pad > 0 ? 1.f - s->fin_pad / (height / 2.f) : 1.f - s->in_pad; s 3251 libavfilter/vf_v360.c u_shift = s->ih_flip ? width / 3 : 0; s 3263 libavfilter/vf_v360.c const float scalew = s->fin_pad > 0 ? 1.f - s->fin_pad / (width / 3.f) : 1.f - s->in_pad; s 3264 libavfilter/vf_v360.c const float scaleh = s->fin_pad > 0 ? 1.f - s->fin_pad / (height / 4.f) : 1.f - s->in_pad; s 3270 libavfilter/vf_v360.c u_shift = s->ih_flip ? 0 : 2 * ew; s 3294 libavfilter/vf_v360.c uf *= s->input_mirror_modifier[0] * s->input_mirror_modifier[1]; s 3295 libavfilter/vf_v360.c vf *= s->input_mirror_modifier[1]; s 3327 libavfilter/vf_v360.c static int barrelsplit_to_xyz(const V360Context *s, s 3336 libavfilter/vf_v360.c const float scalew = s->fout_pad > 0 ? 1.f - s->fout_pad / (width * 2.f / 3.f) : 1.f - s->out_pad; s 3337 libavfilter/vf_v360.c const float scaleh = s->fout_pad > 0 ? 1.f - s->fout_pad / (height / 2.f) : 1.f - s->out_pad; s 3353 libavfilter/vf_v360.c const float scalew = s->fout_pad > 0 ? 1.f - s->fout_pad / (width / 3.f) : 1.f - s->out_pad; s 3354 libavfilter/vf_v360.c const float scaleh = s->fout_pad > 0 ? 1.f - s->fout_pad / (height / 4.f) : 1.f - s->out_pad; s 3417 libavfilter/vf_v360.c static int tspyramid_to_xyz(const V360Context *s, s 3477 libavfilter/vf_v360.c static int xyz_to_tspyramid(const V360Context *s, s 3485 libavfilter/vf_v360.c xyz_to_cube(s, vec, &uf, &vf, &face); s 3619 libavfilter/vf_v360.c static int allocate_plane(V360Context *s, int sizeof_uv, int sizeof_ker, int sizeof_mask, int p) s 3621 libavfilter/vf_v360.c if (!s->u[p]) s 3622 libavfilter/vf_v360.c s->u[p] = av_calloc(s->uv_linesize[p] * s->pr_height[p], sizeof_uv); s 3623 libavfilter/vf_v360.c if (!s->v[p]) s 3624 libavfilter/vf_v360.c s->v[p] = av_calloc(s->uv_linesize[p] * s->pr_height[p], sizeof_uv); s 3625 libavfilter/vf_v360.c if (!s->u[p] || !s->v[p]) s 3628 libavfilter/vf_v360.c if (!s->ker[p]) s 3629 libavfilter/vf_v360.c s->ker[p] = av_calloc(s->uv_linesize[p] * s->pr_height[p], sizeof_ker); s 3630 libavfilter/vf_v360.c if (!s->ker[p]) s 3635 libavfilter/vf_v360.c if (!s->mask) s 3636 libavfilter/vf_v360.c s->mask = av_calloc(s->pr_width[p] * s->pr_height[p], sizeof_mask); s 3637 libavfilter/vf_v360.c if (!s->mask) s 3701 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 3703 libavfilter/vf_v360.c for (int p = 0; p < s->nb_allocated; p++) { s 3704 libavfilter/vf_v360.c const int max_value = s->max_value; s 3705 libavfilter/vf_v360.c const int width = s->pr_width[p]; s 3706 libavfilter/vf_v360.c const int uv_linesize = s->uv_linesize[p]; s 3707 libavfilter/vf_v360.c const int height = s->pr_height[p]; s 3708 libavfilter/vf_v360.c const int in_width = s->inplanewidth[p]; s 3709 libavfilter/vf_v360.c const int in_height = s->inplaneheight[p]; s 3718 libavfilter/vf_v360.c int16_t *u = s->u[p] + (j * uv_linesize + i) * s->elements; s 3719 libavfilter/vf_v360.c int16_t *v = s->v[p] + (j * uv_linesize + i) * s->elements; s 3720 libavfilter/vf_v360.c int16_t *ker = s->ker[p] + (j * uv_linesize + i) * s->elements; s 3721 libavfilter/vf_v360.c uint8_t *mask8 = p ? NULL : s->mask + (j * s->pr_width[0] + i); s 3722 libavfilter/vf_v360.c uint16_t *mask16 = p ? NULL : (uint16_t *)s->mask + (j * s->pr_width[0] + i); s 3725 libavfilter/vf_v360.c if (s->out_transpose) s 3726 libavfilter/vf_v360.c out_mask = s->out_transform(s, j, i, height, width, vec); s 3728 libavfilter/vf_v360.c out_mask = s->out_transform(s, i, j, width, height, vec); s 3730 libavfilter/vf_v360.c rotate(s->rot_mat, vec); s 3733 libavfilter/vf_v360.c mirror(s->output_mirror_modifier, vec); s 3734 libavfilter/vf_v360.c if (s->in_transpose) s 3735 libavfilter/vf_v360.c in_mask = s->in_transform(s, vec, in_height, in_width, rmap.v, rmap.u, &du, &dv); s 3737 libavfilter/vf_v360.c in_mask = s->in_transform(s, vec, in_width, in_height, rmap.u, rmap.v, &du, &dv); s 3739 libavfilter/vf_v360.c s->calculate_kernel(du, dv, &rmap, u, v, ker); s 3741 libavfilter/vf_v360.c if (!p && s->mask) { s 3742 libavfilter/vf_v360.c if (s->mask_size == 1) { s 3759 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 3762 libavfilter/vf_v360.c const int sizeof_mask = s->mask_size = (depth + 7) >> 3; s 3773 libavfilter/vf_v360.c s->max_value = (1 << depth) - 1; s 3774 libavfilter/vf_v360.c s->input_mirror_modifier[0] = s->ih_flip ? -1.f : 1.f; s 3775 libavfilter/vf_v360.c s->input_mirror_modifier[1] = s->iv_flip ? -1.f : 1.f; s 3777 libavfilter/vf_v360.c switch (s->interp) { s 3779 libavfilter/vf_v360.c s->calculate_kernel = nearest_kernel; s 3780 libavfilter/vf_v360.c s->remap_slice = depth <= 8 ? remap1_8bit_slice : remap1_16bit_slice; s 3781 libavfilter/vf_v360.c s->elements = 1; s 3782 libavfilter/vf_v360.c sizeof_uv = sizeof(int16_t) * s->elements; s 3786 libavfilter/vf_v360.c s->calculate_kernel = bilinear_kernel; s 3787 libavfilter/vf_v360.c s->remap_slice = depth <= 8 ? remap2_8bit_slice : remap2_16bit_slice; s 3788 libavfilter/vf_v360.c s->elements = 2 * 2; s 3789 libavfilter/vf_v360.c sizeof_uv = sizeof(int16_t) * s->elements; s 3790 libavfilter/vf_v360.c sizeof_ker = sizeof(int16_t) * s->elements; s 3793 libavfilter/vf_v360.c s->calculate_kernel = lagrange_kernel; s 3794 libavfilter/vf_v360.c s->remap_slice = depth <= 8 ? remap3_8bit_slice : remap3_16bit_slice; s 3795 libavfilter/vf_v360.c s->elements = 3 * 3; s 3796 libavfilter/vf_v360.c sizeof_uv = sizeof(int16_t) * s->elements; s 3797 libavfilter/vf_v360.c sizeof_ker = sizeof(int16_t) * s->elements; s 3800 libavfilter/vf_v360.c s->calculate_kernel = bicubic_kernel; s 3801 libavfilter/vf_v360.c s->remap_slice = depth <= 8 ? remap4_8bit_slice : remap4_16bit_slice; s 3802 libavfilter/vf_v360.c s->elements = 4 * 4; s 3803 libavfilter/vf_v360.c sizeof_uv = sizeof(int16_t) * s->elements; s 3804 libavfilter/vf_v360.c sizeof_ker = sizeof(int16_t) * s->elements; s 3807 libavfilter/vf_v360.c s->calculate_kernel = lanczos_kernel; s 3808 libavfilter/vf_v360.c s->remap_slice = depth <= 8 ? remap4_8bit_slice : remap4_16bit_slice; s 3809 libavfilter/vf_v360.c s->elements = 4 * 4; s 3810 libavfilter/vf_v360.c sizeof_uv = sizeof(int16_t) * s->elements; s 3811 libavfilter/vf_v360.c sizeof_ker = sizeof(int16_t) * s->elements; s 3814 libavfilter/vf_v360.c s->calculate_kernel = spline16_kernel; s 3815 libavfilter/vf_v360.c s->remap_slice = depth <= 8 ? remap4_8bit_slice : remap4_16bit_slice; s 3816 libavfilter/vf_v360.c s->elements = 4 * 4; s 3817 libavfilter/vf_v360.c sizeof_uv = sizeof(int16_t) * s->elements; s 3818 libavfilter/vf_v360.c sizeof_ker = sizeof(int16_t) * s->elements; s 3821 libavfilter/vf_v360.c s->calculate_kernel = gaussian_kernel; s 3822 libavfilter/vf_v360.c s->remap_slice = depth <= 8 ? remap4_8bit_slice : remap4_16bit_slice; s 3823 libavfilter/vf_v360.c s->elements = 4 * 4; s 3824 libavfilter/vf_v360.c sizeof_uv = sizeof(int16_t) * s->elements; s 3825 libavfilter/vf_v360.c sizeof_ker = sizeof(int16_t) * s->elements; s 3831 libavfilter/vf_v360.c ff_v360_init(s, depth); s 3834 libavfilter/vf_v360.c const char c = s->rorder[order]; s 3840 libavfilter/vf_v360.c s->rotation_order[0] = YAW; s 3841 libavfilter/vf_v360.c s->rotation_order[1] = PITCH; s 3842 libavfilter/vf_v360.c s->rotation_order[2] = ROLL; s 3850 libavfilter/vf_v360.c s->rotation_order[0] = YAW; s 3851 libavfilter/vf_v360.c s->rotation_order[1] = PITCH; s 3852 libavfilter/vf_v360.c s->rotation_order[2] = ROLL; s 3856 libavfilter/vf_v360.c s->rotation_order[order] = rorder; s 3859 libavfilter/vf_v360.c switch (s->in_stereo) { s 3881 libavfilter/vf_v360.c set_dimensions(s->inplanewidth, s->inplaneheight, w, h, desc); s 3882 libavfilter/vf_v360.c set_dimensions(s->in_offset_w, s->in_offset_h, in_offset_w, in_offset_h, desc); s 3884 libavfilter/vf_v360.c s->in_width = s->inplanewidth[0]; s 3885 libavfilter/vf_v360.c s->in_height = s->inplaneheight[0]; s 3887 libavfilter/vf_v360.c if (s->id_fov > 0.f) s 3888 libavfilter/vf_v360.c fov_from_dfov(s->in, s->id_fov, w, h, &s->ih_fov, &s->iv_fov); s 3890 libavfilter/vf_v360.c if (s->in_transpose) s 3891 libavfilter/vf_v360.c FFSWAP(int, s->in_width, s->in_height); s 3893 libavfilter/vf_v360.c switch (s->in) { s 3895 libavfilter/vf_v360.c s->in_transform = xyz_to_equirect; s 3901 libavfilter/vf_v360.c s->in_transform = xyz_to_cube3x2; s 3907 libavfilter/vf_v360.c s->in_transform = xyz_to_cube1x6; s 3913 libavfilter/vf_v360.c s->in_transform = xyz_to_cube6x1; s 3919 libavfilter/vf_v360.c s->in_transform = xyz_to_eac; s 3925 libavfilter/vf_v360.c s->in_transform = xyz_to_flat; s 3934 libavfilter/vf_v360.c s->in_transform = xyz_to_dfisheye; s 3940 libavfilter/vf_v360.c s->in_transform = xyz_to_barrel; s 3946 libavfilter/vf_v360.c s->in_transform = xyz_to_stereographic; s 3952 libavfilter/vf_v360.c s->in_transform = xyz_to_mercator; s 3958 libavfilter/vf_v360.c s->in_transform = xyz_to_ball; s 3964 libavfilter/vf_v360.c s->in_transform = xyz_to_hammer; s 3970 libavfilter/vf_v360.c s->in_transform = xyz_to_sinusoidal; s 3976 libavfilter/vf_v360.c s->in_transform = xyz_to_fisheye; s 3982 libavfilter/vf_v360.c s->in_transform = xyz_to_pannini; s 3988 libavfilter/vf_v360.c s->in_transform = xyz_to_cylindrical; s 3994 libavfilter/vf_v360.c s->in_transform = xyz_to_tetrahedron; s 4000 libavfilter/vf_v360.c s->in_transform = xyz_to_barrelsplit; s 4006 libavfilter/vf_v360.c s->in_transform = xyz_to_tspyramid; s 4012 libavfilter/vf_v360.c s->in_transform = xyz_to_hequirect; s 4026 libavfilter/vf_v360.c switch (s->out) { s 4028 libavfilter/vf_v360.c s->out_transform = equirect_to_xyz; s 4034 libavfilter/vf_v360.c s->out_transform = cube3x2_to_xyz; s 4040 libavfilter/vf_v360.c s->out_transform = cube1x6_to_xyz; s 4046 libavfilter/vf_v360.c s->out_transform = cube6x1_to_xyz; s 4052 libavfilter/vf_v360.c s->out_transform = eac_to_xyz; s 4058 libavfilter/vf_v360.c s->out_transform = flat_to_xyz; s 4064 libavfilter/vf_v360.c s->out_transform = dfisheye_to_xyz; s 4070 libavfilter/vf_v360.c s->out_transform = barrel_to_xyz; s 4076 libavfilter/vf_v360.c s->out_transform = stereographic_to_xyz; s 4082 libavfilter/vf_v360.c s->out_transform = mercator_to_xyz; s 4088 libavfilter/vf_v360.c s->out_transform = ball_to_xyz; s 4094 libavfilter/vf_v360.c s->out_transform = hammer_to_xyz; s 4100 libavfilter/vf_v360.c s->out_transform = sinusoidal_to_xyz; s 4106 libavfilter/vf_v360.c s->out_transform = fisheye_to_xyz; s 4112 libavfilter/vf_v360.c s->out_transform = pannini_to_xyz; s 4118 libavfilter/vf_v360.c s->out_transform = cylindrical_to_xyz; s 4124 libavfilter/vf_v360.c s->out_transform = perspective_to_xyz; s 4130 libavfilter/vf_v360.c s->out_transform = tetrahedron_to_xyz; s 4136 libavfilter/vf_v360.c s->out_transform = barrelsplit_to_xyz; s 4142 libavfilter/vf_v360.c s->out_transform = tspyramid_to_xyz; s 4148 libavfilter/vf_v360.c s->out_transform = hequirect_to_xyz; s 4159 libavfilter/vf_v360.c if (s->width > 0 && s->height <= 0 && s->h_fov > 0.f && s->v_fov > 0.f && s 4160 libavfilter/vf_v360.c s->out == FLAT && s->d_fov == 0.f) { s 4161 libavfilter/vf_v360.c w = s->width; s 4162 libavfilter/vf_v360.c h = w / tanf(s->h_fov * M_PI / 360.f) * tanf(s->v_fov * M_PI / 360.f); s 4163 libavfilter/vf_v360.c } else if (s->width <= 0 && s->height > 0 && s->h_fov > 0.f && s->v_fov > 0.f && s 4164 libavfilter/vf_v360.c s->out == FLAT && s->d_fov == 0.f) { s 4165 libavfilter/vf_v360.c h = s->height; s 4166 libavfilter/vf_v360.c w = h / tanf(s->v_fov * M_PI / 360.f) * tanf(s->h_fov * M_PI / 360.f); s 4167 libavfilter/vf_v360.c } else if (s->width > 0 && s->height > 0) { s 4168 libavfilter/vf_v360.c w = s->width; s 4169 libavfilter/vf_v360.c h = s->height; s 4170 libavfilter/vf_v360.c } else if (s->width > 0 || s->height > 0) { s 4174 libavfilter/vf_v360.c if (s->out_transpose) s 4177 libavfilter/vf_v360.c if (s->in_transpose) s 4181 libavfilter/vf_v360.c s->width = w; s 4182 libavfilter/vf_v360.c s->height = h; s 4184 libavfilter/vf_v360.c if (s->d_fov > 0.f) s 4185 libavfilter/vf_v360.c fov_from_dfov(s->out, s->d_fov, w, h, &s->h_fov, &s->v_fov); s 4193 libavfilter/vf_v360.c set_dimensions(s->pr_width, s->pr_height, w, h, desc); s 4195 libavfilter/vf_v360.c switch (s->out_stereo) { s 4213 libavfilter/vf_v360.c set_dimensions(s->out_offset_w, s->out_offset_h, out_offset_w, out_offset_h, desc); s 4214 libavfilter/vf_v360.c set_dimensions(s->planewidth, s->planeheight, w, h, desc); s 4217 libavfilter/vf_v360.c s->uv_linesize[i] = FFALIGN(s->pr_width[i], 8); s 4222 libavfilter/vf_v360.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 4226 libavfilter/vf_v360.c s->nb_allocated = 1; s 4227 libavfilter/vf_v360.c s->map[0] = s->map[1] = s->map[2] = s->map[3] = 0; s 4229 libavfilter/vf_v360.c s->nb_allocated = 2; s 4230 libavfilter/vf_v360.c s->map[0] = s->map[3] = 0; s 4231 libavfilter/vf_v360.c s->map[1] = s->map[2] = 1; s 4234 libavfilter/vf_v360.c for (int i = 0; i < s->nb_allocated; i++) s 4235 libavfilter/vf_v360.c allocate_plane(s, sizeof_uv, sizeof_ker, sizeof_mask * have_alpha * s->alpha, i); s 4237 libavfilter/vf_v360.c calculate_rotation_matrix(s->yaw, s->pitch, s->roll, s->rot_mat, s->rotation_order); s 4238 libavfilter/vf_v360.c set_mirror_modifier(s->h_flip, s->v_flip, s->d_flip, s->output_mirror_modifier); s 4249 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 4263 libavfilter/vf_v360.c ctx->internal->execute(ctx, s->remap_slice, &td, NULL, FFMIN(outlink->h, ff_filter_get_nb_threads(ctx))); s 4283 libavfilter/vf_v360.c V360Context *s = ctx->priv; s 4285 libavfilter/vf_v360.c for (int p = 0; p < s->nb_allocated; p++) { s 4286 libavfilter/vf_v360.c av_freep(&s->u[p]); s 4287 libavfilter/vf_v360.c av_freep(&s->v[p]); s 4288 libavfilter/vf_v360.c av_freep(&s->ker[p]); s 4290 libavfilter/vf_v360.c av_freep(&s->mask); s 143 libavfilter/vf_vaguedenoiser.c VagueDenoiserContext *s = inlink->dst->priv; s 147 libavfilter/vf_vaguedenoiser.c s->depth = desc->comp[0].depth; s 148 libavfilter/vf_vaguedenoiser.c s->bpc = (s->depth + 7) / 8; s 149 libavfilter/vf_vaguedenoiser.c s->nb_planes = desc->nb_components; s 151 libavfilter/vf_vaguedenoiser.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 152 libavfilter/vf_vaguedenoiser.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 153 libavfilter/vf_vaguedenoiser.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 154 libavfilter/vf_vaguedenoiser.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 156 libavfilter/vf_vaguedenoiser.c s->block = av_malloc_array(inlink->w * inlink->h, sizeof(*s->block)); s 157 libavfilter/vf_vaguedenoiser.c s->in = av_malloc_array(32 + FFMAX(inlink->w, inlink->h), sizeof(*s->in)); s 158 libavfilter/vf_vaguedenoiser.c s->out = av_malloc_array(32 + FFMAX(inlink->w, inlink->h), sizeof(*s->out)); s 159 libavfilter/vf_vaguedenoiser.c s->tmp = av_malloc_array(32 + FFMAX(inlink->w, inlink->h), sizeof(*s->tmp)); s 161 libavfilter/vf_vaguedenoiser.c if (!s->block || !s->in || !s->out || !s->tmp) s 164 libavfilter/vf_vaguedenoiser.c s->threshold *= 1 << (s->depth - 8); s 165 libavfilter/vf_vaguedenoiser.c s->peak = (1 << s->depth) - 1; s 167 libavfilter/vf_vaguedenoiser.c nsteps_width = ((s->planes & 2 || s->planes & 4) && s->nb_planes > 1) ? s->planewidth[1] : s->planewidth[0]; s 168 libavfilter/vf_vaguedenoiser.c nsteps_height = ((s->planes & 2 || s->planes & 4) && s->nb_planes > 1) ? s->planeheight[1] : s->planeheight[0]; s 175 libavfilter/vf_vaguedenoiser.c s->nsteps = FFMIN(s->nsteps, nsteps_max - 2); s 178 libavfilter/vf_vaguedenoiser.c s->hlowsize[p][0] = (s->planewidth[p] + 1) >> 1; s 179 libavfilter/vf_vaguedenoiser.c s->hhighsize[p][0] = s->planewidth[p] >> 1; s 180 libavfilter/vf_vaguedenoiser.c s->vlowsize[p][0] = (s->planeheight[p] + 1) >> 1; s 181 libavfilter/vf_vaguedenoiser.c s->vhighsize[p][0] = s->planeheight[p] >> 1; s 183 libavfilter/vf_vaguedenoiser.c for (i = 1; i < s->nsteps; i++) { s 184 libavfilter/vf_vaguedenoiser.c s->hlowsize[p][i] = (s->hlowsize[p][i - 1] + 1) >> 1; s 185 libavfilter/vf_vaguedenoiser.c s->hhighsize[p][i] = s->hlowsize[p][i - 1] >> 1; s 186 libavfilter/vf_vaguedenoiser.c s->vlowsize[p][i] = (s->vlowsize[p][i - 1] + 1) >> 1; s 187 libavfilter/vf_vaguedenoiser.c s->vhighsize[p][i] = s->vlowsize[p][i - 1] >> 1; s 250 libavfilter/vf_vaguedenoiser.c static void transform_step(float *input, float *output, const int size, const int low_size, VagueDenoiserContext *s) s 283 libavfilter/vf_vaguedenoiser.c static void invert_step(const float *input, float *output, float *temp, const int size, VagueDenoiserContext *s) s 413 libavfilter/vf_vaguedenoiser.c static void filter(VagueDenoiserContext *s, AVFrame *in, AVFrame *out) s 417 libavfilter/vf_vaguedenoiser.c for (p = 0; p < s->nb_planes; p++) { s 418 libavfilter/vf_vaguedenoiser.c const int height = s->planeheight[p]; s 419 libavfilter/vf_vaguedenoiser.c const int width = s->planewidth[p]; s 424 libavfilter/vf_vaguedenoiser.c float *output = s->block; s 427 libavfilter/vf_vaguedenoiser.c int nsteps_transform = s->nsteps; s 428 libavfilter/vf_vaguedenoiser.c int nsteps_invert = s->nsteps; s 429 libavfilter/vf_vaguedenoiser.c const float *input = s->block; s 431 libavfilter/vf_vaguedenoiser.c if (!((1 << p) & s->planes)) { s 433 libavfilter/vf_vaguedenoiser.c s->planewidth[p] * s->bpc, s->planeheight[p]); s 437 libavfilter/vf_vaguedenoiser.c if (s->depth <= 8) { s 455 libavfilter/vf_vaguedenoiser.c float *input = s->block; s 457 libavfilter/vf_vaguedenoiser.c copy(input, s->in + NPAD, h_low_size0); s 458 libavfilter/vf_vaguedenoiser.c transform_step(s->in, s->out, h_low_size0, low_size, s); s 459 libavfilter/vf_vaguedenoiser.c copy(s->out + NPAD, input, h_low_size0); s 464 libavfilter/vf_vaguedenoiser.c input = s->block; s 466 libavfilter/vf_vaguedenoiser.c copyv(input, width, s->in + NPAD, v_low_size0); s 467 libavfilter/vf_vaguedenoiser.c transform_step(s->in, s->out, v_low_size0, low_size, s); s 468 libavfilter/vf_vaguedenoiser.c copyh(s->out + NPAD, input, width, v_low_size0); s 476 libavfilter/vf_vaguedenoiser.c if (s->type == 0) { s 477 libavfilter/vf_vaguedenoiser.c s->thresholding(s->block, width, height, width, s->threshold, s->percent); s 479 libavfilter/vf_vaguedenoiser.c for (int n = 0; n < s->nsteps; n++) { s 483 libavfilter/vf_vaguedenoiser.c if (n == s->nsteps - 1) { s 484 libavfilter/vf_vaguedenoiser.c threshold = bayes_threshold(s->block, s->hlowsize[p][n], s->vlowsize[p][n], width, s->threshold); s 485 libavfilter/vf_vaguedenoiser.c s->thresholding(s->block, s->hlowsize[p][n], s->vlowsize[p][n], width, threshold, s->percent); s 487 libavfilter/vf_vaguedenoiser.c block = s->block + s->hlowsize[p][n]; s 488 libavfilter/vf_vaguedenoiser.c threshold = bayes_threshold(block, s->hhighsize[p][n], s->vlowsize[p][n], width, s->threshold); s 489 libavfilter/vf_vaguedenoiser.c s->thresholding(block, s->hhighsize[p][n], s->vlowsize[p][n], width, threshold, s->percent); s 490 libavfilter/vf_vaguedenoiser.c block = s->block + s->vlowsize[p][n] * width; s 491 libavfilter/vf_vaguedenoiser.c threshold = bayes_threshold(block, s->hlowsize[p][n], s->vhighsize[p][n], width, s->threshold); s 492 libavfilter/vf_vaguedenoiser.c s->thresholding(block, s->hlowsize[p][n], s->vhighsize[p][n], width, threshold, s->percent); s 493 libavfilter/vf_vaguedenoiser.c block = s->block + s->hlowsize[p][n] + s->vlowsize[p][n] * width; s 494 libavfilter/vf_vaguedenoiser.c threshold = bayes_threshold(block, s->hhighsize[p][n], s->vhighsize[p][n], width, s->threshold); s 495 libavfilter/vf_vaguedenoiser.c s->thresholding(block, s->hhighsize[p][n], s->vhighsize[p][n], width, threshold, s->percent); s 500 libavfilter/vf_vaguedenoiser.c const int idx = s->vlowsize[p][nsteps_invert] + s->vhighsize[p][nsteps_invert]; s 501 libavfilter/vf_vaguedenoiser.c const int idx2 = s->hlowsize[p][nsteps_invert] + s->hhighsize[p][nsteps_invert]; s 502 libavfilter/vf_vaguedenoiser.c float * idx3 = s->block; s 504 libavfilter/vf_vaguedenoiser.c copyv(idx3, width, s->in + NPAD, idx); s 505 libavfilter/vf_vaguedenoiser.c invert_step(s->in, s->out, s->tmp, idx, s); s 506 libavfilter/vf_vaguedenoiser.c copyh(s->out + NPAD, idx3, width, idx); s 510 libavfilter/vf_vaguedenoiser.c idx3 = s->block; s 512 libavfilter/vf_vaguedenoiser.c copy(idx3, s->in + NPAD, idx2); s 513 libavfilter/vf_vaguedenoiser.c invert_step(s->in, s->out, s->tmp, idx2, s); s 514 libavfilter/vf_vaguedenoiser.c copy(s->out + NPAD, idx3, idx2); s 519 libavfilter/vf_vaguedenoiser.c if (s->depth <= 8) { s 529 libavfilter/vf_vaguedenoiser.c dstp16[x] = av_clip(input[x] + 0.5f, 0, s->peak); s 540 libavfilter/vf_vaguedenoiser.c VagueDenoiserContext *s = ctx->priv; s 557 libavfilter/vf_vaguedenoiser.c filter(s, in, out); s 567 libavfilter/vf_vaguedenoiser.c VagueDenoiserContext *s = ctx->priv; s 569 libavfilter/vf_vaguedenoiser.c switch (s->method) { s 571 libavfilter/vf_vaguedenoiser.c s->thresholding = hard_thresholding; s 574 libavfilter/vf_vaguedenoiser.c s->thresholding = soft_thresholding; s 577 libavfilter/vf_vaguedenoiser.c s->thresholding = qian_thresholding; s 586 libavfilter/vf_vaguedenoiser.c VagueDenoiserContext *s = ctx->priv; s 588 libavfilter/vf_vaguedenoiser.c av_freep(&s->block); s 589 libavfilter/vf_vaguedenoiser.c av_freep(&s->in); s 590 libavfilter/vf_vaguedenoiser.c av_freep(&s->out); s 591 libavfilter/vf_vaguedenoiser.c av_freep(&s->tmp); s 80 libavfilter/vf_vectorscope.c void (*vectorscope)(struct VectorscopeContext *s, s 82 libavfilter/vf_vectorscope.c void (*graticulef)(struct VectorscopeContext *s, AVFrame *out, s 213 libavfilter/vf_vectorscope.c VectorscopeContext *s = ctx->priv; s 227 libavfilter/vf_vectorscope.c if ((s->x == 1 && s->y == 2) || (s->x == 2 && s->y == 1)) s 272 libavfilter/vf_vectorscope.c VectorscopeContext *s = outlink->src->priv; s 275 libavfilter/vf_vectorscope.c s->intensity = s->fintensity * (s->size - 1); s 276 libavfilter/vf_vectorscope.c outlink->h = outlink->w = s->size; s 279 libavfilter/vf_vectorscope.c s->peak_memory = av_calloc(s->size, s->size); s 280 libavfilter/vf_vectorscope.c if (!s->peak_memory) s 283 libavfilter/vf_vectorscope.c s->peak = av_calloc(s->size, sizeof(*s->peak)); s 284 libavfilter/vf_vectorscope.c if (!s->peak) s 287 libavfilter/vf_vectorscope.c for (i = 0; i < s->size; i++) s 288 libavfilter/vf_vectorscope.c s->peak[i] = s->peak_memory + s->size * i; s 293 libavfilter/vf_vectorscope.c static void envelope_instant16(VectorscopeContext *s, AVFrame *out) s 296 libavfilter/vf_vectorscope.c uint16_t *dpd = s->mode == COLOR || !s->is_yuv ? (uint16_t *)out->data[s->pd] : (uint16_t *)out->data[0]; s 297 libavfilter/vf_vectorscope.c const int max = s->size - 1; s 314 libavfilter/vf_vectorscope.c static void envelope_peak16(VectorscopeContext *s, AVFrame *out) s 317 libavfilter/vf_vectorscope.c uint16_t *dpd = s->mode == COLOR || !s->is_yuv ? (uint16_t *)out->data[s->pd] : (uint16_t *)out->data[0]; s 318 libavfilter/vf_vectorscope.c const int max = s->size - 1; s 326 libavfilter/vf_vectorscope.c s->peak[i][j] = 1; s 330 libavfilter/vf_vectorscope.c if (s->envelope == 3) s 331 libavfilter/vf_vectorscope.c envelope_instant16(s, out); s 337 libavfilter/vf_vectorscope.c if (s->peak[i][j] && (((!j || !s->peak[i][j-1]) || ((j == (out->width - 1)) || !s->peak[i][j + 1])) s 338 libavfilter/vf_vectorscope.c || ((!i || !s->peak[i-1][j]) || ((i == (out->height - 1)) || !s->peak[i + 1][j])))) { s 345 libavfilter/vf_vectorscope.c static void envelope_instant(VectorscopeContext *s, AVFrame *out) s 348 libavfilter/vf_vectorscope.c uint8_t *dpd = s->mode == COLOR || !s->is_yuv ? out->data[s->pd] : out->data[0]; s 365 libavfilter/vf_vectorscope.c static void envelope_peak(VectorscopeContext *s, AVFrame *out) s 368 libavfilter/vf_vectorscope.c uint8_t *dpd = s->mode == COLOR || !s->is_yuv ? out->data[s->pd] : out->data[0]; s 376 libavfilter/vf_vectorscope.c s->peak[i][j] = 1; s 380 libavfilter/vf_vectorscope.c if (s->envelope == 3) s 381 libavfilter/vf_vectorscope.c envelope_instant(s, out); s 387 libavfilter/vf_vectorscope.c if (s->peak[i][j] && (((!j || !s->peak[i][j-1]) || ((j == (out->width - 1)) || !s->peak[i][j + 1])) s 388 libavfilter/vf_vectorscope.c || ((!i || !s->peak[i-1][j]) || ((i == (out->height - 1)) || !s->peak[i + 1][j])))) { s 395 libavfilter/vf_vectorscope.c static void envelope16(VectorscopeContext *s, AVFrame *out) s 397 libavfilter/vf_vectorscope.c if (!s->envelope) { s 399 libavfilter/vf_vectorscope.c } else if (s->envelope == 1) { s 400 libavfilter/vf_vectorscope.c envelope_instant16(s, out); s 402 libavfilter/vf_vectorscope.c envelope_peak16(s, out); s 406 libavfilter/vf_vectorscope.c static void envelope(VectorscopeContext *s, AVFrame *out) s 408 libavfilter/vf_vectorscope.c if (!s->envelope) { s 410 libavfilter/vf_vectorscope.c } else if (s->envelope == 1) { s 411 libavfilter/vf_vectorscope.c envelope_instant(s, out); s 413 libavfilter/vf_vectorscope.c envelope_peak(s, out); s 417 libavfilter/vf_vectorscope.c static void vectorscope16(VectorscopeContext *s, AVFrame *in, AVFrame *out, int pd) s 420 libavfilter/vf_vectorscope.c const int slinesizex = in->linesize[s->x] / 2; s 421 libavfilter/vf_vectorscope.c const int slinesizey = in->linesize[s->y] / 2; s 424 libavfilter/vf_vectorscope.c const int intensity = s->intensity; s 425 libavfilter/vf_vectorscope.c const int px = s->x, py = s->y; s 426 libavfilter/vf_vectorscope.c const int h = s->planeheight[py]; s 427 libavfilter/vf_vectorscope.c const int w = s->planewidth[px]; s 431 libavfilter/vf_vectorscope.c const int hsub = s->hsub; s 432 libavfilter/vf_vectorscope.c const int vsub = s->vsub; s 439 libavfilter/vf_vectorscope.c const int max = s->size - 1; s 440 libavfilter/vf_vectorscope.c const int mid = s->size / 2; s 441 libavfilter/vf_vectorscope.c const int tmin = s->tmin; s 442 libavfilter/vf_vectorscope.c const int tmax = s->tmax; s 449 libavfilter/vf_vectorscope.c (s->mode == COLOR || s->mode == COLOR5) && k == s->pd ? 0 : s->bg_color[k]); s 452 libavfilter/vf_vectorscope.c switch (s->mode) { s 474 libavfilter/vf_vectorscope.c if (s->is_yuv) { s 560 libavfilter/vf_vectorscope.c envelope16(s, out); s 573 libavfilter/vf_vectorscope.c if (s->mode == TINT && s->is_yuv && s 574 libavfilter/vf_vectorscope.c (s->tint[0] != mid || s->tint[1] != mid)) { s 579 libavfilter/vf_vectorscope.c dp1[pos] = s->tint[0]; s 580 libavfilter/vf_vectorscope.c dp2[pos] = s->tint[1]; s 584 libavfilter/vf_vectorscope.c } else if (s->mode == TINT && !s->is_yuv) { s 589 libavfilter/vf_vectorscope.c dpx[pos] = av_clip(dpd[pos] + dpd[pos] * s->ftint[0], 0, max); s 590 libavfilter/vf_vectorscope.c dpy[pos] = av_clip(dpd[pos] + dpd[pos] * s->ftint[1], 0, max); s 594 libavfilter/vf_vectorscope.c } else if (s->mode == COLOR) { s 604 libavfilter/vf_vectorscope.c } else if (s->mode == COLOR5) { s 617 libavfilter/vf_vectorscope.c static void vectorscope8(VectorscopeContext *s, AVFrame *in, AVFrame *out, int pd) s 620 libavfilter/vf_vectorscope.c const int slinesizex = in->linesize[s->x]; s 621 libavfilter/vf_vectorscope.c const int slinesizey = in->linesize[s->y]; s 624 libavfilter/vf_vectorscope.c const int intensity = s->intensity; s 625 libavfilter/vf_vectorscope.c const int px = s->x, py = s->y; s 626 libavfilter/vf_vectorscope.c const int h = s->planeheight[py]; s 627 libavfilter/vf_vectorscope.c const int w = s->planewidth[px]; s 631 libavfilter/vf_vectorscope.c const int hsub = s->hsub; s 632 libavfilter/vf_vectorscope.c const int vsub = s->vsub; s 639 libavfilter/vf_vectorscope.c const int tmin = s->tmin; s 640 libavfilter/vf_vectorscope.c const int tmax = s->tmax; s 646 libavfilter/vf_vectorscope.c (s->mode == COLOR || s->mode == COLOR5) && k == s->pd ? 0 : s->bg_color[k], out->width); s 648 libavfilter/vf_vectorscope.c switch (s->mode) { s 670 libavfilter/vf_vectorscope.c if (s->is_yuv) { s 756 libavfilter/vf_vectorscope.c envelope(s, out); s 769 libavfilter/vf_vectorscope.c if (s->mode == TINT && s->is_yuv && s 770 libavfilter/vf_vectorscope.c (s->tint[0] != 128 || s->tint[1] != 128)) { s 775 libavfilter/vf_vectorscope.c dp1[pos] = s->tint[0]; s 776 libavfilter/vf_vectorscope.c dp2[pos] = s->tint[1]; s 780 libavfilter/vf_vectorscope.c } else if (s->mode == TINT && !s->is_yuv) { s 785 libavfilter/vf_vectorscope.c dpx[pos] = av_clip_uint8(dpd[pos] + dpd[pos] * s->ftint[0]); s 786 libavfilter/vf_vectorscope.c dpy[pos] = av_clip_uint8(dpd[pos] + dpd[pos] * s->ftint[1]); s 790 libavfilter/vf_vectorscope.c } else if (s->mode == COLOR) { s 800 libavfilter/vf_vectorscope.c } else if (s->mode == COLOR5) { s 961 libavfilter/vf_vectorscope.c static void none_graticule(VectorscopeContext *s, AVFrame *out, int X, int Y, int D, int P) s 1068 libavfilter/vf_vectorscope.c static void color_graticule16(VectorscopeContext *s, AVFrame *out, int X, int Y, int D, int P) s 1070 libavfilter/vf_vectorscope.c const int max = s->size - 1; s 1071 libavfilter/vf_vectorscope.c const float o = s->opacity; s 1086 libavfilter/vf_vectorscope.c if (s->flags & 1) { s 1098 libavfilter/vf_vectorscope.c if (s->flags & 2) { s 1110 libavfilter/vf_vectorscope.c for (i = 0; i < 6 && s->flags & 4; i++) { s 1136 libavfilter/vf_vectorscope.c static void color_graticule(VectorscopeContext *s, AVFrame *out, int X, int Y, int D, int P) s 1138 libavfilter/vf_vectorscope.c const float o = s->opacity; s 1153 libavfilter/vf_vectorscope.c if (s->flags & 1) { s 1165 libavfilter/vf_vectorscope.c if (s->flags & 2) { s 1177 libavfilter/vf_vectorscope.c for (i = 0; i < 6 && s->flags & 4; i++) { s 1202 libavfilter/vf_vectorscope.c static void green_graticule16(VectorscopeContext *s, AVFrame *out, int X, int Y, int D, int P) s 1204 libavfilter/vf_vectorscope.c const int max = s->size - 1; s 1205 libavfilter/vf_vectorscope.c const float o = s->opacity; s 1206 libavfilter/vf_vectorscope.c const int m = s->mult; s 1220 libavfilter/vf_vectorscope.c if (s->flags & 1) { s 1231 libavfilter/vf_vectorscope.c if (s->flags & 2) { s 1242 libavfilter/vf_vectorscope.c for (i = 0; i < 6 && s->flags & 4; i++) { s 1262 libavfilter/vf_vectorscope.c static void green_graticule(VectorscopeContext *s, AVFrame *out, int X, int Y, int D, int P) s 1264 libavfilter/vf_vectorscope.c const float o = s->opacity; s 1278 libavfilter/vf_vectorscope.c if (s->flags & 1) { s 1289 libavfilter/vf_vectorscope.c if (s->flags & 2) { s 1300 libavfilter/vf_vectorscope.c for (i = 0; i < 6 && s->flags & 4; i++) { s 1320 libavfilter/vf_vectorscope.c static void invert_graticule16(VectorscopeContext *s, AVFrame *out, int X, int Y, int D, int P) s 1322 libavfilter/vf_vectorscope.c const int max = s->size - 1; s 1323 libavfilter/vf_vectorscope.c const float o = s->opacity; s 1337 libavfilter/vf_vectorscope.c if (s->flags & 1) { s 1348 libavfilter/vf_vectorscope.c if (s->flags & 2) { s 1359 libavfilter/vf_vectorscope.c for (i = 0; i < 6 && s->flags & 4; i++) { s 1379 libavfilter/vf_vectorscope.c static void invert_graticule(VectorscopeContext *s, AVFrame *out, int X, int Y, int D, int P) s 1381 libavfilter/vf_vectorscope.c const float o = s->opacity; s 1395 libavfilter/vf_vectorscope.c if (s->flags & 1) { s 1406 libavfilter/vf_vectorscope.c if (s->flags & 2) { s 1417 libavfilter/vf_vectorscope.c for (i = 0; i < 6 && s->flags & 4; i++) { s 1440 libavfilter/vf_vectorscope.c VectorscopeContext *s = ctx->priv; s 1445 libavfilter/vf_vectorscope.c if (s->colorspace) { s 1446 libavfilter/vf_vectorscope.c s->cs = (s->depth - 8) * 2 + s->colorspace - 1; s 1451 libavfilter/vf_vectorscope.c s->cs = (s->depth - 8) * 2 + 0; s 1455 libavfilter/vf_vectorscope.c s->cs = (s->depth - 8) * 2 + 1; s 1466 libavfilter/vf_vectorscope.c s->vectorscope(s, in, out, s->pd); s 1467 libavfilter/vf_vectorscope.c s->graticulef(s, out, s->x, s->y, s->pd, s->cs); s 1471 libavfilter/vf_vectorscope.c out->data[plane] += (s->size - 1) * out->linesize[plane]; s 1484 libavfilter/vf_vectorscope.c VectorscopeContext *s = ctx->priv; s 1486 libavfilter/vf_vectorscope.c s->is_yuv = !(desc->flags & AV_PIX_FMT_FLAG_RGB); s 1487 libavfilter/vf_vectorscope.c s->size = 1 << desc->comp[0].depth; s 1488 libavfilter/vf_vectorscope.c s->mult = s->size / 256; s 1489 libavfilter/vf_vectorscope.c s->depth = desc->comp[0].depth; s 1490 libavfilter/vf_vectorscope.c s->tmin = s->lthreshold * (s->size - 1); s 1491 libavfilter/vf_vectorscope.c s->tmax = s->hthreshold * (s->size - 1); s 1493 libavfilter/vf_vectorscope.c if (s->tmin > s->tmax) { s 1498 libavfilter/vf_vectorscope.c if (s->mode == TINT && s->is_yuv) { s 1499 libavfilter/vf_vectorscope.c s->pd = 0; s 1501 libavfilter/vf_vectorscope.c if ((s->x == 1 && s->y == 2) || (s->x == 2 && s->y == 1)) s 1502 libavfilter/vf_vectorscope.c s->pd = 0; s 1503 libavfilter/vf_vectorscope.c else if ((s->x == 0 && s->y == 2) || (s->x == 2 && s->y == 0)) s 1504 libavfilter/vf_vectorscope.c s->pd = 1; s 1505 libavfilter/vf_vectorscope.c else if ((s->x == 0 && s->y == 1) || (s->x == 1 && s->y == 0)) s 1506 libavfilter/vf_vectorscope.c s->pd = 2; s 1509 libavfilter/vf_vectorscope.c if (s->size == 256) s 1510 libavfilter/vf_vectorscope.c s->vectorscope = vectorscope8; s 1512 libavfilter/vf_vectorscope.c s->vectorscope = vectorscope16; s 1514 libavfilter/vf_vectorscope.c s->graticulef = none_graticule; s 1516 libavfilter/vf_vectorscope.c if (s->is_yuv && s->size == 256) { s 1517 libavfilter/vf_vectorscope.c if (s->graticule == GRAT_GREEN) s 1518 libavfilter/vf_vectorscope.c s->graticulef = green_graticule; s 1519 libavfilter/vf_vectorscope.c else if (s->graticule == GRAT_COLOR) s 1520 libavfilter/vf_vectorscope.c s->graticulef = color_graticule; s 1521 libavfilter/vf_vectorscope.c else if (s->graticule == GRAT_INVERT) s 1522 libavfilter/vf_vectorscope.c s->graticulef = invert_graticule; s 1523 libavfilter/vf_vectorscope.c } else if (s->is_yuv) { s 1524 libavfilter/vf_vectorscope.c if (s->graticule == GRAT_GREEN) s 1525 libavfilter/vf_vectorscope.c s->graticulef = green_graticule16; s 1526 libavfilter/vf_vectorscope.c else if (s->graticule == GRAT_COLOR) s 1527 libavfilter/vf_vectorscope.c s->graticulef = color_graticule16; s 1528 libavfilter/vf_vectorscope.c else if (s->graticule == GRAT_INVERT) s 1529 libavfilter/vf_vectorscope.c s->graticulef = invert_graticule16; s 1532 libavfilter/vf_vectorscope.c s->bg_color[3] = s->bgopacity * (s->size - 1); s 1534 libavfilter/vf_vectorscope.c s->tint[0] = .5f * (s->ftint[0] + 1.f) * (s->size - 1); s 1535 libavfilter/vf_vectorscope.c s->tint[1] = .5f * (s->ftint[1] + 1.f) * (s->size - 1); s 1543 libavfilter/vf_vectorscope.c s->bg_color[0] = 0; s 1544 libavfilter/vf_vectorscope.c s->bg_color[1] = 0; s 1545 libavfilter/vf_vectorscope.c s->bg_color[2] = 0; s 1548 libavfilter/vf_vectorscope.c s->bg_color[0] = 0; s 1549 libavfilter/vf_vectorscope.c s->bg_color[1] = s->size / 2; s 1550 libavfilter/vf_vectorscope.c s->bg_color[2] = s->size / 2; s 1553 libavfilter/vf_vectorscope.c s->hsub = desc->log2_chroma_w; s 1554 libavfilter/vf_vectorscope.c s->vsub = desc->log2_chroma_h; s 1555 libavfilter/vf_vectorscope.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 1556 libavfilter/vf_vectorscope.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 1557 libavfilter/vf_vectorscope.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 1558 libavfilter/vf_vectorscope.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 1565 libavfilter/vf_vectorscope.c VectorscopeContext *s = ctx->priv; s 1567 libavfilter/vf_vectorscope.c av_freep(&s->peak); s 1568 libavfilter/vf_vectorscope.c av_freep(&s->peak_memory); s 41 libavfilter/vf_vfrdet.c VFRDETContext *s = ctx->priv; s 43 libavfilter/vf_vfrdet.c if (s->prev_pts != AV_NOPTS_VALUE) { s 44 libavfilter/vf_vfrdet.c int64_t delta = in->pts - s->prev_pts; s 46 libavfilter/vf_vfrdet.c if (s->delta == AV_NOPTS_VALUE) { s 47 libavfilter/vf_vfrdet.c s->delta = delta; s 48 libavfilter/vf_vfrdet.c s->min_delta = delta; s 49 libavfilter/vf_vfrdet.c s->max_delta = delta; s 52 libavfilter/vf_vfrdet.c if (s->delta != delta) { s 53 libavfilter/vf_vfrdet.c s->vfr++; s 54 libavfilter/vf_vfrdet.c s->delta = delta; s 55 libavfilter/vf_vfrdet.c s->min_delta = FFMIN(delta, s->min_delta); s 56 libavfilter/vf_vfrdet.c s->max_delta = FFMAX(delta, s->max_delta); s 57 libavfilter/vf_vfrdet.c s->avg_delta += delta; s 59 libavfilter/vf_vfrdet.c s->cfr++; s 63 libavfilter/vf_vfrdet.c s->prev_pts = in->pts; s 70 libavfilter/vf_vfrdet.c VFRDETContext *s = ctx->priv; s 72 libavfilter/vf_vfrdet.c s->prev_pts = AV_NOPTS_VALUE; s 73 libavfilter/vf_vfrdet.c s->delta = AV_NOPTS_VALUE; s 74 libavfilter/vf_vfrdet.c s->min_delta = INT64_MAX; s 75 libavfilter/vf_vfrdet.c s->max_delta = INT64_MIN; s 82 libavfilter/vf_vfrdet.c VFRDETContext *s = ctx->priv; s 84 libavfilter/vf_vfrdet.c av_log(ctx, AV_LOG_INFO, "VFR:%f (%"PRIu64"/%"PRIu64")", s->vfr / (float)(s->vfr + s->cfr), s->vfr, s->cfr); s 85 libavfilter/vf_vfrdet.c if (s->vfr) s 86 libavfilter/vf_vfrdet.c av_log(ctx, AV_LOG_INFO, " min: %"PRId64" max: %"PRId64" avg: %"PRId64, s->min_delta, s->max_delta, s->avg_delta / s->vfr); s 38 libavfilter/vf_vibrance.c int (*do_slice)(AVFilterContext *s, void *arg, s 49 libavfilter/vf_vibrance.c VibranceContext *s = avctx->priv; s 54 libavfilter/vf_vibrance.c const float gc = s->lcoeffs[0]; s 55 libavfilter/vf_vibrance.c const float bc = s->lcoeffs[1]; s 56 libavfilter/vf_vibrance.c const float rc = s->lcoeffs[2]; s 57 libavfilter/vf_vibrance.c const float intensity = s->intensity; s 58 libavfilter/vf_vibrance.c const float alternate = s->alternate ? 1.f : -1.f; s 59 libavfilter/vf_vibrance.c const float gintensity = intensity * s->balance[0]; s 60 libavfilter/vf_vibrance.c const float bintensity = intensity * s->balance[1]; s 61 libavfilter/vf_vibrance.c const float rintensity = intensity * s->balance[2]; s 106 libavfilter/vf_vibrance.c VibranceContext *s = avctx->priv; s 108 libavfilter/vf_vibrance.c const int depth = s->depth; s 111 libavfilter/vf_vibrance.c const float gc = s->lcoeffs[0]; s 112 libavfilter/vf_vibrance.c const float bc = s->lcoeffs[1]; s 113 libavfilter/vf_vibrance.c const float rc = s->lcoeffs[2]; s 116 libavfilter/vf_vibrance.c const float intensity = s->intensity; s 117 libavfilter/vf_vibrance.c const float alternate = s->alternate ? 1.f : -1.f; s 118 libavfilter/vf_vibrance.c const float gintensity = intensity * s->balance[0]; s 119 libavfilter/vf_vibrance.c const float bintensity = intensity * s->balance[1]; s 120 libavfilter/vf_vibrance.c const float rintensity = intensity * s->balance[2]; s 166 libavfilter/vf_vibrance.c VibranceContext *s = avctx->priv; s 169 libavfilter/vf_vibrance.c if (res = avctx->internal->execute(avctx, s->do_slice, frame, NULL, s 198 libavfilter/vf_vibrance.c VibranceContext *s = avctx->priv; s 201 libavfilter/vf_vibrance.c s->depth = desc->comp[0].depth; s 202 libavfilter/vf_vibrance.c s->do_slice = s->depth <= 8 ? vibrance_slice8 : vibrance_slice16; s 65 libavfilter/vf_vidstabdetect.c StabData *s = ctx->priv; s 67 libavfilter/vf_vidstabdetect.c s->class = &vidstabdetect_class; s 74 libavfilter/vf_vidstabdetect.c StabData *s = ctx->priv; s 75 libavfilter/vf_vidstabdetect.c VSMotionDetect *md = &(s->md); s 77 libavfilter/vf_vidstabdetect.c if (s->f) { s 78 libavfilter/vf_vidstabdetect.c fclose(s->f); s 79 libavfilter/vf_vidstabdetect.c s->f = NULL; s 105 libavfilter/vf_vidstabdetect.c StabData *s = ctx->priv; s 107 libavfilter/vf_vidstabdetect.c VSMotionDetect* md = &(s->md); s 129 libavfilter/vf_vidstabdetect.c s->conf.algo = 1; s 130 libavfilter/vf_vidstabdetect.c s->conf.modName = "vidstabdetect"; s 131 libavfilter/vf_vidstabdetect.c if (vsMotionDetectInit(md, &s->conf, &fi) != VS_OK) { s 136 libavfilter/vf_vidstabdetect.c vsMotionDetectGetConfig(&s->conf, md); s 138 libavfilter/vf_vidstabdetect.c av_log(ctx, AV_LOG_INFO, " shakiness = %d\n", s->conf.shakiness); s 139 libavfilter/vf_vidstabdetect.c av_log(ctx, AV_LOG_INFO, " accuracy = %d\n", s->conf.accuracy); s 140 libavfilter/vf_vidstabdetect.c av_log(ctx, AV_LOG_INFO, " stepsize = %d\n", s->conf.stepSize); s 141 libavfilter/vf_vidstabdetect.c av_log(ctx, AV_LOG_INFO, " mincontrast = %f\n", s->conf.contrastThreshold); s 142 libavfilter/vf_vidstabdetect.c av_log(ctx, AV_LOG_INFO, " tripod = %d\n", s->conf.virtualTripod); s 143 libavfilter/vf_vidstabdetect.c av_log(ctx, AV_LOG_INFO, " show = %d\n", s->conf.show); s 144 libavfilter/vf_vidstabdetect.c av_log(ctx, AV_LOG_INFO, " result = %s\n", s->result); s 146 libavfilter/vf_vidstabdetect.c s->f = fopen(s->result, "w"); s 147 libavfilter/vf_vidstabdetect.c if (s->f == NULL) { s 148 libavfilter/vf_vidstabdetect.c av_log(ctx, AV_LOG_ERROR, "cannot open transform file %s\n", s->result); s 151 libavfilter/vf_vidstabdetect.c if (vsPrepareFile(md, s->f) != VS_OK) { s 152 libavfilter/vf_vidstabdetect.c av_log(ctx, AV_LOG_ERROR, "cannot write to transform file %s\n", s->result); s 162 libavfilter/vf_vidstabdetect.c StabData *s = ctx->priv; s 163 libavfilter/vf_vidstabdetect.c VSMotionDetect *md = &(s->md); s 170 libavfilter/vf_vidstabdetect.c if (s->conf.show > 0 && !av_frame_is_writable(in)) s 181 libavfilter/vf_vidstabdetect.c if (vsWriteToFile(md, s->f, &localmotions) != VS_OK) { s 102 libavfilter/vf_vignette.c VignetteContext *s = ctx->priv; s 105 libavfilter/vf_vignette.c int ret = av_expr_parse(&s->name##_pexpr, s->name##_expr, var_names, \ s 122 libavfilter/vf_vignette.c VignetteContext *s = ctx->priv; s 123 libavfilter/vf_vignette.c av_freep(&s->fmap); s 124 libavfilter/vf_vignette.c av_expr_free(s->angle_pexpr); s 125 libavfilter/vf_vignette.c av_expr_free(s->x0_pexpr); s 126 libavfilter/vf_vignette.c av_expr_free(s->y0_pexpr); s 145 libavfilter/vf_vignette.c static double get_natural_factor(const VignetteContext *s, int x, int y) s 147 libavfilter/vf_vignette.c const int xx = (x - s->x0) * s->xscale; s 148 libavfilter/vf_vignette.c const int yy = (y - s->y0) * s->yscale; s 149 libavfilter/vf_vignette.c const double dnorm = hypot(xx, yy) / s->dmax; s 153 libavfilter/vf_vignette.c const double c = cos(s->angle * dnorm); s 161 libavfilter/vf_vignette.c static void update_context(VignetteContext *s, AVFilterLink *inlink, AVFrame *frame) s 164 libavfilter/vf_vignette.c float *dst = s->fmap; s 165 libavfilter/vf_vignette.c int dst_linesize = s->fmap_linesize; s 168 libavfilter/vf_vignette.c s->var_values[VAR_N] = inlink->frame_count_out; s 169 libavfilter/vf_vignette.c s->var_values[VAR_T] = TS2T(frame->pts, inlink->time_base); s 170 libavfilter/vf_vignette.c s->var_values[VAR_PTS] = TS2D(frame->pts); s 172 libavfilter/vf_vignette.c s->var_values[VAR_N] = NAN; s 173 libavfilter/vf_vignette.c s->var_values[VAR_T] = NAN; s 174 libavfilter/vf_vignette.c s->var_values[VAR_PTS] = NAN; s 177 libavfilter/vf_vignette.c s->angle = av_expr_eval(s->angle_pexpr, s->var_values, NULL); s 178 libavfilter/vf_vignette.c s->x0 = av_expr_eval(s->x0_pexpr, s->var_values, NULL); s 179 libavfilter/vf_vignette.c s->y0 = av_expr_eval(s->y0_pexpr, s->var_values, NULL); s 181 libavfilter/vf_vignette.c if (isnan(s->x0) || isnan(s->y0) || isnan(s->angle)) s 182 libavfilter/vf_vignette.c s->eval_mode = EVAL_MODE_FRAME; s 184 libavfilter/vf_vignette.c s->angle = av_clipf(s->angle, 0, M_PI_2); s 186 libavfilter/vf_vignette.c if (s->backward) { s 189 libavfilter/vf_vignette.c dst[x] = 1. / get_natural_factor(s, x, y); s 195 libavfilter/vf_vignette.c dst[x] = get_natural_factor(s, x, y); s 201 libavfilter/vf_vignette.c static inline double get_dither_value(VignetteContext *s) s 204 libavfilter/vf_vignette.c if (s->do_dither) { s 205 libavfilter/vf_vignette.c dv = s->dither / (double)(1LL<<32); s 206 libavfilter/vf_vignette.c s->dither = s->dither * 1664525 + 1013904223; s 215 libavfilter/vf_vignette.c VignetteContext *s = ctx->priv; s 231 libavfilter/vf_vignette.c if (s->eval_mode == EVAL_MODE_FRAME) s 232 libavfilter/vf_vignette.c update_context(s, inlink, in); s 234 libavfilter/vf_vignette.c if (s->desc->flags & AV_PIX_FMT_FLAG_RGB) { s 237 libavfilter/vf_vignette.c const float *fmap = s->fmap; s 240 libavfilter/vf_vignette.c const int fmap_linesize = s->fmap_linesize; s 249 libavfilter/vf_vignette.c dstp[0] = av_clip_uint8(srcp[0] * f + get_dither_value(s)); s 250 libavfilter/vf_vignette.c dstp[1] = av_clip_uint8(srcp[1] * f + get_dither_value(s)); s 251 libavfilter/vf_vignette.c dstp[2] = av_clip_uint8(srcp[2] * f + get_dither_value(s)); s 263 libavfilter/vf_vignette.c const float *fmap = s->fmap; s 266 libavfilter/vf_vignette.c const int fmap_linesize = s->fmap_linesize; s 268 libavfilter/vf_vignette.c const int hsub = chroma ? s->desc->log2_chroma_w : 0; s 269 libavfilter/vf_vignette.c const int vsub = chroma ? s->desc->log2_chroma_h : 0; s 278 libavfilter/vf_vignette.c const double dv = get_dither_value(s); s 296 libavfilter/vf_vignette.c VignetteContext *s = inlink->dst->priv; s 299 libavfilter/vf_vignette.c s->desc = av_pix_fmt_desc_get(inlink->format); s 300 libavfilter/vf_vignette.c s->var_values[VAR_W] = inlink->w; s 301 libavfilter/vf_vignette.c s->var_values[VAR_H] = inlink->h; s 302 libavfilter/vf_vignette.c s->var_values[VAR_TB] = av_q2d(inlink->time_base); s 303 libavfilter/vf_vignette.c s->var_values[VAR_R] = inlink->frame_rate.num == 0 || inlink->frame_rate.den == 0 ? s 309 libavfilter/vf_vignette.c s->xscale = av_q2d(av_div_q(sar, s->aspect)); s 310 libavfilter/vf_vignette.c s->yscale = 1; s 312 libavfilter/vf_vignette.c s->yscale = av_q2d(av_div_q(s->aspect, sar)); s 313 libavfilter/vf_vignette.c s->xscale = 1; s 315 libavfilter/vf_vignette.c s->dmax = hypot(inlink->w / 2., inlink->h / 2.); s 316 libavfilter/vf_vignette.c av_log(s, AV_LOG_DEBUG, "xscale=%f yscale=%f dmax=%f\n", s 317 libavfilter/vf_vignette.c s->xscale, s->yscale, s->dmax); s 319 libavfilter/vf_vignette.c s->fmap_linesize = FFALIGN(inlink->w, 32); s 320 libavfilter/vf_vignette.c s->fmap = av_malloc_array(s->fmap_linesize, inlink->h * sizeof(*s->fmap)); s 321 libavfilter/vf_vignette.c if (!s->fmap) s 324 libavfilter/vf_vignette.c if (s->eval_mode == EVAL_MODE_INIT) s 325 libavfilter/vf_vignette.c update_context(s, inlink, NULL); s 188 libavfilter/vf_vmafmotion.c double ff_vmafmotion_process(VMAFMotionData *s, AVFrame *ref) s 192 libavfilter/vf_vmafmotion.c s->vmafdsp.convolution_y(s->filter, 5, ref->data[0], s->temp_data, s 193 libavfilter/vf_vmafmotion.c s->width, s->height, ref->linesize[0], s->stride); s 194 libavfilter/vf_vmafmotion.c s->vmafdsp.convolution_x(s->filter, 5, s->temp_data, s->blur_data[0], s 195 libavfilter/vf_vmafmotion.c s->width, s->height, s->stride, s->stride); s 197 libavfilter/vf_vmafmotion.c if (!s->nb_frames) { s 200 libavfilter/vf_vmafmotion.c uint64_t sad = s->vmafdsp.sad(s->blur_data[1], s->blur_data[0], s 201 libavfilter/vf_vmafmotion.c s->width, s->height, s->stride, s->stride); s 203 libavfilter/vf_vmafmotion.c score = (double) (sad * 1.0 / (s->width * s->height << (BIT_SHIFT - 8))); s 206 libavfilter/vf_vmafmotion.c FFSWAP(uint16_t *, s->blur_data[0], s->blur_data[1]); s 207 libavfilter/vf_vmafmotion.c s->nb_frames++; s 208 libavfilter/vf_vmafmotion.c s->motion_sum += score; s 222 libavfilter/vf_vmafmotion.c VMAFMotionContext *s = ctx->priv; s 225 libavfilter/vf_vmafmotion.c score = ff_vmafmotion_process(&s->data, ref); s 227 libavfilter/vf_vmafmotion.c if (s->stats_file) { s 228 libavfilter/vf_vmafmotion.c fprintf(s->stats_file, s 229 libavfilter/vf_vmafmotion.c "n:%"PRId64" motion:%0.2lf\n", s->data.nb_frames, score); s 234 libavfilter/vf_vmafmotion.c int ff_vmafmotion_init(VMAFMotionData *s, s 241 libavfilter/vf_vmafmotion.c s->width = w; s 242 libavfilter/vf_vmafmotion.c s->height = h; s 243 libavfilter/vf_vmafmotion.c s->stride = FFALIGN(w * sizeof(uint16_t), 32); s 245 libavfilter/vf_vmafmotion.c data_sz = (size_t) s->stride * h; s 246 libavfilter/vf_vmafmotion.c if (!(s->blur_data[0] = av_malloc(data_sz)) || s 247 libavfilter/vf_vmafmotion.c !(s->blur_data[1] = av_malloc(data_sz)) || s 248 libavfilter/vf_vmafmotion.c !(s->temp_data = av_malloc(data_sz))) { s 253 libavfilter/vf_vmafmotion.c s->filter[i] = lrint(FILTER_5[i] * (1 << BIT_SHIFT)); s 256 libavfilter/vf_vmafmotion.c vmafmotiondsp_init(&s->vmafdsp, desc->comp[0].depth); s 282 libavfilter/vf_vmafmotion.c VMAFMotionContext *s = ctx->priv; s 284 libavfilter/vf_vmafmotion.c return ff_vmafmotion_init(&s->data, ctx->inputs[0]->w, s 288 libavfilter/vf_vmafmotion.c double ff_vmafmotion_uninit(VMAFMotionData *s) s 290 libavfilter/vf_vmafmotion.c av_free(s->blur_data[0]); s 291 libavfilter/vf_vmafmotion.c av_free(s->blur_data[1]); s 292 libavfilter/vf_vmafmotion.c av_free(s->temp_data); s 294 libavfilter/vf_vmafmotion.c return s->nb_frames > 0 ? s->motion_sum / s->nb_frames : 0.0; s 306 libavfilter/vf_vmafmotion.c VMAFMotionContext *s = ctx->priv; s 308 libavfilter/vf_vmafmotion.c if (s->stats_file_str) { s 309 libavfilter/vf_vmafmotion.c if (!strcmp(s->stats_file_str, "-")) { s 310 libavfilter/vf_vmafmotion.c s->stats_file = stdout; s 312 libavfilter/vf_vmafmotion.c s->stats_file = fopen(s->stats_file_str, "w"); s 313 libavfilter/vf_vmafmotion.c if (!s->stats_file) { s 318 libavfilter/vf_vmafmotion.c s->stats_file_str, buf); s 329 libavfilter/vf_vmafmotion.c VMAFMotionContext *s = ctx->priv; s 330 libavfilter/vf_vmafmotion.c double avg_motion = ff_vmafmotion_uninit(&s->data); s 332 libavfilter/vf_vmafmotion.c if (s->data.nb_frames > 0) { s 336 libavfilter/vf_vmafmotion.c if (s->stats_file && s->stats_file != stdout) s 337 libavfilter/vf_vmafmotion.c fclose(s->stats_file); s 161 libavfilter/vf_vpp_qsv.c #define PASS_EXPR(e, s) {\ s 162 libavfilter/vf_vpp_qsv.c ret = av_expr_parse(&e, s, var_names, NULL, NULL, NULL, NULL, 0, ctx); \ s 164 libavfilter/vf_vpp_qsv.c av_log(ctx, AV_LOG_ERROR, "Error when passing '%s'.\n", s);\ s 271 libavfilter/vf_w3fdif.c W3FDIFContext *s = ctx->priv; s 275 libavfilter/vf_w3fdif.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 278 libavfilter/vf_w3fdif.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 279 libavfilter/vf_w3fdif.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 286 libavfilter/vf_w3fdif.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 287 libavfilter/vf_w3fdif.c s->nb_threads = ff_filter_get_nb_threads(ctx); s 288 libavfilter/vf_w3fdif.c s->work_line = av_calloc(s->nb_threads, sizeof(*s->work_line)); s 289 libavfilter/vf_w3fdif.c if (!s->work_line) s 292 libavfilter/vf_w3fdif.c for (i = 0; i < s->nb_threads; i++) { s 293 libavfilter/vf_w3fdif.c s->work_line[i] = av_calloc(FFALIGN(s->linesize[0], 32), sizeof(*s->work_line[0])); s 294 libavfilter/vf_w3fdif.c if (!s->work_line[i]) s 299 libavfilter/vf_w3fdif.c s->max = ((1 << depth) - 1) * 256 * 128; s 301 libavfilter/vf_w3fdif.c s->dsp.filter_simple_low = filter_simple_low; s 302 libavfilter/vf_w3fdif.c s->dsp.filter_complex_low = filter_complex_low; s 303 libavfilter/vf_w3fdif.c s->dsp.filter_simple_high = filter_simple_high; s 304 libavfilter/vf_w3fdif.c s->dsp.filter_complex_high = filter_complex_high; s 305 libavfilter/vf_w3fdif.c s->dsp.filter_scale = filter_scale; s 307 libavfilter/vf_w3fdif.c s->dsp.filter_simple_low = filter16_simple_low; s 308 libavfilter/vf_w3fdif.c s->dsp.filter_complex_low = filter16_complex_low; s 309 libavfilter/vf_w3fdif.c s->dsp.filter_simple_high = filter16_simple_high; s 310 libavfilter/vf_w3fdif.c s->dsp.filter_complex_high = filter16_complex_high; s 311 libavfilter/vf_w3fdif.c s->dsp.filter_scale = filter16_scale; s 315 libavfilter/vf_w3fdif.c ff_w3fdif_init_x86(&s->dsp, depth); s 354 libavfilter/vf_w3fdif.c W3FDIFContext *s = ctx->priv; s 360 libavfilter/vf_w3fdif.c const int filter = s->filter; s 367 libavfilter/vf_w3fdif.c const int linesize = s->linesize[plane]; s 368 libavfilter/vf_w3fdif.c const int height = s->planeheight[plane]; s 374 libavfilter/vf_w3fdif.c const int max = s->max; s 378 libavfilter/vf_w3fdif.c y_out = start + ((s->field == cur->top_field_first) ^ (start & 1)); s 391 libavfilter/vf_w3fdif.c y_out = start + ((s->field != cur->top_field_first) ^ (start & 1)); s 408 libavfilter/vf_w3fdif.c work_line = s->work_line[jobnr]; s 411 libavfilter/vf_w3fdif.c s->dsp.filter_simple_low(work_line, in_lines_cur, s 415 libavfilter/vf_w3fdif.c s->dsp.filter_complex_low(work_line, in_lines_cur, s 432 libavfilter/vf_w3fdif.c work_line = s->work_line[jobnr]; s 435 libavfilter/vf_w3fdif.c s->dsp.filter_simple_high(work_line, in_lines_cur, in_lines_adj, s 439 libavfilter/vf_w3fdif.c s->dsp.filter_complex_high(work_line, in_lines_cur, in_lines_adj, s 444 libavfilter/vf_w3fdif.c work_pixel = s->work_line[jobnr]; s 447 libavfilter/vf_w3fdif.c s->dsp.filter_scale(out_pixel, work_pixel, linesize, max); s 459 libavfilter/vf_w3fdif.c W3FDIFContext *s = ctx->priv; s 468 libavfilter/vf_w3fdif.c av_frame_copy_props(out, s->cur); s 475 libavfilter/vf_w3fdif.c int64_t cur_pts = s->cur->pts; s 476 libavfilter/vf_w3fdif.c int64_t next_pts = s->next->pts; s 485 libavfilter/vf_w3fdif.c adj = s->field ? s->next : s->prev; s 486 libavfilter/vf_w3fdif.c td.out = out; td.cur = s->cur; td.adj = adj; s 487 libavfilter/vf_w3fdif.c for (plane = 0; plane < s->nb_planes; plane++) { s 489 libavfilter/vf_w3fdif.c ctx->internal->execute(ctx, deinterlace_slice, &td, NULL, FFMIN(s->planeheight[plane], s->nb_threads)); s 492 libavfilter/vf_w3fdif.c s->field = !s->field; s 500 libavfilter/vf_w3fdif.c W3FDIFContext *s = ctx->priv; s 503 libavfilter/vf_w3fdif.c av_frame_free(&s->prev); s 504 libavfilter/vf_w3fdif.c s->prev = s->cur; s 505 libavfilter/vf_w3fdif.c s->cur = s->next; s 506 libavfilter/vf_w3fdif.c s->next = frame; s 508 libavfilter/vf_w3fdif.c if (!s->cur) { s 509 libavfilter/vf_w3fdif.c s->cur = av_frame_clone(s->next); s 510 libavfilter/vf_w3fdif.c if (!s->cur) s 514 libavfilter/vf_w3fdif.c if ((s->deint && !s->cur->interlaced_frame) || ctx->is_disabled) { s 515 libavfilter/vf_w3fdif.c AVFrame *out = av_frame_clone(s->cur); s 519 libavfilter/vf_w3fdif.c av_frame_free(&s->prev); s 525 libavfilter/vf_w3fdif.c if (!s->prev) s 538 libavfilter/vf_w3fdif.c W3FDIFContext *s = ctx->priv; s 541 libavfilter/vf_w3fdif.c if (s->eof) s 546 libavfilter/vf_w3fdif.c if (ret == AVERROR_EOF && s->cur) { s 547 libavfilter/vf_w3fdif.c AVFrame *next = av_frame_clone(s->next); s 550 libavfilter/vf_w3fdif.c next->pts = s->next->pts * 2 - s->cur->pts; s 552 libavfilter/vf_w3fdif.c s->eof = 1; s 562 libavfilter/vf_w3fdif.c W3FDIFContext *s = ctx->priv; s 565 libavfilter/vf_w3fdif.c av_frame_free(&s->prev); s 566 libavfilter/vf_w3fdif.c av_frame_free(&s->cur ); s 567 libavfilter/vf_w3fdif.c av_frame_free(&s->next); s 569 libavfilter/vf_w3fdif.c for (i = 0; i < s->nb_threads; i++) s 570 libavfilter/vf_w3fdif.c av_freep(&s->work_line[i]); s 572 libavfilter/vf_w3fdif.c av_freep(&s->work_line); s 120 libavfilter/vf_waveform.c void (*graticulef)(struct WaveformContext *s, AVFrame *out); s 315 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; s 327 libavfilter/vf_waveform.c switch (s->filter) { s 362 libavfilter/vf_waveform.c if (s->filter == LOWPASS && ncomp == 1 && depth == 8) s 364 libavfilter/vf_waveform.c else if (s->filter == LOWPASS && ncomp == 1 && depth == 9) s 366 libavfilter/vf_waveform.c else if (s->filter == LOWPASS && ncomp == 1 && depth == 10) s 368 libavfilter/vf_waveform.c else if (s->filter == LOWPASS && ncomp == 1 && depth == 12) s 394 libavfilter/vf_waveform.c static void envelope_instant16(WaveformContext *s, AVFrame *out, int plane, int component, int offset) s 397 libavfilter/vf_waveform.c const int bg = s->bg_color[component] * (s->max / 256); s 398 libavfilter/vf_waveform.c const int limit = s->max - 1; s 399 libavfilter/vf_waveform.c const int dst_h = s->display == PARADE ? out->height / s->acomp : out->height; s 400 libavfilter/vf_waveform.c const int dst_w = s->display == PARADE ? out->width / s->acomp : out->width; s 401 libavfilter/vf_waveform.c const int start = s->estart[plane]; s 402 libavfilter/vf_waveform.c const int end = s->eend[plane]; s 406 libavfilter/vf_waveform.c if (s->mode) { s 442 libavfilter/vf_waveform.c static void envelope_instant(WaveformContext *s, AVFrame *out, int plane, int component, int offset) s 445 libavfilter/vf_waveform.c const uint8_t bg = s->bg_color[component]; s 446 libavfilter/vf_waveform.c const int dst_h = s->display == PARADE ? out->height / s->acomp : out->height; s 447 libavfilter/vf_waveform.c const int dst_w = s->display == PARADE ? out->width / s->acomp : out->width; s 448 libavfilter/vf_waveform.c const int start = s->estart[plane]; s 449 libavfilter/vf_waveform.c const int end = s->eend[plane]; s 453 libavfilter/vf_waveform.c if (s->mode) { s 489 libavfilter/vf_waveform.c static void envelope_peak16(WaveformContext *s, AVFrame *out, int plane, int component, int offset) s 492 libavfilter/vf_waveform.c const int bg = s->bg_color[component] * (s->max / 256); s 493 libavfilter/vf_waveform.c const int limit = s->max - 1; s 494 libavfilter/vf_waveform.c const int dst_h = s->display == PARADE ? out->height / s->acomp : out->height; s 495 libavfilter/vf_waveform.c const int dst_w = s->display == PARADE ? out->width / s->acomp : out->width; s 496 libavfilter/vf_waveform.c const int start = s->estart[plane]; s 497 libavfilter/vf_waveform.c const int end = s->eend[plane]; s 498 libavfilter/vf_waveform.c int *emax = s->emax[plane][component]; s 499 libavfilter/vf_waveform.c int *emin = s->emin[plane][component]; s 503 libavfilter/vf_waveform.c if (s->mode) { s 521 libavfilter/vf_waveform.c if (s->envelope == 3) s 522 libavfilter/vf_waveform.c envelope_instant16(s, out, plane, component, offset); s 547 libavfilter/vf_waveform.c if (s->envelope == 3) s 548 libavfilter/vf_waveform.c envelope_instant16(s, out, plane, component, offset); s 559 libavfilter/vf_waveform.c static void envelope_peak(WaveformContext *s, AVFrame *out, int plane, int component, int offset) s 562 libavfilter/vf_waveform.c const int bg = s->bg_color[component]; s 563 libavfilter/vf_waveform.c const int dst_h = s->display == PARADE ? out->height / s->acomp : out->height; s 564 libavfilter/vf_waveform.c const int dst_w = s->display == PARADE ? out->width / s->acomp : out->width; s 565 libavfilter/vf_waveform.c const int start = s->estart[plane]; s 566 libavfilter/vf_waveform.c const int end = s->eend[plane]; s 567 libavfilter/vf_waveform.c int *emax = s->emax[plane][component]; s 568 libavfilter/vf_waveform.c int *emin = s->emin[plane][component]; s 572 libavfilter/vf_waveform.c if (s->mode) { s 590 libavfilter/vf_waveform.c if (s->envelope == 3) s 591 libavfilter/vf_waveform.c envelope_instant(s, out, plane, component, offset); s 616 libavfilter/vf_waveform.c if (s->envelope == 3) s 617 libavfilter/vf_waveform.c envelope_instant(s, out, plane, component, offset); s 628 libavfilter/vf_waveform.c static void envelope16(WaveformContext *s, AVFrame *out, int plane, int component, int offset) s 630 libavfilter/vf_waveform.c if (s->envelope == 0) { s 632 libavfilter/vf_waveform.c } else if (s->envelope == 1) { s 633 libavfilter/vf_waveform.c envelope_instant16(s, out, plane, component, offset); s 635 libavfilter/vf_waveform.c envelope_peak16(s, out, plane, component, offset); s 639 libavfilter/vf_waveform.c static void envelope(WaveformContext *s, AVFrame *out, int plane, int component, int offset) s 641 libavfilter/vf_waveform.c if (s->envelope == 0) { s 643 libavfilter/vf_waveform.c } else if (s->envelope == 1) { s 644 libavfilter/vf_waveform.c envelope_instant(s, out, plane, component, offset); s 646 libavfilter/vf_waveform.c envelope_peak(s, out, plane, component, offset); s 682 libavfilter/vf_waveform.c static av_always_inline void lowpass16(WaveformContext *s, s 689 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 690 libavfilter/vf_waveform.c const int dplane = (s->rgb || s->display == OVERLAY) ? plane : 0; s 691 libavfilter/vf_waveform.c const int shift_w = s->shift_w[component]; s 692 libavfilter/vf_waveform.c const int shift_h = s->shift_h[component]; s 696 libavfilter/vf_waveform.c const int limit = s->max - 1; s 707 libavfilter/vf_waveform.c uint16_t * const dst_bottom_line = dst_data + dst_linesize * (s->size - 1); s 713 libavfilter/vf_waveform.c dst_data += s->size; s 744 libavfilter/vf_waveform.c if (s->display != OVERLAY && column && !s->rgb) { s 745 libavfilter/vf_waveform.c const int mult = s->max / 256; s 746 libavfilter/vf_waveform.c const int bg = s->bg_color[0] * mult; s 747 libavfilter/vf_waveform.c const int t0 = s->tint[0]; s 748 libavfilter/vf_waveform.c const int t1 = s->tint[1]; s 756 libavfilter/vf_waveform.c for (y = 0; y < s->max; y++) { s 768 libavfilter/vf_waveform.c } else if (s->display != OVERLAY && !s->rgb) { s 769 libavfilter/vf_waveform.c const int mult = s->max / 256; s 770 libavfilter/vf_waveform.c const int bg = s->bg_color[0] * mult; s 771 libavfilter/vf_waveform.c const int t0 = s->tint[0]; s 772 libavfilter/vf_waveform.c const int t1 = s->tint[1]; s 781 libavfilter/vf_waveform.c for (x = 0; x < s->max; x++) { s 800 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 808 libavfilter/vf_waveform.c lowpass16(s, in, out, component, s->intensity, \ s 820 libavfilter/vf_waveform.c static av_always_inline void lowpass(WaveformContext *s, s 827 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 828 libavfilter/vf_waveform.c const int dplane = (s->rgb || s->display == OVERLAY) ? plane : 0; s 829 libavfilter/vf_waveform.c const int shift_w = s->shift_w[component]; s 830 libavfilter/vf_waveform.c const int shift_h = s->shift_h[component]; s 844 libavfilter/vf_waveform.c uint8_t * const dst_bottom_line = dst_data + dst_linesize * (s->size - 1); s 850 libavfilter/vf_waveform.c dst_data += s->size; s 881 libavfilter/vf_waveform.c if (s->display != OVERLAY && column && !s->rgb) { s 882 libavfilter/vf_waveform.c const int bg = s->bg_color[0]; s 884 libavfilter/vf_waveform.c const int t0 = s->tint[0]; s 885 libavfilter/vf_waveform.c const int t1 = s->tint[1]; s 905 libavfilter/vf_waveform.c } else if (s->display != OVERLAY && !s->rgb) { s 906 libavfilter/vf_waveform.c const int bg = s->bg_color[0]; s 908 libavfilter/vf_waveform.c const int t0 = s->tint[0]; s 909 libavfilter/vf_waveform.c const int t1 = s->tint[1]; s 937 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 945 libavfilter/vf_waveform.c lowpass(s, in, out, component, s->intensity, \ s 957 libavfilter/vf_waveform.c static av_always_inline void flat16(WaveformContext *s, s 964 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 966 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 1) % s->ncomp] / 2; s 967 libavfilter/vf_waveform.c const int c2_linesize = in->linesize[(plane + 2) % s->ncomp] / 2; s 968 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[ component + 0 ]; s 969 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 1) % s->ncomp]; s 970 libavfilter/vf_waveform.c const int c2_shift_w = s->shift_w[(component + 2) % s->ncomp]; s 971 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[ component + 0 ]; s 972 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 1) % s->ncomp]; s 973 libavfilter/vf_waveform.c const int c2_shift_h = s->shift_h[(component + 2) % s->ncomp]; s 975 libavfilter/vf_waveform.c const int d1_linesize = out->linesize[(plane + 1) % s->ncomp] / 2; s 976 libavfilter/vf_waveform.c const int limit = s->max - 1; s 978 libavfilter/vf_waveform.c const int mid = s->max / 2; s 993 libavfilter/vf_waveform.c const uint16_t *c1_data = (uint16_t *)in->data[(plane + 1) % s->ncomp]; s 994 libavfilter/vf_waveform.c const uint16_t *c2_data = (uint16_t *)in->data[(plane + 2) % s->ncomp]; s 996 libavfilter/vf_waveform.c uint16_t *d1_data = (uint16_t *)(out->data[(plane + 1) % s->ncomp]) + offset_y * d1_linesize + offset_x; s 997 libavfilter/vf_waveform.c uint16_t * const d0_bottom_line = d0_data + d0_linesize * (s->size - 1); s 999 libavfilter/vf_waveform.c uint16_t * const d1_bottom_line = d1_data + d1_linesize * (s->size - 1); s 1003 libavfilter/vf_waveform.c const int c0 = FFMIN(c0_data[x >> c0_shift_w], limit) + s->max; s 1026 libavfilter/vf_waveform.c const uint16_t *c1_data = (uint16_t *)(in->data[(plane + 1) % s->ncomp]) + (sliceh_start >> c1_shift_h) * c1_linesize; s 1027 libavfilter/vf_waveform.c const uint16_t *c2_data = (uint16_t *)(in->data[(plane + 2) % s->ncomp]) + (sliceh_start >> c2_shift_h) * c2_linesize; s 1029 libavfilter/vf_waveform.c uint16_t *d1_data = (uint16_t *)(out->data[(plane + 1) % s->ncomp]) + (offset_y + sliceh_start) * d1_linesize + offset_x; s 1032 libavfilter/vf_waveform.c d0_data += s->size - 1; s 1033 libavfilter/vf_waveform.c d1_data += s->size - 1; s 1038 libavfilter/vf_waveform.c const int c0 = FFMIN(c0_data[x >> c0_shift_w], limit) + s->max; s 1076 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 1084 libavfilter/vf_waveform.c flat16(s, in, out, component, s->intensity, \ s 1096 libavfilter/vf_waveform.c static av_always_inline void flat(WaveformContext *s, s 1103 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 1105 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 1) % s->ncomp]; s 1106 libavfilter/vf_waveform.c const int c2_linesize = in->linesize[(plane + 2) % s->ncomp]; s 1107 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[ component + 0 ]; s 1108 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 1) % s->ncomp]; s 1109 libavfilter/vf_waveform.c const int c2_shift_w = s->shift_w[(component + 2) % s->ncomp]; s 1110 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[ component + 0 ]; s 1111 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 1) % s->ncomp]; s 1112 libavfilter/vf_waveform.c const int c2_shift_h = s->shift_h[(component + 2) % s->ncomp]; s 1114 libavfilter/vf_waveform.c const int d1_linesize = out->linesize[(plane + 1) % s->ncomp]; s 1130 libavfilter/vf_waveform.c const uint8_t *c1_data = in->data[(plane + 1) % s->ncomp]; s 1131 libavfilter/vf_waveform.c const uint8_t *c2_data = in->data[(plane + 2) % s->ncomp]; s 1133 libavfilter/vf_waveform.c uint8_t *d1_data = out->data[(plane + 1) % s->ncomp] + offset_y * d1_linesize + offset_x; s 1134 libavfilter/vf_waveform.c uint8_t * const d0_bottom_line = d0_data + d0_linesize * (s->size - 1); s 1136 libavfilter/vf_waveform.c uint8_t * const d1_bottom_line = d1_data + d1_linesize * (s->size - 1); s 1163 libavfilter/vf_waveform.c const uint8_t *c1_data = in->data[(plane + 1) % s->ncomp] + (sliceh_start >> c1_shift_h) * c1_linesize; s 1164 libavfilter/vf_waveform.c const uint8_t *c2_data = in->data[(plane + 2) % s->ncomp] + (sliceh_start >> c2_shift_h) * c2_linesize; s 1166 libavfilter/vf_waveform.c uint8_t *d1_data = out->data[(plane + 1) % s->ncomp] + (offset_y + sliceh_start) * d1_linesize + offset_x; s 1169 libavfilter/vf_waveform.c d0_data += s->size - 1; s 1170 libavfilter/vf_waveform.c d1_data += s->size - 1; s 1213 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 1221 libavfilter/vf_waveform.c flat(s, in, out, component, s->intensity, \ s 1238 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 1245 libavfilter/vf_waveform.c const int intensity = s->intensity; \ s 1246 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; \ s 1248 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 1) % s->ncomp] / 2; \ s 1249 libavfilter/vf_waveform.c const int c2_linesize = in->linesize[(plane + 2) % s->ncomp] / 2; \ s 1250 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[ component + 0 ]; \ s 1251 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 1) % s->ncomp]; \ s 1252 libavfilter/vf_waveform.c const int c2_shift_w = s->shift_w[(component + 2) % s->ncomp]; \ s 1253 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[ component + 0 ]; \ s 1254 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 1) % s->ncomp]; \ s 1255 libavfilter/vf_waveform.c const int c2_shift_h = s->shift_h[(component + 2) % s->ncomp]; \ s 1257 libavfilter/vf_waveform.c const int d1_linesize = out->linesize[(plane + 1) % s->ncomp] / 2; \ s 1258 libavfilter/vf_waveform.c const int d2_linesize = out->linesize[(plane + 2) % s->ncomp] / 2; \ s 1259 libavfilter/vf_waveform.c const int limit = s->max - 1; \ s 1261 libavfilter/vf_waveform.c const int mid = s->max / 2; \ s 1277 libavfilter/vf_waveform.c const uint16_t *c1_data = (uint16_t *)in->data[(plane + 1) % s->ncomp]; \ s 1278 libavfilter/vf_waveform.c const uint16_t *c2_data = (uint16_t *)in->data[(plane + 2) % s->ncomp]; \ s 1280 libavfilter/vf_waveform.c uint16_t *d1_data = (uint16_t *)out->data[(plane + 1) % s->ncomp] + offset_y * d1_linesize + offset_x; \ s 1281 libavfilter/vf_waveform.c uint16_t *d2_data = (uint16_t *)out->data[(plane + 2) % s->ncomp] + offset_y * d2_linesize + offset_x; \ s 1282 libavfilter/vf_waveform.c uint16_t * const d0_bottom_line = d0_data + d0_linesize * (s->size - 1); \ s 1284 libavfilter/vf_waveform.c uint16_t * const d1_bottom_line = d1_data + d1_linesize * (s->size - 1); \ s 1286 libavfilter/vf_waveform.c uint16_t * const d2_bottom_line = d2_data + d2_linesize * (s->size - 1); \ s 1317 libavfilter/vf_waveform.c const uint16_t *c1_data = (uint16_t *)in->data[(plane + 1) % s->ncomp] + (sliceh_start >> c1_shift_h) * c1_linesize; \ s 1318 libavfilter/vf_waveform.c const uint16_t *c2_data = (uint16_t *)in->data[(plane + 2) % s->ncomp] + (sliceh_start >> c2_shift_h) * c2_linesize; \ s 1320 libavfilter/vf_waveform.c uint16_t *d1_data = (uint16_t *)out->data[(plane + 1) % s->ncomp] + (offset_y + sliceh_start) * d1_linesize + offset_x; \ s 1321 libavfilter/vf_waveform.c uint16_t *d2_data = (uint16_t *)out->data[(plane + 2) % s->ncomp] + (offset_y + sliceh_start) * d2_linesize + offset_x; \ s 1324 libavfilter/vf_waveform.c d0_data += s->size - 1; \ s 1325 libavfilter/vf_waveform.c d1_data += s->size - 1; \ s 1326 libavfilter/vf_waveform.c d2_data += s->size - 1; \ s 1372 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 1385 libavfilter/vf_waveform.c const int intensity = s->intensity; \ s 1386 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; \ s 1388 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 1) % s->ncomp]; \ s 1389 libavfilter/vf_waveform.c const int c2_linesize = in->linesize[(plane + 2) % s->ncomp]; \ s 1390 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[ component + 0 ]; \ s 1391 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 1) % s->ncomp]; \ s 1392 libavfilter/vf_waveform.c const int c2_shift_w = s->shift_w[(component + 2) % s->ncomp]; \ s 1393 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[ component + 0 ]; \ s 1394 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 1) % s->ncomp]; \ s 1395 libavfilter/vf_waveform.c const int c2_shift_h = s->shift_h[(component + 2) % s->ncomp]; \ s 1397 libavfilter/vf_waveform.c const int d1_linesize = out->linesize[(plane + 1) % s->ncomp]; \ s 1398 libavfilter/vf_waveform.c const int d2_linesize = out->linesize[(plane + 2) % s->ncomp]; \ s 1409 libavfilter/vf_waveform.c const uint8_t *c1_data = in->data[(plane + 1) % s->ncomp]; \ s 1410 libavfilter/vf_waveform.c const uint8_t *c2_data = in->data[(plane + 2) % s->ncomp]; \ s 1412 libavfilter/vf_waveform.c uint8_t *d1_data = out->data[(plane + 1) % s->ncomp] + offset_y * d1_linesize + offset_x; \ s 1413 libavfilter/vf_waveform.c uint8_t *d2_data = out->data[(plane + 2) % s->ncomp] + offset_y * d2_linesize + offset_x; \ s 1414 libavfilter/vf_waveform.c uint8_t * const d0_bottom_line = d0_data + d0_linesize * (s->size - 1); \ s 1416 libavfilter/vf_waveform.c uint8_t * const d1_bottom_line = d1_data + d1_linesize * (s->size - 1); \ s 1418 libavfilter/vf_waveform.c uint8_t * const d2_bottom_line = d2_data + d2_linesize * (s->size - 1); \ s 1449 libavfilter/vf_waveform.c const uint8_t *c1_data = in->data[(plane + 1) % s->ncomp] + (sliceh_start >> c1_shift_h) * c1_linesize; \ s 1450 libavfilter/vf_waveform.c const uint8_t *c2_data = in->data[(plane + 2) % s->ncomp] + (sliceh_start >> c2_shift_h) * c2_linesize; \ s 1452 libavfilter/vf_waveform.c uint8_t *d1_data = out->data[(plane + 1) % s->ncomp] + (offset_y + sliceh_start) * d1_linesize + offset_x; \ s 1453 libavfilter/vf_waveform.c uint8_t *d2_data = out->data[(plane + 2) % s->ncomp] + (offset_y + sliceh_start) * d2_linesize + offset_x; \ s 1456 libavfilter/vf_waveform.c d0_data += s->size - 1; \ s 1457 libavfilter/vf_waveform.c d1_data += s->size - 1; \ s 1458 libavfilter/vf_waveform.c d2_data += s->size - 1; \ s 1525 libavfilter/vf_waveform.c static av_always_inline void chroma16(WaveformContext *s, s 1532 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 1533 libavfilter/vf_waveform.c const int c0_linesize = in->linesize[(plane + 1) % s->ncomp] / 2; s 1534 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 2) % s->ncomp] / 2; s 1536 libavfilter/vf_waveform.c const int limit = s->max - 1; s 1538 libavfilter/vf_waveform.c const int mid = s->max / 2; s 1539 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[(component + 1) % s->ncomp]; s 1540 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 2) % s->ncomp]; s 1541 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[(component + 1) % s->ncomp]; s 1542 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 2) % s->ncomp]; s 1555 libavfilter/vf_waveform.c const uint16_t *c0_data = (uint16_t *)in->data[(plane + 1) % s->ncomp]; s 1556 libavfilter/vf_waveform.c const uint16_t *c1_data = (uint16_t *)in->data[(plane + 2) % s->ncomp]; s 1558 libavfilter/vf_waveform.c uint16_t * const dst_bottom_line = dst_data + dst_linesize * (s->size - 1); s 1577 libavfilter/vf_waveform.c const uint16_t *c0_data = (uint16_t *)in->data[(plane + 1) % s->ncomp] + (sliceh_start >> c0_shift_h) * c0_linesize; s 1578 libavfilter/vf_waveform.c const uint16_t *c1_data = (uint16_t *)in->data[(plane + 2) % s->ncomp] + (sliceh_start >> c1_shift_h) * c1_linesize; s 1582 libavfilter/vf_waveform.c dst_data += s->size - 1; s 1611 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 1619 libavfilter/vf_waveform.c chroma16(s, in, out, component, s->intensity,\ s 1631 libavfilter/vf_waveform.c static av_always_inline void chroma(WaveformContext *s, s 1638 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 1645 libavfilter/vf_waveform.c const int c0_linesize = in->linesize[(plane + 1) % s->ncomp]; s 1646 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 2) % s->ncomp]; s 1649 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[(component + 1) % s->ncomp]; s 1650 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 2) % s->ncomp]; s 1651 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[(component + 1) % s->ncomp]; s 1652 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 2) % s->ncomp]; s 1659 libavfilter/vf_waveform.c const uint8_t *c0_data = in->data[(plane + 1) % s->ncomp]; s 1660 libavfilter/vf_waveform.c const uint8_t *c1_data = in->data[(plane + 2) % s->ncomp]; s 1662 libavfilter/vf_waveform.c uint8_t * const dst_bottom_line = dst_data + dst_linesize * (s->size - 1); s 1681 libavfilter/vf_waveform.c const uint8_t *c0_data = in->data[(plane + 1) % s->ncomp] + (sliceh_start >> c0_shift_h) * c0_linesize; s 1682 libavfilter/vf_waveform.c const uint8_t *c1_data = in->data[(plane + 2) % s->ncomp] + (sliceh_start >> c1_shift_h) * c1_linesize; s 1686 libavfilter/vf_waveform.c dst_data += s->size - 1; s 1715 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 1723 libavfilter/vf_waveform.c chroma(s, in, out, component, s->intensity, \ s 1735 libavfilter/vf_waveform.c static av_always_inline void color16(WaveformContext *s, s 1742 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 1743 libavfilter/vf_waveform.c const int limit = s->max - 1; s 1751 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 1) % s->ncomp] / 2; s 1752 libavfilter/vf_waveform.c const int c2_linesize = in->linesize[(plane + 2) % s->ncomp] / 2; s 1753 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[ component + 0 ]; s 1754 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 1) % s->ncomp]; s 1755 libavfilter/vf_waveform.c const int c2_shift_h = s->shift_h[(component + 2) % s->ncomp]; s 1757 libavfilter/vf_waveform.c const uint16_t *c1_data = (const uint16_t *)in->data[(plane + 1) % s->ncomp] + (sliceh_start >> c1_shift_h) * c1_linesize; s 1758 libavfilter/vf_waveform.c const uint16_t *c2_data = (const uint16_t *)in->data[(plane + 2) % s->ncomp] + (sliceh_start >> c2_shift_h) * c2_linesize; s 1760 libavfilter/vf_waveform.c const int d1_linesize = out->linesize[(plane + 1) % s->ncomp] / 2; s 1761 libavfilter/vf_waveform.c const int d2_linesize = out->linesize[(plane + 2) % s->ncomp] / 2; s 1762 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[ component + 0 ]; s 1763 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 1) % s->ncomp]; s 1764 libavfilter/vf_waveform.c const int c2_shift_w = s->shift_w[(component + 2) % s->ncomp]; s 1772 libavfilter/vf_waveform.c uint16_t *d1_data = (uint16_t *)out->data[(plane + 1) % s->ncomp] + offset_y * d1_linesize + offset_x; s 1773 libavfilter/vf_waveform.c uint16_t *d2_data = (uint16_t *)out->data[(plane + 2) % s->ncomp] + offset_y * d2_linesize + offset_x; s 1774 libavfilter/vf_waveform.c uint16_t * const d0_bottom_line = d0_data + d0_linesize * (s->size - 1); s 1776 libavfilter/vf_waveform.c uint16_t * const d1_bottom_line = d1_data + d1_linesize * (s->size - 1); s 1778 libavfilter/vf_waveform.c uint16_t * const d2_bottom_line = d2_data + d2_linesize * (s->size - 1); s 1804 libavfilter/vf_waveform.c uint16_t *d1_data = (uint16_t *)out->data[(plane + 1) % s->ncomp] + (offset_y + sliceh_start) * d1_linesize + offset_x; s 1805 libavfilter/vf_waveform.c uint16_t *d2_data = (uint16_t *)out->data[(plane + 2) % s->ncomp] + (offset_y + sliceh_start) * d2_linesize + offset_x; s 1808 libavfilter/vf_waveform.c d0_data += s->size - 1; s 1809 libavfilter/vf_waveform.c d1_data += s->size - 1; s 1810 libavfilter/vf_waveform.c d2_data += s->size - 1; s 1848 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 1856 libavfilter/vf_waveform.c color16(s, in, out, component, s->intensity, \ s 1868 libavfilter/vf_waveform.c static av_always_inline void color(WaveformContext *s, s 1875 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 1883 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 1) % s->ncomp]; s 1884 libavfilter/vf_waveform.c const int c2_linesize = in->linesize[(plane + 2) % s->ncomp]; s 1885 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[ component + 0 ]; s 1886 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 1) % s->ncomp]; s 1887 libavfilter/vf_waveform.c const int c2_shift_h = s->shift_h[(component + 2) % s->ncomp]; s 1889 libavfilter/vf_waveform.c const uint8_t *c1_data = in->data[(plane + 1) % s->ncomp] + (sliceh_start >> c1_shift_h) * c1_linesize; s 1890 libavfilter/vf_waveform.c const uint8_t *c2_data = in->data[(plane + 2) % s->ncomp] + (sliceh_start >> c2_shift_h) * c2_linesize; s 1892 libavfilter/vf_waveform.c const int d1_linesize = out->linesize[(plane + 1) % s->ncomp]; s 1893 libavfilter/vf_waveform.c const int d2_linesize = out->linesize[(plane + 2) % s->ncomp]; s 1894 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[ component + 0 ]; s 1895 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 1) % s->ncomp]; s 1896 libavfilter/vf_waveform.c const int c2_shift_w = s->shift_w[(component + 2) % s->ncomp]; s 1904 libavfilter/vf_waveform.c uint8_t *d1_data = out->data[(plane + 1) % s->ncomp] + offset_y * d1_linesize + offset_x; s 1905 libavfilter/vf_waveform.c uint8_t *d2_data = out->data[(plane + 2) % s->ncomp] + offset_y * d2_linesize + offset_x; s 1906 libavfilter/vf_waveform.c uint8_t * const d0_bottom_line = d0_data + d0_linesize * (s->size - 1); s 1908 libavfilter/vf_waveform.c uint8_t * const d1_bottom_line = d1_data + d1_linesize * (s->size - 1); s 1910 libavfilter/vf_waveform.c uint8_t * const d2_bottom_line = d2_data + d2_linesize * (s->size - 1); s 1936 libavfilter/vf_waveform.c uint8_t *d1_data = out->data[(plane + 1) % s->ncomp] + (offset_y + sliceh_start) * d1_linesize + offset_x; s 1937 libavfilter/vf_waveform.c uint8_t *d2_data = out->data[(plane + 2) % s->ncomp] + (offset_y + sliceh_start) * d2_linesize + offset_x; s 1940 libavfilter/vf_waveform.c d0_data += s->size - 1; s 1941 libavfilter/vf_waveform.c d1_data += s->size - 1; s 1942 libavfilter/vf_waveform.c d2_data += s->size - 1; s 1980 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 1988 libavfilter/vf_waveform.c color(s, in, out, component, s->intensity, \ s 2000 libavfilter/vf_waveform.c static av_always_inline void acolor16(WaveformContext *s, s 2007 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 2008 libavfilter/vf_waveform.c const int limit = s->max - 1; s 2016 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[ component + 0 ]; s 2017 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 1) % s->ncomp]; s 2018 libavfilter/vf_waveform.c const int c2_shift_h = s->shift_h[(component + 2) % s->ncomp]; s 2020 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 1) % s->ncomp] / 2; s 2021 libavfilter/vf_waveform.c const int c2_linesize = in->linesize[(plane + 2) % s->ncomp] / 2; s 2023 libavfilter/vf_waveform.c const uint16_t *c1_data = (const uint16_t *)in->data[(plane + 1) % s->ncomp] + (sliceh_start >> c1_shift_h) * c1_linesize; s 2024 libavfilter/vf_waveform.c const uint16_t *c2_data = (const uint16_t *)in->data[(plane + 2) % s->ncomp] + (sliceh_start >> c2_shift_h) * c2_linesize; s 2026 libavfilter/vf_waveform.c const int d1_linesize = out->linesize[(plane + 1) % s->ncomp] / 2; s 2027 libavfilter/vf_waveform.c const int d2_linesize = out->linesize[(plane + 2) % s->ncomp] / 2; s 2028 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[ component + 0 ]; s 2029 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 1) % s->ncomp]; s 2030 libavfilter/vf_waveform.c const int c2_shift_w = s->shift_w[(component + 2) % s->ncomp]; s 2038 libavfilter/vf_waveform.c uint16_t *d1_data = (uint16_t *)out->data[(plane + 1) % s->ncomp] + offset_y * d1_linesize + offset_x; s 2039 libavfilter/vf_waveform.c uint16_t *d2_data = (uint16_t *)out->data[(plane + 2) % s->ncomp] + offset_y * d2_linesize + offset_x; s 2040 libavfilter/vf_waveform.c uint16_t * const d0_bottom_line = d0_data + d0_linesize * (s->size - 1); s 2042 libavfilter/vf_waveform.c uint16_t * const d1_bottom_line = d1_data + d1_linesize * (s->size - 1); s 2044 libavfilter/vf_waveform.c uint16_t * const d2_bottom_line = d2_data + d2_linesize * (s->size - 1); s 2070 libavfilter/vf_waveform.c uint16_t *d1_data = (uint16_t *)out->data[(plane + 1) % s->ncomp] + (offset_y + sliceh_start) * d1_linesize + offset_x; s 2071 libavfilter/vf_waveform.c uint16_t *d2_data = (uint16_t *)out->data[(plane + 2) % s->ncomp] + (offset_y + sliceh_start) * d2_linesize + offset_x; s 2074 libavfilter/vf_waveform.c d0_data += s->size - 1; s 2075 libavfilter/vf_waveform.c d1_data += s->size - 1; s 2076 libavfilter/vf_waveform.c d2_data += s->size - 1; s 2114 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 2122 libavfilter/vf_waveform.c acolor16(s, in, out, component, s->intensity,\ s 2134 libavfilter/vf_waveform.c static av_always_inline void acolor(WaveformContext *s, s 2141 libavfilter/vf_waveform.c const int plane = s->desc->comp[component].plane; s 2148 libavfilter/vf_waveform.c const int c0_shift_w = s->shift_w[ component + 0 ]; s 2149 libavfilter/vf_waveform.c const int c1_shift_w = s->shift_w[(component + 1) % s->ncomp]; s 2150 libavfilter/vf_waveform.c const int c2_shift_w = s->shift_w[(component + 2) % s->ncomp]; s 2151 libavfilter/vf_waveform.c const int c0_shift_h = s->shift_h[ component + 0 ]; s 2152 libavfilter/vf_waveform.c const int c1_shift_h = s->shift_h[(component + 1) % s->ncomp]; s 2153 libavfilter/vf_waveform.c const int c2_shift_h = s->shift_h[(component + 2) % s->ncomp]; s 2155 libavfilter/vf_waveform.c const int c1_linesize = in->linesize[(plane + 1) % s->ncomp]; s 2156 libavfilter/vf_waveform.c const int c2_linesize = in->linesize[(plane + 2) % s->ncomp]; s 2158 libavfilter/vf_waveform.c const uint8_t *c1_data = in->data[(plane + 1) % s->ncomp] + (sliceh_start >> c1_shift_h) * c1_linesize; s 2159 libavfilter/vf_waveform.c const uint8_t *c2_data = in->data[(plane + 2) % s->ncomp] + (sliceh_start >> c2_shift_h) * c2_linesize; s 2161 libavfilter/vf_waveform.c const int d1_linesize = out->linesize[(plane + 1) % s->ncomp]; s 2162 libavfilter/vf_waveform.c const int d2_linesize = out->linesize[(plane + 2) % s->ncomp]; s 2171 libavfilter/vf_waveform.c uint8_t *d1_data = out->data[(plane + 1) % s->ncomp] + offset_y * d1_linesize + offset_x; s 2172 libavfilter/vf_waveform.c uint8_t *d2_data = out->data[(plane + 2) % s->ncomp] + offset_y * d2_linesize + offset_x; s 2173 libavfilter/vf_waveform.c uint8_t * const d0_bottom_line = d0_data + d0_linesize * (s->size - 1); s 2175 libavfilter/vf_waveform.c uint8_t * const d1_bottom_line = d1_data + d1_linesize * (s->size - 1); s 2177 libavfilter/vf_waveform.c uint8_t * const d2_bottom_line = d2_data + d2_linesize * (s->size - 1); s 2203 libavfilter/vf_waveform.c uint8_t *d1_data = out->data[(plane + 1) % s->ncomp] + (offset_y + sliceh_start) * d1_linesize + offset_x; s 2204 libavfilter/vf_waveform.c uint8_t *d2_data = out->data[(plane + 2) % s->ncomp] + (offset_y + sliceh_start) * d2_linesize + offset_x; s 2207 libavfilter/vf_waveform.c d0_data += s->size - 1; s 2208 libavfilter/vf_waveform.c d1_data += s->size - 1; s 2209 libavfilter/vf_waveform.c d2_data += s->size - 1; s 2247 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; \ s 2255 libavfilter/vf_waveform.c acolor(s, in, out, component, s->intensity, \ s 2870 libavfilter/vf_waveform.c static void graticule_none(WaveformContext *s, AVFrame *out) s 2874 libavfilter/vf_waveform.c static void graticule_row(WaveformContext *s, AVFrame *out) s 2876 libavfilter/vf_waveform.c const int step = (s->flags & 2) + 1; s 2877 libavfilter/vf_waveform.c const float o1 = s->opacity; s 2879 libavfilter/vf_waveform.c const int height = s->display == PARADE ? out->height / s->acomp : out->height; s 2882 libavfilter/vf_waveform.c for (c = 0; c < s->ncomp; c++) { s 2883 libavfilter/vf_waveform.c if (!((1 << c) & s->pcomp) || (!s->display && k > 0)) s 2887 libavfilter/vf_waveform.c C = s->rgb ? 0 : c; s 2888 libavfilter/vf_waveform.c for (p = 0; p < s->ncomp; p++) { s 2889 libavfilter/vf_waveform.c const int v = s->grat_yuva_color[p]; s 2890 libavfilter/vf_waveform.c for (l = 0; l < s->nb_glines; l++) { s 2891 libavfilter/vf_waveform.c const uint16_t pos = s->glines[l].line[C].pos; s 2892 libavfilter/vf_waveform.c int x = offset_x + (s->mirror ? s->size - 1 - pos : pos); s 2895 libavfilter/vf_waveform.c s->blend_line(dst, height, out->linesize[p], o1, o2, v, step); s 2899 libavfilter/vf_waveform.c for (l = 0; l < s->nb_glines && (s->flags & 1); l++) { s 2900 libavfilter/vf_waveform.c const char *name = s->glines[l].line[C].name; s 2901 libavfilter/vf_waveform.c const uint16_t pos = s->glines[l].line[C].pos; s 2902 libavfilter/vf_waveform.c int x = offset_x + (s->mirror ? s->size - 1 - pos : pos) - 10; s 2907 libavfilter/vf_waveform.c s->draw_text(out, x, offset_y + 2, 1, o1, o2, name, s->grat_yuva_color); s 2910 libavfilter/vf_waveform.c offset_x += s->size * (s->display == STACK); s 2911 libavfilter/vf_waveform.c offset_y += height * (s->display == PARADE); s 2915 libavfilter/vf_waveform.c static void graticule16_row(WaveformContext *s, AVFrame *out) s 2917 libavfilter/vf_waveform.c const int step = (s->flags & 2) + 1; s 2918 libavfilter/vf_waveform.c const float o1 = s->opacity; s 2920 libavfilter/vf_waveform.c const int mult = s->max / 256; s 2921 libavfilter/vf_waveform.c const int height = s->display == PARADE ? out->height / s->acomp : out->height; s 2924 libavfilter/vf_waveform.c for (c = 0; c < s->ncomp; c++) { s 2925 libavfilter/vf_waveform.c if (!((1 << c) & s->pcomp) || (!s->display && k > 0)) s 2929 libavfilter/vf_waveform.c C = s->rgb ? 0 : c; s 2930 libavfilter/vf_waveform.c for (p = 0; p < s->ncomp; p++) { s 2931 libavfilter/vf_waveform.c const int v = s->grat_yuva_color[p] * mult; s 2932 libavfilter/vf_waveform.c for (l = 0; l < s->nb_glines ; l++) { s 2933 libavfilter/vf_waveform.c const uint16_t pos = s->glines[l].line[C].pos; s 2934 libavfilter/vf_waveform.c int x = offset_x + (s->mirror ? s->size - 1 - pos : pos); s 2937 libavfilter/vf_waveform.c s->blend_line(dst, height, out->linesize[p], o1, o2, v, step); s 2941 libavfilter/vf_waveform.c for (l = 0; l < s->nb_glines && (s->flags & 1); l++) { s 2942 libavfilter/vf_waveform.c const char *name = s->glines[l].line[C].name; s 2943 libavfilter/vf_waveform.c const uint16_t pos = s->glines[l].line[C].pos; s 2944 libavfilter/vf_waveform.c int x = offset_x + (s->mirror ? s->size - 1 - pos : pos) - 10; s 2949 libavfilter/vf_waveform.c s->draw_text(out, x, offset_y + 2, mult, o1, o2, name, s->grat_yuva_color); s 2952 libavfilter/vf_waveform.c offset_x += s->size * (s->display == STACK); s 2953 libavfilter/vf_waveform.c offset_y += height * (s->display == PARADE); s 2957 libavfilter/vf_waveform.c static void graticule_column(WaveformContext *s, AVFrame *out) s 2959 libavfilter/vf_waveform.c const int step = (s->flags & 2) + 1; s 2960 libavfilter/vf_waveform.c const float o1 = s->opacity; s 2962 libavfilter/vf_waveform.c const int width = s->display == PARADE ? out->width / s->acomp : out->width; s 2965 libavfilter/vf_waveform.c for (c = 0; c < s->ncomp; c++) { s 2966 libavfilter/vf_waveform.c if ((!((1 << c) & s->pcomp) || (!s->display && k > 0))) s 2970 libavfilter/vf_waveform.c C = s->rgb ? 0 : c; s 2971 libavfilter/vf_waveform.c for (p = 0; p < s->ncomp; p++) { s 2972 libavfilter/vf_waveform.c const int v = s->grat_yuva_color[p]; s 2973 libavfilter/vf_waveform.c for (l = 0; l < s->nb_glines ; l++) { s 2974 libavfilter/vf_waveform.c const uint16_t pos = s->glines[l].line[C].pos; s 2975 libavfilter/vf_waveform.c int y = offset_y + (s->mirror ? s->size - 1 - pos : pos); s 2978 libavfilter/vf_waveform.c s->blend_line(dst, width, 1, o1, o2, v, step); s 2982 libavfilter/vf_waveform.c for (l = 0; l < s->nb_glines && (s->flags & 1); l++) { s 2983 libavfilter/vf_waveform.c const char *name = s->glines[l].line[C].name; s 2984 libavfilter/vf_waveform.c const uint16_t pos = s->glines[l].line[C].pos; s 2985 libavfilter/vf_waveform.c int y = offset_y + (s->mirror ? s->size - 1 - pos : pos) - 10; s 2990 libavfilter/vf_waveform.c s->draw_text(out, 2 + offset_x, y, 1, o1, o2, name, s->grat_yuva_color); s 2993 libavfilter/vf_waveform.c offset_y += s->size * (s->display == STACK); s 2994 libavfilter/vf_waveform.c offset_x += width * (s->display == PARADE); s 2998 libavfilter/vf_waveform.c static void graticule16_column(WaveformContext *s, AVFrame *out) s 3000 libavfilter/vf_waveform.c const int step = (s->flags & 2) + 1; s 3001 libavfilter/vf_waveform.c const float o1 = s->opacity; s 3003 libavfilter/vf_waveform.c const int mult = s->max / 256; s 3004 libavfilter/vf_waveform.c const int width = s->display == PARADE ? out->width / s->acomp : out->width; s 3007 libavfilter/vf_waveform.c for (c = 0; c < s->ncomp; c++) { s 3008 libavfilter/vf_waveform.c if ((!((1 << c) & s->pcomp) || (!s->display && k > 0))) s 3012 libavfilter/vf_waveform.c C = s->rgb ? 0 : c; s 3013 libavfilter/vf_waveform.c for (p = 0; p < s->ncomp; p++) { s 3014 libavfilter/vf_waveform.c const int v = s->grat_yuva_color[p] * mult; s 3015 libavfilter/vf_waveform.c for (l = 0; l < s->nb_glines ; l++) { s 3016 libavfilter/vf_waveform.c const uint16_t pos = s->glines[l].line[C].pos; s 3017 libavfilter/vf_waveform.c int y = offset_y + (s->mirror ? s->size - 1 - pos : pos); s 3020 libavfilter/vf_waveform.c s->blend_line(dst, width, 1, o1, o2, v, step); s 3024 libavfilter/vf_waveform.c for (l = 0; l < s->nb_glines && (s->flags & 1); l++) { s 3025 libavfilter/vf_waveform.c const char *name = s->glines[l].line[C].name; s 3026 libavfilter/vf_waveform.c const uint16_t pos = s->glines[l].line[C].pos; s 3027 libavfilter/vf_waveform.c int y = offset_y + (s->mirror ? s->size - 1 - pos: pos) - 10; s 3032 libavfilter/vf_waveform.c s->draw_text(out, 2 + offset_x, y, mult, o1, o2, name, s->grat_yuva_color); s 3035 libavfilter/vf_waveform.c offset_y += s->size * (s->display == STACK); s 3036 libavfilter/vf_waveform.c offset_x += width * (s->display == PARADE); s 3043 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; s 3045 libavfilter/vf_waveform.c s->desc = av_pix_fmt_desc_get(inlink->format); s 3046 libavfilter/vf_waveform.c s->ncomp = s->desc->nb_components; s 3047 libavfilter/vf_waveform.c s->bits = s->desc->comp[0].depth; s 3048 libavfilter/vf_waveform.c s->max = 1 << s->bits; s 3049 libavfilter/vf_waveform.c s->intensity = s->fintensity * (s->max - 1); s 3051 libavfilter/vf_waveform.c s->shift_w[0] = s->shift_w[3] = 0; s 3052 libavfilter/vf_waveform.c s->shift_h[0] = s->shift_h[3] = 0; s 3053 libavfilter/vf_waveform.c s->shift_w[1] = s->shift_w[2] = s->desc->log2_chroma_w; s 3054 libavfilter/vf_waveform.c s->shift_h[1] = s->shift_h[2] = s->desc->log2_chroma_h; s 3056 libavfilter/vf_waveform.c s->graticulef = graticule_none; s 3058 libavfilter/vf_waveform.c switch (s->filter) { s 3061 libavfilter/vf_waveform.c case AFLAT: s->size = 256 * 2; break; s 3062 libavfilter/vf_waveform.c case FLAT: s->size = 256 * 3; break; s 3063 libavfilter/vf_waveform.c default: s->size = 256; break; s 3066 libavfilter/vf_waveform.c switch (s->filter | ((s->bits > 8) << 4) | s 3067 libavfilter/vf_waveform.c (s->mode << 8) | (s->mirror << 12)) { s 3068 libavfilter/vf_waveform.c case 0x1100: s->waveform_slice = lowpass_column_mirror; break; s 3069 libavfilter/vf_waveform.c case 0x1000: s->waveform_slice = lowpass_row_mirror; break; s 3070 libavfilter/vf_waveform.c case 0x0100: s->waveform_slice = lowpass_column; break; s 3071 libavfilter/vf_waveform.c case 0x0000: s->waveform_slice = lowpass_row; break; s 3072 libavfilter/vf_waveform.c case 0x1110: s->waveform_slice = lowpass16_column_mirror; break; s 3073 libavfilter/vf_waveform.c case 0x1010: s->waveform_slice = lowpass16_row_mirror; break; s 3074 libavfilter/vf_waveform.c case 0x0110: s->waveform_slice = lowpass16_column; break; s 3075 libavfilter/vf_waveform.c case 0x0010: s->waveform_slice = lowpass16_row; break; s 3076 libavfilter/vf_waveform.c case 0x1101: s->waveform_slice = flat_column_mirror; break; s 3077 libavfilter/vf_waveform.c case 0x1001: s->waveform_slice = flat_row_mirror; break; s 3078 libavfilter/vf_waveform.c case 0x0101: s->waveform_slice = flat_column; break; s 3079 libavfilter/vf_waveform.c case 0x0001: s->waveform_slice = flat_row; break; s 3080 libavfilter/vf_waveform.c case 0x1111: s->waveform_slice = flat16_column_mirror; break; s 3081 libavfilter/vf_waveform.c case 0x1011: s->waveform_slice = flat16_row_mirror; break; s 3082 libavfilter/vf_waveform.c case 0x0111: s->waveform_slice = flat16_column; break; s 3083 libavfilter/vf_waveform.c case 0x0011: s->waveform_slice = flat16_row; break; s 3084 libavfilter/vf_waveform.c case 0x1102: s->waveform_slice = aflat_column_mirror; break; s 3085 libavfilter/vf_waveform.c case 0x1002: s->waveform_slice = aflat_row_mirror; break; s 3086 libavfilter/vf_waveform.c case 0x0102: s->waveform_slice = aflat_column; break; s 3087 libavfilter/vf_waveform.c case 0x0002: s->waveform_slice = aflat_row; break; s 3088 libavfilter/vf_waveform.c case 0x1112: s->waveform_slice = aflat16_column_mirror; break; s 3089 libavfilter/vf_waveform.c case 0x1012: s->waveform_slice = aflat16_row_mirror; break; s 3090 libavfilter/vf_waveform.c case 0x0112: s->waveform_slice = aflat16_column; break; s 3091 libavfilter/vf_waveform.c case 0x0012: s->waveform_slice = aflat16_row; break; s 3092 libavfilter/vf_waveform.c case 0x1103: s->waveform_slice = chroma_column_mirror; break; s 3093 libavfilter/vf_waveform.c case 0x1003: s->waveform_slice = chroma_row_mirror; break; s 3094 libavfilter/vf_waveform.c case 0x0103: s->waveform_slice = chroma_column; break; s 3095 libavfilter/vf_waveform.c case 0x0003: s->waveform_slice = chroma_row; break; s 3096 libavfilter/vf_waveform.c case 0x1113: s->waveform_slice = chroma16_column_mirror; break; s 3097 libavfilter/vf_waveform.c case 0x1013: s->waveform_slice = chroma16_row_mirror; break; s 3098 libavfilter/vf_waveform.c case 0x0113: s->waveform_slice = chroma16_column; break; s 3099 libavfilter/vf_waveform.c case 0x0013: s->waveform_slice = chroma16_row; break; s 3100 libavfilter/vf_waveform.c case 0x1104: s->waveform_slice = color_column_mirror; break; s 3101 libavfilter/vf_waveform.c case 0x1004: s->waveform_slice = color_row_mirror; break; s 3102 libavfilter/vf_waveform.c case 0x0104: s->waveform_slice = color_column; break; s 3103 libavfilter/vf_waveform.c case 0x0004: s->waveform_slice = color_row; break; s 3104 libavfilter/vf_waveform.c case 0x1114: s->waveform_slice = color16_column_mirror; break; s 3105 libavfilter/vf_waveform.c case 0x1014: s->waveform_slice = color16_row_mirror; break; s 3106 libavfilter/vf_waveform.c case 0x0114: s->waveform_slice = color16_column; break; s 3107 libavfilter/vf_waveform.c case 0x0014: s->waveform_slice = color16_row; break; s 3108 libavfilter/vf_waveform.c case 0x1105: s->waveform_slice = acolor_column_mirror; break; s 3109 libavfilter/vf_waveform.c case 0x1005: s->waveform_slice = acolor_row_mirror; break; s 3110 libavfilter/vf_waveform.c case 0x0105: s->waveform_slice = acolor_column; break; s 3111 libavfilter/vf_waveform.c case 0x0005: s->waveform_slice = acolor_row; break; s 3112 libavfilter/vf_waveform.c case 0x1115: s->waveform_slice = acolor16_column_mirror; break; s 3113 libavfilter/vf_waveform.c case 0x1015: s->waveform_slice = acolor16_row_mirror; break; s 3114 libavfilter/vf_waveform.c case 0x0115: s->waveform_slice = acolor16_column; break; s 3115 libavfilter/vf_waveform.c case 0x0015: s->waveform_slice = acolor16_row; break; s 3116 libavfilter/vf_waveform.c case 0x1106: s->waveform_slice = xflat_column_mirror; break; s 3117 libavfilter/vf_waveform.c case 0x1006: s->waveform_slice = xflat_row_mirror; break; s 3118 libavfilter/vf_waveform.c case 0x0106: s->waveform_slice = xflat_column; break; s 3119 libavfilter/vf_waveform.c case 0x0006: s->waveform_slice = xflat_row; break; s 3120 libavfilter/vf_waveform.c case 0x1116: s->waveform_slice = xflat16_column_mirror; break; s 3121 libavfilter/vf_waveform.c case 0x1016: s->waveform_slice = xflat16_row_mirror; break; s 3122 libavfilter/vf_waveform.c case 0x0116: s->waveform_slice = xflat16_column; break; s 3123 libavfilter/vf_waveform.c case 0x0016: s->waveform_slice = xflat16_row; break; s 3124 libavfilter/vf_waveform.c case 0x1107: s->waveform_slice = yflat_column_mirror; break; s 3125 libavfilter/vf_waveform.c case 0x1007: s->waveform_slice = yflat_row_mirror; break; s 3126 libavfilter/vf_waveform.c case 0x0107: s->waveform_slice = yflat_column; break; s 3127 libavfilter/vf_waveform.c case 0x0007: s->waveform_slice = yflat_row; break; s 3128 libavfilter/vf_waveform.c case 0x1117: s->waveform_slice = yflat16_column_mirror; break; s 3129 libavfilter/vf_waveform.c case 0x1017: s->waveform_slice = yflat16_row_mirror; break; s 3130 libavfilter/vf_waveform.c case 0x0117: s->waveform_slice = yflat16_column; break; s 3131 libavfilter/vf_waveform.c case 0x0017: s->waveform_slice = yflat16_row; break; s 3134 libavfilter/vf_waveform.c s->grat_yuva_color[0] = 255; s 3135 libavfilter/vf_waveform.c s->grat_yuva_color[1] = s->graticule == GRAT_INVERT ? 255 : 0; s 3136 libavfilter/vf_waveform.c s->grat_yuva_color[2] = s->graticule == GRAT_ORANGE || s->graticule == GRAT_INVERT ? 255 : 0; s 3137 libavfilter/vf_waveform.c s->grat_yuva_color[3] = 255; s 3139 libavfilter/vf_waveform.c if (s->mode == 0 && s->graticule != GRAT_INVERT) { s 3140 libavfilter/vf_waveform.c s->blend_line = s->bits <= 8 ? blend_vline : blend_vline16; s 3141 libavfilter/vf_waveform.c s->draw_text = s->bits <= 8 ? draw_vtext : draw_vtext16; s 3142 libavfilter/vf_waveform.c } else if (s->graticule != GRAT_INVERT) { s 3143 libavfilter/vf_waveform.c s->blend_line = s->bits <= 8 ? blend_hline : blend_hline16; s 3144 libavfilter/vf_waveform.c s->draw_text = s->bits <= 8 ? draw_htext : draw_htext16; s 3145 libavfilter/vf_waveform.c } else if (s->mode == 0 && s->graticule == GRAT_INVERT) { s 3146 libavfilter/vf_waveform.c s->blend_line = s->bits <= 8 ? iblend_vline : iblend_vline16; s 3147 libavfilter/vf_waveform.c s->draw_text = s->bits <= 8 ? idraw_vtext : idraw_vtext16; s 3148 libavfilter/vf_waveform.c } else if (s->graticule == GRAT_INVERT) { s 3149 libavfilter/vf_waveform.c s->blend_line = s->bits <= 8 ? iblend_hline : iblend_hline16; s 3150 libavfilter/vf_waveform.c s->draw_text = s->bits <= 8 ? idraw_htext : idraw_htext16; s 3153 libavfilter/vf_waveform.c switch (s->filter) { s 3162 libavfilter/vf_waveform.c if (s->graticule > GRAT_NONE && s->mode == 1) s 3163 libavfilter/vf_waveform.c s->graticulef = s->bits > 8 ? graticule16_column : graticule_column; s 3164 libavfilter/vf_waveform.c else if (s->graticule > GRAT_NONE && s->mode == 0) s 3165 libavfilter/vf_waveform.c s->graticulef = s->bits > 8 ? graticule16_row : graticule_row; s 3169 libavfilter/vf_waveform.c switch (s->filter) { s 3173 libavfilter/vf_waveform.c switch (s->scale) { s 3175 libavfilter/vf_waveform.c switch (s->bits) { s 3176 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)digital8; s->nb_glines = FF_ARRAY_ELEMS(digital8); break; s 3177 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)digital9; s->nb_glines = FF_ARRAY_ELEMS(digital9); break; s 3178 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)digital10; s->nb_glines = FF_ARRAY_ELEMS(digital10); break; s 3179 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)digital12; s->nb_glines = FF_ARRAY_ELEMS(digital12); break; s 3183 libavfilter/vf_waveform.c switch (s->bits) { s 3184 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)millivolts8; s->nb_glines = FF_ARRAY_ELEMS(millivolts8); break; s 3185 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)millivolts9; s->nb_glines = FF_ARRAY_ELEMS(millivolts9); break; s 3186 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)millivolts10; s->nb_glines = FF_ARRAY_ELEMS(millivolts10); break; s 3187 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)millivolts12; s->nb_glines = FF_ARRAY_ELEMS(millivolts12); break; s 3191 libavfilter/vf_waveform.c switch (s->bits) { s 3192 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)ire8; s->nb_glines = FF_ARRAY_ELEMS(ire8); break; s 3193 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)ire9; s->nb_glines = FF_ARRAY_ELEMS(ire9); break; s 3194 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)ire10; s->nb_glines = FF_ARRAY_ELEMS(ire10); break; s 3195 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)ire12; s->nb_glines = FF_ARRAY_ELEMS(ire12); break; s 3201 libavfilter/vf_waveform.c switch (s->scale) { s 3203 libavfilter/vf_waveform.c switch (s->bits) { s 3204 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)chroma_digital8; s->nb_glines = FF_ARRAY_ELEMS(chroma_digital8); break; s 3205 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)chroma_digital9; s->nb_glines = FF_ARRAY_ELEMS(chroma_digital9); break; s 3206 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)chroma_digital10; s->nb_glines = FF_ARRAY_ELEMS(chroma_digital10); break; s 3207 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)chroma_digital12; s->nb_glines = FF_ARRAY_ELEMS(chroma_digital12); break; s 3211 libavfilter/vf_waveform.c switch (s->bits) { s 3212 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)millivolts8; s->nb_glines = FF_ARRAY_ELEMS(millivolts8); break; s 3213 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)millivolts9; s->nb_glines = FF_ARRAY_ELEMS(millivolts9); break; s 3214 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)millivolts10; s->nb_glines = FF_ARRAY_ELEMS(millivolts10); break; s 3215 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)millivolts12; s->nb_glines = FF_ARRAY_ELEMS(millivolts12); break; s 3219 libavfilter/vf_waveform.c switch (s->bits) { s 3220 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)ire8; s->nb_glines = FF_ARRAY_ELEMS(ire8); break; s 3221 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)ire9; s->nb_glines = FF_ARRAY_ELEMS(ire9); break; s 3222 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)ire10; s->nb_glines = FF_ARRAY_ELEMS(ire10); break; s 3223 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)ire12; s->nb_glines = FF_ARRAY_ELEMS(ire12); break; s 3231 libavfilter/vf_waveform.c switch (s->scale) { s 3233 libavfilter/vf_waveform.c switch (s->bits) { s 3234 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)aflat_digital8; s->nb_glines = FF_ARRAY_ELEMS(aflat_digital8); break; s 3235 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)aflat_digital9; s->nb_glines = FF_ARRAY_ELEMS(aflat_digital9); break; s 3236 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)aflat_digital10; s->nb_glines = FF_ARRAY_ELEMS(aflat_digital10); break; s 3237 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)aflat_digital12; s->nb_glines = FF_ARRAY_ELEMS(aflat_digital12); break; s 3241 libavfilter/vf_waveform.c switch (s->bits) { s 3242 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)aflat_millivolts8; s->nb_glines = FF_ARRAY_ELEMS(aflat_millivolts8); break; s 3243 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)aflat_millivolts9; s->nb_glines = FF_ARRAY_ELEMS(aflat_millivolts9); break; s 3244 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)aflat_millivolts10; s->nb_glines = FF_ARRAY_ELEMS(aflat_millivolts10); break; s 3245 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)aflat_millivolts12; s->nb_glines = FF_ARRAY_ELEMS(aflat_millivolts12); break; s 3249 libavfilter/vf_waveform.c switch (s->bits) { s 3250 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)aflat_ire8; s->nb_glines = FF_ARRAY_ELEMS(aflat_ire8); break; s 3251 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)aflat_ire9; s->nb_glines = FF_ARRAY_ELEMS(aflat_ire9); break; s 3252 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)aflat_ire10; s->nb_glines = FF_ARRAY_ELEMS(aflat_ire10); break; s 3253 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)aflat_ire12; s->nb_glines = FF_ARRAY_ELEMS(aflat_ire12); break; s 3259 libavfilter/vf_waveform.c switch (s->scale) { s 3261 libavfilter/vf_waveform.c switch (s->bits) { s 3262 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)flat_digital8; s->nb_glines = FF_ARRAY_ELEMS(flat_digital8); break; s 3263 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)flat_digital9; s->nb_glines = FF_ARRAY_ELEMS(flat_digital9); break; s 3264 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)flat_digital10; s->nb_glines = FF_ARRAY_ELEMS(flat_digital10); break; s 3265 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)flat_digital12; s->nb_glines = FF_ARRAY_ELEMS(flat_digital12); break; s 3269 libavfilter/vf_waveform.c switch (s->bits) { s 3270 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)flat_millivolts8; s->nb_glines = FF_ARRAY_ELEMS(flat_millivolts8); break; s 3271 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)flat_millivolts9; s->nb_glines = FF_ARRAY_ELEMS(flat_millivolts9); break; s 3272 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)flat_millivolts10; s->nb_glines = FF_ARRAY_ELEMS(flat_millivolts10); break; s 3273 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)flat_millivolts12; s->nb_glines = FF_ARRAY_ELEMS(flat_millivolts12); break; s 3277 libavfilter/vf_waveform.c switch (s->bits) { s 3278 libavfilter/vf_waveform.c case 8: s->glines = (GraticuleLines *)flat_ire8; s->nb_glines = FF_ARRAY_ELEMS(flat_ire8); break; s 3279 libavfilter/vf_waveform.c case 9: s->glines = (GraticuleLines *)flat_ire9; s->nb_glines = FF_ARRAY_ELEMS(flat_ire9); break; s 3280 libavfilter/vf_waveform.c case 10: s->glines = (GraticuleLines *)flat_ire10; s->nb_glines = FF_ARRAY_ELEMS(flat_ire10); break; s 3281 libavfilter/vf_waveform.c case 12: s->glines = (GraticuleLines *)flat_ire12; s->nb_glines = FF_ARRAY_ELEMS(flat_ire12); break; s 3288 libavfilter/vf_waveform.c s->size = s->size << (s->bits - 8); s 3290 libavfilter/vf_waveform.c s->tint[0] = .5f * (s->ftint[0] + 1.f) * (s->size - 1); s 3291 libavfilter/vf_waveform.c s->tint[1] = .5f * (s->ftint[1] + 1.f) * (s->size - 1); s 3299 libavfilter/vf_waveform.c s->rgb = 1; s 3300 libavfilter/vf_waveform.c memcpy(s->bg_color, black_gbrp_color, sizeof(s->bg_color)); s 3303 libavfilter/vf_waveform.c memcpy(s->bg_color, black_yuva_color, sizeof(s->bg_color)); s 3306 libavfilter/vf_waveform.c s->bg_color[3] *= s->bgopacity; s 3315 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; s 3318 libavfilter/vf_waveform.c for (i = 0; i < s->ncomp; i++) { s 3319 libavfilter/vf_waveform.c if ((1 << i) & s->pcomp) s 3322 libavfilter/vf_waveform.c s->acomp = comp; s 3323 libavfilter/vf_waveform.c if (s->acomp == 0) s 3326 libavfilter/vf_waveform.c s->odesc = av_pix_fmt_desc_get(outlink->format); s 3327 libavfilter/vf_waveform.c s->dcomp = s->odesc->nb_components; s 3329 libavfilter/vf_waveform.c av_freep(&s->peak); s 3331 libavfilter/vf_waveform.c if (s->mode) { s 3332 libavfilter/vf_waveform.c outlink->h = s->size * FFMAX(comp * (s->display == STACK), 1); s 3333 libavfilter/vf_waveform.c outlink->w = inlink->w * FFMAX(comp * (s->display == PARADE), 1); s 3336 libavfilter/vf_waveform.c outlink->w = s->size * FFMAX(comp * (s->display == STACK), 1); s 3337 libavfilter/vf_waveform.c outlink->h = inlink->h * FFMAX(comp * (s->display == PARADE), 1); s 3341 libavfilter/vf_waveform.c s->peak = av_malloc_array(size, 32 * sizeof(*s->peak)); s 3342 libavfilter/vf_waveform.c if (!s->peak) s 3345 libavfilter/vf_waveform.c for (p = 0; p < s->ncomp; p++) { s 3346 libavfilter/vf_waveform.c const int plane = s->desc->comp[p].plane; s 3349 libavfilter/vf_waveform.c if (!((1 << p) & s->pcomp)) s 3353 libavfilter/vf_waveform.c s->emax[plane][k] = s->peak + size * (plane * 4 + k + 0); s 3354 libavfilter/vf_waveform.c s->emin[plane][k] = s->peak + size * (plane * 4 + k + 16); s 3357 libavfilter/vf_waveform.c offset = j++ * s->size * (s->display == STACK); s 3358 libavfilter/vf_waveform.c s->estart[plane] = offset; s 3359 libavfilter/vf_waveform.c s->eend[plane] = (offset + s->size - 1); s 3362 libavfilter/vf_waveform.c s->emax[plane][k][i] = s->estart[plane]; s 3363 libavfilter/vf_waveform.c s->emin[plane][k][i] = s->eend[plane]; s 3376 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; s 3389 libavfilter/vf_waveform.c for (k = 0; k < s->dcomp; k++) { s 3390 libavfilter/vf_waveform.c if (s->bits <= 8) { s 3392 libavfilter/vf_waveform.c memset(out->data[s->odesc->comp[k].plane] + s 3393 libavfilter/vf_waveform.c i * out->linesize[s->odesc->comp[k].plane], s 3394 libavfilter/vf_waveform.c s->bg_color[k], outlink->w); s 3396 libavfilter/vf_waveform.c const int mult = s->max / 256; s 3397 libavfilter/vf_waveform.c uint16_t *dst = (uint16_t *)out->data[s->odesc->comp[k].plane]; s 3401 libavfilter/vf_waveform.c dst[j] = s->bg_color[k] * mult; s 3402 libavfilter/vf_waveform.c dst += out->linesize[s->odesc->comp[k].plane] / 2; s 3407 libavfilter/vf_waveform.c for (k = 0, i = 0; k < s->ncomp; k++) { s 3408 libavfilter/vf_waveform.c if ((1 << k) & s->pcomp) { s 3409 libavfilter/vf_waveform.c const int plane = s->desc->comp[k].plane; s 3414 libavfilter/vf_waveform.c if (s->display == PARADE) { s 3415 libavfilter/vf_waveform.c offset_x = s->mode ? i++ * inlink->w : 0; s 3416 libavfilter/vf_waveform.c offset_y = s->mode ? 0 : i++ * inlink->h; s 3418 libavfilter/vf_waveform.c offset_y = s->mode ? i++ * s->size * !!s->display : 0; s 3419 libavfilter/vf_waveform.c offset_x = s->mode ? 0 : i++ * s->size * !!s->display; s 3427 libavfilter/vf_waveform.c ctx->internal->execute(ctx, s->waveform_slice, &td, NULL, ff_filter_get_nb_threads(ctx)); s 3428 libavfilter/vf_waveform.c switch (s->filter) { s 3430 libavfilter/vf_waveform.c if (s->bits <= 8) s 3431 libavfilter/vf_waveform.c envelope(s, out, plane, s->rgb || s->display == OVERLAY ? plane : 0, s->mode ? offset_x : offset_y); s 3433 libavfilter/vf_waveform.c envelope16(s, out, plane, s->rgb || s->display == OVERLAY ? plane : 0, s->mode ? offset_x : offset_y); s 3438 libavfilter/vf_waveform.c if (s->bits <= 8) s 3439 libavfilter/vf_waveform.c envelope(s, out, plane, plane, s->mode ? offset_x : offset_y); s 3441 libavfilter/vf_waveform.c envelope16(s, out, plane, plane, s->mode ? offset_x : offset_y); s 3444 libavfilter/vf_waveform.c if (s->bits <= 8) { s 3445 libavfilter/vf_waveform.c envelope(s, out, plane, plane, s->mode ? offset_x : offset_y); s 3446 libavfilter/vf_waveform.c envelope(s, out, plane, (plane + 1) % s->ncomp, s->mode ? offset_x : offset_y); s 3448 libavfilter/vf_waveform.c envelope16(s, out, plane, plane, s->mode ? offset_x : offset_y); s 3449 libavfilter/vf_waveform.c envelope16(s, out, plane, (plane + 1) % s->ncomp, s->mode ? offset_x : offset_y); s 3455 libavfilter/vf_waveform.c if (s->bits <= 8) { s 3456 libavfilter/vf_waveform.c envelope(s, out, plane, (plane + 0) % s->ncomp, s->mode ? offset_x : offset_y); s 3457 libavfilter/vf_waveform.c envelope(s, out, plane, (plane + 1) % s->ncomp, s->mode ? offset_x : offset_y); s 3458 libavfilter/vf_waveform.c envelope(s, out, plane, (plane + 2) % s->ncomp, s->mode ? offset_x : offset_y); s 3460 libavfilter/vf_waveform.c envelope16(s, out, plane, (plane + 0) % s->ncomp, s->mode ? offset_x : offset_y); s 3461 libavfilter/vf_waveform.c envelope16(s, out, plane, (plane + 1) % s->ncomp, s->mode ? offset_x : offset_y); s 3462 libavfilter/vf_waveform.c envelope16(s, out, plane, (plane + 2) % s->ncomp, s->mode ? offset_x : offset_y); s 3468 libavfilter/vf_waveform.c s->graticulef(s, out); s 3476 libavfilter/vf_waveform.c WaveformContext *s = ctx->priv; s 3478 libavfilter/vf_waveform.c av_freep(&s->peak); s 75 libavfilter/vf_weave.c WeaveContext *s = ctx->priv; s 80 libavfilter/vf_weave.c if (!s->double_weave) { s 89 libavfilter/vf_weave.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 92 libavfilter/vf_weave.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 93 libavfilter/vf_weave.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 95 libavfilter/vf_weave.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 103 libavfilter/vf_weave.c WeaveContext *s = ctx->priv; s 110 libavfilter/vf_weave.c if (!s->prev) { s 111 libavfilter/vf_weave.c s->prev = in; s 118 libavfilter/vf_weave.c av_frame_free(&s->prev); s 123 libavfilter/vf_weave.c weave = (s->double_weave && !(inlink->frame_count_out & 1)); s 124 libavfilter/vf_weave.c field1 = weave ? s->first_field : (!s->first_field); s 125 libavfilter/vf_weave.c field2 = weave ? (!s->first_field) : s->first_field; s 126 libavfilter/vf_weave.c for (i = 0; i < s->nb_planes; i++) { s 130 libavfilter/vf_weave.c s->linesize[i], s->planeheight[i]); s 133 libavfilter/vf_weave.c s->prev->data[i], s->prev->linesize[i], s 134 libavfilter/vf_weave.c s->linesize[i], s->planeheight[i]); s 137 libavfilter/vf_weave.c out->pts = s->double_weave ? s->prev->pts : in->pts / 2; s 139 libavfilter/vf_weave.c out->top_field_first = !s->first_field; s 141 libavfilter/vf_weave.c if (!s->double_weave) s 143 libavfilter/vf_weave.c av_frame_free(&s->prev); s 144 libavfilter/vf_weave.c if (s->double_weave) s 145 libavfilter/vf_weave.c s->prev = in; s 151 libavfilter/vf_weave.c WeaveContext *s = ctx->priv; s 153 libavfilter/vf_weave.c av_frame_free(&s->prev); s 187 libavfilter/vf_weave.c WeaveContext *s = ctx->priv; s 190 libavfilter/vf_weave.c s->double_weave = 1; s 83 libavfilter/vf_xbr.c #define ALPHA_BLEND_BASE(a, b, m, s) ( (RED_BLUE_MASK & (((a) & RED_BLUE_MASK) + (((((b) & RED_BLUE_MASK) - ((a) & RED_BLUE_MASK)) * (m)) >> (s)))) \ s 84 libavfilter/vf_xbr.c | (GREEN_MASK & (((a) & GREEN_MASK) + (((((b) & GREEN_MASK) - ((a) & GREEN_MASK)) * (m)) >> (s))))) s 336 libavfilter/vf_xbr.c XBRContext *s = ctx->priv; s 339 libavfilter/vf_xbr.c outlink->w = inlink->w * s->n; s 340 libavfilter/vf_xbr.c outlink->h = inlink->h * s->n; s 360 libavfilter/vf_xbr.c XBRContext *s = ctx->priv; s 373 libavfilter/vf_xbr.c td.rgbtoyuv = s->rgbtoyuv; s 374 libavfilter/vf_xbr.c ctx->internal->execute(ctx, s->func, &td, NULL, FFMIN(inlink->h, ff_filter_get_nb_threads(ctx))); s 385 libavfilter/vf_xbr.c XBRContext *s = ctx->priv; s 400 libavfilter/vf_xbr.c s->rgbtoyuv[c] = ((y++) << 16) + (u << 8) + v; s 406 libavfilter/vf_xbr.c s->func = xbrfuncs[s->n - 2]; s 139 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; s 141 libavfilter/vf_xfade.c av_expr_free(s->e); s 199 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 207 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 220 libavfilter/vf_xfade.c dst[x] = av_expr_eval(s->e, values, s); \ s 258 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 261 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 287 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 291 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 317 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 321 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 347 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 351 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 377 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 381 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 407 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 412 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 440 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 445 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 473 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 477 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 504 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 508 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 535 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 540 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 541 libavfilter/vf_xfade.c const int bg = s->black[p]; \ s 568 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 574 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 575 libavfilter/vf_xfade.c const int bg = s->black[p]; \ s 603 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 605 libavfilter/vf_xfade.c const float max = s->max_value; \ s 610 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 619 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 638 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 642 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 646 libavfilter/vf_xfade.c const int bg = s->black[p]; \ s 671 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 675 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 679 libavfilter/vf_xfade.c const int bg = s->white[p]; \ s 704 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 712 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 732 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 740 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 760 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 768 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 788 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 795 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 815 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 822 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 842 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 851 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 871 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 880 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 900 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 907 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 927 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 934 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 954 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 961 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 981 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 988 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1015 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1021 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1041 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1053 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1073 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1082 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1102 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1111 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1131 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1140 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1160 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1170 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1190 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1199 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1219 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1229 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1249 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1258 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1278 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; \ s 1288 libavfilter/vf_xfade.c for (int p = 0; p < s->nb_planes; p++) { \ s 1304 libavfilter/vf_xfade.c XFadeContext *s = priv; s 1305 libavfilter/vf_xfade.c AVFrame *in = s->xf[nb]; s 1306 libavfilter/vf_xfade.c const uint8_t *src = in->data[FFMIN(plane, s->nb_planes - 1)]; s 1307 libavfilter/vf_xfade.c int linesize = in->linesize[FFMIN(plane, s->nb_planes - 1)]; s 1316 libavfilter/vf_xfade.c if (s->depth > 8) { s 1341 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; s 1374 libavfilter/vf_xfade.c s->depth = pix_desc->comp[0].depth; s 1376 libavfilter/vf_xfade.c s->nb_planes = av_pix_fmt_count_planes(inlink0->format); s 1377 libavfilter/vf_xfade.c s->max_value = (1 << s->depth) - 1; s 1378 libavfilter/vf_xfade.c s->black[0] = 0; s 1379 libavfilter/vf_xfade.c s->black[1] = s->black[2] = is_rgb ? 0 : s->max_value / 2; s 1380 libavfilter/vf_xfade.c s->black[3] = s->max_value; s 1381 libavfilter/vf_xfade.c s->white[0] = s->white[3] = s->max_value; s 1382 libavfilter/vf_xfade.c s->white[1] = s->white[2] = is_rgb ? s->max_value : s->max_value / 2; s 1384 libavfilter/vf_xfade.c s->first_pts = s->last_pts = s->pts = AV_NOPTS_VALUE; s 1386 libavfilter/vf_xfade.c if (s->duration) s 1387 libavfilter/vf_xfade.c s->duration_pts = av_rescale_q(s->duration, AV_TIME_BASE_Q, outlink->time_base); s 1388 libavfilter/vf_xfade.c if (s->offset) s 1389 libavfilter/vf_xfade.c s->offset_pts = av_rescale_q(s->offset, AV_TIME_BASE_Q, outlink->time_base); s 1391 libavfilter/vf_xfade.c switch (s->transition) { s 1392 libavfilter/vf_xfade.c case CUSTOM: s->transitionf = s->depth <= 8 ? custom8_transition : custom16_transition; break; s 1393 libavfilter/vf_xfade.c case FADE: s->transitionf = s->depth <= 8 ? fade8_transition : fade16_transition; break; s 1394 libavfilter/vf_xfade.c case WIPELEFT: s->transitionf = s->depth <= 8 ? wipeleft8_transition : wipeleft16_transition; break; s 1395 libavfilter/vf_xfade.c case WIPERIGHT: s->transitionf = s->depth <= 8 ? wiperight8_transition : wiperight16_transition; break; s 1396 libavfilter/vf_xfade.c case WIPEUP: s->transitionf = s->depth <= 8 ? wipeup8_transition : wipeup16_transition; break; s 1397 libavfilter/vf_xfade.c case WIPEDOWN: s->transitionf = s->depth <= 8 ? wipedown8_transition : wipedown16_transition; break; s 1398 libavfilter/vf_xfade.c case SLIDELEFT: s->transitionf = s->depth <= 8 ? slideleft8_transition : slideleft16_transition; break; s 1399 libavfilter/vf_xfade.c case SLIDERIGHT: s->transitionf = s->depth <= 8 ? slideright8_transition : slideright16_transition; break; s 1400 libavfilter/vf_xfade.c case SLIDEUP: s->transitionf = s->depth <= 8 ? slideup8_transition : slideup16_transition; break; s 1401 libavfilter/vf_xfade.c case SLIDEDOWN: s->transitionf = s->depth <= 8 ? slidedown8_transition : slidedown16_transition; break; s 1402 libavfilter/vf_xfade.c case CIRCLECROP: s->transitionf = s->depth <= 8 ? circlecrop8_transition : circlecrop16_transition; break; s 1403 libavfilter/vf_xfade.c case RECTCROP: s->transitionf = s->depth <= 8 ? rectcrop8_transition : rectcrop16_transition; break; s 1404 libavfilter/vf_xfade.c case DISTANCE: s->transitionf = s->depth <= 8 ? distance8_transition : distance16_transition; break; s 1405 libavfilter/vf_xfade.c case FADEBLACK: s->transitionf = s->depth <= 8 ? fadeblack8_transition : fadeblack16_transition; break; s 1406 libavfilter/vf_xfade.c case FADEWHITE: s->transitionf = s->depth <= 8 ? fadewhite8_transition : fadewhite16_transition; break; s 1407 libavfilter/vf_xfade.c case RADIAL: s->transitionf = s->depth <= 8 ? radial8_transition : radial16_transition; break; s 1408 libavfilter/vf_xfade.c case SMOOTHLEFT: s->transitionf = s->depth <= 8 ? smoothleft8_transition : smoothleft16_transition; break; s 1409 libavfilter/vf_xfade.c case SMOOTHRIGHT:s->transitionf = s->depth <= 8 ? smoothright8_transition: smoothright16_transition;break; s 1410 libavfilter/vf_xfade.c case SMOOTHUP: s->transitionf = s->depth <= 8 ? smoothup8_transition : smoothup16_transition; break; s 1411 libavfilter/vf_xfade.c case SMOOTHDOWN: s->transitionf = s->depth <= 8 ? smoothdown8_transition : smoothdown16_transition; break; s 1412 libavfilter/vf_xfade.c case CIRCLEOPEN: s->transitionf = s->depth <= 8 ? circleopen8_transition : circleopen16_transition; break; s 1413 libavfilter/vf_xfade.c case CIRCLECLOSE:s->transitionf = s->depth <= 8 ? circleclose8_transition: circleclose16_transition;break; s 1414 libavfilter/vf_xfade.c case VERTOPEN: s->transitionf = s->depth <= 8 ? vertopen8_transition : vertopen16_transition; break; s 1415 libavfilter/vf_xfade.c case VERTCLOSE: s->transitionf = s->depth <= 8 ? vertclose8_transition : vertclose16_transition; break; s 1416 libavfilter/vf_xfade.c case HORZOPEN: s->transitionf = s->depth <= 8 ? horzopen8_transition : horzopen16_transition; break; s 1417 libavfilter/vf_xfade.c case HORZCLOSE: s->transitionf = s->depth <= 8 ? horzclose8_transition : horzclose16_transition; break; s 1418 libavfilter/vf_xfade.c case DISSOLVE: s->transitionf = s->depth <= 8 ? dissolve8_transition : dissolve16_transition; break; s 1419 libavfilter/vf_xfade.c case PIXELIZE: s->transitionf = s->depth <= 8 ? pixelize8_transition : pixelize16_transition; break; s 1420 libavfilter/vf_xfade.c case DIAGTL: s->transitionf = s->depth <= 8 ? diagtl8_transition : diagtl16_transition; break; s 1421 libavfilter/vf_xfade.c case DIAGTR: s->transitionf = s->depth <= 8 ? diagtr8_transition : diagtr16_transition; break; s 1422 libavfilter/vf_xfade.c case DIAGBL: s->transitionf = s->depth <= 8 ? diagbl8_transition : diagbl16_transition; break; s 1423 libavfilter/vf_xfade.c case DIAGBR: s->transitionf = s->depth <= 8 ? diagbr8_transition : diagbr16_transition; break; s 1424 libavfilter/vf_xfade.c case HLSLICE: s->transitionf = s->depth <= 8 ? hlslice8_transition : hlslice16_transition; break; s 1425 libavfilter/vf_xfade.c case HRSLICE: s->transitionf = s->depth <= 8 ? hrslice8_transition : hrslice16_transition; break; s 1426 libavfilter/vf_xfade.c case VUSLICE: s->transitionf = s->depth <= 8 ? vuslice8_transition : vuslice16_transition; break; s 1427 libavfilter/vf_xfade.c case VDSLICE: s->transitionf = s->depth <= 8 ? vdslice8_transition : vdslice16_transition; break; s 1430 libavfilter/vf_xfade.c if (s->transition == CUSTOM) { s 1442 libavfilter/vf_xfade.c if (!s->custom_str) s 1444 libavfilter/vf_xfade.c ret = av_expr_parse(&s->e, s->custom_str, var_names, s 1455 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; s 1461 libavfilter/vf_xfade.c s->transitionf(ctx, td->xf[0], td->xf[1], td->out, td->progress, slice_start, slice_end, jobnr); s 1468 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; s 1470 libavfilter/vf_xfade.c float progress = av_clipf(1.f - ((float)(s->pts - s->first_pts - s->offset_pts) / s->duration_pts), 0.f, 1.f); s 1481 libavfilter/vf_xfade.c out->pts = s->pts; s 1488 libavfilter/vf_xfade.c XFadeContext *s = ctx->priv; s 1496 libavfilter/vf_xfade.c if (s->xfade_is_over) { s 1501 libavfilter/vf_xfade.c in->pts = (in->pts - s->last_pts) + s->pts; s 1504 libavfilter/vf_xfade.c ff_outlink_set_status(outlink, status, s->pts); s 1515 libavfilter/vf_xfade.c s->xf[0] = ff_inlink_peek_frame(ctx->inputs[0], 0); s 1516 libavfilter/vf_xfade.c if (s->xf[0]) { s 1517 libavfilter/vf_xfade.c if (s->first_pts == AV_NOPTS_VALUE) { s 1518 libavfilter/vf_xfade.c s->first_pts = s->xf[0]->pts; s 1520 libavfilter/vf_xfade.c s->pts = s->xf[0]->pts; s 1521 libavfilter/vf_xfade.c if (s->first_pts + s->offset_pts > s->xf[0]->pts) { s 1522 libavfilter/vf_xfade.c s->xf[0] = NULL; s 1523 libavfilter/vf_xfade.c s->need_second = 0; s 1528 libavfilter/vf_xfade.c s->need_second = 1; s 1532 libavfilter/vf_xfade.c if (s->xf[0] && ff_inlink_queued_frames(ctx->inputs[1]) > 0) { s 1533 libavfilter/vf_xfade.c ff_inlink_consume_frame(ctx->inputs[0], &s->xf[0]); s 1534 libavfilter/vf_xfade.c ff_inlink_consume_frame(ctx->inputs[1], &s->xf[1]); s 1536 libavfilter/vf_xfade.c s->last_pts = s->xf[1]->pts; s 1537 libavfilter/vf_xfade.c s->pts = s->xf[0]->pts; s 1538 libavfilter/vf_xfade.c if (s->xf[0]->pts - (s->first_pts + s->offset_pts) > s->duration_pts) s 1539 libavfilter/vf_xfade.c s->xfade_is_over = 1; s 1540 libavfilter/vf_xfade.c ret = xfade_frame(ctx, s->xf[0], s->xf[1]); s 1541 libavfilter/vf_xfade.c av_frame_free(&s->xf[0]); s 1542 libavfilter/vf_xfade.c av_frame_free(&s->xf[1]); s 1553 libavfilter/vf_xfade.c if (!s->eof[0] && ff_outlink_get_status(ctx->inputs[0])) { s 1554 libavfilter/vf_xfade.c s->eof[0] = 1; s 1555 libavfilter/vf_xfade.c s->xfade_is_over = 1; s 1557 libavfilter/vf_xfade.c if (!s->eof[1] && ff_outlink_get_status(ctx->inputs[1])) { s 1558 libavfilter/vf_xfade.c s->eof[1] = 1; s 1560 libavfilter/vf_xfade.c if (!s->eof[0] && !s->xf[0]) s 1562 libavfilter/vf_xfade.c if (!s->eof[1] && (s->need_second || s->eof[0])) s 1564 libavfilter/vf_xfade.c if (s->eof[0] && s->eof[1] && ( s 371 libavfilter/vf_xfade_opencl.c XFadeOpenCLContext *s = inlink->dst->priv; s 373 libavfilter/vf_xfade_opencl.c return s->xfade_is_over || !s->need_second ? s 97 libavfilter/vf_xmedian.c XMedianContext *s = ctx->priv; s 100 libavfilter/vf_xmedian.c s->tmedian = !strcmp(ctx->filter->name, "tmedian"); s 102 libavfilter/vf_xmedian.c if (!s->tmedian) { s 103 libavfilter/vf_xmedian.c s->radius = s->nb_inputs / 2; s 105 libavfilter/vf_xmedian.c s->nb_inputs = s->radius * 2 + 1; s 108 libavfilter/vf_xmedian.c if (s->nb_inputs & 1) s 109 libavfilter/vf_xmedian.c s->index = s->radius * 2.f * s->percentile; s 111 libavfilter/vf_xmedian.c s->index = av_clip(s->radius * 2.f * s->percentile, 1, s->nb_inputs - 1); s 112 libavfilter/vf_xmedian.c s->frames = av_calloc(s->nb_inputs, sizeof(*s->frames)); s 113 libavfilter/vf_xmedian.c if (!s->frames) s 116 libavfilter/vf_xmedian.c for (int i = 0; i < s->nb_inputs && !s->tmedian; i++) { s 146 libavfilter/vf_xmedian.c XMedianContext *s = ctx->priv; s 150 libavfilter/vf_xmedian.c const int nb_inputs = s->nb_inputs; s 151 libavfilter/vf_xmedian.c const int radius = s->radius; s 152 libavfilter/vf_xmedian.c const int index = s->index; s 155 libavfilter/vf_xmedian.c for (int p = 0; p < s->nb_planes; p++) { s 156 libavfilter/vf_xmedian.c const int slice_start = (s->height[p] * jobnr) / nb_jobs; s 157 libavfilter/vf_xmedian.c const int slice_end = (s->height[p] * (jobnr+1)) / nb_jobs; s 160 libavfilter/vf_xmedian.c if (!((1 << p) & s->planes)) { s 164 libavfilter/vf_xmedian.c s->linesize[p], slice_end - slice_start); s 169 libavfilter/vf_xmedian.c for (int x = 0; x < s->width[p]; x++) { s 191 libavfilter/vf_xmedian.c XMedianContext *s = ctx->priv; s 195 libavfilter/vf_xmedian.c const int nb_inputs = s->nb_inputs; s 196 libavfilter/vf_xmedian.c const int radius = s->radius; s 197 libavfilter/vf_xmedian.c const int index = s->index; s 200 libavfilter/vf_xmedian.c for (int p = 0; p < s->nb_planes; p++) { s 201 libavfilter/vf_xmedian.c const int slice_start = (s->height[p] * jobnr) / nb_jobs; s 202 libavfilter/vf_xmedian.c const int slice_end = (s->height[p] * (jobnr+1)) / nb_jobs; s 205 libavfilter/vf_xmedian.c if (!((1 << p) & s->planes)) { s 209 libavfilter/vf_xmedian.c s->linesize[p], slice_end - slice_start); s 214 libavfilter/vf_xmedian.c for (int x = 0; x < s->width[p]; x++) { s 236 libavfilter/vf_xmedian.c XMedianContext *s = fs->opaque; s 237 libavfilter/vf_xmedian.c AVFrame **in = s->frames; s 242 libavfilter/vf_xmedian.c for (i = 0; i < s->nb_inputs; i++) { s 243 libavfilter/vf_xmedian.c if ((ret = ff_framesync_get_frame(&s->fs, i, &in[i], 0)) < 0) s 250 libavfilter/vf_xmedian.c out->pts = av_rescale_q(s->fs.pts, s->fs.time_base, outlink->time_base); s 254 libavfilter/vf_xmedian.c ctx->internal->execute(ctx, s->median_frames, &td, NULL, FFMIN(s->height[1], ff_filter_get_nb_threads(ctx))); s 262 libavfilter/vf_xmedian.c XMedianContext *s = ctx->priv; s 271 libavfilter/vf_xmedian.c for (int i = 1; i < s->nb_inputs && !s->tmedian; i++) { s 278 libavfilter/vf_xmedian.c s->desc = av_pix_fmt_desc_get(outlink->format); s 279 libavfilter/vf_xmedian.c if (!s->desc) s 281 libavfilter/vf_xmedian.c s->nb_planes = av_pix_fmt_count_planes(outlink->format); s 282 libavfilter/vf_xmedian.c s->depth = s->desc->comp[0].depth; s 283 libavfilter/vf_xmedian.c s->max = (1 << s->depth) - 1; s 285 libavfilter/vf_xmedian.c if (s->depth <= 8) s 286 libavfilter/vf_xmedian.c s->median_frames = median_frames8; s 288 libavfilter/vf_xmedian.c s->median_frames = median_frames16; s 290 libavfilter/vf_xmedian.c if ((ret = av_image_fill_linesizes(s->linesize, inlink->format, inlink->w)) < 0) s 293 libavfilter/vf_xmedian.c s->width[1] = s->width[2] = AV_CEIL_RSHIFT(inlink->w, s->desc->log2_chroma_w); s 294 libavfilter/vf_xmedian.c s->width[0] = s->width[3] = inlink->w; s 295 libavfilter/vf_xmedian.c s->height[1] = s->height[2] = AV_CEIL_RSHIFT(inlink->h, s->desc->log2_chroma_h); s 296 libavfilter/vf_xmedian.c s->height[0] = s->height[3] = inlink->h; s 298 libavfilter/vf_xmedian.c if (s->tmedian) s 306 libavfilter/vf_xmedian.c if ((ret = ff_framesync_init(&s->fs, ctx, s->nb_inputs)) < 0) s 309 libavfilter/vf_xmedian.c in = s->fs.in; s 310 libavfilter/vf_xmedian.c s->fs.opaque = s; s 311 libavfilter/vf_xmedian.c s->fs.on_event = process_frame; s 313 libavfilter/vf_xmedian.c for (i = 0; i < s->nb_inputs; i++) { s 322 libavfilter/vf_xmedian.c ret = ff_framesync_configure(&s->fs); s 323 libavfilter/vf_xmedian.c outlink->time_base = s->fs.time_base; s 330 libavfilter/vf_xmedian.c XMedianContext *s = ctx->priv; s 332 libavfilter/vf_xmedian.c ff_framesync_uninit(&s->fs); s 334 libavfilter/vf_xmedian.c for (int i = 0; i < ctx->nb_inputs && !s->tmedian; i++) s 336 libavfilter/vf_xmedian.c for (int i = 0; i < s->nb_frames && s->frames && s->tmedian; i++) s 337 libavfilter/vf_xmedian.c av_frame_free(&s->frames[i]); s 338 libavfilter/vf_xmedian.c av_freep(&s->frames); s 343 libavfilter/vf_xmedian.c XMedianContext *s = ctx->priv; s 344 libavfilter/vf_xmedian.c return ff_framesync_activate(&s->fs); s 389 libavfilter/vf_xmedian.c XMedianContext *s = ctx->priv; s 393 libavfilter/vf_xmedian.c if (s->nb_frames < s->nb_inputs) { s 394 libavfilter/vf_xmedian.c s->frames[s->nb_frames] = in; s 395 libavfilter/vf_xmedian.c s->nb_frames++; s 396 libavfilter/vf_xmedian.c if (s->nb_frames < s->nb_inputs) s 399 libavfilter/vf_xmedian.c av_frame_free(&s->frames[0]); s 400 libavfilter/vf_xmedian.c memmove(&s->frames[0], &s->frames[1], sizeof(*s->frames) * (s->nb_inputs - 1)); s 401 libavfilter/vf_xmedian.c s->frames[s->nb_inputs - 1] = in; s 405 libavfilter/vf_xmedian.c out = av_frame_clone(s->frames[0]); s 414 libavfilter/vf_xmedian.c out->pts = s->frames[0]->pts; s 417 libavfilter/vf_xmedian.c td.in = s->frames; s 418 libavfilter/vf_xmedian.c ctx->internal->execute(ctx, s->median_frames, &td, NULL, FFMIN(s->height[0], ff_filter_get_nb_threads(ctx))); s 192 libavfilter/vf_yadif.c YADIFContext *s = ctx->priv; s 194 libavfilter/vf_yadif.c int refs = s->cur->linesize[td->plane]; s 195 libavfilter/vf_yadif.c int df = (s->csp->comp[td->plane].depth + 7) / 8; s 207 libavfilter/vf_yadif.c uint8_t *prev = &s->prev->data[td->plane][y * refs]; s 208 libavfilter/vf_yadif.c uint8_t *cur = &s->cur ->data[td->plane][y * refs]; s 209 libavfilter/vf_yadif.c uint8_t *next = &s->next->data[td->plane][y * refs]; s 211 libavfilter/vf_yadif.c int mode = y == 1 || y + 2 == td->h ? 2 : s->mode; s 212 libavfilter/vf_yadif.c s->filter_line(dst + pix_3, prev + pix_3, cur + pix_3, s 217 libavfilter/vf_yadif.c s->filter_edges(dst, prev, cur, next, td->w, s 223 libavfilter/vf_yadif.c &s->cur->data[td->plane][y * refs], td->w * df); s 294 libavfilter/vf_yadif.c YADIFContext *s = ctx->priv; s 301 libavfilter/vf_yadif.c if(s->mode & 1) s 310 libavfilter/vf_yadif.c s->csp = av_pix_fmt_desc_get(outlink->format); s 311 libavfilter/vf_yadif.c s->filter = filter; s 312 libavfilter/vf_yadif.c if (s->csp->comp[0].depth > 8) { s 313 libavfilter/vf_yadif.c s->filter_line = filter_line_c_16bit; s 314 libavfilter/vf_yadif.c s->filter_edges = filter_edges_16bit; s 316 libavfilter/vf_yadif.c s->filter_line = filter_line_c; s 317 libavfilter/vf_yadif.c s->filter_edges = filter_edges; s 321 libavfilter/vf_yadif.c ff_yadif_init_x86(s); s 51 libavfilter/vf_yadif_cuda.c #define CHECK_CU(x) FF_CUDA_CHECK_DL(ctx, s->hwctx->internal->cuda_dl, x) s 65 libavfilter/vf_yadif_cuda.c DeintCUDAContext *s = ctx->priv; s 66 libavfilter/vf_yadif_cuda.c CudaFunctions *cu = s->hwctx->internal->cuda_dl; s 69 libavfilter/vf_yadif_cuda.c int skip_spatial_check = s->yadif.mode&2; s 108 libavfilter/vf_yadif_cuda.c 0, s->stream, args, NULL)); s 124 libavfilter/vf_yadif_cuda.c DeintCUDAContext *s = ctx->priv; s 125 libavfilter/vf_yadif_cuda.c YADIFContext *y = &s->yadif; s 126 libavfilter/vf_yadif_cuda.c CudaFunctions *cu = s->hwctx->internal->cuda_dl; s 130 libavfilter/vf_yadif_cuda.c ret = CHECK_CU(cu->cuCtxPushCurrent(s->cu_ctx)); s 154 libavfilter/vf_yadif_cuda.c func = channels == 1 ? s->cu_func_uchar : s->cu_func_uchar2; s 158 libavfilter/vf_yadif_cuda.c func = channels == 1 ? s->cu_func_ushort : s->cu_func_ushort2; s 191 libavfilter/vf_yadif_cuda.c DeintCUDAContext *s = ctx->priv; s 192 libavfilter/vf_yadif_cuda.c YADIFContext *y = &s->yadif; s 194 libavfilter/vf_yadif_cuda.c if (s->hwctx && s->cu_module) { s 195 libavfilter/vf_yadif_cuda.c CudaFunctions *cu = s->hwctx->internal->cuda_dl; s 196 libavfilter/vf_yadif_cuda.c CHECK_CU(cu->cuCtxPushCurrent(s->cu_ctx)); s 197 libavfilter/vf_yadif_cuda.c CHECK_CU(cu->cuModuleUnload(s->cu_module)); s 205 libavfilter/vf_yadif_cuda.c av_buffer_unref(&s->device_ref); s 206 libavfilter/vf_yadif_cuda.c s->hwctx = NULL; s 207 libavfilter/vf_yadif_cuda.c av_buffer_unref(&s->input_frames_ref); s 208 libavfilter/vf_yadif_cuda.c s->input_frames = NULL; s 231 libavfilter/vf_yadif_cuda.c DeintCUDAContext *s = ctx->priv; s 239 libavfilter/vf_yadif_cuda.c s->input_frames_ref = av_buffer_ref(inlink->hw_frames_ctx); s 240 libavfilter/vf_yadif_cuda.c if (!s->input_frames_ref) { s 245 libavfilter/vf_yadif_cuda.c s->input_frames = (AVHWFramesContext*)s->input_frames_ref->data; s 254 libavfilter/vf_yadif_cuda.c DeintCUDAContext *s = ctx->priv; s 255 libavfilter/vf_yadif_cuda.c YADIFContext *y = &s->yadif; s 260 libavfilter/vf_yadif_cuda.c av_assert0(s->input_frames); s 261 libavfilter/vf_yadif_cuda.c s->device_ref = av_buffer_ref(s->input_frames->device_ref); s 262 libavfilter/vf_yadif_cuda.c if (!s->device_ref) { s 267 libavfilter/vf_yadif_cuda.c s->hwctx = ((AVHWDeviceContext*)s->device_ref->data)->hwctx; s 268 libavfilter/vf_yadif_cuda.c s->cu_ctx = s->hwctx->cuda_ctx; s 269 libavfilter/vf_yadif_cuda.c s->stream = s->hwctx->stream; s 270 libavfilter/vf_yadif_cuda.c cu = s->hwctx->internal->cuda_dl; s 272 libavfilter/vf_yadif_cuda.c link->hw_frames_ctx = av_hwframe_ctx_alloc(s->device_ref); s 283 libavfilter/vf_yadif_cuda.c output_frames->sw_format = s->input_frames->sw_format; s 318 libavfilter/vf_yadif_cuda.c ret = CHECK_CU(cu->cuCtxPushCurrent(s->cu_ctx)); s 322 libavfilter/vf_yadif_cuda.c ret = CHECK_CU(cu->cuModuleLoadData(&s->cu_module, vf_yadif_cuda_ptx)); s 326 libavfilter/vf_yadif_cuda.c ret = CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_uchar, s->cu_module, "yadif_uchar")); s 330 libavfilter/vf_yadif_cuda.c ret = CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_uchar2, s->cu_module, "yadif_uchar2")); s 334 libavfilter/vf_yadif_cuda.c ret = CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_ushort, s->cu_module, "yadif_ushort")); s 338 libavfilter/vf_yadif_cuda.c ret = CHECK_CU(cu->cuModuleGetFunction(&s->cu_func_ushort2, s->cu_module, "yadif_ushort2")); s 57 libavfilter/vf_yaepblur.c YAEPContext *s = ctx->priv; s 58 libavfilter/vf_yaepblur.c av_freep(&s->sat); s 59 libavfilter/vf_yaepblur.c av_freep(&s->square_sat); s 103 libavfilter/vf_yaepblur.c YAEPContext *s = ctx->priv; \ s 108 libavfilter/vf_yaepblur.c const int sat_linesize = s->sat_linesize; \ s 113 libavfilter/vf_yaepblur.c uint64_t *sat = s->sat + (starty + 1) * sat_linesize; \ s 114 libavfilter/vf_yaepblur.c uint64_t *square_sat = s->square_sat + (starty + 1) * sat_linesize; \ s 139 libavfilter/vf_yaepblur.c YAEPContext *s = ctx->priv; s 143 libavfilter/vf_yaepblur.c const int sat_linesize = s->sat_linesize; s 152 libavfilter/vf_yaepblur.c sat = s->sat + x + 1; s 153 libavfilter/vf_yaepblur.c square_sat = s->square_sat + x + 1; s 169 libavfilter/vf_yaepblur.c YAEPContext *s = ctx->priv; \ s 175 libavfilter/vf_yaepblur.c const int sat_linesize = s->sat_linesize; \ s 176 libavfilter/vf_yaepblur.c const int sigma = s->sigma; \ s 177 libavfilter/vf_yaepblur.c const int radius = s->radius; \ s 179 libavfilter/vf_yaepblur.c uint64_t *sat = s->sat; \ s 180 libavfilter/vf_yaepblur.c uint64_t *square_sat = s->square_sat; \ s 223 libavfilter/vf_yaepblur.c YAEPContext *s = ctx->priv; s 241 libavfilter/vf_yaepblur.c for (plane = 0; plane < s->nb_planes; plane++) { s 242 libavfilter/vf_yaepblur.c if (!s->radius || !(s->planes & (1<<plane))) { s 246 libavfilter/vf_yaepblur.c s->planewidth[plane] * ((s->depth + 7) / 8), s 247 libavfilter/vf_yaepblur.c s->planeheight[plane]); s 252 libavfilter/vf_yaepblur.c td.width = s->planewidth[plane]; s 253 libavfilter/vf_yaepblur.c td.height = s->planeheight[plane]; s 256 libavfilter/vf_yaepblur.c ctx->internal->execute(ctx, s->pre_calculate_row, &td, NULL, FFMIN(td.height, nb_threads)); s 261 libavfilter/vf_yaepblur.c ctx->internal->execute(ctx, s->filter_slice, &td, NULL, FFMIN(td.height, nb_threads)); s 272 libavfilter/vf_yaepblur.c YAEPContext *s = inlink->dst->priv; s 275 libavfilter/vf_yaepblur.c s->depth = desc->comp[0].depth; s 276 libavfilter/vf_yaepblur.c s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w); s 277 libavfilter/vf_yaepblur.c s->planewidth[0] = s->planewidth[3] = inlink->w; s 278 libavfilter/vf_yaepblur.c s->planeheight[1] = s->planeheight[2] = AV_CEIL_RSHIFT(inlink->h, desc->log2_chroma_h); s 279 libavfilter/vf_yaepblur.c s->planeheight[0] = s->planeheight[3] = inlink->h; s 280 libavfilter/vf_yaepblur.c s->nb_planes = av_pix_fmt_count_planes(inlink->format); s 282 libavfilter/vf_yaepblur.c s->radius = FFMIN(s->radius, AV_CEIL_RSHIFT(FFMIN(inlink->w, inlink->h), 1)); s 284 libavfilter/vf_yaepblur.c if (s->depth <= 8) { s 285 libavfilter/vf_yaepblur.c s->pre_calculate_row = pre_calculate_row_byte; s 286 libavfilter/vf_yaepblur.c s->filter_slice = filter_slice_byte; s 288 libavfilter/vf_yaepblur.c s->pre_calculate_row = pre_calculate_row_word; s 289 libavfilter/vf_yaepblur.c s->filter_slice = filter_slice_word; s 293 libavfilter/vf_yaepblur.c s->sat_linesize = inlink->w + 1; s 294 libavfilter/vf_yaepblur.c s->sat = av_mallocz_array(inlink->h + 1, s->sat_linesize*sizeof(*s->sat)); s 295 libavfilter/vf_yaepblur.c if (!s->sat) s 298 libavfilter/vf_yaepblur.c s->square_sat = av_mallocz_array(inlink->h + 1, s->sat_linesize*sizeof(*s->square_sat)); s 299 libavfilter/vf_yaepblur.c if (!s->square_sat) s 119 libavfilter/vf_zoompan.c ZPContext *s = ctx->priv; s 121 libavfilter/vf_zoompan.c s->prev_zoom = 1; s 128 libavfilter/vf_zoompan.c ZPContext *s = ctx->priv; s 131 libavfilter/vf_zoompan.c outlink->w = s->w; s 132 libavfilter/vf_zoompan.c outlink->h = s->h; s 133 libavfilter/vf_zoompan.c outlink->time_base = av_inv_q(s->framerate); s 134 libavfilter/vf_zoompan.c outlink->frame_rate = s->framerate; s 135 libavfilter/vf_zoompan.c s->desc = av_pix_fmt_desc_get(outlink->format); s 136 libavfilter/vf_zoompan.c s->finished = 1; s 138 libavfilter/vf_zoompan.c ret = av_expr_parse(&s->zoom_expr, s->zoom_expr_str, var_names, NULL, NULL, NULL, NULL, 0, ctx); s 142 libavfilter/vf_zoompan.c ret = av_expr_parse(&s->x_expr, s->x_expr_str, var_names, NULL, NULL, NULL, NULL, 0, ctx); s 146 libavfilter/vf_zoompan.c ret = av_expr_parse(&s->y_expr, s->y_expr_str, var_names, NULL, NULL, NULL, NULL, 0, ctx); s 156 libavfilter/vf_zoompan.c ZPContext *s = ctx->priv; s 158 libavfilter/vf_zoompan.c int64_t pts = s->frame_count; s 164 libavfilter/vf_zoompan.c var_values[VAR_PX] = s->x; s 165 libavfilter/vf_zoompan.c var_values[VAR_PY] = s->y; s 166 libavfilter/vf_zoompan.c var_values[VAR_PZOOM] = s->prev_zoom; s 167 libavfilter/vf_zoompan.c var_values[VAR_PDURATION] = s->prev_nb_frames; s 172 libavfilter/vf_zoompan.c *zoom = av_expr_eval(s->zoom_expr, var_values, NULL); s 179 libavfilter/vf_zoompan.c *dx = av_expr_eval(s->x_expr, var_values, NULL); s 183 libavfilter/vf_zoompan.c x &= ~((1 << s->desc->log2_chroma_w) - 1); s 185 libavfilter/vf_zoompan.c *dy = av_expr_eval(s->y_expr, var_values, NULL); s 189 libavfilter/vf_zoompan.c y &= ~((1 << s->desc->log2_chroma_h) - 1); s 197 libavfilter/vf_zoompan.c px[1] = px[2] = AV_CEIL_RSHIFT(x, s->desc->log2_chroma_w); s 200 libavfilter/vf_zoompan.c py[1] = py[2] = AV_CEIL_RSHIFT(y, s->desc->log2_chroma_h); s 203 libavfilter/vf_zoompan.c s->sws = sws_alloc_context(); s 204 libavfilter/vf_zoompan.c if (!s->sws) { s 212 libavfilter/vf_zoompan.c av_opt_set_int(s->sws, "srcw", w, 0); s 213 libavfilter/vf_zoompan.c av_opt_set_int(s->sws, "srch", h, 0); s 214 libavfilter/vf_zoompan.c av_opt_set_int(s->sws, "src_format", in->format, 0); s 215 libavfilter/vf_zoompan.c av_opt_set_int(s->sws, "dstw", outlink->w, 0); s 216 libavfilter/vf_zoompan.c av_opt_set_int(s->sws, "dsth", outlink->h, 0); s 217 libavfilter/vf_zoompan.c av_opt_set_int(s->sws, "dst_format", outlink->format, 0); s 218 libavfilter/vf_zoompan.c av_opt_set_int(s->sws, "sws_flags", SWS_BICUBIC, 0); s 220 libavfilter/vf_zoompan.c if ((ret = sws_init_context(s->sws, NULL, NULL)) < 0) s 223 libavfilter/vf_zoompan.c sws_scale(s->sws, (const uint8_t *const *)&input, in->linesize, 0, h, out->data, out->linesize); s 226 libavfilter/vf_zoompan.c s->frame_count++; s 229 libavfilter/vf_zoompan.c sws_freeContext(s->sws); s 230 libavfilter/vf_zoompan.c s->sws = NULL; s 231 libavfilter/vf_zoompan.c s->current_frame++; s 233 libavfilter/vf_zoompan.c if (s->current_frame >= s->nb_frames) { s 235 libavfilter/vf_zoompan.c s->x = *dx; s 237 libavfilter/vf_zoompan.c s->y = *dy; s 239 libavfilter/vf_zoompan.c s->prev_zoom = *zoom; s 240 libavfilter/vf_zoompan.c s->prev_nb_frames = s->nb_frames; s 241 libavfilter/vf_zoompan.c s->nb_frames = 0; s 242 libavfilter/vf_zoompan.c s->current_frame = 0; s 243 libavfilter/vf_zoompan.c av_frame_free(&s->in); s 244 libavfilter/vf_zoompan.c s->finished = 1; s 248 libavfilter/vf_zoompan.c sws_freeContext(s->sws); s 249 libavfilter/vf_zoompan.c s->sws = NULL; s 256 libavfilter/vf_zoompan.c ZPContext *s = ctx->priv; s 264 libavfilter/vf_zoompan.c if (s->in && ff_outlink_frame_wanted(outlink)) { s 267 libavfilter/vf_zoompan.c ret = output_single_frame(ctx, s->in, s->var_values, s->current_frame, s 273 libavfilter/vf_zoompan.c if (!s->in && (ret = ff_inlink_consume_frame(inlink, &s->in)) > 0) { s 276 libavfilter/vf_zoompan.c s->finished = 0; s 277 libavfilter/vf_zoompan.c s->var_values[VAR_IN_W] = s->var_values[VAR_IW] = s->in->width; s 278 libavfilter/vf_zoompan.c s->var_values[VAR_IN_H] = s->var_values[VAR_IH] = s->in->height; s 279 libavfilter/vf_zoompan.c s->var_values[VAR_OUT_W] = s->var_values[VAR_OW] = s->w; s 280 libavfilter/vf_zoompan.c s->var_values[VAR_OUT_H] = s->var_values[VAR_OH] = s->h; s 281 libavfilter/vf_zoompan.c s->var_values[VAR_IN] = inlink->frame_count_out - 1; s 282 libavfilter/vf_zoompan.c s->var_values[VAR_ON] = outlink->frame_count_in; s 283 libavfilter/vf_zoompan.c s->var_values[VAR_PX] = s->x; s 284 libavfilter/vf_zoompan.c s->var_values[VAR_PY] = s->y; s 285 libavfilter/vf_zoompan.c s->var_values[VAR_X] = 0; s 286 libavfilter/vf_zoompan.c s->var_values[VAR_Y] = 0; s 287 libavfilter/vf_zoompan.c s->var_values[VAR_PZOOM] = s->prev_zoom; s 288 libavfilter/vf_zoompan.c s->var_values[VAR_ZOOM] = 1; s 289 libavfilter/vf_zoompan.c s->var_values[VAR_PDURATION] = s->prev_nb_frames; s 290 libavfilter/vf_zoompan.c s->var_values[VAR_A] = (double) s->in->width / s->in->height; s 291 libavfilter/vf_zoompan.c s->var_values[VAR_SAR] = inlink->sample_aspect_ratio.num ? s 293 libavfilter/vf_zoompan.c s->var_values[VAR_DAR] = s->var_values[VAR_A] * s->var_values[VAR_SAR]; s 294 libavfilter/vf_zoompan.c s->var_values[VAR_HSUB] = 1 << s->desc->log2_chroma_w; s 295 libavfilter/vf_zoompan.c s->var_values[VAR_VSUB] = 1 << s->desc->log2_chroma_h; s 297 libavfilter/vf_zoompan.c if ((ret = av_expr_parse_and_eval(&nb_frames, s->duration_expr_str, s 298 libavfilter/vf_zoompan.c var_names, s->var_values, s 300 libavfilter/vf_zoompan.c av_frame_free(&s->in); s 304 libavfilter/vf_zoompan.c s->var_values[VAR_DURATION] = s->nb_frames = nb_frames; s 306 libavfilter/vf_zoompan.c ret = output_single_frame(ctx, s->in, s->var_values, s->current_frame, s 313 libavfilter/vf_zoompan.c } else if (s->finished && ff_inlink_acknowledge_status(inlink, &status, &pts)) { s 317 libavfilter/vf_zoompan.c if (ff_outlink_frame_wanted(outlink) && s->finished) s 347 libavfilter/vf_zoompan.c ZPContext *s = ctx->priv; s 349 libavfilter/vf_zoompan.c sws_freeContext(s->sws); s 350 libavfilter/vf_zoompan.c s->sws = NULL; s 351 libavfilter/vf_zoompan.c av_expr_free(s->x_expr); s 352 libavfilter/vf_zoompan.c av_expr_free(s->y_expr); s 353 libavfilter/vf_zoompan.c av_expr_free(s->zoom_expr); s 354 libavfilter/vf_zoompan.c av_frame_free(&s->in); s 132 libavfilter/vf_zscale.c ZScaleContext *s = ctx->priv; s 135 libavfilter/vf_zscale.c if (s->size_str && (s->w_expr || s->h_expr)) { s 141 libavfilter/vf_zscale.c if (s->w_expr && !s->h_expr) s 142 libavfilter/vf_zscale.c FFSWAP(char *, s->w_expr, s->size_str); s 144 libavfilter/vf_zscale.c if (s->size_str) { s 146 libavfilter/vf_zscale.c if ((ret = av_parse_video_size(&s->w, &s->h, s->size_str)) < 0) { s 148 libavfilter/vf_zscale.c "Invalid size '%s'\n", s->size_str); s 151 libavfilter/vf_zscale.c snprintf(buf, sizeof(buf)-1, "%d", s->w); s 152 libavfilter/vf_zscale.c av_opt_set(s, "w", buf, 0); s 153 libavfilter/vf_zscale.c snprintf(buf, sizeof(buf)-1, "%d", s->h); s 154 libavfilter/vf_zscale.c av_opt_set(s, "h", buf, 0); s 156 libavfilter/vf_zscale.c if (!s->w_expr) s 157 libavfilter/vf_zscale.c av_opt_set(s, "w", "iw", 0); s 158 libavfilter/vf_zscale.c if (!s->h_expr) s 159 libavfilter/vf_zscale.c av_opt_set(s, "h", "ih", 0); s 200 libavfilter/vf_zscale.c ZScaleContext *s = ctx->priv; s 223 libavfilter/vf_zscale.c av_expr_parse_and_eval(&res, (expr = s->w_expr), s 226 libavfilter/vf_zscale.c s->w = var_values[VAR_OUT_W] = var_values[VAR_OW] = res; s 227 libavfilter/vf_zscale.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->h_expr), s 231 libavfilter/vf_zscale.c s->h = var_values[VAR_OUT_H] = var_values[VAR_OH] = res; s 233 libavfilter/vf_zscale.c if ((ret = av_expr_parse_and_eval(&res, (expr = s->w_expr), s 237 libavfilter/vf_zscale.c s->w = res; s 239 libavfilter/vf_zscale.c w = s->w; s 240 libavfilter/vf_zscale.c h = s->h; s 254 libavfilter/vf_zscale.c s->w = s->h = 0; s 256 libavfilter/vf_zscale.c if (!(w = s->w)) s 258 libavfilter/vf_zscale.c if (!(h = s->h)) s 271 libavfilter/vf_zscale.c if (s->force_original_aspect_ratio) { s 275 libavfilter/vf_zscale.c if (s->force_original_aspect_ratio == 1) { s 315 libavfilter/vf_zscale.c expr, s->w_expr, s->h_expr); s 547 libavfilter/vf_zscale.c ZScaleContext *s = link->dst->priv; s 572 libavfilter/vf_zscale.c || s->in_colorspace != in->colorspace s 573 libavfilter/vf_zscale.c || s->in_trc != in->color_trc s 574 libavfilter/vf_zscale.c || s->in_primaries != in->color_primaries s 575 libavfilter/vf_zscale.c || s->in_range != in->color_range s 576 libavfilter/vf_zscale.c || s->out_colorspace != out->colorspace s 577 libavfilter/vf_zscale.c || s->out_trc != out->color_trc s 578 libavfilter/vf_zscale.c || s->out_primaries != out->color_primaries s 579 libavfilter/vf_zscale.c || s->out_range != out->color_range s 580 libavfilter/vf_zscale.c || s->in_chromal != in->chroma_location s 581 libavfilter/vf_zscale.c || s->out_chromal != out->chroma_location) { s 583 libavfilter/vf_zscale.c av_opt_set(s, "w", buf, 0); s 585 libavfilter/vf_zscale.c av_opt_set(s, "h", buf, 0); s 594 libavfilter/vf_zscale.c zimg_image_format_default(&s->src_format, ZIMG_API_VERSION); s 595 libavfilter/vf_zscale.c zimg_image_format_default(&s->dst_format, ZIMG_API_VERSION); s 596 libavfilter/vf_zscale.c zimg_graph_builder_params_default(&s->params, ZIMG_API_VERSION); s 598 libavfilter/vf_zscale.c s->params.dither_type = s->dither; s 599 libavfilter/vf_zscale.c s->params.cpu_type = ZIMG_CPU_AUTO; s 600 libavfilter/vf_zscale.c s->params.resample_filter = s->filter; s 601 libavfilter/vf_zscale.c s->params.resample_filter_uv = s->filter; s 602 libavfilter/vf_zscale.c s->params.nominal_peak_luminance = s->nominal_peak_luminance; s 603 libavfilter/vf_zscale.c s->params.allow_approximate_gamma = s->approximate_gamma; s 605 libavfilter/vf_zscale.c format_init(&s->src_format, in, desc, s->colorspace_in, s 606 libavfilter/vf_zscale.c s->primaries_in, s->trc_in, s->range_in, s->chromal_in); s 607 libavfilter/vf_zscale.c format_init(&s->dst_format, out, odesc, s->colorspace, s 608 libavfilter/vf_zscale.c s->primaries, s->trc, s->range, s->chromal); s 610 libavfilter/vf_zscale.c if (s->colorspace != -1) s 611 libavfilter/vf_zscale.c out->colorspace = (int)s->dst_format.matrix_coefficients; s 613 libavfilter/vf_zscale.c if (s->primaries != -1) s 614 libavfilter/vf_zscale.c out->color_primaries = (int)s->dst_format.color_primaries; s 616 libavfilter/vf_zscale.c if (s->range != -1) s 617 libavfilter/vf_zscale.c out->color_range = (int)s->dst_format.pixel_range + 1; s 619 libavfilter/vf_zscale.c if (s->trc != -1) s 620 libavfilter/vf_zscale.c out->color_trc = (int)s->dst_format.transfer_characteristics; s 622 libavfilter/vf_zscale.c if (s->chromal != -1) s 623 libavfilter/vf_zscale.c out->chroma_location = (int)s->dst_format.chroma_location - 1; s 625 libavfilter/vf_zscale.c ret = graph_build(&s->graph, &s->params, &s->src_format, &s->dst_format, s 626 libavfilter/vf_zscale.c &s->tmp, &s->tmp_size); s 630 libavfilter/vf_zscale.c s->in_colorspace = in->colorspace; s 631 libavfilter/vf_zscale.c s->in_trc = in->color_trc; s 632 libavfilter/vf_zscale.c s->in_primaries = in->color_primaries; s 633 libavfilter/vf_zscale.c s->in_range = in->color_range; s 634 libavfilter/vf_zscale.c s->out_colorspace = out->colorspace; s 635 libavfilter/vf_zscale.c s->out_trc = out->color_trc; s 636 libavfilter/vf_zscale.c s->out_primaries = out->color_primaries; s 637 libavfilter/vf_zscale.c s->out_range = out->color_range; s 640 libavfilter/vf_zscale.c zimg_image_format_default(&s->alpha_src_format, ZIMG_API_VERSION); s 641 libavfilter/vf_zscale.c zimg_image_format_default(&s->alpha_dst_format, ZIMG_API_VERSION); s 642 libavfilter/vf_zscale.c zimg_graph_builder_params_default(&s->alpha_params, ZIMG_API_VERSION); s 644 libavfilter/vf_zscale.c s->alpha_params.dither_type = s->dither; s 645 libavfilter/vf_zscale.c s->alpha_params.cpu_type = ZIMG_CPU_AUTO; s 646 libavfilter/vf_zscale.c s->alpha_params.resample_filter = s->filter; s 648 libavfilter/vf_zscale.c s->alpha_src_format.width = in->width; s 649 libavfilter/vf_zscale.c s->alpha_src_format.height = in->height; s 650 libavfilter/vf_zscale.c s->alpha_src_format.depth = desc->comp[0].depth; s 651 libavfilter/vf_zscale.c s->alpha_src_format.pixel_type = (desc->flags & AV_PIX_FMT_FLAG_FLOAT) ? ZIMG_PIXEL_FLOAT : desc->comp[0].depth > 8 ? ZIMG_PIXEL_WORD : ZIMG_PIXEL_BYTE; s 652 libavfilter/vf_zscale.c s->alpha_src_format.color_family = ZIMG_COLOR_GREY; s 654 libavfilter/vf_zscale.c s->alpha_dst_format.width = out->width; s 655 libavfilter/vf_zscale.c s->alpha_dst_format.height = out->height; s 656 libavfilter/vf_zscale.c s->alpha_dst_format.depth = odesc->comp[0].depth; s 657 libavfilter/vf_zscale.c s->alpha_dst_format.pixel_type = (odesc->flags & AV_PIX_FMT_FLAG_FLOAT) ? ZIMG_PIXEL_FLOAT : odesc->comp[0].depth > 8 ? ZIMG_PIXEL_WORD : ZIMG_PIXEL_BYTE; s 658 libavfilter/vf_zscale.c s->alpha_dst_format.color_family = ZIMG_COLOR_GREY; s 660 libavfilter/vf_zscale.c zimg_filter_graph_free(s->alpha_graph); s 661 libavfilter/vf_zscale.c s->alpha_graph = zimg_filter_graph_build(&s->alpha_src_format, &s->alpha_dst_format, &s->alpha_params); s 662 libavfilter/vf_zscale.c if (!s->alpha_graph) { s 669 libavfilter/vf_zscale.c if (s->colorspace != -1) s 670 libavfilter/vf_zscale.c out->colorspace = (int)s->dst_format.matrix_coefficients; s 672 libavfilter/vf_zscale.c if (s->primaries != -1) s 673 libavfilter/vf_zscale.c out->color_primaries = (int)s->dst_format.color_primaries; s 675 libavfilter/vf_zscale.c if (s->range != -1) s 676 libavfilter/vf_zscale.c out->color_range = (int)s->dst_format.pixel_range; s 678 libavfilter/vf_zscale.c if (s->trc != -1) s 679 libavfilter/vf_zscale.c out->color_trc = (int)s->dst_format.transfer_characteristics; s 698 libavfilter/vf_zscale.c ret = zimg_filter_graph_process(s->graph, &src_buf, &dst_buf, s->tmp, 0, 0, 0, 0); s 713 libavfilter/vf_zscale.c ret = zimg_filter_graph_process(s->alpha_graph, &src_buf, &dst_buf, s->tmp, 0, 0, 0, 0); s 746 libavfilter/vf_zscale.c ZScaleContext *s = ctx->priv; s 748 libavfilter/vf_zscale.c zimg_filter_graph_free(s->graph); s 749 libavfilter/vf_zscale.c zimg_filter_graph_free(s->alpha_graph); s 750 libavfilter/vf_zscale.c av_freep(&s->tmp); s 751 libavfilter/vf_zscale.c s->tmp_size = 0; s 757 libavfilter/vf_zscale.c ZScaleContext *s = ctx->priv; s 763 libavfilter/vf_zscale.c int old_w = s->w; s 764 libavfilter/vf_zscale.c int old_h = s->h; s 767 libavfilter/vf_zscale.c av_opt_set(s, cmd, args, 0); s 769 libavfilter/vf_zscale.c s->w = old_w; s 770 libavfilter/vf_zscale.c s->h = old_h; s 89 libavfilter/vsrc_cellauto.c CellAutoContext *s = ctx->priv; s 91 libavfilter/vsrc_cellauto.c uint8_t *row = s->buf + s->w * s->buf_row_idx; s 92 libavfilter/vsrc_cellauto.c char *line = av_malloc(s->w + 1); s 96 libavfilter/vsrc_cellauto.c for (i = 0; i < s->w; i++) s 99 libavfilter/vsrc_cellauto.c av_log(ctx, AV_LOG_DEBUG, "generation:%"PRId64" row:%s|\n", s->generation, line); s 106 libavfilter/vsrc_cellauto.c CellAutoContext *s = ctx->priv; s 110 libavfilter/vsrc_cellauto.c w = strlen(s->pattern); s 113 libavfilter/vsrc_cellauto.c if (s->w) { s 114 libavfilter/vsrc_cellauto.c if (w > s->w) { s 117 libavfilter/vsrc_cellauto.c s->w, w); s 122 libavfilter/vsrc_cellauto.c s->w = w; s 123 libavfilter/vsrc_cellauto.c s->h = (double)s->w * M_PHI; s 126 libavfilter/vsrc_cellauto.c s->buf = av_mallocz_array(sizeof(uint8_t) * s->w, s->h); s 127 libavfilter/vsrc_cellauto.c if (!s->buf) s 131 libavfilter/vsrc_cellauto.c p = s->pattern; s 132 libavfilter/vsrc_cellauto.c for (i = (s->w - w)/2;; i++) { s 137 libavfilter/vsrc_cellauto.c s->buf[i] = !!av_isgraph(*(p++)); s 145 libavfilter/vsrc_cellauto.c CellAutoContext *s = ctx->priv; s 148 libavfilter/vsrc_cellauto.c ret = av_file_map(s->filename, s 149 libavfilter/vsrc_cellauto.c &s->file_buf, &s->file_bufsize, 0, ctx); s 154 libavfilter/vsrc_cellauto.c s->pattern = av_malloc(s->file_bufsize + 1); s 155 libavfilter/vsrc_cellauto.c if (!s->pattern) s 157 libavfilter/vsrc_cellauto.c memcpy(s->pattern, s->file_buf, s->file_bufsize); s 158 libavfilter/vsrc_cellauto.c s->pattern[s->file_bufsize] = 0; s 165 libavfilter/vsrc_cellauto.c CellAutoContext *s = ctx->priv; s 168 libavfilter/vsrc_cellauto.c if (!s->w && !s->filename && !s->pattern) s 169 libavfilter/vsrc_cellauto.c av_opt_set(s, "size", "320x518", 0); s 171 libavfilter/vsrc_cellauto.c if (s->filename && s->pattern) { s 176 libavfilter/vsrc_cellauto.c if (s->filename) { s 179 libavfilter/vsrc_cellauto.c } else if (s->pattern) { s 186 libavfilter/vsrc_cellauto.c s->buf = av_mallocz_array(sizeof(uint8_t) * s->w, s->h); s 187 libavfilter/vsrc_cellauto.c if (!s->buf) s 189 libavfilter/vsrc_cellauto.c if (s->random_seed == -1) s 190 libavfilter/vsrc_cellauto.c s->random_seed = av_get_random_seed(); s 192 libavfilter/vsrc_cellauto.c av_lfg_init(&s->lfg, s->random_seed); s 194 libavfilter/vsrc_cellauto.c for (i = 0; i < s->w; i++) { s 195 libavfilter/vsrc_cellauto.c double r = (double)av_lfg_get(&s->lfg) / UINT32_MAX; s 196 libavfilter/vsrc_cellauto.c if (r <= s->random_fill_ratio) s 197 libavfilter/vsrc_cellauto.c s->buf[i] = 1; s 203 libavfilter/vsrc_cellauto.c s->w, s->h, s->frame_rate.num, s->frame_rate.den, s 204 libavfilter/vsrc_cellauto.c s->rule, s->stitch, s->scroll, s->start_full, s 205 libavfilter/vsrc_cellauto.c s->random_seed); s 211 libavfilter/vsrc_cellauto.c CellAutoContext *s = ctx->priv; s 213 libavfilter/vsrc_cellauto.c av_file_unmap(s->file_buf, s->file_bufsize); s 214 libavfilter/vsrc_cellauto.c av_freep(&s->buf); s 215 libavfilter/vsrc_cellauto.c av_freep(&s->pattern); s 220 libavfilter/vsrc_cellauto.c CellAutoContext *s = outlink->src->priv; s 222 libavfilter/vsrc_cellauto.c outlink->w = s->w; s 223 libavfilter/vsrc_cellauto.c outlink->h = s->h; s 224 libavfilter/vsrc_cellauto.c outlink->time_base = av_inv_q(s->frame_rate); s 231 libavfilter/vsrc_cellauto.c CellAutoContext *s = ctx->priv; s 233 libavfilter/vsrc_cellauto.c uint8_t *row, *prev_row = s->buf + s->buf_row_idx * s->w; s 236 libavfilter/vsrc_cellauto.c s->buf_prev_row_idx = s->buf_row_idx; s 237 libavfilter/vsrc_cellauto.c s->buf_row_idx = s->buf_row_idx == s->h-1 ? 0 : s->buf_row_idx+1; s 238 libavfilter/vsrc_cellauto.c row = s->buf + s->w * s->buf_row_idx; s 240 libavfilter/vsrc_cellauto.c for (i = 0; i < s->w; i++) { s 241 libavfilter/vsrc_cellauto.c if (s->stitch) { s 242 libavfilter/vsrc_cellauto.c pos[NW] = i-1 < 0 ? s->w-1 : i-1; s 244 libavfilter/vsrc_cellauto.c pos[NE] = i+1 == s->w ? 0 : i+1; s 250 libavfilter/vsrc_cellauto.c v|= i+1 < s->w ? prev_row[i+1] : 0; s 252 libavfilter/vsrc_cellauto.c row[i] = !!(s->rule & (1<<v)); s 257 libavfilter/vsrc_cellauto.c s->generation++; s 262 libavfilter/vsrc_cellauto.c CellAutoContext *s = ctx->priv; s 266 libavfilter/vsrc_cellauto.c if (s->scroll && s->generation >= s->h) s 268 libavfilter/vsrc_cellauto.c row_idx = (s->buf_row_idx + 1) % s->h; s 271 libavfilter/vsrc_cellauto.c for (i = 0; i < s->h; i++) { s 273 libavfilter/vsrc_cellauto.c uint8_t *row = s->buf + row_idx*s->w; s 275 libavfilter/vsrc_cellauto.c for (k = 0, j = 0; j < s->w; j++) { s 277 libavfilter/vsrc_cellauto.c if (k==8 || j == s->w-1) { s 283 libavfilter/vsrc_cellauto.c row_idx = (row_idx + 1) % s->h; s 290 libavfilter/vsrc_cellauto.c CellAutoContext *s = outlink->src->priv; s 291 libavfilter/vsrc_cellauto.c AVFrame *picref = ff_get_video_buffer(outlink, s->w, s->h); s 295 libavfilter/vsrc_cellauto.c if (s->generation == 0 && s->start_full) { s 297 libavfilter/vsrc_cellauto.c for (i = 0; i < s->h-1; i++) s 303 libavfilter/vsrc_cellauto.c picref->pts = s->pts++; s 172 libavfilter/vsrc_gradients.c GradientsContext *s = ctx->priv; s 183 libavfilter/vsrc_gradients.c float factor = project(s->fx0, s->fy0, s->fx1, s->fy1, x, y); s 184 libavfilter/vsrc_gradients.c dst[x] = lerp_colors(s->color_rgba, s->nb_colors, factor);; s 195 libavfilter/vsrc_gradients.c GradientsContext *s = ctx->priv; s 206 libavfilter/vsrc_gradients.c float factor = project(s->fx0, s->fy0, s->fx1, s->fy1, x, y); s 207 libavfilter/vsrc_gradients.c dst[x] = lerp_colors16(s->color_rgba, s->nb_colors, factor);; s 217 libavfilter/vsrc_gradients.c GradientsContext *s = ctx->priv; s 220 libavfilter/vsrc_gradients.c if (av_image_check_size(s->w, s->h, 0, ctx) < 0) s 223 libavfilter/vsrc_gradients.c inlink->w = s->w; s 224 libavfilter/vsrc_gradients.c inlink->h = s->h; s 225 libavfilter/vsrc_gradients.c inlink->time_base = av_inv_q(s->frame_rate); s 227 libavfilter/vsrc_gradients.c if (s->seed == -1) s 228 libavfilter/vsrc_gradients.c s->seed = av_get_random_seed(); s 229 libavfilter/vsrc_gradients.c av_lfg_init(&s->lfg, s->seed); s 231 libavfilter/vsrc_gradients.c s->draw_slice = desc->comp[0].depth == 16 ? draw_gradients_slice16 : draw_gradients_slice; s 233 libavfilter/vsrc_gradients.c if (s->x0 < 0 || s->x0 >= s->w) s 234 libavfilter/vsrc_gradients.c s->x0 = av_lfg_get(&s->lfg) % s->w; s 235 libavfilter/vsrc_gradients.c if (s->y0 < 0 || s->y0 >= s->h) s 236 libavfilter/vsrc_gradients.c s->y0 = av_lfg_get(&s->lfg) % s->h; s 237 libavfilter/vsrc_gradients.c if (s->x1 < 0 || s->x1 >= s->w) s 238 libavfilter/vsrc_gradients.c s->x1 = av_lfg_get(&s->lfg) % s->w; s 239 libavfilter/vsrc_gradients.c if (s->y1 < 0 || s->y1 >= s->h) s 240 libavfilter/vsrc_gradients.c s->y1 = av_lfg_get(&s->lfg) % s->h; s 248 libavfilter/vsrc_gradients.c GradientsContext *s = ctx->priv; s 249 libavfilter/vsrc_gradients.c AVFrame *frame = ff_get_video_buffer(outlink, s->w, s->h); s 250 libavfilter/vsrc_gradients.c float angle = fmodf(s->pts / 100.f, 2.f * M_PI); s 251 libavfilter/vsrc_gradients.c const float w2 = s->w / 2.f; s 252 libavfilter/vsrc_gradients.c const float h2 = s->h / 2.f; s 254 libavfilter/vsrc_gradients.c s->fx0 = (s->x0 - w2) * cosf(angle) - (s->y0 - h2) * sinf(angle) + w2; s 255 libavfilter/vsrc_gradients.c s->fy0 = (s->x0 - w2) * sinf(angle) + (s->y0 - h2) * cosf(angle) + h2; s 257 libavfilter/vsrc_gradients.c s->fx1 = (s->x1 - w2) * cosf(angle) - (s->y1 - h2) * sinf(angle) + w2; s 258 libavfilter/vsrc_gradients.c s->fy1 = (s->x1 - w2) * sinf(angle) + (s->y1 - h2) * cosf(angle) + h2; s 264 libavfilter/vsrc_gradients.c frame->pts = s->pts++; s 266 libavfilter/vsrc_gradients.c ctx->internal->execute(ctx, s->draw_slice, frame, NULL, FFMIN(outlink->h, ff_filter_get_nb_threads(ctx))); s 124 libavfilter/vsrc_mandelbrot.c MBContext *s = ctx->priv; s 126 libavfilter/vsrc_mandelbrot.c s->bailout *= s->bailout; s 128 libavfilter/vsrc_mandelbrot.c s->start_scale /=s->h; s 129 libavfilter/vsrc_mandelbrot.c s->end_scale /=s->h; s 131 libavfilter/vsrc_mandelbrot.c s->cache_allocated = s->w * s->h * 3; s 132 libavfilter/vsrc_mandelbrot.c s->cache_used = 0; s 133 libavfilter/vsrc_mandelbrot.c s->point_cache= av_malloc_array(s->cache_allocated, sizeof(*s->point_cache)); s 134 libavfilter/vsrc_mandelbrot.c s-> next_cache= av_malloc_array(s->cache_allocated, sizeof(*s-> next_cache)); s 135 libavfilter/vsrc_mandelbrot.c s-> zyklus = av_malloc_array(s->maxiter + 16, sizeof(*s->zyklus)); s 142 libavfilter/vsrc_mandelbrot.c MBContext *s = ctx->priv; s 144 libavfilter/vsrc_mandelbrot.c av_freep(&s->point_cache); s 145 libavfilter/vsrc_mandelbrot.c av_freep(&s-> next_cache); s 146 libavfilter/vsrc_mandelbrot.c av_freep(&s->zyklus); s 165 libavfilter/vsrc_mandelbrot.c MBContext *s = ctx->priv; s 167 libavfilter/vsrc_mandelbrot.c if (av_image_check_size(s->w, s->h, 0, ctx) < 0) s 170 libavfilter/vsrc_mandelbrot.c inlink->w = s->w; s 171 libavfilter/vsrc_mandelbrot.c inlink->h = s->h; s 172 libavfilter/vsrc_mandelbrot.c inlink->time_base = av_inv_q(s->frame_rate); s 178 libavfilter/vsrc_mandelbrot.c MBContext *s = ctx->priv; s 179 libavfilter/vsrc_mandelbrot.c if(s->morphamp) s 181 libavfilter/vsrc_mandelbrot.c for(; *in_cidx < s->cache_used; (*in_cidx)++){ s 182 libavfilter/vsrc_mandelbrot.c Point *p= &s->point_cache[*in_cidx]; s 186 libavfilter/vsrc_mandelbrot.c x= lrint((p->p[0] - s->start_x) / scale + s->w/2); s 187 libavfilter/vsrc_mandelbrot.c if(x<0 || x >= s->w) s 190 libavfilter/vsrc_mandelbrot.c if(out_cidx && *out_cidx < s->cache_allocated) s 191 libavfilter/vsrc_mandelbrot.c s->next_cache[(*out_cidx)++]= *p; s 195 libavfilter/vsrc_mandelbrot.c static int interpol(MBContext *s, uint32_t *color, int x, int y, int linesize) s 201 libavfilter/vsrc_mandelbrot.c if(!x || !y || x+1==s->w || y+1==s->h) s 204 libavfilter/vsrc_mandelbrot.c dist= FFMAX(FFABS(x-(s->w>>1))*s->h, FFABS(y-(s->h>>1))*s->w); s 206 libavfilter/vsrc_mandelbrot.c if(dist<(s->w*s->h>>3)) s 232 libavfilter/vsrc_mandelbrot.c int s= 8*i; s 233 libavfilter/vsrc_mandelbrot.c uint8_t ac= a>>s; s 234 libavfilter/vsrc_mandelbrot.c uint8_t bc= b>>s; s 235 libavfilter/vsrc_mandelbrot.c uint8_t cc= c>>s; s 236 libavfilter/vsrc_mandelbrot.c uint8_t dc= d>>s; s 243 libavfilter/vsrc_mandelbrot.c ipol |= ((ipolab + ipolcd + 2)/4)<<s; s 251 libavfilter/vsrc_mandelbrot.c MBContext *s = ctx->priv; s 253 libavfilter/vsrc_mandelbrot.c double scale= s->start_scale*pow(s->end_scale/s->start_scale, pts/s->end_pts); s 255 libavfilter/vsrc_mandelbrot.c fill_from_cache(ctx, NULL, &in_cidx, NULL, s->start_y+scale*(-s->h/2-0.5), scale); s 257 libavfilter/vsrc_mandelbrot.c memset(color, 0, sizeof(*color)*s->w); s 258 libavfilter/vsrc_mandelbrot.c for(y=0; y<s->h; y++){ s 260 libavfilter/vsrc_mandelbrot.c const double ci=s->start_y+scale*(y-s->h/2); s 262 libavfilter/vsrc_mandelbrot.c if(y1<s->h){ s 263 libavfilter/vsrc_mandelbrot.c memset(color+linesize*y1, 0, sizeof(*color)*s->w); s 267 libavfilter/vsrc_mandelbrot.c for(x=0; x<s->w; x++){ s 269 libavfilter/vsrc_mandelbrot.c const double cr=s->start_x+scale*(x-s->w/2); s 273 libavfilter/vsrc_mandelbrot.c double dv= s->dither / (double)(1LL<<32); s 274 libavfilter/vsrc_mandelbrot.c s->dither= s->dither*1664525+1013904223; s 278 libavfilter/vsrc_mandelbrot.c if(!s->morphamp){ s 279 libavfilter/vsrc_mandelbrot.c if(interpol(s, color, x, y, linesize)){ s 280 libavfilter/vsrc_mandelbrot.c if(next_cidx < s->cache_allocated){ s 281 libavfilter/vsrc_mandelbrot.c s->next_cache[next_cidx ].p[0]= cr; s 282 libavfilter/vsrc_mandelbrot.c s->next_cache[next_cidx ].p[1]= ci; s 283 libavfilter/vsrc_mandelbrot.c s->next_cache[next_cidx++].val = color[x + y*linesize]; s 288 libavfilter/vsrc_mandelbrot.c zr += cos(pts * s->morphxf) * s->morphamp; s 289 libavfilter/vsrc_mandelbrot.c zi += sin(pts * s->morphyf) * s->morphamp; s 292 libavfilter/vsrc_mandelbrot.c use_zyklus= (x==0 || s->inner!=BLACK ||color[x-1 + y*linesize] == 0xFF000000); s 294 libavfilter/vsrc_mandelbrot.c epsilon= scale*(abs(x-s->w/2) + abs(y-s->h/2))/s->w; s 303 libavfilter/vsrc_mandelbrot.c if(Z && fabs(s->zyklus[i>>1][0]-outr)+fabs(s->zyklus[i>>1][1]-outi) <= epsilon)\ s 306 libavfilter/vsrc_mandelbrot.c s->zyklus[i][0]= outr;\ s 307 libavfilter/vsrc_mandelbrot.c s->zyklus[i][1]= outi;\ s 311 libavfilter/vsrc_mandelbrot.c for(i=0; i<s->maxiter-8; i++){ s 328 libavfilter/vsrc_mandelbrot.c if(zr*zr + zi*zi > s->bailout){ s 330 libavfilter/vsrc_mandelbrot.c for(; i<s->maxiter; i++){ s 331 libavfilter/vsrc_mandelbrot.c zr= s->zyklus[i][0]; s 332 libavfilter/vsrc_mandelbrot.c zi= s->zyklus[i][1]; s 333 libavfilter/vsrc_mandelbrot.c if(zr*zr + zi*zi > s->bailout){ s 334 libavfilter/vsrc_mandelbrot.c switch(s->outer){ s 340 libavfilter/vsrc_mandelbrot.c zr = i + log2(log(s->bailout) / log(zr*zr + zi*zi)); s 347 libavfilter/vsrc_mandelbrot.c zr /= s->bailout; s 348 libavfilter/vsrc_mandelbrot.c zi /= s->bailout; s 358 libavfilter/vsrc_mandelbrot.c if(s->inner==PERIOD){ s 361 libavfilter/vsrc_mandelbrot.c if(SQR(s->zyklus[j][0]-zr) + SQR(s->zyklus[j][1]-zi) < epsilon*epsilon*10) s 367 libavfilter/vsrc_mandelbrot.c }else if(s->inner==CONVTIME){ s 368 libavfilter/vsrc_mandelbrot.c c= floor(i*255.0/s->maxiter+dv)*0x010101; s 369 libavfilter/vsrc_mandelbrot.c } else if(s->inner==MINCOL){ s 374 libavfilter/vsrc_mandelbrot.c if(SQR(s->zyklus[j][0]) + SQR(s->zyklus[j][1]) < closest){ s 375 libavfilter/vsrc_mandelbrot.c closest= SQR(s->zyklus[j][0]) + SQR(s->zyklus[j][1]); s 379 libavfilter/vsrc_mandelbrot.c c= lrintf((s->zyklus[closest_index][0]/closest+1)*127+dv) + lrintf((s->zyklus[closest_index][1]/closest+1)*127+dv)*256; s 384 libavfilter/vsrc_mandelbrot.c if(next_cidx < s->cache_allocated){ s 385 libavfilter/vsrc_mandelbrot.c s->next_cache[next_cidx ].p[0]= cr; s 386 libavfilter/vsrc_mandelbrot.c s->next_cache[next_cidx ].p[1]= ci; s 387 libavfilter/vsrc_mandelbrot.c s->next_cache[next_cidx++].val = c; s 392 libavfilter/vsrc_mandelbrot.c FFSWAP(void*, s->next_cache, s->point_cache); s 393 libavfilter/vsrc_mandelbrot.c s->cache_used = next_cidx; s 394 libavfilter/vsrc_mandelbrot.c if(s->cache_used == s->cache_allocated) s 400 libavfilter/vsrc_mandelbrot.c MBContext *s = link->src->priv; s 401 libavfilter/vsrc_mandelbrot.c AVFrame *picref = ff_get_video_buffer(link, s->w, s->h); s 406 libavfilter/vsrc_mandelbrot.c picref->pts = s->pts++; s 99 libavfilter/vsrc_mptestsrc.c double s = i == 0 ? sqrt(0.125) : 0.5; s 102 libavfilter/vsrc_mptestsrc.c c[i*8+j] = s*cos((M_PI/8.0)*i*(j+0.5)); s 87 libavfilter/vsrc_sierpinski.c static int fill_sierpinski(SierpinskiContext *s, int x, int y) s 89 libavfilter/vsrc_sierpinski.c int pos_x = x + s->pos_x; s 90 libavfilter/vsrc_sierpinski.c int pos_y = y + s->pos_y; s 105 libavfilter/vsrc_sierpinski.c SierpinskiContext *s = ctx->priv; s 115 libavfilter/vsrc_sierpinski.c if ((s->pos_x + x) & (s->pos_y + y)) { s 130 libavfilter/vsrc_sierpinski.c SierpinskiContext *s = ctx->priv; s 140 libavfilter/vsrc_sierpinski.c if (fill_sierpinski(s, x, y)) { s 156 libavfilter/vsrc_sierpinski.c SierpinskiContext *s = ctx->priv; s 158 libavfilter/vsrc_sierpinski.c if (av_image_check_size(s->w, s->h, 0, ctx) < 0) s 161 libavfilter/vsrc_sierpinski.c inlink->w = s->w; s 162 libavfilter/vsrc_sierpinski.c inlink->h = s->h; s 163 libavfilter/vsrc_sierpinski.c inlink->time_base = av_inv_q(s->frame_rate); s 165 libavfilter/vsrc_sierpinski.c if (s->seed == -1) s 166 libavfilter/vsrc_sierpinski.c s->seed = av_get_random_seed(); s 167 libavfilter/vsrc_sierpinski.c av_lfg_init(&s->lfg, s->seed); s 169 libavfilter/vsrc_sierpinski.c s->draw_slice = s->type ? draw_triangle_slice : draw_carpet_slice; s 176 libavfilter/vsrc_sierpinski.c SierpinskiContext *s = ctx->priv; s 179 libavfilter/vsrc_sierpinski.c if (s->pos_x == s->dest_x && s->pos_y == s->dest_y) { s 180 libavfilter/vsrc_sierpinski.c unsigned int rnd = av_lfg_get(&s->lfg); s 181 libavfilter/vsrc_sierpinski.c int mod = 2 * s->jump + 1; s 183 libavfilter/vsrc_sierpinski.c s->dest_x += (int)((rnd & 0xffff) % mod) - s->jump; s 184 libavfilter/vsrc_sierpinski.c s->dest_y += (int)((rnd >> 16) % mod) - s->jump; s 186 libavfilter/vsrc_sierpinski.c if (s->pos_x < s->dest_x) s 187 libavfilter/vsrc_sierpinski.c s->pos_x++; s 188 libavfilter/vsrc_sierpinski.c else if (s->pos_x > s->dest_x) s 189 libavfilter/vsrc_sierpinski.c s->pos_x--; s 191 libavfilter/vsrc_sierpinski.c if (s->pos_y < s->dest_y) s 192 libavfilter/vsrc_sierpinski.c s->pos_y++; s 193 libavfilter/vsrc_sierpinski.c else if (s->pos_y > s->dest_y) s 194 libavfilter/vsrc_sierpinski.c s->pos_y--; s 197 libavfilter/vsrc_sierpinski.c ctx->internal->execute(ctx, s->draw_slice, frame, NULL, FFMIN(outlink->h, ff_filter_get_nb_threads(ctx))); s 202 libavfilter/vsrc_sierpinski.c SierpinskiContext *s = link->src->priv; s 203 libavfilter/vsrc_sierpinski.c AVFrame *frame = ff_get_video_buffer(link, s->w, s->h); s 209 libavfilter/vsrc_sierpinski.c frame->pts = s->pts++; s 691 libavfilter/vsrc_testsrc.c static void set_color(TestSourceContext *s, FFDrawColor *color, uint32_t argb) s 697 libavfilter/vsrc_testsrc.c ff_draw_color(&s->draw, color, rgba); s 714 libavfilter/vsrc_testsrc.c static void draw_text(TestSourceContext *s, AVFrame *frame, FFDrawColor *color, s 725 libavfilter/vsrc_testsrc.c ff_blend_mask(&s->draw, color, frame->data, frame->linesize, s 734 libavfilter/vsrc_testsrc.c TestSourceContext *s = ctx->priv; s 736 libavfilter/vsrc_testsrc.c unsigned alpha = (uint32_t)s->alpha << 24; s 744 libavfilter/vsrc_testsrc.c x2 = av_rescale(i, s->w, 6); s 745 libavfilter/vsrc_testsrc.c x2 = ff_draw_round_to_sub(&s->draw, 0, 0, x2); s 746 libavfilter/vsrc_testsrc.c set_color(s, &color, ((i & 1) ? 0xFF0000 : 0) | s 750 libavfilter/vsrc_testsrc.c ff_fill_rectangle(&s->draw, &color, frame->data, frame->linesize, s 758 libavfilter/vsrc_testsrc.c if (s->h >= 64) { s 761 libavfilter/vsrc_testsrc.c dx = ff_draw_round_to_sub(&s->draw, 0, +1, 1); s 762 libavfilter/vsrc_testsrc.c y0 = av_rescale_q(s->pts, s->time_base, av_make_q(2, s->h - 16)); s 763 libavfilter/vsrc_testsrc.c g0 = av_rescale_q(s->pts, s->time_base, av_make_q(1, 128)); s 764 libavfilter/vsrc_testsrc.c for (x = 0; x < s->w; x += dx) { s 765 libavfilter/vsrc_testsrc.c g = (av_rescale(x, 6 * 256, s->w) + g0) % (6 * 256); s 766 libavfilter/vsrc_testsrc.c set_color(s, &color, color_gradient(g) | alpha); s 767 libavfilter/vsrc_testsrc.c y = y0 + av_rescale(x, s->h / 2, s->w); s 768 libavfilter/vsrc_testsrc.c y %= 2 * (s->h - 16); s 769 libavfilter/vsrc_testsrc.c if (y > s->h - 16) s 770 libavfilter/vsrc_testsrc.c y = 2 * (s->h - 16) - y; s 771 libavfilter/vsrc_testsrc.c y = ff_draw_round_to_sub(&s->draw, 1, 0, y); s 772 libavfilter/vsrc_testsrc.c ff_fill_rectangle(&s->draw, &color, frame->data, frame->linesize, s 778 libavfilter/vsrc_testsrc.c if (s->w >= 64 && s->h >= 64) { s 779 libavfilter/vsrc_testsrc.c int l = (FFMIN(s->w, s->h) - 32) >> 1; s 781 libavfilter/vsrc_testsrc.c int xc = (s->w >> 2) + (s->w >> 1); s 782 libavfilter/vsrc_testsrc.c int yc = (s->h >> 2); s 788 libavfilter/vsrc_testsrc.c set_color(s, &color, (0xBBBBBB ^ (0xFF << (c << 3))) | alpha); s 789 libavfilter/vsrc_testsrc.c pos = av_rescale_q(s->pts, s->time_base, av_make_q(64 >> (c << 1), cycle)) % cycle; s 802 libavfilter/vsrc_testsrc.c x = ff_draw_round_to_sub(&s->draw, 0, -1, x); s 803 libavfilter/vsrc_testsrc.c y = ff_draw_round_to_sub(&s->draw, 1, -1, y); s 804 libavfilter/vsrc_testsrc.c ff_fill_rectangle(&s->draw, &color, frame->data, frame->linesize, s 811 libavfilter/vsrc_testsrc.c if (s->w >= 64 && s->h >= 64) { s 812 libavfilter/vsrc_testsrc.c int l = (FFMIN(s->w, s->h) - 16) >> 2; s 814 libavfilter/vsrc_testsrc.c int xc = (s->w >> 2); s 815 libavfilter/vsrc_testsrc.c int yc = (s->h >> 2) + (s->h >> 1); s 816 libavfilter/vsrc_testsrc.c int xm1 = ff_draw_round_to_sub(&s->draw, 0, -1, xc - 8); s 817 libavfilter/vsrc_testsrc.c int xm2 = ff_draw_round_to_sub(&s->draw, 0, +1, xc + 8); s 818 libavfilter/vsrc_testsrc.c int ym1 = ff_draw_round_to_sub(&s->draw, 1, -1, yc - 8); s 819 libavfilter/vsrc_testsrc.c int ym2 = ff_draw_round_to_sub(&s->draw, 1, +1, yc + 8); s 822 libavfilter/vsrc_testsrc.c size = av_rescale_q(s->pts, s->time_base, av_make_q(4, cycle)); s 828 libavfilter/vsrc_testsrc.c set_color(s, &color, 0xFF808080); s 829 libavfilter/vsrc_testsrc.c x1 = ff_draw_round_to_sub(&s->draw, 0, -1, xc - 4 - size); s 830 libavfilter/vsrc_testsrc.c x2 = ff_draw_round_to_sub(&s->draw, 0, +1, xc + 4 + size); s 831 libavfilter/vsrc_testsrc.c y1 = ff_draw_round_to_sub(&s->draw, 1, -1, yc - 4 - size); s 832 libavfilter/vsrc_testsrc.c y2 = ff_draw_round_to_sub(&s->draw, 1, +1, yc + 4 + size); s 834 libavfilter/vsrc_testsrc.c ff_fill_rectangle(&s->draw, &color, frame->data, frame->linesize, s 837 libavfilter/vsrc_testsrc.c ff_fill_rectangle(&s->draw, &color, frame->data, frame->linesize, s 840 libavfilter/vsrc_testsrc.c ff_fill_rectangle(&s->draw, &color, frame->data, frame->linesize, s 846 libavfilter/vsrc_testsrc.c unsigned xmin = av_rescale(5, s->w, 8); s 847 libavfilter/vsrc_testsrc.c unsigned xmax = av_rescale(7, s->w, 8); s 848 libavfilter/vsrc_testsrc.c unsigned ymin = av_rescale(5, s->h, 8); s 849 libavfilter/vsrc_testsrc.c unsigned ymax = av_rescale(7, s->h, 8); s 853 libavfilter/vsrc_testsrc.c r = s->pts; s 862 libavfilter/vsrc_testsrc.c set_color(s, &color, 0xFF00FF80); s 863 libavfilter/vsrc_testsrc.c ff_blend_mask(&s->draw, &color, frame->data, frame->linesize, s 871 libavfilter/vsrc_testsrc.c if (s->w >= 16 && s->h >= 16) { s 872 libavfilter/vsrc_testsrc.c unsigned w = s->w - 8; s 873 libavfilter/vsrc_testsrc.c unsigned h = s->h - 8; s 874 libavfilter/vsrc_testsrc.c unsigned x = av_rescale_q(s->pts, s->time_base, av_make_q(233, 55 * w)) % (w << 1); s 875 libavfilter/vsrc_testsrc.c unsigned y = av_rescale_q(s->pts, s->time_base, av_make_q(233, 89 * h)) % (h << 1); s 880 libavfilter/vsrc_testsrc.c x = ff_draw_round_to_sub(&s->draw, 0, -1, x); s 881 libavfilter/vsrc_testsrc.c y = ff_draw_round_to_sub(&s->draw, 1, -1, y); s 882 libavfilter/vsrc_testsrc.c set_color(s, &color, 0xFF8000FF); s 883 libavfilter/vsrc_testsrc.c ff_fill_rectangle(&s->draw, &color, frame->data, frame->linesize, s 892 libavfilter/vsrc_testsrc.c time = av_rescale_q(s->pts, s->time_base, av_make_q(1, 1000)) % 86400000; s 893 libavfilter/vsrc_testsrc.c set_color(s, &color, 0xC0000000); s 894 libavfilter/vsrc_testsrc.c ff_blend_rectangle(&s->draw, &color, frame->data, frame->linesize, s 897 libavfilter/vsrc_testsrc.c set_color(s, &color, 0xFFFF8000); s 900 libavfilter/vsrc_testsrc.c time % 1000, s->pts); s 901 libavfilter/vsrc_testsrc.c draw_text(s, frame, &color, 4, 4, buf); s 906 libavfilter/vsrc_testsrc.c TestSourceContext *s = ctx->priv; s 908 libavfilter/vsrc_testsrc.c s->fill_picture_fn = test2_fill_picture; s 920 libavfilter/vsrc_testsrc.c TestSourceContext *s = ctx->priv; s 922 libavfilter/vsrc_testsrc.c av_assert0(ff_draw_init(&s->draw, inlink->format, 0) >= 0); s 923 libavfilter/vsrc_testsrc.c s->w = ff_draw_round_to_sub(&s->draw, 0, -1, s->w); s 924 libavfilter/vsrc_testsrc.c s->h = ff_draw_round_to_sub(&s->draw, 1, -1, s->h); s 925 libavfilter/vsrc_testsrc.c if (av_image_check_size(s->w, s->h, 0, ctx) < 0) s 97 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 104 libavfilter/vulkan.c vkGetPhysicalDeviceProperties(s->hwctx->phys_dev, &props); s 105 libavfilter/vulkan.c vkGetPhysicalDeviceMemoryProperties(s->hwctx->phys_dev, &mprops); s 137 libavfilter/vulkan.c ret = vkAllocateMemory(s->hwctx->act_dev, &alloc_info, s 138 libavfilter/vulkan.c s->hwctx->alloc, mem); s 156 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 182 libavfilter/vulkan.c ret = vkCreateBuffer(s->hwctx->act_dev, &buf_spawn, NULL, &buf->buf); s 191 libavfilter/vulkan.c vkGetBufferMemoryRequirements2(s->hwctx->act_dev, &req_desc, &req); s 205 libavfilter/vulkan.c ret = vkBindBufferMemory(s->hwctx->act_dev, buf->buf, buf->mem, 0); s 219 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 224 libavfilter/vulkan.c ret = vkMapMemory(s->hwctx->act_dev, buf[i].mem, 0, s 244 libavfilter/vulkan.c inval_list = av_fast_realloc(s->scratch, &s->scratch_size, s 252 libavfilter/vulkan.c ret = vkInvalidateMappedMemoryRanges(s->hwctx->act_dev, inval_count, s 269 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 282 libavfilter/vulkan.c flush_list = av_fast_realloc(s->scratch, &s->scratch_size, s 291 libavfilter/vulkan.c ret = vkFlushMappedMemoryRanges(s->hwctx->act_dev, flush_count, s 301 libavfilter/vulkan.c vkUnmapMemory(s->hwctx->act_dev, buf[i].mem); s 308 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 313 libavfilter/vulkan.c vkDestroyBuffer(s->hwctx->act_dev, buf->buf, s->hwctx->alloc); s 315 libavfilter/vulkan.c vkFreeMemory(s->hwctx->act_dev, buf->mem, s->hwctx->alloc); s 343 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 345 libavfilter/vulkan.c int queue_family = s->queue_family_idx; s 346 libavfilter/vulkan.c int nb_queues = s->queue_count; s 359 libavfilter/vulkan.c e = create_exec_ctx(s); s 372 libavfilter/vulkan.c ret = vkCreateCommandPool(s->hwctx->act_dev, &cqueue_create, s 373 libavfilter/vulkan.c s->hwctx->alloc, &e->pool); s 383 libavfilter/vulkan.c ret = vkAllocateCommandBuffers(s->hwctx->act_dev, &cbuf_create, e->bufs); s 392 libavfilter/vulkan.c vkGetDeviceQueue(s->hwctx->act_dev, queue_family, i, &q->queue); s 402 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 403 libavfilter/vulkan.c FFVkQueueCtx *q = &e->queues[s->cur_queue_idx]; s 420 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 421 libavfilter/vulkan.c FFVkQueueCtx *q = &e->queues[s->cur_queue_idx]; s 433 libavfilter/vulkan.c ret = vkCreateFence(s->hwctx->act_dev, &fence_spawn, s->hwctx->alloc, s 441 libavfilter/vulkan.c vkWaitForFences(s->hwctx->act_dev, 1, &q->fence, VK_TRUE, UINT64_MAX); s 442 libavfilter/vulkan.c vkResetFences(s->hwctx->act_dev, 1, &q->fence); s 448 libavfilter/vulkan.c ret = vkBeginCommandBuffer(e->bufs[s->cur_queue_idx], &cmd_start); s 460 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 461 libavfilter/vulkan.c return e->bufs[s->cur_queue_idx]; s 468 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 470 libavfilter/vulkan.c FFVkQueueCtx *q = &e->queues[s->cur_queue_idx]; s 525 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 526 libavfilter/vulkan.c FFVkQueueCtx *q = &e->queues[s->cur_queue_idx]; s 531 libavfilter/vulkan.c .pCommandBuffers = &e->bufs[s->cur_queue_idx], s 541 libavfilter/vulkan.c ret = vkEndCommandBuffer(e->bufs[s->cur_queue_idx]); s 556 libavfilter/vulkan.c s->cur_queue_idx = (s->cur_queue_idx + 1) % s->queue_count; s 565 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 566 libavfilter/vulkan.c FFVkQueueCtx *q = &e->queues[s->cur_queue_idx]; s 607 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 609 libavfilter/vulkan.c av_buffer_unref(&s->device_ref); s 611 libavfilter/vulkan.c s->device_ref = av_buffer_ref(device); s 612 libavfilter/vulkan.c if (!s->device_ref) s 615 libavfilter/vulkan.c s->device = (AVHWDeviceContext*)s->device_ref->data; s 616 libavfilter/vulkan.c s->hwctx = s->device->hwctx; s 624 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 626 libavfilter/vulkan.c av_buffer_unref(&s->frames_ref); s 628 libavfilter/vulkan.c s->frames_ref = av_buffer_ref(frames); s 629 libavfilter/vulkan.c if (!s->frames_ref) s 639 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 664 libavfilter/vulkan.c s->input_format = input_frames->sw_format; s 665 libavfilter/vulkan.c if (s->output_format == AV_PIX_FMT_NONE) s 666 libavfilter/vulkan.c s->output_format = input_frames->sw_format; s 667 libavfilter/vulkan.c if (!s->output_width) s 668 libavfilter/vulkan.c s->output_width = inlink->w; s 669 libavfilter/vulkan.c if (!s->output_height) s 670 libavfilter/vulkan.c s->output_height = inlink->h; s 679 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 683 libavfilter/vulkan.c if (!s->device_ref) { s 695 libavfilter/vulkan.c outlink->hw_frames_ctx = av_buffer_ref(s->frames_ref); s 699 libavfilter/vulkan.c outlink->w = s->output_width; s 700 libavfilter/vulkan.c outlink->h = s->output_height; s 709 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 715 libavfilter/vulkan.c if (!s->device_ref) { s 727 libavfilter/vulkan.c output_frames_ref = av_hwframe_ctx_alloc(s->device_ref); s 735 libavfilter/vulkan.c output_frames->sw_format = s->output_format; s 736 libavfilter/vulkan.c output_frames->width = s->output_width; s 737 libavfilter/vulkan.c output_frames->height = s->output_height; s 747 libavfilter/vulkan.c outlink->w = s->output_width; s 748 libavfilter/vulkan.c outlink->h = s->output_height; s 758 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 760 libavfilter/vulkan.c s->output_format = AV_PIX_FMT_NONE; s 773 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 790 libavfilter/vulkan.c VkSampler *sampler = create_sampler(s); s 794 libavfilter/vulkan.c ret = vkCreateSampler(s->hwctx->act_dev, &sampler_info, s 795 libavfilter/vulkan.c s->hwctx->alloc, sampler); s 830 libavfilter/vulkan.c VulkanFilterContext *s = opaque; s 832 libavfilter/vulkan.c vkDestroyImageView(s->hwctx->act_dev, iv->view, s->hwctx->alloc); s 842 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 861 libavfilter/vulkan.c VkResult ret = vkCreateImageView(s->hwctx->act_dev, &imgview_spawn, s 862 libavfilter/vulkan.c s->hwctx->alloc, &iv->view); s 869 libavfilter/vulkan.c buf = av_buffer_create((uint8_t *)iv, sizeof(*iv), destroy_imageview, s, 0); s 871 libavfilter/vulkan.c destroy_imageview(s, (uint8_t *)iv); s 946 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 980 libavfilter/vulkan.c ret = vkCreateShaderModule(s->hwctx->act_dev, &shader_create, NULL, s 1026 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 1059 libavfilter/vulkan.c ret = vkCreateDescriptorSetLayout(s->hwctx->act_dev, &desc_create_layout, s 1060 libavfilter/vulkan.c s->hwctx->alloc, layout); s 1102 libavfilter/vulkan.c des_entries[i].offset = ((uint8_t *)desc[i].updater) - (uint8_t *)s; s 1163 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 1165 libavfilter/vulkan.c vkUpdateDescriptorSetWithTemplate(s->hwctx->act_dev, s 1166 libavfilter/vulkan.c pl->desc_set[s->cur_queue_idx * pl->desc_layout_num + set_id], s 1168 libavfilter/vulkan.c s); s 1175 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 1176 libavfilter/vulkan.c vkCmdPushConstants(e->bufs[s->cur_queue_idx], e->bound_pl->pipeline_layout, s 1183 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 1185 libavfilter/vulkan.c pl->descriptor_sets_num = pl->desc_layout_num * s->queue_count; s 1195 libavfilter/vulkan.c ret = vkCreateDescriptorPool(s->hwctx->act_dev, &pool_create_info, s 1196 libavfilter/vulkan.c s->hwctx->alloc, &pl->desc_pool); s 1217 libavfilter/vulkan.c ret = vkAllocateDescriptorSets(s->hwctx->act_dev, &alloc_info, s 1235 libavfilter/vulkan.c ret = vkCreatePipelineLayout(s->hwctx->act_dev, &spawn_pipeline_layout, s 1236 libavfilter/vulkan.c s->hwctx->alloc, &pl->pipeline_layout); s 1257 libavfilter/vulkan.c ret = vkCreateDescriptorUpdateTemplate(s->hwctx->act_dev, s 1259 libavfilter/vulkan.c s->hwctx->alloc, s 1285 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 1303 libavfilter/vulkan.c ret = vkCreateComputePipelines(s->hwctx->act_dev, VK_NULL_HANDLE, 1, &pipe, s 1304 libavfilter/vulkan.c s->hwctx->alloc, &pl->pipeline); s 1319 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 1321 libavfilter/vulkan.c vkCmdBindPipeline(e->bufs[s->cur_queue_idx], pl->bind_point, pl->pipeline); s 1323 libavfilter/vulkan.c vkCmdBindDescriptorSets(e->bufs[s->cur_queue_idx], pl->bind_point, s 1330 libavfilter/vulkan.c static void free_exec_ctx(VulkanFilterContext *s, FFVkExecContext *e) s 1333 libavfilter/vulkan.c for (int i = 0; i < s->queue_count; i++) { s 1337 libavfilter/vulkan.c vkWaitForFences(s->hwctx->act_dev, 1, &q->fence, VK_TRUE, UINT64_MAX); s 1338 libavfilter/vulkan.c vkResetFences(s->hwctx->act_dev, 1, &q->fence); s 1343 libavfilter/vulkan.c vkDestroyFence(s->hwctx->act_dev, q->fence, s->hwctx->alloc); s 1357 libavfilter/vulkan.c vkFreeCommandBuffers(s->hwctx->act_dev, e->pool, s->queue_count, e->bufs); s 1359 libavfilter/vulkan.c vkDestroyCommandPool(s->hwctx->act_dev, e->pool, s->hwctx->alloc); s 1369 libavfilter/vulkan.c static void free_pipeline(VulkanFilterContext *s, VulkanPipeline *pl) s 1374 libavfilter/vulkan.c vkDestroyShaderModule(s->hwctx->act_dev, shd->shader.module, s 1375 libavfilter/vulkan.c s->hwctx->alloc); s 1379 libavfilter/vulkan.c vkDestroyPipeline(s->hwctx->act_dev, pl->pipeline, s->hwctx->alloc); s 1380 libavfilter/vulkan.c vkDestroyPipelineLayout(s->hwctx->act_dev, pl->pipeline_layout, s 1381 libavfilter/vulkan.c s->hwctx->alloc); s 1385 libavfilter/vulkan.c vkDestroyDescriptorUpdateTemplate(s->hwctx->act_dev, pl->desc_template[i], s 1386 libavfilter/vulkan.c s->hwctx->alloc); s 1388 libavfilter/vulkan.c vkDestroyDescriptorSetLayout(s->hwctx->act_dev, pl->desc_layout[i], s 1389 libavfilter/vulkan.c s->hwctx->alloc); s 1394 libavfilter/vulkan.c vkDestroyDescriptorPool(s->hwctx->act_dev, pl->desc_pool, s 1395 libavfilter/vulkan.c s->hwctx->alloc); s 1417 libavfilter/vulkan.c VulkanFilterContext *s = avctx->priv; s 1421 libavfilter/vulkan.c for (int i = 0; i < s->exec_ctx_num; i++) s 1422 libavfilter/vulkan.c free_exec_ctx(s, s->exec_ctx[i]); s 1423 libavfilter/vulkan.c av_freep(&s->exec_ctx); s 1425 libavfilter/vulkan.c for (int i = 0; i < s->samplers_num; i++) { s 1426 libavfilter/vulkan.c vkDestroySampler(s->hwctx->act_dev, *s->samplers[i], s->hwctx->alloc); s 1427 libavfilter/vulkan.c av_free(s->samplers[i]); s 1429 libavfilter/vulkan.c av_freep(&s->samplers); s 1431 libavfilter/vulkan.c for (int i = 0; i < s->pipelines_num; i++) s 1432 libavfilter/vulkan.c free_pipeline(s, s->pipelines[i]); s 1433 libavfilter/vulkan.c av_freep(&s->pipelines); s 1435 libavfilter/vulkan.c av_freep(&s->scratch); s 1436 libavfilter/vulkan.c s->scratch_size = 0; s 1438 libavfilter/vulkan.c av_buffer_unref(&s->device_ref); s 1439 libavfilter/vulkan.c av_buffer_unref(&s->frames_ref); s 30 libavfilter/x86/af_afir_init.c av_cold void ff_afir_init_x86(AudioFIRDSPContext *s) s 35 libavfilter/x86/af_afir_init.c s->fcmul_add = ff_fcmul_add_sse3; s 38 libavfilter/x86/af_afir_init.c s->fcmul_add = ff_fcmul_add_avx; s 28 libavfilter/x86/af_anlmdn_init.c av_cold void ff_anlmdn_init_x86(AudioNLMDNDSPContext *s) s 33 libavfilter/x86/af_anlmdn_init.c s->compute_distance_ssd = ff_compute_distance_ssd_sse; s 47 libavfilter/x86/avf_showcqt_init.c av_cold void ff_showcqt_init_x86(ShowCQTContext *s) s 53 libavfilter/x86/avf_showcqt_init.c s->cqt_calc = ff_showcqt_cqt_calc_##type; \ s 54 libavfilter/x86/avf_showcqt_init.c s->cqt_align = align; \ s 55 libavfilter/x86/avf_showcqt_init.c s->permute_coeffs = permute_coeffs_##perm; \ s 32 libavfilter/x86/vf_convolution_init.c av_cold void ff_convolution_init_x86(ConvolutionContext *s) s 38 libavfilter/x86/vf_convolution_init.c if (s->mode[i] == MATRIX_SQUARE) { s 39 libavfilter/x86/vf_convolution_init.c if (s->matrix_length[i] == 9) { s 41 libavfilter/x86/vf_convolution_init.c s->filter[i] = ff_filter_3x3_sse4; s 28 libavfilter/x86/vf_framerate_init.c void ff_framerate_init_x86(FrameRateContext *s) s 31 libavfilter/x86/vf_framerate_init.c if (s->bitdepth == 8) { s 33 libavfilter/x86/vf_framerate_init.c s->blend = ff_blend_frames_avx2; s 35 libavfilter/x86/vf_framerate_init.c s->blend = ff_blend_frames_ssse3; s 38 libavfilter/x86/vf_framerate_init.c s->blend = ff_blend_frames16_avx2; s 40 libavfilter/x86/vf_framerate_init.c s->blend = ff_blend_frames16_sse4; s 37 libavfilter/x86/vf_fspp_init.c av_cold void ff_fspp_init_x86(FSPPContext *s) s 42 libavfilter/x86/vf_fspp_init.c s->store_slice = ff_store_slice_mmx; s 43 libavfilter/x86/vf_fspp_init.c s->store_slice2 = ff_store_slice2_mmx; s 44 libavfilter/x86/vf_fspp_init.c s->mul_thrmat = ff_mul_thrmat_mmx; s 45 libavfilter/x86/vf_fspp_init.c s->column_fidct = ff_column_fidct_mmx; s 46 libavfilter/x86/vf_fspp_init.c s->row_idct = ff_row_idct_mmx; s 47 libavfilter/x86/vf_fspp_init.c s->row_fdct = ff_row_fdct_mmx; s 30 libavfilter/x86/vf_gblur_init.c av_cold void ff_gblur_init_x86(GBlurContext *s) s 36 libavfilter/x86/vf_gblur_init.c s->horiz_slice = ff_horiz_slice_sse4; s 38 libavfilter/x86/vf_gblur_init.c s->horiz_slice = ff_horiz_slice_avx2; s 31 libavfilter/x86/vf_hflip_init.c av_cold void ff_hflip_init_x86(FlipContext *s, int step[4], int nb_planes) s 39 libavfilter/x86/vf_hflip_init.c s->flip_line[i] = ff_hflip_byte_ssse3; s 42 libavfilter/x86/vf_hflip_init.c s->flip_line[i] = ff_hflip_byte_avx2; s 46 libavfilter/x86/vf_hflip_init.c s->flip_line[i] = ff_hflip_short_ssse3; s 49 libavfilter/x86/vf_hflip_init.c s->flip_line[i] = ff_hflip_short_avx2; s 33 libavfilter/x86/vf_maskedmerge_init.c av_cold void ff_maskedmerge_init_x86(MaskedMergeContext *s) s 37 libavfilter/x86/vf_maskedmerge_init.c if (EXTERNAL_SSE2(cpu_flags) && s->depth == 8) { s 38 libavfilter/x86/vf_maskedmerge_init.c s->maskedmerge = ff_maskedmerge8_sse2; s 26 libavfilter/x86/vf_overlay_init.c int ff_overlay_row_44_sse4(uint8_t *d, uint8_t *da, uint8_t *s, uint8_t *a, s 29 libavfilter/x86/vf_overlay_init.c int ff_overlay_row_20_sse4(uint8_t *d, uint8_t *da, uint8_t *s, uint8_t *a, s 32 libavfilter/x86/vf_overlay_init.c int ff_overlay_row_22_sse4(uint8_t *d, uint8_t *da, uint8_t *s, uint8_t *a, s 35 libavfilter/x86/vf_overlay_init.c av_cold void ff_overlay_init_x86(OverlayContext *s, int format, int pix_format, s 44 libavfilter/x86/vf_overlay_init.c s->blend_row[0] = ff_overlay_row_44_sse4; s 45 libavfilter/x86/vf_overlay_init.c s->blend_row[1] = ff_overlay_row_44_sse4; s 46 libavfilter/x86/vf_overlay_init.c s->blend_row[2] = ff_overlay_row_44_sse4; s 53 libavfilter/x86/vf_overlay_init.c s->blend_row[0] = ff_overlay_row_44_sse4; s 54 libavfilter/x86/vf_overlay_init.c s->blend_row[1] = ff_overlay_row_20_sse4; s 55 libavfilter/x86/vf_overlay_init.c s->blend_row[2] = ff_overlay_row_20_sse4; s 61 libavfilter/x86/vf_overlay_init.c s->blend_row[0] = ff_overlay_row_44_sse4; s 62 libavfilter/x86/vf_overlay_init.c s->blend_row[1] = ff_overlay_row_22_sse4; s 63 libavfilter/x86/vf_overlay_init.c s->blend_row[2] = ff_overlay_row_22_sse4; s 26 libavfilter/x86/vf_pullup_init.c int ff_pullup_filter_diff_mmx(const uint8_t *a, const uint8_t *b, ptrdiff_t s); s 27 libavfilter/x86/vf_pullup_init.c int ff_pullup_filter_comb_mmx(const uint8_t *a, const uint8_t *b, ptrdiff_t s); s 28 libavfilter/x86/vf_pullup_init.c int ff_pullup_filter_var_mmx (const uint8_t *a, const uint8_t *b, ptrdiff_t s); s 30 libavfilter/x86/vf_pullup_init.c av_cold void ff_pullup_init_x86(PullupContext *s) s 36 libavfilter/x86/vf_pullup_init.c s->diff = ff_pullup_filter_diff_mmx; s 37 libavfilter/x86/vf_pullup_init.c s->comb = ff_pullup_filter_comb_mmx; s 38 libavfilter/x86/vf_pullup_init.c s->var = ff_pullup_filter_var_mmx; s 221 libavfilter/x86/vf_spp.c av_cold void ff_spp_init_x86(SPPContext *s) s 230 libavfilter/x86/vf_spp.c s->dct->idct_permutation, s 231 libavfilter/x86/vf_spp.c sizeof(s->dct->idct_permutation)); s 233 libavfilter/x86/vf_spp.c s->store_slice = store_slice_mmx; s 234 libavfilter/x86/vf_spp.c av_opt_get_int(s->dct, "bits_per_sample", 0, &bps); s 236 libavfilter/x86/vf_spp.c switch (s->mode) { s 237 libavfilter/x86/vf_spp.c case 0: s->requantize = hardthresh_mmx; break; s 238 libavfilter/x86/vf_spp.c case 1: s->requantize = softthresh_mmx; break; s 40 libavfilter/x86/vf_threshold_init.c av_cold void ff_threshold_init_x86(ThresholdContext *s) s 44 libavfilter/x86/vf_threshold_init.c if (s->depth == 8) { s 46 libavfilter/x86/vf_threshold_init.c s->threshold = ff_threshold8_sse4; s 49 libavfilter/x86/vf_threshold_init.c s->threshold = ff_threshold8_avx2; s 51 libavfilter/x86/vf_threshold_init.c } else if (s->depth == 16) { s 53 libavfilter/x86/vf_threshold_init.c s->threshold = ff_threshold16_sse4; s 56 libavfilter/x86/vf_threshold_init.c s->threshold = ff_threshold16_avx2; s 58 libavfilter/x86/vf_tinterlace_init.c av_cold void ff_tinterlace_init_x86(TInterlaceContext *s) s 62 libavfilter/x86/vf_tinterlace_init.c if (s->csp->comp[0].depth > 8) { s 64 libavfilter/x86/vf_tinterlace_init.c if (!(s->flags & TINTERLACE_FLAG_CVLPF)) s 65 libavfilter/x86/vf_tinterlace_init.c s->lowpass_line = ff_lowpass_line_16_sse2; s 67 libavfilter/x86/vf_tinterlace_init.c s->lowpass_line = ff_lowpass_line_complex_12_sse2; s 70 libavfilter/x86/vf_tinterlace_init.c if (!(s->flags & TINTERLACE_FLAG_CVLPF)) s 71 libavfilter/x86/vf_tinterlace_init.c s->lowpass_line = ff_lowpass_line_16_avx; s 73 libavfilter/x86/vf_tinterlace_init.c if (!(s->flags & TINTERLACE_FLAG_CVLPF)) { s 74 libavfilter/x86/vf_tinterlace_init.c s->lowpass_line = ff_lowpass_line_16_avx2; s 79 libavfilter/x86/vf_tinterlace_init.c if (!(s->flags & TINTERLACE_FLAG_CVLPF)) s 80 libavfilter/x86/vf_tinterlace_init.c s->lowpass_line = ff_lowpass_line_sse2; s 82 libavfilter/x86/vf_tinterlace_init.c s->lowpass_line = ff_lowpass_line_complex_sse2; s 85 libavfilter/x86/vf_tinterlace_init.c if (!(s->flags & TINTERLACE_FLAG_CVLPF)) s 86 libavfilter/x86/vf_tinterlace_init.c s->lowpass_line = ff_lowpass_line_avx; s 88 libavfilter/x86/vf_tinterlace_init.c if (!(s->flags & TINTERLACE_FLAG_CVLPF)) { s 89 libavfilter/x86/vf_tinterlace_init.c s->lowpass_line = ff_lowpass_line_avx2; s 44 libavfilter/x86/vf_v360_init.c av_cold void ff_v360_init_x86(V360Context *s, int depth) s 48 libavfilter/x86/vf_v360_init.c if (EXTERNAL_AVX2_FAST(cpu_flags) && s->interp == NEAREST && depth <= 8) s 49 libavfilter/x86/vf_v360_init.c s->remap_line = ff_remap1_8bit_line_avx2; s 51 libavfilter/x86/vf_v360_init.c if (EXTERNAL_AVX2_FAST(cpu_flags) && s->interp == BILINEAR && depth <= 8) s 52 libavfilter/x86/vf_v360_init.c s->remap_line = ff_remap2_8bit_line_avx2; s 54 libavfilter/x86/vf_v360_init.c if (EXTERNAL_AVX2_FAST(cpu_flags) && s->interp == NEAREST && depth > 8) s 55 libavfilter/x86/vf_v360_init.c s->remap_line = ff_remap1_16bit_line_avx2; s 57 libavfilter/x86/vf_v360_init.c if (EXTERNAL_AVX2_FAST(cpu_flags) && s->interp == BILINEAR && depth > 8) s 58 libavfilter/x86/vf_v360_init.c s->remap_line = ff_remap2_16bit_line_avx2; s 61 libavfilter/x86/vf_v360_init.c if (EXTERNAL_AVX2_FAST(cpu_flags) && s->interp == LAGRANGE9 && depth <= 8) s 62 libavfilter/x86/vf_v360_init.c s->remap_line = ff_remap3_8bit_line_avx2; s 64 libavfilter/x86/vf_v360_init.c if (EXTERNAL_AVX2_FAST(cpu_flags) && (s->interp == BICUBIC || s 65 libavfilter/x86/vf_v360_init.c s->interp == LANCZOS || s 66 libavfilter/x86/vf_v360_init.c s->interp == SPLINE16 || s 67 libavfilter/x86/vf_v360_init.c s->interp == GAUSSIAN) && depth <= 8) s 68 libavfilter/x86/vf_v360_init.c s->remap_line = ff_remap4_8bit_line_avx2; s 35 libavformat/3dostr.c static int threedostr_read_header(AVFormatContext *s) s 40 libavformat/3dostr.c while (!avio_feof(s->pb) && !found_shdr) { s 41 libavformat/3dostr.c chunk = avio_rl32(s->pb); s 42 libavformat/3dostr.c size = avio_rb32(s->pb); s 55 libavformat/3dostr.c avio_skip(s->pb, 8); s 56 libavformat/3dostr.c if (avio_rl32(s->pb) != MKTAG('S','H','D','R')) s 58 libavformat/3dostr.c avio_skip(s->pb, 24); s 60 libavformat/3dostr.c st = avformat_new_stream(s, NULL); s 65 libavformat/3dostr.c st->codecpar->sample_rate = avio_rb32(s->pb); s 66 libavformat/3dostr.c st->codecpar->channels = avio_rb32(s->pb); s 69 libavformat/3dostr.c codec = avio_rl32(s->pb); s 70 libavformat/3dostr.c avio_skip(s->pb, 4); s 72 libavformat/3dostr.c st->duration = (avio_rb32(s->pb) - 1) / st->codecpar->channels; s 74 libavformat/3dostr.c st->duration = avio_rb32(s->pb) * 16 / st->codecpar->channels; s 80 libavformat/3dostr.c avio_skip(s->pb, 0x74); s 82 libavformat/3dostr.c if (avio_rl32(s->pb) == MKTAG('C','T','R','L') && size > 4) { s 83 libavformat/3dostr.c ctrl_size = avio_rb32(s->pb); s 89 libavformat/3dostr.c av_log(s, AV_LOG_DEBUG, "skipping unknown chunk: %X\n", chunk); s 93 libavformat/3dostr.c avio_skip(s->pb, size); s 102 libavformat/3dostr.c avpriv_request_sample(s, "codec %X", codec); s 111 libavformat/3dostr.c static int threedostr_read_packet(AVFormatContext *s, AVPacket *pkt) s 114 libavformat/3dostr.c AVStream *st = s->streams[0]; s 119 libavformat/3dostr.c if (avio_feof(s->pb)) s 122 libavformat/3dostr.c pos = avio_tell(s->pb); s 123 libavformat/3dostr.c chunk = avio_rl32(s->pb); s 124 libavformat/3dostr.c size = avio_rb32(s->pb); s 137 libavformat/3dostr.c avio_skip(s->pb, 8); s 138 libavformat/3dostr.c if (avio_rl32(s->pb) != MKTAG('S','S','M','P')) s 140 libavformat/3dostr.c avio_skip(s->pb, 4); s 142 libavformat/3dostr.c ret = av_get_packet(s->pb, pkt, size); s 150 libavformat/3dostr.c av_log(s, AV_LOG_DEBUG, "skipping unknown chunk: %X\n", chunk); s 154 libavformat/3dostr.c avio_skip(s->pb, size); s 95 libavformat/4xm.c static int parse_vtrk(AVFormatContext *s, s 106 libavformat/4xm.c st = avformat_new_stream(s, NULL); s 129 libavformat/4xm.c static int parse_strk(AVFormatContext *s, s 141 libavformat/4xm.c av_log(s, AV_LOG_ERROR, "current_track too large\n"); s 163 libavformat/4xm.c av_log(s, AV_LOG_ERROR, "audio header invalid\n"); s 167 libavformat/4xm.c av_log(s, AV_LOG_ERROR, "bits unspecified for non ADPCM\n"); s 172 libavformat/4xm.c av_log(s, AV_LOG_ERROR, "Overflow during bit rate calculation %d * %d * %d\n", s 178 libavformat/4xm.c st = avformat_new_stream(s, NULL); s 208 libavformat/4xm.c static int fourxm_read_header(AVFormatContext *s) s 210 libavformat/4xm.c AVIOContext *pb = s->pb; s 214 libavformat/4xm.c FourxmDemuxContext *fourxm = s->priv_data; s 246 libavformat/4xm.c av_log(s, AV_LOG_ERROR, "chunk larger than array %d>%d\n", size, header_size - i - 8); s 253 libavformat/4xm.c av_log(s, AV_LOG_ERROR, "std TAG truncated\n"); s 259 libavformat/4xm.c if ((ret = parse_vtrk(s, fourxm, header + i, size, s 265 libavformat/4xm.c if ((ret = parse_strk(s, fourxm, header + i, size, s 291 libavformat/4xm.c static int fourxm_read_packet(AVFormatContext *s, s 294 libavformat/4xm.c FourxmDemuxContext *fourxm = s->priv_data; s 295 libavformat/4xm.c AVIOContext *pb = s->pb; s 305 libavformat/4xm.c if ((ret = avio_read(s->pb, header, 8)) < 0) s 336 libavformat/4xm.c pkt->pos = avio_tell(s->pb); s 338 libavformat/4xm.c ret = avio_read(s->pb, &pkt->data[8], size); s 355 libavformat/4xm.c ret = av_get_packet(s->pb, pkt, size); s 387 libavformat/4xm.c static int fourxm_read_close(AVFormatContext *s) s 389 libavformat/4xm.c FourxmDemuxContext *fourxm = s->priv_data; s 27 libavformat/a64.c static int a64_write_header(AVFormatContext *s) s 29 libavformat/a64.c AVCodecParameters *par = s->streams[0]->codecpar; s 39 libavformat/a64.c av_log(s, AV_LOG_ERROR, "Missing extradata\n"); s 57 libavformat/a64.c avio_write(s->pb, header, 2); s 83 libavformat/aacdec.c static int adts_aac_resync(AVFormatContext *s) s 88 libavformat/aacdec.c state = avio_r8(s->pb); s 89 libavformat/aacdec.c while (!avio_feof(s->pb) && avio_tell(s->pb) < s->probesize) { s 90 libavformat/aacdec.c state = (state << 8) | avio_r8(s->pb); s 93 libavformat/aacdec.c avio_seek(s->pb, -2, SEEK_CUR); s 96 libavformat/aacdec.c if (s->pb->eof_reached) s 104 libavformat/aacdec.c static int adts_aac_read_header(AVFormatContext *s) s 109 libavformat/aacdec.c st = avformat_new_stream(s, NULL); s 114 libavformat/aacdec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 117 libavformat/aacdec.c ff_id3v1_read(s); s 118 libavformat/aacdec.c if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && s 119 libavformat/aacdec.c !av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) { s 120 libavformat/aacdec.c int64_t cur = avio_tell(s->pb); s 121 libavformat/aacdec.c ff_ape_parse_tag(s); s 122 libavformat/aacdec.c avio_seek(s->pb, cur, SEEK_SET); s 125 libavformat/aacdec.c ret = adts_aac_resync(s); s 135 libavformat/aacdec.c static int handle_id3(AVFormatContext *s, AVPacket *pkt) s 142 libavformat/aacdec.c ret = av_append_packet(s->pb, pkt, ff_id3v2_tag_len(pkt->data) - pkt->size); s 153 libavformat/aacdec.c if ((ret = av_dict_copy(&s->metadata, metadata, 0)) < 0) s 155 libavformat/aacdec.c s->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; s 166 libavformat/aacdec.c static int adts_aac_read_packet(AVFormatContext *s, AVPacket *pkt) s 171 libavformat/aacdec.c ret = av_get_packet(s->pb, pkt, ADTS_HEADER_SIZE); s 184 libavformat/aacdec.c ret = av_append_packet(s->pb, pkt, append); s 190 libavformat/aacdec.c ret = adts_aac_resync(s); s 192 libavformat/aacdec.c ret = handle_id3(s, pkt); s 204 libavformat/aacdec.c ret = av_append_packet(s->pb, pkt, fsize - pkt->size); s 72 libavformat/aadec.c static int aa_read_header(AVFormatContext *s) s 85 libavformat/aadec.c AADemuxContext *c = s->priv_data; s 86 libavformat/aadec.c AVIOContext *pb = s->pb; s 115 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "Codec is <%s>\n", val); s 118 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "HeaderSeed is <%s>\n", val); s 121 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "HeaderKey is <%s>\n", val); s 131 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "Processed HeaderKey is "); s 133 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "%02x", header_key[i]); s 134 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "\n"); s 136 libavformat/aadec.c av_dict_set(&s->metadata, key, val, 0); s 142 libavformat/aadec.c av_log(s, AV_LOG_ERROR, "aa_fixed_key value needs to be 16 bytes!\n"); s 148 libavformat/aadec.c av_log(s, AV_LOG_ERROR, "unknown codec <%s>!\n", codec_name); s 170 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "File key is "); s 172 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "%02x", c->file_key[i]); s 173 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "\n"); s 176 libavformat/aadec.c st = avformat_new_stream(s, NULL); s 224 libavformat/aadec.c int chapter_idx = s->nb_chapters; s 229 libavformat/aadec.c if (!avpriv_new_chapter(s, chapter_idx, st->time_base, s 234 libavformat/aadec.c st->duration = (largest_size - CHAPTER_HEADER_SIZE * s->nb_chapters) * TIMEPREC; s 236 libavformat/aadec.c ff_update_cur_dts(s, st, 0); s 244 libavformat/aadec.c static int aa_read_packet(AVFormatContext *s, AVPacket *pkt) s 254 libavformat/aadec.c AADemuxContext *c = s->priv_data; s 255 libavformat/aadec.c uint64_t pos = avio_tell(s->pb); s 264 libavformat/aadec.c c->current_chapter_size = avio_rb32(s->pb); s 268 libavformat/aadec.c av_log(s, AV_LOG_DEBUG, "Chapter %d (%" PRId64 " bytes)\n", c->chapter_idx, c->current_chapter_size); s 270 libavformat/aadec.c avio_skip(s->pb, 4); // data start offset s 283 libavformat/aadec.c ret = avio_read(s->pb, src, TEA_BLOCK_SIZE); s 293 libavformat/aadec.c ret = avio_read(s->pb, src, trailing_bytes); s 318 libavformat/aadec.c static int aa_read_seek(AVFormatContext *s, s 321 libavformat/aadec.c AADemuxContext *c = s->priv_data; s 330 libavformat/aadec.c while (chapter_idx < s->nb_chapters && timestamp >= s->chapters[chapter_idx]->end) { s 334 libavformat/aadec.c if (chapter_idx >= s->nb_chapters) { s 335 libavformat/aadec.c chapter_idx = s->nb_chapters - 1; s 337 libavformat/aadec.c timestamp = s->chapters[chapter_idx]->end; s 340 libavformat/aadec.c ch = s->chapters[chapter_idx]; s 353 libavformat/aadec.c avio_seek(s->pb, chapter_start + chapter_pos, SEEK_SET); s 359 libavformat/aadec.c if (s->streams[0]->codecpar->codec_id == AV_CODEC_ID_MP3) { s 363 libavformat/aadec.c ff_update_cur_dts(s, s->streams[0], ch->start + (chapter_pos + c->seek_offset) * TIMEPREC); s 379 libavformat/aadec.c static int aa_read_close(AVFormatContext *s) s 381 libavformat/aadec.c AADemuxContext *c = s->priv_data; s 35 libavformat/acm.c static int acm_read_header(AVFormatContext *s) s 40 libavformat/acm.c st = avformat_new_stream(s, NULL); s 47 libavformat/acm.c ret = ff_get_extradata(s, st->codecpar, s->pb, 14); s 63 libavformat/act.c static int read_header(AVFormatContext *s) s 65 libavformat/act.c ACTContext* ctx = s->priv_data; s 66 libavformat/act.c AVIOContext *pb = s->pb; s 72 libavformat/act.c st = avformat_new_stream(s, NULL); s 78 libavformat/act.c ff_get_wav_header(s, pb, st->codecpar, size, 0); s 85 libavformat/act.c av_log(s, AV_LOG_ERROR, "Sample rate %d is not supported.\n", st->codecpar->sample_rate); s 110 libavformat/act.c static int read_packet(AVFormatContext *s, s 113 libavformat/act.c ACTContext *ctx = s->priv_data; s 114 libavformat/act.c AVIOContext *pb = s->pb; s 116 libavformat/act.c int frame_size=s->streams[0]->codecpar->sample_rate==8000?10:22; s 119 libavformat/act.c if(s->streams[0]->codecpar->sample_rate==8000) s 127 libavformat/act.c if(s->streams[0]->codecpar->sample_rate==4400 && !ctx->second_packet) s 150 libavformat/act.c else if(s->streams[0]->codecpar->sample_rate==4400 && ctx->second_packet) s 48 libavformat/adp.c static int adp_read_header(AVFormatContext *s) s 52 libavformat/adp.c st = avformat_new_stream(s, NULL); s 62 libavformat/adp.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) s 63 libavformat/adp.c st->duration = av_get_audio_frame_duration2(st->codecpar, avio_size(s->pb)); s 70 libavformat/adp.c static int adp_read_packet(AVFormatContext *s, AVPacket *pkt) s 74 libavformat/adp.c if (avio_feof(s->pb)) s 77 libavformat/adp.c ret = av_get_packet(s->pb, pkt, size); s 35 libavformat/ads.c static int ads_read_header(AVFormatContext *s) s 40 libavformat/ads.c st = avformat_new_stream(s, NULL); s 44 libavformat/ads.c avio_skip(s->pb, 8); s 46 libavformat/ads.c codec = avio_rl32(s->pb); s 47 libavformat/ads.c st->codecpar->sample_rate = avio_rl32(s->pb); s 50 libavformat/ads.c st->codecpar->channels = avio_rl32(s->pb); s 53 libavformat/ads.c align = avio_rl32(s->pb); s 63 libavformat/ads.c avio_skip(s->pb, 12); s 64 libavformat/ads.c size = avio_rl32(s->pb); s 72 libavformat/ads.c static int ads_read_packet(AVFormatContext *s, AVPacket *pkt) s 74 libavformat/ads.c AVCodecParameters *par = s->streams[0]->codecpar; s 77 libavformat/ads.c ret = av_get_packet(s->pb, pkt, par->block_align); s 48 libavformat/adtsenc.c static int adts_decode_extradata(AVFormatContext *s, ADTSContext *adts, const uint8_t *buf, int size) s 56 libavformat/adtsenc.c off = avpriv_mpeg4audio_get_config2(&m4ac, buf, size, 1, s); s 65 libavformat/adtsenc.c av_log(s, AV_LOG_ERROR, "MPEG-4 AOT %d is not allowed in ADTS\n", adts->objecttype+1); s 69 libavformat/adtsenc.c av_log(s, AV_LOG_ERROR, "Escape sample rate index illegal in ADTS\n"); s 73 libavformat/adtsenc.c av_log(s, AV_LOG_ERROR, "960/120 MDCT window is not allowed in ADTS\n"); s 77 libavformat/adtsenc.c av_log(s, AV_LOG_ERROR, "Scalable configurations are not allowed in ADTS\n"); s 81 libavformat/adtsenc.c av_log(s, AV_LOG_ERROR, "Extension flag is not allowed in ADTS\n"); s 97 libavformat/adtsenc.c static int adts_init(AVFormatContext *s) s 99 libavformat/adtsenc.c ADTSContext *adts = s->priv_data; s 100 libavformat/adtsenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 103 libavformat/adtsenc.c av_log(s, AV_LOG_ERROR, "Only AAC streams can be muxed by the ADTS muxer\n"); s 107 libavformat/adtsenc.c return adts_decode_extradata(s, adts, par->extradata, s 113 libavformat/adtsenc.c static int adts_write_header(AVFormatContext *s) s 115 libavformat/adtsenc.c ADTSContext *adts = s->priv_data; s 118 libavformat/adtsenc.c ff_id3v2_write_simple(s, 4, ID3v2_DEFAULT_MAGIC); s 161 libavformat/adtsenc.c static int adts_write_packet(AVFormatContext *s, AVPacket *pkt) s 163 libavformat/adtsenc.c ADTSContext *adts = s->priv_data; s 164 libavformat/adtsenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 165 libavformat/adtsenc.c AVIOContext *pb = s->pb; s 177 libavformat/adtsenc.c ret = adts_decode_extradata(s, adts, side_data, side_data_size); s 202 libavformat/adtsenc.c static int adts_write_trailer(AVFormatContext *s) s 204 libavformat/adtsenc.c ADTSContext *adts = s->priv_data; s 207 libavformat/adtsenc.c ff_ape_write_tag(s); s 50 libavformat/adxdec.c static int adx_read_packet(AVFormatContext *s, AVPacket *pkt) s 52 libavformat/adxdec.c ADXDemuxerContext *c = s->priv_data; s 53 libavformat/adxdec.c AVCodecParameters *par = s->streams[0]->codecpar; s 57 libavformat/adxdec.c av_log(s, AV_LOG_ERROR, "invalid number of channels %d\n", par->channels); s 63 libavformat/adxdec.c pkt->pos = avio_tell(s->pb); s 66 libavformat/adxdec.c ret = av_get_packet(s->pb, pkt, size); s 80 libavformat/adxdec.c static int adx_read_header(AVFormatContext *s) s 82 libavformat/adxdec.c ADXDemuxerContext *c = s->priv_data; s 85 libavformat/adxdec.c AVStream *st = avformat_new_stream(s, NULL); s 88 libavformat/adxdec.c par = s->streams[0]->codecpar; s 90 libavformat/adxdec.c if (avio_rb16(s->pb) != 0x8000) s 92 libavformat/adxdec.c c->header_size = avio_rb16(s->pb) + 4; s 93 libavformat/adxdec.c avio_seek(s->pb, -4, SEEK_CUR); s 95 libavformat/adxdec.c if ((ret = ff_get_extradata(s, par, s->pb, c->header_size)) < 0) s 99 libavformat/adxdec.c av_log(s, AV_LOG_ERROR, "Invalid extradata size.\n"); s 106 libavformat/adxdec.c av_log(s, AV_LOG_ERROR, "invalid number of channels %d\n", par->channels); s 111 libavformat/adxdec.c av_log(s, AV_LOG_ERROR, "Invalid sample rate %d\n", par->sample_rate); s 116 libavformat/adxdec.c par->codec_id = s->iformat->raw_codec_id; s 62 libavformat/aea.c static int aea_read_header(AVFormatContext *s) s 64 libavformat/aea.c AVStream *st = avformat_new_stream(s, NULL); s 69 libavformat/aea.c avio_skip(s->pb, 264); s 70 libavformat/aea.c st->codecpar->channels = avio_r8(s->pb); s 71 libavformat/aea.c avio_skip(s->pb, 1783); s 80 libavformat/aea.c av_log(s, AV_LOG_ERROR, "Channels %d not supported!\n", st->codecpar->channels); s 90 libavformat/aea.c static int aea_read_packet(AVFormatContext *s, AVPacket *pkt) s 92 libavformat/aea.c int ret = av_get_packet(s->pb, pkt, s->streams[0]->codecpar->block_align); s 30 libavformat/afc.c static int afc_read_header(AVFormatContext *s) s 32 libavformat/afc.c AFCDemuxContext *c = s->priv_data; s 36 libavformat/afc.c st = avformat_new_stream(s, NULL); s 48 libavformat/afc.c c->data_end = avio_rb32(s->pb) + 32LL; s 49 libavformat/afc.c st->duration = avio_rb32(s->pb); s 50 libavformat/afc.c st->codecpar->sample_rate = avio_rb16(s->pb); s 51 libavformat/afc.c avio_skip(s->pb, 22); s 57 libavformat/afc.c static int afc_read_packet(AVFormatContext *s, AVPacket *pkt) s 59 libavformat/afc.c AFCDemuxContext *c = s->priv_data; s 63 libavformat/afc.c size = FFMIN(c->data_end - avio_tell(s->pb), 18 * 128); s 67 libavformat/afc.c ret = av_get_packet(s->pb, pkt, size); s 75 libavformat/aiffdec.c static void get_meta(AVFormatContext *s, const char *key, int size) s 80 libavformat/aiffdec.c int res = avio_read(s->pb, str, size); s 87 libavformat/aiffdec.c av_dict_set(&s->metadata, key, str, AV_DICT_DONT_STRDUP_VAL); s 90 libavformat/aiffdec.c avio_skip(s->pb, size); s 94 libavformat/aiffdec.c static int get_aiff_header(AVFormatContext *s, int size, s 97 libavformat/aiffdec.c AVIOContext *pb = s->pb; s 98 libavformat/aiffdec.c AVCodecParameters *par = s->streams[0]->codecpar; s 99 libavformat/aiffdec.c AIFFInputContext *aiff = s->priv_data; s 115 libavformat/aiffdec.c av_log(s, AV_LOG_ERROR, "exp %d is out of range\n", exp); s 132 libavformat/aiffdec.c avpriv_request_sample(s, "unknown or unsupported codec tag: %s", s 206 libavformat/aiffdec.c static int aiff_read_header(AVFormatContext *s) s 212 libavformat/aiffdec.c AVIOContext *pb = s->pb; s 214 libavformat/aiffdec.c AIFFInputContext *aiff = s->priv_data; s 231 libavformat/aiffdec.c st = avformat_new_stream(s, NULL); s 240 libavformat/aiffdec.c av_log(s, AV_LOG_WARNING, "header parser hit EOF\n"); s 254 libavformat/aiffdec.c st->nb_frames = get_aiff_header(s, size, version); s 262 libavformat/aiffdec.c ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, size); s 264 libavformat/aiffdec.c if ((ret = ff_id3v2_parse_apic(s, id3v2_extra_meta)) < 0 || s 265 libavformat/aiffdec.c (ret = ff_id3v2_parse_chapters(s, id3v2_extra_meta)) < 0) { s 277 libavformat/aiffdec.c get_meta(s, "title" , size); s 280 libavformat/aiffdec.c get_meta(s, "author" , size); s 283 libavformat/aiffdec.c get_meta(s, "copyright", size); s 286 libavformat/aiffdec.c get_meta(s, "comment" , size); s 296 libavformat/aiffdec.c av_log(s, AV_LOG_ERROR, "file is not seekable\n"); s 304 libavformat/aiffdec.c if ((ret = ff_get_extradata(s, st->codecpar, pb, size)) < 0) s 328 libavformat/aiffdec.c if ((ret = ff_mov_read_chan(s, pb, st, size)) < 0) s 355 libavformat/aiffdec.c ret = ff_replaygain_export(st, s->metadata); s 361 libavformat/aiffdec.c av_log(s, AV_LOG_WARNING, "qcelp without wave chunk, assuming full rate\n"); s 364 libavformat/aiffdec.c av_log(s, AV_LOG_ERROR, "could not find COMM tag or invalid block_align value\n"); s 381 libavformat/aiffdec.c static int aiff_read_packet(AVFormatContext *s, s 384 libavformat/aiffdec.c AVStream *st = s->streams[0]; s 385 libavformat/aiffdec.c AIFFInputContext *aiff = s->priv_data; s 390 libavformat/aiffdec.c max_size = aiff->data_end - avio_tell(s->pb); s 395 libavformat/aiffdec.c av_log(s, AV_LOG_ERROR, "block_align not set\n"); s 411 libavformat/aiffdec.c res = av_get_packet(s->pb, pkt, size); s 44 libavformat/aiffenc.c static int put_id3v2_tags(AVFormatContext *s, AIFFOutputContext *aiff) s 49 libavformat/aiffenc.c AVIOContext *pb = s->pb; s 52 libavformat/aiffenc.c if (!s->metadata && !s->nb_chapters && !aiff->pict_list) s 60 libavformat/aiffenc.c ff_id3v2_write_metadata(s, &id3v2); s 62 libavformat/aiffenc.c if ((ret = ff_id3v2_write_apic(s, &id3v2, &pict_list->pkt)) < 0) s 66 libavformat/aiffenc.c ff_id3v2_finish(&id3v2, pb, s->metadata_header_padding); s 82 libavformat/aiffenc.c static void put_meta(AVFormatContext *s, const char *key, uint32_t id) s 85 libavformat/aiffenc.c AVIOContext *pb = s->pb; s 87 libavformat/aiffenc.c if (tag = av_dict_get(s->metadata, key, NULL, 0)) { s 98 libavformat/aiffenc.c static int aiff_write_header(AVFormatContext *s) s 100 libavformat/aiffenc.c AIFFOutputContext *aiff = s->priv_data; s 101 libavformat/aiffenc.c AVIOContext *pb = s->pb; s 107 libavformat/aiffenc.c for (i = 0; i < s->nb_streams; i++) { s 108 libavformat/aiffenc.c AVStream *st = s->streams[i]; s 112 libavformat/aiffenc.c av_log(s, AV_LOG_ERROR, "AIFF allows only one audio stream and a picture.\n"); s 117 libavformat/aiffenc.c av_log(s, AV_LOG_ERROR, "No audio stream present.\n"); s 121 libavformat/aiffenc.c par = s->streams[aiff->audio_stream_idx]->codecpar; s 137 libavformat/aiffenc.c av_log(s, AV_LOG_ERROR, "block align not set\n"); s 152 libavformat/aiffenc.c put_meta(s, "title", MKTAG('N', 'A', 'M', 'E')); s 153 libavformat/aiffenc.c put_meta(s, "author", MKTAG('A', 'U', 'T', 'H')); s 154 libavformat/aiffenc.c put_meta(s, "copyright", MKTAG('(', 'c', ')', ' ')); s 155 libavformat/aiffenc.c put_meta(s, "comment", MKTAG('A', 'N', 'N', 'O')); s 168 libavformat/aiffenc.c av_log(s, AV_LOG_ERROR, "could not compute bits per sample\n"); s 199 libavformat/aiffenc.c avpriv_set_pts_info(s->streams[aiff->audio_stream_idx], 64, 1, s 200 libavformat/aiffenc.c s->streams[aiff->audio_stream_idx]->codecpar->sample_rate); s 205 libavformat/aiffenc.c static int aiff_write_packet(AVFormatContext *s, AVPacket *pkt) s 207 libavformat/aiffenc.c AIFFOutputContext *aiff = s->priv_data; s 208 libavformat/aiffenc.c AVIOContext *pb = s->pb; s 212 libavformat/aiffenc.c if (s->streams[pkt->stream_index]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO) s 216 libavformat/aiffenc.c if (s->streams[pkt->stream_index]->nb_frames == 1) { s 217 libavformat/aiffenc.c av_log(s, AV_LOG_WARNING, "Got more than one picture in stream %d," s 220 libavformat/aiffenc.c if (s->streams[pkt->stream_index]->nb_frames >= 1) s 230 libavformat/aiffenc.c static int aiff_write_trailer(AVFormatContext *s) s 233 libavformat/aiffenc.c AVIOContext *pb = s->pb; s 234 libavformat/aiffenc.c AIFFOutputContext *aiff = s->priv_data; s 235 libavformat/aiffenc.c AVCodecParameters *par = s->streams[aiff->audio_stream_idx]->codecpar; s 245 libavformat/aiffenc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 259 libavformat/aiffenc.c if ((ret = put_id3v2_tags(s, aiff)) < 0) s 271 libavformat/aiffenc.c static void aiff_deinit(AVFormatContext *s) s 273 libavformat/aiffenc.c AIFFOutputContext *aiff = s->priv_data; s 36 libavformat/aixdec.c static int aix_read_header(AVFormatContext *s) s 45 libavformat/aixdec.c avio_skip(s->pb, 4); s 46 libavformat/aixdec.c first_offset = avio_rb32(s->pb) + 8; s 47 libavformat/aixdec.c avio_skip(s->pb, 16); s 48 libavformat/aixdec.c nb_segments = avio_rb16(s->pb); s 54 libavformat/aixdec.c avio_seek(s->pb, stream_list_offset, SEEK_SET); s 55 libavformat/aixdec.c nb_streams = avio_r8(s->pb); s 58 libavformat/aixdec.c avio_skip(s->pb, 7); s 60 libavformat/aixdec.c AVStream *st = avformat_new_stream(s, NULL); s 66 libavformat/aixdec.c st->codecpar->sample_rate = avio_rb32(s->pb); s 67 libavformat/aixdec.c st->codecpar->channels = avio_r8(s->pb); s 69 libavformat/aixdec.c avio_skip(s->pb, 3); s 72 libavformat/aixdec.c avio_seek(s->pb, first_offset, SEEK_SET); s 74 libavformat/aixdec.c if (avio_rl32(s->pb) != MKTAG('A','I','X','P')) s 76 libavformat/aixdec.c size = avio_rb32(s->pb); s 79 libavformat/aixdec.c avio_skip(s->pb, 8); s 80 libavformat/aixdec.c ff_get_extradata(s, s->streams[i]->codecpar, s->pb, size - 8); s 86 libavformat/aixdec.c static int aix_read_packet(AVFormatContext *s, AVPacket *pkt) s 92 libavformat/aixdec.c pos = avio_tell(s->pb); s 93 libavformat/aixdec.c if (avio_feof(s->pb)) s 95 libavformat/aixdec.c chunk = avio_rl32(s->pb); s 96 libavformat/aixdec.c size = avio_rb32(s->pb); s 98 libavformat/aixdec.c avio_skip(s->pb, size); s 99 libavformat/aixdec.c for (i = 0; i < s->nb_streams; i++) { s 100 libavformat/aixdec.c if (avio_feof(s->pb)) s 102 libavformat/aixdec.c chunk = avio_rl32(s->pb); s 103 libavformat/aixdec.c size = avio_rb32(s->pb); s 104 libavformat/aixdec.c avio_skip(s->pb, size); s 106 libavformat/aixdec.c pos = avio_tell(s->pb); s 107 libavformat/aixdec.c chunk = avio_rl32(s->pb); s 108 libavformat/aixdec.c size = avio_rb32(s->pb); s 115 libavformat/aixdec.c index = avio_r8(s->pb); s 116 libavformat/aixdec.c if (avio_r8(s->pb) != s->nb_streams || index >= s->nb_streams) s 118 libavformat/aixdec.c duration = avio_rb16(s->pb); s 119 libavformat/aixdec.c sequence = avio_rb32(s->pb); s 121 libavformat/aixdec.c avio_skip(s->pb, size - 8); s 125 libavformat/aixdec.c ret = av_get_packet(s->pb, pkt, size - 8); s 57 libavformat/alp.c static int alp_read_header(AVFormatContext *s) s 64 libavformat/alp.c if ((hdr.magic = avio_rl32(s->pb)) != ALP_TAG) s 67 libavformat/alp.c hdr.header_size = avio_rl32(s->pb); s 73 libavformat/alp.c if ((ret = avio_read(s->pb, hdr.adpcm, sizeof(hdr.adpcm))) < 0) s 81 libavformat/alp.c hdr.unk1 = avio_r8(s->pb); s 82 libavformat/alp.c hdr.num_channels = avio_r8(s->pb); s 89 libavformat/alp.c hdr.sample_rate = avio_rl32(s->pb); s 93 libavformat/alp.c avpriv_request_sample(s, "Sample Rate > 44100"); s 97 libavformat/alp.c if (!(st = avformat_new_stream(s, NULL))) s 125 libavformat/alp.c static int alp_read_packet(AVFormatContext *s, AVPacket *pkt) s 128 libavformat/alp.c AVCodecParameters *par = s->streams[0]->codecpar; s 130 libavformat/alp.c if ((ret = av_get_packet(s->pb, pkt, ALP_MAX_READ_SIZE)) < 0) s 50 libavformat/amr.c static int amr_write_header(AVFormatContext *s) s 52 libavformat/amr.c AVIOContext *pb = s->pb; s 53 libavformat/amr.c AVCodecParameters *par = s->streams[0]->codecpar; s 55 libavformat/amr.c s->priv_data = NULL; s 81 libavformat/amr.c static int amr_read_header(AVFormatContext *s) s 83 libavformat/amr.c AVIOContext *pb = s->pb; s 90 libavformat/amr.c st = avformat_new_stream(s, NULL); s 116 libavformat/amr.c static int amr_read_packet(AVFormatContext *s, AVPacket *pkt) s 118 libavformat/amr.c AVCodecParameters *par = s->streams[0]->codecpar; s 120 libavformat/amr.c int64_t pos = avio_tell(s->pb); s 121 libavformat/amr.c AMRContext *amr = s->priv_data; s 123 libavformat/amr.c if (avio_feof(s->pb)) { s 128 libavformat/amr.c toc = avio_r8(s->pb); s 143 libavformat/amr.c s->streams[0]->codecpar->bit_rate = amr->cumulated_size / ++amr->block_count * 8 * 50; s 150 libavformat/amr.c read = avio_read(s->pb, pkt->data + 1, size - 1); s 203 libavformat/amr.c static int amrnb_read_header(AVFormatContext *s) s 205 libavformat/amr.c AVStream *st = avformat_new_stream(s, NULL); s 259 libavformat/amr.c static int amrwb_read_header(AVFormatContext *s) s 261 libavformat/amr.c AVStream *st = avformat_new_stream(s, NULL); s 79 libavformat/anm.c static int read_header(AVFormatContext *s) s 81 libavformat/anm.c AnmDemuxContext *anm = s->priv_data; s 82 libavformat/anm.c AVIOContext *pb = s->pb; s 88 libavformat/anm.c avpriv_request_sample(s, "max_pages != " AV_STRINGIFY(MAX_PAGES)); s 100 libavformat/anm.c st = avformat_new_stream(s, NULL); s 135 libavformat/anm.c ret = ff_get_extradata(s, st->codecpar, s->pb, 16*8 + 4*256); s 161 libavformat/anm.c avpriv_request_sample(s, "Invalid header element"); s 165 libavformat/anm.c static int read_packet(AVFormatContext *s, s 168 libavformat/anm.c AnmDemuxContext *anm = s->priv_data; s 169 libavformat/anm.c AVIOContext *pb = s->pb; s 173 libavformat/anm.c if (avio_feof(s->pb)) s 207 libavformat/anm.c pkt->size = av_get_packet(s->pb, pkt, record_size); s 36 libavformat/apc.c static int apc_read_header(AVFormatContext *s) s 38 libavformat/apc.c AVIOContext *pb = s->pb; s 46 libavformat/apc.c st = avformat_new_stream(s, NULL); s 57 libavformat/apc.c if ((ret = ff_get_extradata(s, st->codecpar, pb, 2 * 4)) < 0) s 78 libavformat/apc.c static int apc_read_packet(AVFormatContext *s, AVPacket *pkt) s 80 libavformat/apc.c if (av_get_packet(s->pb, pkt, MAX_READ_SIZE) <= 0) s 86 libavformat/ape.c static int ape_read_close(AVFormatContext * s); s 100 libavformat/ape.c static void ape_dumpinfo(AVFormatContext * s, APEContext * ape_ctx) s 105 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "Descriptor Block:\n\n"); s 106 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "fileversion = %"PRId16"\n", ape_ctx->fileversion); s 107 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "descriptorlength = %"PRIu32"\n", ape_ctx->descriptorlength); s 108 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "headerlength = %"PRIu32"\n", ape_ctx->headerlength); s 109 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "seektablelength = %"PRIu32"\n", ape_ctx->seektablelength); s 110 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "wavheaderlength = %"PRIu32"\n", ape_ctx->wavheaderlength); s 111 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "audiodatalength = %"PRIu32"\n", ape_ctx->audiodatalength); s 112 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "audiodatalength_high = %"PRIu32"\n", ape_ctx->audiodatalength_high); s 113 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "wavtaillength = %"PRIu32"\n", ape_ctx->wavtaillength); s 114 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "md5 = "); s 116 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "%02x", ape_ctx->md5[i]); s 117 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "\n"); s 119 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "\nHeader Block:\n\n"); s 121 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "compressiontype = %"PRIu16"\n", ape_ctx->compressiontype); s 122 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "formatflags = %"PRIu16"\n", ape_ctx->formatflags); s 123 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "blocksperframe = %"PRIu32"\n", ape_ctx->blocksperframe); s 124 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "finalframeblocks = %"PRIu32"\n", ape_ctx->finalframeblocks); s 125 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "totalframes = %"PRIu32"\n", ape_ctx->totalframes); s 126 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "bps = %"PRIu16"\n", ape_ctx->bps); s 127 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "channels = %"PRIu16"\n", ape_ctx->channels); s 128 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "samplerate = %"PRIu32"\n", ape_ctx->samplerate); s 130 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "\nSeektable\n\n"); s 132 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "No seektable\n"); s 136 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "%8d %"PRIu32" (%"PRIu32" bytes)", s 140 libavformat/ape.c av_log(s, AV_LOG_DEBUG, " + %2d bits\n", s 142 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "\n"); s 144 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "%8d %"PRIu32"\n", i, ape_ctx->seektable[i]); s 149 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "\nFrames\n\n"); s 151 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "%8d %8"PRId64" %8d (%d samples)\n", i, s 155 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "\nCalculated information:\n\n"); s 156 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "junklength = %"PRIu32"\n", ape_ctx->junklength); s 157 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "firstframe = %"PRIu32"\n", ape_ctx->firstframe); s 158 libavformat/ape.c av_log(s, AV_LOG_DEBUG, "totalsamples = %"PRIu32"\n", ape_ctx->totalsamples); s 162 libavformat/ape.c static int ape_read_header(AVFormatContext * s) s 164 libavformat/ape.c AVIOContext *pb = s->pb; s 165 libavformat/ape.c APEContext *ape = s->priv_data; s 182 libavformat/ape.c av_log(s, AV_LOG_ERROR, "Unsupported file version - %d.%02d\n", s 257 libavformat/ape.c av_log(s, AV_LOG_ERROR, "No frames in the file!\n"); s 261 libavformat/ape.c av_log(s, AV_LOG_ERROR, "Too many frames: %"PRIu32"\n", s 266 libavformat/ape.c av_log(s, AV_LOG_ERROR, s 302 libavformat/ape.c av_log(s, AV_LOG_WARNING, "File truncated\n"); s 342 libavformat/ape.c ape_dumpinfo(s, ape); s 344 libavformat/ape.c av_log(s, AV_LOG_VERBOSE, "Decoding file - v%d.%02d, compression level %"PRIu16"\n", s 349 libavformat/ape.c st = avformat_new_stream(s, NULL); s 384 libavformat/ape.c ff_ape_parse_tag(s); s 390 libavformat/ape.c ape_read_close(s); s 395 libavformat/ape.c static int ape_read_packet(AVFormatContext * s, AVPacket * pkt) s 399 libavformat/ape.c APEContext *ape = s->priv_data; s 403 libavformat/ape.c if (avio_feof(s->pb)) s 408 libavformat/ape.c ret64 = avio_seek(s->pb, ape->frames[ape->currentframe].pos, SEEK_SET); s 420 libavformat/ape.c av_log(s, AV_LOG_ERROR, "invalid packet size: %d\n", s 432 libavformat/ape.c ret = avio_read(s->pb, pkt->data + extra_size, ape->frames[ape->currentframe].size); s 449 libavformat/ape.c static int ape_read_close(AVFormatContext * s) s 451 libavformat/ape.c APEContext *ape = s->priv_data; s 459 libavformat/ape.c static int ape_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 461 libavformat/ape.c AVStream *st = s->streams[stream_index]; s 462 libavformat/ape.c APEContext *ape = s->priv_data; s 469 libavformat/ape.c if ((ret = avio_seek(s->pb, st->index_entries[index].pos, SEEK_SET)) < 0) s 37 libavformat/apetag.c static int ape_tag_read_field(AVFormatContext *s) s 39 libavformat/apetag.c AVIOContext *pb = s->pb; s 55 libavformat/apetag.c av_log(s, AV_LOG_WARNING, "Invalid APE tag key '%s'.\n", key); s 59 libavformat/apetag.c av_log(s, AV_LOG_ERROR, "APE tag size too large.\n"); s 66 libavformat/apetag.c AVStream *st = avformat_new_stream(s, NULL); s 74 libavformat/apetag.c av_log(s, AV_LOG_WARNING, "Skipping binary tag '%s'.\n", key); s 85 libavformat/apetag.c ret = av_get_packet(s->pb, &pkt, size); s 87 libavformat/apetag.c av_log(s, AV_LOG_ERROR, "Error reading cover art.\n"); s 99 libavformat/apetag.c if ((ret = ff_get_extradata(s, st->codecpar, s->pb, size)) < 0) s 113 libavformat/apetag.c av_dict_set(&s->metadata, key, value, AV_DICT_DONT_STRDUP_VAL); s 118 libavformat/apetag.c int64_t ff_ape_parse_tag(AVFormatContext *s) s 120 libavformat/apetag.c AVIOContext *pb = s->pb; s 139 libavformat/apetag.c av_log(s, AV_LOG_ERROR, "Unsupported tag version. (>=%d)\n", APE_TAG_VERSION); s 145 libavformat/apetag.c av_log(s, AV_LOG_ERROR, "Tag size is way too big\n"); s 150 libavformat/apetag.c av_log(s, AV_LOG_ERROR, "Invalid tag size %"PRIu32".\n", tag_bytes); s 156 libavformat/apetag.c av_log(s, AV_LOG_ERROR, "Too many tag fields (%"PRIu32")\n", fields); s 162 libavformat/apetag.c av_log(s, AV_LOG_ERROR, "APE Tag is a header\n"); s 174 libavformat/apetag.c if (ape_tag_read_field(s) < 0) break; s 185 libavformat/apetag.c int ff_ape_write_tag(AVFormatContext *s) s 195 libavformat/apetag.c ff_standardize_creation_time(s); s 196 libavformat/apetag.c while ((e = av_dict_get(s->metadata, "", e, AV_DICT_IGNORE_SUFFIX))) { s 200 libavformat/apetag.c av_log(s, AV_LOG_WARNING, "Non ASCII keys are not allowed\n"); s 220 libavformat/apetag.c avio_write(s->pb, "APETAGEX", 8); // id s 221 libavformat/apetag.c avio_wl32(s->pb, APE_TAG_VERSION); // version s 222 libavformat/apetag.c avio_wl32(s->pb, size); s 223 libavformat/apetag.c avio_wl32(s->pb, count); s 226 libavformat/apetag.c avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER | APE_TAG_FLAG_IS_HEADER); s 227 libavformat/apetag.c ffio_fill(s->pb, 0, 8); // reserved s 229 libavformat/apetag.c avio_write(s->pb, dyn_buf, size - APE_TAG_FOOTER_BYTES); s 232 libavformat/apetag.c avio_write(s->pb, "APETAGEX", 8); // id s 233 libavformat/apetag.c avio_wl32(s->pb, APE_TAG_VERSION); // version s 234 libavformat/apetag.c avio_wl32(s->pb, size); // size s 235 libavformat/apetag.c avio_wl32(s->pb, count); // tag count s 238 libavformat/apetag.c avio_wl32(s->pb, APE_TAG_FLAG_CONTAINS_HEADER); s 239 libavformat/apetag.c ffio_fill(s->pb, 0, 8); // reserved s 38 libavformat/apetag.h int64_t ff_ape_parse_tag(AVFormatContext *s); s 43 libavformat/apetag.h int ff_ape_write_tag(AVFormatContext *s); s 89 libavformat/apm.c static int apm_read_header(AVFormatContext *s) s 96 libavformat/apm.c if (!(st = avformat_new_stream(s, NULL))) s 100 libavformat/apm.c if ((ret = ff_get_wav_header(s, s->pb, st->codecpar, APM_FILE_HEADER_SIZE, 0)) < 0) s 126 libavformat/apm.c if ((ret = avio_read(s->pb, buf, APM_VS12_CHUNK_SIZE)) < 0) s 138 libavformat/apm.c avpriv_request_sample(s, "Saved Samples"); s 142 libavformat/apm.c if (avio_rl32(s->pb) != APM_TAG_DATA) s 161 libavformat/apm.c static int apm_read_packet(AVFormatContext *s, AVPacket *pkt) s 164 libavformat/apm.c AVCodecParameters *par = s->streams[0]->codecpar; s 172 libavformat/apm.c if ((ret = av_get_packet(s->pb, pkt, APM_MAX_READ_SIZE)) < 0) s 147 libavformat/apngdec.c static int apng_read_header(AVFormatContext *s) s 149 libavformat/apngdec.c APNGDemuxContext *ctx = s->priv_data; s 150 libavformat/apngdec.c AVIOContext *pb = s->pb; s 166 libavformat/apngdec.c st = avformat_new_stream(s, NULL); s 177 libavformat/apngdec.c if ((ret = av_image_check_size(st->codecpar->width, st->codecpar->height, 0, s)) < 0) s 202 libavformat/apngdec.c av_log(s, AV_LOG_WARNING, "Could not ensure seekback, will not loop\n"); s 225 libavformat/apngdec.c av_log(s, AV_LOG_DEBUG, "num_frames: %"PRIu32", num_play: %"PRIu32"\n", s 247 libavformat/apngdec.c static int decode_fctl_chunk(AVFormatContext *s, APNGDemuxContext *ctx, AVPacket *pkt) s 253 libavformat/apngdec.c sequence_number = avio_rb32(s->pb); s 254 libavformat/apngdec.c width = avio_rb32(s->pb); s 255 libavformat/apngdec.c height = avio_rb32(s->pb); s 256 libavformat/apngdec.c x_offset = avio_rb32(s->pb); s 257 libavformat/apngdec.c y_offset = avio_rb32(s->pb); s 258 libavformat/apngdec.c delay_num = avio_rb16(s->pb); s 259 libavformat/apngdec.c delay_den = avio_rb16(s->pb); s 260 libavformat/apngdec.c dispose_op = avio_r8(s->pb); s 261 libavformat/apngdec.c blend_op = avio_r8(s->pb); s 262 libavformat/apngdec.c avio_skip(s->pb, 4); /* crc */ s 273 libavformat/apngdec.c s->streams[0]->time_base); s 275 libavformat/apngdec.c av_log(s, AV_LOG_DEBUG, "%s: " s 296 libavformat/apngdec.c if (width != s->streams[0]->codecpar->width || s 297 libavformat/apngdec.c height != s->streams[0]->codecpar->height || s 301 libavformat/apngdec.c x_offset >= s->streams[0]->codecpar->width || s 302 libavformat/apngdec.c width > s->streams[0]->codecpar->width - x_offset || s 303 libavformat/apngdec.c y_offset >= s->streams[0]->codecpar->height || s 304 libavformat/apngdec.c height > s->streams[0]->codecpar->height - y_offset) s 317 libavformat/apngdec.c static int apng_read_packet(AVFormatContext *s, AVPacket *pkt) s 319 libavformat/apngdec.c APNGDemuxContext *ctx = s->priv_data; s 322 libavformat/apngdec.c AVIOContext *pb = s->pb; s 350 libavformat/apngdec.c if ((ret = decode_fctl_chunk(s, ctx, pkt)) < 0) s 401 libavformat/apngdec.c if ((ret = avio_seek(pb, s->streams[0]->codecpar->extradata_size + 8, SEEK_SET)) < 0) s 405 libavformat/apngdec.c avpriv_request_sample(s, "In-stream tag=%s (0x%08"PRIX32") len=%"PRIu32, s 271 libavformat/apngenc.c static void apng_deinit(AVFormatContext *s) s 273 libavformat/apngenc.c APNGMuxContext *apng = s->priv_data; s 37 libavformat/aptxdec.c static AVStream *aptx_read_header_common(AVFormatContext *s) s 39 libavformat/aptxdec.c AptXDemuxerContext *s1 = s->priv_data; s 40 libavformat/aptxdec.c AVStream *st = avformat_new_stream(s, NULL); s 51 libavformat/aptxdec.c static int aptx_read_header(AVFormatContext *s) s 53 libavformat/aptxdec.c AVStream *st = aptx_read_header_common(s); s 63 libavformat/aptxdec.c static int aptx_hd_read_header(AVFormatContext *s) s 65 libavformat/aptxdec.c AVStream *st = aptx_read_header_common(s); s 75 libavformat/aptxdec.c static int aptx_read_packet(AVFormatContext *s, AVPacket *pkt) s 77 libavformat/aptxdec.c return av_get_packet(s->pb, pkt, APTX_PACKET_SIZE); s 80 libavformat/aptxdec.c static int aptx_hd_read_packet(AVFormatContext *s, AVPacket *pkt) s 82 libavformat/aptxdec.c return av_get_packet(s->pb, pkt, APTX_HD_PACKET_SIZE); s 50 libavformat/aqtitledec.c static int aqt_read_header(AVFormatContext *s) s 52 libavformat/aqtitledec.c AQTitleContext *aqt = s->priv_data; s 53 libavformat/aqtitledec.c AVStream *st = avformat_new_stream(s, NULL); s 64 libavformat/aqtitledec.c while (!avio_feof(s->pb)) { s 66 libavformat/aqtitledec.c int len = ff_get_line(s->pb, line, sizeof(line)); s 75 libavformat/aqtitledec.c pos = avio_tell(s->pb); s 98 libavformat/aqtitledec.c ff_subtitles_queue_finalize(s, &aqt->q); s 105 libavformat/aqtitledec.c static int aqt_read_packet(AVFormatContext *s, AVPacket *pkt) s 107 libavformat/aqtitledec.c AQTitleContext *aqt = s->priv_data; s 111 libavformat/aqtitledec.c static int aqt_read_seek(AVFormatContext *s, int stream_index, s 114 libavformat/aqtitledec.c AQTitleContext *aqt = s->priv_data; s 115 libavformat/aqtitledec.c return ff_subtitles_queue_seek(&aqt->q, s, stream_index, s 119 libavformat/aqtitledec.c static int aqt_read_close(AVFormatContext *s) s 121 libavformat/aqtitledec.c AQTitleContext *aqt = s->priv_data; s 116 libavformat/argo_asf.c static int argo_asf_read_header(AVFormatContext *s) s 119 libavformat/argo_asf.c AVIOContext *pb = s->pb; s 121 libavformat/argo_asf.c ArgoASFDemuxContext *asf = s->priv_data; s 124 libavformat/argo_asf.c if (!(st = avformat_new_stream(s, NULL))) s 135 libavformat/argo_asf.c avpriv_request_sample(s, "Version %hu.%hu", s 144 libavformat/argo_asf.c avpriv_request_sample(s, ">1 chunk"); s 162 libavformat/argo_asf.c avpriv_request_sample(s, "Nonstandard flags (0x%08X)", asf->ckhdr.flags); s 189 libavformat/argo_asf.c avpriv_request_sample(s, "Non 16-bit samples"); s 214 libavformat/argo_asf.c static int argo_asf_read_packet(AVFormatContext *s, AVPacket *pkt) s 216 libavformat/argo_asf.c ArgoASFDemuxContext *asf = s->priv_data; s 218 libavformat/argo_asf.c AVStream *st = s->streams[0]; s 219 libavformat/argo_asf.c AVIOContext *pb = s->pb; s 218 libavformat/asfdec_f.c static int asf_read_picture(AVFormatContext *s, int len) s 230 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "Invalid attached picture size: %d.\n", len); s 235 libavformat/asfdec_f.c type = avio_r8(s->pb); s 238 libavformat/asfdec_f.c av_log(s, AV_LOG_WARNING, "Unknown attached picture type: %d.\n", type); s 243 libavformat/asfdec_f.c picsize = avio_rl32(s->pb); s 247 libavformat/asfdec_f.c len -= avio_get_str16le(s->pb, len, mimetype, sizeof(mimetype)); s 256 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "Unknown attached picture mimetype: %s.\n", s 262 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "Invalid attached picture data size: %d >= %d.\n", s 272 libavformat/asfdec_f.c len -= avio_get_str16le(s->pb, len - picsize, desc, desc_len); s 274 libavformat/asfdec_f.c ret = av_get_packet(s->pb, &pkt, picsize); s 278 libavformat/asfdec_f.c st = avformat_new_stream(s, NULL); s 305 libavformat/asfdec_f.c static void get_id3_tag(AVFormatContext *s, int len) s 309 libavformat/asfdec_f.c ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, len); s 311 libavformat/asfdec_f.c ff_id3v2_parse_apic(s, id3v2_extra_meta); s 312 libavformat/asfdec_f.c ff_id3v2_parse_chapters(s, id3v2_extra_meta); s 317 libavformat/asfdec_f.c static void get_tag(AVFormatContext *s, const char *key, int type, int len, int type2_size) s 319 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 321 libavformat/asfdec_f.c int64_t off = avio_tell(s->pb); s 335 libavformat/asfdec_f.c avio_get_str16le(s->pb, len, value, 2 * len + 1); s 338 libavformat/asfdec_f.c avio_read(s->pb, value, len); s 343 libavformat/asfdec_f.c asf_read_picture(s, len); s 345 libavformat/asfdec_f.c get_id3_tag(s, len); s 347 libavformat/asfdec_f.c av_log(s, AV_LOG_VERBOSE, "Unsupported byte array in tag %s.\n", key); s 354 libavformat/asfdec_f.c uint64_t num = get_value(s->pb, type, type2_size); s 359 libavformat/asfdec_f.c av_log(s, AV_LOG_DEBUG, "Unsupported GUID value in tag %s.\n", key); s 362 libavformat/asfdec_f.c av_log(s, AV_LOG_DEBUG, s 367 libavformat/asfdec_f.c av_dict_set(&s->metadata, key, value, 0); s 371 libavformat/asfdec_f.c avio_seek(s->pb, off + len, SEEK_SET); s 374 libavformat/asfdec_f.c static int asf_read_file_properties(AVFormatContext *s, int64_t size) s 376 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 377 libavformat/asfdec_f.c AVIOContext *pb = s->pb; s 393 libavformat/asfdec_f.c s->packet_size = asf->hdr.max_pktsize; s 398 libavformat/asfdec_f.c static int asf_read_stream_properties(AVFormatContext *s, int64_t size) s 400 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 401 libavformat/asfdec_f.c AVIOContext *pb = s->pb; s 411 libavformat/asfdec_f.c if (s->nb_streams == ASF_MAX_STREAMS) { s 412 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "too many streams\n"); s 418 libavformat/asfdec_f.c st = avformat_new_stream(s, NULL); s 455 libavformat/asfdec_f.c asf->asfid2avid[st->id] = s->nb_streams - 1; s 476 libavformat/asfdec_f.c int ret = ff_get_wav_header(s, pb, st->codecpar, type_specific_size, 0); s 565 libavformat/asfdec_f.c static int asf_read_ext_stream_properties(AVFormatContext *s, int64_t size) s 567 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 568 libavformat/asfdec_f.c AVIOContext *pb = s->pb; s 615 libavformat/asfdec_f.c av_log(s, AV_LOG_DEBUG, "Payload extension %x %d\n", g[0], p->size ); s 623 libavformat/asfdec_f.c static int asf_read_content_desc(AVFormatContext *s, int64_t size) s 625 libavformat/asfdec_f.c AVIOContext *pb = s->pb; s 633 libavformat/asfdec_f.c get_tag(s, "title", 0, len1, 32); s 634 libavformat/asfdec_f.c get_tag(s, "author", 0, len2, 32); s 635 libavformat/asfdec_f.c get_tag(s, "copyright", 0, len3, 32); s 636 libavformat/asfdec_f.c get_tag(s, "comment", 0, len4, 32); s 642 libavformat/asfdec_f.c static int asf_read_ext_content_desc(AVFormatContext *s, int64_t size) s 644 libavformat/asfdec_f.c AVIOContext *pb = s->pb; s 645 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 666 libavformat/asfdec_f.c asf->dar[0].num = get_value(s->pb, value_type, 32); s 668 libavformat/asfdec_f.c asf->dar[0].den = get_value(s->pb, value_type, 32); s 670 libavformat/asfdec_f.c get_tag(s, name, value_type, value_len, 32); s 676 libavformat/asfdec_f.c static int asf_read_language_list(AVFormatContext *s, int64_t size) s 678 libavformat/asfdec_f.c AVIOContext *pb = s->pb; s 679 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 696 libavformat/asfdec_f.c static int asf_read_metadata(AVFormatContext *s, int64_t size) s 698 libavformat/asfdec_f.c AVIOContext *pb = s->pb; s 699 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 724 libavformat/asfdec_f.c av_log(s, AV_LOG_TRACE, "%d stream %d name_len %2d type %d len %4d <%s>\n", s 728 libavformat/asfdec_f.c int aspect_x = get_value(s->pb, value_type, 16); s 732 libavformat/asfdec_f.c int aspect_y = get_value(s->pb, value_type, 16); s 736 libavformat/asfdec_f.c get_tag(s, name, value_type, value_len, 16); s 744 libavformat/asfdec_f.c static int asf_read_marker(AVFormatContext *s, int64_t size) s 746 libavformat/asfdec_f.c AVIOContext *pb = s->pb; s 747 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 775 libavformat/asfdec_f.c avpriv_new_chapter(s, i, (AVRational) { 1, 10000000 }, pres_time, s 782 libavformat/asfdec_f.c static int asf_read_header(AVFormatContext *s) s 784 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 786 libavformat/asfdec_f.c AVIOContext *pb = s->pb; s 821 libavformat/asfdec_f.c ret = asf_read_file_properties(s, gsize); s 823 libavformat/asfdec_f.c ret = asf_read_stream_properties(s, gsize); s 825 libavformat/asfdec_f.c asf_read_content_desc(s, gsize); s 827 libavformat/asfdec_f.c asf_read_language_list(s, gsize); s 829 libavformat/asfdec_f.c asf_read_ext_content_desc(s, gsize); s 831 libavformat/asfdec_f.c asf_read_metadata(s, gsize); s 833 libavformat/asfdec_f.c asf_read_metadata(s, gsize); s 835 libavformat/asfdec_f.c asf_read_ext_stream_properties(s, gsize); s 845 libavformat/asfdec_f.c asf_read_marker(s, gsize); s 849 libavformat/asfdec_f.c if (!s->keylen) { s 853 libavformat/asfdec_f.c av_log(s, AV_LOG_WARNING, s 856 libavformat/asfdec_f.c av_log(s, AV_LOG_DEBUG, "Secret data:\n"); s 860 libavformat/asfdec_f.c av_hex_dump_log(s, AV_LOG_DEBUG, pkt.data, pkt.size); s 866 libavformat/asfdec_f.c get_tag(s, "ASF_Protection_Type", -1, len, 32); s 871 libavformat/asfdec_f.c get_tag(s, "ASF_Key_ID", -1, len, 32); s 876 libavformat/asfdec_f.c get_tag(s, "ASF_License_URL", -1, len, 32); s 878 libavformat/asfdec_f.c av_log(s, AV_LOG_WARNING, s 880 libavformat/asfdec_f.c av_dict_set(&s->metadata, "encryption", "ASF Extended Content Encryption", 0); s 882 libavformat/asfdec_f.c av_log(s, AV_LOG_INFO, "Digital signature detected!\n"); s 890 libavformat/asfdec_f.c av_log(s, AV_LOG_DEBUG, s 907 libavformat/asfdec_f.c AVStream *st = s->streams[stream_num]; s 921 libavformat/asfdec_f.c av_log(s, AV_LOG_TRACE, "i=%d, st->codecpar->codec_type:%d, asf->dar %d:%d sar=%d:%d\n", s 939 libavformat/asfdec_f.c ff_metadata_conv(&s->metadata, NULL, ff_asf_metadata_conv); s 969 libavformat/asfdec_f.c static int asf_get_packet(AVFormatContext *s, AVIOContext *pb) s 971 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 1001 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, s 1007 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "ff asf bad non zero\n"); s 1028 libavformat/asfdec_f.c avpriv_request_sample(s, "Invalid ECC byte"); s 1042 libavformat/asfdec_f.c DO_2BITS(asf->packet_flags >> 5, packet_length, s->packet_size); s 1048 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, s 1054 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, s 1073 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, s 1082 libavformat/asfdec_f.c av_log(s, AV_LOG_TRACE, "packet: size=%d padsize=%d left=%d\n", s 1083 libavformat/asfdec_f.c s->packet_size, asf->packet_padsize, asf->packet_size_left); s 1091 libavformat/asfdec_f.c static int asf_read_frame_header(AVFormatContext *s, AVIOContext *pb) s 1093 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 1112 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "packet_replic_size %d is invalid\n", asf->packet_replic_size); s 1120 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "packet_obj_size %d invalid\n", asfst->packet_obj_size); s 1134 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "too long payload\n"); s 1145 libavformat/asfdec_f.c s->streams[asf->stream_index]->sample_aspect_ratio = aspect; s 1178 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "unexpected packet_replic_size of %d\n", s 1185 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "packet_replic_size is invalid\n"); s 1189 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "packet_frag_size is invalid (%d>%d-%d+%d)\n", s 1220 libavformat/asfdec_f.c static int asf_parse_packet(AVFormatContext *s, AVIOContext *pb, AVPacket *pkt) s 1222 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 1233 libavformat/asfdec_f.c av_log(s, AV_LOG_WARNING, "Skip due to FRAME_HEADER_SIZE\n"); s 1246 libavformat/asfdec_f.c if (asf_read_frame_header(s, pb) < 0) { s 1251 libavformat/asfdec_f.c s->streams[asf->stream_index]->discard >= AVDISCARD_ALL || s 1253 libavformat/asfdec_f.c (s->streams[asf->stream_index]->discard >= AVDISCARD_NONKEY || asf->streams[s->streams[asf->stream_index]->id].skip_to_key))) { s 1259 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "ff asf skip %d (unknown stream)\n", s 1263 libavformat/asfdec_f.c asf->asf_st = &asf->streams[s->streams[asf->stream_index]->id]; s 1271 libavformat/asfdec_f.c av_log(s, AV_LOG_TRACE, "skipping asf data pkt with fragment offset for " s 1302 libavformat/asfdec_f.c av_log(s, AV_LOG_INFO, s 1325 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, "Cannot append palette to packet\n"); s 1334 libavformat/asfdec_f.c s->streams[asf->stream_index]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO, s 1336 libavformat/asfdec_f.c if (s->streams[asf->stream_index]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) s 1344 libavformat/asfdec_f.c s->packet_size, asf_st->pkt.size, asf->packet_frag_offset, s 1352 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, s 1382 libavformat/asfdec_f.c if (s->key && s->keylen == 20) s 1383 libavformat/asfdec_f.c ff_asfcrypt_dec(s->key, asf_st->pkt.data + asf->packet_frag_offset, s 1389 libavformat/asfdec_f.c if (s->streams[asf->stream_index]->codecpar->codec_id == AV_CODEC_ID_MPEG2VIDEO && s 1395 libavformat/asfdec_f.c av_log(s, AV_LOG_DEBUG, "discarding ms fart\n"); s 1405 libavformat/asfdec_f.c av_log(s, AV_LOG_ERROR, s 1449 libavformat/asfdec_f.c static int asf_read_packet(AVFormatContext *s, AVPacket *pkt) s 1451 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 1457 libavformat/asfdec_f.c if ((ret = asf_parse_packet(s, s->pb, pkt)) <= 0) s 1459 libavformat/asfdec_f.c if ((ret = asf_get_packet(s, s->pb)) < 0) s 1469 libavformat/asfdec_f.c static void asf_reset_header(AVFormatContext *s) s 1471 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 1502 libavformat/asfdec_f.c static void skip_to_key(AVFormatContext *s) s 1504 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 1510 libavformat/asfdec_f.c if (j < 0 || s->streams[j]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO) s 1517 libavformat/asfdec_f.c static int asf_read_close(AVFormatContext *s) s 1519 libavformat/asfdec_f.c asf_reset_header(s); s 1524 libavformat/asfdec_f.c static int64_t asf_read_pts(AVFormatContext *s, int stream_index, s 1527 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 1535 libavformat/asfdec_f.c for (i = 0; i < s->nb_streams; i++) s 1538 libavformat/asfdec_f.c if (s->packet_size > 0) s 1539 libavformat/asfdec_f.c pos = (pos + s->packet_size - 1 - s->internal->data_offset) / s 1540 libavformat/asfdec_f.c s->packet_size * s->packet_size + s 1541 libavformat/asfdec_f.c s->internal->data_offset; s 1543 libavformat/asfdec_f.c if (avio_seek(s->pb, pos, SEEK_SET) < 0) s 1546 libavformat/asfdec_f.c ff_read_frame_flush(s); s 1547 libavformat/asfdec_f.c asf_reset_header(s); s 1549 libavformat/asfdec_f.c if (av_read_frame(s, pkt) < 0) { s 1550 libavformat/asfdec_f.c av_log(s, AV_LOG_INFO, "asf_read_pts failed\n"); s 1559 libavformat/asfdec_f.c asf_st = &asf->streams[s->streams[i]->id]; s 1565 libavformat/asfdec_f.c av_add_index_entry(s->streams[i], pos, pts, pkt->size, s 1581 libavformat/asfdec_f.c static int asf_build_simple_index(AVFormatContext *s, int stream_index) s 1584 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 1585 libavformat/asfdec_f.c int64_t current_pos = avio_tell(s->pb); s 1588 libavformat/asfdec_f.c if((ret = avio_seek(s->pb, asf->data_object_offset + asf->data_object_size, SEEK_SET)) < 0) { s 1592 libavformat/asfdec_f.c if ((ret = ff_get_guid(s->pb, &g)) < 0) s 1598 libavformat/asfdec_f.c int64_t gsize = avio_rl64(s->pb); s 1599 libavformat/asfdec_f.c if (gsize < 24 || avio_feof(s->pb)) { s 1602 libavformat/asfdec_f.c avio_skip(s->pb, gsize - 24); s 1603 libavformat/asfdec_f.c if ((ret = ff_get_guid(s->pb, &g)) < 0) s 1611 libavformat/asfdec_f.c int64_t av_unused gsize = avio_rl64(s->pb); s 1612 libavformat/asfdec_f.c if ((ret = ff_get_guid(s->pb, &g)) < 0) s 1614 libavformat/asfdec_f.c itime = avio_rl64(s->pb); s 1615 libavformat/asfdec_f.c pct = avio_rl32(s->pb); s 1616 libavformat/asfdec_f.c ict = avio_rl32(s->pb); s 1617 libavformat/asfdec_f.c av_log(s, AV_LOG_DEBUG, s 1621 libavformat/asfdec_f.c int pktnum = avio_rl32(s->pb); s 1622 libavformat/asfdec_f.c int pktct = avio_rl16(s->pb); s 1623 libavformat/asfdec_f.c int64_t pos = s->internal->data_offset + s->packet_size * (int64_t)pktnum; s 1626 libavformat/asfdec_f.c if (avio_feof(s->pb)) { s 1632 libavformat/asfdec_f.c av_log(s, AV_LOG_DEBUG, "pktnum:%d, pktct:%d pts: %"PRId64"\n", s 1634 libavformat/asfdec_f.c av_add_index_entry(s->streams[stream_index], pos, index_pts, s 1635 libavformat/asfdec_f.c s->packet_size, 0, AVINDEX_KEYFRAME); s 1645 libavformat/asfdec_f.c avio_seek(s->pb, current_pos, SEEK_SET); s 1649 libavformat/asfdec_f.c static int asf_read_seek(AVFormatContext *s, int stream_index, s 1652 libavformat/asfdec_f.c ASFContext *asf = s->priv_data; s 1653 libavformat/asfdec_f.c AVStream *st = s->streams[stream_index]; s 1656 libavformat/asfdec_f.c if (s->packet_size <= 0) s 1660 libavformat/asfdec_f.c if (s->pb) { s 1661 libavformat/asfdec_f.c int64_t ret = avio_seek_time(s->pb, stream_index, pts, flags); s 1663 libavformat/asfdec_f.c asf_reset_header(s); s 1670 libavformat/asfdec_f.c asf_reset_header(s); s 1671 libavformat/asfdec_f.c avio_seek(s->pb, s->internal->data_offset, SEEK_SET); s 1676 libavformat/asfdec_f.c ret = asf_build_simple_index(s, stream_index); s 1688 libavformat/asfdec_f.c av_log(s, AV_LOG_DEBUG, "SEEKTO: %"PRId64"\n", pos); s 1689 libavformat/asfdec_f.c if(avio_seek(s->pb, pos, SEEK_SET) < 0) s 1691 libavformat/asfdec_f.c asf_reset_header(s); s 1692 libavformat/asfdec_f.c skip_to_key(s); s 1697 libavformat/asfdec_f.c if (ff_seek_frame_binary(s, stream_index, pts, flags) < 0) s 1699 libavformat/asfdec_f.c asf_reset_header(s); s 1700 libavformat/asfdec_f.c skip_to_key(s); s 147 libavformat/asfdec_o.c static int detect_unknown_subobject(AVFormatContext *s, int64_t offset, int64_t size); s 173 libavformat/asfdec_o.c static int asf_read_unknown(AVFormatContext *s, const GUIDParseTable *g) s 175 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 176 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 189 libavformat/asfdec_o.c if ((ret = detect_unknown_subobject(s, asf->unknown_offset, s 194 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, "Too small size %"PRIu64" (< 24).\n", size); s 220 libavformat/asfdec_o.c static int asf_read_marker(AVFormatContext *s, const GUIDParseTable *g) s 222 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 223 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 251 libavformat/asfdec_o.c avpriv_new_chapter(s, i, (AVRational) { 1, 10000000 }, pts, s 259 libavformat/asfdec_o.c static int asf_read_metadata(AVFormatContext *s, const char *title, uint16_t len, s 262 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 266 libavformat/asfdec_o.c if (av_dict_set(&s->metadata, title, ch, 0) < 0) s 267 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "av_dict_set failed.\n"); s 273 libavformat/asfdec_o.c static int asf_read_value(AVFormatContext *s, const uint8_t *name, s 279 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 289 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "av_dict_set failed.\n"); s 304 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "av_dict_set failed.\n"); s 337 libavformat/asfdec_o.c static int asf_set_metadata(AVFormatContext *s, const uint8_t *name, s 340 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 351 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "av_dict_set failed.\n"); s 358 libavformat/asfdec_o.c static int asf_read_picture(AVFormatContext *s, int len) s 360 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 372 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, "Invalid attached picture size: %d.\n", len); s 377 libavformat/asfdec_o.c type = avio_r8(s->pb); s 380 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "Unknown attached picture type: %d.\n", type); s 385 libavformat/asfdec_o.c picsize = avio_rl32(s->pb); s 389 libavformat/asfdec_o.c len -= avio_get_str16le(s->pb, len, mimetype, sizeof(mimetype)); s 398 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, "Unknown attached picture mimetype: %s.\n", s 404 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, "Invalid attached picture data size: %d >= %d.\n", s 414 libavformat/asfdec_o.c len -= avio_get_str16le(s->pb, len - picsize, desc, desc_len); s 416 libavformat/asfdec_o.c ret = av_get_packet(s->pb, &pkt, picsize); s 420 libavformat/asfdec_o.c st = avformat_new_stream(s, NULL); s 443 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "av_dict_set failed.\n"); s 448 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "av_dict_set failed.\n"); s 458 libavformat/asfdec_o.c static void get_id3_tag(AVFormatContext *s, int len) s 462 libavformat/asfdec_o.c ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, len); s 464 libavformat/asfdec_o.c ff_id3v2_parse_apic(s, id3v2_extra_meta); s 465 libavformat/asfdec_o.c ff_id3v2_parse_chapters(s, id3v2_extra_meta); s 470 libavformat/asfdec_o.c static int process_metadata(AVFormatContext *s, const uint8_t *name, uint16_t name_len, s 479 libavformat/asfdec_o.c asf_read_value(s, name, val_len, type, met); s 483 libavformat/asfdec_o.c asf_read_picture(s, val_len); s 485 libavformat/asfdec_o.c get_id3_tag(s, val_len); s 487 libavformat/asfdec_o.c asf_read_value(s, name, val_len, type, met); s 490 libavformat/asfdec_o.c ff_get_guid(s->pb, &guid); s 493 libavformat/asfdec_o.c if ((ret = asf_set_metadata(s, name, type, met)) < 0) s 502 libavformat/asfdec_o.c static int asf_read_ext_content(AVFormatContext *s, const GUIDParseTable *g) s 504 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 505 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 529 libavformat/asfdec_o.c ret = process_metadata(s, name, name_len, val_len, type, &s->metadata); s 539 libavformat/asfdec_o.c static AVStream *find_stream(AVFormatContext *s, uint16_t st_num) s 542 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 547 libavformat/asfdec_o.c st = s->streams[asf->asf_st[i]->index]; s 555 libavformat/asfdec_o.c static int asf_store_aspect_ratio(AVFormatContext *s, uint8_t st_num, uint8_t *name, int type) s 557 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 558 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 575 libavformat/asfdec_o.c static int asf_read_metadata_obj(AVFormatContext *s, const GUIDParseTable *g) s 577 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 578 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 601 libavformat/asfdec_o.c ret = asf_store_aspect_ratio(s, st_num, name, type); s 608 libavformat/asfdec_o.c if ((ret = process_metadata(s, name, name_len, val_len, type, s 622 libavformat/asfdec_o.c static int asf_read_content_desc(AVFormatContext *s, const GUIDParseTable *g) s 624 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 625 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 643 libavformat/asfdec_o.c asf_read_metadata(s, titles[i], len[i], ch, buflen[i]); s 651 libavformat/asfdec_o.c static int asf_read_properties(AVFormatContext *s, const GUIDParseTable *g) s 653 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 654 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 677 libavformat/asfdec_o.c if (av_dict_set(&s->metadata, "creation_time", buf, 0) < 0) s 678 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "av_dict_set failed.\n"); s 727 libavformat/asfdec_o.c static int asf_read_stream_properties(AVFormatContext *s, const GUIDParseTable *g) s 729 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 730 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 770 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, s 776 libavformat/asfdec_o.c st = avformat_new_stream(s, NULL); s 797 libavformat/asfdec_o.c if ((ret = ff_get_wav_header(s, pb, st->codecpar, ts_data_len, 0)) < 0) s 831 libavformat/asfdec_o.c static void set_language(AVFormatContext *s, const char *rfc1766, AVDictionary **met) s 840 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "av_dict_set failed.\n"); s 844 libavformat/asfdec_o.c static int asf_read_ext_stream_properties(AVFormatContext *s, const GUIDParseTable *g) s 846 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 847 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 865 libavformat/asfdec_o.c st = s->streams[asf->asf_st[i]->index]; s 904 libavformat/asfdec_o.c if ((ret = g->read_object(s, g)) < 0) s 912 libavformat/asfdec_o.c static int asf_read_language_list(AVFormatContext *s, const GUIDParseTable *g) s 914 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 915 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 938 libavformat/asfdec_o.c static int asf_read_data(AVFormatContext *s, const GUIDParseTable *g) s 940 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 941 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 952 libavformat/asfdec_o.c s->streams[i]->duration = asf->duration; s 962 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, s 974 libavformat/asfdec_o.c static int asf_read_simple_index(AVFormatContext *s, const GUIDParseTable *g) s 976 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 977 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 991 libavformat/asfdec_o.c st = s->streams[asf->asf_st[i]->index]; s 1007 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, "Skipping failed in asf_read_simple_index.\n"); s 1085 libavformat/asfdec_o.c static int asf_read_subpayload(AVFormatContext *s, AVPacket *pkt, int is_header) s 1087 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1088 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 1129 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, s 1152 libavformat/asfdec_o.c static int asf_read_replicated_data(AVFormatContext *s, ASFPacket *asf_pkt) s 1154 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1155 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 1174 libavformat/asfdec_o.c static int asf_read_multiple_payload(AVFormatContext *s, AVPacket *pkt, s 1177 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1178 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 1189 libavformat/asfdec_o.c if ((ret = asf_read_subpayload(s, pkt, 1)) < 0) s 1193 libavformat/asfdec_o.c if ((ret = asf_read_replicated_data(s, asf_pkt)) < 0) s 1197 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, s 1205 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, s 1215 libavformat/asfdec_o.c if (s->key && s->keylen == 20) s 1216 libavformat/asfdec_o.c ff_asfcrypt_dec(s->key, p, ret); s 1225 libavformat/asfdec_o.c static int asf_read_single_payload(AVFormatContext *s, ASFPacket *asf_pkt) s 1227 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1228 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 1254 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, s 1268 libavformat/asfdec_o.c if (s->key && s->keylen == 20) s 1269 libavformat/asfdec_o.c ff_asfcrypt_dec(s->key, p, ret); s 1277 libavformat/asfdec_o.c static int asf_read_payload(AVFormatContext *s, AVPacket *pkt) s 1279 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1280 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 1300 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, "Invalid packet size 0.\n"); s 1304 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "Skipping the stream with the invalid stream index %d.\n", s 1320 libavformat/asfdec_o.c av_log(s, AV_LOG_WARNING, "Unfinished frame will be ignored\n"); s 1326 libavformat/asfdec_o.c if ((ret = asf_read_multiple_payload(s, pkt, asf_pkt)) < 0) s 1332 libavformat/asfdec_o.c if ((ret = asf_read_subpayload(s, pkt, 1)) < 0) s 1335 libavformat/asfdec_o.c if ((ret = asf_read_single_payload(s, asf_pkt)) < 0) s 1350 libavformat/asfdec_o.c if ((ret = asf_read_subpayload(s, pkt, 0)) < 0) // read subpayload without its header s 1357 libavformat/asfdec_o.c static int asf_read_packet_header(AVFormatContext *s) s 1359 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1360 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 1392 libavformat/asfdec_o.c static int asf_deinterleave(AVFormatContext *s, ASFPacket *asf_pkt, int st_num) s 1394 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1434 libavformat/asfdec_o.c static int asf_read_packet(AVFormatContext *s, AVPacket *pkt) s 1436 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1437 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 1445 libavformat/asfdec_o.c asf_read_packet_header(s); s 1453 libavformat/asfdec_o.c ret = asf_read_payload(s, pkt); s 1499 libavformat/asfdec_o.c if ((ret = asf_deinterleave(s, asf_pkt, i)) < 0) s 1518 libavformat/asfdec_o.c static int asf_read_close(AVFormatContext *s) s 1520 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1535 libavformat/asfdec_o.c static void reset_packet_state(AVFormatContext *s) s 1537 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1578 libavformat/asfdec_o.c static int64_t asf_read_timestamp(AVFormatContext *s, int stream_index, s 1581 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1593 libavformat/asfdec_o.c avio_seek(s->pb, pkt_pos, SEEK_SET); s 1596 libavformat/asfdec_o.c reset_packet_state(s); s 1597 libavformat/asfdec_o.c while (avio_tell(s->pb) < data_end) { s 1602 libavformat/asfdec_o.c pkt_offset = avio_tell(s->pb); s 1603 libavformat/asfdec_o.c if ((ret = asf_read_packet(s, &pkt)) < 0) { s 1618 libavformat/asfdec_o.c av_add_index_entry(s->streams[pkt.stream_index], pkt_pos, s 1637 libavformat/asfdec_o.c static int asf_read_seek(AVFormatContext *s, int stream_index, s 1640 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1643 libavformat/asfdec_o.c if (s->streams[stream_index]->nb_index_entries && asf->is_simple_index) { s 1644 libavformat/asfdec_o.c idx = av_index_search_timestamp(s->streams[stream_index], timestamp, flags); s 1645 libavformat/asfdec_o.c if (idx < 0 || idx >= s->streams[stream_index]->nb_index_entries) s 1647 libavformat/asfdec_o.c avio_seek(s->pb, s->streams[stream_index]->index_entries[idx].pos, SEEK_SET); s 1649 libavformat/asfdec_o.c if ((ret = ff_seek_frame_binary(s, stream_index, timestamp, flags)) < 0) s 1653 libavformat/asfdec_o.c reset_packet_state(s); s 1674 libavformat/asfdec_o.c static int detect_unknown_subobject(AVFormatContext *s, int64_t offset, int64_t size) s 1676 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1677 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 1690 libavformat/asfdec_o.c if ((ret = g->read_object(s, g)) < 0) s 1697 libavformat/asfdec_o.c asf_read_unknown(s, &g2); s 1704 libavformat/asfdec_o.c static int asf_read_header(AVFormatContext *s) s 1706 libavformat/asfdec_o.c ASFContext *asf = s->priv_data; s 1707 libavformat/asfdec_o.c AVIOContext *pb = s->pb; s 1741 libavformat/asfdec_o.c if ((ret = g->read_object(s, g)) < 0) s 1754 libavformat/asfdec_o.c av_log(s, AV_LOG_ERROR, "Data Object was not found.\n"); s 1763 libavformat/asfdec_o.c AVStream *st = s->streams[asf->asf_st[i]->index]; s 1764 libavformat/asfdec_o.c set_language(s, rfc1766, &st->metadata); s 1770 libavformat/asfdec_o.c st = find_stream(s, i); s 1783 libavformat/asfdec_o.c asf_read_close(s); s 263 libavformat/asfenc.c static void put_str16(AVIOContext *s, const char *tag) s 273 libavformat/asfenc.c avio_wl16(s, len); s 274 libavformat/asfenc.c avio_write(s, pb, len); s 300 libavformat/asfenc.c static void put_chunk(AVFormatContext *s, int type, s 303 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 304 libavformat/asfenc.c AVIOContext *pb = s->pb; s 341 libavformat/asfenc.c static int asf_write_markers(AVFormatContext *s) s 343 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 344 libavformat/asfenc.c AVIOContext *pb = s->pb; s 350 libavformat/asfenc.c avio_wl32(pb, s->nb_chapters); // markers count s 354 libavformat/asfenc.c for (i = 0; i < s->nb_chapters; i++) { s 355 libavformat/asfenc.c AVChapter *c = s->chapters[i]; s 385 libavformat/asfenc.c static int asf_write_header1(AVFormatContext *s, int64_t file_size, s 388 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 389 libavformat/asfenc.c AVIOContext *pb = s->pb; s 400 libavformat/asfenc.c ff_metadata_conv(&s->metadata, ff_asf_metadata_conv, NULL); s 402 libavformat/asfenc.c tags[0] = av_dict_get(s->metadata, "title", NULL, 0); s 403 libavformat/asfenc.c tags[1] = av_dict_get(s->metadata, "author", NULL, 0); s 404 libavformat/asfenc.c tags[2] = av_dict_get(s->metadata, "copyright", NULL, 0); s 405 libavformat/asfenc.c tags[3] = av_dict_get(s->metadata, "comment", NULL, 0); s 406 libavformat/asfenc.c tags[4] = av_dict_get(s->metadata, "rating", NULL, 0); s 412 libavformat/asfenc.c if (ff_parse_creation_time_metadata(s, &asf->creation_time, 0) != 0) s 413 libavformat/asfenc.c av_dict_set(&s->metadata, "creation_time", NULL, 0); s 416 libavformat/asfenc.c metadata_count = av_dict_count(s->metadata); s 419 libavformat/asfenc.c for (n = 0; n < s->nb_streams; n++) { s 421 libavformat/asfenc.c par = s->streams[n]->codecpar; s 423 libavformat/asfenc.c avpriv_set_pts_info(s->streams[n], 32, 1, 1000); /* 32 bit pts in ms */ s 431 libavformat/asfenc.c entry = av_dict_get(s->streams[n]->metadata, "language", NULL, 0); s 456 libavformat/asfenc.c put_chunk(s, 0x4824, 0, 0xc00); /* start of stream (length will be patched later) */ s 461 libavformat/asfenc.c avio_wl32(pb, 3 + has_title + !!metadata_count + s->nb_streams); /* number of chunks in header */ s 476 libavformat/asfenc.c avio_wl32(pb, s->packet_size); /* packet size */ s 477 libavformat/asfenc.c avio_wl32(pb, s->packet_size); /* packet size */ s 510 libavformat/asfenc.c for (n = 0; n < s->nb_streams; n++) s 511 libavformat/asfenc.c if (asf->streams[n].stream_language_index == i && s->streams[n]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) s 518 libavformat/asfenc.c for (n = 0; n < s->nb_streams; n++) { s 525 libavformat/asfenc.c avio_wl32(pb, s->streams[n]->codecpar->bit_rate); /* data bitrate bps */ s 528 libavformat/asfenc.c avio_wl32(pb, s->streams[n]->codecpar->bit_rate); /* peak data bitrate */ s 545 libavformat/asfenc.c for (n = 0; n < s->nb_streams; n++) { s 546 libavformat/asfenc.c par = s->streams[n]->codecpar; s 604 libavformat/asfenc.c while ((tag = av_dict_get(s->metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) { s 612 libavformat/asfenc.c if (!asf->is_streamed && s->nb_chapters) { s 614 libavformat/asfenc.c if ((ret = asf_write_markers(s)) < 0) s 618 libavformat/asfenc.c for (n = 0; n < s->nb_streams; n++) { s 622 libavformat/asfenc.c par = s->streams[n]->codecpar; s 657 libavformat/asfenc.c int wavsize = ff_put_wav_header(s, pb, par, FF_PUT_WAV_HEADER_FORCE_WAVEFORMATEX); s 694 libavformat/asfenc.c avio_wl32(pb, s->nb_streams); s 695 libavformat/asfenc.c for (n = 0; n < s->nb_streams; n++) { s 699 libavformat/asfenc.c par = s->streams[n]->codecpar; s 776 libavformat/asfenc.c static int asf_write_header(AVFormatContext *s) s 778 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 780 libavformat/asfenc.c s->packet_size = asf->packet_size; s 781 libavformat/asfenc.c s->max_interleave_delta = 0; s 784 libavformat/asfenc.c if (s->nb_streams > 127) { s 785 libavformat/asfenc.c av_log(s, AV_LOG_ERROR, "ASF can only handle 127 streams\n"); s 798 libavformat/asfenc.c if (asf_write_header1(s, 0, DATA_HEADER_SIZE) < 0) { s 807 libavformat/asfenc.c ffio_init_context(&asf->pb, asf->packet_buf, s->packet_size, 1, s 810 libavformat/asfenc.c if (s->avoid_negative_ts < 0) s 811 libavformat/asfenc.c s->avoid_negative_ts = 1; s 816 libavformat/asfenc.c static int asf_write_stream_header(AVFormatContext *s) s 818 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 822 libavformat/asfenc.c return asf_write_header(s); s 825 libavformat/asfenc.c static int put_payload_parsing_info(AVFormatContext *s, s 829 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 830 libavformat/asfenc.c AVIOContext *pb = s->pb; s 873 libavformat/asfenc.c static void flush_packet(AVFormatContext *s) s 875 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 881 libavformat/asfenc.c put_chunk(s, 0x4424, s->packet_size, 0); s 883 libavformat/asfenc.c packet_hdr_size = put_payload_parsing_info(s, s 893 libavformat/asfenc.c avio_write(s->pb, asf->packet_buf, s->packet_size - packet_hdr_size); s 895 libavformat/asfenc.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_FLUSH_POINT); s 901 libavformat/asfenc.c ffio_init_context(&asf->pb, asf->packet_buf, s->packet_size, 1, s 905 libavformat/asfenc.c static void put_payload_header(AVFormatContext *s, ASFStream *stream, s 909 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 936 libavformat/asfenc.c static void put_frame(AVFormatContext *s, ASFStream *stream, AVStream *avst, s 940 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 965 libavformat/asfenc.c flush_packet(s); s 970 libavformat/asfenc.c flush_packet(s); s 980 libavformat/asfenc.c put_payload_header(s, stream, timestamp + PREROLL_TIME, s 998 libavformat/asfenc.c flush_packet(s); s 1000 libavformat/asfenc.c flush_packet(s); s 1002 libavformat/asfenc.c flush_packet(s); s 1007 libavformat/asfenc.c static int update_index(AVFormatContext *s, int start_sec, s 1011 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 1049 libavformat/asfenc.c static int asf_write_packet(AVFormatContext *s, AVPacket *pkt) s 1051 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 1052 libavformat/asfenc.c AVIOContext *pb = s->pb; s 1062 libavformat/asfenc.c par = s->streams[pkt->stream_index]->codecpar; s 1072 libavformat/asfenc.c av_log(s, AV_LOG_ERROR, "input pts %"PRId64" is invalid\n", pts); s 1079 libavformat/asfenc.c put_frame(s, stream, s->streams[pkt->stream_index], s 1088 libavformat/asfenc.c ret = update_index(s, start_sec, packet_number, packet_count, offset); s 1097 libavformat/asfenc.c static int asf_write_index(AVFormatContext *s, const ASFIndex *index, s 1100 libavformat/asfenc.c AVIOContext *pb = s->pb; s 1117 libavformat/asfenc.c static int asf_write_trailer(AVFormatContext *s) s 1119 libavformat/asfenc.c ASFContext *asf = s->priv_data; s 1125 libavformat/asfenc.c flush_packet(s); s 1128 libavformat/asfenc.c data_size = avio_tell(s->pb); s 1130 libavformat/asfenc.c if ((ret = update_index(s, asf->end_sec + 1, 0, 0, 0)) < 0) s 1132 libavformat/asfenc.c asf_write_index(s, asf->index_ptr, asf->maximum_packet, asf->next_start_sec); s 1135 libavformat/asfenc.c if (asf->is_streamed || !(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) { s 1136 libavformat/asfenc.c put_chunk(s, 0x4524, 0, 0); /* end of stream */ s 1139 libavformat/asfenc.c file_size = avio_tell(s->pb); s 1140 libavformat/asfenc.c avio_seek(s->pb, 0, SEEK_SET); s 1141 libavformat/asfenc.c asf_write_header1(s, file_size, data_size - asf->data_offset); s 53 libavformat/assdec.c static int ass_read_close(AVFormatContext *s) s 55 libavformat/assdec.c ASSContext *ass = s->priv_data; s 111 libavformat/assdec.c static int ass_read_header(AVFormatContext *s) s 113 libavformat/assdec.c ASSContext *ass = s->priv_data; s 118 libavformat/assdec.c ff_text_init_avio(s, &tr, s->pb); s 120 libavformat/assdec.c st = avformat_new_stream(s, NULL); s 160 libavformat/assdec.c ff_subtitles_queue_finalize(s, &ass->q); s 164 libavformat/assdec.c ass_read_close(s); s 171 libavformat/assdec.c static int ass_read_packet(AVFormatContext *s, AVPacket *pkt) s 173 libavformat/assdec.c ASSContext *ass = s->priv_data; s 177 libavformat/assdec.c static int ass_read_seek(AVFormatContext *s, int stream_index, s 180 libavformat/assdec.c ASSContext *ass = s->priv_data; s 181 libavformat/assdec.c return ff_subtitles_queue_seek(&ass->q, s, stream_index, s 46 libavformat/assenc.c static int write_header(AVFormatContext *s) s 48 libavformat/assenc.c ASSContext *ass = s->priv_data; s 49 libavformat/assenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 51 libavformat/assenc.c if (s->nb_streams != 1 || par->codec_id != AV_CODEC_ID_ASS) { s 52 libavformat/assenc.c av_log(s, AV_LOG_ERROR, "Exactly one ASS/SSA stream is needed.\n"); s 55 libavformat/assenc.c avpriv_set_pts_info(s->streams[0], 64, 1, 100); s 72 libavformat/assenc.c avio_write(s->pb, par->extradata, header_size); s 74 libavformat/assenc.c avio_write(s->pb, "\r\n", 2); s 77 libavformat/assenc.c avio_printf(s->pb, "[Events]\r\nFormat: %s, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\r\n", s 84 libavformat/assenc.c static void purge_dialogues(AVFormatContext *s, int force) s 87 libavformat/assenc.c ASSContext *ass = s->priv_data; s 93 libavformat/assenc.c av_log(s, AV_LOG_WARNING, "ReadOrder gap found between %d and %d\n", s 97 libavformat/assenc.c avio_print(s->pb, "Dialogue: ", dialogue->line, "\r\n"); s 110 libavformat/assenc.c av_log(s, AV_LOG_DEBUG, "wrote %d ASS lines, cached dialogues: %d, waiting for event id %d\n", s 154 libavformat/assenc.c static int write_packet(AVFormatContext *s, AVPacket *pkt) s 156 libavformat/assenc.c ASSContext *ass = s->priv_data; s 171 libavformat/assenc.c av_log(s, AV_LOG_WARNING, "Unexpected ReadOrder %d\n", s 197 libavformat/assenc.c purge_dialogues(s, ass->ignore_readorder); s 202 libavformat/assenc.c static int write_trailer(AVFormatContext *s) s 204 libavformat/assenc.c ASSContext *ass = s->priv_data; s 206 libavformat/assenc.c purge_dialogues(s, 1); s 209 libavformat/assenc.c avio_write(s->pb, ass->trailer, ass->trailer_size); s 41 libavformat/astdec.c static int ast_read_header(AVFormatContext *s) s 46 libavformat/astdec.c st = avformat_new_stream(s, NULL); s 50 libavformat/astdec.c avio_skip(s->pb, 8); s 52 libavformat/astdec.c st->codecpar->codec_id = ff_codec_get_id(ff_codec_ast_tags, avio_rb16(s->pb)); s 54 libavformat/astdec.c depth = avio_rb16(s->pb); s 56 libavformat/astdec.c avpriv_request_sample(s, "depth %d", depth); s 60 libavformat/astdec.c st->codecpar->channels = avio_rb16(s->pb); s 69 libavformat/astdec.c avio_skip(s->pb, 2); s 70 libavformat/astdec.c st->codecpar->sample_rate = avio_rb32(s->pb); s 74 libavformat/astdec.c st->duration = avio_rb32(s->pb); s 75 libavformat/astdec.c avio_skip(s->pb, 40); s 81 libavformat/astdec.c static int ast_read_packet(AVFormatContext *s, AVPacket *pkt) s 87 libavformat/astdec.c if (avio_feof(s->pb)) s 90 libavformat/astdec.c pos = avio_tell(s->pb); s 91 libavformat/astdec.c type = avio_rl32(s->pb); s 92 libavformat/astdec.c size = avio_rb32(s->pb); s 93 libavformat/astdec.c if (!s->streams[0]->codecpar->channels || size > INT_MAX / s->streams[0]->codecpar->channels) s 96 libavformat/astdec.c size *= s->streams[0]->codecpar->channels; s 97 libavformat/astdec.c if ((ret = avio_skip(s->pb, 24)) < 0) // padding s 101 libavformat/astdec.c ret = av_get_packet(s->pb, pkt, size); s 105 libavformat/astdec.c av_log(s, AV_LOG_ERROR, "unknown chunk %"PRIx32"\n", type); s 106 libavformat/astdec.c avio_skip(s->pb, size); s 42 libavformat/astenc.c av_log(s, AV_LOG_ERROR, "Invalid loop" #type " value\n"); \ s 47 libavformat/astenc.c static int ast_write_header(AVFormatContext *s) s 49 libavformat/astenc.c ASTMuxContext *ast = s->priv_data; s 50 libavformat/astenc.c AVIOContext *pb = s->pb; s 54 libavformat/astenc.c if (s->nb_streams == 1) { s 55 libavformat/astenc.c par = s->streams[0]->codecpar; s 57 libavformat/astenc.c av_log(s, AV_LOG_ERROR, "only one stream is supported\n"); s 62 libavformat/astenc.c av_log(s, AV_LOG_ERROR, "muxing ADPCM AFC is not implemented\n"); s 68 libavformat/astenc.c av_log(s, AV_LOG_ERROR, "unsupported codec\n"); s 73 libavformat/astenc.c av_log(s, AV_LOG_ERROR, "loopend can't be less or equal to loopstart\n"); s 107 libavformat/astenc.c static int ast_write_packet(AVFormatContext *s, AVPacket *pkt) s 109 libavformat/astenc.c AVIOContext *pb = s->pb; s 110 libavformat/astenc.c ASTMuxContext *ast = s->priv_data; s 111 libavformat/astenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 114 libavformat/astenc.c if (s->streams[0]->nb_frames == 0) s 130 libavformat/astenc.c static int ast_write_trailer(AVFormatContext *s) s 132 libavformat/astenc.c AVIOContext *pb = s->pb; s 133 libavformat/astenc.c ASTMuxContext *ast = s->priv_data; s 134 libavformat/astenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 136 libavformat/astenc.c int64_t samples = (file_size - 64 - (32 * s->streams[0]->nb_frames)) / par->block_align; /* PCM_S16BE_PLANAR */ s 138 libavformat/astenc.c av_log(s, AV_LOG_DEBUG, "total samples: %"PRId64"\n", samples); s 140 libavformat/astenc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 148 libavformat/astenc.c av_log(s, AV_LOG_WARNING, "Loopstart value is out of range and will be ignored\n"); s 159 libavformat/astenc.c av_log(s, AV_LOG_WARNING, "Loopend value is out of range and will be ignored\n"); s 69 libavformat/au.c static int au_read_annotation(AVFormatContext *s, int size) s 78 libavformat/au.c AVIOContext *pb = s->pb; s 105 libavformat/au.c av_log(s, AV_LOG_ERROR, "Memory error while parsing AU metadata.\n"); s 110 libavformat/au.c av_dict_set(&(s->metadata), keys[i], value, AV_DICT_DONT_STRDUP_VAL); s 137 libavformat/au.c static int au_read_header(AVFormatContext *s) s 141 libavformat/au.c AVIOContext *pb = s->pb; s 154 libavformat/au.c av_log(s, AV_LOG_ERROR, "Invalid negative data size '%d' found\n", data_size); s 164 libavformat/au.c au_read_annotation(s, size - 24); s 170 libavformat/au.c avpriv_request_sample(s, "unknown or unsupported codec tag: %u", id); s 185 libavformat/au.c avpriv_request_sample(s, "Unknown bits per sample"); s 190 libavformat/au.c av_log(s, AV_LOG_ERROR, "Invalid number of channels %u\n", channels); s 195 libavformat/au.c av_log(s, AV_LOG_ERROR, "Invalid sample rate: %u\n", rate); s 199 libavformat/au.c st = avformat_new_stream(s, NULL); s 239 libavformat/au.c static int au_get_annotations(AVFormatContext *s, char **buffer) s 250 libavformat/au.c AVDictionary *m = s->metadata; s 271 libavformat/au.c static int au_write_header(AVFormatContext *s) s 274 libavformat/au.c AUContext *au = s->priv_data; s 275 libavformat/au.c AVIOContext *pb = s->pb; s 276 libavformat/au.c AVCodecParameters *par = s->streams[0]->codecpar; s 281 libavformat/au.c if (s->nb_streams != 1) { s 282 libavformat/au.c av_log(s, AV_LOG_ERROR, "only one stream is supported\n"); s 288 libavformat/au.c av_log(s, AV_LOG_ERROR, "unsupported codec\n"); s 292 libavformat/au.c if (av_dict_count(s->metadata) > 0) { s 293 libavformat/au.c ret = au_get_annotations(s, &annotations); s 318 libavformat/au.c static int au_write_trailer(AVFormatContext *s) s 320 libavformat/au.c AVIOContext *pb = s->pb; s 321 libavformat/au.c AUContext *au = s->priv_data; s 324 libavformat/au.c if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && file_size < INT32_MAX) { s 147 libavformat/av1dec.c static int annexb_read_header(AVFormatContext *s) s 149 libavformat/av1dec.c AnnexBContext *c = s->priv_data; s 160 libavformat/av1dec.c st = avformat_new_stream(s, NULL); s 189 libavformat/av1dec.c static int annexb_read_packet(AVFormatContext *s, AVPacket *pkt) s 191 libavformat/av1dec.c AnnexBContext *c = s->priv_data; s 196 libavformat/av1dec.c if (avio_feof(s->pb)) { s 203 libavformat/av1dec.c len = leb(s->pb, &c->temporal_unit_size); s 208 libavformat/av1dec.c len = leb(s->pb, &c->frame_unit_size); s 214 libavformat/av1dec.c len = leb(s->pb, &obu_unit_size); s 218 libavformat/av1dec.c ret = av_get_packet(s->pb, pkt, obu_unit_size); s 230 libavformat/av1dec.c av_log(s, AV_LOG_ERROR, "Failed to send packet to " s 237 libavformat/av1dec.c av_log(s, AV_LOG_ERROR, "av1_frame_merge filter failed to " s 246 libavformat/av1dec.c static int annexb_read_close(AVFormatContext *s) s 248 libavformat/av1dec.c AnnexBContext *c = s->priv_data; s 28 libavformat/avc.h int ff_avc_parse_nal_units(AVIOContext *s, const uint8_t *buf, int size); s 414 libavformat/avformat.h int av_get_packet(AVIOContext *s, AVPacket *pkt, int size); s 431 libavformat/avformat.h int av_append_packet(AVIOContext *s, AVPacket *pkt, int size); s 568 libavformat/avformat.h void (*get_output_timestamp)(struct AVFormatContext *s, int stream, s 573 libavformat/avformat.h int (*control_message)(struct AVFormatContext *s, int type, s 590 libavformat/avformat.h int (*get_device_list)(struct AVFormatContext *s, struct AVDeviceInfoList *device_list); s 595 libavformat/avformat.h int (*create_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps); s 600 libavformat/avformat.h int (*free_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps); s 739 libavformat/avformat.h int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index, s 760 libavformat/avformat.h int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags); s 766 libavformat/avformat.h int (*get_device_list)(struct AVFormatContext *s, struct AVDeviceInfoList *device_list); s 772 libavformat/avformat.h int (*create_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps); s 778 libavformat/avformat.h int (*free_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps); s 1231 libavformat/avformat.h AVRational av_stream_get_r_frame_rate(const AVStream *s); s 1233 libavformat/avformat.h void av_stream_set_r_frame_rate(AVStream *s, AVRational r); s 1236 libavformat/avformat.h char* av_stream_get_recommended_encoder_configuration(const AVStream *s); s 1238 libavformat/avformat.h void av_stream_set_recommended_encoder_configuration(AVStream *s, char *configuration); s 1242 libavformat/avformat.h struct AVCodecParserContext *av_stream_get_parser(const AVStream *s); s 1305 libavformat/avformat.h typedef int (*av_format_control_message)(struct AVFormatContext *s, int type, s 1308 libavformat/avformat.h typedef int (*AVOpenCallback)(struct AVFormatContext *s, AVIOContext **pb, const char *url, int flags, s 1889 libavformat/avformat.h int (*open_cb)(struct AVFormatContext *s, AVIOContext **p, const char *url, int flags, const AVIOInterruptCB *int_cb, AVDictionary **options); s 1919 libavformat/avformat.h int (*io_open)(struct AVFormatContext *s, AVIOContext **pb, const char *url, s 1925 libavformat/avformat.h void (*io_close)(struct AVFormatContext *s, AVIOContext *pb); s 1962 libavformat/avformat.h int av_format_get_probe_score(const AVFormatContext *s); s 1964 libavformat/avformat.h AVCodec * av_format_get_video_codec(const AVFormatContext *s); s 1966 libavformat/avformat.h void av_format_set_video_codec(AVFormatContext *s, AVCodec *c); s 1968 libavformat/avformat.h AVCodec * av_format_get_audio_codec(const AVFormatContext *s); s 1970 libavformat/avformat.h void av_format_set_audio_codec(AVFormatContext *s, AVCodec *c); s 1972 libavformat/avformat.h AVCodec * av_format_get_subtitle_codec(const AVFormatContext *s); s 1974 libavformat/avformat.h void av_format_set_subtitle_codec(AVFormatContext *s, AVCodec *c); s 1976 libavformat/avformat.h AVCodec * av_format_get_data_codec(const AVFormatContext *s); s 1978 libavformat/avformat.h void av_format_set_data_codec(AVFormatContext *s, AVCodec *c); s 1980 libavformat/avformat.h int av_format_get_metadata_header_padding(const AVFormatContext *s); s 1982 libavformat/avformat.h void av_format_set_metadata_header_padding(AVFormatContext *s, int c); s 1984 libavformat/avformat.h void * av_format_get_opaque(const AVFormatContext *s); s 1986 libavformat/avformat.h void av_format_set_opaque(AVFormatContext *s, void *opaque); s 1988 libavformat/avformat.h av_format_control_message av_format_get_control_message_cb(const AVFormatContext *s); s 1990 libavformat/avformat.h void av_format_set_control_message_cb(AVFormatContext *s, av_format_control_message callback); s 1992 libavformat/avformat.h attribute_deprecated AVOpenCallback av_format_get_open_cb(const AVFormatContext *s); s 1993 libavformat/avformat.h attribute_deprecated void av_format_set_open_cb(AVFormatContext *s, AVOpenCallback callback); s 2001 libavformat/avformat.h void av_format_inject_global_side_data(AVFormatContext *s); s 2131 libavformat/avformat.h void avformat_free_context(AVFormatContext *s); s 2160 libavformat/avformat.h AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c); s 2198 libavformat/avformat.h AVProgram *av_new_program(AVFormatContext *s, int id); s 2350 libavformat/avformat.h AVProgram *av_find_program_from_stream(AVFormatContext *ic, AVProgram *last, int s); s 2412 libavformat/avformat.h int av_read_frame(AVFormatContext *s, AVPacket *pkt); s 2427 libavformat/avformat.h int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, s 2456 libavformat/avformat.h int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags); s 2474 libavformat/avformat.h int avformat_flush(AVFormatContext *s); s 2480 libavformat/avformat.h int av_read_play(AVFormatContext *s); s 2487 libavformat/avformat.h int av_read_pause(AVFormatContext *s); s 2493 libavformat/avformat.h void avformat_close_input(AVFormatContext **s); s 2529 libavformat/avformat.h int avformat_write_header(AVFormatContext *s, AVDictionary **options); s 2551 libavformat/avformat.h int avformat_init_output(AVFormatContext *s, AVDictionary **options); s 2590 libavformat/avformat.h int av_write_frame(AVFormatContext *s, AVPacket *pkt); s 2635 libavformat/avformat.h int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt); s 2645 libavformat/avformat.h int av_write_uncoded_frame(AVFormatContext *s, int stream_index, s 2664 libavformat/avformat.h int av_interleaved_write_uncoded_frame(AVFormatContext *s, int stream_index, s 2673 libavformat/avformat.h int av_write_uncoded_frame_query(AVFormatContext *s, int stream_index); s 2684 libavformat/avformat.h int av_write_trailer(AVFormatContext *s); s 2724 libavformat/avformat.h int av_get_output_timestamp(struct AVFormatContext *s, int stream, s 2824 libavformat/avformat.h int av_find_default_stream_index(AVFormatContext *s); s 3037 libavformat/avformat.h int avformat_match_stream_specifier(AVFormatContext *s, AVStream *st, s 3040 libavformat/avformat.h int avformat_queue_attached_pictures(AVFormatContext *s); s 116 libavformat/avidec.c static int avi_load_index(AVFormatContext *s); s 117 libavformat/avidec.c static int guess_ni_flag(AVFormatContext *s); s 119 libavformat/avidec.c #define print_tag(s, str, tag, size) \ s 120 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "pos:%"PRIX64" %s: tag=%s size=0x%x\n", \ s 133 libavformat/avidec.c static int get_riff(AVFormatContext *s, AVIOContext *pb) s 135 libavformat/avidec.c AVIContext *avi = s->priv_data; s 152 libavformat/avidec.c av_log(s, AV_LOG_INFO, s 158 libavformat/avidec.c static int read_odml_index(AVFormatContext *s, int frame_num) s 160 libavformat/avidec.c AVIContext *avi = s->priv_data; s 161 libavformat/avidec.c AVIOContext *pb = s->pb; s 176 libavformat/avidec.c av_log(s, AV_LOG_TRACE, s 186 libavformat/avidec.c if (stream_id >= s->nb_streams || stream_id < 0) s 188 libavformat/avidec.c st = s->streams[stream_id]; s 202 libavformat/avidec.c av_log(s, AV_LOG_ERROR, "ODML index invalid\n"); s 218 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "pos:%"PRId64", len:%X\n", pos, len); s 244 libavformat/avidec.c av_log(s, AV_LOG_ERROR, "Too deeply nested ODML indexes\n"); s 251 libavformat/avidec.c read_odml_index(s, frame_num); s 256 libavformat/avidec.c av_log(s, AV_LOG_ERROR, "Failed to restore position after reading index\n"); s 266 libavformat/avidec.c static void clean_index(AVFormatContext *s) s 271 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 272 libavformat/avidec.c AVStream *st = s->streams[i]; s 294 libavformat/avidec.c static int avi_read_tag(AVFormatContext *s, AVStream *st, uint32_t tag, s 297 libavformat/avidec.c AVIOContext *pb = s->pb; s 316 libavformat/avidec.c return av_dict_set(st ? &st->metadata : &s->metadata, key, value, s 342 libavformat/avidec.c static void avi_read_nikon(AVFormatContext *s, uint64_t end) s 344 libavformat/avidec.c while (avio_tell(s->pb) < end && !avio_feof(s->pb)) { s 345 libavformat/avidec.c uint32_t tag = avio_rl32(s->pb); s 346 libavformat/avidec.c uint32_t size = avio_rl32(s->pb); s 350 libavformat/avidec.c uint64_t tag_end = avio_tell(s->pb) + size; s 351 libavformat/avidec.c while (avio_tell(s->pb) < tag_end && !avio_feof(s->pb)) { s 352 libavformat/avidec.c uint16_t tag = avio_rl16(s->pb); s 353 libavformat/avidec.c uint16_t size = avio_rl16(s->pb); s 356 libavformat/avidec.c size = FFMIN(size, tag_end - avio_tell(s->pb)); s 357 libavformat/avidec.c size -= avio_read(s->pb, buffer, s 373 libavformat/avidec.c av_dict_set(&s->metadata, name, buffer, 0); s 374 libavformat/avidec.c avio_skip(s->pb, size); s 379 libavformat/avidec.c avio_skip(s->pb, size); s 385 libavformat/avidec.c static int avi_extract_stream_metadata(AVFormatContext *s, AVStream *st) s 407 libavformat/avidec.c return avpriv_exif_decode_ifd(s, data + offset, data_size - offset, s 411 libavformat/avidec.c avpriv_request_sample(s, "RIFF stream data tag type CASI (%u)", tag); s 414 libavformat/avidec.c avpriv_request_sample(s, "RIFF stream data tag type Zora (%u)", tag); s 423 libavformat/avidec.c static int calculate_bitrate(AVFormatContext *s) s 425 libavformat/avidec.c AVIContext *avi = s->priv_data; s 430 libavformat/avidec.c for (i = 0; i<s->nb_streams; i++) { s 432 libavformat/avidec.c AVStream *st = s->streams[i]; s 447 libavformat/avidec.c for (i = 0; i<s->nb_streams; i++) { s 449 libavformat/avidec.c AVStream *st = s->streams[i]; s 467 libavformat/avidec.c static int avi_read_header(AVFormatContext *s) s 469 libavformat/avidec.c AVIContext *avi = s->priv_data; s 470 libavformat/avidec.c AVIOContext *pb = s->pb; s 486 libavformat/avidec.c ret = get_riff(s, pb); s 506 libavformat/avidec.c print_tag(s, "tag", tag, size); s 514 libavformat/avidec.c print_tag(s, "list", tag1, 0); s 522 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "movi end=%"PRIx64"\n", avi->movi_end); s 525 libavformat/avidec.c ff_read_riff_info(s, size - 4); s 527 libavformat/avidec.c avi_read_nikon(s, list_end); s 536 libavformat/avidec.c avi_metadata_creation_time(&s->metadata, date); s 572 libavformat/avidec.c st = avformat_new_stream(s, NULL); s 586 libavformat/avidec.c print_tag(s, "strh", tag1, -1); s 594 libavformat/avidec.c if (s->nb_streams != 1) s 605 libavformat/avidec.c ast = s->streams[0]->priv_data; s 607 libavformat/avidec.c ff_free_stream(s, st); s 609 libavformat/avidec.c avi->dv_demux = avpriv_dv_init_demux(s); s 615 libavformat/avidec.c s->streams[0]->priv_data = ast; s 624 libavformat/avidec.c s->duration = av_rescale(dv_dur, ast->scale, ast->rate); s 629 libavformat/avidec.c stream_index = s->nb_streams - 1; s 634 libavformat/avidec.c av_assert0(stream_index < s->nb_streams); s 644 libavformat/avidec.c av_log(s, AV_LOG_WARNING, s 666 libavformat/avidec.c av_log(s, AV_LOG_ERROR, "crazy start time, iam scared, giving up\n"); s 671 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "%"PRIu32" %"PRIu32" %d\n", s 691 libavformat/avidec.c av_log(s, AV_LOG_INFO, "unknown stream type %X\n", tag1); s 695 libavformat/avidec.c if (s->error_recognition & AV_EF_EXPLODE) { s 696 libavformat/avidec.c av_log(s, AV_LOG_ERROR, s 702 libavformat/avidec.c av_log(s, AV_LOG_WARNING, s 713 libavformat/avidec.c av_log(s, AV_LOG_DEBUG, "File is truncated adjusting duration\n"); s 725 libavformat/avidec.c if (stream_index >= (unsigned)s->nb_streams || avi->dv_demux) { s 732 libavformat/avidec.c st = s->streams[stream_index]; s 763 libavformat/avidec.c av_log(s, AV_LOG_WARNING, "New extradata in strf chunk, freeing previous one.\n"); s 765 libavformat/avidec.c ret = ff_get_extradata(s, st->codecpar, pb, s 796 libavformat/avidec.c print_tag(s, "video", tag1, 0); s 807 libavformat/avidec.c av_log(s, AV_LOG_WARNING, s 847 libavformat/avidec.c ret = ff_get_wav_header(s, pb, st->codecpar, size, 0); s 853 libavformat/avidec.c av_log(s, s 890 libavformat/avidec.c av_log(s, AV_LOG_DEBUG, "overriding invalid dshow_block_align of %d\n", ast->dshow_block_align); s 896 libavformat/avidec.c av_log(s, AV_LOG_DEBUG, "overriding sample_size\n"); s 915 libavformat/avidec.c if (stream_index >= (unsigned)s->nb_streams s 916 libavformat/avidec.c || s->streams[stream_index]->codecpar->extradata_size s 917 libavformat/avidec.c || s->streams[stream_index]->codecpar->codec_tag == MKTAG('H','2','6','4')) { s 923 libavformat/avidec.c st = s->streams[stream_index]; s 927 libavformat/avidec.c av_log(s, AV_LOG_WARNING, "New extradata in strd chunk, freeing previous one.\n"); s 929 libavformat/avidec.c if ((ret = ff_get_extradata(s, st->codecpar, pb, size)) < 0) s 936 libavformat/avidec.c ret = avi_extract_stream_metadata(s, st); s 938 libavformat/avidec.c av_log(s, AV_LOG_WARNING, "could not decoding EXIF data in stream header.\n"); s 944 libavformat/avidec.c if ((pb->seekable & AVIO_SEEKABLE_NORMAL) && !(s->flags & AVFMT_FLAG_IGNIDX) && s 946 libavformat/avidec.c read_odml_index(s, 0) < 0 && s 947 libavformat/avidec.c (s->error_recognition & AV_EF_EXPLODE)) s 952 libavformat/avidec.c if (stream_index < (unsigned)s->nb_streams && size > 9 * 4) { s 955 libavformat/avidec.c st = s->streams[stream_index]; s 971 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "vprp %d/%d %d/%d\n", s 980 libavformat/avidec.c if (s->nb_streams) { s 981 libavformat/avidec.c ret = avi_read_tag(s, s->streams[s->nb_streams - 1], tag, size); s 988 libavformat/avidec.c av_log(s, AV_LOG_ERROR, s 993 libavformat/avidec.c if (s->error_recognition & AV_EF_EXPLODE) s 1010 libavformat/avidec.c if (stream_index != s->nb_streams - 1) { s 1017 libavformat/avidec.c avi_load_index(s); s 1018 libavformat/avidec.c calculate_bitrate(s); s 1021 libavformat/avidec.c if ((ret = guess_ni_flag(s)) < 0) s 1024 libavformat/avidec.c avi->non_interleaved |= ret | (s->flags & AVFMT_FLAG_SORT_DTS); s 1026 libavformat/avidec.c dict_entry = av_dict_get(s->metadata, "ISFT", NULL, 0); s 1028 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1029 libavformat/avidec.c AVStream *st = s->streams[i]; s 1035 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1036 libavformat/avidec.c AVStream *st = s->streams[i]; s 1044 libavformat/avidec.c if (i == s->nb_streams && avi->non_interleaved) { s 1045 libavformat/avidec.c av_log(s, AV_LOG_WARNING, s 1051 libavformat/avidec.c av_log(s, AV_LOG_INFO, "non-interleaved AVI\n"); s 1052 libavformat/avidec.c clean_index(s); s 1055 libavformat/avidec.c ff_metadata_conv_ctx(s, NULL, avi_metadata_conv); s 1056 libavformat/avidec.c ff_metadata_conv_ctx(s, NULL, ff_riff_info_conv); s 1061 libavformat/avidec.c static int read_gab2_sub(AVFormatContext *s, AVStream *st, AVPacket *pkt) s 1108 libavformat/avidec.c if (ff_copy_whiteblacklists(ast->sub_ctx, s) < 0) s 1131 libavformat/avidec.c static AVStream *get_subtitle_pkt(AVFormatContext *s, AVStream *next_st, s 1142 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1143 libavformat/avidec.c st = s->streams[i]; s 1179 libavformat/avidec.c static int avi_sync(AVFormatContext *s, int exit_early) s 1181 libavformat/avidec.c AVIContext *avi = s->priv_data; s 1182 libavformat/avidec.c AVIOContext *pb = s->pb; s 1200 libavformat/avidec.c ff_tlog(s, "%X %X %X %X %X %X %X %X %"PRId64" %u %d\n", s 1206 libavformat/avidec.c if ((d[0] == 'i' && d[1] == 'x' && n < s->nb_streams) || s 1224 libavformat/avidec.c get_stream_idx(d + 1) < s->nb_streams) s 1228 libavformat/avidec.c if (d[2] == 'i' && d[3] == 'x' && n < s->nb_streams) { s 1233 libavformat/avidec.c if (d[2] == 'w' && d[3] == 'c' && n < s->nb_streams) { s 1242 libavformat/avidec.c if (n < s->nb_streams) { s 1245 libavformat/avidec.c st = s->streams[n]; s 1249 libavformat/avidec.c av_log(s, AV_LOG_WARNING, "Skipping foreign stream %d packet\n", n); s 1253 libavformat/avidec.c if (s->nb_streams >= 2) { s 1254 libavformat/avidec.c AVStream *st1 = s->streams[1]; s 1267 libavformat/avidec.c av_log(s, AV_LOG_WARNING, s 1332 libavformat/avidec.c static int ni_prepare_read(AVFormatContext *s) s 1334 libavformat/avidec.c AVIContext *avi = s->priv_data; s 1341 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1342 libavformat/avidec.c AVStream *st = s->streams[i]; s 1358 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "%"PRId64" %d/%d %"PRId64"\n", ts, s 1385 libavformat/avidec.c if (avio_seek(s->pb, pos + 8, SEEK_SET) < 0) s 1401 libavformat/avidec.c static int avi_read_packet(AVFormatContext *s, AVPacket *pkt) s 1403 libavformat/avidec.c AVIContext *avi = s->priv_data; s 1404 libavformat/avidec.c AVIOContext *pb = s->pb; s 1416 libavformat/avidec.c err = ni_prepare_read(s); s 1423 libavformat/avidec.c AVStream *st = s->streams[avi->stream_index]; s 1427 libavformat/avidec.c if (get_subtitle_pkt(s, st, pkt)) s 1453 libavformat/avidec.c av_log(s, AV_LOG_ERROR, s 1470 libavformat/avidec.c !st->codecpar->codec_tag && read_gab2_sub(s, st, pkt)) { s 1534 libavformat/avidec.c av_log(s, AV_LOG_INFO, "Switching to NI mode, due to poor interleaving\n"); s 1541 libavformat/avidec.c if ((err = avi_sync(s, 0)) < 0) s 1548 libavformat/avidec.c static int avi_read_idx1(AVFormatContext *s, int size) s 1550 libavformat/avidec.c AVIContext *avi = s->priv_data; s 1551 libavformat/avidec.c AVIOContext *pb = s->pb; s 1568 libavformat/avidec.c if (avi_sync(s, 1) == 0) s 1573 libavformat/avidec.c if (s->nb_streams == 1 && s->streams[0]->codecpar->codec_tag == AV_RL32("MMES")) { s 1587 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "%d: tag=0x%x flags=0x%x pos=0x%"PRIx64" len=%d/", s 1592 libavformat/avidec.c if (index >= s->nb_streams) s 1594 libavformat/avidec.c st = s->streams[index]; s 1609 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "%d cum_len=%"PRId64"\n", len, ast->cum_len); s 1625 libavformat/avidec.c for (index = 0; index < s->nb_streams; index++) { s 1626 libavformat/avidec.c st = s->streams[index]; s 1636 libavformat/avidec.c static int check_stream_max_drift(AVFormatContext *s) s 1640 libavformat/avidec.c int *idx = av_mallocz_array(s->nb_streams, sizeof(*idx)); s 1650 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1651 libavformat/avidec.c AVStream *st = s->streams[i]; s 1665 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1666 libavformat/avidec.c AVStream *st = s->streams[i]; s 1691 libavformat/avidec.c static int guess_ni_flag(AVFormatContext *s) s 1696 libavformat/avidec.c int64_t oldpos = avio_tell(s->pb); s 1698 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1699 libavformat/avidec.c AVStream *st = s->streams[i]; s 1709 libavformat/avidec.c avio_seek(s->pb, pos, SEEK_SET); s 1710 libavformat/avidec.c tag[0] = avio_r8(s->pb); s 1711 libavformat/avidec.c tag[1] = avio_r8(s->pb); s 1712 libavformat/avidec.c avio_rl16(s->pb); s 1713 libavformat/avidec.c size = avio_rl32(s->pb); s 1725 libavformat/avidec.c avio_seek(s->pb, oldpos, SEEK_SET); s 1730 libavformat/avidec.c return check_stream_max_drift(s); s 1733 libavformat/avidec.c static int avi_load_index(AVFormatContext *s) s 1735 libavformat/avidec.c AVIContext *avi = s->priv_data; s 1736 libavformat/avidec.c AVIOContext *pb = s->pb; s 1744 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "movi_end=0x%"PRIx64"\n", avi->movi_end); s 1753 libavformat/avidec.c avi_read_idx1(s, size) >= 0) { s 1760 libavformat/avidec.c ff_read_riff_info(s, size - 4); s 1783 libavformat/avidec.c static int avi_read_seek(AVFormatContext *s, int stream_index, s 1786 libavformat/avidec.c AVIContext *avi = s->priv_data; s 1800 libavformat/avidec.c avi_load_index(s); s 1805 libavformat/avidec.c st = s->streams[stream_index]; s 1812 libavformat/avidec.c av_log(s, AV_LOG_DEBUG, "Failed to find timestamp %"PRId64 " in index %"PRId64 " .. %"PRId64 "\n", s 1823 libavformat/avidec.c av_log(s, AV_LOG_TRACE, "XX %"PRId64" %d %"PRId64"\n", s 1831 libavformat/avidec.c if (avio_seek(s->pb, pos, SEEK_SET) < 0) s 1843 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1844 libavformat/avidec.c AVStream *st2 = s->streams[i]; s 1872 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1873 libavformat/avidec.c AVStream *st2 = s->streams[i]; s 1891 libavformat/avidec.c if (avio_seek(s->pb, pos_min, SEEK_SET) < 0) { s 1892 libavformat/avidec.c av_log(s, AV_LOG_ERROR, "Seek failed\n"); s 1900 libavformat/avidec.c static int avi_read_close(AVFormatContext *s) s 1903 libavformat/avidec.c AVIContext *avi = s->priv_data; s 1905 libavformat/avidec.c for (i = 0; i < s->nb_streams; i++) { s 1906 libavformat/avidec.c AVStream *st = s->streams[i]; s 96 libavformat/avienc.c static int avi_write_packet_internal(AVFormatContext *s, AVPacket *pkt); s 105 libavformat/avienc.c static int avi_add_ientry(AVFormatContext *s, int stream_index, char *tag, s 108 libavformat/avienc.c AVIContext *avi = s->priv_data; s 109 libavformat/avienc.c AVIOContext *pb = s->pb; s 110 libavformat/avienc.c AVIStream *avist = s->streams[stream_index]->priv_data; s 142 libavformat/avienc.c static av_cold int avi_init(struct AVFormatContext *s) s 144 libavformat/avienc.c AVIContext *avi = s->priv_data; s 151 libavformat/avienc.c av_log(s, AV_LOG_DEBUG, "reserve_index_space:%d master_index_max_size:%d\n", s 157 libavformat/avienc.c static int64_t avi_start_new_riff(AVFormatContext *s, AVIOContext *pb, s 160 libavformat/avienc.c AVIContext *avi = s->priv_data; s 165 libavformat/avienc.c for (i = 0; i < s->nb_streams; i++) { s 166 libavformat/avienc.c AVIStream *avist = s->streams[i]->priv_data; s 197 libavformat/avienc.c static int avi_write_counters(AVFormatContext *s, int riff_id) s 199 libavformat/avienc.c AVIOContext *pb = s->pb; s 200 libavformat/avienc.c AVIContext *avi = s->priv_data; s 206 libavformat/avienc.c for (n = 0; n < s->nb_streams; n++) { s 207 libavformat/avienc.c AVIStream *avist = s->streams[n]->priv_data; s 210 libavformat/avienc.c par = s->streams[n]->codecpar; s 212 libavformat/avienc.c ff_parse_specific_params(s->streams[n], &au_byterate, &au_ssize, &au_scale); s 230 libavformat/avienc.c static void write_odml_master(AVFormatContext *s, int stream_index) s 232 libavformat/avienc.c AVIOContext *pb = s->pb; s 233 libavformat/avienc.c AVIContext *avi = s->priv_data; s 234 libavformat/avienc.c AVStream *st = s->streams[stream_index]; s 258 libavformat/avienc.c static int avi_write_header(AVFormatContext *s) s 260 libavformat/avienc.c AVIContext *avi = s->priv_data; s 261 libavformat/avienc.c AVIOContext *pb = s->pb; s 270 libavformat/avienc.c if (s->nb_streams > AVI_MAX_STREAM_COUNT) { s 271 libavformat/avienc.c av_log(s, AV_LOG_ERROR, "AVI does not support " s 276 libavformat/avienc.c for (n = 0; n < s->nb_streams; n++) { s 277 libavformat/avienc.c s->streams[n]->priv_data = av_mallocz(sizeof(AVIStream)); s 278 libavformat/avienc.c if (!s->streams[n]->priv_data) s 284 libavformat/avienc.c list1 = avi_start_new_riff(s, pb, "AVI ", "hdrl"); s 292 libavformat/avienc.c for (n = 0; n < s->nb_streams; n++) { s 293 libavformat/avienc.c AVCodecParameters *par = s->streams[n]->codecpar; s 294 libavformat/avienc.c AVStream *st = s->streams[n]; s 309 libavformat/avienc.c if (s->duration > 0) s 310 libavformat/avienc.c duration_est = (double)s->duration / AV_TIME_BASE; s 318 libavformat/avienc.c av_log(s, AV_LOG_DEBUG, "duration_est:%0.3f, filesize_est:%0.1fGiB, master_index_max_size:%d\n", s 339 libavformat/avienc.c avio_wl32(pb, s->nb_streams); /* nb streams */ s 355 libavformat/avienc.c AVStream *st = s->streams[i]; s 368 libavformat/avienc.c avpriv_report_missing_feature(s, "Subtitle streams other than DivX XSUB"); s 459 libavformat/avienc.c av_log(s, AV_LOG_ERROR, "%s rawvideo cannot be written to avi, output file will be unreadable\n", s 464 libavformat/avienc.c av_log(s, AV_LOG_ERROR, "PAL8 with %d bps is not allowed\n", par->bits_per_coded_sample); s 472 libavformat/avienc.c if ((ret = ff_put_wav_header(s, pb, par, flags)) < 0) s 476 libavformat/avienc.c av_log(s, AV_LOG_ERROR, s 483 libavformat/avienc.c ff_riff_write_info_tag(s->pb, "strn", t->value); s 487 libavformat/avienc.c && (t = av_dict_get(s->streams[i]->metadata, "language", NULL, 0))) { s 494 libavformat/avienc.c ff_riff_write_info_tag(s->pb, "strn", str); s 501 libavformat/avienc.c write_odml_master(s, i); s 573 libavformat/avienc.c ff_riff_write_info(s); s 576 libavformat/avienc.c padding = s->metadata_header_padding; s 594 libavformat/avienc.c static void update_odml_entry(AVFormatContext *s, int stream_index, int64_t ix, int size) s 596 libavformat/avienc.c AVIOContext *pb = s->pb; s 597 libavformat/avienc.c AVIContext *avi = s->priv_data; s 598 libavformat/avienc.c AVIStream *avist = s->streams[stream_index]->priv_data; s 612 libavformat/avienc.c ff_parse_specific_params(s->streams[stream_index], &au_byterate, &au_ssize, &au_scale); s 613 libavformat/avienc.c if (s->streams[stream_index]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && au_ssize > 0) { s 616 libavformat/avienc.c avpriv_request_sample(s, "OpenDML index duration for audio packets with partial frames"); s 626 libavformat/avienc.c static int avi_write_ix(AVFormatContext *s) s 628 libavformat/avienc.c AVIOContext *pb = s->pb; s 629 libavformat/avienc.c AVIContext *avi = s->priv_data; s 636 libavformat/avienc.c for (i = 0; i < s->nb_streams; i++) { s 637 libavformat/avienc.c AVIStream *avist = s->streams[i]->priv_data; s 643 libavformat/avienc.c update_odml_entry(s, i, pos, size); s 644 libavformat/avienc.c write_odml_master(s, i); s 651 libavformat/avienc.c for (i = 0; i < s->nb_streams; i++) { s 652 libavformat/avienc.c AVIStream *avist = s->streams[i]->priv_data; s 655 libavformat/avienc.c avi_stream2fourcc(tag, i, s->streams[i]->codecpar->codec_type); s 679 libavformat/avienc.c update_odml_entry(s, i, ix, avio_tell(pb) - ix); s 684 libavformat/avienc.c static int avi_write_idx1(AVFormatContext *s) s 686 libavformat/avienc.c AVIOContext *pb = s->pb; s 687 libavformat/avienc.c AVIContext *avi = s->priv_data; s 698 libavformat/avienc.c for (i = 0; i < s->nb_streams; i++) { s 699 libavformat/avienc.c avist = s->streams[i]->priv_data; s 705 libavformat/avienc.c for (i = 0; i < s->nb_streams; i++) { s 706 libavformat/avienc.c avist = s->streams[i]->priv_data; s 718 libavformat/avienc.c avist = s->streams[stream_id]->priv_data; s 723 libavformat/avienc.c s->streams[stream_id]->codecpar->codec_type); s 734 libavformat/avienc.c avi_write_counters(s, avi->riff_id); s 739 libavformat/avienc.c static int write_skip_frames(AVFormatContext *s, int stream_index, int64_t dts) s 741 libavformat/avienc.c AVIStream *avist = s->streams[stream_index]->priv_data; s 742 libavformat/avienc.c AVCodecParameters *par = s->streams[stream_index]->codecpar; s 744 libavformat/avienc.c ff_dlog(s, "dts:%s packet_count:%d stream_index:%d\n", av_ts2str(dts), avist->packet_count, stream_index); s 750 libavformat/avienc.c av_log(s, AV_LOG_ERROR, "Too large number of skipped frames %"PRId64" > 60000\n", dts - avist->packet_count); s 758 libavformat/avienc.c avi_write_packet_internal(s, &empty_packet); s 759 libavformat/avienc.c ff_dlog(s, "dup dts:%s packet_count:%d\n", av_ts2str(dts), avist->packet_count); s 765 libavformat/avienc.c static int avi_write_packet(AVFormatContext *s, AVPacket *pkt) s 768 libavformat/avienc.c AVCodecParameters *par = s->streams[stream_index]->codecpar; s 772 libavformat/avienc.c ret = ff_check_h264_startcode(s, s->streams[stream_index], pkt); s 777 libavformat/avienc.c if ((ret = write_skip_frames(s, stream_index, pkt->dts)) < 0) s 781 libavformat/avienc.c return avi_write_packet_internal(s, pkt); /* Passthrough */ s 784 libavformat/avienc.c AVIStream *avist = s->streams[stream_index]->priv_data; s 785 libavformat/avienc.c AVIOContext *pb = s->pb; s 791 libavformat/avienc.c reshuffle_ret = ff_reshuffle_raw_rgb(s, &pkt, par, expected_stride); s 797 libavformat/avienc.c ret = ff_get_packet_palette(s, opkt, reshuffle_ret, avist->palette); s 821 libavformat/avienc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 829 libavformat/avienc.c ret = avi_add_ientry(s, stream_index, tag, AVIIF_NO_TIME, s 848 libavformat/avienc.c ret = avi_write_packet_internal(s, pkt); s 857 libavformat/avienc.c return avi_write_packet_internal(s, pkt); s 860 libavformat/avienc.c static int avi_write_packet_internal(AVFormatContext *s, AVPacket *pkt) s 866 libavformat/avienc.c AVIContext *avi = s->priv_data; s 867 libavformat/avienc.c AVIOContext *pb = s->pb; s 868 libavformat/avienc.c AVIStream *avist = s->streams[stream_index]->priv_data; s 869 libavformat/avienc.c AVCodecParameters *par = s->streams[stream_index]->codecpar; s 879 libavformat/avienc.c avi_write_ix(s); s 883 libavformat/avienc.c avi_write_idx1(s); s 886 libavformat/avienc.c avi->movi_list = avi_start_new_riff(s, pb, "AVIX", "movi"); s 895 libavformat/avienc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 897 libavformat/avienc.c ret = avi_add_ientry(s, stream_index, NULL, flags, size); s 911 libavformat/avienc.c static int avi_write_trailer(AVFormatContext *s) s 913 libavformat/avienc.c AVIContext *avi = s->priv_data; s 914 libavformat/avienc.c AVIOContext *pb = s->pb; s 919 libavformat/avienc.c for (i = 0; i < s->nb_streams; i++) { s 920 libavformat/avienc.c AVIStream *avist = s->streams[i]->priv_data; s 921 libavformat/avienc.c write_skip_frames(s, i, avist->last_dts); s 927 libavformat/avienc.c res = avi_write_idx1(s); s 930 libavformat/avienc.c avi_write_ix(s); s 939 libavformat/avienc.c for (n = nb_frames = 0; n < s->nb_streams; n++) { s 940 libavformat/avienc.c AVCodecParameters *par = s->streams[n]->codecpar; s 941 libavformat/avienc.c AVIStream *avist = s->streams[n]->priv_data; s 955 libavformat/avienc.c avi_write_counters(s, avi->riff_id); s 962 libavformat/avienc.c av_log(s, AV_LOG_WARNING, "Output file not strictly OpenDML compliant, " s 967 libavformat/avienc.c for (i = 0; i < s->nb_streams; i++) { s 968 libavformat/avienc.c AVIStream *avist = s->streams[i]->priv_data; s 978 libavformat/avienc.c static void avi_deinit(AVFormatContext *s) s 980 libavformat/avienc.c for (int i = 0; i < s->nb_streams; i++) { s 981 libavformat/avienc.c AVIStream *avist = s->streams[i]->priv_data; s 227 libavformat/avio.c int ffurl_accept(URLContext *s, URLContext **c) s 230 libavformat/avio.c if (s->prot->url_accept) s 231 libavformat/avio.c return s->prot->url_accept(s, c); s 536 libavformat/avio.c int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options) s 541 libavformat/avio.c av_assert0(s); s 564 libavformat/avio.c *s = ctx; s 569 libavformat/avio.c *s = NULL; s 574 libavformat/avio.c int avio_read_dir(AVIODirContext *s, AVIODirEntry **next) s 579 libavformat/avio.c if (!s || !s->url_context) s 581 libavformat/avio.c h = s->url_context; s 587 libavformat/avio.c int avio_close_dir(AVIODirContext **s) s 591 libavformat/avio.c av_assert0(s); s 592 libavformat/avio.c if (!(*s) || !(*s)->url_context) s 594 libavformat/avio.c h = (*s)->url_context; s 597 libavformat/avio.c av_freep(s); s 598 libavformat/avio.c *s = NULL; s 406 libavformat/avio.h int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options); s 419 libavformat/avio.h int avio_read_dir(AVIODirContext *s, AVIODirEntry **next); s 430 libavformat/avio.h int avio_close_dir(AVIODirContext **s); s 477 libavformat/avio.h void avio_context_free(AVIOContext **s); s 479 libavformat/avio.h void avio_w8(AVIOContext *s, int b); s 480 libavformat/avio.h void avio_write(AVIOContext *s, const unsigned char *buf, int size); s 481 libavformat/avio.h void avio_wl64(AVIOContext *s, uint64_t val); s 482 libavformat/avio.h void avio_wb64(AVIOContext *s, uint64_t val); s 483 libavformat/avio.h void avio_wl32(AVIOContext *s, unsigned int val); s 484 libavformat/avio.h void avio_wb32(AVIOContext *s, unsigned int val); s 485 libavformat/avio.h void avio_wl24(AVIOContext *s, unsigned int val); s 486 libavformat/avio.h void avio_wb24(AVIOContext *s, unsigned int val); s 487 libavformat/avio.h void avio_wl16(AVIOContext *s, unsigned int val); s 488 libavformat/avio.h void avio_wb16(AVIOContext *s, unsigned int val); s 494 libavformat/avio.h int avio_put_str(AVIOContext *s, const char *str); s 503 libavformat/avio.h int avio_put_str16le(AVIOContext *s, const char *str); s 512 libavformat/avio.h int avio_put_str16be(AVIOContext *s, const char *str); s 524 libavformat/avio.h void avio_write_marker(AVIOContext *s, int64_t time, enum AVIODataMarkerType type); s 545 libavformat/avio.h int64_t avio_seek(AVIOContext *s, int64_t offset, int whence); s 551 libavformat/avio.h int64_t avio_skip(AVIOContext *s, int64_t offset); s 557 libavformat/avio.h static av_always_inline int64_t avio_tell(AVIOContext *s) s 559 libavformat/avio.h return avio_seek(s, 0, SEEK_CUR); s 566 libavformat/avio.h int64_t avio_size(AVIOContext *s); s 572 libavformat/avio.h int avio_feof(AVIOContext *s); s 578 libavformat/avio.h int avio_printf(AVIOContext *s, const char *fmt, ...) av_printf_format(2, 3); s 585 libavformat/avio.h void avio_print_string_array(AVIOContext *s, const char *strings[]); s 594 libavformat/avio.h #define avio_print(s, ...) \ s 595 libavformat/avio.h avio_print_string_array(s, (const char*[]){__VA_ARGS__, NULL}) s 607 libavformat/avio.h void avio_flush(AVIOContext *s); s 613 libavformat/avio.h int avio_read(AVIOContext *s, unsigned char *buf, int size); s 622 libavformat/avio.h int avio_read_partial(AVIOContext *s, unsigned char *buf, int size); s 631 libavformat/avio.h int avio_r8 (AVIOContext *s); s 632 libavformat/avio.h unsigned int avio_rl16(AVIOContext *s); s 633 libavformat/avio.h unsigned int avio_rl24(AVIOContext *s); s 634 libavformat/avio.h unsigned int avio_rl32(AVIOContext *s); s 635 libavformat/avio.h uint64_t avio_rl64(AVIOContext *s); s 636 libavformat/avio.h unsigned int avio_rb16(AVIOContext *s); s 637 libavformat/avio.h unsigned int avio_rb24(AVIOContext *s); s 638 libavformat/avio.h unsigned int avio_rb32(AVIOContext *s); s 639 libavformat/avio.h uint64_t avio_rb64(AVIOContext *s); s 717 libavformat/avio.h int avio_open(AVIOContext **s, const char *url, int flags); s 737 libavformat/avio.h int avio_open2(AVIOContext **s, const char *url, int flags, s 750 libavformat/avio.h int avio_close(AVIOContext *s); s 763 libavformat/avio.h int avio_closep(AVIOContext **s); s 772 libavformat/avio.h int avio_open_dyn_buf(AVIOContext **s); s 784 libavformat/avio.h int avio_get_dyn_buf(AVIOContext *s, uint8_t **pbuffer); s 795 libavformat/avio.h int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer); s 866 libavformat/avio.h int avio_accept(AVIOContext *s, AVIOContext **c); s 29 libavformat/avio_internal.h int ffio_init_context(AVIOContext *s, s 54 libavformat/avio_internal.h int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const unsigned char **data); s 56 libavformat/avio_internal.h void ffio_fill(AVIOContext *s, int b, int count); s 58 libavformat/avio_internal.h static av_always_inline void ffio_wfourcc(AVIOContext *pb, const uint8_t *s) s 60 libavformat/avio_internal.h avio_wl32(pb, MKTAG(s[0], s[1], s[2], s[3])); s 75 libavformat/avio_internal.h int ffio_rewind_with_probe_data(AVIOContext *s, unsigned char **buf, int buf_size); s 84 libavformat/avio_internal.h int ffio_read_size(AVIOContext *s, unsigned char *buf, int size); s 87 libavformat/avio_internal.h int ffio_set_buf_size(AVIOContext *s, int buf_size); s 96 libavformat/avio_internal.h int ffio_realloc_buf(AVIOContext *s, int buf_size); s 105 libavformat/avio_internal.h int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size); s 107 libavformat/avio_internal.h int ffio_limit(AVIOContext *s, int size); s 109 libavformat/avio_internal.h void ffio_init_checksum(AVIOContext *s, s 112 libavformat/avio_internal.h unsigned long ffio_get_checksum(AVIOContext *s); s 129 libavformat/avio_internal.h int ffio_open_dyn_packet_buf(AVIOContext **s, int max_packet_size); s 142 libavformat/avio_internal.h int ffio_fdopen(AVIOContext **s, URLContext *h); s 150 libavformat/avio_internal.h URLContext *ffio_geturlcontext(AVIOContext *s); s 160 libavformat/avio_internal.h int ffio_open_null_buf(AVIOContext **s); s 162 libavformat/avio_internal.h int ffio_open_whitelist(AVIOContext **s, const char *url, int flags, s 172 libavformat/avio_internal.h int ffio_close_null_buf(AVIOContext *s); s 179 libavformat/avio_internal.h void ffio_reset_dyn_buf(AVIOContext *s); s 186 libavformat/avio_internal.h void ffio_free_dyn_buf(AVIOContext **s); s 47 libavformat/aviobuf.c AVIOContext *s = obj; s 48 libavformat/aviobuf.c return prev ? NULL : s->opaque; s 73 libavformat/aviobuf.c static void fill_buffer(AVIOContext *s); s 74 libavformat/aviobuf.c static int url_resetbuf(AVIOContext *s, int flags); s 76 libavformat/aviobuf.c int ffio_init_context(AVIOContext *s, s 85 libavformat/aviobuf.c memset(s, 0, sizeof(AVIOContext)); s 87 libavformat/aviobuf.c s->buffer = buffer; s 88 libavformat/aviobuf.c s->orig_buffer_size = s 89 libavformat/aviobuf.c s->buffer_size = buffer_size; s 90 libavformat/aviobuf.c s->buf_ptr = buffer; s 91 libavformat/aviobuf.c s->buf_ptr_max = buffer; s 92 libavformat/aviobuf.c s->opaque = opaque; s 93 libavformat/aviobuf.c s->direct = 0; s 95 libavformat/aviobuf.c url_resetbuf(s, write_flag ? AVIO_FLAG_WRITE : AVIO_FLAG_READ); s 97 libavformat/aviobuf.c s->write_packet = write_packet; s 98 libavformat/aviobuf.c s->read_packet = read_packet; s 99 libavformat/aviobuf.c s->seek = seek; s 100 libavformat/aviobuf.c s->pos = 0; s 101 libavformat/aviobuf.c s->eof_reached = 0; s 102 libavformat/aviobuf.c s->error = 0; s 103 libavformat/aviobuf.c s->seekable = seek ? AVIO_SEEKABLE_NORMAL : 0; s 104 libavformat/aviobuf.c s->min_packet_size = 0; s 105 libavformat/aviobuf.c s->max_packet_size = 0; s 106 libavformat/aviobuf.c s->update_checksum = NULL; s 107 libavformat/aviobuf.c s->short_seek_threshold = SHORT_SEEK_THRESHOLD; s 110 libavformat/aviobuf.c s->pos = buffer_size; s 111 libavformat/aviobuf.c s->buf_end = s->buffer + buffer_size; s 113 libavformat/aviobuf.c s->read_pause = NULL; s 114 libavformat/aviobuf.c s->read_seek = NULL; s 116 libavformat/aviobuf.c s->write_data_type = NULL; s 117 libavformat/aviobuf.c s->ignore_boundary_point = 0; s 118 libavformat/aviobuf.c s->current_type = AVIO_DATA_MARKER_UNKNOWN; s 119 libavformat/aviobuf.c s->last_time = AV_NOPTS_VALUE; s 120 libavformat/aviobuf.c s->short_seek_get = NULL; s 121 libavformat/aviobuf.c s->written = 0; s 135 libavformat/aviobuf.c AVIOContext *s = av_malloc(sizeof(AVIOContext)); s 136 libavformat/aviobuf.c if (!s) s 138 libavformat/aviobuf.c ffio_init_context(s, buffer, buffer_size, write_flag, opaque, s 140 libavformat/aviobuf.c return s; s 148 libavformat/aviobuf.c static void writeout(AVIOContext *s, const uint8_t *data, int len) s 150 libavformat/aviobuf.c if (!s->error) { s 152 libavformat/aviobuf.c if (s->write_data_type) s 153 libavformat/aviobuf.c ret = s->write_data_type(s->opaque, (uint8_t *)data, s 155 libavformat/aviobuf.c s->current_type, s 156 libavformat/aviobuf.c s->last_time); s 157 libavformat/aviobuf.c else if (s->write_packet) s 158 libavformat/aviobuf.c ret = s->write_packet(s->opaque, (uint8_t *)data, len); s 160 libavformat/aviobuf.c s->error = ret; s 162 libavformat/aviobuf.c if (s->pos + len > s->written) s 163 libavformat/aviobuf.c s->written = s->pos + len; s 166 libavformat/aviobuf.c if (s->current_type == AVIO_DATA_MARKER_SYNC_POINT || s 167 libavformat/aviobuf.c s->current_type == AVIO_DATA_MARKER_BOUNDARY_POINT) { s 168 libavformat/aviobuf.c s->current_type = AVIO_DATA_MARKER_UNKNOWN; s 170 libavformat/aviobuf.c s->last_time = AV_NOPTS_VALUE; s 171 libavformat/aviobuf.c s->writeout_count ++; s 172 libavformat/aviobuf.c s->pos += len; s 175 libavformat/aviobuf.c static void flush_buffer(AVIOContext *s) s 177 libavformat/aviobuf.c s->buf_ptr_max = FFMAX(s->buf_ptr, s->buf_ptr_max); s 178 libavformat/aviobuf.c if (s->write_flag && s->buf_ptr_max > s->buffer) { s 179 libavformat/aviobuf.c writeout(s, s->buffer, s->buf_ptr_max - s->buffer); s 180 libavformat/aviobuf.c if (s->update_checksum) { s 181 libavformat/aviobuf.c s->checksum = s->update_checksum(s->checksum, s->checksum_ptr, s 182 libavformat/aviobuf.c s->buf_ptr_max - s->checksum_ptr); s 183 libavformat/aviobuf.c s->checksum_ptr = s->buffer; s 186 libavformat/aviobuf.c s->buf_ptr = s->buf_ptr_max = s->buffer; s 187 libavformat/aviobuf.c if (!s->write_flag) s 188 libavformat/aviobuf.c s->buf_end = s->buffer; s 191 libavformat/aviobuf.c void avio_w8(AVIOContext *s, int b) s 194 libavformat/aviobuf.c *s->buf_ptr++ = b; s 195 libavformat/aviobuf.c if (s->buf_ptr >= s->buf_end) s 196 libavformat/aviobuf.c flush_buffer(s); s 199 libavformat/aviobuf.c void ffio_fill(AVIOContext *s, int b, int count) s 202 libavformat/aviobuf.c int len = FFMIN(s->buf_end - s->buf_ptr, count); s 203 libavformat/aviobuf.c memset(s->buf_ptr, b, len); s 204 libavformat/aviobuf.c s->buf_ptr += len; s 206 libavformat/aviobuf.c if (s->buf_ptr >= s->buf_end) s 207 libavformat/aviobuf.c flush_buffer(s); s 213 libavformat/aviobuf.c void avio_write(AVIOContext *s, const unsigned char *buf, int size) s 215 libavformat/aviobuf.c if (s->direct && !s->update_checksum) { s 216 libavformat/aviobuf.c avio_flush(s); s 217 libavformat/aviobuf.c writeout(s, buf, size); s 221 libavformat/aviobuf.c int len = FFMIN(s->buf_end - s->buf_ptr, size); s 222 libavformat/aviobuf.c memcpy(s->buf_ptr, buf, len); s 223 libavformat/aviobuf.c s->buf_ptr += len; s 225 libavformat/aviobuf.c if (s->buf_ptr >= s->buf_end) s 226 libavformat/aviobuf.c flush_buffer(s); s 233 libavformat/aviobuf.c void avio_flush(AVIOContext *s) s 235 libavformat/aviobuf.c int seekback = s->write_flag ? FFMIN(0, s->buf_ptr - s->buf_ptr_max) : 0; s 236 libavformat/aviobuf.c flush_buffer(s); s 238 libavformat/aviobuf.c avio_seek(s, seekback, SEEK_CUR); s 241 libavformat/aviobuf.c int64_t avio_seek(AVIOContext *s, int64_t offset, int whence) s 250 libavformat/aviobuf.c if(!s) s 254 libavformat/aviobuf.c return s->seek ? s->seek(s->opaque, offset, AVSEEK_SIZE) : AVERROR(ENOSYS); s 256 libavformat/aviobuf.c buffer_size = s->buf_end - s->buffer; s 258 libavformat/aviobuf.c pos = s->pos - (s->write_flag ? 0 : buffer_size); s 264 libavformat/aviobuf.c offset1 = pos + (s->buf_ptr - s->buffer); s 274 libavformat/aviobuf.c if (s->short_seek_get) { s 275 libavformat/aviobuf.c short_seek = s->short_seek_get(s->opaque); s 278 libavformat/aviobuf.c short_seek = s->short_seek_threshold; s 280 libavformat/aviobuf.c short_seek = s->short_seek_threshold; s 283 libavformat/aviobuf.c s->buf_ptr_max = FFMAX(s->buf_ptr_max, s->buf_ptr); s 284 libavformat/aviobuf.c if ((!s->direct || !s->seek) && s 285 libavformat/aviobuf.c offset1 >= 0 && offset1 <= (s->write_flag ? s->buf_ptr_max - s->buffer : buffer_size)) { s 287 libavformat/aviobuf.c s->buf_ptr = s->buffer + offset1; s 288 libavformat/aviobuf.c } else if ((!(s->seekable & AVIO_SEEKABLE_NORMAL) || s 290 libavformat/aviobuf.c !s->write_flag && offset1 >= 0 && s 291 libavformat/aviobuf.c (!s->direct || !s->seek) && s 293 libavformat/aviobuf.c while(s->pos < offset && !s->eof_reached) s 294 libavformat/aviobuf.c fill_buffer(s); s 295 libavformat/aviobuf.c if (s->eof_reached) s 297 libavformat/aviobuf.c s->buf_ptr = s->buf_end - (s->pos - offset); s 298 libavformat/aviobuf.c } else if(!s->write_flag && offset1 < 0 && -offset1 < buffer_size>>1 && s->seek && offset > 0) { s 302 libavformat/aviobuf.c if ((res = s->seek(s->opaque, pos, SEEK_SET)) < 0) s 304 libavformat/aviobuf.c s->buf_end = s 305 libavformat/aviobuf.c s->buf_ptr = s->buffer; s 306 libavformat/aviobuf.c s->pos = pos; s 307 libavformat/aviobuf.c s->eof_reached = 0; s 308 libavformat/aviobuf.c fill_buffer(s); s 309 libavformat/aviobuf.c return avio_seek(s, offset, SEEK_SET | force); s 312 libavformat/aviobuf.c if (s->write_flag) { s 313 libavformat/aviobuf.c flush_buffer(s); s 315 libavformat/aviobuf.c if (!s->seek) s 317 libavformat/aviobuf.c if ((res = s->seek(s->opaque, offset, SEEK_SET)) < 0) s 319 libavformat/aviobuf.c s->seek_count ++; s 320 libavformat/aviobuf.c if (!s->write_flag) s 321 libavformat/aviobuf.c s->buf_end = s->buffer; s 322 libavformat/aviobuf.c s->buf_ptr = s->buf_ptr_max = s->buffer; s 323 libavformat/aviobuf.c s->pos = offset; s 325 libavformat/aviobuf.c s->eof_reached = 0; s 329 libavformat/aviobuf.c int64_t avio_skip(AVIOContext *s, int64_t offset) s 331 libavformat/aviobuf.c return avio_seek(s, offset, SEEK_CUR); s 334 libavformat/aviobuf.c int64_t avio_size(AVIOContext *s) s 338 libavformat/aviobuf.c if (!s) s 341 libavformat/aviobuf.c if (s->written) s 342 libavformat/aviobuf.c return s->written; s 344 libavformat/aviobuf.c if (!s->seek) s 346 libavformat/aviobuf.c size = s->seek(s->opaque, 0, AVSEEK_SIZE); s 348 libavformat/aviobuf.c if ((size = s->seek(s->opaque, -1, SEEK_END)) < 0) s 351 libavformat/aviobuf.c s->seek(s->opaque, s->pos, SEEK_SET); s 356 libavformat/aviobuf.c int avio_feof(AVIOContext *s) s 358 libavformat/aviobuf.c if(!s) s 360 libavformat/aviobuf.c if(s->eof_reached){ s 361 libavformat/aviobuf.c s->eof_reached=0; s 362 libavformat/aviobuf.c fill_buffer(s); s 364 libavformat/aviobuf.c return s->eof_reached; s 367 libavformat/aviobuf.c void avio_wl32(AVIOContext *s, unsigned int val) s 369 libavformat/aviobuf.c avio_w8(s, (uint8_t) val ); s 370 libavformat/aviobuf.c avio_w8(s, (uint8_t)(val >> 8 )); s 371 libavformat/aviobuf.c avio_w8(s, (uint8_t)(val >> 16)); s 372 libavformat/aviobuf.c avio_w8(s, val >> 24 ); s 375 libavformat/aviobuf.c void avio_wb32(AVIOContext *s, unsigned int val) s 377 libavformat/aviobuf.c avio_w8(s, val >> 24 ); s 378 libavformat/aviobuf.c avio_w8(s, (uint8_t)(val >> 16)); s 379 libavformat/aviobuf.c avio_w8(s, (uint8_t)(val >> 8 )); s 380 libavformat/aviobuf.c avio_w8(s, (uint8_t) val ); s 383 libavformat/aviobuf.c int avio_put_str(AVIOContext *s, const char *str) s 388 libavformat/aviobuf.c avio_write(s, (const unsigned char *) str, len); s 390 libavformat/aviobuf.c avio_w8(s, 0); s 394 libavformat/aviobuf.c static inline int put_str16(AVIOContext *s, const char *str, const int be) s 405 libavformat/aviobuf.c PUT_UTF16(ch, tmp, be ? avio_wb16(s, tmp) : avio_wl16(s, tmp); s 409 libavformat/aviobuf.c av_log(s, AV_LOG_ERROR, "Invalid UTF8 sequence in avio_put_str16%s\n", be ? "be" : "le"); s 415 libavformat/aviobuf.c avio_wb16(s, 0); s 417 libavformat/aviobuf.c avio_wl16(s, 0); s 425 libavformat/aviobuf.c int avio_put_str16 ## type(AVIOContext *s, const char *str) \ s 427 libavformat/aviobuf.c return put_str16(s, str, big_endian); \ s 435 libavformat/aviobuf.c void avio_wl64(AVIOContext *s, uint64_t val) s 437 libavformat/aviobuf.c avio_wl32(s, (uint32_t)(val & 0xffffffff)); s 438 libavformat/aviobuf.c avio_wl32(s, (uint32_t)(val >> 32)); s 441 libavformat/aviobuf.c void avio_wb64(AVIOContext *s, uint64_t val) s 443 libavformat/aviobuf.c avio_wb32(s, (uint32_t)(val >> 32)); s 444 libavformat/aviobuf.c avio_wb32(s, (uint32_t)(val & 0xffffffff)); s 447 libavformat/aviobuf.c void avio_wl16(AVIOContext *s, unsigned int val) s 449 libavformat/aviobuf.c avio_w8(s, (uint8_t)val); s 450 libavformat/aviobuf.c avio_w8(s, (int)val >> 8); s 453 libavformat/aviobuf.c void avio_wb16(AVIOContext *s, unsigned int val) s 455 libavformat/aviobuf.c avio_w8(s, (int)val >> 8); s 456 libavformat/aviobuf.c avio_w8(s, (uint8_t)val); s 459 libavformat/aviobuf.c void avio_wl24(AVIOContext *s, unsigned int val) s 461 libavformat/aviobuf.c avio_wl16(s, val & 0xffff); s 462 libavformat/aviobuf.c avio_w8(s, (int)val >> 16); s 465 libavformat/aviobuf.c void avio_wb24(AVIOContext *s, unsigned int val) s 467 libavformat/aviobuf.c avio_wb16(s, (int)val >> 8); s 468 libavformat/aviobuf.c avio_w8(s, (uint8_t)val); s 471 libavformat/aviobuf.c void avio_write_marker(AVIOContext *s, int64_t time, enum AVIODataMarkerType type) s 474 libavformat/aviobuf.c if (s->buf_ptr - s->buffer >= s->min_packet_size) s 475 libavformat/aviobuf.c avio_flush(s); s 478 libavformat/aviobuf.c if (!s->write_data_type) s 481 libavformat/aviobuf.c if (type == AVIO_DATA_MARKER_BOUNDARY_POINT && s->ignore_boundary_point) s 486 libavformat/aviobuf.c (s->current_type != AVIO_DATA_MARKER_HEADER && s 487 libavformat/aviobuf.c s->current_type != AVIO_DATA_MARKER_TRAILER)) s 495 libavformat/aviobuf.c if (type == s->current_type) s 502 libavformat/aviobuf.c avio_flush(s); s 503 libavformat/aviobuf.c s->current_type = type; s 504 libavformat/aviobuf.c s->last_time = time; s 507 libavformat/aviobuf.c static int read_packet_wrapper(AVIOContext *s, uint8_t *buf, int size) s 511 libavformat/aviobuf.c if (!s->read_packet) s 513 libavformat/aviobuf.c ret = s->read_packet(s->opaque, buf, size); s 515 libavformat/aviobuf.c if (!ret && !s->max_packet_size) { s 520 libavformat/aviobuf.c av_assert2(ret || s->max_packet_size); s 527 libavformat/aviobuf.c static void fill_buffer(AVIOContext *s) s 529 libavformat/aviobuf.c int max_buffer_size = s->max_packet_size ? s 530 libavformat/aviobuf.c s->max_packet_size : IO_BUFFER_SIZE; s 531 libavformat/aviobuf.c uint8_t *dst = s->buf_end - s->buffer + max_buffer_size < s->buffer_size ? s 532 libavformat/aviobuf.c s->buf_end : s->buffer; s 533 libavformat/aviobuf.c int len = s->buffer_size - (dst - s->buffer); s 536 libavformat/aviobuf.c if (!s->read_packet && s->buf_ptr >= s->buf_end) s 537 libavformat/aviobuf.c s->eof_reached = 1; s 540 libavformat/aviobuf.c if (s->eof_reached) s 543 libavformat/aviobuf.c if (s->update_checksum && dst == s->buffer) { s 544 libavformat/aviobuf.c if (s->buf_end > s->checksum_ptr) s 545 libavformat/aviobuf.c s->checksum = s->update_checksum(s->checksum, s->checksum_ptr, s 546 libavformat/aviobuf.c s->buf_end - s->checksum_ptr); s 547 libavformat/aviobuf.c s->checksum_ptr = s->buffer; s 551 libavformat/aviobuf.c if (s->read_packet && s->orig_buffer_size && s->buffer_size > s->orig_buffer_size && len >= s->orig_buffer_size) { s 552 libavformat/aviobuf.c if (dst == s->buffer && s->buf_ptr != dst) { s 553 libavformat/aviobuf.c int ret = ffio_set_buf_size(s, s->orig_buffer_size); s 555 libavformat/aviobuf.c av_log(s, AV_LOG_WARNING, "Failed to decrease buffer size\n"); s 557 libavformat/aviobuf.c s->checksum_ptr = dst = s->buffer; s 559 libavformat/aviobuf.c len = s->orig_buffer_size; s 562 libavformat/aviobuf.c len = read_packet_wrapper(s, dst, len); s 566 libavformat/aviobuf.c s->eof_reached = 1; s 568 libavformat/aviobuf.c s->eof_reached = 1; s 569 libavformat/aviobuf.c s->error= len; s 571 libavformat/aviobuf.c s->pos += len; s 572 libavformat/aviobuf.c s->buf_ptr = dst; s 573 libavformat/aviobuf.c s->buf_end = dst + len; s 574 libavformat/aviobuf.c s->bytes_read += len; s 596 libavformat/aviobuf.c unsigned long ffio_get_checksum(AVIOContext *s) s 598 libavformat/aviobuf.c s->checksum = s->update_checksum(s->checksum, s->checksum_ptr, s 599 libavformat/aviobuf.c s->buf_ptr - s->checksum_ptr); s 600 libavformat/aviobuf.c s->update_checksum = NULL; s 601 libavformat/aviobuf.c return s->checksum; s 604 libavformat/aviobuf.c void ffio_init_checksum(AVIOContext *s, s 608 libavformat/aviobuf.c s->update_checksum = update_checksum; s 609 libavformat/aviobuf.c if (s->update_checksum) { s 610 libavformat/aviobuf.c s->checksum = checksum; s 611 libavformat/aviobuf.c s->checksum_ptr = s->buf_ptr; s 616 libavformat/aviobuf.c int avio_r8(AVIOContext *s) s 618 libavformat/aviobuf.c if (s->buf_ptr >= s->buf_end) s 619 libavformat/aviobuf.c fill_buffer(s); s 620 libavformat/aviobuf.c if (s->buf_ptr < s->buf_end) s 621 libavformat/aviobuf.c return *s->buf_ptr++; s 625 libavformat/aviobuf.c int avio_read(AVIOContext *s, unsigned char *buf, int size) s 631 libavformat/aviobuf.c len = FFMIN(s->buf_end - s->buf_ptr, size); s 632 libavformat/aviobuf.c if (len == 0 || s->write_flag) { s 633 libavformat/aviobuf.c if((s->direct || size > s->buffer_size) && !s->update_checksum) { s 635 libavformat/aviobuf.c len = read_packet_wrapper(s, buf, size); s 639 libavformat/aviobuf.c s->eof_reached = 1; s 642 libavformat/aviobuf.c s->eof_reached = 1; s 643 libavformat/aviobuf.c s->error= len; s 646 libavformat/aviobuf.c s->pos += len; s 647 libavformat/aviobuf.c s->bytes_read += len; s 651 libavformat/aviobuf.c s->buf_ptr = s->buffer; s 652 libavformat/aviobuf.c s->buf_end = s->buffer/* + len*/; s 655 libavformat/aviobuf.c fill_buffer(s); s 656 libavformat/aviobuf.c len = s->buf_end - s->buf_ptr; s 661 libavformat/aviobuf.c memcpy(buf, s->buf_ptr, len); s 663 libavformat/aviobuf.c s->buf_ptr += len; s 668 libavformat/aviobuf.c if (s->error) return s->error; s 669 libavformat/aviobuf.c if (avio_feof(s)) return AVERROR_EOF; s 674 libavformat/aviobuf.c int ffio_read_size(AVIOContext *s, unsigned char *buf, int size) s 676 libavformat/aviobuf.c int ret = avio_read(s, buf, size); s 682 libavformat/aviobuf.c int ffio_read_indirect(AVIOContext *s, unsigned char *buf, int size, const unsigned char **data) s 684 libavformat/aviobuf.c if (s->buf_end - s->buf_ptr >= size && !s->write_flag) { s 685 libavformat/aviobuf.c *data = s->buf_ptr; s 686 libavformat/aviobuf.c s->buf_ptr += size; s 690 libavformat/aviobuf.c return avio_read(s, buf, size); s 694 libavformat/aviobuf.c int avio_read_partial(AVIOContext *s, unsigned char *buf, int size) s 701 libavformat/aviobuf.c if (s->read_packet && s->write_flag) { s 702 libavformat/aviobuf.c len = read_packet_wrapper(s, buf, size); s 704 libavformat/aviobuf.c s->pos += len; s 708 libavformat/aviobuf.c len = s->buf_end - s->buf_ptr; s 716 libavformat/aviobuf.c s->buf_end = s->buf_ptr = s->buffer; s 717 libavformat/aviobuf.c fill_buffer(s); s 718 libavformat/aviobuf.c len = s->buf_end - s->buf_ptr; s 722 libavformat/aviobuf.c memcpy(buf, s->buf_ptr, len); s 723 libavformat/aviobuf.c s->buf_ptr += len; s 725 libavformat/aviobuf.c if (s->error) return s->error; s 726 libavformat/aviobuf.c if (avio_feof(s)) return AVERROR_EOF; s 731 libavformat/aviobuf.c unsigned int avio_rl16(AVIOContext *s) s 734 libavformat/aviobuf.c val = avio_r8(s); s 735 libavformat/aviobuf.c val |= avio_r8(s) << 8; s 739 libavformat/aviobuf.c unsigned int avio_rl24(AVIOContext *s) s 742 libavformat/aviobuf.c val = avio_rl16(s); s 743 libavformat/aviobuf.c val |= avio_r8(s) << 16; s 747 libavformat/aviobuf.c unsigned int avio_rl32(AVIOContext *s) s 750 libavformat/aviobuf.c val = avio_rl16(s); s 751 libavformat/aviobuf.c val |= avio_rl16(s) << 16; s 755 libavformat/aviobuf.c uint64_t avio_rl64(AVIOContext *s) s 758 libavformat/aviobuf.c val = (uint64_t)avio_rl32(s); s 759 libavformat/aviobuf.c val |= (uint64_t)avio_rl32(s) << 32; s 763 libavformat/aviobuf.c unsigned int avio_rb16(AVIOContext *s) s 766 libavformat/aviobuf.c val = avio_r8(s) << 8; s 767 libavformat/aviobuf.c val |= avio_r8(s); s 771 libavformat/aviobuf.c unsigned int avio_rb24(AVIOContext *s) s 774 libavformat/aviobuf.c val = avio_rb16(s) << 8; s 775 libavformat/aviobuf.c val |= avio_r8(s); s 778 libavformat/aviobuf.c unsigned int avio_rb32(AVIOContext *s) s 781 libavformat/aviobuf.c val = avio_rb16(s) << 16; s 782 libavformat/aviobuf.c val |= avio_rb16(s); s 786 libavformat/aviobuf.c int ff_get_line(AVIOContext *s, char *buf, int maxlen) s 792 libavformat/aviobuf.c c = avio_r8(s); s 796 libavformat/aviobuf.c if (c == '\r' && avio_r8(s) != '\n' && !avio_feof(s)) s 797 libavformat/aviobuf.c avio_skip(s, -1); s 803 libavformat/aviobuf.c int ff_get_chomp_line(AVIOContext *s, char *buf, int maxlen) s 805 libavformat/aviobuf.c int len = ff_get_line(s, buf, maxlen); s 811 libavformat/aviobuf.c int64_t ff_read_line_to_bprint(AVIOContext *s, AVBPrint *bp) s 821 libavformat/aviobuf.c c = avio_r8(s); s 830 libavformat/aviobuf.c if (c == '\r' && avio_r8(s) != '\n' && !avio_feof(s)) s 831 libavformat/aviobuf.c avio_skip(s, -1); s 833 libavformat/aviobuf.c if (!c && s->error) s 834 libavformat/aviobuf.c return s->error; s 836 libavformat/aviobuf.c if (!c && !read && avio_feof(s)) s 842 libavformat/aviobuf.c int64_t ff_read_line_to_bprint_overwrite(AVIOContext *s, AVBPrint *bp) s 847 libavformat/aviobuf.c ret = ff_read_line_to_bprint(s, bp); s 857 libavformat/aviobuf.c int avio_get_str(AVIOContext *s, int maxlen, char *buf, int buflen) s 866 libavformat/aviobuf.c if (!(buf[i] = avio_r8(s))) s 870 libavformat/aviobuf.c if (!avio_r8(s)) s 899 libavformat/aviobuf.c uint64_t avio_rb64(AVIOContext *s) s 902 libavformat/aviobuf.c val = (uint64_t)avio_rb32(s) << 32; s 903 libavformat/aviobuf.c val |= (uint64_t)avio_rb32(s); s 918 libavformat/aviobuf.c int ffio_fdopen(AVIOContext **s, URLContext *h) s 933 libavformat/aviobuf.c *s = avio_alloc_context(buffer, buffer_size, h->flags & AVIO_FLAG_WRITE, h, s 937 libavformat/aviobuf.c if (!*s) s 940 libavformat/aviobuf.c (*s)->protocol_whitelist = av_strdup(h->protocol_whitelist); s 941 libavformat/aviobuf.c if (!(*s)->protocol_whitelist && h->protocol_whitelist) { s 942 libavformat/aviobuf.c avio_closep(s); s 945 libavformat/aviobuf.c (*s)->protocol_blacklist = av_strdup(h->protocol_blacklist); s 946 libavformat/aviobuf.c if (!(*s)->protocol_blacklist && h->protocol_blacklist) { s 947 libavformat/aviobuf.c avio_closep(s); s 950 libavformat/aviobuf.c (*s)->direct = h->flags & AVIO_FLAG_DIRECT; s 952 libavformat/aviobuf.c (*s)->seekable = h->is_streamed ? 0 : AVIO_SEEKABLE_NORMAL; s 953 libavformat/aviobuf.c (*s)->max_packet_size = max_packet_size; s 954 libavformat/aviobuf.c (*s)->min_packet_size = h->min_packet_size; s 956 libavformat/aviobuf.c (*s)->read_pause = (int (*)(void *, int))h->prot->url_read_pause; s 957 libavformat/aviobuf.c (*s)->read_seek = s 961 libavformat/aviobuf.c (*s)->seekable |= AVIO_SEEKABLE_TIME; s 963 libavformat/aviobuf.c (*s)->short_seek_get = (int (*)(void *))ffurl_get_short_seek; s 964 libavformat/aviobuf.c (*s)->av_class = &ff_avio_class; s 971 libavformat/aviobuf.c URLContext* ffio_geturlcontext(AVIOContext *s) s 973 libavformat/aviobuf.c if (!s) s 976 libavformat/aviobuf.c if (s->opaque && s->read_packet == (int (*)(void *, uint8_t *, int))ffurl_read) s 977 libavformat/aviobuf.c return s->opaque; s 982 libavformat/aviobuf.c int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size) s 985 libavformat/aviobuf.c int max_buffer_size = s->max_packet_size ? s 986 libavformat/aviobuf.c s->max_packet_size : IO_BUFFER_SIZE; s 987 libavformat/aviobuf.c int filled = s->buf_end - s->buffer; s 988 libavformat/aviobuf.c ptrdiff_t checksum_ptr_offset = s->checksum_ptr ? s->checksum_ptr - s->buffer : -1; s 990 libavformat/aviobuf.c buf_size += s->buf_ptr - s->buffer + max_buffer_size; s 992 libavformat/aviobuf.c if (buf_size < filled || s->seekable || !s->read_packet) s 994 libavformat/aviobuf.c av_assert0(!s->write_flag); s 1000 libavformat/aviobuf.c memcpy(buffer, s->buffer, filled); s 1001 libavformat/aviobuf.c av_free(s->buffer); s 1002 libavformat/aviobuf.c s->buf_ptr = buffer + (s->buf_ptr - s->buffer); s 1003 libavformat/aviobuf.c s->buf_end = buffer + (s->buf_end - s->buffer); s 1004 libavformat/aviobuf.c s->buffer = buffer; s 1005 libavformat/aviobuf.c s->buffer_size = buf_size; s 1007 libavformat/aviobuf.c s->checksum_ptr = s->buffer + checksum_ptr_offset; s 1011 libavformat/aviobuf.c int ffio_set_buf_size(AVIOContext *s, int buf_size) s 1018 libavformat/aviobuf.c av_free(s->buffer); s 1019 libavformat/aviobuf.c s->buffer = buffer; s 1020 libavformat/aviobuf.c s->orig_buffer_size = s 1021 libavformat/aviobuf.c s->buffer_size = buf_size; s 1022 libavformat/aviobuf.c s->buf_ptr = s->buf_ptr_max = buffer; s 1023 libavformat/aviobuf.c url_resetbuf(s, s->write_flag ? AVIO_FLAG_WRITE : AVIO_FLAG_READ); s 1027 libavformat/aviobuf.c int ffio_realloc_buf(AVIOContext *s, int buf_size) s 1032 libavformat/aviobuf.c if (!s->buffer_size) s 1033 libavformat/aviobuf.c return ffio_set_buf_size(s, buf_size); s 1035 libavformat/aviobuf.c if (buf_size <= s->buffer_size) s 1042 libavformat/aviobuf.c data_size = s->write_flag ? (s->buf_ptr - s->buffer) : (s->buf_end - s->buf_ptr); s 1044 libavformat/aviobuf.c memcpy(buffer, s->write_flag ? s->buffer : s->buf_ptr, data_size); s 1045 libavformat/aviobuf.c av_free(s->buffer); s 1046 libavformat/aviobuf.c s->buffer = buffer; s 1047 libavformat/aviobuf.c s->orig_buffer_size = buf_size; s 1048 libavformat/aviobuf.c s->buffer_size = buf_size; s 1049 libavformat/aviobuf.c s->buf_ptr = s->write_flag ? (s->buffer + data_size) : s->buffer; s 1050 libavformat/aviobuf.c if (s->write_flag) s 1051 libavformat/aviobuf.c s->buf_ptr_max = s->buffer + data_size; s 1053 libavformat/aviobuf.c s->buf_end = s->write_flag ? (s->buffer + s->buffer_size) : (s->buf_ptr + data_size); s 1058 libavformat/aviobuf.c static int url_resetbuf(AVIOContext *s, int flags) s 1063 libavformat/aviobuf.c s->buf_end = s->buffer + s->buffer_size; s 1064 libavformat/aviobuf.c s->write_flag = 1; s 1066 libavformat/aviobuf.c s->buf_end = s->buffer; s 1067 libavformat/aviobuf.c s->write_flag = 0; s 1072 libavformat/aviobuf.c int ffio_rewind_with_probe_data(AVIOContext *s, unsigned char **bufp, int buf_size) s 1079 libavformat/aviobuf.c if (s->write_flag) { s 1084 libavformat/aviobuf.c buffer_size = s->buf_end - s->buffer; s 1087 libavformat/aviobuf.c if ((buffer_start = s->pos - buffer_size) > buf_size) { s 1095 libavformat/aviobuf.c alloc_size = FFMAX(s->buffer_size, new_size); s 1101 libavformat/aviobuf.c memcpy(buf + buf_size, s->buffer + overlap, buffer_size - overlap); s 1105 libavformat/aviobuf.c av_free(s->buffer); s 1106 libavformat/aviobuf.c s->buf_ptr = s->buffer = buf; s 1107 libavformat/aviobuf.c s->buffer_size = alloc_size; s 1108 libavformat/aviobuf.c s->pos = buf_size; s 1109 libavformat/aviobuf.c s->buf_end = s->buf_ptr + buf_size; s 1110 libavformat/aviobuf.c s->eof_reached = 0; s 1115 libavformat/aviobuf.c int avio_open(AVIOContext **s, const char *filename, int flags) s 1117 libavformat/aviobuf.c return avio_open2(s, filename, flags, NULL, NULL); s 1120 libavformat/aviobuf.c int ffio_open_whitelist(AVIOContext **s, const char *filename, int flags, s 1128 libavformat/aviobuf.c *s = NULL; s 1133 libavformat/aviobuf.c err = ffio_fdopen(s, h); s 1141 libavformat/aviobuf.c int avio_open2(AVIOContext **s, const char *filename, int flags, s 1144 libavformat/aviobuf.c return ffio_open_whitelist(s, filename, flags, int_cb, options, NULL, NULL); s 1147 libavformat/aviobuf.c int avio_close(AVIOContext *s) s 1151 libavformat/aviobuf.c if (!s) s 1154 libavformat/aviobuf.c avio_flush(s); s 1155 libavformat/aviobuf.c h = s->opaque; s 1156 libavformat/aviobuf.c s->opaque = NULL; s 1158 libavformat/aviobuf.c av_freep(&s->buffer); s 1159 libavformat/aviobuf.c if (s->write_flag) s 1160 libavformat/aviobuf.c av_log(s, AV_LOG_VERBOSE, "Statistics: %d seeks, %d writeouts\n", s->seek_count, s->writeout_count); s 1162 libavformat/aviobuf.c av_log(s, AV_LOG_VERBOSE, "Statistics: %"PRId64" bytes read, %d seeks\n", s->bytes_read, s->seek_count); s 1163 libavformat/aviobuf.c av_opt_free(s); s 1165 libavformat/aviobuf.c avio_context_free(&s); s 1170 libavformat/aviobuf.c int avio_closep(AVIOContext **s) s 1172 libavformat/aviobuf.c int ret = avio_close(*s); s 1173 libavformat/aviobuf.c *s = NULL; s 1177 libavformat/aviobuf.c int avio_printf(AVIOContext *s, const char *fmt, ...) s 1188 libavformat/aviobuf.c s->error = AVERROR(ENOMEM); s 1191 libavformat/aviobuf.c avio_write(s, bp.str, bp.len); s 1196 libavformat/aviobuf.c void avio_print_string_array(AVIOContext *s, const char *strings[]) s 1199 libavformat/aviobuf.c avio_write(s, (const unsigned char *)*strings, strlen(*strings)); s 1202 libavformat/aviobuf.c int avio_pause(AVIOContext *s, int pause) s 1204 libavformat/aviobuf.c if (!s->read_pause) s 1206 libavformat/aviobuf.c return s->read_pause(s->opaque, pause); s 1209 libavformat/aviobuf.c int64_t avio_seek_time(AVIOContext *s, int stream_index, s 1213 libavformat/aviobuf.c if (!s->read_seek) s 1215 libavformat/aviobuf.c ret = s->read_seek(s->opaque, stream_index, timestamp, flags); s 1218 libavformat/aviobuf.c s->buf_ptr = s->buf_end; // Flush buffer s 1219 libavformat/aviobuf.c pos = s->seek(s->opaque, 0, SEEK_CUR); s 1221 libavformat/aviobuf.c s->pos = pos; s 1246 libavformat/aviobuf.c int avio_accept(AVIOContext *s, AVIOContext **c) s 1249 libavformat/aviobuf.c URLContext *sc = s->opaque; s 1334 libavformat/aviobuf.c static int url_open_dyn_buf_internal(AVIOContext **s, int max_packet_size) s 1345 libavformat/aviobuf.c *s = avio_alloc_context(d->io_buffer, d->io_buffer_size, 1, d, NULL, s 1348 libavformat/aviobuf.c if(!*s) { s 1352 libavformat/aviobuf.c (*s)->max_packet_size = max_packet_size; s 1356 libavformat/aviobuf.c int avio_open_dyn_buf(AVIOContext **s) s 1358 libavformat/aviobuf.c return url_open_dyn_buf_internal(s, 0); s 1361 libavformat/aviobuf.c int ffio_open_dyn_packet_buf(AVIOContext **s, int max_packet_size) s 1365 libavformat/aviobuf.c return url_open_dyn_buf_internal(s, max_packet_size); s 1368 libavformat/aviobuf.c int avio_get_dyn_buf(AVIOContext *s, uint8_t **pbuffer) s 1372 libavformat/aviobuf.c if (!s) { s 1376 libavformat/aviobuf.c d = s->opaque; s 1378 libavformat/aviobuf.c if (!s->error && !d->size) { s 1380 libavformat/aviobuf.c return FFMAX(s->buf_ptr, s->buf_ptr_max) - s->buffer; s 1383 libavformat/aviobuf.c avio_flush(s); s 1390 libavformat/aviobuf.c void ffio_reset_dyn_buf(AVIOContext *s) s 1392 libavformat/aviobuf.c DynBuffer *d = s->opaque; s 1393 libavformat/aviobuf.c int max_packet_size = s->max_packet_size; s 1395 libavformat/aviobuf.c ffio_init_context(s, d->io_buffer, d->io_buffer_size, 1, d, NULL, s 1396 libavformat/aviobuf.c s->write_packet, s->seek); s 1397 libavformat/aviobuf.c s->max_packet_size = max_packet_size; s 1401 libavformat/aviobuf.c int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer) s 1408 libavformat/aviobuf.c if (!s) { s 1414 libavformat/aviobuf.c if (!s->max_packet_size) { s 1415 libavformat/aviobuf.c avio_write(s, padbuf, sizeof(padbuf)); s 1419 libavformat/aviobuf.c avio_flush(s); s 1421 libavformat/aviobuf.c d = s->opaque; s 1426 libavformat/aviobuf.c avio_context_free(&s); s 1431 libavformat/aviobuf.c void ffio_free_dyn_buf(AVIOContext **s) s 1435 libavformat/aviobuf.c if (!*s) s 1438 libavformat/aviobuf.c d = (*s)->opaque; s 1441 libavformat/aviobuf.c avio_context_free(s); s 1454 libavformat/aviobuf.c int ffio_open_null_buf(AVIOContext **s) s 1456 libavformat/aviobuf.c int ret = url_open_dyn_buf_internal(s, 0); s 1458 libavformat/aviobuf.c AVIOContext *pb = *s; s 1464 libavformat/aviobuf.c int ffio_close_null_buf(AVIOContext *s) s 1466 libavformat/aviobuf.c DynBuffer *d = s->opaque; s 1469 libavformat/aviobuf.c avio_flush(s); s 1474 libavformat/aviobuf.c avio_context_free(&s); s 160 libavformat/avisynth.c static av_cold int avisynth_context_create(AVFormatContext *s) s 162 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 173 libavformat/avisynth.c av_log(s, AV_LOG_ERROR, "%s\n", error); s 227 libavformat/avisynth.c static int avisynth_create_stream_video(AVFormatContext *s, AVStream *st) s 229 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 448 libavformat/avisynth.c av_log(s, AV_LOG_ERROR, s 482 libavformat/avisynth.c static int avisynth_create_stream_audio(AVFormatContext *s, AVStream *st) s 484 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 509 libavformat/avisynth.c av_log(s, AV_LOG_ERROR, s 517 libavformat/avisynth.c static int avisynth_create_stream(AVFormatContext *s) s 519 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 525 libavformat/avisynth.c st = avformat_new_stream(s, NULL); s 529 libavformat/avisynth.c if (ret = avisynth_create_stream_video(s, st)) s 533 libavformat/avisynth.c st = avformat_new_stream(s, NULL); s 537 libavformat/avisynth.c if (ret = avisynth_create_stream_audio(s, st)) s 543 libavformat/avisynth.c static int avisynth_open_file(AVFormatContext *s) s 545 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 553 libavformat/avisynth.c if (ret = avisynth_context_create(s)) s 558 libavformat/avisynth.c MultiByteToWideChar(CP_UTF8, 0, s->url, -1, filename_wc, MAX_PATH * 4); s 563 libavformat/avisynth.c arg = avs_new_value_string(s->url); s 567 libavformat/avisynth.c av_log(s, AV_LOG_ERROR, "%s\n", avs_as_error(val)); s 572 libavformat/avisynth.c av_log(s, AV_LOG_ERROR, "AviSynth script did not return a clip\n"); s 585 libavformat/avisynth.c av_log(s, AV_LOG_ERROR, s 594 libavformat/avisynth.c if (ret = avisynth_create_stream(s)) s 604 libavformat/avisynth.c static void avisynth_next_stream(AVFormatContext *s, AVStream **st, s 607 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 610 libavformat/avisynth.c avs->curr_stream %= s->nb_streams; s 612 libavformat/avisynth.c *st = s->streams[avs->curr_stream]; s 622 libavformat/avisynth.c static int avisynth_read_packet_video(AVFormatContext *s, AVPacket *pkt, s 625 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 674 libavformat/avisynth.c av_log(s, AV_LOG_ERROR, "%s\n", error); s 711 libavformat/avisynth.c static int avisynth_read_packet_audio(AVFormatContext *s, AVPacket *pkt, s 714 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 770 libavformat/avisynth.c av_log(s, AV_LOG_ERROR, "%s\n", error); s 778 libavformat/avisynth.c static av_cold int avisynth_read_header(AVFormatContext *s) s 786 libavformat/avisynth.c if (ret = avisynth_open_file(s)) { s 795 libavformat/avisynth.c static int avisynth_read_packet(AVFormatContext *s, AVPacket *pkt) s 797 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 807 libavformat/avisynth.c avisynth_next_stream(s, &st, pkt, &discard); s 809 libavformat/avisynth.c ret = avisynth_read_packet_video(s, pkt, discard); s 811 libavformat/avisynth.c avisynth_next_stream(s, &st, pkt, &discard); s 812 libavformat/avisynth.c return avisynth_read_packet_audio(s, pkt, discard); s 815 libavformat/avisynth.c ret = avisynth_read_packet_audio(s, pkt, discard); s 817 libavformat/avisynth.c avisynth_next_stream(s, &st, pkt, &discard); s 818 libavformat/avisynth.c return avisynth_read_packet_video(s, pkt, discard); s 825 libavformat/avisynth.c static av_cold int avisynth_read_close(AVFormatContext *s) s 830 libavformat/avisynth.c avisynth_context_destroy(s->priv_data); s 835 libavformat/avisynth.c static int avisynth_read_seek(AVFormatContext *s, int stream_index, s 838 libavformat/avisynth.c AviSynthContext *avs = s->priv_data; s 849 libavformat/avisynth.c st = s->streams[stream_index]; s 40 libavformat/avr.c static int avr_read_header(AVFormatContext *s) s 45 libavformat/avr.c st = avformat_new_stream(s, NULL); s 51 libavformat/avr.c avio_skip(s->pb, 4); // magic s 52 libavformat/avr.c avio_skip(s->pb, 8); // sample_name s 54 libavformat/avr.c chan = avio_rb16(s->pb); s 60 libavformat/avr.c avpriv_request_sample(s, "chan %d", chan); s 64 libavformat/avr.c st->codecpar->bits_per_coded_sample = bps = avio_rb16(s->pb); s 66 libavformat/avr.c sign = avio_rb16(s->pb); s 68 libavformat/avr.c avio_skip(s->pb, 2); // loop s 69 libavformat/avr.c avio_skip(s->pb, 2); // midi s 70 libavformat/avr.c avio_skip(s->pb, 1); // replay speed s 72 libavformat/avr.c st->codecpar->sample_rate = avio_rb24(s->pb); s 73 libavformat/avr.c avio_skip(s->pb, 4 * 3); s 74 libavformat/avr.c avio_skip(s->pb, 2 * 3); s 75 libavformat/avr.c avio_skip(s->pb, 20); s 76 libavformat/avr.c avio_skip(s->pb, 64); s 80 libavformat/avr.c avpriv_request_sample(s, "Bps %d and sign %d", bps, sign); s 66 libavformat/avs.c static int avs_read_header(AVFormatContext * s) s 68 libavformat/avs.c AvsFormat *avs = s->priv_data; s 70 libavformat/avs.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 72 libavformat/avs.c avio_skip(s->pb, 4); s 73 libavformat/avs.c avs->width = avio_rl16(s->pb); s 74 libavformat/avs.c avs->height = avio_rl16(s->pb); s 75 libavformat/avs.c avs->bits_per_sample = avio_rl16(s->pb); s 76 libavformat/avs.c avs->fps = avio_rl16(s->pb); s 77 libavformat/avs.c avs->nb_frames = avio_rl32(s->pb); s 84 libavformat/avs.c av_log(s, AV_LOG_ERROR, "This avs pretend to be %dx%d " s 92 libavformat/avs.c avs_read_video_packet(AVFormatContext * s, AVPacket * pkt, s 96 libavformat/avs.c AvsFormat *avs = s->priv_data; s 115 libavformat/avs.c ret = avio_read(s->pb, pkt->data + palette_size + 4, size - 4) + 4; s 128 libavformat/avs.c static int avs_read_audio_packet(AVFormatContext * s, AVPacket * pkt) s 130 libavformat/avs.c AvsFormat *avs = s->priv_data; s 133 libavformat/avs.c size = avio_tell(s->pb); s 134 libavformat/avs.c ret = ff_voc_get_packet(s, pkt, avs->st_audio, avs->remaining_audio_size); s 135 libavformat/avs.c size = avio_tell(s->pb) - size; s 149 libavformat/avs.c static int avs_read_packet(AVFormatContext * s, AVPacket * pkt) s 151 libavformat/avs.c AvsFormat *avs = s->priv_data; s 159 libavformat/avs.c if (avs_read_audio_packet(s, pkt) > 0) s 164 libavformat/avs.c if (!avio_rl16(s->pb)) /* found EOF */ s 166 libavformat/avs.c avs->remaining_frame_size = avio_rl16(s->pb) - 4; s 170 libavformat/avs.c sub_type = avio_r8(s->pb); s 171 libavformat/avs.c type = avio_r8(s->pb); s 172 libavformat/avs.c size = avio_rl16(s->pb); s 181 libavformat/avs.c ret = avio_read(s->pb, palette, size - 4); s 189 libavformat/avs.c avs->st_video = avformat_new_stream(s, NULL); s 203 libavformat/avs.c return avs_read_video_packet(s, pkt, type, sub_type, size, s 208 libavformat/avs.c avs->st_audio = avformat_new_stream(s, NULL); s 214 libavformat/avs.c size = avs_read_audio_packet(s, pkt); s 220 libavformat/avs.c avio_skip(s->pb, size - 4); s 71 libavformat/bethsoftvid.c static int vid_read_header(AVFormatContext *s) s 73 libavformat/bethsoftvid.c BVID_DemuxContext *vid = s->priv_data; s 74 libavformat/bethsoftvid.c AVIOContext *pb = s->pb; s 91 libavformat/bethsoftvid.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 98 libavformat/bethsoftvid.c uint8_t block_type, AVFormatContext *s) s 110 libavformat/bethsoftvid.c st = avformat_new_stream(s, NULL); s 115 libavformat/bethsoftvid.c avpriv_request_sample(s, "Using default video time base since " s 125 libavformat/bethsoftvid.c st = s->streams[vid->video_index]; s 201 libavformat/bethsoftvid.c av_log(s, AV_LOG_ERROR, "Failed to allocate palette side data\n"); s 214 libavformat/bethsoftvid.c static int vid_read_packet(AVFormatContext *s, s 217 libavformat/bethsoftvid.c BVID_DemuxContext *vid = s->priv_data; s 218 libavformat/bethsoftvid.c AVIOContext *pb = s->pb; s 230 libavformat/bethsoftvid.c av_log(s, AV_LOG_WARNING, "discarding unused palette\n"); s 237 libavformat/bethsoftvid.c return vid_read_packet(s, pkt); s 245 libavformat/bethsoftvid.c AVStream *st = avformat_new_stream(s, NULL); s 263 libavformat/bethsoftvid.c av_log(s, AV_LOG_ERROR, "incomplete audio block\n"); s 274 libavformat/bethsoftvid.c return read_frame(vid, pb, pkt, block_type, s); s 278 libavformat/bethsoftvid.c av_log(s, AV_LOG_VERBOSE, "reached terminating character but not all frames read.\n"); s 282 libavformat/bethsoftvid.c av_log(s, AV_LOG_ERROR, "unknown block (character = %c, decimal = %d, hex = %x)!!!\n", s 51 libavformat/bfi.c static int bfi_read_header(AVFormatContext * s) s 53 libavformat/bfi.c BFIContext *bfi = s->priv_data; s 54 libavformat/bfi.c AVIOContext *pb = s->pb; s 60 libavformat/bfi.c vstream = avformat_new_stream(s, NULL); s 65 libavformat/bfi.c astream = avformat_new_stream(s, NULL); s 83 libavformat/bfi.c ret = ff_get_extradata(s, vstream->codecpar, pb, 768); s 89 libavformat/bfi.c av_log(s, AV_LOG_ERROR, "Invalid sample rate %d\n", astream->codecpar->sample_rate); s 115 libavformat/bfi.c static int bfi_read_packet(AVFormatContext * s, AVPacket * pkt) s 117 libavformat/bfi.c BFIContext *bfi = s->priv_data; s 118 libavformat/bfi.c AVIOContext *pb = s->pb; s 141 libavformat/bfi.c av_log(s, AV_LOG_ERROR, "Invalid audio/video offsets or chunk size\n"); s 85 libavformat/bink.c static int read_header(AVFormatContext *s) s 87 libavformat/bink.c BinkDemuxContext *bink = s->priv_data; s 88 libavformat/bink.c AVIOContext *pb = s->pb; s 100 libavformat/bink.c vst = avformat_new_stream(s, NULL); s 112 libavformat/bink.c av_log(s, AV_LOG_ERROR, "invalid SMUSH header: BIK not found\n"); s 121 libavformat/bink.c av_log(s, AV_LOG_ERROR, "invalid header: more than 1000000 frames\n"); s 126 libavformat/bink.c av_log(s, AV_LOG_ERROR, s 139 libavformat/bink.c av_log(s, AV_LOG_ERROR, s 151 libavformat/bink.c av_log(s, AV_LOG_WARNING, "Bink 2 video is not implemented\n"); s 155 libavformat/bink.c if ((ret = ff_get_extradata(s, vst->codecpar, pb, 4)) < 0) s 161 libavformat/bink.c av_log(s, AV_LOG_ERROR, s 178 libavformat/bink.c ast = avformat_new_stream(s, NULL); s 201 libavformat/bink.c s->streams[i + 1]->id = avio_rl32(pb); s 220 libavformat/bink.c av_log(s, AV_LOG_ERROR, "invalid frame index table\n"); s 237 libavformat/bink.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 239 libavformat/bink.c BinkDemuxContext *bink = s->priv_data; s 240 libavformat/bink.c AVIOContext *pb = s->pb; s 245 libavformat/bink.c AVStream *st = s->streams[0]; // stream 0 is video stream with index s 253 libavformat/bink.c av_log(s, AV_LOG_ERROR, s 267 libavformat/bink.c av_log(s, AV_LOG_ERROR, s 285 libavformat/bink.c AV_RL32(pkt->data) / (2 * s->streams[bink->current_track]->codecpar->channels); s 306 libavformat/bink.c static int read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 308 libavformat/bink.c BinkDemuxContext *bink = s->priv_data; s 309 libavformat/bink.c AVStream *vst = s->streams[0]; s 312 libavformat/bink.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) s 316 libavformat/bink.c ret = avio_seek(s->pb, vst->index_entries[0].pos + bink->smush_size, SEEK_SET); s 51 libavformat/bintext.c static AVStream * init_stream(AVFormatContext *s) s 53 libavformat/bintext.c BinDemuxContext *bin = s->priv_data; s 54 libavformat/bintext.c AVStream *st = avformat_new_stream(s, NULL); s 176 libavformat/bintext.c static int bintext_read_header(AVFormatContext *s) s 178 libavformat/bintext.c BinDemuxContext *bin = s->priv_data; s 179 libavformat/bintext.c AVIOContext *pb = s->pb; s 181 libavformat/bintext.c AVStream *st = init_stream(s); s 194 libavformat/bintext.c if (ff_sauce_read(s, &bin->fsize, &got_width, 0) < 0) s 195 libavformat/bintext.c next_tag_read(s, &bin->fsize); s 220 libavformat/bintext.c static int xbin_read_header(AVFormatContext *s) s 222 libavformat/bintext.c BinDemuxContext *bin = s->priv_data; s 223 libavformat/bintext.c AVIOContext *pb = s->pb; s 226 libavformat/bintext.c AVStream *st = init_stream(s); s 254 libavformat/bintext.c ff_sauce_read(s, &bin->fsize, NULL, 0); s 263 libavformat/bintext.c static int adf_read_header(AVFormatContext *s) s 265 libavformat/bintext.c BinDemuxContext *bin = s->priv_data; s 266 libavformat/bintext.c AVIOContext *pb = s->pb; s 273 libavformat/bintext.c st = init_stream(s); s 295 libavformat/bintext.c ff_sauce_read(s, &bin->fsize, &got_width, 0); s 318 libavformat/bintext.c static int idf_read_header(AVFormatContext *s) s 320 libavformat/bintext.c BinDemuxContext *bin = s->priv_data; s 321 libavformat/bintext.c AVIOContext *pb = s->pb; s 328 libavformat/bintext.c st = init_stream(s); s 346 libavformat/bintext.c ff_sauce_read(s, &bin->fsize, &got_width, 0); s 354 libavformat/bintext.c static int read_packet(AVFormatContext *s, s 357 libavformat/bintext.c BinDemuxContext *bin = s->priv_data; s 360 libavformat/bintext.c if (av_get_packet(s->pb, pkt, bin->fsize) < 0) s 364 libavformat/bintext.c if (avio_feof(s->pb)) s 366 libavformat/bintext.c if (av_get_packet(s->pb, pkt, bin->chars_per_frame) < 0) s 54 libavformat/bit.c static int read_header(AVFormatContext *s) s 58 libavformat/bit.c st=avformat_new_stream(s, NULL); s 72 libavformat/bit.c static int read_packet(AVFormatContext *s, s 75 libavformat/bit.c AVIOContext *pb = s->pb; s 123 libavformat/bit.c static int write_header(AVFormatContext *s) s 125 libavformat/bit.c AVCodecParameters *par = s->streams[0]->codecpar; s 128 libavformat/bit.c av_log(s, AV_LOG_ERROR, s 139 libavformat/bit.c static int write_packet(AVFormatContext *s, AVPacket *pkt) s 141 libavformat/bit.c AVIOContext *pb = s->pb; s 42 libavformat/bmv.c static int bmv_read_header(AVFormatContext *s) s 45 libavformat/bmv.c BMVContext *c = s->priv_data; s 47 libavformat/bmv.c st = avformat_new_stream(s, 0); s 56 libavformat/bmv.c ast = avformat_new_stream(s, 0); s 71 libavformat/bmv.c static int bmv_read_packet(AVFormatContext *s, AVPacket *pkt) s 73 libavformat/bmv.c BMVContext *c = s->priv_data; s 77 libavformat/bmv.c if (s->pb->eof_reached) s 79 libavformat/bmv.c type = avio_r8(s->pb); s 84 libavformat/bmv.c c->size = avio_rl24(s->pb); s 90 libavformat/bmv.c if (avio_read(s->pb, c->packet + 1, c->size) != c->size) s 95 libavformat/bmv.c av_log(s, AV_LOG_ERROR, "Reported audio size %d is bigger than packet size (%d)\n", s 119 libavformat/bmv.c static int bmv_read_close(AVFormatContext *s) s 121 libavformat/bmv.c BMVContext *c = s->priv_data; s 44 libavformat/boadec.c static int read_header(AVFormatContext *s) s 46 libavformat/boadec.c AVStream *st = avformat_new_stream(s, NULL); s 53 libavformat/boadec.c avio_rl32(s->pb); s 54 libavformat/boadec.c avio_rl32(s->pb); s 55 libavformat/boadec.c st->codecpar->sample_rate = avio_rl32(s->pb); s 56 libavformat/boadec.c st->codecpar->channels = avio_rl32(s->pb); s 59 libavformat/boadec.c s->internal->data_offset = avio_rl32(s->pb); s 60 libavformat/boadec.c avio_r8(s->pb); s 61 libavformat/boadec.c st->codecpar->block_align = avio_rl32(s->pb); s 66 libavformat/boadec.c avio_seek(s->pb, s->internal->data_offset, SEEK_SET); s 71 libavformat/boadec.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 73 libavformat/boadec.c AVStream *st = s->streams[0]; s 75 libavformat/boadec.c return av_get_packet(s->pb, pkt, st->codecpar->block_align); s 60 libavformat/brstm.c static int read_close(AVFormatContext *s) s 62 libavformat/brstm.c BRSTMDemuxContext *b = s->priv_data; s 70 libavformat/brstm.c static av_always_inline unsigned int read16(AVFormatContext *s) s 72 libavformat/brstm.c BRSTMDemuxContext *b = s->priv_data; s 74 libavformat/brstm.c return avio_rl16(s->pb); s 76 libavformat/brstm.c return avio_rb16(s->pb); s 79 libavformat/brstm.c static av_always_inline unsigned int read32(AVFormatContext *s) s 81 libavformat/brstm.c BRSTMDemuxContext *b = s->priv_data; s 83 libavformat/brstm.c return avio_rl32(s->pb); s 85 libavformat/brstm.c return avio_rb32(s->pb); s 88 libavformat/brstm.c static int read_header(AVFormatContext *s) s 90 libavformat/brstm.c BRSTMDemuxContext *b = s->priv_data; s 97 libavformat/brstm.c int bfstm = !strcmp("bfstm", s->iformat->name); s 99 libavformat/brstm.c st = avformat_new_stream(s, NULL); s 104 libavformat/brstm.c avio_skip(s->pb, 4); s 106 libavformat/brstm.c bom = avio_rb16(s->pb); s 108 libavformat/brstm.c av_log(s, AV_LOG_ERROR, "invalid byte order: %X\n", bom); s 116 libavformat/brstm.c major = avio_r8(s->pb); s 117 libavformat/brstm.c minor = avio_r8(s->pb); s 118 libavformat/brstm.c avio_skip(s->pb, 4); // size of file s 119 libavformat/brstm.c size = read16(s); s 123 libavformat/brstm.c avio_skip(s->pb, size - 14); s 124 libavformat/brstm.c pos = avio_tell(s->pb); s 125 libavformat/brstm.c if (avio_rl32(s->pb) != MKTAG('H','E','A','D')) s 131 libavformat/brstm.c header_size = read16(s); // 6 s 133 libavformat/brstm.c avio_skip(s->pb, 4); // Unknown constant 0x00030000 s 134 libavformat/brstm.c avio_skip(s->pb, 4); // size of file s 135 libavformat/brstm.c section_count = read16(s); s 136 libavformat/brstm.c avio_skip(s->pb, 2); // padding s 137 libavformat/brstm.c for (i = 0; avio_tell(s->pb) < header_size s 140 libavformat/brstm.c uint16_t flag = read16(s); s 141 libavformat/brstm.c avio_skip(s->pb, 2); s 144 libavformat/brstm.c info_offset = read32(s); s 145 libavformat/brstm.c /*info_size =*/ read32(s); s 148 libavformat/brstm.c avio_skip(s->pb, 4); // seek offset s 149 libavformat/brstm.c avio_skip(s->pb, 4); // seek size s 152 libavformat/brstm.c start = read32(s) + 8; s 153 libavformat/brstm.c avio_skip(s->pb, 4); //data_size = read32(s); s 156 libavformat/brstm.c avio_skip(s->pb, 4); // REGN offset s 157 libavformat/brstm.c avio_skip(s->pb, 4); // REGN size s 165 libavformat/brstm.c avio_skip(s->pb, info_offset - avio_tell(s->pb)); s 166 libavformat/brstm.c pos = avio_tell(s->pb); s 167 libavformat/brstm.c if (avio_rl32(s->pb) != MKTAG('I','N','F','O')) s 171 libavformat/brstm.c size = read32(s); s 174 libavformat/brstm.c avio_skip(s->pb, 4); // unknown s 175 libavformat/brstm.c h1offset = read32(s); s 178 libavformat/brstm.c avio_skip(s->pb, 12); s 179 libavformat/brstm.c toffset = read32(s) + 16LL; s 183 libavformat/brstm.c avio_skip(s->pb, pos + h1offset + 8 - avio_tell(s->pb)); s 184 libavformat/brstm.c codec = avio_r8(s->pb); s 195 libavformat/brstm.c avpriv_request_sample(s, "codec %d", codec); s 199 libavformat/brstm.c loop = avio_r8(s->pb); // loop flag s 201 libavformat/brstm.c st->codecpar->channels = avio_r8(s->pb); s 205 libavformat/brstm.c avio_skip(s->pb, 1); // padding s 207 libavformat/brstm.c st->codecpar->sample_rate = bfstm ? read32(s) : read16(s); s 212 libavformat/brstm.c avio_skip(s->pb, 2); // padding s 215 libavformat/brstm.c if (av_dict_set_int(&s->metadata, "loop_start", s 216 libavformat/brstm.c av_rescale(read32(s), AV_TIME_BASE, s 221 libavformat/brstm.c avio_skip(s->pb, 4); s 225 libavformat/brstm.c st->duration = read32(s); s 229 libavformat/brstm.c start = read32(s); s 231 libavformat/brstm.c b->block_count = read32(s); s 233 libavformat/brstm.c av_log(s, AV_LOG_WARNING, "too many blocks: %"PRIu32"\n", b->block_count); s 237 libavformat/brstm.c b->block_size = read32(s); s 241 libavformat/brstm.c b->samples_per_block = read32(s); s 242 libavformat/brstm.c b->last_block_used_bytes = read32(s); s 243 libavformat/brstm.c b->last_block_samples = read32(s); s 244 libavformat/brstm.c b->last_block_size = read32(s); s 254 libavformat/brstm.c avio_skip(s->pb, pos + toffset - avio_tell(s->pb)); s 256 libavformat/brstm.c toffset = read32(s) + 16LL; s 258 libavformat/brstm.c toffset = toffset + read32(s) + st->codecpar->channels * 8 - 8; s 262 libavformat/brstm.c avio_skip(s->pb, pos + toffset - avio_tell(s->pb)); s 268 libavformat/brstm.c if (avio_read(s->pb, b->table + ch * 32, 32) != 32) { s 272 libavformat/brstm.c avio_skip(s->pb, bfstm ? 14 : 24); s 276 libavformat/brstm.c if (size < (avio_tell(s->pb) - pos)) { s 281 libavformat/brstm.c avio_skip(s->pb, size - (avio_tell(s->pb) - pos)); s 283 libavformat/brstm.c while (!avio_feof(s->pb)) { s 284 libavformat/brstm.c chunk = avio_rl32(s->pb); s 285 libavformat/brstm.c size = read32(s); s 304 libavformat/brstm.c av_log(s, AV_LOG_WARNING, "skipping additional ADPC chunk\n"); s 317 libavformat/brstm.c b->adpc[i+1] = avio_r8(s->pb); s 318 libavformat/brstm.c b->adpc[i] = avio_r8(s->pb); s 321 libavformat/brstm.c avio_read(s->pb, b->adpc, asize); s 323 libavformat/brstm.c avio_skip(s->pb, size - asize); s 327 libavformat/brstm.c if ((start < avio_tell(s->pb)) || s 333 libavformat/brstm.c avio_skip(s->pb, start - avio_tell(s->pb)); s 337 libavformat/brstm.c avio_skip(s->pb, 24); s 339 libavformat/brstm.c b->data_start = avio_tell(s->pb); s 342 libavformat/brstm.c avpriv_request_sample(s, "Version %d.%d", major, minor); s 346 libavformat/brstm.c av_log(s, AV_LOG_WARNING, "skipping unknown chunk: %X\n", chunk); s 348 libavformat/brstm.c avio_skip(s->pb, size); s 353 libavformat/brstm.c read_close(s); s 358 libavformat/brstm.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 360 libavformat/brstm.c AVCodecParameters *par = s->streams[0]->codecpar; s 361 libavformat/brstm.c BRSTMDemuxContext *b = s->priv_data; s 365 libavformat/brstm.c if (avio_feof(s->pb)) s 393 libavformat/brstm.c av_log(s, AV_LOG_ERROR, "adpcm_thp requires ADPC chunk, but none was found.\n"); s 421 libavformat/brstm.c ret = avio_read(s->pb, dst, size); s 423 libavformat/brstm.c avio_skip(s->pb, skip); s 431 libavformat/brstm.c ret = av_get_packet(s->pb, pkt, size); s 442 libavformat/brstm.c static int read_seek(AVFormatContext *s, int stream_index, s 445 libavformat/brstm.c AVStream *st = s->streams[stream_index]; s 446 libavformat/brstm.c BRSTMDemuxContext *b = s->priv_data; s 450 libavformat/brstm.c ret = avio_seek(s->pb, b->data_start + timestamp * b->block_size * s 456 libavformat/brstm.c ff_update_cur_dts(s, st, timestamp * b->samples_per_block); s 60 libavformat/c93.c static int read_header(AVFormatContext *s) s 63 libavformat/c93.c AVIOContext *pb = s->pb; s 64 libavformat/c93.c C93DemuxContext *c93 = s->priv_data; s 73 libavformat/c93.c av_log(s, AV_LOG_ERROR, "too many frames in block\n"); s 80 libavformat/c93.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 82 libavformat/c93.c video = avformat_new_stream(s, NULL); s 106 libavformat/c93.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 108 libavformat/c93.c AVIOContext *pb = s->pb; s 109 libavformat/c93.c C93DemuxContext *c93 = s->priv_data; s 120 libavformat/c93.c c93->audio = avformat_new_stream(s, NULL); s 126 libavformat/c93.c ret = ff_voc_get_packet(s, pkt, c93->audio, datasize - 26); s 167 libavformat/c93.c av_log(s, AV_LOG_ERROR, "invalid palette size %u\n", datasize); s 59 libavformat/cafdec.c static int read_desc_chunk(AVFormatContext *s) s 61 libavformat/cafdec.c AVIOContext *pb = s->pb; s 62 libavformat/cafdec.c CafContext *caf = s->priv_data; s 67 libavformat/cafdec.c st = avformat_new_stream(s, NULL); s 99 libavformat/cafdec.c static int read_kuki_chunk(AVFormatContext *s, int64_t size) s 101 libavformat/cafdec.c AVIOContext *pb = s->pb; s 102 libavformat/cafdec.c AVStream *st = s->streams[0]; s 115 libavformat/cafdec.c ff_mov_read_esds(s, pb); s 119 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "invalid AAC magic cookie\n"); s 129 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "invalid ALAC magic cookie\n"); s 134 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "failed to read preamble\n"); s 147 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "invalid ALAC magic cookie\n"); s 152 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "failed to read kuki header\n"); s 163 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "failed to read new kuki header\n"); s 173 libavformat/cafdec.c avpriv_request_sample(s, "multichannel Opus in CAF"); s 177 libavformat/cafdec.c } else if ((ret = ff_get_extradata(s, st->codecpar, pb, size)) < 0) { s 185 libavformat/cafdec.c static int read_pakt_chunk(AVFormatContext *s, int64_t size) s 187 libavformat/cafdec.c AVIOContext *pb = s->pb; s 188 libavformat/cafdec.c AVStream *st = s->streams[0]; s 189 libavformat/cafdec.c CafContext *caf = s->priv_data; s 205 libavformat/cafdec.c av_add_index_entry(s->streams[0], pos, st->duration, 0, 0, AVINDEX_KEYFRAME); s 211 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "error reading packet table\n"); s 221 libavformat/cafdec.c static void read_info_chunk(AVFormatContext *s, int64_t size) s 223 libavformat/cafdec.c AVIOContext *pb = s->pb; s 231 libavformat/cafdec.c av_dict_set(&s->metadata, key, value, 0); s 235 libavformat/cafdec.c static int read_header(AVFormatContext *s) s 237 libavformat/cafdec.c AVIOContext *pb = s->pb; s 238 libavformat/cafdec.c CafContext *caf = s->priv_data; s 248 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "desc chunk not present\n"); s 255 libavformat/cafdec.c ret = read_desc_chunk(s); s 258 libavformat/cafdec.c st = s->streams[0]; s 286 libavformat/cafdec.c if ((ret = ff_mov_read_chan(s, s->pb, st, size)) < 0) s 292 libavformat/cafdec.c if (read_kuki_chunk(s, size)) s 298 libavformat/cafdec.c if (read_pakt_chunk(s, size)) s 303 libavformat/cafdec.c read_info_chunk(s, size); s 307 libavformat/cafdec.c av_log(s, AV_LOG_WARNING, s 334 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "Overflow during bit rate calculation %d * 8 * %"PRId64"\n", s 341 libavformat/cafdec.c av_log(s, AV_LOG_ERROR, "Missing packet table. It is required when " s 358 libavformat/cafdec.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 360 libavformat/cafdec.c AVIOContext *pb = s->pb; s 361 libavformat/cafdec.c AVStream *st = s->streams[0]; s 362 libavformat/cafdec.c CafContext *caf = s->priv_data; s 414 libavformat/cafdec.c static int read_seek(AVFormatContext *s, int stream_index, s 417 libavformat/cafdec.c AVStream *st = s->streams[0]; s 418 libavformat/cafdec.c CafContext *caf = s->priv_data; s 438 libavformat/cafdec.c if (avio_seek(s->pb, pos + caf->data_start, SEEK_SET) < 0) s 105 libavformat/cafenc.c static int caf_write_header(AVFormatContext *s) s 107 libavformat/cafenc.c AVIOContext *pb = s->pb; s 108 libavformat/cafenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 109 libavformat/cafenc.c CAFContext *caf = s->priv_data; s 115 libavformat/cafenc.c if (s->nb_streams != 1) { s 116 libavformat/cafenc.c av_log(s, AV_LOG_ERROR, "CAF files have exactly one stream\n"); s 122 libavformat/cafenc.c av_log(s, AV_LOG_ERROR, "muxing codec currently unsupported\n"); s 127 libavformat/cafenc.c av_log(s, AV_LOG_ERROR, "Only mono and stereo are supported for Opus\n"); s 132 libavformat/cafenc.c av_log(s, AV_LOG_ERROR, "unsupported codec\n"); s 137 libavformat/cafenc.c av_log(s, AV_LOG_ERROR, "Muxing variable packet size not supported on non seekable output\n"); s 186 libavformat/cafenc.c ff_standardize_creation_time(s); s 187 libavformat/cafenc.c if (av_dict_count(s->metadata)) { s 189 libavformat/cafenc.c while ((t = av_dict_get(s->metadata, "", t, AV_DICT_IGNORE_SUFFIX))) { s 193 libavformat/cafenc.c avio_wb32(pb, av_dict_count(s->metadata)); s 195 libavformat/cafenc.c while ((t = av_dict_get(s->metadata, "", t, AV_DICT_IGNORE_SUFFIX))) { s 209 libavformat/cafenc.c static int caf_write_packet(AVFormatContext *s, AVPacket *pkt) s 211 libavformat/cafenc.c CAFContext *caf = s->priv_data; s 213 libavformat/cafenc.c avio_write(s->pb, pkt->data, pkt->size); s 214 libavformat/cafenc.c if (!s->streams[0]->codecpar->block_align) { s 239 libavformat/cafenc.c static int caf_write_trailer(AVFormatContext *s) s 241 libavformat/cafenc.c CAFContext *caf = s->priv_data; s 242 libavformat/cafenc.c AVIOContext *pb = s->pb; s 243 libavformat/cafenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 33 libavformat/cdg.c static int read_header(AVFormatContext *s) s 38 libavformat/cdg.c vst = avformat_new_stream(s, NULL); s 48 libavformat/cdg.c ret = avio_size(s->pb); s 50 libavformat/cdg.c av_log(s, AV_LOG_WARNING, "Cannot calculate duration as file size cannot be determined\n"); s 57 libavformat/cdg.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 59 libavformat/cdg.c CDGContext *priv = s->priv_data; s 63 libavformat/cdg.c ret = av_get_packet(s->pb, pkt, CDG_PACKET_SIZE); s 85 libavformat/cdxl.c static int cdxl_read_header(AVFormatContext *s) s 87 libavformat/cdxl.c CDXLDemuxContext *cdxl = s->priv_data; s 91 libavformat/cdxl.c av_log(s, AV_LOG_ERROR, s 100 libavformat/cdxl.c cdxl->filesize = avio_size(s->pb); s 102 libavformat/cdxl.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 107 libavformat/cdxl.c static int cdxl_read_packet(AVFormatContext *s, AVPacket *pkt) s 109 libavformat/cdxl.c CDXLDemuxContext *cdxl = s->priv_data; s 110 libavformat/cdxl.c AVIOContext *pb = s->pb; s 124 libavformat/cdxl.c av_log(s, AV_LOG_ERROR, "non-standard cdxl file\n"); s 150 libavformat/cdxl.c AVStream *st = avformat_new_stream(s, NULL); s 179 libavformat/cdxl.c AVStream *st = avformat_new_stream(s, NULL); s 59 libavformat/chromaprint.c static int write_header(AVFormatContext *s) s 61 libavformat/chromaprint.c ChromaprintMuxContext *cpr = s->priv_data; s 69 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Failed to create chromaprint context.\n"); s 76 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Failed to set silence threshold. Setting silence_threshold requires -algorithm 3 option.\n"); s 80 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Setting the silence threshold requires Chromaprint " s 86 libavformat/chromaprint.c if (s->nb_streams != 1) { s 87 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Only one stream is supported\n"); s 91 libavformat/chromaprint.c st = s->streams[0]; s 94 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Only up to 2 channels are supported\n"); s 99 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Sampling rate must be at least 1000\n"); s 104 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Failed to start chromaprint\n"); s 114 libavformat/chromaprint.c static int write_packet(AVFormatContext *s, AVPacket *pkt) s 116 libavformat/chromaprint.c ChromaprintMuxContext *cpr = s->priv_data; s 120 libavformat/chromaprint.c static int write_trailer(AVFormatContext *s) s 122 libavformat/chromaprint.c ChromaprintMuxContext *cpr = s->priv_data; s 123 libavformat/chromaprint.c AVIOContext *pb = s->pb; s 129 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Failed to generate fingerprint\n"); s 134 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Failed to retrieve fingerprint\n"); s 146 libavformat/chromaprint.c av_log(s, AV_LOG_ERROR, "Failed to encode fingerprint\n"); s 64 libavformat/codec2.c static int codec2_read_header_common(AVFormatContext *s, AVStream *st) s 74 libavformat/codec2.c st->codecpar->bit_rate = avpriv_codec2_mode_bit_rate(s, mode); s 75 libavformat/codec2.c st->codecpar->frame_size = avpriv_codec2_mode_frame_size(s, mode); s 76 libavformat/codec2.c st->codecpar->block_align = avpriv_codec2_mode_block_align(s, mode); s 89 libavformat/codec2.c static int codec2_read_header(AVFormatContext *s) s 91 libavformat/codec2.c AVStream *st = avformat_new_stream(s, NULL); s 98 libavformat/codec2.c if (avio_rb24(s->pb) != AVPRIV_CODEC2_MAGIC) { s 99 libavformat/codec2.c av_log(s, AV_LOG_ERROR, "not a .c2 file\n"); s 108 libavformat/codec2.c ret = ffio_read_size(s->pb, st->codecpar->extradata, AVPRIV_CODEC2_EXTRADATA_SIZE); s 115 libavformat/codec2.c avpriv_report_missing_feature(s, "Major version %i", version >> 8); s 119 libavformat/codec2.c s->internal->data_offset = AVPRIV_CODEC2_HEADER_SIZE; s 121 libavformat/codec2.c return codec2_read_header_common(s, st); s 124 libavformat/codec2.c static int codec2_read_packet(AVFormatContext *s, AVPacket *pkt) s 126 libavformat/codec2.c Codec2Context *c2 = s->priv_data; s 127 libavformat/codec2.c AVStream *st = s->streams[0]; s 139 libavformat/codec2.c ret = av_get_packet(s->pb, pkt, size); s 152 libavformat/codec2.c static int codec2_write_header(AVFormatContext *s) s 156 libavformat/codec2.c if (s->nb_streams != 1 || s->streams[0]->codecpar->codec_id != AV_CODEC_ID_CODEC2) { s 157 libavformat/codec2.c av_log(s, AV_LOG_ERROR, ".c2 files must have exactly one codec2 stream\n"); s 161 libavformat/codec2.c st = s->streams[0]; s 164 libavformat/codec2.c av_log(s, AV_LOG_ERROR, ".c2 files require exactly %i bytes of extradata (got %i)\n", s 169 libavformat/codec2.c avio_wb24(s->pb, AVPRIV_CODEC2_MAGIC); s 170 libavformat/codec2.c avio_write(s->pb, st->codecpar->extradata, AVPRIV_CODEC2_EXTRADATA_SIZE); s 175 libavformat/codec2.c static int codec2raw_read_header(AVFormatContext *s) s 177 libavformat/codec2.c Codec2Context *c2 = s->priv_data; s 183 libavformat/codec2.c av_log(s, AV_LOG_ERROR, "-mode must be set in order to make sense of raw codec2 files\n"); s 187 libavformat/codec2.c st = avformat_new_stream(s, NULL); s 197 libavformat/codec2.c s->internal->data_offset = 0; s 200 libavformat/codec2.c return codec2_read_header_common(s, st); s 31 libavformat/crcenc.c static int crc_write_header(struct AVFormatContext *s) s 33 libavformat/crcenc.c CRCState *crc = s->priv_data; s 41 libavformat/crcenc.c static int crc_write_packet(struct AVFormatContext *s, AVPacket *pkt) s 43 libavformat/crcenc.c CRCState *crc = s->priv_data; s 48 libavformat/crcenc.c static int crc_write_trailer(struct AVFormatContext *s) s 50 libavformat/crcenc.c CRCState *crc = s->priv_data; s 54 libavformat/crcenc.c avio_write(s->pb, buf, strlen(buf)); s 181 libavformat/dashdec.c static uint64_t get_utc_date_time_insec(AVFormatContext *s, const char *datetime) s 199 libavformat/dashdec.c av_log(s, AV_LOG_WARNING, "get_utc_date_time_insec get a wrong time format\n"); s 211 libavformat/dashdec.c static uint32_t get_duration_insec(AVFormatContext *s, const char *duration) s 230 libavformat/dashdec.c av_log(s, AV_LOG_WARNING, "get_duration_insec get a wrong time format\n"); s 402 libavformat/dashdec.c static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url, s 405 libavformat/dashdec.c DASHContext *c = s->priv_data; s 427 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, s 451 libavformat/dashdec.c if (!(s->flags & AVFMT_FLAG_CUSTOM_IO)) s 601 libavformat/dashdec.c static int parse_manifest_segmenturlnode(AVFormatContext *s, struct representation *rep, s 607 libavformat/dashdec.c DASHContext *c = s->priv_data; s 668 libavformat/dashdec.c static int parse_manifest_segmenttimeline(AVFormatContext *s, struct representation *rep, s 684 libavformat/dashdec.c av_log(s, AV_LOG_WARNING, "parse_manifest_segmenttimeline attr->name = %s val is NULL\n", attr->name); s 704 libavformat/dashdec.c static int resolve_content_path(AVFormatContext *s, const char *url, int *max_url_size, xmlNodePtr *baseurl_nodes, int n_baseurl_nodes) s 823 libavformat/dashdec.c static int parse_manifest_representation(AVFormatContext *s, const char *url, s 840 libavformat/dashdec.c DASHContext *c = s->priv_data; s 873 libavformat/dashdec.c av_log(s, AV_LOG_VERBOSE, "Parsing '%s' - skipp not supported representation type\n", url); s 884 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "alloc language memory failure\n"); s 890 libavformat/dashdec.c rep->parent = s; s 900 libavformat/dashdec.c ret = resolve_content_path(s, url, &c->max_url_size, baseurl_nodes, 4); s 949 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "rep->presentation_timeoffset = [%"PRId64"]\n", rep->presentation_timeoffset); s 954 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "rep->fragment_duration = [%"PRId64"]\n", rep->fragment_duration); s 959 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "rep->fragment_timescale = [%"PRId64"]\n", rep->fragment_timescale); s 964 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "rep->first_seq_no = [%"PRId64"]\n", rep->first_seq_no); s 971 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "Missing value attribute in adaptionset_supplementalproperty_node\n"); s 990 libavformat/dashdec.c ret = parse_manifest_segmenttimeline(s, rep, fragment_timeline_node); s 1024 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "rep->fragment_duration = [%"PRId64"]\n", rep->fragment_duration); s 1029 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "rep->fragment_timescale = [%"PRId64"]\n", rep->fragment_timescale); s 1034 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "rep->first_seq_no = [%"PRId64"]\n", rep->first_seq_no); s 1040 libavformat/dashdec.c ret = parse_manifest_segmenturlnode(s, rep, fragmenturl_node, s 1061 libavformat/dashdec.c ret = parse_manifest_segmenttimeline(s, rep, fragment_timeline_node); s 1071 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "Unknown format of Representation node id[%s] \n", (const char *)rep_id_val); s 1083 libavformat/dashdec.c av_log(s, AV_LOG_VERBOSE, "Ignoring invalid frame rate '%s'\n", rep_framerate_val); s 1100 libavformat/dashdec.c av_log(s, AV_LOG_WARNING, "Unsupported the stream type %d\n", type); s 1121 libavformat/dashdec.c static int parse_manifest_adaptationset_attr(AVFormatContext *s, xmlNodePtr adaptionset_node) s 1123 libavformat/dashdec.c DASHContext *c = s->priv_data; s 1126 libavformat/dashdec.c av_log(s, AV_LOG_WARNING, "Cannot get AdaptionSet\n"); s 1134 libavformat/dashdec.c static int parse_manifest_adaptationset(AVFormatContext *s, const char *url, s 1142 libavformat/dashdec.c DASHContext *c = s->priv_data; s 1150 libavformat/dashdec.c ret = parse_manifest_adaptationset_attr(s, adaptionset_node); s 1167 libavformat/dashdec.c ret = parse_manifest_representation(s, url, node, s 1189 libavformat/dashdec.c static int parse_programinformation(AVFormatContext *s, xmlNodePtr node) s 1198 libavformat/dashdec.c av_dict_set(&s->metadata, "Title", val, 0); s 1203 libavformat/dashdec.c av_dict_set(&s->metadata, "Source", val, 0); s 1208 libavformat/dashdec.c av_dict_set(&s->metadata, "Copyright", val, 0); s 1218 libavformat/dashdec.c static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in) s 1220 libavformat/dashdec.c DASHContext *c = s->priv_data; s 1260 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "Manifest too large: %"PRId64"\n", filesize); s 1269 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "Unable to read to manifest '%s'\n", url); s 1281 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "Unable to parse '%s' - missing root node\n", url); s 1288 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "Unable to parse '%s' - wrong root node name[%s] type[%d]\n", url, node->name, (int)node->type); s 1294 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "Unable to parse '%s' - missing type attrib\n", url); s 1307 libavformat/dashdec.c c->availability_start_time = get_utc_date_time_insec(s, (const char *)val); s 1308 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "c->availability_start_time = [%"PRId64"]\n", c->availability_start_time); s 1310 libavformat/dashdec.c c->availability_end_time = get_utc_date_time_insec(s, (const char *)val); s 1311 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "c->availability_end_time = [%"PRId64"]\n", c->availability_end_time); s 1313 libavformat/dashdec.c c->publish_time = get_utc_date_time_insec(s, (const char *)val); s 1314 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "c->publish_time = [%"PRId64"]\n", c->publish_time); s 1316 libavformat/dashdec.c c->minimum_update_period = get_duration_insec(s, (const char *)val); s 1317 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "c->minimum_update_period = [%"PRId64"]\n", c->minimum_update_period); s 1319 libavformat/dashdec.c c->time_shift_buffer_depth = get_duration_insec(s, (const char *)val); s 1320 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "c->time_shift_buffer_depth = [%"PRId64"]\n", c->time_shift_buffer_depth); s 1322 libavformat/dashdec.c c->min_buffer_time = get_duration_insec(s, (const char *)val); s 1323 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "c->min_buffer_time = [%"PRId64"]\n", c->min_buffer_time); s 1325 libavformat/dashdec.c c->suggested_presentation_delay = get_duration_insec(s, (const char *)val); s 1326 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "c->suggested_presentation_delay = [%"PRId64"]\n", c->suggested_presentation_delay); s 1328 libavformat/dashdec.c c->media_presentation_duration = get_duration_insec(s, (const char *)val); s 1329 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "c->media_presentation_duration = [%"PRId64"]\n", c->media_presentation_duration); s 1352 libavformat/dashdec.c period_duration_sec = get_duration_insec(s, (const char *)val); s 1354 libavformat/dashdec.c period_start_sec = get_duration_insec(s, (const char *)val); s 1367 libavformat/dashdec.c parse_programinformation(s, node); s 1372 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "Unable to parse '%s' - missing Period node\n", url); s 1386 libavformat/dashdec.c parse_manifest_adaptationset(s, url, adaptionset_node, mpd_baseurl_node, period_baseurl_node, period_segmenttemplate_node, period_segmentlist_node); s 1405 libavformat/dashdec.c static int64_t calc_cur_seg_no(AVFormatContext *s, struct representation *pls) s 1407 libavformat/dashdec.c DASHContext *c = s->priv_data; s 1413 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "in n_fragments mode\n"); s 1416 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "in n_timelines mode\n"); s 1424 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "in fragment_duration mode fragment_timescale = %"PRId64", presentation_timeoffset = %"PRId64"\n", pls->fragment_timescale, pls->presentation_timeoffset); s 1443 libavformat/dashdec.c static int64_t calc_min_seg_no(AVFormatContext *s, struct representation *pls) s 1445 libavformat/dashdec.c DASHContext *c = s->priv_data; s 1449 libavformat/dashdec.c av_log(s, AV_LOG_TRACE, "in live mode\n"); s 1515 libavformat/dashdec.c static int refresh_manifest(AVFormatContext *s) s 1518 libavformat/dashdec.c DASHContext *c = s->priv_data; s 1535 libavformat/dashdec.c ret = parse_manifest(s, s->url, NULL); s 1857 libavformat/dashdec.c static int save_avio_options(AVFormatContext *s) s 1859 libavformat/dashdec.c DASHContext *c = s->priv_data; s 1867 libavformat/dashdec.c if (av_opt_get(s->pb, *opt, AV_OPT_SEARCH_CHILDREN, &buf) >= 0) { s 1884 libavformat/dashdec.c static int nested_io_open(AVFormatContext *s, AVIOContext **pb, const char *url, s 1887 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, s 1890 libavformat/dashdec.c s->url, url); s 1904 libavformat/dashdec.c static int reopen_demux_for_component(AVFormatContext *s, struct representation *pls) s 1906 libavformat/dashdec.c DASHContext *c = s->priv_data; s 1916 libavformat/dashdec.c if (ff_check_interrupt(&s->interrupt_callback)) { s 1940 libavformat/dashdec.c if ((ret = ff_copy_whiteblacklists(pls->ctx, s)) < 0) s 1944 libavformat/dashdec.c pls->ctx->probesize = s->probesize > 0 ? s->probesize : 1024 * 4; s 1945 libavformat/dashdec.c pls->ctx->max_analyze_duration = s->max_analyze_duration > 0 ? s->max_analyze_duration : 4 * AV_TIME_BASE; s 1948 libavformat/dashdec.c av_log(s, AV_LOG_ERROR, "Error when loading first fragment, playlist %d\n", (int)pls->rep_idx); s 1978 libavformat/dashdec.c static int open_demux_for_component(AVFormatContext *s, struct representation *pls) s 1983 libavformat/dashdec.c pls->parent = s; s 1984 libavformat/dashdec.c pls->cur_seq_no = calc_cur_seg_no(s, pls); s 1987 libavformat/dashdec.c pls->last_seq_no = calc_max_seg_no(pls, s->priv_data); s 1990 libavformat/dashdec.c ret = reopen_demux_for_component(s, pls); s 1995 libavformat/dashdec.c AVStream *st = avformat_new_stream(s, NULL); s 2049 libavformat/dashdec.c static int dash_read_header(AVFormatContext *s) s 2051 libavformat/dashdec.c DASHContext *c = s->priv_data; s 2057 libavformat/dashdec.c c->interrupt_callback = &s->interrupt_callback; s 2059 libavformat/dashdec.c if ((ret = save_avio_options(s)) < 0) s 2062 libavformat/dashdec.c if ((ret = parse_manifest(s, s->url, s->pb)) < 0) s 2068 libavformat/dashdec.c s->duration = (int64_t) c->media_presentation_duration * AV_TIME_BASE; s 2084 libavformat/dashdec.c ret = open_demux_for_component(s, rep); s 2102 libavformat/dashdec.c ret = open_demux_for_component(s, rep); s 2120 libavformat/dashdec.c ret = open_demux_for_component(s, rep); s 2136 libavformat/dashdec.c program = av_new_program(s, 0); s 2143 libavformat/dashdec.c av_program_add_stream_index(s, 0, rep->stream_index); s 2144 libavformat/dashdec.c rep->assoc_stream = s->streams[rep->stream_index]; s 2152 libavformat/dashdec.c av_program_add_stream_index(s, 0, rep->stream_index); s 2153 libavformat/dashdec.c rep->assoc_stream = s->streams[rep->stream_index]; s 2165 libavformat/dashdec.c av_program_add_stream_index(s, 0, rep->stream_index); s 2166 libavformat/dashdec.c rep->assoc_stream = s->streams[rep->stream_index]; s 2181 libavformat/dashdec.c static void recheck_discard_flags(AVFormatContext *s, struct representation **p, int n) s 2196 libavformat/dashdec.c reopen_demux_for_component(s, pls); s 2197 libavformat/dashdec.c av_log(s, AV_LOG_INFO, "Now receiving stream_index %d\n", pls->stream_index); s 2201 libavformat/dashdec.c av_log(s, AV_LOG_INFO, "No longer receiving stream_index %d\n", pls->stream_index); s 2206 libavformat/dashdec.c static int dash_read_packet(AVFormatContext *s, AVPacket *pkt) s 2208 libavformat/dashdec.c DASHContext *c = s->priv_data; s 2214 libavformat/dashdec.c recheck_discard_flags(s, c->videos, c->n_videos); s 2215 libavformat/dashdec.c recheck_discard_flags(s, c->audios, c->n_audios); s 2216 libavformat/dashdec.c recheck_discard_flags(s, c->subtitles, c->n_subtitles); s 2262 libavformat/dashdec.c ret = reopen_demux_for_component(s, cur); s 2269 libavformat/dashdec.c static int dash_close(AVFormatContext *s) s 2271 libavformat/dashdec.c DASHContext *c = s->priv_data; s 2279 libavformat/dashdec.c static int dash_seek(AVFormatContext *s, struct representation *pls, int64_t seek_pos_msec, int flags, int dry_run) s 2338 libavformat/dashdec.c ret = dry_run ? 0 : reopen_demux_for_component(s, pls); s 2343 libavformat/dashdec.c static int dash_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 2346 libavformat/dashdec.c DASHContext *c = s->priv_data; s 2348 libavformat/dashdec.c s->streams[stream_index]->time_base.den, s 2357 libavformat/dashdec.c ret = dash_seek(s, c->videos[i], seek_pos_msec, flags, !c->videos[i]->ctx); s 2361 libavformat/dashdec.c ret = dash_seek(s, c->audios[i], seek_pos_msec, flags, !c->audios[i]->ctx); s 2365 libavformat/dashdec.c ret = dash_seek(s, c->subtitles[i], seek_pos_msec, flags, !c->subtitles[i]->ctx); s 223 libavformat/dashenc.c static int dashenc_io_open(AVFormatContext *s, AVIOContext **pb, char *filename, s 225 libavformat/dashenc.c DASHContext *c = s->priv_data; s 229 libavformat/dashenc.c err = s->io_open(s, pb, filename, AVIO_FLAG_WRITE, options); s 236 libavformat/dashenc.c ff_format_io_close(s, pb); s 242 libavformat/dashenc.c static void dashenc_io_close(AVFormatContext *s, AVIOContext **pb, char *filename) { s 243 libavformat/dashenc.c DASHContext *c = s->priv_data; s 250 libavformat/dashenc.c ff_format_io_close(s, pb); s 279 libavformat/dashenc.c static int handle_io_open_error(AVFormatContext *s, int err, char *url) { s 280 libavformat/dashenc.c DASHContext *c = s->priv_data; s 283 libavformat/dashenc.c av_log(s, c->ignore_io_errors ? AV_LOG_WARNING : AV_LOG_ERROR, s 302 libavformat/dashenc.c static int init_segment_types(AVFormatContext *s) s 304 libavformat/dashenc.c DASHContext *c = s->priv_data; s 306 libavformat/dashenc.c for (int i = 0; i < s->nb_streams; ++i) { s 309 libavformat/dashenc.c c->segment_type_option, s->streams[i]->codecpar->codec_id); s 313 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Could not select DASH segment type for stream %d\n", i); s 318 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Could not get extension type for stream %d\n", i); s 326 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "No mp4 streams, disabling HLS manifest generation\n"); s 343 libavformat/dashenc.c static void set_vp9_codec_str(AVFormatContext *s, AVCodecParameters *par, s 346 libavformat/dashenc.c int ret = ff_isom_get_vpcc_features(s, par, frame_rate, &vpcc); s 352 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Could not find VP9 profile and/or level\n"); s 358 libavformat/dashenc.c static void set_codec_str(AVFormatContext *s, AVCodecParameters *par, s 369 libavformat/dashenc.c set_vp9_codec_str(s, par, frame_rate, str, size); s 412 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Incomplete RFC 6381 codec string for mp4v\n"); s 514 libavformat/dashenc.c static void write_hls_media_playlist(OutputStream *os, AVFormatContext *s, s 517 libavformat/dashenc.c DASHContext *c = s->priv_data; s 541 libavformat/dashenc.c ret = dashenc_io_open(s, &c->m3u8_out, temp_filename_hls, &http_opts); s 544 libavformat/dashenc.c handle_io_open_error(s, ret, temp_filename_hls); s 587 libavformat/dashenc.c dashenc_io_close(s, &c->m3u8_out, temp_filename_hls); s 593 libavformat/dashenc.c static int flush_init_segment(AVFormatContext *s, OutputStream *os) s 595 libavformat/dashenc.c DASHContext *c = s->priv_data; s 606 libavformat/dashenc.c dashenc_io_close(s, &os->out, filename); s 611 libavformat/dashenc.c static void dash_free(AVFormatContext *s) s 613 libavformat/dashenc.c DASHContext *c = s->priv_data; s 627 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 635 libavformat/dashenc.c ff_format_io_close(s, &os->out); s 648 libavformat/dashenc.c ff_format_io_close(s, &c->mpd_out); s 649 libavformat/dashenc.c ff_format_io_close(s, &c->m3u8_out); s 652 libavformat/dashenc.c static void output_segment_list(OutputStream *os, AVIOContext *out, AVFormatContext *s, s 655 libavformat/dashenc.c DASHContext *c = s->priv_data; s 722 libavformat/dashenc.c write_hls_media_playlist(os, s, representation_id, final, NULL); s 801 libavformat/dashenc.c static int write_adaptation_set(AVFormatContext *s, AVIOContext *out, int as_index, s 804 libavformat/dashenc.c DASHContext *c = s->priv_data; s 833 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 834 libavformat/dashenc.c AVStream *st = s->streams[i]; s 847 libavformat/dashenc.c i, os->format_name, os->codec_str, bandwidth_str, s->streams[i]->codecpar->width, s->streams[i]->codecpar->height); s 865 libavformat/dashenc.c i, os->format_name, os->codec_str, bandwidth_str, s->streams[i]->codecpar->sample_rate); s 867 libavformat/dashenc.c s->streams[i]->codecpar->channels); s 878 libavformat/dashenc.c output_segment_list(os, out, s, i, final); s 886 libavformat/dashenc.c static int add_adaptation_set(AVFormatContext *s, AdaptationSet **as, enum AVMediaType type) s 888 libavformat/dashenc.c DASHContext *c = s->priv_data; s 892 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "DVB-DASH profile allows a max of 16 Adaptation Sets\n"); s 910 libavformat/dashenc.c static int adaptation_set_add_stream(AVFormatContext *s, int as_idx, int i) s 912 libavformat/dashenc.c DASHContext *c = s->priv_data; s 916 libavformat/dashenc.c if (as->media_type != s->streams[i]->codecpar->codec_type) { s 917 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Codec type of stream %d doesn't match AdaptationSet's media type\n", i); s 920 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Stream %d is already assigned to an AdaptationSet\n", i); s 924 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "DVB-DASH profile allows a max of 16 Representations per Adaptation Set\n"); s 933 libavformat/dashenc.c static int parse_adaptation_sets(AVFormatContext *s) s 935 libavformat/dashenc.c DASHContext *c = s->priv_data; s 943 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 944 libavformat/dashenc.c if ((ret = add_adaptation_set(s, &as, s->streams[i]->codecpar->codec_type)) < 0) s 975 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "\"%s\" is not a valid value for an AdaptationSet id\n", id_str); s 979 libavformat/dashenc.c if ((ret = add_adaptation_set(s, &as, AVMEDIA_TYPE_UNKNOWN)) < 0) s 1003 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Unable to parse option value \"%s\" as duration\n", str); s 1030 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Unable to parse option value \"%s\" as fragment type\n", type_str); s 1039 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Parse error, descriptor string should be a self-closing xml tag\n"); s 1073 libavformat/dashenc.c av_log(s, AV_LOG_DEBUG, "Map all streams of type %s\n", idx_str); s 1075 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 1076 libavformat/dashenc.c if (s->streams[i]->codecpar->codec_type != type) s 1079 libavformat/dashenc.c as->media_type = s->streams[i]->codecpar->codec_type; s 1081 libavformat/dashenc.c if ((ret = adaptation_set_add_stream(s, c->nb_as, i)) < 0) s 1086 libavformat/dashenc.c if (idx_str == end_str || i < 0 || i >= s->nb_streams) { s 1087 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Selected stream \"%s\" not found!\n", idx_str); s 1090 libavformat/dashenc.c av_log(s, AV_LOG_DEBUG, "Map stream %d\n", i); s 1093 libavformat/dashenc.c as->media_type = s->streams[i]->codecpar->codec_type; s 1096 libavformat/dashenc.c if ((ret = adaptation_set_add_stream(s, c->nb_as, i)) < 0) s 1111 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 1114 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Stream %d is not mapped to an AdaptationSet\n", i); s 1129 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "reference AdaptationSet id \"%d\" not found for trick mode AdaptationSet id \"%d\"\n", as->trick_idx, as->id); s 1137 libavformat/dashenc.c static int write_manifest(AVFormatContext *s, int final) s 1139 libavformat/dashenc.c DASHContext *c = s->priv_data; s 1143 libavformat/dashenc.c const char *proto = avio_find_protocol_name(s->url); s 1146 libavformat/dashenc.c AVDictionaryEntry *title = av_dict_get(s->metadata, "title", NULL, 0); s 1150 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Cannot use rename on non file protocol, this may lead to races and temporary partial files\n"); s 1152 libavformat/dashenc.c snprintf(temp_filename, sizeof(temp_filename), use_rename ? "%s.tmp" : "%s", s->url); s 1154 libavformat/dashenc.c ret = dashenc_io_open(s, &c->mpd_out, temp_filename, &opts); s 1157 libavformat/dashenc.c return handle_io_open_error(s, ret, temp_filename); s 1212 libavformat/dashenc.c if (s->nb_streams > 1) s 1222 libavformat/dashenc.c if (c->window_size && s->nb_streams > 0 && c->streams[0].nb_segments > 0 && !c->use_template) { s 1225 libavformat/dashenc.c int64_t start_time = av_rescale_q(os->segments[start_index]->time, s->streams[0]->time_base, AV_TIME_BASE_Q); s 1234 libavformat/dashenc.c if ((ret = write_adaptation_set(s, out, i, final)) < 0) s 1244 libavformat/dashenc.c dashenc_io_close(s, &c->mpd_out, temp_filename); s 1247 libavformat/dashenc.c if ((ret = ff_rename(temp_filename, s->url, s)) < 0) s 1271 libavformat/dashenc.c ret = dashenc_io_open(s, &c->m3u8_out, temp_filename, &opts); s 1274 libavformat/dashenc.c return handle_io_open_error(s, ret, temp_filename); s 1279 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 1281 libavformat/dashenc.c AVStream *st = s->streams[i]; s 1300 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 1303 libavformat/dashenc.c AVStream *st = s->streams[i]; s 1327 libavformat/dashenc.c dashenc_io_close(s, &c->m3u8_out, temp_filename); s 1329 libavformat/dashenc.c if ((ret = ff_rename(temp_filename, filename_hls, s)) < 0) s 1345 libavformat/dashenc.c static int dash_init(AVFormatContext *s) s 1347 libavformat/dashenc.c DASHContext *c = s->priv_data; s 1359 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "At least one profile must be enabled.\n"); s 1364 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "The min_seg_duration option is deprecated and will be removed. Please use the -seg_duration\n"); s 1368 libavformat/dashenc.c if (c->lhls && s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { s 1369 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, s 1375 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "LHLS option will be ignored as streaming is not enabled\n"); s 1380 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "LHLS option will be ignored as hls_playlist is not enabled\n"); s 1385 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "LDash option will be ignored as streaming is not enabled\n"); s 1390 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Target latency option will be ignored as streaming is not enabled\n"); s 1395 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Global SIDX option will be ignored as single_file is not enabled\n"); s 1400 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Global SIDX option will be ignored as streaming is enabled\n"); s 1404 libavformat/dashenc.c av_log(s, AV_LOG_VERBOSE, "Changing frag_type from none to every_frame as streaming is enabled\n"); s 1411 libavformat/dashenc.c av_log(s, AV_LOG_VERBOSE, "Enabling Producer Reference Time element for Low Latency mode\n"); s 1415 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Producer Reference Time element option will be ignored as utc_timing_url is not set\n"); s 1420 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Producer Reference Time element option will be ignored as streaming is not enabled\n"); s 1425 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Low Latency mode enabled without Producer Reference Time element option! Resulting manifest may not be complaint\n"); s 1429 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Target latency option will be ignored as Producer Reference Time element will not be written\n"); s 1434 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Minimum playback rate value is higer than the Maximum. Both will be ignored\n"); s 1438 libavformat/dashenc.c av_strlcpy(c->dirname, s->url, sizeof(c->dirname)); s 1445 libavformat/dashenc.c av_strlcpy(basename, s->url, sizeof(basename)); s 1452 libavformat/dashenc.c c->streams = av_mallocz(sizeof(*c->streams) * s->nb_streams); s 1456 libavformat/dashenc.c if ((ret = parse_adaptation_sets(s)) < 0) s 1459 libavformat/dashenc.c if ((ret = init_segment_types(s)) < 0) s 1462 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 1470 libavformat/dashenc.c os->bit_rate = s->streams[i]->codecpar->bit_rate; s 1472 libavformat/dashenc.c int level = s->strict_std_compliance >= FF_COMPLIANCE_STRICT ? s 1474 libavformat/dashenc.c av_log(s, level, "No bit rate set for stream %d\n", i); s 1475 libavformat/dashenc.c if (s->strict_std_compliance >= FF_COMPLIANCE_STRICT) s 1480 libavformat/dashenc.c dict_copy_entry(&as->metadata, s->streams[i]->metadata, "language"); s 1481 libavformat/dashenc.c dict_copy_entry(&as->metadata, s->streams[i]->metadata, "role"); s 1503 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, s 1510 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "One or more streams in WebM output format. Streaming option will be ignored\n"); s 1522 libavformat/dashenc.c ctx->interrupt_callback = s->interrupt_callback; s 1523 libavformat/dashenc.c ctx->opaque = s->opaque; s 1524 libavformat/dashenc.c ctx->io_close = s->io_close; s 1525 libavformat/dashenc.c ctx->io_open = s->io_open; s 1526 libavformat/dashenc.c ctx->strict_std_compliance = s->strict_std_compliance; s 1530 libavformat/dashenc.c avcodec_parameters_copy(st->codecpar, s->streams[i]->codecpar); s 1531 libavformat/dashenc.c st->sample_aspect_ratio = s->streams[i]->sample_aspect_ratio; s 1532 libavformat/dashenc.c st->time_base = s->streams[i]->time_base; s 1533 libavformat/dashenc.c st->avg_frame_rate = s->streams[i]->avg_frame_rate; s 1534 libavformat/dashenc.c ctx->avoid_negative_ts = s->avoid_negative_ts; s 1535 libavformat/dashenc.c ctx->flags = s->flags; s 1562 libavformat/dashenc.c ret = s->io_open(s, &os->out, filename, AVIO_FLAG_WRITE, &opts); s 1586 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Segment duration %"PRId64" is outside the allowed range for DVB-DASH profile\n", os->seg_duration); s 1591 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "frag_type set to duration for stream %d but no frag_duration set\n", i); s 1595 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Fragment duration %"PRId64" is longer than Segment duration %"PRId64"\n", os->frag_duration, os->seg_duration); s 1600 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "frag_type set to P-Frame reordering, but no parser found for stream %d\n", i); s 1640 libavformat/dashenc.c av_log(s, AV_LOG_VERBOSE, "Representation %d init segment will be written to: %s\n", i, filename); s 1642 libavformat/dashenc.c s->streams[i]->time_base = st->time_base; s 1646 libavformat/dashenc.c s->avoid_negative_ts = ctx->avoid_negative_ts; s 1648 libavformat/dashenc.c AVRational avg_frame_rate = s->streams[i]->avg_frame_rate; s 1674 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "Conflicting stream par values in Adaptation Set %d\n", os->as_idx); s 1682 libavformat/dashenc.c set_codec_str(s, st->codecpar, &st->avg_frame_rate, os->codec_str, s 1689 libavformat/dashenc.c if (s->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) s 1694 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "no video stream and no seg duration set\n"); s 1698 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "no video stream and P-frame fragmentation set\n"); s 1706 libavformat/dashenc.c static int dash_write_header(AVFormatContext *s) s 1708 libavformat/dashenc.c DASHContext *c = s->priv_data; s 1710 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 1719 libavformat/dashenc.c (ret = flush_init_segment(s, os)) < 0) s 1775 libavformat/dashenc.c static void find_index_range(AVFormatContext *s, const char *full_path, s 1782 libavformat/dashenc.c ret = s->io_open(s, &pb, full_path, AVIO_FLAG_READ, NULL); s 1786 libavformat/dashenc.c ff_format_io_close(s, &pb); s 1790 libavformat/dashenc.c ff_format_io_close(s, &pb); s 1798 libavformat/dashenc.c static int update_stream_extradata(AVFormatContext *s, OutputStream *os, s 1818 libavformat/dashenc.c set_codec_str(s, par, frame_rate, os->codec_str, sizeof(os->codec_str)); s 1823 libavformat/dashenc.c static void dashenc_delete_file(AVFormatContext *s, char *filename) { s 1824 libavformat/dashenc.c DASHContext *c = s->priv_data; s 1834 libavformat/dashenc.c if (dashenc_io_open(s, &out, filename, &http_opts) < 0) { s 1835 libavformat/dashenc.c av_log(s, AV_LOG_ERROR, "failed to delete %s\n", filename); s 1839 libavformat/dashenc.c ff_format_io_close(s, &out); s 1845 libavformat/dashenc.c av_log(s, (res == AVERROR(ENOENT) ? AV_LOG_WARNING : AV_LOG_ERROR), "failed to delete %s: %s\n", filename, errbuf); s 1850 libavformat/dashenc.c static int dashenc_delete_segment_file(AVFormatContext *s, const char* file) s 1852 libavformat/dashenc.c DASHContext *c = s->priv_data; s 1860 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, "Out of memory for filename\n"); s 1864 libavformat/dashenc.c dashenc_delete_file(s, buf.str); s 1870 libavformat/dashenc.c static inline void dashenc_delete_media_segments(AVFormatContext *s, OutputStream *os, int remove_count) s 1873 libavformat/dashenc.c dashenc_delete_segment_file(s, os->segments[i]->file); s 1883 libavformat/dashenc.c static int dash_flush(AVFormatContext *s, int final, int stream) s 1885 libavformat/dashenc.c DASHContext *c = s->priv_data; s 1888 libavformat/dashenc.c const char *proto = avio_find_protocol_name(s->url); s 1901 libavformat/dashenc.c s->streams[stream]->time_base, s 1907 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 1909 libavformat/dashenc.c AVStream *st = s->streams[i]; s 1920 libavformat/dashenc.c if (s->streams[stream]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO && s 1921 libavformat/dashenc.c s->streams[i]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO) s 1923 libavformat/dashenc.c if (s->streams[i]->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) s 1940 libavformat/dashenc.c find_index_range(s, os->full_path, os->pos, &index_length); s 1942 libavformat/dashenc.c dashenc_io_close(s, &os->out, os->temp_path); s 1967 libavformat/dashenc.c av_log(s, AV_LOG_VERBOSE, "Representation %d media segment %d written to: %s\n", i, os->segment_index, os->full_path); s 1973 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 1977 libavformat/dashenc.c dashenc_delete_media_segments(s, os, remove_count); s 1982 libavformat/dashenc.c for (i = 0; i < s->nb_streams; i++) { s 2012 libavformat/dashenc.c ret = write_manifest(s, final); s 2043 libavformat/dashenc.c static int dash_write_packet(AVFormatContext *s, AVPacket *pkt) s 2045 libavformat/dashenc.c DASHContext *c = s->priv_data; s 2046 libavformat/dashenc.c AVStream *st = s->streams[pkt->stream_index]; s 2052 libavformat/dashenc.c ret = update_stream_extradata(s, os, pkt, &st->avg_frame_rate); s 2069 libavformat/dashenc.c s->avoid_negative_ts == AVFMT_AVOID_NEG_TS_MAKE_ZERO) { s 2150 libavformat/dashenc.c av_log(s, AV_LOG_WARNING, s 2162 libavformat/dashenc.c if ((ret = dash_flush(s, 0, pkt->stream_index)) < 0) s 2207 libavformat/dashenc.c if ((ret = ff_write_chained(os->ctx, 0, pkt, s, 0)) < 0) s 2216 libavformat/dashenc.c flush_init_segment(s, os); s 2221 libavformat/dashenc.c const char *proto = avio_find_protocol_name(s->url); s 2234 libavformat/dashenc.c ret = dashenc_io_open(s, &os->out, os->temp_path, &opts); s 2237 libavformat/dashenc.c return handle_io_open_error(s, ret, os->temp_path); s 2241 libavformat/dashenc.c write_hls_media_playlist(os, s, pkt->stream_index, 0, prefetch_url); s 2261 libavformat/dashenc.c static int dash_write_trailer(AVFormatContext *s) s 2263 libavformat/dashenc.c DASHContext *c = s->priv_data; s 2266 libavformat/dashenc.c if (s->nb_streams > 0) { s 2272 libavformat/dashenc.c s->streams[0]->time_base, s 2275 libavformat/dashenc.c s->streams[0]->time_base, s 2278 libavformat/dashenc.c dash_flush(s, 1, -1); s 2281 libavformat/dashenc.c for (i = 0; i < s->nb_streams; ++i) { s 2283 libavformat/dashenc.c dashenc_delete_media_segments(s, os, os->nb_segments); s 2284 libavformat/dashenc.c dashenc_delete_segment_file(s, os->initfile); s 2288 libavformat/dashenc.c dashenc_delete_file(s, filename); s 2291 libavformat/dashenc.c dashenc_delete_file(s, s->url); s 2296 libavformat/dashenc.c dashenc_delete_file(s, filename); s 2303 libavformat/dashenc.c static int dash_check_bitstream(struct AVFormatContext *s, const AVPacket *avpkt) s 2305 libavformat/dashenc.c DASHContext *c = s->priv_data; s 2314 libavformat/dashenc.c AVStream *st = s->streams[avpkt->stream_index]; s 25 libavformat/dauddec.c static int daud_header(AVFormatContext *s) { s 26 libavformat/dauddec.c AVStream *st = avformat_new_stream(s, NULL); s 41 libavformat/dauddec.c static int daud_packet(AVFormatContext *s, AVPacket *pkt) { s 42 libavformat/dauddec.c AVIOContext *pb = s->pb; s 24 libavformat/daudenc.c static int daud_write_header(struct AVFormatContext *s) s 26 libavformat/daudenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 32 libavformat/daudenc.c static int daud_write_packet(struct AVFormatContext *s, AVPacket *pkt) s 35 libavformat/daudenc.c av_log(s, AV_LOG_ERROR, s 39 libavformat/daudenc.c avio_wb16(s->pb, pkt->size); s 40 libavformat/daudenc.c avio_wb16(s->pb, 0x8010); // unknown s 41 libavformat/daudenc.c avio_write(s->pb, pkt->data, pkt->size); s 33 libavformat/dcstr.c static int dcstr_read_header(AVFormatContext *s) s 39 libavformat/dcstr.c st = avformat_new_stream(s, NULL); s 44 libavformat/dcstr.c st->codecpar->channels = avio_rl32(s->pb); s 45 libavformat/dcstr.c st->codecpar->sample_rate = avio_rl32(s->pb); s 46 libavformat/dcstr.c codec = avio_rl32(s->pb); s 47 libavformat/dcstr.c align = avio_rl32(s->pb); s 48 libavformat/dcstr.c avio_skip(s->pb, 4); s 49 libavformat/dcstr.c st->duration = avio_rl32(s->pb); s 50 libavformat/dcstr.c mult = avio_rl32(s->pb); s 52 libavformat/dcstr.c av_log(s, AV_LOG_ERROR, "invalid number of channels %d x %d\n", st->codecpar->channels, mult); s 63 libavformat/dcstr.c default: avpriv_request_sample(s, "codec %X", codec); s 67 libavformat/dcstr.c avio_skip(s->pb, 0x800 - avio_tell(s->pb)); s 73 libavformat/dcstr.c static int dcstr_read_packet(AVFormatContext *s, AVPacket *pkt) s 75 libavformat/dcstr.c AVCodecParameters *par = s->streams[0]->codecpar; s 76 libavformat/dcstr.c return av_get_packet(s->pb, pkt, par->block_align); s 37 libavformat/derf.c static int derf_read_header(AVFormatContext *s) s 40 libavformat/derf.c AVIOContext *pb = s->pb; s 46 libavformat/derf.c st = avformat_new_stream(s, NULL); s 39 libavformat/dfa.c static int dfa_read_header(AVFormatContext *s) s 41 libavformat/dfa.c AVIOContext *pb = s->pb; s 48 libavformat/dfa.c av_log(s, AV_LOG_ERROR, "Invalid magic for DFA\n"); s 55 libavformat/dfa.c st = avformat_new_stream(s, NULL); s 65 libavformat/dfa.c av_log(s, AV_LOG_WARNING, "Zero FPS reported, defaulting to 10\n"); s 81 libavformat/dfa.c static int dfa_read_packet(AVFormatContext *s, AVPacket *pkt) s 83 libavformat/dfa.c AVIOContext *pb = s->pb; s 102 libavformat/dfa.c av_log(s, AV_LOG_ERROR, "Too large chunk size: %"PRIu32"\n", frame_size); s 107 libavformat/dfa.c av_log(s, AV_LOG_WARNING, s 77 libavformat/dhav.c static int parse_ext(AVFormatContext *s, int length) s 79 libavformat/dhav.c DHAVContext *dhav = s->priv_data; s 83 libavformat/dhav.c int type = avio_r8(s->pb); s 87 libavformat/dhav.c ret = avio_skip(s->pb, 1); s 88 libavformat/dhav.c dhav->width = 8 * avio_r8(s->pb); s 89 libavformat/dhav.c dhav->height = 8 * avio_r8(s->pb); s 93 libavformat/dhav.c ret = avio_skip(s->pb, 1); s 94 libavformat/dhav.c dhav->video_codec = avio_r8(s->pb); s 95 libavformat/dhav.c dhav->frame_rate = avio_r8(s->pb); s 99 libavformat/dhav.c ret = avio_skip(s->pb, 3); s 100 libavformat/dhav.c dhav->width = avio_rl16(s->pb); s 101 libavformat/dhav.c dhav->height = avio_rl16(s->pb); s 105 libavformat/dhav.c dhav->audio_channels = avio_r8(s->pb); s 106 libavformat/dhav.c dhav->audio_codec = avio_r8(s->pb); s 107 libavformat/dhav.c index = avio_r8(s->pb); s 116 libavformat/dhav.c ret = avio_skip(s->pb, 7); s 120 libavformat/dhav.c ret = avio_skip(s->pb, 1); s 121 libavformat/dhav.c dhav->audio_channels = avio_r8(s->pb); s 122 libavformat/dhav.c dhav->audio_codec = avio_r8(s->pb); s 123 libavformat/dhav.c index = avio_r8(s->pb); s 129 libavformat/dhav.c ret = avio_skip(s->pb, 3); s 139 libavformat/dhav.c ret = avio_skip(s->pb, 7); s 150 libavformat/dhav.c ret = avio_skip(s->pb, 3); s 154 libavformat/dhav.c av_log(s, AV_LOG_INFO, "Unknown type: %X, skipping rest of header.\n", type); s 155 libavformat/dhav.c ret = avio_skip(s->pb, length - 1); s 166 libavformat/dhav.c static int read_chunk(AVFormatContext *s) s 168 libavformat/dhav.c DHAVContext *dhav = s->priv_data; s 173 libavformat/dhav.c if (avio_feof(s->pb)) s 176 libavformat/dhav.c if (avio_rl32(s->pb) != MKTAG('D','H','A','V')) { s 178 libavformat/dhav.c avio_seek(s->pb, dhav->last_good_pos, SEEK_SET); s 180 libavformat/dhav.c while (avio_rl32(s->pb) != MKTAG('D','H','A','V')) { s 181 libavformat/dhav.c if (avio_feof(s->pb)) s 184 libavformat/dhav.c ret = avio_skip(s->pb, 0x8000 - 4); s 190 libavformat/dhav.c start = avio_tell(s->pb) - 4; s 192 libavformat/dhav.c dhav->type = avio_r8(s->pb); s 193 libavformat/dhav.c dhav->subtype = avio_r8(s->pb); s 194 libavformat/dhav.c dhav->channel = avio_r8(s->pb); s 195 libavformat/dhav.c dhav->frame_subnumber = avio_r8(s->pb); s 196 libavformat/dhav.c dhav->frame_number = avio_rl32(s->pb); s 197 libavformat/dhav.c frame_length = avio_rl32(s->pb); s 198 libavformat/dhav.c dhav->date = avio_rl32(s->pb); s 203 libavformat/dhav.c ret = avio_skip(s->pb, frame_length - 20); s 207 libavformat/dhav.c dhav->timestamp = avio_rl16(s->pb); s 208 libavformat/dhav.c ext_length = avio_r8(s->pb); s 209 libavformat/dhav.c avio_skip(s->pb, 1); // checksum s 211 libavformat/dhav.c ret = parse_ext(s, ext_length); s 215 libavformat/dhav.c end = avio_tell(s->pb); s 239 libavformat/dhav.c static int64_t get_duration(AVFormatContext *s) s 241 libavformat/dhav.c DHAVContext *dhav = s->priv_data; s 242 libavformat/dhav.c int64_t start_pos = avio_tell(s->pb); s 246 libavformat/dhav.c if (!s->pb->seekable) s 249 libavformat/dhav.c avio_seek(s->pb, avio_size(s->pb) - 8, SEEK_SET); s 250 libavformat/dhav.c if (avio_rl32(s->pb) == MKTAG('d','h','a','v')) { s 251 libavformat/dhav.c int seek_back = avio_rl32(s->pb); s 253 libavformat/dhav.c avio_seek(s->pb, -seek_back, SEEK_CUR); s 254 libavformat/dhav.c read_chunk(s); s 258 libavformat/dhav.c avio_seek(s->pb, start_pos, SEEK_SET); s 262 libavformat/dhav.c avio_seek(s->pb, start_pos, SEEK_SET); s 264 libavformat/dhav.c read_chunk(s); s 268 libavformat/dhav.c avio_seek(s->pb, start_pos, SEEK_SET); s 273 libavformat/dhav.c static int dhav_read_header(AVFormatContext *s) s 275 libavformat/dhav.c DHAVContext *dhav = s->priv_data; s 278 libavformat/dhav.c ffio_ensure_seekback(s->pb, 5); s 279 libavformat/dhav.c avio_read(s->pb, signature, sizeof(signature)); s 281 libavformat/dhav.c avio_skip(s->pb, 0x400 - 5); s 282 libavformat/dhav.c dhav->last_good_pos = avio_tell(s->pb); s 285 libavformat/dhav.c avio_seek(s->pb, -5, SEEK_CUR); s 286 libavformat/dhav.c dhav->last_good_pos = avio_tell(s->pb); s 287 libavformat/dhav.c } else if (s->pb->seekable) { s 288 libavformat/dhav.c avio_seek(s->pb, avio_size(s->pb) - 8, SEEK_SET); s 289 libavformat/dhav.c while (avio_rl32(s->pb) == MKTAG('d','h','a','v')) { s 292 libavformat/dhav.c seek_back = avio_rl32(s->pb) + 8; s 293 libavformat/dhav.c dhav->last_good_pos = avio_tell(s->pb); s 294 libavformat/dhav.c avio_seek(s->pb, -seek_back, SEEK_CUR); s 296 libavformat/dhav.c avio_seek(s->pb, dhav->last_good_pos, SEEK_SET); s 300 libavformat/dhav.c dhav->duration = get_duration(s); s 301 libavformat/dhav.c dhav->last_good_pos = avio_tell(s->pb); s 302 libavformat/dhav.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 309 libavformat/dhav.c static int64_t get_pts(AVFormatContext *s, int stream_index) s 311 libavformat/dhav.c DHAVStream *dst = s->streams[stream_index]->priv_data; s 312 libavformat/dhav.c DHAVContext *dhav = s->priv_data; s 335 libavformat/dhav.c static int dhav_read_packet(AVFormatContext *s, AVPacket *pkt) s 337 libavformat/dhav.c DHAVContext *dhav = s->priv_data; s 341 libavformat/dhav.c while ((ret = read_chunk(s)) == 0) s 348 libavformat/dhav.c AVStream *st = avformat_new_stream(s, NULL); s 362 libavformat/dhav.c default: avpriv_request_sample(s, "Unknown video codec %X\n", dhav->video_codec); s 377 libavformat/dhav.c AVStream *st = avformat_new_stream(s, NULL); s 395 libavformat/dhav.c default: avpriv_request_sample(s, "Unknown audio codec %X\n", dhav->audio_codec); s 411 libavformat/dhav.c avio_skip(s->pb, ret); s 412 libavformat/dhav.c if (avio_rl32(s->pb) == MKTAG('d','h','a','v')) s 413 libavformat/dhav.c avio_skip(s->pb, 4); s 418 libavformat/dhav.c ret = av_get_packet(s->pb, pkt, size); s 426 libavformat/dhav.c pkt->pts = get_pts(s, pkt->stream_index); s 428 libavformat/dhav.c if (avio_rl32(s->pb) == MKTAG('d','h','a','v')) s 429 libavformat/dhav.c avio_skip(s->pb, 4); s 434 libavformat/dhav.c static int dhav_read_seek(AVFormatContext *s, int stream_index, s 437 libavformat/dhav.c DHAVContext *dhav = s->priv_data; s 438 libavformat/dhav.c AVStream *st = s->streams[stream_index]; s 444 libavformat/dhav.c if (avio_seek(s->pb, st->index_entries[index].pos, SEEK_SET) < 0) s 449 libavformat/dhav.c for (int n = 0; n < s->nb_streams; n++) { s 450 libavformat/dhav.c AVStream *st = s->streams[n]; s 456 libavformat/dhav.c dhav->last_good_pos = avio_tell(s->pb); s 51 libavformat/dsfdec.c static void read_id3(AVFormatContext *s, uint64_t id3pos) s 54 libavformat/dsfdec.c if (avio_seek(s->pb, id3pos, SEEK_SET) < 0) s 57 libavformat/dsfdec.c ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, 0); s 59 libavformat/dsfdec.c ff_id3v2_parse_apic(s, id3v2_extra_meta); s 60 libavformat/dsfdec.c ff_id3v2_parse_chapters(s, id3v2_extra_meta); s 65 libavformat/dsfdec.c static int dsf_read_header(AVFormatContext *s) s 67 libavformat/dsfdec.c DSFContext *dsf = s->priv_data; s 68 libavformat/dsfdec.c AVIOContext *pb = s->pb; s 78 libavformat/dsfdec.c st = avformat_new_stream(s, NULL); s 85 libavformat/dsfdec.c read_id3(s, id3pos); s 95 libavformat/dsfdec.c avpriv_request_sample(s, "unknown format version"); s 100 libavformat/dsfdec.c avpriv_request_sample(s, "unknown format id"); s 108 libavformat/dsfdec.c avpriv_request_sample(s, "channel type %i", channel_type); s 121 libavformat/dsfdec.c avpriv_request_sample(s, "unknown most significant bit"); s 128 libavformat/dsfdec.c avpriv_request_sample(s, "block_align overflow"); s 143 libavformat/dsfdec.c s->internal->data_offset = avio_tell(pb); s 148 libavformat/dsfdec.c static int dsf_read_packet(AVFormatContext *s, AVPacket *pkt) s 150 libavformat/dsfdec.c DSFContext *dsf = s->priv_data; s 151 libavformat/dsfdec.c AVIOContext *pb = s->pb; s 152 libavformat/dsfdec.c AVStream *st = s->streams[0]; s 163 libavformat/dsfdec.c int64_t data_pos = pos - s->internal->data_offset; s 186 libavformat/dsfdec.c pkt->pts = (pos - s->internal->data_offset) / st->codecpar->channels; s 196 libavformat/dsfdec.c pkt->pts = (pos - s->internal->data_offset) / st->codecpar->channels; s 96 libavformat/dsicin.c static int cin_read_header(AVFormatContext *s) s 99 libavformat/dsicin.c CinDemuxContext *cin = s->priv_data; s 101 libavformat/dsicin.c AVIOContext *pb = s->pb; s 113 libavformat/dsicin.c st = avformat_new_stream(s, NULL); s 126 libavformat/dsicin.c st = avformat_new_stream(s, NULL); s 164 libavformat/dsicin.c static int cin_read_packet(AVFormatContext *s, AVPacket *pkt) s 166 libavformat/dsicin.c CinDemuxContext *cin = s->priv_data; s 167 libavformat/dsicin.c AVIOContext *pb = s->pb; s 68 libavformat/dss.c static int dss_read_metadata_date(AVFormatContext *s, unsigned int offset, s 71 libavformat/dss.c AVIOContext *pb = s->pb; s 78 libavformat/dss.c ret = avio_read(s->pb, string, DSS_TIME_SIZE); s 88 libavformat/dss.c return av_dict_set(&s->metadata, key, datetime, 0); s 91 libavformat/dss.c static int dss_read_metadata_string(AVFormatContext *s, unsigned int offset, s 94 libavformat/dss.c AVIOContext *pb = s->pb; s 104 libavformat/dss.c ret = avio_read(s->pb, value, size); s 110 libavformat/dss.c return av_dict_set(&s->metadata, key, value, AV_DICT_DONT_STRDUP_VAL); s 113 libavformat/dss.c static int dss_read_header(AVFormatContext *s) s 115 libavformat/dss.c DSSDemuxContext *ctx = s->priv_data; s 116 libavformat/dss.c AVIOContext *pb = s->pb; s 120 libavformat/dss.c st = avformat_new_stream(s, NULL); s 127 libavformat/dss.c ret = dss_read_metadata_string(s, DSS_HEAD_OFFSET_AUTHOR, s 132 libavformat/dss.c ret = dss_read_metadata_date(s, DSS_HEAD_OFFSET_END_TIME, "date"); s 136 libavformat/dss.c ret = dss_read_metadata_string(s, DSS_HEAD_OFFSET_COMMENT, s 151 libavformat/dss.c avpriv_request_sample(s, "Support for codec %x in DSS", s 174 libavformat/dss.c static void dss_skip_audio_header(AVFormatContext *s, AVPacket *pkt) s 176 libavformat/dss.c DSSDemuxContext *ctx = s->priv_data; s 177 libavformat/dss.c AVIOContext *pb = s->pb; s 206 libavformat/dss.c static int dss_sp_read_packet(AVFormatContext *s, AVPacket *pkt) s 208 libavformat/dss.c DSSDemuxContext *ctx = s->priv_data; s 209 libavformat/dss.c AVStream *st = s->streams[0]; s 211 libavformat/dss.c int64_t pos = avio_tell(s->pb); s 214 libavformat/dss.c dss_skip_audio_header(s, pkt); s 232 libavformat/dss.c s->bit_rate = 8LL * ctx->packet_size * st->codecpar->sample_rate * 512 / (506 * pkt->duration); s 237 libavformat/dss.c ret = avio_read(s->pb, ctx->dss_sp_buf + offset + buff_offset, s 242 libavformat/dss.c dss_skip_audio_header(s, pkt); s 246 libavformat/dss.c ret = avio_read(s->pb, ctx->dss_sp_buf + offset + buff_offset, s 263 libavformat/dss.c static int dss_723_1_read_packet(AVFormatContext *s, AVPacket *pkt) s 265 libavformat/dss.c DSSDemuxContext *ctx = s->priv_data; s 266 libavformat/dss.c AVStream *st = s->streams[0]; s 268 libavformat/dss.c int64_t pos = avio_tell(s->pb); s 271 libavformat/dss.c dss_skip_audio_header(s, pkt); s 274 libavformat/dss.c byte = avio_r8(s->pb); s 291 libavformat/dss.c s->bit_rate = 8LL * size * st->codecpar->sample_rate * 512 / (506 * pkt->duration); s 298 libavformat/dss.c ret = avio_read(s->pb, pkt->data + offset, s 304 libavformat/dss.c dss_skip_audio_header(s, pkt); s 308 libavformat/dss.c ret = avio_read(s->pb, pkt->data + offset, size - offset); s 316 libavformat/dss.c static int dss_read_packet(AVFormatContext *s, AVPacket *pkt) s 318 libavformat/dss.c DSSDemuxContext *ctx = s->priv_data; s 321 libavformat/dss.c return dss_sp_read_packet(s, pkt); s 323 libavformat/dss.c return dss_723_1_read_packet(s, pkt); s 326 libavformat/dss.c static int dss_read_seek(AVFormatContext *s, int stream_index, s 329 libavformat/dss.c DSSDemuxContext *ctx = s->priv_data; s 344 libavformat/dss.c ret = avio_seek(s->pb, seekto, SEEK_SET); s 348 libavformat/dss.c avio_read(s->pb, header, DSS_AUDIO_BLOCK_HEADER_SIZE); s 355 libavformat/dss.c offset = avio_skip(s->pb, -DSS_AUDIO_BLOCK_HEADER_SIZE); s 358 libavformat/dss.c offset = avio_skip(s->pb, offset - DSS_AUDIO_BLOCK_HEADER_SIZE); s 53 libavformat/dtshddec.c static int dtshd_read_header(AVFormatContext *s) s 55 libavformat/dtshddec.c DTSHDDemuxContext *dtshd = s->priv_data; s 56 libavformat/dtshddec.c AVIOContext *pb = s->pb; s 63 libavformat/dtshddec.c st = avformat_new_stream(s, NULL); s 78 libavformat/dtshddec.c av_log(s, AV_LOG_ERROR, "chunk size too small\n"); s 82 libavformat/dtshddec.c av_log(s, AV_LOG_ERROR, "chunk size too big\n"); s 119 libavformat/dtshddec.c av_dict_set(&s->metadata, "fileinfo", value, s 142 libavformat/dtshddec.c static int raw_read_packet(AVFormatContext *s, AVPacket *pkt) s 144 libavformat/dtshddec.c DTSHDDemuxContext *dtshd = s->priv_data; s 148 libavformat/dtshddec.c left = dtshd->data_end - avio_tell(s->pb); s 153 libavformat/dtshddec.c ret = av_get_packet(s->pb, pkt, size); s 324 libavformat/dv.c DVDemuxContext *avpriv_dv_init_demux(AVFormatContext *s) s 332 libavformat/dv.c c->vst = avformat_new_stream(s, NULL); s 338 libavformat/dv.c c->fctx = s; s 417 libavformat/dv.c static int64_t dv_frame_offset(AVFormatContext *s, DVDemuxContext *c, s 423 libavformat/dv.c int64_t size = avio_size(s->pb) - s->internal->data_offset; s 433 libavformat/dv.c return offset + s->internal->data_offset; s 459 libavformat/dv.c static int dv_read_timecode(AVFormatContext *s) { s 462 libavformat/dv.c int64_t pos = avio_tell(s->pb); s 469 libavformat/dv.c RawDVContext *c = s->priv_data; s 473 libavformat/dv.c ret = avio_read(s->pb, partial_frame, partial_frame_size); s 484 libavformat/dv.c av_dict_set(&s->metadata, "timecode", timecode, 0); s 486 libavformat/dv.c av_log(s, AV_LOG_ERROR, "Detected timecode is invalid\n"); s 490 libavformat/dv.c avio_seek(s->pb, pos, SEEK_SET); s 494 libavformat/dv.c static int dv_read_header(AVFormatContext *s) s 497 libavformat/dv.c RawDVContext *c = s->priv_data; s 500 libavformat/dv.c c->dv_demux = avpriv_dv_init_demux(s); s 504 libavformat/dv.c state = avio_rb32(s->pb); s 506 libavformat/dv.c if (avio_feof(s->pb)) { s 507 libavformat/dv.c av_log(s, AV_LOG_ERROR, "Cannot find DV header.\n"); s 512 libavformat/dv.c marker_pos = avio_tell(s->pb); s 513 libavformat/dv.c if (state == 0xff3f0701 && avio_tell(s->pb) - marker_pos == 80) { s 514 libavformat/dv.c avio_seek(s->pb, -163, SEEK_CUR); s 515 libavformat/dv.c state = avio_rb32(s->pb); s 518 libavformat/dv.c state = (state << 8) | avio_r8(s->pb); s 522 libavformat/dv.c if (avio_read(s->pb, c->buf + 4, DV_PROFILE_BYTES - 4) != DV_PROFILE_BYTES - 4 || s 523 libavformat/dv.c avio_seek(s->pb, -DV_PROFILE_BYTES, SEEK_CUR) < 0) { s 532 libavformat/dv.c av_log(s, AV_LOG_ERROR, s 538 libavformat/dv.c s->bit_rate = av_rescale_q(c->dv_demux->sys->frame_size, s 542 libavformat/dv.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) s 543 libavformat/dv.c dv_read_timecode(s); s 553 libavformat/dv.c static int dv_read_packet(AVFormatContext *s, AVPacket *pkt) s 556 libavformat/dv.c RawDVContext *c = s->priv_data; s 562 libavformat/dv.c int64_t pos = avio_tell(s->pb); s 566 libavformat/dv.c ret = avio_read(s->pb, c->buf, size); s 579 libavformat/dv.c static int dv_read_seek(AVFormatContext *s, int stream_index, s 582 libavformat/dv.c RawDVContext *r = s->priv_data; s 584 libavformat/dv.c int64_t offset = dv_frame_offset(s, c, timestamp, flags); s 586 libavformat/dv.c if (avio_seek(s->pb, offset, SEEK_SET) < 0) s 593 libavformat/dv.c static int dv_read_close(AVFormatContext *s) s 595 libavformat/dv.c RawDVContext *c = s->priv_data; s 34 libavformat/dv.h DVDemuxContext* avpriv_dv_init_demux(AVFormatContext* s); s 237 libavformat/dvenc.c static int dv_assemble_frame(AVFormatContext *s, s 249 libavformat/dvenc.c av_log(s, AV_LOG_ERROR, "Can't process DV frame #%d. Insufficient audio data or severe sync problem.\n", c->frames); s 251 libavformat/dvenc.c av_log(s, AV_LOG_ERROR, "Unexpected frame size, %d != %d\n", s 264 libavformat/dvenc.c av_log(s, AV_LOG_ERROR, "Can't process DV frame #%d. Insufficient video data or severe sync problem.\n", c->frames); s 298 libavformat/dvenc.c static DVMuxContext* dv_init_mux(AVFormatContext* s) s 300 libavformat/dvenc.c DVMuxContext *c = s->priv_data; s 305 libavformat/dvenc.c if (s->nb_streams > 5) s 309 libavformat/dvenc.c for (i=0; i<s->nb_streams; i++) { s 310 libavformat/dvenc.c switch (s->streams[i]->codecpar->codec_type) { s 313 libavformat/dvenc.c vst = s->streams[i]; s 317 libavformat/dvenc.c c->ast[c->n_ast++] = s->streams[i]; s 360 libavformat/dvenc.c ff_parse_creation_time_metadata(s, &c->start_time, 1); s 374 libavformat/dvenc.c static int dv_write_header(AVFormatContext *s) s 377 libavformat/dvenc.c DVMuxContext *dvc = s->priv_data; s 378 libavformat/dvenc.c AVDictionaryEntry *tcr = av_dict_get(s->metadata, "timecode", NULL, 0); s 380 libavformat/dvenc.c if (!dv_init_mux(s)) { s 381 libavformat/dvenc.c av_log(s, AV_LOG_ERROR, "Can't initialize DV format!\n" s 391 libavformat/dvenc.c for (i = 0; i < s->nb_streams; i++) { s 392 libavformat/dvenc.c tcr = av_dict_get(s->streams[i]->metadata, "timecode", NULL, 0); s 397 libavformat/dvenc.c if (tcr && av_timecode_init_from_string(&dvc->tc, rate, tcr->value, s) >= 0) s 399 libavformat/dvenc.c return av_timecode_init(&dvc->tc, rate, 0, 0, s); s 402 libavformat/dvenc.c static int dv_write_packet(struct AVFormatContext *s, AVPacket *pkt) s 407 libavformat/dvenc.c fsize = dv_assemble_frame(s, s->priv_data, s->streams[pkt->stream_index], s 410 libavformat/dvenc.c avio_write(s->pb, frame, fsize); s 421 libavformat/dvenc.c static void dv_deinit(AVFormatContext *s) s 423 libavformat/dvenc.c DVMuxContext *c = s->priv_data; s 56 libavformat/dxa.c static int dxa_read_header(AVFormatContext *s) s 58 libavformat/dxa.c AVIOContext *pb = s->pb; s 59 libavformat/dxa.c DXAContext *c = s->priv_data; s 74 libavformat/dxa.c av_log(s, AV_LOG_ERROR, "File contains no frames ???\n"); s 93 libavformat/dxa.c st = avformat_new_stream(s, NULL); s 106 libavformat/dxa.c ast = avformat_new_stream(s, NULL); s 109 libavformat/dxa.c ret = ff_get_wav_header(s, pb, ast->codecpar, fsize, 0); s 145 libavformat/dxa.c s->start_time = 0; s 146 libavformat/dxa.c s->duration = (int64_t)c->frames * AV_TIME_BASE * num / den; s 147 libavformat/dxa.c av_log(s, AV_LOG_DEBUG, "%d frame(s)\n",c->frames); s 152 libavformat/dxa.c static int dxa_read_packet(AVFormatContext *s, AVPacket *pkt) s 154 libavformat/dxa.c DXAContext *c = s->priv_data; s 162 libavformat/dxa.c avio_seek(s->pb, c->wavpos, SEEK_SET); s 164 libavformat/dxa.c ret = av_get_packet(s->pb, pkt, size); s 169 libavformat/dxa.c c->wavpos = avio_tell(s->pb); s 172 libavformat/dxa.c avio_seek(s->pb, c->vidpos, SEEK_SET); s 173 libavformat/dxa.c while(!avio_feof(s->pb) && c->frames){ s 175 libavformat/dxa.c if ((ret = avio_read(s->pb, buf, 4)) != 4) { s 176 libavformat/dxa.c av_log(s, AV_LOG_ERROR, "failed reading chunk type\n"); s 188 libavformat/dxa.c c->vidpos = avio_tell(s->pb); s 194 libavformat/dxa.c avio_read(s->pb, pal + 4, 768); s 197 libavformat/dxa.c if ((ret = avio_read(s->pb, buf + 4, DXA_EXTRA_SIZE - 4)) != DXA_EXTRA_SIZE - 4) { s 198 libavformat/dxa.c av_log(s, AV_LOG_ERROR, "failed reading dxa_extra\n"); s 203 libavformat/dxa.c av_log(s, AV_LOG_ERROR, "Frame size is too big: %"PRIu32"\n", s 211 libavformat/dxa.c ret = avio_read(s->pb, pkt->data + DXA_EXTRA_SIZE + pal_size, size); s 218 libavformat/dxa.c c->vidpos = avio_tell(s->pb); s 222 libavformat/dxa.c av_log(s, AV_LOG_ERROR, "Unknown tag %s\n", av_fourcc2str(tag)); s 48 libavformat/eacdata.c static int cdata_read_header(AVFormatContext *s) s 50 libavformat/eacdata.c CdataDemuxContext *cdata = s->priv_data; s 51 libavformat/eacdata.c AVIOContext *pb = s->pb; s 63 libavformat/eacdata.c av_log(s, AV_LOG_INFO, "unknown header 0x%04x\n", header); s 70 libavformat/eacdata.c st = avformat_new_stream(s, NULL); s 85 libavformat/eacdata.c static int cdata_read_packet(AVFormatContext *s, AVPacket *pkt) s 87 libavformat/eacdata.c CdataDemuxContext *cdata = s->priv_data; s 90 libavformat/eacdata.c int ret = av_get_packet(s->pb, pkt, packet_size); s 111 libavformat/electronicarts.c static int process_audio_header_elements(AVFormatContext *s) s 113 libavformat/electronicarts.c EaDemuxContext *ea = s->priv_data; s 114 libavformat/electronicarts.c AVIOContext *pb = s->pb; s 129 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, "entered audio subheader\n"); s 138 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 143 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 149 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 155 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 161 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 166 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 169 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, "exited audio subheader\n"); s 174 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 179 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 185 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 193 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, "end of header block reached\n"); s 197 libavformat/electronicarts.c av_log(s, AV_LOG_DEBUG, s 225 libavformat/electronicarts.c avpriv_request_sample(s, "stream type; revision=%i", revision); s 238 libavformat/electronicarts.c avpriv_request_sample(s, "stream type; revision=%i, revision2=%i", revision, revision2); s 250 libavformat/electronicarts.c avpriv_request_sample(s, "stream type; revision2=%i", revision2); s 255 libavformat/electronicarts.c avpriv_request_sample(s, s 269 libavformat/electronicarts.c static void process_audio_header_eacs(AVFormatContext *s) s 271 libavformat/electronicarts.c EaDemuxContext *ea = s->priv_data; s 272 libavformat/electronicarts.c AVIOContext *pb = s->pb; s 300 libavformat/electronicarts.c avpriv_request_sample(s, s 306 libavformat/electronicarts.c static void process_audio_header_sead(AVFormatContext *s) s 308 libavformat/electronicarts.c EaDemuxContext *ea = s->priv_data; s 309 libavformat/electronicarts.c AVIOContext *pb = s->pb; s 317 libavformat/electronicarts.c static void process_video_header_mdec(AVFormatContext *s, VideoProperties *video) s 319 libavformat/electronicarts.c AVIOContext *pb = s->pb; s 327 libavformat/electronicarts.c static int process_video_header_vp6(AVFormatContext *s, VideoProperties *video) s 329 libavformat/electronicarts.c AVIOContext *pb = s->pb; s 337 libavformat/electronicarts.c av_log(s, AV_LOG_ERROR, "Timebase is invalid\n"); s 345 libavformat/electronicarts.c static void process_video_header_cmv(AVFormatContext *s, VideoProperties *video) s 349 libavformat/electronicarts.c avio_skip(s->pb, 10); s 350 libavformat/electronicarts.c fps = avio_rl16(s->pb); s 358 libavformat/electronicarts.c static int process_ea_header(AVFormatContext *s) s 361 libavformat/electronicarts.c EaDemuxContext *ea = s->priv_data; s 362 libavformat/electronicarts.c AVIOContext *pb = s->pb; s 377 libavformat/electronicarts.c av_log(s, AV_LOG_ERROR, "chunk size too small\n"); s 384 libavformat/electronicarts.c avpriv_request_sample(s, "unknown 1SNh headerid"); s 387 libavformat/electronicarts.c process_audio_header_eacs(s); s 399 libavformat/electronicarts.c err = process_audio_header_elements(s); s 403 libavformat/electronicarts.c process_audio_header_sead(s); s 407 libavformat/electronicarts.c process_video_header_cmv(s, &ea->video); s 415 libavformat/electronicarts.c process_video_header_mdec(s, &ea->video); s 440 libavformat/electronicarts.c err = process_video_header_vp6(s, &ea->video); s 444 libavformat/electronicarts.c err = process_video_header_vp6(s, &ea->alpha); s 449 libavformat/electronicarts.c av_log(s, AV_LOG_ERROR, "error parsing header: %i\n", err); s 490 libavformat/electronicarts.c static int init_video_stream(AVFormatContext *s, VideoProperties *video) s 498 libavformat/electronicarts.c st = avformat_new_stream(s, NULL); s 518 libavformat/electronicarts.c static int ea_read_header(AVFormatContext *s) s 520 libavformat/electronicarts.c EaDemuxContext *ea = s->priv_data; s 523 libavformat/electronicarts.c if (process_ea_header(s)<=0) s 526 libavformat/electronicarts.c if (init_video_stream(s, &ea->video) || init_video_stream(s, &ea->alpha)) s 531 libavformat/electronicarts.c av_log(s, AV_LOG_WARNING, s 537 libavformat/electronicarts.c av_log(s, AV_LOG_ERROR, s 543 libavformat/electronicarts.c av_log(s, AV_LOG_ERROR, s 550 libavformat/electronicarts.c st = avformat_new_stream(s, NULL); s 572 libavformat/electronicarts.c static int ea_read_packet(AVFormatContext *s, AVPacket *pkt) s 574 libavformat/electronicarts.c EaDemuxContext *ea = s->priv_data; s 575 libavformat/electronicarts.c AVIOContext *pb = s->pb; s 615 libavformat/electronicarts.c avpriv_request_sample(s, "video header followed by audio packet"); s 635 libavformat/electronicarts.c av_log(s, AV_LOG_ERROR, "Packet is too short\n"); s 40 libavformat/epafdec.c static int epaf_read_header(AVFormatContext *s) s 45 libavformat/epafdec.c avio_skip(s->pb, 4); s 46 libavformat/epafdec.c if (avio_rl32(s->pb)) s 49 libavformat/epafdec.c le = avio_rl32(s->pb); s 54 libavformat/epafdec.c sample_rate = avio_rl32(s->pb); s 55 libavformat/epafdec.c codec = avio_rl32(s->pb); s 56 libavformat/epafdec.c channels = avio_rl32(s->pb); s 58 libavformat/epafdec.c sample_rate = avio_rb32(s->pb); s 59 libavformat/epafdec.c codec = avio_rb32(s->pb); s 60 libavformat/epafdec.c channels = avio_rb32(s->pb); s 66 libavformat/epafdec.c st = avformat_new_stream(s, NULL); s 81 libavformat/epafdec.c avpriv_request_sample(s, "24-bit Paris PCM format"); s 91 libavformat/epafdec.c if (avio_skip(s->pb, 2024) < 0) s 36 libavformat/ffmetadec.c static int64_t read_line_to_bprint_escaped(AVIOContext *s, AVBPrint *bp) s 47 libavformat/ffmetadec.c c = avio_r8(s); s 57 libavformat/ffmetadec.c if (c == '\r' && avio_r8(s) != '\n' && !avio_feof(s)) s 58 libavformat/ffmetadec.c avio_skip(s, -1); s 60 libavformat/ffmetadec.c if (!c && s->error) s 61 libavformat/ffmetadec.c return s->error; s 63 libavformat/ffmetadec.c if (!c && !read && avio_feof(s)) s 69 libavformat/ffmetadec.c static void get_bprint_line(AVIOContext *s, AVBPrint *bp) s 74 libavformat/ffmetadec.c read_line_to_bprint_escaped(s, bp); s 75 libavformat/ffmetadec.c } while (!avio_feof(s) && (bp->str[0] == ';' || bp->str[0] == '#' || bp->str[0] == 0)); s 78 libavformat/ffmetadec.c static void get_line(AVIOContext *s, uint8_t *buf, int size) s 84 libavformat/ffmetadec.c while ((c = avio_r8(s))) { s 88 libavformat/ffmetadec.c c = avio_r8(s); s 96 libavformat/ffmetadec.c } while (!avio_feof(s) && (buf[0] == ';' || buf[0] == '#' || buf[0] == 0)); s 99 libavformat/ffmetadec.c static AVChapter *read_chapter(AVFormatContext *s) s 105 libavformat/ffmetadec.c get_line(s->pb, line, sizeof(line)); s 108 libavformat/ffmetadec.c get_line(s->pb, line, sizeof(line)); s 110 libavformat/ffmetadec.c av_log(s, AV_LOG_ERROR, "Expected chapter start timestamp, found %s.\n", line); s 111 libavformat/ffmetadec.c start = (s->nb_chapters && s->chapters[s->nb_chapters - 1]->end != AV_NOPTS_VALUE) ? s 112 libavformat/ffmetadec.c s->chapters[s->nb_chapters - 1]->end : 0; s 114 libavformat/ffmetadec.c get_line(s->pb, line, sizeof(line)); s 117 libavformat/ffmetadec.c av_log(s, AV_LOG_ERROR, "Expected chapter end timestamp, found %s.\n", line); s 121 libavformat/ffmetadec.c return avpriv_new_chapter(s, s->nb_chapters, tb, start, end, NULL); s 171 libavformat/ffmetadec.c static int read_header(AVFormatContext *s) s 173 libavformat/ffmetadec.c AVDictionary **m = &s->metadata; s 178 libavformat/ffmetadec.c while(!avio_feof(s->pb)) { s 179 libavformat/ffmetadec.c get_bprint_line(s->pb, &bp); s 182 libavformat/ffmetadec.c AVStream *st = avformat_new_stream(s, NULL); s 192 libavformat/ffmetadec.c AVChapter *ch = read_chapter(s); s 204 libavformat/ffmetadec.c s->start_time = 0; s 205 libavformat/ffmetadec.c if (s->nb_chapters) s 206 libavformat/ffmetadec.c s->duration = av_rescale_q(s->chapters[s->nb_chapters - 1]->end, s 207 libavformat/ffmetadec.c s->chapters[s->nb_chapters - 1]->time_base, s 213 libavformat/ffmetadec.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 29 libavformat/ffmetaenc.c static void write_escape_str(AVIOContext *s, const uint8_t *str) s 35 libavformat/ffmetaenc.c avio_w8(s, '\\'); s 36 libavformat/ffmetaenc.c avio_w8(s, *p); s 41 libavformat/ffmetaenc.c static void write_tags(AVIOContext *s, AVDictionary *m) s 45 libavformat/ffmetaenc.c write_escape_str(s, t->key); s 46 libavformat/ffmetaenc.c avio_w8(s, '='); s 47 libavformat/ffmetaenc.c write_escape_str(s, t->value); s 48 libavformat/ffmetaenc.c avio_w8(s, '\n'); s 52 libavformat/ffmetaenc.c static int write_header(AVFormatContext *s) s 54 libavformat/ffmetaenc.c avio_write(s->pb, ID_STRING, sizeof(ID_STRING) - 1); s 55 libavformat/ffmetaenc.c avio_w8(s->pb, '1'); // version s 56 libavformat/ffmetaenc.c avio_w8(s->pb, '\n'); s 60 libavformat/ffmetaenc.c static int write_trailer(AVFormatContext *s) s 64 libavformat/ffmetaenc.c write_tags(s->pb, s->metadata); s 66 libavformat/ffmetaenc.c for (i = 0; i < s->nb_streams; i++) { s 67 libavformat/ffmetaenc.c avio_write(s->pb, ID_STREAM, sizeof(ID_STREAM) - 1); s 68 libavformat/ffmetaenc.c avio_w8(s->pb, '\n'); s 69 libavformat/ffmetaenc.c write_tags(s->pb, s->streams[i]->metadata); s 72 libavformat/ffmetaenc.c for (i = 0; i < s->nb_chapters; i++) { s 73 libavformat/ffmetaenc.c AVChapter *ch = s->chapters[i]; s 74 libavformat/ffmetaenc.c avio_write(s->pb, ID_CHAPTER, sizeof(ID_CHAPTER) - 1); s 75 libavformat/ffmetaenc.c avio_w8(s->pb, '\n'); s 76 libavformat/ffmetaenc.c avio_printf(s->pb, "TIMEBASE=%d/%d\n", ch->time_base.num, ch->time_base.den); s 77 libavformat/ffmetaenc.c avio_printf(s->pb, "START=%"PRId64"\n", ch->start); s 78 libavformat/ffmetaenc.c avio_printf(s->pb, "END=%"PRId64"\n", ch->end); s 79 libavformat/ffmetaenc.c write_tags(s->pb, ch->metadata); s 85 libavformat/ffmetaenc.c static int write_packet(AVFormatContext *s, AVPacket *pkt) s 38 libavformat/filmstripdec.c static int read_header(AVFormatContext *s) s 40 libavformat/filmstripdec.c FilmstripDemuxContext *film = s->priv_data; s 41 libavformat/filmstripdec.c AVIOContext *pb = s->pb; s 44 libavformat/filmstripdec.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) s 49 libavformat/filmstripdec.c av_log(s, AV_LOG_ERROR, "magic number not found\n"); s 53 libavformat/filmstripdec.c st = avformat_new_stream(s, NULL); s 59 libavformat/filmstripdec.c avpriv_request_sample(s, "Unsupported packing method"); s 72 libavformat/filmstripdec.c if (av_image_check_size(st->codecpar->width, st->codecpar->height, 0, s) < 0) s 82 libavformat/filmstripdec.c static int read_packet(AVFormatContext *s, s 85 libavformat/filmstripdec.c FilmstripDemuxContext *film = s->priv_data; s 86 libavformat/filmstripdec.c AVStream *st = s->streams[0]; s 88 libavformat/filmstripdec.c if (avio_feof(s->pb)) s 90 libavformat/filmstripdec.c pkt->dts = avio_tell(s->pb) / (st->codecpar->width * (int64_t)(st->codecpar->height + film->leading) * 4); s 91 libavformat/filmstripdec.c pkt->size = av_get_packet(s->pb, pkt, st->codecpar->width * st->codecpar->height * 4); s 92 libavformat/filmstripdec.c avio_skip(s->pb, st->codecpar->width * (int64_t) film->leading * 4); s 99 libavformat/filmstripdec.c static int read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 101 libavformat/filmstripdec.c AVStream *st = s->streams[stream_index]; s 102 libavformat/filmstripdec.c if (avio_seek(s->pb, FFMAX(timestamp, 0) * st->codecpar->width * st->codecpar->height * 4, SEEK_SET) < 0) s 33 libavformat/filmstripenc.c static int write_header(AVFormatContext *s) s 35 libavformat/filmstripenc.c if (s->streams[0]->codecpar->format != AV_PIX_FMT_RGBA) { s 36 libavformat/filmstripenc.c av_log(s, AV_LOG_ERROR, "only AV_PIX_FMT_RGBA is supported\n"); s 42 libavformat/filmstripenc.c static int write_trailer(AVFormatContext *s) s 44 libavformat/filmstripenc.c AVIOContext *pb = s->pb; s 45 libavformat/filmstripenc.c AVStream *st = s->streams[0]; s 50 libavformat/fitsdec.c static int fits_read_header(AVFormatContext *s) s 53 libavformat/fitsdec.c FITSContext * fits = s->priv_data; s 55 libavformat/fitsdec.c st = avformat_new_stream(s, NULL); s 78 libavformat/fitsdec.c static int64_t is_image(AVFormatContext *s, FITSContext *fits, FITSHeader *header, s 86 libavformat/fitsdec.c ret = avio_read(s->pb, buf, FITS_BLOCK_SIZE); s 97 libavformat/fitsdec.c ret = avpriv_fits_header_parse_line(s, header, buf + buf_size, NULL); s 143 libavformat/fitsdec.c static int fits_read_packet(AVFormatContext *s, AVPacket *pkt) s 147 libavformat/fitsdec.c FITSContext *fits = s->priv_data; s 159 libavformat/fitsdec.c while ((ret = is_image(s, fits, &header, &avbuf, &size)) == 0) { s 161 libavformat/fitsdec.c pos = avio_skip(s->pb, size); s 192 libavformat/fitsdec.c ret = avio_read(s->pb, pkt->data + pkt->size, size); s 33 libavformat/fitsenc.c static int fits_write_header(AVFormatContext *s) s 35 libavformat/fitsenc.c FITSContext *fitsctx = s->priv_data; s 48 libavformat/fitsenc.c static int write_keyword_value(AVFormatContext *s, const char *keyword, int value, int *lines_written) s 63 libavformat/fitsenc.c avio_write(s->pb, header, sizeof(header)); s 68 libavformat/fitsenc.c static int write_image_header(AVFormatContext *s) s 70 libavformat/fitsenc.c AVStream *st = s->streams[0]; s 72 libavformat/fitsenc.c FITSContext *fitsctx = s->priv_data; s 117 libavformat/fitsenc.c avio_write(s->pb, buffer, sizeof(buffer)); s 121 libavformat/fitsenc.c avio_write(s->pb, buffer, sizeof(buffer)); s 125 libavformat/fitsenc.c write_keyword_value(s, "BITPIX", bitpix, &lines_written); // no of bits per pixel s 126 libavformat/fitsenc.c write_keyword_value(s, "NAXIS", naxis, &lines_written); // no of dimensions of image s 127 libavformat/fitsenc.c write_keyword_value(s, "NAXIS1", encctx->width, &lines_written); // first dimension i.e. width s 128 libavformat/fitsenc.c write_keyword_value(s, "NAXIS2", encctx->height, &lines_written); // second dimension i.e. height s 131 libavformat/fitsenc.c write_keyword_value(s, "NAXIS3", naxis3, &lines_written); // third dimension to store RGBA planes s 134 libavformat/fitsenc.c write_keyword_value(s, "PCOUNT", 0, &lines_written); s 135 libavformat/fitsenc.c write_keyword_value(s, "GCOUNT", 1, &lines_written); s 146 libavformat/fitsenc.c write_keyword_value(s, "BZERO", bzero, &lines_written); s 151 libavformat/fitsenc.c avio_write(s->pb, buffer, sizeof(buffer)); s 157 libavformat/fitsenc.c avio_write(s->pb, buffer, sizeof(buffer)); s 163 libavformat/fitsenc.c avio_write(s->pb, buffer, sizeof(buffer)); s 169 libavformat/fitsenc.c static int fits_write_packet(AVFormatContext *s, AVPacket *pkt) s 171 libavformat/fitsenc.c int ret = write_image_header(s); s 174 libavformat/fitsenc.c avio_write(s->pb, pkt->data, pkt->size); s 32 libavformat/flac_picture.c int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size, int truncate_workaround) s 45 libavformat/flac_picture.c av_log(s, AV_LOG_ERROR, "Attached picture metadata block too short\n"); s 46 libavformat/flac_picture.c if (s->error_recognition & AV_EF_EXPLODE) s 56 libavformat/flac_picture.c av_log(s, AV_LOG_ERROR, "Invalid picture type: %d.\n", type); s 57 libavformat/flac_picture.c if (s->error_recognition & AV_EF_EXPLODE) { s 66 libavformat/flac_picture.c av_log(s, AV_LOG_ERROR, "Could not read mimetype from an attached " s 68 libavformat/flac_picture.c if (s->error_recognition & AV_EF_EXPLODE) s 73 libavformat/flac_picture.c av_log(s, AV_LOG_ERROR, "Attached picture metadata block too short\n"); s 74 libavformat/flac_picture.c if (s->error_recognition & AV_EF_EXPLODE) s 89 libavformat/flac_picture.c av_log(s, AV_LOG_ERROR, "Unknown attached picture mimetype: %s.\n", s 91 libavformat/flac_picture.c if (s->error_recognition & AV_EF_EXPLODE) s 99 libavformat/flac_picture.c av_log(s, AV_LOG_ERROR, "Attached picture metadata block too short\n"); s 100 libavformat/flac_picture.c if (s->error_recognition & AV_EF_EXPLODE) s 124 libavformat/flac_picture.c av_log(s, AV_LOG_ERROR, "Attached picture metadata block too big %u\n", len); s 125 libavformat/flac_picture.c if (s->error_recognition & AV_EF_EXPLODE) s 134 libavformat/flac_picture.c s->strict_std_compliance <= FF_COMPLIANCE_NORMAL && s 136 libavformat/flac_picture.c av_log(s, AV_LOG_INFO, "Correcting truncated metadata picture size from %u to %u\n", left, len); s 139 libavformat/flac_picture.c av_log(s, AV_LOG_ERROR, "Attached picture metadata block too short\n"); s 140 libavformat/flac_picture.c if (s->error_recognition & AV_EF_EXPLODE) s 155 libavformat/flac_picture.c if (avio_read(s->pb, data->data + len - trunclen, trunclen) < trunclen) s 163 libavformat/flac_picture.c st = avformat_new_stream(s, NULL); s 29 libavformat/flac_picture.h int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size, int truncate_workaround); s 48 libavformat/flacdec.c static int flac_read_header(AVFormatContext *s) s 53 libavformat/flacdec.c FLACDecContext *flac = s->priv_data; s 54 libavformat/flacdec.c AVStream *st = avformat_new_stream(s, NULL); s 63 libavformat/flacdec.c if (avio_rl32(s->pb) != MKTAG('f','L','a','C')) { s 64 libavformat/flacdec.c avio_seek(s->pb, -4, SEEK_CUR); s 69 libavformat/flacdec.c while (!avio_feof(s->pb) && !metadata_last) { s 70 libavformat/flacdec.c if (avio_read(s->pb, header, 4) != 4) s 85 libavformat/flacdec.c if (avio_read(s->pb, buffer, metadata_size) != metadata_size) { s 91 libavformat/flacdec.c ret = avio_skip(s->pb, metadata_size); s 145 libavformat/flacdec.c avpriv_new_chapter(s, track, st->time_base, start, AV_NOPTS_VALUE, isrc); s 149 libavformat/flacdec.c ret = ff_flac_parse_picture(s, buffer, metadata_size, 1); s 152 libavformat/flacdec.c av_log(s, AV_LOG_ERROR, "Error parsing attached picture.\n"); s 159 libavformat/flacdec.c if ((s->flags&AVFMT_FLAG_FAST_SEEK)) { s 180 libavformat/flacdec.c ret = ff_vorbis_comment(s, &s->metadata, buffer, metadata_size, 1); s 182 libavformat/flacdec.c av_log(s, AV_LOG_WARNING, "error parsing VorbisComment metadata\n"); s 184 libavformat/flacdec.c s->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; s 188 libavformat/flacdec.c chmask = av_dict_get(s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", NULL, 0); s 192 libavformat/flacdec.c av_log(s, AV_LOG_WARNING, s 196 libavformat/flacdec.c av_dict_set(&s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", NULL, 0); s 204 libavformat/flacdec.c ret = ff_replaygain_export(st, s->metadata); s 208 libavformat/flacdec.c reset_index_position(avio_tell(s->pb), st); s 259 libavformat/flacdec.c static av_unused int64_t flac_read_timestamp(AVFormatContext *s, int stream_index, s 263 libavformat/flacdec.c AVStream *st = s->streams[stream_index]; s 268 libavformat/flacdec.c if (avio_seek(s->pb, *ppos, SEEK_SET) < 0) s 282 libavformat/flacdec.c ret = ff_raw_read_partial_packet(s, &pkt); s 311 libavformat/flacdec.c static int flac_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { s 315 libavformat/flacdec.c FLACDecContext *flac = s->priv_data; s 317 libavformat/flacdec.c if (!flac->found_seektable || !(s->flags&AVFMT_FLAG_FAST_SEEK)) { s 321 libavformat/flacdec.c index = av_index_search_timestamp(s->streams[0], timestamp, flags); s 322 libavformat/flacdec.c if(index<0 || index >= s->streams[0]->nb_index_entries) s 325 libavformat/flacdec.c e = s->streams[0]->index_entries[index]; s 326 libavformat/flacdec.c pos = avio_seek(s->pb, e.pos, SEEK_SET); s 78 libavformat/flacenc.c static int flac_write_picture(struct AVFormatContext *s, AVPacket *pkt) s 80 libavformat/flacenc.c FlacMuxerContext *c = s->priv_data; s 81 libavformat/flacenc.c AVIOContext *pb = s->pb; s 86 libavformat/flacenc.c const AVStream *st = s->streams[pkt->stream_index]; s 100 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "No mimetype is known for stream %d, cannot " s 116 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "Duplicate attachment for type '%s'\n", ff_id3v2_picture_types[type]); s 123 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "File icon attachment must be a 32x32 PNG"); s 136 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "Picture block too big %d >= %d\n", blocklen, 1<<24); s 164 libavformat/flacenc.c static int flac_finish_header(struct AVFormatContext *s) s 166 libavformat/flacenc.c int i, ret, padding = s->metadata_header_padding; s 173 libavformat/flacenc.c for (i = 0; i < s->nb_streams; i++) { s 174 libavformat/flacenc.c AVStream *st = s->streams[i]; s 178 libavformat/flacenc.c ret = flac_write_picture(s, pkt); s 180 libavformat/flacenc.c if (ret < 0 && (s->error_recognition & AV_EF_EXPLODE)) s 184 libavformat/flacenc.c ret = flac_write_block_comment(s->pb, &s->metadata, !padding, s 185 libavformat/flacenc.c s->flags & AVFMT_FLAG_BITEXACT); s 194 libavformat/flacenc.c flac_write_block_padding(s->pb, padding, 1); s 199 libavformat/flacenc.c static int flac_init(struct AVFormatContext *s) s 202 libavformat/flacenc.c FlacMuxerContext *c = s->priv_data; s 206 libavformat/flacenc.c for (i = 0; i < s->nb_streams; i++) { s 207 libavformat/flacenc.c AVStream *st = s->streams[i]; s 210 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "Invalid audio stream. Exactly one FLAC " s 214 libavformat/flacenc.c par = s->streams[i]->codecpar; s 218 libavformat/flacenc.c av_log(s, AV_LOG_WARNING, "Video stream #%d is not an attached picture. Ignoring\n", i); s 221 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "GIF image support is not implemented.\n"); s 224 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "Can't write attached pictures without a header.\n"); s 229 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "Only audio streams and pictures are allowed in FLAC.\n"); s 234 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "No audio stream present.\n"); s 242 libavformat/flacenc.c AVDictionaryEntry *chmask = av_dict_get(s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", s 246 libavformat/flacenc.c av_log(s, AV_LOG_WARNING, "A WAVEFORMATEXTENSIBLE_CHANNEL_MASK is " s 251 libavformat/flacenc.c av_dict_set(&s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", buf, 0); s 258 libavformat/flacenc.c static int flac_write_header(struct AVFormatContext *s) s 260 libavformat/flacenc.c FlacMuxerContext *c = s->priv_data; s 261 libavformat/flacenc.c AVCodecParameters *par = s->streams[c->audio_stream_idx]->codecpar; s 267 libavformat/flacenc.c ret = ff_flac_write_header(s->pb, par->extradata, s 273 libavformat/flacenc.c ret = flac_finish_header(s); s 278 libavformat/flacenc.c static int flac_write_audio_packet(struct AVFormatContext *s, AVPacket *pkt) s 280 libavformat/flacenc.c FlacMuxerContext *c = s->priv_data; s 293 libavformat/flacenc.c avio_write(s->pb, pkt->data, pkt->size); s 297 libavformat/flacenc.c static int flac_queue_flush(AVFormatContext *s) s 299 libavformat/flacenc.c FlacMuxerContext *c = s->priv_data; s 303 libavformat/flacenc.c ret = flac_finish_header(s); s 309 libavformat/flacenc.c if (write && (ret = flac_write_audio_packet(s, &pkt)) < 0) s 316 libavformat/flacenc.c static int flac_write_trailer(struct AVFormatContext *s) s 318 libavformat/flacenc.c AVIOContext *pb = s->pb; s 320 libavformat/flacenc.c FlacMuxerContext *c = s->priv_data; s 323 libavformat/flacenc.c av_log(s, AV_LOG_WARNING, "No packets were sent for some of the " s 325 libavformat/flacenc.c flac_queue_flush(s); s 338 libavformat/flacenc.c av_log(s, AV_LOG_WARNING, "unable to rewrite FLAC header.\n"); s 344 libavformat/flacenc.c static void flac_deinit(struct AVFormatContext *s) s 346 libavformat/flacenc.c FlacMuxerContext *c = s->priv_data; s 351 libavformat/flacenc.c static int flac_write_packet(struct AVFormatContext *s, AVPacket *pkt) s 353 libavformat/flacenc.c FlacMuxerContext *c = s->priv_data; s 361 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "Out of memory in packet queue; skipping attached pictures\n"); s 363 libavformat/flacenc.c ret = flac_queue_flush(s); s 366 libavformat/flacenc.c return flac_write_audio_packet(s, pkt); s 369 libavformat/flacenc.c return flac_write_audio_packet(s, pkt); s 371 libavformat/flacenc.c AVStream *st = s->streams[pkt->stream_index]; s 379 libavformat/flacenc.c av_log(s, AV_LOG_WARNING, "Got more than one picture in stream %d," s 387 libavformat/flacenc.c av_log(s, AV_LOG_ERROR, "Out of memory queueing an attached picture; skipping\n"); s 392 libavformat/flacenc.c (ret = flac_queue_flush(s)) < 0) s 86 libavformat/flic.c static int flic_read_header(AVFormatContext *s) s 88 libavformat/flic.c FlicDemuxContext *flic = s->priv_data; s 89 libavformat/flic.c AVIOContext *pb = s->pb; s 108 libavformat/flic.c st = avformat_new_stream(s, NULL); s 121 libavformat/flic.c av_log(s, AV_LOG_WARNING, s 134 libavformat/flic.c av_log(s, AV_LOG_ERROR, "Failed to peek at preamble\n"); s 148 libavformat/flic.c ast = avformat_new_stream(s, NULL); s 188 libavformat/flic.c av_log(s, AV_LOG_ERROR, "Invalid or unsupported magic chunk in file\n"); s 195 libavformat/flic.c static int flic_read_packet(AVFormatContext *s, s 198 libavformat/flic.c FlicDemuxContext *flic = s->priv_data; s 199 libavformat/flic.c AVIOContext *pb = s->pb; s 129 libavformat/flvdec.c static void add_keyframes_index(AVFormatContext *s) s 131 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 136 libavformat/flvdec.c av_log(s, AV_LOG_DEBUG, "keyframe stream hasn't been created\n"); s 140 libavformat/flvdec.c av_assert0(flv->last_keyframe_stream_index <= s->nb_streams); s 141 libavformat/flvdec.c stream = s->streams[flv->last_keyframe_stream_index]; s 145 libavformat/flvdec.c av_log(s, AV_LOG_TRACE, "keyframe filepositions = %"PRId64" times = %"PRId64"\n", s 151 libavformat/flvdec.c av_log(s, AV_LOG_WARNING, "Skipping duplicate index\n"); s 160 libavformat/flvdec.c static AVStream *create_stream(AVFormatContext *s, int codec_type) s 162 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 163 libavformat/flvdec.c AVStream *st = avformat_new_stream(s, NULL); s 167 libavformat/flvdec.c if (s->nb_streams>=3 ||( s->nb_streams==2 s 168 libavformat/flvdec.c && s->streams[0]->codecpar->codec_type != AVMEDIA_TYPE_SUBTITLE s 169 libavformat/flvdec.c && s->streams[1]->codecpar->codec_type != AVMEDIA_TYPE_SUBTITLE s 170 libavformat/flvdec.c && s->streams[0]->codecpar->codec_type != AVMEDIA_TYPE_DATA s 171 libavformat/flvdec.c && s->streams[1]->codecpar->codec_type != AVMEDIA_TYPE_DATA)) s 172 libavformat/flvdec.c s->ctx_flags &= ~AVFMTCTX_NOHEADER; s 185 libavformat/flvdec.c flv->last_keyframe_stream_index = s->nb_streams - 1; s 186 libavformat/flvdec.c add_keyframes_index(s); s 241 libavformat/flvdec.c static void flv_set_audio_codec(AVFormatContext *s, AVStream *astream, s 295 libavformat/flvdec.c avpriv_request_sample(s, "Audio codec (%x)", s 326 libavformat/flvdec.c static int flv_set_video_codec(AVFormatContext *s, AVStream *vstream, s 355 libavformat/flvdec.c par->extradata[0] = avio_r8(s->pb); s 357 libavformat/flvdec.c avio_skip(s->pb, 1); s 371 libavformat/flvdec.c avpriv_request_sample(s, "Video codec (%x)", flv_codecid); s 376 libavformat/flvdec.c avpriv_request_sample(s, "Changing the codec id midstream"); s 398 libavformat/flvdec.c static int parse_keyframes_index(AVFormatContext *s, AVIOContext *ioc, int64_t max_pos) s 400 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 409 libavformat/flvdec.c av_log(s, AV_LOG_DEBUG, "keyframes have been parsed\n"); s 415 libavformat/flvdec.c if (s->flags & AVFMT_FLAG_IGNIDX) s 474 libavformat/flvdec.c av_log(s, AV_LOG_WARNING, "Invalid keyframes object, skipping.\n"); s 484 libavformat/flvdec.c static int amf_parse_object(AVFormatContext *s, AVStream *astream, s 489 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 497 libavformat/flvdec.c ioc = s->pb; s 509 libavformat/flvdec.c av_log(s, AV_LOG_ERROR, "AMF_DATA_TYPE_STRING parsing failed\n"); s 517 libavformat/flvdec.c if (parse_keyframes_index(s, ioc, s 519 libavformat/flvdec.c av_log(s, AV_LOG_ERROR, "Keyframe index parsing failed\n"); s 521 libavformat/flvdec.c add_keyframes_index(s); s 524 libavformat/flvdec.c if (amf_parse_object(s, astream, vstream, str_val, max_pos, s 528 libavformat/flvdec.c av_log(s, AV_LOG_ERROR, "Missing AMF_END_OF_OBJECT in AMF_DATA_TYPE_OBJECT\n"); s 544 libavformat/flvdec.c if (amf_parse_object(s, astream, vstream, str_val, max_pos, s 549 libavformat/flvdec.c av_log(s, AV_LOG_ERROR, "Missing AMF_END_OF_OBJECT in AMF_DATA_TYPE_MIXEDARRAY, found %d\n", v); s 560 libavformat/flvdec.c if (amf_parse_object(s, NULL, NULL, NULL, max_pos, s 571 libavformat/flvdec.c av_log(s, AV_LOG_ERROR, "unsupported amf type %d\n", amf_type); s 584 libavformat/flvdec.c s->duration = num_val * AV_TIME_BASE; s 592 libavformat/flvdec.c AVStream *st = create_stream(s, AVMEDIA_TYPE_SUBTITLE); s 602 libavformat/flvdec.c int ret = flv_set_video_codec(s, vstream, num_val, 0); s 607 libavformat/flvdec.c flv_set_audio_codec(s, astream, apar, id); s 639 libavformat/flvdec.c if (amf_type == AMF_DATA_TYPE_OBJECT && s->nb_streams == 1 && s 642 libavformat/flvdec.c s->ctx_flags &= ~AVFMTCTX_NOHEADER; //If there is either audio/video missing, codecid will be an empty object s 659 libavformat/flvdec.c s->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; s 663 libavformat/flvdec.c av_dict_set(&s->metadata, key, str_val, 0); s 666 libavformat/flvdec.c av_dict_set(&s->metadata, key, str_val, 0); s 668 libavformat/flvdec.c av_dict_set(&s->metadata, key, str_val, 0); s 677 libavformat/flvdec.c av_dict_set(&s->metadata, key, datestr, 0); s 689 libavformat/flvdec.c static int flv_read_metabody(AVFormatContext *s, int64_t next_pos) s 691 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 702 libavformat/flvdec.c ioc = s->pb; s 720 libavformat/flvdec.c av_log(s, AV_LOG_DEBUG, "Unknown type %s\n", buffer); s 726 libavformat/flvdec.c for (i = 0; i < s->nb_streams; i++) { s 727 libavformat/flvdec.c stream = s->streams[i]; s 741 libavformat/flvdec.c if (amf_parse_object(s, astream, vstream, buffer, next_pos, 0) < 0) s 747 libavformat/flvdec.c static int flv_read_header(AVFormatContext *s) s 750 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 755 libavformat/flvdec.c if(!strcmp(s->iformat->name, "kux")) s 756 libavformat/flvdec.c avio_skip(s->pb, 0xe40000); s 758 libavformat/flvdec.c avio_skip(s->pb, 4); s 759 libavformat/flvdec.c flags = avio_r8(s->pb); s 763 libavformat/flvdec.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 765 libavformat/flvdec.c offset = avio_rb32(s->pb); s 766 libavformat/flvdec.c avio_seek(s->pb, offset, SEEK_SET); s 773 libavformat/flvdec.c pre_tag_size = avio_rb32(s->pb); s 775 libavformat/flvdec.c av_log(s, AV_LOG_WARNING, "Read FLV header error, input file is not a standard flv format, first PreviousTagSize0 always is 0\n"); s 778 libavformat/flvdec.c s->start_time = 0; s 785 libavformat/flvdec.c static int flv_read_close(AVFormatContext *s) s 788 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 796 libavformat/flvdec.c static int flv_get_extradata(AVFormatContext *s, AVStream *st, int size) s 802 libavformat/flvdec.c if ((ret = ff_get_extradata(s, st->codecpar, s->pb, size)) < 0) s 824 libavformat/flvdec.c static void clear_index_entries(AVFormatContext *s, int64_t pos) s 827 libavformat/flvdec.c av_log(s, AV_LOG_WARNING, s 829 libavformat/flvdec.c for (i = 0; i < s->nb_streams; i++) { s 830 libavformat/flvdec.c AVStream *st = s->streams[i]; s 881 libavformat/flvdec.c static int flv_data_packet(AVFormatContext *s, AVPacket *pkt, s 884 libavformat/flvdec.c AVIOContext *pb = s->pb; s 922 libavformat/flvdec.c for (i = 0; i < s->nb_streams; i++) { s 923 libavformat/flvdec.c st = s->streams[i]; s 928 libavformat/flvdec.c if (i == s->nb_streams) { s 929 libavformat/flvdec.c st = create_stream(s, AVMEDIA_TYPE_SUBTITLE); s 943 libavformat/flvdec.c avio_seek(s->pb, next + 4, SEEK_SET); s 948 libavformat/flvdec.c static int resync(AVFormatContext *s) s 950 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 952 libavformat/flvdec.c int64_t pos = avio_tell(s->pb); s 954 libavformat/flvdec.c for (i=0; !avio_feof(s->pb); i++) { s 958 libavformat/flvdec.c flv->resync_buffer[j1] = avio_r8(s->pb); s 966 libavformat/flvdec.c av_log(s, AV_LOG_WARNING, "Concatenated FLV detected, might fail to demux, decode and seek %"PRId64"\n", flv->last_ts); s 968 libavformat/flvdec.c flv->time_pos = avio_tell(s->pb); s 980 libavformat/flvdec.c avio_seek(s->pb, pos + i - lsize1 - lsize2 - 8, SEEK_SET); s 990 libavformat/flvdec.c static int flv_read_packet(AVFormatContext *s, AVPacket *pkt) s 992 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 1006 libavformat/flvdec.c pos = avio_tell(s->pb); s 1007 libavformat/flvdec.c type = (avio_r8(s->pb) & 0x1F); s 1009 libavformat/flvdec.c size = avio_rb24(s->pb); s 1011 libavformat/flvdec.c dts = avio_rb24(s->pb); s 1012 libavformat/flvdec.c dts |= (unsigned)avio_r8(s->pb) << 24; s 1013 libavformat/flvdec.c av_log(s, AV_LOG_TRACE, "type:%d, size:%d, last:%d, dts:%"PRId64" pos:%"PRId64"\n", type, size, last, dts, avio_tell(s->pb)); s 1014 libavformat/flvdec.c if (avio_feof(s->pb)) s 1016 libavformat/flvdec.c avio_skip(s->pb, 3); /* stream id, always 0 */ s 1026 libavformat/flvdec.c clear_index_entries(s, validate_pos); s 1030 libavformat/flvdec.c clear_index_entries(s, validate_pos); s 1040 libavformat/flvdec.c next = size + avio_tell(s->pb); s 1044 libavformat/flvdec.c flags = avio_r8(s->pb); s 1048 libavformat/flvdec.c flags = avio_r8(s->pb); s 1056 libavformat/flvdec.c meta_pos = avio_tell(s->pb); s 1057 libavformat/flvdec.c type = flv_read_metabody(s, next); s 1063 libavformat/flvdec.c av_log(s, AV_LOG_WARNING, "Adjusting next position due to index mismatch\n"); s 1068 libavformat/flvdec.c avpriv_request_sample(s, "OnTextData packet"); s 1069 libavformat/flvdec.c return flv_data_packet(s, pkt, dts, next); s 1071 libavformat/flvdec.c return flv_data_packet(s, pkt, dts, next); s 1075 libavformat/flvdec.c avio_seek(s->pb, meta_pos, SEEK_SET); s 1078 libavformat/flvdec.c av_log(s, AV_LOG_DEBUG, s 1082 libavformat/flvdec.c if (avio_seek(s->pb, next, SEEK_SET) != next) { s 1086 libavformat/flvdec.c av_log(s, AV_LOG_ERROR, "Unable to seek to the next packet\n"); s 1100 libavformat/flvdec.c for (i = 0; i < s->nb_streams; i++) { s 1101 libavformat/flvdec.c st = s->streams[i]; s 1104 libavformat/flvdec.c (s->audio_codec_id || flv_same_audio_codec(st->codecpar, flags))) s 1108 libavformat/flvdec.c (s->video_codec_id || flv_same_video_codec(st->codecpar, flags))) s 1118 libavformat/flvdec.c if (i == s->nb_streams) { s 1120 libavformat/flvdec.c st = create_stream(s, stream_types[stream_type]); s 1125 libavformat/flvdec.c av_log(s, AV_LOG_TRACE, "%d %X %d \n", stream_type, flags, st->discard); s 1131 libavformat/flvdec.c if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && s 1140 libavformat/flvdec.c avio_seek(s->pb, next, SEEK_SET); s 1147 libavformat/flvdec.c if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && s 1148 libavformat/flvdec.c (!s->duration || s->duration == AV_NOPTS_VALUE) && s 1151 libavformat/flvdec.c const int64_t pos = avio_tell(s->pb); s 1154 libavformat/flvdec.c int64_t fsize = avio_size(s->pb); s 1156 libavformat/flvdec.c avio_seek(s->pb, fsize - 4, SEEK_SET); s 1157 libavformat/flvdec.c size = avio_rb32(s->pb); s 1161 libavformat/flvdec.c avio_seek(s->pb, fsize - 3 - size, SEEK_SET); s 1162 libavformat/flvdec.c if (size == avio_rb24(s->pb) + 11) { s 1163 libavformat/flvdec.c uint32_t ts = avio_rb24(s->pb); s 1164 libavformat/flvdec.c ts |= avio_r8(s->pb) << 24; s 1166 libavformat/flvdec.c s->duration = ts * (int64_t)AV_TIME_BASE / 1000; s 1174 libavformat/flvdec.c avio_seek(s->pb, pos, SEEK_SET); s 1194 libavformat/flvdec.c flv_set_audio_codec(s, st, st->codecpar, s 1208 libavformat/flvdec.c flv_set_audio_codec(s, st, par, flags & FLV_AUDIO_CODECID_MASK); s 1213 libavformat/flvdec.c int ret = flv_set_video_codec(s, st, flags & FLV_VIDEO_CODECID_MASK, 1); s 1226 libavformat/flvdec.c int type = avio_r8(s->pb); s 1236 libavformat/flvdec.c int32_t cts = (avio_rb24(s->pb) + 0xff800000) ^ 0xff800000; s 1240 libavformat/flvdec.c av_log(s, AV_LOG_WARNING, s 1244 libavformat/flvdec.c av_log(s, AV_LOG_WARNING, s 1254 libavformat/flvdec.c if ((ret = flv_queue_extradata(flv, s->pb, stream_type, size)) < 0) s 1259 libavformat/flvdec.c if ((ret = flv_get_extradata(s, st, size)) < 0) s 1263 libavformat/flvdec.c t = av_dict_get(s->metadata, "Encoder", NULL, 0); s 1278 libavformat/flvdec.c ret = av_get_packet(s->pb, pkt, size); s 1309 libavformat/flvdec.c last = avio_rb32(s->pb); s 1312 libavformat/flvdec.c !avio_feof(s->pb) && s 1315 libavformat/flvdec.c av_log(s, AV_LOG_ERROR, "Packet mismatch %d %d %d\n", last, orig_size + 11, flv->sum_flv_tag_size); s 1316 libavformat/flvdec.c avio_seek(s->pb, pos + 1, SEEK_SET); s 1317 libavformat/flvdec.c ret = resync(s); s 1331 libavformat/flvdec.c static int flv_read_seek(AVFormatContext *s, int stream_index, s 1334 libavformat/flvdec.c FLVContext *flv = s->priv_data; s 1336 libavformat/flvdec.c return avio_seek_time(s->pb, stream_index, ts, flags); s 127 libavformat/flvenc.c static int get_audio_flags(AVFormatContext *s, AVCodecParameters *par) s 137 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, s 142 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, "FLV only supports mono Speex audio\n"); s 174 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, s 218 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, "Audio codec '%s' not compatible with FLV\n", s 274 libavformat/flvenc.c static void write_metadata(AVFormatContext *s, unsigned int ts) s 276 libavformat/flvenc.c AVIOContext *pb = s->pb; s 277 libavformat/flvenc.c FLVContext *flv = s->priv_data; s 311 libavformat/flvenc.c put_amf_double(pb, s->duration / AV_TIME_BASE); s 356 libavformat/flvenc.c ff_standardize_creation_time(s); s 357 libavformat/flvenc.c while ((tag = av_dict_get(s->metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) { s 379 libavformat/flvenc.c av_log(s, AV_LOG_DEBUG, "Ignoring metadata for %s\n", tag->key); s 477 libavformat/flvenc.c static int unsupported_codec(AVFormatContext *s, s 481 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, s 488 libavformat/flvenc.c static void flv_write_codec_header(AVFormatContext* s, AVCodecParameters* par, int64_t ts) { s 490 libavformat/flvenc.c AVIOContext *pb = s->pb; s 491 libavformat/flvenc.c FLVContext *flv = s->priv_data; s 504 libavformat/flvenc.c avio_w8(pb, get_audio_flags(s, par)); s 532 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, "AAC sequence header: %02x %02x.\n", s 550 libavformat/flvenc.c static int flv_append_keyframe_info(AVFormatContext *s, FLVContext *flv, double ts, int64_t pos) s 555 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, "no mem for add keyframe index!\n"); s 577 libavformat/flvenc.c static int shift_data(AVFormatContext *s) s 582 libavformat/flvenc.c FLVContext *flv = s->priv_data; s 583 libavformat/flvenc.c int64_t pos, pos_end = avio_tell(s->pb); /* Save the pre-shift size. */ s 606 libavformat/flvenc.c avio_seek(s->pb, flv->metadata_size_pos, SEEK_SET); s 607 libavformat/flvenc.c avio_wb24(s->pb, flv->metadata_totalsize + metadata_size); s 609 libavformat/flvenc.c avio_seek(s->pb, flv->metadata_totalsize_pos, SEEK_SET); s 610 libavformat/flvenc.c avio_wb32(s->pb, flv->metadata_totalsize + 11 + metadata_size); s 615 libavformat/flvenc.c avio_flush(s->pb); s 616 libavformat/flvenc.c ret = s->io_open(s, &read_pb, s->url, AVIO_FLAG_READ, NULL); s 618 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, "Unable to re-open %s output file for " s 619 libavformat/flvenc.c "the second pass (add_keyframe_index)\n", s->url); s 624 libavformat/flvenc.c avio_seek(s->pb, flv->keyframes_info_offset + metadata_size, SEEK_SET); s 642 libavformat/flvenc.c avio_write(s->pb, read_buf[read_buf_id], n); s 646 libavformat/flvenc.c ff_format_io_close(s, &read_pb); s 653 libavformat/flvenc.c static int flv_init(struct AVFormatContext *s) s 656 libavformat/flvenc.c FLVContext *flv = s->priv_data; s 658 libavformat/flvenc.c for (i = 0; i < s->nb_streams; i++) { s 659 libavformat/flvenc.c AVCodecParameters *par = s->streams[i]->codecpar; s 663 libavformat/flvenc.c if (s->streams[i]->avg_frame_rate.den && s 664 libavformat/flvenc.c s->streams[i]->avg_frame_rate.num) { s 665 libavformat/flvenc.c flv->framerate = av_q2d(s->streams[i]->avg_frame_rate); s 668 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, s 674 libavformat/flvenc.c return unsupported_codec(s, "Video", par->codec_id); s 678 libavformat/flvenc.c int error = s->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL; s 679 libavformat/flvenc.c av_log(s, error ? AV_LOG_ERROR : AV_LOG_WARNING, s 683 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, s 688 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, s 694 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, s 699 libavformat/flvenc.c if (get_audio_flags(s, par) < 0) s 700 libavformat/flvenc.c return unsupported_codec(s, "Audio", par->codec_id); s 702 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, s 707 libavformat/flvenc.c return unsupported_codec(s, "Data", par->codec_id); s 712 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, "Subtitle codec '%s' for stream %d is not compatible with FLV\n", s 719 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, "Codec type '%s' for stream %d is not compatible with FLV\n", s 723 libavformat/flvenc.c avpriv_set_pts_info(s->streams[i], 32, 1, 1000); /* 32 bit pts in ms */ s 728 libavformat/flvenc.c s->streams[i]->priv_data = sc; s 737 libavformat/flvenc.c static int flv_write_header(AVFormatContext *s) s 740 libavformat/flvenc.c AVIOContext *pb = s->pb; s 741 libavformat/flvenc.c FLVContext *flv = s->priv_data; s 750 libavformat/flvenc.c for (i = 0; i < s->nb_streams; i++) s 751 libavformat/flvenc.c if (s->streams[i]->codecpar->codec_tag == 5) { s 763 libavformat/flvenc.c write_metadata(s, 0); s 766 libavformat/flvenc.c for (i = 0; i < s->nb_streams; i++) { s 767 libavformat/flvenc.c flv_write_codec_header(s, s->streams[i]->codecpar, 0); s 774 libavformat/flvenc.c static int flv_write_trailer(AVFormatContext *s) s 777 libavformat/flvenc.c AVIOContext *pb = s->pb; s 778 libavformat/flvenc.c FLVContext *flv = s->priv_data; s 781 libavformat/flvenc.c int64_t cur_pos = avio_tell(s->pb); s 802 libavformat/flvenc.c res = shift_data(s); s 840 libavformat/flvenc.c av_log(s, AV_LOG_DEBUG, "FLV no sequence end mode open\n"); s 843 libavformat/flvenc.c for (i = 0; i < s->nb_streams; i++) { s 844 libavformat/flvenc.c AVCodecParameters *par = s->streams[i]->codecpar; s 845 libavformat/flvenc.c FLVStreamContext *sc = s->streams[i]->priv_data; s 863 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, "Failed to update header with correct duration.\n"); s 868 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, "Failed to update header with correct filesize.\n"); s 878 libavformat/flvenc.c static int flv_write_packet(AVFormatContext *s, AVPacket *pkt) s 880 libavformat/flvenc.c AVIOContext *pb = s->pb; s 881 libavformat/flvenc.c AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; s 882 libavformat/flvenc.c FLVContext *flv = s->priv_data; s 883 libavformat/flvenc.c FLVStreamContext *sc = s->streams[pkt->stream_index]->priv_data; s 891 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, "Empty audio Packet\n"); s 912 libavformat/flvenc.c flv_write_codec_header(s, par, pkt->dts); s 920 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, s 926 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, "Packet is missing PTS\n"); s 933 libavformat/flvenc.c if (s->event_flags & AVSTREAM_EVENT_FLAG_METADATA_UPDATED) { s 934 libavformat/flvenc.c write_metadata(s, ts); s 935 libavformat/flvenc.c s->event_flags &= ~AVSTREAM_EVENT_FLAG_METADATA_UPDATED; s 950 libavformat/flvenc.c flags = get_audio_flags(s, par); s 971 libavformat/flvenc.c if (!s->streams[pkt->stream_index]->nb_frames) { s 972 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, "Malformed AAC bitstream detected: " s 977 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, "aac bitstream error\n"); s 982 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, "Warning: Speex stream has more than " s 990 libavformat/flvenc.c av_log(s, AV_LOG_ERROR, "Too large packet with size %u >= %u\n", s 1065 libavformat/flvenc.c ret = flv_append_keyframe_info(s, flv, ts, pos); s 1076 libavformat/flvenc.c av_log(s, AV_LOG_WARNING, "par->codec_type is type = [%d]\n", par->codec_type); s 1086 libavformat/flvenc.c static int flv_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) s 1089 libavformat/flvenc.c AVStream *st = s->streams[pkt->stream_index]; s 29 libavformat/framecrcenc.c static int framecrc_write_header(struct AVFormatContext *s) s 32 libavformat/framecrcenc.c for (i = 0; i < s->nb_streams; i++) { s 33 libavformat/framecrcenc.c AVStream *st = s->streams[i]; s 37 libavformat/framecrcenc.c avio_printf(s->pb, "#extradata %d: %8d, 0x%08"PRIx32"\n", s 42 libavformat/framecrcenc.c return ff_framehash_write_header(s); s 45 libavformat/framecrcenc.c static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt) s 75 libavformat/framecrcenc.c avio_write(s->pb, buf, strlen(buf)); s 23 libavformat/framehash.c int ff_framehash_write_header(AVFormatContext *s) s 27 libavformat/framehash.c if (s->nb_streams && !(s->flags & AVFMT_FLAG_BITEXACT)) s 28 libavformat/framehash.c avio_printf(s->pb, "#software: %s\n", LIBAVFORMAT_IDENT); s 29 libavformat/framehash.c for (i = 0; i < s->nb_streams; i++) { s 30 libavformat/framehash.c AVStream *st = s->streams[i]; s 33 libavformat/framehash.c avio_printf(s->pb, "#tb %d: %d/%d\n", i, st->time_base.num, st->time_base.den); s 34 libavformat/framehash.c avio_printf(s->pb, "#media_type %d: %s\n", i, av_get_media_type_string(avctx->codec_type)); s 35 libavformat/framehash.c avio_printf(s->pb, "#codec_id %d: %s\n", i, avcodec_get_name(avctx->codec_id)); s 39 libavformat/framehash.c avio_printf(s->pb, "#sample_rate %d: %d\n", i,avctx->sample_rate); s 40 libavformat/framehash.c avio_printf(s->pb, "#channel_layout %d: %"PRIx64"\n", i,avctx->channel_layout); s 41 libavformat/framehash.c avio_printf(s->pb, "#channel_layout_name %d: %s\n", i, buf); s 44 libavformat/framehash.c avio_printf(s->pb, "#dimensions %d: %dx%d\n", i, avctx->width, avctx->height); s 45 libavformat/framehash.c avio_printf(s->pb, "#sar %d: %d/%d\n", i, st->sample_aspect_ratio.num, st->sample_aspect_ratio.den); s 77 libavformat/frmdec.c FrmContext *s = avctx->priv_data; s 81 libavformat/frmdec.c if (s->count) s 99 libavformat/frmdec.c s->count++; s 37 libavformat/fsb.c static int fsb_read_header(AVFormatContext *s) s 39 libavformat/fsb.c AVIOContext *pb = s->pb; s 43 libavformat/fsb.c AVStream *st = avformat_new_stream(s, NULL); s 49 libavformat/fsb.c avpriv_request_sample(s, "version %d", version); s 99 libavformat/fsb.c avpriv_request_sample(s, "format 0x%X", format); s 119 libavformat/fsb.c avpriv_request_sample(s, "format 0x%X", format); s 159 libavformat/fsb.c s->internal->data_offset = avio_tell(pb); s 166 libavformat/fsb.c static int fsb_read_packet(AVFormatContext *s, AVPacket *pkt) s 168 libavformat/fsb.c AVCodecParameters *par = s->streams[0]->codecpar; s 172 libavformat/fsb.c if (avio_feof(s->pb)) s 175 libavformat/fsb.c pos = avio_tell(s->pb); s 185 libavformat/fsb.c pkt->data[ch * 8 + i * 2 + 0] = avio_r8(s->pb); s 186 libavformat/fsb.c pkt->data[ch * 8 + i * 2 + 1] = avio_r8(s->pb); s 191 libavformat/fsb.c ret = av_get_packet(s->pb, pkt, par->block_align); s 101 libavformat/ftp.c static int ftp_getc(FTPContext *s) s 104 libavformat/ftp.c if (s->control_buf_ptr >= s->control_buf_end) { s 105 libavformat/ftp.c len = ffurl_read(s->conn_control, s->control_buffer, CONTROL_BUFFER_SIZE); s 111 libavformat/ftp.c s->control_buf_ptr = s->control_buffer; s 112 libavformat/ftp.c s->control_buf_end = s->control_buffer + len; s 115 libavformat/ftp.c return *s->control_buf_ptr++; s 118 libavformat/ftp.c static int ftp_get_line(FTPContext *s, char *line, int line_size) s 124 libavformat/ftp.c ch = ftp_getc(s); s 146 libavformat/ftp.c static int ftp_status(FTPContext *s, char **line, const int response_codes[]) s 156 libavformat/ftp.c if ((err = ftp_get_line(s, buf, sizeof(buf))) < 0) { s 162 libavformat/ftp.c av_log(s, AV_LOG_DEBUG, "%s\n", buf); s 207 libavformat/ftp.c static int ftp_send_command(FTPContext *s, const char *command, s 212 libavformat/ftp.c ff_dlog(s, "%s", command); s 217 libavformat/ftp.c if (!s->conn_control) s 220 libavformat/ftp.c if ((err = ffurl_write(s->conn_control, command, strlen(command))) < 0) s 227 libavformat/ftp.c return ftp_status(s, response, response_codes); s 232 libavformat/ftp.c static void ftp_close_data_connection(FTPContext *s) s 234 libavformat/ftp.c ffurl_closep(&s->conn_data); s 235 libavformat/ftp.c s->state = DISCONNECTED; s 238 libavformat/ftp.c static void ftp_close_both_connections(FTPContext *s) s 240 libavformat/ftp.c ffurl_closep(&s->conn_control); s 241 libavformat/ftp.c ftp_close_data_connection(s); s 244 libavformat/ftp.c static int ftp_auth(FTPContext *s) s 251 libavformat/ftp.c if (strpbrk(s->user, "\r\n")) s 253 libavformat/ftp.c snprintf(buf, sizeof(buf), "USER %s\r\n", s->user); s 254 libavformat/ftp.c err = ftp_send_command(s, buf, user_codes, NULL); s 256 libavformat/ftp.c if (s->password) { s 257 libavformat/ftp.c if (strpbrk(s->password, "\r\n")) s 259 libavformat/ftp.c snprintf(buf, sizeof(buf), "PASS %s\r\n", s->password); s 260 libavformat/ftp.c err = ftp_send_command(s, buf, pass_codes, NULL); s 270 libavformat/ftp.c static int ftp_passive_mode_epsv(FTPContext *s) s 278 libavformat/ftp.c if (ftp_send_command(s, command, epsv_codes, &res) != 229 || !res) s 300 libavformat/ftp.c s->server_data_port = atoi(start); s 301 libavformat/ftp.c ff_dlog(s, "Server data port: %d\n", s->server_data_port); s 308 libavformat/ftp.c s->server_data_port = -1; s 312 libavformat/ftp.c static int ftp_passive_mode(FTPContext *s) s 319 libavformat/ftp.c if (ftp_send_command(s, command, pasv_codes, &res) != 227 || !res) s 343 libavformat/ftp.c s->server_data_port = atoi(start) * 256; s 346 libavformat/ftp.c s->server_data_port += atoi(start); s 347 libavformat/ftp.c ff_dlog(s, "Server data port: %d\n", s->server_data_port); s 354 libavformat/ftp.c s->server_data_port = -1; s 358 libavformat/ftp.c static int ftp_current_dir(FTPContext *s) s 365 libavformat/ftp.c if (ftp_send_command(s, command, pwd_codes, &res) != 257 || !res) s 383 libavformat/ftp.c s->path = av_strdup(start); s 387 libavformat/ftp.c if (!s->path) s 396 libavformat/ftp.c static int ftp_file_size(FTPContext *s) s 402 libavformat/ftp.c snprintf(command, sizeof(command), "SIZE %s\r\n", s->path); s 403 libavformat/ftp.c if (ftp_send_command(s, command, size_codes, &res) == 213 && res && strlen(res) > 4) { s 404 libavformat/ftp.c s->filesize = strtoll(&res[4], NULL, 10); s 406 libavformat/ftp.c s->filesize = -1; s 415 libavformat/ftp.c static int ftp_retrieve(FTPContext *s) s 421 libavformat/ftp.c snprintf(command, sizeof(command), "RETR %s\r\n", s->path); s 422 libavformat/ftp.c resp_code = ftp_send_command(s, command, retr_codes, NULL); s 426 libavformat/ftp.c s->state = DOWNLOADING; s 431 libavformat/ftp.c static int ftp_store(FTPContext *s) s 437 libavformat/ftp.c snprintf(command, sizeof(command), "STOR %s\r\n", s->path); s 438 libavformat/ftp.c resp_code = ftp_send_command(s, command, stor_codes, NULL); s 442 libavformat/ftp.c s->state = UPLOADING; s 447 libavformat/ftp.c static int ftp_type(FTPContext *s) s 452 libavformat/ftp.c if (ftp_send_command(s, command, type_codes, NULL) != 200) s 458 libavformat/ftp.c static int ftp_restart(FTPContext *s, int64_t pos) s 464 libavformat/ftp.c if (ftp_send_command(s, command, rest_codes, NULL) != 350) s 470 libavformat/ftp.c static int ftp_set_dir(FTPContext *s) s 475 libavformat/ftp.c snprintf(command, sizeof(command), "CWD %s\r\n", s->path); s 476 libavformat/ftp.c if (ftp_send_command(s, command, cwd_codes, NULL) != 250) s 481 libavformat/ftp.c static int ftp_list_mlsd(FTPContext *s) s 486 libavformat/ftp.c if (ftp_send_command(s, command, mlsd_codes, NULL) != 150) s 488 libavformat/ftp.c s->listing_method = MLSD; s 492 libavformat/ftp.c static int ftp_list_nlst(FTPContext *s) s 497 libavformat/ftp.c if (ftp_send_command(s, command, nlst_codes, NULL) != 226) s 499 libavformat/ftp.c s->listing_method = NLST; s 503 libavformat/ftp.c static int ftp_list(FTPContext *s) s 506 libavformat/ftp.c s->state = LISTING_DIR; s 508 libavformat/ftp.c if ((ret = ftp_list_mlsd(s)) < 0) s 509 libavformat/ftp.c ret = ftp_list_nlst(s); s 514 libavformat/ftp.c static int ftp_has_feature(FTPContext *s, const char *feature_name) s 516 libavformat/ftp.c if (!s->features) s 519 libavformat/ftp.c return av_stristr(s->features, feature_name) != NULL; s 522 libavformat/ftp.c static int ftp_features(FTPContext *s) s 529 libavformat/ftp.c av_freep(&s->features); s 530 libavformat/ftp.c if (ftp_send_command(s, feat_command, feat_codes, &s->features) != 211) { s 531 libavformat/ftp.c av_freep(&s->features); s 534 libavformat/ftp.c if (ftp_has_feature(s, "UTF8")) { s 535 libavformat/ftp.c int ret = ftp_send_command(s, enable_utf8_command, opts_codes, NULL); s 537 libavformat/ftp.c s->utf8 = 1; s 548 libavformat/ftp.c FTPContext *s = h->priv_data; s 551 libavformat/ftp.c if (!s->conn_control) { s 553 libavformat/ftp.c s->hostname, s->server_control_port, NULL); s 554 libavformat/ftp.c if (s->rw_timeout != -1) { s 555 libavformat/ftp.c av_dict_set_int(&opts, "timeout", s->rw_timeout, 0); s 557 libavformat/ftp.c err = ffurl_open_whitelist(&s->conn_control, buf, AVIO_FLAG_READ_WRITE, s 567 libavformat/ftp.c if (ftp_status(s, ((h->flags & AVIO_FLAG_WRITE) ? &response : NULL), connect_codes) != 220) { s 577 libavformat/ftp.c if ((err = ftp_auth(s)) < 0) { s 582 libavformat/ftp.c if ((err = ftp_type(s)) < 0) { s 587 libavformat/ftp.c ftp_features(s); s 597 libavformat/ftp.c FTPContext *s = h->priv_data; s 599 libavformat/ftp.c if (!s->conn_data) { s 601 libavformat/ftp.c if (ftp_passive_mode_epsv(s) < 0) { s 603 libavformat/ftp.c if ((err = ftp_passive_mode(s)) < 0) s 607 libavformat/ftp.c ff_url_join(buf, sizeof(buf), "tcp", NULL, s->hostname, s->server_data_port, NULL); s 608 libavformat/ftp.c if (s->rw_timeout != -1) { s 609 libavformat/ftp.c av_dict_set_int(&opts, "timeout", s->rw_timeout, 0); s 611 libavformat/ftp.c err = ffurl_open_whitelist(&s->conn_data, buf, h->flags, s 618 libavformat/ftp.c if (s->position) s 619 libavformat/ftp.c if ((err = ftp_restart(s, s->position)) < 0) s 622 libavformat/ftp.c s->state = READY; s 631 libavformat/ftp.c FTPContext *s = h->priv_data; s 643 libavformat/ftp.c if (ftp_send_command(s, command, NULL, NULL) < 0) { s 644 libavformat/ftp.c ftp_close_both_connections(s); s 650 libavformat/ftp.c ftp_close_data_connection(s); s 651 libavformat/ftp.c if (ftp_status(s, NULL, abor_codes) < 225) { s 653 libavformat/ftp.c ffurl_closep(&s->conn_control); s 670 libavformat/ftp.c FTPContext *s = h->priv_data; s 672 libavformat/ftp.c s->state = DISCONNECTED; s 673 libavformat/ftp.c s->listing_method = UNKNOWN_METHOD; s 674 libavformat/ftp.c s->filesize = -1; s 675 libavformat/ftp.c s->position = 0; s 676 libavformat/ftp.c s->features = NULL; s 681 libavformat/ftp.c &s->server_control_port, s 686 libavformat/ftp.c if (!s->option_user) { s 688 libavformat/ftp.c tok_pass = av_x_if_null(s->anonymous_password, "nopassword"); s 690 libavformat/ftp.c tok_user = s->option_user; s 691 libavformat/ftp.c tok_pass = s->option_password; s 693 libavformat/ftp.c s->user = av_strdup(tok_user); s 694 libavformat/ftp.c s->password = av_strdup(tok_pass); s 700 libavformat/ftp.c s->password = ff_urldecode(pass, 0); s 702 libavformat/ftp.c tok_pass = s->option_password; s 703 libavformat/ftp.c s->password = av_strdup(tok_pass); s 705 libavformat/ftp.c s->user = ff_urldecode(credentials, 0); s 707 libavformat/ftp.c s->hostname = av_strdup(hostname); s 708 libavformat/ftp.c if (!s->hostname || !s->user || (tok_pass && !s->password)) { s 712 libavformat/ftp.c if (s->server_control_port < 0 || s->server_control_port > 65535) s 713 libavformat/ftp.c s->server_control_port = 21; s 718 libavformat/ftp.c if ((err = ftp_current_dir(s)) < 0) s 721 libavformat/ftp.c newpath = av_append_path_component(s->path, path); s 724 libavformat/ftp.c av_free(s->path); s 725 libavformat/ftp.c s->path = newpath; s 732 libavformat/ftp.c FTPContext *s = h->priv_data; s 740 libavformat/ftp.c if (ftp_restart(s, 0) < 0) { s 743 libavformat/ftp.c ftp_file_size(s); s 744 libavformat/ftp.c if (s->write_seekable != 1 && flags & AVIO_FLAG_WRITE) s 758 libavformat/ftp.c FTPContext *s = h->priv_data; s 766 libavformat/ftp.c return s->filesize; s 771 libavformat/ftp.c new_pos = s->position + pos; s 774 libavformat/ftp.c if (s->filesize < 0) s 776 libavformat/ftp.c new_pos = s->filesize + pos; s 790 libavformat/ftp.c if (new_pos != s->position) { s 793 libavformat/ftp.c s->position = new_pos; s 800 libavformat/ftp.c FTPContext *s = h->priv_data; s 805 libavformat/ftp.c if (s->state == ENDOFFILE) s 807 libavformat/ftp.c if (s->state == DISCONNECTED) { s 811 libavformat/ftp.c if (s->state == READY) { s 812 libavformat/ftp.c if ((err = ftp_retrieve(s)) < 0) s 815 libavformat/ftp.c if (s->conn_data && s->state == DOWNLOADING) { s 816 libavformat/ftp.c read = ffurl_read(s->conn_data, buf, size); s 818 libavformat/ftp.c s->position += read; s 819 libavformat/ftp.c s->filesize = FFMAX(s->filesize, s->position); s 824 libavformat/ftp.c err = ftp_status(s, &response, retr_codes); s 826 libavformat/ftp.c ftp_close_data_connection(s); s 828 libavformat/ftp.c s->state = ENDOFFILE; s 856 libavformat/ftp.c FTPContext *s = h->priv_data; s 861 libavformat/ftp.c if (s->state == DISCONNECTED) { s 865 libavformat/ftp.c if (s->state == READY) { s 866 libavformat/ftp.c if ((err = ftp_store(s)) < 0) s 869 libavformat/ftp.c if (s->conn_data && s->state == UPLOADING) { s 870 libavformat/ftp.c written = ffurl_write(s->conn_data, buf, size); s 872 libavformat/ftp.c s->position += written; s 873 libavformat/ftp.c s->filesize = FFMAX(s->filesize, s->position); s 884 libavformat/ftp.c FTPContext *s = h->priv_data; s 888 libavformat/ftp.c ftp_close_both_connections(s); s 889 libavformat/ftp.c av_freep(&s->user); s 890 libavformat/ftp.c av_freep(&s->password); s 891 libavformat/ftp.c av_freep(&s->hostname); s 892 libavformat/ftp.c av_freep(&s->path); s 893 libavformat/ftp.c av_freep(&s->features); s 900 libavformat/ftp.c FTPContext *s = h->priv_data; s 904 libavformat/ftp.c if (s->conn_data) s 905 libavformat/ftp.c return ffurl_get_file_handle(s->conn_data); s 912 libavformat/ftp.c FTPContext *s = h->priv_data; s 916 libavformat/ftp.c if (s->conn_data) s 917 libavformat/ftp.c return ffurl_shutdown(s->conn_data, flags); s 924 libavformat/ftp.c FTPContext *s = h->priv_data; s 929 libavformat/ftp.c if ((ret = ftp_set_dir(s)) < 0) s 933 libavformat/ftp.c if ((ret = ftp_list(s)) < 0) s 935 libavformat/ftp.c s->dir_buffer = av_malloc(DIR_BUFFER_SIZE); s 936 libavformat/ftp.c if (!s->dir_buffer) { s 940 libavformat/ftp.c s->dir_buffer[0] = 0; s 941 libavformat/ftp.c if (s->conn_data && s->state == LISTING_DIR) s 944 libavformat/ftp.c ffurl_closep(&s->conn_control); s 945 libavformat/ftp.c ffurl_closep(&s->conn_data); s 1003 libavformat/ftp.c FTPContext *s = h->priv_data; s 1005 libavformat/ftp.c switch (s->listing_method) { s 1018 libavformat/ftp.c FTPContext *s = h->priv_data; s 1024 libavformat/ftp.c start = s->dir_buffer + s->dir_buffer_offset; s 1028 libavformat/ftp.c s->dir_buffer_size -= s->dir_buffer_offset; s 1029 libavformat/ftp.c s->dir_buffer_offset = 0; s 1030 libavformat/ftp.c if (s->dir_buffer_size) s 1031 libavformat/ftp.c memmove(s->dir_buffer, start, s->dir_buffer_size); s 1032 libavformat/ftp.c ret = ffurl_read(s->conn_data, s->dir_buffer + s->dir_buffer_size, DIR_BUFFER_SIZE - (s->dir_buffer_size + 1)); s 1039 libavformat/ftp.c s->dir_buffer_size += ret; s 1040 libavformat/ftp.c s->dir_buffer[s->dir_buffer_size] = 0; s 1041 libavformat/ftp.c start = s->dir_buffer; s 1044 libavformat/ftp.c s->dir_buffer_offset += (found + 1 - start); s 1052 libavformat/ftp.c (*next)->utf8 = s->utf8; s 1065 libavformat/ftp.c FTPContext *s = h->priv_data; s 1066 libavformat/ftp.c av_freep(&s->dir_buffer); s 1067 libavformat/ftp.c ffurl_closep(&s->conn_control); s 1068 libavformat/ftp.c ffurl_closep(&s->conn_data); s 1074 libavformat/ftp.c FTPContext *s = h->priv_data; s 1083 libavformat/ftp.c snprintf(command, sizeof(command), "DELE %s\r\n", s->path); s 1084 libavformat/ftp.c if (ftp_send_command(s, command, del_codes, NULL) == 250) { s 1089 libavformat/ftp.c snprintf(command, sizeof(command), "RMD %s\r\n", s->path); s 1090 libavformat/ftp.c if (ftp_send_command(s, command, rmd_codes, NULL) == 250) s 1102 libavformat/ftp.c FTPContext *s = h_src->priv_data; s 1111 libavformat/ftp.c snprintf(command, sizeof(command), "RNFR %s\r\n", s->path); s 1112 libavformat/ftp.c if (ftp_send_command(s, command, rnfr_codes, NULL) != 350) { s 1121 libavformat/ftp.c if (ftp_send_command(s, command, rnto_codes, NULL) == 250) s 39 libavformat/fwse.c static int fwse_read_header(AVFormatContext *s) s 42 libavformat/fwse.c AVIOContext *pb = s->pb; s 53 libavformat/fwse.c st = avformat_new_stream(s, NULL); s 27 libavformat/g722.c static int g722_read_header(AVFormatContext *s) s 31 libavformat/g722.c st = avformat_new_stream(s, NULL); s 34 libavformat/g723_1.c static av_cold int g723_1_init(AVFormatContext *s) s 38 libavformat/g723_1.c st = avformat_new_stream(s, NULL); s 54 libavformat/g723_1.c static int g723_1_read_packet(AVFormatContext *s, AVPacket *pkt) s 58 libavformat/g723_1.c pkt->pos = avio_tell(s->pb); s 59 libavformat/g723_1.c byte = avio_r8(s->pb); s 70 libavformat/g723_1.c ret = avio_read(s->pb, pkt->data + 1, size - 1); s 32 libavformat/g726.c static int g726_read_header(AVFormatContext *s) s 34 libavformat/g726.c G726Context *c = s->priv_data; s 35 libavformat/g726.c AVStream *st = avformat_new_stream(s, NULL); s 40 libavformat/g726.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 50 libavformat/g726.c static int g726_read_packet(AVFormatContext *s, AVPacket *pkt) s 53 libavformat/g726.c res = av_get_packet(s->pb, pkt, 1020); // a size similar to RAW_PACKET_SIZE divisible by all code_size values s 34 libavformat/g729dec.c static int g729_read_header(AVFormatContext *s) s 37 libavformat/g729dec.c G729DemuxerContext *s1 = s->priv_data; s 39 libavformat/g729dec.c st = avformat_new_stream(s, NULL); s 49 libavformat/g729dec.c s->bit_rate = s1->bit_rate; s 51 libavformat/g729dec.c switch(s->bit_rate) { s 59 libavformat/g729dec.c av_log(s, AV_LOG_ERROR, "Invalid bit_rate value %"PRId64". " s 60 libavformat/g729dec.c "Only 6400 and 8000 b/s are supported.", s->bit_rate); s 69 libavformat/g729dec.c static int g729_read_packet(AVFormatContext *s, AVPacket *pkt) s 71 libavformat/g729dec.c AVStream *st = s->streams[0]; s 72 libavformat/g729dec.c int ret = av_get_packet(s->pb, pkt, st->codecpar->block_align); s 42 libavformat/genh.c static int genh_read_header(AVFormatContext *s) s 45 libavformat/genh.c GENHDemuxContext *c = s->priv_data; s 50 libavformat/genh.c avio_skip(s->pb, 4); s 52 libavformat/genh.c st = avformat_new_stream(s, NULL); s 57 libavformat/genh.c st->codecpar->channels = avio_rl32(s->pb); s 65 libavformat/genh.c c->interleave_size = avio_rl32(s->pb); s 69 libavformat/genh.c st->codecpar->sample_rate = avio_rl32(s->pb); s 70 libavformat/genh.c avio_skip(s->pb, 4); s 71 libavformat/genh.c st->duration = avio_rl32(s->pb); s 73 libavformat/genh.c codec = avio_rl32(s->pb); s 101 libavformat/genh.c avpriv_request_sample(s, "codec %d", codec); s 105 libavformat/genh.c start_offset = avio_rl32(s->pb); s 106 libavformat/genh.c header_size = avio_rl32(s->pb); s 114 libavformat/genh.c coef[0] = avio_rl32(s->pb); s 115 libavformat/genh.c coef[1] = avio_rl32(s->pb); s 116 libavformat/genh.c c->dsp_int_type = avio_rl32(s->pb); s 117 libavformat/genh.c coef_type = avio_rl32(s->pb); s 118 libavformat/genh.c coef_splitted[0] = avio_rl32(s->pb); s 119 libavformat/genh.c coef_splitted[1] = avio_rl32(s->pb); s 123 libavformat/genh.c avpriv_request_sample(s, "channels %d>2", st->codecpar->channels); s 130 libavformat/genh.c avpriv_request_sample(s, "coef_type & 1"); s 133 libavformat/genh.c avio_seek(s->pb, coef[ch], SEEK_SET); s 134 libavformat/genh.c avio_read(s->pb, st->codecpar->extradata + 32 * ch, 32); s 147 libavformat/genh.c avio_skip(s->pb, start_offset - avio_tell(s->pb)); s 154 libavformat/genh.c static int genh_read_packet(AVFormatContext *s, AVPacket *pkt) s 156 libavformat/genh.c AVCodecParameters *par = s->streams[0]->codecpar; s 157 libavformat/genh.c GENHDemuxContext *c = s->priv_data; s 164 libavformat/genh.c if (avio_feof(s->pb)) s 171 libavformat/genh.c pkt->data[ch * 8 + i*c->interleave_size+0] = avio_r8(s->pb); s 172 libavformat/genh.c pkt->data[ch * 8 + i*c->interleave_size+1] = avio_r8(s->pb); s 177 libavformat/genh.c ret = av_get_packet(s->pb, pkt, par->block_align * 1024); s 180 libavformat/genh.c ret = av_get_packet(s->pb, pkt, par->block_align ? par->block_align : 1024 * par->channels); s 43 libavformat/gif.c static int gif_write_header(AVFormatContext *s) s 45 libavformat/gif.c if (s->nb_streams != 1 || s 46 libavformat/gif.c s->streams[0]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO || s 47 libavformat/gif.c s->streams[0]->codecpar->codec_id != AV_CODEC_ID_GIF) { s 48 libavformat/gif.c av_log(s, AV_LOG_ERROR, s 53 libavformat/gif.c avpriv_set_pts_info(s->streams[0], 64, 1, 100); s 58 libavformat/gif.c static int gif_parse_packet(AVFormatContext *s, uint8_t *data, int size) s 95 libavformat/gif.c static int gif_write_packet(AVFormatContext *s, AVPacket *new_pkt) s 97 libavformat/gif.c GIFContext *gif = s->priv_data; s 98 libavformat/gif.c AVIOContext *pb = s->pb; s 145 libavformat/gif.c delay_pos = gif_parse_packet(s, pkt->data + off, pkt->size - off); s 154 libavformat/gif.c int delay_pos = gif_parse_packet(s, pkt->data, pkt->size); s 172 libavformat/gif.c static int gif_write_trailer(AVFormatContext *s) s 174 libavformat/gif.c GIFContext *gif = s->priv_data; s 175 libavformat/gif.c AVIOContext *pb = s->pb; s 180 libavformat/gif.c gif_write_packet(s, NULL); s 110 libavformat/gifdec.c static int gif_read_header(AVFormatContext *s) s 112 libavformat/gifdec.c GIFDemuxContext *gdc = s->priv_data; s 113 libavformat/gifdec.c AVIOContext *pb = s->pb; s 131 libavformat/gifdec.c st = avformat_new_stream(s, NULL); s 151 libavformat/gifdec.c av_dict_set(&s->metadata, "comment", bp.str, 0); s 208 libavformat/gifdec.c static int gif_read_ext(AVFormatContext *s) s 210 libavformat/gifdec.c GIFDemuxContext *gdc = s->priv_data; s 211 libavformat/gifdec.c AVIOContext *pb = s->pb; s 217 libavformat/gifdec.c av_log(s, AV_LOG_FATAL, "Graphic Control Extension block's size less than 4.\n"); s 263 libavformat/gifdec.c static int gif_read_packet(AVFormatContext *s, AVPacket *pkt) s 265 libavformat/gifdec.c GIFDemuxContext *gdc = s->priv_data; s 266 libavformat/gifdec.c AVIOContext *pb = s->pb; s 307 libavformat/gifdec.c if ((ret = gif_read_ext (s)) < 0 ) s 326 libavformat/gifdec.c av_log(s, AV_LOG_ERROR, "lzw minimum code size must be >= 1\n"); s 358 libavformat/gifdec.c av_log(s, AV_LOG_ERROR, "invalid block label\n"); s 372 libavformat/gifdec.c s->streams[0]->r_frame_rate = (AVRational) {100, gdc->last_duration}; s 37 libavformat/gopher.c GopherContext *s = h->priv_data; s 38 libavformat/gopher.c return ffurl_write(s->hd, buf, size); s 70 libavformat/gopher.c GopherContext *s = h->priv_data; s 71 libavformat/gopher.c ffurl_closep(&s->hd); s 77 libavformat/gopher.c GopherContext *s = h->priv_data; s 92 libavformat/gopher.c s->hd = NULL; s 93 libavformat/gopher.c err = ffurl_open_whitelist(&s->hd, buf, AVIO_FLAG_READ_WRITE, s 108 libavformat/gopher.c GopherContext *s = h->priv_data; s 109 libavformat/gopher.c int len = ffurl_read(s->hd, buf, size); s 54 libavformat/gsmdec.c static int gsm_read_packet(AVFormatContext *s, AVPacket *pkt) s 60 libavformat/gsmdec.c pkt->pos = avio_tell(s->pb); s 63 libavformat/gsmdec.c ret = av_get_packet(s->pb, pkt, size); s 73 libavformat/gsmdec.c static int gsm_read_header(AVFormatContext *s) s 75 libavformat/gsmdec.c GSMDemuxerContext *c = s->priv_data; s 76 libavformat/gsmdec.c AVStream *st = avformat_new_stream(s, NULL); s 81 libavformat/gsmdec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 104 libavformat/gxf.c static int get_sindex(AVFormatContext *s, int id, int format) { s 107 libavformat/gxf.c i = ff_find_stream_index(s, id); s 110 libavformat/gxf.c st = avformat_new_stream(s, NULL); s 190 libavformat/gxf.c return s->nb_streams - 1; s 285 libavformat/gxf.c static void gxf_read_index(AVFormatContext *s, int pkt_len) { s 286 libavformat/gxf.c AVIOContext *pb = s->pb; s 292 libavformat/gxf.c if ((s->flags & AVFMT_FLAG_IGNIDX) || !s->streams) { s 296 libavformat/gxf.c st = s->streams[0]; s 298 libavformat/gxf.c av_log(s, AV_LOG_ERROR, s 304 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "invalid index length\n"); s 316 libavformat/gxf.c static int gxf_header(AVFormatContext *s) { s 317 libavformat/gxf.c AVIOContext *pb = s->pb; s 322 libavformat/gxf.c struct gxf_stream_info *si = s->priv_data; s 325 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "map packet not found\n"); s 330 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "unknown version or invalid map preamble\n"); s 336 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "material data longer than map data\n"); s 345 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "track description longer than map data\n"); s 359 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "invalid track type %x\n", track_type); s 364 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "invalid track id %x\n", track_id); s 371 libavformat/gxf.c add_timecode_metadata(&s->metadata, "timecode", s 378 libavformat/gxf.c idx = get_sindex(s, track_id, track_type); s 380 libavformat/gxf.c st = s->streams[idx]; s 390 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "invalid track description length specified\n"); s 394 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "sync lost in header\n"); s 398 libavformat/gxf.c gxf_read_index(s, len); s 400 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "sync lost in header\n"); s 412 libavformat/gxf.c av_log(s, AV_LOG_WARNING, "No FPS track tag, using UMF fps tag." s 422 libavformat/gxf.c add_timecode_metadata(&s->metadata, "timecode_at_mark_in", s 424 libavformat/gxf.c add_timecode_metadata(&s->metadata, "timecode_at_mark_out", s 428 libavformat/gxf.c av_log(s, AV_LOG_INFO, "UMF packet too short\n"); s 430 libavformat/gxf.c av_log(s, AV_LOG_INFO, "UMF packet missing\n"); s 436 libavformat/gxf.c for (i = 0; i < s->nb_streams; i++) { s 437 libavformat/gxf.c AVStream *st = s->streams[i]; s 457 libavformat/gxf.c static int64_t gxf_resync_media(AVFormatContext *s, uint64_t max_interval, int track, int timestamp) { s 464 libavformat/gxf.c AVIOContext *pb = s->pb; s 495 libavformat/gxf.c static int gxf_packet(AVFormatContext *s, AVPacket *pkt) { s 496 libavformat/gxf.c AVIOContext *pb = s->pb; s 499 libavformat/gxf.c struct gxf_stream_info *si = s->priv_data; s 508 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "sync lost\n"); s 512 libavformat/gxf.c gxf_read_index(s, pkt_len); s 520 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "invalid media packet length\n"); s 526 libavformat/gxf.c stream_index = get_sindex(s, track_id, track_type); s 529 libavformat/gxf.c st = s->streams[stream_index]; s 545 libavformat/gxf.c av_log(s, AV_LOG_ERROR, "invalid first and last sample values\n"); s 562 libavformat/gxf.c static int gxf_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { s 566 libavformat/gxf.c AVStream *st = s->streams[0]; s 567 libavformat/gxf.c int64_t start_time = s->streams[stream_index]->start_time; s 579 libavformat/gxf.c res = avio_seek(s->pb, pos, SEEK_SET); s 582 libavformat/gxf.c found = gxf_resync_media(s, maxlen, -1, timestamp); s 588 libavformat/gxf.c static int64_t gxf_read_timestamp(AVFormatContext *s, int stream_index, s 590 libavformat/gxf.c AVIOContext *pb = s->pb; s 594 libavformat/gxf.c res = gxf_resync_media(s, pos_limit - *pos, -1, -1); s 34 libavformat/gxfenc.c #define GXF_TIMECODE(c, d, h, m, s, f) \ s 35 libavformat/gxfenc.c ((c) << 30 | (d) << 29 | (h) << 24 | (m) << 16 | (s) << 8 | (f)) s 247 libavformat/gxfenc.c static int gxf_write_track_description(AVFormatContext *s, GXFStreamContext *sc, int index) s 249 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 250 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 273 libavformat/gxfenc.c gxf_write_mpeg_auxiliary(pb, s->streams[index]); s 277 libavformat/gxfenc.c gxf_write_dv_auxiliary(pb, s->streams[index]); s 308 libavformat/gxfenc.c static int gxf_write_material_data_section(AVFormatContext *s) s 310 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 311 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 314 libavformat/gxfenc.c const char *filename = strrchr(s->url, '/'); s 323 libavformat/gxfenc.c filename = s->url; s 359 libavformat/gxfenc.c static int gxf_write_track_description_section(AVFormatContext *s) s 361 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 362 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 368 libavformat/gxfenc.c for (i = 0; i < s->nb_streams; ++i) s 369 libavformat/gxfenc.c gxf_write_track_description(s, s->streams[i]->priv_data, i); s 371 libavformat/gxfenc.c gxf_write_track_description(s, &gxf->timecode_track, s->nb_streams); s 376 libavformat/gxfenc.c static int gxf_write_map_packet(AVFormatContext *s, int rewrite) s 378 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 379 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 389 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "could not realloc map offsets\n"); s 402 libavformat/gxfenc.c gxf_write_material_data_section(s); s 403 libavformat/gxfenc.c gxf_write_track_description_section(s); s 408 libavformat/gxfenc.c static int gxf_write_flt_packet(AVFormatContext *s) s 410 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 411 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 433 libavformat/gxfenc.c static int gxf_write_umf_material_description(AVFormatContext *s) s 435 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 436 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 443 libavformat/gxfenc.c ff_parse_creation_time_metadata(s, ×tamp, 1); s 479 libavformat/gxfenc.c static int gxf_write_umf_payload(AVFormatContext *s) s 481 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 482 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 486 libavformat/gxfenc.c avio_wl32(pb, s->nb_streams+1); s 489 libavformat/gxfenc.c avio_wl32(pb, s->nb_streams+1); s 499 libavformat/gxfenc.c static int gxf_write_umf_track_description(AVFormatContext *s) s 501 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 502 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 507 libavformat/gxfenc.c for (i = 0; i < s->nb_streams; ++i) { s 508 libavformat/gxfenc.c GXFStreamContext *sc = s->streams[i]->priv_data; s 583 libavformat/gxfenc.c static int gxf_write_umf_media_description(AVFormatContext *s) s 585 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 586 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 592 libavformat/gxfenc.c for (i = 0; i <= s->nb_streams; ++i) { s 596 libavformat/gxfenc.c if (i == s->nb_streams) s 599 libavformat/gxfenc.c sc = s->streams[i]->priv_data; s 622 libavformat/gxfenc.c AVStream *st = s->streams[i]; s 645 libavformat/gxfenc.c static int gxf_write_umf_packet(AVFormatContext *s) s 647 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 648 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 658 libavformat/gxfenc.c gxf_write_umf_payload(s); s 659 libavformat/gxfenc.c gxf_write_umf_material_description(s); s 660 libavformat/gxfenc.c gxf->umf_track_size = gxf_write_umf_track_description(s); s 661 libavformat/gxfenc.c gxf->umf_media_size = gxf_write_umf_media_description(s); s 681 libavformat/gxfenc.c static int gxf_init_timecode(AVFormatContext *s, GXFTimecode *tc, const char *tcstr, int fields) s 686 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "unable to parse timecode, " s 700 libavformat/gxfenc.c static int gxf_write_header(AVFormatContext *s) s 702 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 703 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 708 libavformat/gxfenc.c AVDictionaryEntry *tcr = av_dict_get(s->metadata, "timecode", NULL, 0); s 711 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "gxf muxer does not support streamed output, patch welcome\n"); s 716 libavformat/gxfenc.c for (i = 0; i < s->nb_streams; ++i) { s 717 libavformat/gxfenc.c AVStream *st = s->streams[i]; s 726 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "only 16 BIT PCM LE allowed for now\n"); s 730 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "only 48000hz sampling rate is allowed\n"); s 734 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "only mono tracks are allowed\n"); s 752 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "video stream must be the first track\n"); s 768 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "unsupported video resolution, " s 813 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "video codec not supported\n"); s 819 libavformat/gxfenc.c sc->order = s->nb_streams - st->index; s 823 libavformat/gxfenc.c gxf_init_timecode(s, &gxf->tc, tcr->value, vsc->fields); s 828 libavformat/gxfenc.c if ((ret = gxf_write_map_packet(s, 0)) < 0) s 830 libavformat/gxfenc.c gxf_write_flt_packet(s); s 831 libavformat/gxfenc.c gxf_write_umf_packet(s); s 846 libavformat/gxfenc.c static int gxf_write_trailer(AVFormatContext *s) s 848 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 849 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 858 libavformat/gxfenc.c if ((ret = gxf_write_map_packet(s, 1)) < 0) s 860 libavformat/gxfenc.c gxf_write_flt_packet(s); s 861 libavformat/gxfenc.c gxf_write_umf_packet(s); s 865 libavformat/gxfenc.c if ((ret = gxf_write_map_packet(s, 1)) < 0) s 874 libavformat/gxfenc.c static void gxf_deinit(AVFormatContext *s) s 876 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 894 libavformat/gxfenc.c static int gxf_write_media_preamble(AVFormatContext *s, AVPacket *pkt, int size) s 896 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 897 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 898 libavformat/gxfenc.c AVStream *st = s->streams[pkt->stream_index]; s 941 libavformat/gxfenc.c static int gxf_write_packet(AVFormatContext *s, AVPacket *pkt) s 943 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 944 libavformat/gxfenc.c AVIOContext *pb = s->pb; s 945 libavformat/gxfenc.c AVStream *st = s->streams[pkt->stream_index]; s 956 libavformat/gxfenc.c gxf_write_media_preamble(s, pkt, pkt->size + padding); s 968 libavformat/gxfenc.c av_log(s, AV_LOG_ERROR, "could not reallocate flt entries\n"); s 980 libavformat/gxfenc.c if ((ret = gxf_write_map_packet(s, 0)) < 0) s 988 libavformat/gxfenc.c static int gxf_compare_field_nb(AVFormatContext *s, const AVPacket *next, s 991 libavformat/gxfenc.c GXFContext *gxf = s->priv_data; s 997 libavformat/gxfenc.c AVStream *st = s->streams[pkt[i]->stream_index]; s 1011 libavformat/gxfenc.c static int gxf_interleave_packet(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush) s 1015 libavformat/gxfenc.c AVStream *st = s->streams[pkt->stream_index]; s 1022 libavformat/gxfenc.c if ((ret = ff_interleave_add_packet(s, pkt, gxf_compare_field_nb)) < 0) s 1025 libavformat/gxfenc.c return ff_interleave_packet_per_dts(s, out, NULL, flush); s 83 libavformat/hashenc.c static int hash_init(struct AVFormatContext *s) s 86 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 100 libavformat/hashenc.c static int streamhash_init(struct AVFormatContext *s) s 103 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 105 libavformat/hashenc.c c->hashes = av_mallocz_array(s->nb_streams, sizeof(*c->hashes)); s 108 libavformat/hashenc.c for (i = 0; i < s->nb_streams; i++) { s 132 libavformat/hashenc.c static int hash_write_packet(struct AVFormatContext *s, AVPacket *pkt) s 134 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 139 libavformat/hashenc.c static int hash_write_trailer(struct AVFormatContext *s) s 141 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 142 libavformat/hashenc.c int num_hashes = c->per_stream ? s->nb_streams : 1; s 146 libavformat/hashenc.c AVStream *st = s->streams[i]; s 154 libavformat/hashenc.c avio_write(s->pb, buf, strlen(buf)); s 160 libavformat/hashenc.c static void hash_free(struct AVFormatContext *s) s 162 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 164 libavformat/hashenc.c int num_hashes = c->per_stream ? s->nb_streams : 1; s 246 libavformat/hashenc.c static void framehash_print_extradata(struct AVFormatContext *s) s 250 libavformat/hashenc.c for (i = 0; i < s->nb_streams; i++) { s 251 libavformat/hashenc.c AVStream *st = s->streams[i]; s 254 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 257 libavformat/hashenc.c avio_printf(s->pb, "#extradata %d, %31d, ", i, par->extradata_size); s 261 libavformat/hashenc.c avio_write(s->pb, buf, strlen(buf)); s 262 libavformat/hashenc.c avio_printf(s->pb, "\n"); s 267 libavformat/hashenc.c static int framehash_init(struct AVFormatContext *s) s 270 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 281 libavformat/hashenc.c static int framehash_write_header(struct AVFormatContext *s) s 283 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 284 libavformat/hashenc.c avio_printf(s->pb, "#format: frame checksums\n"); s 285 libavformat/hashenc.c avio_printf(s->pb, "#version: %d\n", c->format_version); s 286 libavformat/hashenc.c avio_printf(s->pb, "#hash: %s\n", av_hash_get_name(c->hashes[0])); s 287 libavformat/hashenc.c framehash_print_extradata(s); s 288 libavformat/hashenc.c ff_framehash_write_header(s); s 289 libavformat/hashenc.c avio_printf(s->pb, "#stream#, dts, pts, duration, size, hash\n"); s 293 libavformat/hashenc.c static int framehash_write_packet(struct AVFormatContext *s, AVPacket *pkt) s 295 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 305 libavformat/hashenc.c avio_write(s->pb, buf, strlen(buf)); s 309 libavformat/hashenc.c avio_printf(s->pb, ", S=%d", pkt->side_data_elems); s 322 libavformat/hashenc.c avio_write(s->pb, buf, strlen(buf)); s 326 libavformat/hashenc.c avio_printf(s->pb, "\n"); s 330 libavformat/hashenc.c static void framehash_free(struct AVFormatContext *s) s 332 libavformat/hashenc.c struct HashContext *c = s->priv_data; s 39 libavformat/hca.c static int hca_read_header(AVFormatContext *s) s 43 libavformat/hca.c AVIOContext *pb = s->pb; s 54 libavformat/hca.c s->internal->data_offset = avio_rb16(pb); s 55 libavformat/hca.c if (s->internal->data_offset <= 8) s 58 libavformat/hca.c st = avformat_new_stream(s, NULL); s 63 libavformat/hca.c ret = ff_alloc_extradata(par, s->internal->data_offset); s 72 libavformat/hca.c AV_WB16(par->extradata + 6, s->internal->data_offset); s 100 libavformat/hca.c avio_seek(pb, s->internal->data_offset, SEEK_SET); s 106 libavformat/hca.c static int hca_read_packet(AVFormatContext *s, AVPacket *pkt) s 108 libavformat/hca.c AVCodecParameters *par = s->streams[0]->codecpar; s 111 libavformat/hca.c ret = av_get_packet(s->pb, pkt, par->block_align); s 38 libavformat/hcom.c static int hcom_read_header(AVFormatContext *s) s 46 libavformat/hcom.c avio_skip(s->pb, 83); s 47 libavformat/hcom.c data_size = avio_rb32(s->pb); s 48 libavformat/hcom.c rsrc_size = avio_rb32(s->pb); s 49 libavformat/hcom.c avio_skip(s->pb, 128-91+4); s 50 libavformat/hcom.c huffcount = avio_rb32(s->pb); s 51 libavformat/hcom.c avio_skip(s->pb, 4); s 52 libavformat/hcom.c compresstype = avio_rb32(s->pb); s 55 libavformat/hcom.c divisor = avio_rb32(s->pb); s 58 libavformat/hcom.c dict_entries = avio_rb16(s->pb); s 60 libavformat/hcom.c st = avformat_new_stream(s, NULL); s 76 libavformat/hcom.c avio_read(s->pb, st->codecpar->extradata + 6, dict_entries * 4); s 77 libavformat/hcom.c avio_skip(s->pb, 1); s 78 libavformat/hcom.c st->codecpar->extradata[dict_entries * 4 + 6] = avio_r8(s->pb); s 135 libavformat/hdsenc.c static void hds_free(AVFormatContext *s) s 137 libavformat/hdsenc.c HDSContext *c = s->priv_data; s 141 libavformat/hdsenc.c for (i = 0; i < s->nb_streams; i++) { s 144 libavformat/hdsenc.c ff_format_io_close(s, &os->out); s 160 libavformat/hdsenc.c static int write_manifest(AVFormatContext *s, int final) s 162 libavformat/hdsenc.c HDSContext *c = s->priv_data; s 169 libavformat/hdsenc.c duration = c->streams[0].last_ts * av_q2d(s->streams[0]->time_base); s 171 libavformat/hdsenc.c snprintf(filename, sizeof(filename), "%s/index.f4m", s->url); s 172 libavformat/hdsenc.c snprintf(temp_filename, sizeof(temp_filename), "%s/index.f4m.tmp", s->url); s 173 libavformat/hdsenc.c ret = s->io_open(s, &out, temp_filename, AVIO_FLAG_WRITE, NULL); s 175 libavformat/hdsenc.c av_log(s, AV_LOG_ERROR, "Unable to open %s for writing\n", temp_filename); s 180 libavformat/hdsenc.c avio_printf(out, "\t<id>%s</id>\n", av_basename(s->url)); s 191 libavformat/hdsenc.c ff_format_io_close(s, &out); s 204 libavformat/hdsenc.c ff_format_io_close(s, &out); s 205 libavformat/hdsenc.c return ff_rename(temp_filename, filename, s); s 219 libavformat/hdsenc.c static int write_abst(AVFormatContext *s, OutputStream *os, int final) s 221 libavformat/hdsenc.c HDSContext *c = s->priv_data; s 227 libavformat/hdsenc.c int index = s->streams[os->first_stream]->id; s 238 libavformat/hdsenc.c "%s/stream%d.abst", s->url, index); s 240 libavformat/hdsenc.c "%s/stream%d.abst.tmp", s->url, index); s 241 libavformat/hdsenc.c ret = s->io_open(s, &out, temp_filename, AVIO_FLAG_WRITE, NULL); s 243 libavformat/hdsenc.c av_log(s, AV_LOG_ERROR, "Unable to open %s for writing\n", temp_filename); s 284 libavformat/hdsenc.c ff_format_io_close(s, &out); s 285 libavformat/hdsenc.c return ff_rename(temp_filename, filename, s); s 288 libavformat/hdsenc.c static int init_file(AVFormatContext *s, OutputStream *os, int64_t start_ts) s 291 libavformat/hdsenc.c ret = s->io_open(s, &os->out, os->temp_filename, AVIO_FLAG_WRITE, NULL); s 304 libavformat/hdsenc.c static void close_file(AVFormatContext *s, OutputStream *os) s 310 libavformat/hdsenc.c ff_format_io_close(s, &os->out); s 313 libavformat/hdsenc.c static int hds_write_header(AVFormatContext *s) s 315 libavformat/hdsenc.c HDSContext *c = s->priv_data; s 319 libavformat/hdsenc.c if (mkdir(s->url, 0777) == -1 && errno != EEXIST) { s 320 libavformat/hdsenc.c av_log(s, AV_LOG_ERROR , "Failed to create directory %s\n", s->url); s 329 libavformat/hdsenc.c c->streams = av_mallocz_array(s->nb_streams, sizeof(*c->streams)); s 334 libavformat/hdsenc.c for (i = 0; i < s->nb_streams; i++) { s 337 libavformat/hdsenc.c AVStream *st = s->streams[i]; s 340 libavformat/hdsenc.c av_log(s, AV_LOG_ERROR, "No bit rate set for stream %d\n", i); s 356 libavformat/hdsenc.c av_log(s, AV_LOG_ERROR, "Unsupported stream type in stream %d\n", i); s 359 libavformat/hdsenc.c os->bitrate += s->streams[i]->codecpar->bit_rate; s 369 libavformat/hdsenc.c ctx->interrupt_callback = s->interrupt_callback; s 370 libavformat/hdsenc.c ctx->flags = s->flags; s 381 libavformat/hdsenc.c s->streams[i]->id = c->nb_streams; s 386 libavformat/hdsenc.c avcodec_parameters_copy(st->codecpar, s->streams[i]->codecpar); s 388 libavformat/hdsenc.c st->sample_aspect_ratio = s->streams[i]->sample_aspect_ratio; s 389 libavformat/hdsenc.c st->time_base = s->streams[i]->time_base; s 403 libavformat/hdsenc.c s->streams[os->first_stream + j]->time_base = os->ctx->streams[j]->time_base; s 406 libavformat/hdsenc.c "%s/stream%d_temp", s->url, i); s 407 libavformat/hdsenc.c ret = init_file(s, os, 0); s 412 libavformat/hdsenc.c av_log(s, AV_LOG_WARNING, s 416 libavformat/hdsenc.c write_abst(s, os, 0); s 418 libavformat/hdsenc.c ret = write_manifest(s, 0); s 451 libavformat/hdsenc.c static int hds_flush(AVFormatContext *s, OutputStream *os, int final, s 454 libavformat/hdsenc.c HDSContext *c = s->priv_data; s 457 libavformat/hdsenc.c int index = s->streams[os->first_stream]->id; s 464 libavformat/hdsenc.c close_file(s, os); s 467 libavformat/hdsenc.c "%s/stream%dSeg1-Frag%d", s->url, index, os->fragment_index); s 468 libavformat/hdsenc.c ret = ff_rename(os->temp_filename, target_filename, s); s 474 libavformat/hdsenc.c ret = init_file(s, os, end_ts); s 495 libavformat/hdsenc.c ret = write_abst(s, os, final); s 499 libavformat/hdsenc.c static int hds_write_packet(AVFormatContext *s, AVPacket *pkt) s 501 libavformat/hdsenc.c HDSContext *c = s->priv_data; s 502 libavformat/hdsenc.c AVStream *st = s->streams[pkt->stream_index]; s 503 libavformat/hdsenc.c OutputStream *os = &c->streams[s->streams[pkt->stream_index]->id]; s 515 libavformat/hdsenc.c if ((ret = hds_flush(s, os, 0, pkt->dts)) < 0) s 526 libavformat/hdsenc.c return ff_write_chained(os->ctx, pkt->stream_index - os->first_stream, pkt, s, 0); s 529 libavformat/hdsenc.c static int hds_write_trailer(AVFormatContext *s) s 531 libavformat/hdsenc.c HDSContext *c = s->priv_data; s 535 libavformat/hdsenc.c hds_flush(s, &c->streams[i], 1, c->streams[i].last_ts); s 536 libavformat/hdsenc.c write_manifest(s, 1); s 540 libavformat/hdsenc.c snprintf(filename, sizeof(filename), "%s/index.f4m", s->url); s 543 libavformat/hdsenc.c snprintf(filename, sizeof(filename), "%s/stream%d.abst", s->url, i); s 546 libavformat/hdsenc.c rmdir(s->url); s 609 libavformat/hls.c static int open_url_keepalive(AVFormatContext *s, AVIOContext **pb, s 621 libavformat/hls.c ff_format_io_close(s, pb); s 627 libavformat/hls.c static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url, s 630 libavformat/hls.c HLSContext *c = s->priv_data; s 653 libavformat/hls.c av_log(s, AV_LOG_ERROR, s 685 libavformat/hls.c av_log(s, AV_LOG_WARNING, s 688 libavformat/hls.c ret = s->io_open(s, pb, url, AVIO_FLAG_READ, &tmp); s 691 libavformat/hls.c ret = s->io_open(s, pb, url, AVIO_FLAG_READ, &tmp); s 697 libavformat/hls.c if (!(s->flags & AVFMT_FLAG_CUSTOM_IO)) s 1025 libavformat/hls.c static void parse_id3(AVFormatContext *s, AVIOContext *pb, s 1039 libavformat/hls.c av_log(s, AV_LOG_DEBUG, "HLS ID3 audio timestamp %"PRId64"\n", ts); s 1043 libavformat/hls.c av_log(s, AV_LOG_ERROR, "Invalid HLS ID3 audio timestamp %"PRId64"\n", ts); s 1375 libavformat/hls.c AVFormatContext *s = pls->parent; s 1403 libavformat/hls.c for (i = 0; i < s->nb_programs; i++) { s 1404 libavformat/hls.c AVProgram *program = s->programs[i]; s 1603 libavformat/hls.c static void add_metadata_from_renditions(AVFormatContext *s, struct playlist *pls, s 1700 libavformat/hls.c static int save_avio_options(AVFormatContext *s) s 1702 libavformat/hls.c HLSContext *c = s->priv_data; s 1710 libavformat/hls.c if (av_opt_get(s->pb, *opt, AV_OPT_SEARCH_CHILDREN | AV_OPT_ALLOW_NULL, &buf) >= 0) { s 1722 libavformat/hls.c static int nested_io_open(AVFormatContext *s, AVIOContext **pb, const char *url, s 1725 libavformat/hls.c av_log(s, AV_LOG_ERROR, s 1728 libavformat/hls.c s->url, url); s 1732 libavformat/hls.c static void add_stream_to_programs(AVFormatContext *s, struct playlist *pls, AVStream *stream) s 1734 libavformat/hls.c HLSContext *c = s->priv_data; s 1745 libavformat/hls.c av_program_add_stream_index(s, i, stream->index); s 1777 libavformat/hls.c static int update_streams_from_subdemuxer(AVFormatContext *s, struct playlist *pls) s 1783 libavformat/hls.c AVStream *st = avformat_new_stream(s, NULL); s 1792 libavformat/hls.c add_stream_to_programs(s, pls, st); s 1802 libavformat/hls.c static void update_noheader_flag(AVFormatContext *s) s 1804 libavformat/hls.c HLSContext *c = s->priv_data; s 1818 libavformat/hls.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 1820 libavformat/hls.c s->ctx_flags &= ~AVFMTCTX_NOHEADER; s 1823 libavformat/hls.c static int hls_close(AVFormatContext *s) s 1825 libavformat/hls.c HLSContext *c = s->priv_data; s 1837 libavformat/hls.c static int hls_read_header(AVFormatContext *s) s 1839 libavformat/hls.c HLSContext *c = s->priv_data; s 1843 libavformat/hls.c c->ctx = s; s 1844 libavformat/hls.c c->interrupt_callback = &s->interrupt_callback; s 1850 libavformat/hls.c if ((ret = save_avio_options(s)) < 0) s 1858 libavformat/hls.c if ((ret = parse_playlist(c, s->url, NULL, s->pb)) < 0) s 1862 libavformat/hls.c av_log(s, AV_LOG_WARNING, "Empty playlist\n"); s 1873 libavformat/hls.c av_log(s, AV_LOG_WARNING, "parse_playlist error %s [%s]\n", av_err2str(ret), pls->url); s 1884 libavformat/hls.c av_log(s, AV_LOG_WARNING, "Empty segment [%s]\n", c->variants[i]->playlists[0]->url); s 1895 libavformat/hls.c s->duration = duration; s 1915 libavformat/hls.c program = av_new_program(s, i); s 1948 libavformat/hls.c pls->parent = s; s 1971 libavformat/hls.c pls->ctx->probesize = s->probesize > 0 ? s->probesize : 1024 * 4; s 1972 libavformat/hls.c pls->ctx->max_analyze_duration = s->max_analyze_duration > 0 ? s->max_analyze_duration : 4 * AV_TIME_BASE; s 1981 libavformat/hls.c av_log(s, AV_LOG_ERROR, "Error when loading first segment '%s'\n", pls->segments[0]->url); s 1988 libavformat/hls.c pls->ctx->flags |= s->flags & ~AVFMT_FLAG_CUSTOM_IO; s 1990 libavformat/hls.c if ((ret = ff_copy_whiteblacklists(pls->ctx, s)) < 0) s 2005 libavformat/hls.c av_log(s, AV_LOG_WARNING, "No expected HTTP requests have been made\n"); s 2022 libavformat/hls.c ret = update_streams_from_subdemuxer(s, pls); s 2033 libavformat/hls.c add_metadata_from_renditions(s, pls, AVMEDIA_TYPE_AUDIO); s 2034 libavformat/hls.c add_metadata_from_renditions(s, pls, AVMEDIA_TYPE_VIDEO); s 2035 libavformat/hls.c add_metadata_from_renditions(s, pls, AVMEDIA_TYPE_SUBTITLE); s 2038 libavformat/hls.c update_noheader_flag(s); s 2042 libavformat/hls.c hls_close(s); s 2046 libavformat/hls.c static int recheck_discard_flags(AVFormatContext *s, int first) s 2048 libavformat/hls.c HLSContext *c = s->priv_data; s 2072 libavformat/hls.c av_log(s, AV_LOG_INFO, "Now receiving playlist %d, segment %d\n", i, pls->cur_seq_no); s 2080 libavformat/hls.c av_log(s, AV_LOG_INFO, "No longer receiving playlist %d\n", i); s 2128 libavformat/hls.c static int hls_read_packet(AVFormatContext *s, AVPacket *pkt) s 2130 libavformat/hls.c HLSContext *c = s->priv_data; s 2133 libavformat/hls.c recheck_discard_flags(s, c->first_packet); s 2210 libavformat/hls.c ret = update_streams_from_subdemuxer(s, pls); s 2230 libavformat/hls.c update_noheader_flag(s); s 2234 libavformat/hls.c av_log(s, AV_LOG_ERROR, "stream index inconsistency: index %d, %d main streams, %d subdemuxer streams\n", s 2265 libavformat/hls.c static int hls_read_seek(AVFormatContext *s, int stream_index, s 2268 libavformat/hls.c HLSContext *c = s->priv_data; s 2282 libavformat/hls.c s->streams[stream_index]->time_base.den, s 2286 libavformat/hls.c duration = s->duration == AV_NOPTS_VALUE ? s 2287 libavformat/hls.c 0 : s->duration; s 2296 libavformat/hls.c if (pls->main_streams[j] == s->streams[stream_index]) { s 258 libavformat/hlsenc.c static int hlsenc_io_open(AVFormatContext *s, AVIOContext **pb, char *filename, s 261 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 265 libavformat/hlsenc.c err = s->io_open(s, pb, filename, AVIO_FLAG_WRITE, options); s 272 libavformat/hlsenc.c ff_format_io_close(s, pb); s 279 libavformat/hlsenc.c static int hlsenc_io_close(AVFormatContext *s, AVIOContext **pb, char *filename) s 281 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 287 libavformat/hlsenc.c ff_format_io_close(s, pb); s 300 libavformat/hlsenc.c static void set_http_options(AVFormatContext *s, AVDictionary **options, HLSContext *c) s 302 libavformat/hlsenc.c int http_base_proto = ff_is_http_proto(s->url); s 365 libavformat/hlsenc.c static int replace_str_data_in_filename(char **s, const char *filename, char placeholder, const char *datastring) s 402 libavformat/hlsenc.c *s = new_filename; s 406 libavformat/hlsenc.c static int replace_int_data_in_filename(char **s, const char *filename, char placeholder, int64_t number) s 451 libavformat/hlsenc.c *s = new_filename; s 518 libavformat/hlsenc.c static int hls_delete_old_segments(AVFormatContext *s, HLSContext *hls, s 594 libavformat/hlsenc.c proto = avio_find_protocol_name(s->url); s 643 libavformat/hlsenc.c static int do_encrypt(AVFormatContext *s, VariantStream *vs) s 645 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 650 libavformat/hlsenc.c char * key_basename_source = (hls->master_m3u8_url) ? hls->master_m3u8_url : s->url; s 696 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Cannot generate a strong random key\n"); s 704 libavformat/hlsenc.c set_http_options(s, &options, hls); s 705 libavformat/hlsenc.c ret = s->io_open(s, &pb, hls->key_file, AVIO_FLAG_WRITE, &options); s 717 libavformat/hlsenc.c static int hls_encryption_start(AVFormatContext *s, VariantStream *vs) s 719 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 725 libavformat/hlsenc.c set_http_options(s, &options, hls); s 726 libavformat/hlsenc.c ret = s->io_open(s, &pb, hls->key_info_file, AVIO_FLAG_READ, &options); s 743 libavformat/hlsenc.c ff_format_io_close(s, &pb); s 755 libavformat/hlsenc.c set_http_options(s, &options, hls); s 756 libavformat/hlsenc.c ret = s->io_open(s, &pb, vs->key_file, AVIO_FLAG_READ, &options); s 764 libavformat/hlsenc.c ff_format_io_close(s, &pb); s 776 libavformat/hlsenc.c static int hls_mux_init(AVFormatContext *s, VariantStream *vs) s 779 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 795 libavformat/hlsenc.c oc->interrupt_callback = s->interrupt_callback; s 796 libavformat/hlsenc.c oc->max_delay = s->max_delay; s 797 libavformat/hlsenc.c oc->opaque = s->opaque; s 798 libavformat/hlsenc.c oc->io_open = s->io_open; s 799 libavformat/hlsenc.c oc->io_close = s->io_close; s 800 libavformat/hlsenc.c oc->strict_std_compliance = s->strict_std_compliance; s 801 libavformat/hlsenc.c av_dict_copy(&oc->metadata, s->metadata, 0); s 808 libavformat/hlsenc.c av_dict_copy(&vtt_oc->metadata, s->metadata, 0); s 841 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "http persistent mode is currently unsupported for fragment mp4 in the HLS muxer.\n"); s 844 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "Multi-file byterange mode is currently unsupported in the HLS muxer.\n"); s 853 libavformat/hlsenc.c set_http_options(s, &options, hls); s 855 libavformat/hlsenc.c ret = hlsenc_io_open(s, &vs->out, vs->basename, &options); s 857 libavformat/hlsenc.c ret = hlsenc_io_open(s, &vs->out, vs->base_output_dirname, &options); s 862 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Failed to open segment '%s'\n", vs->fmp4_init_filename); s 883 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Some of the provided format options are not recognized\n"); s 900 libavformat/hlsenc.c static int sls_flags_filename_process(struct AVFormatContext *s, HLSContext *hls, s 1038 libavformat/hlsenc.c static int hls_append_segment(struct AVFormatContext *s, HLSContext *hls, s 1051 libavformat/hlsenc.c ret = sls_flags_filename_process(s, hls, vs, en, duration, pos, size); s 1114 libavformat/hlsenc.c if ((ret = hls_delete_old_segments(s, hls, vs)) < 0) s 1129 libavformat/hlsenc.c static int parse_playlist(AVFormatContext *s, const char *url, VariantStream *vs) s 1131 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 1140 libavformat/hlsenc.c &s->interrupt_callback, NULL, s 1141 libavformat/hlsenc.c s->protocol_whitelist, s->protocol_blacklist)) < 0) s 1207 libavformat/hlsenc.c ret = hls_append_segment(s, hls, vs, vs->duration, vs->start_pos, vs->size); s 1231 libavformat/hlsenc.c static int hls_rename_temp_file(AVFormatContext *s, AVFormatContext *oc) s 1240 libavformat/hlsenc.c ret = ff_rename(oc->url, final_filename, s); s 1282 libavformat/hlsenc.c static int create_master_playlist(AVFormatContext *s, s 1285 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 1314 libavformat/hlsenc.c set_http_options(s, &options, hls); s 1316 libavformat/hlsenc.c ret = hlsenc_io_open(s, &hls->m3u8_out, temp_filename, &options); s 1319 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Failed to open master play list file '%s'\n", s 1345 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Unable to find relative URL\n"); s 1358 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Unable to find relative URL\n"); s 1372 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "Media stream not found\n"); s 1413 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "mapping ccgroup %s not found\n", s 1421 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "Unable to find relative subtitle URL\n"); s 1441 libavformat/hlsenc.c hlsenc_io_close(s, &hls->m3u8_out, temp_filename); s 1443 libavformat/hlsenc.c ff_rename(temp_filename, hls->master_m3u8_url, s); s 1448 libavformat/hlsenc.c static int hls_window(AVFormatContext *s, int last, VariantStream *vs) s 1450 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 1483 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Cannot use rename on non file protocol, this may lead to races and temporary partial files\n"); s 1485 libavformat/hlsenc.c set_http_options(s, &options, hls); s 1487 libavformat/hlsenc.c if ((ret = hlsenc_io_open(s, byterange_mode ? &hls->m3u8_out : &vs->out, temp_filename, &options)) < 0) { s 1530 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "ff_hls_write_file_entry get error\n"); s 1539 libavformat/hlsenc.c if ((ret = hlsenc_io_open(s, &hls->sub_m3u8_out, temp_vtt_filename, &options)) < 0) { s 1551 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "ff_hls_write_file_entry get error\n"); s 1562 libavformat/hlsenc.c ret = hlsenc_io_close(s, byterange_mode ? &hls->m3u8_out : &vs->out, temp_filename); s 1566 libavformat/hlsenc.c hlsenc_io_close(s, &hls->sub_m3u8_out, vs->vtt_m3u8_name); s 1568 libavformat/hlsenc.c ff_rename(temp_filename, vs->m3u8_name, s); s 1570 libavformat/hlsenc.c ff_rename(temp_vtt_filename, vs->vtt_m3u8_name, s); s 1573 libavformat/hlsenc.c if (create_master_playlist(s, vs) < 0) s 1574 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "Master playlist creation failed\n"); s 1579 libavformat/hlsenc.c static int hls_start(AVFormatContext *s, VariantStream *vs) s 1581 libavformat/hlsenc.c HLSContext *c = s->priv_data; s 1690 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Encrypted fmp4 not yet supported\n"); s 1695 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "Cannot use both -hls_key_info_file and -hls_enc," s 1701 libavformat/hlsenc.c if ((err = hls_encryption_start(s, vs)) < 0) s 1705 libavformat/hlsenc.c if ((err = do_encrypt(s, vs)) < 0) s 1727 libavformat/hlsenc.c set_http_options(s, &options, c); s 1728 libavformat/hlsenc.c if ((err = hlsenc_io_open(s, &vs->out, oc->url, &options)) < 0) { s 1736 libavformat/hlsenc.c set_http_options(s, &options, c); s 1737 libavformat/hlsenc.c if ((err = hlsenc_io_open(s, &vtt_oc->pb, vtt_oc->url, &options)) < 0) { s 1758 libavformat/hlsenc.c static const char * get_default_pattern_localtime_fmt(AVFormatContext *s) s 1763 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 1827 libavformat/hlsenc.c static int format_name(const char *buf, char **s, int index, const char *varname) s 1838 libavformat/hlsenc.c *s = orig_buf_dup; s 1843 libavformat/hlsenc.c if (replace_int_data_in_filename(s, orig_buf_dup, 'v', index) < 1) { s 1848 libavformat/hlsenc.c if (replace_str_data_in_filename(s, orig_buf_dup, 'v', varname) < 1) { s 1859 libavformat/hlsenc.c mod_buf_dup = av_strdup(*s); s 1873 libavformat/hlsenc.c static int get_nth_codec_stream_index(AVFormatContext *s, s 1878 libavformat/hlsenc.c if (stream_id < 0 || stream_id > s->nb_streams - 1) s 1881 libavformat/hlsenc.c for (stream_index = 0; stream_index < s->nb_streams; stream_index++) { s 1882 libavformat/hlsenc.c if (s->streams[stream_index]->codecpar->codec_type != codec_type) s 1891 libavformat/hlsenc.c static int parse_variant_stream_mapstring(AVFormatContext *s) s 1893 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 1992 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Invalid keyval %s\n", keyval); s 1998 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Invalid stream number: '%s'\n", val); s 2001 libavformat/hlsenc.c stream_index = get_nth_codec_stream_index(s, codec_type, num); s 2005 libavformat/hlsenc.c if (vs->streams[i] == s->streams[stream_index]) { s 2006 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Same elementary stream found more than once inside " s 2013 libavformat/hlsenc.c if (hls->var_streams[j].streams[i] == s->streams[stream_index]) { s 2014 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Same elementary stream found more than once " s 2021 libavformat/hlsenc.c vs->streams[nb_streams++] = s->streams[stream_index]; s 2023 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Unable to map stream at %s\n", keyval); s 2028 libavformat/hlsenc.c av_log(s, AV_LOG_DEBUG, "Number of variant streams %d\n", s 2034 libavformat/hlsenc.c static int parse_cc_stream_mapstring(AVFormatContext *s) s 2036 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 2079 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Invalid keyval %s\n", keyval); s 2085 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Insufficient parameters in cc stream map string\n"); s 2091 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Invalid instream ID CC index %d in %s, range 1-4\n", s 2097 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Invalid instream ID SERVICE index %d in %s, range 1-63 \n", s 2102 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Invalid instream ID %s, supported are CCn or SERVICEn\n", s 2111 libavformat/hlsenc.c static int update_variant_stream_info(AVFormatContext *s) s 2113 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 2118 libavformat/hlsenc.c ret = parse_cc_stream_mapstring(s); s 2124 libavformat/hlsenc.c return parse_variant_stream_mapstring(s); s 2133 libavformat/hlsenc.c hls->var_streams[0].nb_streams = s->nb_streams; s 2143 libavformat/hlsenc.c for (i = 0; i < s->nb_streams; i++) s 2144 libavformat/hlsenc.c hls->var_streams[0].streams[i] = s->streams[i]; s 2149 libavformat/hlsenc.c static int update_master_pl_info(AVFormatContext *s) s 2151 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 2156 libavformat/hlsenc.c fn1 = av_strdup(s->url); s 2191 libavformat/hlsenc.c static int hls_write_header(AVFormatContext *s) s 2193 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 2211 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "Your video bitrate is bigger than hls_segment_size, " s 2246 libavformat/hlsenc.c static int hls_init_file_resend(AVFormatContext *s, VariantStream *vs) s 2248 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 2252 libavformat/hlsenc.c set_http_options(s, &options, hls); s 2253 libavformat/hlsenc.c ret = hlsenc_io_open(s, &vs->out, vs->base_output_dirname, &options); s 2258 libavformat/hlsenc.c hlsenc_io_close(s, &vs->out, hls->fmp4_init_filename); s 2263 libavformat/hlsenc.c static int hls_write_packet(AVFormatContext *s, AVPacket *pkt) s 2265 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 2267 libavformat/hlsenc.c AVStream *st = s->streams[pkt->stream_index]; s 2298 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Unable to find mapping variant stream\n"); s 2342 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "pkt->duration = 0, maybe the hls segment duration will not precise\n"); s 2371 libavformat/hlsenc.c hlsenc_io_close(s, &vs->out, vs->base_output_dirname); s 2377 libavformat/hlsenc.c hlsenc_io_close(s, &vs->vtt_avf->pb, vs->vtt_avf->url); s 2414 libavformat/hlsenc.c set_http_options(s, &options, hls); s 2416 libavformat/hlsenc.c ret = hlsenc_io_open(s, &vs->out, filename, &options); s 2418 libavformat/hlsenc.c av_log(s, hls->ignore_io_errors ? AV_LOG_WARNING : AV_LOG_ERROR, s 2433 libavformat/hlsenc.c ret = hlsenc_io_close(s, &vs->out, filename); s 2435 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "upload segment failed," s 2437 libavformat/hlsenc.c ff_format_io_close(s, &vs->out); s 2438 libavformat/hlsenc.c ret = hlsenc_io_open(s, &vs->out, filename, &options); s 2440 libavformat/hlsenc.c ret = hlsenc_io_close(s, &vs->out, filename); s 2448 libavformat/hlsenc.c hls_rename_temp_file(s, oc); s 2458 libavformat/hlsenc.c ret = hls_append_segment(s, hls, vs, cur_duration, vs->start_pos, vs->size); s 2469 libavformat/hlsenc.c if ((ret = hls_window(s, 0, vs)) < 0) { s 2470 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "upload playlist failed, will retry with a new http session.\n"); s 2471 libavformat/hlsenc.c ff_format_io_close(s, &vs->out); s 2472 libavformat/hlsenc.c if ((ret = hls_window(s, 0, vs)) < 0) { s 2480 libavformat/hlsenc.c ret = hls_init_file_resend(s, vs); s 2494 libavformat/hlsenc.c ret = hls_start(s, vs); s 2502 libavformat/hlsenc.c ret = hls_start(s, vs); s 2515 libavformat/hlsenc.c ret = ff_write_chained(oc, stream_index, pkt, s, 0); s 2529 libavformat/hlsenc.c static void hls_deinit(AVFormatContext *s) s 2531 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 2554 libavformat/hlsenc.c ff_format_io_close(s, &hls->m3u8_out); s 2555 libavformat/hlsenc.c ff_format_io_close(s, &hls->sub_m3u8_out); s 2562 libavformat/hlsenc.c static int hls_write_trailer(struct AVFormatContext *s) s 2564 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 2614 libavformat/hlsenc.c ff_format_io_close(s, &vs->out); s 2615 libavformat/hlsenc.c hlsenc_io_close(s, &vs->out, vs->base_output_dirname); s 2620 libavformat/hlsenc.c set_http_options(s, &options, hls); s 2621 libavformat/hlsenc.c ret = hlsenc_io_open(s, &vs->out, filename, &options); s 2623 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Failed to open file '%s'\n", oc->url); s 2634 libavformat/hlsenc.c hlsenc_io_close(s, &vs->out, filename); s 2635 libavformat/hlsenc.c ret = hlsenc_io_close(s, &vs->out, filename); s 2637 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "upload segment failed, will retry with a new http session.\n"); s 2638 libavformat/hlsenc.c ff_format_io_close(s, &vs->out); s 2639 libavformat/hlsenc.c ret = hlsenc_io_open(s, &vs->out, filename, &options); s 2641 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Failed to open file '%s'\n", oc->url); s 2645 libavformat/hlsenc.c ret = hlsenc_io_close(s, &vs->out, filename); s 2647 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "Failed to upload file '%s' at the end.\n", oc->url); s 2662 libavformat/hlsenc.c hls_rename_temp_file(s, oc); s 2672 libavformat/hlsenc.c hls_append_segment(s, hls, vs, vs->duration + vs->dpp, vs->start_pos, vs->size); s 2680 libavformat/hlsenc.c ff_format_io_close(s, &vtt_oc->pb); s 2682 libavformat/hlsenc.c ret = hls_window(s, 1, vs); s 2684 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "upload playlist failed, will retry with a new http session.\n"); s 2685 libavformat/hlsenc.c ff_format_io_close(s, &vs->out); s 2686 libavformat/hlsenc.c hls_window(s, 1, vs); s 2697 libavformat/hlsenc.c static int hls_init(AVFormatContext *s) s 2702 libavformat/hlsenc.c HLSContext *hls = s->priv_data; s 2707 libavformat/hlsenc.c int http_base_proto = ff_is_http_proto(s->url); s 2711 libavformat/hlsenc.c pattern = get_default_pattern_localtime_fmt(s); s 2720 libavformat/hlsenc.c ret = update_variant_stream_info(s); s 2722 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Variant stream info update failed with status %x\n", s 2731 libavformat/hlsenc.c ret = validate_name(hls->nb_varstreams, s->url); s 2754 libavformat/hlsenc.c ret = update_master_pl_info(s); s 2756 libavformat/hlsenc.c av_log(s, AV_LOG_ERROR, "Master stream info update failed with status %x\n", s 2787 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, s 2795 libavformat/hlsenc.c ret = format_name(s->url, &vs->m3u8_name, i, vs->varname); s 2821 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "More than a single video stream present, expect issues decoding it.\n"); s 2917 libavformat/hlsenc.c if ((ret = hls_mux_init(s, vs)) < 0) s 2921 libavformat/hlsenc.c parse_playlist(s, vs->m3u8_name, vs); s 2924 libavformat/hlsenc.c av_log(s, AV_LOG_WARNING, "append_list mode does not support hls_init_time," s 2931 libavformat/hlsenc.c if ((ret = hls_start(s, vs)) < 0) s 72 libavformat/hlsproto.c static void free_segment_list(HLSContext *s) s 75 libavformat/hlsproto.c for (i = 0; i < s->n_segments; i++) s 76 libavformat/hlsproto.c av_freep(&s->segments[i]); s 77 libavformat/hlsproto.c av_freep(&s->segments); s 78 libavformat/hlsproto.c s->n_segments = 0; s 81 libavformat/hlsproto.c static void free_variant_list(HLSContext *s) s 84 libavformat/hlsproto.c for (i = 0; i < s->n_variants; i++) s 85 libavformat/hlsproto.c av_freep(&s->variants[i]); s 86 libavformat/hlsproto.c av_freep(&s->variants); s 87 libavformat/hlsproto.c s->n_variants = 0; s 105 libavformat/hlsproto.c HLSContext *s = h->priv_data; s 123 libavformat/hlsproto.c free_segment_list(s); s 124 libavformat/hlsproto.c s->finished = 0; s 134 libavformat/hlsproto.c s->target_duration = atoi(ptr) * AV_TIME_BASE; s 136 libavformat/hlsproto.c s->start_seq_no = atoi(ptr); s 138 libavformat/hlsproto.c s->finished = 1; s 153 libavformat/hlsproto.c dynarray_add(&s->segments, &s->n_segments, seg); s 163 libavformat/hlsproto.c dynarray_add(&s->variants, &s->n_variants, var); s 168 libavformat/hlsproto.c s->last_load_time = av_gettime_relative(); s 177 libavformat/hlsproto.c HLSContext *s = h->priv_data; s 179 libavformat/hlsproto.c free_segment_list(s); s 180 libavformat/hlsproto.c free_variant_list(s); s 181 libavformat/hlsproto.c ffurl_closep(&s->seg_hd); s 187 libavformat/hlsproto.c HLSContext *s = h->priv_data; s 197 libavformat/hlsproto.c av_strlcpy(s->playlisturl, nested_url, sizeof(s->playlisturl)); s 214 libavformat/hlsproto.c s->playlisturl); s 216 libavformat/hlsproto.c if ((ret = parse_playlist(h, s->playlisturl)) < 0) s 219 libavformat/hlsproto.c if (s->n_segments == 0 && s->n_variants > 0) { s 221 libavformat/hlsproto.c for (i = 0; i < s->n_variants; i++) { s 222 libavformat/hlsproto.c if (s->variants[i]->bandwidth > max_bandwidth || i == 0) { s 223 libavformat/hlsproto.c max_bandwidth = s->variants[i]->bandwidth; s 227 libavformat/hlsproto.c av_strlcpy(s->playlisturl, s->variants[maxvar]->url, s 228 libavformat/hlsproto.c sizeof(s->playlisturl)); s 229 libavformat/hlsproto.c if ((ret = parse_playlist(h, s->playlisturl)) < 0) s 233 libavformat/hlsproto.c if (s->n_segments == 0) { s 238 libavformat/hlsproto.c s->cur_seq_no = s->start_seq_no; s 239 libavformat/hlsproto.c if (!s->finished && s->n_segments >= 3) s 240 libavformat/hlsproto.c s->cur_seq_no = s->start_seq_no + s->n_segments - 3; s 251 libavformat/hlsproto.c HLSContext *s = h->priv_data; s 257 libavformat/hlsproto.c if (s->seg_hd) { s 258 libavformat/hlsproto.c ret = ffurl_read(s->seg_hd, buf, size); s 262 libavformat/hlsproto.c if (s->seg_hd) { s 263 libavformat/hlsproto.c ffurl_closep(&s->seg_hd); s 264 libavformat/hlsproto.c s->cur_seq_no++; s 266 libavformat/hlsproto.c reload_interval = s->n_segments > 0 ? s 267 libavformat/hlsproto.c s->segments[s->n_segments - 1]->duration : s 268 libavformat/hlsproto.c s->target_duration; s 270 libavformat/hlsproto.c if (!s->finished) { s 272 libavformat/hlsproto.c if (now - s->last_load_time >= reload_interval) { s 273 libavformat/hlsproto.c if ((ret = parse_playlist(h, s->playlisturl)) < 0) s 278 libavformat/hlsproto.c reload_interval = s->target_duration / 2; s 281 libavformat/hlsproto.c if (s->cur_seq_no < s->start_seq_no) { s 284 libavformat/hlsproto.c s->start_seq_no - s->cur_seq_no); s 285 libavformat/hlsproto.c s->cur_seq_no = s->start_seq_no; s 287 libavformat/hlsproto.c if (s->cur_seq_no - s->start_seq_no >= s->n_segments) { s 288 libavformat/hlsproto.c if (s->finished) s 290 libavformat/hlsproto.c while (av_gettime_relative() - s->last_load_time < reload_interval) { s 297 libavformat/hlsproto.c url = s->segments[s->cur_seq_no - s->start_seq_no]->url; s 299 libavformat/hlsproto.c ret = ffurl_open_whitelist(&s->seg_hd, url, AVIO_FLAG_READ, s 306 libavformat/hlsproto.c s->cur_seq_no++; s 58 libavformat/hnm.c static int hnm_read_header(AVFormatContext *s) s 60 libavformat/hnm.c Hnm4DemuxContext *hnm = s->priv_data; s 61 libavformat/hnm.c AVIOContext *pb = s->pb; s 75 libavformat/hnm.c av_log(s, AV_LOG_ERROR, s 80 libavformat/hnm.c if (!(vst = avformat_new_stream(s, NULL))) s 101 libavformat/hnm.c static int hnm_read_packet(AVFormatContext *s, AVPacket *pkt) s 103 libavformat/hnm.c Hnm4DemuxContext *hnm = s->priv_data; s 104 libavformat/hnm.c AVIOContext *pb = s->pb; s 127 libavformat/hnm.c av_log(s, AV_LOG_ERROR, s 151 libavformat/hnm.c av_log(s, AV_LOG_WARNING, "unknown chunk found: %"PRIu16", offset: %"PRId64"\n", s 200 libavformat/http.c HTTPContext *s = h->priv_data; s 204 libavformat/http.c path1, sizeof(path1), s->location); s 207 libavformat/http.c proxy_path = s->http_proxy ? s->http_proxy : getenv("http_proxy"); s 245 libavformat/http.c if (!s->hd) { s 246 libavformat/http.c err = ffurl_open_whitelist(&s->hd, buf, AVIO_FLAG_READ_WRITE, s 265 libavformat/http.c HTTPContext *s = h->priv_data; s 268 libavformat/http.c av_dict_copy(options, s->chained_options, 0); s 270 libavformat/http.c cur_auth_type = s->auth_state.auth_type; s 271 libavformat/http.c cur_proxy_auth_type = s->auth_state.auth_type; s 278 libavformat/http.c if (s->http_code == 401) { s 279 libavformat/http.c if ((cur_auth_type == HTTP_AUTH_NONE || s->auth_state.stale) && s 280 libavformat/http.c s->auth_state.auth_type != HTTP_AUTH_NONE && attempts < 4) { s 281 libavformat/http.c ffurl_closep(&s->hd); s 286 libavformat/http.c if (s->http_code == 407) { s 287 libavformat/http.c if ((cur_proxy_auth_type == HTTP_AUTH_NONE || s->proxy_auth_state.stale) && s 288 libavformat/http.c s->proxy_auth_state.auth_type != HTTP_AUTH_NONE && attempts < 4) { s 289 libavformat/http.c ffurl_closep(&s->hd); s 294 libavformat/http.c if ((s->http_code == 301 || s->http_code == 302 || s 295 libavformat/http.c s->http_code == 303 || s->http_code == 307) && s 298 libavformat/http.c ffurl_closep(&s->hd); s 303 libavformat/http.c memset(&s->auth_state, 0, sizeof(s->auth_state)); s 311 libavformat/http.c if (s->hd) s 312 libavformat/http.c ffurl_closep(&s->hd); s 315 libavformat/http.c return ff_http_averror(s->http_code, AVERROR(EIO)); s 320 libavformat/http.c HTTPContext *s = h->priv_data; s 325 libavformat/http.c read_ret = ffurl_read(s->hd, buf, sizeof(buf)); s 339 libavformat/http.c HTTPContext *s = h->priv_data; s 352 libavformat/http.c NULL, 0, s->location); s 364 libavformat/http.c if (!s->end_chunked_post) { s 370 libavformat/http.c if (s->willclose) s 373 libavformat/http.c s->end_chunked_post = 0; s 374 libavformat/http.c s->chunkend = 0; s 375 libavformat/http.c s->off = 0; s 376 libavformat/http.c s->icy_data_read = 0; s 377 libavformat/http.c av_free(s->location); s 378 libavformat/http.c s->location = av_strdup(uri); s 379 libavformat/http.c if (!s->location) s 382 libavformat/http.c if ((ret = av_opt_set_dict(s, opts)) < 0) s 385 libavformat/http.c av_log(s, AV_LOG_INFO, "Opening \'%s\' for %s\n", uri, h->flags & AVIO_FLAG_WRITE ? "writing" : "reading"); s 412 libavformat/http.c HTTPContext *s = h->priv_data; s 437 libavformat/http.c content_type = s->content_type ? s->content_type : "application/octet-stream"; s 448 libavformat/http.c s->chunked_post = 0; s 460 libavformat/http.c s->headers ? s->headers : "", s 464 libavformat/http.c s->chunked_post = 1; s 474 libavformat/http.c s->headers ? s->headers : ""); s 477 libavformat/http.c if ((ret = ffurl_write(s->hd, message, message_len)) < 0) s 526 libavformat/http.c HTTPContext *s = h->priv_data; s 538 libavformat/http.c if ((ret = av_dict_set_int(options, "listen", s->listen, 0)) < 0) s 540 libavformat/http.c if ((ret = ffurl_open_whitelist(&s->hd, lower_url, AVIO_FLAG_READ_WRITE, s 545 libavformat/http.c s->handshake_step = LOWER_PROTO; s 546 libavformat/http.c if (s->listen == HTTP_SINGLE) { /* single client */ s 547 libavformat/http.c s->reply_code = 200; s 551 libavformat/http.c av_dict_free(&s->chained_options); s 558 libavformat/http.c HTTPContext *s = h->priv_data; s 561 libavformat/http.c if( s->seekable == 1 ) s 566 libavformat/http.c s->filesize = UINT64_MAX; s 567 libavformat/http.c s->location = av_strdup(uri); s 568 libavformat/http.c if (!s->location) s 571 libavformat/http.c av_dict_copy(&s->chained_options, *options, 0); s 573 libavformat/http.c if (s->headers) { s 574 libavformat/http.c int len = strlen(s->headers); s 575 libavformat/http.c if (len < 2 || strcmp("\r\n", s->headers + len - 2)) { s 578 libavformat/http.c ret = av_reallocp(&s->headers, len + 3); s 581 libavformat/http.c s->headers[len] = '\r'; s 582 libavformat/http.c s->headers[len + 1] = '\n'; s 583 libavformat/http.c s->headers[len + 2] = '\0'; s 587 libavformat/http.c if (s->listen) { s 592 libavformat/http.c av_dict_free(&s->chained_options); s 596 libavformat/http.c static int http_accept(URLContext *s, URLContext **c) s 599 libavformat/http.c HTTPContext *sc = s->priv_data; s 605 libavformat/http.c if ((ret = ffurl_alloc(c, s->filename, s->flags, &sl->interrupt_callback)) < 0) s 620 libavformat/http.c static int http_getc(HTTPContext *s) s 623 libavformat/http.c if (s->buf_ptr >= s->buf_end) { s 624 libavformat/http.c len = ffurl_read(s->hd, s->buffer, BUFFER_SIZE); s 630 libavformat/http.c s->buf_ptr = s->buffer; s 631 libavformat/http.c s->buf_end = s->buffer + len; s 634 libavformat/http.c return *s->buf_ptr++; s 637 libavformat/http.c static int http_get_line(HTTPContext *s, char *line, int line_size) s 644 libavformat/http.c ch = http_getc(s); s 663 libavformat/http.c HTTPContext *s = h->priv_data; s 667 libavformat/http.c (http_code != 401 || s->auth_state.auth_type != HTTP_AUTH_NONE) && s 668 libavformat/http.c (http_code != 407 || s->proxy_auth_state.auth_type != HTTP_AUTH_NONE)) { s 676 libavformat/http.c static int parse_location(HTTPContext *s, const char *p) s 680 libavformat/http.c s->location, p); s 684 libavformat/http.c av_free(s->location); s 685 libavformat/http.c s->location = new_loc; s 692 libavformat/http.c HTTPContext *s = h->priv_data; s 697 libavformat/http.c s->off = strtoull(p, NULL, 10); s 699 libavformat/http.c s->filesize = strtoull(slash + 1, NULL, 10); s 701 libavformat/http.c if (s->seekable == -1 && (!s->is_akamai || s->filesize != 2147483647)) s 710 libavformat/http.c HTTPContext *s = h->priv_data; s 712 libavformat/http.c s->compressed = 1; s 713 libavformat/http.c inflateEnd(&s->inflate_stream); s 714 libavformat/http.c if (inflateInit2(&s->inflate_stream, 32 + 15) != Z_OK) { s 716 libavformat/http.c s->inflate_stream.msg); s 739 libavformat/http.c static int parse_icy(HTTPContext *s, const char *tag, const char *p) s 742 libavformat/http.c int is_first = !s->icy_metadata_headers; s 745 libavformat/http.c av_dict_set(&s->metadata, tag, p, 0); s 747 libavformat/http.c if (s->icy_metadata_headers) s 748 libavformat/http.c len += strlen(s->icy_metadata_headers); s 750 libavformat/http.c if ((ret = av_reallocp(&s->icy_metadata_headers, len)) < 0) s 754 libavformat/http.c *s->icy_metadata_headers = '\0'; s 756 libavformat/http.c av_strlcatf(s->icy_metadata_headers, len, "%s: %s\n", tag, p); s 823 libavformat/http.c static int parse_cookie(HTTPContext *s, const char *p, AVDictionary **cookies) s 911 libavformat/http.c HTTPContext *s = h->priv_data; s 918 libavformat/http.c s->end_header = 1; s 924 libavformat/http.c if (s->is_connected_server) { s 931 libavformat/http.c if (s->method) { s 932 libavformat/http.c if (av_strcasecmp(s->method, method)) { s 934 libavformat/http.c s->method, method); s 945 libavformat/http.c if (!(s->method = av_strdup(method))) s 957 libavformat/http.c if (!(s->resource = av_strdup(resource))) s 974 libavformat/http.c s->willclose = 1; s 979 libavformat/http.c av_freep(&s->http_version); s 980 libavformat/http.c s->http_version = av_strndup(p, 3); s 985 libavformat/http.c s->http_code = strtol(p, &end, 10); s 987 libavformat/http.c av_log(h, AV_LOG_TRACE, "http_code=%d\n", s->http_code); s 989 libavformat/http.c if ((ret = check_http_code(h, s->http_code, end)) < 0) s 1004 libavformat/http.c if ((ret = parse_location(s, p)) < 0) s 1008 libavformat/http.c s->filesize == UINT64_MAX) { s 1009 libavformat/http.c s->filesize = strtoull(p, NULL, 10); s 1014 libavformat/http.c s->seekable == -1) { s 1018 libavformat/http.c s->filesize = UINT64_MAX; s 1019 libavformat/http.c s->chunksize = 0; s 1021 libavformat/http.c ff_http_auth_handle_header(&s->auth_state, tag, p); s 1023 libavformat/http.c ff_http_auth_handle_header(&s->auth_state, tag, p); s 1025 libavformat/http.c ff_http_auth_handle_header(&s->proxy_auth_state, tag, p); s 1028 libavformat/http.c s->willclose = 1; s 1031 libavformat/http.c s->is_akamai = 1; s 1033 libavformat/http.c s->is_mediagateway = 1; s 1036 libavformat/http.c av_free(s->mime_type); s 1037 libavformat/http.c s->mime_type = av_strdup(p); s 1039 libavformat/http.c if (parse_cookie(s, p, &s->cookie_dict)) s 1042 libavformat/http.c s->icy_metaint = strtoull(p, NULL, 10); s 1044 libavformat/http.c if ((ret = parse_icy(s, tag, p)) < 0) s 1062 libavformat/http.c static int get_cookies(HTTPContext *s, char **cookies, const char *path, s 1072 libavformat/http.c av_dict_free(&s->cookie_dict); s 1074 libavformat/http.c if (!s->cookies) s 1077 libavformat/http.c next = set_cookies = av_strdup(s->cookies); s 1088 libavformat/http.c if (parse_cookie(s, cookie, &s->cookie_dict)) s 1089 libavformat/http.c av_log(s, AV_LOG_WARNING, "Unable to parse '%s'\n", cookie); s 1156 libavformat/http.c HTTPContext *s = h->priv_data; s 1160 libavformat/http.c s->chunksize = UINT64_MAX; s 1163 libavformat/http.c if ((err = http_get_line(s, line, sizeof(line))) < 0) s 1168 libavformat/http.c err = process_line(h, line, s->line_count, new_location); s 1173 libavformat/http.c s->line_count++; s 1176 libavformat/http.c if (s->seekable == -1 && s->is_mediagateway && s->filesize == 2000000000) s 1180 libavformat/http.c cookie_string(s->cookie_dict, &s->cookies); s 1181 libavformat/http.c av_dict_free(&s->cookie_dict); s 1221 libavformat/http.c HTTPContext *s = h->priv_data; s 1225 libavformat/http.c uint64_t off = s->off; s 1229 libavformat/http.c av_bprint_init_for_buffer(&request, s->buffer, sizeof(s->buffer)); s 1234 libavformat/http.c if (s->post_data) { s 1238 libavformat/http.c s->chunked_post = 0; s 1241 libavformat/http.c if (s->method) s 1242 libavformat/http.c method = s->method; s 1246 libavformat/http.c authstr = ff_http_auth_create_response(&s->auth_state, auth, s 1248 libavformat/http.c proxyauthstr = ff_http_auth_create_response(&s->proxy_auth_state, proxyauth, s 1251 libavformat/http.c if (post && !s->post_data) { s 1252 libavformat/http.c if (s->send_expect_100 != -1) { s 1253 libavformat/http.c send_expect_100 = s->send_expect_100; s 1261 libavformat/http.c s->auth_state.auth_type == HTTP_AUTH_NONE && s 1262 libavformat/http.c s->http_code != 401) s 1268 libavformat/http.c if (strcmp(s->user_agent_deprecated, DEFAULT_USER_AGENT)) { s 1269 libavformat/http.c s->user_agent = av_strdup(s->user_agent_deprecated); s 1277 libavformat/http.c if (post && s->chunked_post) s 1280 libavformat/http.c if (!has_header(s->headers, "\r\nUser-Agent: ")) s 1281 libavformat/http.c av_bprintf(&request, "User-Agent: %s\r\n", s->user_agent); s 1282 libavformat/http.c if (s->referer) { s 1284 libavformat/http.c if (!has_header(s->headers, "\r\nReferer: ")) s 1285 libavformat/http.c av_bprintf(&request, "Referer: %s\r\n", s->referer); s 1287 libavformat/http.c if (!has_header(s->headers, "\r\nAccept: ")) s 1292 libavformat/http.c if (!has_header(s->headers, "\r\nRange: ") && !post && (s->off > 0 || s->end_off || s->seekable == -1)) { s 1293 libavformat/http.c av_bprintf(&request, "Range: bytes=%"PRIu64"-", s->off); s 1294 libavformat/http.c if (s->end_off) s 1295 libavformat/http.c av_bprintf(&request, "%"PRId64, s->end_off - 1); s 1298 libavformat/http.c if (send_expect_100 && !has_header(s->headers, "\r\nExpect: ")) s 1301 libavformat/http.c if (!has_header(s->headers, "\r\nConnection: ")) s 1302 libavformat/http.c av_bprintf(&request, "Connection: %s\r\n", s->multiple_requests ? "keep-alive" : "close"); s 1304 libavformat/http.c if (!has_header(s->headers, "\r\nHost: ")) s 1306 libavformat/http.c if (!has_header(s->headers, "\r\nContent-Length: ") && s->post_data) s 1307 libavformat/http.c av_bprintf(&request, "Content-Length: %d\r\n", s->post_datalen); s 1309 libavformat/http.c if (!has_header(s->headers, "\r\nContent-Type: ") && s->content_type) s 1310 libavformat/http.c av_bprintf(&request, "Content-Type: %s\r\n", s->content_type); s 1311 libavformat/http.c if (!has_header(s->headers, "\r\nCookie: ") && s->cookies) { s 1313 libavformat/http.c if (!get_cookies(s, &cookies, path, hoststr) && cookies) { s 1318 libavformat/http.c if (!has_header(s->headers, "\r\nIcy-MetaData: ") && s->icy) s 1322 libavformat/http.c if (s->headers) s 1323 libavformat/http.c av_bprintf(&request, "%s", s->headers); s 1339 libavformat/http.c if ((err = ffurl_write(s->hd, request.str, request.len)) < 0) s 1342 libavformat/http.c if (s->post_data) s 1343 libavformat/http.c if ((err = ffurl_write(s->hd, s->post_data, s->post_datalen)) < 0) s 1347 libavformat/http.c s->buf_ptr = s->buffer; s 1348 libavformat/http.c s->buf_end = s->buffer; s 1349 libavformat/http.c s->line_count = 0; s 1350 libavformat/http.c s->off = 0; s 1351 libavformat/http.c s->icy_data_read = 0; s 1352 libavformat/http.c s->filesize = UINT64_MAX; s 1353 libavformat/http.c s->willclose = 0; s 1354 libavformat/http.c s->end_chunked_post = 0; s 1355 libavformat/http.c s->end_header = 0; s 1357 libavformat/http.c s->compressed = 0; s 1359 libavformat/http.c if (post && !s->post_data && !send_expect_100) { s 1363 libavformat/http.c s->http_code = 200; s 1374 libavformat/http.c s->off = off; s 1376 libavformat/http.c err = (off == s->off) ? 0 : -1; s 1385 libavformat/http.c HTTPContext *s = h->priv_data; s 1388 libavformat/http.c if (s->chunksize != UINT64_MAX) { s 1389 libavformat/http.c if (s->chunkend) { s 1392 libavformat/http.c if (!s->chunksize) { s 1397 libavformat/http.c if ((err = http_get_line(s, line, sizeof(line))) < 0) s 1401 libavformat/http.c s->chunksize = strtoull(line, NULL, 16); s 1405 libavformat/http.c s->chunksize); s 1407 libavformat/http.c if (!s->chunksize && s->multiple_requests) { s 1408 libavformat/http.c http_get_line(s, line, sizeof(line)); // read empty chunk s 1409 libavformat/http.c s->chunkend = 1; s 1412 libavformat/http.c else if (!s->chunksize) { s 1414 libavformat/http.c ffurl_closep(&s->hd); s 1417 libavformat/http.c else if (s->chunksize == UINT64_MAX) { s 1419 libavformat/http.c s->chunksize); s 1423 libavformat/http.c size = FFMIN(size, s->chunksize); s 1427 libavformat/http.c len = s->buf_end - s->buf_ptr; s 1431 libavformat/http.c memcpy(buf, s->buf_ptr, len); s 1432 libavformat/http.c s->buf_ptr += len; s 1434 libavformat/http.c uint64_t target_end = s->end_off ? s->end_off : s->filesize; s 1435 libavformat/http.c if ((!s->willclose || s->chunksize == UINT64_MAX) && s->off >= target_end) s 1437 libavformat/http.c len = ffurl_read(s->hd, buf, size); s 1438 libavformat/http.c if (!len && (!s->willclose || s->chunksize == UINT64_MAX) && s->off < target_end) { s 1441 libavformat/http.c s->off, target_end s 1447 libavformat/http.c s->off += len; s 1448 libavformat/http.c if (s->chunksize > 0 && s->chunksize != UINT64_MAX) { s 1449 libavformat/http.c av_assert0(s->chunksize >= len); s 1450 libavformat/http.c s->chunksize -= len; s 1460 libavformat/http.c HTTPContext *s = h->priv_data; s 1463 libavformat/http.c if (!s->inflate_buffer) { s 1464 libavformat/http.c s->inflate_buffer = av_malloc(DECOMPRESS_BUF_SIZE); s 1465 libavformat/http.c if (!s->inflate_buffer) s 1469 libavformat/http.c if (s->inflate_stream.avail_in == 0) { s 1470 libavformat/http.c int read = http_buf_read(h, s->inflate_buffer, DECOMPRESS_BUF_SIZE); s 1473 libavformat/http.c s->inflate_stream.next_in = s->inflate_buffer; s 1474 libavformat/http.c s->inflate_stream.avail_in = read; s 1477 libavformat/http.c s->inflate_stream.avail_out = size; s 1478 libavformat/http.c s->inflate_stream.next_out = buf; s 1480 libavformat/http.c ret = inflate(&s->inflate_stream, Z_SYNC_FLUSH); s 1483 libavformat/http.c ret, s->inflate_stream.msg); s 1485 libavformat/http.c return size - s->inflate_stream.avail_out; s 1493 libavformat/http.c HTTPContext *s = h->priv_data; s 1498 libavformat/http.c if (!s->hd) s 1501 libavformat/http.c if (s->end_chunked_post && !s->end_header) { s 1508 libavformat/http.c if (s->compressed) s 1513 libavformat/http.c uint64_t target = h->is_streamed ? 0 : s->off; s 1518 libavformat/http.c if (h->is_streamed && !s->reconnect_streamed) s 1521 libavformat/http.c if (!(s->reconnect && s->filesize > 0 && s->off < s->filesize) && s 1522 libavformat/http.c !(s->reconnect_at_eof && read_ret == AVERROR_EOF)) s 1525 libavformat/http.c if (reconnect_delay > s->reconnect_delay_max) s 1528 libavformat/http.c av_log(h, AV_LOG_WARNING, "Will reconnect at %"PRIu64" in %d second(s), error=%s.\n", s->off, reconnect_delay, av_err2str(read_ret)); s 1565 libavformat/http.c HTTPContext *s = h->priv_data; s 1580 libavformat/http.c av_dict_set(&s->metadata, key, val, 0); s 1589 libavformat/http.c HTTPContext *s = h->priv_data; s 1593 libavformat/http.c if (s->icy_metaint < s->icy_data_read) s 1595 libavformat/http.c remaining = s->icy_metaint - s->icy_data_read; s 1614 libavformat/http.c if ((ret = av_opt_set(s, "icy_metadata_packet", data, 0)) < 0) s 1618 libavformat/http.c s->icy_data_read = 0; s 1619 libavformat/http.c remaining = s->icy_metaint; s 1627 libavformat/http.c HTTPContext *s = h->priv_data; s 1629 libavformat/http.c if (s->icy_metaint > 0) { s 1637 libavformat/http.c s->icy_data_read += size; s 1647 libavformat/http.c HTTPContext *s = h->priv_data; s 1649 libavformat/http.c if (!s->chunked_post) { s 1651 libavformat/http.c return ffurl_write(s->hd, buf, size); s 1660 libavformat/http.c if ((ret = ffurl_write(s->hd, temp, strlen(temp))) < 0 || s 1661 libavformat/http.c (ret = ffurl_write(s->hd, buf, size)) < 0 || s 1662 libavformat/http.c (ret = ffurl_write(s->hd, crlf, sizeof(crlf) - 1)) < 0) s 1672 libavformat/http.c HTTPContext *s = h->priv_data; s 1675 libavformat/http.c if (((flags & AVIO_FLAG_WRITE) && s->chunked_post) || s 1676 libavformat/http.c ((flags & AVIO_FLAG_READ) && s->chunked_post && s->listen)) { s 1677 libavformat/http.c ret = ffurl_write(s->hd, footer, sizeof(footer) - 1); s 1683 libavformat/http.c s->hd->flags |= AVIO_FLAG_NONBLOCK; s 1684 libavformat/http.c read_ret = ffurl_read(s->hd, buf, sizeof(buf)); s 1685 libavformat/http.c s->hd->flags &= ~AVIO_FLAG_NONBLOCK; s 1691 libavformat/http.c s->end_chunked_post = 1; s 1700 libavformat/http.c HTTPContext *s = h->priv_data; s 1703 libavformat/http.c inflateEnd(&s->inflate_stream); s 1704 libavformat/http.c av_freep(&s->inflate_buffer); s 1707 libavformat/http.c if (s->hd && !s->end_chunked_post) s 1711 libavformat/http.c if (s->hd) s 1712 libavformat/http.c ffurl_closep(&s->hd); s 1713 libavformat/http.c av_dict_free(&s->chained_options); s 1719 libavformat/http.c HTTPContext *s = h->priv_data; s 1720 libavformat/http.c URLContext *old_hd = s->hd; s 1721 libavformat/http.c uint64_t old_off = s->off; s 1727 libavformat/http.c return s->filesize; s 1730 libavformat/http.c (whence == SEEK_SET && off == s->off))) s 1731 libavformat/http.c return s->off; s 1732 libavformat/http.c else if ((s->filesize == UINT64_MAX && whence == SEEK_END)) s 1736 libavformat/http.c off += s->off; s 1738 libavformat/http.c off += s->filesize; s 1743 libavformat/http.c s->off = off; s 1745 libavformat/http.c if (s->off && h->is_streamed) s 1749 libavformat/http.c if (s->end_off || s->filesize != UINT64_MAX) { s 1750 libavformat/http.c uint64_t end_pos = s->end_off ? s->end_off : s->filesize; s 1751 libavformat/http.c if (s->off >= end_pos) s 1752 libavformat/http.c return s->off; s 1756 libavformat/http.c old_buf_size = s->buf_end - s->buf_ptr; s 1757 libavformat/http.c memcpy(old_buf, s->buf_ptr, old_buf_size); s 1758 libavformat/http.c s->hd = NULL; s 1763 libavformat/http.c memcpy(s->buffer, old_buf, old_buf_size); s 1764 libavformat/http.c s->buf_ptr = s->buffer; s 1765 libavformat/http.c s->buf_end = s->buffer + old_buf_size; s 1766 libavformat/http.c s->hd = old_hd; s 1767 libavformat/http.c s->off = old_off; s 1782 libavformat/http.c HTTPContext *s = h->priv_data; s 1783 libavformat/http.c return ffurl_get_file_handle(s->hd); s 1788 libavformat/http.c HTTPContext *s = h->priv_data; s 1789 libavformat/http.c return ffurl_get_short_seek(s->hd); s 1845 libavformat/http.c HTTPContext *s = h->priv_data; s 1846 libavformat/http.c if (s->hd) s 1847 libavformat/http.c ffurl_closep(&s->hd); s 1853 libavformat/http.c HTTPContext *s = h->priv_data; s 1862 libavformat/http.c if( s->seekable == 1 ) s 1877 libavformat/http.c ret = ffurl_open_whitelist(&s->hd, lower_url, AVIO_FLAG_READ_WRITE, s 1883 libavformat/http.c authstr = ff_http_auth_create_response(&s->proxy_auth_state, auth, s 1885 libavformat/http.c snprintf(s->buffer, sizeof(s->buffer), s 1896 libavformat/http.c if ((ret = ffurl_write(s->hd, s->buffer, strlen(s->buffer))) < 0) s 1899 libavformat/http.c s->buf_ptr = s->buffer; s 1900 libavformat/http.c s->buf_end = s->buffer; s 1901 libavformat/http.c s->line_count = 0; s 1902 libavformat/http.c s->filesize = UINT64_MAX; s 1903 libavformat/http.c cur_auth_type = s->proxy_auth_state.auth_type; s 1919 libavformat/http.c if (s->http_code == 407 && s 1920 libavformat/http.c (cur_auth_type == HTTP_AUTH_NONE || s->proxy_auth_state.stale) && s 1921 libavformat/http.c s->proxy_auth_state.auth_type != HTTP_AUTH_NONE && attempts < 2) { s 1922 libavformat/http.c ffurl_closep(&s->hd); s 1926 libavformat/http.c if (s->http_code < 400) s 1928 libavformat/http.c ret = ff_http_averror(s->http_code, AVERROR(EIO)); s 1937 libavformat/http.c HTTPContext *s = h->priv_data; s 1938 libavformat/http.c return ffurl_write(s->hd, buf, size); s 50 libavformat/icecast.c #define NOT_EMPTY(s) (s && s[0]) s 77 libavformat/icecast.c IcecastContext *s = h->priv_data; s 78 libavformat/icecast.c ffurl_closep(&s->hd); s 84 libavformat/icecast.c IcecastContext *s = h->priv_data; s 101 libavformat/icecast.c cat_header(&bp, "Ice-Name", s->name); s 102 libavformat/icecast.c cat_header(&bp, "Ice-Description", s->description); s 103 libavformat/icecast.c cat_header(&bp, "Ice-URL", s->url); s 104 libavformat/icecast.c cat_header(&bp, "Ice-Genre", s->genre); s 105 libavformat/icecast.c cat_header(&bp, "Ice-Public", s->public ? "1" : "0"); s 114 libavformat/icecast.c av_dict_set(&opt_dict, "method", s->legacy_icecast ? "SOURCE" : "PUT", 0); s 118 libavformat/icecast.c av_dict_set(&opt_dict, "send_expect_100", s->legacy_icecast ? "-1" : "1", 0); s 119 libavformat/icecast.c if (NOT_EMPTY(s->content_type)) s 120 libavformat/icecast.c av_dict_set(&opt_dict, "content_type", s->content_type, 0); s 123 libavformat/icecast.c if (NOT_EMPTY(s->user_agent)) s 124 libavformat/icecast.c av_dict_set(&opt_dict, "user_agent", s->user_agent, 0); s 136 libavformat/icecast.c if (s->pass) { s 137 libavformat/icecast.c av_free(s->pass); s 140 libavformat/icecast.c if (!(s->pass = av_strdup(sep))) { s 155 libavformat/icecast.c s->pass ? s->pass : ""); s 167 libavformat/icecast.c ret = ffurl_open_whitelist(&s->hd, h_url, AVIO_FLAG_READ_WRITE, NULL, s 179 libavformat/icecast.c IcecastContext *s = h->priv_data; s 180 libavformat/icecast.c if (!s->send_started) { s 181 libavformat/icecast.c s->send_started = 1; s 182 libavformat/icecast.c if (!s->content_type && size >= 8) { s 201 libavformat/icecast.c return ffurl_write(s->hd, buf, size); s 78 libavformat/icodec.c static int read_header(AVFormatContext *s) s 80 libavformat/icodec.c IcoDemuxContext *ico = s->priv_data; s 81 libavformat/icodec.c AVIOContext *pb = s->pb; s 98 libavformat/icodec.c st = avformat_new_stream(s, NULL); s 115 libavformat/icodec.c av_log(s, AV_LOG_ERROR, "Invalid image size %d\n", ico->images[i].size); s 145 libavformat/icodec.c avpriv_request_sample(s, "codec %d", codec); s 154 libavformat/icodec.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 156 libavformat/icodec.c IcoDemuxContext *ico = s->priv_data; s 158 libavformat/icodec.c AVIOContext *pb = s->pb; s 159 libavformat/icodec.c AVStream *st = s->streams[0]; s 170 libavformat/icodec.c if (s->streams[ico->current_image]->codecpar->codec_id == AV_CODEC_ID_PNG) { s 211 libavformat/icodec.c static int ico_read_close(AVFormatContext * s) s 213 libavformat/icodec.c IcoDemuxContext *ico = s->priv_data; s 45 libavformat/icoenc.c static int ico_check_attributes(AVFormatContext *s, const AVCodecParameters *p) s 49 libavformat/icoenc.c av_log(s, AV_LOG_ERROR, "Wrong endianness for bmp pixel format\n"); s 55 libavformat/icoenc.c av_log(s, AV_LOG_ERROR, "BMP must be 1bit, 4bit, 8bit, 16bit, 24bit, or 32bit\n"); s 60 libavformat/icoenc.c av_log(s, AV_LOG_ERROR, "PNG in ico requires pixel format to be rgba\n"); s 65 libavformat/icoenc.c av_log(s, AV_LOG_ERROR, "Unsupported codec %s\n", codesc ? codesc->name : ""); s 71 libavformat/icoenc.c av_log(s, AV_LOG_ERROR, "Unsupported dimensions %dx%d (dimensions cannot exceed 256x256)\n", p->width, p->height); s 78 libavformat/icoenc.c static int ico_write_header(AVFormatContext *s) s 80 libavformat/icoenc.c IcoMuxContext *ico = s->priv_data; s 81 libavformat/icoenc.c AVIOContext *pb = s->pb; s 86 libavformat/icoenc.c av_log(s, AV_LOG_ERROR, "Output is not seekable\n"); s 91 libavformat/icoenc.c ico->nb_images = s->nb_streams; s 97 libavformat/icoenc.c for (i = 0; i < s->nb_streams; i++) { s 98 libavformat/icoenc.c if (ret = ico_check_attributes(s, s->streams[i]->codecpar)) s 112 libavformat/icoenc.c static int ico_write_packet(AVFormatContext *s, AVPacket *pkt) s 114 libavformat/icoenc.c IcoMuxContext *ico = s->priv_data; s 116 libavformat/icoenc.c AVIOContext *pb = s->pb; s 117 libavformat/icoenc.c AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; s 121 libavformat/icoenc.c av_log(s, AV_LOG_ERROR, "ICO already contains %d images\n", ico->current_image); s 138 libavformat/icoenc.c av_log(s, AV_LOG_ERROR, "Invalid BMP\n"); s 156 libavformat/icoenc.c static int ico_write_trailer(AVFormatContext *s) s 158 libavformat/icoenc.c IcoMuxContext *ico = s->priv_data; s 159 libavformat/icoenc.c AVIOContext *pb = s->pb; s 170 libavformat/icoenc.c if (s->streams[i]->codecpar->codec_id == AV_CODEC_ID_BMP && s 171 libavformat/icoenc.c s->streams[i]->codecpar->format == AV_PIX_FMT_PAL8) { s 187 libavformat/icoenc.c static void ico_deinit(AVFormatContext *s) s 189 libavformat/icoenc.c IcoMuxContext *ico = s->priv_data; s 222 libavformat/id3v1.c static void get_string(AVFormatContext *s, const char *key, s 249 libavformat/id3v1.c av_dict_set(&s->metadata, key, str, 0); s 257 libavformat/id3v1.c static int parse_tag(AVFormatContext *s, const uint8_t *buf) s 265 libavformat/id3v1.c get_string(s, "title", buf + 3, 30); s 266 libavformat/id3v1.c get_string(s, "artist", buf + 33, 30); s 267 libavformat/id3v1.c get_string(s, "album", buf + 63, 30); s 268 libavformat/id3v1.c get_string(s, "date", buf + 93, 4); s 269 libavformat/id3v1.c get_string(s, "comment", buf + 97, 30); s 271 libavformat/id3v1.c av_dict_set_int(&s->metadata, "track", buf[126], 0); s 275 libavformat/id3v1.c av_dict_set(&s->metadata, "genre", ff_id3v1_genre_str[genre], 0); s 279 libavformat/id3v1.c void ff_id3v1_read(AVFormatContext *s) s 283 libavformat/id3v1.c int64_t filesize, position = avio_tell(s->pb); s 285 libavformat/id3v1.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 287 libavformat/id3v1.c filesize = avio_size(s->pb); s 289 libavformat/id3v1.c avio_seek(s->pb, filesize - 128, SEEK_SET); s 290 libavformat/id3v1.c ret = avio_read(s->pb, buf, ID3v1_TAG_SIZE); s 292 libavformat/id3v1.c parse_tag(s, buf); s 294 libavformat/id3v1.c avio_seek(s->pb, position, SEEK_SET); s 39 libavformat/id3v1.h void ff_id3v1_read(AVFormatContext *s); s 168 libavformat/id3v2.c static unsigned int get_size(AVIOContext *s, int len) s 172 libavformat/id3v2.c v = (v << 7) + (avio_r8(s) & 0x7F); s 204 libavformat/id3v2.c static int check_tag(AVIOContext *s, int offset, unsigned int len) s 209 libavformat/id3v2.c avio_seek(s, offset, SEEK_SET) < 0 || s 210 libavformat/id3v2.c avio_read(s, tag, len) < (int)len) s 242 libavformat/id3v2.c static int decode_str(AVFormatContext *s, AVIOContext *pb, int encoding, s 253 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Error opening memory stream\n"); s 268 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Cannot read BOM value, input too short\n"); s 279 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Incorrect BOM value\n"); s 304 libavformat/id3v2.c av_log(s, AV_LOG_WARNING, "Unknown encoding\n"); s 319 libavformat/id3v2.c static void read_ttag(AVFormatContext *s, AVIOContext *pb, int taglen, s 332 libavformat/id3v2.c if (decode_str(s, pb, encoding, &dst, &taglen) < 0) { s 333 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Error reading frame %s, skipped\n", key); s 345 libavformat/id3v2.c if (decode_str(s, pb, encoding, &dst, &taglen) < 0) { s 346 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Error reading frame %s, skipped\n", key); s 358 libavformat/id3v2.c static void read_uslt(AVFormatContext *s, AVIOContext *pb, int taglen, s 379 libavformat/id3v2.c if (decode_str(s, pb, encoding, &descriptor, &taglen) < 0) s 382 libavformat/id3v2.c if (decode_str(s, pb, encoding, &text, &taglen) < 0) s 400 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Error reading lyrics, skipped\n"); s 407 libavformat/id3v2.c static void read_comment(AVFormatContext *s, AVIOContext *pb, int taglen, s 422 libavformat/id3v2.c if (decode_str(s, pb, encoding, &dst, &taglen) < 0) { s 423 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Error reading comment frame, skipped\n"); s 435 libavformat/id3v2.c if (decode_str(s, pb, encoding, &dst, &taglen) < 0) { s 436 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Error reading comment frame, skipped\n"); s 449 libavformat/id3v2.c static void read_geobtag(AVFormatContext *s, AVIOContext *pb, int taglen, s 463 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Failed to alloc %"SIZE_SPECIFIER" bytes\n", s 475 libavformat/id3v2.c if (decode_str(s, pb, ID3v2_ENCODING_ISO8859, &geob_data->mime_type, s 481 libavformat/id3v2.c if (decode_str(s, pb, encoding, &geob_data->file_name, &taglen) < 0 || s 486 libavformat/id3v2.c if (decode_str(s, pb, encoding, &geob_data->description, &taglen) < 0 || s 494 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Failed to alloc %d bytes\n", taglen); s 498 libavformat/id3v2.c av_log(s, AV_LOG_WARNING, s 514 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Error reading frame %s, skipped\n", tag); s 582 libavformat/id3v2.c static void read_apic(AVFormatContext *s, AVIOContext *pb, int taglen, s 625 libavformat/id3v2.c av_log(s, AV_LOG_WARNING, s 635 libavformat/id3v2.c av_log(s, AV_LOG_WARNING, "Unknown attached picture type %d.\n", s 642 libavformat/id3v2.c if (decode_str(s, pb, enc, &apic->description, &taglen) < 0) { s 643 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, s 677 libavformat/id3v2.c static void read_chapter(AVFormatContext *s, AVIOContext *pb, int len, const char *ttag, ID3v2ExtraMeta **extra_meta, int isv34) s 690 libavformat/id3v2.c if (decode_str(s, pb, 0, &chap->element_id, &len) < 0) s 711 libavformat/id3v2.c read_ttag(s, pb, taglen, &chap->meta, tag); s 738 libavformat/id3v2.c static void read_priv(AVFormatContext *s, AVIOContext *pb, int taglen, s 750 libavformat/id3v2.c if (decode_str(s, pb, ID3v2_ENCODING_ISO8859, &priv->owner, &taglen) < 0) s 776 libavformat/id3v2.c void (*read)(AVFormatContext *s, AVIOContext *pb, int taglen, s 810 libavformat/id3v2.c AVFormatContext *s, int len, uint8_t version, s 828 libavformat/id3v2.c av_log(s, AV_LOG_DEBUG, "id3v2 ver:%d flags:%02X len:%d\n", version, flags, len); s 925 libavformat/id3v2.c av_log(s, AV_LOG_DEBUG, "Invalid empty frame %s, skipping.\n", s 951 libavformat/id3v2.c av_log(s, AV_LOG_WARNING, "Skipping %s ID3v2 frame %s.\n", type, tag); s 964 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Failed to alloc %d bytes\n", tlen); s 974 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Failed to read tag data\n"); s 994 libavformat/id3v2.c av_log(s, AV_LOG_DEBUG, "Compresssed frame %s tlen=%d dlen=%ld\n", tag, tlen, dlen); s 998 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Failed to alloc %ld bytes\n", dlen); s 1005 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Failed to read compressed tag\n"); s 1013 libavformat/id3v2.c av_log(s, AV_LOG_ERROR, "Failed to uncompress tag: %d\n", err); s 1023 libavformat/id3v2.c read_ttag(s, pbx, tlen, metadata, tag); s 1025 libavformat/id3v2.c read_uslt(s, pbx, tlen, metadata); s 1027 libavformat/id3v2.c read_comment(s, pbx, tlen, metadata); s 1030 libavformat/id3v2.c extra_func->read(s, pbx, tlen, tag, extra_meta, isv34); s 1033 libavformat/id3v2.c av_log(s, AV_LOG_WARNING, "invalid frame id, assuming padding\n"); s 1048 libavformat/id3v2.c av_log(s, AV_LOG_INFO, "ID3v2.%d tag skipped, cannot handle %s\n", s 1057 libavformat/id3v2.c AVFormatContext *s, const char *magic, s 1091 libavformat/id3v2.c id3v2_parse(pb, metadata, s, len, buf[3], buf[5], extra_meta); s 1108 libavformat/id3v2.c void ff_id3v2_read(AVFormatContext *s, const char *magic, s 1111 libavformat/id3v2.c id3v2_read_internal(s->pb, &s->metadata, s, magic, extra_meta, max_search_size); s 1130 libavformat/id3v2.c int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta *extra_meta) s 1142 libavformat/id3v2.c if (!(st = avformat_new_stream(s, NULL))) s 1170 libavformat/id3v2.c int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta *extra_meta) s 1208 libavformat/id3v2.c chapter = avpriv_new_chapter(s, i, time_base, chap->start, chap->end, chap->element_id); s 1261 libavformat/id3v2.c int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta *extra_meta) s 1263 libavformat/id3v2.c return ff_id3v2_parse_priv_dict(&s->metadata, extra_meta); s 128 libavformat/id3v2.h void ff_id3v2_read(AVFormatContext *s, const char *magic, ID3v2ExtraMeta **extra_meta, s 140 libavformat/id3v2.h int ff_id3v2_write_metadata(AVFormatContext *s, ID3v2EncContext *id3); s 145 libavformat/id3v2.h int ff_id3v2_write_apic(AVFormatContext *s, ID3v2EncContext *id3, AVPacket *pkt); s 158 libavformat/id3v2.h int ff_id3v2_write_simple(struct AVFormatContext *s, int id3v2_version, const char *magic); s 170 libavformat/id3v2.h int ff_id3v2_parse_apic(AVFormatContext *s, ID3v2ExtraMeta *extra_meta); s 175 libavformat/id3v2.h int ff_id3v2_parse_chapters(AVFormatContext *s, ID3v2ExtraMeta *extra_meta); s 188 libavformat/id3v2.h int ff_id3v2_parse_priv(AVFormatContext *s, ID3v2ExtraMeta *extra_meta); s 258 libavformat/id3v2enc.c static int write_ctoc(AVFormatContext *s, ID3v2EncContext *id3, int enc) s 265 libavformat/id3v2enc.c if (s->nb_chapters == 0) s 273 libavformat/id3v2enc.c avio_w8(dyn_bc, s->nb_chapters); s 274 libavformat/id3v2enc.c for (int i = 0; i < s->nb_chapters; i++) { s 281 libavformat/id3v2enc.c avio_wb32(s->pb, MKBETAG('C', 'T', 'O', 'C')); s 282 libavformat/id3v2enc.c avio_wb32(s->pb, len); s 283 libavformat/id3v2enc.c avio_wb16(s->pb, 0); s 284 libavformat/id3v2enc.c avio_write(s->pb, dyn_buf, len); s 291 libavformat/id3v2enc.c static int write_chapter(AVFormatContext *s, ID3v2EncContext *id3, int id, int enc) s 294 libavformat/id3v2enc.c AVChapter *ch = s->chapters[id]; s 319 libavformat/id3v2enc.c avio_wb32(s->pb, MKBETAG('C', 'H', 'A', 'P')); s 320 libavformat/id3v2enc.c avio_wb32(s->pb, len); s 321 libavformat/id3v2enc.c avio_wb16(s->pb, 0); s 322 libavformat/id3v2enc.c avio_write(s->pb, dyn_buf, len); s 330 libavformat/id3v2enc.c int ff_id3v2_write_metadata(AVFormatContext *s, ID3v2EncContext *id3) s 336 libavformat/id3v2enc.c ff_standardize_creation_time(s); s 337 libavformat/id3v2enc.c if ((ret = write_metadata(s->pb, &s->metadata, id3, enc)) < 0) s 340 libavformat/id3v2enc.c if ((ret = write_ctoc(s, id3, enc)) < 0) s 343 libavformat/id3v2enc.c for (i = 0; i < s->nb_chapters; i++) { s 344 libavformat/id3v2enc.c if ((ret = write_chapter(s, id3, i, enc)) < 0) s 351 libavformat/id3v2enc.c int ff_id3v2_write_apic(AVFormatContext *s, ID3v2EncContext *id3, AVPacket *pkt) s 353 libavformat/id3v2enc.c AVStream *st = s->streams[pkt->stream_index]; s 373 libavformat/id3v2enc.c av_log(s, AV_LOG_ERROR, "No mimetype is known for stream %d, cannot " s 406 libavformat/id3v2enc.c avio_wb32(s->pb, MKBETAG('A', 'P', 'I', 'C')); s 408 libavformat/id3v2enc.c avio_wb32(s->pb, len); s 410 libavformat/id3v2enc.c id3v2_put_size(s->pb, len); s 411 libavformat/id3v2enc.c avio_wb16(s->pb, 0); s 412 libavformat/id3v2enc.c avio_write(s->pb, buf, len); s 444 libavformat/id3v2enc.c int ff_id3v2_write_simple(struct AVFormatContext *s, int id3v2_version, s 450 libavformat/id3v2enc.c ff_id3v2_start(&id3, s->pb, id3v2_version, magic); s 451 libavformat/id3v2enc.c if ((ret = ff_id3v2_write_metadata(s, &id3)) < 0) s 453 libavformat/id3v2enc.c ff_id3v2_finish(&id3, s->pb, s->metadata_header_padding); s 152 libavformat/idcin.c static int idcin_read_header(AVFormatContext *s) s 154 libavformat/idcin.c AVIOContext *pb = s->pb; s 155 libavformat/idcin.c IdcinDemuxContext *idcin = s->priv_data; s 168 libavformat/idcin.c if (s->pb->eof_reached) { s 169 libavformat/idcin.c av_log(s, AV_LOG_ERROR, "incomplete header\n"); s 170 libavformat/idcin.c return s->pb->error ? s->pb->error : AVERROR_EOF; s 173 libavformat/idcin.c if (av_image_check_size(width, height, 0, s) < 0) s 177 libavformat/idcin.c av_log(s, AV_LOG_ERROR, "invalid sample rate: %u\n", sample_rate); s 181 libavformat/idcin.c av_log(s, AV_LOG_ERROR, "invalid bytes per sample: %u\n", s 186 libavformat/idcin.c av_log(s, AV_LOG_ERROR, "invalid channels: %u\n", channels); s 195 libavformat/idcin.c st = avformat_new_stream(s, NULL); s 208 libavformat/idcin.c if ((ret = ff_get_extradata(s, st->codecpar, pb, HUFFMAN_TABLE_SIZE)) < 0) s 213 libavformat/idcin.c st = avformat_new_stream(s, NULL); s 246 libavformat/idcin.c idcin->first_pkt_pos = avio_tell(s->pb); s 251 libavformat/idcin.c static int idcin_read_packet(AVFormatContext *s, s 257 libavformat/idcin.c IdcinDemuxContext *idcin = s->priv_data; s 258 libavformat/idcin.c AVIOContext *pb = s->pb; s 265 libavformat/idcin.c if (avio_feof(s->pb)) s 266 libavformat/idcin.c return s->pb->error ? s->pb->error : AVERROR_EOF; s 278 libavformat/idcin.c av_log(s, AV_LOG_ERROR, "incomplete packet\n"); s 299 libavformat/idcin.c if (s->pb->eof_reached) { s 300 libavformat/idcin.c av_log(s, AV_LOG_ERROR, "incomplete packet\n"); s 301 libavformat/idcin.c return s->pb->error ? s->pb->error : AVERROR_EOF; s 305 libavformat/idcin.c av_log(s, AV_LOG_ERROR, "invalid chunk size: %u\n", chunk_size); s 315 libavformat/idcin.c av_log(s, AV_LOG_ERROR, "incomplete packet\n"); s 352 libavformat/idcin.c static int idcin_read_seek(AVFormatContext *s, int stream_index, s 355 libavformat/idcin.c IdcinDemuxContext *idcin = s->priv_data; s 358 libavformat/idcin.c int64_t ret = avio_seek(s->pb, idcin->first_pkt_pos, SEEK_SET); s 361 libavformat/idcin.c ff_update_cur_dts(s, s->streams[idcin->video_stream_index], 0); s 71 libavformat/idroqdec.c static int roq_read_header(AVFormatContext *s) s 73 libavformat/idroqdec.c RoqDemuxContext *roq = s->priv_data; s 74 libavformat/idroqdec.c AVIOContext *pb = s->pb; s 89 libavformat/idroqdec.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 94 libavformat/idroqdec.c static int roq_read_packet(AVFormatContext *s, s 97 libavformat/idroqdec.c RoqDemuxContext *roq = s->priv_data; s 98 libavformat/idroqdec.c AVIOContext *pb = s->pb; s 109 libavformat/idroqdec.c if (avio_feof(s->pb)) s 128 libavformat/idroqdec.c AVStream *st = avformat_new_stream(s, NULL); s 179 libavformat/idroqdec.c AVStream *st = avformat_new_stream(s, NULL); s 234 libavformat/idroqdec.c av_log(s, AV_LOG_ERROR, " unknown RoQ chunk (%04X)\n", chunk_type); s 26 libavformat/idroqenc.c static int roq_write_header(struct AVFormatContext *s) s 34 libavformat/idroqenc.c for(n=0;n<s->nb_streams;n++) { s 35 libavformat/idroqenc.c if (s->streams[n]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { s 38 libavformat/idroqenc.c if (s->streams[n]->avg_frame_rate.den != 1) { s 39 libavformat/idroqenc.c av_log(s, AV_LOG_ERROR, "Frame rate must be integer\n"); s 43 libavformat/idroqenc.c if ((fps=s->streams[n]->avg_frame_rate.num) > 255) { s 44 libavformat/idroqenc.c av_log(s, AV_LOG_ERROR, "Frame rate may not exceed 255fps\n"); s 49 libavformat/idroqenc.c av_log(s, AV_LOG_WARNING, "For vintage compatibility fps must be 30\n"); s 57 libavformat/idroqenc.c avio_write(s->pb, header, 8); s 127 libavformat/iff.c static int get_metadata(AVFormatContext *s, s 136 libavformat/iff.c if (avio_read(s->pb, buf, data_size) != data_size) { s 141 libavformat/iff.c av_dict_set(&s->metadata, tag, buf, AV_DICT_DONT_STRDUP_VAL); s 216 libavformat/iff.c static int parse_dsd_diin(AVFormatContext *s, AVStream *st, uint64_t eof) s 218 libavformat/iff.c AVIOContext *pb = s->pb; s 233 libavformat/iff.c int ret = get_metadata(s, metadata_tag, FFMIN(tag_size, size - 4)); s 235 libavformat/iff.c av_log(s, AV_LOG_ERROR, "cannot allocate metadata tag %s!\n", metadata_tag); s 246 libavformat/iff.c static int parse_dsd_prop(AVFormatContext *s, AVStream *st, uint64_t eof) s 248 libavformat/iff.c AVIOContext *pb = s->pb; s 278 libavformat/iff.c avpriv_request_sample(s, "channel layout"); s 299 libavformat/iff.c av_log(s, AV_LOG_ERROR, "'%s' compression is not supported\n", s 313 libavformat/iff.c ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta, size); s 315 libavformat/iff.c if ((ret = ff_id3v2_parse_apic(s, id3v2_extra_meta)) < 0 || s 316 libavformat/iff.c (ret = ff_id3v2_parse_chapters(s, id3v2_extra_meta)) < 0) { s 324 libavformat/iff.c av_log(s, AV_LOG_ERROR, "id3 exceeds chunk size\n"); s 337 libavformat/iff.c avpriv_request_sample(s, "loudspeaker configuration %d", config); s 348 libavformat/iff.c static int read_dst_frame(AVFormatContext *s, AVPacket *pkt) s 350 libavformat/iff.c IffDemuxContext *iff = s->priv_data; s 351 libavformat/iff.c AVIOContext *pb = s->pb; s 382 libavformat/iff.c pkt->duration = 588 * s->streams[0]->codecpar->sample_rate / 44100; s 395 libavformat/iff.c s->streams[0]->duration = avio_rb32(pb) * 588LL * s->streams[0]->codecpar->sample_rate / 44100; s 411 libavformat/iff.c static int iff_read_header(AVFormatContext *s) s 413 libavformat/iff.c IffDemuxContext *iff = s->priv_data; s 414 libavformat/iff.c AVIOContext *pb = s->pb; s 425 libavformat/iff.c st = avformat_new_stream(s, NULL); s 498 libavformat/iff.c int ret = read_dst_frame(s, NULL); s 524 libavformat/iff.c av_log(s, AV_LOG_ERROR, "Invalid CMAP chunk size %"PRIu64"\n", s 585 libavformat/iff.c avpriv_request_sample(s, "color format %.16s", fmt); s 629 libavformat/iff.c av_log(s, AV_LOG_DEBUG, "DSIFF v%d.%d.%d.%d\n",version >> 24, (version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF); s 634 libavformat/iff.c res = parse_dsd_diin(s, st, orig_pos + data_size); s 643 libavformat/iff.c avpriv_request_sample(s, "unknown property type"); s 646 libavformat/iff.c res = parse_dsd_prop(s, st, orig_pos + data_size); s 691 libavformat/iff.c if ((res = get_metadata(s, tag, metadata_size)) < 0) { s 692 libavformat/iff.c av_log(s, AV_LOG_ERROR, "cannot allocate metadata tag %s!\n", tag); s 703 libavformat/iff.c if ((res = get_metadata(s, metadata_tag, data_size)) < 0) { s 704 libavformat/iff.c av_log(s, AV_LOG_ERROR, "cannot allocate metadata tag %s!\n", metadata_tag); s 732 libavformat/iff.c avpriv_request_sample(s, "compression %d and bit depth %d", iff->maud_compression, iff->maud_bits); s 748 libavformat/iff.c av_log(s, AV_LOG_ERROR, s 819 libavformat/iff.c static int iff_read_packet(AVFormatContext *s, s 822 libavformat/iff.c IffDemuxContext *iff = s->priv_data; s 823 libavformat/iff.c AVIOContext *pb = s->pb; s 824 libavformat/iff.c AVStream *st = s->streams[0]; s 837 libavformat/iff.c return read_dst_frame(s, pkt); s 52 libavformat/ifv.c static int read_index(AVFormatContext *s, s 56 libavformat/ifv.c IFVContext *ifv = s->priv_data; s 64 libavformat/ifv.c st = s->streams[ifv->video_stream_index]; s 67 libavformat/ifv.c st = s->streams[ifv->audio_stream_index]; s 71 libavformat/ifv.c if (avio_feof(s->pb)) s 73 libavformat/ifv.c pos = avio_rl32(s->pb); s 74 libavformat/ifv.c size = avio_rl32(s->pb); s 76 libavformat/ifv.c avio_skip(s->pb, 8); s 77 libavformat/ifv.c timestamp = avio_rl32(s->pb); s 83 libavformat/ifv.c avio_skip(s->pb, frame_type == AVMEDIA_TYPE_VIDEO ? 8: 4); s 89 libavformat/ifv.c static int parse_header(AVFormatContext *s) s 91 libavformat/ifv.c IFVContext *ifv = s->priv_data; s 95 libavformat/ifv.c avio_skip(s->pb, 0x34); s 96 libavformat/ifv.c avpriv_dict_set_timestamp(&s->metadata, "creation_time", avio_rl32(s->pb) * 1000000LL); s 97 libavformat/ifv.c avio_skip(s->pb, 0x24); s 99 libavformat/ifv.c ifv->width = avio_rl16(s->pb); s 100 libavformat/ifv.c ifv->height = avio_rl16(s->pb); s 102 libavformat/ifv.c avio_skip(s->pb, 0x8); s 103 libavformat/ifv.c vid_magic = avio_rl32(s->pb); s 106 libavformat/ifv.c avpriv_request_sample(s, "Unknown video codec %x", vid_magic); s 108 libavformat/ifv.c avio_skip(s->pb, 0x2c); s 109 libavformat/ifv.c ifv->sample_rate = avio_rl32(s->pb); s 110 libavformat/ifv.c aud_magic = avio_rl32(s->pb); s 117 libavformat/ifv.c avpriv_request_sample(s, "Unknown audio codec %x", aud_magic); s 120 libavformat/ifv.c avio_skip(s->pb, 0x44); s 121 libavformat/ifv.c ifv->total_vframes = avio_rl32(s->pb); s 122 libavformat/ifv.c ifv->total_aframes = avio_rl32(s->pb); s 127 libavformat/ifv.c static int ifv_read_header(AVFormatContext *s) s 129 libavformat/ifv.c IFVContext *ifv = s->priv_data; s 133 libavformat/ifv.c ret = parse_header(s); s 137 libavformat/ifv.c st = avformat_new_stream(s, NULL); s 151 libavformat/ifv.c st = avformat_new_stream(s, NULL); s 166 libavformat/ifv.c avio_seek(s->pb, 0xf8, SEEK_SET); s 168 libavformat/ifv.c ret = read_index(s, AVMEDIA_TYPE_VIDEO, 0); s 174 libavformat/ifv.c avio_seek(s->pb, 0x14918, SEEK_SET); s 176 libavformat/ifv.c ret = read_index(s, AVMEDIA_TYPE_AUDIO, 0); s 187 libavformat/ifv.c static int ifv_read_packet(AVFormatContext *s, AVPacket *pkt) s 189 libavformat/ifv.c IFVContext *ifv = s->priv_data; s 197 libavformat/ifv.c st = s->streams[ifv->video_stream_index]; s 204 libavformat/ifv.c st = s->streams[ifv->audio_stream_index]; s 219 libavformat/ifv.c avio_skip(s->pb, 0x1c); s 220 libavformat/ifv.c ifv->total_vframes += avio_rl32(s->pb); s 221 libavformat/ifv.c ifv->total_aframes += avio_rl32(s->pb); s 222 libavformat/ifv.c avio_skip(s->pb, 0xc); s 224 libavformat/ifv.c if (avio_feof(s->pb)) s 227 libavformat/ifv.c ret = read_index(s, AVMEDIA_TYPE_VIDEO, ifv->next_video_index); s 231 libavformat/ifv.c ret = read_index(s, AVMEDIA_TYPE_AUDIO, ifv->next_audio_index); s 242 libavformat/ifv.c avio_skip(s->pb, 0x1c); s 243 libavformat/ifv.c ifv->total_vframes += avio_rl32(s->pb); s 244 libavformat/ifv.c avio_skip(s->pb, 0x10); s 246 libavformat/ifv.c if (avio_feof(s->pb)) s 249 libavformat/ifv.c ret = read_index(s, AVMEDIA_TYPE_VIDEO, ifv->next_video_index); s 259 libavformat/ifv.c avio_seek(s->pb, e_next->pos, SEEK_SET); s 260 libavformat/ifv.c ret = av_get_packet(s->pb, pkt, e_next->size); s 278 libavformat/ifv.c static int ifv_read_seek(AVFormatContext *s, int stream_index, int64_t ts, int flags) s 280 libavformat/ifv.c IFVContext *ifv = s->priv_data; s 282 libavformat/ifv.c for (unsigned i = 0; i < s->nb_streams; i++) { s 283 libavformat/ifv.c int index = av_index_search_timestamp(s->streams[i], ts, AVSEEK_FLAG_ANY); s 29 libavformat/ilbc.c static int ilbc_write_header(AVFormatContext *s) s 31 libavformat/ilbc.c AVIOContext *pb = s->pb; s 34 libavformat/ilbc.c if (s->nb_streams != 1) { s 35 libavformat/ilbc.c av_log(s, AV_LOG_ERROR, "Unsupported number of streams\n"); s 38 libavformat/ilbc.c par = s->streams[0]->codecpar; s 41 libavformat/ilbc.c av_log(s, AV_LOG_ERROR, "Unsupported codec\n"); s 50 libavformat/ilbc.c av_log(s, AV_LOG_ERROR, "Unsupported mode\n"); s 65 libavformat/ilbc.c static int ilbc_read_header(AVFormatContext *s) s 67 libavformat/ilbc.c AVIOContext *pb = s->pb; s 73 libavformat/ilbc.c st = avformat_new_stream(s, NULL); s 89 libavformat/ilbc.c av_log(s, AV_LOG_ERROR, "Unrecognized iLBC file header\n"); s 96 libavformat/ilbc.c static int ilbc_read_packet(AVFormatContext *s, s 99 libavformat/ilbc.c AVCodecParameters *par = s->streams[0]->codecpar; s 106 libavformat/ilbc.c pkt->pos = avio_tell(s->pb); s 108 libavformat/ilbc.c if ((ret = avio_read(s->pb, pkt->data, par->block_align)) != par->block_align) { s 184 libavformat/img2dec.c VideoDemuxData *s = s1->priv_data; s 196 libavformat/img2dec.c if (s->pixel_format && s 197 libavformat/img2dec.c (pix_fmt = av_get_pix_fmt(s->pixel_format)) == AV_PIX_FMT_NONE) { s 199 libavformat/img2dec.c s->pixel_format); s 203 libavformat/img2dec.c av_strlcpy(s->path, s1->url, sizeof(s->path)); s 204 libavformat/img2dec.c s->img_number = 0; s 205 libavformat/img2dec.c s->img_count = 0; s 209 libavformat/img2dec.c s->is_pipe = 0; s 211 libavformat/img2dec.c s->is_pipe = 1; s 215 libavformat/img2dec.c if (s->ts_from_file == 2) { s 221 libavformat/img2dec.c } else if (s->ts_from_file) s 224 libavformat/img2dec.c avpriv_set_pts_info(st, 64, s->framerate.den, s->framerate.num); s 226 libavformat/img2dec.c if (s->width && s->height) { s 227 libavformat/img2dec.c st->codecpar->width = s->width; s 228 libavformat/img2dec.c st->codecpar->height = s->height; s 231 libavformat/img2dec.c if (!s->is_pipe) { s 232 libavformat/img2dec.c if (s->pattern_type == PT_DEFAULT) { s 234 libavformat/img2dec.c s->pattern_type = PT_NONE; s 236 libavformat/img2dec.c s->pattern_type = PT_GLOB_SEQUENCE; s 239 libavformat/img2dec.c if (s->pattern_type == PT_GLOB_SEQUENCE) { s 240 libavformat/img2dec.c s->use_glob = is_glob(s->path); s 241 libavformat/img2dec.c if (s->use_glob) { s 243 libavformat/img2dec.c char *p = s->path, *q, *dup; s 253 libavformat/img2dec.c if ((p - s->path) >= (sizeof(s->path) - 2)) s 264 libavformat/img2dec.c gerr = glob(s->path, GLOB_NOCHECK|GLOB_BRACE|GLOB_NOMAGIC, NULL, &s->globstate); s 269 libavformat/img2dec.c last_index = s->globstate.gl_pathc - 1; s 273 libavformat/img2dec.c if ((s->pattern_type == PT_GLOB_SEQUENCE && !s->use_glob) || s->pattern_type == PT_SEQUENCE) { s 274 libavformat/img2dec.c if (find_image_range(s1->pb, &first_index, &last_index, s->path, s 275 libavformat/img2dec.c s->start_number, s->start_number_range) < 0) { s 278 libavformat/img2dec.c s->path, s->start_number, s->start_number + s->start_number_range - 1); s 281 libavformat/img2dec.c } else if (s->pattern_type == PT_GLOB) { s 284 libavformat/img2dec.c gerr = glob(s->path, GLOB_NOCHECK|GLOB_BRACE|GLOB_NOMAGIC, NULL, &s->globstate); s 289 libavformat/img2dec.c last_index = s->globstate.gl_pathc - 1; s 290 libavformat/img2dec.c s->use_glob = 1; s 297 libavformat/img2dec.c } else if (s->pattern_type != PT_GLOB_SEQUENCE && s->pattern_type != PT_NONE) { s 299 libavformat/img2dec.c "Unknown value '%d' for pattern_type option\n", s->pattern_type); s 302 libavformat/img2dec.c s->img_first = first_index; s 303 libavformat/img2dec.c s->img_last = last_index; s 304 libavformat/img2dec.c s->img_number = first_index; s 306 libavformat/img2dec.c if (!s->ts_from_file) { s 322 libavformat/img2dec.c const char *str = strrchr(s->path, '.'); s 323 libavformat/img2dec.c s->split_planes = str && !av_strcasecmp(str + 1, "y"); s 364 libavformat/img2dec.c st->codecpar->codec_id = ff_guess_image2_codec(s->path); s 404 libavformat/img2dec.c VideoDemuxData *s = s1->priv_data; s 412 libavformat/img2dec.c if (!s->is_pipe) { s 414 libavformat/img2dec.c if (s->loop && s->img_number > s->img_last) { s 415 libavformat/img2dec.c s->img_number = s->img_first; s 417 libavformat/img2dec.c if (s->img_number > s->img_last) s 419 libavformat/img2dec.c if (s->pattern_type == PT_NONE) { s 420 libavformat/img2dec.c av_strlcpy(filename_bytes, s->path, sizeof(filename_bytes)); s 421 libavformat/img2dec.c } else if (s->use_glob) { s 423 libavformat/img2dec.c filename = s->globstate.gl_pathv[s->img_number]; s 427 libavformat/img2dec.c s->path, s 428 libavformat/img2dec.c s->img_number) < 0 && s->img_number > 1) s 433 libavformat/img2dec.c !strcmp(filename_bytes, s->path) && s 434 libavformat/img2dec.c !s->loop && s 435 libavformat/img2dec.c !s->split_planes) { s 446 libavformat/img2dec.c if (!s->split_planes) s 476 libavformat/img2dec.c if (avio_feof(f[0]) && s->loop && s->is_pipe) s 480 libavformat/img2dec.c if (s->frame_size > 0) { s 481 libavformat/img2dec.c size[0] = s->frame_size; s 495 libavformat/img2dec.c if (s->ts_from_file) { s 503 libavformat/img2dec.c if (s->ts_from_file == 2) s 506 libavformat/img2dec.c av_add_index_entry(s1->streams[0], s->img_number, pkt->pts, 0, 0, AVINDEX_KEYFRAME); s 507 libavformat/img2dec.c } else if (!s->is_pipe) { s 508 libavformat/img2dec.c pkt->pts = s->pts; s 511 libavformat/img2dec.c if (s->is_pipe) s 519 libavformat/img2dec.c if (!s->is_pipe && s->export_path_metadata == 1) { s 529 libavformat/img2dec.c if (s->loop && s->is_pipe && ret[i] == AVERROR_EOF) { s 535 libavformat/img2dec.c if (!s->is_pipe && f[i] != s1->pb) s 554 libavformat/img2dec.c s->img_count++; s 555 libavformat/img2dec.c s->img_number++; s 556 libavformat/img2dec.c s->pts++; s 561 libavformat/img2dec.c if (!s->is_pipe) { s 573 libavformat/img2dec.c VideoDemuxData *s = s1->priv_data; s 574 libavformat/img2dec.c if (s->use_glob) { s 575 libavformat/img2dec.c globfree(&s->globstate); s 581 libavformat/img2dec.c static int img_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 583 libavformat/img2dec.c VideoDemuxData *s1 = s->priv_data; s 584 libavformat/img2dec.c AVStream *st = s->streams[0]; s 51 libavformat/img2enc.c static int write_header(AVFormatContext *s) s 53 libavformat/img2enc.c VideoMuxData *img = s->priv_data; s 54 libavformat/img2enc.c AVStream *st = s->streams[0]; s 57 libavformat/img2enc.c av_strlcpy(img->path, s->url, sizeof(img->path)); s 67 libavformat/img2enc.c && s->nb_streams == 1 s 76 libavformat/img2enc.c static int write_muxed_file(AVFormatContext *s, AVIOContext *pb, AVPacket *pkt) s 78 libavformat/img2enc.c VideoMuxData *img = s->priv_data; s 79 libavformat/img2enc.c AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; s 86 libavformat/img2enc.c ret = avformat_alloc_output_context2(&fmt, NULL, img->muxer, s->url); s 114 libavformat/img2enc.c static int write_packet_pipe(AVFormatContext *s, AVPacket *pkt) s 116 libavformat/img2enc.c VideoMuxData *img = s->priv_data; s 118 libavformat/img2enc.c int ret = write_muxed_file(s, s->pb, pkt); s 122 libavformat/img2enc.c avio_write(s->pb, pkt->data, pkt->size); s 128 libavformat/img2enc.c static int write_packet(AVFormatContext *s, AVPacket *pkt) s 130 libavformat/img2enc.c VideoMuxData *img = s->priv_data; s 133 libavformat/img2enc.c AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; s 147 libavformat/img2enc.c av_log(s, AV_LOG_ERROR, "Could not get frame filename with strftime\n"); s 152 libavformat/img2enc.c av_log(s, AV_LOG_ERROR, "Cannot write filename by pts of the frames."); s 159 libavformat/img2enc.c av_log(s, AV_LOG_ERROR, s 169 libavformat/img2enc.c if (s->io_open(s, &pb[i], img->use_rename ? img->tmp[i] : filename, AVIO_FLAG_WRITE, &options) < 0) { s 170 libavformat/img2enc.c av_log(s, AV_LOG_ERROR, "Could not open file : %s\n", img->use_rename ? img->tmp[i] : filename); s 175 libavformat/img2enc.c av_log(s, AV_LOG_ERROR, "Could not recognize some protocol options\n"); s 197 libavformat/img2enc.c ff_format_io_close(s, &pb[1]); s 198 libavformat/img2enc.c ff_format_io_close(s, &pb[2]); s 201 libavformat/img2enc.c ff_format_io_close(s, &pb[3]); s 204 libavformat/img2enc.c ret = write_muxed_file(s, pb[0], pkt); s 211 libavformat/img2enc.c ff_format_io_close(s, &pb[0]); s 213 libavformat/img2enc.c int ret = ff_rename(img->tmp[i], img->target[i], s); s 225 libavformat/img2enc.c ff_format_io_close(s, &pb[i]); s 36 libavformat/ingenientdec.c static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt) s 40 libavformat/ingenientdec.c if (avio_rl32(s->pb) != MKTAG('M', 'J', 'P', 'G')) s 43 libavformat/ingenientdec.c size = avio_rl32(s->pb); s 45 libavformat/ingenientdec.c w = avio_rl16(s->pb); s 46 libavformat/ingenientdec.c h = avio_rl16(s->pb); s 48 libavformat/ingenientdec.c avio_skip(s->pb, 8); // zero + size (padded?) s 49 libavformat/ingenientdec.c avio_skip(s->pb, 2); s 50 libavformat/ingenientdec.c unk1 = avio_rl16(s->pb); s 51 libavformat/ingenientdec.c unk2 = avio_rl16(s->pb); s 52 libavformat/ingenientdec.c avio_skip(s->pb, 22); // ASCII timestamp s 54 libavformat/ingenientdec.c av_log(s, AV_LOG_DEBUG, "Ingenient packet: size=%d, width=%d, height=%d, unk1=%d unk2=%d\n", s 57 libavformat/ingenientdec.c ret = av_get_packet(s->pb, pkt, size); s 238 libavformat/internal.h int ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt, s 241 libavformat/internal.h void ff_read_frame_flush(AVFormatContext *s); s 305 libavformat/internal.h int ff_get_line(AVIOContext *s, char *buf, int maxlen); s 315 libavformat/internal.h int ff_get_chomp_line(AVIOContext *s, char *buf, int maxlen); s 328 libavformat/internal.h int64_t ff_read_line_to_bprint(AVIOContext *s, AVBPrint *bp); s 341 libavformat/internal.h int64_t ff_read_line_to_bprint_overwrite(AVIOContext *s, AVBPrint *bp); s 373 libavformat/internal.h int ff_find_stream_index(AVFormatContext *s, int id); s 389 libavformat/internal.h void ff_configure_buffers_for_index(AVFormatContext *s, int64_t time_tolerance); s 402 libavformat/internal.h AVChapter *avpriv_new_chapter(AVFormatContext *s, int id, AVRational time_base, s 410 libavformat/internal.h void ff_reduce_index(AVFormatContext *s, int stream_index); s 421 libavformat/internal.h int ff_seek_frame_binary(AVFormatContext *s, int stream_index, s 432 libavformat/internal.h void ff_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp); s 434 libavformat/internal.h int ff_find_last_ts(AVFormatContext *s, int stream_index, int64_t *ts, int64_t *pos, s 443 libavformat/internal.h int64_t ff_gen_search(AVFormatContext *s, int stream_index, s 462 libavformat/internal.h void avpriv_set_pts_info(AVStream *s, int pts_wrap_bits, s 477 libavformat/internal.h int ff_framehash_write_header(AVFormatContext *s); s 486 libavformat/internal.h int ff_read_packet(AVFormatContext *s, AVPacket *pkt); s 500 libavformat/internal.h int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, s 503 libavformat/internal.h void ff_free_stream(AVFormatContext *s, AVStream *st); s 508 libavformat/internal.h void ff_compute_frame_duration(AVFormatContext *s, int *pnum, int *pden, AVStream *st, s 539 libavformat/internal.h AVRational ff_choose_timebase(AVFormatContext *s, AVStream *st, int min_precision); s 544 libavformat/internal.h enum AVChromaLocation ff_choose_chroma_location(AVFormatContext *s, AVStream *st); s 599 libavformat/internal.h int ff_get_extradata(AVFormatContext *s, AVCodecParameters *par, AVIOContext *pb, int size); s 643 libavformat/internal.h int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options); s 649 libavformat/internal.h void ff_format_io_close(AVFormatContext *s, AVIOContext **pb); s 668 libavformat/internal.h int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t *timestamp, int return_seconds); s 677 libavformat/internal.h int ff_standardize_creation_time(AVFormatContext *s); s 689 libavformat/internal.h int ff_reshuffle_raw_rgb(AVFormatContext *s, AVPacket **ppkt, AVCodecParameters *par, int expected_stride); s 704 libavformat/internal.h int ff_get_packet_palette(AVFormatContext *s, AVPacket *pkt, int ret, uint32_t *palette); s 719 libavformat/internal.h int ff_interleaved_peek(AVFormatContext *s, int stream, s 731 libavformat/internal.h void ff_format_set_url(AVFormatContext *s, char *url); s 44 libavformat/ip.c int ff_ip_check_source_lists(struct sockaddr_storage *source_addr_ptr, IPSourceFilters *s) s 47 libavformat/ip.c if (s->nb_exclude_addrs) { s 48 libavformat/ip.c for (i = 0; i < s->nb_exclude_addrs; i++) { s 49 libavformat/ip.c if (!compare_addr(source_addr_ptr, &s->exclude_addrs[i])) s 53 libavformat/ip.c if (s->nb_include_addrs) { s 54 libavformat/ip.c for (i = 0; i < s->nb_include_addrs; i++) { s 55 libavformat/ip.c if (!compare_addr(source_addr_ptr, &s->include_addrs[i])) s 41 libavformat/ip.h int ff_ip_check_source_lists(struct sockaddr_storage *source_addr_ptr, IPSourceFilters *s); s 119 libavformat/ipmovie.c static int load_ipmovie_packet(IPMVEContext *s, AVIOContext *pb, s 124 libavformat/ipmovie.c if (s->audio_chunk_offset && s->audio_channels && s->audio_bits) { s 125 libavformat/ipmovie.c if (s->audio_type == AV_CODEC_ID_NONE) { s 126 libavformat/ipmovie.c av_log(s->avf, AV_LOG_ERROR, "Can not read audio packet before" s 132 libavformat/ipmovie.c if (s->audio_type != AV_CODEC_ID_INTERPLAY_DPCM) { s 133 libavformat/ipmovie.c s->audio_chunk_offset += 6; s 134 libavformat/ipmovie.c s->audio_chunk_size -= 6; s 137 libavformat/ipmovie.c avio_seek(pb, s->audio_chunk_offset, SEEK_SET); s 138 libavformat/ipmovie.c s->audio_chunk_offset = 0; s 140 libavformat/ipmovie.c if (s->audio_chunk_size != av_get_packet(pb, pkt, s->audio_chunk_size)) s 143 libavformat/ipmovie.c pkt->stream_index = s->audio_stream_index; s 144 libavformat/ipmovie.c pkt->pts = s->audio_frame_count; s 147 libavformat/ipmovie.c if (s->audio_type != AV_CODEC_ID_INTERPLAY_DPCM) s 148 libavformat/ipmovie.c s->audio_frame_count += s 149 libavformat/ipmovie.c (s->audio_chunk_size / s->audio_channels / (s->audio_bits / 8)); s 151 libavformat/ipmovie.c s->audio_frame_count += s 152 libavformat/ipmovie.c (s->audio_chunk_size - 6 - s->audio_channels) / s->audio_channels; s 154 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "sending audio frame with pts %"PRId64" (%d audio frames)\n", s 155 libavformat/ipmovie.c pkt->pts, s->audio_frame_count); s 159 libavformat/ipmovie.c } else if (s->frame_format) { s 163 libavformat/ipmovie.c if (av_new_packet(pkt, 8 + s->decode_map_chunk_size + s->video_chunk_size + s->skip_map_chunk_size)) s 166 libavformat/ipmovie.c if (s->has_palette) { s 172 libavformat/ipmovie.c memcpy(pal, s->palette, AVPALETTE_SIZE); s 173 libavformat/ipmovie.c s->has_palette = 0; s 177 libavformat/ipmovie.c if (s->changed) { s 178 libavformat/ipmovie.c ff_add_param_change(pkt, 0, 0, 0, s->video_width, s->video_height); s 179 libavformat/ipmovie.c s->changed = 0; s 182 libavformat/ipmovie.c AV_WL8(pkt->data, s->frame_format); s 183 libavformat/ipmovie.c AV_WL8(pkt->data + 1, s->send_buffer); s 184 libavformat/ipmovie.c AV_WL16(pkt->data + 2, s->video_chunk_size); s 185 libavformat/ipmovie.c AV_WL16(pkt->data + 4, s->decode_map_chunk_size); s 186 libavformat/ipmovie.c AV_WL16(pkt->data + 6, s->skip_map_chunk_size); s 188 libavformat/ipmovie.c s->frame_format = 0; s 189 libavformat/ipmovie.c s->send_buffer = 0; s 191 libavformat/ipmovie.c pkt->pos = s->video_chunk_offset; s 192 libavformat/ipmovie.c avio_seek(pb, s->video_chunk_offset, SEEK_SET); s 193 libavformat/ipmovie.c s->video_chunk_offset = 0; s 195 libavformat/ipmovie.c if (avio_read(pb, pkt->data + 8, s->video_chunk_size) != s 196 libavformat/ipmovie.c s->video_chunk_size) { s 201 libavformat/ipmovie.c if (s->decode_map_chunk_size) { s 202 libavformat/ipmovie.c pkt->pos = s->decode_map_chunk_offset; s 203 libavformat/ipmovie.c avio_seek(pb, s->decode_map_chunk_offset, SEEK_SET); s 204 libavformat/ipmovie.c s->decode_map_chunk_offset = 0; s 206 libavformat/ipmovie.c if (avio_read(pb, pkt->data + 8 + s->video_chunk_size, s 207 libavformat/ipmovie.c s->decode_map_chunk_size) != s->decode_map_chunk_size) { s 213 libavformat/ipmovie.c if (s->skip_map_chunk_size) { s 214 libavformat/ipmovie.c pkt->pos = s->skip_map_chunk_offset; s 215 libavformat/ipmovie.c avio_seek(pb, s->skip_map_chunk_offset, SEEK_SET); s 216 libavformat/ipmovie.c s->skip_map_chunk_offset = 0; s 218 libavformat/ipmovie.c if (avio_read(pb, pkt->data + 8 + s->video_chunk_size + s->decode_map_chunk_size, s 219 libavformat/ipmovie.c s->skip_map_chunk_size) != s->skip_map_chunk_size) { s 225 libavformat/ipmovie.c s->video_chunk_size = 0; s 226 libavformat/ipmovie.c s->decode_map_chunk_size = 0; s 227 libavformat/ipmovie.c s->skip_map_chunk_size = 0; s 229 libavformat/ipmovie.c pkt->stream_index = s->video_stream_index; s 230 libavformat/ipmovie.c pkt->pts = s->video_pts; s 232 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "sending video frame with pts %"PRId64"\n", pkt->pts); s 234 libavformat/ipmovie.c s->video_pts += s->frame_pts_inc; s 240 libavformat/ipmovie.c avio_seek(pb, s->next_chunk_offset, SEEK_SET); s 248 libavformat/ipmovie.c static int init_audio(AVFormatContext *s) s 250 libavformat/ipmovie.c IPMVEContext *ipmovie = s->priv_data; s 251 libavformat/ipmovie.c AVStream *st = avformat_new_stream(s, NULL); s 275 libavformat/ipmovie.c static int process_ipmovie_chunk(IPMVEContext *s, AVIOContext *pb, s 293 libavformat/ipmovie.c chunk_type = load_ipmovie_packet(s, pb, pkt); s 306 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "chunk type 0x%04X, 0x%04X bytes: ", chunk_type, chunk_size); s 311 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "initialize audio\n"); s 315 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "audio only\n"); s 319 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "initialize video\n"); s 323 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "video (and audio)\n"); s 327 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "shutdown\n"); s 331 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "end\n"); s 335 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "invalid chunk\n"); s 361 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "chunk_size countdown just went negative\n"); s 366 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, " opcode type %02X, version %d, 0x%04X bytes: ", s 371 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "end of stream\n"); s 376 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "end of chunk\n"); s 381 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "create timer\n"); s 383 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "bad create_timer opcode\n"); s 392 libavformat/ipmovie.c s->frame_pts_inc = ((uint64_t)AV_RL32(&scratch[0])) * AV_RL16(&scratch[4]); s 396 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "initialize audio buffers\n"); s 398 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "bad init_audio_buffers opcode\n"); s 407 libavformat/ipmovie.c s->audio_sample_rate = AV_RL16(&scratch[4]); s 410 libavformat/ipmovie.c s->audio_channels = (audio_flags & 1) + 1; s 412 libavformat/ipmovie.c s->audio_bits = (((audio_flags >> 1) & 1) + 1) * 8; s 415 libavformat/ipmovie.c s->audio_type = AV_CODEC_ID_INTERPLAY_DPCM; s 416 libavformat/ipmovie.c else if (s->audio_bits == 16) s 417 libavformat/ipmovie.c s->audio_type = AV_CODEC_ID_PCM_S16LE; s 419 libavformat/ipmovie.c s->audio_type = AV_CODEC_ID_PCM_U8; s 420 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "audio: %d bits, %d Hz, %s, %s format\n", s 421 libavformat/ipmovie.c s->audio_bits, s->audio_sample_rate, s 422 libavformat/ipmovie.c (s->audio_channels == 2) ? "stereo" : "mono", s 423 libavformat/ipmovie.c (s->audio_type == AV_CODEC_ID_INTERPLAY_DPCM) ? s 428 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "start/stop audio\n"); s 433 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "initialize video buffers\n"); s 437 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "bad init_video_buffers opcode\n"); s 448 libavformat/ipmovie.c if (width != s->video_width) { s 449 libavformat/ipmovie.c s->video_width = width; s 450 libavformat/ipmovie.c s->changed++; s 452 libavformat/ipmovie.c if (height != s->video_height) { s 453 libavformat/ipmovie.c s->video_height = height; s 454 libavformat/ipmovie.c s->changed++; s 457 libavformat/ipmovie.c s->video_bpp = 8; s 459 libavformat/ipmovie.c s->video_bpp = 16; s 461 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "video resolution: %d x %d\n", s 462 libavformat/ipmovie.c s->video_width, s->video_height); s 469 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "unknown (but documented) opcode %02X\n", opcode_type); s 474 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "send buffer\n"); s 476 libavformat/ipmovie.c s->send_buffer = 1; s 480 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "audio frame\n"); s 483 libavformat/ipmovie.c s->audio_chunk_offset = avio_tell(pb); s 484 libavformat/ipmovie.c s->audio_chunk_size = opcode_size; s 489 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "silence frame\n"); s 494 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "initialize video mode\n"); s 499 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "create gradient\n"); s 504 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "set palette\n"); s 508 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "demux_ipmovie: set_palette opcode with invalid size\n"); s 523 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "demux_ipmovie: set_palette indexes out of range (%d -> %d)\n", s 535 libavformat/ipmovie.c s->palette[i] = (0xFFU << 24) | (r << 16) | (g << 8) | (b); s 536 libavformat/ipmovie.c s->palette[i] |= s->palette[i] >> 6 & 0x30303; s 538 libavformat/ipmovie.c s->has_palette = 1; s 542 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "set palette compressed\n"); s 547 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "set skip map\n"); s 550 libavformat/ipmovie.c s->skip_map_chunk_offset = avio_tell(pb); s 551 libavformat/ipmovie.c s->skip_map_chunk_size = opcode_size; s 556 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "set decoding map\n"); s 559 libavformat/ipmovie.c s->decode_map_chunk_offset = avio_tell(pb); s 560 libavformat/ipmovie.c s->decode_map_chunk_size = opcode_size; s 565 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "set video data format 0x06\n"); s 566 libavformat/ipmovie.c s->frame_format = 0x06; s 569 libavformat/ipmovie.c s->video_chunk_offset = avio_tell(pb); s 570 libavformat/ipmovie.c s->video_chunk_size = opcode_size; s 575 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "set video data format 0x10\n"); s 576 libavformat/ipmovie.c s->frame_format = 0x10; s 579 libavformat/ipmovie.c s->video_chunk_offset = avio_tell(pb); s 580 libavformat/ipmovie.c s->video_chunk_size = opcode_size; s 585 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "set video data format 0x11\n"); s 586 libavformat/ipmovie.c s->frame_format = 0x11; s 589 libavformat/ipmovie.c s->video_chunk_offset = avio_tell(pb); s 590 libavformat/ipmovie.c s->video_chunk_size = opcode_size; s 595 libavformat/ipmovie.c av_log(s->avf, AV_LOG_TRACE, "*** unknown opcode type\n"); s 602 libavformat/ipmovie.c if (s->avf->nb_streams == 1 && s->audio_type) s 603 libavformat/ipmovie.c init_audio(s->avf); s 606 libavformat/ipmovie.c s->next_chunk_offset = avio_tell(pb); s 610 libavformat/ipmovie.c chunk_type = load_ipmovie_packet(s, pb, pkt); s 630 libavformat/ipmovie.c static int ipmovie_read_header(AVFormatContext *s) s 632 libavformat/ipmovie.c IPMVEContext *ipmovie = s->priv_data; s 633 libavformat/ipmovie.c AVIOContext *pb = s->pb; s 640 libavformat/ipmovie.c ipmovie->avf = s; s 681 libavformat/ipmovie.c st = avformat_new_stream(s, NULL); s 694 libavformat/ipmovie.c return init_audio(s); s 696 libavformat/ipmovie.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 701 libavformat/ipmovie.c static int ipmovie_read_packet(AVFormatContext *s, s 704 libavformat/ipmovie.c IPMVEContext *ipmovie = s->priv_data; s 705 libavformat/ipmovie.c AVIOContext *pb = s->pb; s 53 libavformat/ircamdec.c static int ircam_read_header(AVFormatContext *s) s 60 libavformat/ircamdec.c magic = avio_rl32(s->pb); s 69 libavformat/ircamdec.c sample_rate = av_int2float(avio_rl32(s->pb)); s 70 libavformat/ircamdec.c channels = avio_rl32(s->pb); s 71 libavformat/ircamdec.c tag = avio_rl32(s->pb); s 74 libavformat/ircamdec.c sample_rate = av_int2float(avio_rb32(s->pb)); s 75 libavformat/ircamdec.c channels = avio_rb32(s->pb); s 76 libavformat/ircamdec.c tag = avio_rb32(s->pb); s 85 libavformat/ircamdec.c st = avformat_new_stream(s, NULL); s 97 libavformat/ircamdec.c av_log(s, AV_LOG_ERROR, "unknown tag %"PRIx32"\n", tag); s 104 libavformat/ircamdec.c avio_skip(s->pb, 1008); s 29 libavformat/ircamenc.c static int ircam_write_header(AVFormatContext *s) s 31 libavformat/ircamenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 34 libavformat/ircamenc.c if (s->nb_streams != 1) { s 35 libavformat/ircamenc.c av_log(s, AV_LOG_ERROR, "only one stream is supported\n"); s 41 libavformat/ircamenc.c av_log(s, AV_LOG_ERROR, "unsupported codec\n"); s 45 libavformat/ircamenc.c avio_wl32(s->pb, 0x0001A364); s 46 libavformat/ircamenc.c avio_wl32(s->pb, av_q2intfloat((AVRational){par->sample_rate, 1})); s 47 libavformat/ircamenc.c avio_wl32(s->pb, par->channels); s 48 libavformat/ircamenc.c avio_wl32(s->pb, tag); s 49 libavformat/ircamenc.c ffio_fill(s->pb, 0, 1008); s 608 libavformat/isom.c int ff_mov_read_chan(AVFormatContext *s, AVStream *st, int64_t size) s 612 libavformat/isom.c AVIOContext *pb = s->pb; s 622 libavformat/isom.c av_log_ask_for_sample(s, "Unimplemented container channel layout.\n"); s 640 libavformat/isom.c av_log(s, AV_LOG_WARNING, "Unknown container channel layout.\n"); s 43 libavformat/iss.c static void get_token(AVIOContext *s, char *buf, int maxlen) s 48 libavformat/iss.c while ((c = avio_r8(s))) { s 56 libavformat/iss.c avio_r8(s); s 69 libavformat/iss.c static av_cold int iss_read_header(AVFormatContext *s) s 71 libavformat/iss.c IssDemuxContext *iss = s->priv_data; s 72 libavformat/iss.c AVIOContext *pb = s->pb; s 80 libavformat/iss.c av_log(s, AV_LOG_ERROR, "Failed parsing packet size\n"); s 87 libavformat/iss.c av_log(s, AV_LOG_ERROR, "Failed parsing stereo flag\n"); s 93 libavformat/iss.c av_log(s, AV_LOG_ERROR, "Failed parsing rate_divisor\n"); s 101 libavformat/iss.c av_log(s, AV_LOG_ERROR, "packet_size %d is invalid\n", iss->packet_size); s 107 libavformat/iss.c st = avformat_new_stream(s, NULL); s 131 libavformat/iss.c static int iss_read_packet(AVFormatContext *s, AVPacket *pkt) s 133 libavformat/iss.c IssDemuxContext *iss = s->priv_data; s 134 libavformat/iss.c int ret = av_get_packet(s->pb, pkt, iss->packet_size); s 140 libavformat/iss.c pkt->pts = avio_tell(s->pb) - iss->sample_start_pos; s 141 libavformat/iss.c if(s->streams[0]->codecpar->channels > 0) s 142 libavformat/iss.c pkt->pts /= s->streams[0]->codecpar->channels*2; s 40 libavformat/iv8.c static int read_header(AVFormatContext *s) s 44 libavformat/iv8.c st = avformat_new_stream(s, NULL); s 57 libavformat/iv8.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 65 libavformat/iv8.c type = avio_rb16(s->pb); // 257 or 258 s 66 libavformat/iv8.c size = avio_rb16(s->pb); s 67 libavformat/iv8.c flags = avio_rb16(s->pb); //some flags, 0x80 indicates end of frame s 68 libavformat/iv8.c avio_rb16(s->pb); //packet number s 69 libavformat/iv8.c pts = avio_rb32(s->pb); s 70 libavformat/iv8.c avio_rb32(s->pb); //6A 13 E3 88 s 79 libavformat/iv8.c avio_skip(s->pb, size); s 85 libavformat/iv8.c ret = av_get_packet(s->pb, pkt, size); s 92 libavformat/iv8.c ret = av_append_packet(s->pb, pkt, size); s 94 libavformat/iv8.c av_log(s, AV_LOG_ERROR, "failed to grow packet\n"); s 99 libavformat/iv8.c av_log(s, AV_LOG_ERROR, "Truncated packet! Read %d of %d bytes\n", s 35 libavformat/ivfdec.c static int read_header(AVFormatContext *s) s 40 libavformat/ivfdec.c avio_rl32(s->pb); // DKIF s 41 libavformat/ivfdec.c avio_rl16(s->pb); // version s 42 libavformat/ivfdec.c avio_rl16(s->pb); // header size s 44 libavformat/ivfdec.c st = avformat_new_stream(s, NULL); s 50 libavformat/ivfdec.c st->codecpar->codec_tag = avio_rl32(s->pb); s 52 libavformat/ivfdec.c st->codecpar->width = avio_rl16(s->pb); s 53 libavformat/ivfdec.c st->codecpar->height = avio_rl16(s->pb); s 54 libavformat/ivfdec.c time_base.den = avio_rl32(s->pb); s 55 libavformat/ivfdec.c time_base.num = avio_rl32(s->pb); s 56 libavformat/ivfdec.c st->duration = avio_rl32(s->pb); s 57 libavformat/ivfdec.c avio_skip(s->pb, 4); // unused s 62 libavformat/ivfdec.c av_log(s, AV_LOG_ERROR, "Invalid frame rate\n"); s 71 libavformat/ivfdec.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 73 libavformat/ivfdec.c int ret, size = avio_rl32(s->pb); s 74 libavformat/ivfdec.c int64_t pts = avio_rl64(s->pb); s 76 libavformat/ivfdec.c ret = av_get_packet(s->pb, pkt, size); s 29 libavformat/ivfenc.c static int ivf_init(AVFormatContext *s) s 33 libavformat/ivfenc.c if (s->nb_streams != 1) { s 34 libavformat/ivfenc.c av_log(s, AV_LOG_ERROR, "Format supports only exactly one video stream\n"); s 37 libavformat/ivfenc.c par = s->streams[0]->codecpar; s 42 libavformat/ivfenc.c av_log(s, AV_LOG_ERROR, "Currently only VP8, VP9 and AV1 are supported!\n"); s 47 libavformat/ivfenc.c int ret = ff_stream_add_bitstream_filter(s->streams[0], "vp9_superframe", NULL); s 51 libavformat/ivfenc.c int ret = ff_stream_add_bitstream_filter(s->streams[0], "av1_metadata", "td=insert"); s 59 libavformat/ivfenc.c static int ivf_write_header(AVFormatContext *s) s 61 libavformat/ivfenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 62 libavformat/ivfenc.c AVIOContext *pb = s->pb; s 72 libavformat/ivfenc.c avio_wl32(pb, s->streams[0]->time_base.den); s 73 libavformat/ivfenc.c avio_wl32(pb, s->streams[0]->time_base.num); s 79 libavformat/ivfenc.c static int ivf_write_packet(AVFormatContext *s, AVPacket *pkt) s 81 libavformat/ivfenc.c AVIOContext *pb = s->pb; s 82 libavformat/ivfenc.c IVFEncContext *ctx = s->priv_data; s 95 libavformat/ivfenc.c static int ivf_write_trailer(AVFormatContext *s) s 97 libavformat/ivfenc.c AVIOContext *pb = s->pb; s 98 libavformat/ivfenc.c IVFEncContext *ctx = s->priv_data; s 96 libavformat/jacosubdec.c static int jacosub_read_close(AVFormatContext *s) s 98 libavformat/jacosubdec.c JACOsubContext *jacosub = s->priv_data; s 157 libavformat/jacosubdec.c static int jacosub_read_header(AVFormatContext *s) s 160 libavformat/jacosubdec.c AVIOContext *pb = s->pb; s 162 libavformat/jacosubdec.c JACOsubContext *jacosub = s->priv_data; s 167 libavformat/jacosubdec.c AVStream *st = avformat_new_stream(s, NULL); s 246 libavformat/jacosubdec.c ff_subtitles_queue_finalize(s, &jacosub->q); s 250 libavformat/jacosubdec.c jacosub_read_close(s); s 254 libavformat/jacosubdec.c static int jacosub_read_packet(AVFormatContext *s, AVPacket *pkt) s 256 libavformat/jacosubdec.c JACOsubContext *jacosub = s->priv_data; s 260 libavformat/jacosubdec.c static int jacosub_read_seek(AVFormatContext *s, int stream_index, s 263 libavformat/jacosubdec.c JACOsubContext *jacosub = s->priv_data; s 264 libavformat/jacosubdec.c return ff_subtitles_queue_seek(&jacosub->q, s, stream_index, s 22 libavformat/jacosubenc.c static int jacosub_write_header(AVFormatContext *s) s 24 libavformat/jacosubenc.c const AVCodecParameters *par = s->streams[0]->codecpar; s 27 libavformat/jacosubenc.c avio_write(s->pb, par->extradata, par->extradata_size - 1); s 63 libavformat/jvdec.c static int read_close(AVFormatContext *s) s 65 libavformat/jvdec.c JVDemuxContext *jv = s->priv_data; s 72 libavformat/jvdec.c static int read_header(AVFormatContext *s) s 74 libavformat/jvdec.c JVDemuxContext *jv = s->priv_data; s 75 libavformat/jvdec.c AVIOContext *pb = s->pb; s 83 libavformat/jvdec.c ast = avformat_new_stream(s, NULL); s 84 libavformat/jvdec.c vst = avformat_new_stream(s, NULL); s 139 libavformat/jvdec.c if (s->error_recognition & AV_EF_EXPLODE) { s 140 libavformat/jvdec.c read_close(s); s 151 libavformat/jvdec.c av_log(s, AV_LOG_WARNING, "unsupported audio codec\n"); s 166 libavformat/jvdec.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 168 libavformat/jvdec.c JVDemuxContext *jv = s->priv_data; s 169 libavformat/jvdec.c AVIOContext *pb = s->pb; s 170 libavformat/jvdec.c AVStream *ast = s->streams[0]; s 173 libavformat/jvdec.c while (!avio_feof(s->pb) && jv->pts < ast->nb_index_entries) { s 181 libavformat/jvdec.c if ((ret = av_get_packet(s->pb, pkt, jvf->audio_size)) < 0) s 220 libavformat/jvdec.c if (s->pb->eof_reached) s 226 libavformat/jvdec.c static int read_seek(AVFormatContext *s, int stream_index, s 229 libavformat/jvdec.c JVDemuxContext *jv = s->priv_data; s 230 libavformat/jvdec.c AVStream *ast = s->streams[0]; s 249 libavformat/jvdec.c if (avio_seek(s->pb, ast->index_entries[i].pos, SEEK_SET) < 0) s 47 libavformat/kvag.c static int kvag_read_header(AVFormatContext *s) s 55 libavformat/kvag.c if (!(st = avformat_new_stream(s, NULL))) s 58 libavformat/kvag.c if ((ret = avio_read(s->pb, buf, KVAG_HEADER_SIZE)) < 0) s 98 libavformat/kvag.c static int kvag_read_packet(AVFormatContext *s, AVPacket *pkt) s 101 libavformat/kvag.c AVCodecParameters *par = s->streams[0]->codecpar; s 103 libavformat/kvag.c if ((ret = av_get_packet(s->pb, pkt, KVAG_MAX_READ_SIZE)) < 0) s 123 libavformat/kvag.c static int kvag_write_init(AVFormatContext *s) s 127 libavformat/kvag.c if (s->nb_streams != 1) { s 128 libavformat/kvag.c av_log(s, AV_LOG_ERROR, "KVAG files have exactly one stream\n"); s 132 libavformat/kvag.c par = s->streams[0]->codecpar; s 135 libavformat/kvag.c av_log(s, AV_LOG_ERROR, "%s codec not supported\n", s 141 libavformat/kvag.c av_log(s, AV_LOG_ERROR, "KVAG files only support up to 2 channels\n"); s 145 libavformat/kvag.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) { s 146 libavformat/kvag.c av_log(s, AV_LOG_WARNING, "Stream not seekable, unable to write output file\n"); s 153 libavformat/kvag.c static int kvag_write_header(AVFormatContext *s) s 156 libavformat/kvag.c AVCodecParameters *par = s->streams[0]->codecpar; s 163 libavformat/kvag.c avio_write(s->pb, buf, sizeof(buf)); s 167 libavformat/kvag.c static int kvag_write_trailer(AVFormatContext *s) s 171 libavformat/kvag.c file_size = avio_tell(s->pb); s 174 libavformat/kvag.c avio_seek(s->pb, 4, SEEK_SET); s 175 libavformat/kvag.c avio_wl32(s->pb, (uint32_t)data_size); s 176 libavformat/kvag.c avio_seek(s->pb, file_size, SEEK_SET); s 178 libavformat/kvag.c av_log(s, AV_LOG_WARNING, s 56 libavformat/latmenc.c static int latm_decode_extradata(AVFormatContext *s, uint8_t *buf, int size) s 58 libavformat/latmenc.c LATMContext *ctx = s->priv_data; s 62 libavformat/latmenc.c av_log(s, AV_LOG_ERROR, "Extradata is larger than currently supported.\n"); s 65 libavformat/latmenc.c ctx->off = avpriv_mpeg4audio_get_config2(&m4ac, buf, size, 1, s); s 71 libavformat/latmenc.c av_log(s, AV_LOG_ERROR, "BUG: ALS offset is not byte-aligned\n"); s 77 libavformat/latmenc.c av_log(s, AV_LOG_ERROR, "Muxing MPEG-4 AOT %d in LATM is not supported\n", m4ac.object_type); s 86 libavformat/latmenc.c static int latm_write_header(AVFormatContext *s) s 88 libavformat/latmenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 93 libavformat/latmenc.c av_log(s, AV_LOG_ERROR, "Only AAC, LATM and ALS are supported\n"); s 98 libavformat/latmenc.c latm_decode_extradata(s, par->extradata, par->extradata_size) < 0) s 104 libavformat/latmenc.c static void latm_write_frame_header(AVFormatContext *s, PutBitContext *bs) s 106 libavformat/latmenc.c LATMContext *ctx = s->priv_data; s 107 libavformat/latmenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 150 libavformat/latmenc.c static int latm_write_packet(AVFormatContext *s, AVPacket *pkt) s 152 libavformat/latmenc.c LATMContext *ctx = s->priv_data; s 153 libavformat/latmenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 154 libavformat/latmenc.c AVIOContext *pb = s->pb; s 160 libavformat/latmenc.c return ff_raw_write_packet(s, pkt); s 165 libavformat/latmenc.c return ff_raw_write_packet(s, pkt); s 173 libavformat/latmenc.c if (latm_decode_extradata(s, side_data, side_data_size) < 0) s 189 libavformat/latmenc.c latm_write_frame_header(s, &bs); s 231 libavformat/latmenc.c av_log(s, AV_LOG_ERROR, "LATM packet size larger than maximum size 0x1fff\n"); s 235 libavformat/latmenc.c static int latm_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) s 238 libavformat/latmenc.c AVStream *st = s->streams[pkt->stream_index]; s 69 libavformat/libamqp.c AMQPContext *s = h->priv_data; s 72 libavformat/libamqp.c h->max_packet_size = s->pkt_size; s 108 libavformat/libamqp.c s->conn = amqp_new_connection(); s 109 libavformat/libamqp.c if (!s->conn) { s 116 libavformat/libamqp.c s->socket = amqp_tcp_socket_new(s->conn); s 117 libavformat/libamqp.c if (!s->socket) { s 122 libavformat/libamqp.c if (s->connection_timeout < 0) s 123 libavformat/libamqp.c s->connection_timeout = (h->rw_timeout > 0 ? h->rw_timeout : 5000000); s 125 libavformat/libamqp.c tval.tv_sec = s->connection_timeout / 1000000; s 126 libavformat/libamqp.c tval.tv_usec = s->connection_timeout % 1000000; s 127 libavformat/libamqp.c ret = amqp_socket_open_noblock(s->socket, hostname, port, &tval); s 135 libavformat/libamqp.c broker_reply = amqp_login(s->conn, "/", 0, s->pkt_size, 0, s 144 libavformat/libamqp.c amqp_channel_open(s->conn, DEFAULT_CHANNEL); s 145 libavformat/libamqp.c broker_reply = amqp_get_rpc_reply(s->conn); s 158 libavformat/libamqp.c r = amqp_queue_declare(s->conn, DEFAULT_CHANNEL, amqp_empty_bytes, s 160 libavformat/libamqp.c broker_reply = amqp_get_rpc_reply(s->conn); s 172 libavformat/libamqp.c amqp_queue_bind(s->conn, DEFAULT_CHANNEL, queuename, s 173 libavformat/libamqp.c amqp_cstring_bytes(s->exchange), s 174 libavformat/libamqp.c amqp_cstring_bytes(s->routing_key), amqp_empty_table); s 176 libavformat/libamqp.c broker_reply = amqp_get_rpc_reply(s->conn); s 183 libavformat/libamqp.c amqp_basic_consume(s->conn, DEFAULT_CHANNEL, queuename, amqp_empty_bytes, s 186 libavformat/libamqp.c broker_reply = amqp_get_rpc_reply(s->conn); s 199 libavformat/libamqp.c amqp_channel_close(s->conn, DEFAULT_CHANNEL, server_msg); s 201 libavformat/libamqp.c amqp_connection_close(s->conn, server_msg); s 203 libavformat/libamqp.c amqp_destroy_connection(s->conn); s 213 libavformat/libamqp.c AMQPContext *s = h->priv_data; s 214 libavformat/libamqp.c int fd = amqp_socket_get_sockfd(s->socket); s 227 libavformat/libamqp.c ret = amqp_basic_publish(s->conn, DEFAULT_CHANNEL, amqp_cstring_bytes(s->exchange), s 228 libavformat/libamqp.c amqp_cstring_bytes(s->routing_key), 0, 0, s 241 libavformat/libamqp.c AMQPContext *s = h->priv_data; s 242 libavformat/libamqp.c int fd = amqp_socket_get_sockfd(s->socket); s 252 libavformat/libamqp.c amqp_maybe_release_buffers(s->conn); s 253 libavformat/libamqp.c broker_reply = amqp_consume_message(s->conn, &envelope, NULL, 0); s 259 libavformat/libamqp.c s->pkt_size_overflow = FFMAX(s->pkt_size_overflow, envelope.message.body.len); s 262 libavformat/libamqp.c "may resolve this issue.\n", s->pkt_size_overflow); s 274 libavformat/libamqp.c AMQPContext *s = h->priv_data; s 275 libavformat/libamqp.c amqp_channel_close(s->conn, DEFAULT_CHANNEL, AMQP_REPLY_SUCCESS); s 276 libavformat/libamqp.c amqp_connection_close(s->conn, AMQP_REPLY_SUCCESS); s 277 libavformat/libamqp.c amqp_destroy_connection(s->conn); s 52 libavformat/libgme.c static void add_meta(AVFormatContext *s, const char *name, const char *value) s 55 libavformat/libgme.c av_dict_set(&s->metadata, name, value, 0); s 58 libavformat/libgme.c static int load_metadata(AVFormatContext *s) s 60 libavformat/libgme.c GMEContext *gme = s->priv_data; s 64 libavformat/libgme.c add_meta(s, "system", info->system); s 65 libavformat/libgme.c add_meta(s, "game", info->game); s 66 libavformat/libgme.c add_meta(s, "song", info->song); s 67 libavformat/libgme.c add_meta(s, "author", info->author); s 68 libavformat/libgme.c add_meta(s, "copyright", info->copyright); s 69 libavformat/libgme.c add_meta(s, "comment", info->comment); s 70 libavformat/libgme.c add_meta(s, "dumper", info->dumper); s 73 libavformat/libgme.c add_meta(s, "tracks", buf); s 80 libavformat/libgme.c static int read_header_gme(AVFormatContext *s) s 83 libavformat/libgme.c AVIOContext *pb = s->pb; s 84 libavformat/libgme.c GMEContext *gme = s->priv_data; s 90 libavformat/libgme.c av_log(s, AV_LOG_WARNING, "Could not determine file size\n"); s 103 libavformat/libgme.c av_log(s, AV_LOG_ERROR, "File size is larger than max_size option " s 121 libavformat/libgme.c load_metadata(s); s 123 libavformat/libgme.c st = avformat_new_stream(s, NULL); s 137 libavformat/libgme.c static int read_packet_gme(AVFormatContext *s, AVPacket *pkt) s 139 libavformat/libgme.c GMEContext *gme = s->priv_data; s 156 libavformat/libgme.c static int read_close_gme(AVFormatContext *s) s 158 libavformat/libgme.c GMEContext *gme = s->priv_data; s 164 libavformat/libgme.c static int read_seek_gme(AVFormatContext *s, int stream_idx, int64_t ts, int flags) s 166 libavformat/libgme.c GMEContext *gme = s->priv_data; s 110 libavformat/libmodplug.c if (n_## entry_name ##s) { \ s 113 libavformat/libmodplug.c for (i = 0; i < n_## entry_name ##s; i++) { \ s 119 libavformat/libmodplug.c av_dict_set(&s->metadata, #entry_name, "\n", AV_DICT_APPEND); \ s 120 libavformat/libmodplug.c av_dict_set(&s->metadata, #entry_name, item_name, AV_DICT_APPEND); \ s 125 libavformat/libmodplug.c n, n_## entry_name ##s, n > 1 ? "s" : ""); \ s 128 libavformat/libmodplug.c av_dict_set(&s->metadata, "extra info", extra, AV_DICT_APPEND); \ s 133 libavformat/libmodplug.c static int modplug_load_metadata(AVFormatContext *s) s 135 libavformat/libmodplug.c ModPlugContext *modplug = s->priv_data; s 146 libavformat/libmodplug.c if (name && *name) av_dict_set(&s->metadata, "name", name, 0); s 147 libavformat/libmodplug.c if (msg && *msg) av_dict_set(&s->metadata, "message", msg, 0); s 154 libavformat/libmodplug.c av_dict_set(&s->metadata, "extra info", extra, AV_DICT_DONT_STRDUP_VAL); s 164 libavformat/libmodplug.c static int modplug_read_header(AVFormatContext *s) s 167 libavformat/libmodplug.c AVIOContext *pb = s->pb; s 169 libavformat/libmodplug.c ModPlugContext *modplug = s->priv_data; s 173 libavformat/libmodplug.c av_log(s, AV_LOG_WARNING, "Could not determine file size\n"); s 177 libavformat/libmodplug.c av_log(s, AV_LOG_WARNING, "Max file size reach%s, allocating %"PRIi64"B " s 184 libavformat/libmodplug.c NULL, NULL, NULL, NULL, 0, s); s 223 libavformat/libmodplug.c st = avformat_new_stream(s, NULL); s 237 libavformat/libmodplug.c AVStream *vst = avformat_new_stream(s, NULL); s 250 libavformat/libmodplug.c return modplug_load_metadata(s); s 253 libavformat/libmodplug.c static void write_text(uint8_t *dst, const char *s, int linesize, int x, int y) s 257 libavformat/libmodplug.c for (i = 0; s[i]; i++, dst += 3) { s 259 libavformat/libmodplug.c dst[1] = s[i]; // char s 270 libavformat/libmodplug.c static int modplug_read_packet(AVFormatContext *s, AVPacket *pkt) s 272 libavformat/libmodplug.c ModPlugContext *modplug = s->priv_data; s 335 libavformat/libmodplug.c static int modplug_read_close(AVFormatContext *s) s 337 libavformat/libmodplug.c ModPlugContext *modplug = s->priv_data; s 343 libavformat/libmodplug.c static int modplug_read_seek(AVFormatContext *s, int stream_idx, int64_t ts, int flags) s 345 libavformat/libmodplug.c ModPlugContext *modplug = s->priv_data; s 71 libavformat/libopenmpt.c #define add_meta(s, name, meta) \ s 75 libavformat/libopenmpt.c av_dict_set(&s->metadata, name, value, 0); \ s 79 libavformat/libopenmpt.c static int read_header_openmpt(AVFormatContext *s) s 82 libavformat/libopenmpt.c OpenMPTContext *openmpt = s->priv_data; s 90 libavformat/libopenmpt.c size = avio_size(s->pb); s 96 libavformat/libopenmpt.c size = avio_read(s->pb, buf, size); s 98 libavformat/libopenmpt.c av_log(s, AV_LOG_ERROR, "Reading input buffer failed.\n"); s 105 libavformat/libopenmpt.c openmpt->module = openmpt_module_create_from_memory2(buf, size, openmpt_logfunc, s, NULL, NULL, &error, NULL, NULL); s 116 libavformat/libopenmpt.c openmpt->module = openmpt_module_create_from_memory(buf, size, openmpt_logfunc, s, NULL); s 126 libavformat/libopenmpt.c av_log(s, AV_LOG_ERROR, "Invalid subsong index: %d\n", openmpt->subsong); s 132 libavformat/libopenmpt.c av_dict_set_int(&s->metadata, "track", openmpt->subsong + 1, 0); s 137 libavformat/libopenmpt.c av_log(s, AV_LOG_ERROR, "Could not select requested subsong: %d", openmpt->subsong); s 144 libavformat/libopenmpt.c add_meta(s, "artist", openmpt_module_get_metadata(openmpt->module, "artist")); s 145 libavformat/libopenmpt.c add_meta(s, "title", openmpt_module_get_metadata(openmpt->module, "title")); s 146 libavformat/libopenmpt.c add_meta(s, "encoder", openmpt_module_get_metadata(openmpt->module, "tracker")); s 147 libavformat/libopenmpt.c add_meta(s, "comment", openmpt_module_get_metadata(openmpt->module, "message")); s 148 libavformat/libopenmpt.c add_meta(s, "date", openmpt_module_get_metadata(openmpt->module, "date")); s 150 libavformat/libopenmpt.c st = avformat_new_stream(s, NULL); s 169 libavformat/libopenmpt.c static int read_packet_openmpt(AVFormatContext *s, AVPacket *pkt) s 171 libavformat/libopenmpt.c OpenMPTContext *openmpt = s->priv_data; s 192 libavformat/libopenmpt.c av_log(s, AV_LOG_ERROR, "Unsupported number of channels: %d", openmpt->channels); s 206 libavformat/libopenmpt.c static int read_close_openmpt(AVFormatContext *s) s 208 libavformat/libopenmpt.c OpenMPTContext *openmpt = s->priv_data; s 214 libavformat/libopenmpt.c static int read_seek_openmpt(AVFormatContext *s, int stream_idx, int64_t ts, int flags) s 216 libavformat/libopenmpt.c OpenMPTContext *openmpt = s->priv_data; s 73 libavformat/librtmp.c static int rtmp_close(URLContext *s) s 75 libavformat/librtmp.c LibRTMPContext *ctx = s->priv_data; s 95 libavformat/librtmp.c static int rtmp_open(URLContext *s, const char *uri, int flags) s 97 libavformat/librtmp.c LibRTMPContext *ctx = s->priv_data; s 100 libavformat/librtmp.c char *filename = s->filename; s 101 libavformat/librtmp.c int len = strlen(s->filename) + 1; s 161 libavformat/librtmp.c av_strlcpy(filename, s->filename, len); s 249 libavformat/librtmp.c s->is_streamed = 1; s 259 libavformat/librtmp.c static int rtmp_write(URLContext *s, const uint8_t *buf, int size) s 261 libavformat/librtmp.c LibRTMPContext *ctx = s->priv_data; s 270 libavformat/librtmp.c static int rtmp_read(URLContext *s, uint8_t *buf, int size) s 272 libavformat/librtmp.c LibRTMPContext *ctx = s->priv_data; s 281 libavformat/librtmp.c static int rtmp_read_pause(URLContext *s, int pause) s 283 libavformat/librtmp.c LibRTMPContext *ctx = s->priv_data; s 291 libavformat/librtmp.c static int64_t rtmp_read_seek(URLContext *s, int stream_index, s 294 libavformat/librtmp.c LibRTMPContext *ctx = s->priv_data; s 310 libavformat/librtmp.c static int rtmp_get_file_handle(URLContext *s) s 312 libavformat/librtmp.c LibRTMPContext *ctx = s->priv_data; s 289 libavformat/libsrt.c SRTContext *s = h->priv_data; s 291 libavformat/libsrt.c if ((s->inputbw >= 0 && libsrt_setsockopt(h, fd, SRTO_INPUTBW, "SRTO_INPUTBW", &s->inputbw, sizeof(s->inputbw)) < 0) || s 292 libavformat/libsrt.c (s->oheadbw >= 0 && libsrt_setsockopt(h, fd, SRTO_OHEADBW, "SRTO_OHEADBW", &s->oheadbw, sizeof(s->oheadbw)) < 0)) { s 303 libavformat/libsrt.c SRTContext *s = h->priv_data; s 305 libavformat/libsrt.c int latency = s->latency / 1000; s 306 libavformat/libsrt.c int rcvlatency = s->rcvlatency / 1000; s 307 libavformat/libsrt.c int peerlatency = s->peerlatency / 1000; s 308 libavformat/libsrt.c int connect_timeout = s->connect_timeout; s 310 libavformat/libsrt.c if ((s->mode == SRT_MODE_RENDEZVOUS && libsrt_setsockopt(h, fd, SRTO_RENDEZVOUS, "SRTO_RENDEZVOUS", &yes, sizeof(yes)) < 0) || s 311 libavformat/libsrt.c (s->transtype != SRTT_INVALID && libsrt_setsockopt(h, fd, SRTO_TRANSTYPE, "SRTO_TRANSTYPE", &s->transtype, sizeof(s->transtype)) < 0) || s 312 libavformat/libsrt.c (s->maxbw >= 0 && libsrt_setsockopt(h, fd, SRTO_MAXBW, "SRTO_MAXBW", &s->maxbw, sizeof(s->maxbw)) < 0) || s 313 libavformat/libsrt.c (s->pbkeylen >= 0 && libsrt_setsockopt(h, fd, SRTO_PBKEYLEN, "SRTO_PBKEYLEN", &s->pbkeylen, sizeof(s->pbkeylen)) < 0) || s 314 libavformat/libsrt.c (s->passphrase && libsrt_setsockopt(h, fd, SRTO_PASSPHRASE, "SRTO_PASSPHRASE", s->passphrase, strlen(s->passphrase)) < 0) || s 317 libavformat/libsrt.c (s->enforced_encryption >= 0 && libsrt_setsockopt(h, fd, SRTO_STRICTENC, "SRTO_STRICTENC", &s->enforced_encryption, sizeof(s->enforced_encryption)) < 0) || s 318 libavformat/libsrt.c (s->kmrefreshrate >= 0 && libsrt_setsockopt(h, fd, SRTO_KMREFRESHRATE, "SRTO_KMREFRESHRATE", &s->kmrefreshrate, sizeof(s->kmrefreshrate)) < 0) || s 319 libavformat/libsrt.c (s->kmpreannounce >= 0 && libsrt_setsockopt(h, fd, SRTO_KMPREANNOUNCE, "SRTO_KMPREANNOUNCE", &s->kmpreannounce, sizeof(s->kmpreannounce)) < 0) || s 321 libavformat/libsrt.c (s->mss >= 0 && libsrt_setsockopt(h, fd, SRTO_MSS, "SRTO_MSS", &s->mss, sizeof(s->mss)) < 0) || s 322 libavformat/libsrt.c (s->ffs >= 0 && libsrt_setsockopt(h, fd, SRTO_FC, "SRTO_FC", &s->ffs, sizeof(s->ffs)) < 0) || s 323 libavformat/libsrt.c (s->ipttl >= 0 && libsrt_setsockopt(h, fd, SRTO_IPTTL, "SRTO_IPTTL", &s->ipttl, sizeof(s->ipttl)) < 0) || s 324 libavformat/libsrt.c (s->iptos >= 0 && libsrt_setsockopt(h, fd, SRTO_IPTOS, "SRTO_IPTOS", &s->iptos, sizeof(s->iptos)) < 0) || s 325 libavformat/libsrt.c (s->latency >= 0 && libsrt_setsockopt(h, fd, SRTO_LATENCY, "SRTO_LATENCY", &latency, sizeof(latency)) < 0) || s 326 libavformat/libsrt.c (s->rcvlatency >= 0 && libsrt_setsockopt(h, fd, SRTO_RCVLATENCY, "SRTO_RCVLATENCY", &rcvlatency, sizeof(rcvlatency)) < 0) || s 327 libavformat/libsrt.c (s->peerlatency >= 0 && libsrt_setsockopt(h, fd, SRTO_PEERLATENCY, "SRTO_PEERLATENCY", &peerlatency, sizeof(peerlatency)) < 0) || s 328 libavformat/libsrt.c (s->tlpktdrop >= 0 && libsrt_setsockopt(h, fd, SRTO_TLPKTDROP, "SRTO_TLPKDROP", &s->tlpktdrop, sizeof(s->tlpktdrop)) < 0) || s 329 libavformat/libsrt.c (s->nakreport >= 0 && libsrt_setsockopt(h, fd, SRTO_NAKREPORT, "SRTO_NAKREPORT", &s->nakreport, sizeof(s->nakreport)) < 0) || s 331 libavformat/libsrt.c (s->sndbuf >= 0 && libsrt_setsockopt(h, fd, SRTO_SNDBUF, "SRTO_SNDBUF", &s->sndbuf, sizeof(s->sndbuf)) < 0) || s 332 libavformat/libsrt.c (s->rcvbuf >= 0 && libsrt_setsockopt(h, fd, SRTO_RCVBUF, "SRTO_RCVBUF", &s->rcvbuf, sizeof(s->rcvbuf)) < 0) || s 333 libavformat/libsrt.c (s->lossmaxttl >= 0 && libsrt_setsockopt(h, fd, SRTO_LOSSMAXTTL, "SRTO_LOSSMAXTTL", &s->lossmaxttl, sizeof(s->lossmaxttl)) < 0) || s 334 libavformat/libsrt.c (s->minversion >= 0 && libsrt_setsockopt(h, fd, SRTO_MINVERSION, "SRTO_MINVERSION", &s->minversion, sizeof(s->minversion)) < 0) || s 335 libavformat/libsrt.c (s->streamid && libsrt_setsockopt(h, fd, SRTO_STREAMID, "SRTO_STREAMID", s->streamid, strlen(s->streamid)) < 0) || s 336 libavformat/libsrt.c (s->smoother && libsrt_setsockopt(h, fd, SRTO_SMOOTHER, "SRTO_SMOOTHER", s->smoother, strlen(s->smoother)) < 0) || s 337 libavformat/libsrt.c (s->messageapi >= 0 && libsrt_setsockopt(h, fd, SRTO_MESSAGEAPI, "SRTO_MESSAGEAPI", &s->messageapi, sizeof(s->messageapi)) < 0) || s 338 libavformat/libsrt.c (s->payload_size >= 0 && libsrt_setsockopt(h, fd, SRTO_PAYLOADSIZE, "SRTO_PAYLOADSIZE", &s->payload_size, sizeof(s->payload_size)) < 0) || s 343 libavformat/libsrt.c if (s->linger >= 0) { s 345 libavformat/libsrt.c lin.l_linger = s->linger; s 358 libavformat/libsrt.c SRTContext *s = h->priv_data; s 370 libavformat/libsrt.c s->eid = eid; s 383 libavformat/libsrt.c s->rw_timeout = strtol(buf, NULL, 10); s 386 libavformat/libsrt.c s->listen_timeout = strtol(buf, NULL, 10); s 389 libavformat/libsrt.c if (s->rw_timeout >= 0) { s 390 libavformat/libsrt.c open_timeout = h->rw_timeout = s->rw_timeout; s 395 libavformat/libsrt.c if (s->mode == SRT_MODE_LISTENER) s 421 libavformat/libsrt.c if (s->recv_buffer_size > 0) { s 422 libavformat/libsrt.c srt_setsockopt(fd, SOL_SOCKET, SRTO_UDP_RCVBUF, &s->recv_buffer_size, sizeof (s->recv_buffer_size)); s 424 libavformat/libsrt.c if (s->send_buffer_size > 0) { s 425 libavformat/libsrt.c srt_setsockopt(fd, SOL_SOCKET, SRTO_UDP_SNDBUF, &s->send_buffer_size, sizeof (s->send_buffer_size)); s 430 libavformat/libsrt.c if (s->mode == SRT_MODE_LISTENER) { s 432 libavformat/libsrt.c if ((ret = libsrt_listen(s->eid, fd, cur_ai->ai_addr, cur_ai->ai_addrlen, h, s->listen_timeout)) < 0) s 436 libavformat/libsrt.c if (s->mode == SRT_MODE_RENDEZVOUS) { s 442 libavformat/libsrt.c if ((ret = libsrt_listen_connect(s->eid, fd, cur_ai->ai_addr, cur_ai->ai_addrlen, s 465 libavformat/libsrt.c s->fd = fd; s 488 libavformat/libsrt.c SRTContext *s = h->priv_data; s 501 libavformat/libsrt.c s->maxbw = strtoll(buf, NULL, 0); s 504 libavformat/libsrt.c s->pbkeylen = strtol(buf, NULL, 10); s 507 libavformat/libsrt.c av_freep(&s->passphrase); s 508 libavformat/libsrt.c s->passphrase = av_strndup(buf, strlen(buf)); s 512 libavformat/libsrt.c s->enforced_encryption = strtol(buf, NULL, 10); s 515 libavformat/libsrt.c s->kmrefreshrate = strtol(buf, NULL, 10); s 518 libavformat/libsrt.c s->kmpreannounce = strtol(buf, NULL, 10); s 522 libavformat/libsrt.c s->mss = strtol(buf, NULL, 10); s 525 libavformat/libsrt.c s->ffs = strtol(buf, NULL, 10); s 528 libavformat/libsrt.c s->ipttl = strtol(buf, NULL, 10); s 531 libavformat/libsrt.c s->iptos = strtol(buf, NULL, 10); s 534 libavformat/libsrt.c s->inputbw = strtoll(buf, NULL, 10); s 537 libavformat/libsrt.c s->oheadbw = strtoll(buf, NULL, 10); s 540 libavformat/libsrt.c s->latency = strtol(buf, NULL, 10); s 543 libavformat/libsrt.c s->latency = strtol(buf, NULL, 10); s 546 libavformat/libsrt.c s->rcvlatency = strtol(buf, NULL, 10); s 549 libavformat/libsrt.c s->peerlatency = strtol(buf, NULL, 10); s 552 libavformat/libsrt.c s->tlpktdrop = strtol(buf, NULL, 10); s 555 libavformat/libsrt.c s->nakreport = strtol(buf, NULL, 10); s 558 libavformat/libsrt.c s->connect_timeout = strtol(buf, NULL, 10); s 562 libavformat/libsrt.c s->payload_size = strtol(buf, NULL, 10); s 566 libavformat/libsrt.c s->mode = SRT_MODE_CALLER; s 568 libavformat/libsrt.c s->mode = SRT_MODE_LISTENER; s 570 libavformat/libsrt.c s->mode = SRT_MODE_RENDEZVOUS; s 576 libavformat/libsrt.c s->sndbuf = strtol(buf, NULL, 10); s 579 libavformat/libsrt.c s->rcvbuf = strtol(buf, NULL, 10); s 582 libavformat/libsrt.c s->lossmaxttl = strtol(buf, NULL, 10); s 585 libavformat/libsrt.c s->minversion = strtol(buf, NULL, 0); s 588 libavformat/libsrt.c av_freep(&s->streamid); s 589 libavformat/libsrt.c s->streamid = av_strdup(buf); s 590 libavformat/libsrt.c if (!s->streamid) { s 596 libavformat/libsrt.c av_freep(&s->smoother); s 597 libavformat/libsrt.c s->smoother = av_strdup(buf); s 598 libavformat/libsrt.c if(!s->smoother) { s 604 libavformat/libsrt.c s->messageapi = strtol(buf, NULL, 10); s 608 libavformat/libsrt.c s->transtype = SRTT_LIVE; s 610 libavformat/libsrt.c s->transtype = SRTT_FILE; s 617 libavformat/libsrt.c s->linger = strtol(buf, NULL, 10); s 622 libavformat/libsrt.c av_freep(&s->smoother); s 623 libavformat/libsrt.c av_freep(&s->streamid); s 629 libavformat/libsrt.c SRTContext *s = h->priv_data; s 633 libavformat/libsrt.c ret = libsrt_network_wait_fd_timeout(h, s->eid, s->fd, 0, h->rw_timeout, &h->interrupt_callback); s 638 libavformat/libsrt.c ret = srt_recvmsg(s->fd, buf, size); s 648 libavformat/libsrt.c SRTContext *s = h->priv_data; s 652 libavformat/libsrt.c ret = libsrt_network_wait_fd_timeout(h, s->eid, s->fd, 1, h->rw_timeout, &h->interrupt_callback); s 657 libavformat/libsrt.c ret = srt_sendmsg(s->fd, buf, size, -1, 0); s 667 libavformat/libsrt.c SRTContext *s = h->priv_data; s 669 libavformat/libsrt.c srt_close(s->fd); s 671 libavformat/libsrt.c srt_epoll_release(s->eid); s 680 libavformat/libsrt.c SRTContext *s = h->priv_data; s 681 libavformat/libsrt.c return s->fd; s 83 libavformat/libzmq.c ZMQContext *s = h->priv_data; s 84 libavformat/libzmq.c s->pkt_size_overflow = 0; s 87 libavformat/libzmq.c if (s->pkt_size > 0) s 88 libavformat/libzmq.c h->max_packet_size = s->pkt_size; s 90 libavformat/libzmq.c s->context = zmq_ctx_new(); s 91 libavformat/libzmq.c if (!s->context) { s 101 libavformat/libzmq.c s->socket = zmq_socket(s->context, ZMQ_PUB); s 102 libavformat/libzmq.c if (!s->socket) { s 107 libavformat/libzmq.c ret = zmq_bind(s->socket, uri); s 116 libavformat/libzmq.c s->socket = zmq_socket(s->context, ZMQ_SUB); s 117 libavformat/libzmq.c if (!s->socket) { s 122 libavformat/libzmq.c ret = zmq_setsockopt(s->socket, ZMQ_SUBSCRIBE, "", 0); s 128 libavformat/libzmq.c ret = zmq_connect(s->socket, uri); s 137 libavformat/libzmq.c zmq_close(s->socket); s 139 libavformat/libzmq.c zmq_ctx_term(s->context); s 146 libavformat/libzmq.c ZMQContext *s = h->priv_data; s 148 libavformat/libzmq.c ret = zmq_proto_wait_timeout(h, s->socket, 1, h->rw_timeout, &h->interrupt_callback); s 151 libavformat/libzmq.c ret = zmq_send(s->socket, buf, size, 0); s 162 libavformat/libzmq.c ZMQContext *s = h->priv_data; s 164 libavformat/libzmq.c ret = zmq_proto_wait_timeout(h, s->socket, 0, h->rw_timeout, &h->interrupt_callback); s 167 libavformat/libzmq.c ret = zmq_recv(s->socket, buf, size, 0); s 173 libavformat/libzmq.c s->pkt_size_overflow = FFMAX(s->pkt_size_overflow, ret); s 174 libavformat/libzmq.c av_log(h, AV_LOG_WARNING, "Message exceeds available space in the buffer. Message will be truncated. Setting -pkt_size %d may resolve the issue.\n", s->pkt_size_overflow); s 182 libavformat/libzmq.c ZMQContext *s = h->priv_data; s 183 libavformat/libzmq.c zmq_close(s->socket); s 184 libavformat/libzmq.c zmq_ctx_term(s->context); s 62 libavformat/lmlm4.c static int lmlm4_read_header(AVFormatContext *s) s 66 libavformat/lmlm4.c if (!(st = avformat_new_stream(s, NULL))) s 73 libavformat/lmlm4.c if (!(st = avformat_new_stream(s, NULL))) s 83 libavformat/lmlm4.c static int lmlm4_read_packet(AVFormatContext *s, AVPacket *pkt) s 85 libavformat/lmlm4.c AVIOContext *pb = s->pb; s 96 libavformat/lmlm4.c av_log(s, AV_LOG_ERROR, "invalid or unsupported frame_type\n"); s 100 libavformat/lmlm4.c av_log(s, AV_LOG_ERROR, "packet size %d is invalid\n", packet_size); s 68 libavformat/loasdec.c static int loas_read_header(AVFormatContext *s) s 72 libavformat/loasdec.c st = avformat_new_stream(s, NULL); s 77 libavformat/loasdec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 156 libavformat/lrcdec.c static int lrc_read_header(AVFormatContext *s) s 158 libavformat/lrcdec.c LRCContext *lrc = s->priv_data; s 162 libavformat/lrcdec.c st = avformat_new_stream(s, NULL); s 172 libavformat/lrcdec.c while(!avio_feof(s->pb)) { s 173 libavformat/lrcdec.c int64_t pos = read_line(&line, s->pb); s 186 libavformat/lrcdec.c av_dict_set(&s->metadata, line.str + 1, comma_offset + 1, 0); s 214 libavformat/lrcdec.c ff_subtitles_queue_finalize(s, &lrc->q); s 215 libavformat/lrcdec.c ff_metadata_conv_ctx(s, NULL, ff_lrc_metadata_conv); s 220 libavformat/lrcdec.c static int lrc_read_packet(AVFormatContext *s, AVPacket *pkt) s 222 libavformat/lrcdec.c LRCContext *lrc = s->priv_data; s 226 libavformat/lrcdec.c static int lrc_read_seek(AVFormatContext *s, int stream_index, s 229 libavformat/lrcdec.c LRCContext *lrc = s->priv_data; s 230 libavformat/lrcdec.c return ff_subtitles_queue_seek(&lrc->q, s, stream_index, s 234 libavformat/lrcdec.c static int lrc_read_close(AVFormatContext *s) s 236 libavformat/lrcdec.c LRCContext *lrc = s->priv_data; s 37 libavformat/lrcenc.c static int lrc_write_header(AVFormatContext *s) s 41 libavformat/lrcenc.c if(s->nb_streams != 1 || s 42 libavformat/lrcenc.c s->streams[0]->codecpar->codec_type != AVMEDIA_TYPE_SUBTITLE) { s 43 libavformat/lrcenc.c av_log(s, AV_LOG_ERROR, s 47 libavformat/lrcenc.c if(s->streams[0]->codecpar->codec_id != AV_CODEC_ID_SUBRIP && s 48 libavformat/lrcenc.c s->streams[0]->codecpar->codec_id != AV_CODEC_ID_TEXT) { s 49 libavformat/lrcenc.c av_log(s, AV_LOG_ERROR, "Unsupported subtitle codec: %s\n", s 50 libavformat/lrcenc.c avcodec_get_name(s->streams[0]->codecpar->codec_id)); s 53 libavformat/lrcenc.c avpriv_set_pts_info(s->streams[0], 64, 1, 100); s 55 libavformat/lrcenc.c ff_standardize_creation_time(s); s 56 libavformat/lrcenc.c ff_metadata_conv_ctx(s, ff_lrc_metadata_conv, NULL); s 57 libavformat/lrcenc.c if(!(s->flags & AVFMT_FLAG_BITEXACT)) { // avoid breaking regression tests s 62 libavformat/lrcenc.c av_dict_set(&s->metadata, "ve", AV_STRINGIFY(LIBAVFORMAT_VERSION), 0); s 64 libavformat/lrcenc.c av_dict_set(&s->metadata, "ve", NULL, 0); s 67 libavformat/lrcenc.c (metadata_item = av_dict_get(s->metadata, "", metadata_item, s 79 libavformat/lrcenc.c avio_printf(s->pb, "[%s:%s]\n", s 82 libavformat/lrcenc.c avio_printf(s->pb, "\n"); s 86 libavformat/lrcenc.c static int lrc_write_packet(AVFormatContext *s, AVPacket *pkt) s 118 libavformat/lrcenc.c av_log(s, AV_LOG_WARNING, s 123 libavformat/lrcenc.c avio_printf(s->pb, "[%02"PRId64":%02"PRId64".%02"PRId64"]", s 130 libavformat/lrcenc.c avio_printf(s->pb, "[-%02"PRId64":%02"PRId64".%02"PRId64"]", s 135 libavformat/lrcenc.c avio_printf(s->pb, "%s\n", line); s 37 libavformat/lvfdec.c static int lvf_read_header(AVFormatContext *s) s 43 libavformat/lvfdec.c avio_skip(s->pb, 16); s 44 libavformat/lvfdec.c nb_streams = avio_rl32(s->pb); s 48 libavformat/lvfdec.c avpriv_request_sample(s, "%d streams", nb_streams); s 52 libavformat/lvfdec.c avio_skip(s->pb, 1012); s 54 libavformat/lvfdec.c while (!avio_feof(s->pb)) { s 55 libavformat/lvfdec.c id = avio_rl32(s->pb); s 56 libavformat/lvfdec.c size = avio_rl32(s->pb); s 57 libavformat/lvfdec.c next_offset = avio_tell(s->pb) + size; s 61 libavformat/lvfdec.c st = avformat_new_stream(s, 0); s 66 libavformat/lvfdec.c avio_skip(s->pb, 4); s 67 libavformat/lvfdec.c st->codecpar->width = avio_rl32(s->pb); s 68 libavformat/lvfdec.c st->codecpar->height = avio_rl32(s->pb); s 69 libavformat/lvfdec.c avio_skip(s->pb, 4); s 70 libavformat/lvfdec.c st->codecpar->codec_tag = avio_rl32(s->pb); s 76 libavformat/lvfdec.c st = avformat_new_stream(s, 0); s 81 libavformat/lvfdec.c st->codecpar->codec_tag = avio_rl16(s->pb); s 82 libavformat/lvfdec.c st->codecpar->channels = avio_rl16(s->pb); s 83 libavformat/lvfdec.c st->codecpar->sample_rate = avio_rl16(s->pb); s 84 libavformat/lvfdec.c avio_skip(s->pb, 8); s 85 libavformat/lvfdec.c st->codecpar->bits_per_coded_sample = avio_r8(s->pb); s 91 libavformat/lvfdec.c avio_seek(s->pb, 2048 + 8, SEEK_SET); s 94 libavformat/lvfdec.c avpriv_request_sample(s, "id %d", id); s 98 libavformat/lvfdec.c avio_seek(s->pb, next_offset, SEEK_SET); s 104 libavformat/lvfdec.c static int lvf_read_packet(AVFormatContext *s, AVPacket *pkt) s 110 libavformat/lvfdec.c pos = avio_tell(s->pb); s 111 libavformat/lvfdec.c while (!avio_feof(s->pb)) { s 112 libavformat/lvfdec.c id = avio_rl32(s->pb); s 113 libavformat/lvfdec.c size = avio_rl32(s->pb); s 124 libavformat/lvfdec.c timestamp = avio_rl32(s->pb); s 125 libavformat/lvfdec.c flags = avio_rl32(s->pb); s 126 libavformat/lvfdec.c ret = av_get_packet(s->pb, pkt, size - 8); s 134 libavformat/lvfdec.c ret = avio_skip(s->pb, size); s 86 libavformat/lxfdec.c static int lxf_sync(AVFormatContext *s, uint8_t *header) s 91 libavformat/lxfdec.c if ((ret = avio_read(s->pb, buf, LXF_IDENT_LENGTH)) != LXF_IDENT_LENGTH) s 95 libavformat/lxfdec.c if (avio_feof(s->pb)) s 99 libavformat/lxfdec.c buf[LXF_IDENT_LENGTH-1] = avio_r8(s->pb); s 112 libavformat/lxfdec.c static int get_packet_header(AVFormatContext *s) s 114 libavformat/lxfdec.c LXFDemuxContext *lxf = s->priv_data; s 115 libavformat/lxfdec.c AVIOContext *pb = s->pb; s 123 libavformat/lxfdec.c if ((ret = lxf_sync(s, header)) < 0) s 133 libavformat/lxfdec.c avpriv_request_sample(s, "Format version %"PRIu32, version); s 138 libavformat/lxfdec.c av_log(s, AV_LOG_ERROR, "Invalid header size 0x%"PRIx32"\n", header_size); s 149 libavformat/lxfdec.c av_log(s, AV_LOG_ERROR, "checksum error\n"); s 166 libavformat/lxfdec.c if (s->nb_streams < 2) { s 167 libavformat/lxfdec.c av_log(s, AV_LOG_INFO, "got audio packet, but no audio stream present\n"); s 177 libavformat/lxfdec.c st = s->streams[1]; s 184 libavformat/lxfdec.c avpriv_report_missing_feature(s, "Not tightly packed PCM"); s 194 libavformat/lxfdec.c avpriv_report_missing_feature(s, "PCM not 16-, 20-, 24- or 32-bits"); s 203 libavformat/lxfdec.c avpriv_set_pts_info(s->streams[0], 64, 1001, 30000); s 207 libavformat/lxfdec.c av_log(s, AV_LOG_WARNING, s 210 libavformat/lxfdec.c avpriv_set_pts_info(s->streams[0], 64, 1, 25); s 228 libavformat/lxfdec.c static int lxf_read_header(AVFormatContext *s) s 230 libavformat/lxfdec.c LXFDemuxContext *lxf = s->priv_data; s 231 libavformat/lxfdec.c AVIOContext *pb = s->pb; s 238 libavformat/lxfdec.c if ((ret = get_packet_header(s)) < 0) s 242 libavformat/lxfdec.c av_log(s, AV_LOG_ERROR, "expected %d B size header, got %d\n", s 250 libavformat/lxfdec.c if (!(st = avformat_new_stream(s, NULL))) s 265 libavformat/lxfdec.c av_log(s, AV_LOG_DEBUG, "record: %x = %i-%02i-%02i\n", s 269 libavformat/lxfdec.c av_log(s, AV_LOG_DEBUG, "expire: %x = %i-%02i-%02i\n", s 274 libavformat/lxfdec.c av_log(s, AV_LOG_WARNING, "VBI data not yet supported\n"); s 277 libavformat/lxfdec.c if (!(st = avformat_new_stream(s, NULL))) s 287 libavformat/lxfdec.c avio_skip(s->pb, lxf->extended_size); s 292 libavformat/lxfdec.c static int lxf_read_packet(AVFormatContext *s, AVPacket *pkt) s 294 libavformat/lxfdec.c LXFDemuxContext *lxf = s->priv_data; s 295 libavformat/lxfdec.c AVIOContext *pb = s->pb; s 299 libavformat/lxfdec.c if ((ret = get_packet_header(s)) < 0) s 305 libavformat/lxfdec.c av_log(s, AV_LOG_WARNING, s 310 libavformat/lxfdec.c if (stream == 1 && s->nb_streams < 2) { s 311 libavformat/lxfdec.c av_log(s, AV_LOG_ERROR, "got audio packet without having an audio stream\n"); s 106 libavformat/matroskadec.c const char *s; s 410 libavformat/matroskadec.c { EBML_ID_DOCTYPE, EBML_STR, 0, offsetof(Ebml, doctype), { .s = "(none)" } }, s 559 libavformat/matroskadec.c { MATROSKA_ID_TRACKLANGUAGE, EBML_STR, 0, offsetof(MatroskaTrack, language), { .s = "eng" } }, s 656 libavformat/matroskadec.c { MATROSKA_ID_TAGLANG, EBML_STR, 0, offsetof(MatroskaTag, lang), { .s = "und" } }, s 773 libavformat/matroskadec.c static int matroska_read_close(AVFormatContext *s); s 1103 libavformat/matroskadec.c if (syntax[i].def.s) { s 1105 libavformat/matroskadec.c *dst = av_strdup(syntax[i].def.s); s 1721 libavformat/matroskadec.c static void matroska_convert_tag(AVFormatContext *s, EbmlList *list, s 1733 libavformat/matroskadec.c av_log(s, AV_LOG_WARNING, "Skipping invalid tag with no TagName.\n"); s 1743 libavformat/matroskadec.c matroska_convert_tag(s, &tags[i].sub, metadata, key); s 1750 libavformat/matroskadec.c matroska_convert_tag(s, &tags[i].sub, metadata, key); s 1756 libavformat/matroskadec.c static void matroska_convert_tags(AVFormatContext *s) s 1758 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 1769 libavformat/matroskadec.c matroska_convert_tag(s, &tags[i].tag, s 1775 libavformat/matroskadec.c av_log(s, AV_LOG_WARNING, s 1786 libavformat/matroskadec.c matroska_convert_tag(s, &tags[i].tag, s 1792 libavformat/matroskadec.c av_log(s, AV_LOG_WARNING, s 1803 libavformat/matroskadec.c matroska_convert_tag(s, &tags[i].tag, s 1809 libavformat/matroskadec.c av_log(s, AV_LOG_WARNING, s 1815 libavformat/matroskadec.c matroska_convert_tag(s, &tags[i].tag, &s->metadata, s 1973 libavformat/matroskadec.c static int matroska_parse_flac(AVFormatContext *s, s 1982 libavformat/matroskadec.c av_log(s, AV_LOG_WARNING, "Invalid FLAC private data\n"); s 2008 libavformat/matroskadec.c ff_vorbis_comment(s, &dict, p, block_size, 0); s 2013 libavformat/matroskadec.c av_log(s, AV_LOG_WARNING, s 2290 libavformat/matroskadec.c static int matroska_parse_tracks(AVFormatContext *s) s 2292 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 2429 libavformat/matroskadec.c st = track->stream = avformat_new_stream(s, NULL); s 2460 libavformat/matroskadec.c ret = ff_get_wav_header(s, &b, st->codecpar, track->codec_priv.size, 0); s 2650 libavformat/matroskadec.c ret = matroska_parse_flac(s, track, &extradata_offset); s 2830 libavformat/matroskadec.c static int matroska_read_header(AVFormatContext *s) s 2832 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 2842 libavformat/matroskadec.c matroska->ctx = s; s 2870 libavformat/matroskadec.c av_log(s, AV_LOG_WARNING, "Unknown EBML doctype '%s'\n", ebml.doctype); s 2891 libavformat/matroskadec.c s->internal->data_offset = avio_tell(matroska->ctx->pb) - 4; s 2899 libavformat/matroskadec.c av_dict_set(&s->metadata, "title", matroska->title, 0); s 2900 libavformat/matroskadec.c av_dict_set(&s->metadata, "encoder", matroska->muxingapp, 0); s 2903 libavformat/matroskadec.c matroska_metadata_creation_time(&s->metadata, AV_RB64(matroska->date_utc.data)); s 2905 libavformat/matroskadec.c res = matroska_parse_tracks(s); s 2915 libavformat/matroskadec.c AVStream *st = avformat_new_stream(s, NULL); s 2970 libavformat/matroskadec.c avpriv_new_chapter(s, chapters[i].uid, s 2979 libavformat/matroskadec.c matroska_convert_tags(s); s 2983 libavformat/matroskadec.c matroska_read_close(s); s 3738 libavformat/matroskadec.c static int matroska_read_packet(AVFormatContext *s, AVPacket *pkt) s 3740 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 3745 libavformat/matroskadec.c matroska->resync_pos = avio_tell(s->pb); s 3758 libavformat/matroskadec.c static int matroska_read_seek(AVFormatContext *s, int stream_index, s 3761 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 3763 libavformat/matroskadec.c AVStream *st = s->streams[stream_index]; s 3808 libavformat/matroskadec.c ff_update_cur_dts(s, st, st->index_entries[index].timestamp); s 3822 libavformat/matroskadec.c static int matroska_read_close(AVFormatContext *s) s 3824 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 3849 libavformat/matroskadec.c static CueDesc get_cue_desc(AVFormatContext *s, int64_t ts, int64_t cues_start) { s 3850 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 3853 libavformat/matroskadec.c int nb_index_entries = s->streams[0]->nb_index_entries; s 3854 libavformat/matroskadec.c AVIndexEntry *index_entries = s->streams[0]->index_entries; s 3878 libavformat/matroskadec.c static int webm_clusters_start_with_keyframe(AVFormatContext *s) s 3880 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 3884 libavformat/matroskadec.c if (s->streams[0]->nb_index_entries <= 0) return 0; s 3886 libavformat/matroskadec.c index = av_index_search_timestamp(s->streams[0], 0, 0); s 3888 libavformat/matroskadec.c cluster_pos = s->streams[0]->index_entries[index].pos; s 3889 libavformat/matroskadec.c before_pos = avio_tell(s->pb); s 3894 libavformat/matroskadec.c avio_seek(s->pb, cluster_pos, SEEK_SET); s 3926 libavformat/matroskadec.c double* sec_to_download, AVFormatContext *s, s 3935 libavformat/matroskadec.c CueDesc desc_curr = get_cue_desc(s, time_ns, cues_start); s 3963 libavformat/matroskadec.c desc_curr = get_cue_desc(s, desc_curr.end_time_ns, cues_start); s 3992 libavformat/matroskadec.c desc_curr = get_cue_desc(s, desc_curr.end_time_ns, cues_start); s 4005 libavformat/matroskadec.c static int64_t webm_dash_manifest_compute_bandwidth(AVFormatContext *s, int64_t cues_start) s 4007 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 4008 libavformat/matroskadec.c AVStream *st = s->streams[0]; s 4021 libavformat/matroskadec.c CueDesc desc_beg = get_cue_desc(s, time_ns, cues_start); s 4032 libavformat/matroskadec.c desc_end = get_cue_desc(s, desc_end.end_time_ns, cues_start); s 4075 libavformat/matroskadec.c s, cues_start); s 4084 libavformat/matroskadec.c desc_end = get_cue_desc(s, desc_end.end_time_ns, cues_start); s 4092 libavformat/matroskadec.c static int webm_dash_manifest_cues(AVFormatContext *s, int64_t init_range) s 4094 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 4132 libavformat/matroskadec.c av_dict_set_int(&s->streams[0]->metadata, CUES_START, cues_start, 0); s 4135 libavformat/matroskadec.c av_dict_set_int(&s->streams[0]->metadata, CUES_END, cues_end, 0); s 4140 libavformat/matroskadec.c av_dict_set_int(&s->streams[0]->metadata, INITIALIZATION_RANGE, cues_start - 1, 0); s 4143 libavformat/matroskadec.c bandwidth = webm_dash_manifest_compute_bandwidth(s, cues_start); s 4145 libavformat/matroskadec.c av_dict_set_int(&s->streams[0]->metadata, BANDWIDTH, bandwidth, 0); s 4148 libavformat/matroskadec.c av_dict_set_int(&s->streams[0]->metadata, CLUSTER_KEYFRAME, webm_clusters_start_with_keyframe(s), 0); s 4152 libavformat/matroskadec.c buf = av_malloc_array(s->streams[0]->nb_index_entries, 20); s 4155 libavformat/matroskadec.c for (i = 0; i < s->streams[0]->nb_index_entries; i++) { s 4157 libavformat/matroskadec.c "%" PRId64"%s", s->streams[0]->index_entries[i].timestamp, s 4158 libavformat/matroskadec.c i != s->streams[0]->nb_index_entries - 1 ? "," : ""); s 4159 libavformat/matroskadec.c if (ret <= 0 || (ret == 20 && i == s->streams[0]->nb_index_entries - 1)) { s 4160 libavformat/matroskadec.c av_log(s, AV_LOG_ERROR, "timestamp too long.\n"); s 4166 libavformat/matroskadec.c av_dict_set(&s->streams[0]->metadata, CUE_TIMESTAMPS, s 4172 libavformat/matroskadec.c static int webm_dash_manifest_read_header(AVFormatContext *s) s 4175 libavformat/matroskadec.c int ret = matroska_read_header(s); s 4178 libavformat/matroskadec.c MatroskaDemuxContext *matroska = s->priv_data; s 4180 libavformat/matroskadec.c av_log(s, AV_LOG_ERROR, "Failed to read file headers\n"); s 4183 libavformat/matroskadec.c if (!matroska->tracks.nb_elem || !s->nb_streams) { s 4184 libavformat/matroskadec.c av_log(s, AV_LOG_ERROR, "No track found\n"); s 4195 libavformat/matroskadec.c av_dict_set(&s->streams[0]->metadata, DURATION, s 4200 libavformat/matroskadec.c init_range = avio_tell(s->pb) - 5; s 4201 libavformat/matroskadec.c av_dict_set_int(&s->streams[0]->metadata, INITIALIZATION_RANGE, init_range, 0); s 4205 libavformat/matroskadec.c buf = strrchr(s->url, '/'); s 4206 libavformat/matroskadec.c av_dict_set(&s->streams[0]->metadata, FILENAME, buf ? ++buf : s->url, 0); s 4210 libavformat/matroskadec.c av_dict_set_int(&s->streams[0]->metadata, TRACK_NUMBER, tracks[0].num, 0); s 4214 libavformat/matroskadec.c ret = webm_dash_manifest_cues(s, init_range); s 4216 libavformat/matroskadec.c av_log(s, AV_LOG_ERROR, "Error parsing Cues\n"); s 4223 libavformat/matroskadec.c av_dict_set_int(&s->streams[0]->metadata, BANDWIDTH, s 4228 libavformat/matroskadec.c matroska_read_close(s); s 4232 libavformat/matroskadec.c static int webm_dash_manifest_read_packet(AVFormatContext *s, AVPacket *pkt) s 449 libavformat/matroskaenc.c static void mkv_deinit(AVFormatContext *s) s 451 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 602 libavformat/matroskaenc.c static int put_xiph_codecpriv(AVFormatContext *s, AVIOContext *pb, s 618 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Extradata corrupt.\n"); s 641 libavformat/matroskaenc.c static int put_flac_codecpriv(AVFormatContext *s, AVIOContext *pb, s 654 libavformat/matroskaenc.c const char *vendor = (s->flags & AVFMT_FLAG_BITEXACT) ? s 677 libavformat/matroskaenc.c static int get_aac_sample_rates(AVFormatContext *s, MatroskaMuxContext *mkv, s 684 libavformat/matroskaenc.c ret = avpriv_mpeg4audio_get_config2(&mp4ac, extradata, extradata_size, 1, s); s 690 libavformat/matroskaenc.c if (ret < 0 && (extradata_size || !IS_SEEKABLE(s->pb, mkv))) { s 691 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, s 710 libavformat/matroskaenc.c static int mkv_write_native_codecprivate(AVFormatContext *s, AVIOContext *pb, s 717 libavformat/matroskaenc.c return put_xiph_codecpriv(s, dyn_cp, par); s 719 libavformat/matroskaenc.c return put_flac_codecpriv(s, dyn_cp, par); s 737 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, s 762 libavformat/matroskaenc.c static int mkv_write_codecprivate(AVFormatContext *s, AVIOContext *pb, s 775 libavformat/matroskaenc.c ret = mkv_write_native_codecprivate(s, pb, par, dyn_cp); s 793 libavformat/matroskaenc.c av_log(s, AV_LOG_WARNING, "codec %s is not supported by this format\n", s 800 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "No bmp codec tag found for codec %s\n", s 811 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "No wav codec tag found for codec %s\n", s 818 libavformat/matroskaenc.c ff_put_wav_header(s, dyn_cp, par, FF_PUT_WAV_HEADER_FORCE_WAVEFORMATEX); s 916 libavformat/matroskaenc.c static void mkv_write_video_projection(AVFormatContext *s, AVIOContext *pb, s 932 libavformat/matroskaenc.c av_log(s, AV_LOG_WARNING, "Unknown projection type\n"); s 1022 libavformat/matroskaenc.c static int mkv_write_stereo_mode(AVFormatContext *s, AVIOContext *pb, s 1033 libavformat/matroskaenc.c (tag = av_dict_get( s->metadata, "stereo_mode", NULL, 0))) { s 1102 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, s 1113 libavformat/matroskaenc.c static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, s 1133 libavformat/matroskaenc.c ret = get_aac_sample_rates(s, mkv, par->extradata, par->extradata_size, s 1185 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, s 1206 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Raw RGB is not supported Natively in Matroska, you can use AVI or NUT or\n" s 1239 libavformat/matroskaenc.c s->internal->avoid_negative_ts_use_pts = 0; s 1251 libavformat/matroskaenc.c ret = mkv_write_stereo_mode(s, pb, st, mkv->mode, s 1258 libavformat/matroskaenc.c ((tag = av_dict_get( s->metadata, "alpha_mode", NULL, 0)) && atoi(tag->value)) || s 1268 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Overflow in display width\n"); s 1297 libavformat/matroskaenc.c mkv_write_video_projection(s, pb, st); s 1308 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Initial padding is invalid\n"); s 1350 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Subtitle codec %d is not supported.\n", par->codec_id); s 1360 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Only audio, video, and subtitles are supported for Matroska.\n"); s 1366 libavformat/matroskaenc.c ret = mkv_write_codecprivate(s, pb, par, native_id, qt_id); s 1376 libavformat/matroskaenc.c static int mkv_write_tracks(AVFormatContext *s) s 1378 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 1379 libavformat/matroskaenc.c AVIOContext *pb = s->pb; s 1382 libavformat/matroskaenc.c if (mkv->nb_attachments == s->nb_streams) s 1396 libavformat/matroskaenc.c for (i = s->nb_streams - 1; i >= 0; i--) { s 1397 libavformat/matroskaenc.c AVStream *st = s->streams[i]; s 1418 libavformat/matroskaenc.c for (i = 0; i < s->nb_streams; i++) { s 1419 libavformat/matroskaenc.c AVStream *st = s->streams[i]; s 1424 libavformat/matroskaenc.c ret = mkv_write_track(s, mkv, st, &mkv->tracks[i], s 1539 libavformat/matroskaenc.c static int mkv_write_tags(AVFormatContext *s) s 1541 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 1542 libavformat/matroskaenc.c ebml_master tag, *tagp = IS_SEEKABLE(s->pb, mkv) ? &tag : NULL; s 1547 libavformat/matroskaenc.c ff_metadata_conv_ctx(s, ff_mkv_metadata_conv, NULL); s 1549 libavformat/matroskaenc.c if (mkv_check_tag(s->metadata, 0)) { s 1550 libavformat/matroskaenc.c ret = mkv_write_tag(mkv, s->metadata, &mkv->tags.bc, NULL, 0, 0); s 1555 libavformat/matroskaenc.c for (i = 0; i < s->nb_streams; i++) { s 1556 libavformat/matroskaenc.c const AVStream *st = s->streams[i]; s 1588 libavformat/matroskaenc.c for (i = 0; i < s->nb_streams; i++) { s 1590 libavformat/matroskaenc.c const AVStream *st = s->streams[i]; s 1606 libavformat/matroskaenc.c return end_ebml_master_crc32_tentatively(s->pb, &mkv->tags, mkv, s 1612 libavformat/matroskaenc.c static int mkv_write_chapters(AVFormatContext *s) s 1614 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 1615 libavformat/matroskaenc.c AVIOContext *dyn_cp = NULL, *dyn_tags = NULL, **tags, *pb = s->pb; s 1621 libavformat/matroskaenc.c if (!s->nb_chapters || mkv->wrote_chapters) s 1624 libavformat/matroskaenc.c for (i = 0; i < s->nb_chapters; i++) s 1625 libavformat/matroskaenc.c if (!s->chapters[i]->id) { s 1643 libavformat/matroskaenc.c for (i = 0; i < s->nb_chapters; i++) { s 1645 libavformat/matroskaenc.c const AVChapter *c = s->chapters[i]; s 1650 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, s 1716 libavformat/matroskaenc.c static int mkv_write_attachments(AVFormatContext *s) s 1718 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 1719 libavformat/matroskaenc.c AVIOContext *dyn_cp = NULL, *pb = s->pb; s 1729 libavformat/matroskaenc.c for (i = 0; i < s->nb_streams; i++) { s 1730 libavformat/matroskaenc.c const AVStream *st = s->streams[i]; s 1744 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Attachment stream %d has no filename tag.\n", i); s 1760 libavformat/matroskaenc.c static int64_t get_metadata_duration(AVFormatContext *s) s 1762 libavformat/matroskaenc.c const AVDictionaryEntry *duration = av_dict_get(s->metadata, "DURATION", s 1768 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, "get_metadata_duration found duration in context metadata: %" PRId64 "\n", us); s 1772 libavformat/matroskaenc.c for (unsigned i = 0; i < s->nb_streams; i++) { s 1774 libavformat/matroskaenc.c duration = av_dict_get(s->streams[i]->metadata, "DURATION", NULL, 0); s 1780 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, "get_metadata_duration returned: %" PRId64 "\n", max); s 1784 libavformat/matroskaenc.c static int mkv_write_header(AVFormatContext *s) s 1786 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 1787 libavformat/matroskaenc.c AVIOContext *pb = s->pb; s 1794 libavformat/matroskaenc.c av_dict_get(s->metadata, "stereo_mode", NULL, 0) || s 1795 libavformat/matroskaenc.c av_dict_get(s->metadata, "alpha_mode", NULL, 0)) s 1798 libavformat/matroskaenc.c for (i = 0; i < s->nb_streams; i++) { s 1799 libavformat/matroskaenc.c if (s->streams[i]->codecpar->codec_id == AV_CODEC_ID_OPUS || s 1800 libavformat/matroskaenc.c av_dict_get(s->streams[i]->metadata, "stereo_mode", NULL, 0) || s 1801 libavformat/matroskaenc.c av_dict_get(s->streams[i]->metadata, "alpha_mode", NULL, 0)) s 1810 libavformat/matroskaenc.c put_ebml_string(pb, EBML_ID_DOCTYPE , s->oformat->name); s 1829 libavformat/matroskaenc.c if ((tag = av_dict_get(s->metadata, "title", NULL, 0))) s 1831 libavformat/matroskaenc.c if (!(s->flags & AVFMT_FLAG_BITEXACT)) { s 1833 libavformat/matroskaenc.c if ((tag = av_dict_get(s->metadata, "encoding_tool", NULL, 0))) s 1846 libavformat/matroskaenc.c if (ff_parse_creation_time_metadata(s, &creation_time, 0) > 0) { s 1858 libavformat/matroskaenc.c int64_t metadata_duration = get_metadata_duration(s); s 1860 libavformat/matroskaenc.c if (s->duration > 0) { s 1861 libavformat/matroskaenc.c int64_t scaledDuration = av_rescale(s->duration, 1000, AV_TIME_BASE); s 1863 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, "Write early duration from recording time = %" PRIu64 "\n", scaledDuration); s 1867 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, "Write early duration from metadata = %" PRIu64 "\n", scaledDuration); s 1868 libavformat/matroskaenc.c } else if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 1872 libavformat/matroskaenc.c ret = end_ebml_master_crc32_tentatively(s->pb, &mkv->info, s 1876 libavformat/matroskaenc.c pb = s->pb; s 1878 libavformat/matroskaenc.c ret = mkv_write_tracks(s); s 1882 libavformat/matroskaenc.c ret = mkv_write_chapters(s); s 1887 libavformat/matroskaenc.c ret = mkv_write_attachments(s); s 1894 libavformat/matroskaenc.c ret = mkv_write_tags(s); s 1904 libavformat/matroskaenc.c if (s->metadata_header_padding > 0) { s 1905 libavformat/matroskaenc.c if (s->metadata_header_padding == 1) s 1906 libavformat/matroskaenc.c s->metadata_header_padding++; s 1907 libavformat/matroskaenc.c put_ebml_void(pb, s->metadata_header_padding); s 2003 libavformat/matroskaenc.c static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, s 2006 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 2007 libavformat/matroskaenc.c AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; s 2021 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, s 2043 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Error when reformatting data of " s 2115 libavformat/matroskaenc.c static int mkv_write_vtt_blocks(AVFormatContext *s, AVIOContext *pb, const AVPacket *pkt) s 2117 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 2139 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, s 2162 libavformat/matroskaenc.c static int mkv_end_cluster(AVFormatContext *s) s 2164 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 2168 libavformat/matroskaenc.c for (unsigned i = 0; i < s->nb_streams; i++) s 2172 libavformat/matroskaenc.c ret = end_ebml_master_crc32(s->pb, &mkv->cluster_bc, mkv, s 2177 libavformat/matroskaenc.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_FLUSH_POINT); s 2181 libavformat/matroskaenc.c static int mkv_check_new_extra_data(AVFormatContext *s, const AVPacket *pkt) s 2183 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 2185 libavformat/matroskaenc.c AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; s 2196 libavformat/matroskaenc.c ret = get_aac_sample_rates(s, mkv, side_data, side_data_size, s 2207 libavformat/matroskaenc.c mkv_write_codecprivate(s, mkv->track.bc, par, 1, 0); s 2216 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Error parsing AAC extradata, unable to determine samplerate.\n"); s 2224 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Invalid FLAC STREAMINFO metadata for output stream %d\n", s 2230 libavformat/matroskaenc.c mkv_write_codecprivate(s, mkv->track.bc, par, 1, 0); s 2264 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, "Ignoring new extradata in a packet for stream %d.\n", pkt->stream_index); s 2271 libavformat/matroskaenc.c static int mkv_write_packet_internal(AVFormatContext *s, const AVPacket *pkt) s 2273 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 2275 libavformat/matroskaenc.c AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; s 2284 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Can't write packet with unknown timestamp\n"); s 2292 libavformat/matroskaenc.c ret = mkv_end_cluster(s); s 2295 libavformat/matroskaenc.c av_log(s, AV_LOG_WARNING, "Starting new cluster due to timestamp\n"); s 2303 libavformat/matroskaenc.c mkv->cluster_pos = avio_tell(s->pb); s 2306 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, s 2316 libavformat/matroskaenc.c ret = mkv_write_block(s, pb, MATROSKA_ID_SIMPLEBLOCK, pkt, keyframe); s 2319 libavformat/matroskaenc.c if (keyframe && IS_SEEKABLE(s->pb, mkv) && s 2329 libavformat/matroskaenc.c duration = mkv_write_vtt_blocks(s, pb, pkt); s 2344 libavformat/matroskaenc.c mkv_write_block(s, pb, MATROSKA_ID_BLOCK, pkt, 1); s 2349 libavformat/matroskaenc.c if (IS_SEEKABLE(s->pb, mkv)) { s 2363 libavformat/matroskaenc.c static int mkv_write_packet(AVFormatContext *s, const AVPacket *pkt) s 2365 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 2366 libavformat/matroskaenc.c int codec_type = s->streams[pkt->stream_index]->codecpar->codec_type; s 2373 libavformat/matroskaenc.c ret = mkv_check_new_extra_data(s, pkt); s 2405 libavformat/matroskaenc.c ret = mkv_end_cluster(s); s 2412 libavformat/matroskaenc.c avio_write_marker(s->pb, s 2413 libavformat/matroskaenc.c av_rescale_q(pkt->dts, s->streams[pkt->stream_index]->time_base, AV_TIME_BASE_Q), s 2418 libavformat/matroskaenc.c ret = mkv_write_packet_internal(s, &mkv->cur_audio_pkt); s 2421 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, s 2433 libavformat/matroskaenc.c ret = mkv_write_packet_internal(s, pkt); s 2437 libavformat/matroskaenc.c static int mkv_write_flush_packet(AVFormatContext *s, AVPacket *pkt) s 2439 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 2443 libavformat/matroskaenc.c int ret = mkv_end_cluster(s); s 2446 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, s 2448 libavformat/matroskaenc.c avio_tell(s->pb)); s 2452 libavformat/matroskaenc.c return mkv_write_packet(s, pkt); s 2455 libavformat/matroskaenc.c static int mkv_write_trailer(AVFormatContext *s) s 2457 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 2458 libavformat/matroskaenc.c AVIOContext *pb = s->pb; s 2464 libavformat/matroskaenc.c ret = mkv_write_packet_internal(s, &mkv->cur_audio_pkt); s 2466 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, s 2479 libavformat/matroskaenc.c ret = mkv_write_chapters(s); s 2497 libavformat/matroskaenc.c ret = mkv_assemble_cues(s->streams, cues, &mkv->cues, s 2498 libavformat/matroskaenc.c mkv->tracks, s->nb_streams); s 2509 libavformat/matroskaenc.c av_log(s, AV_LOG_WARNING, s 2557 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, "end duration = %" PRIu64 "\n", mkv->duration); s 2578 libavformat/matroskaenc.c for (i = 0; i < s->nb_streams; ++i) { s 2579 libavformat/matroskaenc.c const AVStream *st = s->streams[i]; s 2586 libavformat/matroskaenc.c av_log(s, AV_LOG_DEBUG, "stream %d end duration = %" PRIu64 "\n", i, s 2656 libavformat/matroskaenc.c static int mkv_init(struct AVFormatContext *s) s 2658 libavformat/matroskaenc.c MatroskaMuxContext *mkv = s->priv_data; s 2663 libavformat/matroskaenc.c for (i = 0; i < s->nb_streams; i++) { s 2664 libavformat/matroskaenc.c if (s->streams[i]->codecpar->codec_id == AV_CODEC_ID_ATRAC3 || s 2665 libavformat/matroskaenc.c s->streams[i]->codecpar->codec_id == AV_CODEC_ID_COOK || s 2666 libavformat/matroskaenc.c s->streams[i]->codecpar->codec_id == AV_CODEC_ID_RA_288 || s 2667 libavformat/matroskaenc.c s->streams[i]->codecpar->codec_id == AV_CODEC_ID_SIPR || s 2668 libavformat/matroskaenc.c s->streams[i]->codecpar->codec_id == AV_CODEC_ID_RV10 || s 2669 libavformat/matroskaenc.c s->streams[i]->codecpar->codec_id == AV_CODEC_ID_RV20) { s 2670 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, s 2672 libavformat/matroskaenc.c avcodec_get_name(s->streams[i]->codecpar->codec_id)); s 2677 libavformat/matroskaenc.c if (s->avoid_negative_ts < 0) { s 2678 libavformat/matroskaenc.c s->avoid_negative_ts = 1; s 2679 libavformat/matroskaenc.c s->internal->avoid_negative_ts_use_pts = 1; s 2682 libavformat/matroskaenc.c if (!strcmp(s->oformat->name, "webm")) { s 2688 libavformat/matroskaenc.c mkv->tracks = av_mallocz_array(s->nb_streams, sizeof(*mkv->tracks)); s 2692 libavformat/matroskaenc.c if (!(s->flags & AVFMT_FLAG_BITEXACT)) { s 2700 libavformat/matroskaenc.c for (i = 0; i < s->nb_streams; i++) { s 2701 libavformat/matroskaenc.c AVStream *st = s->streams[i]; s 2704 libavformat/matroskaenc.c if (s->flags & AVFMT_FLAG_BITEXACT) { s 2715 libavformat/matroskaenc.c av_log(s, AV_LOG_WARNING, "Stream %d will be ignored " s 2718 libavformat/matroskaenc.c av_log(s, AV_LOG_ERROR, "Attachment stream %d has no mimetype " s 2737 libavformat/matroskaenc.c static int mkv_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) s 2740 libavformat/matroskaenc.c AVStream *st = s->streams[pkt->stream_index]; s 36 libavformat/mgsts.c static int read_header(AVFormatContext *s) s 38 libavformat/mgsts.c AVIOContext *pb = s->pb; s 49 libavformat/mgsts.c st = avformat_new_stream(s, 0); s 71 libavformat/mgsts.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 73 libavformat/mgsts.c AVIOContext *pb = s->pb; s 79 libavformat/microdvddec.c static int microdvd_read_header(AVFormatContext *s) s 82 libavformat/microdvddec.c MicroDVDContext *microdvd = s->priv_data; s 83 libavformat/microdvddec.c AVStream *st = avformat_new_stream(s, NULL); s 91 libavformat/microdvddec.c while (!avio_feof(s->pb)) { s 94 libavformat/microdvddec.c int64_t pos = avio_tell(s->pb); s 95 libavformat/microdvddec.c int len = ff_get_line(s->pb, line_buf, sizeof(line_buf)); s 132 libavformat/microdvddec.c av_log(s, AV_LOG_WARNING, "Invalid event \"%s\"" \ s 153 libavformat/microdvddec.c ff_subtitles_queue_finalize(s, µdvd->q); s 170 libavformat/microdvddec.c static int microdvd_read_packet(AVFormatContext *s, AVPacket *pkt) s 172 libavformat/microdvddec.c MicroDVDContext *microdvd = s->priv_data; s 176 libavformat/microdvddec.c static int microdvd_read_seek(AVFormatContext *s, int stream_index, s 179 libavformat/microdvddec.c MicroDVDContext *microdvd = s->priv_data; s 180 libavformat/microdvddec.c return ff_subtitles_queue_seek(µdvd->q, s, stream_index, s 184 libavformat/microdvddec.c static int microdvd_read_close(AVFormatContext *s) s 186 libavformat/microdvddec.c MicroDVDContext *microdvd = s->priv_data; s 26 libavformat/microdvdenc.c static int microdvd_write_header(struct AVFormatContext *s) s 28 libavformat/microdvdenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 29 libavformat/microdvdenc.c AVRational framerate = s->streams[0]->avg_frame_rate; s 31 libavformat/microdvdenc.c if (s->nb_streams != 1 || par->codec_id != AV_CODEC_ID_MICRODVD) { s 32 libavformat/microdvdenc.c av_log(s, AV_LOG_ERROR, "Exactly one MicroDVD stream is needed.\n"); s 37 libavformat/microdvdenc.c avio_write(s->pb, "{DEFAULT}{}", 11); s 38 libavformat/microdvdenc.c avio_write(s->pb, par->extradata, par->extradata_size); s 39 libavformat/microdvdenc.c avio_w8(s->pb, '\n'); s 42 libavformat/microdvdenc.c avpriv_set_pts_info(s->streams[0], 64, framerate.num, framerate.den); s 25 libavformat/mkvtimestamp_v2.c static int write_header(AVFormatContext *s) s 28 libavformat/mkvtimestamp_v2.c avio_write(s->pb, header, strlen(header)); s 29 libavformat/mkvtimestamp_v2.c avpriv_set_pts_info(s->streams[0], 64, 1, 1000); s 33 libavformat/mkvtimestamp_v2.c static int write_packet(AVFormatContext *s, AVPacket *pkt) s 37 libavformat/mkvtimestamp_v2.c av_log(s, AV_LOG_WARNING, "More than one stream unsupported\n"); s 39 libavformat/mkvtimestamp_v2.c avio_write(s->pb, buf, strlen(buf)); s 464 libavformat/mlvdec.c static int read_close(AVFormatContext *s) s 466 libavformat/mlvdec.c MlvContext *mlv = s->priv_data; s 469 libavformat/mlvdec.c ff_format_io_close(s, &mlv->pb[i]); s 85 libavformat/mm.c static int read_header(AVFormatContext *s) s 87 libavformat/mm.c MmDemuxContext *mm = s->priv_data; s 88 libavformat/mm.c AVIOContext *pb = s->pb; s 109 libavformat/mm.c st = avformat_new_stream(s, NULL); s 121 libavformat/mm.c st = avformat_new_stream(s, NULL); s 138 libavformat/mm.c static int read_packet(AVFormatContext *s, s 141 libavformat/mm.c MmDemuxContext *mm = s->priv_data; s 142 libavformat/mm.c AVIOContext *pb = s->pb; s 178 libavformat/mm.c if (s->nb_streams < 2) s 180 libavformat/mm.c if ((ret = av_get_packet(s->pb, pkt, length)) < 0) s 187 libavformat/mm.c av_log(s, AV_LOG_INFO, "unknown chunk type 0x%x\n", type); s 66 libavformat/mmf.c static int mmf_write_header(AVFormatContext *s) s 68 libavformat/mmf.c MMFContext *mmf = s->priv_data; s 69 libavformat/mmf.c AVIOContext *pb = s->pb; s 72 libavformat/mmf.c const char *version = s->flags & AVFMT_FLAG_BITEXACT ? s 76 libavformat/mmf.c rate = mmf_rate_code(s->streams[0]->codecpar->sample_rate); s 78 libavformat/mmf.c av_log(s, AV_LOG_ERROR, "Unsupported sample rate %d, supported are 4000, 8000, 11025, 22050 and 44100\n", s 79 libavformat/mmf.c s->streams[0]->codecpar->sample_rate); s 83 libavformat/mmf.c mmf->stereo = s->streams[0]->codecpar->channels > 1; s 85 libavformat/mmf.c s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { s 86 libavformat/mmf.c av_log(s, AV_LOG_ERROR, "Yamaha SMAF stereo is experimental, " s 124 libavformat/mmf.c avpriv_set_pts_info(s->streams[0], 64, 1, s->streams[0]->codecpar->sample_rate); s 141 libavformat/mmf.c static int mmf_write_trailer(AVFormatContext *s) s 143 libavformat/mmf.c AVIOContext *pb = s->pb; s 144 libavformat/mmf.c MMFContext *mmf = s->priv_data; s 148 libavformat/mmf.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 163 libavformat/mmf.c gatetime = size * 500 / s->streams[0]->codecpar->sample_rate; s 192 libavformat/mmf.c static int mmf_read_header(AVFormatContext *s) s 194 libavformat/mmf.c MMFContext *mmf = s->priv_data; s 196 libavformat/mmf.c AVIOContext *pb = s->pb; s 219 libavformat/mmf.c av_log(s, AV_LOG_ERROR, "MIDI like format found, unsupported\n"); s 223 libavformat/mmf.c av_log(s, AV_LOG_ERROR, "Unsupported SMAF chunk %08x\n", tag); s 232 libavformat/mmf.c av_log(s, AV_LOG_ERROR, "Invalid sample rate\n"); s 252 libavformat/mmf.c av_log(s, AV_LOG_ERROR, "Unexpected SMAF chunk %08x\n", tag); s 257 libavformat/mmf.c st = avformat_new_stream(s, NULL); s 277 libavformat/mmf.c static int mmf_read_packet(AVFormatContext *s, AVPacket *pkt) s 279 libavformat/mmf.c MMFContext *mmf = s->priv_data; s 283 libavformat/mmf.c left = mmf->data_end - avio_tell(s->pb); s 285 libavformat/mmf.c if (avio_feof(s->pb) || size <= 0) s 288 libavformat/mmf.c ret = av_get_packet(s->pb, pkt, size); s 7160 libavformat/mov.c static void mov_read_chapters(AVFormatContext *s) s 7162 libavformat/mov.c MOVContext *mov = s->priv_data; s 7172 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) s 7173 libavformat/mov.c if (s->streams[i]->id == chapter_track) { s 7174 libavformat/mov.c st = s->streams[i]; s 7178 libavformat/mov.c av_log(s, AV_LOG_ERROR, "Referenced QT chapter track not found\n"); s 7192 libavformat/mov.c av_log(s, AV_LOG_ERROR, "Failed to retrieve first frame\n"); s 7215 libavformat/mov.c av_log(s, AV_LOG_WARNING, "ignoring stream duration which is shorter than chapters\n"); s 7220 libavformat/mov.c av_log(s, AV_LOG_ERROR, "Chapter %d not found in file\n", i); s 7252 libavformat/mov.c avpriv_new_chapter(s, i, st->time_base, sample->timestamp, end, title); s 7261 libavformat/mov.c static int parse_timecode_in_framenum_format(AVFormatContext *s, AVStream *st, s 7267 libavformat/mov.c int ret = av_timecode_init(&tc, rate, flags, 0, s); s 7275 libavformat/mov.c static int mov_read_rtmd_track(AVFormatContext *s, AVStream *st) s 7286 libavformat/mov.c avio_skip(s->pb, 13); s 7287 libavformat/mov.c hh = avio_r8(s->pb); s 7288 libavformat/mov.c mm = avio_r8(s->pb); s 7289 libavformat/mov.c ss = avio_r8(s->pb); s 7290 libavformat/mov.c drop = avio_r8(s->pb); s 7291 libavformat/mov.c ff = avio_r8(s->pb); s 7300 libavformat/mov.c static int mov_read_timecode_track(AVFormatContext *s, AVStream *st) s 7311 libavformat/mov.c value = avio_rb32(s->pb); s 7322 libavformat/mov.c parse_timecode_in_framenum_format(s, st, value, flags); s 7340 libavformat/mov.c static int mov_read_close(AVFormatContext *s) s 7342 libavformat/mov.c MOVContext *mov = s->priv_data; s 7345 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 7346 libavformat/mov.c AVStream *st = s->streams[i]; s 7362 libavformat/mov.c ff_format_io_close(s, &sc->pb); s 7422 libavformat/mov.c static int tmcd_is_referenced(AVFormatContext *s, int tmcd_id) s 7426 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 7427 libavformat/mov.c AVStream *st = s->streams[i]; s 7438 libavformat/mov.c static void export_orphan_timecode(AVFormatContext *s) s 7442 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 7443 libavformat/mov.c AVStream *st = s->streams[i]; s 7446 libavformat/mov.c !tmcd_is_referenced(s, i + 1)) { s 7449 libavformat/mov.c av_dict_set(&s->metadata, "timecode", tcr->value, 0); s 7556 libavformat/mov.c static int mov_read_header(AVFormatContext *s) s 7558 libavformat/mov.c MOVContext *mov = s->priv_data; s 7559 libavformat/mov.c AVIOContext *pb = s->pb; s 7565 libavformat/mov.c av_log(s, AV_LOG_ERROR, "Invalid decryption key len %d expected %d\n", s 7570 libavformat/mov.c mov->fc = s; s 7583 libavformat/mov.c av_log(s, AV_LOG_ERROR, "error reading header\n"); s 7588 libavformat/mov.c av_log(s, AV_LOG_ERROR, "moov atom not found\n"); s 7596 libavformat/mov.c mov_read_chapters(s); s 7597 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) s 7598 libavformat/mov.c if (s->streams[i]->codecpar->codec_tag == AV_RL32("tmcd")) { s 7599 libavformat/mov.c mov_read_timecode_track(s, s->streams[i]); s 7600 libavformat/mov.c } else if (s->streams[i]->codecpar->codec_tag == AV_RL32("rtmd")) { s 7601 libavformat/mov.c mov_read_rtmd_track(s, s->streams[i]); s 7606 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 7607 libavformat/mov.c AVStream *st = s->streams[i]; s 7613 libavformat/mov.c for (j = 0; j < s->nb_streams; j++) s 7614 libavformat/mov.c if (s->streams[j]->id == sc->timecode_track) s 7619 libavformat/mov.c tcr = av_dict_get(s->streams[tmcd_st_id]->metadata, "timecode", NULL, 0); s 7624 libavformat/mov.c export_orphan_timecode(s); s 7626 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 7627 libavformat/mov.c AVStream *st = s->streams[i]; s 7650 libavformat/mov.c av_log(s, AV_LOG_VERBOSE, "Forcing full parsing for mp3 stream\n"); s 7656 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 7657 libavformat/mov.c AVStream *st = s->streams[i]; s 7661 libavformat/mov.c av_log(s, AV_LOG_ERROR, "Overflow during bit rate calculation %"PRId64" * 8 * %d\n", s 7672 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 7673 libavformat/mov.c AVStream *st = s->streams[i]; s 7677 libavformat/mov.c av_log(s, AV_LOG_ERROR, "Overflow during bit rate calculation %"PRId64" * 8 * %d\n", s 7688 libavformat/mov.c for (i = 0; i < mov->bitrates_count && i < s->nb_streams; i++) { s 7690 libavformat/mov.c s->streams[i]->codecpar->bit_rate = mov->bitrates[i]; s 7694 libavformat/mov.c ff_rfps_calculate(s); s 7696 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 7697 libavformat/mov.c AVStream *st = s->streams[i]; s 7702 libavformat/mov.c err = ff_replaygain_export(st, s->metadata); s 7755 libavformat/mov.c ff_configure_buffers_for_index(s, AV_TIME_BASE); s 7763 libavformat/mov.c mov_read_close(s); s 7767 libavformat/mov.c static AVIndexEntry *mov_find_next_sample(AVFormatContext *s, AVStream **st) s 7772 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 7773 libavformat/mov.c AVStream *avst = s->streams[i]; s 7778 libavformat/mov.c av_log(s, AV_LOG_TRACE, "stream %d, sample %d, dts %"PRId64"\n", i, msc->current_sample, dts); s 7779 libavformat/mov.c if (!sample || (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL) && current_sample->pos < sample->pos) || s 7780 libavformat/mov.c ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && s 7781 libavformat/mov.c ((msc->pb != s->pb && dts < best_dts) || (msc->pb == s->pb && dts != AV_NOPTS_VALUE && s 7800 libavformat/mov.c static int mov_switch_root(AVFormatContext *s, int64_t target, int index) s 7803 libavformat/mov.c MOVContext *mov = s->priv_data; s 7807 libavformat/mov.c if (avio_seek(s->pb, target, SEEK_SET) != target) { s 7826 libavformat/mov.c ret = mov_read_default(mov, s->pb, (MOVAtom){ AV_RL32("root"), INT64_MAX }); s 7829 libavformat/mov.c if (avio_feof(s->pb)) s 7831 libavformat/mov.c av_log(s, AV_LOG_TRACE, "read fragments, offset 0x%"PRIx64"\n", avio_tell(s->pb)); s 7859 libavformat/mov.c static int mov_read_packet(AVFormatContext *s, AVPacket *pkt) s 7861 libavformat/mov.c MOVContext *mov = s->priv_data; s 7867 libavformat/mov.c mov->fc = s; s 7869 libavformat/mov.c sample = mov_find_next_sample(s, &st); s 7873 libavformat/mov.c if ((ret = mov_switch_root(s, mov->next_root_atom, -1)) < 0) s 8002 libavformat/mov.c static int mov_seek_fragment(AVFormatContext *s, AVStream *st, int64_t timestamp) s 8004 libavformat/mov.c MOVContext *mov = s->priv_data; s 8014 libavformat/mov.c return mov_switch_root(s, -1, index); s 8021 libavformat/mov.c static int mov_seek_stream(AVFormatContext *s, AVStream *st, int64_t timestamp, int flags) s 8031 libavformat/mov.c ret = mov_seek_fragment(s, st, timestamp); s 8036 libavformat/mov.c av_log(s, AV_LOG_TRACE, "stream %d, timestamp %"PRId64", sample %d\n", st->index, timestamp, sample); s 8042 libavformat/mov.c av_log(s, AV_LOG_TRACE, "stream %d, found sample %d\n", st->index, sc->current_sample); s 8075 libavformat/mov.c static int mov_read_seek(AVFormatContext *s, int stream_index, int64_t sample_time, int flags) s 8077 libavformat/mov.c MOVContext *mc = s->priv_data; s 8082 libavformat/mov.c if (stream_index >= s->nb_streams) s 8085 libavformat/mov.c st = s->streams[stream_index]; s 8086 libavformat/mov.c sample = mov_seek_stream(s, st, sample_time, flags); s 8094 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 8096 libavformat/mov.c MOVStreamContext *sc = s->streams[i]->priv_data; s 8097 libavformat/mov.c st = s->streams[i]; s 8103 libavformat/mov.c timestamp = av_rescale_q(seek_timestamp, s->streams[stream_index]->time_base, st->time_base); s 8104 libavformat/mov.c mov_seek_stream(s, st, timestamp, flags); s 8107 libavformat/mov.c for (i = 0; i < s->nb_streams; i++) { s 8109 libavformat/mov.c st = s->streams[i]; s 8115 libavformat/mov.c AVIndexEntry *entry = mov_find_next_sample(s, &st); s 547 libavformat/mov_chan.c int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st, s 560 libavformat/mov_chan.c av_log(s, AV_LOG_TRACE, "chan: layout=%"PRIu32" " s 571 libavformat/mov_chan.c av_log(s, AV_LOG_ERROR, s 65 libavformat/mov_chan.h int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st, s 121 libavformat/movenc.c static int get_moov_size(AVFormatContext *s); s 319 libavformat/movenc.c static int mov_write_ac3_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 327 libavformat/movenc.c av_log(s, AV_LOG_ERROR, s 539 libavformat/movenc.c static int mov_write_eac3_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 547 libavformat/movenc.c av_log(s, AV_LOG_ERROR, s 709 libavformat/movenc.c static int mov_write_ms_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 716 libavformat/movenc.c if ((ret = ff_put_wav_header(s, pb, track->par, 0)) < 0) s 721 libavformat/movenc.c static int mov_write_wfex_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 727 libavformat/movenc.c if ((ret = ff_put_wav_header(s, pb, track->st->codecpar, FF_PUT_WAV_HEADER_FORCE_WAVEFORMATEX)) < 0) s 752 libavformat/movenc.c static int mov_write_dops_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 759 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "invalid extradata size\n"); s 775 libavformat/movenc.c static int mov_write_dmlp_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 783 libavformat/movenc.c av_log(s, AV_LOG_ERROR, s 804 libavformat/movenc.c static int mov_write_chan_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 813 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "not writing 'chan' tag due to " s 832 libavformat/movenc.c static int mov_write_wave_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 858 libavformat/movenc.c mov_write_ac3_tag(s, pb, track); s 860 libavformat/movenc.c mov_write_eac3_tag(s, pb, track); s 866 libavformat/movenc.c mov_write_ms_tag(s, pb, track); s 1052 libavformat/movenc.c static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track) s 1165 libavformat/movenc.c ret = mov_write_wave_tag(s, pb, track); s 1171 libavformat/movenc.c ret = mov_write_ac3_tag(s, pb, track); s 1173 libavformat/movenc.c ret = mov_write_eac3_tag(s, pb, track); s 1177 libavformat/movenc.c ret = mov_write_wfex_tag(s, pb, track); s 1181 libavformat/movenc.c ret = mov_write_dops_tag(s, pb, track); s 1183 libavformat/movenc.c ret = mov_write_dmlp_tag(s, pb, track); s 1191 libavformat/movenc.c && ((ret = mov_write_chan_tag(s, pb, track)) < 0)) { s 1236 libavformat/movenc.c static int mov_write_vpcc_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 1244 libavformat/movenc.c ff_isom_write_vpcc(s, pb, track->par); s 1358 libavformat/movenc.c static int mov_get_dv_codec_tag(AVFormatContext *s, MOVTrack *track) s 1376 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "unsupported height for dv codec\n"); s 1383 libavformat/movenc.c static AVRational find_fps(AVFormatContext *s, AVStream *st) s 1391 libavformat/movenc.c av_log(s, AV_LOG_DEBUG, "timecode: tbc=%d/%d invalid, fallback on %d/%d\n", s 1401 libavformat/movenc.c static int defined_frame_rate(AVFormatContext *s, AVStream *st) s 1403 libavformat/movenc.c AVRational rational_framerate = find_fps(s, st); s 1410 libavformat/movenc.c static int mov_get_mpeg2_xdcam_codec_tag(AVFormatContext *s, MOVTrack *track) s 1415 libavformat/movenc.c int rate = defined_frame_rate(s, st); s 1472 libavformat/movenc.c static int mov_get_h264_codec_tag(AVFormatContext *s, MOVTrack *track) s 1477 libavformat/movenc.c int rate = defined_frame_rate(s, st); s 1552 libavformat/movenc.c static int mov_get_dnxhd_codec_tag(AVFormatContext *s, MOVTrack *track) s 1561 libavformat/movenc.c static int mov_get_rawvideo_codec_tag(AVFormatContext *s, MOVTrack *track) s 1582 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "%s rawvideo cannot be written to mov, output file will be unreadable\n", s 1587 libavformat/movenc.c static unsigned int mov_get_codec_tag(AVFormatContext *s, MOVTrack *track) s 1591 libavformat/movenc.c if (!tag || (s->strict_std_compliance >= FF_COMPLIANCE_NORMAL && s 1600 libavformat/movenc.c tag = mov_get_dv_codec_tag(s, track); s 1602 libavformat/movenc.c tag = mov_get_rawvideo_codec_tag(s, track); s 1604 libavformat/movenc.c tag = mov_get_mpeg2_xdcam_codec_tag(s, track); s 1606 libavformat/movenc.c tag = mov_get_h264_codec_tag(s, track); s 1608 libavformat/movenc.c tag = mov_get_dnxhd_codec_tag(s, track); s 1614 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Using MS style video codec tag, " s 1623 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Using MS style audio codec tag, " s 1661 libavformat/movenc.c static unsigned int mov_find_codec_tag(AVFormatContext *s, MOVTrack *track) s 1667 libavformat/movenc.c if (!av_match_ext(s->url, "m4a") && s 1668 libavformat/movenc.c !av_match_ext(s->url, "m4v") && s 1669 libavformat/movenc.c !av_match_ext(s->url, "m4b")) s 1670 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Warning, extension is not .m4a nor .m4v " s 1674 libavformat/movenc.c return mov_get_codec_tag(s, track); s 1676 libavformat/movenc.c return validate_codec_tag(s->oformat->codec_tag, track->par->codec_tag, s 1730 libavformat/movenc.c static int mov_write_st3d_tag(AVFormatContext *s, AVIOContext *pb, AVStereo3D *stereo_3d) s 1735 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Unsupported stereo_3d flags %x. st3d not written.\n", stereo_3d->flags); s 1750 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Unsupported stereo_3d type %s. st3d not written.\n", av_stereo3d_type_name(stereo_3d->type)); s 1760 libavformat/movenc.c static int mov_write_sv3d_tag(AVFormatContext *s, AVIOContext *pb, AVSphericalMapping *spherical_mapping) s 1763 libavformat/movenc.c const char* metadata_source = s->flags & AVFMT_FLAG_BITEXACT ? "Lavf" : LIBAVFORMAT_IDENT; s 1768 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Unsupported projection %d. sv3d not written.\n", spherical_mapping->projection); s 1818 libavformat/movenc.c static int mov_write_dvcc_dvvc_tag(AVFormatContext *s, AVIOContext *pb, AVDOVIDecoderConfigurationRecord *dovi) s 1836 libavformat/movenc.c av_log(s, AV_LOG_DEBUG, "DOVI in %s box, version: %d.%d, profile: %d, level: %d, " s 1876 libavformat/movenc.c static int mov_write_gama_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track, double gamma) s 1882 libavformat/movenc.c av_log(s, AV_LOG_DEBUG, "gamma value %g\n", gamma); s 1886 libavformat/movenc.c av_log(s, AV_LOG_DEBUG, "writing gama value %"PRId32"\n", gama); s 1894 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "gamma value unknown, unable to write gama atom\n"); s 2028 libavformat/movenc.c static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track) s 2163 libavformat/movenc.c mov_write_gama_tag(s, pb, track, mov->gamma); s 2185 libavformat/movenc.c mov_write_st3d_tag(s, pb, stereo_3d); s 2189 libavformat/movenc.c mov_write_dvcc_dvvc_tag(s, pb, dovi); s 2319 libavformat/movenc.c static int mov_write_stsd_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track) s 2328 libavformat/movenc.c ret = mov_write_video_tag(s, pb, mov, track); s 2330 libavformat/movenc.c ret = mov_write_audio_tag(s, pb, mov, track); s 2346 libavformat/movenc.c static int mov_write_ctts_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 2348 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 2542 libavformat/movenc.c static int mov_write_stbl_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track) s 2549 libavformat/movenc.c if ((ret = mov_write_stsd_tag(s, pb, mov, track)) < 0) s 2565 libavformat/movenc.c if ((ret = mov_write_ctts_tag(s, pb, track)) < 0) s 2696 libavformat/movenc.c static int mov_write_hdlr_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) s 2698 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 2738 libavformat/movenc.c av_log(s, AV_LOG_WARNING, s 2787 libavformat/movenc.c static int mov_write_minf_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContext *mov, MOVTrack *track) s 2815 libavformat/movenc.c mov_write_hdlr_tag(s, pb, NULL); s 2817 libavformat/movenc.c if ((ret = mov_write_stbl_tag(s, pb, mov, track)) < 0) s 2879 libavformat/movenc.c static int mov_write_mdia_tag(AVFormatContext *s, AVIOContext *pb, s 2888 libavformat/movenc.c mov_write_hdlr_tag(s, pb, track); s 2889 libavformat/movenc.c if ((ret = mov_write_minf_tag(s, pb, mov, track)) < 0) s 3237 libavformat/movenc.c static int mov_write_trak_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContext *mov, s 3267 libavformat/movenc.c if ((ret = mov_write_mdia_tag(s, pb, mov, track)) < 0) s 3405 libavformat/movenc.c AVFormatContext *s) s 3454 libavformat/movenc.c static AVDictionaryEntry *get_metadata_lang(AVFormatContext *s, s 3463 libavformat/movenc.c if (!(t = av_dict_get(s->metadata, tag, NULL, 0))) s 3468 libavformat/movenc.c while ((t2 = av_dict_get(s->metadata, tag2, t2, AV_DICT_IGNORE_SUFFIX))) { s 3479 libavformat/movenc.c static int mov_write_string_metadata(AVFormatContext *s, AVIOContext *pb, s 3484 libavformat/movenc.c AVDictionaryEntry *t = get_metadata_lang(s, tag, &lang); s 3491 libavformat/movenc.c static int mov_write_tmpo_tag(AVIOContext *pb, AVFormatContext *s) s 3493 libavformat/movenc.c AVDictionaryEntry *t = av_dict_get(s->metadata, "tmpo", NULL, 0); s 3509 libavformat/movenc.c static int mov_write_loci_tag(AVFormatContext *s, AVIOContext *pb) s 3515 libavformat/movenc.c AVDictionaryEntry *t = get_metadata_lang(s, "location", &lang); s 3525 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "malformed location metadata\n"); s 3531 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "malformed location metadata\n"); s 3561 libavformat/movenc.c AVFormatContext *s, int disc) s 3563 libavformat/movenc.c AVDictionaryEntry *t = av_dict_get(s->metadata, s 3587 libavformat/movenc.c static int mov_write_int8_metadata(AVFormatContext *s, AVIOContext *pb, s 3598 libavformat/movenc.c if (!(t = av_dict_get(s->metadata, tag, NULL, 0))) s 3614 libavformat/movenc.c static int mov_write_covr(AVIOContext *pb, AVFormatContext *s) s 3616 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 3620 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 3643 libavformat/movenc.c AVFormatContext *s) s 3648 libavformat/movenc.c mov_write_string_metadata(s, pb, "\251nam", "title" , 1); s 3649 libavformat/movenc.c mov_write_string_metadata(s, pb, "\251ART", "artist" , 1); s 3650 libavformat/movenc.c mov_write_string_metadata(s, pb, "aART", "album_artist", 1); s 3651 libavformat/movenc.c mov_write_string_metadata(s, pb, "\251wrt", "composer" , 1); s 3652 libavformat/movenc.c mov_write_string_metadata(s, pb, "\251alb", "album" , 1); s 3653 libavformat/movenc.c mov_write_string_metadata(s, pb, "\251day", "date" , 1); s 3654 libavformat/movenc.c if (!mov_write_string_metadata(s, pb, "\251too", "encoding_tool", 1)) { s 3655 libavformat/movenc.c if (!(s->flags & AVFMT_FLAG_BITEXACT)) s 3658 libavformat/movenc.c mov_write_string_metadata(s, pb, "\251cmt", "comment" , 1); s 3659 libavformat/movenc.c mov_write_string_metadata(s, pb, "\251gen", "genre" , 1); s 3660 libavformat/movenc.c mov_write_string_metadata(s, pb, "cprt", "copyright", 1); s 3661 libavformat/movenc.c mov_write_string_metadata(s, pb, "\251grp", "grouping" , 1); s 3662 libavformat/movenc.c mov_write_string_metadata(s, pb, "\251lyr", "lyrics" , 1); s 3663 libavformat/movenc.c mov_write_string_metadata(s, pb, "desc", "description",1); s 3664 libavformat/movenc.c mov_write_string_metadata(s, pb, "ldes", "synopsis" , 1); s 3665 libavformat/movenc.c mov_write_string_metadata(s, pb, "tvsh", "show" , 1); s 3666 libavformat/movenc.c mov_write_string_metadata(s, pb, "tven", "episode_id",1); s 3667 libavformat/movenc.c mov_write_string_metadata(s, pb, "tvnn", "network" , 1); s 3668 libavformat/movenc.c mov_write_string_metadata(s, pb, "keyw", "keywords" , 1); s 3669 libavformat/movenc.c mov_write_int8_metadata (s, pb, "tves", "episode_sort",4); s 3670 libavformat/movenc.c mov_write_int8_metadata (s, pb, "tvsn", "season_number",4); s 3671 libavformat/movenc.c mov_write_int8_metadata (s, pb, "stik", "media_type",1); s 3672 libavformat/movenc.c mov_write_int8_metadata (s, pb, "hdvd", "hd_video", 1); s 3673 libavformat/movenc.c mov_write_int8_metadata (s, pb, "pgap", "gapless_playback",1); s 3674 libavformat/movenc.c mov_write_int8_metadata (s, pb, "cpil", "compilation", 1); s 3675 libavformat/movenc.c mov_write_covr(pb, s); s 3676 libavformat/movenc.c mov_write_trkn_tag(pb, mov, s, 0); // track number s 3677 libavformat/movenc.c mov_write_trkn_tag(pb, mov, s, 1); // disc number s 3678 libavformat/movenc.c mov_write_tmpo_tag(pb, s); s 3683 libavformat/movenc.c AVFormatContext *s) s 3698 libavformat/movenc.c AVFormatContext *s) s 3711 libavformat/movenc.c while (t = av_dict_get(s->metadata, "", t, AV_DICT_IGNORE_SUFFIX)) { s 3726 libavformat/movenc.c AVFormatContext *s) s 3735 libavformat/movenc.c while (t = av_dict_get(s->metadata, "", t, AV_DICT_IGNORE_SUFFIX)) { s 3748 libavformat/movenc.c AVFormatContext *s) s 3756 libavformat/movenc.c mov_write_mdta_hdlr_tag(pb, mov, s); s 3757 libavformat/movenc.c mov_write_mdta_keys_tag(pb, mov, s); s 3758 libavformat/movenc.c mov_write_mdta_ilst_tag(pb, mov, s); s 3762 libavformat/movenc.c mov_write_itunes_hdlr_tag(pb, mov, s); s 3763 libavformat/movenc.c mov_write_ilst_tag(pb, mov, s); s 3769 libavformat/movenc.c static int mov_write_raw_metadata_tag(AVFormatContext *s, AVIOContext *pb, s 3775 libavformat/movenc.c if (!(t = av_dict_get(s->metadata, key, NULL, 0))) s 3807 libavformat/movenc.c static int mov_write_3gp_udta_tag(AVIOContext *pb, AVFormatContext *s, s 3811 libavformat/movenc.c AVDictionaryEntry *t = av_dict_get(s->metadata, str, NULL, 0); s 3823 libavformat/movenc.c (t = av_dict_get(s->metadata, "track", NULL, 0))) s 3829 libavformat/movenc.c static int mov_write_chpl_tag(AVIOContext *pb, AVFormatContext *s) s 3832 libavformat/movenc.c int i, nb_chapters = FFMIN(s->nb_chapters, 255); s 3841 libavformat/movenc.c AVChapter *c = s->chapters[i]; s 3856 libavformat/movenc.c AVFormatContext *s) s 3867 libavformat/movenc.c mov_write_3gp_udta_tag(pb_buf, s, "perf", "artist"); s 3868 libavformat/movenc.c mov_write_3gp_udta_tag(pb_buf, s, "titl", "title"); s 3869 libavformat/movenc.c mov_write_3gp_udta_tag(pb_buf, s, "auth", "author"); s 3870 libavformat/movenc.c mov_write_3gp_udta_tag(pb_buf, s, "gnre", "genre"); s 3871 libavformat/movenc.c mov_write_3gp_udta_tag(pb_buf, s, "dscp", "comment"); s 3872 libavformat/movenc.c mov_write_3gp_udta_tag(pb_buf, s, "albm", "album"); s 3873 libavformat/movenc.c mov_write_3gp_udta_tag(pb_buf, s, "cprt", "copyright"); s 3874 libavformat/movenc.c mov_write_3gp_udta_tag(pb_buf, s, "yrrc", "date"); s 3875 libavformat/movenc.c mov_write_loci_tag(s, pb_buf); s 3877 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251ART", "artist", 0); s 3878 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251nam", "title", 0); s 3879 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251aut", "author", 0); s 3880 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251alb", "album", 0); s 3881 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251day", "date", 0); s 3882 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251swr", "encoder", 0); s 3884 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251des", "comment", 0); s 3886 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251cmt", "comment", 0); s 3887 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251gen", "genre", 0); s 3888 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251cpy", "copyright", 0); s 3889 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251mak", "make", 0); s 3890 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251mod", "model", 0); s 3891 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251xyz", "location", 0); s 3892 libavformat/movenc.c mov_write_string_metadata(s, pb_buf, "\251key", "keywords", 0); s 3893 libavformat/movenc.c mov_write_raw_metadata_tag(s, pb_buf, "XMP_", "xmp"); s 3896 libavformat/movenc.c mov_write_meta_tag(pb_buf, mov, s); s 3897 libavformat/movenc.c mov_write_loci_tag(s, pb_buf); s 3900 libavformat/movenc.c if (s->nb_chapters && !(mov->flags & FF_MOV_FLAG_DISABLE_CHPL)) s 3901 libavformat/movenc.c mov_write_chpl_tag(pb_buf, s); s 3926 libavformat/movenc.c static int mov_write_uuidusmt_tag(AVIOContext *pb, AVFormatContext *s) s 3928 libavformat/movenc.c AVDictionaryEntry *title = av_dict_get(s->metadata, "title", NULL, 0); s 3952 libavformat/movenc.c if (!(s->flags & AVFMT_FLAG_BITEXACT)) s 3999 libavformat/movenc.c static int mov_setup_track_ids(MOVMuxContext *mov, AVFormatContext *s) s 4008 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 4009 libavformat/movenc.c if (s->streams[i]->id > next_generated_track_id) s 4010 libavformat/movenc.c next_generated_track_id = s->streams[i]->id; s 4017 libavformat/movenc.c mov->tracks[i].track_id = i >= s->nb_streams ? ++next_generated_track_id : s->streams[i]->id; s 4034 libavformat/movenc.c AVFormatContext *s) s 4041 libavformat/movenc.c mov_setup_track_ids(mov, s); s 4054 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 4093 libavformat/movenc.c int ret = mov_write_trak_tag(s, pb, mov, &(mov->tracks[i]), i < s->nb_streams ? s->streams[i] : NULL); s 4102 libavformat/movenc.c mov_write_uuidusmt_tag(pb, s); s 4104 libavformat/movenc.c mov_write_udta_tag(pb, mov, s); s 4128 libavformat/movenc.c static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormatContext *s) s 4155 libavformat/movenc.c mov_setup_track_ids(mov, s); s 4836 libavformat/movenc.c static void mov_write_ftyp_tag_internal(AVIOContext *pb, AVFormatContext *s, s 4839 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 4874 libavformat/movenc.c static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s) s 4876 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 4881 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 4882 libavformat/movenc.c AVStream *st = s->streams[i]; s 4895 libavformat/movenc.c mov_write_ftyp_tag_internal(pb, s, has_h264, has_video, 1); s 4897 libavformat/movenc.c mov_write_ftyp_tag_internal(pb, s, has_h264, has_video, 0); s 4940 libavformat/movenc.c static int mov_write_uuidprof_tag(AVIOContext *pb, AVFormatContext *s) s 4942 libavformat/movenc.c AVStream *video_st = s->streams[0]; s 4943 libavformat/movenc.c AVCodecParameters *video_par = s->streams[0]->codecpar; s 4944 libavformat/movenc.c AVCodecParameters *audio_par = s->streams[1]->codecpar; s 4953 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "Frame rate %f outside supported range\n", frame_rate / (double)0x10000); s 5011 libavformat/movenc.c static int mov_write_identification(AVIOContext *pb, AVFormatContext *s) s 5013 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 5016 libavformat/movenc.c mov_write_ftyp_tag(pb,s); s 5019 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 5020 libavformat/movenc.c AVStream *st = s->streams[i]; s 5032 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "PSP mode need one video and one audio stream\n"); s 5035 libavformat/movenc.c return mov_write_uuidprof_tag(pb, s); s 5140 libavformat/movenc.c static int mov_flush_fragment_interleaving(AVFormatContext *s, MOVTrack *track) s 5142 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 5165 libavformat/movenc.c static int mov_flush_fragment(AVFormatContext *s, int force) s 5167 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 5181 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 5185 libavformat/movenc.c if (!ff_interleaved_peek(s, i, &pkt, 1)) { s 5216 libavformat/movenc.c av_log(s, AV_LOG_WARNING, s 5225 libavformat/movenc.c int64_t pos = avio_tell(s->pb); s 5236 libavformat/movenc.c moov_size = get_moov_size(s); s 5240 libavformat/movenc.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_HEADER); s 5242 libavformat/movenc.c mov_write_identification(s->pb, s); s 5243 libavformat/movenc.c if ((ret = mov_write_moov_tag(s->pb, mov, s)) < 0) s 5248 libavformat/movenc.c mov->reserved_header_pos = avio_tell(s->pb); s 5249 libavformat/movenc.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_FLUSH_POINT); s 5255 libavformat/movenc.c avio_wb32(s->pb, buf_size + 8); s 5256 libavformat/movenc.c ffio_wfourcc(s->pb, "mdat"); s 5257 libavformat/movenc.c avio_write(s->pb, buf, buf_size); s 5261 libavformat/movenc.c mov->reserved_header_pos = avio_tell(s->pb); s 5273 libavformat/movenc.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_FLUSH_POINT); s 5281 libavformat/movenc.c if ((ret = mov_flush_fragment_interleaving(s, track)) < 0) s 5315 libavformat/movenc.c avio_write_marker(s->pb, s 5338 libavformat/movenc.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_FLUSH_POINT); s 5340 libavformat/movenc.c mov_write_moof_tag(s->pb, mov, moof_tracks, mdat_size); s 5343 libavformat/movenc.c avio_wb32(s->pb, mdat_size + 8); s 5344 libavformat/movenc.c ffio_wfourcc(s->pb, "mdat"); s 5364 libavformat/movenc.c avio_write(s->pb, buf, buf_size); s 5370 libavformat/movenc.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_FLUSH_POINT); s 5374 libavformat/movenc.c static int mov_auto_flush_fragment(AVFormatContext *s, int force) s 5376 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 5378 libavformat/movenc.c int ret = mov_flush_fragment(s, force); s 5384 libavformat/movenc.c ret = mov_flush_fragment(s, force); s 5388 libavformat/movenc.c static int check_pkt(AVFormatContext *s, AVPacket *pkt) s 5390 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 5411 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "Application provided duration: %"PRId64" / timestamp: %"PRId64" is out of range for mov/mp4 format\n", s 5420 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "Application provided duration: %"PRId64" is invalid\n", pkt->duration); s 5426 libavformat/movenc.c int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) s 5428 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 5429 libavformat/movenc.c AVIOContext *pb = s->pb; s 5438 libavformat/movenc.c ret = check_pkt(s, pkt); s 5447 libavformat/movenc.c if ((ret = mov_flush_fragment_interleaving(s, trk)) < 0) s 5477 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "fatal error, input is not a single packet, implement a AVParser for it\n"); s 5489 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "fatal error, input packet contains no samples\n"); s 5526 libavformat/movenc.c if (!s->streams[pkt->stream_index]->nb_frames) { s 5527 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "Malformed AAC bitstream detected: " s 5532 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "aac bitstream error\n"); s 5589 libavformat/movenc.c ret = ff_mov_cenc_avc_write_nal_units(s, &trk->cenc, nal_size_length, pb, pkt->data, size); s 5646 libavformat/movenc.c s->avoid_negative_ts == AVFMT_AVOID_NEG_TS_MAKE_ZERO) { s 5671 libavformat/movenc.c av_log(s, AV_LOG_WARNING, s 5681 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "pts has no value\n"); s 5730 libavformat/movenc.c ff_mov_add_hinted_packet(s, pkt, trk->hint_track, trk->entry, s 5742 libavformat/movenc.c static int mov_write_single_packet(AVFormatContext *s, AVPacket *pkt) s 5744 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 5750 libavformat/movenc.c int ret = check_pkt(s, pkt); s 5756 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) s 5798 libavformat/movenc.c if (trk->entry && pkt->stream_index < s->nb_streams) s 5800 libavformat/movenc.c s->streams[pkt->stream_index]->time_base, s 5820 libavformat/movenc.c mov_auto_flush_fragment(s, 0); s 5824 libavformat/movenc.c return ff_mov_write_packet(s, pkt); s 5827 libavformat/movenc.c static int mov_write_subtitle_end_packet(AVFormatContext *s, s 5842 libavformat/movenc.c ret = mov_write_single_packet(s, &end); s 5848 libavformat/movenc.c static int mov_write_packet(AVFormatContext *s, AVPacket *pkt) s 5850 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 5854 libavformat/movenc.c mov_flush_fragment(s, 1); s 5865 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Got more than one picture in stream %d," s 5878 libavformat/movenc.c return mov_write_single_packet(s, pkt); /* Passthrough. */ s 5906 libavformat/movenc.c ret = mov_write_subtitle_end_packet(s, i, trk->track_duration); s 5918 libavformat/movenc.c reshuffle_ret = ff_reshuffle_raw_rgb(s, &pkt, trk->par, expected_stride); s 5924 libavformat/movenc.c ret = ff_get_packet_palette(s, opkt, reshuffle_ret, trk->palette); s 5936 libavformat/movenc.c ret = mov_write_single_packet(s, pkt); s 5944 libavformat/movenc.c return mov_write_single_packet(s, pkt); s 5950 libavformat/movenc.c static int mov_create_chapter_track(AVFormatContext *s, int tracknum) s 5954 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6018 libavformat/movenc.c for (i = 0; i < s->nb_chapters; i++) { s 6019 libavformat/movenc.c AVChapter *c = s->chapters[i]; s 6039 libavformat/movenc.c ff_mov_write_packet(s, &pkt); s 6048 libavformat/movenc.c static int mov_check_timecode_track(AVFormatContext *s, AVTimecode *tc, int src_index, const char *tcstr) s 6053 libavformat/movenc.c ret = av_timecode_init_from_string(tc, find_fps(s, s->streams[src_index]), tcstr, s); s 6057 libavformat/movenc.c static int mov_create_timecode_track(AVFormatContext *s, int index, int src_index, AVTimecode tc) s 6060 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6062 libavformat/movenc.c AVStream *src_st = s->streams[src_index]; s 6064 libavformat/movenc.c AVRational rate = find_fps(s, src_st); s 6090 libavformat/movenc.c ret = ff_mov_write_packet(s, &pkt); s 6106 libavformat/movenc.c static void enable_tracks(AVFormatContext *s) s 6108 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6118 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 6119 libavformat/movenc.c AVStream *st = s->streams[i]; s 6148 libavformat/movenc.c static void mov_free(AVFormatContext *s) s 6150 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6248 libavformat/movenc.c static int mov_init(AVFormatContext *s) s 6250 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6251 libavformat/movenc.c AVDictionaryEntry *global_tcr = av_dict_get(s->metadata, "timecode", NULL, 0); s 6254 libavformat/movenc.c mov->fc = s; s 6259 libavformat/movenc.c if (s->oformat) { s 6260 libavformat/movenc.c if (!strcmp("3gp", s->oformat->name)) mov->mode = MODE_3GP; s 6261 libavformat/movenc.c else if (!strcmp("3g2", s->oformat->name)) mov->mode = MODE_3GP|MODE_3G2; s 6262 libavformat/movenc.c else if (!strcmp("mov", s->oformat->name)) mov->mode = MODE_MOV; s 6263 libavformat/movenc.c else if (!strcmp("psp", s->oformat->name)) mov->mode = MODE_PSP; s 6264 libavformat/movenc.c else if (!strcmp("ipod",s->oformat->name)) mov->mode = MODE_IPOD; s 6265 libavformat/movenc.c else if (!strcmp("ismv",s->oformat->name)) mov->mode = MODE_ISM; s 6266 libavformat/movenc.c else if (!strcmp("f4v", s->oformat->name)) mov->mode = MODE_F4V; s 6292 libavformat/movenc.c if (mov->flags & FF_MOV_FLAG_EMPTY_MOOV && s->flags & AVFMT_FLAG_AUTO_BSF) { s 6293 libavformat/movenc.c av_log(s, AV_LOG_VERBOSE, "Empty MOOV enabled; disabling automatic bitstream filtering\n"); s 6294 libavformat/movenc.c s->flags &= ~AVFMT_FLAG_AUTO_BSF; s 6298 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Global SIDX enabled; Ignoring skip_sidx option\n"); s 6313 libavformat/movenc.c if (s->avoid_negative_ts == AVFMT_AVOID_NEG_TS_AUTO || s 6314 libavformat/movenc.c s->avoid_negative_ts == AVFMT_AVOID_NEG_TS_MAKE_ZERO) s 6324 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "No meaningful edit list will be written when using empty_moov without delay_moov\n"); s 6327 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Edit list enabled; Assuming writing CMAF Track File\n"); s 6330 libavformat/movenc.c if (!mov->use_editlist && s->avoid_negative_ts == AVFMT_AVOID_NEG_TS_AUTO && s 6332 libavformat/movenc.c s->avoid_negative_ts = AVFMT_AVOID_NEG_TS_MAKE_ZERO; s 6343 libavformat/movenc.c av_log(s, AV_LOG_ERROR, s 6351 libavformat/movenc.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL) && s 6353 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "muxer does not support non seekable output\n"); s 6357 libavformat/movenc.c mov->nb_streams = s->nb_streams; s 6358 libavformat/movenc.c if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters) s 6362 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) s 6363 libavformat/movenc.c if (rtp_hinting_needed(s->streams[i])) s 6370 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 6371 libavformat/movenc.c AVStream *st = s->streams[i]; s 6376 libavformat/movenc.c ret = mov_check_timecode_track(s, &tc, i, t->value); s 6384 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 6385 libavformat/movenc.c AVStream *st = s->streams[i]; s 6387 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "You requested a copy of the original timecode track " s 6408 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "Invalid encryption key len %d expected %d\n", s 6414 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "Invalid encryption kid len %d expected %d\n", s 6419 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "unsupported encryption scheme %s\n", s 6425 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 6426 libavformat/movenc.c AVStream *st= s->streams[i]; s 6436 libavformat/movenc.c track->tag = mov_find_codec_tag(s, track); s 6438 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "Could not find tag for codec %s in stream #%d, " s 6455 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "D-10/IMX must use 720x608 or 720x512 video resolution\n"); s 6463 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "Warning: some tools, like mp4split, assume a timescale of 10000000 for ISMV.\n"); s 6470 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "Resolution %dx%d too large for mov/mp4\n", st->codecpar->width, st->codecpar->height); s 6474 libavformat/movenc.c av_log(s, AV_LOG_WARNING, s 6495 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "%s only supported in MP4.\n", avcodec_get_name(track->par->codec_id)); s 6501 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "VP8 muxing is currently not supported.\n"); s 6507 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "track %d: codec frame size is not set\n", i); s 6513 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "track %d: codec block align is not set for adpcm\n", i); s 6528 libavformat/movenc.c if (s->strict_std_compliance >= FF_COMPLIANCE_NORMAL) { s 6529 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "track %d: muxing mp3 at %dhz is not standard, to mux anyway set strict to -1\n", s 6533 libavformat/movenc.c av_log(s, AV_LOG_WARNING, "track %d: muxing mp3 at %dhz is not standard in MP4\n", s 6541 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "%s only supported in MP4.\n", avcodec_get_name(track->par->codec_id)); s 6545 libavformat/movenc.c s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { s 6546 libavformat/movenc.c av_log(s, AV_LOG_ERROR, s 6575 libavformat/movenc.c track->par->codec_id == AV_CODEC_ID_H264, s->flags & AVFMT_FLAG_BITEXACT); s 6581 libavformat/movenc.c enable_tracks(s); s 6585 libavformat/movenc.c static int mov_write_header(AVFormatContext *s) s 6587 libavformat/movenc.c AVIOContext *pb = s->pb; s 6588 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6589 libavformat/movenc.c AVDictionaryEntry *t, *global_tcr = av_dict_get(s->metadata, "timecode", NULL, 0); s 6590 libavformat/movenc.c int i, ret, hint_track = 0, tmcd_track = 0, nb_tracks = s->nb_streams; s 6592 libavformat/movenc.c if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters) s 6597 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) s 6598 libavformat/movenc.c if (rtp_hinting_needed(s->streams[i])) s 6605 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 6607 libavformat/movenc.c AVStream *st= s->streams[i]; s 6629 libavformat/movenc.c for (j = 0; j < s->nb_streams; j++) { s 6630 libavformat/movenc.c AVStream *stj= s->streams[j]; s 6646 libavformat/movenc.c if ((ret = mov_write_identification(pb, s)) < 0) s 6669 libavformat/movenc.c ff_parse_creation_time_metadata(s, &mov->time, 1); s 6674 libavformat/movenc.c if ((ret = mov_create_chapter_track(s, mov->chapter_track)) < 0) s 6678 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 6679 libavformat/movenc.c if (rtp_hinting_needed(s->streams[i])) { s 6680 libavformat/movenc.c if ((ret = ff_mov_init_hinting(s, hint_track, i)) < 0) s 6689 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 6690 libavformat/movenc.c AVStream *st = s->streams[i]; s 6699 libavformat/movenc.c if (mov_check_timecode_track(s, &tc, i, t->value) < 0) s 6701 libavformat/movenc.c if ((ret = mov_create_timecode_track(s, tmcd_track, i, tc)) < 0) s 6711 libavformat/movenc.c mov_write_isml_manifest(pb, mov, s); s 6715 libavformat/movenc.c if ((ret = mov_write_moov_tag(pb, mov, s)) < 0) s 6725 libavformat/movenc.c static int get_moov_size(AVFormatContext *s) s 6729 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6733 libavformat/movenc.c if ((ret = mov_write_moov_tag(moov_buf, mov, s)) < 0) s 6738 libavformat/movenc.c static int get_sidx_size(AVFormatContext *s) s 6742 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6756 libavformat/movenc.c static int compute_moov_size(AVFormatContext *s) s 6759 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6761 libavformat/movenc.c moov_size = get_moov_size(s); s 6768 libavformat/movenc.c moov_size2 = get_moov_size(s); s 6781 libavformat/movenc.c static int compute_sidx_size(AVFormatContext *s) s 6784 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6786 libavformat/movenc.c sidx_size = get_sidx_size(s); s 6796 libavformat/movenc.c static int shift_data(AVFormatContext *s) s 6799 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6807 libavformat/movenc.c moov_size = compute_sidx_size(s); s 6809 libavformat/movenc.c moov_size = compute_moov_size(s); s 6822 libavformat/movenc.c avio_flush(s->pb); s 6823 libavformat/movenc.c ret = s->io_open(s, &read_pb, s->url, AVIO_FLAG_READ, NULL); s 6825 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "Unable to re-open %s output file for " s 6826 libavformat/movenc.c "the second pass (faststart)\n", s->url); s 6832 libavformat/movenc.c pos_end = avio_tell(s->pb); s 6833 libavformat/movenc.c avio_seek(s->pb, mov->reserved_header_pos + moov_size, SEEK_SET); s 6852 libavformat/movenc.c avio_write(s->pb, read_buf[read_buf_id], n); s 6855 libavformat/movenc.c ff_format_io_close(s, &read_pb); s 6862 libavformat/movenc.c static int mov_write_trailer(AVFormatContext *s) s 6864 libavformat/movenc.c MOVMuxContext *mov = s->priv_data; s 6865 libavformat/movenc.c AVIOContext *pb = s->pb; s 6871 libavformat/movenc.c for (i = 0; i < s->nb_streams; i++) { s 6893 libavformat/movenc.c mov_write_subtitle_end_packet(s, i, trk->track_duration); s 6902 libavformat/movenc.c if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters) { s 6904 libavformat/movenc.c if ((res = mov_create_chapter_track(s, mov->chapter_track)) < 0) s 6928 libavformat/movenc.c av_log(s, AV_LOG_INFO, "Starting second pass: moving the moov atom to the beginning of the file\n"); s 6929 libavformat/movenc.c res = shift_data(s); s 6933 libavformat/movenc.c if ((res = mov_write_moov_tag(pb, mov, s)) < 0) s 6937 libavformat/movenc.c if ((res = mov_write_moov_tag(pb, mov, s)) < 0) s 6941 libavformat/movenc.c av_log(s, AV_LOG_ERROR, "reserved_moov_size is too small, needed %"PRId64" additional\n", 8-size); s 6949 libavformat/movenc.c if ((res = mov_write_moov_tag(pb, mov, s)) < 0) s 6954 libavformat/movenc.c mov_auto_flush_fragment(s, 1); s 6959 libavformat/movenc.c av_log(s, AV_LOG_INFO, "Starting second pass: inserting sidx atoms\n"); s 6960 libavformat/movenc.c res = shift_data(s); s 6969 libavformat/movenc.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_TRAILER); s 6977 libavformat/movenc.c static int mov_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) s 6980 libavformat/movenc.c AVStream *st = s->streams[pkt->stream_index]; s 265 libavformat/movenc.h int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt); s 267 libavformat/movenc.h int ff_mov_init_hinting(AVFormatContext *s, int index, int src_index); s 268 libavformat/movenc.h int ff_mov_add_hinted_packet(AVFormatContext *s, AVPacket *pkt, s 232 libavformat/movenccenc.c int ff_mov_cenc_avc_write_nal_units(AVFormatContext *s, MOVMuxCencContext* ctx, s 247 libavformat/movenccenc.c av_log(s, AV_LOG_ERROR, "CENC-AVC: remaining size %d smaller than nal length+type %d\n", s 262 libavformat/movenccenc.c av_log(s, AV_LOG_ERROR, "CENC-AVC: nal size %d remaining %d\n", nalsize, size); s 73 libavformat/movenccenc.h int ff_mov_cenc_avc_write_nal_units(AVFormatContext *s, MOVMuxCencContext* ctx, int nal_length_size, s 29 libavformat/movenchint.c int ff_mov_init_hinting(AVFormatContext *s, int index, int src_index) s 31 libavformat/movenchint.c MOVMuxContext *mov = s->priv_data; s 34 libavformat/movenchint.c AVStream *src_st = s->streams[src_index]; s 46 libavformat/movenchint.c ret = ff_rtp_chain_mux_open(&track->rtp_ctx, s, src_st, NULL, s 59 libavformat/movenchint.c av_log(s, AV_LOG_WARNING, s 401 libavformat/movenchint.c int ff_mov_add_hinted_packet(AVFormatContext *s, AVPacket *pkt, s 405 libavformat/movenchint.c MOVMuxContext *mov = s->priv_data; s 425 libavformat/movenchint.c ff_write_chained(rtp_ctx, 0, pkt, s, 0); s 452 libavformat/movenchint.c ff_mov_write_packet(s, &hint_pkt); s 132 libavformat/mp3dec.c static void read_xing_toc(AVFormatContext *s, int64_t filesize, int64_t duration) s 135 libavformat/mp3dec.c MP3DecContext *mp3 = s->priv_data; s 136 libavformat/mp3dec.c int fast_seek = s->flags & AVFMT_FLAG_FAST_SEEK; s 140 libavformat/mp3dec.c !(filesize = avio_size(s->pb))) { s 141 libavformat/mp3dec.c av_log(s, AV_LOG_WARNING, "Cannot determine file size, skipping TOC table.\n"); s 146 libavformat/mp3dec.c uint8_t b = avio_r8(s->pb); s 148 libavformat/mp3dec.c av_add_index_entry(s->streams[0], s 157 libavformat/mp3dec.c static void mp3_parse_info_tag(AVFormatContext *s, AVStream *st, s 171 libavformat/mp3dec.c MP3DecContext *mp3 = s->priv_data; s 173 libavformat/mp3dec.c uint64_t fsize = avio_size(s->pb); s 174 libavformat/mp3dec.c fsize = fsize >= avio_tell(s->pb) ? fsize - avio_tell(s->pb) : 0; s 177 libavformat/mp3dec.c avio_skip(s->pb, xing_offtbl[c->lsf == 1][c->nb_channels == 1]); s 178 libavformat/mp3dec.c v = avio_rb32(s->pb); s 183 libavformat/mp3dec.c v = avio_rb32(s->pb); s 185 libavformat/mp3dec.c mp3->frames = avio_rb32(s->pb); s 187 libavformat/mp3dec.c mp3->header_filesize = avio_rb32(s->pb); s 194 libavformat/mp3dec.c av_log(s, AV_LOG_WARNING, s 197 libavformat/mp3dec.c av_log(s, AV_LOG_WARNING, s 202 libavformat/mp3dec.c read_xing_toc(s, mp3->header_filesize, av_rescale_q(mp3->frames, s 207 libavformat/mp3dec.c avio_rb32(s->pb); s 211 libavformat/mp3dec.c avio_read(s->pb, version, 9); s 214 libavformat/mp3dec.c avio_r8(s->pb); s 217 libavformat/mp3dec.c avio_r8(s->pb); s 220 libavformat/mp3dec.c v = avio_rb32(s->pb); s 224 libavformat/mp3dec.c v = avio_rb16(s->pb); s 234 libavformat/mp3dec.c v = avio_rb16(s->pb); s 244 libavformat/mp3dec.c avio_r8(s->pb); s 247 libavformat/mp3dec.c avio_r8(s->pb); s 250 libavformat/mp3dec.c v = avio_rb24(s->pb); s 267 libavformat/mp3dec.c av_log(s, AV_LOG_DEBUG, "pad %d %d\n", mp3->start_pad, mp3-> end_pad); s 271 libavformat/mp3dec.c avio_r8(s->pb); s 274 libavformat/mp3dec.c avio_r8(s->pb); s 277 libavformat/mp3dec.c avio_rb16(s->pb); s 280 libavformat/mp3dec.c avio_rb32(s->pb); s 283 libavformat/mp3dec.c avio_rb16(s->pb); s 286 libavformat/mp3dec.c crc = ffio_get_checksum(s->pb); s 287 libavformat/mp3dec.c v = avio_rb16(s->pb); s 295 libavformat/mp3dec.c static void mp3_parse_vbri_tag(AVFormatContext *s, AVStream *st, int64_t base) s 298 libavformat/mp3dec.c MP3DecContext *mp3 = s->priv_data; s 301 libavformat/mp3dec.c avio_seek(s->pb, base + 4 + 32, SEEK_SET); s 302 libavformat/mp3dec.c v = avio_rb32(s->pb); s 305 libavformat/mp3dec.c if (avio_rb16(s->pb) == 1) { s 307 libavformat/mp3dec.c avio_skip(s->pb, 4); s 308 libavformat/mp3dec.c mp3->header_filesize = avio_rb32(s->pb); s 309 libavformat/mp3dec.c mp3->frames = avio_rb32(s->pb); s 317 libavformat/mp3dec.c static int mp3_parse_vbr_tags(AVFormatContext *s, AVStream *st, int64_t base) s 322 libavformat/mp3dec.c MP3DecContext *mp3 = s->priv_data; s 325 libavformat/mp3dec.c ffio_init_checksum(s->pb, ff_crcA001_update, 0); s 327 libavformat/mp3dec.c v = avio_rb32(s->pb); s 342 libavformat/mp3dec.c mp3_parse_info_tag(s, st, &c, spf); s 343 libavformat/mp3dec.c mp3_parse_vbri_tag(s, st, base); s 349 libavformat/mp3dec.c avio_seek(s->pb, base + vbrtag_size, SEEK_SET); s 360 libavformat/mp3dec.c static int mp3_read_header(AVFormatContext *s) s 362 libavformat/mp3dec.c MP3DecContext *mp3 = s->priv_data; s 368 libavformat/mp3dec.c s->metadata = s->internal->id3v2_meta; s 369 libavformat/mp3dec.c s->internal->id3v2_meta = NULL; s 371 libavformat/mp3dec.c st = avformat_new_stream(s, NULL); s 383 libavformat/mp3dec.c s->pb->maxsize = -1; s 384 libavformat/mp3dec.c off = avio_tell(s->pb); s 386 libavformat/mp3dec.c if (!av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) s 387 libavformat/mp3dec.c ff_id3v1_read(s); s 389 libavformat/mp3dec.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) s 390 libavformat/mp3dec.c mp3->filesize = avio_size(s->pb); s 392 libavformat/mp3dec.c if (mp3_parse_vbr_tags(s, st, off) < 0) s 393 libavformat/mp3dec.c avio_seek(s->pb, off, SEEK_SET); s 395 libavformat/mp3dec.c ret = ff_replaygain_export(st, s->metadata); s 399 libavformat/mp3dec.c off = avio_tell(s->pb); s 404 libavformat/mp3dec.c ffio_ensure_seekback(s->pb, i + 1024 + 4); s 405 libavformat/mp3dec.c frame_size = check(s->pb, off + i, &header); s 407 libavformat/mp3dec.c ret = avio_seek(s->pb, off, SEEK_SET); s 410 libavformat/mp3dec.c ffio_ensure_seekback(s->pb, i + 1024 + frame_size + 4); s 411 libavformat/mp3dec.c ret = check(s->pb, off + i + frame_size, &header2); s 415 libavformat/mp3dec.c av_log(s, i > 0 ? AV_LOG_INFO : AV_LOG_VERBOSE, "Skipping %d bytes of junk at %"PRId64".\n", i, off); s 416 libavformat/mp3dec.c ret = avio_seek(s->pb, off + i, SEEK_SET); s 421 libavformat/mp3dec.c av_log(s, AV_LOG_ERROR, "Invalid frame size (%d): Could not seek to %"PRId64".\n", frame_size, off + i + frame_size); s 425 libavformat/mp3dec.c av_log(s, AV_LOG_ERROR, "Failed to read frame size: Could not seek to %"PRId64".\n", (int64_t) (i + 1024 + frame_size + 4)); s 428 libavformat/mp3dec.c ret = avio_seek(s->pb, off, SEEK_SET); s 435 libavformat/mp3dec.c st->index_entries[i].pos += avio_tell(s->pb); s 443 libavformat/mp3dec.c static int mp3_read_packet(AVFormatContext *s, AVPacket *pkt) s 445 libavformat/mp3dec.c MP3DecContext *mp3 = s->priv_data; s 450 libavformat/mp3dec.c pos = avio_tell(s->pb); s 454 libavformat/mp3dec.c ret = av_get_packet(s->pb, pkt, size); s 494 libavformat/mp3dec.c static int64_t mp3_sync(AVFormatContext *s, int64_t target_pos, int flags) s 501 libavformat/mp3dec.c avio_seek(s->pb, FFMAX(target_pos - SEEK_WINDOW, 0), SEEK_SET); s 502 libavformat/mp3dec.c ret = avio_seek(s->pb, target_pos, SEEK_SET); s 518 libavformat/mp3dec.c ret = check(s->pb, pos, NULL); s 523 libavformat/mp3dec.c av_log(s, AV_LOG_ERROR, "Could not seek to %"PRId64".\n", pos); s 541 libavformat/mp3dec.c return avio_seek(s->pb, best_pos, SEEK_SET); s 544 libavformat/mp3dec.c static int mp3_seek(AVFormatContext *s, int stream_index, int64_t timestamp, s 547 libavformat/mp3dec.c MP3DecContext *mp3 = s->priv_data; s 549 libavformat/mp3dec.c AVStream *st = s->streams[0]; s 551 libavformat/mp3dec.c int fast_seek = s->flags & AVFMT_FLAG_FAST_SEEK; s 555 libavformat/mp3dec.c int64_t size = avio_size(s->pb); s 556 libavformat/mp3dec.c if (size > 0 && size > s->internal->data_offset) s 557 libavformat/mp3dec.c filesize = size - s->internal->data_offset; s 565 libavformat/mp3dec.c av_log(s, AV_LOG_WARNING, "Using MP3 TOC to seek; may be imprecise.\n"); s 573 libavformat/mp3dec.c av_log(s, AV_LOG_WARNING, "Using scaling to seek VBR MP3; may be imprecise.\n"); s 578 libavformat/mp3dec.c ie->pos = av_rescale(timestamp, filesize, st->duration) + s->internal->data_offset; s 583 libavformat/mp3dec.c best_pos = mp3_sync(s, ie->pos, flags); s 589 libavformat/mp3dec.c ie1.timestamp = frame_duration * av_rescale(best_pos - s->internal->data_offset, mp3->frames, mp3->header_filesize); s 592 libavformat/mp3dec.c ff_update_cur_dts(s, st, ie->timestamp); s 39 libavformat/mp3enc.c static int id3v1_set_string(AVFormatContext *s, const char *key, s 43 libavformat/mp3enc.c if ((tag = av_dict_get(s->metadata, key, NULL, 0))) s 49 libavformat/mp3enc.c static int id3v1_create_tag(AVFormatContext *s, uint8_t *buf) s 59 libavformat/mp3enc.c count += id3v1_set_string(s, "TIT2", buf + 3, 30 + 1); //title s 60 libavformat/mp3enc.c count += id3v1_set_string(s, "TPE1", buf + 33, 30 + 1); //author|artist s 61 libavformat/mp3enc.c count += id3v1_set_string(s, "TALB", buf + 63, 30 + 1); //album s 62 libavformat/mp3enc.c if ((tag = av_dict_get(s->metadata, "TYER", NULL, 0))) { //year s 65 libavformat/mp3enc.c } else if ((tag = av_dict_get(s->metadata, "TDRC", NULL, 0))) { s 68 libavformat/mp3enc.c } else if ((tag = av_dict_get(s->metadata, "TDAT", NULL, 0))) { s 73 libavformat/mp3enc.c count += id3v1_set_string(s, "comment", buf + 97, 30 + 1); s 74 libavformat/mp3enc.c if ((tag = av_dict_get(s->metadata, "TRCK", NULL, 0))) { //track s 80 libavformat/mp3enc.c if ((tag = av_dict_get(s->metadata, "TCON", NULL, 0))) { //genre s 142 libavformat/mp3enc.c static int mp3_write_xing(AVFormatContext *s) s 144 libavformat/mp3enc.c MP3Context *mp3 = s->priv_data; s 145 libavformat/mp3enc.c AVCodecParameters *par = s->streams[mp3->audio_stream_idx]->codecpar; s 146 libavformat/mp3enc.c AVDictionaryEntry *enc = av_dict_get(s->streams[mp3->audio_stream_idx]->metadata, "encoder", NULL, 0); s 158 libavformat/mp3enc.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL) || !mp3->write_xing) s 173 libavformat/mp3enc.c av_log(s, AV_LOG_WARNING, "Unsupported sample rate, not writing Xing header.\n"); s 180 libavformat/mp3enc.c default: av_log(s, AV_LOG_WARNING, "Unsupported number of channels, " s 277 libavformat/mp3enc.c mp3->xing_frame_offset = avio_tell(s->pb); s 278 libavformat/mp3enc.c avio_write(s->pb, mp3->xing_frame, mp3->xing_frame_size); s 315 libavformat/mp3enc.c static int mp3_write_audio_packet(AVFormatContext *s, AVPacket *pkt) s 317 libavformat/mp3enc.c MP3Context *mp3 = s->priv_data; s 333 libavformat/mp3enc.c av_log(s, AV_LOG_WARNING, "Audio packet of size %d (starting with %08"PRIX32"...) " s 377 libavformat/mp3enc.c return ff_raw_write_packet(s, pkt); s 380 libavformat/mp3enc.c static int mp3_queue_flush(AVFormatContext *s) s 382 libavformat/mp3enc.c MP3Context *mp3 = s->priv_data; s 386 libavformat/mp3enc.c ff_id3v2_finish(&mp3->id3, s->pb, s->metadata_header_padding); s 387 libavformat/mp3enc.c mp3_write_xing(s); s 391 libavformat/mp3enc.c if (write && (ret = mp3_write_audio_packet(s, &pkt)) < 0) s 398 libavformat/mp3enc.c static void mp3_update_xing(AVFormatContext *s) s 400 libavformat/mp3enc.c MP3Context *mp3 = s->priv_data; s 405 libavformat/mp3enc.c int64_t old_pos = avio_tell(s->pb); s 423 libavformat/mp3enc.c rg = (AVReplayGain*)av_stream_get_side_data(s->streams[0], AV_PKT_DATA_REPLAYGAIN, s 449 libavformat/mp3enc.c av_log(s, AV_LOG_WARNING, "Too many samples of initial padding.\n"); s 453 libavformat/mp3enc.c av_log(s, AV_LOG_WARNING, "Too many samples of trailing padding.\n"); s 463 libavformat/mp3enc.c avio_seek(s->pb, mp3->xing_frame_offset, SEEK_SET); s 464 libavformat/mp3enc.c avio_write(s->pb, mp3->xing_frame, mp3->xing_frame_size); s 465 libavformat/mp3enc.c avio_seek(s->pb, old_pos, SEEK_SET); s 468 libavformat/mp3enc.c static int mp3_write_trailer(struct AVFormatContext *s) s 471 libavformat/mp3enc.c MP3Context *mp3 = s->priv_data; s 474 libavformat/mp3enc.c av_log(s, AV_LOG_WARNING, "No packets were sent for some of the " s 476 libavformat/mp3enc.c mp3_queue_flush(s); s 480 libavformat/mp3enc.c if (mp3->write_id3v1 && id3v1_create_tag(s, buf) > 0) { s 481 libavformat/mp3enc.c avio_write(s->pb, buf, ID3v1_TAG_SIZE); s 485 libavformat/mp3enc.c mp3_update_xing(s); s 518 libavformat/mp3enc.c static int mp3_write_packet(AVFormatContext *s, AVPacket *pkt) s 520 libavformat/mp3enc.c MP3Context *mp3 = s->priv_data; s 528 libavformat/mp3enc.c av_log(s, AV_LOG_WARNING, "Not enough memory to buffer audio. Skipping picture streams\n"); s 530 libavformat/mp3enc.c mp3_queue_flush(s); s 531 libavformat/mp3enc.c return mp3_write_audio_packet(s, pkt); s 534 libavformat/mp3enc.c return mp3_write_audio_packet(s, pkt); s 539 libavformat/mp3enc.c if (s->streams[pkt->stream_index]->nb_frames == 1) { s 540 libavformat/mp3enc.c av_log(s, AV_LOG_WARNING, "Got more than one picture in stream %d," s 543 libavformat/mp3enc.c if (!mp3->pics_to_write || s->streams[pkt->stream_index]->nb_frames >= 1) s 546 libavformat/mp3enc.c if ((ret = ff_id3v2_write_apic(s, &mp3->id3, pkt)) < 0) s 552 libavformat/mp3enc.c (ret = mp3_queue_flush(s)) < 0) s 563 libavformat/mp3enc.c static int mp3_init(struct AVFormatContext *s) s 565 libavformat/mp3enc.c MP3Context *mp3 = s->priv_data; s 571 libavformat/mp3enc.c av_log(s, AV_LOG_ERROR, "Invalid ID3v2 version requested: %d. Only " s 579 libavformat/mp3enc.c for (i = 0; i < s->nb_streams; i++) { s 580 libavformat/mp3enc.c AVStream *st = s->streams[i]; s 583 libavformat/mp3enc.c av_log(s, AV_LOG_ERROR, "Invalid audio stream. Exactly one MP3 " s 589 libavformat/mp3enc.c av_log(s, AV_LOG_ERROR, "Only audio streams and pictures are allowed in MP3.\n"); s 594 libavformat/mp3enc.c av_log(s, AV_LOG_ERROR, "No audio stream present.\n"); s 597 libavformat/mp3enc.c mp3->pics_to_write = s->nb_streams - 1; s 600 libavformat/mp3enc.c av_log(s, AV_LOG_ERROR, "Attached pictures were requested, but the " s 608 libavformat/mp3enc.c static int mp3_write_header(struct AVFormatContext *s) s 610 libavformat/mp3enc.c MP3Context *mp3 = s->priv_data; s 614 libavformat/mp3enc.c ff_id3v2_start(&mp3->id3, s->pb, mp3->id3v2_version, ID3v2_DEFAULT_MAGIC); s 615 libavformat/mp3enc.c ret = ff_id3v2_write_metadata(s, &mp3->id3); s 622 libavformat/mp3enc.c ff_id3v2_finish(&mp3->id3, s->pb, s->metadata_header_padding); s 623 libavformat/mp3enc.c mp3_write_xing(s); s 629 libavformat/mp3enc.c static void mp3_deinit(struct AVFormatContext *s) s 631 libavformat/mp3enc.c MP3Context *mp3 = s->priv_data; s 56 libavformat/mpc.c static int mpc_read_header(AVFormatContext *s) s 58 libavformat/mpc.c MPCContext *c = s->priv_data; s 62 libavformat/mpc.c if(avio_rl24(s->pb) != MKTAG('M', 'P', '+', 0)){ s 63 libavformat/mpc.c av_log(s, AV_LOG_ERROR, "Not a Musepack file\n"); s 66 libavformat/mpc.c c->ver = avio_r8(s->pb); s 68 libavformat/mpc.c av_log(s, AV_LOG_ERROR, "Can demux Musepack SV7, got version %02X\n", c->ver); s 71 libavformat/mpc.c c->fcount = avio_rl32(s->pb); s 73 libavformat/mpc.c av_log(s, AV_LOG_ERROR, "Too many frames, seeking is not possible\n"); s 81 libavformat/mpc.c st = avformat_new_stream(s, NULL); s 88 libavformat/mpc.c av_log(s, AV_LOG_ERROR, "Cannot allocate seektable\n"); s 93 libavformat/mpc.c av_log(s, AV_LOG_WARNING, "Container reports no frames\n"); s 102 libavformat/mpc.c if ((ret = ff_get_extradata(s, st->codecpar, s->pb, 16)) < 0) s 111 libavformat/mpc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 112 libavformat/mpc.c int64_t pos = avio_tell(s->pb); s 113 libavformat/mpc.c ff_ape_parse_tag(s); s 114 libavformat/mpc.c if (!av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) s 115 libavformat/mpc.c ff_id3v1_read(s); s 116 libavformat/mpc.c avio_seek(s->pb, pos, SEEK_SET); s 122 libavformat/mpc.c static int mpc_read_packet(AVFormatContext *s, AVPacket *pkt) s 124 libavformat/mpc.c MPCContext *c = s->priv_data; s 133 libavformat/mpc.c avio_seek(s->pb, c->frames[c->curframe].pos, SEEK_SET); s 139 libavformat/mpc.c pos = avio_tell(s->pb); s 140 libavformat/mpc.c tmp = avio_rl32(s->pb); s 144 libavformat/mpc.c size2 = (tmp << (curbits - 12) | avio_rl32(s->pb) >> (44 - curbits)) & 0xFFFFF; s 147 libavformat/mpc.c avio_seek(s->pb, pos, SEEK_SET); s 154 libavformat/mpc.c av_add_index_entry(s->streams[0], cur, cur, size, 0, AVINDEX_KEYFRAME); s 169 libavformat/mpc.c ret = avio_read(s->pb, pkt->data + 4, size); s 171 libavformat/mpc.c avio_seek(s->pb, -4, SEEK_CUR); s 187 libavformat/mpc.c static int mpc_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 189 libavformat/mpc.c AVStream *st = s->streams[stream_index]; s 190 libavformat/mpc.c MPCContext *c = s->priv_data; s 210 libavformat/mpc.c ret = av_read_frame(s, pkt); s 133 libavformat/mpc8.c static void mpc8_parse_seektable(AVFormatContext *s, int64_t off) s 135 libavformat/mpc8.c MPCContext *c = s->priv_data; s 142 libavformat/mpc8.c if (s->nb_streams == 0) { s 143 libavformat/mpc8.c av_log(s, AV_LOG_ERROR, "No stream added before parsing seek table\n"); s 147 libavformat/mpc8.c avio_seek(s->pb, off, SEEK_SET); s 148 libavformat/mpc8.c mpc8_get_chunk_header(s->pb, &tag, &size); s 150 libavformat/mpc8.c av_log(s, AV_LOG_ERROR, "No seek table at given position\n"); s 154 libavformat/mpc8.c av_log(s, AV_LOG_ERROR, "Bad seek table size\n"); s 159 libavformat/mpc8.c ret = avio_read(s->pb, buf, size); s 161 libavformat/mpc8.c av_log(s, AV_LOG_ERROR, "seek table truncated\n"); s 170 libavformat/mpc8.c av_log(s, AV_LOG_ERROR, "Seek table is too big\n"); s 178 libavformat/mpc8.c av_add_index_entry(s->streams[0], pos, i, 0, 0, AVINDEX_KEYFRAME); s 186 libavformat/mpc8.c av_add_index_entry(s->streams[0], pos, i << seekd, 0, 0, AVINDEX_KEYFRAME); s 193 libavformat/mpc8.c static void mpc8_handle_chunk(AVFormatContext *s, int tag, int64_t chunk_pos, int64_t size) s 195 libavformat/mpc8.c AVIOContext *pb = s->pb; s 202 libavformat/mpc8.c mpc8_parse_seektable(s, chunk_pos + off); s 210 libavformat/mpc8.c static int mpc8_read_header(AVFormatContext *s) s 212 libavformat/mpc8.c MPCContext *c = s->priv_data; s 213 libavformat/mpc8.c AVIOContext *pb = s->pb; s 220 libavformat/mpc8.c av_log(s, AV_LOG_ERROR, "Not a Musepack8 file\n"); s 228 libavformat/mpc8.c av_log(s, AV_LOG_ERROR, "Invalid chunk length\n"); s 233 libavformat/mpc8.c mpc8_handle_chunk(s, tag, pos, size); s 236 libavformat/mpc8.c av_log(s, AV_LOG_ERROR, "Stream header not found\n"); s 243 libavformat/mpc8.c avpriv_report_missing_feature(s, "Stream version %d", c->ver); s 249 libavformat/mpc8.c st = avformat_new_stream(s, NULL); s 256 libavformat/mpc8.c if ((ret = ff_get_extradata(s, st->codecpar, pb, 2)) < 0) s 269 libavformat/mpc8.c int64_t pos = avio_tell(s->pb); s 270 libavformat/mpc8.c c->apetag_start = ff_ape_parse_tag(s); s 271 libavformat/mpc8.c avio_seek(s->pb, pos, SEEK_SET); s 277 libavformat/mpc8.c static int mpc8_read_packet(AVFormatContext *s, AVPacket *pkt) s 279 libavformat/mpc8.c MPCContext *c = s->priv_data; s 283 libavformat/mpc8.c while(!avio_feof(s->pb)){ s 284 libavformat/mpc8.c pos = avio_tell(s->pb); s 290 libavformat/mpc8.c mpc8_get_chunk_header(s->pb, &tag, &size); s 294 libavformat/mpc8.c if ((ret = av_get_packet(s->pb, pkt, size)) < 0) s 302 libavformat/mpc8.c mpc8_handle_chunk(s, tag, pos, size); s 307 libavformat/mpc8.c static int mpc8_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 309 libavformat/mpc8.c AVStream *st = s->streams[stream_index]; s 313 libavformat/mpc8.c if (avio_seek(s->pb, st->index_entries[index].pos, SEEK_SET) < 0) s 315 libavformat/mpc8.c ff_update_cur_dts(s, st, st->index_entries[index].timestamp); s 126 libavformat/mpeg.c static int mpegps_read_header(AVFormatContext *s) s 128 libavformat/mpeg.c MpegDemuxContext *m = s->priv_data; s 130 libavformat/mpeg.c int64_t last_pos = avio_tell(s->pb); s 133 libavformat/mpeg.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 135 libavformat/mpeg.c avio_get_str(s->pb, 6, buffer, sizeof(buffer)); s 141 libavformat/mpeg.c avio_seek(s->pb, last_pos, SEEK_SET); s 225 libavformat/mpeg.c static int mpegps_read_pes_header(AVFormatContext *s, s 229 libavformat/mpeg.c MpegDemuxContext *m = s->priv_data; s 233 libavformat/mpeg.c int64_t last_sync = avio_tell(s->pb); s 236 libavformat/mpeg.c avio_seek(s->pb, last_sync, SEEK_SET); s 241 libavformat/mpeg.c startcode = find_next_start_code(s->pb, &size, &m->header_state); s 242 libavformat/mpeg.c last_sync = avio_tell(s->pb); s 244 libavformat/mpeg.c if (avio_feof(s->pb)) s 255 libavformat/mpeg.c avio_skip(s->pb, avio_rb16(s->pb)); s 261 libavformat/mpeg.c int len = avio_rb16(s->pb); s 266 libavformat/mpeg.c bytesread = avio_read(s->pb, ps2buf, len); s 269 libavformat/mpeg.c avio_skip(s->pb, len - bytesread); s 318 libavformat/mpeg.c if (!m->dvd || avio_skip(s->pb, -(len + 2)) < 0) { s 327 libavformat/mpeg.c avio_skip(s->pb, len); s 331 libavformat/mpeg.c int len = avio_rb16(s->pb); s 332 libavformat/mpeg.c avio_skip(s->pb, len); s 337 libavformat/mpeg.c mpegps_psm_parse(m, s->pb); s 349 libavformat/mpeg.c *ppos = avio_tell(s->pb) - 4; s 351 libavformat/mpeg.c len = avio_rb16(s->pb); s 360 libavformat/mpeg.c c = avio_r8(s->pb); s 368 libavformat/mpeg.c avio_r8(s->pb); s 369 libavformat/mpeg.c c = avio_r8(s->pb); s 374 libavformat/mpeg.c pts = get_pts(s->pb, c); s 377 libavformat/mpeg.c dts = get_pts(s->pb, -1); s 382 libavformat/mpeg.c flags = avio_r8(s->pb); s 383 libavformat/mpeg.c header_len = avio_r8(s->pb); s 389 libavformat/mpeg.c dts = pts = get_pts(s->pb, -1); s 392 libavformat/mpeg.c dts = get_pts(s->pb, -1); s 398 libavformat/mpeg.c av_log(s, AV_LOG_WARNING, "Further flags set but no bytes left\n"); s 401 libavformat/mpeg.c pes_ext = avio_r8(s->pb); s 408 libavformat/mpeg.c av_log(s, AV_LOG_WARNING, "pes_ext %X is invalid\n", pes_ext); s 411 libavformat/mpeg.c avio_skip(s->pb, skip); s 415 libavformat/mpeg.c ext2_len = avio_r8(s->pb); s 418 libavformat/mpeg.c id_ext = avio_r8(s->pb); s 427 libavformat/mpeg.c avio_skip(s->pb, header_len); s 433 libavformat/mpeg.c int ret = ffio_ensure_seekback(s->pb, 2); s 438 libavformat/mpeg.c startcode = avio_r8(s->pb); s 441 libavformat/mpeg.c if (avio_r8(s->pb) == 0x77) { s 444 libavformat/mpeg.c avio_skip(s->pb, -2); s 446 libavformat/mpeg.c avio_skip(s->pb, -1); s 456 libavformat/mpeg.c for (i = 0; i < s->nb_streams; i++) { s 457 libavformat/mpeg.c if (startcode == s->streams[i]->id && s 458 libavformat/mpeg.c (s->pb->seekable & AVIO_SEEKABLE_NORMAL) /* index useless on streams anyway */) { s 459 libavformat/mpeg.c ff_reduce_index(s, i); s 460 libavformat/mpeg.c av_add_index_entry(s->streams[i], *ppos, dts, 0, 0, s 472 libavformat/mpeg.c static int mpegps_read_packet(AVFormatContext *s, s 475 libavformat/mpeg.c MpegDemuxContext *m = s->priv_data; s 485 libavformat/mpeg.c len = mpegps_read_pes_header(s, &dummy_pos, &startcode, &pts, &dts); s 495 libavformat/mpeg.c avio_skip(s->pb, 3); s 499 libavformat/mpeg.c avio_r8(s->pb); s 502 libavformat/mpeg.c ret = ffio_ensure_seekback(s->pb, 3); s 505 libavformat/mpeg.c pcm_dvd = (avio_rb24(s->pb) & 0xFF) == 0x80; s 506 libavformat/mpeg.c avio_skip(s->pb, -3); s 512 libavformat/mpeg.c for (i = 0; i < s->nb_streams; i++) { s 513 libavformat/mpeg.c st = s->streams[i]; s 551 libavformat/mpeg.c avio_read(s->pb, buf, 8); s 552 libavformat/mpeg.c avio_seek(s->pb, -8, SEEK_CUR); s 606 libavformat/mpeg.c avio_skip(s->pb, len); s 610 libavformat/mpeg.c st = avformat_new_stream(s, NULL); s 632 libavformat/mpeg.c avio_skip(s->pb, 6); s 636 libavformat/mpeg.c ret = av_get_packet(s->pb, pkt, len); s 643 libavformat/mpeg.c if (s->debug & FF_FDEBUG_TS) s 644 libavformat/mpeg.c av_log(s, AV_LOG_DEBUG, "%d: pts=%0.3f dts=%0.3f size=%d\n", s 651 libavformat/mpeg.c static int64_t mpegps_read_dts(AVFormatContext *s, int stream_index, s 658 libavformat/mpeg.c if (avio_seek(s->pb, pos, SEEK_SET) < 0) s 662 libavformat/mpeg.c len = mpegps_read_pes_header(s, &pos, &startcode, &pts, &dts); s 664 libavformat/mpeg.c if (s->debug & FF_FDEBUG_TS) s 665 libavformat/mpeg.c av_log(s, AV_LOG_DEBUG, "none (ret=%d)\n", len); s 668 libavformat/mpeg.c if (startcode == s->streams[stream_index]->id && s 672 libavformat/mpeg.c avio_skip(s->pb, len); s 674 libavformat/mpeg.c if (s->debug & FF_FDEBUG_TS) s 675 libavformat/mpeg.c av_log(s, AV_LOG_DEBUG, "pos=0x%"PRIx64" dts=0x%"PRIx64" %0.3f\n", s 716 libavformat/mpeg.c static int vobsub_read_close(AVFormatContext *s) s 718 libavformat/mpeg.c VobSubDemuxContext *vobsub = s->priv_data; s 721 libavformat/mpeg.c for (i = 0; i < s->nb_streams; i++) s 728 libavformat/mpeg.c static int vobsub_read_header(AVFormatContext *s) s 731 libavformat/mpeg.c VobSubDemuxContext *vobsub = s->priv_data; s 743 libavformat/mpeg.c vobsub->sub_name = av_strdup(s->url); s 751 libavformat/mpeg.c av_log(s, AV_LOG_ERROR, "The input index filename is too short " s 756 libavformat/mpeg.c av_log(s, AV_LOG_VERBOSE, "IDX/SUB: %s -> %s\n", s->url, vobsub->sub_name); s 770 libavformat/mpeg.c if ((ret = ff_copy_whiteblacklists(vobsub->sub_ctx, s)) < 0) s 775 libavformat/mpeg.c av_log(s, AV_LOG_ERROR, "Unable to open %s as MPEG subtitles\n", vobsub->sub_name); s 779 libavformat/mpeg.c while (!avio_feof(s->pb)) { s 781 libavformat/mpeg.c int len = ff_get_line(s->pb, line, sizeof(line)); s 790 libavformat/mpeg.c av_log(s, AV_LOG_WARNING, "Unable to parse index line '%s', " s 797 libavformat/mpeg.c av_log(s, AV_LOG_ERROR, "Maximum number of subtitles streams reached\n"); s 807 libavformat/mpeg.c av_log(s, AV_LOG_DEBUG, "IDX stream[%d] id=%s\n", stream_id, id); s 816 libavformat/mpeg.c av_log(s, AV_LOG_ERROR, "Timestamp declared before any stream\n"); s 822 libavformat/mpeg.c st = avformat_new_stream(s, NULL); s 838 libavformat/mpeg.c av_log(s, AV_LOG_ERROR, "Unable to parse timestamp line '%s', " s 846 libavformat/mpeg.c sub = ff_subtitles_queue_insert(&vobsub->q[s->nb_streams - 1], "", 0, 0); s 853 libavformat/mpeg.c sub->stream_index = s->nb_streams - 1; s 860 libavformat/mpeg.c av_log(s, AV_LOG_DEBUG, "IDX stream[%d] name=%s\n", stream_id, p); s 881 libavformat/mpeg.c av_log(s, AV_LOG_ERROR, "Invalid langidx specified\n"); s 889 libavformat/mpeg.c if (langidx < s->nb_streams) s 890 libavformat/mpeg.c s->streams[langidx]->disposition |= AV_DISPOSITION_DEFAULT; s 892 libavformat/mpeg.c for (i = 0; i < s->nb_streams; i++) { s 895 libavformat/mpeg.c ff_subtitles_queue_finalize(s, &vobsub->q[i]); s 902 libavformat/mpeg.c for (i = 0; i < s->nb_streams; i++) { s 903 libavformat/mpeg.c AVCodecParameters *par = s->streams[i]->codecpar; s 912 libavformat/mpeg.c vobsub_read_close(s); s 917 libavformat/mpeg.c static int vobsub_read_packet(AVFormatContext *s, AVPacket *pkt) s 919 libavformat/mpeg.c VobSubDemuxContext *vobsub = s->priv_data; s 926 libavformat/mpeg.c for (i = 0; i < s->nb_streams; i++) { s 980 libavformat/mpeg.c if ((startcode & 0x1f) != s->streams[pkt->stream_index]->id) s 995 libavformat/mpeg.c static int vobsub_read_seek(AVFormatContext *s, int stream_index, s 998 libavformat/mpeg.c VobSubDemuxContext *vobsub = s->priv_data; s 1003 libavformat/mpeg.c if (stream_index == -1 && s->nb_streams != 1) { s 1005 libavformat/mpeg.c AVRational time_base = s->streams[0]->time_base; s 1013 libavformat/mpeg.c for (i = 0; i < s->nb_streams; i++) { s 1014 libavformat/mpeg.c int r = ff_subtitles_queue_seek(&vobsub->q[i], s, stream_index, s 1024 libavformat/mpeg.c return ff_subtitles_queue_seek(&vobsub->q[stream_index], s, stream_index, s 94 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 100 libavformat/mpegenc.c if (s->is_mpeg2) s 110 libavformat/mpegenc.c if (s->is_mpeg2) s 114 libavformat/mpegenc.c put_bits(&pb, 22, s->mux_rate); s 116 libavformat/mpegenc.c if (s->is_mpeg2) { s 128 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 139 libavformat/mpegenc.c put_bits(&pb, 22, s->mux_rate); s 141 libavformat/mpegenc.c if (s->is_vcd && only_for_stream_id == VIDEO_ID) { s 146 libavformat/mpegenc.c put_bits(&pb, 6, s->audio_bound); s 148 libavformat/mpegenc.c if (s->is_vcd) { s 157 libavformat/mpegenc.c if (s->is_vcd || s->is_dvd) { s 168 libavformat/mpegenc.c if (s->is_vcd && (only_for_stream_id & 0xe0) == AUDIO_ID) { s 173 libavformat/mpegenc.c put_bits(&pb, 5, s->video_bound); s 175 libavformat/mpegenc.c if (s->is_dvd) { s 186 libavformat/mpegenc.c if (s->is_dvd) { s 241 libavformat/mpegenc.c if (!s->is_vcd || stream->id == only_for_stream_id || s 278 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 280 libavformat/mpegenc.c if (s->is_dvd) s 299 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 306 libavformat/mpegenc.c s->packet_number = 0; s 307 libavformat/mpegenc.c s->is_vcd = (CONFIG_MPEG1VCD_MUXER && ctx->oformat == &ff_mpeg1vcd_muxer); s 308 libavformat/mpegenc.c s->is_svcd = (CONFIG_MPEG2SVCD_MUXER && ctx->oformat == &ff_mpeg2svcd_muxer); s 309 libavformat/mpegenc.c s->is_mpeg2 = ((CONFIG_MPEG2VOB_MUXER && ctx->oformat == &ff_mpeg2vob_muxer) || s 312 libavformat/mpegenc.c s->is_dvd = (CONFIG_MPEG2DVD_MUXER && ctx->oformat == &ff_mpeg2dvd_muxer); s 320 libavformat/mpegenc.c s->packet_size = ctx->packet_size; s 322 libavformat/mpegenc.c s->packet_size = 2048; s 326 libavformat/mpegenc.c s->vcd_padding_bytes_written = 0; s 327 libavformat/mpegenc.c s->vcd_padding_bitrate_num = 0; s 329 libavformat/mpegenc.c s->audio_bound = 0; s 330 libavformat/mpegenc.c s->video_bound = 0; s 353 libavformat/mpegenc.c if (!s->is_mpeg2 && s 427 libavformat/mpegenc.c s->audio_bound++; s 450 libavformat/mpegenc.c s->video_bound++; s 491 libavformat/mpegenc.c if (s->user_mux_rate) { s 492 libavformat/mpegenc.c s->mux_rate = (s->user_mux_rate + (8 * 50) - 1) / (8 * 50); s 498 libavformat/mpegenc.c s->mux_rate = (bitrate + (8 * 50) - 1) / (8 * 50); s 499 libavformat/mpegenc.c if (s->mux_rate >= (1<<22)) { s 500 libavformat/mpegenc.c av_log(ctx, AV_LOG_WARNING, "mux rate %d is too large\n", s->mux_rate); s 501 libavformat/mpegenc.c s->mux_rate = (1<<22) - 1; s 505 libavformat/mpegenc.c if (s->is_vcd) { s 530 libavformat/mpegenc.c s->vcd_padding_bitrate_num = (2324LL * 75 * 8 - bitrate) * 2279 * 2294 - overhead_rate; s 534 libavformat/mpegenc.c if (s->is_vcd || s->is_mpeg2) s 536 libavformat/mpegenc.c s->pack_header_freq = 1; s 539 libavformat/mpegenc.c s->pack_header_freq = 2 * bitrate / s->packet_size / 8; s 542 libavformat/mpegenc.c if (s->pack_header_freq == 0) s 543 libavformat/mpegenc.c s->pack_header_freq = 1; s 545 libavformat/mpegenc.c if (s->is_mpeg2) s 547 libavformat/mpegenc.c s->system_header_freq = s->pack_header_freq * 40; s 548 libavformat/mpegenc.c else if (s->is_vcd) s 552 libavformat/mpegenc.c s->system_header_freq = 0x7fffffff; s 554 libavformat/mpegenc.c s->system_header_freq = s->pack_header_freq * 5; s 560 libavformat/mpegenc.c s->system_header_size = get_system_header_size(ctx); s 561 libavformat/mpegenc.c s->last_scr = AV_NOPTS_VALUE; s 576 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 579 libavformat/mpegenc.c if (s->vcd_padding_bitrate_num > 0 && pts != AV_NOPTS_VALUE) { s 584 libavformat/mpegenc.c av_rescale(s->vcd_padding_bitrate_num, pts, 90000LL * 8 * VCD_PADDING_BITRATE_DEN); s 585 libavformat/mpegenc.c pad_bytes = (int)(full_pad_bytes - s->vcd_padding_bytes_written); s 600 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 605 libavformat/mpegenc.c if (!s->is_mpeg2) { s 634 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 653 libavformat/mpegenc.c if ((s->packet_number % s->pack_header_freq) == 0 || s->last_scr != scr) { s 657 libavformat/mpegenc.c s->last_scr = scr; s 659 libavformat/mpegenc.c if (s->is_vcd) { s 668 libavformat/mpegenc.c } else if (s->is_dvd) { s 669 libavformat/mpegenc.c if (stream->align_iframe || s->packet_number == 0) { s 670 libavformat/mpegenc.c int PES_bytes_to_fill = s->packet_size - size - 10; s 679 libavformat/mpegenc.c if (stream->bytes_to_iframe == 0 || s->packet_number == 0) { s 699 libavformat/mpegenc.c s->packet_number++; s 702 libavformat/mpegenc.c scr += s->packet_size * 90000LL / s 703 libavformat/mpegenc.c (s->mux_rate * 50LL); s 705 libavformat/mpegenc.c s->last_scr = scr; s 714 libavformat/mpegenc.c if ((s->packet_number % s->system_header_freq) == 0) { s 723 libavformat/mpegenc.c packet_size = s->packet_size - size; s 725 libavformat/mpegenc.c if (s->is_vcd && (id & 0xe0) == AUDIO_ID) s 730 libavformat/mpegenc.c if ((s->is_vcd && stream->packet_number == 0) || s 731 libavformat/mpegenc.c (s->is_svcd && s->packet_number == 0)) { s 738 libavformat/mpegenc.c if (s->is_svcd) s 751 libavformat/mpegenc.c if (s->is_mpeg2) { s 765 libavformat/mpegenc.c if (!s->is_mpeg2) s 790 libavformat/mpegenc.c timestamp_len += s->is_mpeg2 ? 5 : 4; s 794 libavformat/mpegenc.c if (s->is_dvd && stream->align_iframe) { s 837 libavformat/mpegenc.c if (!s->is_mpeg2) s 841 libavformat/mpegenc.c if (s->is_mpeg2) { s 889 libavformat/mpegenc.c if (s->is_mpeg2) { s 933 libavformat/mpegenc.c s->packet_number++; s 952 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 955 libavformat/mpegenc.c for (i = 0; i < s->packet_size; i++) s 958 libavformat/mpegenc.c s->vcd_padding_bytes_written += s->packet_size; s 966 libavformat/mpegenc.c s->packet_number++; s 998 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 1006 libavformat/mpegenc.c int64_t scr = s->last_scr; s 1021 libavformat/mpegenc.c if (s->packet_size > avail_data && !flush s 1028 libavformat/mpegenc.c if (space < s->packet_size && !ignore_constraints) s 1086 libavformat/mpegenc.c av_assert0(avail_space >= s->packet_size || ignore_constraints); s 1109 libavformat/mpegenc.c if (s->is_vcd) { s 1115 libavformat/mpegenc.c while ((vcd_pad_bytes = get_vcd_padding_size(ctx, stream->premux_packet->pts)) >= s->packet_size) { s 1118 libavformat/mpegenc.c s->last_scr += s->packet_size * 90000LL / (s->mux_rate * 50LL); s 1124 libavformat/mpegenc.c s->last_scr += s->packet_size * 90000LL / (s->mux_rate * 50LL); s 1136 libavformat/mpegenc.c if (remove_decoded_packets(ctx, s->last_scr) < 0) s 1147 libavformat/mpegenc.c MpegMuxContext *s = ctx->priv_data; s 1156 libavformat/mpegenc.c preload = av_rescale(s->preload, 90000, AV_TIME_BASE); s 1161 libavformat/mpegenc.c if (s->last_scr == AV_NOPTS_VALUE) { s 1162 libavformat/mpegenc.c if (dts == AV_NOPTS_VALUE || (dts < preload && ctx->avoid_negative_ts) || s->is_dvd) { s 1164 libavformat/mpegenc.c s->preload += av_rescale(-dts, AV_TIME_BASE, 90000); s 1165 libavformat/mpegenc.c s->last_scr = 0; s 1167 libavformat/mpegenc.c s->last_scr = dts - preload; s 1168 libavformat/mpegenc.c s->preload = 0; s 1170 libavformat/mpegenc.c preload = av_rescale(s->preload, 90000, AV_TIME_BASE); s 1171 libavformat/mpegenc.c av_log(ctx, AV_LOG_DEBUG, "First SCR: %"PRId64" First DTS: %"PRId64"\n", s->last_scr, dts + preload); s 1210 libavformat/mpegenc.c if (s->is_dvd) { s 1213 libavformat/mpegenc.c (s->packet_number == 0 || pts != AV_NOPTS_VALUE && s 347 libavformat/mpegts.c static void update_av_program_info(AVFormatContext *s, unsigned int programid, s 351 libavformat/mpegts.c for (i = 0; i < s->nb_programs; i++) { s 352 libavformat/mpegts.c AVProgram *program = s->programs[i]; s 360 libavformat/mpegts.c av_log(s, AV_LOG_VERBOSE, s 601 libavformat/mpegts.c static int get_packet_size(AVFormatContext* s) s 612 libavformat/mpegts.c ret = avio_read_partial(s->pb, buf + buf_size, PROBE_PACKET_MAX_BUF - buf_size); s 620 libavformat/mpegts.c av_log(s, AV_LOG_TRACE, "Probe: %d, score: %d, dvhs_score: %d, fec_score: %d \n", s 1425 libavformat/mpegts.c AVFormatContext *s; s 1435 libavformat/mpegts.c static int init_MP4DescrParseContext(MP4DescrParseContext *d, AVFormatContext *s, s 1447 libavformat/mpegts.c d->s = s; s 1575 libavformat/mpegts.c avpriv_report_missing_feature(d->s, "Predefined SLConfigDescriptor"); s 1585 libavformat/mpegts.c int len1 = ff_mp4_read_descr(d->s, &d->pb, &tag); s 1590 libavformat/mpegts.c av_log(d->s, AV_LOG_ERROR, s 1597 libavformat/mpegts.c av_log(d->s, AV_LOG_ERROR, "Maximum MP4 descriptor level exceeded\n"); s 1603 libavformat/mpegts.c av_log(d->s, AV_LOG_ERROR, "Found tag %x expected %x\n", tag, s 1634 libavformat/mpegts.c static int mp4_read_iods(AVFormatContext *s, const uint8_t *buf, unsigned size, s 1640 libavformat/mpegts.c ret = init_MP4DescrParseContext(&d, s, buf, size, descr, max_descr_count); s 1650 libavformat/mpegts.c static int mp4_read_od(AVFormatContext *s, const uint8_t *buf, unsigned size, s 1656 libavformat/mpegts.c ret = init_MP4DescrParseContext(&d, s, buf, size, descr, max_descr_count); s 1677 libavformat/mpegts.c AVFormatContext *s = ts->stream; s 1688 libavformat/mpegts.c mp4_read_od(s, p, (unsigned) (p_end - p), mp4_descr, &mp4_descr_count, s 1700 libavformat/mpegts.c av_log(s, AV_LOG_ERROR, "pid %x is not PES\n", pid); s 1713 libavformat/mpegts.c ff_mp4_read_dec_config_descr(s, st, &pb); s 2203 libavformat/mpegts.c AVFormatContext *s = ts->stream; s 2207 libavformat/mpegts.c for (i = 0; i < s->nb_streams; i++) { s 2208 libavformat/mpegts.c AVStream *st = s->streams[i]; s 2839 libavformat/mpegts.c static int mpegts_resync(AVFormatContext *s, int seekback, const uint8_t *current_packet) s 2841 libavformat/mpegts.c MpegTSContext *ts = s->priv_data; s 2842 libavformat/mpegts.c AVIOContext *pb = s->pb; s 2866 libavformat/mpegts.c new_packet_size = get_packet_size(s); s 2875 libavformat/mpegts.c av_log(s, AV_LOG_ERROR, s 2882 libavformat/mpegts.c static int read_packet(AVFormatContext *s, uint8_t *buf, int raw_packet_size, s 2885 libavformat/mpegts.c AVIOContext *pb = s->pb; s 2896 libavformat/mpegts.c if (mpegts_resync(s, raw_packet_size, *data) < 0) s 2907 libavformat/mpegts.c static void finished_reading_packet(AVFormatContext *s, int raw_packet_size) s 2909 libavformat/mpegts.c AVIOContext *pb = s->pb; s 2917 libavformat/mpegts.c AVFormatContext *s = ts->stream; s 2923 libavformat/mpegts.c if (avio_tell(s->pb) != ts->last_pos) { s 2956 libavformat/mpegts.c ret = read_packet(s, packet, ts->raw_packet_size, &data); s 2959 libavformat/mpegts.c ret = handle_packet(ts, data, avio_tell(s->pb)); s 2960 libavformat/mpegts.c finished_reading_packet(s, ts->raw_packet_size); s 2964 libavformat/mpegts.c ts->last_pos = avio_tell(s->pb); s 3037 libavformat/mpegts.c static void seek_back(AVFormatContext *s, AVIOContext *pb, int64_t pos) { s 3043 libavformat/mpegts.c av_log(s, (pb->seekable & AVIO_SEEKABLE_NORMAL) ? AV_LOG_ERROR : AV_LOG_INFO, "Unable to seek back to the start\n"); s 3046 libavformat/mpegts.c static int mpegts_read_header(AVFormatContext *s) s 3048 libavformat/mpegts.c MpegTSContext *ts = s->priv_data; s 3049 libavformat/mpegts.c AVIOContext *pb = s->pb; s 3050 libavformat/mpegts.c int64_t pos, probesize = s->probesize; s 3052 libavformat/mpegts.c s->internal->prefer_codec_framerate = 1; s 3055 libavformat/mpegts.c av_log(s, AV_LOG_WARNING, "Failed to allocate buffers for seekback\n"); s 3058 libavformat/mpegts.c ts->raw_packet_size = get_packet_size(s); s 3060 libavformat/mpegts.c av_log(s, AV_LOG_WARNING, "Could not detect TS packet size, defaulting to non-FEC/DVHS\n"); s 3063 libavformat/mpegts.c ts->stream = s; s 3066 libavformat/mpegts.c if (s->iformat == &ff_mpegts_demuxer) { s 3070 libavformat/mpegts.c seek_back(s, pb, pos); s 3083 libavformat/mpegts.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 3094 libavformat/mpegts.c st = avformat_new_stream(s, NULL); s 3106 libavformat/mpegts.c ret = read_packet(s, packet, ts->raw_packet_size, &data); s 3112 libavformat/mpegts.c finished_reading_packet(s, ts->raw_packet_size); s 3129 libavformat/mpegts.c finished_reading_packet(s, ts->raw_packet_size); s 3138 libavformat/mpegts.c s->bit_rate = TS_PACKET_SIZE * 8 * 27000000LL / ts->pcr_incr; s 3139 libavformat/mpegts.c st->codecpar->bit_rate = s->bit_rate; s 3145 libavformat/mpegts.c seek_back(s, pb, pos); s 3151 libavformat/mpegts.c static int mpegts_raw_read_packet(AVFormatContext *s, AVPacket *pkt) s 3153 libavformat/mpegts.c MpegTSContext *ts = s->priv_data; s 3162 libavformat/mpegts.c ret = read_packet(s, pkt->data, ts->raw_packet_size, &data); s 3163 libavformat/mpegts.c pkt->pos = avio_tell(s->pb); s 3169 libavformat/mpegts.c finished_reading_packet(s, ts->raw_packet_size); s 3174 libavformat/mpegts.c pos = avio_tell(s->pb); s 3176 libavformat/mpegts.c avio_seek(s->pb, pos + i * ts->raw_packet_size, SEEK_SET); s 3177 libavformat/mpegts.c avio_read(s->pb, pcr_buf, 12); s 3186 libavformat/mpegts.c avio_seek(s->pb, pos, SEEK_SET); s 3198 libavformat/mpegts.c static int mpegts_read_packet(AVFormatContext *s, AVPacket *pkt) s 3200 libavformat/mpegts.c MpegTSContext *ts = s->priv_data; s 3242 libavformat/mpegts.c static int mpegts_read_close(AVFormatContext *s) s 3244 libavformat/mpegts.c MpegTSContext *ts = s->priv_data; s 3249 libavformat/mpegts.c static av_unused int64_t mpegts_get_pcr(AVFormatContext *s, int stream_index, s 3252 libavformat/mpegts.c MpegTSContext *ts = s->priv_data; s 3256 libavformat/mpegts.c ((PESContext *)s->streams[stream_index]->priv_data)->pcr_pid; s 3262 libavformat/mpegts.c if (avio_seek(s->pb, pos, SEEK_SET) < 0) s 3264 libavformat/mpegts.c if (avio_read(s->pb, buf, TS_PACKET_SIZE) != TS_PACKET_SIZE) s 3267 libavformat/mpegts.c if (mpegts_resync(s, TS_PACKET_SIZE, buf) < 0) s 3269 libavformat/mpegts.c pos = avio_tell(s->pb); s 3283 libavformat/mpegts.c static int64_t mpegts_get_dts(AVFormatContext *s, int stream_index, s 3286 libavformat/mpegts.c MpegTSContext *ts = s->priv_data; s 3290 libavformat/mpegts.c ff_read_frame_flush(s); s 3291 libavformat/mpegts.c if (avio_seek(s->pb, pos, SEEK_SET) < 0) s 3297 libavformat/mpegts.c ret = av_read_frame(s, &pkt); s 3301 libavformat/mpegts.c ff_reduce_index(s, pkt.stream_index); s 3302 libavformat/mpegts.c av_add_index_entry(s->streams[pkt.stream_index], pkt.pos, pkt.dts, 0, 0, AVINDEX_KEYFRAME /* FIXME keyframe? */); s 3320 libavformat/mpegts.c MpegTSContext *avpriv_mpegts_parse_open(AVFormatContext *s) s 3329 libavformat/mpegts.c ts->stream = s; s 142 libavformat/mpegts.h MpegTSContext *avpriv_mpegts_parse_open(AVFormatContext *s); s 189 libavformat/mpegts.h int ff_check_h264_startcode(AVFormatContext *s, const AVStream *st, const AVPacket *pkt); s 50 libavformat/mpegtsenc.c void (*write_packet)(struct MpegTSSection *s, const uint8_t *packet); s 126 libavformat/mpegtsenc.c static void mpegts_write_section(MpegTSSection *s, uint8_t *buf, int len) s 148 libavformat/mpegtsenc.c b = s->pid >> 8; s 152 libavformat/mpegtsenc.c *q++ = s->pid; s 153 libavformat/mpegtsenc.c s->cc = s->cc + 1 & 0xf; s 154 libavformat/mpegtsenc.c *q++ = 0x10 | s->cc; s 155 libavformat/mpegtsenc.c if (s->discontinuity) { s 159 libavformat/mpegtsenc.c s->discontinuity = 0; s 173 libavformat/mpegtsenc.c s->write_packet(s, packet); s 189 libavformat/mpegtsenc.c static int mpegts_write_section1(MpegTSSection *s, int tid, int id, s 212 libavformat/mpegtsenc.c mpegts_write_section(s, section, tot_len); s 249 libavformat/mpegtsenc.c static void mpegts_write_pat(AVFormatContext *s) s 251 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 284 libavformat/mpegtsenc.c static int get_dvb_stream_type(AVFormatContext *s, AVStream *st) s 286 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 364 libavformat/mpegtsenc.c av_log_once(s, AV_LOG_WARNING, AV_LOG_DEBUG, &ts_st->data_st_warning, s 375 libavformat/mpegtsenc.c static int get_m2ts_stream_type(AVFormatContext *s, AVStream *st) s 415 libavformat/mpegtsenc.c av_log_once(s, AV_LOG_WARNING, AV_LOG_DEBUG, &ts_st->data_st_warning, s 426 libavformat/mpegtsenc.c static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) s 428 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 452 libavformat/mpegtsenc.c for (i = 0; i < s->nb_streams; i++) { s 453 libavformat/mpegtsenc.c AVStream *st = s->streams[i]; s 457 libavformat/mpegtsenc.c if (s->nb_programs) { s 476 libavformat/mpegtsenc.c stream_type = ts->m2ts_mode ? get_m2ts_stream_type(s, st) : get_dvb_stream_type(s, st); s 552 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "Unsupported Opus Vorbis-style channel mapping"); s 557 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "Unsupported Opus channel mapping for family %d", st->codecpar->extradata[18]); s 565 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "Unsupported Opus channel mapping"); s 694 libavformat/mpegtsenc.c } else if (stream_type == STREAM_TYPE_VIDEO_HEVC && s->strict_std_compliance <= FF_COMPLIANCE_NORMAL) { s 721 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, s 731 libavformat/mpegtsenc.c static void mpegts_write_sdt(AVFormatContext *s) s 733 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 811 libavformat/mpegtsenc.c static void write_packet(AVFormatContext *s, const uint8_t *packet) s 813 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 815 libavformat/mpegtsenc.c int64_t pcr = get_pcr(s->priv_data, s->pb); s 818 libavformat/mpegtsenc.c avio_write(s->pb, (unsigned char *) &tp_extra_header, s 821 libavformat/mpegtsenc.c avio_write(s->pb, packet, TS_PACKET_SIZE); s 824 libavformat/mpegtsenc.c static void section_write_packet(MpegTSSection *s, const uint8_t *packet) s 826 libavformat/mpegtsenc.c AVFormatContext *ctx = s->opaque; s 830 libavformat/mpegtsenc.c static MpegTSService *mpegts_add_service(AVFormatContext *s, int sid, s 834 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 857 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "Too long service or provider name\n"); s 864 libavformat/mpegtsenc.c service->pmt.opaque = s; s 875 libavformat/mpegtsenc.c static void enable_pcr_generation_for_stream(AVFormatContext *s, AVStream *pcr_st) s 877 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 889 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, "frame size not set\n"); s 906 libavformat/mpegtsenc.c static void select_pcr_streams(AVFormatContext *s) s 908 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 914 libavformat/mpegtsenc.c int nb_streams = program ? program->nb_stream_indexes : s->nb_streams; s 917 libavformat/mpegtsenc.c AVStream *st = s->streams[program ? program->stream_index[j] : j]; s 928 libavformat/mpegtsenc.c enable_pcr_generation_for_stream(s, pcr_st); s 929 libavformat/mpegtsenc.c av_log(s, AV_LOG_VERBOSE, "service %i using PCR in pid=%i, pcr_period=%"PRId64"ms\n", s 935 libavformat/mpegtsenc.c static int mpegts_init(AVFormatContext *s) s 937 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 942 libavformat/mpegtsenc.c if (av_match_ext(s->url, "m2ts")) { s 956 libavformat/mpegtsenc.c if (s->nb_programs > 1) { s 957 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "Only one program is allowed in m2ts mode!\n"); s 962 libavformat/mpegtsenc.c if (s->max_delay < 0) /* Not set by the caller */ s 963 libavformat/mpegtsenc.c s->max_delay = 0; s 968 libavformat/mpegtsenc.c if (!s->nb_programs) { s 970 libavformat/mpegtsenc.c if (!mpegts_add_service(s, ts->service_id, s->metadata, NULL)) s 973 libavformat/mpegtsenc.c for (i = 0; i < s->nb_programs; i++) { s 974 libavformat/mpegtsenc.c AVProgram *program = s->programs[i]; s 975 libavformat/mpegtsenc.c if (!mpegts_add_service(s, program->id, program->metadata, program)) s 986 libavformat/mpegtsenc.c ts->pat.opaque = s; s 992 libavformat/mpegtsenc.c ts->sdt.opaque = s; s 995 libavformat/mpegtsenc.c for (i = 0; i < s->nb_streams; i++) { s 996 libavformat/mpegtsenc.c AVStream *st = s->streams[i]; s 1039 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "Cannot automatically assign PID for stream %d\n", st->index); s 1049 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, s 1055 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, s 1060 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "PID %d cannot be both elementary and PMT PID\n", ts_st->pid); s 1065 libavformat/mpegtsenc.c MpegTSWriteStream *ts_st_prev = s->streams[j]->priv_data; s 1067 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "Duplicate stream id %d\n", ts_st->pid); s 1106 libavformat/mpegtsenc.c ts->first_pcr = av_rescale(s->max_delay, PCR_TIME_BASE, AV_TIME_BASE); s 1108 libavformat/mpegtsenc.c select_pcr_streams(s); s 1116 libavformat/mpegtsenc.c av_log(s, AV_LOG_VERBOSE, "muxrate VBR, "); s 1118 libavformat/mpegtsenc.c av_log(s, AV_LOG_VERBOSE, "muxrate %d, ", ts->mux_rate); s 1119 libavformat/mpegtsenc.c av_log(s, AV_LOG_VERBOSE, s 1128 libavformat/mpegtsenc.c static void retransmit_si_info(AVFormatContext *s, int force_pat, int force_sdt, int64_t pcr) s 1130 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 1139 libavformat/mpegtsenc.c mpegts_write_sdt(s); s 1146 libavformat/mpegtsenc.c mpegts_write_pat(s); s 1148 libavformat/mpegtsenc.c mpegts_write_pmt(s, ts->services[i]); s 1167 libavformat/mpegtsenc.c static void mpegts_insert_null_packet(AVFormatContext *s) s 1178 libavformat/mpegtsenc.c write_packet(s, buf); s 1182 libavformat/mpegtsenc.c static void mpegts_insert_pcr_only(AVFormatContext *s, AVStream *st) s 1184 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 1203 libavformat/mpegtsenc.c q += write_pcr_bits(q, get_pcr(ts, s->pb)); s 1207 libavformat/mpegtsenc.c write_packet(s, buf); s 1261 libavformat/mpegtsenc.c static void mpegts_write_pes(AVFormatContext *s, AVStream *st, s 1266 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 1271 libavformat/mpegtsenc.c int64_t delay = av_rescale(s->max_delay, 90000, AV_TIME_BASE); s 1290 libavformat/mpegtsenc.c pcr = get_pcr(ts, s->pb); s 1294 libavformat/mpegtsenc.c retransmit_si_info(s, force_pat, force_sdt, pcr); s 1301 libavformat/mpegtsenc.c pcr = get_pcr(ts, s->pb); s 1304 libavformat/mpegtsenc.c for (int i = 0; i < s->nb_streams; i++) { s 1307 libavformat/mpegtsenc.c int st2_index = i < st->index ? i : (i + 1 == s->nb_streams ? st->index : i + 1); s 1308 libavformat/mpegtsenc.c AVStream *st2 = s->streams[st2_index]; s 1314 libavformat/mpegtsenc.c mpegts_insert_pcr_only(s, st2); s 1315 libavformat/mpegtsenc.c pcr = get_pcr(ts, s->pb); s 1328 libavformat/mpegtsenc.c mpegts_insert_pcr_only(s, st); s 1330 libavformat/mpegtsenc.c mpegts_insert_null_packet(s); s 1370 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, "dts < pcr, TS is invalid\n"); s 1549 libavformat/mpegtsenc.c write_packet(s, buf); s 1554 libavformat/mpegtsenc.c int ff_check_h264_startcode(AVFormatContext *s, const AVStream *st, const AVPacket *pkt) s 1558 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "H.264 bitstream malformed, " s 1563 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, "H.264 bitstream error, startcode missing, size %d", pkt->size); s 1565 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, " data %08"PRIX32, AV_RB32(pkt->data)); s 1566 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, "\n"); s 1571 libavformat/mpegtsenc.c static int check_hevc_startcode(AVFormatContext *s, const AVStream *st, const AVPacket *pkt) s 1575 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "HEVC bitstream malformed, no startcode found\n"); s 1578 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, "HEVC bitstream error, startcode missing, size %d", pkt->size); s 1580 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, " data %08"PRIX32, AV_RB32(pkt->data)); s 1581 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, "\n"); s 1590 libavformat/mpegtsenc.c static int opus_get_packet_samples(AVFormatContext *s, AVPacket *pkt) s 1630 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, s 1638 libavformat/mpegtsenc.c static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt) s 1640 libavformat/mpegtsenc.c AVStream *st = s->streams[pkt->stream_index]; s 1644 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 1646 libavformat/mpegtsenc.c const int64_t delay = av_rescale(s->max_delay, 90000, AV_TIME_BASE) * 2; s 1647 libavformat/mpegtsenc.c const int64_t max_audio_delay = av_rescale(s->max_delay, 90000, AV_TIME_BASE) / 2; s 1668 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "first pts value must be set\n"); s 1677 libavformat/mpegtsenc.c int ret = ff_check_h264_startcode(s, st, pkt); s 1686 libavformat/mpegtsenc.c av_log(s, AV_LOG_TRACE, "nal %"PRId32"\n", state & 0x1f); s 1708 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "AAC packet too short\n"); s 1716 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "AAC bitstream not in ADTS format " s 1743 libavformat/mpegtsenc.c int ret = check_hevc_startcode(s, st, pkt); s 1752 libavformat/mpegtsenc.c av_log(s, AV_LOG_TRACE, "nal %"PRId32"\n", (state & 0x7e)>>1); s 1775 libavformat/mpegtsenc.c av_log(s, AV_LOG_ERROR, "Opus packet too short\n"); s 1787 libavformat/mpegtsenc.c opus_samples = opus_get_packet_samples(s, pkt); s 1842 libavformat/mpegtsenc.c av_log(s, AV_LOG_WARNING, "Got MPEG-TS formatted Opus data, unhandled"); s 1850 libavformat/mpegtsenc.c mpegts_write_pes(s, st, ts_st->payload, ts_st->payload_size, s 1860 libavformat/mpegtsenc.c mpegts_write_pes(s, st, buf, size, pts, dts, s 1882 libavformat/mpegtsenc.c static void mpegts_write_flush(AVFormatContext *s) s 1884 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 1888 libavformat/mpegtsenc.c for (i = 0; i < s->nb_streams; i++) { s 1889 libavformat/mpegtsenc.c AVStream *st = s->streams[i]; s 1892 libavformat/mpegtsenc.c mpegts_write_pes(s, st, ts_st->payload, ts_st->payload_size, s 1901 libavformat/mpegtsenc.c int packets = (avio_tell(s->pb) / (TS_PACKET_SIZE + 4)) % 32; s 1903 libavformat/mpegtsenc.c mpegts_insert_null_packet(s); s 1907 libavformat/mpegtsenc.c static int mpegts_write_packet(AVFormatContext *s, AVPacket *pkt) s 1910 libavformat/mpegtsenc.c mpegts_write_flush(s); s 1913 libavformat/mpegtsenc.c return mpegts_write_packet_internal(s, pkt); s 1917 libavformat/mpegtsenc.c static int mpegts_write_end(AVFormatContext *s) s 1919 libavformat/mpegtsenc.c if (s->pb) s 1920 libavformat/mpegtsenc.c mpegts_write_flush(s); s 1925 libavformat/mpegtsenc.c static void mpegts_deinit(AVFormatContext *s) s 1927 libavformat/mpegtsenc.c MpegTSWrite *ts = s->priv_data; s 1931 libavformat/mpegtsenc.c for (i = 0; i < s->nb_streams; i++) { s 1932 libavformat/mpegtsenc.c AVStream *st = s->streams[i]; s 1950 libavformat/mpegtsenc.c static int mpegts_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) s 1953 libavformat/mpegtsenc.c AVStream *st = s->streams[pkt->stream_index]; s 33 libavformat/mpjpeg.c static int mpjpeg_write_header(AVFormatContext *s) s 35 libavformat/mpjpeg.c MPJPEGContext *mpj = s->priv_data; s 36 libavformat/mpjpeg.c avio_printf(s->pb, "--%s\r\n", mpj->boundary_tag); s 40 libavformat/mpjpeg.c static int mpjpeg_write_packet(AVFormatContext *s, AVPacket *pkt) s 42 libavformat/mpjpeg.c MPJPEGContext *mpj = s->priv_data; s 43 libavformat/mpjpeg.c avio_printf(s->pb, "Content-type: image/jpeg\r\n"); s 44 libavformat/mpjpeg.c avio_printf(s->pb, "Content-length: %d\r\n\r\n", s 46 libavformat/mpjpeg.c avio_write(s->pb, pkt->data, pkt->size); s 48 libavformat/mpjpeg.c avio_printf(s->pb, "\r\n--%s\r\n", mpj->boundary_tag); s 106 libavformat/mpjpegdec.c static int mpjpeg_read_close(AVFormatContext *s) s 108 libavformat/mpjpegdec.c MPJPEGDemuxContext *mpjpeg = s->priv_data; s 130 libavformat/mpjpegdec.c static int mpjpeg_read_header(AVFormatContext *s) s 134 libavformat/mpjpegdec.c int64_t pos = avio_tell(s->pb); s 138 libavformat/mpjpegdec.c ret = get_line(s->pb, boundary, sizeof(boundary)); s 146 libavformat/mpjpegdec.c st = avformat_new_stream(s, NULL); s 155 libavformat/mpjpegdec.c avio_seek(s->pb, pos, SEEK_SET); s 293 libavformat/mpjpegdec.c static int mpjpeg_read_packet(AVFormatContext *s, AVPacket *pkt) s 298 libavformat/mpjpegdec.c MPJPEGDemuxContext *mpjpeg = s->priv_data; s 302 libavformat/mpjpegdec.c boundary = mpjpeg_get_boundary(s->pb); s 320 libavformat/mpjpegdec.c ret = parse_multipart_header(s->pb, &size, mpjpeg->boundary, s); s 328 libavformat/mpjpegdec.c ret = av_get_packet(s->pb, pkt, size); s 335 libavformat/mpjpegdec.c pkt->pos = avio_tell(s->pb); s 337 libavformat/mpjpegdec.c while ((ret = ffio_ensure_seekback(s->pb, read_chunk - remaining)) >= 0 && /* we may need to return as much as all we've read back to the buffer */ s 338 libavformat/mpjpegdec.c (ret = av_append_packet(s->pb, pkt, read_chunk - remaining)) >= 0) { s 347 libavformat/mpjpegdec.c avio_seek(s->pb, -len, SEEK_CUR); s 82 libavformat/mpl2dec.c static int mpl2_read_header(AVFormatContext *s) s 84 libavformat/mpl2dec.c MPL2Context *mpl2 = s->priv_data; s 85 libavformat/mpl2dec.c AVStream *st = avformat_new_stream(s, NULL); s 94 libavformat/mpl2dec.c if (avio_rb24(s->pb) != 0xefbbbf) s 95 libavformat/mpl2dec.c avio_seek(s->pb, -3, SEEK_CUR); s 97 libavformat/mpl2dec.c while (!avio_feof(s->pb)) { s 100 libavformat/mpl2dec.c const int64_t pos = avio_tell(s->pb); s 101 libavformat/mpl2dec.c int len = ff_get_line(s->pb, line, sizeof(line)); s 124 libavformat/mpl2dec.c ff_subtitles_queue_finalize(s, &mpl2->q); s 128 libavformat/mpl2dec.c static int mpl2_read_packet(AVFormatContext *s, AVPacket *pkt) s 130 libavformat/mpl2dec.c MPL2Context *mpl2 = s->priv_data; s 134 libavformat/mpl2dec.c static int mpl2_read_seek(AVFormatContext *s, int stream_index, s 137 libavformat/mpl2dec.c MPL2Context *mpl2 = s->priv_data; s 138 libavformat/mpl2dec.c return ff_subtitles_queue_seek(&mpl2->q, s, stream_index, s 142 libavformat/mpl2dec.c static int mpl2_read_close(AVFormatContext *s) s 144 libavformat/mpl2dec.c MPL2Context *mpl2 = s->priv_data; s 89 libavformat/mpsubdec.c static int mpsub_read_header(AVFormatContext *s) s 91 libavformat/mpsubdec.c MPSubContext *mpsub = s->priv_data; s 102 libavformat/mpsubdec.c while (!avio_feof(s->pb)) { s 105 libavformat/mpsubdec.c int fps, len = ff_get_line(s->pb, line, sizeof(line)); s 117 libavformat/mpsubdec.c const int64_t pos = avio_tell(s->pb); s 119 libavformat/mpsubdec.c ff_subtitles_read_chunk(s->pb, &buf); s 156 libavformat/mpsubdec.c st = avformat_new_stream(s, NULL); s 165 libavformat/mpsubdec.c ff_subtitles_queue_finalize(s, &mpsub->q); s 175 libavformat/mpsubdec.c static int mpsub_read_packet(AVFormatContext *s, AVPacket *pkt) s 177 libavformat/mpsubdec.c MPSubContext *mpsub = s->priv_data; s 181 libavformat/mpsubdec.c static int mpsub_read_seek(AVFormatContext *s, int stream_index, s 184 libavformat/mpsubdec.c MPSubContext *mpsub = s->priv_data; s 185 libavformat/mpsubdec.c return ff_subtitles_queue_seek(&mpsub->q, s, stream_index, s 189 libavformat/mpsubdec.c static int mpsub_read_close(AVFormatContext *s) s 191 libavformat/mpsubdec.c MPSubContext *mpsub = s->priv_data; s 43 libavformat/msf.c static int msf_read_header(AVFormatContext *s) s 49 libavformat/msf.c avio_skip(s->pb, 4); s 51 libavformat/msf.c st = avformat_new_stream(s, NULL); s 56 libavformat/msf.c codec = avio_rb32(s->pb); s 57 libavformat/msf.c st->codecpar->channels = avio_rb32(s->pb); s 60 libavformat/msf.c size = avio_rb32(s->pb); s 61 libavformat/msf.c st->codecpar->sample_rate = avio_rb32(s->pb); s 86 libavformat/msf.c avpriv_request_sample(s, "Codec %d", codec); s 90 libavformat/msf.c avio_skip(s->pb, 0x40 - avio_tell(s->pb)); s 96 libavformat/msf.c static int msf_read_packet(AVFormatContext *s, AVPacket *pkt) s 98 libavformat/msf.c AVCodecParameters *par = s->streams[0]->codecpar; s 100 libavformat/msf.c return av_get_packet(s->pb, pkt, par->block_align ? par->block_align : 1024 * par->channels); s 39 libavformat/mtaf.c static int mtaf_read_header(AVFormatContext *s) s 44 libavformat/mtaf.c st = avformat_new_stream(s, NULL); s 48 libavformat/mtaf.c avio_skip(s->pb, 0x5c); s 49 libavformat/mtaf.c st->duration = avio_rl32(s->pb); s 50 libavformat/mtaf.c avio_skip(s->pb, 1); s 51 libavformat/mtaf.c stream_count = avio_r8(s->pb); s 62 libavformat/mtaf.c avio_seek(s->pb, 0x800, SEEK_SET); s 67 libavformat/mtaf.c static int mtaf_read_packet(AVFormatContext *s, AVPacket *pkt) s 69 libavformat/mtaf.c AVCodecParameters *par = s->streams[0]->codecpar; s 71 libavformat/mtaf.c return av_get_packet(s->pb, pkt, par->block_align); s 101 libavformat/mtv.c static int mtv_read_header(AVFormatContext *s) s 103 libavformat/mtv.c MTVDemuxContext *mtv = s->priv_data; s 104 libavformat/mtv.c AVIOContext *pb = s->pb; s 124 libavformat/mtv.c av_log (s, AV_LOG_WARNING, "Header claims %dbpp (!= 16). Ignoring\n", s 140 libavformat/mtv.c av_log(s, AV_LOG_ERROR, "width or height or segment_size is invalid and I cannot calculate them from other information\n"); s 148 libavformat/mtv.c avpriv_request_sample(s, "MTV files without audio"); s 163 libavformat/mtv.c st = avformat_new_stream(s, NULL); s 180 libavformat/mtv.c st = avformat_new_stream(s, NULL); s 199 libavformat/mtv.c static int mtv_read_packet(AVFormatContext *s, AVPacket *pkt) s 201 libavformat/mtv.c MTVDemuxContext *mtv = s->priv_data; s 202 libavformat/mtv.c AVIOContext *pb = s->pb; s 205 libavformat/mtv.c if((avio_tell(pb) - s->internal->data_offset + mtv->img_segment_size) % mtv->full_segment_size) s 34 libavformat/musx.c static int musx_read_header(AVFormatContext *s) s 39 libavformat/musx.c avio_skip(s->pb, 8); s 40 libavformat/musx.c version = avio_rl32(s->pb); s 46 libavformat/musx.c avpriv_request_sample(s, "Unsupported version: %d", version); s 49 libavformat/musx.c avio_skip(s->pb, 4); s 51 libavformat/musx.c st = avformat_new_stream(s, NULL); s 56 libavformat/musx.c avio_skip(s->pb, 8); s 57 libavformat/musx.c offset = avio_rl32(s->pb); s 64 libavformat/musx.c type = avio_rl32(s->pb); s 71 libavformat/musx.c avio_skip(s->pb, 44); s 72 libavformat/musx.c coding = avio_rl32(s->pb); s 75 libavformat/musx.c avio_skip(s->pb, 4); s 76 libavformat/musx.c st->codecpar->channels = avio_rl32(s->pb); s 80 libavformat/musx.c st->codecpar->sample_rate = avio_rl32(s->pb); s 86 libavformat/musx.c avio_skip(s->pb, 44); s 87 libavformat/musx.c coding = avio_rl32(s->pb); s 90 libavformat/musx.c avpriv_request_sample(s, "Unsupported coding: %X", coding); s 93 libavformat/musx.c avio_skip(s->pb, 4); s 95 libavformat/musx.c st->codecpar->channels = avio_rl32(s->pb); s 99 libavformat/musx.c st->codecpar->sample_rate = avio_rl32(s->pb); s 121 libavformat/musx.c avpriv_request_sample(s, "Unsupported type: %X", type); s 125 libavformat/musx.c type = avio_rl32(s->pb); s 126 libavformat/musx.c avio_skip(s->pb, 20); s 134 libavformat/musx.c offset = avio_rb32(s->pb); s 140 libavformat/musx.c offset = avio_rl32(s->pb); s 146 libavformat/musx.c offset = avio_rl32(s->pb); s 149 libavformat/musx.c avpriv_request_sample(s, "Unsupported type: %X", type); s 156 libavformat/musx.c avio_seek(s->pb, offset, SEEK_SET); s 163 libavformat/musx.c static int musx_read_packet(AVFormatContext *s, AVPacket *pkt) s 165 libavformat/musx.c AVCodecParameters *par = s->streams[0]->codecpar; s 167 libavformat/musx.c return av_get_packet(s->pb, pkt, par->block_align); s 89 libavformat/mux.c AVRational ff_choose_timebase(AVFormatContext *s, AVStream *st, int min_precision) s 105 libavformat/mux.c enum AVChromaLocation ff_choose_chroma_location(AVFormatContext *s, AVStream *st) s 138 libavformat/mux.c AVFormatContext *s = avformat_alloc_context(); s 142 libavformat/mux.c if (!s) s 149 libavformat/mux.c av_log(s, AV_LOG_ERROR, "Requested output format '%s' is not a suitable output format\n", format); s 157 libavformat/mux.c av_log(s, AV_LOG_ERROR, "Unable to find a suitable output format for '%s'\n", s 164 libavformat/mux.c s->oformat = oformat; s 165 libavformat/mux.c if (s->oformat->priv_data_size > 0) { s 166 libavformat/mux.c s->priv_data = av_mallocz(s->oformat->priv_data_size); s 167 libavformat/mux.c if (!s->priv_data) s 169 libavformat/mux.c if (s->oformat->priv_class) { s 170 libavformat/mux.c *(const AVClass**)s->priv_data= s->oformat->priv_class; s 171 libavformat/mux.c av_opt_set_defaults(s->priv_data); s 174 libavformat/mux.c s->priv_data = NULL; s 179 libavformat/mux.c av_strlcpy(s->filename, filename, sizeof(s->filename)); s 182 libavformat/mux.c if (!(s->url = av_strdup(filename))) s 186 libavformat/mux.c *avctx = s; s 189 libavformat/mux.c av_log(s, AV_LOG_ERROR, "Out of memory\n"); s 192 libavformat/mux.c avformat_free_context(s); s 196 libavformat/mux.c static int validate_codec_tag(AVFormatContext *s, AVStream *st) s 209 libavformat/mux.c for (n = 0; s->oformat->codec_tag[n]; n++) { s 210 libavformat/mux.c avctag = s->oformat->codec_tag[n]; s 224 libavformat/mux.c if (tag >= 0 && (s->strict_std_compliance >= FF_COMPLIANCE_NORMAL)) s 230 libavformat/mux.c static int init_muxer(AVFormatContext *s, AVDictionary **options) s 236 libavformat/mux.c const AVOutputFormat *of = s->oformat; s 243 libavformat/mux.c if ((ret = av_opt_set_dict(s, &tmp)) < 0) s 245 libavformat/mux.c if (s->priv_data && s->oformat->priv_class && *(const AVClass**)s->priv_data==s->oformat->priv_class && s 246 libavformat/mux.c (ret = av_opt_set_dict2(s->priv_data, &tmp, AV_OPT_SEARCH_CHILDREN)) < 0) s 251 libavformat/mux.c if (!s->url && !(s->url = av_strdup(s->filename))) { s 254 libavformat/mux.c if (!s->url && !(s->url = av_strdup(""))) { s 262 libavformat/mux.c if (s->nb_streams && s->streams[0]->codec->flags & AV_CODEC_FLAG_BITEXACT) { s 263 libavformat/mux.c if (!(s->flags & AVFMT_FLAG_BITEXACT)) { s 264 libavformat/mux.c av_log(s, AV_LOG_WARNING, s 274 libavformat/mux.c if (s->nb_streams == 0 && !(of->flags & AVFMT_NOSTREAMS)) { s 275 libavformat/mux.c av_log(s, AV_LOG_ERROR, "No streams to mux were specified\n"); s 280 libavformat/mux.c for (i = 0; i < s->nb_streams; i++) { s 281 libavformat/mux.c st = s->streams[i]; s 288 libavformat/mux.c av_log(s, AV_LOG_WARNING, "Using AVStream.codec to pass codec " s 309 libavformat/mux.c av_log(s, AV_LOG_ERROR, "sample rate not set\n"); s 320 libavformat/mux.c av_log(s, AV_LOG_ERROR, "dimensions not set\n"); s 331 libavformat/mux.c av_log(s, AV_LOG_ERROR, "Aspect ratio mismatch between muxer " s 354 libavformat/mux.c && !validate_codec_tag(s, st)) { s 360 libavformat/mux.c if (!validate_codec_tag(s, st)) { s 361 libavformat/mux.c const uint32_t otag = av_codec_get_tag(s->oformat->codec_tag, par->codec_id); s 362 libavformat/mux.c av_log(s, AV_LOG_ERROR, s 373 libavformat/mux.c s->internal->nb_interleaved_streams++; s 376 libavformat/mux.c if (!s->priv_data && of->priv_data_size > 0) { s 377 libavformat/mux.c s->priv_data = av_mallocz(of->priv_data_size); s 378 libavformat/mux.c if (!s->priv_data) { s 383 libavformat/mux.c *(const AVClass **)s->priv_data = of->priv_class; s 384 libavformat/mux.c av_opt_set_defaults(s->priv_data); s 385 libavformat/mux.c if ((ret = av_opt_set_dict2(s->priv_data, &tmp, AV_OPT_SEARCH_CHILDREN)) < 0) s 391 libavformat/mux.c if (!(s->flags & AVFMT_FLAG_BITEXACT)) { s 392 libavformat/mux.c av_dict_set(&s->metadata, "encoder", LIBAVFORMAT_IDENT, 0); s 394 libavformat/mux.c av_dict_set(&s->metadata, "encoder", NULL, 0); s 397 libavformat/mux.c for (e = NULL; e = av_dict_get(s->metadata, "encoder-", e, AV_DICT_IGNORE_SUFFIX); ) { s 398 libavformat/mux.c av_dict_set(&s->metadata, e->key, NULL, 0); s 406 libavformat/mux.c if (s->oformat->init) { s 407 libavformat/mux.c if ((ret = s->oformat->init(s)) < 0) { s 408 libavformat/mux.c if (s->oformat->deinit) s 409 libavformat/mux.c s->oformat->deinit(s); s 422 libavformat/mux.c static int init_pts(AVFormatContext *s) s 428 libavformat/mux.c for (i = 0; i < s->nb_streams; i++) { s 430 libavformat/mux.c st = s->streams[i]; s 456 libavformat/mux.c if (s->avoid_negative_ts < 0) { s 457 libavformat/mux.c av_assert2(s->avoid_negative_ts == AVFMT_AVOID_NEG_TS_AUTO); s 458 libavformat/mux.c if (s->oformat->flags & (AVFMT_TS_NEGATIVE | AVFMT_NOTIMESTAMPS)) { s 459 libavformat/mux.c s->avoid_negative_ts = 0; s 461 libavformat/mux.c s->avoid_negative_ts = AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE; s 467 libavformat/mux.c static void flush_if_needed(AVFormatContext *s) s 469 libavformat/mux.c if (s->pb && s->pb->error >= 0) { s 470 libavformat/mux.c if (s->flush_packets == 1 || s->flags & AVFMT_FLAG_FLUSH_PACKETS) s 471 libavformat/mux.c avio_flush(s->pb); s 472 libavformat/mux.c else if (s->flush_packets && !(s->oformat->flags & AVFMT_NOFILE)) s 473 libavformat/mux.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_FLUSH_POINT); s 477 libavformat/mux.c static void deinit_muxer(AVFormatContext *s) s 479 libavformat/mux.c if (s->oformat && s->oformat->deinit && s->internal->initialized) s 480 libavformat/mux.c s->oformat->deinit(s); s 481 libavformat/mux.c s->internal->initialized = s 482 libavformat/mux.c s->internal->streams_initialized = 0; s 485 libavformat/mux.c int avformat_init_output(AVFormatContext *s, AVDictionary **options) s 489 libavformat/mux.c if ((ret = init_muxer(s, options)) < 0) s 492 libavformat/mux.c s->internal->initialized = 1; s 493 libavformat/mux.c s->internal->streams_initialized = ret; s 495 libavformat/mux.c if (s->oformat->init && ret) { s 496 libavformat/mux.c if ((ret = init_pts(s)) < 0) s 505 libavformat/mux.c int avformat_write_header(AVFormatContext *s, AVDictionary **options) s 508 libavformat/mux.c int already_initialized = s->internal->initialized; s 509 libavformat/mux.c int streams_already_initialized = s->internal->streams_initialized; s 512 libavformat/mux.c if ((ret = avformat_init_output(s, options)) < 0) s 515 libavformat/mux.c if (!(s->oformat->flags & AVFMT_NOFILE) && s->pb) s 516 libavformat/mux.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_HEADER); s 517 libavformat/mux.c if (s->oformat->write_header) { s 518 libavformat/mux.c ret = s->oformat->write_header(s); s 519 libavformat/mux.c if (ret >= 0 && s->pb && s->pb->error < 0) s 520 libavformat/mux.c ret = s->pb->error; s 523 libavformat/mux.c flush_if_needed(s); s 525 libavformat/mux.c if (!(s->oformat->flags & AVFMT_NOFILE) && s->pb) s 526 libavformat/mux.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_UNKNOWN); s 528 libavformat/mux.c if (!s->internal->streams_initialized) { s 529 libavformat/mux.c if ((ret = init_pts(s)) < 0) s 536 libavformat/mux.c deinit_muxer(s); s 546 libavformat/mux.c static int compute_muxer_pkt_fields(AVFormatContext *s, AVStream *st, AVPacket *pkt) s 552 libavformat/mux.c if (!s->internal->missing_ts_warning && s 553 libavformat/mux.c !(s->oformat->flags & AVFMT_NOTIMESTAMPS) && s 556 libavformat/mux.c av_log(s, AV_LOG_WARNING, s 560 libavformat/mux.c s->internal->missing_ts_warning = 1; s 563 libavformat/mux.c if (s->debug & FF_FDEBUG_TS) s 564 libavformat/mux.c av_log(s, AV_LOG_DEBUG, "compute_muxer_pkt_fields: pts:%s dts:%s cur_dts:%s b:%d size:%d st:%d\n", s 568 libavformat/mux.c av_log(s, AV_LOG_WARNING, "Packet with invalid duration %"PRId64" in stream %d\n", s 575 libavformat/mux.c ff_compute_frame_duration(s, &num, &den, st, NULL, pkt); s 588 libavformat/mux.c av_log(s, AV_LOG_WARNING, "Encoder did not produce proper pts, making some up.\n"); s 608 libavformat/mux.c ((!(s->oformat->flags & AVFMT_TS_NONSTRICT) && s 612 libavformat/mux.c av_log(s, AV_LOG_ERROR, s 618 libavformat/mux.c av_log(s, AV_LOG_ERROR, s 625 libavformat/mux.c if (s->debug & FF_FDEBUG_TS) s 626 libavformat/mux.c av_log(s, AV_LOG_DEBUG, "av_write_frame: pts2:%s dts2:%s\n", s 663 libavformat/mux.c static int write_packet(AVFormatContext *s, AVPacket *pkt) s 669 libavformat/mux.c if (s->output_ts_offset) { s 670 libavformat/mux.c AVStream *st = s->streams[pkt->stream_index]; s 671 libavformat/mux.c int64_t offset = av_rescale_q(s->output_ts_offset, AV_TIME_BASE_Q, st->time_base); s 679 libavformat/mux.c if (s->avoid_negative_ts > 0) { s 680 libavformat/mux.c AVStream *st = s->streams[pkt->stream_index]; s 682 libavformat/mux.c int64_t ts = s->internal->avoid_negative_ts_use_pts ? pkt->pts : pkt->dts; s 684 libavformat/mux.c if (s->internal->offset == AV_NOPTS_VALUE && ts != AV_NOPTS_VALUE && s 685 libavformat/mux.c (ts < 0 || s->avoid_negative_ts == AVFMT_AVOID_NEG_TS_MAKE_ZERO)) { s 686 libavformat/mux.c s->internal->offset = -ts; s 687 libavformat/mux.c s->internal->offset_timebase = st->time_base; s 690 libavformat/mux.c if (s->internal->offset != AV_NOPTS_VALUE && !offset) { s 692 libavformat/mux.c av_rescale_q_rnd(s->internal->offset, s 693 libavformat/mux.c s->internal->offset_timebase, s 703 libavformat/mux.c if (s->internal->avoid_negative_ts_use_pts) { s 705 libavformat/mux.c av_log(s, AV_LOG_WARNING, "failed to avoid negative " s 713 libavformat/mux.c av_assert2(pkt->dts == AV_NOPTS_VALUE || pkt->dts >= 0 || s->max_interleave_delta > 0); s 715 libavformat/mux.c av_log(s, AV_LOG_WARNING, s 729 libavformat/mux.c ret = s->oformat->write_uncoded_frame(s, pkt->stream_index, frame, 0); s 731 libavformat/mux.c ret = s->oformat->write_packet(s, pkt); s 734 libavformat/mux.c if (s->pb && ret >= 0) { s 735 libavformat/mux.c flush_if_needed(s); s 736 libavformat/mux.c if (s->pb->error < 0) s 737 libavformat/mux.c ret = s->pb->error; s 741 libavformat/mux.c s->streams[pkt->stream_index]->nb_frames++; s 746 libavformat/mux.c static int check_packet(AVFormatContext *s, AVPacket *pkt) s 748 libavformat/mux.c if (pkt->stream_index < 0 || pkt->stream_index >= s->nb_streams) { s 749 libavformat/mux.c av_log(s, AV_LOG_ERROR, "Invalid packet stream index: %d\n", s 754 libavformat/mux.c if (s->streams[pkt->stream_index]->codecpar->codec_type == AVMEDIA_TYPE_ATTACHMENT) { s 755 libavformat/mux.c av_log(s, AV_LOG_ERROR, "Received a packet for an attachment stream.\n"); s 762 libavformat/mux.c static int prepare_input_packet(AVFormatContext *s, AVStream *st, AVPacket *pkt) s 766 libavformat/mux.c if (!(s->oformat->flags & AVFMT_NOTIMESTAMPS)) { s 779 libavformat/mux.c av_log(s, AV_LOG_ERROR, s 787 libavformat/mux.c ((!(s->oformat->flags & AVFMT_TS_NONSTRICT) && st->cur_dts >= pkt->dts) || s 789 libavformat/mux.c av_log(s, AV_LOG_ERROR, s 797 libavformat/mux.c av_log(s, AV_LOG_ERROR, "pts %" PRId64 " < dts %" PRId64 " in stream %d\n", s 812 libavformat/mux.c int ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt, s 817 libavformat/mux.c AVStream *st = s->streams[pkt->stream_index]; s 818 libavformat/mux.c int chunked = s->max_chunk_size || s->max_chunk_duration; s 837 libavformat/mux.c next_point = &s->internal->packet_buffer; s 841 libavformat/mux.c uint64_t max= av_rescale_q_rnd(s->max_chunk_duration, AV_TIME_BASE_Q, st->time_base, AV_ROUND_UP); s 844 libavformat/mux.c if ( (s->max_chunk_size && st->interleaver_chunk_size > s->max_chunk_size) s 861 libavformat/mux.c if (compare(s, &s->internal->packet_buffer_end->pkt, pkt)) { s 864 libavformat/mux.c || !compare(s, &(*next_point)->pkt, pkt))) s 869 libavformat/mux.c next_point = &(s->internal->packet_buffer_end->next); s 874 libavformat/mux.c s->internal->packet_buffer_end = this_pktl; s 884 libavformat/mux.c static int interleave_compare_dts(AVFormatContext *s, const AVPacket *next, s 887 libavformat/mux.c AVStream *st = s->streams[pkt->stream_index]; s 888 libavformat/mux.c AVStream *st2 = s->streams[next->stream_index]; s 891 libavformat/mux.c if (s->audio_preload) { s 896 libavformat/mux.c preload *= s->audio_preload; s 897 libavformat/mux.c preload2 *= s->audio_preload; s 914 libavformat/mux.c int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, s 924 libavformat/mux.c if ((ret = ff_interleave_add_packet(s, pkt, interleave_compare_dts)) < 0) s 928 libavformat/mux.c for (i = 0; i < s->nb_streams; i++) { s 929 libavformat/mux.c if (s->streams[i]->last_in_packet_buffer) { s 931 libavformat/mux.c } else if (s->streams[i]->codecpar->codec_type != AVMEDIA_TYPE_ATTACHMENT && s 932 libavformat/mux.c s->streams[i]->codecpar->codec_id != AV_CODEC_ID_VP8 && s 933 libavformat/mux.c s->streams[i]->codecpar->codec_id != AV_CODEC_ID_VP9) { s 938 libavformat/mux.c if (s->internal->nb_interleaved_streams == stream_count) s 941 libavformat/mux.c if (s->max_interleave_delta > 0 && s 942 libavformat/mux.c s->internal->packet_buffer && s 944 libavformat/mux.c s->internal->nb_interleaved_streams == stream_count+noninterleaved_count s 946 libavformat/mux.c AVPacket *top_pkt = &s->internal->packet_buffer->pkt; s 949 libavformat/mux.c s->streams[top_pkt->stream_index]->time_base, s 952 libavformat/mux.c for (i = 0; i < s->nb_streams; i++) { s 954 libavformat/mux.c const AVPacketList *last = s->streams[i]->last_in_packet_buffer; s 960 libavformat/mux.c s->streams[i]->time_base, s 965 libavformat/mux.c if (delta_dts > s->max_interleave_delta) { s 966 libavformat/mux.c av_log(s, AV_LOG_DEBUG, s 969 libavformat/mux.c delta_dts, s->max_interleave_delta); s 974 libavformat/mux.c if (s->internal->packet_buffer && s 976 libavformat/mux.c (s->flags & AVFMT_FLAG_SHORTEST) && s 977 libavformat/mux.c s->internal->shortest_end == AV_NOPTS_VALUE) { s 978 libavformat/mux.c AVPacket *top_pkt = &s->internal->packet_buffer->pkt; s 980 libavformat/mux.c s->internal->shortest_end = av_rescale_q(top_pkt->dts, s 981 libavformat/mux.c s->streams[top_pkt->stream_index]->time_base, s 985 libavformat/mux.c if (s->internal->shortest_end != AV_NOPTS_VALUE) { s 986 libavformat/mux.c while (s->internal->packet_buffer) { s 987 libavformat/mux.c AVPacket *top_pkt = &s->internal->packet_buffer->pkt; s 990 libavformat/mux.c s->streams[top_pkt->stream_index]->time_base, s 993 libavformat/mux.c if (s->internal->shortest_end + 1 >= top_dts) s 996 libavformat/mux.c pktl = s->internal->packet_buffer; s 997 libavformat/mux.c st = s->streams[pktl->pkt.stream_index]; s 999 libavformat/mux.c s->internal->packet_buffer = pktl->next; s 1000 libavformat/mux.c if (!s->internal->packet_buffer) s 1001 libavformat/mux.c s->internal->packet_buffer_end = NULL; s 1014 libavformat/mux.c pktl = s->internal->packet_buffer; s 1016 libavformat/mux.c st = s->streams[out->stream_index]; s 1018 libavformat/mux.c s->internal->packet_buffer = pktl->next; s 1019 libavformat/mux.c if (!s->internal->packet_buffer) s 1020 libavformat/mux.c s->internal->packet_buffer_end = NULL; s 1032 libavformat/mux.c int ff_interleaved_peek(AVFormatContext *s, int stream, s 1035 libavformat/mux.c AVPacketList *pktl = s->internal->packet_buffer; s 1040 libavformat/mux.c AVStream *st = s->streams[pkt->stream_index]; s 1043 libavformat/mux.c if (s->output_ts_offset) s 1044 libavformat/mux.c offset += av_rescale_q(s->output_ts_offset, AV_TIME_BASE_Q, st->time_base); s 1067 libavformat/mux.c static int interleave_packet(AVFormatContext *s, AVPacket *out, AVPacket *in, int flush) s 1069 libavformat/mux.c if (s->oformat->interleave_packet) { s 1070 libavformat/mux.c return s->oformat->interleave_packet(s, out, in, flush); s 1072 libavformat/mux.c return ff_interleave_packet_per_dts(s, out, in, flush); s 1075 libavformat/mux.c static int check_bitstream(AVFormatContext *s, AVStream *st, AVPacket *pkt) s 1079 libavformat/mux.c if (!(s->flags & AVFMT_FLAG_AUTO_BSF)) s 1082 libavformat/mux.c if (s->oformat->check_bitstream) { s 1084 libavformat/mux.c if ((ret = s->oformat->check_bitstream(s, pkt)) < 0) s 1094 libavformat/mux.c static int interleaved_write_packet(AVFormatContext *s, AVPacket *pkt, int flush) s 1098 libavformat/mux.c int ret = interleave_packet(s, &opkt, pkt, flush); s 1104 libavformat/mux.c ret = write_packet(s, &opkt); s 1113 libavformat/mux.c static int write_packet_common(AVFormatContext *s, AVStream *st, AVPacket *pkt, int interleaved) s 1117 libavformat/mux.c if (s->debug & FF_FDEBUG_TS) s 1118 libavformat/mux.c av_log(s, AV_LOG_DEBUG, "%s size:%d dts:%s pts:%s\n", __FUNCTION__, s 1122 libavformat/mux.c if ((ret = compute_muxer_pkt_fields(s, st, pkt)) < 0 && !(s->oformat->flags & AVFMT_NOTIMESTAMPS)) s 1127 libavformat/mux.c if (pkt->dts == AV_NOPTS_VALUE && !(s->oformat->flags & AVFMT_NOTIMESTAMPS)) s 1129 libavformat/mux.c return interleaved_write_packet(s, pkt, 0); s 1131 libavformat/mux.c return write_packet(s, pkt); s 1135 libavformat/mux.c static int write_packets_from_bsfs(AVFormatContext *s, AVStream *st, AVPacket *pkt, int interleaved) s 1141 libavformat/mux.c av_log(s, AV_LOG_ERROR, s 1152 libavformat/mux.c av_log(s, AV_LOG_ERROR, "Error applying bitstream filters to an output " s 1154 libavformat/mux.c if (!(s->error_recognition & AV_EF_EXPLODE) && ret != AVERROR(ENOMEM)) s 1159 libavformat/mux.c ret = write_packet_common(s, st, pkt, interleaved); s 1167 libavformat/mux.c static int write_packets_common(AVFormatContext *s, AVPacket *pkt, int interleaved) s 1170 libavformat/mux.c int ret = check_packet(s, pkt); s 1173 libavformat/mux.c st = s->streams[pkt->stream_index]; s 1175 libavformat/mux.c ret = prepare_input_packet(s, st, pkt); s 1179 libavformat/mux.c ret = check_bitstream(s, st, pkt); s 1184 libavformat/mux.c return write_packets_from_bsfs(s, st, pkt, interleaved); s 1186 libavformat/mux.c return write_packet_common(s, st, pkt, interleaved); s 1190 libavformat/mux.c int av_write_frame(AVFormatContext *s, AVPacket *in) s 1196 libavformat/mux.c if (s->oformat->flags & AVFMT_ALLOW_FLUSH) { s 1197 libavformat/mux.c ret = s->oformat->write_packet(s, NULL); s 1198 libavformat/mux.c flush_if_needed(s); s 1199 libavformat/mux.c if (ret >= 0 && s->pb && s->pb->error < 0) s 1200 libavformat/mux.c ret = s->pb->error; s 1228 libavformat/mux.c ret = write_packets_common(s, pkt, 0/*non-interleaved*/); s 1236 libavformat/mux.c int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt) s 1241 libavformat/mux.c ret = write_packets_common(s, pkt, 1/*interleaved*/); s 1246 libavformat/mux.c av_log(s, AV_LOG_TRACE, "av_interleaved_write_frame FLUSH\n"); s 1247 libavformat/mux.c return interleaved_write_packet(s, NULL, 1/*flush*/); s 1251 libavformat/mux.c int av_write_trailer(AVFormatContext *s) s 1257 libavformat/mux.c for (i = 0; i < s->nb_streams; i++) { s 1258 libavformat/mux.c if (s->streams[i]->internal->bsfc) { s 1259 libavformat/mux.c ret1 = write_packets_from_bsfs(s, s->streams[i], &pkt, 1/*interleaved*/); s 1266 libavformat/mux.c ret1 = interleaved_write_packet(s, NULL, 1); s 1270 libavformat/mux.c if (s->oformat->write_trailer) { s 1271 libavformat/mux.c if (!(s->oformat->flags & AVFMT_NOFILE) && s->pb) s 1272 libavformat/mux.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_TRAILER); s 1274 libavformat/mux.c ret = s->oformat->write_trailer(s); s 1276 libavformat/mux.c s->oformat->write_trailer(s); s 1280 libavformat/mux.c deinit_muxer(s); s 1282 libavformat/mux.c if (s->pb) s 1283 libavformat/mux.c avio_flush(s->pb); s 1285 libavformat/mux.c ret = s->pb ? s->pb->error : 0; s 1286 libavformat/mux.c for (i = 0; i < s->nb_streams; i++) { s 1287 libavformat/mux.c av_freep(&s->streams[i]->priv_data); s 1288 libavformat/mux.c av_freep(&s->streams[i]->index_entries); s 1290 libavformat/mux.c if (s->oformat->priv_class) s 1291 libavformat/mux.c av_opt_free(s->priv_data); s 1292 libavformat/mux.c av_freep(&s->priv_data); s 1296 libavformat/mux.c int av_get_output_timestamp(struct AVFormatContext *s, int stream, s 1299 libavformat/mux.c if (!s->oformat || !s->oformat->get_output_timestamp) s 1301 libavformat/mux.c s->oformat->get_output_timestamp(s, stream, dts, wall); s 1332 libavformat/mux.c static int write_uncoded_frame_internal(AVFormatContext *s, int stream_index, s 1337 libavformat/mux.c av_assert0(s->oformat); s 1338 libavformat/mux.c if (!s->oformat->write_uncoded_frame) { s 1372 libavformat/mux.c return interleaved ? av_interleaved_write_frame(s, pktp) : s 1373 libavformat/mux.c av_write_frame(s, pktp); s 1376 libavformat/mux.c int av_write_uncoded_frame(AVFormatContext *s, int stream_index, s 1379 libavformat/mux.c return write_uncoded_frame_internal(s, stream_index, frame, 0); s 1382 libavformat/mux.c int av_interleaved_write_uncoded_frame(AVFormatContext *s, int stream_index, s 1385 libavformat/mux.c return write_uncoded_frame_internal(s, stream_index, frame, 1); s 1388 libavformat/mux.c int av_write_uncoded_frame_query(AVFormatContext *s, int stream_index) s 1390 libavformat/mux.c av_assert0(s->oformat); s 1391 libavformat/mux.c if (!s->oformat->write_uncoded_frame) s 1393 libavformat/mux.c return s->oformat->write_uncoded_frame(s, stream_index, NULL, s 77 libavformat/mvdec.c char *s = var_read_string(pb, size); s 78 libavformat/mvdec.c if (!s) s 80 libavformat/mvdec.c v = strtol(s, NULL, 10); s 81 libavformat/mvdec.c av_free(s); s 88 libavformat/mvdec.c char *s = var_read_string(pb, size); s 89 libavformat/mvdec.c if (!s) s 91 libavformat/mvdec.c v = av_d2q(av_strtod(s, NULL), INT_MAX); s 92 libavformat/mvdec.c av_free(s); s 42 libavformat/mvi.c static int read_header(AVFormatContext *s) s 44 libavformat/mvi.c MviDemuxContext *mvi = s->priv_data; s 45 libavformat/mvi.c AVIOContext *pb = s->pb; s 50 libavformat/mvi.c ast = avformat_new_stream(s, NULL); s 54 libavformat/mvi.c vst = avformat_new_stream(s, NULL); s 80 libavformat/mvi.c av_log(s, AV_LOG_ERROR, "unhandled version (%d,%d)\n", version, player_version); s 101 libavformat/mvi.c av_log(s, AV_LOG_ERROR, s 113 libavformat/mvi.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 116 libavformat/mvi.c MviDemuxContext *mvi = s->priv_data; s 117 libavformat/mvi.c AVIOContext *pb = s->pb; s 112 libavformat/mxf.h #define PRINT_KEY(pc, s, x) \ s 119 libavformat/mxf.h s, UID_ARG(x)); \ s 126 libavformat/mxf.h s, UID_ARG(x)) s 128 libavformat/mxf.h #define PRINT_KEY(pc, s, x) do { if(0) \ s 135 libavformat/mxf.h s, UID_ARG(x)); \ s 305 libavformat/mxfdec.c static int mxf_read_close(AVFormatContext *s); s 419 libavformat/mxfdec.c static int mxf_get_stream_index(AVFormatContext *s, KLVPacket *klv, int body_sid) s 423 libavformat/mxfdec.c for (i = 0; i < s->nb_streams; i++) { s 424 libavformat/mxfdec.c MXFTrack *track = s->streams[i]->priv_data; s 430 libavformat/mxfdec.c return s->nb_streams == 1 && s->streams[0]->priv_data ? 0 : -1; s 456 libavformat/mxfdec.c static int mxf_get_eia608_packet(AVFormatContext *s, AVStream *st, AVPacket *pkt, int64_t length) s 458 libavformat/mxfdec.c int count = avio_rb16(s->pb); s 465 libavformat/mxfdec.c av_log(s, AV_LOG_WARNING, "unsupported multiple ANC packets (%d) per KLV packet\n", count); s 469 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "error reading s436m packet %"PRId64"\n", length); s 472 libavformat/mxfdec.c line_num = avio_rb16(s->pb); s 473 libavformat/mxfdec.c avio_r8(s->pb); // wrapping type s 474 libavformat/mxfdec.c sample_coding = avio_r8(s->pb); s 475 libavformat/mxfdec.c sample_count = avio_rb16(s->pb); s 480 libavformat/mxfdec.c av_log(s, AV_LOG_WARNING, "unsupported s436m 10 bit sample coding\n"); s 486 libavformat/mxfdec.c avio_rb32(s->pb); // array count s 487 libavformat/mxfdec.c avio_rb32(s->pb); // array elem size s 488 libavformat/mxfdec.c did = avio_r8(s->pb); s 489 libavformat/mxfdec.c sdid = avio_r8(s->pb); s 490 libavformat/mxfdec.c data_length = avio_r8(s->pb); s 492 libavformat/mxfdec.c av_log(s, AV_LOG_WARNING, "unsupported did or sdid: %x %x\n", did, sdid); s 495 libavformat/mxfdec.c cdp_identifier = avio_rb16(s->pb); // cdp id s 497 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "wrong cdp identifier %x\n", cdp_identifier); s 500 libavformat/mxfdec.c cdp_length = avio_r8(s->pb); s 501 libavformat/mxfdec.c avio_r8(s->pb); // cdp_frame_rate s 502 libavformat/mxfdec.c avio_r8(s->pb); // cdp_flags s 503 libavformat/mxfdec.c avio_rb16(s->pb); // cdp_hdr_sequence_cntr s 504 libavformat/mxfdec.c ccdata_id = avio_r8(s->pb); // ccdata_id s 506 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "wrong cdp data section %x\n", ccdata_id); s 509 libavformat/mxfdec.c cc_count = avio_r8(s->pb) & 0x1f; s 510 libavformat/mxfdec.c ret = av_get_packet(s->pb, pkt, cc_count * 3); s 514 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "wrong cdp size %d cc count %d\n", cdp_length, cc_count); s 517 libavformat/mxfdec.c avio_skip(s->pb, data_length - 9 - 4 - cc_count * 3); s 518 libavformat/mxfdec.c cdp_footer_id = avio_r8(s->pb); s 520 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "wrong cdp footer section %x\n", cdp_footer_id); s 523 libavformat/mxfdec.c avio_rb16(s->pb); // cdp_ftr_sequence_cntr s 524 libavformat/mxfdec.c avio_r8(s->pb); // packet_checksum s 560 libavformat/mxfdec.c static int mxf_decrypt_triplet(AVFormatContext *s, AVPacket *pkt, KLVPacket *klv) s 563 libavformat/mxfdec.c MXFContext *mxf = s->priv_data; s 564 libavformat/mxfdec.c AVIOContext *pb = s->pb; s 574 libavformat/mxfdec.c if (!mxf->aesc && s->key && s->keylen == 16) { s 578 libavformat/mxfdec.c av_aes_init(mxf->aesc, s->key, 128, 1); s 595 libavformat/mxfdec.c index = mxf_get_stream_index(s, klv, body_sid); s 612 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "probably incorrect decryption key\n"); s 658 libavformat/mxfdec.c AVFormatContext *s = mxf->fc; s 726 libavformat/mxfdec.c av_dict_set(&s->metadata, "operational_pattern_ul", str, 0); s 1441 libavformat/mxfdec.c MXFIndexTableSegment *s = (MXFIndexTableSegment*)mxf->metadata_sets[i]; s 1442 libavformat/mxfdec.c if (s->edit_unit_byte_count || s->nb_index_entries) s 1443 libavformat/mxfdec.c unsorted_segments[nb_segments++] = s; s 1446 libavformat/mxfdec.c s->index_sid, s->index_start_position); s 1464 libavformat/mxfdec.c MXFIndexTableSegment *s = unsorted_segments[j]; s 1471 libavformat/mxfdec.c s->body_sid > last_body_sid || s 1472 libavformat/mxfdec.c s->body_sid == last_body_sid && s->index_sid > last_index_sid || s 1473 libavformat/mxfdec.c s->body_sid == last_body_sid && s->index_sid == last_index_sid && s->index_start_position > last_index_start) && s 1475 libavformat/mxfdec.c s->body_sid < best_body_sid || s 1476 libavformat/mxfdec.c s->body_sid == best_body_sid && s->index_sid < best_index_sid || s 1477 libavformat/mxfdec.c s->body_sid == best_body_sid && s->index_sid == best_index_sid && s->index_start_position < best_index_start || s 1478 libavformat/mxfdec.c s->body_sid == best_body_sid && s->index_sid == best_index_sid && s->index_start_position == best_index_start && s->index_duration > best_index_duration)) { s 1480 libavformat/mxfdec.c best_body_sid = s->body_sid; s 1481 libavformat/mxfdec.c best_index_sid = s->index_sid; s 1482 libavformat/mxfdec.c best_index_start = s->index_start_position; s 1483 libavformat/mxfdec.c best_index_duration = s->index_duration; s 1574 libavformat/mxfdec.c MXFIndexTableSegment *s = index_table->segments[i]; s 1576 libavformat/mxfdec.c edit_unit = FFMAX(edit_unit, s->index_start_position); /* clamp if trying to seek before start */ s 1578 libavformat/mxfdec.c if (edit_unit < s->index_start_position + s->index_duration) { s 1579 libavformat/mxfdec.c int64_t index = edit_unit - s->index_start_position; s 1581 libavformat/mxfdec.c if (s->edit_unit_byte_count) s 1582 libavformat/mxfdec.c offset_temp += s->edit_unit_byte_count * index; s 1584 libavformat/mxfdec.c if (s->nb_index_entries == 2 * s->index_duration + 1) s 1587 libavformat/mxfdec.c if (index < 0 || index >= s->nb_index_entries) { s 1589 libavformat/mxfdec.c index_table->index_sid, s->index_start_position); s 1593 libavformat/mxfdec.c offset_temp = s->stream_offset_entries[index]; s 1597 libavformat/mxfdec.c *edit_unit_out = av_rescale_q(edit_unit, edit_rate, s->index_edit_rate); s 1602 libavformat/mxfdec.c offset_temp += s->edit_unit_byte_count * s->index_duration; s 1620 libavformat/mxfdec.c MXFIndexTableSegment *s = index_table->segments[i]; s 1622 libavformat/mxfdec.c if (!s->nb_index_entries) { s 1627 libavformat/mxfdec.c if (s->index_duration > INT_MAX - index_table->nb_ptses) { s 1629 libavformat/mxfdec.c av_log(mxf->fc, AV_LOG_ERROR, "ignoring IndexSID %d, duration is too large\n", s->index_sid); s 1633 libavformat/mxfdec.c index_table->nb_ptses += s->index_duration; s 1683 libavformat/mxfdec.c MXFIndexTableSegment *s = index_table->segments[i]; s 1685 libavformat/mxfdec.c int n = s->nb_index_entries; s 1687 libavformat/mxfdec.c if (s->nb_index_entries == 2 * s->index_duration + 1) { s 1694 libavformat/mxfdec.c int offset = s->temporal_offset_entries[j] / index_delta; s 1700 libavformat/mxfdec.c s->nb_index_entries, s->index_duration); s 1704 libavformat/mxfdec.c flags[x] = !(s->flag_entries[j] & 0x30) ? AVINDEX_KEYFRAME : 0; s 2605 libavformat/mxfdec.c av_dict_set(&s->metadata, name, str, AV_DICT_DONT_STRDUP_VAL); \ s 2612 libavformat/mxfdec.c av_dict_set(&s->metadata, name, str, AV_DICT_DONT_STRDUP_VAL); \ s 2617 libavformat/mxfdec.c if (var && (ret = avpriv_dict_set_timestamp(&s->metadata, name, mxf_timestamp_to_int64(var))) < 0) \ s 2624 libavformat/mxfdec.c AVFormatContext *s = mxf->fc; s 2661 libavformat/mxfdec.c AVFormatContext *s = mxf->fc; s 2807 libavformat/mxfdec.c AVFormatContext *s = mxf->fc; s 2812 libavformat/mxfdec.c uint64_t next = avio_tell(s->pb) + klv.length; s 2813 libavformat/mxfdec.c res = read(mxf, s->pb, 0, klv.length, klv.key, klv.offset); s 2816 libavformat/mxfdec.c if (avio_tell(s->pb) > next) { s 2817 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "read past end of KLV @ %#"PRIx64"\n", s 2822 libavformat/mxfdec.c avio_seek(s->pb, next, SEEK_SET); s 2825 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "error reading header metadata\n"); s 2934 libavformat/mxfdec.c static MXFWrappingScheme mxf_get_wrapping_by_body_sid(AVFormatContext *s, int body_sid) s 2936 libavformat/mxfdec.c for (int i = 0; i < s->nb_streams; i++) { s 2937 libavformat/mxfdec.c MXFTrack *track = s->streams[i]->priv_data; s 2947 libavformat/mxfdec.c static void mxf_compute_essence_containers(AVFormatContext *s) s 2949 libavformat/mxfdec.c MXFContext *mxf = s->priv_data; s 2963 libavformat/mxfdec.c wrapping = (mxf->op == OPAtom) ? ClipWrapped : mxf_get_wrapping_by_body_sid(s, p->body_sid); s 3052 libavformat/mxfdec.c MXFIndexTableSegment *s = (MXFIndexTableSegment*)mxf->metadata_sets[i]; s 3053 libavformat/mxfdec.c if (s->body_sid == track->body_sid) s 3107 libavformat/mxfdec.c static void mxf_read_random_index_pack(AVFormatContext *s) s 3109 libavformat/mxfdec.c MXFContext *mxf = s->priv_data; s 3114 libavformat/mxfdec.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) s 3117 libavformat/mxfdec.c file_size = avio_size(s->pb); s 3134 libavformat/mxfdec.c avio_seek(s->pb, file_size - 4, SEEK_SET); s 3135 libavformat/mxfdec.c length = avio_rb32(s->pb); s 3139 libavformat/mxfdec.c avio_seek(s->pb, file_size - length, SEEK_SET); s 3140 libavformat/mxfdec.c if (klv_read_packet(&klv, s->pb) < 0 || s 3144 libavformat/mxfdec.c av_log(s, AV_LOG_WARNING, "Invalid RIP KLV length\n"); s 3148 libavformat/mxfdec.c avio_skip(s->pb, klv.length - 12); s 3149 libavformat/mxfdec.c mxf->footer_partition = avio_rb64(s->pb); s 3153 libavformat/mxfdec.c av_log(s, AV_LOG_WARNING, "bad FooterPartition in RIP - ignoring\n"); s 3158 libavformat/mxfdec.c avio_seek(s->pb, mxf->run_in, SEEK_SET); s 3161 libavformat/mxfdec.c static int mxf_read_header(AVFormatContext *s) s 3163 libavformat/mxfdec.c MXFContext *mxf = s->priv_data; s 3170 libavformat/mxfdec.c if (!mxf_read_sync(s->pb, mxf_header_partition_pack_key, 14)) { s 3171 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "could not find header partition pack key\n"); s 3175 libavformat/mxfdec.c avio_seek(s->pb, -14, SEEK_CUR); s 3176 libavformat/mxfdec.c mxf->fc = s; s 3177 libavformat/mxfdec.c mxf->run_in = avio_tell(s->pb); s 3179 libavformat/mxfdec.c mxf_read_random_index_pack(s); s 3181 libavformat/mxfdec.c while (!avio_feof(s->pb)) { s 3184 libavformat/mxfdec.c if (klv_read_packet(&klv, s->pb) < 0) { s 3192 libavformat/mxfdec.c PRINT_KEY(s, "read header", klv.key); s 3193 libavformat/mxfdec.c av_log(s, AV_LOG_TRACE, "size %"PRIu64" offset %#"PRIx64"\n", klv.length, klv.offset); s 3234 libavformat/mxfdec.c av_log(s, AV_LOG_VERBOSE, "Dark key " PRIxUID "\n", s 3236 libavformat/mxfdec.c avio_skip(s->pb, klv.length); s 3241 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "no essence\n"); s 3245 libavformat/mxfdec.c avio_seek(s->pb, essence_offset, SEEK_SET); s 3252 libavformat/mxfdec.c for (int i = 0; i < s->nb_streams; i++) s 3253 libavformat/mxfdec.c mxf_handle_missing_index_segment(mxf, s->streams[i]); s 3262 libavformat/mxfdec.c } else if (mxf->nb_index_tables == 0 && mxf->op == OPAtom && (s->error_recognition & AV_EF_EXPLODE)) { s 3268 libavformat/mxfdec.c mxf_compute_essence_containers(s); s 3270 libavformat/mxfdec.c for (int i = 0; i < s->nb_streams; i++) s 3271 libavformat/mxfdec.c mxf_compute_edit_units_per_packet(mxf, s->streams[i]); s 3275 libavformat/mxfdec.c mxf_read_close(s); s 3428 libavformat/mxfdec.c static int mxf_read_packet(AVFormatContext *s, AVPacket *pkt) s 3431 libavformat/mxfdec.c MXFContext *mxf = s->priv_data; s 3436 libavformat/mxfdec.c int64_t pos = avio_tell(s->pb); s 3440 libavformat/mxfdec.c ret = klv_read_packet(&klv, s->pb); s 3445 libavformat/mxfdec.c PRINT_KEY(s, "read packet", klv.key); s 3446 libavformat/mxfdec.c av_log(s, AV_LOG_TRACE, "size %"PRIu64" offset %#"PRIx64"\n", klv.length, klv.offset); s 3448 libavformat/mxfdec.c ret = mxf_decrypt_triplet(s, pkt, &klv); s 3450 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "invalid encoded triplet\n"); s 3463 libavformat/mxfdec.c int index = mxf_get_stream_index(s, &klv, body_sid); s 3469 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, s 3475 libavformat/mxfdec.c st = s->streams[index]; s 3478 libavformat/mxfdec.c if (s->streams[index]->discard == AVDISCARD_ALL) s 3490 libavformat/mxfdec.c avpriv_request_sample(s, "Huge KLV without proper index in non-frame wrapped essence"); s 3495 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "bad size: %"PRId64"\n", size); s 3512 libavformat/mxfdec.c ret = mxf_get_d10_aes3_packet(s->pb, s->streams[index], s 3515 libavformat/mxfdec.c av_log(s, AV_LOG_ERROR, "error reading D-10 aes3 frame\n"); s 3520 libavformat/mxfdec.c s->streams[index]->codecpar->codec_id == AV_CODEC_ID_EIA_608) { s 3521 libavformat/mxfdec.c ret = mxf_get_eia608_packet(s, s->streams[index], pkt, klv.length); s 3527 libavformat/mxfdec.c ret = av_get_packet(s->pb, pkt, klv.length); s 3543 libavformat/mxfdec.c avio_seek(s->pb, klv.next_klv, SEEK_SET); s 3548 libavformat/mxfdec.c avio_skip(s->pb, max_data_size); s 3552 libavformat/mxfdec.c return avio_feof(s->pb) ? AVERROR_EOF : ret; s 3555 libavformat/mxfdec.c static int mxf_read_close(AVFormatContext *s) s 3557 libavformat/mxfdec.c MXFContext *mxf = s->priv_data; s 3563 libavformat/mxfdec.c for (i = 0; i < s->nb_streams; i++) s 3564 libavformat/mxfdec.c s->streams[i]->priv_data = NULL; s 3615 libavformat/mxfdec.c static int mxf_read_seek(AVFormatContext *s, int stream_index, int64_t sample_time, int flags) s 3617 libavformat/mxfdec.c AVStream *st = s->streams[stream_index]; s 3619 libavformat/mxfdec.c MXFContext* mxf = s->priv_data; s 3634 libavformat/mxfdec.c if (!s->bit_rate) s 3640 libavformat/mxfdec.c seekpos = avio_seek(s->pb, (s->bit_rate * seconds) >> 3, SEEK_SET); s 3644 libavformat/mxfdec.c ff_update_cur_dts(s, st, sample_time); s 3652 libavformat/mxfdec.c for (i = 0; i < s->nb_streams; i++) { s 3653 libavformat/mxfdec.c MXFTrack *new_source_track = s->streams[i]->priv_data; s 3657 libavformat/mxfdec.c st = s->streams[i]; s 3661 libavformat/mxfdec.c if (i == s->nb_streams) s 3697 libavformat/mxfdec.c ff_update_cur_dts(s, st, sample_time); s 3708 libavformat/mxfdec.c avio_seek(s->pb, seekpos, SEEK_SET); s 3712 libavformat/mxfdec.c for (i = 0; i < s->nb_streams; i++) { s 3713 libavformat/mxfdec.c AVStream *cur_st = s->streams[i]; s 150 libavformat/mxfenc.c static void mxf_write_wav_desc(AVFormatContext *s, AVStream *st); s 151 libavformat/mxfenc.c static void mxf_write_aes3_desc(AVFormatContext *s, AVStream *st); s 152 libavformat/mxfenc.c static void mxf_write_mpegvideo_desc(AVFormatContext *s, AVStream *st); s 153 libavformat/mxfenc.c static void mxf_write_h264_desc(AVFormatContext *s, AVStream *st); s 154 libavformat/mxfenc.c static void mxf_write_cdci_desc(AVFormatContext *s, AVStream *st); s 155 libavformat/mxfenc.c static void mxf_write_generic_sound_desc(AVFormatContext *s, AVStream *st); s 156 libavformat/mxfenc.c static void mxf_write_s436m_anc_desc(AVFormatContext *s, AVStream *st); s 431 libavformat/mxfenc.c static void mxf_write_umid(AVFormatContext *s, int type) s 433 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 434 libavformat/mxfenc.c avio_write(s->pb, umid_ul, 13); s 435 libavformat/mxfenc.c avio_wb24(s->pb, mxf->instance_number); s 436 libavformat/mxfenc.c avio_write(s->pb, mxf->umid, 15); s 437 libavformat/mxfenc.c avio_w8(s->pb, type); s 507 libavformat/mxfenc.c static void mxf_write_primer_pack(AVFormatContext *s) s 509 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 510 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 517 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) { s 518 libavformat/mxfenc.c MXFStreamContext *sc = s->streams[i]->priv_data; s 519 libavformat/mxfenc.c if (s->streams[i]->codecpar->codec_id == AV_CODEC_ID_H264 && !sc->avc_intra) { s 571 libavformat/mxfenc.c static void mxf_write_essence_container_refs(AVFormatContext *s) s 573 libavformat/mxfenc.c MXFContext *c = s->priv_data; s 574 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 578 libavformat/mxfenc.c av_log(s,AV_LOG_DEBUG, "essence container count:%d\n", c->essence_container_count); s 579 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) { s 580 libavformat/mxfenc.c MXFStreamContext *sc = s->streams[i]->priv_data; s 593 libavformat/mxfenc.c static void mxf_write_preface(AVFormatContext *s) s 595 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 596 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 599 libavformat/mxfenc.c PRINT_KEY(s, "preface key", pb->buf_ptr - 16); s 605 libavformat/mxfenc.c PRINT_KEY(s, "preface uid", pb->buf_ptr - 16); s 630 libavformat/mxfenc.c if (s->oformat == &ff_mxf_opatom_muxer) s 637 libavformat/mxfenc.c mxf_write_essence_container_refs(s); s 702 libavformat/mxfenc.c static void store_version(AVFormatContext *s){ s 703 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 705 libavformat/mxfenc.c if (s->flags & AVFMT_FLAG_BITEXACT) { s 718 libavformat/mxfenc.c static void mxf_write_identification(AVFormatContext *s) s 720 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 721 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 723 libavformat/mxfenc.c const char *product = s->oformat != &ff_mxf_opatom_muxer ? "OP1a Muxer" : "OPAtom Muxer"; s 728 libavformat/mxfenc.c PRINT_KEY(s, "identification key", pb->buf_ptr - 16); s 730 libavformat/mxfenc.c version = s->flags & AVFMT_FLAG_BITEXACT ? s 740 libavformat/mxfenc.c PRINT_KEY(s, "identification uid", pb->buf_ptr - 16); s 749 libavformat/mxfenc.c store_version(s); s 762 libavformat/mxfenc.c store_version(s); s 765 libavformat/mxfenc.c static void mxf_write_content_storage(AVFormatContext *s, MXFPackage *packages, int package_count) s 767 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 771 libavformat/mxfenc.c PRINT_KEY(s, "content storage key", pb->buf_ptr - 16); s 777 libavformat/mxfenc.c PRINT_KEY(s, "content storage uid", pb->buf_ptr - 16); s 792 libavformat/mxfenc.c static void mxf_write_track(AVFormatContext *s, AVStream *st, MXFPackage *package) s 794 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 795 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 799 libavformat/mxfenc.c PRINT_KEY(s, "track key", pb->buf_ptr - 16); s 805 libavformat/mxfenc.c PRINT_KEY(s, "track uid", pb->buf_ptr - 16); s 821 libavformat/mxfenc.c if (st == mxf->timecode_track && s->oformat == &ff_mxf_opatom_muxer) { s 840 libavformat/mxfenc.c static void mxf_write_common_fields(AVFormatContext *s, AVStream *st) s 842 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 843 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 857 libavformat/mxfenc.c if (st != mxf->timecode_track && s->oformat == &ff_mxf_opatom_muxer && st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { s 864 libavformat/mxfenc.c static void mxf_write_sequence(AVFormatContext *s, AVStream *st, MXFPackage *package) s 866 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 867 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 871 libavformat/mxfenc.c PRINT_KEY(s, "sequence key", pb->buf_ptr - 16); s 877 libavformat/mxfenc.c PRINT_KEY(s, "sequence uid", pb->buf_ptr - 16); s 878 libavformat/mxfenc.c mxf_write_common_fields(s, st); s 891 libavformat/mxfenc.c static void mxf_write_timecode_component(AVFormatContext *s, AVStream *st, MXFPackage *package) s 893 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 894 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 903 libavformat/mxfenc.c mxf_write_common_fields(s, st); s 918 libavformat/mxfenc.c static void mxf_write_structural_component(AVFormatContext *s, AVStream *st, MXFPackage *package) s 920 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 921 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 925 libavformat/mxfenc.c PRINT_KEY(s, "sturctural component key", pb->buf_ptr - 16); s 932 libavformat/mxfenc.c PRINT_KEY(s, "structural component uid", pb->buf_ptr - 16); s 933 libavformat/mxfenc.c mxf_write_common_fields(s, st); s 945 libavformat/mxfenc.c mxf_write_umid(s, package->ref->instance); s 955 libavformat/mxfenc.c static void mxf_write_tape_descriptor(AVFormatContext *s) s 957 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 960 libavformat/mxfenc.c PRINT_KEY(s, "tape descriptor key", pb->buf_ptr - 16); s 964 libavformat/mxfenc.c PRINT_KEY(s, "tape_desc uid", pb->buf_ptr - 16); s 968 libavformat/mxfenc.c static void mxf_write_multi_descriptor(AVFormatContext *s) s 970 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 971 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 976 libavformat/mxfenc.c PRINT_KEY(s, "multiple descriptor key", pb->buf_ptr - 16); s 977 libavformat/mxfenc.c klv_encode_ber_length(pb, 64 + 16LL * s->nb_streams); s 981 libavformat/mxfenc.c PRINT_KEY(s, "multi_desc uid", pb->buf_ptr - 16); s 993 libavformat/mxfenc.c MXFStreamContext *sc = s->streams[0]->priv_data; s 999 libavformat/mxfenc.c mxf_write_local_tag(pb, s->nb_streams * 16 + 8, 0x3F01); s 1000 libavformat/mxfenc.c mxf_write_refs_count(pb, s->nb_streams); s 1001 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) s 1005 libavformat/mxfenc.c static int64_t mxf_write_generic_desc(AVFormatContext *s, AVStream *st, const UID key) s 1007 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 1009 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1023 libavformat/mxfenc.c if (s->oformat == &ff_mxf_d10_muxer) { s 1080 libavformat/mxfenc.c static int64_t mxf_write_cdci_common(AVFormatContext *s, AVStream *st, const UID key) s 1083 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1089 libavformat/mxfenc.c int64_t pos = mxf_write_generic_desc(s, st, key); s 1108 libavformat/mxfenc.c if (s->oformat == &ff_mxf_d10_muxer) { s 1271 libavformat/mxfenc.c static void mxf_write_avc_subdesc(AVFormatContext *s, AVStream *st) s 1273 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1292 libavformat/mxfenc.c mxf_update_klv_size(s->pb, pos); s 1295 libavformat/mxfenc.c static void mxf_write_cdci_desc(AVFormatContext *s, AVStream *st) s 1297 libavformat/mxfenc.c int64_t pos = mxf_write_cdci_common(s, st, mxf_cdci_descriptor_key); s 1298 libavformat/mxfenc.c mxf_update_klv_size(s->pb, pos); s 1301 libavformat/mxfenc.c mxf_write_avc_subdesc(s, st); s 1305 libavformat/mxfenc.c static void mxf_write_h264_desc(AVFormatContext *s, AVStream *st) s 1309 libavformat/mxfenc.c mxf_write_mpegvideo_desc(s, st); s 1311 libavformat/mxfenc.c int64_t pos = mxf_write_cdci_common(s, st, mxf_cdci_descriptor_key); s 1312 libavformat/mxfenc.c mxf_update_klv_size(s->pb, pos); s 1313 libavformat/mxfenc.c mxf_write_avc_subdesc(s, st); s 1317 libavformat/mxfenc.c static void mxf_write_s436m_anc_desc(AVFormatContext *s, AVStream *st) s 1319 libavformat/mxfenc.c int64_t pos = mxf_write_generic_desc(s, st, mxf_s436m_anc_descriptor_key); s 1320 libavformat/mxfenc.c mxf_update_klv_size(s->pb, pos); s 1323 libavformat/mxfenc.c static void mxf_write_mpegvideo_desc(AVFormatContext *s, AVStream *st) s 1325 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1328 libavformat/mxfenc.c int64_t pos = mxf_write_cdci_common(s, st, mxf_mpegvideo_descriptor_key); s 1361 libavformat/mxfenc.c static int64_t mxf_write_generic_sound_common(AVFormatContext *s, AVStream *st, const UID key) s 1363 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1364 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 1366 libavformat/mxfenc.c int64_t pos = mxf_write_generic_desc(s, st, key); s 1368 libavformat/mxfenc.c if (s->oformat == &ff_mxf_opatom_muxer) { s 1382 libavformat/mxfenc.c if (s->oformat == &ff_mxf_d10_muxer) { s 1389 libavformat/mxfenc.c if (show_warnings && (s->oformat == &ff_mxf_d10_muxer) && (st->codecpar->channels != 4) && (st->codecpar->channels != 8)) s 1390 libavformat/mxfenc.c av_log(s, AV_LOG_WARNING, "the number of audio channels shall be 4 or 8 : the output will not comply to MXF D-10 specs, use -d10_channelcount to fix this\n"); s 1392 libavformat/mxfenc.c } else if (s->oformat == &ff_mxf_d10_muxer) { s 1394 libavformat/mxfenc.c av_log(s, AV_LOG_WARNING, "d10_channelcount < actual number of audio channels : some channels will be discarded\n"); s 1396 libavformat/mxfenc.c av_log(s, AV_LOG_WARNING, "d10_channelcount shall be set to 4 or 8 : the output will not comply to MXF D-10 specs\n"); s 1408 libavformat/mxfenc.c static int64_t mxf_write_wav_common(AVFormatContext *s, AVStream *st, const UID key) s 1410 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1411 libavformat/mxfenc.c int64_t pos = mxf_write_generic_sound_common(s, st, key); s 1423 libavformat/mxfenc.c static void mxf_write_wav_desc(AVFormatContext *s, AVStream *st) s 1425 libavformat/mxfenc.c int64_t pos = mxf_write_wav_common(s, st, mxf_wav_descriptor_key); s 1426 libavformat/mxfenc.c mxf_update_klv_size(s->pb, pos); s 1429 libavformat/mxfenc.c static void mxf_write_aes3_desc(AVFormatContext *s, AVStream *st) s 1431 libavformat/mxfenc.c int64_t pos = mxf_write_wav_common(s, st, mxf_aes3_descriptor_key); s 1432 libavformat/mxfenc.c mxf_update_klv_size(s->pb, pos); s 1435 libavformat/mxfenc.c static void mxf_write_generic_sound_desc(AVFormatContext *s, AVStream *st) s 1437 libavformat/mxfenc.c int64_t pos = mxf_write_generic_sound_common(s, st, mxf_generic_sound_descriptor_key); s 1438 libavformat/mxfenc.c mxf_update_klv_size(s->pb, pos); s 1443 libavformat/mxfenc.c static int mxf_write_tagged_value(AVFormatContext *s, const char* name, const char* value) s 1445 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 1446 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1472 libavformat/mxfenc.c static int mxf_write_user_comments(AVFormatContext *s, const AVDictionary *m) s 1474 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 1480 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "too many tagged values, ignoring remaining\n"); s 1484 libavformat/mxfenc.c if (mxf_write_tagged_value(s, t->key + 8, t->value) == 0) s 1490 libavformat/mxfenc.c static void mxf_write_package(AVFormatContext *s, MXFPackage *package) s 1492 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 1493 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1494 libavformat/mxfenc.c int i, track_count = s->nb_streams+1; s 1500 libavformat/mxfenc.c user_comment_count = mxf_write_user_comments(s, s->metadata); s 1502 libavformat/mxfenc.c PRINT_KEY(s, "Material Package key", pb->buf_ptr - 16); s 1506 libavformat/mxfenc.c PRINT_KEY(s, "Source Package key", pb->buf_ptr - 16); s 1513 libavformat/mxfenc.c av_log(s, AV_LOG_DEBUG, "package type:%d\n", package->type); s 1514 libavformat/mxfenc.c PRINT_KEY(s, "package uid", pb->buf_ptr - 16); s 1518 libavformat/mxfenc.c mxf_write_umid(s, package->instance); s 1519 libavformat/mxfenc.c PRINT_KEY(s, "package umid second part", pb->buf_ptr - 16); s 1551 libavformat/mxfenc.c if (s->nb_streams > 1) { s 1553 libavformat/mxfenc.c mxf_write_multi_descriptor(s); s 1559 libavformat/mxfenc.c mxf_write_tape_descriptor(s); s 1571 libavformat/mxfenc.c mxf_write_track(s, mxf->timecode_track, package); s 1572 libavformat/mxfenc.c mxf_write_sequence(s, mxf->timecode_track, package); s 1573 libavformat/mxfenc.c mxf_write_timecode_component(s, mxf->timecode_track, package); s 1576 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) { s 1577 libavformat/mxfenc.c AVStream *st = s->streams[i]; s 1578 libavformat/mxfenc.c mxf_write_track(s, st, package); s 1579 libavformat/mxfenc.c mxf_write_sequence(s, st, package); s 1580 libavformat/mxfenc.c mxf_write_structural_component(s, st, package); s 1585 libavformat/mxfenc.c mxf_essence_container_uls[sc->index].write_desc(s, st); s 1590 libavformat/mxfenc.c static int mxf_write_essence_container_data(AVFormatContext *s) s 1592 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1601 libavformat/mxfenc.c mxf_write_umid(s, 1); s 1612 libavformat/mxfenc.c static int mxf_write_header_metadata_sets(AVFormatContext *s) s 1614 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 1626 libavformat/mxfenc.c if (entry = av_dict_get(s->metadata, "material_package_name", NULL, 0)) s 1629 libavformat/mxfenc.c if (entry = av_dict_get(s->metadata, "file_package_name", NULL, 0)) { s 1633 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) { s 1634 libavformat/mxfenc.c st = s->streams[i]; s 1642 libavformat/mxfenc.c entry = av_dict_get(s->metadata, "reel_name", NULL, 0); s 1651 libavformat/mxfenc.c mxf_write_preface(s); s 1652 libavformat/mxfenc.c mxf_write_identification(s); s 1653 libavformat/mxfenc.c mxf_write_content_storage(s, packages, package_count); s 1656 libavformat/mxfenc.c mxf_write_package(s, &packages[i]); s 1657 libavformat/mxfenc.c mxf_write_essence_container_data(s); s 1670 libavformat/mxfenc.c static void mxf_write_index_table_segment(AVFormatContext *s) s 1672 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 1673 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1680 libavformat/mxfenc.c av_log(s, AV_LOG_DEBUG, "edit units count %d\n", mxf->edit_units_count); s 1727 libavformat/mxfenc.c mxf_write_local_tag(pb, 8 + (s->nb_streams+1)*6, 0x3F09); s 1728 libavformat/mxfenc.c avio_wb32(pb, s->nb_streams+1); // num of entries s 1735 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) { s 1736 libavformat/mxfenc.c AVStream *st = s->streams[i]; s 1758 libavformat/mxfenc.c MXFStreamContext *sc = s->streams[0]->priv_data; s 1780 libavformat/mxfenc.c av_log(s, AV_LOG_WARNING, "missing frames\n"); s 1802 libavformat/mxfenc.c if (s->nb_streams > 1) s 1816 libavformat/mxfenc.c static void mxf_write_klv_fill(AVFormatContext *s) s 1818 libavformat/mxfenc.c unsigned pad = klv_fill_size(avio_tell(s->pb)); s 1820 libavformat/mxfenc.c avio_write(s->pb, klv_fill_key, 16); s 1822 libavformat/mxfenc.c klv_encode_ber4_length(s->pb, pad); s 1823 libavformat/mxfenc.c ffio_fill(s->pb, 0, pad); s 1824 libavformat/mxfenc.c av_assert1(!(avio_tell(s->pb) & (KAG_SIZE-1))); s 1828 libavformat/mxfenc.c static int mxf_write_partition(AVFormatContext *s, int bodysid, s 1832 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 1833 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 1840 libavformat/mxfenc.c index_byte_count = 85 + 12+(s->nb_streams+1)*6 + s 1892 libavformat/mxfenc.c if (bodysid && mxf->edit_units_count && mxf->body_partitions_count && s->oformat != &ff_mxf_opatom_muxer) s 1900 libavformat/mxfenc.c if (s->oformat == &ff_mxf_opatom_muxer) s 1906 libavformat/mxfenc.c mxf_write_essence_container_refs(s); s 1913 libavformat/mxfenc.c mxf_write_klv_fill(s); s 1914 libavformat/mxfenc.c start = avio_tell(s->pb); s 1915 libavformat/mxfenc.c mxf_write_primer_pack(s); s 1916 libavformat/mxfenc.c mxf_write_klv_fill(s); s 1917 libavformat/mxfenc.c mxf_write_header_metadata_sets(s); s 1918 libavformat/mxfenc.c pos = avio_tell(s->pb); s 1945 libavformat/mxfenc.c static int mxf_parse_prores_frame(AVFormatContext *s, AVStream *st, AVPacket *pkt) s 1947 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 1996 libavformat/mxfenc.c static int mxf_parse_dnxhd_frame(AVFormatContext *s, AVStream *st, AVPacket *pkt) s 1998 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2076 libavformat/mxfenc.c static int mxf_parse_dv_frame(AVFormatContext *s, AVStream *st, AVPacket *pkt) s 2078 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2111 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "source marked as interlaced but codec profile is progressive\n"); s 2169 libavformat/mxfenc.c static int mxf_parse_h264_frame(AVFormatContext *s, AVStream *st, s 2172 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2198 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "error parsing sps\n"); s 2276 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "h264 profile not supported\n"); s 2316 libavformat/mxfenc.c static int mxf_parse_mpeg2_frame(AVFormatContext *s, AVStream *st, s 2370 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "error parsing mpeg2 frame\n"); s 2375 libavformat/mxfenc.c if (s->oformat != &ff_mxf_d10_muxer) s 2396 libavformat/mxfenc.c static void mxf_gen_umid(AVFormatContext *s) s 2398 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2408 libavformat/mxfenc.c static int mxf_init_timecode(AVFormatContext *s, AVStream *st, AVRational tbc) s 2410 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2411 libavformat/mxfenc.c AVDictionaryEntry *tcr = av_dict_get(s->metadata, "timecode", NULL, 0); s 2414 libavformat/mxfenc.c if (s->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL) { s 2415 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "Unsupported frame rate %d/%d. Set -strict option to 'unofficial' or lower in order to allow it!\n", tbc.den, tbc.num); s 2418 libavformat/mxfenc.c av_log(s, AV_LOG_WARNING, "Unofficial frame rate %d/%d.\n", tbc.den, tbc.num); s 2427 libavformat/mxfenc.c return av_timecode_init_from_string(&mxf->tc, av_inv_q(tbc), tcr->value, s); s 2429 libavformat/mxfenc.c return av_timecode_init(&mxf->tc, av_inv_q(tbc), 0, 0, s); s 2432 libavformat/mxfenc.c static int mxf_write_header(AVFormatContext *s) s 2434 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2439 libavformat/mxfenc.c if (!s->nb_streams) s 2442 libavformat/mxfenc.c if (s->oformat == &ff_mxf_opatom_muxer && s->nb_streams !=1) { s 2443 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "there must be exactly one stream for mxf opatom\n"); s 2447 libavformat/mxfenc.c if (!av_dict_get(s->metadata, "comment_", NULL, AV_DICT_IGNORE_SUFFIX)) s 2450 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) { s 2451 libavformat/mxfenc.c AVStream *st = s->streams[i]; s 2458 libavformat/mxfenc.c if (((i == 0) ^ (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)) && s->oformat != &ff_mxf_opatom_muxer) { s 2459 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "there must be exactly one video stream and it must be the first one\n"); s 2483 libavformat/mxfenc.c switch (ff_choose_chroma_location(s, st)) { s 2493 libavformat/mxfenc.c if((ret = mxf_init_timecode(s, st, tbc)) < 0) s 2502 libavformat/mxfenc.c if (s->oformat == &ff_mxf_d10_muxer || s 2507 libavformat/mxfenc.c if (s->oformat == &ff_mxf_d10_muxer) { s 2512 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "error MXF D-10 only support MPEG-2 Video\n"); s 2524 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "error MXF D-10 only support 30/40/50 mbit/s\n"); s 2541 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "only 48khz is implemented\n"); s 2545 libavformat/mxfenc.c if (s->oformat == &ff_mxf_d10_muxer) { s 2547 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "MXF D-10 only support one audio track\n"); s 2552 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "MXF D-10 only support 16 or 24 bits le audio\n"); s 2555 libavformat/mxfenc.c sc->container_ul = ((MXFStreamContext*)s->streams[0]->priv_data)->container_ul; s 2557 libavformat/mxfenc.c } else if (s->oformat == &ff_mxf_opatom_muxer) { s 2562 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "Only pcm_s16le and pcm_s24le audio codecs are implemented\n"); s 2566 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "MXF OPAtom only supports single channel audio\n"); s 2571 libavformat/mxfenc.c if((ret = mxf_init_timecode(s, st, tbc)) < 0) s 2591 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "track %d: unsupported data type\n", i); s 2594 libavformat/mxfenc.c if (st->index != s->nb_streams - 1) { s 2595 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "data track must be placed last\n"); s 2603 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "track %d: could not find essence container ul, " s 2616 libavformat/mxfenc.c PRINT_KEY(s, "track essence element key", sc->track_essence_element_key); s 2623 libavformat/mxfenc.c if (s->oformat == &ff_mxf_d10_muxer || s->oformat == &ff_mxf_opatom_muxer) { s 2627 libavformat/mxfenc.c if (!(s->flags & AVFMT_FLAG_BITEXACT)) s 2628 libavformat/mxfenc.c mxf_gen_umid(s); s 2630 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) { s 2631 libavformat/mxfenc.c MXFStreamContext *sc = s->streams[i]->priv_data; s 2640 libavformat/mxfenc.c if (ff_parse_creation_time_metadata(s, ×tamp, 0) > 0) s 2658 libavformat/mxfenc.c static void mxf_write_system_item(AVFormatContext *s) s 2660 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2661 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 2672 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) { s 2673 libavformat/mxfenc.c if (s->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) s 2675 libavformat/mxfenc.c else if (s->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_DATA) s 2686 libavformat/mxfenc.c MXFStreamContext *sc = s->streams[0]->priv_data; s 2704 libavformat/mxfenc.c mxf_write_umid(s, 1); s 2707 libavformat/mxfenc.c static void mxf_write_d10_audio_packet(AVFormatContext *s, AVStream *st, AVPacket *pkt) s 2709 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2710 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 2739 libavformat/mxfenc.c static int mxf_write_opatom_body_partition(AVFormatContext *s) s 2741 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2742 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 2743 libavformat/mxfenc.c AVStream *st = s->streams[0]; s 2752 libavformat/mxfenc.c if ((err = mxf_write_partition(s, 1, 0, key, 0)) < 0) s 2754 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2760 libavformat/mxfenc.c static int mxf_write_opatom_packet(AVFormatContext *s, AVPacket *pkt, MXFIndexEntry *ie) s 2762 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2763 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 2768 libavformat/mxfenc.c if ((err = mxf_write_partition(s, 0, 0, header_open_partition_key, 1)) < 0) s 2770 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2772 libavformat/mxfenc.c if ((err = mxf_write_opatom_body_partition(s)) < 0) s 2789 libavformat/mxfenc.c static void mxf_compute_edit_unit_byte_count(AVFormatContext *s) s 2791 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2794 libavformat/mxfenc.c if (s->oformat == &ff_mxf_opatom_muxer) { s 2795 libavformat/mxfenc.c MXFStreamContext *sc = s->streams[0]->priv_data; s 2801 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) { s 2802 libavformat/mxfenc.c AVStream *st = s->streams[i]; s 2810 libavformat/mxfenc.c static int mxf_write_packet(AVFormatContext *s, AVPacket *pkt) s 2812 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2813 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 2814 libavformat/mxfenc.c AVStream *st = s->streams[pkt->stream_index]; s 2823 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "could not allocate index entries\n"); s 2829 libavformat/mxfenc.c if (!mxf_parse_mpeg2_frame(s, st, pkt, &ie)) { s 2830 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "could not get mpeg2 profile and level\n"); s 2834 libavformat/mxfenc.c if (!mxf_parse_dnxhd_frame(s, st, pkt)) { s 2835 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "could not get dnxhd profile\n"); s 2839 libavformat/mxfenc.c if (!mxf_parse_prores_frame(s, st, pkt)) { s 2840 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "could not get prores profile\n"); s 2844 libavformat/mxfenc.c if (!mxf_parse_dv_frame(s, st, pkt)) { s 2845 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "could not get dv profile\n"); s 2849 libavformat/mxfenc.c if (!mxf_parse_h264_frame(s, st, pkt, &ie)) { s 2850 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "could not get h264 profile\n"); s 2857 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "track %d: frame size does not match index unit size, %d != %d\n", s 2862 libavformat/mxfenc.c mxf_compute_edit_unit_byte_count(s); s 2865 libavformat/mxfenc.c if (s->oformat == &ff_mxf_opatom_muxer) s 2866 libavformat/mxfenc.c return mxf_write_opatom_packet(s, pkt, &ie); s 2870 libavformat/mxfenc.c if ((err = mxf_write_partition(s, 1, 2, header_open_partition_key, 1)) < 0) s 2872 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2873 libavformat/mxfenc.c mxf_write_index_table_segment(s); s 2875 libavformat/mxfenc.c if ((err = mxf_write_partition(s, 0, 0, header_open_partition_key, 1)) < 0) s 2885 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2886 libavformat/mxfenc.c if ((err = mxf_write_partition(s, 1, 2, body_partition_key, 0)) < 0) s 2888 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2889 libavformat/mxfenc.c mxf_write_index_table_segment(s); s 2892 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2893 libavformat/mxfenc.c mxf_write_system_item(s); s 2904 libavformat/mxfenc.c av_log(s, AV_LOG_ERROR, "No packets in first stream\n"); s 2911 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2913 libavformat/mxfenc.c if (s->oformat == &ff_mxf_d10_muxer && s 2915 libavformat/mxfenc.c mxf_write_d10_audio_packet(s, st, pkt); s 2925 libavformat/mxfenc.c static void mxf_write_random_index_pack(AVFormatContext *s) s 2927 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2928 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 2935 libavformat/mxfenc.c if (mxf->edit_unit_byte_count && s->oformat != &ff_mxf_opatom_muxer) s 2952 libavformat/mxfenc.c static int mxf_write_footer(AVFormatContext *s) s 2954 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 2955 libavformat/mxfenc.c AVIOContext *pb = s->pb; s 2959 libavformat/mxfenc.c (s->oformat == &ff_mxf_opatom_muxer && !mxf->body_partition_offset)) { s 2966 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2968 libavformat/mxfenc.c if (mxf->edit_unit_byte_count && s->oformat != &ff_mxf_opatom_muxer) { // no need to repeat index s 2969 libavformat/mxfenc.c if ((err = mxf_write_partition(s, 0, 0, footer_partition_key, 0)) < 0) s 2972 libavformat/mxfenc.c if ((err = mxf_write_partition(s, 0, 2, footer_partition_key, 0)) < 0) s 2974 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2975 libavformat/mxfenc.c mxf_write_index_table_segment(s); s 2978 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2979 libavformat/mxfenc.c mxf_write_random_index_pack(s); s 2981 libavformat/mxfenc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 2982 libavformat/mxfenc.c if (s->oformat == &ff_mxf_opatom_muxer) { s 2985 libavformat/mxfenc.c if ((err = mxf_write_opatom_body_partition(s)) < 0) s 2990 libavformat/mxfenc.c if (mxf->edit_unit_byte_count && s->oformat != &ff_mxf_opatom_muxer) { s 2991 libavformat/mxfenc.c if ((err = mxf_write_partition(s, 1, 2, header_closed_partition_key, 1)) < 0) s 2993 libavformat/mxfenc.c mxf_write_klv_fill(s); s 2994 libavformat/mxfenc.c mxf_write_index_table_segment(s); s 2996 libavformat/mxfenc.c if ((err = mxf_write_partition(s, 0, 0, header_closed_partition_key, 1)) < 0) s 3009 libavformat/mxfenc.c static void mxf_deinit(AVFormatContext *s) s 3011 libavformat/mxfenc.c MXFContext *mxf = s->priv_data; s 3021 libavformat/mxfenc.c static int mxf_interleave_get_packet(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush) s 3025 libavformat/mxfenc.c for (i = 0; i < s->nb_streams; i++) s 3026 libavformat/mxfenc.c stream_count += !!s->streams[i]->last_in_packet_buffer; s 3028 libavformat/mxfenc.c if (stream_count && (s->nb_streams == stream_count || flush)) { s 3029 libavformat/mxfenc.c AVPacketList *pktl = s->internal->packet_buffer; s 3030 libavformat/mxfenc.c if (s->nb_streams != stream_count) { s 3037 libavformat/mxfenc.c if (s->streams[pktl->pkt.stream_index]->last_in_packet_buffer != pktl) s 3038 libavformat/mxfenc.c s->streams[pktl->pkt.stream_index]->last_in_packet_buffer = pktl; s 3053 libavformat/mxfenc.c s->internal->packet_buffer = NULL; s 3054 libavformat/mxfenc.c s->internal->packet_buffer_end= NULL; s 3057 libavformat/mxfenc.c pktl = s->internal->packet_buffer; s 3061 libavformat/mxfenc.c av_log(s, AV_LOG_TRACE, "out st:%d dts:%"PRId64"\n", (*out).stream_index, (*out).dts); s 3062 libavformat/mxfenc.c s->internal->packet_buffer = pktl->next; s 3063 libavformat/mxfenc.c if(s->streams[pktl->pkt.stream_index]->last_in_packet_buffer == pktl) s 3064 libavformat/mxfenc.c s->streams[pktl->pkt.stream_index]->last_in_packet_buffer= NULL; s 3065 libavformat/mxfenc.c if(!s->internal->packet_buffer) s 3066 libavformat/mxfenc.c s->internal->packet_buffer_end= NULL; s 3075 libavformat/mxfenc.c static int mxf_compare_timestamps(AVFormatContext *s, const AVPacket *next, s 3078 libavformat/mxfenc.c MXFStreamContext *sc = s->streams[pkt ->stream_index]->priv_data; s 3079 libavformat/mxfenc.c MXFStreamContext *sc2 = s->streams[next->stream_index]->priv_data; s 3085 libavformat/mxfenc.c static int mxf_interleave(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush) s 3089 libavformat/mxfenc.c MXFStreamContext *sc = s->streams[pkt->stream_index]->priv_data; s 3091 libavformat/mxfenc.c if ((ret = ff_interleave_add_packet(s, pkt, mxf_compare_timestamps)) < 0) s 3094 libavformat/mxfenc.c return mxf_interleave_get_packet(s, out, NULL, flush); s 42 libavformat/mxg.c static int mxg_read_header(AVFormatContext *s) s 45 libavformat/mxg.c MXGContext *mxg = s->priv_data; s 48 libavformat/mxg.c video_st = avformat_new_stream(s, NULL); s 55 libavformat/mxg.c audio_st = avformat_new_stream(s, NULL); s 100 libavformat/mxg.c static int mxg_update_cache(AVFormatContext *s, unsigned int cache_size) s 102 libavformat/mxg.c MXGContext *mxg = s->priv_data; s 122 libavformat/mxg.c ret = avio_read(s->pb, mxg->buffer_ptr + mxg->cache_size, s 132 libavformat/mxg.c static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt) s 137 libavformat/mxg.c MXGContext *mxg = s->priv_data; s 139 libavformat/mxg.c while (!avio_feof(s->pb) && !s->pb->error){ s 142 libavformat/mxg.c ret = mxg_update_cache(s, DEFAULT_PACKET_SIZE + OVERREAD_SIZE); s 168 libavformat/mxg.c av_log(s, AV_LOG_WARNING, "Found EOI before SOI, skipping\n"); s 200 libavformat/mxg.c ret = mxg_update_cache(s, size); s 245 libavformat/mxg.c static int mxg_close(struct AVFormatContext *s) s 247 libavformat/mxg.c MXGContext *mxg = s->priv_data; s 47 libavformat/ncdec.c static int nc_read_header(AVFormatContext *s) s 49 libavformat/ncdec.c AVStream *st = avformat_new_stream(s, NULL); s 63 libavformat/ncdec.c static int nc_read_packet(AVFormatContext *s, AVPacket *pkt) s 70 libavformat/ncdec.c if (avio_feof(s->pb)) s 72 libavformat/ncdec.c state = (state<<8) + avio_r8(s->pb); s 75 libavformat/ncdec.c avio_r8(s->pb); s 76 libavformat/ncdec.c size = avio_rl16(s->pb); s 77 libavformat/ncdec.c avio_skip(s->pb, 9); s 80 libavformat/ncdec.c av_log(s, AV_LOG_DEBUG, "Next packet size is zero\n"); s 84 libavformat/ncdec.c ret = av_get_packet(s->pb, pkt, size); s 35 libavformat/nistspheredec.c static int nist_read_header(AVFormatContext *s) s 42 libavformat/nistspheredec.c st = avformat_new_stream(s, NULL); s 48 libavformat/nistspheredec.c ff_get_line(s->pb, buffer, sizeof(buffer)); s 49 libavformat/nistspheredec.c ff_get_line(s->pb, buffer, sizeof(buffer)); s 54 libavformat/nistspheredec.c while (!avio_feof(s->pb)) { s 55 libavformat/nistspheredec.c ff_get_line(s->pb, buffer, sizeof(buffer)); s 57 libavformat/nistspheredec.c if (avio_tell(s->pb) >= header_size) s 78 libavformat/nistspheredec.c avpriv_request_sample(s, "coding %s", coding); s 85 libavformat/nistspheredec.c if (avio_tell(s->pb) > header_size) s 88 libavformat/nistspheredec.c avio_skip(s->pb, header_size - avio_tell(s->pb)); s 103 libavformat/nistspheredec.c avpriv_request_sample(s, "sample byte format %s", format); s 119 libavformat/nistspheredec.c av_dict_set(&s->metadata, key, value, AV_DICT_APPEND); s 121 libavformat/nistspheredec.c av_log(s, AV_LOG_ERROR, "Failed to parse '%s' as metadata\n", buffer); s 36 libavformat/nspdec.c static int nsp_read_header(AVFormatContext *s) s 43 libavformat/nspdec.c avio_skip(s->pb, 12); s 44 libavformat/nspdec.c st = avformat_new_stream(s, NULL); s 48 libavformat/nspdec.c while (!avio_feof(s->pb)) { s 51 libavformat/nspdec.c chunk = avio_rb32(s->pb); s 52 libavformat/nspdec.c size = avio_rl32(s->pb); s 53 libavformat/nspdec.c pos = avio_tell(s->pb); s 60 libavformat/nspdec.c avio_skip(s->pb, 20); s 61 libavformat/nspdec.c rate = avio_rl32(s->pb); s 62 libavformat/nspdec.c avio_skip(s->pb, size - (avio_tell(s->pb) - pos)); s 65 libavformat/nspdec.c avio_get_str(s->pb, size, value, sizeof(value)); s 66 libavformat/nspdec.c av_dict_set(&s->metadata, "Comment", value, 0); s 67 libavformat/nspdec.c avio_skip(s->pb, size & 1); s 79 libavformat/nspdec.c av_log(s, AV_LOG_WARNING, "Unsupported chunk!\n"); s 213 libavformat/nsvdec.c static int nsv_read_chunk(AVFormatContext *s, int fill_header); s 214 libavformat/nsvdec.c static int nsv_read_close(AVFormatContext *s); s 217 libavformat/nsvdec.c static int nsv_resync(AVFormatContext *s) s 219 libavformat/nsvdec.c NSVContext *nsv = s->priv_data; s 220 libavformat/nsvdec.c AVIOContext *pb = s->pb; s 226 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV EOF\n"); s 233 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV resync: [%d] = %02"PRIx32"\n", i, v & 0x0FF); s 237 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV resynced on BEEF after %d bytes\n", i+1); s 243 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV resynced on NSVf after %d bytes\n", i+1); s 248 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV resynced on NSVs after %d bytes\n", i+1); s 254 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV sync lost\n"); s 258 libavformat/nsvdec.c static int nsv_parse_NSVf_header(AVFormatContext *s) s 260 libavformat/nsvdec.c NSVContext *nsv = s->priv_data; s 261 libavformat/nsvdec.c AVIOContext *pb = s->pb; s 272 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "Multiple NSVf\n"); s 283 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV NSVf chunk_size %u\n", size); s 284 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV NSVf file_size %u\n", file_size); s 287 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV NSVf duration %"PRId64" ms\n", duration); s 293 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV NSVf info-strings size: %d, table entries: %d, bis %d\n", s 298 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV got header; filepos %"PRId64"\n", avio_tell(pb)); s 327 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV NSVf INFO: %s='%s'\n", token, value); s 328 libavformat/nsvdec.c av_dict_set(&s->metadata, token, value, 0); s 335 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV got infos; filepos %"PRId64"\n", avio_tell(pb)); s 363 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV got index; filepos %"PRId64"\n", avio_tell(pb)); s 373 libavformat/nsvdec.c static int nsv_parse_NSVs_header(AVFormatContext *s) s 375 libavformat/nsvdec.c NSVContext *nsv = s->priv_data; s 376 libavformat/nsvdec.c AVIOContext *pb = s->pb; s 390 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV NSVs framerate code %2x\n", i); s 411 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV NSVs vsize %dx%d\n", vwidth, vheight); s 414 libavformat/nsvdec.c if (s->nb_streams == 0) { /* streams not yet published, let's do that */ s 421 libavformat/nsvdec.c st = avformat_new_stream(s, NULL); s 452 libavformat/nsvdec.c st = avformat_new_stream(s, NULL); s 474 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV NSVs header values differ from the first one!!!\n"); s 487 libavformat/nsvdec.c static int nsv_read_header(AVFormatContext *s) s 489 libavformat/nsvdec.c NSVContext *nsv = s->priv_data; s 496 libavformat/nsvdec.c err = nsv_resync(s); s 500 libavformat/nsvdec.c err = nsv_parse_NSVf_header(s); s 506 libavformat/nsvdec.c err = nsv_parse_NSVs_header(s); s 512 libavformat/nsvdec.c if (s->nb_streams < 1) { /* no luck so far */ s 518 libavformat/nsvdec.c err = nsv_read_chunk(s, 1); s 521 libavformat/nsvdec.c nsv_read_close(s); s 523 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "parsed header\n"); s 527 libavformat/nsvdec.c static int nsv_read_chunk(AVFormatContext *s, int fill_header) s 529 libavformat/nsvdec.c NSVContext *nsv = s->priv_data; s 530 libavformat/nsvdec.c AVIOContext *pb = s->pb; s 549 libavformat/nsvdec.c err = nsv_resync(s); s 553 libavformat/nsvdec.c err = nsv_parse_NSVs_header(s); s 564 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV CHUNK %d aux, %"PRIu32" bytes video, %d bytes audio\n", auxcount, vsize, asize); s 582 libavformat/nsvdec.c if (s->nb_streams > 0) s 583 libavformat/nsvdec.c st[s->streams[0]->id] = s->streams[0]; s 584 libavformat/nsvdec.c if (s->nb_streams > 1) s 585 libavformat/nsvdec.c st[s->streams[1]->id] = s->streams[1]; s 596 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV video: [%d] = %02x\n", i, pkt->data[i]); s 616 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV RAWAUDIO: bps %d, nchan %d, srate %d\n", bps, channels, samplerate); s 620 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV AUDIO bit/sample != 16 (%d)!!!\n", bps); s 629 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV RAWAUDIO: bps %d, nchan %d, srate %d\n", bps, channels, samplerate); s 641 libavformat/nsvdec.c av_log(s, AV_LOG_TRACE, "NSV AUDIO: sync:%d, dts:%"PRId64, nsv->avsync, pkt->dts); s 651 libavformat/nsvdec.c static int nsv_read_packet(AVFormatContext *s, AVPacket *pkt) s 653 libavformat/nsvdec.c NSVContext *nsv = s->priv_data; s 658 libavformat/nsvdec.c err = nsv_read_chunk(s, 0); s 674 libavformat/nsvdec.c static int nsv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 676 libavformat/nsvdec.c NSVContext *nsv = s->priv_data; s 677 libavformat/nsvdec.c AVStream *st = s->streams[stream_index]; s 685 libavformat/nsvdec.c if (avio_seek(s->pb, st->index_entries[index].pos, SEEK_SET) < 0) s 693 libavformat/nsvdec.c static int nsv_read_close(AVFormatContext *s) s 695 libavformat/nsvdec.c NSVContext *nsv = s->priv_data; s 24 libavformat/nullenc.c static int null_write_packet(struct AVFormatContext *s, AVPacket *pkt) s 38 libavformat/nutdec.c static int64_t nut_read_timestamp(AVFormatContext *s, int stream_index, s 169 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "Error " #dst " is (%"PRId64")\n", tmp); \ s 194 libavformat/nutdec.c AVFormatContext *s = nut->avf; s 195 libavformat/nutdec.c AVIOContext *bc = s->pb; s 207 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "Version %d not supported.\n", s 218 libavformat/nutdec.c av_log(s, AV_LOG_DEBUG, "max_distance %d\n", nut->max_distance); s 231 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "invalid time base %d/%d\n", s 271 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "reached EOF while decoding main header\n"); s 279 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "illegal count %d at %d\n", count, i); s 284 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "illegal stream number %d >= %d\n", s 315 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, s 339 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "main header checksum mismatch\n"); s 350 libavformat/nutdec.c avformat_new_stream(s, NULL); s 364 libavformat/nutdec.c AVFormatContext *s = nut->avf; s 365 libavformat/nutdec.c AVIOContext *bc = s->pb; s 374 libavformat/nutdec.c GET_V(stream_id, tmp < s->nb_streams && !nut->stream[tmp].time_base); s 376 libavformat/nutdec.c st = s->streams[stream_id]; s 413 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "unknown stream class (%d)\n", class); s 417 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, s 430 libavformat/nutdec.c ret = ff_get_extradata(s, st->codecpar, bc, s 442 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "invalid aspect ratio %d/%d\n", s 454 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, s 460 libavformat/nutdec.c avpriv_set_pts_info(s->streams[stream_id], 63, stc->time_base->num, s 488 libavformat/nutdec.c AVFormatContext *s = nut->avf; s 489 libavformat/nutdec.c AVIOContext *bc = s->pb; s 505 libavformat/nutdec.c GET_V(stream_id_plus1, tmp <= s->nb_streams); s 513 libavformat/nutdec.c chapter = avpriv_new_chapter(s, chapter_id, s 518 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "Could not create chapter.\n"); s 523 libavformat/nutdec.c st = s->streams[stream_id_plus1 - 1]; s 528 libavformat/nutdec.c metadata = &s->metadata; s 529 libavformat/nutdec.c event_flags = &s->event_flags; s 536 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "get_str failed while decoding info header\n"); s 548 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "get_str failed while decoding info header\n"); s 567 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "get_str failed while decoding info header\n"); s 571 libavformat/nutdec.c if (stream_id_plus1 > s->nb_streams) { s 572 libavformat/nutdec.c av_log(s, AV_LOG_WARNING, s 580 libavformat/nutdec.c set_disposition_bits(s, str_value, stream_id_plus1 - 1); s 602 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "info header checksum mismatch\n"); s 611 libavformat/nutdec.c AVFormatContext *s = nut->avf; s 612 libavformat/nutdec.c AVIOContext *bc = s->pb; s 632 libavformat/nutdec.c av_log(s, AV_LOG_VERBOSE, "Syncpoint wallclock %"PRId64"\n", s 639 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "sync point checksum mismatch\n"); s 655 libavformat/nutdec.c AVFormatContext *s = nut->avf; s 658 libavformat/nutdec.c ff_find_last_ts(s, -1, &duration, NULL, nut_read_timestamp); s 661 libavformat/nutdec.c s->duration_estimation_method = AVFMT_DURATION_FROM_PTS; s 667 libavformat/nutdec.c AVFormatContext *s = nut->avf; s 668 libavformat/nutdec.c AVIOContext *bc = s->pb; s 683 libavformat/nutdec.c av_log(s, AV_LOG_WARNING, "no index at the end\n"); s 685 libavformat/nutdec.c if(s->duration<=0) s 686 libavformat/nutdec.c s->duration = find_duration(nut, filesize); s 694 libavformat/nutdec.c s->duration = av_rescale_q(max_pts / nut->time_base_count, s 697 libavformat/nutdec.c s->duration_estimation_method = AVFMT_DURATION_FROM_PTS; s 714 libavformat/nutdec.c for (i = 0; i < s->nb_streams; i++) { s 725 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "index overflow A %d + %"PRIu64" >= %d\n", n, x, syncpoint_count + 1); s 733 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "index: x %"PRIu64" is invalid\n", x); s 738 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "index overflow B\n"); s 746 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "keyframe before first syncpoint in index\n"); s 759 libavformat/nutdec.c av_add_index_entry(s->streams[i], 16 * syncpoints[j - 1], s 768 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "index checksum mismatch\n"); s 779 libavformat/nutdec.c static int nut_read_close(AVFormatContext *s) s 781 libavformat/nutdec.c NUTContext *nut = s->priv_data; s 793 libavformat/nutdec.c static int nut_read_header(AVFormatContext *s) s 795 libavformat/nutdec.c NUTContext *nut = s->priv_data; s 796 libavformat/nutdec.c AVIOContext *bc = s->pb; s 800 libavformat/nutdec.c nut->avf = s; s 807 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "No main startcode found.\n"); s 814 libavformat/nutdec.c for (initialized_stream_count = 0; initialized_stream_count < s->nb_streams;) { s 817 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "Not all stream headers found.\n"); s 831 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "EOF before video frames\n"); s 843 libavformat/nutdec.c s->internal->data_offset = pos - 8; s 852 libavformat/nutdec.c ff_metadata_conv_ctx(s, NULL, ff_nut_metadata_conv); s 857 libavformat/nutdec.c nut_read_close(s); s 862 libavformat/nutdec.c static int read_sm_data(AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int is_meta, int64_t maxpos) s 881 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "get_str failed while reading sm data\n"); s 889 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "get_str failed while reading sm data\n"); s 892 libavformat/nutdec.c av_log(s, AV_LOG_WARNING, "Unknown string %s / %s\n", name, str_value); s 899 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "get_str failed while reading sm data\n"); s 919 libavformat/nutdec.c av_log(s, AV_LOG_WARNING, "Unknown data %s / %s\n", name, type_str); s 946 libavformat/nutdec.c av_log(s, AV_LOG_WARNING, "Unknown integer %s\n", name); s 990 libavformat/nutdec.c AVFormatContext *s = nut->avf; s 991 libavformat/nutdec.c AVIOContext *bc = s->pb; s 998 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, s 1017 libavformat/nutdec.c GET_V(*stream_id, tmp < s->nb_streams); s 1039 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "reached EOF while decoding frame header\n"); s 1046 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "header_idx invalid\n"); s 1058 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "frame size > 2max_distance and no checksum\n"); s 1072 libavformat/nutdec.c AVFormatContext *s = nut->avf; s 1073 libavformat/nutdec.c AVIOContext *bc = s->pb; s 1088 libavformat/nutdec.c discard = s->streams[stream_id]->discard; s 1089 libavformat/nutdec.c last_IP_pts = s->streams[stream_id]->last_IP_pts; s 1107 libavformat/nutdec.c if (read_sm_data(s, bc, pkt, 0, pkt->pos + size) < 0) { s 1111 libavformat/nutdec.c if (read_sm_data(s, bc, pkt, 1, pkt->pos + size) < 0) { s 1138 libavformat/nutdec.c static int nut_read_packet(AVFormatContext *s, AVPacket *pkt) s 1140 libavformat/nutdec.c NUTContext *nut = s->priv_data; s 1141 libavformat/nutdec.c AVIOContext *bc = s->pb; s 1185 libavformat/nutdec.c av_log(s, AV_LOG_DEBUG, "syncing from %"PRId64"\n", pos); s 1190 libavformat/nutdec.c av_log(s, AV_LOG_DEBUG, "sync\n"); s 1196 libavformat/nutdec.c static int64_t nut_read_timestamp(AVFormatContext *s, int stream_index, s 1199 libavformat/nutdec.c NUTContext *nut = s->priv_data; s 1200 libavformat/nutdec.c AVIOContext *bc = s->pb; s 1202 libavformat/nutdec.c av_log(s, AV_LOG_DEBUG, "read_timestamp(X,%d,%"PRId64",%"PRId64")\n", s 1209 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "read_timestamp failed.\n"); s 1216 libavformat/nutdec.c av_log(s, AV_LOG_DEBUG, "return %"PRId64" %"PRId64"\n", pts, back_ptr); s 1223 libavformat/nutdec.c static int read_seek(AVFormatContext *s, int stream_index, s 1226 libavformat/nutdec.c NUTContext *nut = s->priv_data; s 1227 libavformat/nutdec.c AVStream *st = s->streams[stream_index]; s 1250 libavformat/nutdec.c av_log(s, AV_LOG_DEBUG, "%"PRIu64"-%"PRIu64" %"PRId64"-%"PRId64"\n", s 1253 libavformat/nutdec.c pos = ff_gen_search(s, -1, dummy.ts, next_node[0]->pos, s 1265 libavformat/nutdec.c pos2 = ff_gen_search(s, -2, dummy.pos, next_node[0]->pos, s 1280 libavformat/nutdec.c av_log(s, AV_LOG_DEBUG, "SEEKTO: %"PRId64"\n", pos2); s 1281 libavformat/nutdec.c pos = find_startcode(s->pb, SYNCPOINT_STARTCODE, pos2); s 1282 libavformat/nutdec.c avio_seek(s->pb, pos, SEEK_SET); s 1284 libavformat/nutdec.c av_log(s, AV_LOG_DEBUG, "SP: %"PRId64"\n", pos); s 1286 libavformat/nutdec.c av_log(s, AV_LOG_ERROR, "no syncpoint at backptr pos\n"); s 1287 libavformat/nutdec.c for (i = 0; i < s->nb_streams; i++) s 105 libavformat/nutenc.c static int find_header_idx(AVFormatContext *s, AVCodecParameters *p, int size, s 108 libavformat/nutenc.c NUTContext *nut = s->priv_data; s 122 libavformat/nutenc.c static void build_elision_headers(AVFormatContext *s) s 124 libavformat/nutenc.c NUTContext *nut = s->priv_data; s 144 libavformat/nutenc.c static void build_frame_code(AVFormatContext *s) s 146 libavformat/nutenc.c NUTContext *nut = s->priv_data; s 150 libavformat/nutenc.c int keyframe_0_esc = s->nb_streams > 2; s 168 libavformat/nutenc.c for (stream_id = 0; stream_id < s->nb_streams; stream_id++) { s 169 libavformat/nutenc.c int start2 = start + (end - start) * stream_id / s->nb_streams; s 170 libavformat/nutenc.c int end2 = start + (end - start) * (stream_id + 1) / s->nb_streams; s 171 libavformat/nutenc.c AVCodecParameters *par = s->streams[stream_id]->codecpar; s 182 libavformat/nutenc.c AVRational f = av_div_q(av_inv_q(s->streams[stream_id]->avg_frame_rate), *nut->stream[stream_id].time_base); s 197 libavformat/nutenc.c ft->header_idx = find_header_idx(s, par, -1, key_frame); s 223 libavformat/nutenc.c ft->header_idx = find_header_idx(s, par, frame_bytes + pred, key_frame); s 270 libavformat/nutenc.c ft->header_idx = find_header_idx(s, par, -1, key_frame); s 496 libavformat/nutenc.c AVFormatContext *s = nut->avf; s 505 libavformat/nutenc.c ff_standardize_creation_time(s); s 506 libavformat/nutenc.c while ((t = av_dict_get(s->metadata, "", t, AV_DICT_IGNORE_SUFFIX))) s 523 libavformat/nutenc.c AVFormatContext *s= nut->avf; s 524 libavformat/nutenc.c AVStream* st = s->streams[stream_id]; s 696 libavformat/nutenc.c static int nut_write_header(AVFormatContext *s) s 698 libavformat/nutenc.c NUTContext *nut = s->priv_data; s 699 libavformat/nutenc.c AVIOContext *bc = s->pb; s 702 libavformat/nutenc.c nut->avf = s; s 705 libavformat/nutenc.c if (nut->version > 3 && s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { s 706 libavformat/nutenc.c av_log(s, AV_LOG_ERROR, s 714 libavformat/nutenc.c nut->stream = av_calloc(s->nb_streams, sizeof(*nut->stream )); s 715 libavformat/nutenc.c nut->chapter = av_calloc(s->nb_chapters, sizeof(*nut->chapter)); s 716 libavformat/nutenc.c nut->time_base= av_calloc(s->nb_streams + s 717 libavformat/nutenc.c s->nb_chapters, sizeof(*nut->time_base)); s 721 libavformat/nutenc.c for (i = 0; i < s->nb_streams; i++) { s 722 libavformat/nutenc.c AVStream *st = s->streams[i]; s 730 libavformat/nutenc.c time_base = ff_choose_timebase(s, st, 48000); s 752 libavformat/nutenc.c for (i = 0; i < s->nb_chapters; i++) { s 753 libavformat/nutenc.c AVChapter *ch = s->chapters[i]; s 766 libavformat/nutenc.c build_elision_headers(s); s 767 libavformat/nutenc.c build_frame_code(s); s 773 libavformat/nutenc.c if ((ret = write_headers(s, bc)) < 0) s 776 libavformat/nutenc.c if (s->avoid_negative_ts < 0) s 777 libavformat/nutenc.c s->avoid_negative_ts = 1; s 830 libavformat/nutenc.c static int write_sm_data(AVFormatContext *s, AVIOContext *bc, AVPacket *pkt, int is_meta) s 885 libavformat/nutenc.c (s->flags & AVFMT_FLAG_BITEXACT) ? "Lavf" : LIBAVFORMAT_IDENT, s 953 libavformat/nutenc.c static int nut_write_packet(AVFormatContext *s, AVPacket *pkt) s 955 libavformat/nutenc.c NUTContext *nut = s->priv_data; s 957 libavformat/nutenc.c AVIOContext *bc = s->pb, *dyn_bc, *sm_bc = NULL; s 970 libavformat/nutenc.c av_log(s, AV_LOG_ERROR, s 974 libavformat/nutenc.c av_log(s, AV_LOG_ERROR, "Try to enable the genpts flag\n"); s 982 libavformat/nutenc.c ret = write_sm_data(s, sm_bc, pkt, 0); s 984 libavformat/nutenc.c ret = write_sm_data(s, sm_bc, pkt, 1); s 992 libavformat/nutenc.c write_headers(s, bc); s 1007 libavformat/nutenc.c for (i = 0; i < s->nb_streams; i++) { s 1008 libavformat/nutenc.c AVStream *st = s->streams[i]; s 1045 libavformat/nutenc.c for (i=0; i<s->nb_streams; i++) { s 1154 libavformat/nutenc.c s->streams[pkt->stream_index], s 1175 libavformat/nutenc.c static int nut_write_trailer(AVFormatContext *s) s 1177 libavformat/nutenc.c NUTContext *nut = s->priv_data; s 1178 libavformat/nutenc.c AVIOContext *bc = s->pb, *dyn_bc; s 1182 libavformat/nutenc.c write_headers(s, bc); s 1198 libavformat/nutenc.c static void nut_write_deinit(AVFormatContext *s) s 1200 libavformat/nutenc.c NUTContext *nut = s->priv_data; s 1205 libavformat/nutenc.c for (i=0; i<s->nb_streams; i++) s 60 libavformat/nuv.c #define PKTSIZE(s) (s & 0xffffff) s 69 libavformat/nuv.c static int get_codec_data(AVFormatContext *s, AVIOContext *pb, AVStream *vst, s 114 libavformat/nuv.c av_log(s, AV_LOG_ERROR, "Invalid sample rate %d\n", ast->codecpar->sample_rate); s 152 libavformat/nuv.c static int nuv_header(AVFormatContext *s) s 154 libavformat/nuv.c NUVContext *ctx = s->priv_data; s 155 libavformat/nuv.c AVIOContext *pb = s->pb; s 176 libavformat/nuv.c if (s->error_recognition & AV_EF_EXPLODE) { s 177 libavformat/nuv.c av_log(s, AV_LOG_ERROR, "Invalid frame rate %f\n", fps); s 180 libavformat/nuv.c av_log(s, AV_LOG_WARNING, "Invalid frame rate %f, setting to 0.\n", fps); s 193 libavformat/nuv.c vst = avformat_new_stream(s, NULL); s 198 libavformat/nuv.c ret = av_image_check_size(width, height, 0, s); s 218 libavformat/nuv.c ast = avformat_new_stream(s, NULL); s 235 libavformat/nuv.c if ((ret = get_codec_data(s, pb, vst, ast, is_mythtv)) < 0) s 245 libavformat/nuv.c static int nuv_packet(AVFormatContext *s, AVPacket *pkt) s 247 libavformat/nuv.c NUVContext *ctx = s->priv_data; s 248 libavformat/nuv.c AVIOContext *pb = s->pb; s 272 libavformat/nuv.c av_log(s, AV_LOG_ERROR, "Video packet in file without video stream!\n"); s 294 libavformat/nuv.c av_log(s, AV_LOG_ERROR, "Audio packet in file without audio stream!\n"); s 322 libavformat/nuv.c static int nuv_resync(AVFormatContext *s, int64_t pos_limit) { s 323 libavformat/nuv.c AVIOContext *pb = s->pb; s 339 libavformat/nuv.c static int64_t nuv_read_dts(AVFormatContext *s, int stream_index, s 342 libavformat/nuv.c NUVContext *ctx = s->priv_data; s 343 libavformat/nuv.c AVIOContext *pb = s->pb; s 352 libavformat/nuv.c if (!nuv_resync(s, pos_limit)) s 374 libavformat/nuv.c pos = avio_tell(s->pb) - HDRSIZE; s 378 libavformat/nuv.c av_add_index_entry(s->streams[stream_index], pos, dts, size + HDRSIZE, 0, s 62 libavformat/oggdec.c static int64_t ogg_calc_pts(AVFormatContext *s, int idx, int64_t *dts); s 63 libavformat/oggdec.c static int ogg_new_stream(AVFormatContext *s, uint32_t serial); s 64 libavformat/oggdec.c static int ogg_restore(AVFormatContext *s); s 66 libavformat/oggdec.c static void free_stream(AVFormatContext *s, int i) s 68 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 74 libavformat/oggdec.c stream->codec->cleanup(s, i); s 82 libavformat/oggdec.c static int ogg_save(AVFormatContext *s) s 84 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 93 libavformat/oggdec.c ost->pos = avio_tell(s->pb); s 113 libavformat/oggdec.c ogg_restore(s); s 118 libavformat/oggdec.c static int ogg_restore(AVFormatContext *s) s 120 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 121 libavformat/oggdec.c AVIOContext *bc = s->pb; s 136 libavformat/oggdec.c free_stream(s, i); s 157 libavformat/oggdec.c static int ogg_reset(AVFormatContext *s) s 159 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 161 libavformat/oggdec.c int64_t start_pos = avio_tell(s->pb); s 177 libavformat/oggdec.c if (start_pos <= s->internal->data_offset) { s 209 libavformat/oggdec.c static int ogg_replace_stream(AVFormatContext *s, uint32_t serial, char *magic, int page_size, s 212 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 218 libavformat/oggdec.c avpriv_report_missing_feature(s, "Changing stream parameters in multistream ogg"); s 225 libavformat/oggdec.c av_log(s, AV_LOG_ERROR, "Cannot identify new stream\n"); s 248 libavformat/oggdec.c static int ogg_new_stream(AVFormatContext *s, uint32_t serial) s 250 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 257 libavformat/oggdec.c av_log(s, AV_LOG_ERROR, "New streams are not supposed to be added " s 278 libavformat/oggdec.c st = avformat_new_stream(s, NULL); s 314 libavformat/oggdec.c static int ogg_read_page(AVFormatContext *s, int *sid, int probing) s 316 libavformat/oggdec.c AVIOContext *bc = s->pb; s 317 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 359 libavformat/oggdec.c av_log(s, AV_LOG_INFO, "cannot find sync word\n"); s 412 libavformat/oggdec.c av_log(s, AV_LOG_ERROR, "CRC mismatch!\n"); s 423 libavformat/oggdec.c av_log(s, AV_LOG_ERROR, "Invalid Ogg vers!\n"); s 434 libavformat/oggdec.c idx = ogg_replace_stream(s, serial, readout_buf, size, probing); s 436 libavformat/oggdec.c idx = ogg_new_stream(s, serial); s 439 libavformat/oggdec.c av_log(s, AV_LOG_ERROR, "failed to create or replace stream\n"); s 498 libavformat/oggdec.c static int ogg_packet(AVFormatContext *s, int *sid, int *dstart, int *dsize, s 501 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 507 libavformat/oggdec.c av_log(s, AV_LOG_TRACE, "ogg_packet: curidx=%i\n", ogg->curidx); s 515 libavformat/oggdec.c ret = ogg_read_page(s, &idx, 0); s 522 libavformat/oggdec.c av_log(s, AV_LOG_TRACE, "ogg_packet: idx=%d pstart=%d psize=%d segp=%d nsegs=%d\n", s 529 libavformat/oggdec.c av_log(s, AV_LOG_WARNING, "Codec not found\n"); s 562 libavformat/oggdec.c av_log(s, AV_LOG_WARNING, s 570 libavformat/oggdec.c if ((ret = os->codec->header(s, idx)) < 0) { s 571 libavformat/oggdec.c av_log(s, AV_LOG_ERROR, "Header processing failed: %s\n", av_err2str(ret)); s 586 libavformat/oggdec.c if (!s->internal->data_offset) s 587 libavformat/oggdec.c s->internal->data_offset = os->sync_pos; s 595 libavformat/oggdec.c s->internal->data_offset = FFMIN(s->internal->data_offset, cur_os->sync_pos); s 606 libavformat/oggdec.c if ((ret = os->codec->packet(s, idx)) < 0) { s 607 libavformat/oggdec.c av_log(s, AV_LOG_ERROR, "Packet processing failed: %s\n", av_err2str(ret)); s 641 libavformat/oggdec.c static int ogg_get_length(AVFormatContext *s) s 643 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 648 libavformat/oggdec.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) s 652 libavformat/oggdec.c if (s->duration != AV_NOPTS_VALUE) s 655 libavformat/oggdec.c size = avio_size(s->pb); s 660 libavformat/oggdec.c ret = ogg_save(s); s 663 libavformat/oggdec.c avio_seek(s->pb, end, SEEK_SET); s 666 libavformat/oggdec.c while (!ogg_read_page(s, &i, 1)) { s 669 libavformat/oggdec.c s->streams[i]->duration = s 670 libavformat/oggdec.c ogg_gptopts(s, i, ogg->streams[i].granule, NULL); s 671 libavformat/oggdec.c if (s->streams[i]->start_time != AV_NOPTS_VALUE) { s 672 libavformat/oggdec.c s->streams[i]->duration -= s->streams[i]->start_time; s 682 libavformat/oggdec.c ogg_restore(s); s 684 libavformat/oggdec.c ret = ogg_save(s); s 688 libavformat/oggdec.c avio_seek (s->pb, s->internal->data_offset, SEEK_SET); s 689 libavformat/oggdec.c ogg_reset(s); s 690 libavformat/oggdec.c while (streams_left > 0 && !ogg_packet(s, &i, NULL, NULL, NULL)) { s 693 libavformat/oggdec.c pts = ogg_calc_pts(s, i, NULL); s 694 libavformat/oggdec.c if (s->streams[i]->duration == AV_NOPTS_VALUE) s 696 libavformat/oggdec.c if (pts != AV_NOPTS_VALUE && s->streams[i]->start_time == AV_NOPTS_VALUE && !ogg->streams[i].got_start) { s 697 libavformat/oggdec.c s->streams[i]->duration -= pts; s 700 libavformat/oggdec.c }else if(s->streams[i]->start_time != AV_NOPTS_VALUE && !ogg->streams[i].got_start) { s 705 libavformat/oggdec.c ogg_restore (s); s 710 libavformat/oggdec.c static int ogg_read_close(AVFormatContext *s) s 712 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 716 libavformat/oggdec.c free_stream(s, i); s 725 libavformat/oggdec.c static int ogg_read_header(AVFormatContext *s) s 727 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 734 libavformat/oggdec.c ret = ogg_packet(s, NULL, NULL, NULL, NULL); s 736 libavformat/oggdec.c ogg_read_close(s); s 740 libavformat/oggdec.c av_log(s, AV_LOG_TRACE, "found headers\n"); s 746 libavformat/oggdec.c av_log(s, AV_LOG_ERROR, "Header parsing failed for stream %d\n", i); s 750 libavformat/oggdec.c av_log(s, AV_LOG_WARNING, s 754 libavformat/oggdec.c if (s->error_recognition & AV_EF_EXPLODE) { s 755 libavformat/oggdec.c ogg_read_close(s); s 760 libavformat/oggdec.c os->lastpts = s->streams[i]->start_time = s 761 libavformat/oggdec.c ogg_gptopts(s, i, os->start_granule, NULL); s 765 libavformat/oggdec.c ret = ogg_get_length(s); s 767 libavformat/oggdec.c ogg_read_close(s); s 774 libavformat/oggdec.c static int64_t ogg_calc_pts(AVFormatContext *s, int idx, int64_t *dts) s 776 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 795 libavformat/oggdec.c pts = ogg_gptopts(s, idx, os->granule, dts); s 797 libavformat/oggdec.c os->lastpts = ogg_gptopts(s, idx, os->granule, &os->lastdts); s 804 libavformat/oggdec.c static void ogg_validate_keyframe(AVFormatContext *s, int idx, int pstart, int psize) s 806 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 810 libavformat/oggdec.c switch (s->streams[idx]->codecpar->codec_id) { s 819 libavformat/oggdec.c av_log(s, AV_LOG_WARNING, "Broken file, %skeyframe not correctly marked.\n", s 825 libavformat/oggdec.c static int ogg_read_packet(AVFormatContext *s, AVPacket *pkt) s 833 libavformat/oggdec.c if (s->io_repositioned) { s 834 libavformat/oggdec.c ogg_reset(s); s 835 libavformat/oggdec.c s->io_repositioned = 0; s 841 libavformat/oggdec.c ret = ogg_packet(s, &idx, &pstart, &psize, &fpos); s 844 libavformat/oggdec.c } while (idx < 0 || !s->streams[idx]); s 846 libavformat/oggdec.c ogg = s->priv_data; s 850 libavformat/oggdec.c pts = ogg_calc_pts(s, idx, &dts); s 851 libavformat/oggdec.c ogg_validate_keyframe(s, idx, pstart, psize); s 895 libavformat/oggdec.c static int64_t ogg_read_timestamp(AVFormatContext *s, int stream_index, s 898 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 899 libavformat/oggdec.c AVIOContext *bc = s->pb; s 905 libavformat/oggdec.c ogg_reset(s); s 908 libavformat/oggdec.c && !ogg_packet(s, &i, &pstart, &psize, pos_arg)) { s 916 libavformat/oggdec.c pts = ogg_calc_pts(s, i, NULL); s 917 libavformat/oggdec.c ogg_validate_keyframe(s, i, pstart, psize); s 932 libavformat/oggdec.c ogg_reset(s); s 936 libavformat/oggdec.c static int ogg_read_seek(AVFormatContext *s, int stream_index, s 939 libavformat/oggdec.c struct ogg *ogg = s->priv_data; s 946 libavformat/oggdec.c ogg_reset(s); s 950 libavformat/oggdec.c if (s->streams[stream_index]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO s 954 libavformat/oggdec.c ret = ff_seek_frame_binary(s, stream_index, timestamp, flags); s 955 libavformat/oggdec.c ogg_reset(s); s 58 libavformat/oggdec.h void (*cleanup)(AVFormatContext *s, int idx); s 152 libavformat/oggdec.h ogg_gptopts (AVFormatContext * s, int i, uint64_t gp, int64_t *dts) s 154 libavformat/oggdec.h struct ogg *ogg = s->priv_data; s 159 libavformat/oggdec.h pts = os->codec->gptopts(s, i, gp, dts); s 167 libavformat/oggdec.h av_log(s, AV_LOG_ERROR, "invalid pts %"PRId64"\n", pts); s 102 libavformat/oggenc.c static void ogg_write_page(AVFormatContext *s, OGGPage *page, int extra_flags) s 104 libavformat/oggenc.c OGGStreamContext *oggstream = s->streams[page->stream_index]->priv_data; s 124 libavformat/oggenc.c avio_write(s->pb, buf, ptr - buf); s 125 libavformat/oggenc.c avio_write(s->pb, page->data, page->size); s 126 libavformat/oggenc.c avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_FLUSH_POINT); s 147 libavformat/oggenc.c static int ogg_compare_granule(AVFormatContext *s, OGGPage *next, OGGPage *page) s 149 libavformat/oggenc.c AVStream *st2 = s->streams[next->stream_index]; s 150 libavformat/oggenc.c AVStream *st = s->streams[page->stream_index]; s 172 libavformat/oggenc.c static int ogg_buffer_page(AVFormatContext *s, OGGStreamContext *oggstream) s 174 libavformat/oggenc.c OGGContext *ogg = s->priv_data; s 187 libavformat/oggenc.c if (ogg_compare_granule(s, &(*p)->page, &l->page)) s 197 libavformat/oggenc.c static int ogg_buffer_data(AVFormatContext *s, AVStream *st, s 202 libavformat/oggenc.c OGGContext *ogg = s->priv_data; s 217 libavformat/oggenc.c ogg_buffer_page(s, oggstream); s 224 libavformat/oggenc.c ogg_buffer_page(s, oggstream); s 250 libavformat/oggenc.c AVStream *st = s->streams[page->stream_index]; s 258 libavformat/oggenc.c ogg_buffer_page(s, oggstream); s 262 libavformat/oggenc.c ogg_buffer_page(s, oggstream); s 269 libavformat/oggenc.c ogg_buffer_page(s, oggstream); s 398 libavformat/oggenc.c static int ogg_build_vp8_headers(AVFormatContext *s, AVStream *st, s 422 libavformat/oggenc.c av_log(s, AV_LOG_DEBUG, "Changing time base from %d/%d to %d/%d\n", s 447 libavformat/oggenc.c static void ogg_write_pages(AVFormatContext *s, int flush) s 449 libavformat/oggenc.c OGGContext *ogg = s->priv_data; s 457 libavformat/oggenc.c s->streams[p->page.stream_index]->priv_data; s 460 libavformat/oggenc.c ogg_write_page(s, &p->page, s 469 libavformat/oggenc.c static int ogg_init(AVFormatContext *s) s 471 libavformat/oggenc.c OGGContext *ogg = s->priv_data; s 476 libavformat/oggenc.c av_log(s, AV_LOG_WARNING, "The pagesize option is deprecated\n"); s 478 libavformat/oggenc.c for (i = 0; i < s->nb_streams; i++) { s 479 libavformat/oggenc.c AVStream *st = s->streams[i]; s 496 libavformat/oggenc.c av_log(s, AV_LOG_ERROR, "Unsupported codec id in stream %d\n", i); s 502 libavformat/oggenc.c av_log(s, AV_LOG_ERROR, "No extradata present\n"); s 511 libavformat/oggenc.c if (!(s->flags & AVFMT_FLAG_BITEXACT)) s 515 libavformat/oggenc.c OGGStreamContext *sc = s->streams[j]->priv_data; s 522 libavformat/oggenc.c av_dict_copy(&st->metadata, s->metadata, AV_DICT_DONT_OVERWRITE); s 527 libavformat/oggenc.c s->flags & AVFMT_FLAG_BITEXACT, s 530 libavformat/oggenc.c av_log(s, AV_LOG_ERROR, "Error writing FLAC headers\n"); s 535 libavformat/oggenc.c s->flags & AVFMT_FLAG_BITEXACT, s 538 libavformat/oggenc.c av_log(s, AV_LOG_ERROR, "Error writing Speex headers\n"); s 543 libavformat/oggenc.c s->flags & AVFMT_FLAG_BITEXACT, s 544 libavformat/oggenc.c &st->metadata, s->chapters, s->nb_chapters); s 546 libavformat/oggenc.c av_log(s, AV_LOG_ERROR, "Error writing Opus headers\n"); s 550 libavformat/oggenc.c int err = ogg_build_vp8_headers(s, st, oggstream, s 551 libavformat/oggenc.c s->flags & AVFMT_FLAG_BITEXACT); s 553 libavformat/oggenc.c av_log(s, AV_LOG_ERROR, "Error writing VP8 headers\n"); s 565 libavformat/oggenc.c av_log(s, AV_LOG_ERROR, "Extradata corrupted\n"); s 570 libavformat/oggenc.c p = ogg_write_vorbiscomment(7, s->flags & AVFMT_FLAG_BITEXACT, s 585 libavformat/oggenc.c av_log(s, AV_LOG_DEBUG, "Changing time base from %d/%d to %d/%d\n", s 593 libavformat/oggenc.c av_log(s, AV_LOG_DEBUG, "theora kfgshift %d, vrev %d\n", s 602 libavformat/oggenc.c static int ogg_write_header(AVFormatContext *s) s 607 libavformat/oggenc.c for (j = 0; j < s->nb_streams; j++) { s 608 libavformat/oggenc.c oggstream = s->streams[j]->priv_data; s 609 libavformat/oggenc.c ogg_buffer_data(s, s->streams[j], oggstream->header[0], s 612 libavformat/oggenc.c ogg_buffer_page(s, oggstream); s 614 libavformat/oggenc.c for (j = 0; j < s->nb_streams; j++) { s 615 libavformat/oggenc.c AVStream *st = s->streams[j]; s 619 libavformat/oggenc.c ogg_buffer_data(s, st, oggstream->header[i], s 622 libavformat/oggenc.c ogg_buffer_page(s, oggstream); s 627 libavformat/oggenc.c ogg_write_pages(s, 2); s 632 libavformat/oggenc.c static int ogg_write_packet_internal(AVFormatContext *s, AVPacket *pkt) s 634 libavformat/oggenc.c AVStream *st = s->streams[pkt->stream_index]; s 673 libavformat/oggenc.c ret = ogg_buffer_data(s, st, pkt->data, pkt->size, granule, 0); s 677 libavformat/oggenc.c ogg_write_pages(s, 0); s 684 libavformat/oggenc.c static int ogg_write_packet(AVFormatContext *s, AVPacket *pkt) s 689 libavformat/oggenc.c return ogg_write_packet_internal(s, pkt); s 691 libavformat/oggenc.c for (i = 0; i < s->nb_streams; i++) { s 692 libavformat/oggenc.c OGGStreamContext *oggstream = s->streams[i]->priv_data; s 694 libavformat/oggenc.c ogg_buffer_page(s, oggstream); s 697 libavformat/oggenc.c ogg_write_pages(s, 2); s 701 libavformat/oggenc.c static int ogg_write_trailer(AVFormatContext *s) s 706 libavformat/oggenc.c for (i = 0; i < s->nb_streams; i++) { s 707 libavformat/oggenc.c OGGStreamContext *oggstream = s->streams[i]->priv_data; s 710 libavformat/oggenc.c ogg_buffer_page(s, oggstream); s 713 libavformat/oggenc.c ogg_write_pages(s, 1); s 718 libavformat/oggenc.c static void ogg_free(AVFormatContext *s) s 720 libavformat/oggenc.c OGGContext *ogg = s->priv_data; s 724 libavformat/oggenc.c for (i = 0; i < s->nb_streams; i++) { s 725 libavformat/oggenc.c AVStream *st = s->streams[i]; s 33 libavformat/oggparsecelt.c static int celt_header(AVFormatContext *s, int idx) s 35 libavformat/oggparsecelt.c struct ogg *ogg = s->priv_data; s 37 libavformat/oggparsecelt.c AVStream *st = s->streams[idx]; s 84 libavformat/oggparsecelt.c ff_vorbis_stream_comment(s, st, p, os->psize); s 28 libavformat/oggparsedirac.c static int dirac_header(AVFormatContext *s, int idx) s 30 libavformat/oggparsedirac.c struct ogg *ogg = s->priv_data; s 32 libavformat/oggparsedirac.c AVStream *st = s->streams[idx]; s 40 libavformat/oggparsedirac.c ret = av_dirac_parse_sequence_header(&dsh, os->buf + os->pstart + 13, (os->psize - 13), s); s 66 libavformat/oggparsedirac.c static uint64_t dirac_gptopts(AVFormatContext *s, int idx, uint64_t granule, s 70 libavformat/oggparsedirac.c struct ogg *ogg = s->priv_data; s 86 libavformat/oggparsedirac.c static int old_dirac_header(AVFormatContext *s, int idx) s 88 libavformat/oggparsedirac.c struct ogg *ogg = s->priv_data; s 90 libavformat/oggparsedirac.c AVStream *st = s->streams[idx]; s 102 libavformat/oggparsedirac.c static uint64_t old_dirac_gptopts(AVFormatContext *s, int idx, uint64_t gp, s 105 libavformat/oggparsedirac.c struct ogg *ogg = s->priv_data; s 31 libavformat/oggparseflac.c flac_header (AVFormatContext * s, int idx) s 33 libavformat/oggparseflac.c struct ogg *ogg = s->priv_data; s 35 libavformat/oggparseflac.c AVStream *st = s->streams[idx]; s 74 libavformat/oggparseflac.c ff_vorbis_stream_comment(s, st, os->buf + os->pstart + 4, os->psize - 4); s 81 libavformat/oggparseflac.c old_flac_header (AVFormatContext * s, int idx) s 83 libavformat/oggparseflac.c struct ogg *ogg = s->priv_data; s 84 libavformat/oggparseflac.c AVStream *st = s->streams[idx]; s 37 libavformat/oggparseogm.c ogm_header(AVFormatContext *s, int idx) s 39 libavformat/oggparseogm.c struct ogg *ogg = s->priv_data; s 41 libavformat/oggparseogm.c AVStream *st = s->streams[idx]; s 87 libavformat/oggparseogm.c av_log(s, AV_LOG_ERROR, "Invalid timing values.\n"); s 123 libavformat/oggparseogm.c ff_vorbis_stream_comment(s, st, p.buffer, bytestream2_get_bytes_left(&p) - 1); s 130 libavformat/oggparseogm.c ogm_dshow_header(AVFormatContext *s, int idx) s 132 libavformat/oggparseogm.c struct ogg *ogg = s->priv_data; s 134 libavformat/oggparseogm.c AVStream *st = s->streams[idx]; s 171 libavformat/oggparseogm.c ogm_packet(AVFormatContext *s, int idx) s 173 libavformat/oggparseogm.c struct ogg *ogg = s->priv_data; s 26 libavformat/oggparseskeleton.c static int skeleton_header(AVFormatContext *s, int idx) s 28 libavformat/oggparseskeleton.c struct ogg *ogg = s->priv_data; s 30 libavformat/oggparseskeleton.c AVStream *st = s->streams[idx]; s 53 libavformat/oggparseskeleton.c av_log(s, AV_LOG_WARNING, "Unknown skeleton version %d.%d\n", s 80 libavformat/oggparseskeleton.c av_log(s, AV_LOG_WARNING, "Serial number in fisbone doesn't match any stream\n"); s 85 libavformat/oggparseskeleton.c av_log(s, AV_LOG_WARNING, "Multiple fisbone for the same stream\n"); s 43 libavformat/oggparsespeex.c static int speex_header(AVFormatContext *s, int idx) { s 44 libavformat/oggparsespeex.c struct ogg *ogg = s->priv_data; s 47 libavformat/oggparsespeex.c AVStream *st = s->streams[idx]; s 67 libavformat/oggparsespeex.c av_log(s, AV_LOG_ERROR, "speex packet too small\n"); s 73 libavformat/oggparsespeex.c av_log(s, AV_LOG_ERROR, "Invalid sample rate %d\n", st->codecpar->sample_rate); s 78 libavformat/oggparsespeex.c av_log(s, AV_LOG_ERROR, "invalid channel count. Speex must be mono or stereo.\n"); s 89 libavformat/oggparsespeex.c av_log(s, AV_LOG_ERROR, "invalid packet_size, frames_per_packet %d %d\n", spxp->packet_size, frames_per_packet); s 102 libavformat/oggparsespeex.c ff_vorbis_stream_comment(s, st, p, os->psize); s 118 libavformat/oggparsespeex.c static int speex_packet(AVFormatContext *s, int idx) s 120 libavformat/oggparsespeex.c struct ogg *ogg = s->priv_data; s 38 libavformat/oggparsetheora.c static int theora_header(AVFormatContext *s, int idx) s 40 libavformat/oggparsetheora.c struct ogg *ogg = s->priv_data; s 42 libavformat/oggparsetheora.c AVStream *st = s->streams[idx]; s 70 libavformat/oggparsetheora.c av_log(s, AV_LOG_ERROR, s 96 libavformat/oggparsetheora.c av_log(s, AV_LOG_WARNING, "Invalid time base in theora stream, assuming 25 FPS\n"); s 119 libavformat/oggparsetheora.c ff_vorbis_stream_comment(s, st, os->buf + os->pstart + 7, os->psize - 7); s 125 libavformat/oggparsetheora.c av_log(s, AV_LOG_ERROR, "Unknown header type %X\n", os->buf[os->pstart]); s 171 libavformat/oggparsetheora.c static int theora_packet(AVFormatContext *s, int idx) s 173 libavformat/oggparsetheora.c struct ogg *ogg = s->priv_data; s 192 libavformat/oggparsetheora.c pts = theora_gptopts(s, idx, os->granule, NULL); s 196 libavformat/oggparsetheora.c if(s->streams[idx]->start_time == AV_NOPTS_VALUE && os->lastpts != AV_NOPTS_VALUE) { s 197 libavformat/oggparsetheora.c s->streams[idx]->start_time = os->lastpts; s 198 libavformat/oggparsetheora.c if (s->streams[idx]->duration > 0) s 199 libavformat/oggparsetheora.c s->streams[idx]->duration -= s->streams[idx]->start_time; s 44 libavformat/oggparsevorbis.c int i, cnum, h, m, s, ms, keylen = strlen(key); s 51 libavformat/oggparsevorbis.c if (sscanf(val, "%02d:%02d:%02d.%03d", &h, &m, &s, &ms) < 4) s 55 libavformat/oggparsevorbis.c ms + 1000 * (s + 60 * (m + 60 * h)), s 95 libavformat/oggparsevorbis.c int s; s 101 libavformat/oggparsevorbis.c s = bytestream_get_le32(&p); s 103 libavformat/oggparsevorbis.c if (end - p - 4 < s || s < 0) s 106 libavformat/oggparsevorbis.c p += s; s 114 libavformat/oggparsevorbis.c s = bytestream_get_le32(&p); s 116 libavformat/oggparsevorbis.c if (end - p < s || s < 0) s 120 libavformat/oggparsevorbis.c p += s; s 123 libavformat/oggparsevorbis.c v = memchr(t, '=', s); s 128 libavformat/oggparsevorbis.c vl = s - tl - 1; s 254 libavformat/oggparsevorbis.c static void vorbis_cleanup(AVFormatContext *s, int idx) s 256 libavformat/oggparsevorbis.c struct ogg *ogg = s->priv_data; s 267 libavformat/oggparsevorbis.c static int vorbis_update_metadata(AVFormatContext *s, int idx) s 269 libavformat/oggparsevorbis.c struct ogg *ogg = s->priv_data; s 271 libavformat/oggparsevorbis.c AVStream *st = s->streams[idx]; s 279 libavformat/oggparsevorbis.c ret = ff_vorbis_stream_comment(s, st, os->buf + os->pstart + 7, s 297 libavformat/oggparsevorbis.c static int vorbis_header(AVFormatContext *s, int idx) s 299 libavformat/oggparsevorbis.c struct ogg *ogg = s->priv_data; s 300 libavformat/oggparsevorbis.c AVStream *st = s->streams[idx]; s 343 libavformat/oggparsevorbis.c av_log(s, AV_LOG_ERROR, "Channel change is not supported\n"); s 372 libavformat/oggparsevorbis.c if (vorbis_update_metadata(s, idx) >= 0 && priv->len[1] > 10) { s 393 libavformat/oggparsevorbis.c ret = fixup_vorbis_headers(s, priv, &st->codecpar->extradata); s 411 libavformat/oggparsevorbis.c static int vorbis_packet(AVFormatContext *s, int idx) s 413 libavformat/oggparsevorbis.c struct ogg *ogg = s->priv_data; s 438 libavformat/oggparsevorbis.c vorbis_update_metadata(s, idx); s 450 libavformat/oggparsevorbis.c vorbis_update_metadata(s, idx); s 464 libavformat/oggparsevorbis.c if (s->streams[idx]->start_time == AV_NOPTS_VALUE) { s 465 libavformat/oggparsevorbis.c s->streams[idx]->start_time = FFMAX(os->lastpts, 0); s 466 libavformat/oggparsevorbis.c if (s->streams[idx]->duration != AV_NOPTS_VALUE) s 467 libavformat/oggparsevorbis.c s->streams[idx]->duration -= s->streams[idx]->start_time; s 480 libavformat/oggparsevorbis.c vorbis_update_metadata(s, idx); s 30 libavformat/oggparsevp8.c static int vp8_header(AVFormatContext *s, int idx) s 32 libavformat/oggparsevp8.c struct ogg *ogg = s->priv_data; s 35 libavformat/oggparsevp8.c AVStream *st = s->streams[idx]; s 44 libavformat/oggparsevp8.c av_log(s, AV_LOG_ERROR, "Invalid OggVP8 header packet"); s 49 libavformat/oggparsevp8.c av_log(s, AV_LOG_WARNING, s 69 libavformat/oggparsevp8.c ff_vorbis_stream_comment(s, st, p + 7, os->psize - 7); s 72 libavformat/oggparsevp8.c av_log(s, AV_LOG_ERROR, "Unknown VP8 header type 0x%02X\n", p[5]); s 79 libavformat/oggparsevp8.c static uint64_t vp8_gptopts(AVFormatContext *s, int idx, s 82 libavformat/oggparsevp8.c struct ogg *ogg = s->priv_data; s 101 libavformat/oggparsevp8.c static int vp8_packet(AVFormatContext *s, int idx) s 103 libavformat/oggparsevp8.c struct ogg *ogg = s->priv_data; s 125 libavformat/oggparsevp8.c os->lastdts = vp8_gptopts(s, idx, os->granule, NULL) - duration; s 126 libavformat/oggparsevp8.c if(s->streams[idx]->start_time == AV_NOPTS_VALUE) { s 127 libavformat/oggparsevp8.c s->streams[idx]->start_time = os->lastpts; s 128 libavformat/oggparsevp8.c if (s->streams[idx]->duration && s->streams[idx]->duration != AV_NOPTS_VALUE) s 129 libavformat/oggparsevp8.c s->streams[idx]->duration -= s->streams[idx]->start_time; s 79 libavformat/omadec.c int (*read_packet)(AVFormatContext *s, AVPacket *pkt); s 82 libavformat/omadec.c static int oma_read_close(AVFormatContext *s) s 84 libavformat/omadec.c OMAContext *oc = s->priv_data; s 89 libavformat/omadec.c static void hex_log(AVFormatContext *s, int level, s 98 libavformat/omadec.c av_log(s, level, "%s: %s\n", name, buf); s 101 libavformat/omadec.c static int kset(AVFormatContext *s, const uint8_t *r_val, const uint8_t *n_val, s 104 libavformat/omadec.c OMAContext *oc = s->priv_data; s 132 libavformat/omadec.c static int rprobe(AVFormatContext *s, uint8_t *enc_header, unsigned size, s 135 libavformat/omadec.c OMAContext *oc = s->priv_data; s 168 libavformat/omadec.c static int nprobe(AVFormatContext *s, uint8_t *enc_header, unsigned size, s 171 libavformat/omadec.c OMAContext *oc = s->priv_data; s 188 libavformat/omadec.c av_log(s, AV_LOG_DEBUG, "Mismatching RID\n"); s 205 libavformat/omadec.c kset(s, oc->r_val, NULL, 16); s 206 libavformat/omadec.c if (!rprobe(s, enc_header, size, oc->r_val)) { s 217 libavformat/omadec.c static int decrypt_init(AVFormatContext *s, ID3v2ExtraMeta *em, uint8_t *header) s 219 libavformat/omadec.c OMAContext *oc = s->priv_data; s 224 libavformat/omadec.c av_log(s, AV_LOG_INFO, "File is encrypted\n"); s 236 libavformat/omadec.c av_log(s, AV_LOG_ERROR, "No encryption header found\n"); s 241 libavformat/omadec.c av_log(s, AV_LOG_ERROR, s 249 libavformat/omadec.c av_log(s, AV_LOG_WARNING, "Unknown version in encryption header\n"); s 257 libavformat/omadec.c av_log(s, AV_LOG_ERROR, "Invalid encryption header\n"); s 262 libavformat/omadec.c av_log(s, AV_LOG_ERROR, "Too little GEOB data\n"); s 266 libavformat/omadec.c av_log(s, AV_LOG_DEBUG, "RID: %.8"PRIx32"\n", oc->rid); s 269 libavformat/omadec.c hex_log(s, AV_LOG_DEBUG, "IV", oc->iv, 8); s 271 libavformat/omadec.c hex_log(s, AV_LOG_DEBUG, "CBC-MAC", s 275 libavformat/omadec.c if (s->keylen > 0) { s 276 libavformat/omadec.c kset(s, s->key, s->key, s->keylen); s 279 libavformat/omadec.c rprobe(s, gdata, geob->datasize, oc->r_val) < 0 && s 280 libavformat/omadec.c nprobe(s, gdata, geob->datasize, oc->n_val) < 0) { s 286 libavformat/omadec.c kset(s, buf, buf, 16); s 287 libavformat/omadec.c if (!rprobe(s, gdata, geob->datasize, oc->r_val) || s 288 libavformat/omadec.c !nprobe(s, gdata, geob->datasize, oc->n_val)) s 292 libavformat/omadec.c av_log(s, AV_LOG_ERROR, "Invalid key\n"); s 305 libavformat/omadec.c hex_log(s, AV_LOG_DEBUG, "EK", oc->e_val, 8); s 313 libavformat/omadec.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 315 libavformat/omadec.c OMAContext *oc = s->priv_data; s 316 libavformat/omadec.c AVStream *st = s->streams[0]; s 319 libavformat/omadec.c int64_t pos = avio_tell(s->pb); s 320 libavformat/omadec.c int ret = av_get_packet(s->pb, pkt, packet_size); s 351 libavformat/omadec.c static int aal_read_packet(AVFormatContext *s, AVPacket *pkt) s 353 libavformat/omadec.c int64_t pos = avio_tell(s->pb); s 358 libavformat/omadec.c if (avio_feof(s->pb)) s 361 libavformat/omadec.c tag = avio_rb24(s->pb); s 367 libavformat/omadec.c avio_skip(s->pb, 1); s 368 libavformat/omadec.c packet_size = avio_rb16(s->pb); s 369 libavformat/omadec.c avio_skip(s->pb, 2); s 370 libavformat/omadec.c pts = avio_rb32(s->pb); s 371 libavformat/omadec.c avio_skip(s->pb, 12); s 372 libavformat/omadec.c ret = av_get_packet(s->pb, pkt, packet_size); s 383 libavformat/omadec.c if (s->streams[0]->codecpar->codec_id == AV_CODEC_ID_ATRAC3AL) { s 394 libavformat/omadec.c static int oma_read_header(AVFormatContext *s) s 403 libavformat/omadec.c OMAContext *oc = s->priv_data; s 405 libavformat/omadec.c ff_id3v2_read(s, ID3v2_EA3_MAGIC, &extra_meta, 0); s 406 libavformat/omadec.c if ((ret = ff_id3v2_parse_chapters(s, extra_meta)) < 0) { s 411 libavformat/omadec.c ret = avio_read(s->pb, buf, EA3_HEADER_SIZE); s 420 libavformat/omadec.c av_log(s, AV_LOG_ERROR, "Couldn't find the EA3 header !\n"); s 424 libavformat/omadec.c oc->content_start = avio_tell(s->pb); s 428 libavformat/omadec.c if (eid != -1 && eid != -128 && decrypt_init(s, extra_meta, buf) < 0) { s 437 libavformat/omadec.c st = avformat_new_stream(s, NULL); s 455 libavformat/omadec.c av_log(s, AV_LOG_ERROR, "Unsupported sample rate\n"); s 460 libavformat/omadec.c avpriv_request_sample(s, "Sample rate %d", samplerate); s 490 libavformat/omadec.c av_log(s, AV_LOG_ERROR, s 500 libavformat/omadec.c av_log(s, AV_LOG_ERROR, "Unsupported sample rate\n"); s 541 libavformat/omadec.c av_log(s, AV_LOG_ERROR, "Unsupported codec %d!\n", buf[32]); s 550 libavformat/omadec.c oma_read_close(s); s 554 libavformat/omadec.c static int oma_read_packet(AVFormatContext *s, AVPacket *pkt) s 556 libavformat/omadec.c OMAContext *oc = s->priv_data; s 557 libavformat/omadec.c return oc->read_packet(s, pkt); s 581 libavformat/omadec.c static int oma_read_seek(struct AVFormatContext *s, s 584 libavformat/omadec.c OMAContext *oc = s->priv_data; s 585 libavformat/omadec.c AVStream *st = s->streams[0]; s 592 libavformat/omadec.c err = ff_pcm_read_seek(s, stream_index, timestamp, flags); s 597 libavformat/omadec.c if (err || avio_tell(s->pb) < oc->content_start) s 599 libavformat/omadec.c if ((err = avio_seek(s->pb, -8, SEEK_CUR)) < 0) s 601 libavformat/omadec.c if ((err = avio_read(s->pb, oc->iv, 8)) < 8) { s 30 libavformat/omaenc.c static av_cold int oma_write_header(AVFormatContext *s) s 37 libavformat/omaenc.c par = s->streams[0]->codecpar; s 42 libavformat/omaenc.c av_log(s, AV_LOG_ERROR, "Sample rate %d not supported in OpenMG audio\n", s 52 libavformat/omaenc.c ff_id3v2_write_simple(s, 3, ID3v2_EA3_MAGIC); s 54 libavformat/omaenc.c ffio_wfourcc(s->pb, "EA3\0"); s 55 libavformat/omaenc.c avio_w8(s->pb, EA3_HEADER_SIZE >> 7); s 56 libavformat/omaenc.c avio_w8(s->pb, EA3_HEADER_SIZE & 0x7F); s 57 libavformat/omaenc.c avio_wl16(s->pb, 0xFFFF); /* not encrypted */ s 59 libavformat/omaenc.c avio_wl32(s->pb, 0); /* Padding + DRM id */ s 64 libavformat/omaenc.c av_log(s, AV_LOG_ERROR, "ATRAC3 in OMA is only supported with 2 channels\n"); s 72 libavformat/omaenc.c av_log(s, AV_LOG_ERROR, "ATRAC3: Unsupported extradata size\n"); s 75 libavformat/omaenc.c avio_wb32(s->pb, (OMA_CODECID_ATRAC3 << 24) | s 81 libavformat/omaenc.c avio_wb32(s->pb, (OMA_CODECID_ATRAC3P << 24) | s 87 libavformat/omaenc.c av_log(s, AV_LOG_ERROR, "unsupported codec tag %s for write\n", s 92 libavformat/omaenc.c avio_wl32(s->pb, 0); /* Padding */ s 46 libavformat/options.c AVFormatContext *s = obj; s 47 libavformat/options.c if (!prev && s->priv_data && s 48 libavformat/options.c ((s->iformat && s->iformat->priv_class) || s 49 libavformat/options.c s->oformat && s->oformat->priv_class)) s 50 libavformat/options.c return s->priv_data; s 51 libavformat/options.c if (s->pb && s->pb->av_class && prev != s->pb) s 52 libavformat/options.c return s->pb; s 86 libavformat/options.c AVFormatContext* s = ptr; s 87 libavformat/options.c if(s->iformat) return AV_CLASS_CATEGORY_DEMUXER; s 102 libavformat/options.c static int io_open_default(AVFormatContext *s, AVIOContext **pb, s 107 libavformat/options.c if (!strcmp(url, s->url) || s 108 libavformat/options.c s->iformat && !strcmp(s->iformat->name, "image2") || s 109 libavformat/options.c s->oformat && !strcmp(s->oformat->name, "image2") s 115 libavformat/options.c av_log(s, loglevel, "Opening \'%s\' for %s\n", url, flags & AVIO_FLAG_WRITE ? "writing" : "reading"); s 119 libavformat/options.c if (s->open_cb) s 120 libavformat/options.c return s->open_cb(s, pb, url, flags, &s->interrupt_callback, options); s 124 libavformat/options.c return ffio_open_whitelist(pb, url, flags, &s->interrupt_callback, options, s->protocol_whitelist, s->protocol_blacklist); s 127 libavformat/options.c static void io_close_default(AVFormatContext *s, AVIOContext *pb) s 132 libavformat/options.c static void avformat_get_context_defaults(AVFormatContext *s) s 134 libavformat/options.c memset(s, 0, sizeof(AVFormatContext)); s 136 libavformat/options.c s->av_class = &av_format_context_class; s 138 libavformat/options.c s->io_open = io_open_default; s 139 libavformat/options.c s->io_close = io_close_default; s 141 libavformat/options.c av_opt_set_defaults(s); s 56 libavformat/os_support.h # define fstat(f,s) _fstati64((f), (s)) s 64 libavformat/paf.c static int read_close(AVFormatContext *s) s 66 libavformat/paf.c PAFDemuxContext *p = s->priv_data; s 78 libavformat/paf.c static void read_table(AVFormatContext *s, uint32_t *table, uint32_t count) s 83 libavformat/paf.c table[i] = avio_rl32(s->pb); s 85 libavformat/paf.c avio_skip(s->pb, 4 * (FFALIGN(count, 512) - count)); s 88 libavformat/paf.c static int read_header(AVFormatContext *s) s 90 libavformat/paf.c PAFDemuxContext *p = s->priv_data; s 91 libavformat/paf.c AVIOContext *pb = s->pb; s 97 libavformat/paf.c vst = avformat_new_stream(s, 0); s 116 libavformat/paf.c ast = avformat_new_stream(s, 0); s 174 libavformat/paf.c read_table(s, p->blocks_count_table, p->nb_frames); s 175 libavformat/paf.c read_table(s, p->frames_offset_table, p->nb_frames); s 176 libavformat/paf.c read_table(s, p->blocks_offset_table, p->frame_blks); s 187 libavformat/paf.c read_close(s); s 192 libavformat/paf.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 194 libavformat/paf.c PAFDemuxContext *p = s->priv_data; s 195 libavformat/paf.c AVIOContext *pb = s->pb; s 29 libavformat/pcm.c int ff_pcm_read_packet(AVFormatContext *s, AVPacket *pkt) s 31 libavformat/pcm.c AVCodecParameters *par = s->streams[0]->codecpar; s 44 libavformat/pcm.c ret = av_get_packet(s->pb, pkt, size); s 52 libavformat/pcm.c int ff_pcm_read_seek(AVFormatContext *s, s 59 libavformat/pcm.c st = s->streams[0]; s 79 libavformat/pcm.c if ((ret = avio_seek(s->pb, pos + s->internal->data_offset, SEEK_SET)) < 0) s 27 libavformat/pcm.h int ff_pcm_read_packet(AVFormatContext *s, AVPacket *pkt); s 28 libavformat/pcm.h int ff_pcm_read_seek(AVFormatContext *s, s 35 libavformat/pcmdec.c static int pcm_read_header(AVFormatContext *s) s 37 libavformat/pcmdec.c PCMAudioDemuxerContext *s1 = s->priv_data; s 41 libavformat/pcmdec.c st = avformat_new_stream(s, NULL); s 47 libavformat/pcmdec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 51 libavformat/pcmdec.c av_opt_get(s->pb, "mime_type", AV_OPT_SEARCH_CHILDREN, &mime_type); s 52 libavformat/pcmdec.c if (mime_type && s->iformat->mime_type) { s 54 libavformat/pcmdec.c size_t len = strlen(s->iformat->mime_type); s 55 libavformat/pcmdec.c if (!av_strncasecmp(s->iformat->mime_type, mime_type, len)) { /* audio/L16 */ s 74 libavformat/pcmdec.c av_log(s, AV_LOG_ERROR, s 66 libavformat/pjsdec.c static int pjs_read_header(AVFormatContext *s) s 68 libavformat/pjsdec.c PJSContext *pjs = s->priv_data; s 69 libavformat/pjsdec.c AVStream *st = avformat_new_stream(s, NULL); s 78 libavformat/pjsdec.c while (!avio_feof(s->pb)) { s 81 libavformat/pjsdec.c const int64_t pos = avio_tell(s->pb); s 82 libavformat/pjsdec.c int len = ff_get_line(s->pb, line, sizeof(line)); s 107 libavformat/pjsdec.c ff_subtitles_queue_finalize(s, &pjs->q); s 111 libavformat/pjsdec.c static int pjs_read_packet(AVFormatContext *s, AVPacket *pkt) s 113 libavformat/pjsdec.c PJSContext *pjs = s->priv_data; s 117 libavformat/pjsdec.c static int pjs_read_seek(AVFormatContext *s, int stream_index, s 120 libavformat/pjsdec.c PJSContext *pjs = s->priv_data; s 121 libavformat/pjsdec.c return ff_subtitles_queue_seek(&pjs->q, s, stream_index, s 125 libavformat/pjsdec.c static int pjs_read_close(AVFormatContext *s) s 127 libavformat/pjsdec.c PJSContext *pjs = s->priv_data; s 42 libavformat/pmpdec.c static int pmp_header(AVFormatContext *s) s 44 libavformat/pmpdec.c PMPContext *pmp = s->priv_data; s 45 libavformat/pmpdec.c AVIOContext *pb = s->pb; s 54 libavformat/pmpdec.c AVStream *vst = avformat_new_stream(s, NULL); s 67 libavformat/pmpdec.c av_log(s, AV_LOG_ERROR, "Unsupported video format\n"); s 85 libavformat/pmpdec.c av_log(s, AV_LOG_ERROR, "AAC not yet correctly supported\n"); s 89 libavformat/pmpdec.c av_log(s, AV_LOG_ERROR, "Unsupported audio format\n"); s 101 libavformat/pmpdec.c av_log(s, AV_LOG_FATAL, "Encountered EOF while reading index.\n"); s 106 libavformat/pmpdec.c av_log(s, AV_LOG_ERROR, "Packet too small\n"); s 112 libavformat/pmpdec.c av_log(s, AV_LOG_ERROR, "File ends before first packet\n"); s 117 libavformat/pmpdec.c AVStream *ast = avformat_new_stream(s, NULL); s 129 libavformat/pmpdec.c static int pmp_packet(AVFormatContext *s, AVPacket *pkt) s 131 libavformat/pmpdec.c PMPContext *pmp = s->priv_data; s 132 libavformat/pmpdec.c AVIOContext *pb = s->pb; s 143 libavformat/pmpdec.c av_log(s, AV_LOG_ERROR, "No audio packets.\n"); s 154 libavformat/pmpdec.c av_log(s, AV_LOG_ERROR, "Cannot (re)allocate packet buffer\n"); s 171 libavformat/pmpdec.c static int pmp_seek(AVFormatContext *s, int stream_index, int64_t ts, int flags) s 173 libavformat/pmpdec.c PMPContext *pmp = s->priv_data; s 179 libavformat/pmpdec.c static int pmp_close(AVFormatContext *s) s 181 libavformat/pmpdec.c PMPContext *pmp = s->priv_data; s 107 libavformat/pp_bnk.c static int pp_bnk_read_header(AVFormatContext *s) s 112 libavformat/pp_bnk.c PPBnkCtx *ctx = s->priv_data; s 116 libavformat/pp_bnk.c if ((ret = avio_read(s->pb, buf, PP_BNK_FILE_HEADER_SIZE)) < 0) s 130 libavformat/pp_bnk.c avpriv_request_sample(s, "Non-one header value"); s 144 libavformat/pp_bnk.c ret = avio_read(s->pb, buf, PP_BNK_TRACK_SIZE); s 150 libavformat/pp_bnk.c av_log(s, AV_LOG_WARNING, "File truncated at %d/%u track(s)\n", s 165 libavformat/pp_bnk.c avpriv_request_sample(s, "Non-one track header values"); s 170 libavformat/pp_bnk.c trk->data_offset = avio_tell(s->pb); s 180 libavformat/pp_bnk.c if ((ret = avio_skip(s->pb, e.size)) == AVERROR_EOF) { s 182 libavformat/pp_bnk.c av_log(s, AV_LOG_WARNING, s 199 libavformat/pp_bnk.c if (!(st = avformat_new_stream(s, NULL))) { s 228 libavformat/pp_bnk.c static int pp_bnk_read_packet(AVFormatContext *s, AVPacket *pkt) s 230 libavformat/pp_bnk.c PPBnkCtx *ctx = s->priv_data; s 249 libavformat/pp_bnk.c if ((ret = avio_seek(s->pb, trk->data_offset + trk->bytes_read, SEEK_SET)) < 0) s 256 libavformat/pp_bnk.c if ((ret = av_get_packet(s->pb, pkt, size)) == AVERROR_EOF) { s 275 libavformat/pp_bnk.c static int pp_bnk_read_close(AVFormatContext *s) s 277 libavformat/pp_bnk.c PPBnkCtx *ctx = s->priv_data; s 138 libavformat/prompeg.c int i, n, s; s 144 libavformat/prompeg.c s = n * sizeof (uint64_t); s 158 libavformat/prompeg.c s = n * sizeof (uint32_t); s 170 libavformat/prompeg.c n = size - s; s 179 libavformat/prompeg.c PrompegContext *s = h->priv_data; s 186 libavformat/prompeg.c if (size != s->packet_size) { s 191 libavformat/prompeg.c *bitstring = av_malloc(s->bitstring_size); s 211 libavformat/prompeg.c AV_WB16(b + 6, s->length_recovery); s 213 libavformat/prompeg.c memcpy(b + 8, buf + 12, s->length_recovery); s 219 libavformat/prompeg.c PrompegContext *s = h->priv_data; s 221 libavformat/prompeg.c uint8_t *buf = s->rtp_buf; // zero-filled s 226 libavformat/prompeg.c sn = type == PROMPEG_FEC_COL ? ++s->rtp_col_sn : ++s->rtp_row_sn; s 257 libavformat/prompeg.c buf[25] = type == PROMPEG_FEC_COL ? s->l : 0x1; s 259 libavformat/prompeg.c buf[26] = type == PROMPEG_FEC_COL ? s->d : s->l; s 263 libavformat/prompeg.c memcpy(buf + 28, b + 8, s->length_recovery); s 265 libavformat/prompeg.c hd = type == PROMPEG_FEC_COL ? s->fec_col_hd : s->fec_row_hd; s 266 libavformat/prompeg.c ret = ffurl_write(hd, buf, s->rtp_buf_size); s 271 libavformat/prompeg.c PrompegContext *s = h->priv_data; s 277 libavformat/prompeg.c s->fec_col_hd = NULL; s 278 libavformat/prompeg.c s->fec_row_hd = NULL; s 280 libavformat/prompeg.c if (s->l * s->d > 100) { s 293 libavformat/prompeg.c if (s->ttl > 0) { s 294 libavformat/prompeg.c av_dict_set_int(&udp_opts, "ttl", s->ttl, 0); s 298 libavformat/prompeg.c if (ffurl_open_whitelist(&s->fec_col_hd, buf, flags, &h->interrupt_callback, s 302 libavformat/prompeg.c if (ffurl_open_whitelist(&s->fec_row_hd, buf, flags, &h->interrupt_callback, s 306 libavformat/prompeg.c h->max_packet_size = s->fec_col_hd->max_packet_size; s 307 libavformat/prompeg.c s->init = 1; s 310 libavformat/prompeg.c av_log(h, AV_LOG_INFO, "ProMPEG CoP#3-R2 FEC L=%d D=%d\n", s->l, s->d); s 314 libavformat/prompeg.c ffurl_closep(&s->fec_col_hd); s 315 libavformat/prompeg.c ffurl_closep(&s->fec_row_hd); s 321 libavformat/prompeg.c PrompegContext *s = h->priv_data; s 325 libavformat/prompeg.c s->fec_arr = NULL; s 326 libavformat/prompeg.c s->rtp_buf = NULL; s 333 libavformat/prompeg.c s->packet_idx = 0; s 334 libavformat/prompeg.c s->packet_idx_max = s->l * s->d; s 335 libavformat/prompeg.c s->packet_size = size; s 336 libavformat/prompeg.c s->length_recovery = size - 12; s 337 libavformat/prompeg.c s->rtp_buf_size = 28 + s->length_recovery; // 12 + 16: RTP + FEC headers s 338 libavformat/prompeg.c s->bitstring_size = 8 + s->length_recovery; // 8: P, X, CC, M, PT, SN, TS s 339 libavformat/prompeg.c s->fec_arr_len = 1 + 2 * s->l; // row + column tmp + column out s 342 libavformat/prompeg.c s->rtp_col_sn = 0; s 343 libavformat/prompeg.c s->rtp_row_sn = 0; s 346 libavformat/prompeg.c s->rtp_col_sn = seed & 0x0fff; s 347 libavformat/prompeg.c s->rtp_row_sn = (seed >> 16) & 0x0fff; s 350 libavformat/prompeg.c s->fec_arr = av_malloc_array(s->fec_arr_len, sizeof (PrompegFec*)); s 351 libavformat/prompeg.c if (!s->fec_arr) { s 354 libavformat/prompeg.c for (i = 0; i < s->fec_arr_len; i++) { s 355 libavformat/prompeg.c s->fec_arr[i] = av_malloc(sizeof (PrompegFec)); s 356 libavformat/prompeg.c if (!s->fec_arr[i]) { s 359 libavformat/prompeg.c s->fec_arr[i]->bitstring = av_malloc_array(s->bitstring_size, sizeof (uint8_t)); s 360 libavformat/prompeg.c if (!s->fec_arr[i]->bitstring) { s 361 libavformat/prompeg.c av_freep(&s->fec_arr[i]); s 365 libavformat/prompeg.c s->fec_row = *s->fec_arr; s 366 libavformat/prompeg.c s->fec_col = s->fec_arr + 1; s 367 libavformat/prompeg.c s->fec_col_tmp = s->fec_arr + 1 + s->l; s 369 libavformat/prompeg.c s->rtp_buf = av_malloc_array(s->rtp_buf_size, sizeof (uint8_t)); s 370 libavformat/prompeg.c if (!s->rtp_buf) { s 373 libavformat/prompeg.c memset(s->rtp_buf, 0, s->rtp_buf_size); s 375 libavformat/prompeg.c s->init = 0; s 376 libavformat/prompeg.c s->first = 1; s 386 libavformat/prompeg.c PrompegContext *s = h->priv_data; s 392 libavformat/prompeg.c if (s->init && ((ret = prompeg_init(h, buf, size)) < 0)) s 398 libavformat/prompeg.c col_idx = s->packet_idx % s->l; s 399 libavformat/prompeg.c row_idx = s->packet_idx / s->l % s->d; s 403 libavformat/prompeg.c if (!s->first || s->packet_idx > 0) { s 404 libavformat/prompeg.c if ((ret = prompeg_write_fec(h, s->fec_row, PROMPEG_FEC_ROW)) < 0) s 407 libavformat/prompeg.c memcpy(s->fec_row->bitstring, bitstring, s->bitstring_size); s 408 libavformat/prompeg.c s->fec_row->sn = AV_RB16(buf + 2); s 409 libavformat/prompeg.c s->fec_row->ts = AV_RB32(buf + 4); s 411 libavformat/prompeg.c xor_fast(s->fec_row->bitstring, bitstring, s->fec_row->bitstring, s 412 libavformat/prompeg.c s->bitstring_size); s 417 libavformat/prompeg.c if (!s->first) { s 419 libavformat/prompeg.c fec_tmp = s->fec_col[col_idx]; s 420 libavformat/prompeg.c s->fec_col[col_idx] = s->fec_col_tmp[col_idx]; s 421 libavformat/prompeg.c s->fec_col_tmp[col_idx] = fec_tmp; s 423 libavformat/prompeg.c memcpy(s->fec_col_tmp[col_idx]->bitstring, bitstring, s->bitstring_size); s 424 libavformat/prompeg.c s->fec_col_tmp[col_idx]->sn = AV_RB16(buf + 2); s 425 libavformat/prompeg.c s->fec_col_tmp[col_idx]->ts = AV_RB32(buf + 4); s 427 libavformat/prompeg.c xor_fast(s->fec_col_tmp[col_idx]->bitstring, bitstring, s 428 libavformat/prompeg.c s->fec_col_tmp[col_idx]->bitstring, s->bitstring_size); s 432 libavformat/prompeg.c if (!s->first && s->packet_idx % s->d == 0) { s 433 libavformat/prompeg.c col_out_idx = s->packet_idx / s->d; s 434 libavformat/prompeg.c if ((ret = prompeg_write_fec(h, s->fec_col[col_out_idx], PROMPEG_FEC_COL)) < 0) s 438 libavformat/prompeg.c if (++s->packet_idx >= s->packet_idx_max) { s 439 libavformat/prompeg.c s->packet_idx = 0; s 440 libavformat/prompeg.c if (s->first) s 441 libavformat/prompeg.c s->first = 0; s 452 libavformat/prompeg.c PrompegContext *s = h->priv_data; s 455 libavformat/prompeg.c ffurl_closep(&s->fec_col_hd); s 456 libavformat/prompeg.c ffurl_closep(&s->fec_row_hd); s 458 libavformat/prompeg.c if (s->fec_arr) { s 459 libavformat/prompeg.c for (i = 0; i < s->fec_arr_len; i++) { s 460 libavformat/prompeg.c av_free(s->fec_arr[i]->bitstring); s 461 libavformat/prompeg.c av_freep(&s->fec_arr[i]); s 463 libavformat/prompeg.c av_freep(&s->fec_arr); s 465 libavformat/prompeg.c av_freep(&s->rtp_buf); s 129 libavformat/psxstr.c static int str_read_header(AVFormatContext *s) s 131 libavformat/psxstr.c AVIOContext *pb = s->pb; s 132 libavformat/psxstr.c StrDemuxContext *str = s->priv_data; s 152 libavformat/psxstr.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 157 libavformat/psxstr.c static int str_read_packet(AVFormatContext *s, s 160 libavformat/psxstr.c AVIOContext *pb = s->pb; s 161 libavformat/psxstr.c StrDemuxContext *str = s->priv_data; s 189 libavformat/psxstr.c av_log(s, AV_LOG_ERROR, "Invalid parameters %d %d %d\n", current_sector, sector_count, frame_size); s 195 libavformat/psxstr.c st = avformat_new_stream(s, NULL); s 214 libavformat/psxstr.c av_log(s, AV_LOG_ERROR, "mismatching sector_count\n"); s 246 libavformat/psxstr.c st = avformat_new_stream(s, NULL); s 280 libavformat/psxstr.c av_log(s, AV_LOG_WARNING, "Unknown sector type %02X\n", sector[0x12]); s 290 libavformat/psxstr.c static int str_read_close(AVFormatContext *s) s 292 libavformat/psxstr.c StrDemuxContext *str = s->priv_data; s 57 libavformat/pva.c static int pva_read_header(AVFormatContext *s) { s 60 libavformat/pva.c if (!(st = avformat_new_stream(s, NULL))) s 68 libavformat/pva.c if (!(st = avformat_new_stream(s, NULL))) s 82 libavformat/pva.c static int read_part_of_packet(AVFormatContext *s, int64_t *pts, s 84 libavformat/pva.c AVIOContext *pb = s->pb; s 85 libavformat/pva.c PVAContext *pvactx = s->priv_data; s 103 libavformat/pva.c pva_log(s, AV_LOG_ERROR, "invalid syncword\n"); s 107 libavformat/pva.c pva_log(s, AV_LOG_ERROR, "invalid streamid\n"); s 111 libavformat/pva.c pva_log(s, AV_LOG_WARNING, "expected reserved byte to be 0x55\n"); s 114 libavformat/pva.c pva_log(s, AV_LOG_ERROR, "invalid payload length %u\n", length); s 142 libavformat/pva.c pva_log(s, AV_LOG_WARNING, "expected non empty signaled PES packet, " s 161 libavformat/pva.c pva_log(s, AV_LOG_ERROR, "header too short\n"); s 172 libavformat/pva.c pva_log(s, AV_LOG_WARNING, "audio data corruption\n"); s 178 libavformat/pva.c av_add_index_entry(s->streams[streamid-1], startpos, pva_pts, 0, 0, AVINDEX_KEYFRAME); s 186 libavformat/pva.c static int pva_read_packet(AVFormatContext *s, AVPacket *pkt) { s 187 libavformat/pva.c AVIOContext *pb = s->pb; s 191 libavformat/pva.c if (read_part_of_packet(s, &pva_pts, &length, &streamid, 1) < 0 || s 201 libavformat/pva.c static int64_t pva_read_timestamp(struct AVFormatContext *s, int stream_index, s 203 libavformat/pva.c AVIOContext *pb = s->pb; s 204 libavformat/pva.c PVAContext *pvactx = s->priv_data; s 215 libavformat/pva.c if (read_part_of_packet(s, &res, &length, &streamid, 0)) { s 34 libavformat/pvfdec.c static int pvf_read_header(AVFormatContext *s) s 40 libavformat/pvfdec.c avio_skip(s->pb, 5); s 41 libavformat/pvfdec.c ff_get_line(s->pb, buffer, sizeof(buffer)); s 52 libavformat/pvfdec.c st = avformat_new_stream(s, NULL); s 90 libavformat/qcp.c static int qcp_read_header(AVFormatContext *s) s 92 libavformat/qcp.c AVIOContext *pb = s->pb; s 93 libavformat/qcp.c QCPContext *c = s->priv_data; s 94 libavformat/qcp.c AVStream *st = avformat_new_stream(s, NULL); s 117 libavformat/qcp.c av_log(s, AV_LOG_ERROR, "Unknown codec GUID "FF_PRI_GUID".\n", s 124 libavformat/qcp.c s->packet_size = avio_rl16(pb); s 136 libavformat/qcp.c av_log(s, AV_LOG_WARNING, "Unknown entry %d=>%d in rate-map-table.\n ", mode, size); s 145 libavformat/qcp.c static int qcp_read_packet(AVFormatContext *s, AVPacket *pkt) s 147 libavformat/qcp.c AVIOContext *pb = s->pb; s 148 libavformat/qcp.c QCPContext *c = s->priv_data; s 155 libavformat/qcp.c if (s->packet_size) { s 156 libavformat/qcp.c pkt_size = s->packet_size - 1; s 163 libavformat/qcp.c av_log(s, AV_LOG_WARNING, "Data chunk is too small.\n"); s 169 libavformat/qcp.c av_log(s, AV_LOG_ERROR, "Packet size is too small.\n"); s 177 libavformat/qcp.c av_log(s, AV_LOG_WARNING, "Padding should be 0.\n"); s 184 libavformat/qcp.c s->packet_size = 0; s 41 libavformat/r3d.c static int read_atom(AVFormatContext *s, Atom *atom) s 43 libavformat/r3d.c atom->offset = avio_tell(s->pb); s 44 libavformat/r3d.c atom->size = avio_rb32(s->pb); s 47 libavformat/r3d.c atom->tag = avio_rl32(s->pb); s 48 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "atom %u %.4s offset %#"PRIx64"\n", s 53 libavformat/r3d.c static int r3d_read_red1(AVFormatContext *s) s 55 libavformat/r3d.c AVStream *st = avformat_new_stream(s, NULL); s 56 libavformat/r3d.c R3DContext *r3d = s->priv_data; s 67 libavformat/r3d.c tmp = avio_r8(s->pb); // major version s 68 libavformat/r3d.c tmp2 = avio_r8(s->pb); // minor version s 69 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "version %d.%d\n", tmp, tmp2); s 71 libavformat/r3d.c tmp = avio_rb16(s->pb); // unknown s 72 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "unknown1 %d\n", tmp); s 74 libavformat/r3d.c tmp = avio_rb32(s->pb); s 77 libavformat/r3d.c tmp = avio_rb32(s->pb); // filenum s 78 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "filenum %d\n", tmp); s 80 libavformat/r3d.c avio_skip(s->pb, 32); // unknown s 82 libavformat/r3d.c st->codecpar->width = avio_rb32(s->pb); s 83 libavformat/r3d.c st->codecpar->height = avio_rb32(s->pb); s 85 libavformat/r3d.c tmp = avio_rb16(s->pb); // unknown s 86 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "unknown2 %d\n", tmp); s 88 libavformat/r3d.c framerate.num = avio_rb16(s->pb); s 89 libavformat/r3d.c framerate.den = avio_rb16(s->pb); s 97 libavformat/r3d.c r3d->audio_channels = avio_r8(s->pb); // audio channels s 98 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "audio channels %d\n", tmp); s 100 libavformat/r3d.c avio_read(s->pb, filename, 257); s 104 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "filename %s\n", filename); s 105 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "resolution %dx%d\n", st->codecpar->width, st->codecpar->height); s 106 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "timescale %d\n", st->time_base.den); s 107 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "frame rate %d/%d\n", s 113 libavformat/r3d.c static int r3d_read_rdvo(AVFormatContext *s, Atom *atom) s 115 libavformat/r3d.c R3DContext *r3d = s->priv_data; s 116 libavformat/r3d.c AVStream *st = s->streams[0]; s 122 libavformat/r3d.c unsigned video_offset = avio_rb32(s->pb); s 127 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "video offset %d: %#x\n", i, video_offset); s 134 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "duration %"PRId64"\n", st->duration); s 139 libavformat/r3d.c static void r3d_read_reos(AVFormatContext *s) s 141 libavformat/r3d.c R3DContext *r3d = s->priv_data; s 144 libavformat/r3d.c r3d->rdvo_offset = avio_rb32(s->pb); s 145 libavformat/r3d.c avio_rb32(s->pb); // rdvs offset s 146 libavformat/r3d.c avio_rb32(s->pb); // rdao offset s 147 libavformat/r3d.c avio_rb32(s->pb); // rdas offset s 149 libavformat/r3d.c tmp = avio_rb32(s->pb); s 150 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "num video chunks %d\n", tmp); s 152 libavformat/r3d.c tmp = avio_rb32(s->pb); s 153 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "num audio chunks %d\n", tmp); s 155 libavformat/r3d.c avio_skip(s->pb, 6*4); s 158 libavformat/r3d.c static int r3d_read_header(AVFormatContext *s) s 160 libavformat/r3d.c R3DContext *r3d = s->priv_data; s 164 libavformat/r3d.c if (read_atom(s, &atom) < 0) { s 165 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "error reading atom\n"); s 169 libavformat/r3d.c if ((ret = r3d_read_red1(s)) < 0) { s 170 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "error parsing 'red1' atom\n"); s 174 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "could not find 'red1' atom\n"); s 181 libavformat/r3d.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 183 libavformat/r3d.c s->internal->data_offset = avio_tell(s->pb); s 184 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "data offset %#"PRIx64"\n", s->internal->data_offset); s 185 libavformat/r3d.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) s 188 libavformat/r3d.c avio_seek(s->pb, avio_size(s->pb)-48-8, SEEK_SET); s 189 libavformat/r3d.c if (read_atom(s, &atom) < 0) s 190 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "error reading end atom\n"); s 197 libavformat/r3d.c r3d_read_reos(s); s 200 libavformat/r3d.c avio_seek(s->pb, r3d->rdvo_offset, SEEK_SET); s 201 libavformat/r3d.c if (read_atom(s, &atom) < 0) s 202 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "error reading 'rdvo' atom\n"); s 204 libavformat/r3d.c if (r3d_read_rdvo(s, &atom) < 0) s 205 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "error parsing 'rdvo' atom\n"); s 210 libavformat/r3d.c avio_seek(s->pb, s->internal->data_offset, SEEK_SET); s 214 libavformat/r3d.c static int r3d_read_redv(AVFormatContext *s, AVPacket *pkt, Atom *atom) s 216 libavformat/r3d.c AVStream *st = s->streams[0]; s 219 libavformat/r3d.c int64_t pos = avio_tell(s->pb); s 223 libavformat/r3d.c dts = avio_rb32(s->pb); s 225 libavformat/r3d.c tmp = avio_rb32(s->pb); s 226 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "frame num %d\n", tmp); s 228 libavformat/r3d.c tmp = avio_r8(s->pb); // major version s 229 libavformat/r3d.c tmp2 = avio_r8(s->pb); // minor version s 230 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "version %d.%d\n", tmp, tmp2); s 232 libavformat/r3d.c tmp = avio_rb16(s->pb); // unknown s 233 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "unknown %d\n", tmp); s 236 libavformat/r3d.c tmp = avio_rb16(s->pb); // unknown s 237 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "unknown %d\n", tmp); s 239 libavformat/r3d.c tmp = avio_rb16(s->pb); // unknown s 240 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "unknown %d\n", tmp); s 242 libavformat/r3d.c tmp = avio_rb32(s->pb); s 243 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "width %d\n", tmp); s 244 libavformat/r3d.c tmp = avio_rb32(s->pb); s 245 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "height %d\n", tmp); s 247 libavformat/r3d.c tmp = avio_rb32(s->pb); s 248 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "metadata len %d\n", tmp); s 250 libavformat/r3d.c tmp = atom->size - 8 - (avio_tell(s->pb) - pos); s 253 libavformat/r3d.c ret = av_get_packet(s->pb, pkt, tmp); s 255 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "error reading video packet\n"); s 264 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "pkt dts %"PRId64" duration %"PRId64"\n", pkt->dts, pkt->duration); s 269 libavformat/r3d.c static int r3d_read_reda(AVFormatContext *s, AVPacket *pkt, Atom *atom) s 271 libavformat/r3d.c R3DContext *r3d = s->priv_data; s 275 libavformat/r3d.c int64_t pos = avio_tell(s->pb); s 279 libavformat/r3d.c if (s->nb_streams < 2) { s 280 libavformat/r3d.c st = avformat_new_stream(s, NULL); s 286 libavformat/r3d.c avpriv_set_pts_info(st, 32, 1, s->streams[0]->time_base.den); s 288 libavformat/r3d.c st = s->streams[1]; s 291 libavformat/r3d.c dts = avio_rb32(s->pb); s 293 libavformat/r3d.c st->codecpar->sample_rate = avio_rb32(s->pb); s 295 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "Bad sample rate\n"); s 299 libavformat/r3d.c samples = avio_rb32(s->pb); s 301 libavformat/r3d.c tmp = avio_rb32(s->pb); s 302 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "packet num %d\n", tmp); s 304 libavformat/r3d.c tmp = avio_rb16(s->pb); // unknown s 305 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "unknown %d\n", tmp); s 307 libavformat/r3d.c tmp = avio_r8(s->pb); // major version s 308 libavformat/r3d.c tmp2 = avio_r8(s->pb); // minor version s 309 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "version %d.%d\n", tmp, tmp2); s 311 libavformat/r3d.c tmp = avio_rb32(s->pb); // unknown s 312 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "unknown %d\n", tmp); s 314 libavformat/r3d.c size = atom->size - 8 - (avio_tell(s->pb) - pos); s 317 libavformat/r3d.c ret = av_get_packet(s->pb, pkt, size); s 319 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "error reading audio packet\n"); s 327 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "pkt dts %"PRId64" duration %"PRId64" samples %d sample rate %d\n", s 333 libavformat/r3d.c static int r3d_read_packet(AVFormatContext *s, AVPacket *pkt) s 335 libavformat/r3d.c R3DContext *r3d = s->priv_data; s 340 libavformat/r3d.c if (read_atom(s, &atom) < 0) { s 346 libavformat/r3d.c if (s->streams[0]->discard == AVDISCARD_ALL) s 348 libavformat/r3d.c if (!(err = r3d_read_redv(s, pkt, &atom))) s 354 libavformat/r3d.c if (s->nb_streams >= 2 && s->streams[1]->discard == AVDISCARD_ALL) s 356 libavformat/r3d.c if (!(err = r3d_read_reda(s, pkt, &atom))) s 361 libavformat/r3d.c avio_skip(s->pb, atom.size-8); s 374 libavformat/r3d.c static int r3d_seek(AVFormatContext *s, int stream_index, int64_t sample_time, int flags) s 376 libavformat/r3d.c AVStream *st = s->streams[0]; // video stream s 377 libavformat/r3d.c R3DContext *r3d = s->priv_data; s 385 libavformat/r3d.c av_log(s, AV_LOG_TRACE, "seek frame num %d timestamp %"PRId64"\n", s 389 libavformat/r3d.c if (avio_seek(s->pb, r3d->video_offsets_count, SEEK_SET) < 0) s 392 libavformat/r3d.c av_log(s, AV_LOG_ERROR, "could not seek to frame %d\n", frame_num); s 35 libavformat/rawdec.c int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt) s 37 libavformat/rawdec.c FFRawDemuxerContext *raw = s->priv_data; s 45 libavformat/rawdec.c pkt->pos= avio_tell(s->pb); s 47 libavformat/rawdec.c ret = avio_read_partial(s->pb, pkt->data, size); s 56 libavformat/rawdec.c int ff_raw_audio_read_header(AVFormatContext *s) s 58 libavformat/rawdec.c AVStream *st = avformat_new_stream(s, NULL); s 62 libavformat/rawdec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 71 libavformat/rawdec.c int ff_raw_video_read_header(AVFormatContext *s) s 74 libavformat/rawdec.c FFRawVideoDemuxerContext *s1 = s->priv_data; s 78 libavformat/rawdec.c st = avformat_new_stream(s, NULL); s 85 libavformat/rawdec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 95 libavformat/rawdec.c int ff_raw_subtitle_read_header(AVFormatContext *s) s 97 libavformat/rawdec.c AVStream *st = avformat_new_stream(s, NULL); s 101 libavformat/rawdec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 106 libavformat/rawdec.c int ff_raw_data_read_header(AVFormatContext *s) s 108 libavformat/rawdec.c AVStream *st = avformat_new_stream(s, NULL); s 112 libavformat/rawdec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 45 libavformat/rawdec.h int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt); s 47 libavformat/rawdec.h int ff_raw_audio_read_header(AVFormatContext *s); s 49 libavformat/rawdec.h int ff_raw_video_read_header(AVFormatContext *s); s 51 libavformat/rawdec.h int ff_raw_subtitle_read_header(AVFormatContext *s); s 53 libavformat/rawdec.h int ff_raw_data_read_header(AVFormatContext *s); s 29 libavformat/rawenc.c int ff_raw_write_packet(AVFormatContext *s, AVPacket *pkt) s 31 libavformat/rawenc.c avio_write(s->pb, pkt->data, pkt->size); s 35 libavformat/rawenc.c static int force_one_stream(AVFormatContext *s) s 37 libavformat/rawenc.c if (s->nb_streams != 1) { s 38 libavformat/rawenc.c av_log(s, AV_LOG_ERROR, "%s files have exactly one stream\n", s 39 libavformat/rawenc.c s->oformat->name); s 42 libavformat/rawenc.c if ( s->oformat->audio_codec != AV_CODEC_ID_NONE s 43 libavformat/rawenc.c && s->streams[0]->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) { s 44 libavformat/rawenc.c av_log(s, AV_LOG_ERROR, "%s files have exactly one audio stream\n", s 45 libavformat/rawenc.c s->oformat->name); s 48 libavformat/rawenc.c if ( s->oformat->video_codec != AV_CODEC_ID_NONE s 49 libavformat/rawenc.c && s->streams[0]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO) { s 50 libavformat/rawenc.c av_log(s, AV_LOG_ERROR, "%s files have exactly one video stream\n", s 51 libavformat/rawenc.c s->oformat->name); s 75 libavformat/rawenc.c static int adx_write_trailer(AVFormatContext *s) s 77 libavformat/rawenc.c AVIOContext *pb = s->pb; s 78 libavformat/rawenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 330 libavformat/rawenc.c static int h264_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) s 332 libavformat/rawenc.c AVStream *st = s->streams[0]; s 353 libavformat/rawenc.c static int hevc_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) s 355 libavformat/rawenc.c AVStream *st = s->streams[0]; s 27 libavformat/rawenc.h int ff_raw_write_packet(AVFormatContext *s, AVPacket *pkt); s 25 libavformat/rawutils.c int ff_reshuffle_raw_rgb(AVFormatContext *s, AVPacket **ppkt, AVCodecParameters *par, int expected_stride) s 39 libavformat/rawvideodec.c RawVideoDemuxerContext *s = ctx->priv_data; s 52 libavformat/rawvideodec.c if ((pix_fmt = av_get_pix_fmt(s->pixel_format)) == AV_PIX_FMT_NONE) { s 54 libavformat/rawvideodec.c s->pixel_format); s 58 libavformat/rawvideodec.c avpriv_set_pts_info(st, 64, s->framerate.den, s->framerate.num); s 60 libavformat/rawvideodec.c st->codecpar->width = s->width; s 61 libavformat/rawvideodec.c st->codecpar->height = s->height; s 63 libavformat/rawvideodec.c packet_size = av_image_get_buffer_size(st->codecpar->format, s->width, s->height, 1); s 74 libavformat/rawvideodec.c static int rawvideo_read_packet(AVFormatContext *s, AVPacket *pkt) s 78 libavformat/rawvideodec.c ret = av_get_packet(s->pb, pkt, s->packet_size); s 79 libavformat/rawvideodec.c pkt->pts = pkt->dts = pkt->pos / s->packet_size; s 58 libavformat/rdt.c RDTDemuxContext *s = av_mallocz(sizeof(RDTDemuxContext)); s 59 libavformat/rdt.c if (!s) s 62 libavformat/rdt.c s->ic = ic; s 63 libavformat/rdt.c s->streams = &ic->streams[first_stream_of_set_idx]; s 65 libavformat/rdt.c s->n_streams++; s 66 libavformat/rdt.c } while (first_stream_of_set_idx + s->n_streams < ic->nb_streams && s 67 libavformat/rdt.c s->streams[s->n_streams]->id == s->streams[0]->id); s 68 libavformat/rdt.c s->prev_set_id = -1; s 69 libavformat/rdt.c s->prev_stream_id = -1; s 70 libavformat/rdt.c s->prev_timestamp = -1; s 71 libavformat/rdt.c s->parse_packet = handler ? handler->parse_packet : NULL; s 72 libavformat/rdt.c s->dynamic_protocol_context = priv_data; s 74 libavformat/rdt.c return s; s 78 libavformat/rdt.c ff_rdt_parse_close(RDTDemuxContext *s) s 80 libavformat/rdt.c av_free(s); s 335 libavformat/rdt.c ff_rdt_parse_packet(RDTDemuxContext *s, AVPacket *pkt, s 343 libavformat/rdt.c if (!s->parse_packet) s 346 libavformat/rdt.c if (!buf && s->prev_stream_id != -1) { s 349 libavformat/rdt.c rv= s->parse_packet(s->ic, s->dynamic_protocol_context, s 350 libavformat/rdt.c s->streams[s->prev_stream_id], s 361 libavformat/rdt.c (set_id != s->prev_set_id || timestamp != s->prev_timestamp || s 362 libavformat/rdt.c stream_id != s->prev_stream_id)) { s 364 libavformat/rdt.c s->prev_set_id = set_id; s 365 libavformat/rdt.c s->prev_timestamp = timestamp; s 367 libavformat/rdt.c s->prev_stream_id = stream_id; s 371 libavformat/rdt.c if (s->prev_stream_id >= s->n_streams) { s 372 libavformat/rdt.c s->prev_stream_id = -1; s 376 libavformat/rdt.c rv = s->parse_packet(s->ic, s->dynamic_protocol_context, s 377 libavformat/rdt.c s->streams[s->prev_stream_id], s 409 libavformat/rdt.c rdt_parse_sdp_line (AVFormatContext *s, int st_index, s 412 libavformat/rdt.c AVStream *stream = s->streams[st_index]; s 422 libavformat/rdt.c for (n = 0; n < s->nb_streams; n++) s 423 libavformat/rdt.c if (s->streams[n]->id == stream->id) { s 424 libavformat/rdt.c int count = s->streams[n]->index + 1, err; s 436 libavformat/rdt.c rdt->rmst[s->streams[n]->index] = ff_rm_alloc_rmstream(); s 437 libavformat/rdt.c if (!rdt->rmst[s->streams[n]->index]) s 439 libavformat/rdt.c rdt_load_mdpr(rdt, s->streams[n], (n - first) * 2); s 460 libavformat/rdt.c add_dstream(AVFormatContext *s, AVStream *orig_st) s 464 libavformat/rdt.c if (!(st = avformat_new_stream(s, NULL))) s 474 libavformat/rdt.c real_parse_asm_rulebook(AVFormatContext *s, AVStream *orig_st, s 501 libavformat/rdt.c st = add_dstream(s, orig_st); s 515 libavformat/rdt.c ff_real_parse_sdp_a_line (AVFormatContext *s, int stream_index, s 521 libavformat/rdt.c real_parse_asm_rulebook(s, s->streams[stream_index], p); s 526 libavformat/rdt.c static av_cold int rdt_init(AVFormatContext *s, int st_index, PayloadContext *rdt) s 534 libavformat/rdt.c if ((ret = ff_copy_whiteblacklists(rdt->rmctx, s)) < 0) s 556 libavformat/rdt.c #define RDT_HANDLER(n, s, t) \ s 558 libavformat/rdt.c .enc_name = s, \ s 45 libavformat/rdt.h void ff_rdt_parse_close(RDTDemuxContext *s); s 93 libavformat/rdt.h int ff_rdt_parse_packet(RDTDemuxContext *s, AVPacket *pkt, s 104 libavformat/rdt.h void ff_real_parse_sdp_a_line(AVFormatContext *s, int stream_index, s 48 libavformat/realtextdec.c static int read_ts(const char *s) s 52 libavformat/realtextdec.c if (sscanf(s, "%u:%u:%u.%u", &hh, &mm, &ss, &ms) == 4) return (hh*3600 + mm*60 + ss) * 100 + ms; s 53 libavformat/realtextdec.c if (sscanf(s, "%u:%u:%u" , &hh, &mm, &ss ) == 3) return (hh*3600 + mm*60 + ss) * 100; s 54 libavformat/realtextdec.c if (sscanf(s, "%u:%u.%u", &mm, &ss, &ms) == 3) return ( mm*60 + ss) * 100 + ms; s 55 libavformat/realtextdec.c if (sscanf(s, "%u:%u" , &mm, &ss ) == 2) return ( mm*60 + ss) * 100; s 56 libavformat/realtextdec.c if (sscanf(s, "%u.%u", &ss, &ms) == 2) return ( ss) * 100 + ms; s 57 libavformat/realtextdec.c return strtol(s, NULL, 10) * 100; s 60 libavformat/realtextdec.c static int realtext_read_header(AVFormatContext *s) s 62 libavformat/realtextdec.c RealTextContext *rt = s->priv_data; s 63 libavformat/realtextdec.c AVStream *st = avformat_new_stream(s, NULL); s 68 libavformat/realtextdec.c ff_text_init_avio(s, &tr, s->pb); s 122 libavformat/realtextdec.c ff_subtitles_queue_finalize(s, &rt->q); s 131 libavformat/realtextdec.c static int realtext_read_packet(AVFormatContext *s, AVPacket *pkt) s 133 libavformat/realtextdec.c RealTextContext *rt = s->priv_data; s 137 libavformat/realtextdec.c static int realtext_read_seek(AVFormatContext *s, int stream_index, s 140 libavformat/realtextdec.c RealTextContext *rt = s->priv_data; s 141 libavformat/realtextdec.c return ff_subtitles_queue_seek(&rt->q, s, stream_index, s 145 libavformat/realtextdec.c static int realtext_read_close(AVFormatContext *s) s 147 libavformat/realtextdec.c RealTextContext *rt = s->priv_data; s 57 libavformat/redspark.c static int redspark_read_header(AVFormatContext *s) s 59 libavformat/redspark.c AVIOContext *pb = s->pb; s 60 libavformat/redspark.c RedSparkContext *redspark = s->priv_data; s 68 libavformat/redspark.c st = avformat_new_stream(s, NULL); s 93 libavformat/redspark.c av_log(s, AV_LOG_ERROR, "Invalid sample rate: %d\n", par->sample_rate); s 131 libavformat/redspark.c static int redspark_read_packet(AVFormatContext *s, AVPacket *pkt) s 133 libavformat/redspark.c AVCodecParameters *par = s->streams[0]->codecpar; s 134 libavformat/redspark.c RedSparkContext *redspark = s->priv_data; s 138 libavformat/redspark.c if (avio_feof(s->pb) || redspark->samples_count == s->streams[0]->duration) s 141 libavformat/redspark.c ret = av_get_packet(s->pb, pkt, size); s 68 libavformat/riff.h int ff_put_wav_header(AVFormatContext *s, AVIOContext *pb, AVCodecParameters *par, int flags); s 71 libavformat/riff.h int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb, AVCodecParameters *par, int size, int big_endian); s 80 libavformat/riff.h int ff_read_riff_info(AVFormatContext *s, int64_t size); s 85 libavformat/riff.h void ff_riff_write_info(AVFormatContext *s); s 123 libavformat/riff.h int ff_get_guid(AVIOContext *s, ff_asf_guid *g); s 124 libavformat/riff.h void ff_put_guid(AVIOContext *s, const ff_asf_guid *g); s 32 libavformat/riffdec.c int ff_get_guid(AVIOContext *s, ff_asf_guid *g) s 36 libavformat/riffdec.c ret = avio_read(s, *g, sizeof(*g)); s 61 libavformat/riffdec.c static void parse_waveformatex(AVFormatContext *s, AVIOContext *pb, AVCodecParameters *par) s 84 libavformat/riffdec.c av_log(s, AV_LOG_WARNING, s 91 libavformat/riffdec.c int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb, s 98 libavformat/riffdec.c avpriv_request_sample(s, "wav header size < 14"); s 137 libavformat/riffdec.c avpriv_report_missing_feature(s, "WAVEFORMATEX support for RIFX files"); s 143 libavformat/riffdec.c parse_waveformatex(s, pb, par); s 148 libavformat/riffdec.c if (ff_get_extradata(s, par, pb, cbSize) < 0) s 160 libavformat/riffdec.c if (ff_get_extradata(s, par, pb, size) < 0) s 175 libavformat/riffdec.c av_log(s, AV_LOG_ERROR, s 228 libavformat/riffdec.c int ff_read_riff_info(AVFormatContext *s, int64_t size) s 231 libavformat/riffdec.c AVIOContext *pb = s->pb; s 247 libavformat/riffdec.c av_log(s, AV_LOG_WARNING, "INFO subchunk truncated\n"); s 259 libavformat/riffdec.c av_log(s, AV_LOG_WARNING, "too big INFO subchunk\n"); s 270 libavformat/riffdec.c av_log(s, AV_LOG_WARNING, "truncated file\n"); s 278 libavformat/riffdec.c av_log(s, AV_LOG_ERROR, s 289 libavformat/riffdec.c av_log(s, AV_LOG_WARNING, s 293 libavformat/riffdec.c av_dict_set(&s->metadata, key, value, AV_DICT_DONT_STRDUP_VAL); s 54 libavformat/riffenc.c int ff_put_wav_header(AVFormatContext *s, AVIOContext *pb, s 102 libavformat/riffenc.c av_log(s, AV_LOG_WARNING, s 175 libavformat/riffenc.c (s->strict_std_compliance < FF_COMPLIANCE_NORMAL || s 316 libavformat/riffenc.c static int riff_has_valid_tags(AVFormatContext *s) s 321 libavformat/riffenc.c if (av_dict_get(s->metadata, riff_tags[i], NULL, AV_DICT_MATCH_CASE)) s 327 libavformat/riffenc.c void ff_riff_write_info(AVFormatContext *s) s 329 libavformat/riffenc.c AVIOContext *pb = s->pb; s 334 libavformat/riffenc.c ff_metadata_conv(&s->metadata, ff_riff_info_conv, NULL); s 337 libavformat/riffenc.c if (!riff_has_valid_tags(s)) s 343 libavformat/riffenc.c if ((t = av_dict_get(s->metadata, riff_tags[i], s 345 libavformat/riffenc.c ff_riff_write_info_tag(s->pb, t->key, t->value); s 349 libavformat/riffenc.c void ff_put_guid(AVIOContext *s, const ff_asf_guid *g) s 352 libavformat/riffenc.c avio_write(s, *g, sizeof(*g)); s 76 libavformat/rl2.c static av_cold int rl2_read_header(AVFormatContext *s) s 78 libavformat/rl2.c AVIOContext *pb = s->pb; s 114 libavformat/rl2.c st = avformat_new_stream(s, NULL); s 130 libavformat/rl2.c ret = ff_get_extradata(s, st->codecpar, pb, st->codecpar->extradata_size); s 137 libavformat/rl2.c av_log(s, AV_LOG_ERROR, "Invalid number of channels: %d\n", channels); s 144 libavformat/rl2.c st = avformat_new_stream(s, NULL); s 160 libavformat/rl2.c avpriv_set_pts_info(s->streams[0], 32, pts_num, pts_den); s 204 libavformat/rl2.c av_add_index_entry(s->streams[1], chunk_offset[i], s 208 libavformat/rl2.c av_add_index_entry(s->streams[0], chunk_offset[i] + audio_size[i], s 227 libavformat/rl2.c static int rl2_read_packet(AVFormatContext *s, s 230 libavformat/rl2.c Rl2DemuxContext *rl2 = s->priv_data; s 231 libavformat/rl2.c AVIOContext *pb = s->pb; s 239 libavformat/rl2.c for(i=0; i<s->nb_streams; i++){ s 240 libavformat/rl2.c if(rl2->index_pos[i] < s->streams[i]->nb_index_entries s 241 libavformat/rl2.c && s->streams[i]->index_entries[ rl2->index_pos[i] ].pos < pos){ s 242 libavformat/rl2.c sample = &s->streams[i]->index_entries[ rl2->index_pos[i] ]; s 276 libavformat/rl2.c static int rl2_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 278 libavformat/rl2.c AVStream *st = s->streams[stream_index]; s 279 libavformat/rl2.c Rl2DemuxContext *rl2 = s->priv_data; s 288 libavformat/rl2.c for(i=0; i < s->nb_streams; i++){ s 289 libavformat/rl2.c AVStream *st2 = s->streams[i]; s 51 libavformat/rm.h int ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext *pb, s 72 libavformat/rm.h int ff_rm_parse_packet (AVFormatContext *s, AVIOContext *pb, s 92 libavformat/rm.h int ff_rm_retrieve_cache (AVFormatContext *s, AVIOContext *pb, s 69 libavformat/rmdec.c static int rm_read_close(AVFormatContext *s); s 84 libavformat/rmdec.c static int rm_read_extradata(AVFormatContext *s, AVIOContext *pb, AVCodecParameters *par, unsigned size) s 87 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "extradata size %u too large\n", size); s 90 libavformat/rmdec.c return ff_get_extradata(s, par, pb, size); s 93 libavformat/rmdec.c static void rm_read_metadata(AVFormatContext *s, AVIOContext *pb, int wide) s 102 libavformat/rmdec.c av_dict_set(&s->metadata, ff_rm_metadata[i], buf, 0); s 121 libavformat/rmdec.c static int rm_read_audio_stream_info(AVFormatContext *s, AVIOContext *pb, s 137 libavformat/rmdec.c rm_read_metadata(s, pb, 0); s 220 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "codecdata_length too large\n"); s 228 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "bad SIPR file flavor %d\n", s 236 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "sub_packet_size is invalid\n"); s 241 libavformat/rmdec.c if ((ret = rm_read_extradata(s, pb, st->codecpar, codecdata_length)) < 0) s 251 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "codecdata_length too large\n"); s 256 libavformat/rmdec.c if ((ret = rm_read_extradata(s, pb, st->codecpar, codecdata_length - 1)) < 0) s 268 libavformat/rmdec.c avpriv_request_sample(s, "mismatching interleaver parameters"); s 285 libavformat/rmdec.c av_log(s, AV_LOG_ERROR ,"Unknown interleaver %"PRIX32"\n", ast->deint_id); s 303 libavformat/rmdec.c rm_read_metadata(s, pb, 0); s 309 libavformat/rmdec.c int ff_rm_read_mdpr_codecdata(AVFormatContext *s, AVIOContext *pb, s 329 libavformat/rmdec.c if (rm_read_audio_stream_info(s, pb, st, rst, 0)) s 333 libavformat/rmdec.c if ((ret = rm_read_extradata(s, pb, st->codecpar, codec_data_size)) < 0) s 342 libavformat/rmdec.c ff_free_stream(s, st); s 344 libavformat/rmdec.c av_log(s, AV_LOG_WARNING, "Unsupported version\n"); s 356 libavformat/rmdec.c av_log(s, AV_LOG_WARNING, "Unsupported Name value property version\n"); s 362 libavformat/rmdec.c av_dict_set(&s->metadata, name, val, 0); s 371 libavformat/rmdec.c av_log(s, AV_LOG_WARNING, "Unsupported stream type %08x\n", v); s 377 libavformat/rmdec.c av_log(s, AV_LOG_TRACE, "%"PRIX32" %X\n", s 389 libavformat/rmdec.c if ((ret = rm_read_extradata(s, pb, st->codecpar, codec_data_size - (avio_tell(pb) - codec_pos))) < 0) s 398 libavformat/rmdec.c } else if (s->error_recognition & AV_EF_EXPLODE) { s 399 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "Invalid framerate\n"); s 410 libavformat/rmdec.c av_log(s, AV_LOG_WARNING, "codec_data_size %u < size %d\n", codec_data_size, size); s 418 libavformat/rmdec.c static int rm_read_index(AVFormatContext *s) s 420 libavformat/rmdec.c AVIOContext *pb = s->pb; s 434 libavformat/rmdec.c for (n = 0; n < s->nb_streams; n++) s 435 libavformat/rmdec.c if (s->streams[n]->id == str_id) { s 436 libavformat/rmdec.c st = s->streams[n]; s 439 libavformat/rmdec.c if (n == s->nb_streams) { s 440 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, s 445 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, s 465 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, s 474 libavformat/rmdec.c static int rm_read_header_old(AVFormatContext *s) s 476 libavformat/rmdec.c RMDemuxContext *rm = s->priv_data; s 480 libavformat/rmdec.c st = avformat_new_stream(s, NULL); s 486 libavformat/rmdec.c return rm_read_audio_stream_info(s, s->pb, st, st->priv_data, 1); s 489 libavformat/rmdec.c static int rm_read_multi(AVFormatContext *s, AVIOContext *pb, s 500 libavformat/rmdec.c avpriv_request_sample(s, "MLTI with multiple (%d) MDPR", number_of_mdpr); s 505 libavformat/rmdec.c st2 = avformat_new_stream(s, NULL); s 522 libavformat/rmdec.c ret = ff_rm_read_mdpr_codecdata(s, s->pb, st2, st2->priv_data, s 530 libavformat/rmdec.c static int rm_read_header(AVFormatContext *s) s 532 libavformat/rmdec.c RMDemuxContext *rm = s->priv_data; s 534 libavformat/rmdec.c AVIOContext *pb = s->pb; s 548 libavformat/rmdec.c return rm_read_header_old(s); s 562 libavformat/rmdec.c av_log(s, AV_LOG_TRACE, "tag=%s size=%d\n", s 575 libavformat/rmdec.c s->duration = av_rescale(duration, AV_TIME_BASE, 1000); s 583 libavformat/rmdec.c rm_read_metadata(s, pb, 1); s 586 libavformat/rmdec.c st = avformat_new_stream(s, NULL); s 602 libavformat/rmdec.c s->duration = AV_NOPTS_VALUE; s 616 libavformat/rmdec.c ret = rm_read_multi(s, s->pb, st, mime); s 622 libavformat/rmdec.c if (ff_rm_read_mdpr_codecdata(s, s->pb, st, st->priv_data, s 645 libavformat/rmdec.c !(s->flags & AVFMT_FLAG_IGNIDX) && s 647 libavformat/rmdec.c rm_read_index(s); s 654 libavformat/rmdec.c rm_read_close(s); s 677 libavformat/rmdec.c static int rm_sync(AVFormatContext *s, int64_t *timestamp, int *flags, int *stream_index, int64_t *pos){ s 678 libavformat/rmdec.c RMDemuxContext *rm = s->priv_data; s 679 libavformat/rmdec.c AVIOContext *pb = s->pb; s 706 libavformat/rmdec.c av_log(s, AV_LOG_WARNING, s 714 libavformat/rmdec.c av_log(s, AV_LOG_WARNING, s 729 libavformat/rmdec.c for(i=0;i<s->nb_streams;i++) { s 730 libavformat/rmdec.c st = s->streams[i]; s 734 libavformat/rmdec.c if (i == s->nb_streams) { s 748 libavformat/rmdec.c static int rm_assemble_video_frame(AVFormatContext *s, AVIOContext *pb, s 770 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "Insufficient data\n"); s 780 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "Insufficient remaining len\n"); s 791 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "Failed to read %d bytes\n", len); s 801 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "Impossibly sized packet\n"); s 819 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "cur slice %d, too large\n", vst->cur_slice); s 827 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "outside videobufsize\n"); s 866 libavformat/rmdec.c static int readfull(AVFormatContext *s, AVIOContext *pb, uint8_t *dst, int n) { s 871 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "Failed to fully read block\n"); s 877 libavformat/rmdec.c ff_rm_parse_packet (AVFormatContext *s, AVIOContext *pb, s 881 libavformat/rmdec.c RMDemuxContext *rm = s->priv_data; s 886 libavformat/rmdec.c ret = rm_assemble_video_frame(s, pb, rm, ast, pkt, len, seq, ×tamp); s 908 libavformat/rmdec.c readfull(s, pb, ast->pkt.data+x*2*w+y*cfs, cfs); s 912 libavformat/rmdec.c readfull(s, pb, ast->pkt.data+sps*(h*x+((h+1)/2)*(y&1)+(y>>1)), sps); s 915 libavformat/rmdec.c readfull(s, pb, ast->pkt.data + y * w, w); s 927 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "Invalid block alignment %d\n", st->codecpar->block_align); s 965 libavformat/rmdec.c ff_rm_retrieve_cache (AVFormatContext *s, AVIOContext *pb, s 968 libavformat/rmdec.c RMDemuxContext *rm = s->priv_data; s 997 libavformat/rmdec.c static int rm_read_packet(AVFormatContext *s, AVPacket *pkt) s 999 libavformat/rmdec.c RMDemuxContext *rm = s->priv_data; s 1008 libavformat/rmdec.c st = s->streams[rm->audio_stream_num]; s 1009 libavformat/rmdec.c res = ff_rm_retrieve_cache(s, s->pb, st, st->priv_data, pkt); s 1017 libavformat/rmdec.c st = s->streams[0]; s 1023 libavformat/rmdec.c pos = avio_tell(s->pb); s 1025 libavformat/rmdec.c len = rm_sync(s, ×tamp, &flags, &i, &pos); s 1027 libavformat/rmdec.c st = s->streams[i]; s 1030 libavformat/rmdec.c if (avio_feof(s->pb)) s 1035 libavformat/rmdec.c res = ff_rm_parse_packet (s, s->pb, st, st->priv_data, len, pkt, s 1055 libavformat/rmdec.c static int rm_read_close(AVFormatContext *s) s 1059 libavformat/rmdec.c for (i=0;i<s->nb_streams;i++) s 1060 libavformat/rmdec.c ff_rm_free_rmstream(s->streams[i]->priv_data); s 1078 libavformat/rmdec.c static int64_t rm_read_dts(AVFormatContext *s, int stream_index, s 1081 libavformat/rmdec.c RMDemuxContext *rm = s->priv_data; s 1090 libavformat/rmdec.c if (avio_seek(s->pb, pos, SEEK_SET) < 0) s 1098 libavformat/rmdec.c len = rm_sync(s, &dts, &flags, &stream_index2, &pos); s 1102 libavformat/rmdec.c st = s->streams[stream_index2]; s 1104 libavformat/rmdec.c h= avio_r8(s->pb); len--; s 1106 libavformat/rmdec.c seq = avio_r8(s->pb); len--; s 1111 libavformat/rmdec.c av_log(s, AV_LOG_TRACE, "%d %d-%d %"PRId64" %d\n", s 1118 libavformat/rmdec.c avio_skip(s->pb, len); s 1124 libavformat/rmdec.c static int rm_read_seek(AVFormatContext *s, int stream_index, s 1127 libavformat/rmdec.c RMDemuxContext *rm = s->priv_data; s 1129 libavformat/rmdec.c if (ff_seek_frame_binary(s, stream_index, pts, flags) < 0) s 1165 libavformat/rmdec.c static int ivr_read_header(AVFormatContext *s) s 1170 libavformat/rmdec.c AVIOContext *pb = s->pb; s 1219 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "%s = '%s'\n", key, val); s 1221 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "%s = '0x", key); s 1225 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "%X", avio_r8(pb)); s 1227 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "'\n"); s 1232 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "%s = %d\n", key, value); s 1234 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "Skipping unsupported key: %s\n", key); s 1240 libavformat/rmdec.c st = avformat_new_stream(s, NULL); s 1261 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "%s = '%s'\n", key, val); s 1267 libavformat/rmdec.c ret = rm_read_multi(s, pb, st, NULL); s 1272 libavformat/rmdec.c ret = ff_rm_read_mdpr_codecdata(s, pb, st, st->priv_data, len, NULL); s 1280 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "%s = '0x", key); s 1282 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "%X", avio_r8(pb)); s 1283 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "'\n"); s 1288 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "%s = %d\n", key, value); s 1290 libavformat/rmdec.c av_log(s, AV_LOG_DEBUG, "Skipping unsupported key: %s\n", key); s 1299 libavformat/rmdec.c avio_skip(pb, avio_rb64(pb) + pos - avio_tell(s->pb)); s 1307 libavformat/rmdec.c static int ivr_read_packet(AVFormatContext *s, AVPacket *pkt) s 1309 libavformat/rmdec.c RMDemuxContext *rm = s->priv_data; s 1311 libavformat/rmdec.c AVIOContext *pb = s->pb; s 1325 libavformat/rmdec.c st = s->streams[rm->audio_stream_num]; s 1326 libavformat/rmdec.c ret = ff_rm_retrieve_cache(s, pb, st, st->priv_data, pkt); s 1346 libavformat/rmdec.c if (index >= s->nb_streams) s 1354 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "size %u is invalid\n", size); s 1358 libavformat/rmdec.c st = s->streams[index]; s 1359 libavformat/rmdec.c ret = ff_rm_parse_packet(s, pb, st, st->priv_data, size, pkt, s 1377 libavformat/rmdec.c av_log(s, AV_LOG_ERROR, "Unsupported opcode=%d at %"PRIX64"\n", opcode, avio_tell(pb) - 1); s 53 libavformat/rmenc.c static void put_str(AVIOContext *s, const char *tag) s 55 libavformat/rmenc.c avio_wb16(s,strlen(tag)); s 57 libavformat/rmenc.c avio_w8(s, *tag++); s 61 libavformat/rmenc.c static void put_str8(AVIOContext *s, const char *tag) s 63 libavformat/rmenc.c avio_w8(s, strlen(tag)); s 65 libavformat/rmenc.c avio_w8(s, *tag++); s 73 libavformat/rmenc.c AVIOContext *s = ctx->pb; s 81 libavformat/rmenc.c ffio_wfourcc(s, ".RMF"); s 82 libavformat/rmenc.c avio_wb32(s,18); /* header size */ s 83 libavformat/rmenc.c avio_wb16(s,0); s 84 libavformat/rmenc.c avio_wb32(s,0); s 85 libavformat/rmenc.c avio_wb32(s,4 + ctx->nb_streams); /* num headers */ s 87 libavformat/rmenc.c ffio_wfourcc(s,"PROP"); s 88 libavformat/rmenc.c avio_wb32(s, 50); s 89 libavformat/rmenc.c avio_wb16(s, 0); s 107 libavformat/rmenc.c avio_wb32(s, bit_rate); /* max bit rate */ s 108 libavformat/rmenc.c avio_wb32(s, bit_rate); /* avg bit rate */ s 109 libavformat/rmenc.c avio_wb32(s, packet_max_size); /* max packet size */ s 114 libavformat/rmenc.c avio_wb32(s, packet_avg_size); /* avg packet size */ s 115 libavformat/rmenc.c avio_wb32(s, nb_packets); /* num packets */ s 116 libavformat/rmenc.c avio_wb32(s, duration); /* duration */ s 117 libavformat/rmenc.c avio_wb32(s, BUFFER_DURATION); /* preroll */ s 118 libavformat/rmenc.c avio_wb32(s, index_pos); /* index offset */ s 120 libavformat/rmenc.c data_offset = avio_tell(s); s 121 libavformat/rmenc.c avio_wb32(s, 0); /* data offset : will be patched after */ s 122 libavformat/rmenc.c avio_wb16(s, ctx->nb_streams); /* num streams */ s 124 libavformat/rmenc.c if (!(s->seekable & AVIO_SEEKABLE_NORMAL)) s 126 libavformat/rmenc.c avio_wb16(s, flags); s 130 libavformat/rmenc.c ffio_wfourcc(s,"CONT"); s 136 libavformat/rmenc.c avio_wb32(s,size); s 137 libavformat/rmenc.c avio_wb16(s,0); s 140 libavformat/rmenc.c put_str(s, tag ? tag->value : ""); s 158 libavformat/rmenc.c ffio_wfourcc(s,"MDPR"); s 160 libavformat/rmenc.c avio_wb32(s, size); s 161 libavformat/rmenc.c avio_wb16(s, 0); s 163 libavformat/rmenc.c avio_wb16(s, i); /* stream number */ s 164 libavformat/rmenc.c avio_wb32(s, stream->bit_rate); /* max bit rate */ s 165 libavformat/rmenc.c avio_wb32(s, stream->bit_rate); /* avg bit rate */ s 166 libavformat/rmenc.c avio_wb32(s, stream->packet_max_size); /* max packet size */ s 172 libavformat/rmenc.c avio_wb32(s, packet_avg_size); /* avg packet size */ s 173 libavformat/rmenc.c avio_wb32(s, 0); /* start time */ s 174 libavformat/rmenc.c avio_wb32(s, BUFFER_DURATION); /* preroll */ s 176 libavformat/rmenc.c if (!(s->seekable & AVIO_SEEKABLE_NORMAL) || !stream->total_frames) s 177 libavformat/rmenc.c avio_wb32(s, (int)(3600 * 1000)); s 179 libavformat/rmenc.c avio_wb32(s, av_rescale_q_rnd(stream->total_frames, (AVRational){1000, 1}, stream->frame_rate, AV_ROUND_ZERO)); s 180 libavformat/rmenc.c put_str8(s, desc); s 181 libavformat/rmenc.c put_str8(s, mimetype); s 182 libavformat/rmenc.c avio_wb32(s, codec_data_size); s 191 libavformat/rmenc.c avio_write(s, ".ra", 3); s 192 libavformat/rmenc.c avio_w8(s, 0xfd); s 193 libavformat/rmenc.c avio_wb32(s, 0x00040000); /* version */ s 194 libavformat/rmenc.c ffio_wfourcc(s, ".ra4"); s 195 libavformat/rmenc.c avio_wb32(s, 0x01b53530); /* stream length */ s 196 libavformat/rmenc.c avio_wb16(s, 4); /* unknown */ s 197 libavformat/rmenc.c avio_wb32(s, 0x39); /* header size */ s 216 libavformat/rmenc.c avio_wb16(s, fscode); /* codec additional info, for AC-3, seems s 221 libavformat/rmenc.c avio_wb32(s, coded_frame_size); /* frame length */ s 222 libavformat/rmenc.c avio_wb32(s, 0x51540); /* unknown */ s 223 libavformat/rmenc.c avio_wb32(s, stream->par->bit_rate / 8 * 60); /* bytes per minute */ s 224 libavformat/rmenc.c avio_wb32(s, stream->par->bit_rate / 8 * 60); /* bytes per minute */ s 225 libavformat/rmenc.c avio_wb16(s, 0x01); s 227 libavformat/rmenc.c avio_wb16(s, coded_frame_size); s 228 libavformat/rmenc.c avio_wb32(s, 0); /* unknown */ s 229 libavformat/rmenc.c avio_wb16(s, stream->par->sample_rate); /* sample rate */ s 230 libavformat/rmenc.c avio_wb32(s, 0x10); /* unknown */ s 231 libavformat/rmenc.c avio_wb16(s, stream->par->channels); s 232 libavformat/rmenc.c put_str8(s, "Int0"); /* codec name */ s 234 libavformat/rmenc.c avio_w8(s, 4); /* tag length */ s 235 libavformat/rmenc.c avio_wl32(s, stream->par->codec_tag); s 240 libavformat/rmenc.c avio_wb16(s, 0); /* title length */ s 241 libavformat/rmenc.c avio_wb16(s, 0); /* author length */ s 242 libavformat/rmenc.c avio_wb16(s, 0); /* copyright length */ s 243 libavformat/rmenc.c avio_w8(s, 0); /* end of header */ s 246 libavformat/rmenc.c avio_wb32(s,34); /* size */ s 247 libavformat/rmenc.c ffio_wfourcc(s, "VIDO"); s 249 libavformat/rmenc.c ffio_wfourcc(s,"RV10"); s 251 libavformat/rmenc.c ffio_wfourcc(s,"RV20"); s 252 libavformat/rmenc.c avio_wb16(s, stream->par->width); s 253 libavformat/rmenc.c avio_wb16(s, stream->par->height); s 256 libavformat/rmenc.c av_log(s, AV_LOG_ERROR, "Frame rate %d is too high\n", stream->frame_rate.num / stream->frame_rate.den); s 260 libavformat/rmenc.c avio_wb16(s, stream->frame_rate.num / stream->frame_rate.den); /* frames per seconds ? */ s 261 libavformat/rmenc.c avio_wb32(s,0); /* unknown meaning */ s 262 libavformat/rmenc.c avio_wb16(s, stream->frame_rate.num / stream->frame_rate.den); /* unknown meaning */ s 263 libavformat/rmenc.c avio_wb32(s,0); /* unknown meaning */ s 264 libavformat/rmenc.c avio_wb16(s, 8); /* unknown meaning */ s 269 libavformat/rmenc.c avio_wb32(s,0x10000000); s 271 libavformat/rmenc.c avio_wb32(s,0x20103001); s 277 libavformat/rmenc.c rm->data_pos = avio_tell(s); s 278 libavformat/rmenc.c if (avio_seek(s, data_offset, SEEK_SET) >= 0) { s 279 libavformat/rmenc.c avio_wb32(s, rm->data_pos); s 280 libavformat/rmenc.c avio_seek(s, rm->data_pos, SEEK_SET); s 284 libavformat/rmenc.c ffio_wfourcc(s, "DATA"); s 285 libavformat/rmenc.c avio_wb32(s,data_size + 10 + 8); s 286 libavformat/rmenc.c avio_wb16(s,0); s 288 libavformat/rmenc.c avio_wb32(s, nb_packets); /* number of packets */ s 289 libavformat/rmenc.c avio_wb32(s,0); /* next data header */ s 297 libavformat/rmenc.c AVIOContext *s = ctx->pb; s 304 libavformat/rmenc.c avio_wb16(s,0); /* version */ s 305 libavformat/rmenc.c avio_wb16(s,length + 12); s 306 libavformat/rmenc.c avio_wb16(s, stream->num); /* stream number */ s 308 libavformat/rmenc.c avio_wb32(s, timestamp); /* timestamp */ s 309 libavformat/rmenc.c avio_w8(s, 0); /* reserved */ s 310 libavformat/rmenc.c avio_w8(s, key_frame ? 2 : 0); /* flags */ s 313 libavformat/rmenc.c static int rm_write_header(AVFormatContext *s) s 315 libavformat/rmenc.c RMMuxContext *rm = s->priv_data; s 320 libavformat/rmenc.c if (s->nb_streams > 2) { s 321 libavformat/rmenc.c av_log(s, AV_LOG_ERROR, "At most 2 streams are currently supported for muxing in RM\n"); s 325 libavformat/rmenc.c for(n=0;n<s->nb_streams;n++) { s 326 libavformat/rmenc.c AVStream *st = s->streams[n]; s 329 libavformat/rmenc.c s->streams[n]->id = n; s 330 libavformat/rmenc.c par = s->streams[n]->codecpar; s 361 libavformat/rmenc.c if (rv10_write_header(s, 0, 0)) s 366 libavformat/rmenc.c static int rm_write_audio(AVFormatContext *s, const uint8_t *buf, int size, int flags) s 368 libavformat/rmenc.c RMMuxContext *rm = s->priv_data; s 369 libavformat/rmenc.c AVIOContext *pb = s->pb; s 373 libavformat/rmenc.c write_packet_header(s, stream, size, !!(flags & AV_PKT_FLAG_KEY)); s 388 libavformat/rmenc.c static int rm_write_video(AVFormatContext *s, const uint8_t *buf, int size, int flags) s 390 libavformat/rmenc.c RMMuxContext *rm = s->priv_data; s 391 libavformat/rmenc.c AVIOContext *pb = s->pb; s 400 libavformat/rmenc.c av_log(s, AV_LOG_ERROR, "Muxing packets larger than 64 kB (%d) is not supported\n", size); s 403 libavformat/rmenc.c write_packet_header(s, stream, size + 7 + (size >= 0x4000)*4, key_frame); s 428 libavformat/rmenc.c static int rm_write_packet(AVFormatContext *s, AVPacket *pkt) s 430 libavformat/rmenc.c if (s->streams[pkt->stream_index]->codecpar->codec_type == s 432 libavformat/rmenc.c return rm_write_audio(s, pkt->data, pkt->size, pkt->flags); s 434 libavformat/rmenc.c return rm_write_video(s, pkt->data, pkt->size, pkt->flags); s 437 libavformat/rmenc.c static int rm_write_trailer(AVFormatContext *s) s 439 libavformat/rmenc.c RMMuxContext *rm = s->priv_data; s 441 libavformat/rmenc.c AVIOContext *pb = s->pb; s 443 libavformat/rmenc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 455 libavformat/rmenc.c for(i=0;i<s->nb_streams;i++) s 457 libavformat/rmenc.c rv10_write_header(s, data_size, 0); s 115 libavformat/rpl.c static int rpl_read_header(AVFormatContext *s) s 117 libavformat/rpl.c AVIOContext *pb = s->pb; s 118 libavformat/rpl.c RPLContext *rpl = s->priv_data; s 140 libavformat/rpl.c av_dict_set(&s->metadata, "title" , line, 0); s 142 libavformat/rpl.c av_dict_set(&s->metadata, "copyright", line, 0); s 144 libavformat/rpl.c av_dict_set(&s->metadata, "author" , line, 0); s 149 libavformat/rpl.c vst = avformat_new_stream(s, NULL); s 174 libavformat/rpl.c avpriv_report_missing_feature(s, "Video format %s", s 194 libavformat/rpl.c ast = avformat_new_stream(s, NULL); s 248 libavformat/rpl.c avpriv_request_sample(s, "Audio format %"PRId32, s 258 libavformat/rpl.c av_log(s, AV_LOG_WARNING, s 302 libavformat/rpl.c static int rpl_read_packet(AVFormatContext *s, AVPacket *pkt) s 304 libavformat/rpl.c RPLContext *rpl = s->priv_data; s 305 libavformat/rpl.c AVIOContext *pb = s->pb; s 310 libavformat/rpl.c if (rpl->chunk_part == s->nb_streams) { s 315 libavformat/rpl.c stream = s->streams[rpl->chunk_part]; s 55 libavformat/rsd.c static int rsd_read_header(AVFormatContext *s) s 57 libavformat/rsd.c AVIOContext *pb = s->pb; s 60 libavformat/rsd.c AVStream *st = avformat_new_stream(s, NULL); s 76 libavformat/rsd.c avpriv_request_sample(s, "Codec tag: %s", tag_buf); s 80 libavformat/rsd.c av_log(s, AV_LOG_ERROR, "Unknown codec tag: %s\n", tag_buf); s 86 libavformat/rsd.c av_log(s, AV_LOG_ERROR, "Invalid number of channels: %d\n", par->channels); s 129 libavformat/rsd.c if ((ret = ff_get_extradata(s, par, s->pb, 32)) < 0) s 136 libavformat/rsd.c avio_skip(s->pb, 0x1A4 - avio_tell(s->pb)); s 142 libavformat/rsd.c avio_read(s->pb, st->codecpar->extradata + 32 * i, 32); s 143 libavformat/rsd.c avio_skip(s->pb, 8); s 169 libavformat/rsd.c static int rsd_read_packet(AVFormatContext *s, AVPacket *pkt) s 171 libavformat/rsd.c AVCodecParameters *par = s->streams[0]->codecpar; s 175 libavformat/rsd.c if (avio_feof(s->pb)) s 178 libavformat/rsd.c pos = avio_tell(s->pb); s 183 libavformat/rsd.c ret = av_get_packet(s->pb, pkt, par->block_align); s 193 libavformat/rsd.c pkt->data[ch * 8 + i * 2 + 0] = avio_r8(s->pb); s 194 libavformat/rsd.c pkt->data[ch * 8 + i * 2 + 1] = avio_r8(s->pb); s 199 libavformat/rsd.c ret = av_get_packet(s->pb, pkt, size); s 30 libavformat/rsodec.c static int rso_read_header(AVFormatContext *s) s 32 libavformat/rsodec.c AVIOContext *pb = s->pb; s 46 libavformat/rsodec.c avpriv_report_missing_feature(s, "ADPCM in RSO"); s 52 libavformat/rsodec.c avpriv_request_sample(s, "Unknown bits per sample"); s 57 libavformat/rsodec.c st = avformat_new_stream(s, NULL); s 29 libavformat/rsoenc.c static int rso_write_header(AVFormatContext *s) s 31 libavformat/rsoenc.c AVIOContext *pb = s->pb; s 32 libavformat/rsoenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 38 libavformat/rsoenc.c av_log(s, AV_LOG_ERROR, "RSO only supports mono\n"); s 42 libavformat/rsoenc.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) { s 43 libavformat/rsoenc.c av_log(s, AV_LOG_ERROR, "muxer does not support non seekable output\n"); s 49 libavformat/rsoenc.c av_log(s, AV_LOG_ERROR, "Sample rate must be < 65536\n"); s 54 libavformat/rsoenc.c avpriv_report_missing_feature(s, "ADPCM in RSO"); s 67 libavformat/rsoenc.c static int rso_write_trailer(AVFormatContext *s) s 69 libavformat/rsoenc.c AVIOContext *pb = s->pb; s 79 libavformat/rsoenc.c av_log(s, AV_LOG_WARNING, s 156 libavformat/rtmpproto.c static int handle_chunk_size(URLContext *s, RTMPPacket *pkt); s 157 libavformat/rtmpproto.c static int handle_window_ack_size(URLContext *s, RTMPPacket *pkt); s 158 libavformat/rtmpproto.c static int handle_set_peer_bw(URLContext *s, RTMPPacket *pkt); s 190 libavformat/rtmpproto.c static int find_tracked_method(URLContext *s, RTMPPacket *pkt, int offset, s 193 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 254 libavformat/rtmpproto.c static int rtmp_write_amf_data(URLContext *s, char *param, uint8_t **p) s 310 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Invalid AMF parameter: %s\n", param); s 317 libavformat/rtmpproto.c static int gen_connect(URLContext *s, RTMPContext *rt) s 387 libavformat/rtmpproto.c if ((ret = rtmp_write_amf_data(s, param, &p)) < 0) { s 408 libavformat/rtmpproto.c static int read_connect(URLContext *s, RTMPContext *rt) s 426 libavformat/rtmpproto.c ff_rtmp_packet_dump(s, &pkt); s 429 libavformat/rtmpproto.c if ((ret = handle_chunk_size(s, &pkt)) < 0) { s 434 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "received abort message\n"); s 438 libavformat/rtmpproto.c av_log(s, AV_LOG_TRACE, "received acknowledgement\n"); s 440 libavformat/rtmpproto.c if ((ret = handle_window_ack_size(s, &pkt)) < 0) { s 445 libavformat/rtmpproto.c if ((ret = handle_set_peer_bw(s, &pkt)) < 0) { s 453 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unknown control message type (%d)\n", pkt.type); s 461 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unable to read command string\n"); s 466 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Expecting connect, got %s\n", command); s 472 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, "SeqNum not found\n"); s 478 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, "App field not found in connect\n"); s 480 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, "App field don't match up: %s <-> %s\n", s 596 libavformat/rtmpproto.c static int gen_release_stream(URLContext *s, RTMPContext *rt) s 606 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Releasing stream...\n"); s 620 libavformat/rtmpproto.c static int gen_fcpublish_stream(URLContext *s, RTMPContext *rt) s 630 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "FCPublish stream...\n"); s 644 libavformat/rtmpproto.c static int gen_fcunpublish_stream(URLContext *s, RTMPContext *rt) s 654 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "UnPublishing stream...\n"); s 668 libavformat/rtmpproto.c static int gen_create_stream(URLContext *s, RTMPContext *rt) s 674 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Creating stream...\n"); s 693 libavformat/rtmpproto.c static int gen_delete_stream(URLContext *s, RTMPContext *rt) s 699 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Deleting stream...\n"); s 719 libavformat/rtmpproto.c static int gen_get_stream_length(URLContext *s, RTMPContext *rt) s 741 libavformat/rtmpproto.c static int gen_buffer_time(URLContext *s, RTMPContext *rt) s 763 libavformat/rtmpproto.c static int gen_play(URLContext *s, RTMPContext *rt) s 769 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Sending play command for '%s'\n", rt->playpath); s 787 libavformat/rtmpproto.c static int gen_seek(URLContext *s, RTMPContext *rt, int64_t timestamp) s 793 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Sending seek command for timestamp %"PRId64"\n", s 813 libavformat/rtmpproto.c static int gen_pause(URLContext *s, RTMPContext *rt, int pause, uint32_t timestamp) s 819 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Sending pause command for timestamp %d\n", s 840 libavformat/rtmpproto.c static int gen_publish(URLContext *s, RTMPContext *rt) s 846 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Sending publish command for '%s'\n", rt->playpath); s 867 libavformat/rtmpproto.c static int gen_pong(URLContext *s, RTMPContext *rt, RTMPPacket *ppkt) s 874 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Too short ping packet (%d)\n", s 893 libavformat/rtmpproto.c static int gen_swf_verification(URLContext *s, RTMPContext *rt) s 899 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Sending SWF verification...\n"); s 914 libavformat/rtmpproto.c static int gen_window_ack_size(URLContext *s, RTMPContext *rt) s 933 libavformat/rtmpproto.c static int gen_check_bw(URLContext *s, RTMPContext *rt) s 954 libavformat/rtmpproto.c static int gen_bytes_read(URLContext *s, RTMPContext *rt, uint32_t ts) s 970 libavformat/rtmpproto.c static int gen_fcsubscribe_stream(URLContext *s, RTMPContext *rt, s 1041 libavformat/rtmpproto.c static int rtmp_calc_swf_verification(URLContext *s, RTMPContext *rt, s 1048 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, s 1109 libavformat/rtmpproto.c static int rtmp_calc_swfhash(URLContext *s) s 1111 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1121 libavformat/rtmpproto.c &s->interrupt_callback, NULL, s 1122 libavformat/rtmpproto.c s->protocol_whitelist, s->protocol_blacklist, s)) < 0) { s 1123 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Cannot open connection %s.\n", rt->swfverify); s 1163 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, s 1196 libavformat/rtmpproto.c static int rtmp_handshake(URLContext *s, RTMPContext *rt) s 1214 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Handshaking...\n"); s 1243 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Cannot write RTMP handshake request\n"); s 1249 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Cannot read RTMP handshake response\n"); s 1255 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Cannot read RTMP handshake response\n"); s 1259 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Type answer %d\n", serverdata[0]); s 1260 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Server version %d.%d.%d.%d\n", s 1275 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Server response validating failed\n"); s 1283 libavformat/rtmpproto.c if ((ret = rtmp_calc_swf_verification(s, rt, serverdata + 1 + s 1311 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Signature mismatch\n"); s 1416 libavformat/rtmpproto.c static int rtmp_server_handshake(URLContext *s, RTMPContext *rt) s 1431 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unable to read handshake\n"); s 1436 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "RTMP protocol version mismatch\n"); s 1440 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, s 1448 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "RTMP Handshake C1 Error\n"); s 1462 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "RTMP Handshake S1 Error\n"); s 1469 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "RTMP Handshake S2 Error\n"); s 1476 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "RTMP Handshake C2 Error\n"); s 1480 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, s 1484 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, s 1490 libavformat/rtmpproto.c static int handle_chunk_size(URLContext *s, RTMPPacket *pkt) s 1492 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1496 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, s 1513 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Incorrect chunk size %d\n", s 1517 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "New incoming chunk size = %d\n", s 1523 libavformat/rtmpproto.c static int handle_user_control(URLContext *s, RTMPPacket *pkt) s 1525 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1529 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Too short user control packet (%d)\n", s 1536 libavformat/rtmpproto.c if ((ret = gen_pong(s, rt, pkt)) < 0) s 1540 libavformat/rtmpproto.c if ((ret = gen_swf_verification(s, rt)) < 0) s 1543 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, "Ignoring SWFVerification request.\n"); s 1550 libavformat/rtmpproto.c static int handle_set_peer_bw(URLContext *s, RTMPPacket *pkt) s 1552 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1555 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, s 1567 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Incorrect set peer bandwidth %d\n", s 1572 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Max sent, unacked = %d\n", rt->max_sent_unacked); s 1577 libavformat/rtmpproto.c static int handle_window_ack_size(URLContext *s, RTMPPacket *pkt) s 1579 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1582 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, s 1590 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Incorrect window acknowledgement size %d\n", s 1594 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Window acknowledgement size = %d\n", rt->receive_report_size); s 1701 libavformat/rtmpproto.c static int handle_connect_error(URLContext *s, const char *desc) s 1703 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1711 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, s 1721 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "No credentials set\n"); s 1726 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Incorrect username/password\n"); s 1729 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Incorrect username\n"); s 1734 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Authentication failed\n"); s 1747 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "No auth parameters found\n"); s 1772 libavformat/rtmpproto.c av_log(s, AV_LOG_INFO, "Ignoring unsupported var %s\n", ptr); s 1775 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, "Variable %s has NULL value\n", ptr); s 1792 libavformat/rtmpproto.c static int handle_invoke_error(URLContext *s, RTMPPacket *pkt) s 1794 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1801 libavformat/rtmpproto.c if ((ret = find_tracked_method(s, pkt, 9, &tracked_method)) < 0) s 1817 libavformat/rtmpproto.c ret = handle_connect_error(s, tmpstr); s 1824 libavformat/rtmpproto.c av_log(s, level, "Server error: %s\n", tmpstr); s 1831 libavformat/rtmpproto.c static int write_begin(URLContext *s) s 1833 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1841 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unable to create response packet\n"); s 1857 libavformat/rtmpproto.c static int write_status(URLContext *s, RTMPPacket *pkt, s 1860 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1869 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unable to create response packet\n"); s 1900 libavformat/rtmpproto.c static int send_invoke_response(URLContext *s, RTMPPacket *pkt) s 1902 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 1917 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Error in PT_INVOKE\n"); s 1933 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unable to parse stream name - name too long?\n"); s 1935 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unable to parse stream name\n"); s 1939 libavformat/rtmpproto.c if (s->filename) { s 1940 libavformat/rtmpproto.c pchar = strrchr(s->filename, '/'); s 1942 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, s 1944 libavformat/rtmpproto.c s->filename); s 1945 libavformat/rtmpproto.c pchar = s->filename; s 1949 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, "Unexpected stream %s, expecting" s 1959 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unable to create response packet\n"); s 1965 libavformat/rtmpproto.c ret = write_begin(s); s 1970 libavformat/rtmpproto.c return write_status(s, pkt, "NetStream.Publish.Start", s 1973 libavformat/rtmpproto.c ret = write_begin(s); s 1977 libavformat/rtmpproto.c return write_status(s, pkt, "NetStream.Play.Start", s 1983 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unable to create response packet\n"); s 2046 libavformat/rtmpproto.c static int handle_invoke_result(URLContext *s, RTMPPacket *pkt) s 2048 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 2052 libavformat/rtmpproto.c if ((ret = find_tracked_method(s, pkt, 10, &tracked_method)) < 0) s 2062 libavformat/rtmpproto.c if ((ret = gen_release_stream(s, rt)) < 0) s 2065 libavformat/rtmpproto.c if ((ret = gen_fcpublish_stream(s, rt)) < 0) s 2068 libavformat/rtmpproto.c if ((ret = gen_window_ack_size(s, rt)) < 0) s 2072 libavformat/rtmpproto.c if ((ret = gen_create_stream(s, rt)) < 0) s 2079 libavformat/rtmpproto.c if ((ret = gen_fcsubscribe_stream(s, rt, rt->subscribe)) < 0) s 2082 libavformat/rtmpproto.c if ((ret = gen_fcsubscribe_stream(s, rt, rt->playpath)) < 0) s 2089 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, "Unexpected reply on connect()\n"); s 2095 libavformat/rtmpproto.c if ((ret = gen_publish(s, rt)) < 0) s 2099 libavformat/rtmpproto.c if ((ret = gen_get_stream_length(s, rt)) < 0) s 2102 libavformat/rtmpproto.c if ((ret = gen_play(s, rt)) < 0) s 2104 libavformat/rtmpproto.c if ((ret = gen_buffer_time(s, rt)) < 0) s 2109 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, "Unexpected reply on getStreamLength()\n"); s 2118 libavformat/rtmpproto.c static int handle_invoke_status(URLContext *s, RTMPPacket *pkt) s 2120 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 2141 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Server error: %s\n", tmpstr); s 2155 libavformat/rtmpproto.c static int handle_invoke(URLContext *s, RTMPPacket *pkt) s 2157 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 2162 libavformat/rtmpproto.c if ((ret = handle_invoke_error(s, pkt)) < 0) s 2165 libavformat/rtmpproto.c if ((ret = handle_invoke_result(s, pkt)) < 0) s 2168 libavformat/rtmpproto.c if ((ret = handle_invoke_status(s, pkt)) < 0) s 2171 libavformat/rtmpproto.c if ((ret = gen_check_bw(s, rt)) < 0) s 2179 libavformat/rtmpproto.c if ((ret = send_invoke_response(s, pkt)) < 0) s 2238 libavformat/rtmpproto.c static int handle_notify(URLContext *s, RTMPPacket *pkt) s 2240 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 2301 libavformat/rtmpproto.c static int rtmp_parse_result(URLContext *s, RTMPContext *rt, RTMPPacket *pkt) s 2306 libavformat/rtmpproto.c ff_rtmp_packet_dump(s, pkt); s 2311 libavformat/rtmpproto.c av_log(s, AV_LOG_TRACE, "received bytes read report\n"); s 2314 libavformat/rtmpproto.c if ((ret = handle_chunk_size(s, pkt)) < 0) s 2318 libavformat/rtmpproto.c if ((ret = handle_user_control(s, pkt)) < 0) s 2322 libavformat/rtmpproto.c if ((ret = handle_set_peer_bw(s, pkt)) < 0) s 2326 libavformat/rtmpproto.c if ((ret = handle_window_ack_size(s, pkt)) < 0) s 2330 libavformat/rtmpproto.c if ((ret = handle_invoke(s, pkt)) < 0) s 2340 libavformat/rtmpproto.c av_log(s, AV_LOG_VERBOSE, "Unknown packet type received 0x%02X\n", pkt->type); s 2407 libavformat/rtmpproto.c static int get_packet(URLContext *s, int for_header) s 2409 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 2432 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Sending bytes read report\n"); s 2433 libavformat/rtmpproto.c if ((ret = gen_bytes_read(s, rt, rpkt.timestamp + 1)) < 0) { s 2440 libavformat/rtmpproto.c ret = rtmp_parse_result(s, rt, &rpkt); s 2480 libavformat/rtmpproto.c ret = handle_notify(s, &rpkt); s 2591 libavformat/rtmpproto.c static int rtmp_open(URLContext *s, const char *uri, int flags, AVDictionary **opts) s 2593 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 2607 libavformat/rtmpproto.c path, sizeof(path), s->filename); s 2611 libavformat/rtmpproto.c av_log(s, AV_LOG_WARNING, s 2628 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "rtmp_listen not available for %s\n", s 2664 libavformat/rtmpproto.c &s->interrupt_callback, opts, s 2665 libavformat/rtmpproto.c s->protocol_whitelist, s->protocol_blacklist, s)) < 0) { s 2666 libavformat/rtmpproto.c av_log(s , AV_LOG_ERROR, "Cannot open connection %s\n", buf); s 2671 libavformat/rtmpproto.c if ((ret = rtmp_calc_swfhash(s)) < 0) s 2676 libavformat/rtmpproto.c if (!rt->listen && (ret = rtmp_handshake(s, rt)) < 0) s 2678 libavformat/rtmpproto.c if (rt->listen && (ret = rtmp_server_handshake(s, rt)) < 0) s 2809 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Proto = %s, path = %s, app = %s, fname = %s\n", s 2812 libavformat/rtmpproto.c if ((ret = gen_connect(s, rt)) < 0) s 2815 libavformat/rtmpproto.c if ((ret = read_connect(s, s->priv_data)) < 0) s 2820 libavformat/rtmpproto.c ret = get_packet(s, 1); s 2851 libavformat/rtmpproto.c if ((ret = get_packet(s, 0)) < 0) s 2879 libavformat/rtmpproto.c s->max_packet_size = rt->stream->max_packet_size; s 2880 libavformat/rtmpproto.c s->is_streamed = 1; s 2888 libavformat/rtmpproto.c rtmp_close(s); s 2892 libavformat/rtmpproto.c static int rtmp_read(URLContext *s, uint8_t *buf, int size) s 2894 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 2913 libavformat/rtmpproto.c if ((ret = get_packet(s, 0)) < 0) s 2919 libavformat/rtmpproto.c static int64_t rtmp_seek(URLContext *s, int stream_index, int64_t timestamp, s 2922 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 2924 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, s 2927 libavformat/rtmpproto.c if ((ret = gen_seek(s, rt, timestamp)) < 0) { s 2928 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, s 2939 libavformat/rtmpproto.c static int rtmp_pause(URLContext *s, int pause) s 2941 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 2943 libavformat/rtmpproto.c av_log(s, AV_LOG_DEBUG, "Pause at timestamp %d\n", s 2945 libavformat/rtmpproto.c if ((ret = gen_pause(s, rt, pause, rt->last_timestamp)) < 0) { s 2946 libavformat/rtmpproto.c av_log(s, AV_LOG_ERROR, "Unable to send pause command at timestamp %d\n", s 2953 libavformat/rtmpproto.c static int rtmp_write(URLContext *s, const uint8_t *buf, int size) s 2955 libavformat/rtmpproto.c RTMPContext *rt = s->priv_data; s 3085 libavformat/rtmpproto.c if ((ret = rtmp_parse_result(s, rt, &rpkt)) < 0) s 173 libavformat/rtpdec.c static int rtcp_parse_packet(RTPDemuxContext *s, const unsigned char *buf, s 183 libavformat/rtpdec.c av_log(s->ic, AV_LOG_ERROR, "Invalid RTCP SR packet length\n"); s 187 libavformat/rtpdec.c s->last_rtcp_reception_time = av_gettime_relative(); s 188 libavformat/rtpdec.c s->last_rtcp_ntp_time = AV_RB64(buf + 8); s 189 libavformat/rtpdec.c s->last_rtcp_timestamp = AV_RB32(buf + 16); s 190 libavformat/rtpdec.c if (s->first_rtcp_ntp_time == AV_NOPTS_VALUE) { s 191 libavformat/rtpdec.c s->first_rtcp_ntp_time = s->last_rtcp_ntp_time; s 192 libavformat/rtpdec.c if (!s->base_timestamp) s 193 libavformat/rtpdec.c s->base_timestamp = s->last_rtcp_timestamp; s 194 libavformat/rtpdec.c s->rtcp_ts_offset = (int32_t)(s->last_rtcp_timestamp - s->base_timestamp); s 210 libavformat/rtpdec.c static void rtp_init_statistics(RTPStatistics *s, uint16_t base_sequence) s 212 libavformat/rtpdec.c memset(s, 0, sizeof(RTPStatistics)); s 213 libavformat/rtpdec.c s->max_seq = base_sequence; s 214 libavformat/rtpdec.c s->probation = 1; s 221 libavformat/rtpdec.c static void rtp_init_sequence(RTPStatistics *s, uint16_t seq) s 223 libavformat/rtpdec.c s->max_seq = seq; s 224 libavformat/rtpdec.c s->cycles = 0; s 225 libavformat/rtpdec.c s->base_seq = seq - 1; s 226 libavformat/rtpdec.c s->bad_seq = RTP_SEQ_MOD + 1; s 227 libavformat/rtpdec.c s->received = 0; s 228 libavformat/rtpdec.c s->expected_prior = 0; s 229 libavformat/rtpdec.c s->received_prior = 0; s 230 libavformat/rtpdec.c s->jitter = 0; s 231 libavformat/rtpdec.c s->transit = 0; s 235 libavformat/rtpdec.c static int rtp_valid_packet_in_sequence(RTPStatistics *s, uint16_t seq) s 237 libavformat/rtpdec.c uint16_t udelta = seq - s->max_seq; s 244 libavformat/rtpdec.c if (s->probation) { s 245 libavformat/rtpdec.c if (seq == s->max_seq + 1) { s 246 libavformat/rtpdec.c s->probation--; s 247 libavformat/rtpdec.c s->max_seq = seq; s 248 libavformat/rtpdec.c if (s->probation == 0) { s 249 libavformat/rtpdec.c rtp_init_sequence(s, seq); s 250 libavformat/rtpdec.c s->received++; s 254 libavformat/rtpdec.c s->probation = MIN_SEQUENTIAL - 1; s 255 libavformat/rtpdec.c s->max_seq = seq; s 259 libavformat/rtpdec.c if (seq < s->max_seq) { s 261 libavformat/rtpdec.c s->cycles += RTP_SEQ_MOD; s 263 libavformat/rtpdec.c s->max_seq = seq; s 266 libavformat/rtpdec.c if (seq == s->bad_seq) { s 269 libavformat/rtpdec.c rtp_init_sequence(s, seq); s 271 libavformat/rtpdec.c s->bad_seq = (seq + 1) & (RTP_SEQ_MOD - 1); s 277 libavformat/rtpdec.c s->received++; s 281 libavformat/rtpdec.c static void rtcp_update_jitter(RTPStatistics *s, uint32_t sent_timestamp, s 286 libavformat/rtpdec.c uint32_t prev_transit = s->transit; s 293 libavformat/rtpdec.c s->transit = transit; s 296 libavformat/rtpdec.c s->jitter += d - (int32_t) ((s->jitter + 8) >> 4); s 299 libavformat/rtpdec.c int ff_rtp_check_and_send_back_rr(RTPDemuxContext *s, URLContext *fd, s 306 libavformat/rtpdec.c RTPStatistics *stats = &s->statistics; s 320 libavformat/rtpdec.c s->octet_count += count; s 321 libavformat/rtpdec.c rtcp_bytes = ((s->octet_count - s->last_octet_count) * RTCP_TX_RATIO_NUM) / s 326 libavformat/rtpdec.c s->last_octet_count = s->octet_count; s 338 libavformat/rtpdec.c avio_wb32(pb, s->ssrc + 1); s 339 libavformat/rtpdec.c avio_wb32(pb, s->ssrc); // server SSRC s 362 libavformat/rtpdec.c if (s->last_rtcp_ntp_time == AV_NOPTS_VALUE) { s 366 libavformat/rtpdec.c uint32_t middle_32_bits = s->last_rtcp_ntp_time >> 16; // this is valid, right? do we need to handle 64 bit values special? s 367 libavformat/rtpdec.c uint32_t delay_since_last = av_rescale(av_gettime_relative() - s->last_rtcp_reception_time, s 377 libavformat/rtpdec.c len = strlen(s->hostname); s 379 libavformat/rtpdec.c avio_wb32(pb, s->ssrc + 1); s 382 libavformat/rtpdec.c avio_write(pb, s->hostname, len); s 394 libavformat/rtpdec.c av_log(s->ic, AV_LOG_TRACE, "sending %d bytes of RR\n", len); s 396 libavformat/rtpdec.c av_log(s->ic, AV_LOG_TRACE, "result from ffurl_write: %d\n", result); s 438 libavformat/rtpdec.c static int find_missing_packets(RTPDemuxContext *s, uint16_t *first_missing, s 442 libavformat/rtpdec.c uint16_t next_seq = s->seq + 1; s 443 libavformat/rtpdec.c RTPPacket *pkt = s->queue; s 468 libavformat/rtpdec.c int ff_rtp_send_rtcp_feedback(RTPDemuxContext *s, URLContext *fd, s 480 libavformat/rtpdec.c need_keyframe = s->handler && s->handler->need_keyframe && s 481 libavformat/rtpdec.c s->handler->need_keyframe(s->dynamic_protocol_context); s 482 libavformat/rtpdec.c missing_packets = find_missing_packets(s, &first_missing, &missing_mask); s 491 libavformat/rtpdec.c if (s->last_feedback_time && s 492 libavformat/rtpdec.c (now - s->last_feedback_time) < MIN_FEEDBACK_INTERVAL) s 494 libavformat/rtpdec.c s->last_feedback_time = now; s 506 libavformat/rtpdec.c avio_wb32(pb, s->ssrc + 1); s 507 libavformat/rtpdec.c avio_wb32(pb, s->ssrc); // server SSRC s 514 libavformat/rtpdec.c avio_wb32(pb, s->ssrc + 1); s 515 libavformat/rtpdec.c avio_wb32(pb, s->ssrc); // server SSRC s 539 libavformat/rtpdec.c RTPDemuxContext *s; s 541 libavformat/rtpdec.c s = av_mallocz(sizeof(RTPDemuxContext)); s 542 libavformat/rtpdec.c if (!s) s 544 libavformat/rtpdec.c s->payload_type = payload_type; s 545 libavformat/rtpdec.c s->last_rtcp_ntp_time = AV_NOPTS_VALUE; s 546 libavformat/rtpdec.c s->first_rtcp_ntp_time = AV_NOPTS_VALUE; s 547 libavformat/rtpdec.c s->ic = s1; s 548 libavformat/rtpdec.c s->st = st; s 549 libavformat/rtpdec.c s->queue_size = queue_size; s 551 libavformat/rtpdec.c av_log(s->ic, AV_LOG_VERBOSE, "setting jitter buffer size to %d\n", s 552 libavformat/rtpdec.c s->queue_size); s 554 libavformat/rtpdec.c rtp_init_statistics(&s->statistics, 0); s 568 libavformat/rtpdec.c gethostname(s->hostname, sizeof(s->hostname)); s 569 libavformat/rtpdec.c return s; s 572 libavformat/rtpdec.c void ff_rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, s 575 libavformat/rtpdec.c s->dynamic_protocol_context = ctx; s 576 libavformat/rtpdec.c s->handler = handler; s 579 libavformat/rtpdec.c void ff_rtp_parse_set_crypto(RTPDemuxContext *s, const char *suite, s 582 libavformat/rtpdec.c if (!ff_srtp_set_crypto(&s->srtp, suite, params)) s 583 libavformat/rtpdec.c s->srtp_enabled = 1; s 590 libavformat/rtpdec.c static void finalize_packet(RTPDemuxContext *s, AVPacket *pkt, uint32_t timestamp) s 597 libavformat/rtpdec.c if (s->last_rtcp_ntp_time != AV_NOPTS_VALUE && s->ic->nb_streams > 1) { s 602 libavformat/rtpdec.c delta_timestamp = timestamp - s->last_rtcp_timestamp; s 604 libavformat/rtpdec.c addend = av_rescale(s->last_rtcp_ntp_time - s->first_rtcp_ntp_time, s 605 libavformat/rtpdec.c s->st->time_base.den, s 606 libavformat/rtpdec.c (uint64_t) s->st->time_base.num << 32); s 607 libavformat/rtpdec.c pkt->pts = s->range_start_offset + s->rtcp_ts_offset + addend + s 612 libavformat/rtpdec.c if (!s->base_timestamp) s 613 libavformat/rtpdec.c s->base_timestamp = timestamp; s 616 libavformat/rtpdec.c if (!s->timestamp) s 617 libavformat/rtpdec.c s->unwrapped_timestamp += timestamp; s 619 libavformat/rtpdec.c s->unwrapped_timestamp += (int32_t)(timestamp - s->timestamp); s 620 libavformat/rtpdec.c s->timestamp = timestamp; s 621 libavformat/rtpdec.c pkt->pts = s->unwrapped_timestamp + s->range_start_offset - s 622 libavformat/rtpdec.c s->base_timestamp; s 625 libavformat/rtpdec.c static int rtp_parse_packet_internal(RTPDemuxContext *s, AVPacket *pkt, s 644 libavformat/rtpdec.c s->ssrc = ssrc; s 647 libavformat/rtpdec.c if (s->payload_type != payload_type) s 650 libavformat/rtpdec.c st = s->st; s 652 libavformat/rtpdec.c if (!rtp_valid_packet_in_sequence(&s->statistics, seq)) { s 653 libavformat/rtpdec.c av_log(s->ic, AV_LOG_ERROR, s 655 libavformat/rtpdec.c payload_type, seq, ((s->seq + 1) & 0xffff)); s 665 libavformat/rtpdec.c s->seq = seq; s 689 libavformat/rtpdec.c if (s->handler && s->handler->parse_packet) { s 690 libavformat/rtpdec.c rv = s->handler->parse_packet(s->ic, s->dynamic_protocol_context, s 691 libavformat/rtpdec.c s->st, pkt, ×tamp, buf, len, seq, s 703 libavformat/rtpdec.c finalize_packet(s, pkt, timestamp); s 708 libavformat/rtpdec.c void ff_rtp_reset_packet_queue(RTPDemuxContext *s) s 710 libavformat/rtpdec.c while (s->queue) { s 711 libavformat/rtpdec.c RTPPacket *next = s->queue->next; s 712 libavformat/rtpdec.c av_freep(&s->queue->buf); s 713 libavformat/rtpdec.c av_freep(&s->queue); s 714 libavformat/rtpdec.c s->queue = next; s 716 libavformat/rtpdec.c s->seq = 0; s 717 libavformat/rtpdec.c s->queue_len = 0; s 718 libavformat/rtpdec.c s->prev_ret = 0; s 721 libavformat/rtpdec.c static int enqueue_packet(RTPDemuxContext *s, uint8_t *buf, int len) s 724 libavformat/rtpdec.c RTPPacket **cur = &s->queue, *packet; s 743 libavformat/rtpdec.c s->queue_len++; s 748 libavformat/rtpdec.c static int has_next_packet(RTPDemuxContext *s) s 750 libavformat/rtpdec.c return s->queue && s->queue->seq == (uint16_t) (s->seq + 1); s 753 libavformat/rtpdec.c int64_t ff_rtp_queued_packet_time(RTPDemuxContext *s) s 755 libavformat/rtpdec.c return s->queue ? s->queue->recvtime : 0; s 758 libavformat/rtpdec.c static int rtp_parse_queued_packet(RTPDemuxContext *s, AVPacket *pkt) s 763 libavformat/rtpdec.c if (s->queue_len <= 0) s 766 libavformat/rtpdec.c if (!has_next_packet(s)) s 767 libavformat/rtpdec.c av_log(s->ic, AV_LOG_WARNING, s 768 libavformat/rtpdec.c "RTP: missed %d packets\n", s->queue->seq - s->seq - 1); s 771 libavformat/rtpdec.c rv = rtp_parse_packet_internal(s, pkt, s->queue->buf, s->queue->len); s 772 libavformat/rtpdec.c next = s->queue->next; s 773 libavformat/rtpdec.c av_freep(&s->queue->buf); s 774 libavformat/rtpdec.c av_freep(&s->queue); s 775 libavformat/rtpdec.c s->queue = next; s 776 libavformat/rtpdec.c s->queue_len--; s 780 libavformat/rtpdec.c static int rtp_parse_one_packet(RTPDemuxContext *s, AVPacket *pkt, s 792 libavformat/rtpdec.c if (s->prev_ret <= 0) s 793 libavformat/rtpdec.c return rtp_parse_queued_packet(s, pkt); s 795 libavformat/rtpdec.c if (s->handler && s->handler->parse_packet) { s 799 libavformat/rtpdec.c rv = s->handler->parse_packet(s->ic, s->dynamic_protocol_context, s 800 libavformat/rtpdec.c s->st, pkt, ×tamp, NULL, 0, 0, s 802 libavformat/rtpdec.c finalize_packet(s, pkt, timestamp); s 813 libavformat/rtpdec.c return rtcp_parse_packet(s, buf, len); s 816 libavformat/rtpdec.c if (s->st) { s 819 libavformat/rtpdec.c s->st->time_base); s 823 libavformat/rtpdec.c rtcp_update_jitter(&s->statistics, timestamp, arrival_ts); s 826 libavformat/rtpdec.c if ((s->seq == 0 && !s->queue) || s->queue_size <= 1) { s 828 libavformat/rtpdec.c return rtp_parse_packet_internal(s, pkt, buf, len); s 831 libavformat/rtpdec.c int16_t diff = seq - s->seq; s 834 libavformat/rtpdec.c av_log(s->ic, AV_LOG_WARNING, s 839 libavformat/rtpdec.c rv = rtp_parse_packet_internal(s, pkt, buf, len); s 843 libavformat/rtpdec.c rv = enqueue_packet(s, buf, len); s 849 libavformat/rtpdec.c if (s->queue_len >= s->queue_size) { s 850 libavformat/rtpdec.c av_log(s->ic, AV_LOG_WARNING, "jitter buffer full\n"); s 851 libavformat/rtpdec.c return rtp_parse_queued_packet(s, pkt); s 867 libavformat/rtpdec.c int ff_rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, s 871 libavformat/rtpdec.c if (s->srtp_enabled && bufptr && ff_srtp_decrypt(&s->srtp, *bufptr, &len) < 0) s 873 libavformat/rtpdec.c rv = rtp_parse_one_packet(s, pkt, bufptr, len); s 874 libavformat/rtpdec.c s->prev_ret = rv; s 875 libavformat/rtpdec.c while (rv < 0 && has_next_packet(s)) s 876 libavformat/rtpdec.c rv = rtp_parse_queued_packet(s, pkt); s 877 libavformat/rtpdec.c return rv ? rv : has_next_packet(s); s 880 libavformat/rtpdec.c void ff_rtp_parse_close(RTPDemuxContext *s) s 882 libavformat/rtpdec.c ff_rtp_reset_packet_queue(s); s 883 libavformat/rtpdec.c ff_srtp_free(&s->srtp); s 884 libavformat/rtpdec.c av_free(s); s 887 libavformat/rtpdec.c int ff_parse_fmtp(AVFormatContext *s, s 889 libavformat/rtpdec.c int (*parse_fmtp)(AVFormatContext *s, s 900 libavformat/rtpdec.c av_log(s, AV_LOG_ERROR, "Failed to allocate data for FMTP.\n"); s 915 libavformat/rtpdec.c res = parse_fmtp(s, stream, data, attr, value); s 45 libavformat/rtpdec.h void ff_rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx, s 47 libavformat/rtpdec.h void ff_rtp_parse_set_crypto(RTPDemuxContext *s, const char *suite, s 49 libavformat/rtpdec.h int ff_rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, s 51 libavformat/rtpdec.h void ff_rtp_parse_close(RTPDemuxContext *s); s 52 libavformat/rtpdec.h int64_t ff_rtp_queued_packet_time(RTPDemuxContext *s); s 53 libavformat/rtpdec.h void ff_rtp_reset_packet_queue(RTPDemuxContext *s); s 73 libavformat/rtpdec.h int ff_rtp_check_and_send_back_rr(RTPDemuxContext *s, URLContext *fd, s 75 libavformat/rtpdec.h int ff_rtp_send_rtcp_feedback(RTPDemuxContext *s, URLContext *fd, s 109 libavformat/rtpdec.h PayloadContext *s, s 126 libavformat/rtpdec.h int (*init)(AVFormatContext *s, int st_index, PayloadContext *priv_data); s 128 libavformat/rtpdec.h int (*parse_sdp_a_line)(AVFormatContext *s, int st_index, s 225 libavformat/rtpdec.h int ff_parse_fmtp(AVFormatContext *s, s 227 libavformat/rtpdec.h int (*parse_fmtp)(AVFormatContext *s, s 41 libavformat/rtpdec_amr.c static av_cold int amr_init(AVFormatContext *s, int st_index, PayloadContext *data) s 135 libavformat/rtpdec_amr.c static int amr_parse_fmtp(AVFormatContext *s, s 144 libavformat/rtpdec_amr.c av_log(s, AV_LOG_WARNING, "AMR fmtp attribute %s had " s 159 libavformat/rtpdec_amr.c static int amr_parse_sdp_line(AVFormatContext *s, int st_index, s 174 libavformat/rtpdec_amr.c ret = ff_parse_fmtp(s, s->streams[st_index], data, p, amr_parse_fmtp); s 177 libavformat/rtpdec_amr.c av_log(s, AV_LOG_ERROR, "Unsupported RTP/AMR configuration!\n"); s 100 libavformat/rtpdec_asf.c int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p) s 105 libavformat/rtpdec_asf.c RTSPState *rt = s->priv_data; s 116 libavformat/rtpdec_asf.c av_log(s, AV_LOG_ERROR, s 134 libavformat/rtpdec_asf.c if ((ret = ff_copy_whiteblacklists(rt->asf_ctx, s)) < 0) { s 145 libavformat/rtpdec_asf.c av_dict_copy(&s->metadata, rt->asf_ctx->metadata, 0); s 153 libavformat/rtpdec_asf.c static int asfrtp_parse_sdp_line(AVFormatContext *s, int stream_index, s 159 libavformat/rtpdec_asf.c RTSPState *rt = s->priv_data; s 161 libavformat/rtpdec_asf.c s->streams[stream_index]->id = strtol(line, NULL, 10); s 167 libavformat/rtpdec_asf.c if (s->streams[stream_index]->id == rt->asf_ctx->streams[i]->id) { s 168 libavformat/rtpdec_asf.c avcodec_parameters_copy(s->streams[stream_index]->codecpar, s 170 libavformat/rtpdec_asf.c s->streams[stream_index]->need_parsing = s 172 libavformat/rtpdec_asf.c avpriv_set_pts_info(s->streams[stream_index], 32, 1, 1000); s 191 libavformat/rtpdec_asf.c static int asfrtp_parse_packet(AVFormatContext *s, PayloadContext *asf, s 199 libavformat/rtpdec_asf.c RTSPState *rt = s->priv_data; s 284 libavformat/rtpdec_asf.c for (i = 0; i < s->nb_streams; i++) { s 285 libavformat/rtpdec_asf.c if (s->streams[i]->id == rt->asf_ctx->streams[pkt->stream_index]->id) { s 302 libavformat/rtpdec_asf.c #define RTP_ASF_HANDLER(n, s, t) \ s 304 libavformat/rtpdec_asf.c .enc_name = s, \ s 40 libavformat/rtpdec_dv.c static av_cold int dv_sdp_parse_fmtp_config(AVFormatContext *s, s 32 libavformat/rtpdec_formats.h int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p); s 38 libavformat/rtpdec_formats.h int ff_h264_parse_sprop_parameter_sets(AVFormatContext *s, s 26 libavformat/rtpdec_g726.c static av_cold int g726_ ## bitrate ##_init(AVFormatContext *s, int st_index, \ s 29 libavformat/rtpdec_g726.c AVStream *stream = s->streams[st_index]; \ s 67 libavformat/rtpdec_h264.c static void parse_profile_level_id(AVFormatContext *s, s 88 libavformat/rtpdec_h264.c av_log(s, AV_LOG_DEBUG, s 96 libavformat/rtpdec_h264.c int ff_h264_parse_sprop_parameter_sets(AVFormatContext *s, s 124 libavformat/rtpdec_h264.c av_log(s, AV_LOG_ERROR, s 144 libavformat/rtpdec_h264.c static int sdp_parse_fmtp_config_h264(AVFormatContext *s, s 152 libavformat/rtpdec_h264.c av_log(s, AV_LOG_DEBUG, "RTP Packetization Mode: %d\n", atoi(value)); s 162 libavformat/rtpdec_h264.c av_log(s, AV_LOG_ERROR, s 166 libavformat/rtpdec_h264.c parse_profile_level_id(s, h264_data, value); s 170 libavformat/rtpdec_h264.c av_log(s, AV_LOG_WARNING, "Missing PPS in sprop-parameter-sets, ignoring\n"); s 175 libavformat/rtpdec_h264.c ret = ff_h264_parse_sprop_parameter_sets(s, &par->extradata, s 177 libavformat/rtpdec_h264.c av_log(s, AV_LOG_DEBUG, "Extradata set to %p (size: %d)\n", s 389 libavformat/rtpdec_h264.c static int parse_h264_sdp_line(AVFormatContext *s, int st_index, s 398 libavformat/rtpdec_h264.c stream = s->streams[st_index]; s 403 libavformat/rtpdec_h264.c return ff_parse_fmtp(s, stream, h264_data, p, sdp_parse_fmtp_config_h264); s 49 libavformat/rtpdec_hevc.c static av_cold int hevc_sdp_parse_fmtp_config(AVFormatContext *s, s 58 libavformat/rtpdec_hevc.c av_log(s, AV_LOG_TRACE, "SDP: found profile-id: %d\n", hevc_data->profile_id); s 92 libavformat/rtpdec_hevc.c ff_h264_parse_sprop_parameter_sets(s, data_ptr, s 109 libavformat/rtpdec_hevc.c av_log(s, AV_LOG_TRACE, "Found sprop-max-don-diff in SDP, DON field usage is: %d\n", s 117 libavformat/rtpdec_hevc.c av_log(s, AV_LOG_TRACE, "Found sprop-depack-buf-nalus in SDP, DON field usage is: %d\n", s 26 libavformat/rtpdec_ilbc.c static int ilbc_parse_fmtp(AVFormatContext *s, s 40 libavformat/rtpdec_ilbc.c av_log(s, AV_LOG_ERROR, "Unsupported iLBC mode %d\n", mode); s 47 libavformat/rtpdec_ilbc.c static int ilbc_parse_sdp_line(AVFormatContext *s, int st_index, s 55 libavformat/rtpdec_ilbc.c st = s->streams[st_index]; s 58 libavformat/rtpdec_ilbc.c int ret = ff_parse_fmtp(s, st, data, p, ilbc_parse_fmtp); s 62 libavformat/rtpdec_ilbc.c av_log(s, AV_LOG_ERROR, "No iLBC mode set\n"); s 130 libavformat/rtpdec_latm.c static int parse_fmtp(AVFormatContext *s, s 143 libavformat/rtpdec_latm.c avpriv_request_sample(s, s 150 libavformat/rtpdec_latm.c static int latm_parse_sdp_line(AVFormatContext *s, int st_index, s 159 libavformat/rtpdec_latm.c return ff_parse_fmtp(s, s->streams[st_index], data, p, parse_fmtp); s 285 libavformat/rtpdec_mpeg4.c static int parse_fmtp(AVFormatContext *s, s 307 libavformat/rtpdec_mpeg4.c av_log(s, AV_LOG_ERROR, s 314 libavformat/rtpdec_mpeg4.c av_log(s, AV_LOG_ERROR, s 335 libavformat/rtpdec_mpeg4.c static int parse_sdp_line(AVFormatContext *s, int st_index, s 344 libavformat/rtpdec_mpeg4.c return ff_parse_fmtp(s, s->streams[st_index], data, p, parse_fmtp); s 239 libavformat/rtpdec_qdm2.c static int qdm2_parse_packet(AVFormatContext *s, PayloadContext *qdm, s 255 libavformat/rtpdec_qdm2.c av_log(s, AV_LOG_WARNING, s 42 libavformat/rtpdec_qt.c static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt, s 100 libavformat/rtpdec_qt.c avpriv_request_sample(s, "RTP-X-QT with payload description " s 130 libavformat/rtpdec_qt.c int nb_streams = s->nb_streams; s 134 libavformat/rtpdec_qt.c mc->fc = s; s 143 libavformat/rtpdec_qt.c s->nb_streams = st->index + 1; s 149 libavformat/rtpdec_qt.c s->nb_streams = nb_streams; s 164 libavformat/rtpdec_qt.c avpriv_request_sample(s, "RTP-X-QT with packet-specific info"); s 243 libavformat/rtpdec_qt.c #define RTP_QT_HANDLER(m, n, s, t) \ s 245 libavformat/rtpdec_qt.c .enc_name = s, \ s 76 libavformat/rtpdec_rfc4175.c static int rfc4175_parse_fmtp(AVFormatContext *s, AVStream *stream, s 92 libavformat/rtpdec_rfc4175.c static int rfc4175_parse_sdp_line(AVFormatContext *s, int st_index, s 101 libavformat/rtpdec_rfc4175.c AVStream *stream = s->streams[st_index]; s 102 libavformat/rtpdec_rfc4175.c int ret = ff_parse_fmtp(s, stream, data, p, rfc4175_parse_fmtp); s 43 libavformat/rtpdec_svq3.c static int svq3_parse_packet (AVFormatContext *s, PayloadContext *sv, s 263 libavformat/rtpdec_vp8.c static av_cold int vp8_init(AVFormatContext *s, int st_index, PayloadContext *vp8) s 224 libavformat/rtpdec_xiph.c parse_packed_headers(AVFormatContext *s, s 235 libavformat/rtpdec_xiph.c av_log(s, AV_LOG_ERROR, s 249 libavformat/rtpdec_xiph.c avpriv_report_missing_feature(s, "%u packed headers, %u headers", s 256 libavformat/rtpdec_xiph.c av_log(s, AV_LOG_ERROR, s 269 libavformat/rtpdec_xiph.c av_log(s, AV_LOG_ERROR, "Out of memory\n"); s 285 libavformat/rtpdec_xiph.c static int xiph_parse_fmtp_pair(AVFormatContext *s, s 301 libavformat/rtpdec_xiph.c av_log(s, AV_LOG_ERROR, s 337 libavformat/rtpdec_xiph.c (s, decoded_packet, decoded_packet + packet_size, par, s 340 libavformat/rtpdec_xiph.c av_log(s, AV_LOG_ERROR, s 345 libavformat/rtpdec_xiph.c av_log(s, AV_LOG_ERROR, "Packet too large\n"); s 353 libavformat/rtpdec_xiph.c static int xiph_parse_sdp_line(AVFormatContext *s, int st_index, s 362 libavformat/rtpdec_xiph.c return ff_parse_fmtp(s, s->streams[st_index], data, p, s 95 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 110 libavformat/rtpenc.c if (s->payload_type < 0) { s 115 libavformat/rtpenc.c s->payload_type = st->id; s 118 libavformat/rtpenc.c st->id = s->payload_type; s 121 libavformat/rtpenc.c s->base_timestamp = av_get_random_seed(); s 122 libavformat/rtpenc.c s->timestamp = s->base_timestamp; s 123 libavformat/rtpenc.c s->cur_timestamp = 0; s 124 libavformat/rtpenc.c if (!s->ssrc) s 125 libavformat/rtpenc.c s->ssrc = av_get_random_seed(); s 126 libavformat/rtpenc.c s->first_packet = 1; s 127 libavformat/rtpenc.c s->first_rtcp_ntp_time = ff_ntp_time(); s 130 libavformat/rtpenc.c s->first_rtcp_ntp_time = (s1->start_time_realtime / 1000) * 1000 + s 135 libavformat/rtpenc.c if (s->seq < 0) { s 137 libavformat/rtpenc.c s->seq = 0; s 139 libavformat/rtpenc.c s->seq = av_get_random_seed() & 0x0fff; s 141 libavformat/rtpenc.c s->seq &= 0xffff; // Use the given parameter, wrapped to the right interval s 153 libavformat/rtpenc.c s->buf = av_malloc(s1->packet_size); s 154 libavformat/rtpenc.c if (!s->buf) { s 157 libavformat/rtpenc.c s->max_payload_size = s1->packet_size - 12; s 164 libavformat/rtpenc.c s->buf_ptr = s->buf; s 168 libavformat/rtpenc.c s->buf_ptr = s->buf + 4; s 175 libavformat/rtpenc.c n = s->max_payload_size / TS_PACKET_SIZE; s 178 libavformat/rtpenc.c s->max_payload_size = n * TS_PACKET_SIZE; s 182 libavformat/rtpenc.c av_log(s, AV_LOG_ERROR, s 193 libavformat/rtpenc.c av_log(s, AV_LOG_ERROR, s 205 libavformat/rtpenc.c s->nal_length_size = (st->codecpar->extradata[4] & 0x03) + 1; s 214 libavformat/rtpenc.c s->nal_length_size = (st->codecpar->extradata[21] & 0x03) + 1; s 219 libavformat/rtpenc.c av_log(s, AV_LOG_ERROR, s 229 libavformat/rtpenc.c s->max_frames_per_packet = 15; s 251 libavformat/rtpenc.c s->max_frames_per_packet = s->max_payload_size / st->codecpar->block_align; s 255 libavformat/rtpenc.c s->max_frames_per_packet = 50; s 261 libavformat/rtpenc.c if (1 + s->max_frames_per_packet + n > s->max_payload_size) { s 271 libavformat/rtpenc.c s->max_frames_per_packet = 50; s 280 libavformat/rtpenc.c av_freep(&s->buf); s 287 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 290 libavformat/rtpenc.c av_log(s1, AV_LOG_TRACE, "RTCP: %02x %"PRIx64" %"PRIx32"\n", s->payload_type, ntp_time, s->timestamp); s 292 libavformat/rtpenc.c s->last_rtcp_ntp_time = ntp_time; s 293 libavformat/rtpenc.c rtp_ts = av_rescale_q(ntp_time - s->first_rtcp_ntp_time, (AVRational){1, 1000000}, s 294 libavformat/rtpenc.c s1->streams[0]->time_base) + s->base_timestamp; s 298 libavformat/rtpenc.c avio_wb32(s1->pb, s->ssrc); s 302 libavformat/rtpenc.c avio_wb32(s1->pb, s->packet_count); s 303 libavformat/rtpenc.c avio_wb32(s1->pb, s->octet_count); s 305 libavformat/rtpenc.c if (s->cname) { s 306 libavformat/rtpenc.c int len = FFMIN(strlen(s->cname), 255); s 311 libavformat/rtpenc.c avio_wb32(s1->pb, s->ssrc); s 314 libavformat/rtpenc.c avio_write(s1->pb, s->cname, len); s 324 libavformat/rtpenc.c avio_wb32(s1->pb, s->ssrc); s 334 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 340 libavformat/rtpenc.c avio_w8(s1->pb, (s->payload_type & 0x7f) | ((m & 0x01) << 7)); s 341 libavformat/rtpenc.c avio_wb16(s1->pb, s->seq); s 342 libavformat/rtpenc.c avio_wb32(s1->pb, s->timestamp); s 343 libavformat/rtpenc.c avio_wb32(s1->pb, s->ssrc); s 348 libavformat/rtpenc.c s->seq = (s->seq + 1) & 0xffff; s 349 libavformat/rtpenc.c s->octet_count += len; s 350 libavformat/rtpenc.c s->packet_count++; s 358 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 363 libavformat/rtpenc.c max_packet_size = (s->max_payload_size / aligned_samples_size) * aligned_samples_size; s 369 libavformat/rtpenc.c s->buf_ptr = s->buf; s 373 libavformat/rtpenc.c memcpy(s->buf_ptr, buf1, len); s 374 libavformat/rtpenc.c s->buf_ptr += len; s 377 libavformat/rtpenc.c s->timestamp = s->cur_timestamp + n * 8 / sample_size_bits; s 378 libavformat/rtpenc.c ff_rtp_send_data(s1, s->buf, s->buf_ptr - s->buf, 0); s 379 libavformat/rtpenc.c n += (s->buf_ptr - s->buf); s 387 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 390 libavformat/rtpenc.c max_packet_size = s->max_payload_size; s 393 libavformat/rtpenc.c len = (s->buf_ptr - s->buf); s 396 libavformat/rtpenc.c ff_rtp_send_data(s1, s->buf, s->buf_ptr - s->buf, 0); s 397 libavformat/rtpenc.c s->buf_ptr = s->buf + 4; s 400 libavformat/rtpenc.c if (s->buf_ptr == s->buf + 4) { s 401 libavformat/rtpenc.c s->timestamp = s->cur_timestamp; s 413 libavformat/rtpenc.c s->buf[0] = 0; s 414 libavformat/rtpenc.c s->buf[1] = 0; s 415 libavformat/rtpenc.c s->buf[2] = count >> 8; s 416 libavformat/rtpenc.c s->buf[3] = count; s 417 libavformat/rtpenc.c memcpy(s->buf + 4, buf1, len); s 418 libavformat/rtpenc.c ff_rtp_send_data(s1, s->buf, len + 4, 0); s 424 libavformat/rtpenc.c if (s->buf_ptr == s->buf + 4) { s 426 libavformat/rtpenc.c s->buf[0] = 0; s 427 libavformat/rtpenc.c s->buf[1] = 0; s 428 libavformat/rtpenc.c s->buf[2] = 0; s 429 libavformat/rtpenc.c s->buf[3] = 0; s 431 libavformat/rtpenc.c memcpy(s->buf_ptr, buf1, size); s 432 libavformat/rtpenc.c s->buf_ptr += size; s 439 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 442 libavformat/rtpenc.c max_packet_size = s->max_payload_size; s 449 libavformat/rtpenc.c s->timestamp = s->cur_timestamp; s 461 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 464 libavformat/rtpenc.c s->timestamp = s->cur_timestamp; s 466 libavformat/rtpenc.c len = s->max_payload_size - (s->buf_ptr - s->buf); s 469 libavformat/rtpenc.c memcpy(s->buf_ptr, buf1, len); s 472 libavformat/rtpenc.c s->buf_ptr += len; s 474 libavformat/rtpenc.c out_len = s->buf_ptr - s->buf; s 475 libavformat/rtpenc.c if (out_len >= s->max_payload_size) { s 476 libavformat/rtpenc.c ff_rtp_send_data(s1, s->buf, out_len, 0); s 477 libavformat/rtpenc.c s->buf_ptr = s->buf; s 484 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 491 libavformat/rtpenc.c if (s->num_frames > 0 && s 492 libavformat/rtpenc.c av_compare_ts(s->cur_timestamp - s->timestamp, st->time_base, s 494 libavformat/rtpenc.c ff_rtp_send_data(s1, s->buf, s->buf_ptr - s->buf, 1); s 495 libavformat/rtpenc.c s->num_frames = 0; s 498 libavformat/rtpenc.c if (!s->num_frames) { s 499 libavformat/rtpenc.c s->buf_ptr = s->buf; s 500 libavformat/rtpenc.c s->timestamp = s->cur_timestamp; s 502 libavformat/rtpenc.c memcpy(s->buf_ptr, buf, frame_size); s 504 libavformat/rtpenc.c s->num_frames++; s 505 libavformat/rtpenc.c s->buf_ptr += frame_size; s 507 libavformat/rtpenc.c s->cur_timestamp += frame_duration; s 509 libavformat/rtpenc.c if (s->num_frames == s->max_frames_per_packet) { s 510 libavformat/rtpenc.c ff_rtp_send_data(s1, s->buf, s->buf_ptr - s->buf, 1); s 511 libavformat/rtpenc.c s->num_frames = 0; s 519 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 526 libavformat/rtpenc.c rtcp_bytes = ((s->octet_count - s->last_octet_count) * RTCP_TX_RATIO_NUM) / s 528 libavformat/rtpenc.c if ((s->first_packet || ((rtcp_bytes >= RTCP_SR_SIZE) && s 529 libavformat/rtpenc.c (ff_ntp_time() - s->last_rtcp_ntp_time > 5000000))) && s 530 libavformat/rtpenc.c !(s->flags & FF_RTP_FLAG_SKIP_RTCP)) { s 532 libavformat/rtpenc.c s->last_octet_count = s->octet_count; s 533 libavformat/rtpenc.c s->first_packet = 0; s 535 libavformat/rtpenc.c s->cur_timestamp = s->base_timestamp + pkt->pts; s 569 libavformat/rtpenc.c if (s->flags & FF_RTP_FLAG_MP4A_LATM) s 591 libavformat/rtpenc.c if (s->flags & FF_RTP_FLAG_RFC2190) { s 623 libavformat/rtpenc.c if (size > s->max_payload_size) { s 626 libavformat/rtpenc.c size, s->max_payload_size); s 640 libavformat/rtpenc.c RTPMuxContext *s = s1->priv_data; s 644 libavformat/rtpenc.c if (s1->pb && (s->flags & FF_RTP_FLAG_SEND_BYE)) s 646 libavformat/rtpenc.c av_freep(&s->buf); s 29 libavformat/rtpenc_aac.c RTPMuxContext *s = s1->priv_data; s 31 libavformat/rtpenc_aac.c const int max_au_headers_size = 2 + 2 * s->max_frames_per_packet; s 32 libavformat/rtpenc_aac.c int len, max_packet_size = s->max_payload_size - max_au_headers_size; s 42 libavformat/rtpenc_aac.c len = (s->buf_ptr - s->buf); s 43 libavformat/rtpenc_aac.c if (s->num_frames && s 44 libavformat/rtpenc_aac.c (s->num_frames == s->max_frames_per_packet || s 45 libavformat/rtpenc_aac.c (len + size) > s->max_payload_size || s 46 libavformat/rtpenc_aac.c av_compare_ts(s->cur_timestamp - s->timestamp, st->time_base, s 48 libavformat/rtpenc_aac.c int au_size = s->num_frames * 2; s 50 libavformat/rtpenc_aac.c p = s->buf + max_au_headers_size - au_size - 2; s 51 libavformat/rtpenc_aac.c if (p != s->buf) { s 52 libavformat/rtpenc_aac.c memmove(p + 2, s->buf + 2, au_size); s 57 libavformat/rtpenc_aac.c ff_rtp_send_data(s1, p, s->buf_ptr - p, 1); s 59 libavformat/rtpenc_aac.c s->num_frames = 0; s 61 libavformat/rtpenc_aac.c if (s->num_frames == 0) { s 62 libavformat/rtpenc_aac.c s->buf_ptr = s->buf + max_au_headers_size; s 63 libavformat/rtpenc_aac.c s->timestamp = s->cur_timestamp; s 67 libavformat/rtpenc_aac.c p = s->buf + s->num_frames++ * 2 + 2; s 69 libavformat/rtpenc_aac.c memcpy(s->buf_ptr, buff, size); s 70 libavformat/rtpenc_aac.c s->buf_ptr += size; s 74 libavformat/rtpenc_aac.c max_packet_size = s->max_payload_size - 4; s 75 libavformat/rtpenc_aac.c p = s->buf; s 32 libavformat/rtpenc_amr.c RTPMuxContext *s = s1->priv_data; s 34 libavformat/rtpenc_amr.c int max_header_toc_size = 1 + s->max_frames_per_packet; s 39 libavformat/rtpenc_amr.c len = s->buf_ptr - s->buf; s 40 libavformat/rtpenc_amr.c if (s->num_frames && s 41 libavformat/rtpenc_amr.c (s->num_frames == s->max_frames_per_packet || s 42 libavformat/rtpenc_amr.c len + size - 1 > s->max_payload_size || s 43 libavformat/rtpenc_amr.c av_compare_ts(s->cur_timestamp - s->timestamp, st->time_base, s 45 libavformat/rtpenc_amr.c int header_size = s->num_frames + 1; s 46 libavformat/rtpenc_amr.c p = s->buf + max_header_toc_size - header_size; s 47 libavformat/rtpenc_amr.c if (p != s->buf) s 48 libavformat/rtpenc_amr.c memmove(p, s->buf, header_size); s 50 libavformat/rtpenc_amr.c ff_rtp_send_data(s1, p, s->buf_ptr - p, 1); s 52 libavformat/rtpenc_amr.c s->num_frames = 0; s 55 libavformat/rtpenc_amr.c if (!s->num_frames) { s 56 libavformat/rtpenc_amr.c s->buf[0] = 0xf0; s 57 libavformat/rtpenc_amr.c s->buf_ptr = s->buf + max_header_toc_size; s 58 libavformat/rtpenc_amr.c s->timestamp = s->cur_timestamp; s 61 libavformat/rtpenc_amr.c s->buf[1 + s->num_frames - 1] |= 0x80; s 65 libavformat/rtpenc_amr.c s->buf[1 + s->num_frames++] = buff[0] & 0x7C; s 68 libavformat/rtpenc_amr.c memcpy(s->buf_ptr, buff, size); s 69 libavformat/rtpenc_amr.c s->buf_ptr += size; s 28 libavformat/rtpenc_chain.c int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s, s 56 libavformat/rtpenc_chain.c rtpctx->interrupt_callback = s->interrupt_callback; s 58 libavformat/rtpenc_chain.c rtpctx->max_delay = s->max_delay; s 61 libavformat/rtpenc_chain.c rtpctx->flags |= s->flags & AVFMT_FLAG_BITEXACT; s 62 libavformat/rtpenc_chain.c rtpctx->strict_std_compliance = s->strict_std_compliance; s 67 libavformat/rtpenc_chain.c ff_rtp_get_payload_type(s, st->codecpar, idx); s 72 libavformat/rtpenc_chain.c if (av_opt_get(s, "rtpflags", AV_OPT_SEARCH_CHILDREN, &rtpflags) >= 0) s 76 libavformat/rtpenc_chain.c rtpctx->start_time_realtime = s->start_time_realtime; s 28 libavformat/rtpenc_chain.h int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s, s 45 libavformat/rtpenc_h263.c RTPMuxContext *s = s1->priv_data; s 49 libavformat/rtpenc_h263.c max_packet_size = s->max_payload_size; s 52 libavformat/rtpenc_h263.c q = s->buf; s 75 libavformat/rtpenc_h263.c s->timestamp = s->cur_timestamp; s 76 libavformat/rtpenc_h263.c ff_rtp_send_data(s1, s->buf, q - s->buf, (len == size)); s 31 libavformat/rtpenc_h263_rfc2190.c int s; s 47 libavformat/rtpenc_h263_rfc2190.c RTPMuxContext *s = s1->priv_data; s 50 libavformat/rtpenc_h263_rfc2190.c init_put_bits(&pb, s->buf, 32); s 58 libavformat/rtpenc_h263_rfc2190.c put_bits(&pb, 1, info->s); /* S - syntax-baesd arithmetic coding */ s 65 libavformat/rtpenc_h263_rfc2190.c memcpy(s->buf + 4, buf, len); s 67 libavformat/rtpenc_h263_rfc2190.c ff_rtp_send_data(s1, s->buf, len + 4, m); s 74 libavformat/rtpenc_h263_rfc2190.c RTPMuxContext *s = s1->priv_data; s 77 libavformat/rtpenc_h263_rfc2190.c init_put_bits(&pb, s->buf, 64); s 89 libavformat/rtpenc_h263_rfc2190.c put_bits(&pb, 1, info->s); /* S - syntax-baesd arithmetic coding */ s 96 libavformat/rtpenc_h263_rfc2190.c memcpy(s->buf + 8, buf, len); s 98 libavformat/rtpenc_h263_rfc2190.c ff_rtp_send_data(s1, s->buf, len + 8, m); s 104 libavformat/rtpenc_h263_rfc2190.c RTPMuxContext *s = s1->priv_data; s 112 libavformat/rtpenc_h263_rfc2190.c s->timestamp = s->cur_timestamp; s 122 libavformat/rtpenc_h263_rfc2190.c info.s = get_bits(&gb, 1); s 129 libavformat/rtpenc_h263_rfc2190.c len = FFMIN(s->max_payload_size - 8, size); s 136 libavformat/rtpenc_h263_rfc2190.c if (len == s->max_payload_size - 8) { s 173 libavformat/rtpenc_h263_rfc2190.c s->max_payload_size - 8); s 38 libavformat/rtpenc_h264_hevc.c RTPMuxContext *s = s1->priv_data; s 39 libavformat/rtpenc_h264_hevc.c if (s->buf_ptr != s->buf) { s 42 libavformat/rtpenc_h264_hevc.c if (s->buffered_nals == 1) { s 45 libavformat/rtpenc_h264_hevc.c ff_rtp_send_data(s1, s->buf + 3, s->buf_ptr - s->buf - 3, last); s 47 libavformat/rtpenc_h264_hevc.c ff_rtp_send_data(s1, s->buf + 4, s->buf_ptr - s->buf - 4, last); s 49 libavformat/rtpenc_h264_hevc.c ff_rtp_send_data(s1, s->buf, s->buf_ptr - s->buf, last); s 51 libavformat/rtpenc_h264_hevc.c s->buf_ptr = s->buf; s 52 libavformat/rtpenc_h264_hevc.c s->buffered_nals = 0; s 57 libavformat/rtpenc_h264_hevc.c RTPMuxContext *s = s1->priv_data; s 61 libavformat/rtpenc_h264_hevc.c if (size <= s->max_payload_size) { s 62 libavformat/rtpenc_h264_hevc.c int buffered_size = s->buf_ptr - s->buf; s 68 libavformat/rtpenc_h264_hevc.c skip_aggregate = s->flags & FF_RTP_FLAG_H264_MODE0; s 74 libavformat/rtpenc_h264_hevc.c if (buffered_size + 2 + size > s->max_payload_size) { s 82 libavformat/rtpenc_h264_hevc.c if (buffered_size + 2 + header_size + size <= s->max_payload_size && s 86 libavformat/rtpenc_h264_hevc.c *s->buf_ptr++ = 24; s 88 libavformat/rtpenc_h264_hevc.c *s->buf_ptr++ = 48 << 1; s 89 libavformat/rtpenc_h264_hevc.c *s->buf_ptr++ = 1; s 92 libavformat/rtpenc_h264_hevc.c AV_WB16(s->buf_ptr, size); s 93 libavformat/rtpenc_h264_hevc.c s->buf_ptr += 2; s 94 libavformat/rtpenc_h264_hevc.c memcpy(s->buf_ptr, buf, size); s 95 libavformat/rtpenc_h264_hevc.c s->buf_ptr += size; s 96 libavformat/rtpenc_h264_hevc.c s->buffered_nals++; s 104 libavformat/rtpenc_h264_hevc.c if (codec == AV_CODEC_ID_H264 && (s->flags & FF_RTP_FLAG_H264_MODE0)) { s 107 libavformat/rtpenc_h264_hevc.c s->max_payload_size, s->max_payload_size); s 110 libavformat/rtpenc_h264_hevc.c av_log(s1, AV_LOG_DEBUG, "NAL size %d > %d\n", size, s->max_payload_size); s 115 libavformat/rtpenc_h264_hevc.c s->buf[0] = 28; /* FU Indicator; Type = 28 ---> FU-A */ s 116 libavformat/rtpenc_h264_hevc.c s->buf[0] |= nri; s 117 libavformat/rtpenc_h264_hevc.c s->buf[1] = type; s 118 libavformat/rtpenc_h264_hevc.c s->buf[1] |= 1 << 7; s 140 libavformat/rtpenc_h264_hevc.c s->buf[0] = 49 << 1; s 141 libavformat/rtpenc_h264_hevc.c s->buf[1] = 1; s 155 libavformat/rtpenc_h264_hevc.c s->buf[2] = nal_type; s 157 libavformat/rtpenc_h264_hevc.c s->buf[2] |= 1 << 7; s 167 libavformat/rtpenc_h264_hevc.c while (size + header_size > s->max_payload_size) { s 168 libavformat/rtpenc_h264_hevc.c memcpy(&s->buf[header_size], buf, s->max_payload_size - header_size); s 169 libavformat/rtpenc_h264_hevc.c ff_rtp_send_data(s1, s->buf, s->max_payload_size, 0); s 170 libavformat/rtpenc_h264_hevc.c buf += s->max_payload_size - header_size; s 171 libavformat/rtpenc_h264_hevc.c size -= s->max_payload_size - header_size; s 172 libavformat/rtpenc_h264_hevc.c s->buf[flag_byte] &= ~(1 << 7); s 174 libavformat/rtpenc_h264_hevc.c s->buf[flag_byte] |= 1 << 6; s 175 libavformat/rtpenc_h264_hevc.c memcpy(&s->buf[header_size], buf, size); s 176 libavformat/rtpenc_h264_hevc.c ff_rtp_send_data(s1, s->buf, size + header_size, last); s 183 libavformat/rtpenc_h264_hevc.c RTPMuxContext *s = s1->priv_data; s 185 libavformat/rtpenc_h264_hevc.c s->timestamp = s->cur_timestamp; s 186 libavformat/rtpenc_h264_hevc.c s->buf_ptr = s->buf; s 187 libavformat/rtpenc_h264_hevc.c if (s->nal_length_size) s 188 libavformat/rtpenc_h264_hevc.c r = ff_avc_mp4_find_startcode(buf1, end, s->nal_length_size) ? buf1 : end; s 194 libavformat/rtpenc_h264_hevc.c if (s->nal_length_size) { s 195 libavformat/rtpenc_h264_hevc.c r1 = ff_avc_mp4_find_startcode(r, end, s->nal_length_size); s 198 libavformat/rtpenc_h264_hevc.c r += s->nal_length_size; s 30 libavformat/rtpenc_jpeg.c RTPMuxContext *s = s1->priv_data; s 41 libavformat/rtpenc_jpeg.c s->buf_ptr = s->buf; s 42 libavformat/rtpenc_jpeg.c s->timestamp = s->cur_timestamp; s 188 libavformat/rtpenc_jpeg.c p = s->buf_ptr; s 196 libavformat/rtpenc_jpeg.c len = FFMIN(size, s->max_payload_size - hdr_size); s 220 libavformat/rtpenc_jpeg.c ff_rtp_send_data(s1, s->buf, len + hdr_size, size == len); s 225 libavformat/rtpenc_jpeg.c p = s->buf; s 31 libavformat/rtpenc_latm.c RTPMuxContext *s = s1->priv_data; s 44 libavformat/rtpenc_latm.c memset(s->buf, 0xFF, header_size - 1); s 45 libavformat/rtpenc_latm.c s->buf[header_size - 1] = size % 0xFF; s 47 libavformat/rtpenc_latm.c s->timestamp = s->cur_timestamp; s 51 libavformat/rtpenc_latm.c len = FFMIN(size, s->max_payload_size - (!offset ? header_size : 0)); s 54 libavformat/rtpenc_latm.c memcpy(s->buf + header_size, buff, len); s 55 libavformat/rtpenc_latm.c ff_rtp_send_data(s1, s->buf, header_size + len, !size); s 31 libavformat/rtpenc_mpegts.c static int rtp_mpegts_write_close(AVFormatContext *s) s 33 libavformat/rtpenc_mpegts.c struct MuxChain *chain = s->priv_data; s 47 libavformat/rtpenc_mpegts.c static int rtp_mpegts_write_header(AVFormatContext *s) s 49 libavformat/rtpenc_mpegts.c struct MuxChain *chain = s->priv_data; s 62 libavformat/rtpenc_mpegts.c mpegts_ctx->max_delay = s->max_delay; s 63 libavformat/rtpenc_mpegts.c av_dict_copy(&mpegts_ctx->metadata, s->metadata, 0); s 64 libavformat/rtpenc_mpegts.c for (i = 0; i < s->nb_streams; i++) { s 68 libavformat/rtpenc_mpegts.c st->time_base = s->streams[i]->time_base; s 69 libavformat/rtpenc_mpegts.c st->sample_aspect_ratio = s->streams[i]->sample_aspect_ratio; s 70 libavformat/rtpenc_mpegts.c avcodec_parameters_copy(st->codecpar, s->streams[i]->codecpar); s 76 libavformat/rtpenc_mpegts.c for (i = 0; i < s->nb_streams; i++) s 77 libavformat/rtpenc_mpegts.c s->streams[i]->time_base = mpegts_ctx->streams[i]->time_base; s 96 libavformat/rtpenc_mpegts.c rtp_ctx->pb = s->pb; s 110 libavformat/rtpenc_mpegts.c rtp_mpegts_write_close(s); s 114 libavformat/rtpenc_mpegts.c static int rtp_mpegts_write_packet(AVFormatContext *s, AVPacket *pkt) s 116 libavformat/rtpenc_mpegts.c struct MuxChain *chain = s->priv_data; s 139 libavformat/rtpenc_mpegts.c s->streams[pkt->stream_index]->time_base, s 143 libavformat/rtpenc_mpegts.c s->streams[pkt->stream_index]->time_base, s 31 libavformat/rtpenc_mpv.c RTPMuxContext *s = s1->priv_data; s 37 libavformat/rtpenc_mpv.c max_packet_size = s->max_payload_size; s 99 libavformat/rtpenc_mpv.c q = s->buf; s 109 libavformat/rtpenc_mpv.c s->timestamp = s->cur_timestamp; s 110 libavformat/rtpenc_mpv.c ff_rtp_send_data(s1, s->buf, q - s->buf, (len == size)); s 28 libavformat/rtpenc_vp8.c RTPMuxContext *s = s1->priv_data; s 31 libavformat/rtpenc_vp8.c s->buf_ptr = s->buf; s 32 libavformat/rtpenc_vp8.c s->timestamp = s->cur_timestamp; s 36 libavformat/rtpenc_vp8.c *s->buf_ptr++ = 0x90; s 37 libavformat/rtpenc_vp8.c *s->buf_ptr++ = 0x80; // Picture id present s 38 libavformat/rtpenc_vp8.c *s->buf_ptr++ = s->frame_count++ & 0x7f; s 40 libavformat/rtpenc_vp8.c header_size = s->buf_ptr - s->buf; s 41 libavformat/rtpenc_vp8.c max_packet_size = s->max_payload_size - header_size; s 46 libavformat/rtpenc_vp8.c memcpy(s->buf_ptr, buf, len); s 48 libavformat/rtpenc_vp8.c ff_rtp_send_data(s1, s->buf, len + header_size, size == len); s 53 libavformat/rtpenc_vp8.c s->buf[0] &= ~0x10; s 35 libavformat/rtpenc_xiph.c RTPMuxContext *s = s1->priv_data; s 40 libavformat/rtpenc_xiph.c max_pkt_size = s->max_payload_size - 6; // ident+frag+tdt/vdt+pkt_num+pkt_length s 62 libavformat/rtpenc_xiph.c q = s->buf; s 75 libavformat/rtpenc_xiph.c uint8_t *end_ptr = s->buf + 6 + max_pkt_size; // what we're allowed to write s 76 libavformat/rtpenc_xiph.c uint8_t *ptr = s->buf_ptr + 2 + size; // what we're going to write s 79 libavformat/rtpenc_xiph.c av_assert1(s->num_frames <= s->max_frames_per_packet); s 80 libavformat/rtpenc_xiph.c if (s->num_frames > 0 && s 82 libavformat/rtpenc_xiph.c s->num_frames == s->max_frames_per_packet || s 83 libavformat/rtpenc_xiph.c av_compare_ts(s->cur_timestamp - s->timestamp, st->time_base, s 86 libavformat/rtpenc_xiph.c ff_rtp_send_data(s1, s->buf, s->buf_ptr - s->buf, 0); s 87 libavformat/rtpenc_xiph.c s->num_frames = 0; s 91 libavformat/rtpenc_xiph.c if (0 == s->num_frames) s 92 libavformat/rtpenc_xiph.c s->timestamp = s->cur_timestamp; s 93 libavformat/rtpenc_xiph.c s->num_frames++; s 97 libavformat/rtpenc_xiph.c *q++ = s->num_frames; s 99 libavformat/rtpenc_xiph.c if (s->num_frames > 1) s 100 libavformat/rtpenc_xiph.c q = s->buf_ptr; // jump ahead if needed s 105 libavformat/rtpenc_xiph.c s->buf_ptr = q; s 108 libavformat/rtpenc_xiph.c } else if (s->num_frames) { s 111 libavformat/rtpenc_xiph.c ff_rtp_send_data(s1, s->buf, s->buf_ptr - s->buf, 0); s 114 libavformat/rtpenc_xiph.c s->timestamp = s->cur_timestamp; s 115 libavformat/rtpenc_xiph.c s->num_frames = 0; s 116 libavformat/rtpenc_xiph.c s->buf_ptr = q; s 119 libavformat/rtpenc_xiph.c q = s->buf_ptr; s 131 libavformat/rtpenc_xiph.c ff_rtp_send_data(s1, s->buf, q - s->buf, 0); s 103 libavformat/rtpproto.c RTPContext *s = h->priv_data; s 123 libavformat/rtpproto.c ff_udp_set_remote_url(s->rtp_hd, buf); s 126 libavformat/rtpproto.c ff_udp_set_remote_url(s->rtcp_hd, buf); s 171 libavformat/rtpproto.c static void build_udp_url(RTPContext *s, s 181 libavformat/rtpproto.c if (s->ttl >= 0) s 182 libavformat/rtpproto.c url_add_option(buf, buf_size, "ttl=%d", s->ttl); s 183 libavformat/rtpproto.c if (s->buffer_size >= 0) s 184 libavformat/rtpproto.c url_add_option(buf, buf_size, "buffer_size=%d", s->buffer_size); s 185 libavformat/rtpproto.c if (s->pkt_size >= 0) s 186 libavformat/rtpproto.c url_add_option(buf, buf_size, "pkt_size=%d", s->pkt_size); s 187 libavformat/rtpproto.c if (s->connect) s 189 libavformat/rtpproto.c if (s->dscp >= 0) s 190 libavformat/rtpproto.c url_add_option(buf, buf_size, "dscp=%d", s->dscp); s 221 libavformat/rtpproto.c RTPContext *s = h->priv_data; s 236 libavformat/rtpproto.c if (s->rtcp_port < 0) s 237 libavformat/rtpproto.c s->rtcp_port = rtp_port + 1; s 242 libavformat/rtpproto.c s->ttl = strtol(buf, NULL, 10); s 245 libavformat/rtpproto.c s->rtcp_port = strtol(buf, NULL, 10); s 248 libavformat/rtpproto.c s->local_rtpport = strtol(buf, NULL, 10); s 251 libavformat/rtpproto.c s->local_rtpport = strtol(buf, NULL, 10); s 254 libavformat/rtpproto.c s->local_rtcpport = strtol(buf, NULL, 10); s 257 libavformat/rtpproto.c s->pkt_size = strtol(buf, NULL, 10); s 260 libavformat/rtpproto.c s->connect = strtol(buf, NULL, 10); s 263 libavformat/rtpproto.c s->write_to_source = strtol(buf, NULL, 10); s 266 libavformat/rtpproto.c s->dscp = strtol(buf, NULL, 10); s 270 libavformat/rtpproto.c ff_ip_parse_sources(h, buf, &s->filters); s 272 libavformat/rtpproto.c ff_ip_parse_sources(h, s->sources, &s->filters); s 273 libavformat/rtpproto.c sources = s->sources; s 277 libavformat/rtpproto.c ff_ip_parse_blocks(h, buf, &s->filters); s 279 libavformat/rtpproto.c ff_ip_parse_blocks(h, s->block, &s->filters); s 280 libavformat/rtpproto.c block = s->block; s 284 libavformat/rtpproto.c if (s->fec_options_str) { s 285 libavformat/rtpproto.c p = s->fec_options_str; s 296 libavformat/rtpproto.c p = s->fec_options_str + strlen(fec_protocol); s 303 libavformat/rtpproto.c if (s->ttl > 0) { s 304 libavformat/rtpproto.c av_dict_set_int(&fec_opts, "ttl", s->ttl, 0); s 309 libavformat/rtpproto.c build_udp_url(s, buf, sizeof(buf), s 310 libavformat/rtpproto.c hostname, rtp_port, s->local_rtpport, s 312 libavformat/rtpproto.c if (ffurl_open_whitelist(&s->rtp_hd, buf, flags, &h->interrupt_callback, s 315 libavformat/rtpproto.c s->local_rtpport = ff_udp_get_local_port(s->rtp_hd); s 316 libavformat/rtpproto.c if(s->local_rtpport == 65535) { s 317 libavformat/rtpproto.c s->local_rtpport = -1; s 321 libavformat/rtpproto.c if (s->local_rtcpport < 0) { s 322 libavformat/rtpproto.c s->local_rtcpport = s->local_rtpport + 1; s 323 libavformat/rtpproto.c build_udp_url(s, buf, sizeof(buf), s 324 libavformat/rtpproto.c hostname, s->rtcp_port, s->local_rtcpport, s 326 libavformat/rtpproto.c if (ffurl_open_whitelist(&s->rtcp_hd, buf, rtcpflags, s 329 libavformat/rtpproto.c s->local_rtpport = s->local_rtcpport = -1; s 334 libavformat/rtpproto.c build_udp_url(s, buf, sizeof(buf), s 335 libavformat/rtpproto.c hostname, s->rtcp_port, s->local_rtcpport, s 337 libavformat/rtpproto.c if (ffurl_open_whitelist(&s->rtcp_hd, buf, rtcpflags, &h->interrupt_callback, s 343 libavformat/rtpproto.c s->fec_hd = NULL; s 346 libavformat/rtpproto.c if (ffurl_open_whitelist(&s->fec_hd, buf, flags, &h->interrupt_callback, s 353 libavformat/rtpproto.c s->rtp_fd = ffurl_get_file_handle(s->rtp_hd); s 354 libavformat/rtpproto.c s->rtcp_fd = ffurl_get_file_handle(s->rtcp_hd); s 356 libavformat/rtpproto.c h->max_packet_size = s->rtp_hd->max_packet_size; s 365 libavformat/rtpproto.c ffurl_closep(&s->rtp_hd); s 366 libavformat/rtpproto.c ffurl_closep(&s->rtcp_hd); s 367 libavformat/rtpproto.c ffurl_closep(&s->fec_hd); s 375 libavformat/rtpproto.c RTPContext *s = h->priv_data; s 377 libavformat/rtpproto.c struct pollfd p[2] = {{s->rtp_fd, POLLIN, 0}, {s->rtcp_fd, POLLIN, 0}}; s 379 libavformat/rtpproto.c struct sockaddr_storage *addrs[2] = { &s->last_rtp_source, &s->last_rtcp_source }; s 380 libavformat/rtpproto.c socklen_t *addr_lens[2] = { &s->last_rtp_source_len, &s->last_rtcp_source_len }; s 400 libavformat/rtpproto.c if (ff_ip_check_source_lists(addrs[i], &s->filters)) s 416 libavformat/rtpproto.c RTPContext *s = h->priv_data; s 427 libavformat/rtpproto.c if (s->write_to_source) { s 431 libavformat/rtpproto.c if (!s->last_rtp_source.ss_family && !s->last_rtcp_source.ss_family) { s 439 libavformat/rtpproto.c fd = s->rtcp_fd; s 440 libavformat/rtpproto.c source = &s->last_rtcp_source; s 441 libavformat/rtpproto.c source_len = &s->last_rtcp_source_len; s 443 libavformat/rtpproto.c fd = s->rtp_fd; s 444 libavformat/rtpproto.c source = &s->last_rtp_source; s 445 libavformat/rtpproto.c source_len = &s->last_rtp_source_len; s 451 libavformat/rtpproto.c temp_source = s->last_rtp_source; s 452 libavformat/rtpproto.c temp_len = s->last_rtp_source_len; s 458 libavformat/rtpproto.c temp_source = s->last_rtcp_source; s 459 libavformat/rtpproto.c temp_len = s->last_rtcp_source_len; s 480 libavformat/rtpproto.c hd = s->rtcp_hd; s 483 libavformat/rtpproto.c hd = s->rtp_hd; s 490 libavformat/rtpproto.c if (s->fec_hd && !RTP_PT_IS_RTCP(buf[1])) { s 491 libavformat/rtpproto.c if ((ret_fec = ffurl_write(s->fec_hd, buf, size)) < 0) { s 502 libavformat/rtpproto.c RTPContext *s = h->priv_data; s 504 libavformat/rtpproto.c ff_ip_reset_filters(&s->filters); s 506 libavformat/rtpproto.c ffurl_closep(&s->rtp_hd); s 507 libavformat/rtpproto.c ffurl_closep(&s->rtcp_hd); s 508 libavformat/rtpproto.c ffurl_closep(&s->fec_hd); s 520 libavformat/rtpproto.c RTPContext *s = h->priv_data; s 521 libavformat/rtpproto.c return ff_udp_get_local_port(s->rtp_hd); s 532 libavformat/rtpproto.c RTPContext *s = h->priv_data; s 533 libavformat/rtpproto.c return s->rtp_fd; s 539 libavformat/rtpproto.c RTPContext *s = h->priv_data; s 543 libavformat/rtpproto.c hs[0] = s->rtp_fd; s 544 libavformat/rtpproto.c hs[1] = s->rtcp_fd; s 200 libavformat/rtsp.c static int get_sockaddr(AVFormatContext *s, s 208 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "getaddrinfo(%s): %s\n", s 237 libavformat/rtsp.c static void finalize_rtp_handler_init(AVFormatContext *s, RTSPStream *rtsp_st, s 241 libavformat/rtsp.c int ret = rtsp_st->dynamic_handler->init(s, st ? st->index : -1, s 257 libavformat/rtsp.c static int sdp_parse_rtpmap(AVFormatContext *s, s 300 libavformat/rtsp.c av_log(s, AV_LOG_DEBUG, "audio codec set to: %s\n", c_name); s 311 libavformat/rtsp.c av_log(s, AV_LOG_DEBUG, "audio samplerate set to: %i\n", s 313 libavformat/rtsp.c av_log(s, AV_LOG_DEBUG, "audio channels set to: %i\n", s 317 libavformat/rtsp.c av_log(s, AV_LOG_DEBUG, "video codec set to: %s\n", c_name); s 324 libavformat/rtsp.c finalize_rtp_handler_init(s, rtsp_st, st); s 376 libavformat/rtsp.c static void parse_fmtp(AVFormatContext *s, RTSPState *rt, s 386 libavformat/rtsp.c rtsp_st->dynamic_handler->parse_sdp_a_line(s, i, s 392 libavformat/rtsp.c static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, s 395 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 406 libavformat/rtsp.c av_log(s, AV_LOG_TRACE, "sdp: %c='%s'\n", letter, buf); s 420 libavformat/rtsp.c if (get_sockaddr(s, buf1, &sdp_ip)) s 428 libavformat/rtsp.c if (s->nb_streams == 0) { s 438 libavformat/rtsp.c av_dict_set(&s->metadata, "title", p, 0); s 441 libavformat/rtsp.c if (s->nb_streams == 0) { s 442 libavformat/rtsp.c av_dict_set(&s->metadata, "comment", p, 0); s 464 libavformat/rtsp.c rt->nb_rtsp_streams >= s->max_streams s 504 libavformat/rtsp.c rt->ts = avpriv_mpegts_parse_open(s); s 510 libavformat/rtsp.c finalize_rtp_handler_init(s, rtsp_st, NULL); s 517 libavformat/rtsp.c st = avformat_new_stream(s, NULL); s 534 libavformat/rtsp.c finalize_rtp_handler_init(s, rtsp_st, st); s 545 libavformat/rtsp.c if (s->nb_streams == 0) { s 568 libavformat/rtsp.c } else if (av_strstart(p, "rtpmap:", &p) && s->nb_streams > 0) { s 574 libavformat/rtsp.c st = s->streams[rtsp_st->stream_index]; s 575 libavformat/rtsp.c sdp_parse_rtpmap(s, st, rtsp_st, payload_type, p); s 579 libavformat/rtsp.c parse_fmtp(s, rt, payload_type, s1->delayed_fmtp); s 587 libavformat/rtsp.c parse_fmtp(s, rt, payload_type, buf); s 592 libavformat/rtsp.c } else if (av_strstart(p, "ssrc:", &p) && s->nb_streams > 0) { s 601 libavformat/rtsp.c s->start_time = start; s 603 libavformat/rtsp.c s->duration = (end == AV_NOPTS_VALUE) ? s 606 libavformat/rtsp.c if (s->nb_streams > 0) { s 610 libavformat/rtsp.c st = s->streams[rtsp_st->stream_index]; s 619 libavformat/rtsp.c s->nb_streams > 0) { s 620 libavformat/rtsp.c st = s->streams[s->nb_streams - 1]; s 622 libavformat/rtsp.c } else if (av_strstart(p, "crypto:", &p) && s->nb_streams > 0) { s 652 libavformat/rtsp.c if (s->nb_streams == 0) { s 659 libavformat/rtsp.c if (s->nb_streams == 0) { s 669 libavformat/rtsp.c ff_wms_parse_sdp_a_line(s, p); s 670 libavformat/rtsp.c if (s->nb_streams > 0) { s 674 libavformat/rtsp.c ff_real_parse_sdp_a_line(s, rtsp_st->stream_index, p); s 678 libavformat/rtsp.c rtsp_st->dynamic_handler->parse_sdp_a_line(s, s 687 libavformat/rtsp.c int ff_sdp_parse(AVFormatContext *s, const char *content) s 720 libavformat/rtsp.c sdp_parse_line(s, s1, letter, buf); s 739 libavformat/rtsp.c void ff_rtsp_undo_setup(AVFormatContext *s, int send_packets) s 741 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 749 libavformat/rtsp.c if (s->oformat) { s 754 libavformat/rtsp.c ff_rtsp_tcp_write_packet(s, rtsp_st); s 771 libavformat/rtsp.c void ff_rtsp_close_streams(AVFormatContext *s) s 773 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 777 libavformat/rtsp.c ff_rtsp_undo_setup(s, 0); s 807 libavformat/rtsp.c int ff_rtsp_open_transport_ctx(AVFormatContext *s, RTSPStream *rtsp_st) s 809 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 813 libavformat/rtsp.c if (rt->lower_transport == RTSP_LOWER_TRANSPORT_TCP || !s->max_delay) s 821 libavformat/rtsp.c st = s->streams[rtsp_st->stream_index]; s 823 libavformat/rtsp.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 825 libavformat/rtsp.c if (CONFIG_RTSP_MUXER && s->oformat && st) { s 827 libavformat/rtsp.c s, st, rtsp_st->rtp_handle, s 838 libavformat/rtsp.c rtsp_st->transport_priv = ff_rdt_parse_open(s, st->index, s 842 libavformat/rtsp.c rtsp_st->transport_priv = ff_rtp_parse_open(s, st, s 849 libavformat/rtsp.c s->iformat) { s 889 libavformat/rtsp.c static void rtsp_parse_transport(AVFormatContext *s, s 982 libavformat/rtsp.c get_sockaddr(s, buf, &th->destination); s 1069 libavformat/rtsp.c void ff_rtsp_parse_line(AVFormatContext *s, s 1087 libavformat/rtsp.c rtsp_parse_transport(s, reply, p); s 1132 libavformat/rtsp.c void ff_rtsp_skip_packet(AVFormatContext *s) s 1134 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 1143 libavformat/rtsp.c av_log(s, AV_LOG_TRACE, "skipping RTP packet len=%d\n", len); s 1157 libavformat/rtsp.c int ff_rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply, s 1161 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 1180 libavformat/rtsp.c av_log(s, AV_LOG_TRACE, "ret=%d c=%02x [%c]\n", ret, ch, ch); s 1189 libavformat/rtsp.c ff_rtsp_skip_packet(s); s 1197 libavformat/rtsp.c av_log(s, AV_LOG_TRACE, "line='%s'\n", buf); s 1216 libavformat/rtsp.c ff_rtsp_parse_line(s, reply, p, rt, method); s 1279 libavformat/rtsp.c av_log(s, AV_LOG_WARNING, "CSeq %d expected, %d received.\n", s 1310 libavformat/rtsp.c static int rtsp_send_cmd_with_content_async(AVFormatContext *s, s 1316 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 1352 libavformat/rtsp.c av_log(s, AV_LOG_TRACE, "Sending:\n%s--\n", buf); s 1357 libavformat/rtsp.c avpriv_report_missing_feature(s, "Tunneling of RTSP requests with content data"); s 1367 libavformat/rtsp.c int ff_rtsp_send_cmd_async(AVFormatContext *s, const char *method, s 1370 libavformat/rtsp.c return rtsp_send_cmd_with_content_async(s, method, url, headers, NULL, 0); s 1373 libavformat/rtsp.c int ff_rtsp_send_cmd(AVFormatContext *s, const char *method, const char *url, s 1377 libavformat/rtsp.c return ff_rtsp_send_cmd_with_content(s, method, url, headers, reply, s 1381 libavformat/rtsp.c int ff_rtsp_send_cmd_with_content(AVFormatContext *s, s 1389 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 1395 libavformat/rtsp.c if ((ret = rtsp_send_cmd_with_content_async(s, method, url, header, s 1400 libavformat/rtsp.c if ((ret = ff_rtsp_read_reply(s, reply, content_ptr, 0, method) ) < 0) s 1410 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "method %s failed: %d%s\n", s 1414 libavformat/rtsp.c av_log(s, AV_LOG_DEBUG, "%s\n", rt->last_reply); s 1420 libavformat/rtsp.c int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, s 1423 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 1492 libavformat/rtsp.c &s->interrupt_callback, &opts, s->protocol_whitelist, s->protocol_blacklist, NULL); s 1499 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "Unable to open an input RTP port\n"); s 1524 libavformat/rtsp.c s->streams[rtsp_st->stream_index]->codecpar->codec_type == s 1541 libavformat/rtsp.c if (s->oformat) { s 1560 libavformat/rtsp.c ff_rtsp_send_cmd(s, "SETUP", rtsp_st->control_url, cmd, reply, NULL); s 1585 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "Nonmatching transport in server reply\n"); s 1636 libavformat/rtsp.c &s->interrupt_callback, &opts, s->protocol_whitelist, s->protocol_blacklist, NULL); s 1647 libavformat/rtsp.c if ((err = ff_rtsp_open_transport_ctx(s, rtsp_st))) s 1660 libavformat/rtsp.c ff_rtsp_undo_setup(s, 0); s 1664 libavformat/rtsp.c void ff_rtsp_close_connections(AVFormatContext *s) s 1666 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 1673 libavformat/rtsp.c int ff_rtsp_connect(AVFormatContext *s) s 1675 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 1689 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "Invalid UDP port range, max port %d less " s 1698 libavformat/rtsp.c if (s->max_delay < 0) /* Not set by the caller */ s 1699 libavformat/rtsp.c s->max_delay = s->iformat ? DEFAULT_REORDERING_DELAY : 0; s 1715 libavformat/rtsp.c host, sizeof(host), &port, path, sizeof(path), s->url); s 1734 libavformat/rtsp.c if (s->oformat) { s 1739 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "Unsupported lower transport method, " s 1767 libavformat/rtsp.c &s->interrupt_callback) < 0) { s 1781 libavformat/rtsp.c if (!rt->rtsp_hd->protocol_whitelist && s->protocol_whitelist) { s 1782 libavformat/rtsp.c rt->rtsp_hd->protocol_whitelist = av_strdup(s->protocol_whitelist); s 1798 libavformat/rtsp.c &s->interrupt_callback) < 0 ) { s 1848 libavformat/rtsp.c &s->interrupt_callback, NULL, s->protocol_whitelist, s->protocol_blacklist, NULL)) < 0) { s 1886 libavformat/rtsp.c ff_rtsp_send_cmd(s, "OPTIONS", rt->control_uri, cmd, reply, NULL); s 1903 libavformat/rtsp.c if (CONFIG_RTSP_DEMUXER && s->iformat) s 1904 libavformat/rtsp.c err = ff_rtsp_setup_input_streams(s, reply); s 1906 libavformat/rtsp.c err = ff_rtsp_setup_output_streams(s, host); s 1920 libavformat/rtsp.c err = ff_rtsp_make_setup_request(s, host, port, lower_transport, s 1938 libavformat/rtsp.c ff_rtsp_close_streams(s); s 1939 libavformat/rtsp.c ff_rtsp_close_connections(s); s 1940 libavformat/rtsp.c if (reply->status_code >=300 && reply->status_code < 400 && s->iformat) { s 1946 libavformat/rtsp.c ff_format_set_url(s, new_url); s 1948 libavformat/rtsp.c av_log(s, AV_LOG_INFO, "Status %d: Redirecting to %s\n", s 1950 libavformat/rtsp.c s->url); s 1960 libavformat/rtsp.c static int parse_rtsp_message(AVFormatContext *s) s 1962 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 1967 libavformat/rtsp.c if (!ff_rtsp_parse_streaming_commands(s)) s 1970 libavformat/rtsp.c av_log(s, AV_LOG_WARNING, s 1976 libavformat/rtsp.c ret = ff_rtsp_read_reply(s, &reply, NULL, 0, NULL); s 1987 libavformat/rtsp.c static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, s 1990 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 2010 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "Unable to recover rtp ports\n"); s 2014 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, s 2028 libavformat/rtsp.c if (ff_check_interrupt(&s->interrupt_callback)) s 2051 libavformat/rtsp.c if ((ret = parse_rtsp_message(s)) < 0) { s 2063 libavformat/rtsp.c static int pick_stream(AVFormatContext *s, RTSPStream **rtsp_st, s 2066 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 2089 libavformat/rtsp.c av_log(s, AV_LOG_WARNING, s 2103 libavformat/rtsp.c av_log(s, AV_LOG_WARNING, "Unable to pick stream for packet\n"); s 2107 libavformat/rtsp.c static int read_packet(AVFormatContext *s, s 2111 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 2118 libavformat/rtsp.c len = ff_rtsp_tcp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE); s 2123 libavformat/rtsp.c len = udp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE, wait_end); s 2132 libavformat/rtsp.c len = avio_read_partial(s->pb, rt->recvbuf, RECVBUF_SIZE); s 2133 libavformat/rtsp.c len = pick_stream(s, rtsp_st, rt->recvbuf, len); s 2135 libavformat/rtsp.c ff_rtp_check_and_send_back_rr((*rtsp_st)->transport_priv, NULL, s->pb, len); s 2145 libavformat/rtsp.c int ff_rtsp_fetch_packet(AVFormatContext *s, AVPacket *pkt) s 2147 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 2195 libavformat/rtsp.c wait_end = first_queue_time + s->max_delay; s 2209 libavformat/rtsp.c len = read_packet(s, &rtsp_st, first_queue_st, wait_end); s 2212 libavformat/rtsp.c av_log(s, AV_LOG_WARNING, s 2228 libavformat/rtsp.c pb = s->pb; s 2243 libavformat/rtsp.c st = s->streams[rtsp_st->stream_index]; s 2248 libavformat/rtsp.c st2 = s->streams[rt->rtsp_streams[i]->stream_index]; s 2258 libavformat/rtsp.c if (s->start_time_realtime == AV_NOPTS_VALUE) { s 2259 libavformat/rtsp.c s->start_time_realtime = av_rescale (rtpctx->first_rtcp_ntp_time - (NTP_OFFSET << 32), 1000000, 1LL << 32); s 2261 libavformat/rtsp.c s->start_time_realtime -= s 2271 libavformat/rtsp.c av_log(s, AV_LOG_DEBUG, "Received BYE for stream %d (%d/%d)\n", s 2335 libavformat/rtsp.c static int sdp_read_header(AVFormatContext *s) s 2337 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 2346 libavformat/rtsp.c if (s->max_delay < 0) /* Not set by the caller */ s 2347 libavformat/rtsp.c s->max_delay = DEFAULT_REORDERING_DELAY; s 2356 libavformat/rtsp.c size = avio_read(s->pb, content, SDP_MAX_SIZE - 1); s 2363 libavformat/rtsp.c err = ff_sdp_parse(s, content); s 2379 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "getnameinfo: %s\n", gai_strerror(err)); s 2398 libavformat/rtsp.c &s->interrupt_callback, &opts, s->protocol_whitelist, s->protocol_blacklist, NULL); s 2407 libavformat/rtsp.c if ((err = ff_rtsp_open_transport_ctx(s, rtsp_st))) s 2412 libavformat/rtsp.c ff_rtsp_close_streams(s); s 2417 libavformat/rtsp.c static int sdp_read_close(AVFormatContext *s) s 2419 libavformat/rtsp.c ff_rtsp_close_streams(s); s 2451 libavformat/rtsp.c static int rtp_read_header(AVFormatContext *s) s 2462 libavformat/rtsp.c RTSPState *rt = s->priv_data; s 2469 libavformat/rtsp.c ret = ffurl_open_whitelist(&in, s->url, AVIO_FLAG_READ, s 2470 libavformat/rtsp.c &s->interrupt_callback, NULL, s->protocol_whitelist, s->protocol_blacklist, NULL); s 2481 libavformat/rtsp.c av_log(s, AV_LOG_WARNING, "Received too short packet\n"); s 2486 libavformat/rtsp.c av_log(s, AV_LOG_WARNING, "Unsupported RTP version packet " s 2507 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "Unable to receive RTP payload type %d " s 2513 libavformat/rtsp.c av_log(s, AV_LOG_WARNING, "Guessing on RTP content - if not received " s 2519 libavformat/rtsp.c NULL, 0, s->url); s 2525 libavformat/rtsp.c p = strchr(s->url, '?'); s 2548 libavformat/rtsp.c av_log(s, AV_LOG_VERBOSE, "SDP:\n%s\n", sdp.str); s 2554 libavformat/rtsp.c s->pb = &pb; s 2561 libavformat/rtsp.c ret = sdp_read_header(s); s 2562 libavformat/rtsp.c s->pb = NULL; s 2568 libavformat/rtsp.c av_log(s, AV_LOG_ERROR, "rtp_read_header(): not enough buffer space for sdp-headers\n"); s 479 libavformat/rtsp.h void ff_rtsp_parse_line(AVFormatContext *s, s 488 libavformat/rtsp.h int ff_rtsp_send_cmd_async(AVFormatContext *s, const char *method, s 507 libavformat/rtsp.h int ff_rtsp_send_cmd_with_content(AVFormatContext *s, s 520 libavformat/rtsp.h int ff_rtsp_send_cmd(AVFormatContext *s, const char *method, s 547 libavformat/rtsp.h int ff_rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply, s 554 libavformat/rtsp.h void ff_rtsp_skip_packet(AVFormatContext *s); s 565 libavformat/rtsp.h int ff_rtsp_connect(AVFormatContext *s); s 572 libavformat/rtsp.h void ff_rtsp_close_streams(AVFormatContext *s); s 579 libavformat/rtsp.h void ff_rtsp_close_connections(AVFormatContext *s); s 585 libavformat/rtsp.h int ff_rtsp_setup_input_streams(AVFormatContext *s, RTSPMessageHeader *reply); s 591 libavformat/rtsp.h int ff_rtsp_setup_output_streams(AVFormatContext *s, const char *addr); s 597 libavformat/rtsp.h int ff_rtsp_parse_streaming_commands(AVFormatContext *s); s 604 libavformat/rtsp.h int ff_sdp_parse(AVFormatContext *s, const char *content); s 609 libavformat/rtsp.h int ff_rtsp_tcp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, s 615 libavformat/rtsp.h int ff_rtsp_tcp_write_packet(AVFormatContext *s, RTSPStream *rtsp_st); s 621 libavformat/rtsp.h int ff_rtsp_fetch_packet(AVFormatContext *s, AVPacket *pkt); s 628 libavformat/rtsp.h int ff_rtsp_make_setup_request(AVFormatContext *s, const char *host, int port, s 635 libavformat/rtsp.h void ff_rtsp_undo_setup(AVFormatContext *s, int send_packets); s 640 libavformat/rtsp.h int ff_rtsp_open_transport_ctx(AVFormatContext *s, RTSPStream *rtsp_st); s 56 libavformat/rtspdec.c static int rtsp_read_close(AVFormatContext *s) s 58 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 61 libavformat/rtspdec.c ff_rtsp_send_cmd_async(s, "TEARDOWN", rt->control_uri, NULL); s 63 libavformat/rtspdec.c ff_rtsp_close_streams(s); s 64 libavformat/rtspdec.c ff_rtsp_close_connections(s); s 71 libavformat/rtspdec.c static inline int read_line(AVFormatContext *s, char *rbuf, const int rbufsize, s 74 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 92 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Message too long\n"); s 96 libavformat/rtspdec.c static int rtsp_send_reply(AVFormatContext *s, enum RTSPStatusCode code, s 99 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 117 libavformat/rtspdec.c av_log(s, AV_LOG_TRACE, "Sending response:\n%s", message); s 123 libavformat/rtspdec.c static inline int check_sessionid(AVFormatContext *s, s 126 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 129 libavformat/rtspdec.c av_log(s, AV_LOG_WARNING, "There is no session-id at the moment\n"); s 133 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Unexpected session-id %s\n", s 135 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_SESSION, NULL, request->seq); s 141 libavformat/rtspdec.c static inline int rtsp_read_request(AVFormatContext *s, s 145 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 149 libavformat/rtspdec.c ret = read_line(s, rbuf, sizeof(rbuf), &rbuflen); s 153 libavformat/rtspdec.c av_log(s, AV_LOG_TRACE, "Parsing[%d]: %s\n", rbuflen, rbuf); s 154 libavformat/rtspdec.c ff_rtsp_parse_line(s, request, rbuf, rt, method); s 158 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Unexpected Sequence number %d\n", s 163 libavformat/rtspdec.c ret = check_sessionid(s, request); s 171 libavformat/rtspdec.c static int rtsp_read_announce(AVFormatContext *s) s 173 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 178 libavformat/rtspdec.c ret = rtsp_read_request(s, &request, "ANNOUNCE"); s 183 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Unexpected content type %s\n", s 185 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_SERVICE, NULL, request.seq); s 192 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, s 194 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_INTERNAL, NULL, request.seq); s 198 libavformat/rtspdec.c av_log(s, AV_LOG_VERBOSE, "SDP: %s\n", sdp); s 199 libavformat/rtspdec.c ret = ff_sdp_parse(s, sdp); s 202 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_OK, NULL, request.seq); s 205 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, s 207 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_INTERNAL, s 212 libavformat/rtspdec.c static int rtsp_read_options(AVFormatContext *s) s 214 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 219 libavformat/rtspdec.c ret = rtsp_read_request(s, &request, "OPTIONS"); s 224 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_OK, s 230 libavformat/rtspdec.c static int rtsp_read_setup(AVFormatContext *s, char* host, char *controlurl) s 232 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 242 libavformat/rtspdec.c ret = rtsp_read_request(s, &request, "SETUP"); s 247 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "No transport defined in SETUP\n"); s 257 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "mode=record/receive not set or transport" s 263 libavformat/rtspdec.c av_log(s, AV_LOG_WARNING, "More than one transport not supported, " s 271 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Unable to find requested track\n"); s 279 libavformat/rtspdec.c if ((ret = ff_rtsp_open_transport_ctx(s, rtsp_st))) { s 280 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_TRANSPORT, NULL, request.seq); s 294 libavformat/rtspdec.c av_log(s, AV_LOG_TRACE, "Opening: %s", url); s 296 libavformat/rtspdec.c &s->interrupt_callback, &opts, s 297 libavformat/rtspdec.c s->protocol_whitelist, s->protocol_blacklist, NULL); s 303 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_TRANSPORT, NULL, request.seq); s 307 libavformat/rtspdec.c av_log(s, AV_LOG_TRACE, "Listening on: %d", s 309 libavformat/rtspdec.c if ((ret = ff_rtsp_open_transport_ctx(s, rtsp_st))) { s 310 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_TRANSPORT, NULL, request.seq); s 332 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_OK, responseheaders, request.seq); s 338 libavformat/rtspdec.c static int rtsp_read_record(AVFormatContext *s) s 340 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 345 libavformat/rtspdec.c ret = rtsp_read_request(s, &request, "RECORD"); s 348 libavformat/rtspdec.c ret = check_sessionid(s, &request); s 354 libavformat/rtspdec.c rtsp_send_reply(s, RTSP_STATUS_OK, responseheaders, request.seq); s 360 libavformat/rtspdec.c static inline int parse_command_line(AVFormatContext *s, const char *line, s 365 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 370 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Error parsing method string\n"); s 375 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Method string too long\n"); s 398 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Unexpected command in Idle State %s\n", s 405 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Unexpected command in Paused State %s\n", s 412 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Unexpected command in Streaming State" s 417 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Unexpected State [%d]\n", rt->state); s 423 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Error parsing message URI\n"); s 427 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "uri string length exceeded buffer size\n"); s 443 libavformat/rtspdec.c av_log(s, AV_LOG_INFO, "Host %s differs from expected %s\n", s 446 libavformat/rtspdec.c av_log(s, AV_LOG_WARNING, "WARNING: Path %s differs from expected" s 449 libavformat/rtspdec.c av_log(s, AV_LOG_INFO, s 457 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Error parsing protocol or version\n"); s 463 libavformat/rtspdec.c int ff_rtsp_parse_streaming_commands(AVFormatContext *s) s 465 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 474 libavformat/rtspdec.c ret = read_line(s, rbuf, sizeof(rbuf), &rbuflen); s 477 libavformat/rtspdec.c ret = parse_command_line(s, rbuf, rbuflen, uri, sizeof(uri), method, s 480 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "RTSP: Unexpected Command\n"); s 484 libavformat/rtspdec.c ret = rtsp_read_request(s, &request, method); s 490 libavformat/rtspdec.c ret = rtsp_send_reply(s, RTSP_STATUS_OK, NULL , request.seq); s 493 libavformat/rtspdec.c ret = rtsp_send_reply(s, RTSP_STATUS_OK, s 498 libavformat/rtspdec.c ret = rtsp_send_reply(s, RTSP_STATUS_OK, NULL , request.seq); s 503 libavformat/rtspdec.c static int rtsp_read_play(AVFormatContext *s) s 505 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 510 libavformat/rtspdec.c av_log(s, AV_LOG_DEBUG, "hello state=%d\n", rt->state); s 549 libavformat/rtspdec.c ff_rtsp_send_cmd(s, "PLAY", rt->control_uri, cmd, reply, NULL); s 562 libavformat/rtspdec.c st = s->streams[rtsp_st->stream_index]; s 574 libavformat/rtspdec.c static int rtsp_read_pause(AVFormatContext *s) s 576 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 582 libavformat/rtspdec.c ff_rtsp_send_cmd(s, "PAUSE", rt->control_uri, NULL, reply, NULL); s 591 libavformat/rtspdec.c int ff_rtsp_setup_input_streams(AVFormatContext *s, RTSPMessageHeader *reply) s 593 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 610 libavformat/rtspdec.c ff_rtsp_send_cmd(s, "DESCRIBE", rt->control_uri, cmd, reply, &content); s 618 libavformat/rtspdec.c av_log(s, AV_LOG_VERBOSE, "SDP:\n%s\n", content); s 620 libavformat/rtspdec.c ret = ff_sdp_parse(s, (const char *)content); s 628 libavformat/rtspdec.c static int rtsp_listen(AVFormatContext *s) s 630 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 645 libavformat/rtspdec.c &port, path, sizeof(path), s->url); s 664 libavformat/rtspdec.c &s->interrupt_callback, NULL, s 665 libavformat/rtspdec.c s->protocol_whitelist, s->protocol_blacklist, NULL)) { s 666 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "Unable to open RTSP for listening\n"); s 672 libavformat/rtspdec.c ret = read_line(s, rbuf, sizeof(rbuf), &rbuflen); s 675 libavformat/rtspdec.c ret = parse_command_line(s, rbuf, rbuflen, uri, sizeof(uri), method, s 678 libavformat/rtspdec.c av_log(s, AV_LOG_ERROR, "RTSP: Unexpected Command\n"); s 683 libavformat/rtspdec.c ret = rtsp_read_announce(s); s 686 libavformat/rtspdec.c ret = rtsp_read_options(s); s 688 libavformat/rtspdec.c ret = rtsp_read_record(s); s 692 libavformat/rtspdec.c ret = rtsp_read_setup(s, host, uri); s 711 libavformat/rtspdec.c static int rtsp_read_header(AVFormatContext *s) s 713 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 720 libavformat/rtspdec.c ret = rtsp_listen(s); s 724 libavformat/rtspdec.c ret = ff_rtsp_connect(s); s 728 libavformat/rtspdec.c rt->real_setup_cache = !s->nb_streams ? NULL : s 729 libavformat/rtspdec.c av_mallocz_array(s->nb_streams, 2 * sizeof(*rt->real_setup_cache)); s 730 libavformat/rtspdec.c if (!rt->real_setup_cache && s->nb_streams) s 732 libavformat/rtspdec.c rt->real_setup = rt->real_setup_cache + s->nb_streams; s 737 libavformat/rtspdec.c if ((ret = rtsp_read_play(s)) < 0) { s 738 libavformat/rtspdec.c ff_rtsp_close_streams(s); s 739 libavformat/rtspdec.c ff_rtsp_close_connections(s); s 748 libavformat/rtspdec.c int ff_rtsp_tcp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, s 751 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 755 libavformat/rtspdec.c av_log(s, AV_LOG_TRACE, "tcp_read_packet:\n"); s 760 libavformat/rtspdec.c ret = ff_rtsp_read_reply(s, &reply, NULL, 1, NULL); s 774 libavformat/rtspdec.c av_log(s, AV_LOG_TRACE, "id=%d len=%d\n", id, len); s 798 libavformat/rtspdec.c static int resetup_tcp(AVFormatContext *s) s 800 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 805 libavformat/rtspdec.c s->url); s 806 libavformat/rtspdec.c ff_rtsp_undo_setup(s, 0); s 807 libavformat/rtspdec.c return ff_rtsp_make_setup_request(s, host, port, RTSP_LOWER_TRANSPORT_TCP, s 811 libavformat/rtspdec.c static int rtsp_read_packet(AVFormatContext *s, AVPacket *pkt) s 813 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 822 libavformat/rtspdec.c for (i = 0; i < s->nb_streams; i++) s 823 libavformat/rtspdec.c rt->real_setup[i] = s->streams[i]->discard; s 827 libavformat/rtspdec.c sizeof(enum AVDiscard) * s->nb_streams)) { s 831 libavformat/rtspdec.c ff_rtsp_send_cmd(s, "SET_PARAMETER", rt->control_uri, s 843 libavformat/rtspdec.c sizeof(enum AVDiscard) * s->nb_streams); s 850 libavformat/rtspdec.c for (r = 0; r < s->nb_streams; r++) { s 851 libavformat/rtspdec.c if (s->streams[r]->id == i) { s 852 libavformat/rtspdec.c if (s->streams[r]->discard != AVDISCARD_ALL) { s 866 libavformat/rtspdec.c ff_rtsp_send_cmd(s, "SET_PARAMETER", rt->control_uri, s 873 libavformat/rtspdec.c rtsp_read_play (s); s 877 libavformat/rtspdec.c ret = ff_rtsp_fetch_packet(s, pkt); s 883 libavformat/rtspdec.c av_log(s, AV_LOG_WARNING, "UDP timeout, retrying with TCP\n"); s 884 libavformat/rtspdec.c if (rtsp_read_pause(s) != 0) s 889 libavformat/rtspdec.c ff_rtsp_send_cmd(s, "TEARDOWN", rt->control_uri, NULL, s 892 libavformat/rtspdec.c if (resetup_tcp(s) == 0) { s 895 libavformat/rtspdec.c if (rtsp_read_play(s) != 0) s 912 libavformat/rtspdec.c ff_rtsp_send_cmd_async(s, "GET_PARAMETER", rt->control_uri, NULL); s 914 libavformat/rtspdec.c ff_rtsp_send_cmd_async(s, "OPTIONS", rt->control_uri, NULL); s 926 libavformat/rtspdec.c static int rtsp_read_seek(AVFormatContext *s, int stream_index, s 929 libavformat/rtspdec.c RTSPState *rt = s->priv_data; s 933 libavformat/rtspdec.c s->streams[stream_index]->time_base, s 940 libavformat/rtspdec.c if ((ret = rtsp_read_pause(s)) != 0) s 943 libavformat/rtspdec.c if ((ret = rtsp_read_play(s)) != 0) s 46 libavformat/rtspenc.c int ff_rtsp_setup_output_streams(AVFormatContext *s, const char *addr) s 48 libavformat/rtspenc.c RTSPState *rt = s->priv_data; s 55 libavformat/rtspenc.c if (s->start_time_realtime == 0 || s->start_time_realtime == AV_NOPTS_VALUE) s 56 libavformat/rtspenc.c s->start_time_realtime = av_gettime(); s 74 libavformat/rtspenc.c sdp_ctx = *s; s 83 libavformat/rtspenc.c av_log(s, AV_LOG_VERBOSE, "SDP:\n%s\n", sdp); s 84 libavformat/rtspenc.c ff_rtsp_send_cmd_with_content(s, "ANNOUNCE", rt->control_uri, s 92 libavformat/rtspenc.c for (i = 0; i < s->nb_streams; i++) { s 111 libavformat/rtspenc.c static int rtsp_write_record(AVFormatContext *s) s 113 libavformat/rtspenc.c RTSPState *rt = s->priv_data; s 119 libavformat/rtspenc.c ff_rtsp_send_cmd(s, "RECORD", rt->control_uri, cmd, reply, NULL); s 126 libavformat/rtspenc.c static int rtsp_write_header(AVFormatContext *s) s 130 libavformat/rtspenc.c ret = ff_rtsp_connect(s); s 134 libavformat/rtspenc.c if (rtsp_write_record(s) < 0) { s 135 libavformat/rtspenc.c ff_rtsp_close_streams(s); s 136 libavformat/rtspenc.c ff_rtsp_close_connections(s); s 142 libavformat/rtspenc.c int ff_rtsp_tcp_write_packet(AVFormatContext *s, RTSPStream *rtsp_st) s 144 libavformat/rtspenc.c RTSPState *rt = s->priv_data; s 181 libavformat/rtspenc.c static int rtsp_write_packet(AVFormatContext *s, AVPacket *pkt) s 183 libavformat/rtspenc.c RTSPState *rt = s->priv_data; s 201 libavformat/rtspenc.c ret = ff_rtsp_read_reply(s, &reply, NULL, 1, NULL); s 205 libavformat/rtspenc.c ff_rtsp_skip_packet(s); s 217 libavformat/rtspenc.c ret = ff_write_chained(rtpctx, 0, pkt, s, 0); s 223 libavformat/rtspenc.c ret = ff_rtsp_tcp_write_packet(s, rtsp_st); s 227 libavformat/rtspenc.c static int rtsp_write_close(AVFormatContext *s) s 229 libavformat/rtspenc.c RTSPState *rt = s->priv_data; s 234 libavformat/rtspenc.c ff_rtsp_undo_setup(s, 1); s 236 libavformat/rtspenc.c ff_rtsp_send_cmd_async(s, "TEARDOWN", rt->control_uri, NULL); s 238 libavformat/rtspenc.c ff_rtsp_close_streams(s); s 239 libavformat/rtspenc.c ff_rtsp_close_connections(s); s 130 libavformat/s337m.c static int s337m_read_header(AVFormatContext *s) s 132 libavformat/s337m.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 144 libavformat/s337m.c static int s337m_read_packet(AVFormatContext *s, AVPacket *pkt) s 146 libavformat/s337m.c AVIOContext *pb = s->pb; s 168 libavformat/s337m.c if ((ret = s337m_get_offset_and_codec(s, state, data_type, data_size, &offset, &codec)) < 0) s 185 libavformat/s337m.c if (!s->nb_streams) { s 186 libavformat/s337m.c AVStream *st = avformat_new_stream(s, NULL); s 49 libavformat/samidec.c static int sami_read_header(AVFormatContext *s) s 51 libavformat/samidec.c SAMIContext *sami = s->priv_data; s 52 libavformat/samidec.c AVStream *st = avformat_new_stream(s, NULL); s 57 libavformat/samidec.c ff_text_init_avio(s, &tr, s->pb); s 108 libavformat/samidec.c ff_subtitles_queue_finalize(s, &sami->q); s 117 libavformat/samidec.c static int sami_read_packet(AVFormatContext *s, AVPacket *pkt) s 119 libavformat/samidec.c SAMIContext *sami = s->priv_data; s 123 libavformat/samidec.c static int sami_read_seek(AVFormatContext *s, int stream_index, s 126 libavformat/samidec.c SAMIContext *sami = s->priv_data; s 127 libavformat/samidec.c return ff_subtitles_queue_seek(&sami->q, s, stream_index, s 131 libavformat/samidec.c static int sami_read_close(AVFormatContext *s) s 133 libavformat/samidec.c SAMIContext *sami = s->priv_data; s 52 libavformat/sapdec.c static int sap_read_close(AVFormatContext *s) s 54 libavformat/sapdec.c struct SAPState *sap = s->priv_data; s 63 libavformat/sapdec.c static int sap_read_header(AVFormatContext *s) s 65 libavformat/sapdec.c struct SAPState *sap = s->priv_data; s 76 libavformat/sapdec.c path, sizeof(path), s->url); s 88 libavformat/sapdec.c &s->interrupt_callback, NULL, s 89 libavformat/sapdec.c s->protocol_whitelist, s->protocol_blacklist, NULL); s 104 libavformat/sapdec.c av_log(s, AV_LOG_WARNING, "Received too short packet\n"); s 109 libavformat/sapdec.c av_log(s, AV_LOG_WARNING, "Unsupported SAP version packet " s 115 libavformat/sapdec.c av_log(s, AV_LOG_WARNING, "Received stream deletion " s 129 libavformat/sapdec.c av_log(s, AV_LOG_WARNING, "Received too short packet\n"); s 138 libavformat/sapdec.c av_log(s, AV_LOG_WARNING, "Unsupported mime type %s\n", s 151 libavformat/sapdec.c av_log(s, AV_LOG_VERBOSE, "SDP:\n%s\n", sap->sdp); s 163 libavformat/sapdec.c sap->sdp_ctx->max_delay = s->max_delay; s 165 libavformat/sapdec.c sap->sdp_ctx->interrupt_callback = s->interrupt_callback; s 167 libavformat/sapdec.c if ((ret = ff_copy_whiteblacklists(sap->sdp_ctx, s)) < 0) s 174 libavformat/sapdec.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 176 libavformat/sapdec.c AVStream *st = avformat_new_stream(s, NULL); s 189 libavformat/sapdec.c sap_read_close(s); s 193 libavformat/sapdec.c static int sap_fetch_packet(AVFormatContext *s, AVPacket *pkt) s 195 libavformat/sapdec.c struct SAPState *sap = s->priv_data; s 222 libavformat/sapdec.c if (s->ctx_flags & AVFMTCTX_NOHEADER) { s 223 libavformat/sapdec.c while (sap->sdp_ctx->nb_streams > s->nb_streams) { s 224 libavformat/sapdec.c int i = s->nb_streams; s 225 libavformat/sapdec.c AVStream *st = avformat_new_stream(s, NULL); s 42 libavformat/sapenc.c static int sap_write_close(AVFormatContext *s) s 44 libavformat/sapenc.c struct SAPState *sap = s->priv_data; s 47 libavformat/sapenc.c for (i = 0; i < s->nb_streams; i++) { s 48 libavformat/sapenc.c AVFormatContext *rtpctx = s->streams[i]->priv_data; s 54 libavformat/sapenc.c s->streams[i]->priv_data = NULL; s 68 libavformat/sapenc.c static int sap_write_header(AVFormatContext *s) s 70 libavformat/sapenc.c struct SAPState *sap = s->priv_data; s 79 libavformat/sapenc.c AVDictionaryEntry* title = av_dict_get(s->metadata, "title", NULL, 0); s 86 libavformat/sapenc.c path, sizeof(path), s->url); s 112 libavformat/sapenc.c av_log(s, AV_LOG_ERROR, "Unable to resolve %s\n", host); s 128 libavformat/sapenc.c av_log(s, AV_LOG_ERROR, "Host %s resolved to unsupported " s 136 libavformat/sapenc.c contexts = av_mallocz_array(s->nb_streams, sizeof(AVFormatContext*)); s 142 libavformat/sapenc.c if (s->start_time_realtime == 0 || s->start_time_realtime == AV_NOPTS_VALUE) s 143 libavformat/sapenc.c s->start_time_realtime = av_gettime(); s 144 libavformat/sapenc.c for (i = 0; i < s->nb_streams; i++) { s 153 libavformat/sapenc.c &s->interrupt_callback, NULL, s 154 libavformat/sapenc.c s->protocol_whitelist, s->protocol_blacklist, NULL); s 159 libavformat/sapenc.c ret = ff_rtp_chain_mux_open(&contexts[i], s, s->streams[i], fd, 0, i); s 162 libavformat/sapenc.c s->streams[i]->priv_data = contexts[i]; s 163 libavformat/sapenc.c s->streams[i]->time_base = contexts[i]->streams[0]->time_base; s 172 libavformat/sapenc.c if (s->nb_streams > 0 && title) s 178 libavformat/sapenc.c &s->interrupt_callback, NULL, s 179 libavformat/sapenc.c s->protocol_whitelist, s->protocol_blacklist, NULL); s 195 libavformat/sapenc.c av_log(s, AV_LOG_ERROR, "Unsupported protocol family\n"); s 229 libavformat/sapenc.c if (av_sdp_create(contexts, s->nb_streams, &sap->ann[pos], s 235 libavformat/sapenc.c av_log(s, AV_LOG_VERBOSE, "SDP:\n%s\n", &sap->ann[pos]); s 240 libavformat/sapenc.c av_log(s, AV_LOG_ERROR, "Announcement too large to send in one " s 249 libavformat/sapenc.c sap_write_close(s); s 253 libavformat/sapenc.c static int sap_write_packet(AVFormatContext *s, AVPacket *pkt) s 256 libavformat/sapenc.c struct SAPState *sap = s->priv_data; s 266 libavformat/sapenc.c rtpctx = s->streams[pkt->stream_index]->priv_data; s 267 libavformat/sapenc.c return ff_write_chained(rtpctx, 0, pkt, s, 0); s 44 libavformat/sbgdec.c char *s; s 282 libavformat/sbgdec.c char *s = p->cursor, *c = s; s 284 libavformat/sbgdec.c if (s == p->end || *s == '\n') s 288 libavformat/sbgdec.c rs->s = s; s 296 libavformat/sbgdec.c char *s = p->cursor, *c = s; s 301 libavformat/sbgdec.c if (c == s) s 303 libavformat/sbgdec.c rs->s = s; s 357 libavformat/sbgdec.c for (; ostr.s < ostr.e; ostr.s++) { s 358 libavformat/sbgdec.c char opt = *ostr.s; s 374 libavformat/sbgdec.c v = strtod(oarg.s, &tptr); s 384 libavformat/sbgdec.c r = str_to_time(oarg.s, &p->scs.opt_duration); s 385 libavformat/sbgdec.c if (oarg.e != oarg.s + r) { s 393 libavformat/sbgdec.c r = str_to_time(oarg.s, &p->scs.start_ts); s 394 libavformat/sbgdec.c if (oarg.e != oarg.s + r) { s 402 libavformat/sbgdec.c tptr = av_malloc(oarg.e - oarg.s + 1); s 405 libavformat/sbgdec.c memcpy(tptr, oarg.s, oarg.e - oarg.s); s 406 libavformat/sbgdec.c tptr[oarg.e - oarg.s] = 0; s 412 libavformat/sbgdec.c v = strtod(oarg.s, &tptr); s 426 libavformat/sbgdec.c r = strtol(oarg.s, &tptr, 10); s 441 libavformat/sbgdec.c "unknown option: '%c'", *ostr.s); s 561 libavformat/sbgdec.c tseq->name = name.s; s 562 libavformat/sbgdec.c tseq->name_len = name.e - name.s; s 765 libavformat/sbgdec.c if (name.e - name.s == 6 && !memcmp(name.s, "wave", 4) && s 766 libavformat/sbgdec.c name.s[4] >= '0' && name.s[4] <= '9' && s 767 libavformat/sbgdec.c name.s[5] >= '0' && name.s[5] <= '9') { s 768 libavformat/sbgdec.c int wavenum = (name.s[4] - '0') * 10 + (name.s[5] - '0'); s 775 libavformat/sbgdec.c def->name = name.s; s 776 libavformat/sbgdec.c def->name_len = name.e - name.s; s 782 libavformat/sbgdec.c static void free_script(struct sbg_script *s) s 784 libavformat/sbgdec.c av_freep(&s->def); s 785 libavformat/sbgdec.c av_freep(&s->synth); s 786 libavformat/sbgdec.c av_freep(&s->tseq); s 787 libavformat/sbgdec.c av_freep(&s->block_tseq); s 788 libavformat/sbgdec.c av_freep(&s->events); s 789 libavformat/sbgdec.c av_freep(&s->opt_mix); s 887 libavformat/sbgdec.c static void expand_timestamps(void *log, struct sbg_script *s) s 892 libavformat/sbgdec.c for (i = 0; i < s->nb_tseq; i++) s 893 libavformat/sbgdec.c nb_rel += s->tseq[i].ts.type == 'N'; s 894 libavformat/sbgdec.c if (nb_rel == s->nb_tseq) { s 897 libavformat/sbgdec.c if (s->start_ts != AV_NOPTS_VALUE) s 900 libavformat/sbgdec.c } else if (nb_rel == 0 && s->start_ts != AV_NOPTS_VALUE || s 901 libavformat/sbgdec.c s->opt_start_at_first) { s 903 libavformat/sbgdec.c if (s->start_ts == AV_NOPTS_VALUE) s 904 libavformat/sbgdec.c s->start_ts = s->tseq[0].ts.t; s 905 libavformat/sbgdec.c now = s->start_ts; s 922 libavformat/sbgdec.c for (i = 0; i < s->nb_tseq; i++) { s 923 libavformat/sbgdec.c if (s->tseq[i].ts.type == 'N') { s 924 libavformat/sbgdec.c s->tseq[i].ts.t += now; s 925 libavformat/sbgdec.c s->tseq[i].ts.type = 'T'; /* not necessary */ s 929 libavformat/sbgdec.c if (s->start_ts == AV_NOPTS_VALUE) s 930 libavformat/sbgdec.c s->start_ts = (s->opt_start_at_first && s->tseq) ? s->tseq[0].ts.t : now; s 931 libavformat/sbgdec.c s->end_ts = s->opt_duration ? s->start_ts + s->opt_duration : s 934 libavformat/sbgdec.c for (i = 0; i < s->nb_tseq; i++) { s 935 libavformat/sbgdec.c if (s->tseq[i].ts.t + delta < cur_ts) s 937 libavformat/sbgdec.c cur_ts = s->tseq[i].ts.t += delta; s 941 libavformat/sbgdec.c static int expand_tseq(void *log, struct sbg_script *s, int *nb_ev_max, s 955 libavformat/sbgdec.c for (i = 0; i < s->nb_def; i++) { s 956 libavformat/sbgdec.c if (s->def[i].name_len == tseq->name_len && s 957 libavformat/sbgdec.c !memcmp(s->def[i].name, tseq->name, tseq->name_len)) s 960 libavformat/sbgdec.c if (i >= s->nb_def) { s 965 libavformat/sbgdec.c def = &s->def[i]; s 967 libavformat/sbgdec.c be = s->block_tseq + def->elements; s 969 libavformat/sbgdec.c r = expand_tseq(log, s, nb_ev_max, t0, &be[i]); s 974 libavformat/sbgdec.c ev = alloc_array_elem((void **)&s->events, sizeof(*ev), s 975 libavformat/sbgdec.c &s->nb_events, nb_ev_max); s 987 libavformat/sbgdec.c static int expand_script(void *log, struct sbg_script *s) s 991 libavformat/sbgdec.c expand_timestamps(log, s); s 992 libavformat/sbgdec.c for (i = 0; i < s->nb_tseq; i++) { s 993 libavformat/sbgdec.c r = expand_tseq(log, s, &nb_events_max, 0, &s->tseq[i]); s 997 libavformat/sbgdec.c if (!s->nb_events) { s 1001 libavformat/sbgdec.c if (s->opt_end_at_last) s 1002 libavformat/sbgdec.c s->end_ts = s->events[s->nb_events - 1].ts; s 1040 libavformat/sbgdec.c static int add_bell(struct ws_intervals *inter, struct sbg_script *s, s 1055 libavformat/sbgdec.c int64_t dt = s->sample_rate / 20, ts3 = ts1, ts4; s 1068 libavformat/sbgdec.c static int generate_interval(void *log, struct sbg_script *s, s 1108 libavformat/sbgdec.c r = add_bell(inter, s, ts1, ts2, s1->carrier, s2->vol); s 1147 libavformat/sbgdec.c static int generate_plateau(void *log, struct sbg_script *s, s 1156 libavformat/sbgdec.c s1 = &s->synth[ev1->elements + i]; s 1157 libavformat/sbgdec.c r = generate_interval(log, s, inter, ts1, ts2, s1, s1, 0); s 1176 libavformat/sbgdec.c static int generate_transition(void *log, struct sbg_script *s, s 1198 libavformat/sbgdec.c s1 = i < ev1->nb_elements ? &s->synth[ev1->elements + i] : &s1mod; s 1199 libavformat/sbgdec.c s2 = i < ev2->nb_elements ? &s->synth[ev2->elements + i] : &s2mod; s 1220 libavformat/sbgdec.c r = generate_interval(log, s, inter, s 1231 libavformat/sbgdec.c r = generate_interval(log, s, inter, s 1238 libavformat/sbgdec.c r = generate_interval(log, s, inter, s 1262 libavformat/sbgdec.c static int generate_intervals(void *log, struct sbg_script *s, int sample_rate, s 1265 libavformat/sbgdec.c int64_t trans_time = s->opt_fade_time / 2; s 1273 libavformat/sbgdec.c period = s->events[s->nb_events - 1].ts - s->events[0].ts; s 1278 libavformat/sbgdec.c for (i = 0; i < s->nb_events; i++) { s 1279 libavformat/sbgdec.c ev1 = &s->events[i]; s 1280 libavformat/sbgdec.c ev2 = &s->events[(i + 1) % s->nb_events]; s 1285 libavformat/sbgdec.c for (i = 0; i < s->nb_events; i++) { s 1286 libavformat/sbgdec.c ev1 = &s->events[i]; s 1287 libavformat/sbgdec.c ev2 = &s->events[(i + 1) % s->nb_events]; s 1296 libavformat/sbgdec.c ev0 = s->events[s->nb_events - 1]; s 1302 libavformat/sbgdec.c for (i = -1; i < s->nb_events; i++) { s 1303 libavformat/sbgdec.c ev1 = i < 0 ? &ev0 : &s->events[i]; s 1310 libavformat/sbgdec.c for (i = 0; i < s->nb_synth; i++) s 1311 libavformat/sbgdec.c s->synth[i].ref.l = s->synth[i].ref.r = -1; s 1312 libavformat/sbgdec.c for (i = -1; i < s->nb_events; i++) { s 1313 libavformat/sbgdec.c ev1 = i < 0 ? &ev0 : &s->events[i]; s 1314 libavformat/sbgdec.c ev2 = &s->events[(i + 1) % s->nb_events]; s 1315 libavformat/sbgdec.c r = generate_plateau(log, s, inter, ev1); s 1318 libavformat/sbgdec.c r = generate_transition(log, s, inter, ev1, ev2); s 1327 libavformat/sbgdec.c static int encode_intervals(struct sbg_script *s, AVCodecParameters *par, s 62 libavformat/sccdec.c static int scc_read_header(AVFormatContext *s) s 64 libavformat/sccdec.c SCCContext *scc = s->priv_data; s 65 libavformat/sccdec.c AVStream *st = avformat_new_stream(s, NULL); s 73 libavformat/sccdec.c ff_text_init_avio(s, &tr, s->pb); s 155 libavformat/sccdec.c ff_subtitles_queue_finalize(s, &scc->q); s 163 libavformat/sccdec.c static int scc_read_packet(AVFormatContext *s, AVPacket *pkt) s 165 libavformat/sccdec.c SCCContext *scc = s->priv_data; s 169 libavformat/sccdec.c static int scc_read_seek(AVFormatContext *s, int stream_index, s 172 libavformat/sccdec.c SCCContext *scc = s->priv_data; s 173 libavformat/sccdec.c return ff_subtitles_queue_seek(&scc->q, s, stream_index, s 177 libavformat/sccdec.c static int scc_read_close(AVFormatContext *s) s 179 libavformat/sccdec.c SCCContext *scc = s->priv_data; s 62 libavformat/sccenc.c int i, h, m, s, f; s 72 libavformat/sccenc.c s = (int)(pts / 1000) % 60; s 82 libavformat/sccenc.c if (!scc->inside && (scc->prev_h != h || scc->prev_m != m || scc->prev_s != s || scc->prev_f != f)) { s 83 libavformat/sccenc.c avio_printf(avf->pb, "\n%02d:%02d:%02d:%02d\t", h, m, s, f); s 93 libavformat/sccenc.c avio_printf(avf->pb, "\n%02d:%02d:%02d:%02d\t", h, m, s, f); s 101 libavformat/sccenc.c if (scc->inside && (scc->prev_h != h || scc->prev_m != m || scc->prev_s != s || scc->prev_f != f)) { s 109 libavformat/sccenc.c scc->prev_s = s; s 74 libavformat/sctp.c static int ff_sctp_recvmsg(int s, void *msg, size_t len, struct sockaddr *from, s 94 libavformat/sctp.c if ((recvb = recvmsg(s, &inmsg, msg_flags ? *msg_flags : 0)) < 0) s 116 libavformat/sctp.c static int ff_sctp_send(int s, const void *msg, size_t len, s 147 libavformat/sctp.c return sendmsg(s, &outmsg, flags | MSG_NOSIGNAL); s 186 libavformat/sctp.c SCTPContext *s = h->priv_data; s 198 libavformat/sctp.c av_log(s, AV_LOG_ERROR, "Port missing in uri\n"); s 205 libavformat/sctp.c s->listen = 1; s 207 libavformat/sctp.c s->max_streams = strtol(buf, NULL, 10); s 229 libavformat/sctp.c if (s->listen) { s 231 libavformat/sctp.c s->listen_timeout, h)) < 0) { s 237 libavformat/sctp.c s->timeout, h, !!cur_ai->ai_next)) < 0) { s 256 libavformat/sctp.c if (s->max_streams) { s 257 libavformat/sctp.c initparams.sinit_max_instreams = s->max_streams; s 258 libavformat/sctp.c initparams.sinit_num_ostreams = s->max_streams; s 263 libavformat/sctp.c s->max_streams); s 269 libavformat/sctp.c h->priv_data = s; s 271 libavformat/sctp.c s->fd = fd; s 302 libavformat/sctp.c SCTPContext *s = h->priv_data; s 306 libavformat/sctp.c ret = sctp_wait_fd(s->fd, 0); s 311 libavformat/sctp.c if (s->max_streams) { s 314 libavformat/sctp.c ret = ff_sctp_recvmsg(s->fd, buf + 2, size - 2, NULL, 0, &info, 0); s 318 libavformat/sctp.c ret = recv(s->fd, buf, size, 0); s 325 libavformat/sctp.c SCTPContext *s = h->priv_data; s 329 libavformat/sctp.c ret = sctp_wait_fd(s->fd, 1); s 334 libavformat/sctp.c if (s->max_streams) { s 338 libavformat/sctp.c if (info.sinfo_stream > s->max_streams) { s 342 libavformat/sctp.c ret = ff_sctp_send(s->fd, buf + 2, size - 2, &info, MSG_EOR); s 344 libavformat/sctp.c ret = send(s->fd, buf, size, MSG_NOSIGNAL); s 351 libavformat/sctp.c SCTPContext *s = h->priv_data; s 352 libavformat/sctp.c closesocket(s->fd); s 358 libavformat/sctp.c SCTPContext *s = h->priv_data; s 359 libavformat/sctp.c return s->fd; s 74 libavformat/sdp.c static void sdp_write_header(char *buff, int size, struct sdp_session_level *s) s 79 libavformat/sdp.c s->sdp_version, s 80 libavformat/sdp.c s->id, s->version, s->src_type, s->src_addr, s 81 libavformat/sdp.c s->name); s 82 libavformat/sdp.c sdp_write_address(buff, size, s->dst_addr, s->dst_type, s->ttl); s 85 libavformat/sdp.c s->start_time, s->end_time); s 154 libavformat/sdp.c static char *extradata2psets(AVFormatContext *s, AVCodecParameters *par) s 166 libavformat/sdp.c av_log(s, AV_LOG_ERROR, "Too much extradata!\n"); s 179 libavformat/sdp.c av_log(s, AV_LOG_ERROR, "Cannot allocate memory for the parameter sets.\n"); s 206 libavformat/sdp.c av_log(s, AV_LOG_ERROR, "Cannot Base64-encode %"PTRDIFF_SPECIFIER" %"PTRDIFF_SPECIFIER"!\n", MAX_PSET_SIZE - (p - psets), r1 - r); s 327 libavformat/sdp.c static char *extradata2config(AVFormatContext *s, AVCodecParameters *par) s 332 libavformat/sdp.c av_log(s, AV_LOG_ERROR, "Too much extradata!\n"); s 338 libavformat/sdp.c av_log(s, AV_LOG_ERROR, "Cannot allocate memory for the config info.\n"); s 348 libavformat/sdp.c static char *xiph_extradata2config(AVFormatContext *s, AVCodecParameters *par) s 364 libavformat/sdp.c av_log(s, AV_LOG_ERROR, "Unsupported Xiph codec ID\n"); s 371 libavformat/sdp.c av_log(s, AV_LOG_ERROR, "Extradata corrupt.\n"); s 413 libavformat/sdp.c av_log(s, AV_LOG_ERROR, s 447 libavformat/sdp.c static char *latm_context2config(AVFormatContext *s, AVCodecParameters *par) s 461 libavformat/sdp.c av_log(s, AV_LOG_ERROR, "Unsupported sample rate\n"); s 474 libavformat/sdp.c av_log(s, AV_LOG_ERROR, "Cannot allocate memory for the config info.\n"); s 775 libavformat/sdp.c struct sdp_session_level s = { 0 }; s 780 libavformat/sdp.c s.user = "-"; s 781 libavformat/sdp.c s.src_addr = "127.0.0.1"; /* FIXME: Properly set this */ s 782 libavformat/sdp.c s.src_type = "IP4"; s 783 libavformat/sdp.c s.name = title ? title->value : "No Name"; s 794 libavformat/sdp.c s.dst_addr = dst; s 795 libavformat/sdp.c s.dst_type = dst_type; s 796 libavformat/sdp.c s.ttl = ttl; s 798 libavformat/sdp.c s.src_addr = "::1"; s 799 libavformat/sdp.c s.src_type = "IP6"; s 803 libavformat/sdp.c sdp_write_header(buf, size, &s); s 36 libavformat/sdr2.c static int sdr2_read_header(AVFormatContext *s) s 40 libavformat/sdr2.c ast = avformat_new_stream(s, 0); s 44 libavformat/sdr2.c st = avformat_new_stream(s, 0); s 48 libavformat/sdr2.c avio_skip(s->pb, 20); s 49 libavformat/sdr2.c avpriv_set_pts_info(st, 64, 1, avio_rl32(s->pb)); s 51 libavformat/sdr2.c st->codecpar->width = avio_rl32(s->pb); s 52 libavformat/sdr2.c st->codecpar->height = avio_rl32(s->pb); s 62 libavformat/sdr2.c avio_seek(s->pb, FIRST, SEEK_SET); s 73 libavformat/sdr2.c static int sdr2_read_packet(AVFormatContext *s, AVPacket *pkt) s 79 libavformat/sdr2.c pos = avio_tell(s->pb); s 81 libavformat/sdr2.c flags = avio_rl32(s->pb); s 82 libavformat/sdr2.c avio_skip(s->pb, 4); s 84 libavformat/sdr2.c next = avio_rl32(s->pb); s 88 libavformat/sdr2.c avio_skip(s->pb, 6); s 89 libavformat/sdr2.c is_video = avio_rl32(s->pb); s 90 libavformat/sdr2.c avio_skip(s->pb, 30); s 96 libavformat/sdr2.c ret = avio_read(s->pb, pkt->data + 24, next - 52); s 102 libavformat/sdr2.c ret = av_get_packet(s->pb, pkt, next - 52); s 80 libavformat/sdsdec.c SDSContext *s = ctx->priv_data; s 92 libavformat/sdsdec.c s->bit_depth = avio_r8(pb); s 93 libavformat/sdsdec.c if (s->bit_depth < 8 || s->bit_depth > 28) s 96 libavformat/sdsdec.c if (s->bit_depth < 14) { s 97 libavformat/sdsdec.c s->read_block = byte2_read; s 98 libavformat/sdsdec.c s->size = 60 * 4; s 99 libavformat/sdsdec.c } else if (s->bit_depth < 21) { s 100 libavformat/sdsdec.c s->read_block = byte3_read; s 101 libavformat/sdsdec.c s->size = 40 * 4; s 103 libavformat/sdsdec.c s->read_block = byte4_read; s 104 libavformat/sdsdec.c s->size = 30 * 4; s 115 libavformat/sdsdec.c st->duration = (avio_size(pb) - 21) / (127) * s->size / 4; s 124 libavformat/sdsdec.c SDSContext *s = ctx->priv_data; s 137 libavformat/sdsdec.c ret = av_new_packet(pkt, s->size); s 141 libavformat/sdsdec.c ret = avio_read(pb, s->data, 120); s 143 libavformat/sdsdec.c s->read_block(s->data, (uint32_t *)pkt->data); s 35 libavformat/sdxdec.c static int sdx_read_header(AVFormatContext *s) s 40 libavformat/sdxdec.c avio_skip(s->pb, 4); s 41 libavformat/sdxdec.c while (!avio_feof(s->pb)) { s 42 libavformat/sdxdec.c if (avio_r8(s->pb) == 0x1a) s 45 libavformat/sdxdec.c if (avio_r8(s->pb) != 1) s 47 libavformat/sdxdec.c length = avio_r8(s->pb); s 48 libavformat/sdxdec.c avio_skip(s->pb, length); s 49 libavformat/sdxdec.c avio_skip(s->pb, 4); s 50 libavformat/sdxdec.c depth = avio_r8(s->pb); s 52 libavformat/sdxdec.c st = avformat_new_stream(s, NULL); s 58 libavformat/sdxdec.c st->codecpar->sample_rate = avio_rl32(s->pb); s 75 libavformat/sdxdec.c avio_skip(s->pb, 16); s 78 libavformat/segafilm.c static int film_read_close(AVFormatContext *s) s 80 libavformat/segafilm.c FilmDemuxContext *film = s->priv_data; s 87 libavformat/segafilm.c static int film_read_header(AVFormatContext *s) s 89 libavformat/segafilm.c FilmDemuxContext *film = s->priv_data; s 90 libavformat/segafilm.c AVIOContext *pb = s->pb; s 149 libavformat/segafilm.c st = avformat_new_stream(s, NULL); s 163 libavformat/segafilm.c av_log(s, AV_LOG_ERROR, "raw video is using unhandled %dbpp\n", scratch[20]); s 170 libavformat/segafilm.c st = avformat_new_stream(s, NULL); s 207 libavformat/segafilm.c for (i = 0; i < s->nb_streams; i++) { s 208 libavformat/segafilm.c st = s->streams[i]; s 245 libavformat/segafilm.c av_add_index_entry(s->streams[film->video_stream_index], s 254 libavformat/segafilm.c s->streams[film->audio_stream_index]->duration = audio_frame_counter; s 257 libavformat/segafilm.c s->streams[film->video_stream_index]->duration = video_frame_counter; s 263 libavformat/segafilm.c film_read_close(s); s 267 libavformat/segafilm.c static int film_read_packet(AVFormatContext *s, s 270 libavformat/segafilm.c FilmDemuxContext *film = s->priv_data; s 271 libavformat/segafilm.c AVIOContext *pb = s->pb; s 315 libavformat/segafilm.c static int film_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 317 libavformat/segafilm.c FilmDemuxContext *film = s->priv_data; s 318 libavformat/segafilm.c AVStream *st = s->streams[stream_index]; s 324 libavformat/segafilm.c pos = avio_seek(s->pb, st->index_entries[ret].pos, SEEK_SET); s 144 libavformat/segment.c static int segment_mux_init(AVFormatContext *s) s 146 libavformat/segment.c SegmentContext *seg = s->priv_data; s 156 libavformat/segment.c oc->interrupt_callback = s->interrupt_callback; s 157 libavformat/segment.c oc->max_delay = s->max_delay; s 158 libavformat/segment.c av_dict_copy(&oc->metadata, s->metadata, 0); s 159 libavformat/segment.c oc->opaque = s->opaque; s 160 libavformat/segment.c oc->io_close = s->io_close; s 161 libavformat/segment.c oc->io_open = s->io_open; s 162 libavformat/segment.c oc->flags = s->flags; s 164 libavformat/segment.c for (i = 0; i < s->nb_streams; i++) { s 165 libavformat/segment.c AVStream *st, *ist = s->streams[i]; s 195 libavformat/segment.c static int set_segment_filename(AVFormatContext *s) s 197 libavformat/segment.c SegmentContext *seg = s->priv_data; s 211 libavformat/segment.c if (!strftime(buf, sizeof(buf), s->url, tm)) { s 216 libavformat/segment.c s->url, seg->segment_idx) < 0) { s 217 libavformat/segment.c av_log(oc, AV_LOG_ERROR, "Invalid segment filename template '%s'\n", s->url); s 239 libavformat/segment.c static int segment_start(AVFormatContext *s, int write_header) s 241 libavformat/segment.c SegmentContext *seg = s->priv_data; s 248 libavformat/segment.c if ((err = segment_mux_init(s)) < 0) s 257 libavformat/segment.c if ((err = set_segment_filename(s)) < 0) s 260 libavformat/segment.c if ((err = s->io_open(s, &oc->pb, oc->url, AVIO_FLAG_WRITE, NULL)) < 0) { s 261 libavformat/segment.c av_log(s, AV_LOG_ERROR, "Failed to open segment '%s'\n", oc->url); s 284 libavformat/segment.c static int segment_list_open(AVFormatContext *s) s 286 libavformat/segment.c SegmentContext *seg = s->priv_data; s 290 libavformat/segment.c ret = s->io_open(s, &seg->list_pb, seg->temp_list_filename, AVIO_FLAG_WRITE, NULL); s 292 libavformat/segment.c av_log(s, AV_LOG_ERROR, "Failed to open segment list '%s'\n", seg->list); s 306 libavformat/segment.c av_log(s, AV_LOG_VERBOSE, "EXT-X-MEDIA-SEQUENCE:%d\n", s 354 libavformat/segment.c static int segment_end(AVFormatContext *s, int write_trailer, int is_last) s 356 libavformat/segment.c SegmentContext *seg = s->priv_data; s 374 libavformat/segment.c av_log(s, AV_LOG_ERROR, "Failure occurred when ending segment '%s'\n", s 402 libavformat/segment.c if ((ret = segment_list_open(s)) < 0) s 405 libavformat/segment.c segment_list_print_entry(seg->list_pb, seg->list_type, entry, s); s 408 libavformat/segment.c ff_format_io_close(s, &seg->list_pb); s 410 libavformat/segment.c ff_rename(seg->temp_list_filename, seg->list, s); s 412 libavformat/segment.c segment_list_print_entry(seg->list_pb, seg->list_type, &seg->cur_entry, s); s 417 libavformat/segment.c av_log(s, AV_LOG_VERBOSE, "segment:'%s' count:%d ended\n", s 422 libavformat/segment.c tcr = av_dict_get(s->metadata, "timecode", NULL, 0); s 425 libavformat/segment.c for (i = 0; i < s->nb_streams; i++) { s 426 libavformat/segment.c if (s->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { s 427 libavformat/segment.c rate = s->streams[i]->avg_frame_rate;/* Get fps from the video stream */ s 428 libavformat/segment.c err = av_timecode_init_from_string(&tc, rate, tcr->value, s); s 430 libavformat/segment.c av_log(s, AV_LOG_WARNING, "Could not increment global timecode, error occurred during timecode creation.\n"); s 434 libavformat/segment.c av_dict_set(&s->metadata, "timecode", s 440 libavformat/segment.c av_log(s, AV_LOG_WARNING, "Could not increment global timecode, no global timecode metadata found.\n"); s 442 libavformat/segment.c for (i = 0; i < s->nb_streams; i++) { s 443 libavformat/segment.c if (s->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { s 446 libavformat/segment.c AVRational st_rate = s->streams[i]->avg_frame_rate; s 447 libavformat/segment.c AVDictionaryEntry *st_tcr = av_dict_get(s->streams[i]->metadata, "timecode", NULL, 0); s 449 libavformat/segment.c if ((av_timecode_init_from_string(&st_tc, st_rate, st_tcr->value, s) < 0)) { s 450 libavformat/segment.c av_log(s, AV_LOG_WARNING, "Could not increment stream %d timecode, error occurred during timecode creation.\n", i); s 454 libavformat/segment.c av_dict_set(&s->streams[i]->metadata, "timecode", av_timecode_make_string(&st_tc, st_buf, 0), 0); s 603 libavformat/segment.c static int select_reference_stream(AVFormatContext *s) s 605 libavformat/segment.c SegmentContext *seg = s->priv_data; s 625 libavformat/segment.c for (i = 0; i < s->nb_streams; i++) { s 626 libavformat/segment.c type = s->streams[i]->codecpar->codec_type; s 629 libavformat/segment.c && !(s->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC)) s 639 libavformat/segment.c for (i = 0; i < s->nb_streams; i++) { s 640 libavformat/segment.c ret = avformat_match_stream_specifier(s, s->streams[i], s 652 libavformat/segment.c av_log(s, AV_LOG_ERROR, "Could not select stream matching identifier '%s'\n", s 660 libavformat/segment.c static void seg_free(AVFormatContext *s) s 662 libavformat/segment.c SegmentContext *seg = s->priv_data; s 668 libavformat/segment.c static int seg_init(AVFormatContext *s) s 670 libavformat/segment.c SegmentContext *seg = s->priv_data; s 686 libavformat/segment.c av_log(s, AV_LOG_WARNING, "NOTE: the option initial_offset is deprecated," s 691 libavformat/segment.c av_log(s, AV_LOG_ERROR, s 698 libavformat/segment.c if ((ret = parse_times(s, &seg->times, &seg->nb_times, seg->times_str)) < 0) s 701 libavformat/segment.c if ((ret = parse_frames(s, &seg->frames, &seg->nb_frames, seg->frames_str)) < 0) s 708 libavformat/segment.c av_log(s, AV_LOG_ERROR, s 715 libavformat/segment.c av_log(s, AV_LOG_ERROR, "Invalid negative segment_time with segment_atclocktime option set\n"); s 731 libavformat/segment.c if ((ret = segment_list_open(s)) < 0) s 740 libavformat/segment.c av_log(s, AV_LOG_WARNING, "'ext' list type option is deprecated in favor of 'csv'\n"); s 742 libavformat/segment.c if ((ret = select_reference_stream(s)) < 0) s 744 libavformat/segment.c av_log(s, AV_LOG_VERBOSE, "Selected stream id:%d type:%s\n", s 746 libavformat/segment.c av_get_media_type_string(s->streams[seg->reference_stream_index]->codecpar->codec_type)); s 748 libavformat/segment.c seg->oformat = av_guess_format(seg->format, s->url, NULL); s 753 libavformat/segment.c av_log(s, AV_LOG_ERROR, "format %s not supported.\n", s 758 libavformat/segment.c if ((ret = segment_mux_init(s)) < 0) s 761 libavformat/segment.c if ((ret = set_segment_filename(s)) < 0) s 766 libavformat/segment.c if ((ret = s->io_open(s, &oc->pb, s 769 libavformat/segment.c av_log(s, AV_LOG_ERROR, "Failed to open segment '%s'\n", oc->url); s 783 libavformat/segment.c av_log(s, AV_LOG_ERROR, s 796 libavformat/segment.c av_assert0(s->nb_streams == oc->nb_streams); s 804 libavformat/segment.c for (i = 0; i < s->nb_streams; i++) { s 806 libavformat/segment.c AVStream *outer_st = s->streams[i]; s 810 libavformat/segment.c if (oc->avoid_negative_ts > 0 && s->avoid_negative_ts < 0) s 811 libavformat/segment.c s->avoid_negative_ts = 1; s 816 libavformat/segment.c static int seg_write_header(AVFormatContext *s) s 818 libavformat/segment.c SegmentContext *seg = s->priv_data; s 823 libavformat/segment.c for (i = 0; i < s->nb_streams; i++) { s 827 libavformat/segment.c ipar = s->streams[i]->codecpar; s 837 libavformat/segment.c st->sample_aspect_ratio = s->streams[i]->sample_aspect_ratio; s 838 libavformat/segment.c st->time_base = s->streams[i]->time_base; s 861 libavformat/segment.c static int seg_write_packet(AVFormatContext *s, AVPacket *pkt) s 863 libavformat/segment.c SegmentContext *seg = s->priv_data; s 864 libavformat/segment.c AVStream *st = s->streams[pkt->stream_index]; s 881 libavformat/segment.c av_log(s, AV_LOG_WARNING, "Unable to add extradata to stream. Output segments may be invalid.\n"); s 910 libavformat/segment.c ff_dlog(s, "packet stream:%d pts:%s pts_time:%s duration_time:%s is_key:%d frame:%d\n", s 927 libavformat/segment.c if ((ret = segment_end(s, seg->individual_header_trailer, 0)) < 0) s 930 libavformat/segment.c if ((ret = segment_start(s, seg->individual_header_trailer)) < 0) s 951 libavformat/segment.c av_log(s, AV_LOG_VERBOSE, "segment:'%s' starts with packet stream:%d pts:%s pts_time:%s frame:%d\n", s 956 libavformat/segment.c av_log(s, AV_LOG_DEBUG, "stream:%d start_pts_time:%s pts:%s pts_time:%s dts:%s dts_time:%s", s 970 libavformat/segment.c av_log(s, AV_LOG_DEBUG, " -> pts:%s pts_time:%s dts:%s dts_time:%s\n", s 974 libavformat/segment.c ret = ff_write_chained(seg->avf, pkt->stream_index, pkt, s, s 986 libavformat/segment.c static int seg_write_trailer(struct AVFormatContext *s) s 988 libavformat/segment.c SegmentContext *seg = s->priv_data; s 997 libavformat/segment.c if ((ret = segment_end(s, 0, 1)) < 0) s 1004 libavformat/segment.c ret = segment_end(s, 1, 1); s 1008 libavformat/segment.c ff_format_io_close(s, &seg->list_pb); s 1028 libavformat/segment.c static int seg_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) s 1030 libavformat/segment.c SegmentContext *seg = s->priv_data; s 1035 libavformat/segment.c AVStream *st = s->streams[pkt->stream_index]; s 46 libavformat/serdec.c static int ser_read_header(AVFormatContext *s) s 48 libavformat/serdec.c SERDemuxerContext *ser = s->priv_data; s 54 libavformat/serdec.c st = avformat_new_stream(s, NULL); s 58 libavformat/serdec.c avio_skip(s->pb, 14); s 59 libavformat/serdec.c avio_skip(s->pb, 4); s 60 libavformat/serdec.c color_id = avio_rl32(s->pb); s 61 libavformat/serdec.c endian = avio_rl32(s->pb); s 62 libavformat/serdec.c ser->width = avio_rl32(s->pb); s 63 libavformat/serdec.c ser->height = avio_rl32(s->pb); s 64 libavformat/serdec.c depth = avio_rl32(s->pb); s 65 libavformat/serdec.c st->nb_frames = st->duration = avio_rl32(s->pb); s 66 libavformat/serdec.c avio_skip(s->pb, 120); s 67 libavformat/serdec.c avio_skip(s->pb, 8); s 68 libavformat/serdec.c avio_skip(s->pb, 8); s 83 libavformat/serdec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 94 libavformat/serdec.c s->packet_size = packet_size; s 95 libavformat/serdec.c st->codecpar->bit_rate = av_rescale_q(s->packet_size, s 102 libavformat/serdec.c static int ser_read_packet(AVFormatContext *s, AVPacket *pkt) s 104 libavformat/serdec.c SERDemuxerContext *ser = s->priv_data; s 108 libavformat/serdec.c pos = avio_tell(s->pb); s 112 libavformat/serdec.c ret = av_get_packet(s->pb, pkt, s->packet_size); s 113 libavformat/serdec.c pkt->pts = pkt->dts = (pkt->pos - s->internal->data_offset) / s->packet_size; s 85 libavformat/sierravmd.c static int vmd_read_header(AVFormatContext *s) s 87 libavformat/sierravmd.c VmdDemuxContext *vmd = s->priv_data; s 88 libavformat/sierravmd.c AVIOContext *pb = s->pb; s 116 libavformat/sierravmd.c vst = avformat_new_stream(s, NULL); s 138 libavformat/sierravmd.c st = avformat_new_stream(s, NULL); s 188 libavformat/sierravmd.c av_log(s, AV_LOG_ERROR, "vmd->frame_count * vmd->frames_per_block too large\n"); s 214 libavformat/sierravmd.c av_log(s, AV_LOG_ERROR, "Failed to read frame record\n"); s 222 libavformat/sierravmd.c av_log(s, AV_LOG_ERROR, "Invalid frame size\n"); s 269 libavformat/sierravmd.c static int vmd_read_packet(AVFormatContext *s, s 272 libavformat/sierravmd.c VmdDemuxContext *vmd = s->priv_data; s 273 libavformat/sierravmd.c AVIOContext *pb = s->pb; s 302 libavformat/sierravmd.c av_log(s, AV_LOG_DEBUG, " dispatching %s frame with %d bytes and pts %"PRId64"\n", s 312 libavformat/sierravmd.c static int vmd_read_close(AVFormatContext *s) s 314 libavformat/sierravmd.c VmdDemuxContext *vmd = s->priv_data; s 75 libavformat/siff.c static int create_audio_stream(AVFormatContext *s, SIFFContext *c) s 78 libavformat/siff.c ast = avformat_new_stream(s, NULL); s 92 libavformat/siff.c static int siff_parse_vbv1(AVFormatContext *s, SIFFContext *c, AVIOContext *pb) s 98 libavformat/siff.c av_log(s, AV_LOG_ERROR, "Header chunk is missing\n"); s 102 libavformat/siff.c av_log(s, AV_LOG_ERROR, "Header chunk size is incorrect\n"); s 106 libavformat/siff.c av_log(s, AV_LOG_ERROR, "Incorrect header version\n"); s 114 libavformat/siff.c av_log(s, AV_LOG_ERROR, "File contains no frames ???\n"); s 123 libavformat/siff.c st = avformat_new_stream(s, NULL); s 141 libavformat/siff.c return create_audio_stream(s, c); s 145 libavformat/siff.c static int siff_parse_soun(AVFormatContext *s, SIFFContext *c, AVIOContext *pb) s 148 libavformat/siff.c av_log(s, AV_LOG_ERROR, "Header chunk is missing\n"); s 152 libavformat/siff.c av_log(s, AV_LOG_ERROR, "Header chunk size is incorrect\n"); s 159 libavformat/siff.c return create_audio_stream(s, c); s 162 libavformat/siff.c static int siff_read_header(AVFormatContext *s) s 164 libavformat/siff.c AVIOContext *pb = s->pb; s 165 libavformat/siff.c SIFFContext *c = s->priv_data; s 175 libavformat/siff.c av_log(s, AV_LOG_ERROR, "Not a VBV file\n"); s 179 libavformat/siff.c if (tag == TAG_VBV1 && (ret = siff_parse_vbv1(s, c, pb)) < 0) s 181 libavformat/siff.c if (tag == TAG_SOUN && (ret = siff_parse_soun(s, c, pb)) < 0) s 184 libavformat/siff.c av_log(s, AV_LOG_ERROR, "'BODY' chunk is missing\n"); s 192 libavformat/siff.c static int siff_read_packet(AVFormatContext *s, AVPacket *pkt) s 194 libavformat/siff.c SIFFContext *c = s->priv_data; s 202 libavformat/siff.c c->pktsize = avio_rl32(s->pb) - 4; s 203 libavformat/siff.c c->flags = avio_rl16(s->pb); s 206 libavformat/siff.c avio_read(s->pb, c->gmc, c->gmcsize); s 207 libavformat/siff.c c->sndsize = (c->flags & VB_HAS_AUDIO) ? avio_rl32(s->pb) : 0; s 216 libavformat/siff.c size = ffio_limit(s->pb, size); s 222 libavformat/siff.c if (avio_read(s->pb, pkt->data + 2 + c->gmcsize, size) != size) { s 228 libavformat/siff.c int pktsize = av_get_packet(s->pb, pkt, c->sndsize - 4); s 240 libavformat/siff.c int pktsize = av_get_packet(s->pb, pkt, c->block_align); s 89 libavformat/smacker.c static int smacker_read_header(AVFormatContext *s) s 91 libavformat/smacker.c AVIOContext *pb = s->pb; s 92 libavformat/smacker.c SmackerContext *smk = s->priv_data; s 108 libavformat/smacker.c av_log(s, AV_LOG_ERROR, "pts_inc %d is too large\n", pts_inc); s 116 libavformat/smacker.c av_log(s, AV_LOG_ERROR, "Too many frames: %"PRIu32"\n", smk->frames); s 125 libavformat/smacker.c av_log(s, AV_LOG_ERROR, "treesize too large\n"); s 129 libavformat/smacker.c st = avformat_new_stream(s, NULL); s 154 libavformat/smacker.c av_log(s, AV_LOG_ERROR, s 170 libavformat/smacker.c AVStream *ast = avformat_new_stream(s, NULL); s 239 libavformat/smacker.c static int smacker_read_packet(AVFormatContext *s, AVPacket *pkt) s 241 libavformat/smacker.c SmackerContext *smk = s->priv_data; s 248 libavformat/smacker.c if (avio_feof(s->pb) || smk->cur_frame >= smk->frames) s 253 libavformat/smacker.c avio_seek(s->pb, smk->nextpos, 0); s 263 libavformat/smacker.c size = avio_r8(s->pb); s 270 libavformat/smacker.c pos = avio_tell(s->pb) + size; s 272 libavformat/smacker.c t = avio_r8(s->pb); s 277 libavformat/smacker.c off = avio_r8(s->pb); s 280 libavformat/smacker.c av_log(s, AV_LOG_ERROR, s 295 libavformat/smacker.c *pal++ = smk_pal[avio_r8(s->pb) & 0x3F]; s 296 libavformat/smacker.c *pal++ = smk_pal[avio_r8(s->pb) & 0x3F]; s 300 libavformat/smacker.c avio_seek(s->pb, pos, 0); s 311 libavformat/smacker.c size = avio_rl32(s->pb) - 4; s 313 libavformat/smacker.c av_log(s, AV_LOG_ERROR, "Invalid audio part size\n"); s 324 libavformat/smacker.c ret = avio_read(s->pb, smk->bufs[smk->curstream], size); s 339 libavformat/smacker.c ret = avio_read(s->pb, pkt->data + 769, frame_size); s 346 libavformat/smacker.c smk->nextpos = avio_tell(s->pb); s 363 libavformat/smacker.c static int smacker_read_close(AVFormatContext *s) s 365 libavformat/smacker.c SmackerContext *smk = s->priv_data; s 46 libavformat/smjpegdec.c static int smjpeg_read_header(AVFormatContext *s) s 48 libavformat/smjpegdec.c SMJPEGContext *sc = s->priv_data; s 50 libavformat/smjpegdec.c AVIOContext *pb = s->pb; s 60 libavformat/smjpegdec.c avpriv_request_sample(s, "Unknown version %"PRIu32, version); s 76 libavformat/smjpegdec.c av_log(s, AV_LOG_ERROR, "error when reading comment\n"); s 80 libavformat/smjpegdec.c av_dict_set(&s->metadata, "comment", comment, s 85 libavformat/smjpegdec.c avpriv_request_sample(s, "Multiple audio streams"); s 91 libavformat/smjpegdec.c ast = avformat_new_stream(s, 0); s 108 libavformat/smjpegdec.c avpriv_request_sample(s, "Multiple video streams"); s 114 libavformat/smjpegdec.c vst = avformat_new_stream(s, 0); s 132 libavformat/smjpegdec.c av_log(s, AV_LOG_ERROR, "unknown header %"PRIx32"\n", htype); s 140 libavformat/smjpegdec.c static int smjpeg_read_packet(AVFormatContext *s, AVPacket *pkt) s 142 libavformat/smjpegdec.c SMJPEGContext *sc = s->priv_data; s 147 libavformat/smjpegdec.c if (avio_feof(s->pb)) s 149 libavformat/smjpegdec.c pos = avio_tell(s->pb); s 150 libavformat/smjpegdec.c dtype = avio_rl32(s->pb); s 155 libavformat/smjpegdec.c timestamp = avio_rb32(s->pb); s 156 libavformat/smjpegdec.c size = avio_rb32(s->pb); s 157 libavformat/smjpegdec.c ret = av_get_packet(s->pb, pkt, size); s 165 libavformat/smjpegdec.c timestamp = avio_rb32(s->pb); s 166 libavformat/smjpegdec.c size = avio_rb32(s->pb); s 167 libavformat/smjpegdec.c ret = av_get_packet(s->pb, pkt, size); s 176 libavformat/smjpegdec.c av_log(s, AV_LOG_ERROR, "unknown chunk %"PRIx32"\n", dtype); s 35 libavformat/smjpegenc.c static int smjpeg_write_header(AVFormatContext *s) s 38 libavformat/smjpegenc.c AVIOContext *pb = s->pb; s 41 libavformat/smjpegenc.c if (s->nb_streams > 2) { s 42 libavformat/smjpegenc.c av_log(s, AV_LOG_ERROR, "more than >2 streams are not supported\n"); s 49 libavformat/smjpegenc.c ff_standardize_creation_time(s); s 50 libavformat/smjpegenc.c while ((t = av_dict_get(s->metadata, "", t, AV_DICT_IGNORE_SUFFIX))) { s 58 libavformat/smjpegenc.c for (n = 0; n < s->nb_streams; n++) { s 59 libavformat/smjpegenc.c AVStream *st = s->streams[n]; s 64 libavformat/smjpegenc.c av_log(s, AV_LOG_ERROR, "unsupported audio codec\n"); s 77 libavformat/smjpegenc.c av_log(s, AV_LOG_ERROR, "unsupported video codec\n"); s 95 libavformat/smjpegenc.c static int smjpeg_write_packet(AVFormatContext *s, AVPacket *pkt) s 97 libavformat/smjpegenc.c SMJPEGMuxContext *smc = s->priv_data; s 98 libavformat/smjpegenc.c AVIOContext *pb = s->pb; s 99 libavformat/smjpegenc.c AVStream *st = s->streams[pkt->stream_index]; s 117 libavformat/smjpegenc.c static int smjpeg_write_trailer(AVFormatContext *s) s 119 libavformat/smjpegenc.c SMJPEGMuxContext *smc = s->priv_data; s 120 libavformat/smjpegenc.c AVIOContext *pb = s->pb; s 165 libavformat/smoothstreamingenc.c static void ism_free(AVFormatContext *s) s 167 libavformat/smoothstreamingenc.c SmoothStreamingContext *c = s->priv_data; s 171 libavformat/smoothstreamingenc.c for (i = 0; i < s->nb_streams; i++) { s 209 libavformat/smoothstreamingenc.c static int write_manifest(AVFormatContext *s, int final) s 211 libavformat/smoothstreamingenc.c SmoothStreamingContext *c = s->priv_data; s 217 libavformat/smoothstreamingenc.c snprintf(filename, sizeof(filename), "%s/Manifest", s->url); s 218 libavformat/smoothstreamingenc.c snprintf(temp_filename, sizeof(temp_filename), "%s/Manifest.tmp", s->url); s 219 libavformat/smoothstreamingenc.c ret = s->io_open(s, &out, temp_filename, AVIO_FLAG_WRITE, NULL); s 221 libavformat/smoothstreamingenc.c av_log(s, AV_LOG_ERROR, "Unable to open %s for writing\n", temp_filename); s 225 libavformat/smoothstreamingenc.c for (i = 0; i < s->nb_streams; i++) { s 231 libavformat/smoothstreamingenc.c if (s->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { s 254 libavformat/smoothstreamingenc.c for (i = 0; i < s->nb_streams; i++) { s 256 libavformat/smoothstreamingenc.c if (s->streams[i]->codecpar->codec_type != AVMEDIA_TYPE_VIDEO) s 259 libavformat/smoothstreamingenc.c avio_printf(out, "<QualityLevel Index=\"%d\" Bitrate=\"%"PRId64"\" FourCC=\"%s\" MaxWidth=\"%d\" MaxHeight=\"%d\" CodecPrivateData=\"%s\" />\n", index, s->streams[i]->codecpar->bit_rate, os->fourcc, s->streams[i]->codecpar->width, s->streams[i]->codecpar->height, os->private_str); s 268 libavformat/smoothstreamingenc.c for (i = 0; i < s->nb_streams; i++) { s 270 libavformat/smoothstreamingenc.c if (s->streams[i]->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) s 273 libavformat/smoothstreamingenc.c avio_printf(out, "<QualityLevel Index=\"%d\" Bitrate=\"%"PRId64"\" FourCC=\"%s\" SamplingRate=\"%d\" Channels=\"%d\" BitsPerSample=\"16\" PacketSize=\"%d\" AudioTag=\"%d\" CodecPrivateData=\"%s\" />\n", index, s->streams[i]->codecpar->bit_rate, os->fourcc, s->streams[i]->codecpar->sample_rate, s->streams[i]->codecpar->channels, os->packet_size, os->audio_tag, os->private_str); s 281 libavformat/smoothstreamingenc.c ff_format_io_close(s, &out); s 282 libavformat/smoothstreamingenc.c return ff_rename(temp_filename, filename, s); s 285 libavformat/smoothstreamingenc.c static int ism_write_header(AVFormatContext *s) s 287 libavformat/smoothstreamingenc.c SmoothStreamingContext *c = s->priv_data; s 291 libavformat/smoothstreamingenc.c if (mkdir(s->url, 0777) == -1 && errno != EEXIST) { s 293 libavformat/smoothstreamingenc.c av_log(s, AV_LOG_ERROR, "mkdir failed\n"); s 303 libavformat/smoothstreamingenc.c c->streams = av_mallocz_array(s->nb_streams, sizeof(*c->streams)); s 309 libavformat/smoothstreamingenc.c for (i = 0; i < s->nb_streams; i++) { s 315 libavformat/smoothstreamingenc.c if (!s->streams[i]->codecpar->bit_rate) { s 316 libavformat/smoothstreamingenc.c av_log(s, AV_LOG_WARNING, "No bit rate set for stream %d\n", i); s 318 libavformat/smoothstreamingenc.c snprintf(os->dirname, sizeof(os->dirname), "%s/QualityLevels(Tmp_%d)", s->url, i); s 320 libavformat/smoothstreamingenc.c snprintf(os->dirname, sizeof(os->dirname), "%s/QualityLevels(%"PRId64")", s->url, s->streams[i]->codecpar->bit_rate); s 325 libavformat/smoothstreamingenc.c av_log(s, AV_LOG_ERROR, "mkdir failed\n"); s 330 libavformat/smoothstreamingenc.c if (!ctx || ff_copy_whiteblacklists(ctx, s) < 0) { s 335 libavformat/smoothstreamingenc.c ctx->interrupt_callback = s->interrupt_callback; s 341 libavformat/smoothstreamingenc.c avcodec_parameters_copy(st->codecpar, s->streams[i]->codecpar); s 342 libavformat/smoothstreamingenc.c st->sample_aspect_ratio = s->streams[i]->sample_aspect_ratio; s 343 libavformat/smoothstreamingenc.c st->time_base = s->streams[i]->time_base; s 360 libavformat/smoothstreamingenc.c s->streams[i]->time_base = st->time_base; s 369 libavformat/smoothstreamingenc.c av_log(s, AV_LOG_ERROR, "Unsupported video codec\n"); s 383 libavformat/smoothstreamingenc.c av_log(s, AV_LOG_ERROR, "Unsupported audio codec\n"); s 393 libavformat/smoothstreamingenc.c av_log(s, AV_LOG_WARNING, "no video stream and no min frag duration set\n"); s 397 libavformat/smoothstreamingenc.c ret = write_manifest(s, 0); s 401 libavformat/smoothstreamingenc.c ism_free(s); s 405 libavformat/smoothstreamingenc.c static int parse_fragment(AVFormatContext *s, const char *filename, int64_t *start_ts, int64_t *duration, int64_t *moof_size, int64_t size) s 410 libavformat/smoothstreamingenc.c if ((ret = s->io_open(s, &in, filename, AVIO_FLAG_READ, NULL)) < 0) s 451 libavformat/smoothstreamingenc.c ff_format_io_close(s, &in); s 483 libavformat/smoothstreamingenc.c static int copy_moof(AVFormatContext *s, const char* infile, const char *outfile, int64_t size) s 487 libavformat/smoothstreamingenc.c if ((ret = s->io_open(s, &in, infile, AVIO_FLAG_READ, NULL)) < 0) s 489 libavformat/smoothstreamingenc.c if ((ret = s->io_open(s, &out, outfile, AVIO_FLAG_WRITE, NULL)) < 0) { s 490 libavformat/smoothstreamingenc.c ff_format_io_close(s, &in); s 505 libavformat/smoothstreamingenc.c ff_format_io_close(s, &out); s 506 libavformat/smoothstreamingenc.c ff_format_io_close(s, &in); s 510 libavformat/smoothstreamingenc.c static int ism_flush(AVFormatContext *s, int final) s 512 libavformat/smoothstreamingenc.c SmoothStreamingContext *c = s->priv_data; s 515 libavformat/smoothstreamingenc.c for (i = 0; i < s->nb_streams; i++) { s 524 libavformat/smoothstreamingenc.c ret = ffurl_open_whitelist(&os->out, filename, AVIO_FLAG_WRITE, &s->interrupt_callback, NULL, s->protocol_whitelist, s->protocol_blacklist, NULL); s 536 libavformat/smoothstreamingenc.c if ((ret = parse_fragment(s, filename, &start_ts, &duration, &moof_size, size)) < 0) s 539 libavformat/smoothstreamingenc.c if (!s->streams[i]->codecpar->bit_rate) { s 540 libavformat/smoothstreamingenc.c int64_t bitrate = (int64_t) size * 8 * AV_TIME_BASE / av_rescale_q(duration, s->streams[i]->time_base, AV_TIME_BASE_Q); s 542 libavformat/smoothstreamingenc.c av_log(s, AV_LOG_ERROR, "calculating bitrate got zero.\n"); s 547 libavformat/smoothstreamingenc.c av_log(s, AV_LOG_DEBUG, "calculated bitrate: %"PRId64"\n", bitrate); s 548 libavformat/smoothstreamingenc.c s->streams[i]->codecpar->bit_rate = bitrate; s 550 libavformat/smoothstreamingenc.c snprintf(os->dirname, sizeof(os->dirname), "%s/QualityLevels(%"PRId64")", s->url, s->streams[i]->codecpar->bit_rate); s 554 libavformat/smoothstreamingenc.c if ((ret = ff_rename((const char*)curr_dirname, os->dirname, s)) < 0) s 560 libavformat/smoothstreamingenc.c copy_moof(s, filename, header_filename, moof_size); s 561 libavformat/smoothstreamingenc.c ret = ff_rename(filename, target_filename, s); s 569 libavformat/smoothstreamingenc.c for (i = 0; i < s->nb_streams; i++) { s 590 libavformat/smoothstreamingenc.c ret = write_manifest(s, final); s 594 libavformat/smoothstreamingenc.c static int ism_write_packet(AVFormatContext *s, AVPacket *pkt) s 596 libavformat/smoothstreamingenc.c SmoothStreamingContext *c = s->priv_data; s 597 libavformat/smoothstreamingenc.c AVStream *st = s->streams[pkt->stream_index]; s 610 libavformat/smoothstreamingenc.c if ((ret = ism_flush(s, 0)) < 0) s 616 libavformat/smoothstreamingenc.c return ff_write_chained(os->ctx, 0, pkt, s, 0); s 619 libavformat/smoothstreamingenc.c static int ism_write_trailer(AVFormatContext *s) s 621 libavformat/smoothstreamingenc.c SmoothStreamingContext *c = s->priv_data; s 622 libavformat/smoothstreamingenc.c ism_flush(s, 1); s 626 libavformat/smoothstreamingenc.c snprintf(filename, sizeof(filename), "%s/Manifest", s->url); s 628 libavformat/smoothstreamingenc.c rmdir(s->url); s 631 libavformat/smoothstreamingenc.c ism_free(s); s 83 libavformat/sol.c static int sol_read_header(AVFormatContext *s) s 86 libavformat/sol.c AVIOContext *pb = s->pb; s 110 libavformat/sol.c st = avformat_new_stream(s, NULL); s 126 libavformat/sol.c static int sol_read_packet(AVFormatContext *s, s 131 libavformat/sol.c if (avio_feof(s->pb)) s 133 libavformat/sol.c ret= av_get_packet(s->pb, pkt, MAX_SIZE); s 47 libavformat/soxdec.c static int sox_read_header(AVFormatContext *s) s 49 libavformat/soxdec.c AVIOContext *pb = s->pb; s 54 libavformat/soxdec.c st = avformat_new_stream(s, NULL); s 77 libavformat/soxdec.c av_log(s, AV_LOG_ERROR, "invalid comment size (%u)\n", comment_size); s 82 libavformat/soxdec.c av_log(s, AV_LOG_ERROR, "invalid sample rate (%f)\n", sample_rate); s 88 libavformat/soxdec.c av_log(s, AV_LOG_WARNING, s 94 libavformat/soxdec.c av_log(s, AV_LOG_ERROR, "invalid header\n"); s 108 libavformat/soxdec.c av_dict_set(&s->metadata, "comment", comment, s 44 libavformat/soxenc.c static int sox_write_header(AVFormatContext *s) s 46 libavformat/soxenc.c SoXContext *sox = s->priv_data; s 47 libavformat/soxenc.c AVIOContext *pb = s->pb; s 48 libavformat/soxenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 52 libavformat/soxenc.c comment = av_dict_get(s->metadata, "comment", NULL, 0); s 74 libavformat/soxenc.c av_log(s, AV_LOG_ERROR, "invalid codec; use pcm_s32le or pcm_s32be\n"); s 86 libavformat/soxenc.c static int sox_write_trailer(AVFormatContext *s) s 88 libavformat/soxenc.c SoXContext *sox = s->priv_data; s 89 libavformat/soxenc.c AVIOContext *pb = s->pb; s 90 libavformat/soxenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 92 libavformat/soxenc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 62 libavformat/spdif.h int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt); s 36 libavformat/spdifdec.c static int spdif_get_offset_and_codec(AVFormatContext *s, s 65 libavformat/spdifdec.c if (s) /* be silent during a probe */ s 66 libavformat/spdifdec.c av_log(s, AV_LOG_ERROR, "Invalid AAC packet in IEC 61937\n"); s 97 libavformat/spdifdec.c if (s) { /* be silent during a probe */ s 98 libavformat/spdifdec.c avpriv_request_sample(s, "Data type 0x%04x in IEC 61937", s 167 libavformat/spdifdec.c static int spdif_read_header(AVFormatContext *s) s 169 libavformat/spdifdec.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 173 libavformat/spdifdec.c int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt) s 175 libavformat/spdifdec.c AVIOContext *pb = s->pb; s 191 libavformat/spdifdec.c avpriv_request_sample(s, "Packet not ending at a 16-bit boundary"); s 204 libavformat/spdifdec.c ret = spdif_get_offset_and_codec(s, data_type, pkt->data, s 213 libavformat/spdifdec.c if (!s->nb_streams) { s 215 libavformat/spdifdec.c AVStream *st = avformat_new_stream(s, NULL); s 221 libavformat/spdifdec.c } else if (codec_id != s->streams[0]->codecpar->codec_id) { s 222 libavformat/spdifdec.c avpriv_report_missing_feature(s, "Codec change in IEC 61937"); s 226 libavformat/spdifdec.c if (!s->bit_rate && s->streams[0]->codecpar->sample_rate) s 229 libavformat/spdifdec.c s->bit_rate = 2 * 16 * s->streams[0]->codecpar->sample_rate; s 92 libavformat/spdifenc.c int (*header_info) (AVFormatContext *s, AVPacket *pkt); s 110 libavformat/spdifenc.c static int spdif_header_ac3(AVFormatContext *s, AVPacket *pkt) s 112 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 120 libavformat/spdifenc.c static int spdif_header_eac3(AVFormatContext *s, AVPacket *pkt) s 122 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 172 libavformat/spdifenc.c static int spdif_header_dts4(AVFormatContext *s, AVPacket *pkt, int core_size, s 175 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 182 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, "HD mode not supported for this format\n"); s 187 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, "Unknown DTS sample rate for HD\n"); s 195 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, "Specified HD rate of %d Hz would require an " s 215 libavformat/spdifenc.c av_log(s, AV_LOG_WARNING, "DTS-HD bitrate too high, " s 249 libavformat/spdifenc.c static int spdif_header_dts(AVFormatContext *s, AVPacket *pkt) s 251 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 283 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, "stray DTS-HD frame\n"); s 286 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, "bad DTS syncword 0x%"PRIx32"\n", syncword_dts); s 293 libavformat/spdifenc.c return spdif_header_dts4(s, pkt, core_size, sample_rate, blocks); s 300 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, "%i samples in DTS frame not supported\n", s 319 libavformat/spdifenc.c avpriv_request_sample(s, "Unrecognized large DTS frame"); s 332 libavformat/spdifenc.c static int spdif_header_mpeg(AVFormatContext *s, AVPacket *pkt) s 334 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 340 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, "Wrong MPEG file format\n"); s 343 libavformat/spdifenc.c av_log(s, AV_LOG_DEBUG, "version: %i layer: %i extension: %i\n", version, layer, extension); s 355 libavformat/spdifenc.c static int spdif_header_aac(AVFormatContext *s, AVPacket *pkt) s 357 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 364 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, "Wrong AAC file format\n"); s 380 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, s 419 libavformat/spdifenc.c static int spdif_header_truehd(AVFormatContext *s, AVPacket *pkt) s 421 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 445 libavformat/spdifenc.c av_log(s, AV_LOG_TRACE, "TrueHD samples per frame: %d\n", s 469 libavformat/spdifenc.c av_log(s, AV_LOG_TRACE, "delta_samples: %"PRIu16", delta_bytes: %d\n", s 474 libavformat/spdifenc.c avpriv_request_sample(s, "Unusual frame timing: %"PRIu16" => %"PRIu16", %d samples/frame", s 551 libavformat/spdifenc.c av_log(s, AV_LOG_TRACE, "TrueHD frame inserted, total size %d, buffer position %d\n", s 566 libavformat/spdifenc.c static int spdif_write_header(AVFormatContext *s) s 568 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 570 libavformat/spdifenc.c switch (s->streams[0]->codecpar->codec_id) { s 598 libavformat/spdifenc.c avpriv_report_missing_feature(s, "Codec %d", s 599 libavformat/spdifenc.c s->streams[0]->codecpar->codec_id); s 605 libavformat/spdifenc.c static void spdif_deinit(AVFormatContext *s) s 607 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 622 libavformat/spdifenc.c static int spdif_write_packet(struct AVFormatContext *s, AVPacket *pkt) s 624 libavformat/spdifenc.c IEC61937Context *ctx = s->priv_data; s 633 libavformat/spdifenc.c ret = ctx->header_info(s, pkt); s 641 libavformat/spdifenc.c av_log(s, AV_LOG_ERROR, "bitrate is too high\n"); s 646 libavformat/spdifenc.c spdif_put_16(ctx, s->pb, SYNCWORD1); //Pa s 647 libavformat/spdifenc.c spdif_put_16(ctx, s->pb, SYNCWORD2); //Pb s 648 libavformat/spdifenc.c spdif_put_16(ctx, s->pb, ctx->data_type); //Pc s 649 libavformat/spdifenc.c spdif_put_16(ctx, s->pb, ctx->length_code);//Pd s 653 libavformat/spdifenc.c avio_write(s->pb, ctx->out_buf, ctx->out_bytes & ~1); s 659 libavformat/spdifenc.c avio_write(s->pb, ctx->buffer, ctx->out_bytes & ~1); s 664 libavformat/spdifenc.c spdif_put_16(ctx, s->pb, ctx->out_buf[ctx->out_bytes - 1] << 8); s 666 libavformat/spdifenc.c ffio_fill(s->pb, 0, padding); s 668 libavformat/spdifenc.c av_log(s, AV_LOG_DEBUG, "type=%x len=%i pkt_offset=%i\n", s 126 libavformat/srtdec.c static int srt_read_header(AVFormatContext *s) s 128 libavformat/srtdec.c SRTContext *srt = s->priv_data; s 130 libavformat/srtdec.c AVStream *st = avformat_new_stream(s, NULL); s 136 libavformat/srtdec.c ff_text_init_avio(s, &tr, s->pb); s 207 libavformat/srtdec.c ff_subtitles_queue_finalize(s, &srt->q); s 216 libavformat/srtdec.c static int srt_read_packet(AVFormatContext *s, AVPacket *pkt) s 218 libavformat/srtdec.c SRTContext *srt = s->priv_data; s 222 libavformat/srtdec.c static int srt_read_seek(AVFormatContext *s, int stream_index, s 225 libavformat/srtdec.c SRTContext *srt = s->priv_data; s 226 libavformat/srtdec.c return ff_subtitles_queue_seek(&srt->q, s, stream_index, s 230 libavformat/srtdec.c static int srt_read_close(AVFormatContext *s) s 232 libavformat/srtdec.c SRTContext *srt = s->priv_data; s 63 libavformat/srtenc.c int64_t s = pkt->pts, e, d = pkt->duration; s 82 libavformat/srtenc.c if (s == AV_NOPTS_VALUE || d < 0) { s 87 libavformat/srtenc.c e = s + d; s 90 libavformat/srtenc.c (int)(s / 3600000), (int)(s / 60000) % 60, s 91 libavformat/srtenc.c (int)(s / 1000) % 60, (int)(s % 1000), s 31 libavformat/srtp.c void ff_srtp_free(struct SRTPContext *s) s 33 libavformat/srtp.c if (!s) s 35 libavformat/srtp.c av_freep(&s->aes); s 36 libavformat/srtp.c if (s->hmac) s 37 libavformat/srtp.c av_hmac_free(s->hmac); s 38 libavformat/srtp.c s->hmac = NULL; s 65 libavformat/srtp.c int ff_srtp_set_crypto(struct SRTPContext *s, const char *suite, s 70 libavformat/srtp.c ff_srtp_free(s); s 75 libavformat/srtp.c s->rtp_hmac_size = s->rtcp_hmac_size = 10; s 77 libavformat/srtp.c s->rtp_hmac_size = s->rtcp_hmac_size = 4; s 80 libavformat/srtp.c s->rtp_hmac_size = 4; s 81 libavformat/srtp.c s->rtcp_hmac_size = 10; s 92 libavformat/srtp.c s->aes = av_aes_alloc(); s 93 libavformat/srtp.c s->hmac = av_hmac_alloc(AV_HMAC_SHA1); s 94 libavformat/srtp.c if (!s->aes || !s->hmac) s 96 libavformat/srtp.c memcpy(s->master_key, buf, 16); s 97 libavformat/srtp.c memcpy(s->master_salt, buf + 16, 14); s 100 libavformat/srtp.c av_aes_init(s->aes, s->master_key, 128, 0); s 102 libavformat/srtp.c derive_key(s->aes, s->master_salt, 0x00, s->rtp_key, sizeof(s->rtp_key)); s 103 libavformat/srtp.c derive_key(s->aes, s->master_salt, 0x02, s->rtp_salt, sizeof(s->rtp_salt)); s 104 libavformat/srtp.c derive_key(s->aes, s->master_salt, 0x01, s->rtp_auth, sizeof(s->rtp_auth)); s 106 libavformat/srtp.c derive_key(s->aes, s->master_salt, 0x03, s->rtcp_key, sizeof(s->rtcp_key)); s 107 libavformat/srtp.c derive_key(s->aes, s->master_salt, 0x05, s->rtcp_salt, sizeof(s->rtcp_salt)); s 108 libavformat/srtp.c derive_key(s->aes, s->master_salt, 0x04, s->rtcp_auth, sizeof(s->rtcp_auth)); s 126 libavformat/srtp.c int ff_srtp_decrypt(struct SRTPContext *s, uint8_t *buf, int *lenptr) s 141 libavformat/srtp.c hmac_size = rtcp ? s->rtcp_hmac_size : s->rtp_hmac_size; s 147 libavformat/srtp.c av_hmac_init(s->hmac, rtcp ? s->rtcp_auth : s->rtp_auth, sizeof(s->rtp_auth)); s 149 libavformat/srtp.c av_hmac_update(s->hmac, buf, len - hmac_size); s 157 libavformat/srtp.c seq_largest = s->seq_initialized ? s->seq_largest : seq; s 158 libavformat/srtp.c v = roc = s->roc; s 175 libavformat/srtp.c av_hmac_update(s->hmac, rocbuf, 4); s 178 libavformat/srtp.c av_hmac_final(s->hmac, hmac, sizeof(hmac)); s 204 libavformat/srtp.c s->seq_initialized = 1; s 205 libavformat/srtp.c s->seq_largest = seq_largest; s 206 libavformat/srtp.c s->roc = roc; s 231 libavformat/srtp.c create_iv(iv, rtcp ? s->rtcp_salt : s->rtp_salt, index, ssrc); s 232 libavformat/srtp.c av_aes_init(s->aes, rtcp ? s->rtcp_key : s->rtp_key, 128, 0); s 233 libavformat/srtp.c encrypt_counter(s->aes, iv, buf, len); s 238 libavformat/srtp.c int ff_srtp_encrypt(struct SRTPContext *s, const uint8_t *in, int len, s 251 libavformat/srtp.c hmac_size = rtcp ? s->rtcp_hmac_size : s->rtp_hmac_size; s 264 libavformat/srtp.c index = s->rtcp_index++; s 277 libavformat/srtp.c if (seq < s->seq_largest) s 278 libavformat/srtp.c s->roc++; s 279 libavformat/srtp.c s->seq_largest = seq; s 280 libavformat/srtp.c index = seq + (((uint64_t)s->roc) << 16); s 304 libavformat/srtp.c create_iv(iv, rtcp ? s->rtcp_salt : s->rtp_salt, index, ssrc); s 305 libavformat/srtp.c av_aes_init(s->aes, rtcp ? s->rtcp_key : s->rtp_key, 128, 0); s 306 libavformat/srtp.c encrypt_counter(s->aes, iv, buf, len); s 313 libavformat/srtp.c av_hmac_init(s->hmac, rtcp ? s->rtcp_auth : s->rtp_auth, sizeof(s->rtp_auth)); s 314 libavformat/srtp.c av_hmac_update(s->hmac, out, buf + len - out); s 317 libavformat/srtp.c AV_WB32(rocbuf, s->roc); s 318 libavformat/srtp.c av_hmac_update(s->hmac, rocbuf, 4); s 320 libavformat/srtp.c av_hmac_final(s->hmac, hmac, sizeof(hmac)); s 45 libavformat/srtp.h int ff_srtp_set_crypto(struct SRTPContext *s, const char *suite, s 47 libavformat/srtp.h void ff_srtp_free(struct SRTPContext *s); s 48 libavformat/srtp.h int ff_srtp_decrypt(struct SRTPContext *s, uint8_t *buf, int *lenptr); s 49 libavformat/srtp.h int ff_srtp_encrypt(struct SRTPContext *s, const uint8_t *in, int len, s 59 libavformat/srtpproto.c SRTPProtoContext *s = h->priv_data; s 60 libavformat/srtpproto.c ff_srtp_free(&s->srtp_out); s 61 libavformat/srtpproto.c ff_srtp_free(&s->srtp_in); s 62 libavformat/srtpproto.c ffurl_closep(&s->rtp_hd); s 68 libavformat/srtpproto.c SRTPProtoContext *s = h->priv_data; s 72 libavformat/srtpproto.c if (s->out_suite && s->out_params) s 73 libavformat/srtpproto.c if ((ret = ff_srtp_set_crypto(&s->srtp_out, s->out_suite, s->out_params)) < 0) s 75 libavformat/srtpproto.c if (s->in_suite && s->in_params) s 76 libavformat/srtpproto.c if ((ret = ff_srtp_set_crypto(&s->srtp_in, s->in_suite, s->in_params)) < 0) s 82 libavformat/srtpproto.c if ((ret = ffurl_open_whitelist(&s->rtp_hd, buf, flags, &h->interrupt_callback, s 86 libavformat/srtpproto.c h->max_packet_size = FFMIN(s->rtp_hd->max_packet_size, s 87 libavformat/srtpproto.c sizeof(s->encryptbuf)) - 14; s 98 libavformat/srtpproto.c SRTPProtoContext *s = h->priv_data; s 101 libavformat/srtpproto.c ret = ffurl_read(s->rtp_hd, buf, size); s 102 libavformat/srtpproto.c if (ret > 0 && s->srtp_in.aes) { s 103 libavformat/srtpproto.c if (ff_srtp_decrypt(&s->srtp_in, buf, &ret) < 0) s 111 libavformat/srtpproto.c SRTPProtoContext *s = h->priv_data; s 112 libavformat/srtpproto.c if (!s->srtp_out.aes) s 113 libavformat/srtpproto.c return ffurl_write(s->rtp_hd, buf, size); s 114 libavformat/srtpproto.c size = ff_srtp_encrypt(&s->srtp_out, buf, size, s->encryptbuf, s 115 libavformat/srtpproto.c sizeof(s->encryptbuf)); s 118 libavformat/srtpproto.c return ffurl_write(s->rtp_hd, s->encryptbuf, size); s 123 libavformat/srtpproto.c SRTPProtoContext *s = h->priv_data; s 124 libavformat/srtpproto.c return ffurl_get_file_handle(s->rtp_hd); s 130 libavformat/srtpproto.c SRTPProtoContext *s = h->priv_data; s 131 libavformat/srtpproto.c return ffurl_get_multi_file_handle(s->rtp_hd, handles, numhandles); s 72 libavformat/stldec.c static int stl_read_header(AVFormatContext *s) s 74 libavformat/stldec.c STLContext *stl = s->priv_data; s 75 libavformat/stldec.c AVStream *st = avformat_new_stream(s, NULL); s 83 libavformat/stldec.c while (!avio_feof(s->pb)) { s 86 libavformat/stldec.c const int64_t pos = avio_tell(s->pb); s 87 libavformat/stldec.c int len = ff_get_line(s->pb, line, sizeof(line)); s 109 libavformat/stldec.c ff_subtitles_queue_finalize(s, &stl->q); s 112 libavformat/stldec.c static int stl_read_packet(AVFormatContext *s, AVPacket *pkt) s 114 libavformat/stldec.c STLContext *stl = s->priv_data; s 118 libavformat/stldec.c static int stl_read_seek(AVFormatContext *s, int stream_index, s 121 libavformat/stldec.c STLContext *stl = s->priv_data; s 122 libavformat/stldec.c return ff_subtitles_queue_seek(&stl->q, s, stream_index, s 126 libavformat/stldec.c static int stl_read_close(AVFormatContext *s) s 128 libavformat/stldec.c STLContext *stl = s->priv_data; s 27 libavformat/subtitles.c void ff_text_init_avio(void *s, FFTextReader *r, AVIOContext *pb) s 48 libavformat/subtitles.c if (s && (r->type == FF_UTF16LE || r->type == FF_UTF16BE)) s 49 libavformat/subtitles.c av_log(s, AV_LOG_INFO, s 250 libavformat/subtitles.c int ff_subtitles_queue_seek(FFDemuxSubtitlesQueue *q, AVFormatContext *s, int stream_index, s 335 libavformat/subtitles.c const char *ff_smil_get_attr_ptr(const char *s, const char *attr) s 340 libavformat/subtitles.c while (*s) { s 341 libavformat/subtitles.c while (*s) { s 342 libavformat/subtitles.c if (!in_quotes && av_isspace(*s)) s 344 libavformat/subtitles.c in_quotes ^= *s == '"'; // XXX: support escaping? s 345 libavformat/subtitles.c s++; s 347 libavformat/subtitles.c while (av_isspace(*s)) s 348 libavformat/subtitles.c s++; s 349 libavformat/subtitles.c if (!av_strncasecmp(s, attr, len) && s[len] == '=') s 350 libavformat/subtitles.c return s + len + 1 + (s[len + 1] == '"'); s 61 libavformat/subtitles.h void ff_text_init_avio(void *s, FFTextReader *r, AVIOContext *pb); s 138 libavformat/subtitles.h int ff_subtitles_queue_seek(FFDemuxSubtitlesQueue *q, AVFormatContext *s, int stream_index, s 159 libavformat/subtitles.h const char *ff_smil_get_attr_ptr(const char *s, const char *attr); s 43 libavformat/subviewer1dec.c static int subviewer1_read_header(AVFormatContext *s) s 47 libavformat/subviewer1dec.c SubViewer1Context *subviewer1 = s->priv_data; s 48 libavformat/subviewer1dec.c AVStream *st = avformat_new_stream(s, NULL); s 56 libavformat/subviewer1dec.c while (!avio_feof(s->pb)) { s 58 libavformat/subviewer1dec.c int len = ff_get_line(s->pb, line, sizeof(line)); s 65 libavformat/subviewer1dec.c ff_get_line(s->pb, line, sizeof(line)); s 70 libavformat/subviewer1dec.c const int64_t pos = avio_tell(s->pb); s 73 libavformat/subviewer1dec.c len = ff_get_line(s->pb, line, sizeof(line)); s 91 libavformat/subviewer1dec.c ff_subtitles_queue_finalize(s, &subviewer1->q); s 95 libavformat/subviewer1dec.c static int subviewer1_read_packet(AVFormatContext *s, AVPacket *pkt) s 97 libavformat/subviewer1dec.c SubViewer1Context *subviewer1 = s->priv_data; s 101 libavformat/subviewer1dec.c static int subviewer1_read_seek(AVFormatContext *s, int stream_index, s 104 libavformat/subviewer1dec.c SubViewer1Context *subviewer1 = s->priv_data; s 105 libavformat/subviewer1dec.c return ff_subtitles_queue_seek(&subviewer1->q, s, stream_index, s 109 libavformat/subviewer1dec.c static int subviewer1_read_close(AVFormatContext *s) s 111 libavformat/subviewer1dec.c SubViewer1Context *subviewer1 = s->priv_data; s 54 libavformat/subviewerdec.c static int read_ts(const char *s, int64_t *start, int *duration) s 61 libavformat/subviewerdec.c if (sscanf(s, "%u:%u:%u.%2u,%u:%u:%u.%2u", s 64 libavformat/subviewerdec.c } else if (sscanf(s, "%u:%u:%u.%1u,%u:%u:%u.%1u", s 68 libavformat/subviewerdec.c if (sscanf(s, "%u:%u:%u.%u,%u:%u:%u.%u", s 80 libavformat/subviewerdec.c static int subviewer_read_header(AVFormatContext *s) s 82 libavformat/subviewerdec.c SubViewerContext *subviewer = s->priv_data; s 83 libavformat/subviewerdec.c AVStream *st = avformat_new_stream(s, NULL); s 92 libavformat/subviewerdec.c res = ffio_ensure_seekback(s->pb, 3); s 95 libavformat/subviewerdec.c if (avio_rb24(s->pb) != 0xefbbbf) s 96 libavformat/subviewerdec.c avio_seek(s->pb, -3, SEEK_CUR); s 103 libavformat/subviewerdec.c while (!avio_feof(s->pb)) { s 106 libavformat/subviewerdec.c int len = ff_get_line(s->pb, line, sizeof(line)); s 144 libavformat/subviewerdec.c av_dict_set(&s->metadata, key, value, 0); s 149 libavformat/subviewerdec.c pos = avio_tell(s->pb); s 172 libavformat/subviewerdec.c ff_subtitles_queue_finalize(s, &subviewer->q); s 181 libavformat/subviewerdec.c static int subviewer_read_packet(AVFormatContext *s, AVPacket *pkt) s 183 libavformat/subviewerdec.c SubViewerContext *subviewer = s->priv_data; s 187 libavformat/subviewerdec.c static int subviewer_read_seek(AVFormatContext *s, int stream_index, s 190 libavformat/subviewerdec.c SubViewerContext *subviewer = s->priv_data; s 191 libavformat/subviewerdec.c return ff_subtitles_queue_seek(&subviewer->q, s, stream_index, s 195 libavformat/subviewerdec.c static int subviewer_read_close(AVFormatContext *s) s 197 libavformat/subviewerdec.c SubViewerContext *subviewer = s->priv_data; s 25 libavformat/supdec.c static int sup_read_header(AVFormatContext *s) s 27 libavformat/supdec.c AVStream *st = avformat_new_stream(s, NULL); s 37 libavformat/supdec.c static int sup_read_packet(AVFormatContext *s, AVPacket *pkt) s 42 libavformat/supdec.c pos = avio_tell(s->pb); s 44 libavformat/supdec.c if (avio_rb16(s->pb) != SUP_PGS_MAGIC) s 45 libavformat/supdec.c return avio_feof(s->pb) ? AVERROR_EOF : AVERROR_INVALIDDATA; s 47 libavformat/supdec.c pts = avio_rb32(s->pb); s 48 libavformat/supdec.c dts = avio_rb32(s->pb); s 50 libavformat/supdec.c if ((ret = av_get_packet(s->pb, pkt, 3)) < 0) s 64 libavformat/supdec.c if ((ret = av_append_packet(s->pb, pkt, len)) < 0) s 28 libavformat/supenc.c static int sup_write_packet(AVFormatContext *s, AVPacket *pkt) s 49 libavformat/supenc.c av_log(s, AV_LOG_ERROR, "Not enough data, skipping %"SIZE_SPECIFIER" bytes\n", s 55 libavformat/supenc.c avio_wb16(s->pb, SUP_PGS_MAGIC); s 56 libavformat/supenc.c avio_wb32(s->pb, pts); s 57 libavformat/supenc.c avio_wb32(s->pb, dts); s 59 libavformat/supenc.c avio_write(s->pb, data, len); s 66 libavformat/supenc.c av_log(s, AV_LOG_ERROR, "Skipping %"SIZE_SPECIFIER" bytes after last segment in frame\n", s 74 libavformat/supenc.c static int sup_write_header(AVFormatContext *s) s 76 libavformat/supenc.c if (s->nb_streams != 1) { s 77 libavformat/supenc.c av_log(s, AV_LOG_ERROR, "%s files have exactly one stream\n", s 78 libavformat/supenc.c s->oformat->name); s 82 libavformat/supenc.c avpriv_set_pts_info(s->streams[0], 32, 1, 90000); s 33 libavformat/svag.c static int svag_read_header(AVFormatContext *s) s 38 libavformat/svag.c avio_skip(s->pb, 4); s 40 libavformat/svag.c st = avformat_new_stream(s, NULL); s 44 libavformat/svag.c size = avio_rl32(s->pb); s 47 libavformat/svag.c st->codecpar->sample_rate = avio_rl32(s->pb); s 50 libavformat/svag.c st->codecpar->channels = avio_rl32(s->pb); s 54 libavformat/svag.c align = avio_rl32(s->pb); s 58 libavformat/svag.c avio_skip(s->pb, 0x800 - avio_tell(s->pb)); s 64 libavformat/svag.c static int svag_read_packet(AVFormatContext *s, AVPacket *pkt) s 66 libavformat/svag.c AVCodecParameters *par = s->streams[0]->codecpar; s 68 libavformat/svag.c return av_get_packet(s->pb, pkt, par->block_align); s 104 libavformat/swfdec.c AVFormatContext *s = opaque; s 105 libavformat/swfdec.c SWFContext *swf = s->priv_data; s 111 libavformat/swfdec.c int n = avio_read(s->pb, swf->zbuf_in, ZBUF_SIZE); s 134 libavformat/swfdec.c static int swf_read_header(AVFormatContext *s) s 136 libavformat/swfdec.c SWFContext *swf = s->priv_data; s 137 libavformat/swfdec.c AVIOContext *pb = s->pb; s 144 libavformat/swfdec.c av_log(s, AV_LOG_INFO, "SWF compressed file detected\n"); s 148 libavformat/swfdec.c swf->zpb = avio_alloc_context(swf->zbuf_out, ZBUF_SIZE, 0, s, s 154 libavformat/swfdec.c av_log(s, AV_LOG_ERROR, "Unable to init zlib context\n"); s 161 libavformat/swfdec.c av_log(s, AV_LOG_ERROR, "zlib support is required to read SWF compressed files\n"); s 174 libavformat/swfdec.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 178 libavformat/swfdec.c static AVStream *create_new_audio_stream(AVFormatContext *s, int id, int info) s 181 libavformat/swfdec.c AVStream *ast = avformat_new_stream(s, NULL); s 204 libavformat/swfdec.c static int swf_read_packet(AVFormatContext *s, AVPacket *pkt) s 206 libavformat/swfdec.c SWFContext *swf = s->priv_data; s 207 libavformat/swfdec.c AVIOContext *pb = s->pb; s 222 libavformat/swfdec.c av_log(s, AV_LOG_ERROR, "invalid tag length: %d\n", len); s 229 libavformat/swfdec.c for (i=0; i<s->nb_streams; i++) { s 230 libavformat/swfdec.c st = s->streams[i]; s 240 libavformat/swfdec.c vst = avformat_new_stream(s, NULL); s 251 libavformat/swfdec.c for (i=0; i<s->nb_streams; i++) { s 252 libavformat/swfdec.c st = s->streams[i]; s 260 libavformat/swfdec.c ast = create_new_audio_stream(s, -1, v); /* -1 to avoid clash with video stream ch_id */ s 268 libavformat/swfdec.c for (i=0; i<s->nb_streams; i++) { s 269 libavformat/swfdec.c st = s->streams[i]; s 278 libavformat/swfdec.c ast = create_new_audio_stream(s, ch_id, v); s 295 libavformat/swfdec.c for(i=0; i<s->nb_streams; i++) { s 296 libavformat/swfdec.c st = s->streams[i]; s 340 libavformat/swfdec.c av_log(s, AV_LOG_ERROR, "invalid bitmap format %d, skipped\n", bmp_fmt); s 346 libavformat/swfdec.c if (av_image_check_size(width, height, 0, s) < 0 || s 349 libavformat/swfdec.c av_log(s, AV_LOG_ERROR, "invalid frame size %dx%d\n", width, height); s 355 libavformat/swfdec.c ff_dlog(s, "bitmap: ch=%d fmt=%d %dx%d (linesize=%d) len=%d->%ld pal=%d\n", s 367 libavformat/swfdec.c av_log(s, AV_LOG_WARNING, "Failed to uncompress one bitmap\n"); s 371 libavformat/swfdec.c for (i = 0; i < s->nb_streams; i++) { s 372 libavformat/swfdec.c st = s->streams[i]; s 376 libavformat/swfdec.c if (i == s->nb_streams) { s 377 libavformat/swfdec.c vst = avformat_new_stream(s, NULL); s 428 libavformat/swfdec.c av_log(s, AV_LOG_ERROR, "pixel format change unsupported\n"); s 444 libavformat/swfdec.c av_log(s, AV_LOG_ERROR, "this file requires zlib support compiled in\n"); s 447 libavformat/swfdec.c for (i = 0; i < s->nb_streams; i++) { s 448 libavformat/swfdec.c st = s->streams[i]; s 469 libavformat/swfdec.c for (i=0; i<s->nb_streams; i++) { s 470 libavformat/swfdec.c st = s->streams[i]; s 474 libavformat/swfdec.c if (i == s->nb_streams) { s 475 libavformat/swfdec.c vst = avformat_new_stream(s, NULL); s 516 libavformat/swfdec.c av_log(s, AV_LOG_DEBUG, "Unknown tag: %d\n", tag); s 520 libavformat/swfdec.c av_log(s, AV_LOG_WARNING, "Clipping len %d\n", len); s 529 libavformat/swfdec.c SWFContext *s = avctx->priv_data; s 530 libavformat/swfdec.c inflateEnd(&s->zstream); s 531 libavformat/swfdec.c av_freep(&s->zbuf_in); s 532 libavformat/swfdec.c av_freep(&s->zbuf_out); s 533 libavformat/swfdec.c avio_context_free(&s->zpb); s 28 libavformat/swfenc.c static void put_swf_tag(AVFormatContext *s, int tag) s 30 libavformat/swfenc.c SWFContext *swf = s->priv_data; s 31 libavformat/swfenc.c AVIOContext *pb = s->pb; s 44 libavformat/swfenc.c static void put_swf_end_tag(AVFormatContext *s) s 46 libavformat/swfenc.c SWFContext *swf = s->priv_data; s 47 libavformat/swfenc.c AVIOContext *pb = s->pb; s 174 libavformat/swfenc.c static int swf_write_header(AVFormatContext *s) s 176 libavformat/swfenc.c SWFContext *swf = s->priv_data; s 177 libavformat/swfenc.c AVIOContext *pb = s->pb; s 187 libavformat/swfenc.c for(i=0;i<s->nb_streams;i++) { s 188 libavformat/swfenc.c AVCodecParameters *par = s->streams[i]->codecpar; s 191 libavformat/swfenc.c av_log(s, AV_LOG_ERROR, "SWF muxer only supports 1 audio stream\n"); s 200 libavformat/swfenc.c av_log(s, AV_LOG_ERROR, "SWF muxer only supports MP3\n"); s 205 libavformat/swfenc.c av_log(s, AV_LOG_ERROR, "SWF muxer only supports 1 video stream\n"); s 211 libavformat/swfenc.c swf->video_st = s->streams[i]; s 214 libavformat/swfenc.c av_log(s, AV_LOG_ERROR, "SWF muxer only supports VP6, FLV1 and MJPEG\n"); s 241 libavformat/swfenc.c if (!strcmp("avm2", s->oformat->name)) s 256 libavformat/swfenc.c av_log(s, AV_LOG_ERROR, "Invalid (too large) frame rate %d/%d\n", rate, rate_base); s 265 libavformat/swfenc.c put_swf_tag(s, TAG_FILEATTRIBUTES); s 267 libavformat/swfenc.c put_swf_end_tag(s); s 272 libavformat/swfenc.c put_swf_tag(s, TAG_DEFINESHAPE); s 311 libavformat/swfenc.c put_swf_end_tag(s); s 318 libavformat/swfenc.c put_swf_tag(s, TAG_STREAMHEAD2); s 325 libavformat/swfenc.c av_log(s, AV_LOG_ERROR, "swf does not support that sample rate, choose from (44100, 22050, 11025).\n"); s 331 libavformat/swfenc.c avio_w8(s->pb, v); s 333 libavformat/swfenc.c avio_w8(s->pb, v); s 334 libavformat/swfenc.c avio_wl16(s->pb, swf->samples_per_frame); /* avg samples per frame */ s 335 libavformat/swfenc.c avio_wl16(s->pb, 0); s 337 libavformat/swfenc.c put_swf_end_tag(s); s 343 libavformat/swfenc.c static int swf_write_video(AVFormatContext *s, s 346 libavformat/swfenc.c SWFContext *swf = s->priv_data; s 347 libavformat/swfenc.c AVIOContext *pb = s->pb; s 351 libavformat/swfenc.c av_log(s, AV_LOG_INFO, "warning: Flash Player limit of 16000 frames reached\n"); s 357 libavformat/swfenc.c put_swf_tag(s, TAG_VIDEOSTREAM); s 365 libavformat/swfenc.c put_swf_end_tag(s); s 368 libavformat/swfenc.c put_swf_tag(s, TAG_PLACEOBJECT2); s 376 libavformat/swfenc.c put_swf_end_tag(s); s 379 libavformat/swfenc.c put_swf_tag(s, TAG_PLACEOBJECT2); s 383 libavformat/swfenc.c put_swf_end_tag(s); s 387 libavformat/swfenc.c put_swf_tag(s, TAG_VIDEOFRAME | TAG_LONG); s 391 libavformat/swfenc.c put_swf_end_tag(s); s 395 libavformat/swfenc.c put_swf_tag(s, TAG_REMOVEOBJECT); s 398 libavformat/swfenc.c put_swf_end_tag(s); s 401 libavformat/swfenc.c put_swf_tag(s, TAG_FREECHARACTER); s 403 libavformat/swfenc.c put_swf_end_tag(s); s 406 libavformat/swfenc.c put_swf_tag(s, TAG_JPEG2 | TAG_LONG); s 415 libavformat/swfenc.c put_swf_end_tag(s); s 419 libavformat/swfenc.c put_swf_tag(s, TAG_PLACEOBJECT); s 423 libavformat/swfenc.c put_swf_end_tag(s); s 431 libavformat/swfenc.c put_swf_tag(s, TAG_STREAMBLOCK | TAG_LONG); s 435 libavformat/swfenc.c put_swf_end_tag(s); s 442 libavformat/swfenc.c put_swf_tag(s, TAG_SHOWFRAME); s 443 libavformat/swfenc.c put_swf_end_tag(s); s 448 libavformat/swfenc.c static int swf_write_audio(AVFormatContext *s, s 451 libavformat/swfenc.c SWFContext *swf = s->priv_data; s 455 libavformat/swfenc.c av_log(s, AV_LOG_INFO, "warning: Flash Player limit of 16000 frames reached\n"); s 458 libavformat/swfenc.c av_log(s, AV_LOG_ERROR, "audio fifo too small to mux audio essence\n"); s 467 libavformat/swfenc.c swf_write_video(s, par, 0, 0); s 472 libavformat/swfenc.c static int swf_write_packet(AVFormatContext *s, AVPacket *pkt) s 474 libavformat/swfenc.c AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; s 476 libavformat/swfenc.c return swf_write_audio(s, par, pkt->data, pkt->size); s 478 libavformat/swfenc.c return swf_write_video(s, par, pkt->data, pkt->size); s 481 libavformat/swfenc.c static int swf_write_trailer(AVFormatContext *s) s 483 libavformat/swfenc.c SWFContext *swf = s->priv_data; s 484 libavformat/swfenc.c AVIOContext *pb = s->pb; s 489 libavformat/swfenc.c for(i=0;i<s->nb_streams;i++) { s 490 libavformat/swfenc.c par = s->streams[i]->codecpar; s 498 libavformat/swfenc.c put_swf_tag(s, TAG_END); s 499 libavformat/swfenc.c put_swf_end_tag(s); s 502 libavformat/swfenc.c if ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) && video_par) { s 53 libavformat/takdec.c static int tak_read_header(AVFormatContext *s) s 55 libavformat/takdec.c TAKDemuxContext *tc = s->priv_data; s 56 libavformat/takdec.c AVIOContext *pb = s->pb; s 62 libavformat/takdec.c st = avformat_new_stream(s, 0); s 102 libavformat/takdec.c if (ffio_get_checksum(s->pb) != avio_rb24(pb)) { s 103 libavformat/takdec.c av_log(s, AV_LOG_ERROR, "%d metadata block CRC error.\n", type); s 104 libavformat/takdec.c if (s->error_recognition & AV_EF_EXPLODE) { s 119 libavformat/takdec.c if (ffio_get_checksum(s->pb) != avio_rb24(pb)) { s 120 libavformat/takdec.c av_log(s, AV_LOG_ERROR, "MD5 metadata block CRC error.\n"); s 121 libavformat/takdec.c if (s->error_recognition & AV_EF_EXPLODE) s 125 libavformat/takdec.c av_log(s, AV_LOG_VERBOSE, "MD5="); s 127 libavformat/takdec.c av_log(s, AV_LOG_VERBOSE, "%02x", md5[i]); s 128 libavformat/takdec.c av_log(s, AV_LOG_VERBOSE, "\n"); s 135 libavformat/takdec.c ff_ape_parse_tag(s); s 178 libavformat/takdec.c av_log(s, AV_LOG_VERBOSE, "encoder version: %0X\n", s 190 libavformat/takdec.c static int raw_read_packet(AVFormatContext *s, AVPacket *pkt) s 192 libavformat/takdec.c TAKDemuxContext *tc = s->priv_data; s 196 libavformat/takdec.c AVIOContext *pb = s->pb; s 210 libavformat/takdec.c ret = ff_raw_read_partial_packet(s, pkt); s 75 libavformat/tcp.c TCPContext *s = ctx; s 78 libavformat/tcp.c if (s->recv_buffer_size > 0) { s 79 libavformat/tcp.c if (setsockopt (fd, SOL_SOCKET, SO_RCVBUF, &s->recv_buffer_size, sizeof (s->recv_buffer_size))) { s 83 libavformat/tcp.c if (s->send_buffer_size > 0) { s 84 libavformat/tcp.c if (setsockopt (fd, SOL_SOCKET, SO_SNDBUF, &s->send_buffer_size, sizeof (s->send_buffer_size))) { s 88 libavformat/tcp.c if (s->tcp_nodelay > 0) { s 89 libavformat/tcp.c if (setsockopt (fd, IPPROTO_TCP, TCP_NODELAY, &s->tcp_nodelay, sizeof (s->tcp_nodelay))) { s 94 libavformat/tcp.c if (s->tcp_mss > 0) { s 95 libavformat/tcp.c if (setsockopt (fd, IPPROTO_TCP, TCP_MAXSEG, &s->tcp_mss, sizeof (s->tcp_mss))) { s 107 libavformat/tcp.c TCPContext *s = h->priv_data; s 113 libavformat/tcp.c s->open_timeout = 5000000; s 127 libavformat/tcp.c s->listen = strtol(buf, &endptr, 10); s 130 libavformat/tcp.c s->listen = 1; s 133 libavformat/tcp.c s->rw_timeout = strtol(buf, NULL, 10); s 136 libavformat/tcp.c s->listen_timeout = strtol(buf, NULL, 10); s 139 libavformat/tcp.c if (s->rw_timeout >= 0) { s 140 libavformat/tcp.c s->open_timeout = s 141 libavformat/tcp.c h->rw_timeout = s->rw_timeout; s 146 libavformat/tcp.c if (s->listen) s 171 libavformat/tcp.c if (s->listen > 0) { s 183 libavformat/tcp.c customize_fd(s, fd); s 186 libavformat/tcp.c if (s->listen == 2) { s 190 libavformat/tcp.c } else if (s->listen == 1) { s 193 libavformat/tcp.c s->listen_timeout, h)) < 0) s 198 libavformat/tcp.c ret = ff_connect_parallel(ai, s->open_timeout / 1000, 3, h, &fd, customize_fd, s); s 204 libavformat/tcp.c s->fd = fd; s 216 libavformat/tcp.c static int tcp_accept(URLContext *s, URLContext **c) s 218 libavformat/tcp.c TCPContext *sc = s->priv_data; s 222 libavformat/tcp.c if ((ret = ffurl_alloc(c, s->filename, s->flags, &s->interrupt_callback)) < 0) s 225 libavformat/tcp.c ret = ff_accept(sc->fd, sc->listen_timeout, s); s 236 libavformat/tcp.c TCPContext *s = h->priv_data; s 240 libavformat/tcp.c ret = ff_network_wait_fd_timeout(s->fd, 0, h->rw_timeout, &h->interrupt_callback); s 244 libavformat/tcp.c ret = recv(s->fd, buf, size, 0); s 252 libavformat/tcp.c TCPContext *s = h->priv_data; s 256 libavformat/tcp.c ret = ff_network_wait_fd_timeout(s->fd, 1, h->rw_timeout, &h->interrupt_callback); s 260 libavformat/tcp.c ret = send(s->fd, buf, size, MSG_NOSIGNAL); s 266 libavformat/tcp.c TCPContext *s = h->priv_data; s 277 libavformat/tcp.c return shutdown(s->fd, how); s 282 libavformat/tcp.c TCPContext *s = h->priv_data; s 283 libavformat/tcp.c closesocket(s->fd); s 289 libavformat/tcp.c TCPContext *s = h->priv_data; s 290 libavformat/tcp.c return s->fd; s 295 libavformat/tcp.c TCPContext *s = h->priv_data; s 302 libavformat/tcp.c if (s->recv_buffer_size < 0) { s 307 libavformat/tcp.c if (getsockopt(s->fd, SOL_SOCKET, SO_RCVBUF, &avail, &avail_len)) { s 544 libavformat/tee.c unsigned i, s; s 562 libavformat/tee.c s = pkt->stream_index; s 563 libavformat/tee.c s2 = tee->slaves[i].stream_map[s]; s 61 libavformat/tests/fifo_muxer.c AVStream *s; s 70 libavformat/tests/fifo_muxer.c s = avformat_new_stream(*oc, NULL); s 71 libavformat/tests/fifo_muxer.c if (!s) { s 62 libavformat/thp.c static int thp_read_header(AVFormatContext *s) s 64 libavformat/thp.c ThpDemuxContext *thp = s->priv_data; s 66 libavformat/thp.c AVIOContext *pb = s->pb; s 110 libavformat/thp.c st = avformat_new_stream(s, NULL); s 135 libavformat/thp.c st = avformat_new_stream(s, NULL); s 159 libavformat/thp.c static int thp_read_packet(AVFormatContext *s, s 162 libavformat/thp.c ThpDemuxContext *thp = s->priv_data; s 163 libavformat/thp.c AVIOContext *pb = s->pb; s 185 libavformat/tiertexseq.c static int seq_read_close(AVFormatContext *s) s 188 libavformat/tiertexseq.c SeqDemuxContext *seq = s->priv_data; s 196 libavformat/tiertexseq.c static int seq_read_header(AVFormatContext *s) s 199 libavformat/tiertexseq.c SeqDemuxContext *seq = s->priv_data; s 200 libavformat/tiertexseq.c AVIOContext *pb = s->pb; s 206 libavformat/tiertexseq.c seq_read_close(s); s 216 libavformat/tiertexseq.c seq_read_close(s); s 226 libavformat/tiertexseq.c st = avformat_new_stream(s, NULL); s 228 libavformat/tiertexseq.c seq_read_close(s); s 241 libavformat/tiertexseq.c st = avformat_new_stream(s, NULL); s 243 libavformat/tiertexseq.c seq_read_close(s); s 263 libavformat/tiertexseq.c static int seq_read_packet(AVFormatContext *s, AVPacket *pkt) s 266 libavformat/tiertexseq.c SeqDemuxContext *seq = s->priv_data; s 267 libavformat/tiertexseq.c AVIOContext *pb = s->pb; s 90 libavformat/tls_schannel.c TLSShared *s = &c->tls_shared; s 111 libavformat/tls_schannel.c sspi_ret = InitializeSecurityContext(&c->cred_handle, &c->ctxt_handle, s->host, s 115 libavformat/tls_schannel.c ret = ffurl_write(s->tcp, outbuf.pvBuffer, outbuf.cbBuffer); s 148 libavformat/tls_schannel.c TLSShared *s = &c->tls_shared; s 211 libavformat/tls_schannel.c sspi_ret = InitializeSecurityContext(&c->cred_handle, &c->ctxt_handle, s->host, c->request_flags, s 296 libavformat/tls_schannel.c TLSShared *s = &c->tls_shared; s 309 libavformat/tls_schannel.c sspi_ret = InitializeSecurityContext(&c->cred_handle, NULL, s->host, c->request_flags, 0, 0, s 318 libavformat/tls_schannel.c ret = ffurl_write(s->tcp, outbuf.pvBuffer, outbuf.cbBuffer); s 336 libavformat/tls_schannel.c TLSShared *s = &c->tls_shared; s 341 libavformat/tls_schannel.c if ((ret = ff_tls_open_underlying(s, h, uri, options)) < 0) s 344 libavformat/tls_schannel.c if (s->listen) { s 353 libavformat/tls_schannel.c if (s->verify) s 387 libavformat/tls_schannel.c TLSShared *s = &c->tls_shared; s 418 libavformat/tls_schannel.c ret = ffurl_read(s->tcp, c->enc_buf + c->enc_buf_offset, s 530 libavformat/tls_schannel.c TLSShared *s = &c->tls_shared; s 566 libavformat/tls_schannel.c ret = ffurl_write(s->tcp, data, len); s 75 libavformat/tls_securetransport.c AVIOContext *s = NULL; s 87 libavformat/tls_securetransport.c if ((ret = ffio_open_whitelist(&s, path, AVIO_FLAG_READ, s 92 libavformat/tls_securetransport.c if ((ret = avio_size(s)) < 0) s 105 libavformat/tls_securetransport.c if ((ret = avio_read(s, buf, ret)) < 0) s 127 libavformat/tls_securetransport.c if (s) s 128 libavformat/tls_securetransport.c avio_close(s); s 270 libavformat/tls_securetransport.c TLSShared *s = &c->tls_shared; s 273 libavformat/tls_securetransport.c if ((ret = ff_tls_open_underlying(s, h, uri, options)) < 0) s 276 libavformat/tls_securetransport.c c->ssl_context = SSLCreateContext(NULL, s->listen ? kSSLServerSide : kSSLClientSide, kSSLStreamType); s 282 libavformat/tls_securetransport.c if (s->ca_file) { s 286 libavformat/tls_securetransport.c if (s->ca_file || !s->verify) s 288 libavformat/tls_securetransport.c if (s->cert_file) s 291 libavformat/tls_securetransport.c CHECK_ERROR(SSLSetPeerDomainName, c->ssl_context, s->host, strlen(s->host)); s 299 libavformat/tls_securetransport.c if (!s->verify) s 67 libavformat/tmv.c static int tmv_read_header(AVFormatContext *s) s 69 libavformat/tmv.c TMVContext *tmv = s->priv_data; s 70 libavformat/tmv.c AVIOContext *pb = s->pb; s 78 libavformat/tmv.c if (!(vst = avformat_new_stream(s, NULL))) s 81 libavformat/tmv.c if (!(ast = avformat_new_stream(s, NULL))) s 86 libavformat/tmv.c av_log(s, AV_LOG_ERROR, "invalid sample rate\n"); s 92 libavformat/tmv.c av_log(s, AV_LOG_ERROR, "invalid audio chunk size\n"); s 98 libavformat/tmv.c av_log(s, AV_LOG_ERROR, "unsupported compression method %d\n", s 109 libavformat/tmv.c av_log(s, AV_LOG_ERROR, "unsupported features 0x%02x\n", s 150 libavformat/tmv.c static int tmv_read_packet(AVFormatContext *s, AVPacket *pkt) s 152 libavformat/tmv.c TMVContext *tmv = s->priv_data; s 153 libavformat/tmv.c AVIOContext *pb = s->pb; s 172 libavformat/tmv.c static int tmv_read_seek(AVFormatContext *s, int stream_index, s 175 libavformat/tmv.c TMVContext *tmv = s->priv_data; s 184 libavformat/tmv.c if (avio_seek(s->pb, pos + TMV_HEADER_SIZE, SEEK_SET) < 0) s 49 libavformat/tta.c static int tta_read_header(AVFormatContext *s) s 51 libavformat/tta.c TTAContext *c = s->priv_data; s 57 libavformat/tta.c ff_id3v1_read(s); s 59 libavformat/tta.c start_offset = avio_tell(s->pb); s 62 libavformat/tta.c ffio_init_checksum(s->pb, ff_crcEDB88320_update, UINT32_MAX); s 63 libavformat/tta.c if (avio_rl32(s->pb) != AV_RL32("TTA1")) s 66 libavformat/tta.c avio_skip(s->pb, 2); // FIXME: flags s 67 libavformat/tta.c channels = avio_rl16(s->pb); s 68 libavformat/tta.c bps = avio_rl16(s->pb); s 69 libavformat/tta.c samplerate = avio_rl32(s->pb); s 71 libavformat/tta.c av_log(s, AV_LOG_ERROR, "nonsense samplerate\n"); s 75 libavformat/tta.c nb_samples = avio_rl32(s->pb); s 77 libavformat/tta.c av_log(s, AV_LOG_ERROR, "invalid number of samples\n"); s 81 libavformat/tta.c crc = ffio_get_checksum(s->pb) ^ UINT32_MAX; s 82 libavformat/tta.c if (crc != avio_rl32(s->pb) && s->error_recognition & AV_EF_CRCCHECK) { s 83 libavformat/tta.c av_log(s, AV_LOG_ERROR, "Header CRC error\n"); s 95 libavformat/tta.c av_log(s, AV_LOG_ERROR, "totalframes %d invalid\n", c->totalframes); s 99 libavformat/tta.c st = avformat_new_stream(s, NULL); s 107 libavformat/tta.c framepos = avio_tell(s->pb); s 112 libavformat/tta.c if (ff_alloc_extradata(st->codecpar, avio_tell(s->pb) - start_offset)) s 115 libavformat/tta.c avio_seek(s->pb, start_offset, SEEK_SET); s 116 libavformat/tta.c avio_read(s->pb, st->codecpar->extradata, st->codecpar->extradata_size); s 118 libavformat/tta.c ffio_init_checksum(s->pb, ff_crcEDB88320_update, UINT32_MAX); s 120 libavformat/tta.c uint32_t size = avio_rl32(s->pb); s 127 libavformat/tta.c crc = ffio_get_checksum(s->pb) ^ UINT32_MAX; s 128 libavformat/tta.c if (crc != avio_rl32(s->pb) && s->error_recognition & AV_EF_CRCCHECK) { s 129 libavformat/tta.c av_log(s, AV_LOG_ERROR, "Seek table CRC error\n"); s 139 libavformat/tta.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 140 libavformat/tta.c int64_t pos = avio_tell(s->pb); s 141 libavformat/tta.c ff_ape_parse_tag(s); s 142 libavformat/tta.c avio_seek(s->pb, pos, SEEK_SET); s 148 libavformat/tta.c static int tta_read_packet(AVFormatContext *s, AVPacket *pkt) s 150 libavformat/tta.c TTAContext *c = s->priv_data; s 151 libavformat/tta.c AVStream *st = s->streams[0]; s 159 libavformat/tta.c av_log(s, AV_LOG_ERROR, "Index entry disappeared\n"); s 165 libavformat/tta.c ret = av_get_packet(s->pb, pkt, size); s 172 libavformat/tta.c static int tta_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 174 libavformat/tta.c TTAContext *c = s->priv_data; s 175 libavformat/tta.c AVStream *st = s->streams[stream_index]; s 179 libavformat/tta.c if (avio_seek(s->pb, st->index_entries[index].pos, SEEK_SET) < 0) s 38 libavformat/ttaenc.c static int tta_init(AVFormatContext *s) s 40 libavformat/ttaenc.c TTAMuxContext *tta = s->priv_data; s 43 libavformat/ttaenc.c if (s->nb_streams != 1) { s 44 libavformat/ttaenc.c av_log(s, AV_LOG_ERROR, "Only one stream is supported\n"); s 47 libavformat/ttaenc.c par = s->streams[0]->codecpar; s 50 libavformat/ttaenc.c av_log(s, AV_LOG_ERROR, "Unsupported codec\n"); s 54 libavformat/ttaenc.c av_log(s, AV_LOG_ERROR, "Invalid TTA extradata\n"); s 60 libavformat/ttaenc.c av_log(s, AV_LOG_ERROR, "Sample rate too large\n"); s 64 libavformat/ttaenc.c avpriv_set_pts_info(s->streams[0], 64, 1, par->sample_rate); s 69 libavformat/ttaenc.c static int tta_write_header(AVFormatContext *s) s 71 libavformat/ttaenc.c TTAMuxContext *tta = s->priv_data; s 72 libavformat/ttaenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 80 libavformat/ttaenc.c ffio_init_checksum(s->pb, ff_crcEDB88320_update, UINT32_MAX); s 82 libavformat/ttaenc.c avio_write(s->pb, "TTA1", 4); s 83 libavformat/ttaenc.c avio_wl16(s->pb, par->extradata ? AV_RL16(par->extradata + 4) : 1); s 84 libavformat/ttaenc.c avio_wl16(s->pb, par->channels); s 85 libavformat/ttaenc.c avio_wl16(s->pb, par->bits_per_raw_sample); s 86 libavformat/ttaenc.c avio_wl32(s->pb, par->sample_rate); s 91 libavformat/ttaenc.c static int tta_write_packet(AVFormatContext *s, AVPacket *pkt) s 93 libavformat/ttaenc.c TTAMuxContext *tta = s->priv_data; s 110 libavformat/ttaenc.c av_log(s, AV_LOG_ERROR, "Invalid frame durations\n"); s 122 libavformat/ttaenc.c static void tta_queue_flush(AVFormatContext *s) s 124 libavformat/ttaenc.c TTAMuxContext *tta = s->priv_data; s 129 libavformat/ttaenc.c avio_write(s->pb, pkt.data, pkt.size); s 134 libavformat/ttaenc.c static int tta_write_trailer(AVFormatContext *s) s 136 libavformat/ttaenc.c TTAMuxContext *tta = s->priv_data; s 141 libavformat/ttaenc.c avio_wl32(s->pb, tta->nb_samples); s 142 libavformat/ttaenc.c crc = ffio_get_checksum(s->pb) ^ UINT32_MAX; s 143 libavformat/ttaenc.c avio_wl32(s->pb, crc); s 149 libavformat/ttaenc.c avio_write(s->pb, ptr, size); s 152 libavformat/ttaenc.c tta_queue_flush(s); s 154 libavformat/ttaenc.c ff_ape_write_tag(s); s 159 libavformat/ttaenc.c static void tta_deinit(AVFormatContext *s) s 161 libavformat/ttaenc.c TTAMuxContext *tta = s->priv_data; s 77 libavformat/tty.c TtyDemuxContext *s = avctx->priv_data; s 98 libavformat/tty.c s->fsize = start_pos; s 104 libavformat/tty.c TtyDemuxContext *s = avctx->priv_data; s 116 libavformat/tty.c st->codecpar->width = s->width; s 117 libavformat/tty.c st->codecpar->height = s->height; s 118 libavformat/tty.c avpriv_set_pts_info(st, 60, s->framerate.den, s->framerate.num); s 119 libavformat/tty.c st->avg_frame_rate = s->framerate; s 122 libavformat/tty.c s->chars_per_frame = FFMAX(av_q2d(st->time_base)*s->chars_per_frame, 1); s 125 libavformat/tty.c s->fsize = avio_size(avctx->pb); s 126 libavformat/tty.c st->duration = (s->fsize + s->chars_per_frame - 1) / s->chars_per_frame; s 128 libavformat/tty.c if (ff_sauce_read(avctx, &s->fsize, 0, 0) < 0) s 129 libavformat/tty.c efi_read(avctx, s->fsize - 51); s 140 libavformat/tty.c TtyDemuxContext *s = avctx->priv_data; s 146 libavformat/tty.c n = s->chars_per_frame; s 147 libavformat/tty.c if (s->fsize) { s 150 libavformat/tty.c if (p == s->fsize) s 152 libavformat/tty.c if (p + s->chars_per_frame > s->fsize) s 153 libavformat/tty.c n = s->fsize - p; s 160 libavformat/tty.c pkt->pts = pkt->pos / s->chars_per_frame; s 41 libavformat/txd.c static int txd_read_header(AVFormatContext *s) { s 44 libavformat/txd.c st = avformat_new_stream(s, NULL); s 56 libavformat/txd.c static int txd_read_packet(AVFormatContext *s, AVPacket *pkt) { s 57 libavformat/txd.c AVIOContext *pb = s->pb; s 66 libavformat/txd.c if (avio_feof(s->pb)) s 69 libavformat/txd.c av_log(s, AV_LOG_ERROR, "marker does not match\n"); s 78 libavformat/txd.c avio_skip(s->pb, chunk_size); s 83 libavformat/txd.c av_log(s, AV_LOG_ERROR, "unknown chunk id %i\n", id); s 87 libavformat/txd.c ret = av_get_packet(s->pb, pkt, chunk_size); s 175 libavformat/ty.c static int analyze_chunk(AVFormatContext *s, const uint8_t *chunk) s 177 libavformat/ty.c TYDemuxContext *ty = s->priv_data; s 195 libavformat/ty.c ff_dlog(s, "probe: chunk has %d recs\n", num_recs); s 224 libavformat/ty.c ff_dlog(s, "probe: chunk has %d 0x6e0 recs, %d 0xbe0 recs.\n", s 229 libavformat/ty.c ff_dlog(s, "detected Series 1 Tivo\n"); s 233 libavformat/ty.c ff_dlog(s, "detected Series 2 Tivo\n"); s 238 libavformat/ty.c ff_dlog(s, "detected AC-3 Audio (DTivo)\n"); s 245 libavformat/ty.c ff_dlog(s, "detected MPEG Audio\n"); s 266 libavformat/ty.c ff_dlog(s, "detected Stand-Alone Tivo\n"); s 271 libavformat/ty.c ff_dlog(s, "detected DirecTV Tivo\n"); s 286 libavformat/ty.c static int ty_read_header(AVFormatContext *s) s 288 libavformat/ty.c TYDemuxContext *ty = s->priv_data; s 289 libavformat/ty.c AVIOContext *pb = s->pb; s 300 libavformat/ty.c ret = analyze_chunk(s, ty->chunk); s 314 libavformat/ty.c st = avformat_new_stream(s, NULL); s 322 libavformat/ty.c ast = avformat_new_stream(s, NULL); s 345 libavformat/ty.c static void parse_master(AVFormatContext *s) s 347 libavformat/ty.c TYDemuxContext *ty = s->priv_data; s 386 libavformat/ty.c av_log(s, AV_LOG_ERROR, "Unsupported SEQ bitmap size in master chunk.\n"); s 394 libavformat/ty.c static int get_chunk(AVFormatContext *s) s 396 libavformat/ty.c TYDemuxContext *ty = s->priv_data; s 397 libavformat/ty.c AVIOContext *pb = s->pb; s 400 libavformat/ty.c ff_dlog(s, "parsing ty chunk #%d\n", ty->cur_chunk); s 416 libavformat/ty.c parse_master(s); /* parse master chunk */ s 417 libavformat/ty.c return get_chunk(s); s 436 libavformat/ty.c ff_dlog(s, "chunk has %d records\n", num_recs); s 452 libavformat/ty.c static int demux_video(AVFormatContext *s, TyRecHdr *rec_hdr, AVPacket *pkt) s 454 libavformat/ty.c TYDemuxContext *ty = s->priv_data; s 484 libavformat/ty.c ff_dlog(s, "video rec type 0x%02x has short PES" s 538 libavformat/ty.c static int check_sync_pes(AVFormatContext *s, AVPacket *pkt, s 541 libavformat/ty.c TYDemuxContext *ty = s->priv_data; s 545 libavformat/ty.c ff_dlog(s, "PES header at %"PRId32" not complete in record. storing.\n", offset); s 552 libavformat/ty.c ff_dlog(s, "PES header not found in record of %"PRId32" bytes!\n", rec_len); s 576 libavformat/ty.c static int demux_audio(AVFormatContext *s, TyRecHdr *rec_hdr, AVPacket *pkt) s 578 libavformat/ty.c TYDemuxContext *ty = s->priv_data; s 593 libavformat/ty.c ff_dlog(s, "continuing PES header\n"); s 615 libavformat/ty.c ff_dlog(s, "Can't find audio PES header in packet.\n"); s 668 libavformat/ty.c if (check_sync_pes(s, pkt, es_offset1, rec_size) == -1) { s 695 libavformat/ty.c if (check_sync_pes(s, pkt, es_offset1, rec_size) == -1) { s 718 libavformat/ty.c static int ty_read_packet(AVFormatContext *s, AVPacket *pkt) s 720 libavformat/ty.c TYDemuxContext *ty = s->priv_data; s 721 libavformat/ty.c AVIOContext *pb = s->pb; s 731 libavformat/ty.c if (get_chunk(s) < 0 || ty->num_recs <= 0) s 750 libavformat/ty.c ret = demux_video(s, rec, pkt); s 753 libavformat/ty.c ret = demux_audio(s, rec, pkt); s 756 libavformat/ty.c ff_dlog(s, "Invalid record type 0x%02x\n", rec->rec_type); s 769 libavformat/ty.c static int ty_read_close(AVFormatContext *s) s 771 libavformat/ty.c TYDemuxContext *ty = s->priv_data; s 337 libavformat/udp.c UDPContext *s = h->priv_data; s 342 libavformat/udp.c if (((struct sockaddr *) &s->dest_addr)->sa_family) s 343 libavformat/udp.c family = ((struct sockaddr *) &s->dest_addr)->sa_family; s 345 libavformat/udp.c s->local_port, s 350 libavformat/udp.c if (s->udplite_coverage) s 408 libavformat/udp.c UDPContext *s = h->priv_data; s 416 libavformat/udp.c s->dest_addr_len = udp_set_url(h, &s->dest_addr, hostname, port); s 417 libavformat/udp.c if (s->dest_addr_len < 0) { s 420 libavformat/udp.c s->is_multicast = ff_is_multicast_address((struct sockaddr*) &s->dest_addr); s 424 libavformat/udp.c int was_connected = s->is_connected; s 425 libavformat/udp.c s->is_connected = strtol(buf, NULL, 10); s 426 libavformat/udp.c if (s->is_connected && !was_connected) { s 427 libavformat/udp.c if (connect(s->udp_fd, (struct sockaddr *) &s->dest_addr, s 428 libavformat/udp.c s->dest_addr_len)) { s 429 libavformat/udp.c s->is_connected = 0; s 447 libavformat/udp.c UDPContext *s = h->priv_data; s 448 libavformat/udp.c return s->local_port; s 458 libavformat/udp.c UDPContext *s = h->priv_data; s 459 libavformat/udp.c return s->udp_fd; s 466 libavformat/udp.c UDPContext *s = h->priv_data; s 470 libavformat/udp.c pthread_mutex_lock(&s->mutex); s 471 libavformat/udp.c if (ff_socket_nonblock(s->udp_fd, 0) < 0) { s 473 libavformat/udp.c s->circular_buffer_error = AVERROR(EIO); s 481 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 486 libavformat/udp.c len = recvfrom(s->udp_fd, s->tmp+4, sizeof(s->tmp)-4, 0, (struct sockaddr *)&addr, &addr_len); s 488 libavformat/udp.c pthread_mutex_lock(&s->mutex); s 491 libavformat/udp.c s->circular_buffer_error = ff_neterrno(); s 496 libavformat/udp.c if (ff_ip_check_source_lists(&addr, &s->filters)) s 498 libavformat/udp.c AV_WL32(s->tmp, len); s 500 libavformat/udp.c if(av_fifo_space(s->fifo) < len + 4) { s 502 libavformat/udp.c if (s->overrun_nonfatal) { s 510 libavformat/udp.c s->circular_buffer_error = AVERROR(EIO); s 514 libavformat/udp.c av_fifo_generic_write(s->fifo, s->tmp, len+4, NULL); s 515 libavformat/udp.c pthread_cond_signal(&s->cond); s 519 libavformat/udp.c pthread_cond_signal(&s->cond); s 520 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 527 libavformat/udp.c UDPContext *s = h->priv_data; s 531 libavformat/udp.c int64_t burst_interval = s->bitrate ? (s->burst_bits * 1000000 / s->bitrate) : 0; s 532 libavformat/udp.c int64_t max_delay = s->bitrate ? ((int64_t)h->max_packet_size * 8 * 1000000 / s->bitrate + 1) : 0; s 534 libavformat/udp.c pthread_mutex_lock(&s->mutex); s 536 libavformat/udp.c if (ff_socket_nonblock(s->udp_fd, 0) < 0) { s 538 libavformat/udp.c s->circular_buffer_error = AVERROR(EIO); s 548 libavformat/udp.c len=av_fifo_size(s->fifo); s 551 libavformat/udp.c if (s->close_req) s 553 libavformat/udp.c if (pthread_cond_wait(&s->cond, &s->mutex) < 0) { s 556 libavformat/udp.c len=av_fifo_size(s->fifo); s 559 libavformat/udp.c av_fifo_generic_read(s->fifo, tmp, 4, NULL); s 563 libavformat/udp.c av_assert0(len <= sizeof(s->tmp)); s 565 libavformat/udp.c av_fifo_generic_read(s->fifo, s->tmp, len, NULL); s 567 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 569 libavformat/udp.c if (s->bitrate) { s 586 libavformat/udp.c target_timestamp = start_timestamp + sent_bits * 1000000 / s->bitrate; s 589 libavformat/udp.c p = s->tmp; s 593 libavformat/udp.c if (!s->is_connected) { s 594 libavformat/udp.c ret = sendto (s->udp_fd, p, len, 0, s 595 libavformat/udp.c (struct sockaddr *) &s->dest_addr, s 596 libavformat/udp.c s->dest_addr_len); s 598 libavformat/udp.c ret = send(s->udp_fd, p, len, 0); s 605 libavformat/udp.c pthread_mutex_lock(&s->mutex); s 606 libavformat/udp.c s->circular_buffer_error = ret; s 607 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 613 libavformat/udp.c pthread_mutex_lock(&s->mutex); s 617 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 630 libavformat/udp.c UDPContext *s = h->priv_data; s 640 libavformat/udp.c if (s->buffer_size < 0) s 641 libavformat/udp.c s->buffer_size = is_output ? UDP_TX_BUF_SIZE : UDP_RX_BUF_SIZE; s 643 libavformat/udp.c if (s->sources) { s 644 libavformat/udp.c if (ff_ip_parse_sources(h, s->sources, &s->filters) < 0) s 648 libavformat/udp.c if (s->block) { s 649 libavformat/udp.c if (ff_ip_parse_blocks(h, s->block, &s->filters) < 0) s 653 libavformat/udp.c if (s->pkt_size > 0) s 654 libavformat/udp.c h->max_packet_size = s->pkt_size; s 660 libavformat/udp.c s->reuse_socket = strtol(buf, &endptr, 10); s 663 libavformat/udp.c s->reuse_socket = 1; s 667 libavformat/udp.c s->overrun_nonfatal = strtol(buf, &endptr, 10); s 670 libavformat/udp.c s->overrun_nonfatal = 1; s 677 libavformat/udp.c s->ttl = strtol(buf, NULL, 10); s 680 libavformat/udp.c s->udplite_coverage = strtol(buf, NULL, 10); s 683 libavformat/udp.c s->local_port = strtol(buf, NULL, 10); s 686 libavformat/udp.c s->pkt_size = strtol(buf, NULL, 10); s 689 libavformat/udp.c s->buffer_size = strtol(buf, NULL, 10); s 692 libavformat/udp.c s->is_connected = strtol(buf, NULL, 10); s 698 libavformat/udp.c s->circular_buffer_size = strtol(buf, NULL, 10); s 705 libavformat/udp.c s->bitrate = strtoll(buf, NULL, 10); s 712 libavformat/udp.c s->burst_bits = strtoll(buf, NULL, 10); s 718 libavformat/udp.c if (ff_ip_parse_sources(h, buf, &s->filters) < 0) s 722 libavformat/udp.c if (ff_ip_parse_blocks(h, buf, &s->filters) < 0) s 726 libavformat/udp.c s->timeout = strtol(buf, NULL, 10); s 728 libavformat/udp.c s->is_broadcast = strtol(buf, NULL, 10); s 731 libavformat/udp.c s->circular_buffer_size *= 188; s 733 libavformat/udp.c h->max_packet_size = s->pkt_size; s 737 libavformat/udp.c h->rw_timeout = s->timeout; s 752 libavformat/udp.c if ((s->is_multicast || s->local_port <= 0) && (h->flags & AVIO_FLAG_READ)) s 753 libavformat/udp.c s->local_port = port; s 758 libavformat/udp.c udp_fd = udp_socket_create(h, &my_addr, &len, s->localaddr); s 762 libavformat/udp.c s->local_addr_storage=my_addr; //store for future multicast join s 767 libavformat/udp.c if (s->reuse_socket > 0 || (s->is_multicast && s->reuse_socket < 0)) { s 768 libavformat/udp.c s->reuse_socket = 1; s 769 libavformat/udp.c if (setsockopt (udp_fd, SOL_SOCKET, SO_REUSEADDR, &(s->reuse_socket), sizeof(s->reuse_socket)) != 0) s 773 libavformat/udp.c if (s->is_broadcast) { s 775 libavformat/udp.c if (setsockopt (udp_fd, SOL_SOCKET, SO_BROADCAST, &(s->is_broadcast), sizeof(s->is_broadcast)) != 0) s 784 libavformat/udp.c if (s->udplite_coverage) { s 785 libavformat/udp.c if (setsockopt (udp_fd, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, &(s->udplite_coverage), sizeof(s->udplite_coverage)) != 0) s 788 libavformat/udp.c if (setsockopt (udp_fd, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, &(s->udplite_coverage), sizeof(s->udplite_coverage)) != 0) s 802 libavformat/udp.c if (s->is_multicast && (h->flags & AVIO_FLAG_READ)) { s 803 libavformat/udp.c bind_ret = bind(udp_fd,(struct sockaddr *)&s->dest_addr, len); s 815 libavformat/udp.c s->local_port = udp_port(&my_addr, len); s 817 libavformat/udp.c if (s->is_multicast) { s 820 libavformat/udp.c if (udp_set_multicast_ttl(udp_fd, s->ttl, (struct sockaddr *)&s->dest_addr) < 0) s 825 libavformat/udp.c if (s->filters.nb_include_addrs) { s 827 libavformat/udp.c (struct sockaddr *)&s->dest_addr, s 828 libavformat/udp.c s->dest_addr_len, &s->local_addr_storage, s 829 libavformat/udp.c s->filters.include_addrs, s 830 libavformat/udp.c s->filters.nb_include_addrs, 1) < 0) s 833 libavformat/udp.c if (udp_join_multicast_group(udp_fd, (struct sockaddr *)&s->dest_addr,(struct sockaddr *)&s->local_addr_storage) < 0) s 836 libavformat/udp.c if (s->filters.nb_exclude_addrs) { s 838 libavformat/udp.c (struct sockaddr *)&s->dest_addr, s 839 libavformat/udp.c s->dest_addr_len, &s->local_addr_storage, s 840 libavformat/udp.c s->filters.exclude_addrs, s 841 libavformat/udp.c s->filters.nb_exclude_addrs, 0) < 0) s 849 libavformat/udp.c tmp = s->buffer_size; s 856 libavformat/udp.c tmp = s->buffer_size; s 865 libavformat/udp.c if(tmp < s->buffer_size) s 866 libavformat/udp.c av_log(h, AV_LOG_WARNING, "attempted to set receive buffer to size %d but it only ended up set as %d\n", s->buffer_size, tmp); s 872 libavformat/udp.c if (s->is_connected) { s 873 libavformat/udp.c if (connect(udp_fd, (struct sockaddr *) &s->dest_addr, s->dest_addr_len)) { s 879 libavformat/udp.c s->udp_fd = udp_fd; s 888 libavformat/udp.c if (is_output && s->bitrate && !s->circular_buffer_size) { s 893 libavformat/udp.c if ((!is_output && s->circular_buffer_size) || (is_output && s->bitrate && s->circular_buffer_size)) { s 897 libavformat/udp.c s->fifo = av_fifo_alloc(s->circular_buffer_size); s 898 libavformat/udp.c ret = pthread_mutex_init(&s->mutex, NULL); s 903 libavformat/udp.c ret = pthread_cond_init(&s->cond, NULL); s 908 libavformat/udp.c ret = pthread_create(&s->circular_buffer_thread, NULL, is_output?circular_buffer_task_tx:circular_buffer_task_rx, h); s 913 libavformat/udp.c s->thread_started = 1; s 920 libavformat/udp.c pthread_cond_destroy(&s->cond); s 922 libavformat/udp.c pthread_mutex_destroy(&s->mutex); s 927 libavformat/udp.c av_fifo_freep(&s->fifo); s 928 libavformat/udp.c ff_ip_reset_filters(&s->filters); s 934 libavformat/udp.c UDPContext *s = h->priv_data; s 937 libavformat/udp.c s->udplite_coverage = UDP_HEADER_SIZE; s 944 libavformat/udp.c UDPContext *s = h->priv_data; s 951 libavformat/udp.c if (s->fifo) { s 952 libavformat/udp.c pthread_mutex_lock(&s->mutex); s 954 libavformat/udp.c avail = av_fifo_size(s->fifo); s 958 libavformat/udp.c av_fifo_generic_read(s->fifo, tmp, 4, NULL); s 965 libavformat/udp.c av_fifo_generic_read(s->fifo, buf, avail, NULL); s 966 libavformat/udp.c av_fifo_drain(s->fifo, AV_RL32(tmp) - avail); s 967 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 969 libavformat/udp.c } else if(s->circular_buffer_error){ s 970 libavformat/udp.c int err = s->circular_buffer_error; s 971 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 974 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 983 libavformat/udp.c int err = pthread_cond_timedwait(&s->cond, &s->mutex, &tv); s 985 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 995 libavformat/udp.c ret = ff_network_wait_fd(s->udp_fd, 0); s 999 libavformat/udp.c ret = recvfrom(s->udp_fd, buf, size, 0, (struct sockaddr *)&addr, &addr_len); s 1002 libavformat/udp.c if (ff_ip_check_source_lists(&addr, &s->filters)) s 1009 libavformat/udp.c UDPContext *s = h->priv_data; s 1013 libavformat/udp.c if (s->fifo) { s 1016 libavformat/udp.c pthread_mutex_lock(&s->mutex); s 1022 libavformat/udp.c if (s->circular_buffer_error<0) { s 1023 libavformat/udp.c int err=s->circular_buffer_error; s 1024 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 1028 libavformat/udp.c if(av_fifo_space(s->fifo) < size + 4) { s 1030 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 1034 libavformat/udp.c av_fifo_generic_write(s->fifo, tmp, 4, NULL); /* size of packet */ s 1035 libavformat/udp.c av_fifo_generic_write(s->fifo, (uint8_t *)buf, size, NULL); /* the data */ s 1036 libavformat/udp.c pthread_cond_signal(&s->cond); s 1037 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 1042 libavformat/udp.c ret = ff_network_wait_fd(s->udp_fd, 1); s 1047 libavformat/udp.c if (!s->is_connected) { s 1048 libavformat/udp.c ret = sendto (s->udp_fd, buf, size, 0, s 1049 libavformat/udp.c (struct sockaddr *) &s->dest_addr, s 1050 libavformat/udp.c s->dest_addr_len); s 1052 libavformat/udp.c ret = send(s->udp_fd, buf, size, 0); s 1059 libavformat/udp.c UDPContext *s = h->priv_data; s 1063 libavformat/udp.c if (s->thread_started && !(h->flags & AVIO_FLAG_READ)) { s 1064 libavformat/udp.c pthread_mutex_lock(&s->mutex); s 1065 libavformat/udp.c s->close_req = 1; s 1066 libavformat/udp.c pthread_cond_signal(&s->cond); s 1067 libavformat/udp.c pthread_mutex_unlock(&s->mutex); s 1071 libavformat/udp.c if (s->is_multicast && (h->flags & AVIO_FLAG_READ)) s 1072 libavformat/udp.c udp_leave_multicast_group(s->udp_fd, (struct sockaddr *)&s->dest_addr,(struct sockaddr *)&s->local_addr_storage); s 1074 libavformat/udp.c if (s->thread_started) { s 1082 libavformat/udp.c shutdown(s->udp_fd, SD_RECEIVE); s 1083 libavformat/udp.c CancelIoEx((HANDLE)(SOCKET)s->udp_fd, NULL); s 1085 libavformat/udp.c pthread_cancel(s->circular_buffer_thread); s 1088 libavformat/udp.c ret = pthread_join(s->circular_buffer_thread, NULL); s 1091 libavformat/udp.c pthread_mutex_destroy(&s->mutex); s 1092 libavformat/udp.c pthread_cond_destroy(&s->cond); s 1095 libavformat/udp.c closesocket(s->udp_fd); s 1096 libavformat/udp.c av_fifo_freep(&s->fifo); s 1097 libavformat/udp.c ff_ip_reset_filters(&s->filters); s 122 libavformat/uncodedframecrcenc.c static int write_header(struct AVFormatContext *s) s 124 libavformat/uncodedframecrcenc.c return ff_framehash_write_header(s); s 127 libavformat/uncodedframecrcenc.c static int write_frame(struct AVFormatContext *s, int stream_index, s 141 libavformat/uncodedframecrcenc.c type = s->streams[stream_index]->codecpar->codec_type; s 155 libavformat/uncodedframecrcenc.c avio_write(s->pb, bp.str, bp.len); s 162 libavformat/uncodedframecrcenc.c static int write_packet(struct AVFormatContext *s, AVPacket *pkt) s 65 libavformat/unix.c UnixContext *s = h->priv_data; s 69 libavformat/unix.c s->addr.sun_family = AF_UNIX; s 70 libavformat/unix.c av_strlcpy(s->addr.sun_path, filename, sizeof(s->addr.sun_path)); s 72 libavformat/unix.c if ((fd = ff_socket(AF_UNIX, s->type, 0)) < 0) s 75 libavformat/unix.c if (s->timeout < 0 && h->rw_timeout) s 76 libavformat/unix.c s->timeout = h->rw_timeout / 1000; s 78 libavformat/unix.c if (s->listen) { s 79 libavformat/unix.c ret = ff_listen_bind(fd, (struct sockaddr *)&s->addr, s 80 libavformat/unix.c sizeof(s->addr), s->timeout, h); s 85 libavformat/unix.c ret = ff_listen_connect(fd, (struct sockaddr *)&s->addr, s 86 libavformat/unix.c sizeof(s->addr), s->timeout, h, 0); s 91 libavformat/unix.c s->fd = fd; s 96 libavformat/unix.c if (s->listen && AVUNERROR(ret) != EADDRINUSE) s 97 libavformat/unix.c unlink(s->addr.sun_path); s 105 libavformat/unix.c UnixContext *s = h->priv_data; s 109 libavformat/unix.c ret = ff_network_wait_fd(s->fd, 0); s 113 libavformat/unix.c ret = recv(s->fd, buf, size, 0); s 114 libavformat/unix.c if (!ret && s->type == SOCK_STREAM) s 121 libavformat/unix.c UnixContext *s = h->priv_data; s 125 libavformat/unix.c ret = ff_network_wait_fd(s->fd, 1); s 129 libavformat/unix.c ret = send(s->fd, buf, size, MSG_NOSIGNAL); s 135 libavformat/unix.c UnixContext *s = h->priv_data; s 136 libavformat/unix.c if (s->listen) s 137 libavformat/unix.c unlink(s->addr.sun_path); s 138 libavformat/unix.c closesocket(s->fd); s 144 libavformat/unix.c UnixContext *s = h->priv_data; s 145 libavformat/unix.c return s->fd; s 63 libavformat/url.h int (*url_accept)(URLContext *s, URLContext **c); s 161 libavformat/url.h int ffurl_accept(URLContext *s, URLContext **c); s 37 libavformat/urldecode.c int s = 0, d = 0, url_len = 0; s 50 libavformat/urldecode.c while (s < url_len) { s 51 libavformat/urldecode.c c = url[s++]; s 53 libavformat/urldecode.c if (c == '%' && s + 2 < url_len) { s 54 libavformat/urldecode.c char c2 = url[s++]; s 55 libavformat/urldecode.c char c3 = url[s++]; s 149 libavformat/utils.c void av_format_inject_global_side_data(AVFormatContext *s) s 152 libavformat/utils.c s->internal->inject_global_side_data = 1; s 153 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) { s 154 libavformat/utils.c AVStream *st = s->streams[i]; s 179 libavformat/utils.c static const AVCodec *find_decoder(AVFormatContext *s, const AVStream *st, enum AVCodecID codec_id) s 190 libavformat/utils.c if (s->video_codec) return s->video_codec; s 193 libavformat/utils.c if (s->audio_codec) return s->audio_codec; s 196 libavformat/utils.c if (s->subtitle_codec) return s->subtitle_codec; s 203 libavformat/utils.c static const AVCodec *find_probe_decoder(AVFormatContext *s, const AVStream *st, enum AVCodecID codec_id) s 214 libavformat/utils.c codec = find_decoder(s, st, codec_id); s 234 libavformat/utils.c int av_format_get_probe_score(const AVFormatContext *s) s 236 libavformat/utils.c return s->probe_score; s 243 libavformat/utils.c int ffio_limit(AVIOContext *s, int size) s 245 libavformat/utils.c if (s->maxsize>= 0) { s 246 libavformat/utils.c int64_t remaining= s->maxsize - avio_tell(s); s 248 libavformat/utils.c int64_t newsize = avio_size(s); s 249 libavformat/utils.c if (!s->maxsize || s->maxsize<newsize) s 250 libavformat/utils.c s->maxsize = newsize - !newsize; s 251 libavformat/utils.c remaining= s->maxsize - avio_tell(s); s 255 libavformat/utils.c if (s->maxsize>= 0 && remaining+1 < size) { s 265 libavformat/utils.c static int append_packet_chunked(AVIOContext *s, AVPacket *pkt, int size) s 278 libavformat/utils.c read_size = ffio_limit(s, read_size); s 280 libavformat/utils.c if (s->maxsize < 0) s 288 libavformat/utils.c ret = avio_read(s, pkt->data + prev_size, read_size); s 304 libavformat/utils.c int av_get_packet(AVIOContext *s, AVPacket *pkt, int size) s 309 libavformat/utils.c pkt->pos = avio_tell(s); s 311 libavformat/utils.c return append_packet_chunked(s, pkt, size); s 314 libavformat/utils.c int av_append_packet(AVIOContext *s, AVPacket *pkt, int size) s 317 libavformat/utils.c return av_get_packet(s, pkt, size); s 318 libavformat/utils.c return append_packet_chunked(s, pkt, size); s 328 libavformat/utils.c static int set_codec_from_probe_data(AVFormatContext *s, AVStream *st, s 358 libavformat/utils.c av_log(s, AV_LOG_DEBUG, s 360 libavformat/utils.c pd->buf_size, s->max_probe_packets - st->probe_packets, s 410 libavformat/utils.c static int init_input(AVFormatContext *s, const char *filename, s 417 libavformat/utils.c if (s->pb) { s 418 libavformat/utils.c s->flags |= AVFMT_FLAG_CUSTOM_IO; s 419 libavformat/utils.c if (!s->iformat) s 420 libavformat/utils.c return av_probe_input_buffer2(s->pb, &s->iformat, filename, s 421 libavformat/utils.c s, 0, s->format_probesize); s 422 libavformat/utils.c else if (s->iformat->flags & AVFMT_NOFILE) s 423 libavformat/utils.c av_log(s, AV_LOG_WARNING, "Custom AVIOContext makes no sense and " s 428 libavformat/utils.c if ((s->iformat && s->iformat->flags & AVFMT_NOFILE) || s 429 libavformat/utils.c (!s->iformat && (s->iformat = av_probe_input_format2(&pd, 0, &score)))) s 432 libavformat/utils.c if ((ret = s->io_open(s, &s->pb, filename, AVIO_FLAG_READ | s->avio_flags, options)) < 0) s 435 libavformat/utils.c if (s->iformat) s 437 libavformat/utils.c return av_probe_input_buffer2(s->pb, &s->iformat, filename, s 438 libavformat/utils.c s, 0, s->format_probesize); s 475 libavformat/utils.c int avformat_queue_attached_pictures(AVFormatContext *s) s 478 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) s 479 libavformat/utils.c if (s->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC && s 480 libavformat/utils.c s->streams[i]->discard < AVDISCARD_ALL) { s 481 libavformat/utils.c if (s->streams[i]->attached_pic.size <= 0) { s 482 libavformat/utils.c av_log(s, AV_LOG_WARNING, s 488 libavformat/utils.c ret = ff_packet_list_put(&s->internal->raw_packet_buffer, s 489 libavformat/utils.c &s->internal->raw_packet_buffer_end, s 490 libavformat/utils.c &s->streams[i]->attached_pic, s 498 libavformat/utils.c static int update_stream_avctx(AVFormatContext *s) s 501 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) { s 502 libavformat/utils.c AVStream *st = s->streams[i]; s 536 libavformat/utils.c AVFormatContext *s = *ps; s 541 libavformat/utils.c if (!s && !(s = avformat_alloc_context())) s 543 libavformat/utils.c if (!s->av_class) { s 548 libavformat/utils.c s->iformat = fmt; s 553 libavformat/utils.c if (s->pb) // must be before any goto fail s 554 libavformat/utils.c s->flags |= AVFMT_FLAG_CUSTOM_IO; s 556 libavformat/utils.c if ((ret = av_opt_set_dict(s, &tmp)) < 0) s 559 libavformat/utils.c if (!(s->url = av_strdup(filename ? filename : ""))) { s 566 libavformat/utils.c av_strlcpy(s->filename, filename ? filename : "", sizeof(s->filename)); s 569 libavformat/utils.c if ((ret = init_input(s, filename, &tmp)) < 0) s 571 libavformat/utils.c s->probe_score = ret; s 573 libavformat/utils.c if (!s->protocol_whitelist && s->pb && s->pb->protocol_whitelist) { s 574 libavformat/utils.c s->protocol_whitelist = av_strdup(s->pb->protocol_whitelist); s 575 libavformat/utils.c if (!s->protocol_whitelist) { s 581 libavformat/utils.c if (!s->protocol_blacklist && s->pb && s->pb->protocol_blacklist) { s 582 libavformat/utils.c s->protocol_blacklist = av_strdup(s->pb->protocol_blacklist); s 583 libavformat/utils.c if (!s->protocol_blacklist) { s 589 libavformat/utils.c if (s->format_whitelist && av_match_list(s->iformat->name, s->format_whitelist, ',') <= 0) { s 590 libavformat/utils.c av_log(s, AV_LOG_ERROR, "Format not on whitelist \'%s\'\n", s->format_whitelist); s 595 libavformat/utils.c avio_skip(s->pb, s->skip_initial_bytes); s 598 libavformat/utils.c if (s->iformat->flags & AVFMT_NEEDNUMBER) { s 605 libavformat/utils.c s->duration = s->start_time = AV_NOPTS_VALUE; s 608 libavformat/utils.c if (s->iformat->priv_data_size > 0) { s 609 libavformat/utils.c if (!(s->priv_data = av_mallocz(s->iformat->priv_data_size))) { s 613 libavformat/utils.c if (s->iformat->priv_class) { s 614 libavformat/utils.c *(const AVClass **) s->priv_data = s->iformat->priv_class; s 615 libavformat/utils.c av_opt_set_defaults(s->priv_data); s 616 libavformat/utils.c if ((ret = av_opt_set_dict(s->priv_data, &tmp)) < 0) s 622 libavformat/utils.c if (s->pb) s 623 libavformat/utils.c ff_id3v2_read_dict(s->pb, &s->internal->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta); s 626 libavformat/utils.c if (!(s->flags&AVFMT_FLAG_PRIV_OPT) && s->iformat->read_header) s 627 libavformat/utils.c if ((ret = s->iformat->read_header(s)) < 0) s 630 libavformat/utils.c if (!s->metadata) { s 631 libavformat/utils.c s->metadata = s->internal->id3v2_meta; s 632 libavformat/utils.c s->internal->id3v2_meta = NULL; s 633 libavformat/utils.c } else if (s->internal->id3v2_meta) { s 634 libavformat/utils.c av_log(s, AV_LOG_WARNING, "Discarding ID3 tags because more suitable tags were found.\n"); s 635 libavformat/utils.c av_dict_free(&s->internal->id3v2_meta); s 639 libavformat/utils.c if (!strcmp(s->iformat->name, "mp3") || !strcmp(s->iformat->name, "aac") || s 640 libavformat/utils.c !strcmp(s->iformat->name, "tta") || !strcmp(s->iformat->name, "wav")) { s 641 libavformat/utils.c if ((ret = ff_id3v2_parse_apic(s, id3v2_extra_meta)) < 0) s 643 libavformat/utils.c if ((ret = ff_id3v2_parse_chapters(s, id3v2_extra_meta)) < 0) s 645 libavformat/utils.c if ((ret = ff_id3v2_parse_priv(s, id3v2_extra_meta)) < 0) s 648 libavformat/utils.c av_log(s, AV_LOG_DEBUG, "demuxer does not support additional id3 data, skipping\n"); s 652 libavformat/utils.c if ((ret = avformat_queue_attached_pictures(s)) < 0) s 655 libavformat/utils.c if (!(s->flags&AVFMT_FLAG_PRIV_OPT) && s->pb && !s->internal->data_offset) s 656 libavformat/utils.c s->internal->data_offset = avio_tell(s->pb); s 658 libavformat/utils.c s->internal->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE; s 660 libavformat/utils.c update_stream_avctx(s); s 662 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) s 663 libavformat/utils.c s->streams[i]->internal->orig_codec_id = s->streams[i]->codecpar->codec_id; s 669 libavformat/utils.c *ps = s; s 673 libavformat/utils.c if (s->iformat->read_close) s 674 libavformat/utils.c s->iformat->read_close(s); s 678 libavformat/utils.c if (s->pb && !(s->flags & AVFMT_FLAG_CUSTOM_IO)) s 679 libavformat/utils.c avio_closep(&s->pb); s 680 libavformat/utils.c avformat_free_context(s); s 687 libavformat/utils.c static void force_codec_ids(AVFormatContext *s, AVStream *st) s 691 libavformat/utils.c if (s->video_codec_id) s 692 libavformat/utils.c st->codecpar->codec_id = s->video_codec_id; s 695 libavformat/utils.c if (s->audio_codec_id) s 696 libavformat/utils.c st->codecpar->codec_id = s->audio_codec_id; s 699 libavformat/utils.c if (s->subtitle_codec_id) s 700 libavformat/utils.c st->codecpar->codec_id = s->subtitle_codec_id; s 703 libavformat/utils.c if (s->data_codec_id) s 704 libavformat/utils.c st->codecpar->codec_id = s->data_codec_id; s 709 libavformat/utils.c static int probe_codec(AVFormatContext *s, AVStream *st, const AVPacket *pkt) s 714 libavformat/utils.c av_log(s, AV_LOG_DEBUG, "probing stream %d pp:%d\n", st->index, st->probe_packets); s 720 libavformat/utils.c av_log(s, AV_LOG_WARNING, s 733 libavformat/utils.c av_log(s, AV_LOG_WARNING, s 738 libavformat/utils.c end= s->internal->raw_packet_buffer_remaining_size <= 0 s 742 libavformat/utils.c int score = set_codec_from_probe_data(s, st, pd); s 749 libavformat/utils.c av_log(s, AV_LOG_DEBUG, "probed stream %d\n", st->index); s 751 libavformat/utils.c av_log(s, AV_LOG_WARNING, "probed stream %d failed\n", st->index); s 753 libavformat/utils.c force_codec_ids(s, st); s 759 libavformat/utils.c static int update_wrap_reference(AVFormatContext *s, AVStream *st, int stream_index, AVPacket *pkt) s 768 libavformat/utils.c if (st->pts_wrap_reference != AV_NOPTS_VALUE || st->pts_wrap_bits >= 63 || ref == AV_NOPTS_VALUE || !s->correct_ts_overflow) s 779 libavformat/utils.c first_program = av_find_program_from_stream(s, NULL, stream_index); s 782 libavformat/utils.c int default_stream_index = av_find_default_stream_index(s); s 783 libavformat/utils.c if (s->streams[default_stream_index]->pts_wrap_reference == AV_NOPTS_VALUE) { s 784 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) { s 785 libavformat/utils.c if (av_find_program_from_stream(s, NULL, i)) s 787 libavformat/utils.c s->streams[i]->pts_wrap_reference = pts_wrap_reference; s 788 libavformat/utils.c s->streams[i]->pts_wrap_behavior = pts_wrap_behavior; s 792 libavformat/utils.c st->pts_wrap_reference = s->streams[default_stream_index]->pts_wrap_reference; s 793 libavformat/utils.c st->pts_wrap_behavior = s->streams[default_stream_index]->pts_wrap_behavior; s 804 libavformat/utils.c program = av_find_program_from_stream(s, program, stream_index); s 812 libavformat/utils.c s->streams[program->stream_index[i]]->pts_wrap_reference = pts_wrap_reference; s 813 libavformat/utils.c s->streams[program->stream_index[i]]->pts_wrap_behavior = pts_wrap_behavior; s 819 libavformat/utils.c program = av_find_program_from_stream(s, program, stream_index); s 825 libavformat/utils.c int ff_read_packet(AVFormatContext *s, AVPacket *pkt) s 835 libavformat/utils.c AVPacketList *pktl = s->internal->raw_packet_buffer; s 839 libavformat/utils.c st = s->streams[pktl->pkt.stream_index]; s 840 libavformat/utils.c if (s->internal->raw_packet_buffer_remaining_size <= 0) s 841 libavformat/utils.c if ((err = probe_codec(s, st, NULL)) < 0) s 844 libavformat/utils.c ff_packet_list_get(&s->internal->raw_packet_buffer, s 845 libavformat/utils.c &s->internal->raw_packet_buffer_end, pkt); s 846 libavformat/utils.c s->internal->raw_packet_buffer_remaining_size += pkt->size; s 851 libavformat/utils.c ret = s->iformat->read_packet(s, pkt); s 862 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) { s 863 libavformat/utils.c st = s->streams[i]; s 865 libavformat/utils.c if ((err = probe_codec(s, st, NULL)) < 0) s 879 libavformat/utils.c av_log(s, AV_LOG_WARNING, s 882 libavformat/utils.c if (s->flags & AVFMT_FLAG_DISCARD_CORRUPT) { s 883 libavformat/utils.c av_log(s, AV_LOG_WARNING, ", dropping it.\n"); s 887 libavformat/utils.c av_log(s, AV_LOG_WARNING, ".\n"); s 890 libavformat/utils.c av_assert0(pkt->stream_index < (unsigned)s->nb_streams && s 893 libavformat/utils.c st = s->streams[pkt->stream_index]; s 895 libavformat/utils.c if (update_wrap_reference(s, st, pkt->stream_index, pkt) && st->pts_wrap_behavior == AV_PTS_WRAP_SUB_OFFSET) { s 908 libavformat/utils.c force_codec_ids(s, st); s 911 libavformat/utils.c if (s->use_wallclock_as_timestamps) s 917 libavformat/utils.c err = ff_packet_list_put(&s->internal->raw_packet_buffer, s 918 libavformat/utils.c &s->internal->raw_packet_buffer_end, s 924 libavformat/utils.c pkt1 = &s->internal->raw_packet_buffer_end->pkt; s 925 libavformat/utils.c s->internal->raw_packet_buffer_remaining_size -= pkt1->size; s 927 libavformat/utils.c if ((err = probe_codec(s, st, pkt1)) < 0) s 951 libavformat/utils.c void ff_compute_frame_duration(AVFormatContext *s, int *pnum, int *pden, AVStream *st, s 954 libavformat/utils.c AVRational codec_framerate = s->iformat ? st->internal->avctx->framerate : s 969 libavformat/utils.c if (st->r_frame_rate.num && !pc && s->iformat) { s 983 libavformat/utils.c av_assert0(s->iformat); // this may be wrong for interlaced encoding but its not used for that case s 1043 libavformat/utils.c static AVPacketList *get_next_pkt(AVFormatContext *s, AVStream *st, AVPacketList *pktl) s 1047 libavformat/utils.c if (pktl == s->internal->packet_buffer_end) s 1048 libavformat/utils.c return s->internal->parse_queue; s 1098 libavformat/utils.c static void update_dts_from_pts(AVFormatContext *s, int stream_index, s 1101 libavformat/utils.c AVStream *st = s->streams[stream_index]; s 1110 libavformat/utils.c for (; pkt_buffer; pkt_buffer = get_next_pkt(s, st, pkt_buffer)) { s 1124 libavformat/utils.c static void update_initial_timestamps(AVFormatContext *s, int stream_index, s 1127 libavformat/utils.c AVStream *st = s->streams[stream_index]; s 1128 libavformat/utils.c AVPacketList *pktl = s->internal->packet_buffer ? s->internal->packet_buffer : s->internal->parse_queue; s 1147 libavformat/utils.c for (pktl_it = pktl; pktl_it; pktl_it = get_next_pkt(s, st, pktl_it)) { s 1164 libavformat/utils.c update_dts_from_pts(s, stream_index, pktl); s 1176 libavformat/utils.c static void update_initial_durations(AVFormatContext *s, AVStream *st, s 1179 libavformat/utils.c AVPacketList *pktl = s->internal->packet_buffer ? s->internal->packet_buffer : s->internal->parse_queue; s 1187 libavformat/utils.c for (; pktl; pktl = get_next_pkt(s, st, pktl)) { s 1197 libavformat/utils.c av_log(s, AV_LOG_DEBUG, "first_dts %s not matching first dts %s (pts %s, duration %"PRId64") in the queue\n", s 1202 libavformat/utils.c av_log(s, AV_LOG_DEBUG, "first_dts %s but no packet with dts in the queue\n", av_ts2str(st->first_dts)); s 1205 libavformat/utils.c pktl = s->internal->packet_buffer ? s->internal->packet_buffer : s->internal->parse_queue; s 1210 libavformat/utils.c for (; pktl; pktl = get_next_pkt(s, st, pktl)) { s 1232 libavformat/utils.c static void compute_pkt_fields(AVFormatContext *s, AVStream *st, s 1242 libavformat/utils.c if (s->flags & AVFMT_FLAG_NOFILLIN) s 1250 libavformat/utils.c av_log(s, st->dts_misordered ? AV_LOG_DEBUG : AV_LOG_WARNING, s 1267 libavformat/utils.c if ((s->flags & AVFMT_FLAG_IGNDTS) && pkt->pts != AV_NOPTS_VALUE) s 1300 libavformat/utils.c av_log(s, AV_LOG_DEBUG, "invalid dts/pts combination %"PRIi64"\n", pkt->dts); s 1301 libavformat/utils.c if ( strcmp(s->iformat->name, "mov,mp4,m4a,3gp,3g2,mj2") s 1302 libavformat/utils.c && strcmp(s->iformat->name, "flv")) // otherwise we discard correct timestamps for vc1-wmapro.ism s 1308 libavformat/utils.c ff_compute_frame_duration(s, &num, &den, st, pc, pkt); s 1318 libavformat/utils.c if (pkt->duration > 0 && (s->internal->packet_buffer || s->internal->parse_queue)) s 1319 libavformat/utils.c update_initial_durations(s, st, pkt->stream_index, pkt->duration); s 1338 libavformat/utils.c if (s->debug & FF_FDEBUG_TS) s 1339 libavformat/utils.c av_log(s, AV_LOG_DEBUG, s 1353 libavformat/utils.c update_initial_timestamps(s, pkt->stream_index, pkt->dts, pkt->pts, pkt); s 1383 libavformat/utils.c update_initial_timestamps(s, pkt->stream_index, pkt->pts, s 1404 libavformat/utils.c update_initial_timestamps(s, pkt->stream_index, pkt->dts, pkt->pts, pkt); s 1408 libavformat/utils.c if (s->debug & FF_FDEBUG_TS) s 1409 libavformat/utils.c av_log(s, AV_LOG_DEBUG, "OUTdelayed:%d/%d pts:%s, dts:%s cur_dts:%s st:%d (%d)\n", s 1443 libavformat/utils.c static int parse_packet(AVFormatContext *s, AVPacket *pkt, s 1447 libavformat/utils.c AVStream *st = s->streams[stream_index]; s 1456 libavformat/utils.c compute_pkt_fields(s, st, st->parser, pkt, AV_NOPTS_VALUE, AV_NOPTS_VALUE); s 1531 libavformat/utils.c compute_pkt_fields(s, st, st->parser, &out_pkt, next_dts, next_pts); s 1533 libavformat/utils.c ret = ff_packet_list_put(&s->internal->parse_queue, s 1534 libavformat/utils.c &s->internal->parse_queue_end, s 1573 libavformat/utils.c static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) s 1578 libavformat/utils.c while (!got_packet && !s->internal->parse_queue) { s 1582 libavformat/utils.c ret = ff_read_packet(s, pkt); s 1587 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) { s 1588 libavformat/utils.c st = s->streams[i]; s 1590 libavformat/utils.c parse_packet(s, pkt, st->index, 1); s 1597 libavformat/utils.c st = s->streams[pkt->stream_index]; s 1602 libavformat/utils.c av_log(s, AV_LOG_DEBUG, "Demuxer context update while decoder is open, closing and trying to re-open\n"); s 1636 libavformat/utils.c av_log(s, AV_LOG_WARNING, s 1643 libavformat/utils.c if (s->debug & FF_FDEBUG_TS) s 1644 libavformat/utils.c av_log(s, AV_LOG_DEBUG, s 1651 libavformat/utils.c if (st->need_parsing && !st->parser && !(s->flags & AVFMT_FLAG_NOPARSE)) { s 1654 libavformat/utils.c av_log(s, AV_LOG_VERBOSE, "parser not found for codec " s 1669 libavformat/utils.c compute_pkt_fields(s, st, NULL, pkt, AV_NOPTS_VALUE, AV_NOPTS_VALUE); s 1670 libavformat/utils.c if ((s->iformat->flags & AVFMT_GENERIC_INDEX) && s 1672 libavformat/utils.c ff_reduce_index(s, st->index); s 1678 libavformat/utils.c if ((ret = parse_packet(s, pkt, pkt->stream_index, 0)) < 0) s 1697 libavformat/utils.c if (!got_packet && s->internal->parse_queue) s 1698 libavformat/utils.c ret = ff_packet_list_get(&s->internal->parse_queue, &s->internal->parse_queue_end, pkt); s 1701 libavformat/utils.c AVStream *st = s->streams[pkt->stream_index]; s 1719 libavformat/utils.c av_log(s, AV_LOG_DEBUG, "demuxer injecting skip %d / discard %d\n", st->skip_samples, discard_padding); s 1734 libavformat/utils.c av_log(s, AV_LOG_WARNING, "Could not inject global side data\n"); s 1744 libavformat/utils.c av_opt_get_dict_val(s, "metadata", AV_OPT_SEARCH_CHILDREN, &metadata); s 1746 libavformat/utils.c s->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; s 1747 libavformat/utils.c av_dict_copy(&s->metadata, metadata, 0); s 1749 libavformat/utils.c av_opt_set_dict_val(s, "metadata", NULL, AV_OPT_SEARCH_CHILDREN); s 1753 libavformat/utils.c update_stream_avctx(s); s 1756 libavformat/utils.c if (s->debug & FF_FDEBUG_TS) s 1757 libavformat/utils.c av_log(s, AV_LOG_DEBUG, s 1767 libavformat/utils.c if (ret == AVERROR_EOF && s->pb && s->pb->error < 0 && s->pb->error != AVERROR(EAGAIN)) s 1768 libavformat/utils.c ret = s->pb->error; s 1773 libavformat/utils.c int av_read_frame(AVFormatContext *s, AVPacket *pkt) s 1775 libavformat/utils.c const int genpts = s->flags & AVFMT_FLAG_GENPTS; s 1781 libavformat/utils.c ret = s->internal->packet_buffer s 1782 libavformat/utils.c ? ff_packet_list_get(&s->internal->packet_buffer, s 1783 libavformat/utils.c &s->internal->packet_buffer_end, pkt) s 1784 libavformat/utils.c : read_frame_internal(s, pkt); s 1791 libavformat/utils.c AVPacketList *pktl = s->internal->packet_buffer; s 1797 libavformat/utils.c int wrap_bits = s->streams[next_pkt->stream_index]->pts_wrap_bits; s 1824 libavformat/utils.c pktl = s->internal->packet_buffer; s 1828 libavformat/utils.c st = s->streams[next_pkt->stream_index]; s 1831 libavformat/utils.c ret = ff_packet_list_get(&s->internal->packet_buffer, s 1832 libavformat/utils.c &s->internal->packet_buffer_end, pkt); s 1837 libavformat/utils.c ret = read_frame_internal(s, pkt); s 1846 libavformat/utils.c ret = ff_packet_list_put(&s->internal->packet_buffer, s 1847 libavformat/utils.c &s->internal->packet_buffer_end, s 1857 libavformat/utils.c st = s->streams[pkt->stream_index]; s 1858 libavformat/utils.c if ((s->iformat->flags & AVFMT_GENERIC_INDEX) && pkt->flags & AV_PKT_FLAG_KEY) { s 1859 libavformat/utils.c ff_reduce_index(s, st->index); s 1872 libavformat/utils.c static void flush_packet_queue(AVFormatContext *s) s 1874 libavformat/utils.c if (!s->internal) s 1876 libavformat/utils.c ff_packet_list_free(&s->internal->parse_queue, &s->internal->parse_queue_end); s 1877 libavformat/utils.c ff_packet_list_free(&s->internal->packet_buffer, &s->internal->packet_buffer_end); s 1878 libavformat/utils.c ff_packet_list_free(&s->internal->raw_packet_buffer, &s->internal->raw_packet_buffer_end); s 1880 libavformat/utils.c s->internal->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE; s 1886 libavformat/utils.c int av_find_default_stream_index(AVFormatContext *s) s 1893 libavformat/utils.c if (s->nb_streams <= 0) s 1895 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) { s 1897 libavformat/utils.c st = s->streams[i]; s 1924 libavformat/utils.c void ff_read_frame_flush(AVFormatContext *s) s 1929 libavformat/utils.c flush_packet_queue(s); s 1932 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) { s 1933 libavformat/utils.c st = s->streams[i]; s 1947 libavformat/utils.c st->probe_packets = s->max_probe_packets; s 1952 libavformat/utils.c if (s->internal->inject_global_side_data) s 1959 libavformat/utils.c void ff_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp) s 1963 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) { s 1964 libavformat/utils.c AVStream *st = s->streams[i]; s 1973 libavformat/utils.c void ff_reduce_index(AVFormatContext *s, int stream_index) s 1975 libavformat/utils.c AVStream *st = s->streams[stream_index]; s 1976 libavformat/utils.c unsigned int max_entries = s->max_index_size / sizeof(AVIndexEntry); s 2097 libavformat/utils.c void ff_configure_buffers_for_index(AVFormatContext *s, int64_t time_tolerance) s 2103 libavformat/utils.c const char *proto = avio_find_protocol_name(s->url); s 2108 libavformat/utils.c av_log(s, AV_LOG_INFO, s 2117 libavformat/utils.c for (ist1 = 0; ist1 < s->nb_streams; ist1++) { s 2118 libavformat/utils.c AVStream *st1 = s->streams[ist1]; s 2119 libavformat/utils.c for (ist2 = 0; ist2 < s->nb_streams; ist2++) { s 2120 libavformat/utils.c AVStream *st2 = s->streams[ist2]; s 2145 libavformat/utils.c if (s->pb->buffer_size < pos_delta && pos_delta < (1<<24)) { s 2146 libavformat/utils.c av_log(s, AV_LOG_VERBOSE, "Reconfiguring buffers to size %"PRId64"\n", pos_delta); s 2149 libavformat/utils.c if (ffio_realloc_buf(s->pb, pos_delta)) { s 2150 libavformat/utils.c av_log(s, AV_LOG_ERROR, "Realloc buffer fail.\n"); s 2154 libavformat/utils.c s->pb->short_seek_threshold = FFMAX(s->pb->short_seek_threshold, pos_delta/2); s 2158 libavformat/utils.c s->pb->short_seek_threshold = FFMAX(s->pb->short_seek_threshold, skip); s 2168 libavformat/utils.c static int64_t ff_read_timestamp(AVFormatContext *s, int stream_index, int64_t *ppos, int64_t pos_limit, s 2171 libavformat/utils.c int64_t ts = read_timestamp(s, stream_index, ppos, pos_limit); s 2173 libavformat/utils.c ts = wrap_timestamp(s->streams[stream_index], ts); s 2177 libavformat/utils.c int ff_seek_frame_binary(AVFormatContext *s, int stream_index, s 2180 libavformat/utils.c const AVInputFormat *avif = s->iformat; s 2190 libavformat/utils.c av_log(s, AV_LOG_TRACE, "read_seek: %d %s\n", stream_index, av_ts2str(target_ts)); s 2196 libavformat/utils.c st = s->streams[stream_index]; s 2210 libavformat/utils.c av_log(s, AV_LOG_TRACE, "using cached pos_min=0x%"PRIx64" dts_min=%s\n", s 2225 libavformat/utils.c av_log(s, AV_LOG_TRACE, "using cached pos_max=0x%"PRIx64" pos_limit=0x%"PRIx64 s 2230 libavformat/utils.c pos = ff_gen_search(s, stream_index, target_ts, pos_min, pos_max, pos_limit, s 2236 libavformat/utils.c if ((ret = avio_seek(s->pb, pos, SEEK_SET)) < 0) s 2239 libavformat/utils.c ff_read_frame_flush(s); s 2240 libavformat/utils.c ff_update_cur_dts(s, st, ts); s 2245 libavformat/utils.c int ff_find_last_ts(AVFormatContext *s, int stream_index, int64_t *ts, int64_t *pos, s 2250 libavformat/utils.c int64_t filesize = avio_size(s->pb); s 2255 libavformat/utils.c ts_max = ff_read_timestamp(s, stream_index, s 2264 libavformat/utils.c int64_t tmp_ts = ff_read_timestamp(s, stream_index, s 2283 libavformat/utils.c int64_t ff_gen_search(AVFormatContext *s, int stream_index, int64_t target_ts, s 2295 libavformat/utils.c av_log(s, AV_LOG_TRACE, "gen_seek: %d %s\n", stream_index, av_ts2str(target_ts)); s 2298 libavformat/utils.c pos_min = s->internal->data_offset; s 2299 libavformat/utils.c ts_min = ff_read_timestamp(s, stream_index, &pos_min, INT64_MAX, read_timestamp); s 2310 libavformat/utils.c if ((ret = ff_find_last_ts(s, stream_index, &ts_max, &pos_max, read_timestamp)) < 0) s 2324 libavformat/utils.c av_log(s, AV_LOG_TRACE, s 2350 libavformat/utils.c ts = ff_read_timestamp(s, stream_index, &pos, INT64_MAX, read_timestamp); s 2355 libavformat/utils.c av_log(s, AV_LOG_TRACE, "%"PRId64" %"PRId64" %"PRId64" / %s %s %s" s 2361 libavformat/utils.c av_log(s, AV_LOG_ERROR, "read_timestamp() failed in the middle\n"); s 2379 libavformat/utils.c ts_min = ff_read_timestamp(s, stream_index, &pos_min, INT64_MAX, read_timestamp); s 2381 libavformat/utils.c ts_max = ff_read_timestamp(s, stream_index, &pos_min, INT64_MAX, read_timestamp); s 2382 libavformat/utils.c av_log(s, AV_LOG_TRACE, "pos=0x%"PRIx64" %s<=%s<=%s\n", s 2389 libavformat/utils.c static int seek_frame_byte(AVFormatContext *s, int stream_index, s 2394 libavformat/utils.c pos_min = s->internal->data_offset; s 2395 libavformat/utils.c pos_max = avio_size(s->pb) - 1; s 2402 libavformat/utils.c avio_seek(s->pb, pos, SEEK_SET); s 2404 libavformat/utils.c s->io_repositioned = 1; s 2409 libavformat/utils.c static int seek_frame_generic(AVFormatContext *s, int stream_index, s 2417 libavformat/utils.c st = s->streams[stream_index]; s 2432 libavformat/utils.c if ((ret = avio_seek(s->pb, ie->pos, SEEK_SET)) < 0) s 2434 libavformat/utils.c ff_update_cur_dts(s, st, ie->timestamp); s 2436 libavformat/utils.c if ((ret = avio_seek(s->pb, s->internal->data_offset, SEEK_SET)) < 0) s 2442 libavformat/utils.c read_status = av_read_frame(s, &pkt); s 2452 libavformat/utils.c av_log(s, AV_LOG_ERROR,"seek_frame_generic failed as this stream seems to contain no keyframes after the target timestamp, %d non keyframes found\n", nonkey); s 2464 libavformat/utils.c ff_read_frame_flush(s); s 2465 libavformat/utils.c if (s->iformat->read_seek) s 2466 libavformat/utils.c if (s->iformat->read_seek(s, stream_index, timestamp, flags) >= 0) s 2469 libavformat/utils.c if ((ret = avio_seek(s->pb, ie->pos, SEEK_SET)) < 0) s 2471 libavformat/utils.c ff_update_cur_dts(s, st, ie->timestamp); s 2476 libavformat/utils.c static int seek_frame_internal(AVFormatContext *s, int stream_index, s 2483 libavformat/utils.c if (s->iformat->flags & AVFMT_NO_BYTE_SEEK) s 2485 libavformat/utils.c ff_read_frame_flush(s); s 2486 libavformat/utils.c return seek_frame_byte(s, stream_index, timestamp, flags); s 2490 libavformat/utils.c stream_index = av_find_default_stream_index(s); s 2494 libavformat/utils.c st = s->streams[stream_index]; s 2501 libavformat/utils.c if (s->iformat->read_seek) { s 2502 libavformat/utils.c ff_read_frame_flush(s); s 2503 libavformat/utils.c ret = s->iformat->read_seek(s, stream_index, timestamp, flags); s 2509 libavformat/utils.c if (s->iformat->read_timestamp && s 2510 libavformat/utils.c !(s->iformat->flags & AVFMT_NOBINSEARCH)) { s 2511 libavformat/utils.c ff_read_frame_flush(s); s 2512 libavformat/utils.c return ff_seek_frame_binary(s, stream_index, timestamp, flags); s 2513 libavformat/utils.c } else if (!(s->iformat->flags & AVFMT_NOGENSEARCH)) { s 2514 libavformat/utils.c ff_read_frame_flush(s); s 2515 libavformat/utils.c return seek_frame_generic(s, stream_index, timestamp, flags); s 2520 libavformat/utils.c int av_seek_frame(AVFormatContext *s, int stream_index, s 2525 libavformat/utils.c if (s->iformat->read_seek2 && !s->iformat->read_seek) { s 2531 libavformat/utils.c return avformat_seek_file(s, stream_index, min_ts, timestamp, max_ts, s 2535 libavformat/utils.c ret = seek_frame_internal(s, stream_index, timestamp, flags); s 2538 libavformat/utils.c ret = avformat_queue_attached_pictures(s); s 2543 libavformat/utils.c int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, s 2548 libavformat/utils.c if (stream_index < -1 || stream_index >= (int)s->nb_streams) s 2551 libavformat/utils.c if (s->seek2any>0) s 2555 libavformat/utils.c if (s->iformat->read_seek2) { s 2557 libavformat/utils.c ff_read_frame_flush(s); s 2559 libavformat/utils.c if (stream_index == -1 && s->nb_streams == 1) { s 2560 libavformat/utils.c AVRational time_base = s->streams[0]->time_base; s 2571 libavformat/utils.c ret = s->iformat->read_seek2(s, stream_index, min_ts, s 2575 libavformat/utils.c ret = avformat_queue_attached_pictures(s); s 2579 libavformat/utils.c if (s->iformat->read_timestamp) { s 2585 libavformat/utils.c if (s->iformat->read_seek || 1) { s 2587 libavformat/utils.c int ret = av_seek_frame(s, stream_index, ts, flags | dir); s 2589 libavformat/utils.c ret = av_seek_frame(s, stream_index, dir ? max_ts : min_ts, flags | dir); s 2591 libavformat/utils.c ret = av_seek_frame(s, stream_index, ts, flags | (dir^AVSEEK_FLAG_BACKWARD)); s 2600 libavformat/utils.c int avformat_flush(AVFormatContext *s) s 2602 libavformat/utils.c ff_read_frame_flush(s); s 3048 libavformat/utils.c static int try_decode_frame(AVFormatContext *s, AVStream *st, s 3068 libavformat/utils.c codec = find_probe_decoder(s, st, st->codecpar->codec_id); s 3079 libavformat/utils.c if (s->codec_whitelist) s 3080 libavformat/utils.c av_dict_set(options ? options : &thread_opt, "codec_whitelist", s->codec_whitelist, 0); s 3255 libavformat/utils.c static void compute_chapters_end(AVFormatContext *s) s 3260 libavformat/utils.c if (s->duration > 0 && s->start_time < INT64_MAX - s->duration) s 3261 libavformat/utils.c max_time = s->duration + s 3262 libavformat/utils.c ((s->start_time == AV_NOPTS_VALUE) ? 0 : s->start_time); s 3264 libavformat/utils.c for (i = 0; i < s->nb_chapters; i++) s 3265 libavformat/utils.c if (s->chapters[i]->end == AV_NOPTS_VALUE) { s 3266 libavformat/utils.c AVChapter *ch = s->chapters[i]; s 3271 libavformat/utils.c for (j = 0; j < s->nb_chapters; j++) { s 3272 libavformat/utils.c AVChapter *ch1 = s->chapters[j]; s 3339 libavformat/utils.c int ff_get_extradata(AVFormatContext *s, AVCodecParameters *par, AVIOContext *pb, int size) s 3348 libavformat/utils.c av_log(s, AV_LOG_ERROR, "Failed to read extradata of size %d\n", size); s 4227 libavformat/utils.c AVProgram *av_find_program_from_stream(AVFormatContext *ic, AVProgram *last, int s) s 4237 libavformat/utils.c if (ic->programs[i]->stream_index[j] == s) s 4312 libavformat/utils.c int av_read_play(AVFormatContext *s) s 4314 libavformat/utils.c if (s->iformat->read_play) s 4315 libavformat/utils.c return s->iformat->read_play(s); s 4316 libavformat/utils.c if (s->pb) s 4317 libavformat/utils.c return avio_pause(s->pb, 0); s 4321 libavformat/utils.c int av_read_pause(AVFormatContext *s) s 4323 libavformat/utils.c if (s->iformat->read_pause) s 4324 libavformat/utils.c return s->iformat->read_pause(s); s 4325 libavformat/utils.c if (s->pb) s 4326 libavformat/utils.c return avio_pause(s->pb, 1); s 4440 libavformat/utils.c void ff_free_stream(AVFormatContext *s, AVStream *st) s 4442 libavformat/utils.c av_assert0(s->nb_streams>0); s 4443 libavformat/utils.c av_assert0(s->streams[ s->nb_streams - 1 ] == st); s 4445 libavformat/utils.c free_stream(&s->streams[ --s->nb_streams ]); s 4448 libavformat/utils.c void avformat_free_context(AVFormatContext *s) s 4452 libavformat/utils.c if (!s) s 4455 libavformat/utils.c if (s->oformat && s->oformat->deinit && s->internal->initialized) s 4456 libavformat/utils.c s->oformat->deinit(s); s 4458 libavformat/utils.c av_opt_free(s); s 4459 libavformat/utils.c if (s->iformat && s->iformat->priv_class && s->priv_data) s 4460 libavformat/utils.c av_opt_free(s->priv_data); s 4461 libavformat/utils.c if (s->oformat && s->oformat->priv_class && s->priv_data) s 4462 libavformat/utils.c av_opt_free(s->priv_data); s 4464 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) s 4465 libavformat/utils.c free_stream(&s->streams[i]); s 4466 libavformat/utils.c s->nb_streams = 0; s 4468 libavformat/utils.c for (i = 0; i < s->nb_programs; i++) { s 4469 libavformat/utils.c av_dict_free(&s->programs[i]->metadata); s 4470 libavformat/utils.c av_freep(&s->programs[i]->stream_index); s 4471 libavformat/utils.c av_freep(&s->programs[i]); s 4473 libavformat/utils.c s->nb_programs = 0; s 4475 libavformat/utils.c av_freep(&s->programs); s 4476 libavformat/utils.c av_freep(&s->priv_data); s 4477 libavformat/utils.c while (s->nb_chapters--) { s 4478 libavformat/utils.c av_dict_free(&s->chapters[s->nb_chapters]->metadata); s 4479 libavformat/utils.c av_freep(&s->chapters[s->nb_chapters]); s 4481 libavformat/utils.c av_freep(&s->chapters); s 4482 libavformat/utils.c av_dict_free(&s->metadata); s 4483 libavformat/utils.c av_dict_free(&s->internal->id3v2_meta); s 4484 libavformat/utils.c av_freep(&s->streams); s 4485 libavformat/utils.c flush_packet_queue(s); s 4486 libavformat/utils.c av_freep(&s->internal); s 4487 libavformat/utils.c av_freep(&s->url); s 4488 libavformat/utils.c av_free(s); s 4493 libavformat/utils.c AVFormatContext *s; s 4499 libavformat/utils.c s = *ps; s 4500 libavformat/utils.c pb = s->pb; s 4502 libavformat/utils.c if ((s->iformat && strcmp(s->iformat->name, "image2") && s->iformat->flags & AVFMT_NOFILE) || s 4503 libavformat/utils.c (s->flags & AVFMT_FLAG_CUSTOM_IO)) s 4506 libavformat/utils.c flush_packet_queue(s); s 4508 libavformat/utils.c if (s->iformat) s 4509 libavformat/utils.c if (s->iformat->read_close) s 4510 libavformat/utils.c s->iformat->read_close(s); s 4512 libavformat/utils.c avformat_free_context(s); s 4519 libavformat/utils.c AVStream *avformat_new_stream(AVFormatContext *s, const AVCodec *c) s 4525 libavformat/utils.c if (s->nb_streams >= FFMIN(s->max_streams, INT_MAX/sizeof(*streams))) { s 4526 libavformat/utils.c if (s->max_streams < INT_MAX/sizeof(*streams)) s 4527 libavformat/utils.c av_log(s, AV_LOG_ERROR, "Number of streams exceeds max_streams parameter (%d), see the documentation if you wish to increase it\n", s->max_streams); s 4530 libavformat/utils.c streams = av_realloc_array(s->streams, s->nb_streams + 1, sizeof(*streams)); s 4533 libavformat/utils.c s->streams = streams; s 4567 libavformat/utils.c if (s->iformat) { s 4586 libavformat/utils.c st->index = s->nb_streams; s 4590 libavformat/utils.c st->probe_packets = s->max_probe_packets; s 4607 libavformat/utils.c st->inject_global_side_data = s->internal->inject_global_side_data; s 4611 libavformat/utils.c s->streams[s->nb_streams++] = st; s 4647 libavformat/utils.c AVChapter *avpriv_new_chapter(AVFormatContext *s, int id, AVRational time_base, s 4654 libavformat/utils.c av_log(s, AV_LOG_ERROR, "Chapter end time %"PRId64" before start %"PRId64"\n", end, start); s 4658 libavformat/utils.c for (i = 0; i < s->nb_chapters; i++) s 4659 libavformat/utils.c if (s->chapters[i]->id == id) s 4660 libavformat/utils.c chapter = s->chapters[i]; s 4666 libavformat/utils.c dynarray_add(&s->chapters, &s->nb_chapters, chapter); s 4889 libavformat/utils.c char *ff_data_to_hex(char *buff, const uint8_t *src, int s, int lowercase) s 4902 libavformat/utils.c for (i = 0; i < s; i++) { s 4938 libavformat/utils.c void avpriv_set_pts_info(AVStream *s, int pts_wrap_bits, s 4946 libavformat/utils.c s->index, pts_num / new_tb.num); s 4949 libavformat/utils.c "st:%d has too large timebase, reducing\n", s->index); s 4955 libavformat/utils.c s->index); s 4958 libavformat/utils.c s->time_base = new_tb; s 4961 libavformat/utils.c s->codec->pkt_timebase = new_tb; s 4964 libavformat/utils.c s->internal->avctx->pkt_timebase = new_tb; s 4965 libavformat/utils.c s->pts_wrap_bits = pts_wrap_bits; s 5022 libavformat/utils.c int ff_find_stream_index(AVFormatContext *s, int id) s 5025 libavformat/utils.c for (i = 0; i < s->nb_streams; i++) s 5026 libavformat/utils.c if (s->streams[i]->id == id) s 5165 libavformat/utils.c static int match_stream_specifier(AVFormatContext *s, AVStream *st, s 5214 libavformat/utils.c for (i = 0; i < s->nb_programs; i++) { s 5215 libavformat/utils.c if (s->programs[i]->id != prog_id) s 5218 libavformat/utils.c for (j = 0; j < s->programs[i]->nb_stream_indexes; j++) { s 5219 libavformat/utils.c if (st->index == s->programs[i]->stream_index[j]) { s 5222 libavformat/utils.c *p = s->programs[i]; s 5223 libavformat/utils.c i = s->nb_programs; s 5319 libavformat/utils.c int avformat_match_stream_specifier(AVFormatContext *s, AVStream *st, s 5328 libavformat/utils.c ret = match_stream_specifier(s, st, spec, &indexptr, &p); s 5346 libavformat/utils.c nb_streams = p ? p->nb_stream_indexes : s->nb_streams; s 5348 libavformat/utils.c AVStream *candidate = p ? s->streams[p->stream_index[i]] : s->streams[i]; s 5349 libavformat/utils.c ret = match_stream_specifier(s, candidate, spec, NULL, NULL); s 5359 libavformat/utils.c av_log(s, AV_LOG_ERROR, "Invalid stream specifier: %s.\n", spec); s 5675 libavformat/utils.c int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options) s 5677 libavformat/utils.c if (!s->oformat) s 5680 libavformat/utils.c if (!(s->oformat->flags & AVFMT_NOFILE)) s 5681 libavformat/utils.c return s->io_open(s, &s->pb, url, AVIO_FLAG_WRITE, options); s 5685 libavformat/utils.c void ff_format_io_close(AVFormatContext *s, AVIOContext **pb) s 5688 libavformat/utils.c s->io_close(s, *pb); s 5697 libavformat/utils.c int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t *timestamp, int return_seconds) s 5702 libavformat/utils.c if ((entry = av_dict_get(s->metadata, "creation_time", NULL, 0))) { s 5707 libavformat/utils.c av_log(s, AV_LOG_WARNING, "Failed to parse creation_time %s\n", entry->value); s 5714 libavformat/utils.c int ff_standardize_creation_time(AVFormatContext *s) s 5717 libavformat/utils.c int ret = ff_parse_creation_time_metadata(s, ×tamp, 0); s 5719 libavformat/utils.c return avpriv_dict_set_timestamp(&s->metadata, "creation_time", timestamp); s 5723 libavformat/utils.c int ff_get_packet_palette(AVFormatContext *s, AVPacket *pkt, int ret, uint32_t *palette) s 5731 libavformat/utils.c av_log(s, AV_LOG_ERROR, "Invalid palette side data\n"); s 5845 libavformat/utils.c void ff_format_set_url(AVFormatContext *s, char *url) s 5848 libavformat/utils.c av_freep(&s->url); s 5849 libavformat/utils.c s->url = url; s 5852 libavformat/utils.c av_strlcpy(s->filename, url, sizeof(s->filename)); s 40 libavformat/v210.c V210DemuxerContext *s = ctx->priv_data; s 52 libavformat/v210.c avpriv_set_pts_info(st, 64, s->framerate.den, s->framerate.num); s 54 libavformat/v210.c ret = av_image_check_size(s->width, s->height, 0, ctx); s 57 libavformat/v210.c st->codecpar->width = s->width; s 58 libavformat/v210.c st->codecpar->height = s->height; s 61 libavformat/v210.c ctx->packet_size = GET_PACKET_SIZE(s->width, s->height); s 69 libavformat/v210.c static int v210_read_packet(AVFormatContext *s, AVPacket *pkt) s 73 libavformat/v210.c ret = av_get_packet(s->pb, pkt, s->packet_size); s 74 libavformat/v210.c pkt->pts = pkt->dts = pkt->pos / s->packet_size; s 34 libavformat/vag.c static int vag_read_header(AVFormatContext *s) s 38 libavformat/vag.c st = avformat_new_stream(s, NULL); s 42 libavformat/vag.c avio_skip(s->pb, 4); s 45 libavformat/vag.c st->codecpar->channels = 1 + (avio_rb32(s->pb) == 0x00000004); s 46 libavformat/vag.c avio_skip(s->pb, 4); s 48 libavformat/vag.c st->duration = avio_rb32(s->pb); s 50 libavformat/vag.c st->duration = avio_rb32(s->pb) / 16 * 28; s 52 libavformat/vag.c st->codecpar->sample_rate = avio_rb32(s->pb); s 55 libavformat/vag.c avio_seek(s->pb, 0x1000, SEEK_SET); s 56 libavformat/vag.c if (avio_rl32(s->pb) == MKTAG('V','A','G','p')) { s 58 libavformat/vag.c avio_seek(s->pb, 0, SEEK_SET); s 62 libavformat/vag.c avio_seek(s->pb, st->codecpar->channels > 1 ? 0x80 : 0x30, SEEK_SET); s 69 libavformat/vag.c static int vag_read_packet(AVFormatContext *s, AVPacket *pkt) s 71 libavformat/vag.c AVCodecParameters *par = s->streams[0]->codecpar; s 73 libavformat/vag.c return av_get_packet(s->pb, pkt, par->block_align); s 80 libavformat/vapoursynth.c static av_cold int read_close_vs(AVFormatContext *s) s 82 libavformat/vapoursynth.c VSContext *vs = s->priv_data; s 170 libavformat/vapoursynth.c static av_cold int read_header_vs(AVFormatContext *s) s 173 libavformat/vapoursynth.c AVIOContext *pb = s->pb; s 174 libavformat/vapoursynth.c VSContext *vs = s->priv_data; s 196 libavformat/vapoursynth.c av_log(s, AV_LOG_ERROR, "Failed to initialize VSScript (possibly PYTHONPATH not set).\n"); s 202 libavformat/vapoursynth.c av_log(s, AV_LOG_ERROR, "Failed to create script instance.\n"); s 210 libavformat/vapoursynth.c av_log(s, AV_LOG_WARNING, "Could not determine file size\n"); s 222 libavformat/vapoursynth.c av_log(s, AV_LOG_ERROR, "Could not read script.\n"); s 229 libavformat/vapoursynth.c av_log(s, AV_LOG_ERROR, "File size is larger than max_script_size option " s 237 libavformat/vapoursynth.c if (vsscript_evaluateScript(&vss_state->vss, buf, s->url, 0)) { s 239 libavformat/vapoursynth.c av_log(s, AV_LOG_ERROR, "Failed to parse script: %s\n", msg ? msg : "(unknown)"); s 249 libavformat/vapoursynth.c av_log(s, AV_LOG_ERROR, "Could not get script output node.\n"); s 254 libavformat/vapoursynth.c st = avformat_new_stream(s, NULL); s 263 libavformat/vapoursynth.c av_log(s, AV_LOG_ERROR, "Non-constant input format not supported.\n"); s 275 libavformat/vapoursynth.c s->ctx_flags |= AVFMTCTX_UNSEEKABLE; s 285 libavformat/vapoursynth.c av_log(s, AV_LOG_ERROR, "Unsupported VS pixel format %s\n", info->format->name); s 289 libavformat/vapoursynth.c av_log(s, AV_LOG_VERBOSE, "VS format %s -> pixfmt %s\n", info->format->name, s 298 libavformat/vapoursynth.c read_close_vs(s); s 309 libavformat/vapoursynth.c static int get_vs_prop_int(AVFormatContext *s, const VSMap *map, const char *name, int def) s 311 libavformat/vapoursynth.c VSContext *vs = s->priv_data; s 337 libavformat/vapoursynth.c static int read_packet_vs(AVFormatContext *s, AVPacket *pkt) s 339 libavformat/vapoursynth.c VSContext *vs = s->priv_data; s 340 libavformat/vapoursynth.c AVStream *st = s->streams[0]; s 371 libavformat/vapoursynth.c av_log(s, AV_LOG_ERROR, "Error getting frame: %s\n", vserr); s 399 libavformat/vapoursynth.c frame->colorspace = get_vs_prop_int(s, props, "_Matrix", frame->colorspace); s 400 libavformat/vapoursynth.c frame->color_primaries = get_vs_prop_int(s, props, "_Primaries", frame->color_primaries); s 401 libavformat/vapoursynth.c frame->color_trc = get_vs_prop_int(s, props, "_Transfer", frame->color_trc); s 403 libavformat/vapoursynth.c if (get_vs_prop_int(s, props, "_ColorRange", 1) == 0) s 406 libavformat/vapoursynth.c frame->sample_aspect_ratio.num = get_vs_prop_int(s, props, "_SARNum", 0); s 407 libavformat/vapoursynth.c frame->sample_aspect_ratio.den = get_vs_prop_int(s, props, "_SARDen", 1); s 461 libavformat/vapoursynth.c static int read_seek_vs(AVFormatContext *s, int stream_idx, int64_t ts, int flags) s 463 libavformat/vapoursynth.c VSContext *vs = s->priv_data; s 468 libavformat/vapoursynth.c vs->current_frame = FFMIN(FFMAX(0, ts), s->streams[0]->duration); s 50 libavformat/vc1test.c static int vc1t_read_header(AVFormatContext *s) s 52 libavformat/vc1test.c AVIOContext *pb = s->pb; s 63 libavformat/vc1test.c st = avformat_new_stream(s, NULL); s 70 libavformat/vc1test.c if ((ret = ff_get_extradata(s, st->codecpar, pb, VC1_EXTRADATA_SIZE)) < 0) s 84 libavformat/vc1test.c av_log(s, AV_LOG_ERROR, "Zero FPS specified, defaulting to 1 FPS\n"); s 94 libavformat/vc1test.c static int vc1t_read_packet(AVFormatContext *s, s 97 libavformat/vc1test.c AVIOContext *pb = s->pb; s 111 libavformat/vc1test.c if(s->streams[0]->time_base.den == 1000) s 28 libavformat/vc1testenc.c static int vc1test_write_header(AVFormatContext *s) s 30 libavformat/vc1testenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 31 libavformat/vc1testenc.c AVIOContext *pb = s->pb; s 34 libavformat/vc1testenc.c av_log(s, AV_LOG_ERROR, "Only WMV3 is accepted!\n"); s 47 libavformat/vc1testenc.c if (s->streams[0]->avg_frame_rate.den && s->streams[0]->avg_frame_rate.num == 1) s 48 libavformat/vc1testenc.c avio_wl32(pb, s->streams[0]->avg_frame_rate.den); s 51 libavformat/vc1testenc.c avpriv_set_pts_info(s->streams[0], 32, 1, 1000); s 56 libavformat/vc1testenc.c static int vc1test_write_packet(AVFormatContext *s, AVPacket *pkt) s 58 libavformat/vc1testenc.c RCVContext *ctx = s->priv_data; s 59 libavformat/vc1testenc.c AVIOContext *pb = s->pb; s 71 libavformat/vc1testenc.c static int vc1test_write_trailer(AVFormatContext *s) s 73 libavformat/vc1testenc.c RCVContext *ctx = s->priv_data; s 74 libavformat/vc1testenc.c AVIOContext *pb = s->pb; s 76 libavformat/vc1testenc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 145 libavformat/vividas.c unsigned s = size; s 157 libavformat/vividas.c if (a2 > s) { s 158 libavformat/vividas.c a2 = s; s 164 libavformat/vividas.c s -= a2; s 167 libavformat/vividas.c if (s >= 4) { s 168 libavformat/vividas.c xor_block(src + a2, dest + a2, s & ~3, s 170 libavformat/vividas.c s &= 3; s 173 libavformat/vividas.c if (s) { s 174 libavformat/vividas.c size -= s; s 175 libavformat/vividas.c memcpy(tmp, src + size, s); s 177 libavformat/vividas.c memcpy(dest + size, tmp, s); s 279 libavformat/vividas.c static int track_header(VividasDemuxContext *viv, AVFormatContext *s, uint8_t *buf, int size) s 314 libavformat/vividas.c av_log(s, AV_LOG_ERROR, "number of video tracks %d is not 1\n", num_video); s 319 libavformat/vividas.c AVStream *st = avformat_new_stream(s, NULL); s 350 libavformat/vividas.c av_log(s, AV_LOG_WARNING, "number of audio tracks %d is not 1\n", viv->num_audio); s 354 libavformat/vividas.c AVStream *st = avformat_new_stream(s, NULL); s 427 libavformat/vividas.c static int track_index(VividasDemuxContext *viv, AVFormatContext *s, uint8_t *buf, unsigned size) s 434 libavformat/vividas.c int64_t filesize = avio_size(s->pb); s 484 libavformat/vividas.c static void load_sb_block(AVFormatContext *s, VividasDemuxContext *viv, unsigned expected_size) s 498 libavformat/vividas.c viv->sb_buf = read_sb_block(s->pb, &size, &viv->sb_key, expected_size); s 528 libavformat/vividas.c static int viv_read_header(AVFormatContext *s) s 530 libavformat/vividas.c VividasDemuxContext *viv = s->priv_data; s 531 libavformat/vividas.c AVIOContext *pb = s->pb; s 551 libavformat/vividas.c av_log(s, AV_LOG_ERROR, "number of tracks %d is not 1\n", num_tracks); s 599 libavformat/vividas.c ret = track_header(viv, s, buf, v); s 607 libavformat/vividas.c ret = track_index(viv, s, buf, v); s 615 libavformat/vividas.c load_sb_block(s, viv, viv->sb_blocks[0].size); s 623 libavformat/vividas.c static int viv_read_packet(AVFormatContext *s, s 626 libavformat/vividas.c VividasDemuxContext *viv = s->priv_data; s 647 libavformat/vividas.c astream = s->streams[pkt->stream_index]; s 661 libavformat/vividas.c load_sb_block(s, viv, 0); s 723 libavformat/vividas.c static int viv_read_close(AVFormatContext *s) s 725 libavformat/vividas.c VividasDemuxContext *viv = s->priv_data; s 735 libavformat/vividas.c static int viv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) s 737 libavformat/vividas.c VividasDemuxContext *viv = s->priv_data; s 743 libavformat/vividas.c frame = av_rescale_q(timestamp, s->streams[0]->time_base, s->streams[stream_index]->time_base); s 752 libavformat/vividas.c avio_seek(s->pb, viv->sb_offset + viv->sb_blocks[i].byte_offset, SEEK_SET); s 754 libavformat/vividas.c load_sb_block(s, viv, 0); s 756 libavformat/vividas.c viv->audio_sample = av_rescale_q(viv->sb_blocks[i].packet_offset, av_make_q(s->streams[1]->codecpar->sample_rate, 1), av_inv_q(s->streams[0]->time_base)); s 758 libavformat/vividas.c viv->audio_sample += s->streams[1]->codecpar->sample_rate; s 74 libavformat/vivo.c static int vivo_get_packet_header(AVFormatContext *s) s 76 libavformat/vivo.c VivoContext *vivo = s->priv_data; s 77 libavformat/vivo.c AVIOContext *pb = s->pb; s 99 libavformat/vivo.c av_log(s, AV_LOG_ERROR, "unknown packet type %d\n", vivo->type); s 111 libavformat/vivo.c av_log(s, AV_LOG_ERROR, "coded length is more than two bytes\n"); s 120 libavformat/vivo.c static int vivo_read_header(AVFormatContext *s) s 122 libavformat/vivo.c VivoContext *vivo = s->priv_data; s 131 libavformat/vivo.c vst = avformat_new_stream(s, NULL); s 132 libavformat/vivo.c ast = avformat_new_stream(s, NULL); s 139 libavformat/vivo.c if ((ret = vivo_get_packet_header(s)) < 0) s 147 libavformat/vivo.c avio_read(s->pb, vivo->text, vivo->length); s 150 libavformat/vivo.c av_log(s, AV_LOG_WARNING, "too big header, skipping\n"); s 151 libavformat/vivo.c avio_skip(s->pb, vivo->length); s 170 libavformat/vivo.c av_log(s, AV_LOG_WARNING, "missing colon in key:value pair '%s'\n", s 177 libavformat/vivo.c av_log(s, AV_LOG_DEBUG, "header: '%s' = '%s'\n", key, value); s 182 libavformat/vivo.c av_log(s, AV_LOG_DEBUG, "got a valid integer (%ld)\n", value_int); s 212 libavformat/vivo.c if (!av_parse_ratio(&tmp, value, 10000, AV_LOG_WARNING, s)) s 217 libavformat/vivo.c av_dict_set(&s->metadata, key, value, 0); s 224 libavformat/vivo.c s->duration = av_rescale(duration, 1000, 1); s 252 libavformat/vivo.c static int vivo_read_packet(AVFormatContext *s, AVPacket *pkt) s 254 libavformat/vivo.c VivoContext *vivo = s->priv_data; s 255 libavformat/vivo.c AVIOContext *pb = s->pb; s 267 libavformat/vivo.c if ((ret = vivo_get_packet_header(s)) < 0) s 281 libavformat/vivo.c av_log(s, AV_LOG_ERROR, "unknown packet type %d\n", vivo->type); s 289 libavformat/vivo.c if ((ret = vivo_get_packet_header(s)) < 0) s 302 libavformat/vivo.c if ((ret = vivo_get_packet_header(s)) < 0) s 49 libavformat/voc.h int ff_voc_get_packet(AVFormatContext *s, AVPacket *pkt, s 27 libavformat/voc_packet.c ff_voc_get_packet(AVFormatContext *s, AVPacket *pkt, AVStream *st, int max_size) s 29 libavformat/voc_packet.c VocDecContext *voc = s->priv_data; s 31 libavformat/voc_packet.c AVIOContext *pb = s->pb; s 52 libavformat/voc_packet.c if (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL)) s 110 libavformat/voc_packet.c av_log(s, AV_LOG_ERROR, "Invalid sample rate %d\n", par->sample_rate); s 119 libavformat/voc_packet.c av_log(s, AV_LOG_WARNING, "Ignoring mid-stream change in audio codec\n"); s 121 libavformat/voc_packet.c if (s->audio_codec_id == AV_CODEC_ID_NONE) { s 122 libavformat/voc_packet.c av_log(s, AV_LOG_ERROR, "unknown codec tag\n"); s 125 libavformat/voc_packet.c av_log(s, AV_LOG_WARNING, "unknown codec tag\n"); s 40 libavformat/vocdec.c static int voc_read_header(AVFormatContext *s) s 42 libavformat/vocdec.c VocDecContext *voc = s->priv_data; s 43 libavformat/vocdec.c AVIOContext *pb = s->pb; s 49 libavformat/vocdec.c av_log(s, AV_LOG_ERROR, "unknown header size: %d\n", header_size); s 54 libavformat/vocdec.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 60 libavformat/vocdec.c static int voc_read_packet(AVFormatContext *s, AVPacket *pkt) s 62 libavformat/vocdec.c if (!s->nb_streams) { s 63 libavformat/vocdec.c AVStream *st = avformat_new_stream(s, NULL); s 68 libavformat/vocdec.c return ff_voc_get_packet(s, pkt, s->streams[0], 0); s 71 libavformat/vocdec.c static int voc_read_seek(AVFormatContext *s, int stream_index, s 74 libavformat/vocdec.c VocDecContext *voc = s->priv_data; s 78 libavformat/vocdec.c if (s->nb_streams < 1) { s 79 libavformat/vocdec.c av_log(s, AV_LOG_ERROR, "cannot seek while no stream was found yet\n"); s 83 libavformat/vocdec.c st = s->streams[stream_index]; s 88 libavformat/vocdec.c avio_seek(s->pb, e->pos, SEEK_SET); s 30 libavformat/vocenc.c static int voc_write_header(AVFormatContext *s) s 32 libavformat/vocenc.c AVIOContext *pb = s->pb; s 33 libavformat/vocenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 37 libavformat/vocenc.c if (s->nb_streams != 1 s 38 libavformat/vocenc.c || s->streams[0]->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) s 42 libavformat/vocenc.c av_log(s, AV_LOG_ERROR, "unsupported codec\n"); s 54 libavformat/vocenc.c static int voc_write_packet(AVFormatContext *s, AVPacket *pkt) s 56 libavformat/vocenc.c VocEncContext *voc = s->priv_data; s 57 libavformat/vocenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 58 libavformat/vocenc.c AVIOContext *pb = s->pb; s 70 libavformat/vocenc.c if (s->streams[0]->codecpar->channels > 1) { s 92 libavformat/vocenc.c static int voc_write_trailer(AVFormatContext *s) s 94 libavformat/vocenc.c avio_w8(s->pb, 0); s 95 libavformat/vorbiscomment.c int h, m, s, ms; s 97 libavformat/vorbiscomment.c s = av_rescale(chp->start, chp->time_base.num, chp->time_base.den); s 98 libavformat/vorbiscomment.c h = s / 3600; s 99 libavformat/vorbiscomment.c m = (s / 60) % 60; s 101 libavformat/vorbiscomment.c s = s % 60; s 103 libavformat/vorbiscomment.c snprintf(chapter_time, sizeof(chapter_time), "%02d:%02d:%02d.%03d", h, m, s, ms); s 34 libavformat/vpcc.c static int get_vpx_chroma_subsampling(AVFormatContext *s, s 50 libavformat/vpcc.c av_log(s, AV_LOG_ERROR, "Unsupported pixel format (%d)\n", pixel_format); s 54 libavformat/vpcc.c static int get_bit_depth(AVFormatContext *s, enum AVPixelFormat pixel_format) s 58 libavformat/vpcc.c av_log(s, AV_LOG_ERROR, "Unsupported pixel format (%d)\n", s 116 libavformat/vpcc.c int ff_isom_get_vpcc_features(AVFormatContext *s, AVCodecParameters *par, s 122 libavformat/vpcc.c int bit_depth = get_bit_depth(s, par->format); s 124 libavformat/vpcc.c get_vpx_chroma_subsampling(s, par->format, par->chroma_location); s 149 libavformat/vpcc.c int ff_isom_write_vpcc(AVFormatContext *s, AVIOContext *pb, s 155 libavformat/vpcc.c ret = ff_isom_get_vpcc_features(s, par, NULL, &vpcc); s 52 libavformat/vpcc.h int ff_isom_write_vpcc(AVFormatContext *s, AVIOContext *pb, s 55 libavformat/vpcc.h int ff_isom_get_vpcc_features(AVFormatContext *s, AVCodecParameters *par, s 41 libavformat/vpk.c static int vpk_read_header(AVFormatContext *s) s 43 libavformat/vpk.c VPKDemuxContext *vpk = s->priv_data; s 49 libavformat/vpk.c st = avformat_new_stream(s, NULL); s 53 libavformat/vpk.c avio_skip(s->pb, 4); s 54 libavformat/vpk.c st->duration = avio_rl32(s->pb) * 28 / 16; s 55 libavformat/vpk.c offset = avio_rl32(s->pb); s 58 libavformat/vpk.c st->codecpar->block_align = avio_rl32(s->pb); s 59 libavformat/vpk.c st->codecpar->sample_rate = avio_rl32(s->pb); s 62 libavformat/vpk.c st->codecpar->channels = avio_rl32(s->pb); s 71 libavformat/vpk.c if (offset < avio_tell(s->pb)) s 73 libavformat/vpk.c avio_skip(s->pb, offset - avio_tell(s->pb)); s 80 libavformat/vpk.c static int vpk_read_packet(AVFormatContext *s, AVPacket *pkt) s 82 libavformat/vpk.c AVCodecParameters *par = s->streams[0]->codecpar; s 83 libavformat/vpk.c VPKDemuxContext *vpk = s->priv_data; s 90 libavformat/vpk.c uint64_t pos = avio_tell(s->pb); s 96 libavformat/vpk.c ret = avio_read(s->pb, pkt->data + i * size, size); s 97 libavformat/vpk.c avio_skip(s->pb, skip); s 105 libavformat/vpk.c ret = av_get_packet(s->pb, pkt, par->block_align); s 114 libavformat/vpk.c static int vpk_read_seek(AVFormatContext *s, int stream_index, s 117 libavformat/vpk.c AVStream *st = s->streams[stream_index]; s 119 libavformat/vpk.c VPKDemuxContext *vpk = s->priv_data; s 125 libavformat/vpk.c ret = avio_seek(s->pb, vpk->data_start + timestamp * par->block_align, SEEK_SET); s 130 libavformat/vpk.c ff_update_cur_dts(s, st, timestamp * samples_per_block); s 58 libavformat/vplayerdec.c static int vplayer_read_header(AVFormatContext *s) s 60 libavformat/vplayerdec.c VPlayerContext *vplayer = s->priv_data; s 61 libavformat/vplayerdec.c AVStream *st = avformat_new_stream(s, NULL); s 69 libavformat/vplayerdec.c while (!avio_feof(s->pb)) { s 72 libavformat/vplayerdec.c const int64_t pos = avio_tell(s->pb); s 73 libavformat/vplayerdec.c int len = ff_get_line(s->pb, line, sizeof(line)); s 96 libavformat/vplayerdec.c ff_subtitles_queue_finalize(s, &vplayer->q); s 100 libavformat/vplayerdec.c static int vplayer_read_packet(AVFormatContext *s, AVPacket *pkt) s 102 libavformat/vplayerdec.c VPlayerContext *vplayer = s->priv_data; s 106 libavformat/vplayerdec.c static int vplayer_read_seek(AVFormatContext *s, int stream_index, s 109 libavformat/vplayerdec.c VPlayerContext *vplayer = s->priv_data; s 110 libavformat/vplayerdec.c return ff_subtitles_queue_seek(&vplayer->q, s, stream_index, s 114 libavformat/vplayerdec.c static int vplayer_read_close(AVFormatContext *s) s 116 libavformat/vplayerdec.c VPlayerContext *vplayer = s->priv_data; s 52 libavformat/vqf.c static void add_metadata(AVFormatContext *s, uint32_t tag, s 64 libavformat/vqf.c avio_read(s->pb, buf, len); s 67 libavformat/vqf.c av_dict_set(&s->metadata, key, buf, AV_DICT_DONT_STRDUP_VAL); s 92 libavformat/vqf.c static int vqf_read_header(AVFormatContext *s) s 94 libavformat/vqf.c VqfContext *c = s->priv_data; s 95 libavformat/vqf.c AVStream *st = avformat_new_stream(s, NULL); s 106 libavformat/vqf.c avio_skip(s->pb, 12); s 108 libavformat/vqf.c header_size = avio_rb32(s->pb); s 119 libavformat/vqf.c chunk_tag = avio_rl32(s->pb); s 124 libavformat/vqf.c len = avio_rb32(s->pb); s 127 libavformat/vqf.c av_log(s, AV_LOG_ERROR, "Malformed header\n"); s 135 libavformat/vqf.c avio_read(s->pb, comm_chunk, 12); s 139 libavformat/vqf.c avio_skip(s->pb, len-12); s 142 libavformat/vqf.c av_log(s, AV_LOG_ERROR, "Invalid number of channels\n"); s 150 libavformat/vqf.c av_dict_set_int(&s->metadata, "size", avio_rb32(s->pb), 0); s 159 libavformat/vqf.c avio_skip(s->pb, FFMIN(len, header_size)); s 162 libavformat/vqf.c add_metadata(s, chunk_tag, len, header_size); s 168 libavformat/vqf.c } while (header_size >= 0 && !avio_feof(s->pb)); s 172 libavformat/vqf.c av_log(s, AV_LOG_ERROR, "COMM tag not found!\n"); s 185 libavformat/vqf.c av_log(s, AV_LOG_ERROR, "Invalid rate flag %d\n", rate_flag); s 194 libavformat/vqf.c av_log(s, AV_LOG_ERROR, "Invalid bitrate per channel %d\n", s 217 libavformat/vqf.c av_log(s, AV_LOG_ERROR, "Mode not supported: %d Hz, %"PRId64" kb/s.\n", s 229 libavformat/vqf.c ff_metadata_conv_ctx(s, NULL, vqf_metadata_conv); s 234 libavformat/vqf.c static int vqf_read_packet(AVFormatContext *s, AVPacket *pkt) s 236 libavformat/vqf.c VqfContext *c = s->priv_data; s 243 libavformat/vqf.c pkt->pos = avio_tell(s->pb); s 249 libavformat/vqf.c ret = avio_read(s->pb, pkt->data+2, size); s 261 libavformat/vqf.c static int vqf_read_seek(AVFormatContext *s, s 264 libavformat/vqf.c VqfContext *c = s->priv_data; s 269 libavformat/vqf.c st = s->streams[stream_index]; s 280 libavformat/vqf.c if ((ret = avio_seek(s->pb, ((pos-7) >> 3) + s->internal->data_offset, SEEK_SET)) < 0) s 64 libavformat/wavdec.c static void set_spdif(AVFormatContext *s, WAVDemuxContext *wav) s 66 libavformat/wavdec.c if (CONFIG_SPDIF_DEMUXER && s->streams[0]->codecpar->codec_tag == 1) { s 69 libavformat/wavdec.c int ret = ffio_ensure_seekback(s->pb, len); s 76 libavformat/wavdec.c int64_t pos = avio_tell(s->pb); s 77 libavformat/wavdec.c len = ret = avio_read(s->pb, buf, len); s 81 libavformat/wavdec.c s->streams[0]->codecpar->codec_id = codec; s 85 libavformat/wavdec.c avio_seek(s->pb, pos, SEEK_SET); s 91 libavformat/wavdec.c av_log(s, AV_LOG_WARNING, "Cannot check for SPDIF\n"); s 108 libavformat/wavdec.c static int64_t wav_seek_tag(WAVDemuxContext * wav, AVIOContext *s, int64_t offset, int whence) s 112 libavformat/wavdec.c return avio_seek(s, offset, whence); s 158 libavformat/wavdec.c static int wav_parse_fmt_tag(AVFormatContext *s, int64_t size, AVStream **st) s 160 libavformat/wavdec.c AVIOContext *pb = s->pb; s 161 libavformat/wavdec.c WAVDemuxContext *wav = s->priv_data; s 165 libavformat/wavdec.c *st = avformat_new_stream(s, NULL); s 169 libavformat/wavdec.c ret = ff_get_wav_header(s, pb, (*st)->codecpar, size, wav->rifx); s 181 libavformat/wavdec.c static int wav_parse_xma2_tag(AVFormatContext *s, int64_t size, AVStream **st) s 183 libavformat/wavdec.c AVIOContext *pb = s->pb; s 189 libavformat/wavdec.c *st = avformat_new_stream(s, NULL); s 223 libavformat/wavdec.c if ((ret = ff_get_extradata(s, (*st)->codecpar, pb, size)) < 0) s 229 libavformat/wavdec.c static inline int wav_parse_bext_string(AVFormatContext *s, const char *key, s 236 libavformat/wavdec.c if ((ret = avio_read(s->pb, temp, length)) != length) s 242 libavformat/wavdec.c return av_dict_set(&s->metadata, key, temp, 0); s 247 libavformat/wavdec.c static int wav_parse_bext_tag(AVFormatContext *s, int64_t size) s 254 libavformat/wavdec.c if ((ret = wav_parse_bext_string(s, "description", 256)) < 0 || s 255 libavformat/wavdec.c (ret = wav_parse_bext_string(s, "originator", 32)) < 0 || s 256 libavformat/wavdec.c (ret = wav_parse_bext_string(s, "originator_reference", 32)) < 0 || s 257 libavformat/wavdec.c (ret = wav_parse_bext_string(s, "origination_date", 10)) < 0 || s 258 libavformat/wavdec.c (ret = wav_parse_bext_string(s, "origination_time", 8)) < 0) s 261 libavformat/wavdec.c time_reference = avio_rl64(s->pb); s 263 libavformat/wavdec.c if ((ret = av_dict_set(&s->metadata, "time_reference", temp, 0)) < 0) s 267 libavformat/wavdec.c if (avio_rl16(s->pb) >= 1) { s 269 libavformat/wavdec.c umid_mask |= umid_parts[x] = avio_rb64(s->pb); s 291 libavformat/wavdec.c if ((ret = av_dict_set(&s->metadata, "umid", temp, 0)) < 0) s 295 libavformat/wavdec.c avio_skip(s->pb, 190); s 297 libavformat/wavdec.c avio_skip(s->pb, 254); s 306 libavformat/wavdec.c if ((ret = avio_read(s->pb, coding_history, size)) != size) { s 312 libavformat/wavdec.c if ((ret = av_dict_set(&s->metadata, "coding_history", coding_history, s 329 libavformat/wavdec.c static int wav_read_header(AVFormatContext *s) s 335 libavformat/wavdec.c AVIOContext *pb = s->pb; s 337 libavformat/wavdec.c WAVDemuxContext *wav = s->priv_data; s 341 libavformat/wavdec.c wav->unaligned = avio_tell(s->pb) & 1; s 357 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "invalid start code %s in RIFF header\n", s 367 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "invalid format in RIFF header\n"); s 383 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "negative data_size and/or sample_count in " s 403 libavformat/wavdec.c if (!got_xma2 && !got_fmt && (ret = wav_parse_fmt_tag(s, size, &st)) < 0) { s 406 libavformat/wavdec.c av_log(s, AV_LOG_WARNING, "found more than one 'fmt ' tag\n"); s 412 libavformat/wavdec.c if (!got_fmt && !got_xma2 && (ret = wav_parse_xma2_tag(s, size, &st)) < 0) { s 415 libavformat/wavdec.c av_log(s, AV_LOG_WARNING, "found more than one 'XMA2' tag\n"); s 421 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, s 432 libavformat/wavdec.c av_log(s, AV_LOG_WARNING, "Ignoring maximum wav data size, " s 451 libavformat/wavdec.c if ((ret = wav_parse_bext_tag(s, size)) < 0) s 456 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "found no 'fmt ' tag before the 'SMV0' tag\n"); s 461 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "Unknown SMV version found\n"); s 464 libavformat/wavdec.c av_log(s, AV_LOG_DEBUG, "Found SMV data\n"); s 466 libavformat/wavdec.c vst = avformat_new_stream(s, NULL); s 476 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "Could not allocate extradata.\n"); s 489 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "too many frames per jpeg\n"); s 497 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "too short LIST tag\n"); s 502 libavformat/wavdec.c ff_read_riff_info(s, size - 4); s 508 libavformat/wavdec.c ff_id3v2_read_dict(pb, &s->internal->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta); s 510 libavformat/wavdec.c ff_id3v2_parse_apic(s, id3v2_extra_meta); s 511 libavformat/wavdec.c ff_id3v2_parse_chapters(s, id3v2_extra_meta); s 512 libavformat/wavdec.c ff_id3v2_parse_priv(s, id3v2_extra_meta); s 528 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "no 'fmt ' or 'XMA2' tag found\n"); s 533 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "no 'data' tag found\n"); s 540 libavformat/wavdec.c av_log(s, AV_LOG_WARNING, "Data size %"PRId64" is too large\n", data_size); s 555 libavformat/wavdec.c av_log(s, AV_LOG_WARNING, "ignoring wrong sample_count %"PRId64"\n", sample_count); s 562 libavformat/wavdec.c av_log(s, AV_LOG_WARNING, "ignoring wrong sample_count %"PRId64"\n", sample_count); s 596 libavformat/wavdec.c ff_metadata_conv_ctx(s, NULL, wav_metadata_conv); s 597 libavformat/wavdec.c ff_metadata_conv_ctx(s, NULL, ff_riff_info_conv); s 599 libavformat/wavdec.c set_spdif(s, wav); s 627 libavformat/wavdec.c static int wav_read_packet(AVFormatContext *s, AVPacket *pkt) s 632 libavformat/wavdec.c WAVDemuxContext *wav = s->priv_data; s 635 libavformat/wavdec.c return ff_spdif_read_packet(s, pkt); s 640 libavformat/wavdec.c audio_dts = (int32_t)s->streams[0]->cur_dts; s 641 libavformat/wavdec.c video_dts = (int32_t)s->streams[1]->cur_dts; s 646 libavformat/wavdec.c av_compare_ts(video_dts, s->streams[1]->time_base, s 647 libavformat/wavdec.c audio_dts, s->streams[0]->time_base) > 0 : 0; s 654 libavformat/wavdec.c uint64_t old_pos = avio_tell(s->pb); s 657 libavformat/wavdec.c if (avio_seek(s->pb, new_pos, SEEK_SET) < 0) { s 661 libavformat/wavdec.c size = avio_rl24(s->pb); s 662 libavformat/wavdec.c ret = av_get_packet(s->pb, pkt, size); s 675 libavformat/wavdec.c avio_seek(s->pb, old_pos, SEEK_SET); s 684 libavformat/wavdec.c st = s->streams[0]; s 686 libavformat/wavdec.c left = wav->data_end - avio_tell(s->pb); s 691 libavformat/wavdec.c left = find_guid(s->pb, ff_w64_guid_data) - 24; s 693 libavformat/wavdec.c left = find_tag(wav, s->pb, MKTAG('d', 'a', 't', 'a')); s 700 libavformat/wavdec.c wav->data_end = avio_tell(s->pb) + left; s 710 libavformat/wavdec.c ret = av_get_packet(s->pb, pkt, size); s 718 libavformat/wavdec.c static int wav_read_seek(AVFormatContext *s, s 721 libavformat/wavdec.c WAVDemuxContext *wav = s->priv_data; s 728 libavformat/wavdec.c smv_timestamp = av_rescale_q(timestamp, s->streams[0]->time_base, s->streams[1]->time_base); s 730 libavformat/wavdec.c timestamp = av_rescale_q(smv_timestamp, s->streams[1]->time_base, s->streams[0]->time_base); s 737 libavformat/wavdec.c st = s->streams[0]; s 749 libavformat/wavdec.c return ff_pcm_read_seek(s, stream_index, timestamp, flags); s 791 libavformat/wavdec.c static int w64_read_header(AVFormatContext *s) s 794 libavformat/wavdec.c AVIOContext *pb = s->pb; s 795 libavformat/wavdec.c WAVDemuxContext *wav = s->priv_data; s 810 libavformat/wavdec.c av_log(s, AV_LOG_ERROR, "could not find wave guid\n"); s 816 libavformat/wavdec.c st = avformat_new_stream(s, NULL); s 829 libavformat/wavdec.c ret = ff_get_wav_header(s, pb, st->codecpar, size - 24, 0); s 877 libavformat/wavdec.c av_dict_set(&s->metadata, chunk_key, value, AV_DICT_DONT_STRDUP_VAL); s 882 libavformat/wavdec.c av_log(s, AV_LOG_DEBUG, "unknown guid: "FF_PRI_GUID"\n", FF_ARG_GUID(guid)); s 890 libavformat/wavdec.c ff_metadata_conv_ctx(s, NULL, wav_metadata_conv); s 891 libavformat/wavdec.c ff_metadata_conv_ctx(s, NULL, ff_riff_info_conv); s 898 libavformat/wavdec.c set_spdif(s, wav); s 90 libavformat/wavenc.c static inline void bwf_write_bext_string(AVFormatContext *s, const char *key, int maxlen) s 95 libavformat/wavenc.c if (tag = av_dict_get(s->metadata, key, NULL, 0)) { s 98 libavformat/wavenc.c avio_write(s->pb, tag->value, len); s 101 libavformat/wavenc.c ffio_fill(s->pb, 0, maxlen - len); s 104 libavformat/wavenc.c static void bwf_write_bext_chunk(AVFormatContext *s) s 108 libavformat/wavenc.c int64_t bext = ff_start_tag(s->pb, "bext"); s 110 libavformat/wavenc.c bwf_write_bext_string(s, "description", 256); s 111 libavformat/wavenc.c bwf_write_bext_string(s, "originator", 32); s 112 libavformat/wavenc.c bwf_write_bext_string(s, "originator_reference", 32); s 113 libavformat/wavenc.c bwf_write_bext_string(s, "origination_date", 10); s 114 libavformat/wavenc.c bwf_write_bext_string(s, "origination_time", 8); s 116 libavformat/wavenc.c if (tmp_tag = av_dict_get(s->metadata, "time_reference", NULL, 0)) s 118 libavformat/wavenc.c avio_wl64(s->pb, time_reference); s 119 libavformat/wavenc.c avio_wl16(s->pb, 1); // set version to 1 s 121 libavformat/wavenc.c if ((tmp_tag = av_dict_get(s->metadata, "umid", NULL, 0)) && strlen(tmp_tag->value) > 2) { s 130 libavformat/wavenc.c avio_wb64(s->pb, umidpart); s 132 libavformat/wavenc.c ffio_fill(s->pb, 0, 64 - i*8); s 134 libavformat/wavenc.c ffio_fill(s->pb, 0, 64); // zero UMID s 136 libavformat/wavenc.c ffio_fill(s->pb, 0, 190); // Reserved s 138 libavformat/wavenc.c if (tmp_tag = av_dict_get(s->metadata, "coding_history", NULL, 0)) s 139 libavformat/wavenc.c avio_put_str(s->pb, tmp_tag->value); s 141 libavformat/wavenc.c ff_end_tag(s->pb, bext); s 144 libavformat/wavenc.c static av_cold void wav_deinit(AVFormatContext *s) s 146 libavformat/wavenc.c WAVMuxContext *wav = s->priv_data; s 153 libavformat/wavenc.c static av_cold int peak_init_writer(AVFormatContext *s) s 155 libavformat/wavenc.c WAVMuxContext *wav = s->priv_data; s 156 libavformat/wavenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 162 libavformat/wavenc.c AVCodec *codec = avcodec_find_decoder(s->streams[0]->codecpar->codec_id); s 163 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, "%s codec not supported for Peak Chunk\n", s 171 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, s 187 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, "Out of memory\n"); s 191 libavformat/wavenc.c static void peak_write_frame(AVFormatContext *s) s 193 libavformat/wavenc.c WAVMuxContext *wav = s->priv_data; s 194 libavformat/wavenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 218 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, "No memory for peak data\n"); s 246 libavformat/wavenc.c static int peak_write_chunk(AVFormatContext *s) s 248 libavformat/wavenc.c WAVMuxContext *wav = s->priv_data; s 249 libavformat/wavenc.c AVIOContext *pb = s->pb; s 250 libavformat/wavenc.c AVCodecParameters *par = s->streams[0]->codecpar; s 251 libavformat/wavenc.c int64_t peak = ff_start_tag(s->pb, "levl"); s 258 libavformat/wavenc.c peak_write_frame(s); s 261 libavformat/wavenc.c if (!(s->flags & AVFMT_FLAG_BITEXACT)) { s 263 libavformat/wavenc.c av_log(s, AV_LOG_INFO, "Writing local time and date to Peak Envelope Chunk\n"); s 269 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, "Failed to write timestamp\n"); s 295 libavformat/wavenc.c static int wav_write_header(AVFormatContext *s) s 297 libavformat/wavenc.c WAVMuxContext *wav = s->priv_data; s 298 libavformat/wavenc.c AVIOContext *pb = s->pb; s 301 libavformat/wavenc.c if (s->nb_streams != 1) { s 302 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, "WAVE files have exactly one stream\n"); s 327 libavformat/wavenc.c if (ff_put_wav_header(s, pb, s->streams[0]->codecpar, 0) < 0) { s 328 libavformat/wavenc.c const AVCodecDescriptor *desc = avcodec_descriptor_get(s->streams[0]->codecpar->codec_id); s 329 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, "%s codec not supported in WAVE format\n", s 336 libavformat/wavenc.c if (s->streams[0]->codecpar->codec_tag != 0x01 /* hence for all other than PCM */ s 337 libavformat/wavenc.c && (s->pb->seekable & AVIO_SEEKABLE_NORMAL)) { s 344 libavformat/wavenc.c bwf_write_bext_chunk(s); s 348 libavformat/wavenc.c if ((ret = peak_init_writer(s)) < 0) s 352 libavformat/wavenc.c avpriv_set_pts_info(s->streams[0], 64, 1, s->streams[0]->codecpar->sample_rate); s 358 libavformat/wavenc.c ff_riff_write_info(s); s 367 libavformat/wavenc.c static int wav_write_packet(AVFormatContext *s, AVPacket *pkt) s 369 libavformat/wavenc.c AVIOContext *pb = s->pb; s 370 libavformat/wavenc.c WAVMuxContext *wav = s->priv_data; s 386 libavformat/wavenc.c if (++c == s->streams[0]->codecpar->channels) { s 389 libavformat/wavenc.c peak_write_frame(s); s 401 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, "wav_write_packet: NOPTS\n"); s 405 libavformat/wavenc.c static int wav_write_trailer(AVFormatContext *s) s 407 libavformat/wavenc.c AVIOContext *pb = s->pb; s 408 libavformat/wavenc.c WAVMuxContext *wav = s->priv_data; s 414 libavformat/wavenc.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 420 libavformat/wavenc.c ret = peak_write_chunk(s); s 433 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, s 438 libavformat/wavenc.c s->streams[0]->time_base, s 439 libavformat/wavenc.c av_make_q(1, s->streams[0]->codecpar->sample_rate)); s 441 libavformat/wavenc.c if(s->streams[0]->codecpar->codec_tag != 0x01) { s 544 libavformat/wavenc.c static int w64_write_header(AVFormatContext *s) s 546 libavformat/wavenc.c WAVMuxContext *wav = s->priv_data; s 547 libavformat/wavenc.c AVIOContext *pb = s->pb; s 555 libavformat/wavenc.c if ((ret = ff_put_wav_header(s, pb, s->streams[0]->codecpar, 0)) < 0) { s 556 libavformat/wavenc.c AVCodec *codec = avcodec_find_decoder(s->streams[0]->codecpar->codec_id); s 557 libavformat/wavenc.c av_log(s, AV_LOG_ERROR, "%s codec not supported\n", s 563 libavformat/wavenc.c if (s->streams[0]->codecpar->codec_tag != 0x01 /* hence for all other than PCM */ s 564 libavformat/wavenc.c && (s->pb->seekable & AVIO_SEEKABLE_NORMAL)) { s 575 libavformat/wavenc.c static int w64_write_trailer(AVFormatContext *s) s 577 libavformat/wavenc.c AVIOContext *pb = s->pb; s 578 libavformat/wavenc.c WAVMuxContext *wav = s->priv_data; s 588 libavformat/wavenc.c if (s->streams[0]->codecpar->codec_tag != 0x01) { s 592 libavformat/wavenc.c s->streams[0]->codecpar->sample_rate * (int64_t)s->streams[0]->time_base.num, s 593 libavformat/wavenc.c s->streams[0]->time_base.den); s 88 libavformat/wc3movie.c static int wc3_read_header(AVFormatContext *s) s 90 libavformat/wc3movie.c Wc3DemuxContext *wc3 = s->priv_data; s 91 libavformat/wc3movie.c AVIOContext *pb = s->pb; s 138 libavformat/wc3movie.c av_dict_set(&s->metadata, "title", buffer, s 155 libavformat/wc3movie.c av_log(s, AV_LOG_ERROR, "unrecognized WC3 chunk: %s\n", s 169 libavformat/wc3movie.c st = avformat_new_stream(s, NULL); s 180 libavformat/wc3movie.c st = avformat_new_stream(s, NULL); s 199 libavformat/wc3movie.c static int wc3_read_packet(AVFormatContext *s, s 202 libavformat/wc3movie.c Wc3DemuxContext *wc3 = s->priv_data; s 203 libavformat/wc3movie.c AVIOContext *pb = s->pb; s 250 libavformat/wc3movie.c av_log (s, AV_LOG_DEBUG, "Subtitle time!\n"); s 253 libavformat/wc3movie.c av_log (s, AV_LOG_DEBUG, " inglish: %s\n", &text[i + 1]); s 257 libavformat/wc3movie.c av_log (s, AV_LOG_DEBUG, " doytsch: %s\n", &text[i + 1]); s 261 libavformat/wc3movie.c av_log (s, AV_LOG_DEBUG, " fronsay: %s\n", &text[i + 1]); s 278 libavformat/wc3movie.c av_log(s, AV_LOG_ERROR, "unrecognized WC3 chunk: %s\n", s 289 libavformat/wc3movie.c static int wc3_read_close(AVFormatContext *s) s 291 libavformat/wc3movie.c Wc3DemuxContext *wc3 = s->priv_data; s 50 libavformat/webm_chunk.c static int webm_chunk_init(AVFormatContext *s) s 52 libavformat/webm_chunk.c WebMChunkContext *wc = s->priv_data; s 55 libavformat/webm_chunk.c AVStream *st, *ost = s->streams[0]; s 60 libavformat/webm_chunk.c if (s->nb_streams != 1) s 64 libavformat/webm_chunk.c av_log(s, AV_LOG_ERROR, "No header filename provided\n"); s 70 libavformat/webm_chunk.c oformat = av_guess_format("webm", s->url, "video/webm"); s 82 libavformat/webm_chunk.c oc->interrupt_callback = s->interrupt_callback; s 83 libavformat/webm_chunk.c oc->max_delay = s->max_delay; s 84 libavformat/webm_chunk.c oc->flags = s->flags & ~AVFMT_FLAG_FLUSH_PACKETS; s 85 libavformat/webm_chunk.c oc->strict_std_compliance = s->strict_std_compliance; s 86 libavformat/webm_chunk.c oc->avoid_negative_ts = s->avoid_negative_ts; s 90 libavformat/webm_chunk.c if ((ret = av_dict_copy(&oc->metadata, s->metadata, 0)) < 0) s 108 libavformat/webm_chunk.c ret = s->io_open(s, &oc->pb, oc->url, AVIO_FLAG_WRITE, &dict); s 133 libavformat/webm_chunk.c s->avoid_negative_ts = oc->avoid_negative_ts; s 134 libavformat/webm_chunk.c s->internal->avoid_negative_ts_use_pts = s 141 libavformat/webm_chunk.c static int get_chunk_filename(AVFormatContext *s, char filename[MAX_FILENAME_SIZE]) s 143 libavformat/webm_chunk.c WebMChunkContext *wc = s->priv_data; s 148 libavformat/webm_chunk.c s->url, wc->chunk_index - 1) < 0) { s 149 libavformat/webm_chunk.c av_log(s, AV_LOG_ERROR, "Invalid chunk filename template '%s'\n", s->url); s 155 libavformat/webm_chunk.c static int webm_chunk_write_header(AVFormatContext *s) s 157 libavformat/webm_chunk.c WebMChunkContext *wc = s->priv_data; s 162 libavformat/webm_chunk.c ff_format_io_close(s, &oc->pb); s 169 libavformat/webm_chunk.c static int chunk_start(AVFormatContext *s) s 171 libavformat/webm_chunk.c WebMChunkContext *wc = s->priv_data; s 182 libavformat/webm_chunk.c static int chunk_end(AVFormatContext *s, int flush) s 184 libavformat/webm_chunk.c WebMChunkContext *wc = s->priv_data; s 201 libavformat/webm_chunk.c ret = get_chunk_filename(s, filename); s 207 libavformat/webm_chunk.c ret = s->io_open(s, &pb, filename, AVIO_FLAG_WRITE, &options); s 212 libavformat/webm_chunk.c ff_format_io_close(s, &pb); s 218 libavformat/webm_chunk.c static int webm_chunk_write_packet(AVFormatContext *s, AVPacket *pkt) s 220 libavformat/webm_chunk.c WebMChunkContext *wc = s->priv_data; s 222 libavformat/webm_chunk.c AVStream *st = s->streams[pkt->stream_index]; s 241 libavformat/webm_chunk.c if ((ret = chunk_end(s, 1)) < 0 || (ret = chunk_start(s)) < 0) { s 250 libavformat/webm_chunk.c static int webm_chunk_write_trailer(AVFormatContext *s) s 252 libavformat/webm_chunk.c WebMChunkContext *wc = s->priv_data; s 257 libavformat/webm_chunk.c ret = chunk_start(s); s 264 libavformat/webm_chunk.c return chunk_end(s, 0); s 267 libavformat/webm_chunk.c static void webm_chunk_deinit(AVFormatContext *s) s 269 libavformat/webm_chunk.c WebMChunkContext *wc = s->priv_data; s 277 libavformat/webm_chunk.c ff_format_io_close(s, &wc->avf->pb); s 66 libavformat/webmdashenc.c static double get_duration(AVFormatContext *s) s 70 libavformat/webmdashenc.c for (i = 0; i < s->nb_streams; i++) { s 71 libavformat/webmdashenc.c AVDictionaryEntry *duration = av_dict_get(s->streams[i]->metadata, s 79 libavformat/webmdashenc.c static int write_header(AVFormatContext *s) s 81 libavformat/webmdashenc.c WebMDashMuxContext *w = s->priv_data; s 83 libavformat/webmdashenc.c avio_printf(s->pb, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); s 84 libavformat/webmdashenc.c avio_printf(s->pb, "<MPD\n"); s 85 libavformat/webmdashenc.c avio_printf(s->pb, " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"); s 86 libavformat/webmdashenc.c avio_printf(s->pb, " xmlns=\"urn:mpeg:DASH:schema:MPD:2011\"\n"); s 87 libavformat/webmdashenc.c avio_printf(s->pb, " xsi:schemaLocation=\"urn:mpeg:DASH:schema:MPD:2011\"\n"); s 88 libavformat/webmdashenc.c avio_printf(s->pb, " type=\"%s\"\n", w->is_live ? "dynamic" : "static"); s 90 libavformat/webmdashenc.c avio_printf(s->pb, " mediaPresentationDuration=\"PT%gS\"\n", s 91 libavformat/webmdashenc.c get_duration(s)); s 93 libavformat/webmdashenc.c avio_printf(s->pb, " minBufferTime=\"PT%gS\"\n", min_buffer_time); s 94 libavformat/webmdashenc.c avio_printf(s->pb, " profiles=\"%s\"%s", s 105 libavformat/webmdashenc.c if (s->flags & AVFMT_FLAG_BITEXACT) { s 108 libavformat/webmdashenc.c avio_printf(s->pb, " availabilityStartTime=\"%s\"\n", gmt_iso); s 109 libavformat/webmdashenc.c avio_printf(s->pb, " timeShiftBufferDepth=\"PT%gS\"\n", w->time_shift_buffer_depth); s 110 libavformat/webmdashenc.c avio_printf(s->pb, " minimumUpdatePeriod=\"PT%dS\"", w->minimum_update_period); s 111 libavformat/webmdashenc.c avio_printf(s->pb, ">\n"); s 113 libavformat/webmdashenc.c avio_printf(s->pb, "<UTCTiming\n"); s 114 libavformat/webmdashenc.c avio_printf(s->pb, " schemeIdUri=\"urn:mpeg:dash:utc:http-iso:2014\"\n"); s 115 libavformat/webmdashenc.c avio_printf(s->pb, " value=\"%s\"/>\n", w->utc_timing_url); s 121 libavformat/webmdashenc.c static void write_footer(AVFormatContext *s) s 123 libavformat/webmdashenc.c avio_printf(s->pb, "</MPD>\n"); s 126 libavformat/webmdashenc.c static int subsegment_alignment(AVFormatContext *s, AdaptationSet *as) { s 128 libavformat/webmdashenc.c AVDictionaryEntry *gold = av_dict_get(s->streams[as->streams[0]]->metadata, s 132 libavformat/webmdashenc.c AVDictionaryEntry *ts = av_dict_get(s->streams[as->streams[i]]->metadata, s 139 libavformat/webmdashenc.c static int bitstream_switching(AVFormatContext *s, AdaptationSet *as) { s 141 libavformat/webmdashenc.c AVDictionaryEntry *gold_track_num = av_dict_get(s->streams[as->streams[0]]->metadata, s 143 libavformat/webmdashenc.c AVCodecParameters *gold_par = s->streams[as->streams[0]]->codecpar; s 146 libavformat/webmdashenc.c AVDictionaryEntry *track_num = av_dict_get(s->streams[as->streams[i]]->metadata, s 148 libavformat/webmdashenc.c AVCodecParameters *par = s->streams[as->streams[i]]->codecpar; s 164 libavformat/webmdashenc.c static int write_representation(AVFormatContext *s, AVStream *stream, char *id, s 167 libavformat/webmdashenc.c WebMDashMuxContext *w = s->priv_data; s 178 libavformat/webmdashenc.c avio_printf(s->pb, "<Representation id=\"%s\"", id); s 185 libavformat/webmdashenc.c avio_printf(s->pb, " bandwidth=\"%s\"", bandwidth_str); s 187 libavformat/webmdashenc.c avio_printf(s->pb, " width=\"%d\"", stream->codecpar->width); s 189 libavformat/webmdashenc.c avio_printf(s->pb, " height=\"%d\"", stream->codecpar->height); s 191 libavformat/webmdashenc.c avio_printf(s->pb, " audioSamplingRate=\"%d\"", stream->codecpar->sample_rate); s 194 libavformat/webmdashenc.c avio_printf(s->pb, " codecs=\"%s\"", get_codec_name(stream->codecpar->codec_id)); s 195 libavformat/webmdashenc.c avio_printf(s->pb, " mimeType=\"%s/webm\"", s 199 libavformat/webmdashenc.c avio_printf(s->pb, " startsWithSAP=\"1\""); s 200 libavformat/webmdashenc.c avio_printf(s->pb, ">"); s 202 libavformat/webmdashenc.c avio_printf(s->pb, ">\n"); s 203 libavformat/webmdashenc.c avio_printf(s->pb, "<BaseURL>%s</BaseURL>\n", filename->value); s 204 libavformat/webmdashenc.c avio_printf(s->pb, "<SegmentBase\n"); s 205 libavformat/webmdashenc.c avio_printf(s->pb, " indexRange=\"%s-%s\">\n", cues_start->value, cues_end->value); s 206 libavformat/webmdashenc.c avio_printf(s->pb, "<Initialization\n"); s 207 libavformat/webmdashenc.c avio_printf(s->pb, " range=\"0-%s\" />\n", irange->value); s 208 libavformat/webmdashenc.c avio_printf(s->pb, "</SegmentBase>\n"); s 210 libavformat/webmdashenc.c avio_printf(s->pb, "</Representation>\n"); s 217 libavformat/webmdashenc.c static int check_matching_width(AVFormatContext *s, AdaptationSet *as) { s 220 libavformat/webmdashenc.c first_width = s->streams[as->streams[0]]->codecpar->width; s 222 libavformat/webmdashenc.c if (first_width != s->streams[as->streams[i]]->codecpar->width) s 230 libavformat/webmdashenc.c static int check_matching_height(AVFormatContext *s, AdaptationSet *as) { s 233 libavformat/webmdashenc.c first_height = s->streams[as->streams[0]]->codecpar->height; s 235 libavformat/webmdashenc.c if (first_height != s->streams[as->streams[i]]->codecpar->height) s 243 libavformat/webmdashenc.c static int check_matching_sample_rate(AVFormatContext *s, AdaptationSet *as) { s 246 libavformat/webmdashenc.c first_sample_rate = s->streams[as->streams[0]]->codecpar->sample_rate; s 248 libavformat/webmdashenc.c if (first_sample_rate != s->streams[as->streams[i]]->codecpar->sample_rate) s 253 libavformat/webmdashenc.c static void free_adaptation_sets(AVFormatContext *s) { s 254 libavformat/webmdashenc.c WebMDashMuxContext *w = s->priv_data; s 328 libavformat/webmdashenc.c static int write_adaptation_set(AVFormatContext *s, int as_index) s 330 libavformat/webmdashenc.c WebMDashMuxContext *w = s->priv_data; s 332 libavformat/webmdashenc.c AVCodecParameters *par = s->streams[as->streams[0]]->codecpar; s 344 libavformat/webmdashenc.c width_in_as = !w->is_live && check_matching_width(s, as); s 345 libavformat/webmdashenc.c height_in_as = !w->is_live && check_matching_height(s, as); s 347 libavformat/webmdashenc.c sample_rate_in_as = !w->is_live && check_matching_sample_rate(s, as); s 350 libavformat/webmdashenc.c avio_printf(s->pb, "<AdaptationSet id=\"%s\"", as->id); s 351 libavformat/webmdashenc.c avio_printf(s->pb, " mimeType=\"%s/webm\"", s 353 libavformat/webmdashenc.c avio_printf(s->pb, " codecs=\"%s\"", get_codec_name(par->codec_id)); s 355 libavformat/webmdashenc.c lang = av_dict_get(s->streams[as->streams[0]]->metadata, "language", NULL, 0); s 356 libavformat/webmdashenc.c if (lang) avio_printf(s->pb, " lang=\"%s\"", lang->value); s 359 libavformat/webmdashenc.c avio_printf(s->pb, " width=\"%d\"", par->width); s 361 libavformat/webmdashenc.c avio_printf(s->pb, " height=\"%d\"", par->height); s 363 libavformat/webmdashenc.c avio_printf(s->pb, " audioSamplingRate=\"%d\"", par->sample_rate); s 365 libavformat/webmdashenc.c avio_printf(s->pb, " bitstreamSwitching=\"%s\"", s 366 libavformat/webmdashenc.c boolean[bitstream_switching(s, as)]); s 367 libavformat/webmdashenc.c avio_printf(s->pb, " subsegmentAlignment=\"%s\"", s 368 libavformat/webmdashenc.c boolean[w->is_live || subsegment_alignment(s, as)]); s 371 libavformat/webmdashenc.c AVDictionaryEntry *kf = av_dict_get(s->streams[as->streams[i]]->metadata, s 375 libavformat/webmdashenc.c avio_printf(s->pb, " subsegmentStartsWithSAP=\"%d\"", subsegmentStartsWithSAP); s 376 libavformat/webmdashenc.c avio_printf(s->pb, ">\n"); s 380 libavformat/webmdashenc.c av_dict_get(s->streams[as->streams[0]]->metadata, FILENAME, NULL, 0); s 386 libavformat/webmdashenc.c avio_printf(s->pb, "<ContentComponent id=\"1\" type=\"%s\"/>\n", s 388 libavformat/webmdashenc.c avio_printf(s->pb, "<SegmentTemplate"); s 389 libavformat/webmdashenc.c avio_printf(s->pb, " timescale=\"1000\""); s 390 libavformat/webmdashenc.c avio_printf(s->pb, " duration=\"%d\"", w->chunk_duration); s 391 libavformat/webmdashenc.c avio_printf(s->pb, " media=\"%s\"", media_pattern); s 392 libavformat/webmdashenc.c avio_printf(s->pb, " startNumber=\"%d\"", w->chunk_start_index); s 393 libavformat/webmdashenc.c avio_printf(s->pb, " initialization=\"%s\"", initialization_pattern); s 394 libavformat/webmdashenc.c avio_printf(s->pb, "/>\n"); s 404 libavformat/webmdashenc.c av_dict_get(s->streams[as->streams[i]]->metadata, FILENAME, NULL, 0); s 413 libavformat/webmdashenc.c ret = write_representation(s, s->streams[as->streams[i]], s 419 libavformat/webmdashenc.c avio_printf(s->pb, "</AdaptationSet>\n"); s 423 libavformat/webmdashenc.c static int parse_adaptation_sets(AVFormatContext *s) s 425 libavformat/webmdashenc.c WebMDashMuxContext *w = s->priv_data; s 430 libavformat/webmdashenc.c av_log(s, AV_LOG_ERROR, "The 'adaptation_sets' option must be set.\n"); s 457 libavformat/webmdashenc.c av_log(s, AV_LOG_ERROR, "'id' in 'adaptation_sets' is malformed.\n"); s 476 libavformat/webmdashenc.c num < 0 || num >= s->nb_streams) { s 477 libavformat/webmdashenc.c av_log(s, AV_LOG_ERROR, "Invalid value for 'streams' in adapation_sets.\n"); s 491 libavformat/webmdashenc.c static int webm_dash_manifest_write_header(AVFormatContext *s) s 496 libavformat/webmdashenc.c WebMDashMuxContext *w = s->priv_data; s 498 libavformat/webmdashenc.c for (unsigned i = 0; i < s->nb_streams; i++) { s 499 libavformat/webmdashenc.c enum AVCodecID codec_id = s->streams[i]->codecpar->codec_id; s 505 libavformat/webmdashenc.c ret = parse_adaptation_sets(s); s 509 libavformat/webmdashenc.c ret = write_header(s); s 513 libavformat/webmdashenc.c avio_printf(s->pb, "<Period id=\"0\""); s 514 libavformat/webmdashenc.c avio_printf(s->pb, " start=\"PT%gS\"", start); s 516 libavformat/webmdashenc.c avio_printf(s->pb, " duration=\"PT%gS\"", get_duration(s)); s 518 libavformat/webmdashenc.c avio_printf(s->pb, " >\n"); s 521 libavformat/webmdashenc.c ret = write_adaptation_set(s, i); s 527 libavformat/webmdashenc.c avio_printf(s->pb, "</Period>\n"); s 528 libavformat/webmdashenc.c write_footer(s); s 530 libavformat/webmdashenc.c free_adaptation_sets(s); s 534 libavformat/webmdashenc.c static int webm_dash_manifest_write_packet(AVFormatContext *s, AVPacket *pkt) s 36 libavformat/webpenc.c static int webp_write_header(AVFormatContext *s) s 40 libavformat/webpenc.c if (s->nb_streams != 1) { s 41 libavformat/webpenc.c av_log(s, AV_LOG_ERROR, "Only exactly 1 stream is supported\n"); s 44 libavformat/webpenc.c st = s->streams[0]; s 46 libavformat/webpenc.c av_log(s, AV_LOG_ERROR, "Only WebP is supported\n"); s 77 libavformat/webpenc.c static int flush(AVFormatContext *s, int trailer, int64_t pts) s 79 libavformat/webpenc.c WebpContext *w = s->priv_data; s 80 libavformat/webpenc.c AVStream *st = s->streams[0]; s 101 libavformat/webpenc.c avio_write(s->pb, "RIFF\0\0\0\0WEBP", 12); s 114 libavformat/webpenc.c avio_write(s->pb, "VP8X", 4); s 115 libavformat/webpenc.c avio_wl32(s->pb, 10); s 116 libavformat/webpenc.c avio_w8(s->pb, flags); s 117 libavformat/webpenc.c avio_wl24(s->pb, 0); s 118 libavformat/webpenc.c avio_wl24(s->pb, st->codecpar->width - 1); s 119 libavformat/webpenc.c avio_wl24(s->pb, st->codecpar->height - 1); s 122 libavformat/webpenc.c avio_write(s->pb, "ANIM", 4); s 123 libavformat/webpenc.c avio_wl32(s->pb, 6); s 124 libavformat/webpenc.c avio_wl32(s->pb, 0xFFFFFFFF); s 125 libavformat/webpenc.c avio_wl16(s->pb, w->loop); s 130 libavformat/webpenc.c avio_write(s->pb, "ANMF", 4); s 131 libavformat/webpenc.c avio_wl32(s->pb, 16 + w->last_pkt.size - skip); s 132 libavformat/webpenc.c avio_wl24(s->pb, 0); s 133 libavformat/webpenc.c avio_wl24(s->pb, 0); s 134 libavformat/webpenc.c avio_wl24(s->pb, st->codecpar->width - 1); s 135 libavformat/webpenc.c avio_wl24(s->pb, st->codecpar->height - 1); s 137 libavformat/webpenc.c avio_wl24(s->pb, pts - w->last_pkt.pts); s 139 libavformat/webpenc.c avio_wl24(s->pb, w->last_pkt.duration); s 140 libavformat/webpenc.c avio_w8(s->pb, 0); s 142 libavformat/webpenc.c avio_write(s->pb, w->last_pkt.data + skip, w->last_pkt.size - skip); s 149 libavformat/webpenc.c static int webp_write_packet(AVFormatContext *s, AVPacket *pkt) s 151 libavformat/webpenc.c WebpContext *w = s->priv_data; s 155 libavformat/webpenc.c avio_write(s->pb, pkt->data, pkt->size); s 159 libavformat/webpenc.c if ((ret = flush(s, 0, pkt->pts)) < 0) s 168 libavformat/webpenc.c static int webp_write_trailer(AVFormatContext *s) s 171 libavformat/webpenc.c WebpContext *w = s->priv_data; s 175 libavformat/webpenc.c avio_seek(s->pb, 42, SEEK_SET); s 176 libavformat/webpenc.c avio_wl16(s->pb, w->loop); s 180 libavformat/webpenc.c if ((ret = flush(s, 1, AV_NOPTS_VALUE)) < 0) s 183 libavformat/webpenc.c filesize = avio_tell(s->pb); s 184 libavformat/webpenc.c avio_seek(s->pb, 4, SEEK_SET); s 185 libavformat/webpenc.c avio_wl32(s->pb, filesize - 8); s 187 libavformat/webpenc.c avio_seek(s->pb, filesize, SEEK_SET); s 52 libavformat/webvttdec.c static int64_t read_ts(const char *s) s 55 libavformat/webvttdec.c if (sscanf(s, "%u:%u:%u.%u", &hh, &mm, &ss, &ms) == 4) return (hh*3600LL + mm*60LL + ss) * 1000LL + ms; s 56 libavformat/webvttdec.c if (sscanf(s, "%u:%u.%u", &mm, &ss, &ms) == 3) return ( mm*60LL + ss) * 1000LL + ms; s 60 libavformat/webvttdec.c static int webvtt_read_header(AVFormatContext *s) s 62 libavformat/webvttdec.c WebVTTContext *webvtt = s->priv_data; s 65 libavformat/webvttdec.c AVStream *st = avformat_new_stream(s, NULL); s 84 libavformat/webvttdec.c ff_subtitles_read_chunk(s->pb, &cue); s 90 libavformat/webvttdec.c pos = avio_tell(s->pb); s 164 libavformat/webvttdec.c ff_subtitles_queue_finalize(s, &webvtt->q); s 173 libavformat/webvttdec.c static int webvtt_read_packet(AVFormatContext *s, AVPacket *pkt) s 175 libavformat/webvttdec.c WebVTTContext *webvtt = s->priv_data; s 179 libavformat/webvttdec.c static int webvtt_read_seek(AVFormatContext *s, int stream_index, s 182 libavformat/webvttdec.c WebVTTContext *webvtt = s->priv_data; s 183 libavformat/webvttdec.c return ff_subtitles_queue_seek(&webvtt->q, s, stream_index, s 187 libavformat/webvttdec.c static int webvtt_read_close(AVFormatContext *s) s 189 libavformat/webvttdec.c WebVTTContext *webvtt = s->priv_data; s 48 libavformat/webvttenc.c AVStream *s = ctx->streams[0]; s 57 libavformat/webvttenc.c avpriv_set_pts_info(s, 64, 1, 1000); s 83 libavformat/westwood_aud.c static int wsaud_read_header(AVFormatContext *s) s 85 libavformat/westwood_aud.c AVIOContext *pb = s->pb; s 98 libavformat/westwood_aud.c st = avformat_new_stream(s, NULL); s 105 libavformat/westwood_aud.c avpriv_request_sample(s, "Stereo WS-SND1"); s 116 libavformat/westwood_aud.c avpriv_request_sample(s, "Unknown codec: %d", codec); s 129 libavformat/westwood_aud.c static int wsaud_read_packet(AVFormatContext *s, s 132 libavformat/westwood_aud.c AVIOContext *pb = s->pb; s 136 libavformat/westwood_aud.c AVStream *st = s->streams[0]; s 168 libavformat/westwood_aud.c av_log(s, AV_LOG_ERROR, "invalid number of channels %d\n", s 79 libavformat/westwood_vqa.c static int wsvqa_read_header(AVFormatContext *s) s 81 libavformat/westwood_vqa.c WsVqaDemuxContext *wsvqa = s->priv_data; s 82 libavformat/westwood_vqa.c AVIOContext *pb = s->pb; s 91 libavformat/westwood_vqa.c st = avformat_new_stream(s, NULL); s 104 libavformat/westwood_vqa.c if ((ret = ff_get_extradata(s, st->codecpar, pb, VQA_HEADER_SIZE)) < 0) s 113 libavformat/westwood_vqa.c av_log(s, AV_LOG_ERROR, "invalid fps: %d\n", fps); s 124 libavformat/westwood_vqa.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 147 libavformat/westwood_vqa.c av_log(s, AV_LOG_ERROR, " note: unknown chunk seen (%s)\n", s 158 libavformat/westwood_vqa.c static int wsvqa_read_packet(AVFormatContext *s, s 161 libavformat/westwood_vqa.c WsVqaDemuxContext *wsvqa = s->priv_data; s 162 libavformat/westwood_vqa.c AVIOContext *pb = s->pb; s 187 libavformat/westwood_vqa.c AVStream *st = avformat_new_stream(s, NULL); s 253 libavformat/westwood_vqa.c av_log(s, AV_LOG_INFO, "Skipping unknown chunk %s\n", s 46 libavformat/wsddec.c static int wsd_to_av_channel_layoyt(AVFormatContext *s, int bit) s 51 libavformat/wsddec.c avpriv_request_sample(s, "Rr-middle"); s 55 libavformat/wsddec.c avpriv_request_sample(s, "Lr-middle"); s 65 libavformat/wsddec.c av_log(s, AV_LOG_WARNING, "reserved channel assignment\n"); s 71 libavformat/wsddec.c static int get_metadata(AVFormatContext *s, const char *const tag, const unsigned size) s 81 libavformat/wsddec.c if (avio_read(s->pb, buf, size) != size) { s 92 libavformat/wsddec.c av_dict_set(&s->metadata, tag, buf, AV_DICT_DONT_STRDUP_VAL); s 96 libavformat/wsddec.c static int wsd_read_header(AVFormatContext *s) s 98 libavformat/wsddec.c AVIOContext *pb = s->pb; s 104 libavformat/wsddec.c st = avformat_new_stream(s, NULL); s 110 libavformat/wsddec.c av_log(s, AV_LOG_DEBUG, "version: %i.%i\n", version >> 4, version & 0xF); s 124 libavformat/wsddec.c av_dict_set(&s->metadata, "playback_time", playback_time, 0); s 127 libavformat/wsddec.c st->codecpar->codec_id = s->iformat->raw_codec_id; s 141 libavformat/wsddec.c st->codecpar->channel_layout |= wsd_to_av_channel_layoyt(s, i); s 146 libavformat/wsddec.c avpriv_request_sample(s, "emphasis"); s 149 libavformat/wsddec.c get_metadata(s, "title", 128); s 150 libavformat/wsddec.c get_metadata(s, "composer", 128); s 151 libavformat/wsddec.c get_metadata(s, "song_writer", 128); s 152 libavformat/wsddec.c get_metadata(s, "artist", 128); s 153 libavformat/wsddec.c get_metadata(s, "album", 128); s 154 libavformat/wsddec.c get_metadata(s, "genre", 32); s 155 libavformat/wsddec.c get_metadata(s, "date", 32); s 156 libavformat/wsddec.c get_metadata(s, "location", 32); s 157 libavformat/wsddec.c get_metadata(s, "comment", 512); s 158 libavformat/wsddec.c get_metadata(s, "user", 512); s 151 libavformat/wtvdec.c static AVIOContext * wtvfile_open_sector(unsigned first_sector, uint64_t length, int depth, AVFormatContext *s) s 158 libavformat/wtvdec.c if (seek_by_sector(s->pb, first_sector, 0) < 0) s 179 libavformat/wtvdec.c wf->nb_sectors = read_ints(s->pb, wf->sectors, WTV_SECTOR_SIZE / 4); s 182 libavformat/wtvdec.c int nb_sectors1 = read_ints(s->pb, sectors1, WTV_SECTOR_SIZE / 4); s 192 libavformat/wtvdec.c if (seek_by_sector(s->pb, sectors1[i], 0) < 0) s 194 libavformat/wtvdec.c wf->nb_sectors += read_ints(s->pb, wf->sectors + i * WTV_SECTOR_SIZE / 4, WTV_SECTOR_SIZE / 4); s 197 libavformat/wtvdec.c av_log(s, AV_LOG_ERROR, "unsupported file allocation table depth (0x%x)\n", depth); s 209 libavformat/wtvdec.c size = avio_size(s->pb); s 211 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "truncated file\n"); s 216 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "reported file length (0x%"PRIx64") exceeds number of available sectors (0x%"PRIx64")\n", length, (int64_t)wf->nb_sectors << wf->sector_bits); s 223 libavformat/wtvdec.c if (seek_by_sector(s->pb, wf->sectors[0], 0) < 0) { s 229 libavformat/wtvdec.c wf->pb_filesystem = s->pb; s 255 libavformat/wtvdec.c static AVIOContext * wtvfile_open2(AVFormatContext *s, const uint8_t *buf, int buf_size, const uint8_t *filename, int filename_size) s 264 libavformat/wtvdec.c av_log(s, AV_LOG_ERROR, "unknown guid "FF_PRI_GUID", expected dir_entry_guid; " s 272 libavformat/wtvdec.c av_log(s, AV_LOG_ERROR, s 277 libavformat/wtvdec.c av_log(s, AV_LOG_ERROR, "filename exceeds buffer size; remaining directory entries ignored\n"); s 288 libavformat/wtvdec.c return wtvfile_open_sector(first_sector, file_length, depth, s); s 295 libavformat/wtvdec.c #define wtvfile_open(s, buf, buf_size, filename) \ s 296 libavformat/wtvdec.c wtvfile_open2(s, buf, buf_size, filename, sizeof(filename)) s 426 libavformat/wtvdec.c static void get_attachment(AVFormatContext *s, AVIOContext *pb, int length) s 445 libavformat/wtvdec.c st = avformat_new_stream(s, NULL); s 462 libavformat/wtvdec.c static void get_tag(AVFormatContext *s, AVIOContext *pb, const char *key, int type, int length) s 517 libavformat/wtvdec.c get_attachment(s, pb, length); s 522 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unsupported metadata entry; key:%s, type:%d, length:0x%x\n", key, type, length); s 527 libavformat/wtvdec.c av_dict_set(&s->metadata, key, buf, 0); s 534 libavformat/wtvdec.c static void parse_legacy_attrib(AVFormatContext *s, AVIOContext *pb) s 546 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unknown guid "FF_PRI_GUID", expected metadata_guid; " s 551 libavformat/wtvdec.c get_tag(s, pb, key, type, length); s 554 libavformat/wtvdec.c ff_metadata_conv(&s->metadata, NULL, ff_asf_metadata_conv); s 561 libavformat/wtvdec.c static int parse_videoinfoheader2(AVFormatContext *s, AVStream *st) s 563 libavformat/wtvdec.c WtvContext *wtv = s->priv_data; s 604 libavformat/wtvdec.c static AVStream * new_stream(AVFormatContext *s, AVStream *st, int sid, int codec_type) s 615 libavformat/wtvdec.c st = avformat_new_stream(s, NULL); s 638 libavformat/wtvdec.c static AVStream * parse_media_type(AVFormatContext *s, AVStream *st, int sid, s 642 libavformat/wtvdec.c WtvContext *wtv = s->priv_data; s 650 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "format buffer size underflow\n"); s 660 libavformat/wtvdec.c st = parse_media_type(s, st, sid, mediatype, actual_subtype, actual_formattype, size - 32); s 664 libavformat/wtvdec.c st = new_stream(s, st, sid, AVMEDIA_TYPE_AUDIO); s 668 libavformat/wtvdec.c int ret = ff_get_wav_header(s, pb, st->codecpar, size, 0); s 673 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unknown formattype:"FF_PRI_GUID"\n", FF_ARG_GUID(formattype)); s 683 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "MPEG1WAVEFORMATEX underflow\n"); s 687 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unknown subtype:"FF_PRI_GUID"\n", FF_ARG_GUID(subtype)); s 691 libavformat/wtvdec.c st = new_stream(s, st, sid, AVMEDIA_TYPE_VIDEO); s 695 libavformat/wtvdec.c int consumed = parse_videoinfoheader2(s, st); s 698 libavformat/wtvdec.c uint64_t consumed = parse_videoinfoheader2(s, st); s 703 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unknown formattype:"FF_PRI_GUID"\n", FF_ARG_GUID(formattype)); s 713 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unknown subtype:"FF_PRI_GUID"\n", FF_ARG_GUID(subtype)); s 717 libavformat/wtvdec.c st = new_stream(s, st, sid, AVMEDIA_TYPE_SUBTITLE); s 721 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unknown formattype:"FF_PRI_GUID"\n", FF_ARG_GUID(formattype)); s 727 libavformat/wtvdec.c st = new_stream(s, st, sid, AVMEDIA_TYPE_SUBTITLE); s 731 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unknown formattype:"FF_PRI_GUID"\n", FF_ARG_GUID(formattype)); s 738 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unknown formattype:"FF_PRI_GUID"\n", FF_ARG_GUID(formattype)); s 743 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unknown media type, mediatype:"FF_PRI_GUID s 782 libavformat/wtvdec.c static int parse_chunks(AVFormatContext *s, int mode, int64_t seekts, int *len_ptr) s 784 libavformat/wtvdec.c WtvContext *wtv = s->priv_data; s 796 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "encountered broken chunk\n"); s 806 libavformat/wtvdec.c if (ff_find_stream_index(s, sid) < 0) { s 815 libavformat/wtvdec.c parse_media_type(s, 0, sid, mediatype, subtype, formattype, size); s 819 libavformat/wtvdec.c int stream_index = ff_find_stream_index(s, sid); s 820 libavformat/wtvdec.c if (stream_index >= 0 && s->streams[stream_index]->priv_data && !((WtvStream*)s->streams[stream_index]->priv_data)->seen_data) { s 829 libavformat/wtvdec.c parse_media_type(s, s->streams[stream_index], sid, mediatype, subtype, formattype, size); s 838 libavformat/wtvdec.c int stream_index = ff_find_stream_index(s, sid); s 840 libavformat/wtvdec.c AVStream *st = s->streams[stream_index]; s 856 libavformat/wtvdec.c ff_parse_mpeg2_descriptor(s, st, 0, &pbuf, buf + buf_size, NULL, 0, 0, NULL); s 859 libavformat/wtvdec.c int stream_index = ff_find_stream_index(s, sid); s 861 libavformat/wtvdec.c AVStream *st = s->streams[stream_index]; s 872 libavformat/wtvdec.c int stream_index = ff_find_stream_index(s, sid); s 876 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "DVB scrambled stream detected (st:%d), decoding will likely fail\n", stream_index); s 880 libavformat/wtvdec.c int stream_index = ff_find_stream_index(s, sid); s 882 libavformat/wtvdec.c AVStream *st = s->streams[stream_index]; s 895 libavformat/wtvdec.c int stream_index = ff_find_stream_index(s, sid); s 913 libavformat/wtvdec.c int stream_index = ff_find_stream_index(s, sid); s 914 libavformat/wtvdec.c if (mode == SEEK_TO_DATA && stream_index >= 0 && len > 32 && s->streams[stream_index]->priv_data) { s 915 libavformat/wtvdec.c WtvStream *wst = s->streams[stream_index]->priv_data; s 923 libavformat/wtvdec.c int stream_index = ff_find_stream_index(s, sid); s 925 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "encrypted stream detected (st:%d), decoding will likely fail\n", stream_index); s 949 libavformat/wtvdec.c av_log(s, AV_LOG_WARNING, "unsupported chunk:"FF_PRI_GUID"\n", FF_ARG_GUID(g)); s 956 libavformat/wtvdec.c static int read_header(AVFormatContext *s) s 958 libavformat/wtvdec.c WtvContext *wtv = s->priv_data; s 971 libavformat/wtvdec.c avio_skip(s->pb, 0x30); s 972 libavformat/wtvdec.c root_size = avio_rl32(s->pb); s 974 libavformat/wtvdec.c av_log(s, AV_LOG_ERROR, "root directory size exceeds sector size\n"); s 977 libavformat/wtvdec.c avio_skip(s->pb, 4); s 978 libavformat/wtvdec.c root_sector = avio_rl32(s->pb); s 980 libavformat/wtvdec.c ret = seek_by_sector(s->pb, root_sector, 0); s 983 libavformat/wtvdec.c root_size = avio_read(s->pb, root, root_size); s 988 libavformat/wtvdec.c wtv->pb = wtvfile_open(s, root, root_size, ff_timeline_le16); s 990 libavformat/wtvdec.c av_log(s, AV_LOG_ERROR, "timeline data missing\n"); s 994 libavformat/wtvdec.c ret = parse_chunks(s, SEEK_TO_DATA, 0, 0); s 1001 libavformat/wtvdec.c timeline_pos = avio_tell(s->pb); // save before opening another file s 1004 libavformat/wtvdec.c pb = wtvfile_open(s, root, root_size, ff_table_0_entries_legacy_attrib_le16); s 1006 libavformat/wtvdec.c parse_legacy_attrib(s, pb); s 1010 libavformat/wtvdec.c s->ctx_flags |= AVFMTCTX_NOHEADER; // Needed for noStreams.wtv s 1013 libavformat/wtvdec.c if (s->nb_streams) { s 1014 libavformat/wtvdec.c AVStream *st = s->streams[0]; s 1015 libavformat/wtvdec.c pb = wtvfile_open(s, root, root_size, ff_table_0_entries_time_le16); s 1028 libavformat/wtvdec.c pb = wtvfile_open(s, root, root_size, ff_timeline_table_0_entries_Events_le16); s 1052 libavformat/wtvdec.c avio_seek(s->pb, timeline_pos, SEEK_SET); s 1056 libavformat/wtvdec.c static int read_packet(AVFormatContext *s, AVPacket *pkt) s 1058 libavformat/wtvdec.c WtvContext *wtv = s->priv_data; s 1062 libavformat/wtvdec.c stream_index = parse_chunks(s, SEEK_TO_DATA, 0, &len); s 1075 libavformat/wtvdec.c static int read_seek(AVFormatContext *s, int stream_index, s 1078 libavformat/wtvdec.c WtvContext *wtv = s->priv_data; s 1080 libavformat/wtvdec.c AVStream *st = s->streams[0]; s 1102 libavformat/wtvdec.c if (parse_chunks(s, SEEK_TO_PTS, ts, 0) < 0) s 1115 libavformat/wtvdec.c static int read_close(AVFormatContext *s) s 1117 libavformat/wtvdec.c WtvContext *wtv = s->priv_data; s 136 libavformat/wtvenc.c static void write_chunk_header(AVFormatContext *s, const ff_asf_guid *guid, int length, int stream_id) s 138 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 139 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 158 libavformat/wtvenc.c static void write_chunk_header2(AVFormatContext *s, const ff_asf_guid *guid, int stream_id) s 160 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 161 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 164 libavformat/wtvenc.c write_chunk_header(s, guid, 0, stream_id); // length updated later s 168 libavformat/wtvenc.c static void finish_chunk_noindex(AVFormatContext *s) s 170 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 171 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 183 libavformat/wtvenc.c static void write_index(AVFormatContext *s) s 185 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 186 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 189 libavformat/wtvenc.c write_chunk_header2(s, &ff_index_guid, 0x80000000); s 202 libavformat/wtvenc.c finish_chunk_noindex(s); s 208 libavformat/wtvenc.c static void finish_chunk(AVFormatContext *s) s 210 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 211 libavformat/wtvenc.c finish_chunk_noindex(s); s 213 libavformat/wtvenc.c write_index(s); s 259 libavformat/wtvenc.c static int write_stream_codec_info(AVFormatContext *s, AVStream *st) s 263 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 278 libavformat/wtvenc.c av_log(s, AV_LOG_ERROR, "unknown codec_type (0x%x)\n", st->codecpar->codec_type); s 292 libavformat/wtvenc.c if (ff_put_wav_header(s, pb, st->codecpar, 0) < 0) s 306 libavformat/wtvenc.c av_log(s, AV_LOG_ERROR, "unsupported codec_id (0x%x)\n", st->codecpar->codec_id); s 317 libavformat/wtvenc.c static int write_stream_codec(AVFormatContext *s, AVStream * st) s 319 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 321 libavformat/wtvenc.c write_chunk_header2(s, &ff_stream1_guid, 0x80000000 | 0x01); s 327 libavformat/wtvenc.c ret = write_stream_codec_info(s, st); s 329 libavformat/wtvenc.c av_log(s, AV_LOG_ERROR, "write stream codec info failed codec_type(0x%x)\n", st->codecpar->codec_type); s 333 libavformat/wtvenc.c finish_chunk(s); s 337 libavformat/wtvenc.c static void write_sync(AVFormatContext *s) s 339 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 340 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 343 libavformat/wtvenc.c write_chunk_header(s, &ff_sync_guid, 0x18, 0); s 348 libavformat/wtvenc.c finish_chunk(s); s 354 libavformat/wtvenc.c static int write_stream_data(AVFormatContext *s, AVStream *st) s 356 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 359 libavformat/wtvenc.c write_chunk_header2(s, &ff_SBE2_STREAM_DESC_EVENT, 0x80000000 | (st->index + INDEX_BASE)); s 365 libavformat/wtvenc.c ret = write_stream_codec_info(s, st); s 367 libavformat/wtvenc.c av_log(s, AV_LOG_ERROR, "write stream codec info failed codec_type(0x%x)\n", st->codecpar->codec_type); s 370 libavformat/wtvenc.c finish_chunk(s); s 377 libavformat/wtvenc.c static int write_header(AVFormatContext *s) s 379 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 380 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 412 libavformat/wtvenc.c for (i = 0; i < s->nb_streams; i++) { s 413 libavformat/wtvenc.c st = s->streams[i]; s 416 libavformat/wtvenc.c ret = write_stream_codec(s, st); s 418 libavformat/wtvenc.c av_log(s, AV_LOG_ERROR, "write stream codec failed codec_type(0x%x)\n", st->codecpar->codec_type); s 422 libavformat/wtvenc.c write_sync(s); s 425 libavformat/wtvenc.c for (i = 0; i < s->nb_streams; i++) { s 426 libavformat/wtvenc.c st = s->streams[i]; s 429 libavformat/wtvenc.c ret = write_stream_data(s, st); s 431 libavformat/wtvenc.c av_log(s, AV_LOG_ERROR, "write stream data failed codec_type(0x%x)\n", st->codecpar->codec_type); s 437 libavformat/wtvenc.c write_index(s); s 442 libavformat/wtvenc.c static void write_timestamp(AVFormatContext *s, AVPacket *pkt) s 444 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 445 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 446 libavformat/wtvenc.c AVCodecParameters *par = s->streams[pkt->stream_index]->codecpar; s 448 libavformat/wtvenc.c write_chunk_header(s, &ff_timestamp_guid, 56, 0x40000000 | (INDEX_BASE + pkt->stream_index)); s 460 libavformat/wtvenc.c static int write_packet(AVFormatContext *s, AVPacket *pkt) s 462 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 463 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 464 libavformat/wtvenc.c AVStream *st = s->streams[pkt->stream_index]; s 470 libavformat/wtvenc.c int ret = ff_check_h264_startcode(s, st, pkt); s 477 libavformat/wtvenc.c write_sync(s); s 489 libavformat/wtvenc.c write_timestamp(s, pkt); s 491 libavformat/wtvenc.c write_chunk_header(s, &ff_data_guid, pkt->size, INDEX_BASE + pkt->stream_index); s 538 libavformat/wtvenc.c static int write_root_table(AVFormatContext *s, int64_t sector_pos) s 540 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 541 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 595 libavformat/wtvenc.c static int64_t write_fat_sector(AVFormatContext *s, int64_t start_pos, int nb_sectors, int sector_bits, int depth) s 600 libavformat/wtvenc.c int64_t fat = avio_tell(s->pb); s 601 libavformat/wtvenc.c write_fat(s->pb, start_sector, nb_sectors, shift); s 606 libavformat/wtvenc.c int64_t fat1 = avio_tell(s->pb); s 608 libavformat/wtvenc.c write_fat(s->pb, start_sector1, nb_sectors1, 0); s 615 libavformat/wtvenc.c static void write_table_entries_events(AVFormatContext *s) s 617 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 618 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 626 libavformat/wtvenc.c static void write_table_entries_time(AVFormatContext *s) s 628 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 629 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 669 libavformat/wtvenc.c static void write_table_entries_attrib(AVFormatContext *s) s 671 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 672 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 675 libavformat/wtvenc.c ff_standardize_creation_time(s); s 677 libavformat/wtvenc.c ff_metadata_conv(&s->metadata, ff_asf_metadata_conv, NULL); s 678 libavformat/wtvenc.c while ((tag = av_dict_get(s->metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) s 682 libavformat/wtvenc.c AVStream *st = s->streams[wctx->thumbnail.stream_index]; s 697 libavformat/wtvenc.c static void write_table_redirector_legacy_attrib(AVFormatContext *s) s 699 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 700 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 705 libavformat/wtvenc.c while ((tag = av_dict_get(s->metadata, "", tag, AV_DICT_IGNORE_SUFFIX))) { s 711 libavformat/wtvenc.c AVStream *st = s->streams[wctx->thumbnail.stream_index]; s 725 libavformat/wtvenc.c static int finish_file(AVFormatContext *s, enum WtvFileIndex index, int64_t start_pos) s 727 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 728 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 754 libavformat/wtvenc.c av_log(s, AV_LOG_ERROR, "unsupported file allocation table depth (%"PRIi64" bytes)\n", w->length); s 770 libavformat/wtvenc.c w->first_sector = write_fat_sector(s, start_pos, nb_sectors, sector_bits, w->depth) >> WTV_SECTOR_BITS; s 782 libavformat/wtvenc.c static int write_trailer(AVFormatContext *s) s 784 libavformat/wtvenc.c WtvContext *wctx = s->priv_data; s 785 libavformat/wtvenc.c AVIOContext *pb = s->pb; s 790 libavformat/wtvenc.c if (finish_file(s, WTV_TIMELINE, wctx->timeline_start_pos) < 0) s 794 libavformat/wtvenc.c write_table_entries_events(s); s 795 libavformat/wtvenc.c if (finish_file(s, WTV_TIMELINE_TABLE_0_ENTRIES_EVENTS, start_pos) < 0) s 799 libavformat/wtvenc.c write_table_entries_attrib(s); s 800 libavformat/wtvenc.c if (finish_file(s, WTV_TABLE_0_ENTRIES_LEGACY_ATTRIB, start_pos) < 0) s 804 libavformat/wtvenc.c write_table_redirector_legacy_attrib(s); s 805 libavformat/wtvenc.c if (finish_file(s, WTV_TABLE_0_REDIRECTOR_LEGACY_ATTRIB, start_pos) < 0) s 809 libavformat/wtvenc.c write_table_entries_time(s); s 810 libavformat/wtvenc.c if (finish_file(s, WTV_TABLE_0_ENTRIES_TIME, start_pos) < 0) s 815 libavformat/wtvenc.c root_size = write_root_table(s, sector_pos); s 232 libavformat/wvdec.c static int wv_read_header(AVFormatContext *s) s 234 libavformat/wvdec.c AVIOContext *pb = s->pb; s 235 libavformat/wvdec.c WVContext *wc = s->priv_data; s 241 libavformat/wvdec.c if ((ret = wv_read_block_header(s, pb)) < 0) s 250 libavformat/wvdec.c st = avformat_new_stream(s, NULL); s 267 libavformat/wvdec.c if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) { s 268 libavformat/wvdec.c int64_t cur = avio_tell(s->pb); s 269 libavformat/wvdec.c wc->apetag_start = ff_ape_parse_tag(s); s 270 libavformat/wvdec.c if (!av_dict_get(s->metadata, "", NULL, AV_DICT_IGNORE_SUFFIX)) s 271 libavformat/wvdec.c ff_id3v1_read(s); s 272 libavformat/wvdec.c avio_seek(s->pb, cur, SEEK_SET); s 278 libavformat/wvdec.c static int wv_read_packet(AVFormatContext *s, AVPacket *pkt) s 280 libavformat/wvdec.c WVContext *wc = s->priv_data; s 286 libavformat/wvdec.c if (avio_feof(s->pb)) s 289 libavformat/wvdec.c if ((ret = wv_read_block_header(s, s->pb)) < 0) s 297 libavformat/wvdec.c ret = avio_read(s->pb, pkt->data + WV_HEADER_SIZE, wc->header.blocksize); s 302 libavformat/wvdec.c if ((ret = wv_read_block_header(s, s->pb)) < 0) { s 312 libavformat/wvdec.c ret = avio_read(s->pb, pkt->data + off + WV_HEADER_SIZE, wc->header.blocksize); s 323 libavformat/wvdec.c av_log(s, AV_LOG_WARNING, s 33 libavformat/wvedec.c static int wve_read_header(AVFormatContext *s) s 37 libavformat/wvedec.c st = avformat_new_stream(s, NULL); s 41 libavformat/wvedec.c avio_skip(s->pb, 18); s 42 libavformat/wvedec.c st->duration = avio_rb32(s->pb); s 50 libavformat/wvedec.c avio_skip(s->pb, 10); s 46 libavformat/wvenc.c WvMuxContext *s = ctx->priv_data; s 55 libavformat/wvenc.c s->samples += header.samples; s 64 libavformat/wvenc.c WvMuxContext *s = ctx->priv_data; s 67 libavformat/wvenc.c if ((ctx->pb->seekable & AVIO_SEEKABLE_NORMAL) && s->samples && s 68 libavformat/wvenc.c s->samples < UINT32_MAX) { s 71 libavformat/wvenc.c avio_wl32(ctx->pb, s->samples); s 65 libavformat/xa.c static int xa_read_header(AVFormatContext *s) s 67 libavformat/xa.c MaxisXADemuxContext *xa = s->priv_data; s 68 libavformat/xa.c AVIOContext *pb = s->pb; s 72 libavformat/xa.c st = avformat_new_stream(s, NULL); s 99 libavformat/xa.c static int xa_read_packet(AVFormatContext *s, s 102 libavformat/xa.c MaxisXADemuxContext *xa = s->priv_data; s 103 libavformat/xa.c AVStream *st = s->streams[0]; s 104 libavformat/xa.c AVIOContext *pb = s->pb; s 135 libavformat/xmv.c static int xmv_read_close(AVFormatContext *s) s 137 libavformat/xmv.c XMVDemuxContext *xmv = s->priv_data; s 144 libavformat/xmv.c static int xmv_read_header(AVFormatContext *s) s 146 libavformat/xmv.c XMVDemuxContext *xmv = s->priv_data; s 147 libavformat/xmv.c AVIOContext *pb = s->pb; s 154 libavformat/xmv.c s->ctx_flags |= AVFMTCTX_NOHEADER; s 165 libavformat/xmv.c avpriv_request_sample(s, "Uncommon version %"PRIu32"", file_version); s 210 libavformat/xmv.c av_log(s, AV_LOG_WARNING, "Unsupported 5.1 ADPCM audio stream " s 215 libavformat/xmv.c av_log(s, AV_LOG_ERROR, "Invalid parameters for audio track %"PRIu16".\n", s 232 libavformat/xmv.c xmv_read_close(s); s 265 libavformat/xmv.c static int xmv_process_packet_header(AVFormatContext *s) s 267 libavformat/xmv.c XMVDemuxContext *xmv = s->priv_data; s 268 libavformat/xmv.c AVIOContext *pb = s->pb; s 291 libavformat/xmv.c AVStream *vst = avformat_new_stream(s, NULL); s 336 libavformat/xmv.c AVStream *ast = avformat_new_stream(s, NULL); s 395 libavformat/xmv.c AVStream *vst = s->streams[xmv->video.stream_index]; s 397 libavformat/xmv.c av_assert0(xmv->video.stream_index < s->nb_streams); s 412 libavformat/xmv.c static int xmv_fetch_new_packet(AVFormatContext *s) s 414 libavformat/xmv.c XMVDemuxContext *xmv = s->priv_data; s 415 libavformat/xmv.c AVIOContext *pb = s->pb; s 432 libavformat/xmv.c result = xmv_process_packet_header(s); s 442 libavformat/xmv.c static int xmv_fetch_audio_packet(AVFormatContext *s, s 445 libavformat/xmv.c XMVDemuxContext *xmv = s->priv_data; s 446 libavformat/xmv.c AVIOContext *pb = s->pb; s 488 libavformat/xmv.c static int xmv_fetch_video_packet(AVFormatContext *s, s 491 libavformat/xmv.c XMVDemuxContext *xmv = s->priv_data; s 492 libavformat/xmv.c AVIOContext *pb = s->pb; s 547 libavformat/xmv.c static int xmv_read_packet(AVFormatContext *s, s 550 libavformat/xmv.c XMVDemuxContext *xmv = s->priv_data; s 556 libavformat/xmv.c result = xmv_fetch_new_packet(s); s 564 libavformat/xmv.c result = xmv_fetch_video_packet(s, pkt); s 568 libavformat/xmv.c result = xmv_fetch_audio_packet(s, pkt, xmv->current_stream - 1); s 36 libavformat/xvag.c static int xvag_read_header(AVFormatContext *s) s 41 libavformat/xvag.c avio_skip(s->pb, 4); s 43 libavformat/xvag.c st = avformat_new_stream(s, NULL); s 49 libavformat/xvag.c offset = avio_rl32(s->pb); s 53 libavformat/xvag.c avio_skip(s->pb, 28); s 54 libavformat/xvag.c codec = avio_rb32(s->pb); s 55 libavformat/xvag.c st->codecpar->channels = avio_rb32(s->pb); s 56 libavformat/xvag.c avio_skip(s->pb, 4); s 57 libavformat/xvag.c st->duration = avio_rb32(s->pb); s 58 libavformat/xvag.c avio_skip(s->pb, 8); s 59 libavformat/xvag.c st->codecpar->sample_rate = avio_rb32(s->pb); s 61 libavformat/xvag.c avio_skip(s->pb, 28); s 62 libavformat/xvag.c codec = avio_rl32(s->pb); s 63 libavformat/xvag.c st->codecpar->channels = avio_rl32(s->pb); s 64 libavformat/xvag.c avio_skip(s->pb, 4); s 65 libavformat/xvag.c st->duration = avio_rl32(s->pb); s 66 libavformat/xvag.c avio_skip(s->pb, 8); s 67 libavformat/xvag.c st->codecpar->sample_rate = avio_rl32(s->pb); s 81 libavformat/xvag.c avpriv_request_sample(s, "codec %X", codec); s 85 libavformat/xvag.c avio_skip(s->pb, offset - avio_tell(s->pb)); s 87 libavformat/xvag.c if (avio_rb16(s->pb) == 0xFFFB) { s 93 libavformat/xvag.c avio_skip(s->pb, -2); s 99 libavformat/xvag.c static int xvag_read_packet(AVFormatContext *s, AVPacket *pkt) s 101 libavformat/xvag.c AVCodecParameters *par = s->streams[0]->codecpar; s 103 libavformat/xvag.c return av_get_packet(s->pb, pkt, par->block_align); s 44 libavformat/xwma.c static int xwma_read_header(AVFormatContext *s) s 51 libavformat/xwma.c AVIOContext *pb = s->pb; s 53 libavformat/xwma.c XWMAContext *xwma = s->priv_data; s 74 libavformat/xwma.c st = avformat_new_stream(s, NULL); s 78 libavformat/xwma.c ret = ff_get_wav_header(s, pb, st->codecpar, size, 0); s 114 libavformat/xwma.c avpriv_request_sample(s, "Unexpected codec (tag %s; id %d)", s 130 libavformat/xwma.c avpriv_request_sample(s, "Unexpected extradata (%d bytes)", s 150 libavformat/xwma.c av_log(s, AV_LOG_WARNING, "Invalid channel count: %d\n", s 155 libavformat/xwma.c av_log(s, AV_LOG_WARNING, "Invalid bits_per_coded_sample: %d\n", s 188 libavformat/xwma.c av_log(s, AV_LOG_ERROR, "two dpds chunks present\n"); s 195 libavformat/xwma.c av_log(s, AV_LOG_WARNING, s 200 libavformat/xwma.c av_log(s, AV_LOG_ERROR, s 241 libavformat/xwma.c av_log(s, AV_LOG_ERROR, s 286 libavformat/xwma.c static int xwma_read_packet(AVFormatContext *s, AVPacket *pkt) s 291 libavformat/xwma.c XWMAContext *xwma = s->priv_data; s 293 libavformat/xwma.c st = s->streams[0]; s 295 libavformat/xwma.c left = xwma->data_end - avio_tell(s->pb); s 304 libavformat/xwma.c ret = av_get_packet(s->pb, pkt, size); s 56 libavformat/yop.c static int yop_read_header(AVFormatContext *s) s 58 libavformat/yop.c YopDecContext *yop = s->priv_data; s 59 libavformat/yop.c AVIOContext *pb = s->pb; s 66 libavformat/yop.c audio_stream = avformat_new_stream(s, NULL); s 67 libavformat/yop.c video_stream = avformat_new_stream(s, NULL); s 93 libavformat/yop.c ret = ff_get_extradata(s, video_par, pb, 8); s 105 libavformat/yop.c av_log(s, AV_LOG_ERROR, "YOP has invalid header\n"); s 116 libavformat/yop.c static int yop_read_packet(AVFormatContext *s, AVPacket *pkt) s 118 libavformat/yop.c YopDecContext *yop = s->priv_data; s 119 libavformat/yop.c AVIOContext *pb = s->pb; s 173 libavformat/yop.c static int yop_read_close(AVFormatContext *s) s 175 libavformat/yop.c YopDecContext *yop = s->priv_data; s 180 libavformat/yop.c static int yop_read_seek(AVFormatContext *s, int stream_index, s 183 libavformat/yop.c YopDecContext *yop = s->priv_data; s 190 libavformat/yop.c pos_min = s->internal->data_offset; s 191 libavformat/yop.c pos_max = avio_size(s->pb) - yop->frame_size; s 198 libavformat/yop.c if (avio_seek(s->pb, frame_pos, SEEK_SET) < 0) s 32 libavformat/yuv4mpegdec.c static int yuv4_read_header(AVFormatContext *s) s 38 libavformat/yuv4mpegdec.c AVIOContext *pb = s->pb; s 57 libavformat/yuv4mpegdec.c av_log(s, AV_LOG_ERROR, "Header too large.\n"); s 61 libavformat/yuv4mpegdec.c av_log(s, AV_LOG_ERROR, "Invalid magic number for yuv4mpeg.\n"); s 141 libavformat/yuv4mpegdec.c av_log(s, AV_LOG_ERROR, "YUV4MPEG stream contains an unknown " s 163 libavformat/yuv4mpegdec.c av_log(s, AV_LOG_ERROR, "YUV4MPEG stream contains mixed " s 166 libavformat/yuv4mpegdec.c av_log(s, AV_LOG_ERROR, "YUV4MPEG has invalid header.\n"); s 240 libavformat/yuv4mpegdec.c av_log(s, AV_LOG_ERROR, "YUV4MPEG has invalid header.\n"); s 262 libavformat/yuv4mpegdec.c st = avformat_new_stream(s, NULL); s 277 libavformat/yuv4mpegdec.c s->packet_size = av_image_get_buffer_size(st->codecpar->format, width, height, 1) + Y4M_FRAME_MAGIC_LEN; s 278 libavformat/yuv4mpegdec.c if ((int) s->packet_size < 0) s 279 libavformat/yuv4mpegdec.c return s->packet_size; s 280 libavformat/yuv4mpegdec.c s->internal->data_offset = avio_tell(pb); s 282 libavformat/yuv4mpegdec.c st->duration = (avio_size(pb) - avio_tell(pb)) / s->packet_size; s 287 libavformat/yuv4mpegdec.c static int yuv4_read_packet(AVFormatContext *s, AVPacket *pkt) s 292 libavformat/yuv4mpegdec.c int64_t off = avio_tell(s->pb); s 295 libavformat/yuv4mpegdec.c header[i] = avio_r8(s->pb); s 301 libavformat/yuv4mpegdec.c if (s->pb->error) s 302 libavformat/yuv4mpegdec.c return s->pb->error; s 303 libavformat/yuv4mpegdec.c else if (s->pb->eof_reached) s 311 libavformat/yuv4mpegdec.c ret = av_get_packet(s->pb, pkt, s->packet_size - Y4M_FRAME_MAGIC_LEN); s 314 libavformat/yuv4mpegdec.c else if (ret != s->packet_size - Y4M_FRAME_MAGIC_LEN) { s 315 libavformat/yuv4mpegdec.c return s->pb->eof_reached ? AVERROR_EOF : AVERROR(EIO); s 318 libavformat/yuv4mpegdec.c pkt->pts = (off - s->internal->data_offset) / s->packet_size; s 323 libavformat/yuv4mpegdec.c static int yuv4_read_seek(AVFormatContext *s, int stream_index, s 332 libavformat/yuv4mpegdec.c pos = pts * s->packet_size; s 334 libavformat/yuv4mpegdec.c if (avio_seek(s->pb, pos + s->internal->data_offset, SEEK_SET) < 0) s 29 libavformat/yuv4mpegenc.c static int yuv4_generate_header(AVFormatContext *s, char* buf) s 39 libavformat/yuv4mpegenc.c st = s->streams[0]; s 180 libavformat/yuv4mpegenc.c static int yuv4_write_packet(AVFormatContext *s, AVPacket *pkt) s 182 libavformat/yuv4mpegenc.c AVStream *st = s->streams[pkt->stream_index]; s 183 libavformat/yuv4mpegenc.c AVIOContext *pb = s->pb; s 185 libavformat/yuv4mpegenc.c int* first_pkt = s->priv_data; s 196 libavformat/yuv4mpegenc.c if (yuv4_generate_header(s, buf2) < 0) { s 197 libavformat/yuv4mpegenc.c av_log(s, AV_LOG_ERROR, s 207 libavformat/yuv4mpegenc.c avio_printf(s->pb, "%s\n", Y4M_FRAME_MAGIC); s 247 libavformat/yuv4mpegenc.c av_log(s, AV_LOG_ERROR, "The pixel format '%s' is not supported.\n", s 282 libavformat/yuv4mpegenc.c static int yuv4_write_header(AVFormatContext *s) s 284 libavformat/yuv4mpegenc.c int *first_pkt = s->priv_data; s 286 libavformat/yuv4mpegenc.c if (s->nb_streams != 1) s 289 libavformat/yuv4mpegenc.c if (s->streams[0]->codecpar->codec_id != AV_CODEC_ID_WRAPPED_AVFRAME) { s 290 libavformat/yuv4mpegenc.c av_log(s, AV_LOG_ERROR, "ERROR: Codec not supported.\n"); s 294 libavformat/yuv4mpegenc.c switch (s->streams[0]->codecpar->format) { s 296 libavformat/yuv4mpegenc.c av_log(s, AV_LOG_WARNING, "Warning: generating rarely used 4:1:1 YUV " s 327 libavformat/yuv4mpegenc.c if (s->strict_std_compliance >= FF_COMPLIANCE_NORMAL) { s 328 libavformat/yuv4mpegenc.c av_log(s, AV_LOG_ERROR, "'%s' is not an official yuv4mpegpipe pixel format. " s 330 libavformat/yuv4mpegenc.c av_get_pix_fmt_name(s->streams[0]->codecpar->format)); s 333 libavformat/yuv4mpegenc.c av_log(s, AV_LOG_WARNING, "Warning: generating non standard YUV stream. " s 337 libavformat/yuv4mpegenc.c av_log(s, AV_LOG_ERROR, "ERROR: yuv4mpeg can only handle " s 191 libavresample/tests/avresample.c AVAudioResampleContext *s; s 250 libavresample/tests/avresample.c s = avresample_alloc_context(); s 251 libavresample/tests/avresample.c if (!s) { s 269 libavresample/tests/avresample.c av_log(s, AV_LOG_ERROR, "failed in_data fill arrays\n"); s 290 libavresample/tests/avresample.c av_log(s, AV_LOG_ERROR, "failed out_data fill arrays\n"); s 294 libavresample/tests/avresample.c av_opt_set_int(s, "in_channel_layout", in_ch_layout, 0); s 295 libavresample/tests/avresample.c av_opt_set_int(s, "in_sample_fmt", in_fmt, 0); s 296 libavresample/tests/avresample.c av_opt_set_int(s, "in_sample_rate", in_rate, 0); s 297 libavresample/tests/avresample.c av_opt_set_int(s, "out_channel_layout", out_ch_layout, 0); s 298 libavresample/tests/avresample.c av_opt_set_int(s, "out_sample_fmt", out_fmt, 0); s 299 libavresample/tests/avresample.c av_opt_set_int(s, "out_sample_rate", out_rate, 0); s 301 libavresample/tests/avresample.c av_opt_set_int(s, "internal_sample_fmt", AV_SAMPLE_FMT_FLTP, 0); s 303 libavresample/tests/avresample.c ret = avresample_open(s); s 305 libavresample/tests/avresample.c av_log(s, AV_LOG_ERROR, "Error opening context\n"); s 309 libavresample/tests/avresample.c ret = avresample_convert(s, out_data, out_linesize, out_rate * 6, s 319 libavresample/tests/avresample.c if (avresample_get_delay(s) > 0) s 321 libavresample/tests/avresample.c avresample_get_delay(s)); s 322 libavresample/tests/avresample.c if (avresample_available(s) > 0) s 324 libavresample/tests/avresample.c avresample_available(s)); s 327 libavresample/tests/avresample.c avresample_close(s); s 340 libavresample/tests/avresample.c avresample_free(&s); s 51 libavutil/aes.c # define ROT(x, s) (((x) >> (s)) | ((x) << (32-(s)))) s 53 libavutil/aes.c # define ROT(x, s) (((x) << (s)) | ((x) >> (32-(s)))) s 77 libavutil/aes.c static void subshift(av_aes_block s0[2], int s, const uint8_t *box) s 79 libavutil/aes.c av_aes_block *s1 = (av_aes_block *) (s0[0].u8 - s); s 80 libavutil/aes.c av_aes_block *s3 = (av_aes_block *) (s0[0].u8 + s); s 118 libavutil/aes.c static inline void aes_crypt(AVAES *a, int s, const uint8_t *sbox, s 124 libavutil/aes.c mix(a->state, multbl, 3 - s, 1 + s); s 128 libavutil/aes.c subshift(&a->state[0], s, sbox); s 734 libavutil/avsscanf.c char *s; s 785 libavutil/avsscanf.c s = 0; s 879 libavutil/avsscanf.c s = 0; s 881 libavutil/avsscanf.c if ((s = dest)) { s 883 libavutil/avsscanf.c s[i++] = c; s 891 libavutil/avsscanf.c if (s) s[i] = 0; s 952 libavutil/avsscanf.c static int ff_vsscanf(const char *s, const char *fmt, va_list ap) s 955 libavutil/avsscanf.c .buf = (void *)s, .cookie = (void *)s, s 184 libavutil/avstring.c char *av_strtok(char *s, const char *delim, char **saveptr) s 188 libavutil/avstring.c if (!s && !(s = *saveptr)) s 192 libavutil/avstring.c s += strspn(s, delim); s 195 libavutil/avstring.c if (!*s) { s 199 libavutil/avstring.c tok = s++; s 202 libavutil/avstring.c s += strcspn(s, delim); s 203 libavutil/avstring.c if (*s) { s 204 libavutil/avstring.c *s = 0; s 205 libavutil/avstring.c *saveptr = s+1; s 140 libavutil/avstring.h static inline size_t av_strnlen(const char *s, size_t len) s 143 libavutil/avstring.h for (i = 0; i < len && s[i]; i++) s 201 libavutil/avstring.h char *av_strtok(char *s, const char *delim, char **saveptr); s 298 libavutil/blowfish.c Xr ^=((( ctx->s[0][ Xl >> 24 ] \ s 299 libavutil/blowfish.c + ctx->s[1][(Xl >> 16) & 0xFF])\ s 300 libavutil/blowfish.c ^ ctx->s[2][(Xl >> 8) & 0xFF])\ s 301 libavutil/blowfish.c + ctx->s[3][ Xl & 0xFF])\ s 314 libavutil/blowfish.c memcpy(ctx->s, orig_s, sizeof(orig_s)); s 338 libavutil/blowfish.c ctx->s[i][j] = data_l; s 339 libavutil/blowfish.c ctx->s[i][j + 1] = data_r; s 37 libavutil/blowfish.h uint32_t s[4][256]; s 55 libavutil/bswap.h #define AV_BSWAPC(s, x) AV_BSWAP##s##C(x) s 89 libavutil/bswap.h #define AV_BE2NEC(s, x) (x) s 90 libavutil/bswap.h #define AV_LE2NEC(s, x) AV_BSWAPC(s, x) s 98 libavutil/bswap.h #define AV_BE2NEC(s, x) AV_BSWAPC(s, x) s 99 libavutil/bswap.h #define AV_LE2NEC(s, x) (x) s 109 libavutil/cpu.c int av_parse_cpu_flags(const char *s) s 185 libavutil/cpu.c if ((ret = av_opt_eval_flags(&pclass, &cpuflags_opts[0], s, &flags)) < 0) s 191 libavutil/cpu.c int av_parse_cpu_caps(unsigned *flags, const char *s) s 264 libavutil/cpu.c return av_opt_eval_flags(&pclass, &cpuflags_opts[0], s, flags); s 105 libavutil/cpu.h int av_parse_cpu_flags(const char *s); s 112 libavutil/cpu.h int av_parse_cpu_caps(unsigned *flags, const char *s); s 54 libavutil/dict.c const char *s = m->elems[i].key; s 56 libavutil/dict.c for (j = 0; s[j] == key[j] && key[j]; j++) s 59 libavutil/dict.c for (j = 0; av_toupper(s[j]) == av_toupper(key[j]) && key[j]; j++) s 63 libavutil/dict.c if (s[j] && !(flags & AV_DICT_IGNORE_SUFFIX)) s 54 libavutil/display.c double s = sin(radians); s 59 libavutil/display.c matrix[1] = CONV_DB(-s); s 60 libavutil/display.c matrix[3] = CONV_DB(s); s 46 libavutil/eval.c char *s; s 147 libavutil/eval.c static int strmatch(const char *s, const char *prefix) s 151 libavutil/eval.c if (prefix[i] != s[i]) return 0; s 154 libavutil/eval.c return !IS_IDENTIFIER_CHAR(s[i]); s 349 libavutil/eval.c char *next = p->s, *s0 = p->s; s 356 libavutil/eval.c d->value = av_strtod(p->s, &next); s 357 libavutil/eval.c if (next != p->s) { s 359 libavutil/eval.c p->s= next; s 367 libavutil/eval.c if (strmatch(p->s, p->const_names[i])) { s 368 libavutil/eval.c p->s+= strlen(p->const_names[i]); s 376 libavutil/eval.c if (strmatch(p->s, constants[i].name)) { s 377 libavutil/eval.c p->s += strlen(constants[i].name); s 385 libavutil/eval.c p->s= strchr(p->s, '('); s 386 libavutil/eval.c if (!p->s) { s 388 libavutil/eval.c p->s= next; s 392 libavutil/eval.c p->s++; // "(" s 397 libavutil/eval.c if (p->s[0] != ')') { s 402 libavutil/eval.c p->s++; // ")" s 410 libavutil/eval.c if (p->s[0]== ',') { s 411 libavutil/eval.c p->s++; // "," s 414 libavutil/eval.c if (p->s[0]== ',') { s 415 libavutil/eval.c p->s++; // "," s 418 libavutil/eval.c if (p->s[0] != ')') { s 423 libavutil/eval.c p->s++; // ")" s 520 libavutil/eval.c *sign= (*p->s == '+') - (*p->s == '-'); s 521 libavutil/eval.c p->s += *sign&1; s 529 libavutil/eval.c if (*p->s == '-') { s 531 libavutil/eval.c double av_unused ignored = strtod(p->s, &next); s 532 libavutil/eval.c if (next != p->s && next[0] == 'd' && next[1] == 'B') { s 546 libavutil/eval.c while(p->s[0]=='^'){ s 548 libavutil/eval.c p->s++; s 573 libavutil/eval.c while (p->s[0]=='*' || p->s[0]=='/') { s 574 libavutil/eval.c int c= *p->s++; s 597 libavutil/eval.c while (*p->s == '+' || *p->s == '-') { s 625 libavutil/eval.c while (*p->s == ';') { s 626 libavutil/eval.c p->s++; s 685 libavutil/eval.c int av_expr_parse(AVExpr **expr, const char *s, s 693 libavutil/eval.c char *w = av_malloc(strlen(s) + 1); s 695 libavutil/eval.c const char *s0 = s; s 701 libavutil/eval.c while (*s) s 702 libavutil/eval.c if (!av_isspace(*s++)) *wp++ = s[-1]; s 707 libavutil/eval.c p.s= w; s 718 libavutil/eval.c if (*p.s) { s 719 libavutil/eval.c av_log(&p, AV_LOG_ERROR, "Invalid chars '%s' at the end of expression '%s'\n", p.s, s0); s 776 libavutil/eval.c int av_expr_parse_and_eval(double *d, const char *s, s 783 libavutil/eval.c int ret = av_expr_parse(&e, s, const_names, func1_names, funcs1, func2_names, funcs2, log_offset, log_ctx); s 51 libavutil/eval.h int av_expr_parse_and_eval(double *res, const char *s, s 74 libavutil/eval.h int av_expr_parse(AVExpr **expr, const char *s, s 106 libavutil/hwcontext_d3d11va.c D3D11VAFramesContext *s = ctx->internal->priv; s 112 libavutil/hwcontext_d3d11va.c if (s->staging_texture) s 113 libavutil/hwcontext_d3d11va.c ID3D11Texture2D_Release(s->staging_texture); s 114 libavutil/hwcontext_d3d11va.c s->staging_texture = NULL; s 179 libavutil/hwcontext_d3d11va.c D3D11VAFramesContext *s = ctx->internal->priv; s 188 libavutil/hwcontext_d3d11va.c .Format = s->format, s 208 libavutil/hwcontext_d3d11va.c D3D11VAFramesContext *s = ctx->internal->priv; s 217 libavutil/hwcontext_d3d11va.c if (s->nb_surfaces_used >= texDesc.ArraySize) { s 223 libavutil/hwcontext_d3d11va.c return wrap_texture_buf(hwctx->texture, s->nb_surfaces_used++); s 230 libavutil/hwcontext_d3d11va.c D3D11VAFramesContext *s = ctx->internal->priv; s 238 libavutil/hwcontext_d3d11va.c s->format = supported_formats[i].d3d_format; s 252 libavutil/hwcontext_d3d11va.c .Format = s->format, s 309 libavutil/hwcontext_d3d11va.c D3D11VAFramesContext *s = ctx->internal->priv; s 320 libavutil/hwcontext_d3d11va.c if (s->format == DXGI_FORMAT_420_OPAQUE) s 331 libavutil/hwcontext_d3d11va.c D3D11VAFramesContext *s = ctx->internal->priv; s 337 libavutil/hwcontext_d3d11va.c .Format = s->format, s 344 libavutil/hwcontext_d3d11va.c hr = ID3D11Device_CreateTexture2D(device_hwctx->device, &texDesc, NULL, &s->staging_texture); s 371 libavutil/hwcontext_d3d11va.c D3D11VAFramesContext *s = ctx->internal->priv; s 392 libavutil/hwcontext_d3d11va.c if (!s->staging_texture) { s 398 libavutil/hwcontext_d3d11va.c staging = (ID3D11Resource *)s->staging_texture; s 400 libavutil/hwcontext_d3d11va.c ID3D11Texture2D_GetDesc(s->staging_texture, &desc); s 95 libavutil/hwcontext_dxva2.c DXVA2FramesContext *s = ctx->internal->priv; s 101 libavutil/hwcontext_dxva2.c if (s->surfaces_internal) { s 103 libavutil/hwcontext_dxva2.c if (s->surfaces_internal[i]) s 104 libavutil/hwcontext_dxva2.c IDirect3DSurface9_Release(s->surfaces_internal[i]); s 107 libavutil/hwcontext_dxva2.c av_freep(&s->surfaces_internal); s 109 libavutil/hwcontext_dxva2.c if (s->service) { s 110 libavutil/hwcontext_dxva2.c IDirectXVideoAccelerationService_Release(s->service); s 111 libavutil/hwcontext_dxva2.c s->service = NULL; s 114 libavutil/hwcontext_dxva2.c if (s->device_handle != INVALID_HANDLE_VALUE) { s 115 libavutil/hwcontext_dxva2.c IDirect3DDeviceManager9_CloseDeviceHandle(device_hwctx->devmgr, s->device_handle); s 116 libavutil/hwcontext_dxva2.c s->device_handle = INVALID_HANDLE_VALUE; s 130 libavutil/hwcontext_dxva2.c DXVA2FramesContext *s = ctx->internal->priv; s 133 libavutil/hwcontext_dxva2.c if (s->nb_surfaces_used < hwctx->nb_surfaces) { s 134 libavutil/hwcontext_dxva2.c s->nb_surfaces_used++; s 135 libavutil/hwcontext_dxva2.c return av_buffer_create((uint8_t*)s->surfaces_internal[s->nb_surfaces_used - 1], s 146 libavutil/hwcontext_dxva2.c DXVA2FramesContext *s = ctx->internal->priv; s 155 libavutil/hwcontext_dxva2.c hr = IDirect3DDeviceManager9_OpenDeviceHandle(device_hwctx->devmgr, &s->device_handle); s 162 libavutil/hwcontext_dxva2.c s->device_handle, s 164 libavutil/hwcontext_dxva2.c (void **)&s->service); s 172 libavutil/hwcontext_dxva2.c s->format = supported_formats[i].d3d_format; s 182 libavutil/hwcontext_dxva2.c s->surfaces_internal = av_mallocz_array(ctx->initial_pool_size, s 183 libavutil/hwcontext_dxva2.c sizeof(*s->surfaces_internal)); s 184 libavutil/hwcontext_dxva2.c if (!s->surfaces_internal) s 187 libavutil/hwcontext_dxva2.c hr = IDirectXVideoAccelerationService_CreateSurface(s->service, s 190 libavutil/hwcontext_dxva2.c s->format, D3DPOOL_DEFAULT, 0, s 192 libavutil/hwcontext_dxva2.c s->surfaces_internal, NULL); s 198 libavutil/hwcontext_dxva2.c ctx->internal->pool_internal = av_buffer_pool_init2(sizeof(*s->surfaces_internal), s 203 libavutil/hwcontext_dxva2.c frames_hwctx->surfaces = s->surfaces_internal; s 212 libavutil/hwcontext_dxva2.c DXVA2FramesContext *s = ctx->internal->priv; s 222 libavutil/hwcontext_dxva2.c s->device_handle = INVALID_HANDLE_VALUE; s 133 libavutil/hwcontext_qsv.c QSVDeviceContext *s = ctx->internal->priv; s 140 libavutil/hwcontext_qsv.c &s->handle); s 142 libavutil/hwcontext_qsv.c s->handle_type = supported_handle_types[i].handle_type; s 143 libavutil/hwcontext_qsv.c s->child_device_type = supported_handle_types[i].device_type; s 144 libavutil/hwcontext_qsv.c s->child_pix_fmt = supported_handle_types[i].pix_fmt; s 148 libavutil/hwcontext_qsv.c if (!s->handle) { s 153 libavutil/hwcontext_qsv.c err = MFXQueryIMPL(hwctx->session, &s->impl); s 155 libavutil/hwcontext_qsv.c err = MFXQueryVersion(hwctx->session, &s->ver); s 166 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 168 libavutil/hwcontext_qsv.c if (s->session_download) { s 169 libavutil/hwcontext_qsv.c MFXVideoVPP_Close(s->session_download); s 170 libavutil/hwcontext_qsv.c MFXClose(s->session_download); s 172 libavutil/hwcontext_qsv.c s->session_download = NULL; s 173 libavutil/hwcontext_qsv.c s->session_download_init = 0; s 175 libavutil/hwcontext_qsv.c if (s->session_upload) { s 176 libavutil/hwcontext_qsv.c MFXVideoVPP_Close(s->session_upload); s 177 libavutil/hwcontext_qsv.c MFXClose(s->session_upload); s 179 libavutil/hwcontext_qsv.c s->session_upload = NULL; s 180 libavutil/hwcontext_qsv.c s->session_upload_init = 0; s 183 libavutil/hwcontext_qsv.c pthread_mutex_destroy(&s->session_lock); s 184 libavutil/hwcontext_qsv.c pthread_cond_destroy(&s->session_cond); s 187 libavutil/hwcontext_qsv.c av_freep(&s->mem_ids); s 188 libavutil/hwcontext_qsv.c av_freep(&s->surface_ptrs); s 189 libavutil/hwcontext_qsv.c av_freep(&s->surfaces_internal); s 190 libavutil/hwcontext_qsv.c av_buffer_unref(&s->child_frames_ref); s 200 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 203 libavutil/hwcontext_qsv.c if (s->nb_surfaces_used < hwctx->nb_surfaces) { s 204 libavutil/hwcontext_qsv.c s->nb_surfaces_used++; s 205 libavutil/hwcontext_qsv.c return av_buffer_create((uint8_t*)(s->surfaces_internal + s->nb_surfaces_used - 1), s 215 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 290 libavutil/hwcontext_qsv.c s->surfaces_internal[i].Data.MemId = child_frames_hwctx->surface_ids + i; s 298 libavutil/hwcontext_qsv.c s->surfaces_internal[i].Data.MemId = (mfxMemId)child_frames_hwctx->surfaces[i]; s 306 libavutil/hwcontext_qsv.c s->child_frames_ref = child_frames_ref; s 353 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 363 libavutil/hwcontext_qsv.c s->surfaces_internal = av_mallocz_array(ctx->initial_pool_size, s 364 libavutil/hwcontext_qsv.c sizeof(*s->surfaces_internal)); s 365 libavutil/hwcontext_qsv.c if (!s->surfaces_internal) s 369 libavutil/hwcontext_qsv.c ret = qsv_init_surface(ctx, &s->surfaces_internal[i]); s 385 libavutil/hwcontext_qsv.c frames_hwctx->surfaces = s->surfaces_internal; s 395 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 413 libavutil/hwcontext_qsv.c resp->mids = s->mem_ids; s 443 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 482 libavutil/hwcontext_qsv.c par.ExtParam = s->ext_buffers; s 483 libavutil/hwcontext_qsv.c par.NumExtParam = FF_ARRAY_ELEMS(s->ext_buffers); s 518 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 541 libavutil/hwcontext_qsv.c s->surface_ptrs = av_mallocz_array(frames_hwctx->nb_surfaces, s 542 libavutil/hwcontext_qsv.c sizeof(*s->surface_ptrs)); s 543 libavutil/hwcontext_qsv.c if (!s->surface_ptrs) s 547 libavutil/hwcontext_qsv.c s->surface_ptrs[i] = frames_hwctx->surfaces + i; s 549 libavutil/hwcontext_qsv.c s->opaque_alloc.In.Surfaces = s->surface_ptrs; s 550 libavutil/hwcontext_qsv.c s->opaque_alloc.In.NumSurface = frames_hwctx->nb_surfaces; s 551 libavutil/hwcontext_qsv.c s->opaque_alloc.In.Type = frames_hwctx->frame_type; s 553 libavutil/hwcontext_qsv.c s->opaque_alloc.Out = s->opaque_alloc.In; s 555 libavutil/hwcontext_qsv.c s->opaque_alloc.Header.BufferId = MFX_EXTBUFF_OPAQUE_SURFACE_ALLOCATION; s 556 libavutil/hwcontext_qsv.c s->opaque_alloc.Header.BufferSz = sizeof(s->opaque_alloc); s 558 libavutil/hwcontext_qsv.c s->ext_buffers[0] = (mfxExtBuffer*)&s->opaque_alloc; s 560 libavutil/hwcontext_qsv.c s->mem_ids = av_mallocz_array(frames_hwctx->nb_surfaces, sizeof(*s->mem_ids)); s 561 libavutil/hwcontext_qsv.c if (!s->mem_ids) s 565 libavutil/hwcontext_qsv.c s->mem_ids[i] = frames_hwctx->surfaces[i].Data.MemId; s 568 libavutil/hwcontext_qsv.c s->session_download = NULL; s 569 libavutil/hwcontext_qsv.c s->session_upload = NULL; s 571 libavutil/hwcontext_qsv.c s->session_download_init = 0; s 572 libavutil/hwcontext_qsv.c s->session_upload_init = 0; s 575 libavutil/hwcontext_qsv.c pthread_mutex_init(&s->session_lock, NULL); s 576 libavutil/hwcontext_qsv.c pthread_cond_init(&s->session_cond, NULL); s 665 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 673 libavutil/hwcontext_qsv.c if (!s->child_frames_ref) s 675 libavutil/hwcontext_qsv.c child_frames_ctx = (AVHWFramesContext*)s->child_frames_ref->data; s 693 libavutil/hwcontext_qsv.c ret = ff_hwframe_map_create(s->child_frames_ref, s 716 libavutil/hwcontext_qsv.c dummy->hw_frames_ctx = av_buffer_ref(s->child_frames_ref); s 736 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 737 libavutil/hwcontext_qsv.c AVHWFramesContext *child_frames_ctx = (AVHWFramesContext*)s->child_frames_ref->data; s 753 libavutil/hwcontext_qsv.c dummy->hw_frames_ctx = s->child_frames_ref; s 813 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 821 libavutil/hwcontext_qsv.c while (!s->session_download_init && !s->session_download && !ret) { s 823 libavutil/hwcontext_qsv.c if (pthread_mutex_trylock(&s->session_lock) == 0) { s 825 libavutil/hwcontext_qsv.c if (!s->session_download_init) { s 826 libavutil/hwcontext_qsv.c ret = qsv_init_internal_session(ctx, &s->session_download, 0); s 827 libavutil/hwcontext_qsv.c if (s->session_download) s 828 libavutil/hwcontext_qsv.c s->session_download_init = 1; s 831 libavutil/hwcontext_qsv.c pthread_mutex_unlock(&s->session_lock); s 832 libavutil/hwcontext_qsv.c pthread_cond_signal(&s->session_cond); s 834 libavutil/hwcontext_qsv.c pthread_mutex_lock(&s->session_lock); s 835 libavutil/hwcontext_qsv.c while (!s->session_download_init && !s->session_download) { s 836 libavutil/hwcontext_qsv.c pthread_cond_wait(&s->session_cond, &s->session_lock); s 838 libavutil/hwcontext_qsv.c pthread_mutex_unlock(&s->session_lock); s 846 libavutil/hwcontext_qsv.c if (!s->session_download) { s 847 libavutil/hwcontext_qsv.c if (s->child_frames_ref) s 858 libavutil/hwcontext_qsv.c err = MFXVideoVPP_RunFrameVPPAsync(s->session_download, in, &out, NULL, &sync); s 869 libavutil/hwcontext_qsv.c err = MFXVideoCORE_SyncOperation(s->session_download, sync, 1000); s 882 libavutil/hwcontext_qsv.c QSVFramesContext *s = ctx->internal->priv; s 895 libavutil/hwcontext_qsv.c while (!s->session_upload_init && !s->session_upload && !ret) { s 897 libavutil/hwcontext_qsv.c if (pthread_mutex_trylock(&s->session_lock) == 0) { s 899 libavutil/hwcontext_qsv.c if (!s->session_upload_init) { s 900 libavutil/hwcontext_qsv.c ret = qsv_init_internal_session(ctx, &s->session_upload, 1); s 901 libavutil/hwcontext_qsv.c if (s->session_upload) s 902 libavutil/hwcontext_qsv.c s->session_upload_init = 1; s 905 libavutil/hwcontext_qsv.c pthread_mutex_unlock(&s->session_lock); s 906 libavutil/hwcontext_qsv.c pthread_cond_signal(&s->session_cond); s 908 libavutil/hwcontext_qsv.c pthread_mutex_lock(&s->session_lock); s 909 libavutil/hwcontext_qsv.c while (!s->session_upload_init && !s->session_upload) { s 910 libavutil/hwcontext_qsv.c pthread_cond_wait(&s->session_cond, &s->session_lock); s 912 libavutil/hwcontext_qsv.c pthread_mutex_unlock(&s->session_lock); s 938 libavutil/hwcontext_qsv.c if (!s->session_upload) { s 939 libavutil/hwcontext_qsv.c if (s->child_frames_ref) s 950 libavutil/hwcontext_qsv.c err = MFXVideoVPP_RunFrameVPPAsync(s->session_upload, &in, out, NULL, &sync); s 961 libavutil/hwcontext_qsv.c err = MFXVideoCORE_SyncOperation(s->session_upload, sync, 1000); s 977 libavutil/hwcontext_qsv.c QSVFramesContext *s = dst_ctx->internal->priv; s 986 libavutil/hwcontext_qsv.c s->surfaces_internal = av_mallocz_array(src_hwctx->nb_surfaces, s 987 libavutil/hwcontext_qsv.c sizeof(*s->surfaces_internal)); s 988 libavutil/hwcontext_qsv.c if (!s->surfaces_internal) s 991 libavutil/hwcontext_qsv.c qsv_init_surface(dst_ctx, &s->surfaces_internal[i]); s 992 libavutil/hwcontext_qsv.c s->surfaces_internal[i].Data.MemId = src_hwctx->surface_ids + i; s 1003 libavutil/hwcontext_qsv.c s->surfaces_internal = av_mallocz_array(src_hwctx->nb_surfaces, s 1004 libavutil/hwcontext_qsv.c sizeof(*s->surfaces_internal)); s 1005 libavutil/hwcontext_qsv.c if (!s->surfaces_internal) s 1008 libavutil/hwcontext_qsv.c qsv_init_surface(dst_ctx, &s->surfaces_internal[i]); s 1009 libavutil/hwcontext_qsv.c s->surfaces_internal[i].Data.MemId = (mfxMemId)src_hwctx->surfaces[i]; s 1023 libavutil/hwcontext_qsv.c dst_hwctx->surfaces = s->surfaces_internal; s 58 libavutil/imgutils.c int s, shifted_w, linesize; s 65 libavutil/imgutils.c s = (max_step_comp == 1 || max_step_comp == 2) ? desc->log2_chroma_w : 0; s 66 libavutil/imgutils.c shifted_w = ((width + (1 << s) - 1)) >> s; s 138 libavutil/imgutils.c int h, s = (i == 1 || i == 2) ? desc->log2_chroma_h : 0; s 140 libavutil/imgutils.c h = (height + (1 << s) - 1) >> s; s 97 libavutil/integer.c AVInteger av_shr_i(AVInteger a, int s){ s 102 libavutil/integer.c unsigned int index= i + (s>>4); s 106 libavutil/integer.c out.v[i]= v >> (s&15); s 61 libavutil/integer.h AVInteger av_shr_i(AVInteger a, int s) av_const; s 92 libavutil/internal.h type av_##name##_get_##field(const str *s) { return s->field; } \ s 93 libavutil/internal.h void av_##name##_set_##field(str *s, type v) { s->field = v; } s 102 libavutil/internal.h #define AV_CHECK_OFFSET(s, m, o) struct check_##o { \ s 103 libavutil/internal.h int x_##o[offsetof(s, m) == o? 1: -1]; \ s 106 libavutil/internal.h #define LOCAL_ALIGNED_A(a, t, v, s, o, ...) \ s 107 libavutil/internal.h uint8_t la_##v[sizeof(t s o) + (a)]; \ s 110 libavutil/internal.h #define LOCAL_ALIGNED_D(a, t, v, s, o, ...) \ s 111 libavutil/internal.h DECLARE_ALIGNED(a, t, la_##v) s o; \ s 224 libavutil/intreadwrite.h # define AV_RN(s, p) (((const union unaligned_##s *) (p))->l) s 225 libavutil/intreadwrite.h # define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v)) s 229 libavutil/intreadwrite.h # define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p))) s 230 libavutil/intreadwrite.h # define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v)) s 234 libavutil/intreadwrite.h # define AV_RN(s, p) (((const av_alias##s*)(p))->u##s) s 235 libavutil/intreadwrite.h # define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v)) s 350 libavutil/intreadwrite.h # define AV_RN(s, p) AV_RB##s(p) s 351 libavutil/intreadwrite.h # define AV_WN(s, p, v) AV_WB##s(p, v) s 353 libavutil/intreadwrite.h # define AV_RN(s, p) AV_RL##s(p) s 354 libavutil/intreadwrite.h # define AV_WN(s, p, v) AV_WL##s(p, v) s 384 libavutil/intreadwrite.h # define AV_RB(s, p) AV_RN##s(p) s 385 libavutil/intreadwrite.h # define AV_WB(s, p, v) AV_WN##s(p, v) s 386 libavutil/intreadwrite.h # define AV_RL(s, p) av_bswap##s(AV_RN##s(p)) s 387 libavutil/intreadwrite.h # define AV_WL(s, p, v) AV_WN##s(p, av_bswap##s(v)) s 389 libavutil/intreadwrite.h # define AV_RB(s, p) av_bswap##s(AV_RN##s(p)) s 390 libavutil/intreadwrite.h # define AV_WB(s, p, v) AV_WN##s(p, av_bswap##s(v)) s 391 libavutil/intreadwrite.h # define AV_RL(s, p) AV_RN##s(p) s 392 libavutil/intreadwrite.h # define AV_WL(s, p, v) AV_WN##s(p, v) s 518 libavutil/intreadwrite.h #define AV_RNA(s, p) (((const av_alias##s*)(p))->u##s) s 519 libavutil/intreadwrite.h #define AV_WNA(s, p, v) (((av_alias##s*)(p))->u##s = (v)) s 546 libavutil/intreadwrite.h # define AV_RLA(s, p) av_bswap##s(AV_RN##s##A(p)) s 547 libavutil/intreadwrite.h # define AV_WLA(s, p, v) AV_WN##s##A(p, av_bswap##s(v)) s 549 libavutil/intreadwrite.h # define AV_RLA(s, p) AV_RN##s##A(p) s 550 libavutil/intreadwrite.h # define AV_WLA(s, p, v) AV_WN##s##A(p, v) s 565 libavutil/intreadwrite.h #define AV_COPYU(n, d, s) AV_WN##n(d, AV_RN##n(s)); s 568 libavutil/intreadwrite.h # define AV_COPY16U(d, s) AV_COPYU(16, d, s) s 572 libavutil/intreadwrite.h # define AV_COPY32U(d, s) AV_COPYU(32, d, s) s 576 libavutil/intreadwrite.h # define AV_COPY64U(d, s) AV_COPYU(64, d, s) s 580 libavutil/intreadwrite.h # define AV_COPY128U(d, s) \ s 582 libavutil/intreadwrite.h AV_COPY64U(d, s); \ s 583 libavutil/intreadwrite.h AV_COPY64U((char *)(d) + 8, (const char *)(s) + 8); \ s 593 libavutil/intreadwrite.h #define AV_COPY(n, d, s) \ s 594 libavutil/intreadwrite.h (((av_alias##n*)(d))->u##n = ((const av_alias##n*)(s))->u##n) s 597 libavutil/intreadwrite.h # define AV_COPY16(d, s) AV_COPY(16, d, s) s 601 libavutil/intreadwrite.h # define AV_COPY32(d, s) AV_COPY(32, d, s) s 605 libavutil/intreadwrite.h # define AV_COPY64(d, s) AV_COPY(64, d, s) s 609 libavutil/intreadwrite.h # define AV_COPY128(d, s) \ s 611 libavutil/intreadwrite.h AV_COPY64(d, s); \ s 612 libavutil/intreadwrite.h AV_COPY64((char*)(d)+8, (char*)(s)+8); \ s 36 libavutil/macros.h #define AV_STRINGIFY(s) AV_TOSTRING(s) s 37 libavutil/macros.h #define AV_TOSTRING(s) #s s 46 libavutil/macros.h #define AV_PRAGMA(s) _Pragma(#s) s 253 libavutil/mem.c char *av_strdup(const char *s) s 256 libavutil/mem.c if (s) { s 257 libavutil/mem.c size_t len = strlen(s) + 1; s 260 libavutil/mem.c memcpy(ptr, s, len); s 265 libavutil/mem.c char *av_strndup(const char *s, size_t len) s 269 libavutil/mem.c if (!s) s 272 libavutil/mem.c end = memchr(s, 0, len); s 274 libavutil/mem.c len = end - s; s 280 libavutil/mem.c memcpy(ret, s, len); s 473 libavutil/mem.h char *av_strdup(const char *s) av_malloc_attrib; s 484 libavutil/mem.h char *av_strndup(const char *s, size_t len) av_malloc_attrib; s 614 libavutil/mips/generic_macros_msa.h #define SLDI_B(RTYPE, d, s, slide_val, out) \ s 616 libavutil/mips/generic_macros_msa.h out = (RTYPE) __msa_sldi_b((v16i8) d, (v16i8) s, slide_val); \ s 1357 libavutil/opt.c void av_opt_set_defaults(void *s) s 1359 libavutil/opt.c av_opt_set_defaults2(s, 0, 0); s 1362 libavutil/opt.c void av_opt_set_defaults2(void *s, int mask, int flags) s 1365 libavutil/opt.c while ((opt = av_opt_next(s, opt))) { s 1366 libavutil/opt.c void *dst = ((uint8_t*)s) + opt->offset; s 1387 libavutil/opt.c write_number(s, opt, dst, 1, 1, opt->default_val.i64); s 1393 libavutil/opt.c write_number(s, opt, dst, val, 1, 1); s 1399 libavutil/opt.c write_number(s, opt, dst, 1, val.den, val.num); s 1403 libavutil/opt.c set_string_color(s, opt, opt->default_val.str, dst); s 1406 libavutil/opt.c set_string(s, opt, opt->default_val.str, dst); s 1409 libavutil/opt.c set_string_image_size(s, opt, opt->default_val.str, dst); s 1412 libavutil/opt.c set_string_video_rate(s, opt, opt->default_val.str, dst); s 1415 libavutil/opt.c set_string_binary(s, opt, opt->default_val.str, dst); s 1418 libavutil/opt.c set_string_dict(s, opt, opt->default_val.str, dst); s 1421 libavutil/opt.c av_log(s, AV_LOG_DEBUG, "AVOption type %d of option %s not implemented yet\n", s 389 libavutil/opt.h void av_opt_set_defaults(void *s); s 400 libavutil/opt.h void av_opt_set_defaults2(void *s, int mask, int flags); s 130 libavutil/pca.c double t,c,s,tau,theta, h; s 147 libavutil/pca.c s=t*c; s 148 libavutil/pca.c tau=s/(1.0+c); s 155 libavutil/pca.c a[j + i*n]=g-s*(h+g*tau);\ s 156 libavutil/pca.c a[l + k*n]=h+s*(g-h*tau); } s 138 libavutil/pixdesc.c unsigned s = (src_element_size == 4 ? *src32++ : *src16++); s 141 libavutil/pixdesc.c uint16_t val = AV_RB16(p) | (s << shift); s 144 libavutil/pixdesc.c uint16_t val = AV_RL16(p) | (s << shift); s 149 libavutil/pixdesc.c uint32_t val = AV_RB32(p) | (s << shift); s 152 libavutil/pixdesc.c uint32_t val = AV_RL32(p) | (s << shift); s 2507 libavutil/pixdesc.c int s = c == 1 || c == 2 ? 0 : log2_pixels; s 2508 libavutil/pixdesc.c bits += pixdesc->comp[c].depth << s; s 2522 libavutil/pixdesc.c int s = c == 1 || c == 2 ? 0 : log2_pixels; s 2523 libavutil/pixdesc.c steps[comp->plane] = comp->step << s; s 28 libavutil/ppc/float_dsp_altivec.c vec_f d0, d1, s, zero = (vec_f)vec_splat_u32(0); s 31 libavutil/ppc/float_dsp_altivec.c s = vec_ld( 0, src1 + i); s 33 libavutil/ppc/float_dsp_altivec.c d0 = vec_madd(d0, s, zero); s 65 libavutil/softfloat.h int s=ONE_BITS - av_log2(FFABS(a.mant)); s 66 libavutil/softfloat.h a.exp -= s; s 67 libavutil/softfloat.h a.mant <<= s; s 240 libavutil/softfloat.h static av_unused void av_sincos_sf(int a, int *s, int *c) s 286 libavutil/softfloat.h *s = (int)(((int64_t)cv * st + (int64_t)sv * ct + 0x20000000) >> 30); s 41 libavutil/tests/lzo.c size_t s = fread(orig, 1, MAXSZ, in); s 48 libavutil/tests/lzo.c lzo1x_1_compress(orig, s, comp, &clen, tmp); s 50 libavutil/tests/lzo.c lzo1x_1_11_compress(orig, s, comp, &clen, tmp); s 52 libavutil/tests/lzo.c lzo1x_1_12_compress(orig, s, comp, &clen, tmp); s 54 libavutil/tests/lzo.c lzo1x_1_15_compress(orig, s, comp, &clen, tmp); s 56 libavutil/tests/lzo.c lzo1x_999_compress(orig, s, comp, &clen, tmp); s 70 libavutil/tests/lzo.c if (memcmp(orig, decomp, s)) s 145 libavutil/tests/softfloat.c int s, c; s 148 libavutil/tests/softfloat.c av_sincos_sf(i*(1ULL<<32)/36/4, &s, &c); s 149 libavutil/tests/softfloat.c errs = (double)s/ (1<<30) - sin(i*M_PI/36); s 152 libavutil/tests/softfloat.c printf("sincos FAIL %d %f %f %f %f\n", i, (float)s/ (1<<30), (float)c/ (1<<30), sin(i*M_PI/36), cos(i*M_PI/36)); s 139 libavutil/twofish.c uint8_t s[4], m[8]; s 142 libavutil/twofish.c s[0] = gfmul(0x01, m[0]) ^ gfmul(0xa4, m[1]) ^ gfmul(0x55, m[2]) ^ gfmul(0x87, m[3]) ^ gfmul(0x5a, m[4]) ^ gfmul(0x58, m[5]) ^ gfmul(0xdb, m[6]) ^ gfmul(0x9e, m[7]); s 143 libavutil/twofish.c s[1] = gfmul(0xa4, m[0]) ^ gfmul(0x56, m[1]) ^ gfmul(0x82, m[2]) ^ gfmul(0xf3, m[3]) ^ gfmul(0x1e, m[4]) ^ gfmul(0xc6, m[5]) ^ gfmul(0x68, m[6]) ^ gfmul(0xe5, m[7]); s 144 libavutil/twofish.c s[2] = gfmul(0x02, m[0]) ^ gfmul(0xa1, m[1]) ^ gfmul(0xfc, m[2]) ^ gfmul(0xc1, m[3]) ^ gfmul(0x47, m[4]) ^ gfmul(0xae, m[5]) ^ gfmul(0x3d, m[6]) ^ gfmul(0x19, m[7]); s 145 libavutil/twofish.c s[3] = gfmul(0xa4, m[0]) ^ gfmul(0x55, m[1]) ^ gfmul(0x87, m[2]) ^ gfmul(0x5a, m[3]) ^ gfmul(0x58, m[4]) ^ gfmul(0xdb, m[5]) ^ gfmul(0x9e, m[6]) ^ gfmul(0x03, m[7]); s 146 libavutil/twofish.c return AV_RL32(s); s 44 libavutil/tx.c int ff_tx_gen_compound_mapping(AVTXContext *s) s 47 libavutil/tx.c const int n = s->n; s 48 libavutil/tx.c const int m = s->m; s 49 libavutil/tx.c const int inv = s->inv; s 53 libavutil/tx.c const int mdct = ff_tx_type_is_mdct(s->type); s 55 libavutil/tx.c if (!(s->pfatab = av_malloc(2*len*sizeof(*s->pfatab)))) s 58 libavutil/tx.c in_map = s->pfatab; s 59 libavutil/tx.c out_map = s->pfatab + n*m; s 94 libavutil/tx.c int ff_tx_gen_ptwo_revtab(AVTXContext *s) s 96 libavutil/tx.c const int m = s->m, inv = s->inv; s 98 libavutil/tx.c if (!(s->revtab = av_malloc(m*sizeof(*s->revtab)))) s 104 libavutil/tx.c s->revtab[k] = i; s 127 libavutil/tx.c AVTXContext *s = av_mallocz(sizeof(*s)); s 128 libavutil/tx.c if (!s) s 134 libavutil/tx.c if ((err = ff_tx_init_mdct_fft_float(s, tx, type, inv, len, scale, flags))) s 139 libavutil/tx.c if ((err = ff_tx_init_mdct_fft_double(s, tx, type, inv, len, scale, flags))) s 144 libavutil/tx.c if ((err = ff_tx_init_mdct_fft_int32(s, tx, type, inv, len, scale, flags))) s 152 libavutil/tx.c *ctx = s; s 157 libavutil/tx.c av_tx_uninit(&s); s 92 libavutil/tx.h typedef void (*av_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride); s 119 libavutil/tx_priv.h int ff_tx_gen_compound_mapping(AVTXContext *s); s 120 libavutil/tx_priv.h int ff_tx_gen_ptwo_revtab(AVTXContext *s); s 139 libavutil/tx_priv.h int ff_tx_init_mdct_fft_float(AVTXContext *s, av_tx_fn *tx, s 142 libavutil/tx_priv.h int ff_tx_init_mdct_fft_double(AVTXContext *s, av_tx_fn *tx, s 145 libavutil/tx_priv.h int ff_tx_init_mdct_fft_int32(AVTXContext *s, av_tx_fn *tx, s 363 libavutil/tx_template.c static void compound_fft_##N##xM(AVTXContext *s, void *_out, \ s 366 libavutil/tx_template.c const int m = s->m, *in_map = s->pfatab, *out_map = in_map + N*m; \ s 375 libavutil/tx_template.c fft##N(s->tmp + s->revtab[i], fft##N##in, m); \ s 379 libavutil/tx_template.c fftp(s->tmp + m*i); \ s 382 libavutil/tx_template.c out[i] = s->tmp[out_map[i]]; \ s 389 libavutil/tx_template.c static void monolithic_fft(AVTXContext *s, void *_out, void *_in, s 394 libavutil/tx_template.c int m = s->m, mb = av_log2(m); s 396 libavutil/tx_template.c out[s->revtab[i]] = in[i]; s 401 libavutil/tx_template.c static void compound_imdct_##N##xM(AVTXContext *s, void *_dst, void *_src, \ s 405 libavutil/tx_template.c FFTComplex *z = _dst, *exp = s->exptab; \ s 406 libavutil/tx_template.c const int m = s->m, len8 = N*m >> 1; \ s 407 libavutil/tx_template.c const int *in_map = s->pfatab, *out_map = in_map + N*m; \ s 421 libavutil/tx_template.c fft##N(s->tmp + s->revtab[i], fft##N##in, m); \ s 425 libavutil/tx_template.c fftp(s->tmp + m*i); \ s 430 libavutil/tx_template.c FFTComplex src1 = { s->tmp[s1].im, s->tmp[s1].re }; \ s 431 libavutil/tx_template.c FFTComplex src0 = { s->tmp[s0].im, s->tmp[s0].re }; \ s 443 libavutil/tx_template.c static void compound_mdct_##N##xM(AVTXContext *s, void *_dst, void *_src, \ s 447 libavutil/tx_template.c FFTComplex *exp = s->exptab, tmp, fft##N##in[N]; \ s 448 libavutil/tx_template.c const int m = s->m, len4 = N*m, len3 = len4 * 3, len8 = len4 >> 1; \ s 449 libavutil/tx_template.c const int *in_map = s->pfatab, *out_map = in_map + N*m; \ s 467 libavutil/tx_template.c fft##N(s->tmp + s->revtab[i], fft##N##in, m); \ s 471 libavutil/tx_template.c fftp(s->tmp + m*i); \ s 476 libavutil/tx_template.c FFTComplex src1 = { s->tmp[s1].re, s->tmp[s1].im }; \ s 477 libavutil/tx_template.c FFTComplex src0 = { s->tmp[s0].re, s->tmp[s0].im }; \ s 490 libavutil/tx_template.c static void monolithic_imdct(AVTXContext *s, void *_dst, void *_src, s 493 libavutil/tx_template.c FFTComplex *z = _dst, *exp = s->exptab; s 494 libavutil/tx_template.c const int m = s->m, len8 = m >> 1; s 504 libavutil/tx_template.c CMUL3(z[s->revtab[i]], tmp, exp[i]); s 519 libavutil/tx_template.c static void monolithic_mdct(AVTXContext *s, void *_dst, void *_src, s 523 libavutil/tx_template.c FFTComplex *exp = s->exptab, tmp, *z = _dst; s 524 libavutil/tx_template.c const int m = s->m, len4 = m, len3 = len4 * 3, len8 = len4 >> 1; s 538 libavutil/tx_template.c CMUL(z[s->revtab[i]].im, z[s->revtab[i]].re, tmp.re, tmp.im, s 556 libavutil/tx_template.c static int gen_mdct_exptab(AVTXContext *s, int len4, double scale) s 560 libavutil/tx_template.c if (!(s->exptab = av_malloc_array(len4, sizeof(*s->exptab)))) s 566 libavutil/tx_template.c s->exptab[i].re = RESCALE(cos(alpha) * scale); s 567 libavutil/tx_template.c s->exptab[i].im = RESCALE(sin(alpha) * scale); s 573 libavutil/tx_template.c int TX_NAME(ff_tx_init_mdct_fft)(AVTXContext *s, av_tx_fn *tx, s 599 libavutil/tx_template.c s->n = n; s 600 libavutil/tx_template.c s->m = m; s 601 libavutil/tx_template.c s->inv = inv; s 602 libavutil/tx_template.c s->type = type; s 610 libavutil/tx_template.c if ((err = ff_tx_gen_compound_mapping(s))) s 612 libavutil/tx_template.c if (!(s->tmp = av_malloc(n*m*sizeof(*s->tmp)))) s 630 libavutil/tx_template.c ff_tx_gen_ptwo_revtab(s); s 636 libavutil/tx_template.c return gen_mdct_exptab(s, n*m, *((SCALE_TYPE *)scale)); s 33 libavutil/x86/intreadwrite.h static av_always_inline void AV_COPY64(void *d, const void *s) s 38 libavutil/x86/intreadwrite.h : "m" (*(const uint64_t*)s) s 67 libavutil/x86/intreadwrite.h static av_always_inline void AV_COPY128(void *d, const void *s) s 74 libavutil/x86/intreadwrite.h : "m" (*(const struct v*)s) s 1328 libpostproc/postprocess_template.c int s[10]; s 1361 libpostproc/postprocess_template.c s[y] = t; s 1365 libpostproc/postprocess_template.c int t = s[y-1] & s[y] & s[y+1]; s 1367 libpostproc/postprocess_template.c s[y-1]= t; s 1372 libpostproc/postprocess_template.c int t = s[y-1]; s 25 libswresample/aarch64/neontest.c wrap(swr_convert(struct SwrContext *s, uint8_t **out, int out_count, s 28 libswresample/aarch64/neontest.c testneonclobbers(swr_convert, s, out, out_count, in, in_count); s 25 libswresample/arm/neontest.c wrap(swr_convert(struct SwrContext *s, uint8_t **out, int out_count, s 28 libswresample/arm/neontest.c testneonclobbers(swr_convert, s, out, out_count, in, in_count); s 26 libswresample/dither.c int swri_get_dither(SwrContext *s, void *dst, int len, unsigned seed, enum AVSampleFormat noise_fmt) { s 27 libswresample/dither.c double scale = s->dither.noise_scale; s 39 libswresample/dither.c switch(s->dither.method){ s 42 libswresample/dither.c av_assert0(s->dither.method < SWR_DITHER_NB); s 54 libswresample/dither.c switch(s->dither.method){ s 56 libswresample/dither.c av_assert0(s->dither.method < SWR_DITHER_NB); s 79 libswresample/dither.c av_cold int swri_dither_init(SwrContext *s, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt) s 84 libswresample/dither.c if (s->dither.method > SWR_DITHER_TRIANGULAR_HIGHPASS && s->dither.method <= SWR_DITHER_NS) s 95 libswresample/dither.c if(in_fmt == AV_SAMPLE_FMT_S32 && out_fmt == AV_SAMPLE_FMT_S32 && (s->dither.output_sample_bits&31)) scale = 1; s 100 libswresample/dither.c scale *= s->dither.scale; s 102 libswresample/dither.c if (out_fmt == AV_SAMPLE_FMT_S32 && s->dither.output_sample_bits) s 103 libswresample/dither.c scale *= 1<<(32-s->dither.output_sample_bits); s 106 libswresample/dither.c s->dither.method = 0; s 110 libswresample/dither.c s->dither.ns_pos = 0; s 111 libswresample/dither.c s->dither.noise_scale= scale; s 112 libswresample/dither.c s->dither.ns_scale = scale; s 113 libswresample/dither.c s->dither.ns_scale_1 = scale ? 1/scale : 0; s 114 libswresample/dither.c memset(s->dither.ns_errors, 0, sizeof(s->dither.ns_errors)); s 117 libswresample/dither.c if (llabs(s->out_sample_rate - f->rate)*20 <= f->rate && f->name == s->dither.method) { s 119 libswresample/dither.c s->dither.ns_taps = f->len; s 121 libswresample/dither.c s->dither.ns_coeffs[j] = f->coefs[j]; s 122 libswresample/dither.c s->dither.ns_scale_1 *= 1 - exp(f->gain_cB * M_LN10 * 0.005) * 2 / (1<<(8*av_get_bytes_per_sample(out_fmt))); s 126 libswresample/dither.c if (!filters[i].coefs && s->dither.method > SWR_DITHER_NS) { s 127 libswresample/dither.c av_log(s, AV_LOG_WARNING, "Requested noise shaping dither not available at this sampling rate, using triangular hp dither\n"); s 128 libswresample/dither.c s->dither.method = SWR_DITHER_TRIANGULAR_HIGHPASS; s 43 libswresample/dither_template.c void RENAME(swri_noise_shaping)(SwrContext *s, AudioData *dsts, const AudioData *srcs, const AudioData *noises, int count){ s 44 libswresample/dither_template.c int pos = s->dither.ns_pos; s 46 libswresample/dither_template.c int taps = s->dither.ns_taps; s 47 libswresample/dither_template.c float S = s->dither.ns_scale; s 48 libswresample/dither_template.c float S_1 = s->dither.ns_scale_1; s 51 libswresample/dither_template.c av_assert2((taps&3) != 3 || s->dither.ns_coeffs[taps] == 0); s 54 libswresample/dither_template.c const float *noise = ((const float *)noises->ch[ch]) + s->dither.noise_pos; s 57 libswresample/dither_template.c float *ns_errors = s->dither.ns_errors[ch]; s 58 libswresample/dither_template.c const float *ns_coeffs = s->dither.ns_coeffs; s 59 libswresample/dither_template.c pos = s->dither.ns_pos; s 79 libswresample/dither_template.c s->dither.ns_pos = pos; s 150 libswresample/options.c SwrContext *s= av_mallocz(sizeof(SwrContext)); s 151 libswresample/options.c if(s){ s 152 libswresample/options.c s->av_class= &av_class; s 153 libswresample/options.c av_opt_set_defaults(s); s 155 libswresample/options.c return s; s 64 libswresample/rematrix.c int swr_set_matrix(struct SwrContext *s, const double *matrix, int stride) s 68 libswresample/rematrix.c if (!s || s->in_convert) // s needs to be allocated but not initialized s 70 libswresample/rematrix.c memset(s->matrix, 0, sizeof(s->matrix)); s 71 libswresample/rematrix.c memset(s->matrix_flt, 0, sizeof(s->matrix_flt)); s 72 libswresample/rematrix.c nb_in = (s->user_in_ch_count > 0) ? s->user_in_ch_count : s 73 libswresample/rematrix.c av_get_channel_layout_nb_channels(s->user_in_ch_layout); s 74 libswresample/rematrix.c nb_out = (s->user_out_ch_count > 0) ? s->user_out_ch_count : s 75 libswresample/rematrix.c av_get_channel_layout_nb_channels(s->user_out_ch_layout); s 78 libswresample/rematrix.c s->matrix_flt[out][in] = s->matrix[out][in] = matrix[in]; s 81 libswresample/rematrix.c s->rematrix_custom = 1; s 91 libswresample/rematrix.c static int clean_layout(void *s, int64_t layout){ s 95 libswresample/rematrix.c av_log(s, AV_LOG_VERBOSE, "Treating %s as mono\n", buf); s 356 libswresample/rematrix.c av_cold static int auto_matrix(SwrContext *s) s 361 libswresample/rematrix.c if (s->rematrix_maxval > 0) { s 362 libswresample/rematrix.c maxval = s->rematrix_maxval; s 363 libswresample/rematrix.c } else if ( av_get_packed_sample_fmt(s->out_sample_fmt) < AV_SAMPLE_FMT_FLT s 364 libswresample/rematrix.c || av_get_packed_sample_fmt(s->int_sample_fmt) < AV_SAMPLE_FMT_FLT) { s 369 libswresample/rematrix.c memset(s->matrix, 0, sizeof(s->matrix)); s 370 libswresample/rematrix.c ret = swr_build_matrix(s->in_ch_layout, s->out_ch_layout, s 371 libswresample/rematrix.c s->clev, s->slev, s->lfe_mix_level, s 372 libswresample/rematrix.c maxval, s->rematrix_volume, (double*)s->matrix, s 373 libswresample/rematrix.c s->matrix[1] - s->matrix[0], s->matrix_encoding, s); s 375 libswresample/rematrix.c if (ret >= 0 && s->int_sample_fmt == AV_SAMPLE_FMT_FLTP) { s 377 libswresample/rematrix.c for (i = 0; i < FF_ARRAY_ELEMS(s->matrix[0]); i++) s 378 libswresample/rematrix.c for (j = 0; j < FF_ARRAY_ELEMS(s->matrix[0]); j++) s 379 libswresample/rematrix.c s->matrix_flt[i][j] = s->matrix[i][j]; s 385 libswresample/rematrix.c av_cold int swri_rematrix_init(SwrContext *s){ s 387 libswresample/rematrix.c int nb_in = s->used_ch_count; s 388 libswresample/rematrix.c int nb_out = s->out.ch_count; s 390 libswresample/rematrix.c s->mix_any_f = NULL; s 392 libswresample/rematrix.c if (!s->rematrix_custom) { s 393 libswresample/rematrix.c int r = auto_matrix(s); s 397 libswresample/rematrix.c if (s->midbuf.fmt == AV_SAMPLE_FMT_S16P){ s 399 libswresample/rematrix.c s->native_matrix = av_calloc(nb_in * nb_out, sizeof(int)); s 400 libswresample/rematrix.c s->native_one = av_mallocz(sizeof(int)); s 401 libswresample/rematrix.c if (!s->native_matrix || !s->native_one) s 408 libswresample/rematrix.c double target = s->matrix[i][j] * 32768 + rem; s 409 libswresample/rematrix.c ((int*)s->native_matrix)[i * nb_in + j] = lrintf(target); s 410 libswresample/rematrix.c rem += target - ((int*)s->native_matrix)[i * nb_in + j]; s 411 libswresample/rematrix.c sum += FFABS(((int*)s->native_matrix)[i * nb_in + j]); s 415 libswresample/rematrix.c *((int*)s->native_one) = 32768; s 417 libswresample/rematrix.c s->mix_1_1_f = (mix_1_1_func_type*)copy_s16; s 418 libswresample/rematrix.c s->mix_2_1_f = (mix_2_1_func_type*)sum2_s16; s 419 libswresample/rematrix.c s->mix_any_f = (mix_any_func_type*)get_mix_any_func_s16(s); s 421 libswresample/rematrix.c s->mix_1_1_f = (mix_1_1_func_type*)copy_clip_s16; s 422 libswresample/rematrix.c s->mix_2_1_f = (mix_2_1_func_type*)sum2_clip_s16; s 423 libswresample/rematrix.c s->mix_any_f = (mix_any_func_type*)get_mix_any_func_clip_s16(s); s 425 libswresample/rematrix.c }else if(s->midbuf.fmt == AV_SAMPLE_FMT_FLTP){ s 426 libswresample/rematrix.c s->native_matrix = av_calloc(nb_in * nb_out, sizeof(float)); s 427 libswresample/rematrix.c s->native_one = av_mallocz(sizeof(float)); s 428 libswresample/rematrix.c if (!s->native_matrix || !s->native_one) s 432 libswresample/rematrix.c ((float*)s->native_matrix)[i * nb_in + j] = s->matrix[i][j]; s 433 libswresample/rematrix.c *((float*)s->native_one) = 1.0; s 434 libswresample/rematrix.c s->mix_1_1_f = (mix_1_1_func_type*)copy_float; s 435 libswresample/rematrix.c s->mix_2_1_f = (mix_2_1_func_type*)sum2_float; s 436 libswresample/rematrix.c s->mix_any_f = (mix_any_func_type*)get_mix_any_func_float(s); s 437 libswresample/rematrix.c }else if(s->midbuf.fmt == AV_SAMPLE_FMT_DBLP){ s 438 libswresample/rematrix.c s->native_matrix = av_calloc(nb_in * nb_out, sizeof(double)); s 439 libswresample/rematrix.c s->native_one = av_mallocz(sizeof(double)); s 440 libswresample/rematrix.c if (!s->native_matrix || !s->native_one) s 444 libswresample/rematrix.c ((double*)s->native_matrix)[i * nb_in + j] = s->matrix[i][j]; s 445 libswresample/rematrix.c *((double*)s->native_one) = 1.0; s 446 libswresample/rematrix.c s->mix_1_1_f = (mix_1_1_func_type*)copy_double; s 447 libswresample/rematrix.c s->mix_2_1_f = (mix_2_1_func_type*)sum2_double; s 448 libswresample/rematrix.c s->mix_any_f = (mix_any_func_type*)get_mix_any_func_double(s); s 449 libswresample/rematrix.c }else if(s->midbuf.fmt == AV_SAMPLE_FMT_S32P){ s 450 libswresample/rematrix.c s->native_one = av_mallocz(sizeof(int)); s 451 libswresample/rematrix.c if (!s->native_one) s 453 libswresample/rematrix.c s->native_matrix = av_calloc(nb_in * nb_out, sizeof(int)); s 454 libswresample/rematrix.c if (!s->native_matrix) { s 455 libswresample/rematrix.c av_freep(&s->native_one); s 462 libswresample/rematrix.c double target = s->matrix[i][j] * 32768 + rem; s 463 libswresample/rematrix.c ((int*)s->native_matrix)[i * nb_in + j] = lrintf(target); s 464 libswresample/rematrix.c rem += target - ((int*)s->native_matrix)[i * nb_in + j]; s 467 libswresample/rematrix.c *((int*)s->native_one) = 32768; s 468 libswresample/rematrix.c s->mix_1_1_f = (mix_1_1_func_type*)copy_s32; s 469 libswresample/rematrix.c s->mix_2_1_f = (mix_2_1_func_type*)sum2_s32; s 470 libswresample/rematrix.c s->mix_any_f = (mix_any_func_type*)get_mix_any_func_s32(s); s 477 libswresample/rematrix.c s->matrix32[i][j]= lrintf(s->matrix[i][j] * 32768); s 478 libswresample/rematrix.c if(s->matrix[i][j]) s 479 libswresample/rematrix.c s->matrix_ch[i][++ch_in]= j; s 481 libswresample/rematrix.c s->matrix_ch[i][0]= ch_in; s 485 libswresample/rematrix.c return swri_rematrix_init_x86(s); s 490 libswresample/rematrix.c av_cold void swri_rematrix_free(SwrContext *s){ s 491 libswresample/rematrix.c av_freep(&s->native_matrix); s 492 libswresample/rematrix.c av_freep(&s->native_one); s 493 libswresample/rematrix.c av_freep(&s->native_simd_matrix); s 494 libswresample/rematrix.c av_freep(&s->native_simd_one); s 497 libswresample/rematrix.c int swri_rematrix(SwrContext *s, AudioData *out, AudioData *in, int len, int mustcopy){ s 502 libswresample/rematrix.c if(s->mix_any_f) { s 503 libswresample/rematrix.c s->mix_any_f(out->ch, (const uint8_t **)in->ch, s->native_matrix, len); s 507 libswresample/rematrix.c if(s->mix_2_1_simd || s->mix_1_1_simd){ s 512 libswresample/rematrix.c av_assert0(!s->out_ch_layout || out->ch_count == av_get_channel_layout_nb_channels(s->out_ch_layout)); s 513 libswresample/rematrix.c av_assert0(!s-> in_ch_layout || in ->ch_count == av_get_channel_layout_nb_channels(s-> in_ch_layout)); s 516 libswresample/rematrix.c switch(s->matrix_ch[out_i][0]){ s 519 libswresample/rematrix.c memset(out->ch[out_i], 0, len * av_get_bytes_per_sample(s->int_sample_fmt)); s 522 libswresample/rematrix.c in_i= s->matrix_ch[out_i][1]; s 523 libswresample/rematrix.c if(s->matrix[out_i][in_i]!=1.0){ s 524 libswresample/rematrix.c if(s->mix_1_1_simd && len1) s 525 libswresample/rematrix.c s->mix_1_1_simd(out->ch[out_i] , in->ch[in_i] , s->native_simd_matrix, in->ch_count*out_i + in_i, len1); s 527 libswresample/rematrix.c s->mix_1_1_f (out->ch[out_i]+off, in->ch[in_i]+off, s->native_matrix, in->ch_count*out_i + in_i, len-len1); s 535 libswresample/rematrix.c int in_i1 = s->matrix_ch[out_i][1]; s 536 libswresample/rematrix.c int in_i2 = s->matrix_ch[out_i][2]; s 537 libswresample/rematrix.c if(s->mix_2_1_simd && len1) s 538 libswresample/rematrix.c s->mix_2_1_simd(out->ch[out_i] , in->ch[in_i1] , in->ch[in_i2] , s->native_simd_matrix, in->ch_count*out_i + in_i1, in->ch_count*out_i + in_i2, len1); s 540 libswresample/rematrix.c s->mix_2_1_f (out->ch[out_i] , in->ch[in_i1] , in->ch[in_i2] , s->native_matrix, in->ch_count*out_i + in_i1, in->ch_count*out_i + in_i2, len1); s 542 libswresample/rematrix.c s->mix_2_1_f (out->ch[out_i]+off, in->ch[in_i1]+off, in->ch[in_i2]+off, s->native_matrix, in->ch_count*out_i + in_i1, in->ch_count*out_i + in_i2, len-len1); s 545 libswresample/rematrix.c if(s->int_sample_fmt == AV_SAMPLE_FMT_FLTP){ s 548 libswresample/rematrix.c for(j=0; j<s->matrix_ch[out_i][0]; j++){ s 549 libswresample/rematrix.c in_i= s->matrix_ch[out_i][1+j]; s 550 libswresample/rematrix.c v+= ((float*)in->ch[in_i])[i] * s->matrix_flt[out_i][in_i]; s 554 libswresample/rematrix.c }else if(s->int_sample_fmt == AV_SAMPLE_FMT_DBLP){ s 557 libswresample/rematrix.c for(j=0; j<s->matrix_ch[out_i][0]; j++){ s 558 libswresample/rematrix.c in_i= s->matrix_ch[out_i][1+j]; s 559 libswresample/rematrix.c v+= ((double*)in->ch[in_i])[i] * s->matrix[out_i][in_i]; s 566 libswresample/rematrix.c for(j=0; j<s->matrix_ch[out_i][0]; j++){ s 567 libswresample/rematrix.c in_i= s->matrix_ch[out_i][1+j]; s 568 libswresample/rematrix.c v+= ((int16_t*)in->ch[in_i])[i] * s->matrix32[out_i][in_i]; s 90 libswresample/rematrix_template.c static RENAME(mix_any_func_type) *RENAME(get_mix_any_func)(SwrContext *s){ s 91 libswresample/rematrix_template.c if( s->out_ch_layout == AV_CH_LAYOUT_STEREO && (s->in_ch_layout == AV_CH_LAYOUT_5POINT1 || s->in_ch_layout == AV_CH_LAYOUT_5POINT1_BACK) s 92 libswresample/rematrix_template.c && s->matrix[0][2] == s->matrix[1][2] && s->matrix[0][3] == s->matrix[1][3] s 93 libswresample/rematrix_template.c && !s->matrix[0][1] && !s->matrix[0][5] && !s->matrix[1][0] && !s->matrix[1][4] s 97 libswresample/rematrix_template.c if( s->out_ch_layout == AV_CH_LAYOUT_STEREO && s->in_ch_layout == AV_CH_LAYOUT_7POINT1 s 98 libswresample/rematrix_template.c && s->matrix[0][2] == s->matrix[1][2] && s->matrix[0][3] == s->matrix[1][3] s 99 libswresample/rematrix_template.c && !s->matrix[0][1] && !s->matrix[0][5] && !s->matrix[1][0] && !s->matrix[1][4] s 100 libswresample/rematrix_template.c && !s->matrix[0][7] && !s->matrix[1][6] s 148 libswresample/resample.c double x, y, w, t, s; s 169 libswresample/resample.c s = sin_lut[ph]; s 174 libswresample/resample.c y = s / x; s 198 libswresample/resample.c s = -s; s 517 libswresample/resample.c static int64_t get_delay(struct SwrContext *s, int64_t base){ s 518 libswresample/resample.c ResampleContext *c = s->resample; s 519 libswresample/resample.c int64_t num = s->in_buffer_count - (c->filter_length-1)/2; s 524 libswresample/resample.c return av_rescale(num, base, s->in_sample_rate*(int64_t)c->src_incr * c->phase_count); s 527 libswresample/resample.c static int64_t get_out_samples(struct SwrContext *s, int in_samples) { s 528 libswresample/resample.c ResampleContext *c = s->resample; s 532 libswresample/resample.c int64_t num = s->in_buffer_count + 2LL + in_samples; s 535 libswresample/resample.c num = av_rescale_rnd(num, s->out_sample_rate, ((int64_t)s->in_sample_rate) * c->phase_count, AV_ROUND_UP) + 2; s 546 libswresample/resample.c static int resample_flush(struct SwrContext *s) { s 547 libswresample/resample.c ResampleContext *c = s->resample; s 548 libswresample/resample.c AudioData *a= &s->in_buffer; s 550 libswresample/resample.c int reflection = (FFMIN(s->in_buffer_count, c->filter_length) + 1) / 2; s 552 libswresample/resample.c if((ret = swri_realloc_audio(a, s->in_buffer_index + s->in_buffer_count + reflection)) < 0) s 557 libswresample/resample.c memcpy(a->ch[i] + (s->in_buffer_index+s->in_buffer_count+j )*a->bps, s 558 libswresample/resample.c a->ch[i] + (s->in_buffer_index+s->in_buffer_count-j-1)*a->bps, a->bps); s 561 libswresample/resample.c s->in_buffer_count += reflection; s 69 libswresample/soxr_resample.c static int flush(struct SwrContext *s){ s 70 libswresample/soxr_resample.c s->delayed_samples_fixup = soxr_delay((soxr_t)s->resample); s 72 libswresample/soxr_resample.c soxr_process((soxr_t)s->resample, NULL, 0, NULL, NULL, 0, NULL); s 77 libswresample/soxr_resample.c soxr_process((soxr_t)s->resample, &f, 0, &idone, &f, 0, &odone); s 78 libswresample/soxr_resample.c s->delayed_samples_fixup -= soxr_delay((soxr_t)s->resample); s 99 libswresample/soxr_resample.c static int64_t get_delay(struct SwrContext *s, int64_t base){ s 100 libswresample/soxr_resample.c double delayed_samples = soxr_delay((soxr_t)s->resample); s 103 libswresample/soxr_resample.c if (s->flushed) s 104 libswresample/soxr_resample.c delayed_samples += s->delayed_samples_fixup; s 106 libswresample/soxr_resample.c delay_s = delayed_samples / s->out_sample_rate; s 116 libswresample/soxr_resample.c static int64_t get_out_samples(struct SwrContext *s, int in_samples){ s 117 libswresample/soxr_resample.c double out_samples = (double)s->out_sample_rate / s->in_sample_rate * in_samples; s 118 libswresample/soxr_resample.c double delayed_samples = soxr_delay((soxr_t)s->resample); s 120 libswresample/soxr_resample.c if (s->flushed) s 121 libswresample/soxr_resample.c delayed_samples += s->delayed_samples_fixup; s 52 libswresample/swresample.c int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map){ s 53 libswresample/swresample.c if(!s || s->in_convert) // s needs to be allocated but not initialized s 55 libswresample/swresample.c s->channel_map = channel_map; s 59 libswresample/swresample.c struct SwrContext *swr_alloc_set_opts(struct SwrContext *s, s 63 libswresample/swresample.c if(!s) s= swr_alloc(); s 64 libswresample/swresample.c if(!s) return NULL; s 66 libswresample/swresample.c s->log_level_offset= log_offset; s 67 libswresample/swresample.c s->log_ctx= log_ctx; s 69 libswresample/swresample.c if (av_opt_set_int(s, "ocl", out_ch_layout, 0) < 0) s 72 libswresample/swresample.c if (av_opt_set_int(s, "osf", out_sample_fmt, 0) < 0) s 75 libswresample/swresample.c if (av_opt_set_int(s, "osr", out_sample_rate, 0) < 0) s 78 libswresample/swresample.c if (av_opt_set_int(s, "icl", in_ch_layout, 0) < 0) s 81 libswresample/swresample.c if (av_opt_set_int(s, "isf", in_sample_fmt, 0) < 0) s 84 libswresample/swresample.c if (av_opt_set_int(s, "isr", in_sample_rate, 0) < 0) s 87 libswresample/swresample.c if (av_opt_set_int(s, "ich", av_get_channel_layout_nb_channels(s-> user_in_ch_layout), 0) < 0) s 90 libswresample/swresample.c if (av_opt_set_int(s, "och", av_get_channel_layout_nb_channels(s->user_out_ch_layout), 0) < 0) s 93 libswresample/swresample.c av_opt_set_int(s, "uch", 0, 0); s 94 libswresample/swresample.c return s; s 96 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Failed to set option\n"); s 97 libswresample/swresample.c swr_free(&s); s 114 libswresample/swresample.c static void clear_context(SwrContext *s){ s 115 libswresample/swresample.c s->in_buffer_index= 0; s 116 libswresample/swresample.c s->in_buffer_count= 0; s 117 libswresample/swresample.c s->resample_in_constraint= 0; s 118 libswresample/swresample.c memset(s->in.ch, 0, sizeof(s->in.ch)); s 119 libswresample/swresample.c memset(s->out.ch, 0, sizeof(s->out.ch)); s 120 libswresample/swresample.c free_temp(&s->postin); s 121 libswresample/swresample.c free_temp(&s->midbuf); s 122 libswresample/swresample.c free_temp(&s->preout); s 123 libswresample/swresample.c free_temp(&s->in_buffer); s 124 libswresample/swresample.c free_temp(&s->silence); s 125 libswresample/swresample.c free_temp(&s->drop_temp); s 126 libswresample/swresample.c free_temp(&s->dither.noise); s 127 libswresample/swresample.c free_temp(&s->dither.temp); s 128 libswresample/swresample.c swri_audio_convert_free(&s-> in_convert); s 129 libswresample/swresample.c swri_audio_convert_free(&s->out_convert); s 130 libswresample/swresample.c swri_audio_convert_free(&s->full_convert); s 131 libswresample/swresample.c swri_rematrix_free(s); s 133 libswresample/swresample.c s->delayed_samples_fixup = 0; s 134 libswresample/swresample.c s->flushed = 0; s 138 libswresample/swresample.c SwrContext *s= *ss; s 139 libswresample/swresample.c if(s){ s 140 libswresample/swresample.c clear_context(s); s 141 libswresample/swresample.c if (s->resampler) s 142 libswresample/swresample.c s->resampler->free(&s->resample); s 148 libswresample/swresample.c av_cold void swr_close(SwrContext *s){ s 149 libswresample/swresample.c clear_context(s); s 152 libswresample/swresample.c av_cold int swr_init(struct SwrContext *s){ s 156 libswresample/swresample.c clear_context(s); s 158 libswresample/swresample.c if(s-> in_sample_fmt >= AV_SAMPLE_FMT_NB){ s 159 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Requested input sample format %d is invalid\n", s->in_sample_fmt); s 162 libswresample/swresample.c if(s->out_sample_fmt >= AV_SAMPLE_FMT_NB){ s 163 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Requested output sample format %d is invalid\n", s->out_sample_fmt); s 167 libswresample/swresample.c if(s-> in_sample_rate <= 0){ s 168 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Requested input sample rate %d is invalid\n", s->in_sample_rate); s 171 libswresample/swresample.c if(s->out_sample_rate <= 0){ s 172 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Requested output sample rate %d is invalid\n", s->out_sample_rate); s 175 libswresample/swresample.c s->out.ch_count = s-> user_out_ch_count; s 176 libswresample/swresample.c s-> in.ch_count = s-> user_in_ch_count; s 177 libswresample/swresample.c s->used_ch_count = s->user_used_ch_count; s 179 libswresample/swresample.c s-> in_ch_layout = s-> user_in_ch_layout; s 180 libswresample/swresample.c s->out_ch_layout = s->user_out_ch_layout; s 182 libswresample/swresample.c s->int_sample_fmt= s->user_int_sample_fmt; s 184 libswresample/swresample.c s->dither.method = s->user_dither_method; s 186 libswresample/swresample.c if(av_get_channel_layout_nb_channels(s-> in_ch_layout) > SWR_CH_MAX) { s 187 libswresample/swresample.c av_log(s, AV_LOG_WARNING, "Input channel layout 0x%"PRIx64" is invalid or unsupported.\n", s-> in_ch_layout); s 188 libswresample/swresample.c s->in_ch_layout = 0; s 191 libswresample/swresample.c if(av_get_channel_layout_nb_channels(s->out_ch_layout) > SWR_CH_MAX) { s 192 libswresample/swresample.c av_log(s, AV_LOG_WARNING, "Output channel layout 0x%"PRIx64" is invalid or unsupported.\n", s->out_ch_layout); s 193 libswresample/swresample.c s->out_ch_layout = 0; s 196 libswresample/swresample.c switch(s->engine){ s 198 libswresample/swresample.c case SWR_ENGINE_SOXR: s->resampler = &swri_soxr_resampler; break; s 200 libswresample/swresample.c case SWR_ENGINE_SWR : s->resampler = &swri_resampler; break; s 202 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Requested resampling engine is unavailable\n"); s 206 libswresample/swresample.c if(!s->used_ch_count) s 207 libswresample/swresample.c s->used_ch_count= s->in.ch_count; s 209 libswresample/swresample.c if(s->used_ch_count && s-> in_ch_layout && s->used_ch_count != av_get_channel_layout_nb_channels(s-> in_ch_layout)){ s 210 libswresample/swresample.c av_log(s, AV_LOG_WARNING, "Input channel layout has a different number of channels than the number of used channels, ignoring layout\n"); s 211 libswresample/swresample.c s-> in_ch_layout= 0; s 214 libswresample/swresample.c if(!s-> in_ch_layout) s 215 libswresample/swresample.c s-> in_ch_layout= av_get_default_channel_layout(s->used_ch_count); s 216 libswresample/swresample.c if(!s->out_ch_layout) s 217 libswresample/swresample.c s->out_ch_layout= av_get_default_channel_layout(s->out.ch_count); s 219 libswresample/swresample.c s->rematrix= s->out_ch_layout !=s->in_ch_layout || s->rematrix_volume!=1.0 || s 220 libswresample/swresample.c s->rematrix_custom; s 222 libswresample/swresample.c if(s->int_sample_fmt == AV_SAMPLE_FMT_NONE){ s 223 libswresample/swresample.c if( av_get_bytes_per_sample(s-> in_sample_fmt) <= 2 s 224 libswresample/swresample.c && av_get_bytes_per_sample(s->out_sample_fmt) <= 2){ s 225 libswresample/swresample.c s->int_sample_fmt= AV_SAMPLE_FMT_S16P; s 226 libswresample/swresample.c }else if( av_get_bytes_per_sample(s-> in_sample_fmt) <= 2 s 227 libswresample/swresample.c && !s->rematrix s 228 libswresample/swresample.c && s->out_sample_rate==s->in_sample_rate s 229 libswresample/swresample.c && !(s->flags & SWR_FLAG_RESAMPLE)){ s 230 libswresample/swresample.c s->int_sample_fmt= AV_SAMPLE_FMT_S16P; s 231 libswresample/swresample.c }else if( av_get_planar_sample_fmt(s-> in_sample_fmt) == AV_SAMPLE_FMT_S32P s 232 libswresample/swresample.c && av_get_planar_sample_fmt(s->out_sample_fmt) == AV_SAMPLE_FMT_S32P s 233 libswresample/swresample.c && !s->rematrix s 234 libswresample/swresample.c && s->out_sample_rate == s->in_sample_rate s 235 libswresample/swresample.c && !(s->flags & SWR_FLAG_RESAMPLE) s 236 libswresample/swresample.c && s->engine != SWR_ENGINE_SOXR){ s 237 libswresample/swresample.c s->int_sample_fmt= AV_SAMPLE_FMT_S32P; s 238 libswresample/swresample.c }else if(av_get_bytes_per_sample(s->in_sample_fmt) <= 4){ s 239 libswresample/swresample.c s->int_sample_fmt= AV_SAMPLE_FMT_FLTP; s 241 libswresample/swresample.c s->int_sample_fmt= AV_SAMPLE_FMT_DBLP; s 244 libswresample/swresample.c av_log(s, AV_LOG_DEBUG, "Using %s internally between filters\n", av_get_sample_fmt_name(s->int_sample_fmt)); s 246 libswresample/swresample.c if( s->int_sample_fmt != AV_SAMPLE_FMT_S16P s 247 libswresample/swresample.c &&s->int_sample_fmt != AV_SAMPLE_FMT_S32P s 248 libswresample/swresample.c &&s->int_sample_fmt != AV_SAMPLE_FMT_S64P s 249 libswresample/swresample.c &&s->int_sample_fmt != AV_SAMPLE_FMT_FLTP s 250 libswresample/swresample.c &&s->int_sample_fmt != AV_SAMPLE_FMT_DBLP){ s 251 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Requested sample format %s is not supported internally, s16p/s32p/s64p/fltp/dblp are supported\n", av_get_sample_fmt_name(s->int_sample_fmt)); s 255 libswresample/swresample.c set_audiodata_fmt(&s-> in, s-> in_sample_fmt); s 256 libswresample/swresample.c set_audiodata_fmt(&s->out, s->out_sample_fmt); s 258 libswresample/swresample.c if (s->firstpts_in_samples != AV_NOPTS_VALUE) { s 259 libswresample/swresample.c if (!s->async && s->min_compensation >= FLT_MAX/2) s 260 libswresample/swresample.c s->async = 1; s 261 libswresample/swresample.c s->firstpts = s 262 libswresample/swresample.c s->outpts = s->firstpts_in_samples * s->out_sample_rate; s 264 libswresample/swresample.c s->firstpts = AV_NOPTS_VALUE; s 266 libswresample/swresample.c if (s->async) { s 267 libswresample/swresample.c if (s->min_compensation >= FLT_MAX/2) s 268 libswresample/swresample.c s->min_compensation = 0.001; s 269 libswresample/swresample.c if (s->async > 1.0001) { s 270 libswresample/swresample.c s->max_soft_compensation = s->async / (double) s->in_sample_rate; s 274 libswresample/swresample.c if (s->out_sample_rate!=s->in_sample_rate || (s->flags & SWR_FLAG_RESAMPLE)){ s 275 libswresample/swresample.c s->resample = s->resampler->init(s->resample, s->out_sample_rate, s->in_sample_rate, s->filter_size, s->phase_shift, s->linear_interp, s->cutoff, s->int_sample_fmt, s->filter_type, s->kaiser_beta, s->precision, s->cheby, s->exact_rational); s 276 libswresample/swresample.c if (!s->resample) { s 277 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Failed to initialize resampler\n"); s 281 libswresample/swresample.c s->resampler->free(&s->resample); s 282 libswresample/swresample.c if( s->int_sample_fmt != AV_SAMPLE_FMT_S16P s 283 libswresample/swresample.c && s->int_sample_fmt != AV_SAMPLE_FMT_S32P s 284 libswresample/swresample.c && s->int_sample_fmt != AV_SAMPLE_FMT_FLTP s 285 libswresample/swresample.c && s->int_sample_fmt != AV_SAMPLE_FMT_DBLP s 286 libswresample/swresample.c && s->resample){ s 287 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Resampling only supported with internal s16p/s32p/fltp/dblp\n"); s 293 libswresample/swresample.c if(!s-> in.ch_count) s 294 libswresample/swresample.c s-> in.ch_count= av_get_channel_layout_nb_channels(s-> in_ch_layout); s 295 libswresample/swresample.c if(!s->used_ch_count) s 296 libswresample/swresample.c s->used_ch_count= s->in.ch_count; s 297 libswresample/swresample.c if(!s->out.ch_count) s 298 libswresample/swresample.c s->out.ch_count= av_get_channel_layout_nb_channels(s->out_ch_layout); s 300 libswresample/swresample.c if(!s-> in.ch_count){ s 301 libswresample/swresample.c av_assert0(!s->in_ch_layout); s 302 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Input channel count and layout are unset\n"); s 307 libswresample/swresample.c av_get_channel_layout_string(l1, sizeof(l1), s-> in.ch_count, s-> in_ch_layout); s 308 libswresample/swresample.c av_get_channel_layout_string(l2, sizeof(l2), s->out.ch_count, s->out_ch_layout); s 309 libswresample/swresample.c if (s->out_ch_layout && s->out.ch_count != av_get_channel_layout_nb_channels(s->out_ch_layout)) { s 310 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Output channel layout %s mismatches specified channel count %d\n", l2, s->out.ch_count); s 314 libswresample/swresample.c if (s->in_ch_layout && s->used_ch_count != av_get_channel_layout_nb_channels(s->in_ch_layout)) { s 315 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Input channel layout %s mismatches specified channel count %d\n", l1, s->used_ch_count); s 320 libswresample/swresample.c if ((!s->out_ch_layout || !s->in_ch_layout) && s->used_ch_count != s->out.ch_count && !s->rematrix_custom) { s 321 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Rematrix is needed between %s and %s " s 327 libswresample/swresample.c av_assert0(s->used_ch_count); s 328 libswresample/swresample.c av_assert0(s->out.ch_count); s 329 libswresample/swresample.c s->resample_first= RSC*s->out.ch_count/s->used_ch_count - RSC < s->out_sample_rate/(float)s-> in_sample_rate - 1.0; s 331 libswresample/swresample.c s->in_buffer= s->in; s 332 libswresample/swresample.c s->silence = s->in; s 333 libswresample/swresample.c s->drop_temp= s->out; s 335 libswresample/swresample.c if ((ret = swri_dither_init(s, s->out_sample_fmt, s->int_sample_fmt)) < 0) s 338 libswresample/swresample.c if(!s->resample && !s->rematrix && !s->channel_map && !s->dither.method){ s 339 libswresample/swresample.c s->full_convert = swri_audio_convert_alloc(s->out_sample_fmt, s 340 libswresample/swresample.c s-> in_sample_fmt, s-> in.ch_count, NULL, 0); s 344 libswresample/swresample.c s->in_convert = swri_audio_convert_alloc(s->int_sample_fmt, s 345 libswresample/swresample.c s-> in_sample_fmt, s->used_ch_count, s->channel_map, 0); s 346 libswresample/swresample.c s->out_convert= swri_audio_convert_alloc(s->out_sample_fmt, s 347 libswresample/swresample.c s->int_sample_fmt, s->out.ch_count, NULL, 0); s 349 libswresample/swresample.c if (!s->in_convert || !s->out_convert) { s 354 libswresample/swresample.c s->postin= s->in; s 355 libswresample/swresample.c s->preout= s->out; s 356 libswresample/swresample.c s->midbuf= s->in; s 358 libswresample/swresample.c if(s->channel_map){ s 359 libswresample/swresample.c s->postin.ch_count= s 360 libswresample/swresample.c s->midbuf.ch_count= s->used_ch_count; s 361 libswresample/swresample.c if(s->resample) s 362 libswresample/swresample.c s->in_buffer.ch_count= s->used_ch_count; s 364 libswresample/swresample.c if(!s->resample_first){ s 365 libswresample/swresample.c s->midbuf.ch_count= s->out.ch_count; s 366 libswresample/swresample.c if(s->resample) s 367 libswresample/swresample.c s->in_buffer.ch_count = s->out.ch_count; s 370 libswresample/swresample.c set_audiodata_fmt(&s->postin, s->int_sample_fmt); s 371 libswresample/swresample.c set_audiodata_fmt(&s->midbuf, s->int_sample_fmt); s 372 libswresample/swresample.c set_audiodata_fmt(&s->preout, s->int_sample_fmt); s 374 libswresample/swresample.c if(s->resample){ s 375 libswresample/swresample.c set_audiodata_fmt(&s->in_buffer, s->int_sample_fmt); s 378 libswresample/swresample.c av_assert0(!s->preout.count); s 379 libswresample/swresample.c s->dither.noise = s->preout; s 380 libswresample/swresample.c s->dither.temp = s->preout; s 381 libswresample/swresample.c if (s->dither.method > SWR_DITHER_NS) { s 382 libswresample/swresample.c s->dither.noise.bps = 4; s 383 libswresample/swresample.c s->dither.noise.fmt = AV_SAMPLE_FMT_FLTP; s 384 libswresample/swresample.c s->dither.noise_scale = 1; s 387 libswresample/swresample.c if(s->rematrix || s->dither.method) { s 388 libswresample/swresample.c ret = swri_rematrix_init(s); s 395 libswresample/swresample.c swr_close(s); s 487 libswresample/swresample.c static int resample(SwrContext *s, AudioData *out_param, int out_count, s 492 libswresample/swresample.c int padless = ARCH_X86 && s->engine == SWR_ENGINE_SWR ? 7 : 0; s 494 libswresample/swresample.c av_assert1(s->in_buffer.ch_count == in_param->ch_count); s 495 libswresample/swresample.c av_assert1(s->in_buffer.planar == in_param->planar); s 496 libswresample/swresample.c av_assert1(s->in_buffer.fmt == in_param->fmt); s 501 libswresample/swresample.c border = s->resampler->invert_initial_buffer(s->resample, &s->in_buffer, s 502 libswresample/swresample.c &in, in_count, &s->in_buffer_index, &s->in_buffer_count); s 510 libswresample/swresample.c s->resample_in_constraint = 0; s 515 libswresample/swresample.c if(!s->resample_in_constraint && s->in_buffer_count){ s 516 libswresample/swresample.c buf_set(&tmp, &s->in_buffer, s->in_buffer_index); s 517 libswresample/swresample.c ret= s->resampler->multiple_resample(s->resample, &out, out_count, &tmp, s->in_buffer_count, &consumed); s 521 libswresample/swresample.c s->in_buffer_count -= consumed; s 522 libswresample/swresample.c s->in_buffer_index += consumed; s 526 libswresample/swresample.c if(s->in_buffer_count <= border){ s 527 libswresample/swresample.c buf_set(&in, &in, -s->in_buffer_count); s 528 libswresample/swresample.c in_count += s->in_buffer_count; s 529 libswresample/swresample.c s->in_buffer_count=0; s 530 libswresample/swresample.c s->in_buffer_index=0; s 535 libswresample/swresample.c if((s->flushed || in_count > padless) && !s->in_buffer_count){ s 536 libswresample/swresample.c s->in_buffer_index=0; s 537 libswresample/swresample.c ret= s->resampler->multiple_resample(s->resample, &out, out_count, &in, FFMAX(in_count-padless, 0), &consumed); s 546 libswresample/swresample.c size= s->in_buffer_index + s->in_buffer_count + in_count; s 547 libswresample/swresample.c if( size > s->in_buffer.count s 548 libswresample/swresample.c && s->in_buffer_count + in_count <= s->in_buffer_index){ s 549 libswresample/swresample.c buf_set(&tmp, &s->in_buffer, s->in_buffer_index); s 550 libswresample/swresample.c copy(&s->in_buffer, &tmp, s->in_buffer_count); s 551 libswresample/swresample.c s->in_buffer_index=0; s 553 libswresample/swresample.c if((ret=swri_realloc_audio(&s->in_buffer, size)) < 0) s 558 libswresample/swresample.c if(s->in_buffer_count && s->in_buffer_count+2 < count && out_count) count= s->in_buffer_count+2; s 560 libswresample/swresample.c buf_set(&tmp, &s->in_buffer, s->in_buffer_index + s->in_buffer_count); s 562 libswresample/swresample.c s->in_buffer_count += count; s 566 libswresample/swresample.c s->resample_in_constraint= 0; s 567 libswresample/swresample.c if(s->in_buffer_count != count || in_count) s 577 libswresample/swresample.c s->resample_in_constraint= !!out_count; s 582 libswresample/swresample.c static int swr_convert_internal(struct SwrContext *s, AudioData *out, int out_count, s 588 libswresample/swresample.c if(s->full_convert){ s 589 libswresample/swresample.c av_assert0(!s->resample); s 590 libswresample/swresample.c swri_audio_convert(s->full_convert, out, in, in_count); s 597 libswresample/swresample.c if((ret=swri_realloc_audio(&s->postin, in_count))<0) s 599 libswresample/swresample.c if(s->resample_first){ s 600 libswresample/swresample.c av_assert0(s->midbuf.ch_count == s->used_ch_count); s 601 libswresample/swresample.c if((ret=swri_realloc_audio(&s->midbuf, out_count))<0) s 604 libswresample/swresample.c av_assert0(s->midbuf.ch_count == s->out.ch_count); s 605 libswresample/swresample.c if((ret=swri_realloc_audio(&s->midbuf, in_count))<0) s 608 libswresample/swresample.c if((ret=swri_realloc_audio(&s->preout, out_count))<0) s 611 libswresample/swresample.c postin= &s->postin; s 613 libswresample/swresample.c midbuf_tmp= s->midbuf; s 615 libswresample/swresample.c preout_tmp= s->preout; s 618 libswresample/swresample.c if(s->int_sample_fmt == s-> in_sample_fmt && s->in.planar && !s->channel_map) s 621 libswresample/swresample.c if(s->resample_first ? !s->resample : !s->rematrix) s 624 libswresample/swresample.c if(s->resample_first ? !s->rematrix : !s->resample) s 627 libswresample/swresample.c if(s->int_sample_fmt == s->out_sample_fmt && s->out.planar s 628 libswresample/swresample.c && !(s->out_sample_fmt==AV_SAMPLE_FMT_S32P && (s->dither.output_sample_bits&31))){ s 631 libswresample/swresample.c av_assert0(s->in.planar); //we only support planar internally so it has to be, we support copying non planar though s 641 libswresample/swresample.c swri_audio_convert(s->in_convert, postin, in, in_count); s 644 libswresample/swresample.c if(s->resample_first){ s 646 libswresample/swresample.c out_count= resample(s, midbuf, out_count, postin, in_count); s 648 libswresample/swresample.c swri_rematrix(s, preout, midbuf, out_count, preout==out); s 651 libswresample/swresample.c swri_rematrix(s, midbuf, postin, in_count, midbuf==out); s 653 libswresample/swresample.c out_count= resample(s, preout, out_count, midbuf, in_count); s 658 libswresample/swresample.c if(s->dither.method){ s 663 libswresample/swresample.c conv_src = &s->dither.temp; s 664 libswresample/swresample.c if((ret=swri_realloc_audio(&s->dither.temp, dither_count))<0) s 668 libswresample/swresample.c if((ret=swri_realloc_audio(&s->dither.noise, dither_count))<0) s 671 libswresample/swresample.c for(ch=0; ch<s->dither.noise.ch_count; ch++) s 672 libswresample/swresample.c if((ret=swri_get_dither(s, s->dither.noise.ch[ch], s->dither.noise.count, (12345678913579ULL*ch + 3141592) % 2718281828U, s->dither.noise.fmt))<0) s 674 libswresample/swresample.c av_assert0(s->dither.noise.ch_count == preout->ch_count); s 676 libswresample/swresample.c if(s->dither.noise_pos + out_count > s->dither.noise.count) s 677 libswresample/swresample.c s->dither.noise_pos = 0; s 679 libswresample/swresample.c if (s->dither.method < SWR_DITHER_NS){ s 680 libswresample/swresample.c if (s->mix_2_1_simd) { s 686 libswresample/swresample.c s->mix_2_1_simd(conv_src->ch[ch], preout->ch[ch], s->dither.noise.ch[ch] + s->dither.noise.bps * s->dither.noise_pos, s->native_simd_one, 0, 0, len1); s 689 libswresample/swresample.c s->mix_2_1_f(conv_src->ch[ch] + off, preout->ch[ch] + off, s->dither.noise.ch[ch] + s->dither.noise.bps * s->dither.noise_pos + off, s->native_one, 0, 0, out_count - len1); s 692 libswresample/swresample.c s->mix_2_1_f(conv_src->ch[ch], preout->ch[ch], s->dither.noise.ch[ch] + s->dither.noise.bps * s->dither.noise_pos, s->native_one, 0, 0, out_count); s 695 libswresample/swresample.c switch(s->int_sample_fmt) { s 696 libswresample/swresample.c case AV_SAMPLE_FMT_S16P :swri_noise_shaping_int16(s, conv_src, preout, &s->dither.noise, out_count); break; s 697 libswresample/swresample.c case AV_SAMPLE_FMT_S32P :swri_noise_shaping_int32(s, conv_src, preout, &s->dither.noise, out_count); break; s 698 libswresample/swresample.c case AV_SAMPLE_FMT_FLTP :swri_noise_shaping_float(s, conv_src, preout, &s->dither.noise, out_count); break; s 699 libswresample/swresample.c case AV_SAMPLE_FMT_DBLP :swri_noise_shaping_double(s,conv_src, preout, &s->dither.noise, out_count); break; s 702 libswresample/swresample.c s->dither.noise_pos += out_count; s 705 libswresample/swresample.c swri_audio_convert(s->out_convert, out, conv_src, out_count); s 710 libswresample/swresample.c int swr_is_initialized(struct SwrContext *s) { s 711 libswresample/swresample.c return !!s->in_buffer.ch_count; s 714 libswresample/swresample.c int attribute_align_arg swr_convert(struct SwrContext *s, uint8_t *out_arg[SWR_CH_MAX], int out_count, s 716 libswresample/swresample.c AudioData * in= &s->in; s 717 libswresample/swresample.c AudioData *out= &s->out; s 720 libswresample/swresample.c if (!swr_is_initialized(s)) { s 721 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Context has not been initialized\n"); s 725 libswresample/swresample.c max_output = swr_get_out_samples(s, in_count); s 728 libswresample/swresample.c while(s->drop_output > 0){ s 732 libswresample/swresample.c if((ret=swri_realloc_audio(&s->drop_temp, FFMIN(s->drop_output, MAX_DROP_STEP)))<0) s 735 libswresample/swresample.c reversefill_audiodata(&s->drop_temp, tmp_arg); s 736 libswresample/swresample.c s->drop_output *= -1; //FIXME find a less hackish solution s 737 libswresample/swresample.c ret = swr_convert(s, tmp_arg, FFMIN(-s->drop_output, MAX_DROP_STEP), in_arg, in_count); //FIXME optimize but this is as good as never called so maybe it doesn't matter s 738 libswresample/swresample.c s->drop_output *= -1; s 741 libswresample/swresample.c s->drop_output -= ret; s 742 libswresample/swresample.c if (!s->drop_output && !out_arg) s 747 libswresample/swresample.c av_assert0(s->drop_output); s 752 libswresample/swresample.c if(s->resample){ s 753 libswresample/swresample.c if (!s->flushed) s 754 libswresample/swresample.c s->resampler->flush(s); s 755 libswresample/swresample.c s->resample_in_constraint = 0; s 756 libswresample/swresample.c s->flushed = 1; s 757 libswresample/swresample.c }else if(!s->in_buffer_count){ s 765 libswresample/swresample.c if(s->resample){ s 766 libswresample/swresample.c int ret = swr_convert_internal(s, out, out_count, in, in_count); s 767 libswresample/swresample.c if(ret>0 && !s->drop_output) s 768 libswresample/swresample.c s->outpts += ret * (int64_t)s->in_sample_rate; s 777 libswresample/swresample.c size = FFMIN(out_count, s->in_buffer_count); s 779 libswresample/swresample.c buf_set(&tmp, &s->in_buffer, s->in_buffer_index); s 780 libswresample/swresample.c ret= swr_convert_internal(s, out, size, &tmp, size); s 784 libswresample/swresample.c s->in_buffer_count -= ret; s 785 libswresample/swresample.c s->in_buffer_index += ret; s 788 libswresample/swresample.c if(!s->in_buffer_count) s 789 libswresample/swresample.c s->in_buffer_index = 0; s 793 libswresample/swresample.c size= s->in_buffer_index + s->in_buffer_count + in_count - out_count; s 796 libswresample/swresample.c if( size > s->in_buffer.count s 797 libswresample/swresample.c && s->in_buffer_count + in_count - out_count <= s->in_buffer_index){ s 798 libswresample/swresample.c buf_set(&tmp, &s->in_buffer, s->in_buffer_index); s 799 libswresample/swresample.c copy(&s->in_buffer, &tmp, s->in_buffer_count); s 800 libswresample/swresample.c s->in_buffer_index=0; s 802 libswresample/swresample.c if((ret=swri_realloc_audio(&s->in_buffer, size)) < 0) s 808 libswresample/swresample.c ret= swr_convert_internal(s, out, size, in, size); s 816 libswresample/swresample.c buf_set(&tmp, &s->in_buffer, s->in_buffer_index + s->in_buffer_count); s 818 libswresample/swresample.c s->in_buffer_count += in_count; s 821 libswresample/swresample.c if(ret2>0 && !s->drop_output) s 822 libswresample/swresample.c s->outpts += ret2 * (int64_t)s->in_sample_rate; s 828 libswresample/swresample.c int swr_drop_output(struct SwrContext *s, int count){ s 830 libswresample/swresample.c s->drop_output += count; s 832 libswresample/swresample.c if(s->drop_output <= 0) s 835 libswresample/swresample.c av_log(s, AV_LOG_VERBOSE, "discarding %d audio samples\n", count); s 836 libswresample/swresample.c return swr_convert(s, NULL, s->drop_output, tmp_arg, 0); s 839 libswresample/swresample.c int swr_inject_silence(struct SwrContext *s, int count){ s 848 libswresample/swresample.c if ((ret = swr_inject_silence(s, MAX_SILENCE_STEP)) < 0) s 853 libswresample/swresample.c if((ret=swri_realloc_audio(&s->silence, count))<0) s 856 libswresample/swresample.c if(s->silence.planar) for(i=0; i<s->silence.ch_count; i++) { s 857 libswresample/swresample.c memset(s->silence.ch[i], s->silence.bps==1 ? 0x80 : 0, count*s->silence.bps); s 859 libswresample/swresample.c memset(s->silence.ch[0], s->silence.bps==1 ? 0x80 : 0, count*s->silence.bps*s->silence.ch_count); s 861 libswresample/swresample.c reversefill_audiodata(&s->silence, tmp_arg); s 862 libswresample/swresample.c av_log(s, AV_LOG_VERBOSE, "adding %d audio samples of silence\n", count); s 863 libswresample/swresample.c ret = swr_convert(s, NULL, 0, (const uint8_t**)tmp_arg, count); s 867 libswresample/swresample.c int64_t swr_get_delay(struct SwrContext *s, int64_t base){ s 868 libswresample/swresample.c if (s->resampler && s->resample){ s 869 libswresample/swresample.c return s->resampler->get_delay(s, base); s 871 libswresample/swresample.c return (s->in_buffer_count*base + (s->in_sample_rate>>1))/ s->in_sample_rate; s 875 libswresample/swresample.c int swr_get_out_samples(struct SwrContext *s, int in_samples) s 882 libswresample/swresample.c if (s->resampler && s->resample) { s 883 libswresample/swresample.c if (!s->resampler->get_out_samples) s 885 libswresample/swresample.c out_samples = s->resampler->get_out_samples(s, in_samples); s 887 libswresample/swresample.c out_samples = s->in_buffer_count + in_samples; s 888 libswresample/swresample.c av_assert0(s->out_sample_rate == s->in_sample_rate); s 897 libswresample/swresample.c int swr_set_compensation(struct SwrContext *s, int sample_delta, int compensation_distance){ s 900 libswresample/swresample.c if (!s || compensation_distance < 0) s 904 libswresample/swresample.c if (!s->resample) { s 905 libswresample/swresample.c s->flags |= SWR_FLAG_RESAMPLE; s 906 libswresample/swresample.c ret = swr_init(s); s 910 libswresample/swresample.c if (!s->resampler->set_compensation){ s 913 libswresample/swresample.c return s->resampler->set_compensation(s->resample, sample_delta, compensation_distance); s 917 libswresample/swresample.c int64_t swr_next_pts(struct SwrContext *s, int64_t pts){ s 919 libswresample/swresample.c return s->outpts; s 921 libswresample/swresample.c if (s->firstpts == AV_NOPTS_VALUE) s 922 libswresample/swresample.c s->outpts = s->firstpts = pts; s 924 libswresample/swresample.c if(s->min_compensation >= FLT_MAX) { s 925 libswresample/swresample.c return (s->outpts = pts - swr_get_delay(s, s->in_sample_rate * (int64_t)s->out_sample_rate)); s 927 libswresample/swresample.c int64_t delta = pts - swr_get_delay(s, s->in_sample_rate * (int64_t)s->out_sample_rate) - s->outpts + s->drop_output*(int64_t)s->in_sample_rate; s 928 libswresample/swresample.c double fdelta = delta /(double)(s->in_sample_rate * (int64_t)s->out_sample_rate); s 930 libswresample/swresample.c if(fabs(fdelta) > s->min_compensation) { s 931 libswresample/swresample.c if(s->outpts == s->firstpts || fabs(fdelta) > s->min_hard_compensation){ s 933 libswresample/swresample.c if(delta > 0) ret = swr_inject_silence(s, delta / s->out_sample_rate); s 934 libswresample/swresample.c else ret = swr_drop_output (s, -delta / s-> in_sample_rate); s 936 libswresample/swresample.c av_log(s, AV_LOG_ERROR, "Failed to compensate for timestamp delta of %f\n", fdelta); s 938 libswresample/swresample.c } else if(s->soft_compensation_duration && s->max_soft_compensation) { s 939 libswresample/swresample.c int duration = s->out_sample_rate * s->soft_compensation_duration; s 940 libswresample/swresample.c double max_soft_compensation = s->max_soft_compensation / (s->max_soft_compensation < 0 ? -s->in_sample_rate : 1); s 942 libswresample/swresample.c av_log(s, AV_LOG_VERBOSE, "compensating audio timestamp drift:%f compensation:%d in:%d\n", fdelta, comp, duration); s 943 libswresample/swresample.c swr_set_compensation(s, comp, duration); s 947 libswresample/swresample.c return s->outpts; s 219 libswresample/swresample.h int swr_init(struct SwrContext *s); s 228 libswresample/swresample.h int swr_is_initialized(struct SwrContext *s); s 250 libswresample/swresample.h struct SwrContext *swr_alloc_set_opts(struct SwrContext *s, s 267 libswresample/swresample.h void swr_free(struct SwrContext **s); s 279 libswresample/swresample.h void swr_close(struct SwrContext *s); s 306 libswresample/swresample.h int swr_convert(struct SwrContext *s, uint8_t **out, int out_count, s 326 libswresample/swresample.h int64_t swr_next_pts(struct SwrContext *s, int64_t pts); s 353 libswresample/swresample.h int swr_set_compensation(struct SwrContext *s, int sample_delta, int compensation_distance); s 363 libswresample/swresample.h int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map); s 404 libswresample/swresample.h int swr_set_matrix(struct SwrContext *s, const double *matrix, int stride); s 424 libswresample/swresample.h int swr_drop_output(struct SwrContext *s, int count); s 437 libswresample/swresample.h int swr_inject_silence(struct SwrContext *s, int count); s 463 libswresample/swresample.h int64_t swr_get_delay(struct SwrContext *s, int64_t base); s 481 libswresample/swresample.h int swr_get_out_samples(struct SwrContext *s, int in_samples); s 26 libswresample/swresample_frame.c int swr_config_frame(SwrContext *s, const AVFrame *out, const AVFrame *in) s 28 libswresample/swresample_frame.c swr_close(s); s 31 libswresample/swresample_frame.c if (av_opt_set_int(s, "icl", in->channel_layout, 0) < 0) s 33 libswresample/swresample_frame.c if (av_opt_set_int(s, "isf", in->format, 0) < 0) s 35 libswresample/swresample_frame.c if (av_opt_set_int(s, "isr", in->sample_rate, 0) < 0) s 40 libswresample/swresample_frame.c if (av_opt_set_int(s, "ocl", out->channel_layout, 0) < 0) s 42 libswresample/swresample_frame.c if (av_opt_set_int(s, "osf", out->format, 0) < 0) s 44 libswresample/swresample_frame.c if (av_opt_set_int(s, "osr", out->sample_rate, 0) < 0) s 50 libswresample/swresample_frame.c av_log(s, AV_LOG_ERROR, "Failed to set option\n"); s 54 libswresample/swresample_frame.c static int config_changed(SwrContext *s, s 60 libswresample/swresample_frame.c if (s->in_ch_layout != in->channel_layout || s 61 libswresample/swresample_frame.c s->in_sample_rate != in->sample_rate || s 62 libswresample/swresample_frame.c s->in_sample_fmt != in->format) { s 68 libswresample/swresample_frame.c if (s->out_ch_layout != out->channel_layout || s 69 libswresample/swresample_frame.c s->out_sample_rate != out->sample_rate || s 70 libswresample/swresample_frame.c s->out_sample_fmt != out->format) { s 78 libswresample/swresample_frame.c static inline int convert_frame(SwrContext *s, s 96 libswresample/swresample_frame.c ret = swr_convert(s, out_data, out_nb_samples, in_data, in_nb_samples); s 123 libswresample/swresample_frame.c int swr_convert_frame(SwrContext *s, s 128 libswresample/swresample_frame.c if (!swr_is_initialized(s)) { s 129 libswresample/swresample_frame.c if ((ret = swr_config_frame(s, out, in)) < 0) s 131 libswresample/swresample_frame.c if ((ret = swr_init(s)) < 0) s 136 libswresample/swresample_frame.c if ((ret = config_changed(s, out, in))) s 142 libswresample/swresample_frame.c out->nb_samples = swr_get_delay(s, s->out_sample_rate) + 3; s 144 libswresample/swresample_frame.c out->nb_samples += in->nb_samples*(int64_t)s->out_sample_rate / s->in_sample_rate; s 148 libswresample/swresample_frame.c swr_close(s); s 157 libswresample/swresample_frame.c return convert_frame(s, out, in); s 77 libswresample/swresample_internal.h typedef int64_t (* get_delay_func)(struct SwrContext *s, int64_t base); s 79 libswresample/swresample_internal.h typedef int64_t (* get_out_samples_func)(struct SwrContext *s, int in_samples); s 193 libswresample/swresample_internal.h void swri_noise_shaping_int16 (SwrContext *s, AudioData *dsts, const AudioData *srcs, const AudioData *noises, int count); s 194 libswresample/swresample_internal.h void swri_noise_shaping_int32 (SwrContext *s, AudioData *dsts, const AudioData *srcs, const AudioData *noises, int count); s 195 libswresample/swresample_internal.h void swri_noise_shaping_float (SwrContext *s, AudioData *dsts, const AudioData *srcs, const AudioData *noises, int count); s 196 libswresample/swresample_internal.h void swri_noise_shaping_double(SwrContext *s, AudioData *dsts, const AudioData *srcs, const AudioData *noises, int count); s 199 libswresample/swresample_internal.h int swri_rematrix_init(SwrContext *s); s 200 libswresample/swresample_internal.h void swri_rematrix_free(SwrContext *s); s 201 libswresample/swresample_internal.h int swri_rematrix(SwrContext *s, AudioData *out, AudioData *in, int len, int mustcopy); s 202 libswresample/swresample_internal.h int swri_rematrix_init_x86(struct SwrContext *s); s 205 libswresample/swresample_internal.h int swri_get_dither(SwrContext *s, void *dst, int len, unsigned seed, enum AVSampleFormat noise_fmt); s 207 libswresample/swresample_internal.h int swri_dither_init(SwrContext *s, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt); s 33 libswresample/x86/rematrix_init.c av_cold int swri_rematrix_init_x86(struct SwrContext *s){ s 36 libswresample/x86/rematrix_init.c int nb_in = s->used_ch_count; s 37 libswresample/x86/rematrix_init.c int nb_out = s->out.ch_count; s 41 libswresample/x86/rematrix_init.c s->mix_1_1_simd = NULL; s 42 libswresample/x86/rematrix_init.c s->mix_2_1_simd = NULL; s 44 libswresample/x86/rematrix_init.c if (s->midbuf.fmt == AV_SAMPLE_FMT_S16P){ s 46 libswresample/x86/rematrix_init.c s->mix_1_1_simd = ff_mix_1_1_a_int16_mmx; s 47 libswresample/x86/rematrix_init.c s->mix_2_1_simd = ff_mix_2_1_a_int16_mmx; s 50 libswresample/x86/rematrix_init.c s->mix_1_1_simd = ff_mix_1_1_a_int16_sse2; s 51 libswresample/x86/rematrix_init.c s->mix_2_1_simd = ff_mix_2_1_a_int16_sse2; s 53 libswresample/x86/rematrix_init.c s->native_simd_matrix = av_mallocz_array(num, 2 * sizeof(int16_t)); s 54 libswresample/x86/rematrix_init.c s->native_simd_one = av_mallocz(2 * sizeof(int16_t)); s 55 libswresample/x86/rematrix_init.c if (!s->native_simd_matrix || !s->native_simd_one) s 61 libswresample/x86/rematrix_init.c sh = FFMAX(sh, FFABS(((int*)s->native_matrix)[i * nb_in + j])); s 64 libswresample/x86/rematrix_init.c ((int16_t*)s->native_simd_matrix)[2*(i * nb_in + j)+1] = 15 - sh; s 65 libswresample/x86/rematrix_init.c ((int16_t*)s->native_simd_matrix)[2*(i * nb_in + j)] = s 66 libswresample/x86/rematrix_init.c ((((int*)s->native_matrix)[i * nb_in + j]) + (1<<sh>>1)) >> sh; s 69 libswresample/x86/rematrix_init.c ((int16_t*)s->native_simd_one)[1] = 14; s 70 libswresample/x86/rematrix_init.c ((int16_t*)s->native_simd_one)[0] = 16384; s 71 libswresample/x86/rematrix_init.c } else if(s->midbuf.fmt == AV_SAMPLE_FMT_FLTP){ s 73 libswresample/x86/rematrix_init.c s->mix_1_1_simd = ff_mix_1_1_a_float_sse; s 74 libswresample/x86/rematrix_init.c s->mix_2_1_simd = ff_mix_2_1_a_float_sse; s 77 libswresample/x86/rematrix_init.c s->mix_1_1_simd = ff_mix_1_1_a_float_avx; s 78 libswresample/x86/rematrix_init.c s->mix_2_1_simd = ff_mix_2_1_a_float_avx; s 80 libswresample/x86/rematrix_init.c s->native_simd_matrix = av_mallocz_array(num, sizeof(float)); s 81 libswresample/x86/rematrix_init.c s->native_simd_one = av_mallocz(sizeof(float)); s 82 libswresample/x86/rematrix_init.c if (!s->native_simd_matrix || !s->native_simd_one) s 84 libswresample/x86/rematrix_init.c memcpy(s->native_simd_matrix, s->native_matrix, num * sizeof(float)); s 85 libswresample/x86/rematrix_init.c memcpy(s->native_simd_one, s->native_one, sizeof(float)); s 25 libswresample/x86/w64xmmtest.c wrap(swr_convert(struct SwrContext *s, uint8_t **out, int out_count, s 28 libswresample/x86/w64xmmtest.c testxmmclobbers(swr_convert, s, out, out_count, in, in_count); s 59 libswscale/alphablend.c const uint16_t *s = (const uint16_t *)(src[plane ] + srcStride[plane ] * y); s 69 libswscale/alphablend.c u = s[x]*alpha + target_table[((x^y)>>5)&1][plane]*(max-alpha) + off; s 79 libswscale/alphablend.c u = av_bswap16(s[x])*alpha + target_table[((x^y)>>5)&1][plane]*(max-alpha) + off; s 85 libswscale/alphablend.c const uint8_t *s = src[plane ] + srcStride[plane] * y; s 94 libswscale/alphablend.c u = s[x]*alpha + target_table[((x^y)>>5)&1][plane]*(255-alpha) + 128; s 100 libswscale/alphablend.c const uint16_t *s = (const uint16_t *)(src[plane ] + srcStride[plane ] * y); s 105 libswscale/alphablend.c unsigned u = s[x]*a[x] + target_table[((x^y)>>5)&1][plane]*(max-a[x]) + off; s 111 libswscale/alphablend.c unsigned u = av_bswap16(s[x])*aswap + target_table[((x^y)>>5)&1][plane]*(max-aswap) + off; s 116 libswscale/alphablend.c const uint8_t *s = src[plane ] + srcStride[plane] * y; s 120 libswscale/alphablend.c unsigned u = s[x]*a[x] + target_table[((x^y)>>5)&1][plane]*(255-a[x]) + 128; s 132 libswscale/alphablend.c const uint16_t *s = (const uint16_t *)(src[0] + srcStride[0] * y + 2*!alpha_pos); s 139 libswscale/alphablend.c unsigned u = s[x_index + plane]*a[x_index] + target_table[((x^y)>>5)&1][plane]*(max-a[x_index]) + off; s 148 libswscale/alphablend.c unsigned u = av_bswap16(s[x_index + plane])*aswap + target_table[((x^y)>>5)&1][plane]*(max-aswap) + off; s 154 libswscale/alphablend.c const uint8_t *s = src[0] + srcStride[0] * y + !alpha_pos; s 160 libswscale/alphablend.c unsigned u = s[x_index + plane]*a[x_index] + target_table[((x^y)>>5)&1][plane]*(255-a[x_index]) + 128; s 38 libswscale/ppc/swscale_altivec.c #define GET_LS(a,b,c,s) {\ s 39 libswscale/ppc/swscale_altivec.c vector signed short l2 = vec_ld(((b) << 1) + 16, s);\ s 61 libswscale/ppc/swscale_altivec.c #define LOAD_L1(ll1,s,p){\ s 62 libswscale/ppc/swscale_altivec.c p = vec_lvsl(xoffset, s);\ s 63 libswscale/ppc/swscale_altivec.c ll1 = vec_ld(xoffset, s);\ s 79 libswscale/ppc/swscale_altivec.c #define FIRST_LOAD(sv, pos, s, per) {\ s 80 libswscale/ppc/swscale_altivec.c sv = vec_ld(pos, s);\ s 81 libswscale/ppc/swscale_altivec.c per = vec_lvsl(pos, s);\ s 87 libswscale/ppc/swscale_altivec.c #define LOAD_SRCV(pos, a, s, per, v0, v1, vf) {\ s 88 libswscale/ppc/swscale_altivec.c v1 = vec_ld(pos + a + 16, s);\ s 91 libswscale/ppc/swscale_altivec.c #define LOAD_SRCV8(pos, a, s, per, v0, v1, vf) {\ s 92 libswscale/ppc/swscale_altivec.c if ((((uintptr_t)s + pos) % 16) > 8) {\ s 93 libswscale/ppc/swscale_altivec.c v1 = vec_ld(pos + a + 16, s);\ s 38 libswscale/ppc/swscale_vsx.c #define GET_LS(a,b,c,s) {\ s 40 libswscale/ppc/swscale_vsx.c a = vec_vsx_ld(((b) << 1) + 16, s);\ s 58 libswscale/ppc/swscale_vsx.c #define LOAD_L1(ll1,s,p){\ s 59 libswscale/ppc/swscale_vsx.c ll1 = vec_vsx_ld(xoffset, s);\ s 72 libswscale/ppc/swscale_vsx.c #define FIRST_LOAD(sv, pos, s, per) {} s 74 libswscale/ppc/swscale_vsx.c #define LOAD_SRCV(pos, a, s, per, v0, v1, vf) {\ s 75 libswscale/ppc/swscale_vsx.c vf = vec_vsx_ld(pos + a, s);\ s 77 libswscale/ppc/swscale_vsx.c #define LOAD_SRCV8(pos, a, s, per, v0, v1, vf) LOAD_SRCV(pos, a, s, per, v0, v1, vf) s 187 libswscale/rgb2rgb.c const uint16_t *s = (const uint16_t *)src; s 188 libswscale/rgb2rgb.c const uint16_t *end = s + src_size / 2; s 190 libswscale/rgb2rgb.c while (s < end) { s 191 libswscale/rgb2rgb.c register uint16_t bgr = *s++; s 210 libswscale/rgb2rgb.c const uint16_t *s = (const uint16_t *)src; s 211 libswscale/rgb2rgb.c const uint16_t *end = s + src_size / 2; s 213 libswscale/rgb2rgb.c while (s < end) { s 214 libswscale/rgb2rgb.c rgb = *s++; s 228 libswscale/rgb2rgb.c const uint16_t *s = (const uint16_t *)src; s 229 libswscale/rgb2rgb.c const uint16_t *end = s + src_size / 2; s 231 libswscale/rgb2rgb.c while (s < end) { s 232 libswscale/rgb2rgb.c register uint16_t bgr = *s++; s 262 libswscale/rgb2rgb.c const uint16_t *s = (const uint16_t *)src; s 263 libswscale/rgb2rgb.c const uint16_t *end = s + src_size / 2; s 265 libswscale/rgb2rgb.c while (s < end) { s 266 libswscale/rgb2rgb.c register uint16_t bgr = *s++; s 284 libswscale/rgb2rgb.c const uint16_t *s = (const uint16_t *)src; s 285 libswscale/rgb2rgb.c const uint16_t *end = s + src_size / 2; s 287 libswscale/rgb2rgb.c while (s < end) { s 288 libswscale/rgb2rgb.c register uint16_t bgr = *s++; s 319 libswscale/rgb2rgb.c uint16_t *s = (uint16_t *)src; s 323 libswscale/rgb2rgb.c unsigned rgb = s[i]; s 333 libswscale/rgb2rgb.c uint16_t *s = (uint16_t *)src; \ s 337 libswscale/rgb2rgb.c d[i ] = swap ? av_bswap16(s[i + 2]) : s[i + 2]; \ s 338 libswscale/rgb2rgb.c d[i + 1] = swap ? av_bswap16(s[i + 1]) : s[i + 1]; \ s 339 libswscale/rgb2rgb.c d[i + 2] = swap ? av_bswap16(s[i ]) : s[i ]; \ s 351 libswscale/rgb2rgb.c uint16_t *s = (uint16_t *)src; \ s 355 libswscale/rgb2rgb.c d[3 * i ] = swap ? av_bswap16(s[4 * i + 2]) : s[4 * i + 2]; \ s 356 libswscale/rgb2rgb.c d[3 * i + 1] = swap ? av_bswap16(s[4 * i + 1]) : s[4 * i + 1]; \ s 357 libswscale/rgb2rgb.c d[3 * i + 2] = swap ? av_bswap16(s[4 * i ]) : s[4 * i ]; \ s 369 libswscale/rgb2rgb.c uint16_t *s = (uint16_t *)src; \ s 373 libswscale/rgb2rgb.c d[3 * i ] = swap ? av_bswap16(s[4 * i ]) : s[4 * i ]; \ s 374 libswscale/rgb2rgb.c d[3 * i + 1] = swap ? av_bswap16(s[4 * i + 1]) : s[4 * i + 1]; \ s 375 libswscale/rgb2rgb.c d[3 * i + 2] = swap ? av_bswap16(s[4 * i + 2]) : s[4 * i + 2]; \ s 387 libswscale/rgb2rgb.c uint16_t *s = (uint16_t *)src; \ s 391 libswscale/rgb2rgb.c d[4 * i ] = swap ? av_bswap16(s[3 * i + 2]) : s[3 * i + 2]; \ s 392 libswscale/rgb2rgb.c d[4 * i + 1] = swap ? av_bswap16(s[3 * i + 1]) : s[3 * i + 1]; \ s 393 libswscale/rgb2rgb.c d[4 * i + 2] = swap ? av_bswap16(s[3 * i ]) : s[3 * i ]; \ s 406 libswscale/rgb2rgb.c uint16_t *s = (uint16_t *)src; \ s 410 libswscale/rgb2rgb.c d[4 * i ] = swap ? av_bswap16(s[3 * i ]) : s[3 * i ]; \ s 411 libswscale/rgb2rgb.c d[4 * i + 1] = swap ? av_bswap16(s[3 * i + 1]) : s[3 * i + 1]; \ s 412 libswscale/rgb2rgb.c d[4 * i + 2] = swap ? av_bswap16(s[3 * i + 2]) : s[3 * i + 2]; \ s 35 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 36 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 38 libswscale/rgb2rgb_template.c while (s < end) { s 42 libswscale/rgb2rgb_template.c *dest++ = s[2]; s 43 libswscale/rgb2rgb_template.c *dest++ = s[1]; s 44 libswscale/rgb2rgb_template.c *dest++ = s[0]; s 45 libswscale/rgb2rgb_template.c s += 3; s 47 libswscale/rgb2rgb_template.c *dest++ = *s++; s 48 libswscale/rgb2rgb_template.c *dest++ = *s++; s 49 libswscale/rgb2rgb_template.c *dest++ = *s++; s 59 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 60 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 62 libswscale/rgb2rgb_template.c while (s < end) { s 65 libswscale/rgb2rgb_template.c s++; s 66 libswscale/rgb2rgb_template.c dest[2] = *s++; s 67 libswscale/rgb2rgb_template.c dest[1] = *s++; s 68 libswscale/rgb2rgb_template.c dest[0] = *s++; s 71 libswscale/rgb2rgb_template.c *dest++ = *s++; s 72 libswscale/rgb2rgb_template.c *dest++ = *s++; s 73 libswscale/rgb2rgb_template.c *dest++ = *s++; s 74 libswscale/rgb2rgb_template.c s++; s 88 libswscale/rgb2rgb_template.c register const uint8_t *s = src; s 89 libswscale/rgb2rgb_template.c register const uint8_t *end = s + src_size; s 92 libswscale/rgb2rgb_template.c while (s < mm_end) { s 93 libswscale/rgb2rgb_template.c register unsigned x = *((const uint32_t *)s); s 96 libswscale/rgb2rgb_template.c s += 4; s 98 libswscale/rgb2rgb_template.c if (s < end) { s 99 libswscale/rgb2rgb_template.c register unsigned short x = *((const uint16_t *)s); s 107 libswscale/rgb2rgb_template.c register const uint8_t *s = src; s 108 libswscale/rgb2rgb_template.c register const uint8_t *end = s + src_size; s 111 libswscale/rgb2rgb_template.c while (s < mm_end) { s 112 libswscale/rgb2rgb_template.c register uint32_t x = *((const uint32_t *)s); s 114 libswscale/rgb2rgb_template.c s += 4; s 117 libswscale/rgb2rgb_template.c if (s < end) { s 118 libswscale/rgb2rgb_template.c register uint16_t x = *((const uint16_t *)s); s 126 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 127 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 129 libswscale/rgb2rgb_template.c while (s < end) { s 130 libswscale/rgb2rgb_template.c register int rgb = *(const uint32_t *)s; s 131 libswscale/rgb2rgb_template.c s += 4; s 142 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 143 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 145 libswscale/rgb2rgb_template.c while (s < end) { s 146 libswscale/rgb2rgb_template.c register int rgb = *(const uint32_t *)s; s 147 libswscale/rgb2rgb_template.c s += 4; s 157 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 158 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 160 libswscale/rgb2rgb_template.c while (s < end) { s 161 libswscale/rgb2rgb_template.c register int rgb = *(const uint32_t *)s; s 162 libswscale/rgb2rgb_template.c s += 4; s 173 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 174 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 176 libswscale/rgb2rgb_template.c while (s < end) { s 177 libswscale/rgb2rgb_template.c register int rgb = *(const uint32_t *)s; s 178 libswscale/rgb2rgb_template.c s += 4; s 189 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 190 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 192 libswscale/rgb2rgb_template.c while (s < end) { s 193 libswscale/rgb2rgb_template.c const int b = *s++; s 194 libswscale/rgb2rgb_template.c const int g = *s++; s 195 libswscale/rgb2rgb_template.c const int r = *s++; s 203 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 204 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 206 libswscale/rgb2rgb_template.c while (s < end) { s 207 libswscale/rgb2rgb_template.c const int r = *s++; s 208 libswscale/rgb2rgb_template.c const int g = *s++; s 209 libswscale/rgb2rgb_template.c const int b = *s++; s 218 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 219 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 221 libswscale/rgb2rgb_template.c while (s < end) { s 222 libswscale/rgb2rgb_template.c const int b = *s++; s 223 libswscale/rgb2rgb_template.c const int g = *s++; s 224 libswscale/rgb2rgb_template.c const int r = *s++; s 232 libswscale/rgb2rgb_template.c const uint8_t *s = src; s 233 libswscale/rgb2rgb_template.c const uint8_t *end = s + src_size; s 235 libswscale/rgb2rgb_template.c while (s < end) { s 236 libswscale/rgb2rgb_template.c const int r = *s++; s 237 libswscale/rgb2rgb_template.c const int g = *s++; s 238 libswscale/rgb2rgb_template.c const int b = *s++; s 247 libswscale/rgb2rgb_template.c const uint16_t *s = (const uint16_t *)src; s 248 libswscale/rgb2rgb_template.c const uint16_t *end = s + src_size / 2; s 250 libswscale/rgb2rgb_template.c while (s < end) { s 251 libswscale/rgb2rgb_template.c register uint16_t bgr = *s++; s 262 libswscale/rgb2rgb_template.c const uint16_t *s = (const uint16_t *)src; s 263 libswscale/rgb2rgb_template.c const uint16_t *end = s + src_size / 2; s 265 libswscale/rgb2rgb_template.c while (s < end) { s 266 libswscale/rgb2rgb_template.c register uint16_t bgr = *s++; s 276 libswscale/rgb2rgb_template.c const uint16_t *s = (const uint16_t *)src; s 277 libswscale/rgb2rgb_template.c const uint16_t *end = s + src_size / 2; s 279 libswscale/rgb2rgb_template.c while (s < end) { s 280 libswscale/rgb2rgb_template.c register uint16_t bgr = *s++; s 298 libswscale/rgb2rgb_template.c const uint16_t *s = (const uint16_t *)src; s 299 libswscale/rgb2rgb_template.c const uint16_t *end = s + src_size / 2; s 301 libswscale/rgb2rgb_template.c while (s < end) { s 302 libswscale/rgb2rgb_template.c register uint16_t bgr = *s++; s 321 libswscale/rgb2rgb_template.c const uint8_t *s = src - idx; s 325 libswscale/rgb2rgb_template.c register unsigned v = *(const uint32_t *)&s[idx], g = v & 0xff00ff00; s 335 libswscale/rgb2rgb_template.c const uint8_t *s = src - idx; s 339 libswscale/rgb2rgb_template.c register unsigned v = *(const uint32_t *)&s[idx], g = v & 0x00ff00ff; s 23 libswscale/slice.c static void free_lines(SwsSlice *s) s 27 libswscale/slice.c int n = s->plane[i].available_lines; s 30 libswscale/slice.c av_freep(&s->plane[i].line[j]); s 31 libswscale/slice.c if (s->is_ring) s 32 libswscale/slice.c s->plane[i].line[j+n] = NULL; s 37 libswscale/slice.c memset(s->plane[i].line, 0, sizeof(uint8_t*) * s->plane[i].available_lines * (s->is_ring ? 3 : 1)); s 38 libswscale/slice.c s->should_free_lines = 0; s 45 libswscale/slice.c static int alloc_lines(SwsSlice *s, int size, int width) s 50 libswscale/slice.c s->should_free_lines = 1; s 51 libswscale/slice.c s->width = width; s 54 libswscale/slice.c int n = s->plane[i].available_lines; s 58 libswscale/slice.c av_assert0(n == s->plane[ii].available_lines); s 62 libswscale/slice.c s->plane[i].line[j] = av_malloc(size * 2 + 32); s 63 libswscale/slice.c if (!s->plane[i].line[j]) { s 64 libswscale/slice.c free_lines(s); s 67 libswscale/slice.c s->plane[ii].line[j] = s->plane[i].line[j] + size + 16; s 68 libswscale/slice.c if (s->is_ring) { s 69 libswscale/slice.c s->plane[i].line[j+n] = s->plane[i].line[j]; s 70 libswscale/slice.c s->plane[ii].line[j+n] = s->plane[ii].line[j]; s 78 libswscale/slice.c static int alloc_slice(SwsSlice *s, enum AVPixelFormat fmt, int lumLines, int chrLines, int h_sub_sample, int v_sub_sample, int ring) s 86 libswscale/slice.c s->h_chr_sub_sample = h_sub_sample; s 87 libswscale/slice.c s->v_chr_sub_sample = v_sub_sample; s 88 libswscale/slice.c s->fmt = fmt; s 89 libswscale/slice.c s->is_ring = ring; s 90 libswscale/slice.c s->should_free_lines = 0; s 94 libswscale/slice.c s->plane[i].line = av_mallocz_array(sizeof(uint8_t*), n); s 95 libswscale/slice.c if (!s->plane[i].line) s 98 libswscale/slice.c s->plane[i].tmp = ring ? s->plane[i].line + size[i] * 2 : NULL; s 99 libswscale/slice.c s->plane[i].available_lines = size[i]; s 100 libswscale/slice.c s->plane[i].sliceY = 0; s 101 libswscale/slice.c s->plane[i].sliceH = 0; s 106 libswscale/slice.c static void free_slice(SwsSlice *s) s 109 libswscale/slice.c if (s) { s 110 libswscale/slice.c if (s->should_free_lines) s 111 libswscale/slice.c free_lines(s); s 113 libswscale/slice.c av_freep(&s->plane[i].line); s 114 libswscale/slice.c s->plane[i].tmp = NULL; s 119 libswscale/slice.c int ff_rotate_slice(SwsSlice *s, int lum, int chr) s 124 libswscale/slice.c int n = s->plane[i].available_lines; s 125 libswscale/slice.c int l = lum - s->plane[i].sliceY; s 128 libswscale/slice.c s->plane[i].sliceY += n; s 129 libswscale/slice.c s->plane[i].sliceH -= n; s 135 libswscale/slice.c int n = s->plane[i].available_lines; s 136 libswscale/slice.c int l = chr - s->plane[i].sliceY; s 139 libswscale/slice.c s->plane[i].sliceY += n; s 140 libswscale/slice.c s->plane[i].sliceH -= n; s 147 libswscale/slice.c int ff_init_slice_from_src(SwsSlice * s, uint8_t *src[4], int stride[4], int srcW, int lumY, int lumH, int chrY, int chrH, int relative) s 166 libswscale/slice.c s->width = srcW; s 170 libswscale/slice.c int first = s->plane[i].sliceY; s 171 libswscale/slice.c int n = s->plane[i].available_lines; s 176 libswscale/slice.c s->plane[i].sliceH = FFMAX(tot_lines, s->plane[i].sliceH); s 178 libswscale/slice.c s->plane[i].line[start[i] - first + j] = src_[i] + j * stride[i]; s 180 libswscale/slice.c s->plane[i].sliceY = start[i]; s 182 libswscale/slice.c s->plane[i].sliceH = lines; s 184 libswscale/slice.c s->plane[i].line[j] = src_[i] + j * stride[i]; s 192 libswscale/slice.c static void fill_ones(SwsSlice *s, int n, int bpc) s 197 libswscale/slice.c size = s->plane[i].available_lines; s 202 libswscale/slice.c ((int32_t*)(s->plane[i].line[j]))[k] = 1<<18; s 206 libswscale/slice.c ((int64_t*)(s->plane[i].line[j]))[k] = 1LL<<34; s 210 libswscale/slice.c ((int16_t*)(s->plane[i].line[j]))[k] = 1<<14; s 36 libswscale/swscale_internal.h #define STR(s) AV_TOSTRING(s) // AV_STRINGIFY is too long s 1005 libswscale/swscale_internal.h int ff_init_slice_from_src(SwsSlice * s, uint8_t *src[4], int stride[4], int srcW, int lumY, int lumH, int chrY, int chrH, int relative); s 1019 libswscale/swscale_internal.h int ff_rotate_slice(SwsSlice *s, int lum, int chr); s 35 libswscale/tests/colorspace.c #define FUNC(s, d, n) { s, d, #n, n } s 307 libswscale/utils.c static av_cold int get_local_pos(SwsContext *s, int chr_subsample, int pos, int dir) s 71 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 74 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 75 libswscale/x86/rgb2rgb_template.c __asm__ volatile(PREFETCH" %0"::"m"(*s):"memory"); s 78 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 97 libswscale/x86/rgb2rgb_template.c :: "r"(dest), "r"(s) s 100 libswscale/x86/rgb2rgb_template.c s += 24; s 104 libswscale/x86/rgb2rgb_template.c while (s < end) { s 105 libswscale/x86/rgb2rgb_template.c *dest++ = *s++; s 106 libswscale/x86/rgb2rgb_template.c *dest++ = *s++; s 107 libswscale/x86/rgb2rgb_template.c *dest++ = *s++; s 149 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 152 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 153 libswscale/x86/rgb2rgb_template.c __asm__ volatile(PREFETCH" %0"::"m"(*s):"memory"); s 155 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 167 libswscale/x86/rgb2rgb_template.c :: "r"(dest), "r"(s) s 171 libswscale/x86/rgb2rgb_template.c s += 32; s 175 libswscale/x86/rgb2rgb_template.c while (s < end) { s 176 libswscale/x86/rgb2rgb_template.c *dest++ = *s++; s 177 libswscale/x86/rgb2rgb_template.c *dest++ = *s++; s 178 libswscale/x86/rgb2rgb_template.c *dest++ = *s++; s 179 libswscale/x86/rgb2rgb_template.c s++; s 191 libswscale/x86/rgb2rgb_template.c register const uint8_t* s=src; s 195 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 196 libswscale/x86/rgb2rgb_template.c __asm__ volatile(PREFETCH" %0"::"m"(*s)); s 199 libswscale/x86/rgb2rgb_template.c while (s<mm_end) { s 212 libswscale/x86/rgb2rgb_template.c :: "r"(d), "r"(s) s 215 libswscale/x86/rgb2rgb_template.c s+=16; s 220 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 221 libswscale/x86/rgb2rgb_template.c register unsigned x= *((const uint32_t *)s); s 224 libswscale/x86/rgb2rgb_template.c s+=4; s 226 libswscale/x86/rgb2rgb_template.c if (s < end) { s 227 libswscale/x86/rgb2rgb_template.c register unsigned short x= *((const uint16_t *)s); s 234 libswscale/x86/rgb2rgb_template.c register const uint8_t* s=src; s 238 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 239 libswscale/x86/rgb2rgb_template.c __asm__ volatile(PREFETCH" %0"::"m"(*s)); s 243 libswscale/x86/rgb2rgb_template.c while (s<mm_end) { s 260 libswscale/x86/rgb2rgb_template.c :: "r"(d), "r"(s) s 263 libswscale/x86/rgb2rgb_template.c s+=16; s 268 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 269 libswscale/x86/rgb2rgb_template.c register uint32_t x= *((const uint32_t*)s); s 271 libswscale/x86/rgb2rgb_template.c s+=4; s 274 libswscale/x86/rgb2rgb_template.c if (s < end) { s 275 libswscale/x86/rgb2rgb_template.c register uint16_t x= *((const uint16_t*)s); s 282 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 286 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 319 libswscale/x86/rgb2rgb_template.c : "+r" (d), "+r"(s) s 324 libswscale/x86/rgb2rgb_template.c while (s < end) { s 325 libswscale/x86/rgb2rgb_template.c register int rgb = *(const uint32_t*)s; s += 4; s 332 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 336 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 343 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 373 libswscale/x86/rgb2rgb_template.c :: "r"(d),"r"(s),"m"(blue_16mask):"memory"); s 375 libswscale/x86/rgb2rgb_template.c s += 16; s 379 libswscale/x86/rgb2rgb_template.c while (s < end) { s 380 libswscale/x86/rgb2rgb_template.c register int rgb = *(const uint32_t*)s; s += 4; s 387 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 391 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 424 libswscale/x86/rgb2rgb_template.c : "+r" (d), "+r"(s) s 429 libswscale/x86/rgb2rgb_template.c while (s < end) { s 430 libswscale/x86/rgb2rgb_template.c register int rgb = *(const uint32_t*)s; s += 4; s 437 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 441 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 448 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 478 libswscale/x86/rgb2rgb_template.c ::"r"(d),"r"(s),"m"(blue_15mask):"memory"); s 480 libswscale/x86/rgb2rgb_template.c s += 16; s 484 libswscale/x86/rgb2rgb_template.c while (s < end) { s 485 libswscale/x86/rgb2rgb_template.c register int rgb = *(const uint32_t*)s; s += 4; s 492 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 496 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 503 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 533 libswscale/x86/rgb2rgb_template.c ::"r"(d),"r"(s),"m"(blue_16mask):"memory"); s 535 libswscale/x86/rgb2rgb_template.c s += 12; s 539 libswscale/x86/rgb2rgb_template.c while (s < end) { s 540 libswscale/x86/rgb2rgb_template.c const int b = *s++; s 541 libswscale/x86/rgb2rgb_template.c const int g = *s++; s 542 libswscale/x86/rgb2rgb_template.c const int r = *s++; s 549 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 553 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 560 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 590 libswscale/x86/rgb2rgb_template.c ::"r"(d),"r"(s),"m"(blue_16mask):"memory"); s 592 libswscale/x86/rgb2rgb_template.c s += 12; s 596 libswscale/x86/rgb2rgb_template.c while (s < end) { s 597 libswscale/x86/rgb2rgb_template.c const int r = *s++; s 598 libswscale/x86/rgb2rgb_template.c const int g = *s++; s 599 libswscale/x86/rgb2rgb_template.c const int b = *s++; s 606 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 610 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 617 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 647 libswscale/x86/rgb2rgb_template.c ::"r"(d),"r"(s),"m"(blue_15mask):"memory"); s 649 libswscale/x86/rgb2rgb_template.c s += 12; s 653 libswscale/x86/rgb2rgb_template.c while (s < end) { s 654 libswscale/x86/rgb2rgb_template.c const int b = *s++; s 655 libswscale/x86/rgb2rgb_template.c const int g = *s++; s 656 libswscale/x86/rgb2rgb_template.c const int r = *s++; s 663 libswscale/x86/rgb2rgb_template.c const uint8_t *s = src; s 667 libswscale/x86/rgb2rgb_template.c end = s + src_size; s 674 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 704 libswscale/x86/rgb2rgb_template.c ::"r"(d),"r"(s),"m"(blue_15mask):"memory"); s 706 libswscale/x86/rgb2rgb_template.c s += 12; s 710 libswscale/x86/rgb2rgb_template.c while (s < end) { s 711 libswscale/x86/rgb2rgb_template.c const int r = *s++; s 712 libswscale/x86/rgb2rgb_template.c const int g = *s++; s 713 libswscale/x86/rgb2rgb_template.c const int b = *s++; s 723 libswscale/x86/rgb2rgb_template.c const uint16_t *s = (const uint16_t*)src; s 724 libswscale/x86/rgb2rgb_template.c end = s + src_size/2; s 725 libswscale/x86/rgb2rgb_template.c __asm__ volatile(PREFETCH" %0"::"m"(*s):"memory"); s 727 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 790 libswscale/x86/rgb2rgb_template.c :"r"(s),"m"(mask15b),"m"(mask15g),"m"(mask15r), "m"(mmx_null) s 807 libswscale/x86/rgb2rgb_template.c :: "r"(d), "m"(*s) s 811 libswscale/x86/rgb2rgb_template.c s += 8; s 815 libswscale/x86/rgb2rgb_template.c while (s < end) { s 817 libswscale/x86/rgb2rgb_template.c bgr = *s++; s 829 libswscale/x86/rgb2rgb_template.c const uint16_t *s = (const uint16_t *)src; s 830 libswscale/x86/rgb2rgb_template.c end = s + src_size/2; s 831 libswscale/x86/rgb2rgb_template.c __asm__ volatile(PREFETCH" %0"::"m"(*s):"memory"); s 833 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 897 libswscale/x86/rgb2rgb_template.c :"r"(s),"m"(mask16b),"m"(mask16g),"m"(mask16r),"m"(mmx_null) s 914 libswscale/x86/rgb2rgb_template.c :: "r"(d), "m"(*s) s 918 libswscale/x86/rgb2rgb_template.c s += 8; s 922 libswscale/x86/rgb2rgb_template.c while (s < end) { s 924 libswscale/x86/rgb2rgb_template.c bgr = *s++; s 955 libswscale/x86/rgb2rgb_template.c const uint16_t *s = (const uint16_t *)src; s 956 libswscale/x86/rgb2rgb_template.c end = s + src_size/2; s 957 libswscale/x86/rgb2rgb_template.c __asm__ volatile(PREFETCH" %0"::"m"(*s):"memory"); s 961 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 975 libswscale/x86/rgb2rgb_template.c ::"r"(d),"r"(s),"m"(mask15b),"m"(mask15g),"m"(mask15r) ,"m"(mul15_mid) s 979 libswscale/x86/rgb2rgb_template.c s += 4; s 983 libswscale/x86/rgb2rgb_template.c while (s < end) { s 985 libswscale/x86/rgb2rgb_template.c bgr = *s++; s 998 libswscale/x86/rgb2rgb_template.c const uint16_t *s = (const uint16_t*)src; s 999 libswscale/x86/rgb2rgb_template.c end = s + src_size/2; s 1000 libswscale/x86/rgb2rgb_template.c __asm__ volatile(PREFETCH" %0"::"m"(*s):"memory"); s 1004 libswscale/x86/rgb2rgb_template.c while (s < mm_end) { s 1019 libswscale/x86/rgb2rgb_template.c ::"r"(d),"r"(s),"m"(mask16b),"m"(mask16g),"m"(mask16r),"m"(mul15_mid) s 1023 libswscale/x86/rgb2rgb_template.c s += 4; s 1027 libswscale/x86/rgb2rgb_template.c while (s < end) { s 1029 libswscale/x86/rgb2rgb_template.c bgr = *s++; s 156 libswscale/x86/swscale.c int s= APCK_SIZE / 8; s 158 libswscale/x86/swscale.c *(const void**)&lumMmxFilter[s*i ]= lumSrcPtr[i ]; s 159 libswscale/x86/swscale.c *(const void**)&lumMmxFilter[s*i+APCK_PTR2/4 ]= lumSrcPtr[i+(vLumFilterSize>1)]; s 160 libswscale/x86/swscale.c lumMmxFilter[s*i+APCK_COEF/4 ]= s 161 libswscale/x86/swscale.c lumMmxFilter[s*i+APCK_COEF/4+1]= vLumFilter[dstY*vLumFilterSize + i ] s 164 libswscale/x86/swscale.c *(const void**)&alpMmxFilter[s*i ]= alpSrcPtr[i ]; s 165 libswscale/x86/swscale.c *(const void**)&alpMmxFilter[s*i+APCK_PTR2/4 ]= alpSrcPtr[i+(vLumFilterSize>1)]; s 166 libswscale/x86/swscale.c alpMmxFilter[s*i+APCK_COEF/4 ]= s 167 libswscale/x86/swscale.c alpMmxFilter[s*i+APCK_COEF/4+1]= lumMmxFilter[s*i+APCK_COEF/4 ]; s 171 libswscale/x86/swscale.c *(const void**)&chrMmxFilter[s*i ]= chrUSrcPtr[i ]; s 172 libswscale/x86/swscale.c *(const void**)&chrMmxFilter[s*i+APCK_PTR2/4 ]= chrUSrcPtr[i+(vChrFilterSize>1)]; s 173 libswscale/x86/swscale.c chrMmxFilter[s*i+APCK_COEF/4 ]= s 174 libswscale/x86/swscale.c chrMmxFilter[s*i+APCK_COEF/4+1]= vChrFilter[chrDstY*vChrFilterSize + i ] s 103 libswscale/yuv2rgb.c #define PUTRGBA(dst, ysrc, asrc, i, s) \ s 105 libswscale/yuv2rgb.c dst[2 * i] = r[Y] + g[Y] + b[Y] + (asrc[2 * i] << s); \ s 107 libswscale/yuv2rgb.c dst[2 * i + 1] = r[Y] + g[Y] + b[Y] + (asrc[2 * i + 1] << s); s 215 tests/api/api-threadmessage-test.c for (i = 0; i < nb_##type##s; i++) { \ s 216 tests/api/api-threadmessage-test.c struct type##_data *td = &type##s[i]; \ s 233 tests/api/api-threadmessage-test.c for (i = 0; i < nb_##type##s; i++) { \ s 234 tests/api/api-threadmessage-test.c struct type##_data *td = &type##s[i]; \ s 68 tests/audiomatch.c int s = p[4] | p[5] << 8 | p[6] << 16 | p[7] << 24; s 69 tests/audiomatch.c fseek(f[i], s, SEEK_CUR); s 38 tests/checkasm/llviddspenc.c static const struct {uint8_t w, h, s;} planes[] = { s 94 tests/checkasm/llviddspenc.c call_ref(dst0, src0, planes[i].s, planes[i].w, planes[i].h); s 95 tests/checkasm/llviddspenc.c call_new(dst1, src1, planes[i].s, planes[i].w, planes[i].h); s 100 tests/checkasm/llviddspenc.c bench_new(dst1, src0, planes[4].s, planes[4].w, planes[4].h); s 38 tests/checkasm/sw_rgb.c static const struct {uint8_t w, h, s;} planes[] = { s 101 tests/checkasm/sw_rgb.c MAX_STRIDE, MAX_STRIDE / 2, planes[i].s); s 103 tests/checkasm/sw_rgb.c MAX_STRIDE, MAX_STRIDE / 2, planes[i].s); s 110 tests/checkasm/sw_rgb.c MAX_STRIDE, MAX_STRIDE / 2, planes[5].s); s 45 tests/checkasm/utvideodsp.c #define cmp_plane(buf0, buf1, s) \ s 50 tests/checkasm/utvideodsp.c buf1 + h*WIDTH_PADDED, WIDTH *s)) \ s 45 tests/checkasm/vf_gblur.c GBlurContext s; s 52 tests/checkasm/vf_gblur.c ff_gblur_init(&s); s 54 tests/checkasm/vf_gblur.c if (check_func(s.horiz_slice, "horiz_slice")) { s 42 tests/checkasm/vf_hflip.c FlipContext s; s 57 tests/checkasm/vf_hflip.c ff_hflip_init(&s, step_array, 4); s 59 tests/checkasm/vf_hflip.c if (check_func(s.flip_line[0], "hflip_%s", report_name)) { s 51 tests/checkasm/vf_threshold.c ThresholdContext s; s 52 tests/checkasm/vf_threshold.c s.depth = depth; s 53 tests/checkasm/vf_threshold.c ff_threshold_init(&s); s 69 tests/checkasm/vf_threshold.c if (check_func(s.threshold, "threshold%d", depth)) { s 84 tests/rotozoom.c const int s = h_sin[num % 360]; s 87 tests/rotozoom.c const int yi = (w / 2) * s; s 89 tests/rotozoom.c const int xj = -(h / 2) * s; s 99 tests/rotozoom.c xprime += s; s 106 tests/rotozoom.c y -= s; s 99 tests/tiny_psnr.c int s; s 101 tests/tiny_psnr.c for (s = 31; s >= 0; s--) { s 102 tests/tiny_psnr.c uint64_t b = ret_sq + (1ULL << (s * 2)) + (ret << s) * 2; s 105 tests/tiny_psnr.c ret += 1ULL << s; s 115 tests/tiny_psnr.c int16_t s; s 118 tests/tiny_psnr.c return v.s; s 159 tests/tiny_psnr.c int s = p[4] | p[5] << 8 | p[6] << 16 | p[7] << 24; s 160 tests/tiny_psnr.c fseek(f[i], s, SEEK_CUR);